diff --git a/.eslintrc.js b/.eslintrc.js index 1e35e787057e3e..d44e3f1414f438 100644 --- a/.eslintrc.js +++ b/.eslintrc.js @@ -15,6 +15,7 @@ NodePlugin.RULES_DIR = path.resolve(__dirname, 'tools', 'eslint-rules'); const ModuleFindPath = Module._findPath; const hacks = [ 'eslint-plugin-node-core', + 'eslint-plugin-jsdoc', 'eslint-plugin-markdown', '@babel/eslint-parser', '@babel/plugin-syntax-import-assertions', @@ -34,7 +35,11 @@ Module._findPath = (request, paths, isMain) => { module.exports = { root: true, - plugins: ['markdown', 'node-core'], + env: { + es2022: true, + }, + extends: ['eslint:recommended', 'plugin:jsdoc/recommended'], + plugins: ['jsdoc', 'markdown', 'node-core'], parser: '@babel/eslint-parser', parserOptions: { babelOptions: { @@ -140,17 +145,14 @@ module.exports = { 'comma-spacing': 'error', 'comma-style': 'error', 'computed-property-spacing': 'error', - 'constructor-super': 'error', 'default-case-last': 'error', 'dot-location': ['error', 'property'], 'dot-notation': 'error', 'eol-last': 'error', 'eqeqeq': ['error', 'smart'], - 'for-direction': 'error', 'func-call-spacing': 'error', 'func-name-matching': 'error', 'func-style': ['error', 'declaration', { allowArrowFunctions: true }], - 'getter-return': 'error', 'indent': ['error', 2, { ArrayExpression: 'first', CallExpression: { arguments: 'first' }, @@ -164,7 +166,7 @@ module.exports = { 'keyword-spacing': 'error', 'linebreak-style': ['error', 'unix'], 'max-len': ['error', { - code: 80, + code: 120, ignorePattern: '^// Flags:', ignoreRegExpLiterals: true, ignoreTemplateLiterals: true, @@ -172,47 +174,21 @@ module.exports = { tabWidth: 2, }], 'new-parens': 'error', - 'no-async-promise-executor': 'error', - 'no-class-assign': 'error', 'no-confusing-arrow': 'error', - 'no-const-assign': 'error', + 'no-constant-condition': ['error', { checkLoops: false }], 'no-constructor-return': 'error', - 'no-control-regex': 'error', - 'no-debugger': 'error', - 'no-delete-var': 'error', - 'no-dupe-args': 'error', - 'no-dupe-class-members': 'error', - 'no-dupe-keys': 'error', - 'no-dupe-else-if': 'error', - 'no-duplicate-case': 'error', 'no-duplicate-imports': 'error', 'no-else-return': ['error', { allowElseIf: true }], - 'no-empty-character-class': 'error', - 'no-ex-assign': 'error', - 'no-extra-boolean-cast': 'error', 'no-extra-parens': ['error', 'functions'], - 'no-extra-semi': 'error', - 'no-fallthrough': 'error', - 'no-func-assign': 'error', - 'no-global-assign': 'error', - 'no-invalid-regexp': 'error', - 'no-irregular-whitespace': 'error', 'no-lonely-if': 'error', - 'no-misleading-character-class': 'error', 'no-mixed-requires': 'error', - 'no-mixed-spaces-and-tabs': 'error', 'no-multi-spaces': ['error', { ignoreEOLComments: true }], 'no-multiple-empty-lines': ['error', { max: 2, maxEOF: 0, maxBOF: 0 }], 'no-new-require': 'error', - 'no-new-symbol': 'error', - 'no-nonoctal-decimal-escape': 'error', - 'no-obj-calls': 'error', - 'no-octal': 'error', 'no-path-concat': 'error', 'no-proto': 'error', 'no-redeclare': ['error', { 'builtinGlobals': false }], 'no-restricted-modules': ['error', 'sys'], - /* eslint-disable max-len */ 'no-restricted-properties': [ 'error', { @@ -265,42 +241,27 @@ module.exports = { message: 'Use Number.isNaN() instead of the global isNaN() function.', }, ], - /* eslint-enable max-len */ 'no-return-await': 'error', - 'no-self-assign': 'error', 'no-self-compare': 'error', - 'no-setter-return': 'error', - 'no-shadow-restricted-names': 'error', 'no-tabs': 'error', 'no-template-curly-in-string': 'error', - 'no-this-before-super': 'error', 'no-throw-literal': 'error', 'no-trailing-spaces': 'error', 'no-undef': ['error', { typeof: true }], 'no-undef-init': 'error', - 'no-unexpected-multiline': 'error', - 'no-unreachable': 'error', - 'no-unsafe-finally': 'error', - 'no-unsafe-negation': 'error', - 'no-unsafe-optional-chaining': 'error', 'no-unused-expressions': ['error', { allowShortCircuit: true }], - 'no-unused-labels': 'error', 'no-unused-vars': ['error', { args: 'none', caughtErrors: 'all' }], 'no-use-before-define': ['error', { classes: true, functions: false, variables: false, }], - 'no-useless-backreference': 'error', 'no-useless-call': 'error', - 'no-useless-catch': 'error', 'no-useless-concat': 'error', 'no-useless-constructor': 'error', - 'no-useless-escape': 'error', 'no-useless-return': 'error', 'no-void': 'error', 'no-whitespace-before-property': 'error', - 'no-with': 'error', 'object-curly-newline': 'error', 'object-curly-spacing': ['error', 'always'], 'one-var': ['error', { initialized: 'never' }], @@ -311,6 +272,7 @@ module.exports = { { blankLine: 'always', prev: 'function', next: 'function' }, ], 'prefer-const': ['error', { ignoreReadBeforeAssign: true }], + 'prefer-object-has-own': 'error', 'quotes': ['error', 'single', { avoidEscape: true }], 'quote-props': ['error', 'consistent'], 'rest-spread-spacing': 'error', @@ -333,33 +295,33 @@ module.exports = { 'symbol-description': 'error', 'template-curly-spacing': 'error', 'unicode-bom': 'error', - 'use-isnan': 'error', 'valid-typeof': ['error', { requireStringLiterals: true }], + // ESLint recommended rules that we disable + 'no-inner-declarations': 'off', + + // JSDoc recommended rules that we disable + 'jsdoc/require-jsdoc': 'off', + 'jsdoc/require-param-description': 'off', + 'jsdoc/newline-after-description': 'off', + 'jsdoc/require-returns-description': 'off', + 'jsdoc/valid-types': 'off', + 'jsdoc/no-undefined-types': 'off', + 'jsdoc/require-param': 'off', + 'jsdoc/check-tag-names': 'off', + 'jsdoc/require-returns': 'off', + 'jsdoc/require-property-description': 'off', + // Custom rules from eslint-plugin-node-core 'node-core/no-unescaped-regexp-dot': 'error', 'node-core/no-duplicate-requires': 'error', }, globals: { - AbortController: 'readable', - AbortSignal: 'readable', - Atomics: 'readable', - BigInt: 'readable', - BigInt64Array: 'readable', - BigUint64Array: 'readable', - DOMException: 'readable', - Event: 'readable', - EventTarget: 'readable', - MessageChannel: 'readable', - MessageEvent: 'readable', - MessagePort: 'readable', - TextEncoder: 'readable', - TextDecoder: 'readable', - queueMicrotask: 'readable', - globalThis: 'readable', - btoa: 'readable', - atob: 'readable', - performance: 'readable', - structuredClone: 'readable', + Crypto: 'readable', + CryptoKey: 'readable', + fetch: 'readable', + FormData: 'readable', + Response: 'readable', + SubtleCrypto: 'readable', }, }; diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dfc0f5a457bc69..4170038a0ac0fc 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -5,23 +5,15 @@ # 3. PRs touching any code with a codeowner must be signed off by at least one # person on the code owner team. -# tsc & commcomm +# tsc /.github/CODEOWNERS @nodejs/tsc /GOVERNANCE.md @nodejs/tsc /onboarding.md @nodejs/tsc -/CODE_OF_CONDUCT.md @nodejs/tsc @nodejs/community-committee -/CONTRIBUTING.md @nodejs/tsc @nodejs/community-committee -/LICENSE @nodejs/tsc @nodejs/community-committee -/doc/guides/contributing/code-of-conduct.md @nodejs/tsc @nodejs/community-committee -# TODO(mmarchini): the bot doens't have a notion of precedence, that might -# change when move the codeowners code to an Action, at which point we can -# uncomment the line below -# /doc/guides/contributing/*.md @nodejs/tsc -/doc/guides/contributing/issues.md @nodejs/tsc -/doc/guides/contributing/pull-requests.md @nodejs/tsc -/doc/guides/collaborator-guide.md @nodejs/tsc -/doc/guides/offboarding.md @nodejs/tsc +/CODE_OF_CONDUCT.md @nodejs/tsc +/CONTRIBUTING.md @nodejs/tsc +/LICENSE @nodejs/tsc +/doc/contributing/*.md @nodejs/tsc # streams @@ -90,12 +82,12 @@ /lib/internal/bootstrap/loaders.js @nodejs/modules /src/module_wrap* @nodejs/modules @nodejs/vm -# N-API +# Node-API -/src/node_api* @nodejs/n-api -/src/js_native_api* @nodejs/n-api -/doc/guides/adding-new-napi-api.md @nodejs/n-api -/doc/api/n-api.md @nodejs/n-api +/src/node_api* @nodejs/node-api +/src/js_native_api* @nodejs/node-api +/doc/contributing/adding-new-napi-api.md @nodejs/node-api +/doc/api/n-api.md @nodejs/node-api # gyp diff --git a/.github/ISSUE_TEMPLATE/1-bug-report.yml b/.github/ISSUE_TEMPLATE/1-bug-report.yml index 965a2eca45d978..3edac8d807d905 100644 --- a/.github/ISSUE_TEMPLATE/1-bug-report.yml +++ b/.github/ISSUE_TEMPLATE/1-bug-report.yml @@ -1,4 +1,4 @@ -name: "\U0001F41B Bug report" +name: 🐛 Bug report description: Create a report to help us improve body: - type: markdown @@ -9,7 +9,7 @@ body: This issue tracker is for bugs and issues found within Node.js core. If you require more general support please file an issue on our help repo. https://github.com/nodejs/help - Please fill in as much of the form below as you're able. + Please fill in as much of the following form as you're able. - type: input attributes: label: Version @@ -39,6 +39,8 @@ body: attributes: label: What do you see instead? description: If possible please provide textual output instead of screenshots. + validations: + required: true - type: textarea attributes: label: Additional information diff --git a/.github/ISSUE_TEMPLATE/2-feature-request.md b/.github/ISSUE_TEMPLATE/2-feature-request.md deleted file mode 100644 index 0d40bfdd110b93..00000000000000 --- a/.github/ISSUE_TEMPLATE/2-feature-request.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -name: "\U0001F680 Feature request" -about: Suggest an idea for this project - ---- - - - -**Is your feature request related to a problem? Please describe.** -Please describe the problem you are trying to solve. - -**Describe the solution you'd like** -Please describe the desired behavior. - -**Describe alternatives you've considered** -Please describe alternative solutions or features you have considered. diff --git a/.github/ISSUE_TEMPLATE/2-feature-request.yml b/.github/ISSUE_TEMPLATE/2-feature-request.yml new file mode 100644 index 00000000000000..26a77a3617cbeb --- /dev/null +++ b/.github/ISSUE_TEMPLATE/2-feature-request.yml @@ -0,0 +1,26 @@ +name: 🚀 Feature request +description: Suggest an idea for this project +labels: [feature request] +body: + - type: markdown + attributes: + value: | + Thank you for suggesting an idea to make Node.js better. + + Please fill in as much of the following form as you're able. + + For more information on how the project manages feature + requests, see [Feature request management](https://github.com/nodejs/node/blob/HEAD/doc/contributing/feature-request-management.md). + - type: textarea + attributes: + label: What is the problem this feature will solve? + validations: + required: true + - type: textarea + attributes: + label: What is the feature you are proposing to solve the problem? + validations: + required: true + - type: textarea + attributes: + label: What alternatives have you considered? diff --git a/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.md b/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.md deleted file mode 100644 index f63d540abaf4e2..00000000000000 --- a/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -name: "\U0001F4D7 Open an issue regarding the Node.js API reference docs" -about: Let us know about any problematic API reference documents -title: "doc: " -labels: doc ---- - -# 📗 API Reference Docs Problem - - - - - -- **Version**: ✍️ - - - -- **Platform**: ✍️ - - - -- **Subsystem**: ✍️ - -## Location - -_Section of the site where the content exists_ - -Affected URL(s): - -- https://nodejs.org/api/✍️ - -## Description - -_Concise explanation of the problem_ - - - -✍️ - ---- - - - -- [ ] I would like to work on this issue and - submit a pull request. diff --git a/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.yml b/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.yml new file mode 100644 index 00000000000000..753e2d9e58a9d5 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/3-api-ref-docs-problem.yml @@ -0,0 +1,18 @@ +name: 📗 Open an issue regarding the Node.js API reference docs +description: Let us know about any problematic API reference documents +labels: [doc] +body: + - type: markdown + attributes: + value: | + Thank you for wanting to make nodejs.org better! + + Please fill in as much of the following form as you're able. + - type: input + attributes: + label: Affected URL(s) + - type: textarea + attributes: + label: Description of the problem + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.md b/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.md deleted file mode 100644 index 544c9d5f47b0f5..00000000000000 --- a/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -name: Report a flaky test -about: Report a flaky test in our CI -labels: "CI / flaky test" - ---- - - - -* **Test**: -* **Platform**: -* **Console Output:** -``` -REPLACE ME -``` -* **Build Links**: diff --git a/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.yml b/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.yml new file mode 100644 index 00000000000000..dd6fa5091e3f15 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/4-report-a-flaky-test.yml @@ -0,0 +1,46 @@ +name: Report a flaky test +description: Report a flaky test in our CI +labels: [flaky-test] +body: + - type: markdown + attributes: + value: | + Thank you for reporting a flaky test. + + Flaky tests are tests that fail occasionally in the Node.js CI, but not + consistently enough to block PRs from landing, or that are failing in CI + jobs or test modes that are not run for every PR. + + Please fill in as much of the form below as you're able. + - type: input + attributes: + label: Test + description: The test that is flaky. + placeholder: e.g. `test-fs-stat-bigint` + validations: + required: true + - type: input + attributes: + label: Platform + description: The platform the test is flaky on. + placeholder: e.g. `macos` or `linux` + - type: textarea + attributes: + label: Console output + description: > + A pasted console output from a failed CI job showing the whole failure + of the test. + render: console + - type: textarea + attributes: + label: Build links + description: Links to builds affected by the flaky test. + value: '- ' + - type: textarea + attributes: + label: Additional information + description: > + If any investigation has been done, please include any information + found, such as how consistently the test fails, whether the failure + could be reproduced locally, when the test started failing, or anything + else you think is relevant. diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index f99a8abb394d14..fe46bf4deadeb7 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -3,7 +3,7 @@ Before submitting a pull request, please read https://github.com/nodejs/node/blob/HEAD/CONTRIBUTING.md. Commit message formatting guidelines: -https://github.com/nodejs/node/blob/HEAD/doc/guides/contributing/pull-requests.md#commit-message-guidelines +https://github.com/nodejs/node/blob/HEAD/doc/contributing/pull-requests.md#commit-message-guidelines For code changes: 1. Include tests for any bug fixes or new features. diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md index 51f8a326531ed4..9e4a041bf7ce9b 100644 --- a/.github/SUPPORT.md +++ b/.github/SUPPORT.md @@ -15,7 +15,6 @@ If you didn't find an answer in the resources above, try these unofficial resources: * [Questions tagged 'node.js' on Stack Overflow](https://stackoverflow.com/questions/tagged/node.js) -* [#nodejs](https://openjs-foundation.slack.com/archives/CK9Q4MB53) channel on the OpenJS Foundation Slack ([join here](https://slack-invite.openjsf.org/)) * [#node.js channel on libera.chat](https://web.libera.chat?channels=node.js&uio=d4) * [Node.js Slack Community](https://node-js.slack.com/) * To register: [nodeslackers.com](https://www.nodeslackers.com/) diff --git a/.github/workflows/authors.yml b/.github/workflows/authors.yml index 7374ff66a8c29d..75fec53a549438 100644 --- a/.github/workflows/authors.yml +++ b/.github/workflows/authors.yml @@ -1,8 +1,8 @@ -name: "authors update" +name: Authors update on: schedule: # Run once a week at 00:05 AM UTC on Sunday. - - cron: '5 0 * * 0' + - cron: 5 0 * * 0 workflow_dispatch: @@ -14,14 +14,18 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: '0' # This is required to actually get all the authors - - run: "tools/update-authors.js" # Run the AUTHORS tool + persist-credentials: false + - run: tools/update-authors.js # Run the AUTHORS tool - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR env: GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} with: author: Node.js GitHub Bot - body: "Here are some new additions to the AUTHORS file. This is an automatically generated PR by the `authors.yml` GitHub Action, which runs `tools/update-authors.js`." - branch: "actions/authors-update" # Custom branch *just* for this Action. - commit-message: "meta: update AUTHORS" + body: > + Here are some new additions to the AUTHORS file. + This is an automatically generated PR by the + `authors.yml` GitHub Action, which runs `tools/update-authors.js`. + branch: actions/authors-update # Custom branch *just* for this Action. + commit-message: 'meta: update AUTHORS' labels: meta - title: "meta: update AUTHORS" + title: 'meta: update AUTHORS' diff --git a/.github/workflows/auto-start-ci.yml b/.github/workflows/auto-start-ci.yml index ef7c97d9e502b6..2416561ab7ebf3 100644 --- a/.github/workflows/auto-start-ci.yml +++ b/.github/workflows/auto-start-ci.yml @@ -5,59 +5,58 @@ on: # Runs every five minutes (fastest the scheduler can run). Five minutes is # optimistic, it can take longer to run. # To understand why `schedule` is used instead of other events, refer to - # ./doc/guides/commit-queue.md - - cron: "*/5 * * * *" + # ./doc/contributing/commit-queue.md + - cron: '*/5 * * * *' + +concurrency: ${{ github.workflow }} env: NODE_VERSION: lts/* jobs: - startCI: + get-prs-for-ci: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest + outputs: + numbers: ${{ steps.get_prs_for_ci.outputs.numbers }} + steps: + - name: Get Pull Requests + id: get_prs_for_ci + run: > + gh pr list \ + --repo ${{ github.repository }} \ + --label 'request-ci' \ + --json 'number' \ + -t '::set-output name=numbers::{{ range . }}{{ .number }} {{ end }}' \ + --limit 100 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + start-ci: + needs: get-prs-for-ci + if: needs.get-prs-for-ci.outputs.numbers != '' + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - # Install dependencies - name: Install Node.js uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} + - name: Install node-core-utils run: npm install -g node-core-utils - - name: Set variables - run: | - echo "REPOSITORY=$(echo ${{ github.repository }} | cut -d/ -f2)" >> $GITHUB_ENV - echo "OWNER=${{ github.repository_owner }}" >> $GITHUB_ENV - - # Get Pull Requests - - name: Get Pull Requests - uses: octokit/graphql-action@v2.x - id: get_prs_for_ci - with: - query: | - query prs($owner:String!, $repo:String!) { - repository(owner:$owner, name:$repo) { - pullRequests(labels: ["request-ci"], states: OPEN, last: 100) { - nodes { - number - } - } - } - } - owner: ${{ env.OWNER }} - repo: ${{ env.REPOSITORY }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - - name: Setup node-core-utils run: | ncu-config set username ${{ secrets.JENKINS_USER }} ncu-config set token none ncu-config set jenkins_token ${{ secrets.JENKINS_TOKEN }} - ncu-config set owner ${{ env.OWNER }} - ncu-config set repo ${{ env.REPOSITORY }} + ncu-config set owner "${{ github.repository_owner }}" + ncu-config set repo "$(echo ${{ github.repository }} | cut -d/ -f2)" - - name: Start CI - run: ./tools/actions/start-ci.sh ${{ secrets.GITHUB_TOKEN }} ${{ env.OWNER }} ${{ env.REPOSITORY }} $(echo '${{ steps.get_prs_for_ci.outputs.data }}' | jq '.repository.pullRequests.nodes | map(.number) | .[]') + - name: Start the CI + run: ./tools/actions/start-ci.sh ${{ needs.get-prs-for-ci.outputs.numbers }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 7f96504f781406..38a8922c093a99 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -4,10 +4,12 @@ on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/build-tarball.yml' push: branches: - master @@ -15,22 +17,29 @@ on: - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/build-tarball.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: + PYTHON_VERSION: '3.10' FLAKY_TESTS: dontcare jobs: build-tarball: if: github.event.pull_request.draft == false - env: - PYTHON_VERSION: '3.10' runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: @@ -46,17 +55,17 @@ jobs: mkdir tarballs mv *.tar.gz tarballs - name: Upload tarball artifact - uses: actions/upload-artifact@v1 + uses: actions/upload-artifact@v2 with: name: tarballs path: tarballs test-tarball-linux: - env: - PYTHON_VERSION: '3.10' needs: build-tarball runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: @@ -64,9 +73,10 @@ jobs: - name: Environment Information run: npx envinfo - name: Download tarball - uses: actions/download-artifact@v1 + uses: actions/download-artifact@v2 with: name: tarballs + path: tarballs - name: Extract tarball run: | tar xzf tarballs/*.tar.gz -C $RUNNER_TEMP diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml index e6fd0a4b92fe23..695675b5994aa2 100644 --- a/.github/workflows/build-windows.yml +++ b/.github/workflows/build-windows.yml @@ -1,7 +1,11 @@ -name: build-windows +name: Build Windows on: pull_request: + paths-ignore: + - README.md + - .github/** + - '!.github/workflows/build-windows.yml' types: [opened, synchronize, reopened, ready_for_review] push: branches: @@ -10,6 +14,14 @@ on: - canary - v[0-9]+.x-staging - v[0-9]+.x + paths-ignore: + - README.md + - .github/** + - '!.github/workflows/build-windows.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -25,6 +37,8 @@ jobs: runs-on: ${{ matrix.windows }} steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/close-stale-feature-requests.yml b/.github/workflows/close-stale-feature-requests.yml new file mode 100644 index 00000000000000..0b482ed8ae065f --- /dev/null +++ b/.github/workflows/close-stale-feature-requests.yml @@ -0,0 +1,51 @@ +name: Close stale feature requests +on: + workflow_dispatch: + inputs: + daysBeforeStale: + description: Idle number of days before marking feature requests stale + required: true + default: 906 + type: number + +# yamllint disable rule:empty-lines +env: + CLOSE_MESSAGE: > + There has been no activity on this feature request + and it is being closed. If you feel closing this issue is not the + right thing to do, please leave a comment. + + + For more information on how the project manages + feature requests, please consult the + [feature request management document](https://github.com/nodejs/node/blob/HEAD/doc/contributing/feature-request-management.md). + + WARN_MESSAGE: > + There has been no activity on this feature request for + 5 months and it is unlikely to be implemented. + It will be closed 6 months after the last non-automated comment. + + + For more information on how the project manages + feature requests, please consult the + [feature request management document](https://github.com/nodejs/node/blob/HEAD/doc/contributing/feature-request-management.md). +# yamllint enable + +jobs: + stale: + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + steps: + - uses: actions/stale@v4 + with: + repo-token: ${{ secrets.GITHUB_TOKEN }} + days-before-stale: ${{ github.event.inputs.daysBeforeStale }} + days-before-close: 30 + stale-issue-label: stale + close-issue-message: ${{ env.CLOSE_MESSAGE }} + stale-issue-message: ${{ env.WARN_MESSAGE }} + only-labels: feature request + exempt-pr-labels: never-stale + # max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits + operations-per-run: 500 + remove-stale-when-updated: true diff --git a/.github/workflows/close-stalled.yml b/.github/workflows/close-stalled.yml index 351ddb78c012f8..347b22bd70caf3 100644 --- a/.github/workflows/close-stalled.yml +++ b/.github/workflows/close-stalled.yml @@ -1,21 +1,27 @@ name: Close stalled issues and PRs on: schedule: - - cron: "0 0 * * *" + - cron: 0 0 * * * + +env: + CLOSE_MESSAGE: > + Closing this because it has stalled. Feel free to reopen if this issue/PR + is still relevant, or to ping the collaborator who labelled it stalled if + you have any questions. jobs: stale: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest steps: - - uses: actions/stale@v3 + - uses: actions/stale@v4 with: repo-token: ${{ secrets.GITHUB_TOKEN }} days-before-close: 30 stale-pr-label: stalled stale-issue-label: stalled - close-issue-message: Closing this because it has stalled. Feel free to reopen if this issue is still relevant, or to ping the collaborator who labelled it stalled if you have any questions. - close-pr-message: Closing this because it has stalled. Feel free to reopen if this PR is still relevant, or to ping the collaborator who labelled it stalled if you have any questions. + close-issue-message: ${{ env.CLOSE_MESSAGE }} + close-pr-message: ${{ env.CLOSE_MESSAGE }} # used to filter issues to check whether or not should be closed, avoids hitting maximum operations allowed if needing to paginate through all open issues only-labels: stalled # max requests it will send per run to the GitHub API before it deliberately exits to avoid hitting API rate limits diff --git a/.github/workflows/comment-labeled.yml b/.github/workflows/comment-labeled.yml index c2c700c38b8ca1..5c529000a63fb2 100644 --- a/.github/workflows/comment-labeled.yml +++ b/.github/workflows/comment-labeled.yml @@ -1,29 +1,32 @@ -name: Comment on issues and PRs when labelled +name: Comment on issues and PRs when labeled on: issues: types: [labeled] pull_request_target: types: [labeled] +env: + STALE_MESSAGE: > + This issue/PR was marked as stalled, it will be automatically closed in 30 days. + If it should remain open, please leave a comment explaining why it should remain open. + FAST_TRACK_MESSAGE: Fast-track has been requested by @${{ github.actor }}. Please 👍 to approve. + jobs: - staleComment: + stale-comment: if: github.repository == 'nodejs/node' && github.event.label.name == 'stalled' runs-on: ubuntu-latest steps: - name: Post stalled comment env: - COMMENTS_URL: ${{ github.event.issue.comments_url || github.event.pull_request.comments_url }} - run: | - curl -X POST $COMMENTS_URL \ - -H "Content-Type: application/json" \ - -H "Authorization: token ${{ secrets.GITHUB_TOKEN }}" \ - --data '{ "body": "This issue/PR was marked as stalled, it will be automatically closed in 30 days. If it should remain open, please leave a comment explaining why it should remain open." }' + NUMBER: ${{ github.event.issue.number || github.event.pull_request.number }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: gh issue comment "$NUMBER" --repo ${{ github.repository }} --body "$STALE_MESSAGE" - fastTrack: + fast-track: if: github.repository == 'nodejs/node' && github.event_name == 'pull_request_target' && github.event.label.name == 'fast-track' runs-on: ubuntu-latest steps: - name: Request Fast-Track env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "Fast-track has been requested by @${{ github.actor }}. Please 👍 to approve." + run: gh pr comment ${{ github.event.pull_request.number }} --repo ${{ github.repository }} --body "$FAST_TRACK_MESSAGE" diff --git a/.github/workflows/commit-lint.yml b/.github/workflows/commit-lint.yml index 0f6fd639523cb0..d0754d56035e54 100644 --- a/.github/workflows/commit-lint.yml +++ b/.github/workflows/commit-lint.yml @@ -1,4 +1,4 @@ -name: "Commit messages adheres to guidelines at https://goo.gl/p2fr5Q" +name: First commit message adheres to guidelines on: [pull_request] @@ -9,15 +9,21 @@ jobs: lint-commit-message: runs-on: ubuntu-latest steps: + - name: Compute number of commits in the PR + id: nb-of-commits + run: | + echo "::set-output name=plusOne::$((${{ github.event.pull_request.commits }} + 1))" + echo "::set-output name=minusOne::$((${{ github.event.pull_request.commits }} - 1))" - uses: actions/checkout@v2 with: - # Last 100 commits should be enough for a PR - fetch-depth: 100 + fetch-depth: ${{ steps.nb-of-commits.outputs.plusOne }} + persist-credentials: false + - run: git reset HEAD^2 - name: Install Node.js uses: actions/setup-node@v2 with: node-version: ${{ env.NODE_VERSION }} - - name: Validate commit messages + - name: Validate commit message run: | echo "::add-matcher::.github/workflows/commit-lint-problem-matcher.json" - git log --oneline ${{ github.event.pull_request.base.sha }}..${{ github.event.pull_request.head.sha }} | grep -v -e fixup -e squash | awk '{ print $1 }' | xargs npx -q core-validate-commit --no-validate-metadata --tap + git rev-parse HEAD~${{ steps.nb-of-commits.outputs.minusOne }} | xargs npx -q core-validate-commit --no-validate-metadata --tap diff --git a/.github/workflows/commit-queue.yml b/.github/workflows/commit-queue.yml index b2d37f80906896..bbaf67a0e7e779 100644 --- a/.github/workflows/commit-queue.yml +++ b/.github/workflows/commit-queue.yml @@ -11,15 +11,36 @@ on: # be read-only, and the Action won't have access to any other repository # secrets, which it needs to access Jenkins API. schedule: - - cron: "*/5 * * * *" + - cron: '*/5 * * * *' + +concurrency: ${{ github.workflow }} env: NODE_VERSION: lts/* jobs: - commitQueue: + get_mergeable_prs: if: github.repository == 'nodejs/node' runs-on: ubuntu-latest + outputs: + numbers: ${{ steps.get_mergeable_prs.outputs.numbers }} + steps: + - name: Get Pull Requests + id: get_mergeable_prs + run: > + gh pr list \ + --repo ${{ github.repository }} \ + --base ${{ github.ref_name }} \ + --label 'commit-queue' \ + --json 'number' \ + -t '::set-output name=numbers::{{ range . }}{{ .number }} {{ end }}' \ + --limit 100 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + commitQueue: + needs: get_mergeable_prs + if: needs.get_mergeable_prs.outputs.numbers != '' + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 with: @@ -44,32 +65,10 @@ jobs: run: | echo "REPOSITORY=$(echo ${{ github.repository }} | cut -d/ -f2)" >> $GITHUB_ENV echo "OWNER=${{ github.repository_owner }}" >> $GITHUB_ENV - echo "DEFAULT_BRANCH=${GITHUB_REF#refs/heads/}" >> $GITHUB_ENV - - - name: Get Pull Requests - uses: octokit/graphql-action@v2.x - id: get_mergable_pull_requests - with: - query: | - query release($owner:String!,$repo:String!, $base_ref:String!) { - repository(owner:$owner, name:$repo) { - pullRequests(baseRefName: $base_ref, labels: ["commit-queue"], states: OPEN, last: 100) { - nodes { - number - } - } - } - } - owner: ${{ env.OWNER }} - repo: ${{ env.REPOSITORY }} - # Commit queue is only enabled for the default branch on the repository - base_ref: ${{ env.DEFAULT_BRANCH }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Configure node-core-utils run: | - ncu-config set branch ${DEFAULT_BRANCH} + ncu-config set branch ${GITHUB_REF_NAME} ncu-config set upstream origin ncu-config set username "${{ secrets.GH_USER_NAME }}" ncu-config set token "${{ secrets.GH_USER_TOKEN }}" @@ -77,5 +76,7 @@ jobs: ncu-config set repo "${REPOSITORY}" ncu-config set owner "${OWNER}" - - name: Start the commit queue - run: ./tools/actions/commit-queue.sh ${OWNER} ${REPOSITORY} ${{ secrets.GITHUB_TOKEN }} $(echo '${{ steps.get_mergable_pull_requests.outputs.data }}' | jq '.repository.pullRequests.nodes | map(.number) | .[]') + - name: Start the Commit Queue + run: ./tools/actions/commit-queue.sh ${{ env.OWNER }} ${{ env.REPOSITORY }} ${{ needs.get_mergeable_prs.outputs.numbers }} + env: + GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} diff --git a/.github/workflows/coverage-linux.yml b/.github/workflows/coverage-linux.yml index e322e764840989..65004c243f3dd5 100644 --- a/.github/workflows/coverage-linux.yml +++ b/.github/workflows/coverage-linux.yml @@ -1,22 +1,28 @@ -name: coverage-linux +name: Coverage Linux on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - '**.md' - - 'benchmark/**' - - 'deps/**' - - 'doc/**' + - benchmark/** + - deps/* + - doc/** + - .github/** + - '!.github/workflows/coverage-linux.yml' push: - branches: - - master - - main + branches: [master, main] paths-ignore: - '**.md' - - 'benchmark/**' - - 'deps/**' - - 'doc/**' + - benchmark/** + - deps/** + - doc/** + - .github/** + - '!.github/workflows/coverage-linux.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -28,6 +34,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/coverage-windows.yml b/.github/workflows/coverage-windows.yml index 4473eb9bd74ae3..234719548d0a5b 100644 --- a/.github/workflows/coverage-windows.yml +++ b/.github/workflows/coverage-windows.yml @@ -1,24 +1,30 @@ -name: coverage-windows +name: Coverage Windows on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - '**.md' - - 'benchmark/**' - - 'deps/**' - - 'doc/**' - - 'tools/**' + - benchmark/** + - deps/** + - doc/** + - tools/** + - .github/** + - '!.github/workflows/coverage-windows.yml' push: - branches: - - master - - main + branches: [master, main] paths-ignore: - '**.md' - - 'benchmark/**' - - 'deps/**' - - 'doc/**' - - 'tools/**' + - benchmark/** + - deps/** + - doc/** + - tools/** + - .github/** + - '!.github/workflows/coverage-windows.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -30,6 +36,8 @@ jobs: runs-on: windows-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/daily.yml b/.github/workflows/daily.yml index e36a3fb5194125..79294ca966ddef 100644 --- a/.github/workflows/daily.yml +++ b/.github/workflows/daily.yml @@ -3,7 +3,7 @@ name: Node.js daily job on: workflow_dispatch: schedule: - - cron: "0 0 * * *" + - cron: 0 0 * * * env: NODE_VERSION: lts/* @@ -15,6 +15,8 @@ jobs: container: gcc:11 steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v2 with: diff --git a/.github/workflows/doc.yml b/.github/workflows/doc.yml new file mode 100644 index 00000000000000..9bb872f35384d4 --- /dev/null +++ b/.github/workflows/doc.yml @@ -0,0 +1,41 @@ +name: Test and upload documentation to artifacts + +on: + pull_request: + types: [opened, synchronize, reopened, ready_for_review] + push: + branches: + - master + - main + - v[0-9]+.x-staging + - v[0-9]+.x + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + +env: + NODE_VERSION: lts/* + +jobs: + build-docs: + if: github.event.pull_request.draft == false + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Environment Information + run: npx envinfo + - name: Build + run: NODE=$(command -v node) make doc-only + - uses: actions/upload-artifact@v2 + with: + name: docs + path: out/doc + - name: Test + run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions" diff --git a/.github/workflows/find-inactive-collaborators.yml b/.github/workflows/find-inactive-collaborators.yml index 4de6f34691f2cc..21f0f0297d5f11 100644 --- a/.github/workflows/find-inactive-collaborators.yml +++ b/.github/workflows/find-inactive-collaborators.yml @@ -2,14 +2,13 @@ name: Find inactive collaborators on: schedule: - # Run on the 15th day of the month at 4:05 AM UTC. - - cron: '5 4 15 * *' + # Run every Monday at 4:05 AM UTC. + - cron: 5 4 * * 1 workflow_dispatch: env: - NODE_VERSION: 16.x - NUM_COMMITS: 5000 + NODE_VERSION: lts/* jobs: find: @@ -19,7 +18,8 @@ jobs: steps: - uses: actions/checkout@v2 with: - fetch-depth: ${{ env.NUM_COMMITS }} + fetch-depth: 0 + persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v2 @@ -27,7 +27,7 @@ jobs: node-version: ${{ env.NODE_VERSION }} - name: Find inactive collaborators - run: tools/find-inactive-collaborators.mjs ${{ env.NUM_COMMITS }} + run: tools/find-inactive-collaborators.mjs - name: Open pull request uses: gr2m/create-or-update-pull-request-action@v1 @@ -37,6 +37,6 @@ jobs: author: Node.js GitHub Bot branch: actions/inactive-collaborators body: This PR was generated by tools/find-inactive-collaborators.yml. - commit-message: "meta: move one or more collaborators to emeritus" + commit-message: 'meta: move one or more collaborators to emeritus' labels: meta - title: "meta: move one or more collaborators to emeritus" + title: 'meta: move one or more collaborators to emeritus' diff --git a/.github/workflows/find-inactive-tsc.yml b/.github/workflows/find-inactive-tsc.yml new file mode 100644 index 00000000000000..9276de8b6a5c3a --- /dev/null +++ b/.github/workflows/find-inactive-tsc.yml @@ -0,0 +1,56 @@ +name: Find inactive TSC members + +on: + schedule: + # Run every Tuesday 12:05 AM UTC. + - cron: 5 0 * * 2 + + workflow_dispatch: + +env: + NODE_VERSION: lts/* + +jobs: + find: + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + + steps: + - name: Checkout the repo + uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - name: Clone nodejs/TSC repository + uses: actions/checkout@v2 + with: + fetch-depth: 0 + path: .tmp + persist-credentials: false + repository: nodejs/TSC + + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v2 + with: + node-version: ${{ env.NODE_VERSION }} + + - name: Find inactive TSC members + run: tools/find-inactive-tsc.mjs >> $GITHUB_ENV + + - name: Open pull request + uses: gr2m/create-or-update-pull-request-action@v1 + env: + GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} + with: + author: Node.js GitHub Bot + branch: actions/inactive-tsc + body: | + This PR was generated by tools/find-inactive-tsc.yml. + + @nodejs/tsc ${{ env.INACTIVE_TSC_HANDLES }} + + ${{ env.DETAILS_FOR_COMMIT_BODY }} + commit-message: 'meta: move one or more TSC members to emeritus' + labels: meta + title: 'meta: move one or more TSC members to emeritus' diff --git a/.github/workflows/license-builder.yml b/.github/workflows/license-builder.yml index 5f9af7bd7750ac..6ccb3b2f743ed6 100644 --- a/.github/workflows/license-builder.yml +++ b/.github/workflows/license-builder.yml @@ -1,9 +1,9 @@ -name: license update +name: License update on: schedule: # 00:00:00 every Monday # https://crontab.guru/#0_0_*_*_1 - - cron: "0 0 * * 1" + - cron: 0 0 * * 1 workflow_dispatch: jobs: @@ -12,14 +12,19 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - - run: "./tools/license-builder.sh" # Run the license builder tool + with: + persist-credentials: false + - run: ./tools/license-builder.sh # Run the license builder tool - uses: gr2m/create-or-update-pull-request-action@v1.x # Create a PR or update the Action's existing PR env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} with: author: Node.js GitHub Bot branch: actions/license-builder - title: "doc: run license-builder" - body: "License is likely out of date. This is an automatically generated PR by the `license-builder.yml` GitHub Action, which runs `license-builder.sh` and submits a new PR or updates an existing PR." + title: 'doc: run license-builder' + body: > + License is likely out of date. This is an automatically generated PR by + the `license-builder.yml` GitHub Action, which runs `license-builder.sh` + and submits a new PR or updates an existing PR. commit-message: 'doc: run license-builder' labels: meta diff --git a/.github/workflows/linters.yml b/.github/workflows/linters.yml index ebd27575c4778b..b8bc5ecb92efbd 100644 --- a/.github/workflows/linters.yml +++ b/.github/workflows/linters.yml @@ -1,4 +1,4 @@ -name: linters +name: Linters on: pull_request: @@ -10,6 +10,10 @@ on: - v[0-9]+.x-staging - v[0-9]+.x +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true + env: PYTHON_VERSION: '3.10' NODE_VERSION: lts/* @@ -20,6 +24,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v2 with: @@ -33,6 +39,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: @@ -46,6 +54,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v2 with: @@ -68,6 +78,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Use Node.js ${{ env.NODE_VERSION }} uses: actions/setup-node@v2 with: @@ -81,6 +93,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: @@ -96,6 +110,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Use Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: @@ -109,9 +125,11 @@ jobs: lint-sh: if: github.event.pull_request.draft == false - runs-on: ubuntu-20.04 + runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - run: shellcheck -V - name: Lint Shell scripts run: tools/lint-sh.js . @@ -120,9 +138,11 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - uses: mszostok/codeowners-validator@v0.6.0 with: - checks: "files,duppatterns" + checks: files,duppatterns lint-pr-url: if: ${{ github.event.pull_request }} runs-on: ubuntu-latest @@ -130,5 +150,6 @@ jobs: - uses: actions/checkout@v2 with: fetch-depth: 2 + persist-credentials: false # GH Actions squashes all PR commits, HEAD^ refers to the base branch. - run: git diff HEAD^ HEAD -G"pr-url:" -- "*.md" | ./tools/lint-pr-url.mjs ${{ github.event.pull_request.html_url }} diff --git a/.github/workflows/misc.yml b/.github/workflows/misc.yml deleted file mode 100644 index 64f58f2e96f448..00000000000000 --- a/.github/workflows/misc.yml +++ /dev/null @@ -1,35 +0,0 @@ -name: misc - -on: - pull_request: - types: [opened, synchronize, reopened, ready_for_review] - push: - branches: - - master - - main - - v[0-9]+.x-staging - - v[0-9]+.x - -env: - NODE_VERSION: lts/* - -jobs: - build-docs: - if: github.event.pull_request.draft == false - runs-on: ubuntu-latest - steps: - - uses: actions/checkout@v2 - - name: Use Node.js ${{ env.NODE_VERSION }} - uses: actions/setup-node@v2 - with: - node-version: ${{ env.NODE_VERSION }} - - name: Environment Information - run: npx envinfo - - name: Build - run: NODE=$(command -v node) make doc-only - - uses: actions/upload-artifact@v1 - with: - name: docs - path: out/doc - - name: Test - run: NODE=$(command -v node) make test-doc-ci TEST_CI_ARGS="-p actions" diff --git a/.github/workflows/notify-force-push.yml b/.github/workflows/notify-force-push.yml index 9c2fc3a6a4e64d..dac2d50ae266f7 100644 --- a/.github/workflows/notify-force-push.yml +++ b/.github/workflows/notify-force-push.yml @@ -8,7 +8,7 @@ name: Notify on Force Push jobs: slackNotification: name: Slack Notification - if: ${{ github.event.forced && github.repository == 'nodejs/node' }} + if: github.repository == 'nodejs/node' && github.event.forced runs-on: ubuntu-latest steps: - name: Slack Notification @@ -16,7 +16,7 @@ jobs: env: SLACK_COLOR: '#DE512A' SLACK_ICON: https://github.com/nodejs.png?size=48 - SLACK_TITLE: '${{ github.actor }} force-pushed to ${{ github.ref }}' + SLACK_TITLE: ${{ github.actor }} force-pushed to ${{ github.ref }} SLACK_MESSAGE: | A commit was force-pushed to by diff --git a/.github/workflows/test-asan.yml b/.github/workflows/test-asan.yml index 021747ace19a4b..5f2f1c93c3d521 100644 --- a/.github/workflows/test-asan.yml +++ b/.github/workflows/test-asan.yml @@ -1,13 +1,15 @@ -name: test-asan +name: Test ASan on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/test-asan.yml' push: branches: - master @@ -16,10 +18,16 @@ on: - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/test-asan.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -36,6 +44,8 @@ jobs: CONFIG_FLAGS: --enable-asan steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/test-internet.yml b/.github/workflows/test-internet.yml index 44757dd287280c..9b504980301dbc 100644 --- a/.github/workflows/test-internet.yml +++ b/.github/workflows/test-internet.yml @@ -1,4 +1,4 @@ -name: test-internet +name: Test internet on: workflow_dispatch: @@ -7,8 +7,7 @@ on: pull_request: types: [opened, synchronize, reopened, ready_for_review] - paths: - - test/internet/** + paths: [test/internet/**] push: branches: - master @@ -16,8 +15,11 @@ on: - canary - v[0-9]+.x-staging - v[0-9]+.x - paths: - - test/internet/** + paths: [test/internet/**] + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -28,6 +30,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/test-linux.yml b/.github/workflows/test-linux.yml index 01227a0ff92289..22b5e9a35d3dd9 100644 --- a/.github/workflows/test-linux.yml +++ b/.github/workflows/test-linux.yml @@ -1,7 +1,11 @@ -name: test-linux +name: Test Linux on: pull_request: + paths-ignore: + - README.md + - .github/** + - '!.github/workflows/test-linux.yml' types: [opened, synchronize, reopened, ready_for_review] push: branches: @@ -10,6 +14,14 @@ on: - canary - v[0-9]+.x-staging - v[0-9]+.x + paths-ignore: + - README.md + - .github/** + - '!.github/workflows/test-linux.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -21,6 +33,8 @@ jobs: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 6c5e3ab310cb27..40885bd9e65c5a 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -1,13 +1,15 @@ -name: test-macOS +name: Test macOS on: pull_request: types: [opened, synchronize, reopened, ready_for_review] paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/test-macos.yml' push: branches: - master @@ -16,10 +18,16 @@ on: - v[0-9]+.x-staging - v[0-9]+.x paths-ignore: - - '.mailmap' + - .mailmap - '**.md' - - 'AUTHORS' - - 'doc/**' + - AUTHORS + - doc/** + - .github/** + - '!.github/workflows/test-macos.yml' + +concurrency: + group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }} + cancel-in-progress: true env: PYTHON_VERSION: '3.10' @@ -31,12 +39,22 @@ jobs: runs-on: macos-latest steps: - uses: actions/checkout@v2 + with: + persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} uses: actions/setup-python@v2 with: python-version: ${{ env.PYTHON_VERSION }} - name: Environment Information run: npx envinfo + # The `npm ci` for this step fails a lot as part of the Test step. Run it + # now so that we don't have to wait 2 hours for the Build step to pass + # first before that failure happens. (And if there's something about + # `make run-ci -j2` that is causing the failure and the failure doesn't + # happen anymore running this step here first, that's also useful + # information.) + - name: tools/doc/node_modules workaround + run: make tools/doc/node_modules - name: Build run: make build-ci -j2 V=1 CONFIG_FLAGS="--error-on-warn" - name: Test diff --git a/.github/workflows/tools.yml b/.github/workflows/tools.yml new file mode 100644 index 00000000000000..a9ae1372e42bd9 --- /dev/null +++ b/.github/workflows/tools.yml @@ -0,0 +1,74 @@ +name: Tools update +on: + schedule: + # Run once a week at 00:05 AM UTC on Sunday. + - cron: 5 0 * * 0 + + workflow_dispatch: + +jobs: + tools-update: + if: github.repository == 'nodejs/node' + runs-on: ubuntu-latest + strategy: + fail-fast: false # Prevent other jobs from aborting if one fails + matrix: + include: + - id: eslint + run: | + cd tools + NEW_VERSION=$(npm view eslint dist-tags.latest) + CURRENT_VERSION=$(node -p "require('./node_modules/eslint/package.json').version") + if [ "$NEW_VERSION" != "$CURRENT_VERSION" ]; then + echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV + ./update-eslint.sh + fi + - id: corepack + run: | + make corepack-update + echo "NEW_VERSION=$(node deps/corepack/dist/corepack.js --version)" >> $GITHUB_ENV + - id: lint-md-dependencies + run: | + cd tools/lint-md + npm ci + NEW_VERSION=$(npm outdated --parseable | cut -d: -f4 | xargs) + if [ "$NEW_VERSION" != "" ]; then + echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV + rm -rf package-lock.json node_modules + # Include $NEW_VERSION to explicitly update the package.json + # entry for the dependency and also so that semver-major updates + # are not skipped. + npm install --ignore-scripts $NEW_VERSION + npm install --ignore-scripts + cd ../.. + make lint-md-rollup + fi + - id: doc + run: | + cd tools/doc + npm ci + NEW_VERSION=$(npm outdated --parseable | cut -d: -f4 | xargs) + if [ "$NEW_VERSION" != "" ]; then + echo "NEW_VERSION=$NEW_VERSION" >> $GITHUB_ENV + rm -rf package-lock.json node_modules + # Include $NEW_VERSION to explicitly update the package.json + # entry for the dependency and also so that semver-major updates + # are not skipped. + npm install --ignore-scripts $NEW_VERSION + npm install --ignore-scripts + fi + steps: + - uses: actions/checkout@v2 + with: + persist-credentials: false + - run: ${{ matrix.run }} + - uses: gr2m/create-or-update-pull-request-action@v1 # Create a PR or update the Action's existing PR + env: + GITHUB_TOKEN: ${{ secrets.GH_USER_TOKEN }} + with: + author: Node.js GitHub Bot + body: This is an automated update of ${{ matrix.id }} to ${{ env.NEW_VERSION }}. + branch: actions/tools-update-${{ matrix.id }} # Custom branch *just* for this Action. + commit-message: 'tools: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}' + labels: tools + title: 'tools: update ${{ matrix.id }} to ${{ env.NEW_VERSION }}' diff --git a/.gitignore b/.gitignore index b7a33d86bedf61..bc986b3c4c0659 100644 --- a/.gitignore +++ b/.gitignore @@ -90,6 +90,9 @@ _UpgradeReport_Files/ /deps/openssl/openssl.props /deps/openssl/openssl.targets /deps/openssl/openssl.xml +/deps/openssl/openssl-fipsmodule.props +/deps/openssl/openssl-fipsmodule.targets +/deps/openssl/openssl-fipsmodule.xml # generated by gyp on android /*.target.mk /*.host.mk @@ -156,3 +159,6 @@ install_manifest.txt __pycache__ .DS_Store *~ + +# === Rules for C++ development === +compile_commands.json diff --git a/.mailmap b/.mailmap index 97d73f9a68660a..ea89c8e96c1076 100644 --- a/.mailmap +++ b/.mailmap @@ -1,8 +1,11 @@ +3nprob <3nprob@3nprob> Aaron Bieber Aaron Heckmann Aayush Ahuja Abe Fettig Abhimanyu Vashisht +Akhil Marsonya +Akhil Marsonya <16393876+marsonya@users.noreply.github.com> Akito Ito Alejandro Estrada Alejandro Estrada @@ -12,6 +15,7 @@ Alex Hultman Alex Jordan Alex Kocharin Alex Kocharin +Alex Zherdev Alexander Marchenko Alexey Kupershtokh Alexis Campailla @@ -31,6 +35,7 @@ Anna Henningsen Anna Henningsen Anna Magdalena Kedzierska Antoine Amara +apeltop Aria Stewart Arlo Breault Arnaud Lefebvre @@ -45,10 +50,12 @@ Ashley Maceli Ashok Suthar Ashutosh Kumar Singh Atsuo Fukaya +Azard <330815461@qq.com> Ben Lugavere Ben Noordhuis Ben Noordhuis Ben Taber +Benedikt Meurer Benjamin Coe Benjamin Coe Benjamin Fleischer @@ -68,8 +75,10 @@ Brandon Benvie Brandon Kobel Brendan Ashworth Brent Pendergraft +Brett Kiefer Brian White Brian White +Brian White Caleb Boyd Calvin Metcalf Calvin Metcalf @@ -77,6 +86,7 @@ Caralyn Reisle Charles Charles Rudolph Chen Gang +Chen Gang <13298548+MoonBall@users.noreply.github.com> Chew Choon Keat Chris Andrews Chris Johnson @@ -88,24 +98,32 @@ Christopher Lenz Claudio Rodriguez Colin Ihrig Corey Martin +Cyril Lakech <1169286+clakech@users.noreply.github.com> +Daiki Arai Damien Simonin Feugas +Dan Carney +Dan Fabulich Dan Kaplun Dan Williams Daniel Abrão Daniel Berger Daniel Bevenius Daniel Chcouri <333222@gmail.com> +Daniel Clifford Daniel Gröber Daniel Gröber Daniel Paulino Daniel Pihlström Daniel Wang Daniel Wang +Danielle Adams <6271256+danielleadams@users.noreply.github.com> Danielle Adams +Danny Guo Danny Nemer Danny Nemer Darshan Sen Darshan Sen +Dave Olszewski Dave Pacheco David Cai David Mark Clements @@ -121,8 +139,10 @@ Eduard Burtescu Einar Otto Stangvik Elliott Cable Emanuel Buholzer +Enrico Pertoso Eric Bickle Eric Phetteplace +Erik Corry Ernesto Salazar Erwin W. Ramadhan Ethan Arrowood @@ -148,6 +168,7 @@ Florian Margaine Forrest L Norvell Forrest L Norvell Franziska Hinkelmann +Franziska Hinkelmann Friedemann Altrock Fuji Goro Gabriel de Perthuis @@ -156,6 +177,7 @@ Gareth Ellis Garwah Lam garygsc Geir Hauge +Geoffrey Booth <456802+GeoffreyBooth@users.noreply.github.com> Geoffrey Booth Geoffrey Booth Geoffrey Bugaisky @@ -189,7 +211,9 @@ Isaac Z. Schlueter Isuru Siriwardana Italo A. Casas Jackson Tian +Jacob Smith <3012099+JakobJingleheimer@users.noreply.github.com> Jake Verbaten +Jakob Kummerow Jamen Marzonie James Beavers James Bromwell <943160+thw0rted@users.noreply.github.com> @@ -197,6 +221,7 @@ James Hartig James Ide James M Snell James Nimlos +James Sumners Jan Krems Jem Bezooyen Jem Bezooyen @@ -205,12 +230,16 @@ Jennifer Bland JeongHoon Byun Jered Schmidt Jeremiah Senkpiel +Jeremy Apthorp Jérémy Lal Jérémy Lal Jerry Chin Jessica Quynh Tran Jesús Leganés-Combarro 'piranna Jimb Esser +Jithil P Ponnan +Jithil P Ponnan +Jochen Eisinger Joe Shaw Johan Bergström Johan Dahlberg @@ -253,6 +282,7 @@ Kazuyuki Yamada Ke Ding Keith M Wesolowski Kelsey Breseman +Kevin Millikin Khaidi Chu Khaidi Chu Kimberly Wilber @@ -266,6 +296,7 @@ Kyle Robinson Young Lakshmi Swetha Gopireddy Lakshmi Swetha Gopireddy Lars-Magnus Skog +Lasse R.H. Nielsen Leeseean Chiu Lucas Pardue Luke Bayes @@ -299,8 +330,12 @@ Matthew Lye Matthew Turner Matthias Bastian Maurice Hayward +Maya Lekova +Mestery Michael Bernstein -Michael Dawson +Michael Dawson +Michael Dawson +Michael Starzinger Michaël Zasso Michael-Rainabba Richardson Michał Gołębiowski-Owczarek @@ -319,6 +354,8 @@ Miroslav Bajtoš Miroslav Bajtoš Mitar Milutinovic Mithun Sasidharan +Mohammed Keyvanzadeh +Mohammed Keyvanzadeh <62040526+VoltrexMaster@users.noreply.github.com> Myles Borins Myles Borins Myles Borins @@ -331,8 +368,10 @@ Nigel Kibodeaux Nikola Glavina Nikolai Vavilov Nils Kuhnhenn +Nitzan Uziely Nitzan Uziely Noah Rose Ledesma +Oliver Chang Oluwaseun Omoyajowo Onne Gorter Oscar Martinez @@ -341,6 +380,7 @@ Paul Querna Pedro Lima Peng Lyu Peter Flannery +Peter Marshall Peter Marton Peter Paugh Phillip Johnsen @@ -349,6 +389,7 @@ Qingyu Deng Rachel White Ratikesh Misra Ravindra Barthwal +Ray Ray Morgan Ray Solomon Raymond Feng @@ -363,6 +404,7 @@ rickyes <0x19951125@gmail.com> Rob Adelmann Rob Adelmann Robert Nagy +Robert Nagy Robin Drexler Rod Machen Roman Klauke @@ -385,9 +427,9 @@ Sam Roberts Sam Shull Sam Shull Sam Shull -Samuel Attard Samantha Sample <=> Sambasiva Suda +Samuel Attard San-Tai Hsu Santiago Gimeno Sarah Meyer @@ -407,6 +449,7 @@ Shiya Luo Shobhit Chittora Siddharth Mahendraker Simon Willison +Simone Busoli Siobhan O'Donovan Siyuan Gao solebox <5013box@gmail.com> @@ -423,6 +466,7 @@ Stewart X Addison Suraiya Hameed Suramya shah Surya Panikkal +Sven Panne Szymon Marczak <36894700+szmarczak@users.noreply.github.com> Tadashi SAWADA Tadhg Creedon @@ -439,6 +483,7 @@ Thomas Lee Thomas Reggi Thomas Watson Tierney Cyren +Tierney Cyren Tierney Cyren Tim Caswell Tim Costa @@ -446,12 +491,14 @@ Tim Price Tim Ruffles Tim Smart Tim Smart +Timothy Gu Timothy Leverett Timothy O. Peters Timur Shemsedinov Ting Shao TJ Holowaychuk TJ Holowaychuk +Tobias Nießen Tobias Nießen Toby Farley Toby Stableford @@ -463,20 +510,22 @@ Tom Hughes-Croucher Tom Purcell Tom White Tomoki Okahana +Toon Verwaest Tracy Hinds Travis Meisenheimer Trevor Burnham Trivikram Kamat <16024985+trivikr@users.noreply.github.com> ttzztztz Tyler Larson -Ujjwal Sharma Ujjwal Sharma +Ujjwal Sharma Uttam Pawar +Viero Fernando <60427892+vierofernando@users.noreply.github.com> Viktor Karpov Vincent Voyer Vladimir de Turckheim -Voltrex <62040526+VoltrexMaster@users.noreply.github.com> vsemozhetbyt +Vyacheslav Egorov Wang Xinyong Wei-Wei Wu Weijia Wang @@ -490,6 +539,9 @@ Xavier J Ortiz xiaoyu <306766053@qq.com> Xu Meng Yael Hermon +Yang Guo +Yash Ladha <18033231+yashLadha@users.noreply.github.com> +Yash Ladha ycjcl868 <45808948@qq.com> Yingchen Xue Yongsheng Zhang @@ -507,15 +559,3 @@ Zachary Vacura Zoran Tomicic Сковорода Никита Андреевич 隋鑫磊 - -# These people didn't contribute patches to node directly, -# but we've landed their v8 patches in the node repository: -Daniel Clifford -Erik Corry -Jakob Kummerow -Kevin Millikin -Lasse R.H. Nielsen -Michael Starzinger -Toon Verwaest -Vyacheslav Egorov -Yang Guo diff --git a/.yamllint.yaml b/.yamllint.yaml index 97ec306ea3fa0c..c8e63ec722006e 100644 --- a/.yamllint.yaml +++ b/.yamllint.yaml @@ -1,9 +1,40 @@ extends: default rules: + braces: + min-spaces-inside: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: 0 + max-spaces-inside-empty: 0 + + brackets: + min-spaces-inside: 0 + max-spaces-inside: 1 + min-spaces-inside-empty: 0 + max-spaces-inside-empty: 0 + + comments-indentation: + level: error + + document-end: + present: false + document-start: + level: error present: false + + empty-lines: + max: 1 + + indentation: + spaces: 2 + line-length: disable + + quoted-strings: + quote-type: single + required: only-when-needed + truthy: allowed-values: ['true', 'false', 'on', 'off'] diff --git a/AUTHORS b/AUTHORS index 097cb3dd193369..8355af1348d15b 100644 --- a/AUTHORS +++ b/AUTHORS @@ -149,6 +149,7 @@ Theo Schlossnagle Kai Chen Daniel Chcouri <333222@gmail.com> Mihai Călin Bazon +Kevin Millikin Ali Farhadi Daniel Ennis Carter Allen @@ -198,6 +199,7 @@ Kip Gebhardt Stefan Rusu Shigeki Ohtsu Wojciech Wnętrzak +Vyacheslav Egorov Devon Govett Steve Engledow Pierre-Alexandre St-Jean @@ -219,6 +221,7 @@ Antranig Basman Maciej Małecki Evan Martin Peter Lyons +Jakob Kummerow Jann Horn Abimanyu Raja Karl Skomski @@ -308,10 +311,12 @@ Farid Neshat Johannes Wüller Erik Lundin Bryan Cantrill +Michael Starzinger Yosef Dinerstein Nathan Friedly Aaron Jacobs Mustansir Golawala +Lasse R.H. Nielsen Atsuo Fukaya Domenic Denicola Joshua S. Weinstein @@ -328,6 +333,7 @@ J. Lee Coltrane Javier Hernández James Koval Kevin Gadd +Yang Guo Ray Solomon Kevin Bowman Erwin van der Koogh @@ -336,8 +342,11 @@ Simon Sturmer Joel Brandt Marc Harter Nuno Job +Daniel Clifford Ben Kelly Felix Böhm +Erik Corry +Toon Verwaest George Shank Gabriel de Perthuis Vladimir Beloborodov @@ -522,6 +531,7 @@ Lorenz Leutgeb ayanamist gluxon Tom Gallacher +Sven Panne Jo Liss Jun Ma Jacob Hoffman-Andrews @@ -542,6 +552,7 @@ Saúl Ibarra Corretgé Greg Brail Shuhei Kagawa Josh Dague +Dan Carney Goh Yisheng (Andrew) James Pickard Andrew Low @@ -564,6 +575,7 @@ Greg Sabia Tucker Dan Kaplun Colin Ihrig Mark Stosberg +Jochen Eisinger Calvin Metcalf Ryan Cole Kevin Decker @@ -712,7 +724,7 @@ Pavel Medvedev Russell Dempsey Tierney Cyren h7lin -Michael Dawson +Michael Dawson Ruben Verborgh Ken Perkins Santiago Gimeno @@ -1001,6 +1013,7 @@ Ingvar Stepanyan Adrian Estrada Matt Lavin Joao Andrade +Pavel Feldman Bartosz Sosnowski Nicolas Romer David A. Wheeler @@ -1040,12 +1053,14 @@ Joe Esposito Erin Spiceland Ravindra Barthwal Joey Cozza +Franziska Hinkelmann Vladimir de Turckheim Taehee Kang Igor Savin Pat Pannuto Haojian Wu John Gardner +Enrico Pertoso Aleksei Koziatinskii Adrian Nitu Ben Gourley @@ -1062,7 +1077,7 @@ David Keeler Zwb Paul Grock Hubert Mine -Dan Fabulich +Dan Fabulich Mike Ralphson Alexis374 <879736822@qq.com> Angel Stoyanov @@ -1084,7 +1099,7 @@ Rachel Jason Ginchereau Paul Kiddie scott stern -Danny Guo +Danny Guo lrlna Matt Lang Thomas van Lankveld @@ -1092,6 +1107,7 @@ Tarjei Husøy Wietse Venema Jonathan Prince Fikret Burak Gazioglu +Aleksey Kozyatinskiy delvedor Jermaine Oppong Richard Walker @@ -1392,7 +1408,7 @@ Howard Hellyer Amelia Clarke James Ide Ben Schmidt -James Sumners +James Sumners Bradley Curran chiaki-yokoo Benjamin Fleischer @@ -1535,11 +1551,12 @@ sallen450 OriLev Zongmin Lei lena -Azard <330815461@qq.com> +Azard Ezequiel Garcia Kyle Farnung Weijia Wang Nataly Shrits +Oliver Chang Jaime Bernardo Natanael Log Chen Gang @@ -1551,6 +1568,7 @@ Jimmy Thomson David Drysdale Roman Shoryn Peter Czibik +Igor Sheludko 章礼平 Fraser Xu Song, Bintao Garfield @@ -1600,14 +1618,12 @@ Shivanth MP erdun <494251936@qq.com> Jiajie Hu Matt Woicik -Franziska Hinkelmann alexbostock Matthew Alsup Greg Alexander dcharbonnier Jared Kantrowitz Guy Margalit -Azard nishijayaraj Nick Stanish Mandeep Singh @@ -1642,7 +1658,6 @@ Michał Wadas Mohd Maqbool Alam Ian Perkins Jimmy Cann -Dave Olszewski Anatoli Papirovski Simon Brewster creeperyang @@ -1850,6 +1865,7 @@ Luke Childs Robert Nagy Nikki St Onge zhangzifa +Tobias Tebbi hwaisiu Thomas Karsten Lance Barlaan @@ -1871,6 +1887,7 @@ Tomoki Okahana Aayush Ahuja Paul Marion Camantigue Jayson D. Henkel +Ben Smith Nicolas 'Pixel' Noble Ashish Kaila c0b <14798161+c0b@users.noreply.github.com> @@ -1950,7 +1967,6 @@ Pawan Jangid Stephan Smith joelostrowski Javier Blanco -Cyril Lakech <1169286+clakech@users.noreply.github.com> Grant Gasparyan Klemen Kogovsek Gus Caplan @@ -2016,6 +2032,7 @@ spring_raining Hiromu Yoshiwara yuza yuko smatsu-hl +Hannes Payer Bamieh WhoMeNope Junichi Kajiwara @@ -2026,6 +2043,8 @@ Hannes Magnusson ChungNgoops Jose M. Palacios Diaz hmammedzadeh +Sergei Datsenko +Marja Hölttä IHsuan Francisco Gerardo Neri Andriano Shilo Mangam @@ -2060,6 +2079,7 @@ Salame William Todd Wong Mykola Bilochub Qingyan Li +Jinho Bang Sho Miyamoto 现充 furstenheim @@ -2109,6 +2129,7 @@ Eric Bickle Ujjwal Sharma Wei-Wei Wu Prateek Singh +Mythri Alle Ken Lin Piotr Grzesik Damien Simonin Feugas @@ -2164,6 +2185,7 @@ John Musgrave Dhansuhu Uzumaki Beni von Cheni Ilya Sotov +Ulan Degenbaev William Cohen Ajido kailash k yogeshwar @@ -2221,7 +2243,6 @@ Misty De Meo James Kylstra Shelley Vohr Deepjyoti Mondal -Brett Kiefer Kevin Thomas ZaneHannanAU Fernando Doglio @@ -2257,10 +2278,12 @@ Simionescu, Radu mariotsi prayag21 <10997858+prayag21@users.noreply.github.com> Bruno Pinho +Michael Achenbach Anto Aravinth Helio Frota <00hf11@gmail.com> Jacob Page sagulati +Gabriel Charette conectado Vitor Bruno de Oliveira Barth Christian Clauss @@ -2275,6 +2298,7 @@ Ouyang Yadong yahavfuchs Thomas Leah Musa Hamwala +Andrey Lushnikov James Bromwell Jeremy Apthorp Eugen Cazacu <32613393+oygen87@users.noreply.github.com> @@ -2286,6 +2310,7 @@ Dzmitry_Prudnikau Ian McKellar Jennifer Bland Kyle Fuller +Camillo Bruni Yongsheng Zhang Neeraj Laad Scott Van Gilder @@ -2300,6 +2325,7 @@ Szymon Marczak Tessei Kameyama Chakravarthy S M Andreas Haas +Clemens Hammacher Saud Khanzada Hariss096 William Skellenger @@ -2597,7 +2623,6 @@ DoiChris VeysonD susantruong Takahiro Nakamura -Daiki Arai horihiro grimrose timothy searcy @@ -2677,6 +2702,7 @@ toshi1127 nd-02110114 dkundel Evan Plaice +Simon Zünd simon3000 Marcos Casagrande Ruwan Geeganage @@ -2837,7 +2863,7 @@ akitsu-sanae Minuk Park Jim Schlight Theotime Poisseau -Alex Zherdev +Alex Zherdev dev-313 Michael Perrotte Alexandre Ferrando @@ -2849,6 +2875,7 @@ Patrick Housley Artem Maksimov Nolik palmires +Clemens Backes Vadim Gorbachev galina.prokofeva Nadya @@ -2918,7 +2945,6 @@ jens-cappelle bruce-one Jason Macgowan Vincent Dhennin -Alex Zherdev Jeny Tchoupinax Sebastien Ahkrin @@ -3001,7 +3027,7 @@ Christian Niederer Sk Sajidul Kadir Bartlomiej Brzozowski Saajan -Yash Ladha +Yash Ladha Alex R Hachimi Aa (Sfeir) Daniel Estiven Rico Posada @@ -3038,9 +3064,9 @@ Karol Walasek osher szTheory Jonathan Buhacoff +Shu-yu Guo Paolo Insogna Richard Townsend -Dan Fabulich Deep310 <55121371+Deep310@users.noreply.github.com> Dominykas Blyžė Wenning Zhang <1527841714@qq.com> @@ -3092,7 +3118,6 @@ Frank Lemanschik Justice Almanzar Maksim Sinik João Lucas Lucchetta -Danny Guo Turner Jabbour Igor Mikhalev DeeDeeG @@ -3121,6 +3146,7 @@ Hussaina Begum Nandyala Danny Sonnenschein Sourav Shaw H Adinarayana +Kim-Anh Tran lucasg Brian 'bdougie' Douglas Lee, Bonggi @@ -3194,7 +3220,7 @@ Akash Negi <55234838+NegiAkash890@users.noreply.github.com> James Addison Fabian Cook Kalvin Vasconcellos -marsonya +Akhil Marsonya Qingyu Deng Matin Zadehdolatabad Daniel Clark @@ -3223,7 +3249,7 @@ Darkripper214 Anu Pasumarthy HiroyukiYagihashi Arkerone -Voltrex +Mohammed Keyvanzadeh ycjcl868 <45808948@qq.com> Serkan Özel Ferdi @@ -3246,7 +3272,7 @@ Arnold Zokas Nils Dralle Jesse Chan helloyou2012 -MrJithil +Jithil P Ponnan Rodolfo Carvalho Jordan Baczuk moander @@ -3274,7 +3300,7 @@ Rohan Sharma AkshayK FrankEntriken <42781627+FrankEntriken@users.noreply.github.com> Cyrille Bourgois -Jacob <3012099+JakobJingleheimer@users.noreply.github.com> +Jacob Smith <3012099+JakobJingleheimer@users.noreply.github.com> ejose19 <8742215+ejose19@users.noreply.github.com> Tobias Koppers Makoto Kato @@ -3284,7 +3310,7 @@ nerdthatnoonelikes Nikita Rykov <40735471+angrymouse@users.noreply.github.com> Benjamin Mayr Lew Gordon -Mestery +Mestery Himadri Ganguly Howie Zhao Luan Devecchi @@ -3293,12 +3319,12 @@ Justin Raz Luvaton Don Jayamanne Felix Yan -Ray +Ray Node.js GitHub Bot Alexey Ten JckXia Christian Boehlke -null <60427892+vierofernando@users.noreply.github.com> +Viero Fernando Dominic Elm treysis shfshanyue @@ -3328,6 +3354,85 @@ Ignacio Carbajo Constantine Kim OliverOdo Mark Skelton +Ross McIlroy Isaac Brodsky +simon-id +Francesco Trotta +Richie Bendall +ryan +Piotr Rybak +Jean Burellier +Subhi Al Hasan +3nprob +Martin Jansa +Omar El-Mihilmy +Yoshiki +Keeley Hammond +git-srinivas +Idan Attias +twchn +Hirotaka Tagawa / wafuwafu13 +Henadzi <74081058+Gena888@users.noreply.github.com> +Jonah Snider +notroid5 <87585310+notroid5@users.noreply.github.com> +Jameson Nash +Shinho Ahn +jakub-g +Irakli Gozalishvili +Gabriel Bota <94833492+dygabo@users.noreply.github.com> +AlphaDio +Mateusz Burzyński +mawaregetsuka <33221990+mawaregetsuka@users.noreply.github.com> +Marcos Bérgamo +Thiago Santos +CallMeLaNN +Eric Jacobson +Dmitry Petrov +Shaw <784487301@qq.com> +David Sanders +alexcfyung +Gaby Baghdadi +Wayne Zhang +nikoladev <15011519+nikoladev@users.noreply.github.com> +Antonio Román +JoostK +Yu +Shi Pujin +Daoming Qiu +Job +Alex Agranov +Shalvah +Gabriel Trujillo +LiviaMedeiros +iMoses +Harshil jain +Tobias Hernstig <30827238+thernstig@users.noreply.github.com> +Ben McCann <322311+benmccann@users.noreply.github.com> +Caio Agiani +Ateş Göral +Tony Gorez +ofirbarak +Bar Admoni +ofir +Xuguang Mei +Elad Nava +Balakrishna Avulapati +Aaron Xie +小菜 +Raymond Zhao +Austin Cheney +Michael Scovetta +Valters Jansons +Marcos Bjoerkelund +T•Ø•R•Ü•S +Sean Quinlan <1011062+sbquinlan@users.noreply.github.com> +Derek Wolpert <48101033+derekwolpert@users.noreply.github.com> +wbt +Alexandru Comanescu +madflow +Austin Kelleher +apeltop +Livia Medeiros <74449973+LiviaMedeiros@users.noreply.github.com> +Nikolaos Papaspyrou # Generated by tools/update-authors.js diff --git a/BUILDING.md b/BUILDING.md index dc159c8b539901..32cc5fc260d561 100644 --- a/BUILDING.md +++ b/BUILDING.md @@ -99,61 +99,61 @@ Node.js does not support a platform version if a vendor has expired support for it. In other words, Node.js does not support running on End-of-Life (EoL) platforms. This is true regardless of entries in the table below. -| Operating System | Architectures | Versions | Support Type | Notes | -| ---------------- | ---------------- | ------------------------------- | ---------------------------------------------------------------- | --------------------------------------------------------------------------- | -| GNU/Linux | x64 | kernel >= 3.10, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04 [1](#fn1), Debian 9, EL 7 [2](#fn2) | -| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | -| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | -| GNU/Linux | arm64 | kernel >= 4.5, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04, Debian 9, EL 7 [3](#fn3) | -| GNU/Linux | armv7 | kernel >= 4.14, glibc >= 2.24 | Tier 1 | e.g. Ubuntu 18.04, Debian 9 | -| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | -| GNU/Linux | ppc64le >=power8 | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. Ubuntu 16.04 [1](#fn1), EL 7 [2](#fn2) | -| GNU/Linux | s390x | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. EL 7 [2](#fn2) | -| Windows | x64, x86 (WoW64) | >= Windows 8.1/2012 R2 | Tier 1 | [4](#fn4),[5](#fn5) | -| Windows | x86 (native) | >= Windows 8.1/2012 R2 | Tier 1 (running) / Experimental (compiling) [6](#fn6) | | -| Windows | x64, x86 | Windows Server 2012 (not R2) | Experimental | | -| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | | -| macOS | x64 | >= 10.13 | Tier 1 | For notes about compilation see [7](#fn7) | -| macOS | arm64 | >= 11 | Tier 1 | | -| SmartOS | x64 | >= 18 | Tier 2 | | -| AIX | ppc64be >=power7 | >= 7.2 TL04 | Tier 2 | | -| FreeBSD | x64 | >= 12.2 | Experimental | | - -1: GCC 8 is not provided on the base platform. Users will -need the -[Toolchain test builds PPA](https://launchpad.net/\~ubuntu-toolchain-r/+archive/ubuntu/test?field.series\_filter=xenial) -or similar to source a newer compiler. - -2: GCC 8 is not provided on the base platform. Users will -need the -[devtoolset-8](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/) -or later to source a newer compiler. - -3: Older kernel versions may work for ARM64. However the -Node.js test infrastructure only tests >= 4.5. - -4: On Windows, running Node.js in Windows terminal emulators -like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty) -for the tty channels to work (e.g. `winpty node.exe script.js`). -In "Git bash" if you call the node shell alias (`node` without the `.exe` -extension), `winpty` is used automatically. - -5: The Windows Subsystem for Linux (WSL) is not -supported, but the GNU/Linux build process and binaries should work. The -community will only address issues that reproduce on native GNU/Linux -systems. Issues that only reproduce on WSL should be reported in the -[WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the -Windows binary (`node.exe`) in WSL is not recommended. It will not work -without workarounds such as stdio redirection. - -6: Running Node.js on x86 Windows should work and binaries -are provided. However, tests in our infrastructure only run on WoW64. -Furthermore, compiling on x86 Windows is Experimental and -may not be possible. - -7: Our macOS x64 Binaries are compiled with 10.13 as a target. -However there is no guarantee compiling on 10.13 will work as Xcode11 is -required to compile. +| Operating System | Architectures | Versions | Support Type | Notes | +| ---------------- | ---------------- | ------------------------------- | ----------------------------------------------- | ----------------------------------------- | +| GNU/Linux | x64 | kernel >= 3.10, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04[^1], Debian 9, EL 7[^2] | +| GNU/Linux | x64 | kernel >= 3.10, musl >= 1.1.19 | Experimental | e.g. Alpine 3.8 | +| GNU/Linux | x86 | kernel >= 3.10, glibc >= 2.17 | Experimental | Downgraded as of Node.js 10 | +| GNU/Linux | arm64 | kernel >= 4.5, glibc >= 2.17 | Tier 1 | e.g. Ubuntu 16.04, Debian 9, EL 7[^3] | +| GNU/Linux | armv7 | kernel >= 4.14, glibc >= 2.24 | Tier 1 | e.g. Ubuntu 18.04, Debian 9 | +| GNU/Linux | armv6 | kernel >= 4.14, glibc >= 2.24 | Experimental | Downgraded as of Node.js 12 | +| GNU/Linux | ppc64le >=power8 | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. Ubuntu 16.04[^1], EL 7[^2] | +| GNU/Linux | s390x | kernel >= 3.10.0, glibc >= 2.17 | Tier 2 | e.g. EL 7[^2] | +| Windows | x64, x86 (WoW64) | >= Windows 8.1/2012 R2 | Tier 1 | [^4],[^5] | +| Windows | x86 (native) | >= Windows 8.1/2012 R2 | Tier 1 (running) / Experimental (compiling)[^6] | | +| Windows | x64, x86 | Windows Server 2012 (not R2) | Experimental | | +| Windows | arm64 | >= Windows 10 | Tier 2 (compiling) / Experimental (running) | | +| macOS | x64 | >= 10.13 | Tier 1 | For notes about compilation see [^7] | +| macOS | arm64 | >= 11 | Tier 1 | | +| SmartOS | x64 | >= 18 | Tier 2 | | +| AIX | ppc64be >=power7 | >= 7.2 TL04 | Tier 2 | | +| FreeBSD | x64 | >= 12.2 | Experimental | | + +[^1]: GCC 8 is not provided on the base platform. Users will + need the + [Toolchain test builds PPA](https://launchpad.net/\~ubuntu-toolchain-r/+archive/ubuntu/test?field.series_filter=xenial) + or similar to source a newer compiler. + +[^2]: GCC 8 is not provided on the base platform. Users will + need the + [devtoolset-8](https://www.softwarecollections.org/en/scls/rhscl/devtoolset-8/) + or later to source a newer compiler. + +[^3]: Older kernel versions may work for ARM64. However the + Node.js test infrastructure only tests >= 4.5. + +[^4]: On Windows, running Node.js in Windows terminal emulators + like `mintty` requires the usage of [winpty](https://github.com/rprichard/winpty) + for the tty channels to work (e.g. `winpty node.exe script.js`). + In "Git bash" if you call the node shell alias (`node` without the `.exe` + extension), `winpty` is used automatically. + +[^5]: The Windows Subsystem for Linux (WSL) is not + supported, but the GNU/Linux build process and binaries should work. The + community will only address issues that reproduce on native GNU/Linux + systems. Issues that only reproduce on WSL should be reported in the + [WSL issue tracker](https://github.com/Microsoft/WSL/issues). Running the + Windows binary (`node.exe`) in WSL will not work without workarounds such as + stdio redirection. + +[^6]: Running Node.js on x86 Windows should work and binaries + are provided. However, tests in our infrastructure only run on WoW64. + Furthermore, compiling on x86 Windows is Experimental and + may not be possible. + +[^7]: Our macOS x64 Binaries are compiled with 10.13 as a target. + However there is no guarantee compiling on 10.13 will work as Xcode11 is + required to compile. ### Supported toolchains @@ -174,19 +174,19 @@ Binaries at are produced on: | aix-ppc64 | AIX 7.2 TL04 on PPC64BE with GCC 8 | | darwin-x64 | macOS 10.15, Xcode Command Line Tools 11 with -mmacosx-version-min=10.13 | | darwin-arm64 (and .pkg) | macOS 11 (arm64), Xcode Command Line Tools 12 with -mmacosx-version-min=10.13 | -| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8 [8](#fn8) | +| linux-arm64 | CentOS 7 with devtoolset-8 / GCC 8[^8] | | linux-armv7l | Cross-compiled on Ubuntu 18.04 x64 with [custom GCC toolchain](https://github.com/rvagg/rpi-newer-crosstools) | -| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8 [8](#fn8) | -| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8 [8](#fn8) | -| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8 [8](#fn8) | +| linux-ppc64le | CentOS 7 with devtoolset-8 / GCC 8[^8] | +| linux-s390x | RHEL 7 with devtoolset-8 / GCC 8[^8] | +| linux-x64 | CentOS 7 with devtoolset-8 / GCC 8[^8] | | win-x64 and win-x86 | Windows 2012 R2 (x64) with Visual Studio 2019 | -8: The Enterprise Linux devtoolset-8 allows us to compile -binaries with GCC 8 but linked to the glibc and libstdc++ versions of the host -platforms (CentOS 7 / RHEL 7). Therefore, binaries produced on these systems -are compatible with glibc >= 2.17 and libstdc++ >= 6.0.20 (`GLIBCXX_3.4.20`). -These are available on distributions natively supporting GCC 4.9, such as -Ubuntu 14.04 and Debian 8. +[^8]: The Enterprise Linux devtoolset-8 allows us to compile binaries with GCC 8 + but linked to the glibc and libstdc++ versions of the host platforms + (CentOS 7 / RHEL 7). Therefore, binaries produced on these systems are + compatible with glibc >= 2.17 and libstdc++ >= 6.0.20 (`GLIBCXX_3.4.20`). + These are available on distributions natively supporting GCC 4.9, such as + Ubuntu 14.04 and Debian 8. #### OpenSSL asm support @@ -219,9 +219,10 @@ Supported platforms and toolchains change with each major version of Node.js. This document is only valid for the current major version of Node.js. Consult previous versions of this document for older versions of Node.js: +* [Node.js 17](https://github.com/nodejs/node/blob/v17.x/BUILDING.md) +* [Node.js 16](https://github.com/nodejs/node/blob/v16.x/BUILDING.md) * [Node.js 14](https://github.com/nodejs/node/blob/v14.x/BUILDING.md) * [Node.js 12](https://github.com/nodejs/node/blob/v12.x/BUILDING.md) -* [Node.js 10](https://github.com/nodejs/node/blob/v10.x/BUILDING.md) ## Building Node.js on supported platforms @@ -233,17 +234,18 @@ The Node.js project supports Python >= 3 for building and testing. #### Unix prerequisites -* `gcc` and `g++` >= 8.3 or newer, or +* `gcc` and `g++` >= 8.3 or newer * GNU Make 3.81 or newer * Python 3.6, 3.7, 3.8, 3.9, or 3.10 (see note above) + * For test coverage, your Python installation must include pip. Installation via Linux package manager can be achieved with: -* Ubuntu, Debian: `sudo apt-get install python3 g++ make` -* Fedora: `sudo dnf install python3 gcc-c++ make` -* CentOS and RHEL: `sudo yum install python3 gcc-c++ make` -* OpenSUSE: `sudo zypper install python3 gcc-c++ make` -* Arch Linux, Manjaro: `sudo pacman -S python gcc make` +* Ubuntu, Debian: `sudo apt-get install python3 g++ make python3-pip` +* Fedora: `sudo dnf install python3 gcc-c++ make python3-pip` +* CentOS and RHEL: `sudo yum install python3 gcc-c++ make python3-pip` +* OpenSUSE: `sudo zypper install python3 gcc-c++ make python3-pip` +* Arch Linux, Manjaro: `sudo pacman -S python gcc make python-pip` FreeBSD and OpenBSD users may also need to install `libexecinfo`. @@ -251,6 +253,7 @@ FreeBSD and OpenBSD users may also need to install `libexecinfo`. * Xcode Command Line Tools >= 11 for macOS * Python 3.6, 3.7, 3.8, 3.9, or 3.10 (see note above) + * For test coverage, your Python installation must include pip. macOS users can install the `Xcode Command Line Tools` by running `xcode-select --install`. Alternatively, if you already have the full Xcode @@ -270,9 +273,13 @@ $ ./configure $ make -j4 ``` +We can speed up the builds by using [Ninja](https://ninja-build.org/). For more +information, see +[Building Node.js with Ninja](doc/contributing/building-node-with-ninja.md). + The `-j4` option will cause `make` to run 4 simultaneous compilation jobs which may reduce build time. For more information, see the -[GNU Make Documentation](https://www.gnu.org/software/make/manual/html\_node/Parallel.html). +[GNU Make Documentation](https://www.gnu.org/software/make/manual/html_node/Parallel.html). The above requires that `python` resolves to a supported version of Python. See [Prerequisites](#prerequisites). @@ -306,8 +313,7 @@ $ make test-only At this point, you are ready to make code changes and re-run the tests. -If you are running tests before submitting a pull request, the recommended -command is: +If you are running tests before submitting a pull request, use: ```console $ make -j4 test @@ -316,31 +322,34 @@ $ make -j4 test `make -j4 test` does a full check on the codebase, including running linters and documentation tests. -Make sure the linter does not report any issues and that all tests pass. Please -do not submit patches that fail either check. - -If you want to run the linter without running tests, use +To run the linter without running tests, use `make lint`/`vcbuild lint`. It will lint JavaScript, C++, and Markdown files. If you are updating tests and want to run tests in a single test file (e.g. `test/parallel/test-stream2-transform.js`): ```text -$ python tools/test.py test/parallel/test-stream2-transform.js +$ tools/test.py test/parallel/test-stream2-transform.js ``` You can execute the entire suite of tests for a given subsystem by providing the name of a subsystem: ```text -$ python tools/test.py -J --mode=release child-process +$ tools/test.py -J child-process +``` + +You can also execute the tests in a tests directory (such as `test/message`): + +```text +$ tools/test.py -J test/message ``` If you want to check the other options, please refer to the help by using the `--help` option: ```text -$ python tools/test.py --help +$ tools/test.py --help ``` You can usually run tests directly with node: @@ -355,7 +364,7 @@ the `lib` or `src` directories. The tests attempt to detect support for IPv6 and exclude IPv6 tests if appropriate. If your main interface has IPv6 addresses, then your loopback interface must also have '::1' enabled. For some default installations -on Ubuntu that does not seem to be the case. To enable '::1' on the +on Ubuntu, that does not seem to be the case. To enable '::1' on the loopback interface on Ubuntu: ```bash @@ -364,7 +373,7 @@ sudo sysctl -w net.ipv6.conf.lo.disable_ipv6=0 You can use [node-code-ide-configs](https://github.com/nodejs/node-code-ide-configs) -to run/debug tests, if your IDE configs are present. +to run/debug tests if your IDE configs are present. #### Running coverage @@ -392,7 +401,7 @@ If you are updating tests and want to collect coverage for a single test file ```text $ make coverage-clean -$ NODE_V8_COVERAGE=coverage/tmp python tools/test.py test/parallel/test-stream2-transform.js +$ NODE_V8_COVERAGE=coverage/tmp tools/test.py test/parallel/test-stream2-transform.js $ make coverage-report-js ``` @@ -401,7 +410,7 @@ by providing the name of a subsystem: ```text $ make coverage-clean -$ NODE_V8_COVERAGE=coverage/tmp python tools/test.py -J --mode=release child-process +$ NODE_V8_COVERAGE=coverage/tmp tools/test.py --mode=release child-process $ make coverage-report-js ``` @@ -519,12 +528,20 @@ $ make test-only If you plan to frequently rebuild Node.js, especially if using several branches, installing `ccache` can help to greatly reduce build times. Set up with: -```console -$ sudo apt install ccache # for Debian/Ubuntu, included in most Linux distros -$ ccache -o cache_dir= -$ ccache -o max_size=5.0G -$ export CC="ccache gcc" # add to your .profile -$ export CXX="ccache g++" # add to your .profile +On GNU/Linux: + +```bash +sudo apt install ccache # for Debian/Ubuntu, included in most Linux distros +export CC="ccache gcc" # add to your .profile +export CXX="ccache g++" # add to your .profile +``` + +On macOS: + +```bash +brew install ccache # see https://brew.sh +export CC="ccache cc" # add to ~/.zshrc or other shell config file +export CXX="ccache c++" # add to ~/.zshrc or other shell config file ``` This will allow for near-instantaneous rebuilds even when switching branches. @@ -558,7 +575,7 @@ to run it again before invoking `make -j4`. ##### Option 1: Manual install -* [Python 3.9](https://www.microsoft.com/en-us/p/python-39/9p7qfqmjrfp7) +* [Python 3.10](https://www.microsoft.com/en-us/p/python-310/9pjpw5ldxlz5) * The "Desktop development with C++" workload from [Visual Studio 2019](https://visualstudio.microsoft.com/downloads/) or the "C++ build tools" workload from the @@ -771,6 +788,7 @@ dynamically linking with OpenSSL 3.0.0 by using the configuration flag ### FIPS support when statically linking OpenSSL FIPS can be supported by specifying the configuration flag `--openssl-is-fips`: + ```console $ ./configure --openssl-is-fips $ make -j8 @@ -783,23 +801,30 @@ to include the correct path to fipsmodule.cnf and finally uncomment the fips section. We can then run node specifying `--enable-fips`: + ```console $ ./node --enable-fips -p 'crypto.getFips()' 1 ``` + The above will use the Node.js default locations for OpenSSL 3.0: + ```console $ ./out/Release/openssl-cli version -m -d OPENSSLDIR: "/nodejs/openssl/out/Release/obj.target/deps/openssl" MODULESDIR: "/nodejs/openssl/out/Release/obj.target/deps/openssl/lib/openssl-modules" ``` + The OpenSSL configuration files will be found in `OPENSSLDIR` directory above: + ```console $ ls -w 1 out/Release/obj.target/deps/openssl/*.cnf out/Release/obj.target/deps/openssl/fipsmodule.cnf out/Release/obj.target/deps/openssl/openssl.cnf ``` + And the FIPS module will be located in the `MODULESDIR` directory: + ```console $ ls out/Release/obj.target/deps/openssl/lib/openssl-modules/ fips.so diff --git a/CHANGELOG.md b/CHANGELOG.md index a3e70dac2c848a..bc47e6bf3dff6f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,38 +2,53 @@ Select a Node.js version below to view the changelog history: -* [Node.js 16](doc/changelogs/CHANGELOG\_V16.md) **Current** -* [Node.js 15](doc/changelogs/CHANGELOG\_V15.md) End-of-Life -* [Node.js 14](doc/changelogs/CHANGELOG\_V14.md) **Long Term Support** -* [Node.js 13](doc/changelogs/CHANGELOG\_V13.md) End-of-Life -* [Node.js 12](doc/changelogs/CHANGELOG\_V12.md) Long Term Support -* [Node.js 11](doc/changelogs/CHANGELOG\_V11.md) End-of-Life -* [Node.js 10](doc/changelogs/CHANGELOG\_V10.md) End-of-Life -* [Node.js 9](doc/changelogs/CHANGELOG\_V9.md) End-of-Life -* [Node.js 8](doc/changelogs/CHANGELOG\_V8.md) End-of-Life -* [Node.js 7](doc/changelogs/CHANGELOG\_V7.md) End-of-Life -* [Node.js 6](doc/changelogs/CHANGELOG\_V6.md) End-of-Life -* [Node.js 5](doc/changelogs/CHANGELOG\_V5.md) End-of-Life -* [Node.js 4](doc/changelogs/CHANGELOG\_V4.md) End-of-Life -* [io.js](doc/changelogs/CHANGELOG\_IOJS.md) End-of-Life -* [Node.js 0.12](doc/changelogs/CHANGELOG\_V012.md) End-of-Life -* [Node.js 0.10](doc/changelogs/CHANGELOG\_V010.md) End-of-Life -* [Archive](doc/changelogs/CHANGELOG\_ARCHIVE.md) +* [Node.js 17](doc/changelogs/CHANGELOG_V17.md) **Current** +* [Node.js 16](doc/changelogs/CHANGELOG_V16.md) **Long Term Support** +* [Node.js 15](doc/changelogs/CHANGELOG_V15.md) End-of-Life +* [Node.js 14](doc/changelogs/CHANGELOG_V14.md) Long Term Support +* [Node.js 13](doc/changelogs/CHANGELOG_V13.md) End-of-Life +* [Node.js 12](doc/changelogs/CHANGELOG_V12.md) Long Term Support +* [Node.js 11](doc/changelogs/CHANGELOG_V11.md) End-of-Life +* [Node.js 10](doc/changelogs/CHANGELOG_V10.md) End-of-Life +* [Node.js 9](doc/changelogs/CHANGELOG_V9.md) End-of-Life +* [Node.js 8](doc/changelogs/CHANGELOG_V8.md) End-of-Life +* [Node.js 7](doc/changelogs/CHANGELOG_V7.md) End-of-Life +* [Node.js 6](doc/changelogs/CHANGELOG_V6.md) End-of-Life +* [Node.js 5](doc/changelogs/CHANGELOG_V5.md) End-of-Life +* [Node.js 4](doc/changelogs/CHANGELOG_V4.md) End-of-Life +* [io.js](doc/changelogs/CHANGELOG_IOJS.md) End-of-Life +* [Node.js 0.12](doc/changelogs/CHANGELOG_V012.md) End-of-Life +* [Node.js 0.10](doc/changelogs/CHANGELOG_V010.md) End-of-Life +* [Archive](doc/changelogs/CHANGELOG_ARCHIVE.md) Please use the following table to find the changelog for a specific Node.js release. - - - - - + + + + + * * - * + * * * * @@ -263,7 +269,7 @@ class RuleCharacterIterator; * *
16Current14LTS12LTS17 (Current)16 (LTS)14 (LTS)12 (LTS)
+17.7.1
+17.7.0
+17.6.0
+17.5.0
+17.4.0
+17.3.1
+17.3.0
+17.2.0
+17.1.0
+17.0.1
+17.0.0
+
-16.11.1
+16.13.0
+16.12.0
+16.11.1
16.11.0
16.10.0
16.9.1
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md index 9a45c12f5489b0..d724027fd9aadb 100644 --- a/CODE_OF_CONDUCT.md +++ b/CODE_OF_CONDUCT.md @@ -1,4 +1,4 @@ # Code of Conduct -* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE\_OF\_CONDUCT.md) +* [Node.js Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md) * [Node.js Moderation Policy](https://github.com/nodejs/admin/blob/HEAD/Moderation-Policy.md) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 1c3bf6c65cdd27..f815adbb1fc34b 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -5,28 +5,28 @@ * [Pull Requests](#pull-requests) * [Developer's Certificate of Origin 1.1](#developers-certificate-of-origin) -## [Code of Conduct](./doc/guides/contributing/code-of-conduct.md) +## [Code of Conduct](./doc/contributing/code-of-conduct.md) The Node.js project has a -[Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE\_OF\_CONDUCT.md) +[Code of Conduct](https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md) to which all contributors must adhere. -See [details on our policy on Code of Conduct](./doc/guides/contributing/code-of-conduct.md). +See [details on our policy on Code of Conduct](./doc/contributing/code-of-conduct.md). -## [Issues](./doc/guides/contributing/issues.md) +## [Issues](./doc/contributing/issues.md) -* [Asking for General Help](./doc/guides/contributing/issues.md#asking-for-general-help) -* [Discussing non-technical topics](./doc/guides/contributing/issues.md#discussing-non-technical-topics) -* [Submitting a Bug Report](./doc/guides/contributing/issues.md#submitting-a-bug-report) -* [Triaging a Bug Report](./doc/guides/contributing/issues.md#triaging-a-bug-report) +* [Asking for General Help](./doc/contributing/issues.md#asking-for-general-help) +* [Discussing non-technical topics](./doc/contributing/issues.md#discussing-non-technical-topics) +* [Submitting a Bug Report](./doc/contributing/issues.md#submitting-a-bug-report) +* [Triaging a Bug Report](./doc/contributing/issues.md#triaging-a-bug-report) -## [Pull Requests](./doc/guides/contributing/pull-requests.md) +## [Pull Requests](./doc/contributing/pull-requests.md) -* [Dependencies](./doc/guides/contributing/pull-requests.md#dependencies) -* [Setting up your local environment](./doc/guides/contributing/pull-requests.md#setting-up-your-local-environment) -* [The Process of Making Changes](./doc/guides/contributing/pull-requests.md#the-process-of-making-changes) -* [Reviewing Pull Requests](./doc/guides/contributing/pull-requests.md#reviewing-pull-requests) -* [Notes](./doc/guides/contributing/pull-requests.md#notes) +* [Dependencies](./doc/contributing/pull-requests.md#dependencies) +* [Setting up your local environment](./doc/contributing/pull-requests.md#setting-up-your-local-environment) +* [The Process of Making Changes](./doc/contributing/pull-requests.md#the-process-of-making-changes) +* [Reviewing Pull Requests](./doc/contributing/pull-requests.md#reviewing-pull-requests) +* [Notes](./doc/contributing/pull-requests.md#notes) diff --git a/GOVERNANCE.md b/GOVERNANCE.md index 37ce1576cffccf..f5f3ffa015ced7 100644 --- a/GOVERNANCE.md +++ b/GOVERNANCE.md @@ -25,7 +25,7 @@ Triagers are given the "Triage" GitHub role and have: See: * [List of triagers](./README.md#triagers) -* [A guide for triagers](./doc/guides/contributing/issues.md#triaging-a-bug-report) +* [A guide for triagers](./doc/contributing/issues.md#triaging-a-bug-report) ## Collaborators @@ -54,7 +54,7 @@ result in collaborators removing their opposition. See: * [List of collaborators](./README.md#current-project-team-members) -* [A guide for collaborators](./doc/guides/collaborator-guide.md) +* [A guide for collaborators](./doc/contributing/collaborator-guide.md) ### Collaborator activities @@ -64,9 +64,13 @@ See: * Participation in working groups * Merging pull requests -The TSC can remove inactive collaborators or provide them with _Emeritus_ +The TSC can remove inactive collaborators or provide them with _emeritus_ status. Emeriti may request that the TSC restore them to active status. +A collaborator is automatically made emeritus (and removed from active +collaborator status) if it has been more than 18 months since the collaborator +has authored or approved a commit that has landed. + ## Technical Steering Committee A subset of the collaborators forms the Technical Steering Committee (TSC). @@ -87,9 +91,8 @@ Charter need approval by the OpenJS Foundation Cross-Project Council (CPC). ### TSC meetings -The TSC meets in a voice conference call. Each year, the TSC elects a chair to -run the meetings. The TSC streams its meetings for public viewing on YouTube or -a similar service. +The TSC meets in a video conference call. Each year, the TSC elects a chair to +run the meetings. The TSC streams its meetings for public viewing on YouTube. The TSC agenda includes issues that are at an impasse. The intention of the agenda is not to review or approve all patches. Collaborators review and approve diff --git a/LICENSE b/LICENSE index b1da90352139aa..306e57a23decdf 100644 --- a/LICENSE +++ b/LICENSE @@ -392,31 +392,29 @@ The externally maintained libraries used by Node.js are: 3. Lao Word Break Dictionary Data (laodict.txt) - # Copyright (c) 2013 International Business Machines Corporation - # and others. All Rights Reserved. + # Copyright (C) 2016 and later: Unicode, Inc. and others. + # License & terms of use: http://www.unicode.org/copyright.html + # Copyright (c) 2015 International Business Machines Corporation + # and others. All Rights Reserved. # - # Project: https://github.com/veer66/lao-dictionary - # Dictionary: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary.txt - # License: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary-LICENSE.txt - # (copied below) + # Project: https://github.com/rober42539/lao-dictionary + # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt + # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + # (copied below) # - # This file is derived from the above dictionary, with slight - # modifications. + # This file is derived from the above dictionary version of Nov 22, 2020 # ---------------------------------------------------------------------- # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without - # modification, - # are permitted provided that the following conditions are met: - # - # - # Redistributions of source code must retain the above copyright notice, this - # list of conditions and the following disclaimer. Redistributions in - # binary form must reproduce the above copyright notice, this list of - # conditions and the following disclaimer in the documentation and/or - # other materials provided with the distribution. + # modification, are permitted provided that the following conditions are met: # + # Redistributions of source code must retain the above copyright notice, this + # list of conditions and the following disclaimer. Redistributions in binary + # form must reproduce the above copyright notice, this list of conditions and + # the following disclaimer in the documentation and/or other materials + # provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT @@ -636,58 +634,209 @@ The externally maintained libraries used by Node.js are: 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. """ -- OpenSSL, located at deps/openssl, is licensed as follows: +- undici, located at deps/undici, is licensed as follows: """ - Copyright (c) 1998-2019 The OpenSSL Project. All rights reserved. + MIT License - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: + Copyright (c) Matteo Collina and Undici contributors - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. + 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: - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the - distribution. + The above copyright notice and this permission notice shall be included in all + copies or substantial portions of the Software. - 3. All advertising materials mentioning features or use of this - software must display the following acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit. (http://www.openssl.org/)" - - 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - endorse or promote products derived from this software without - prior written permission. For written permission, please contact - openssl-core@openssl.org. - - 5. Products derived from this software may not be called "OpenSSL" - nor may "OpenSSL" appear in their names without prior written - permission of the OpenSSL Project. - - 6. Redistributions of any form whatsoever must retain the following - acknowledgment: - "This product includes software developed by the OpenSSL Project - for use in the OpenSSL Toolkit (http://www.openssl.org/)" - - THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. - ==================================================================== - - This product includes cryptographic software written by Eric Young - (eay@cryptsoft.com). This product includes software written by Tim - Hudson (tjh@cryptsoft.com). + 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. + """ + +- OpenSSL, located at deps/openssl, is licensed as follows: + """ + Apache License + Version 2.0, January 2004 + https://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS """ - Punycode.js, located at lib/punycode.js, is licensed as follows: @@ -1215,7 +1364,7 @@ The externally maintained libraries used by Node.js are: - ESLint, located at tools/node_modules/eslint, is licensed as follows: """ - Copyright JS Foundation and other contributors, https://js.foundation + Copyright OpenJS Foundation and other contributors, Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal @@ -1236,32 +1385,6 @@ The externally maintained libraries used by Node.js are: THE SOFTWARE. """ -- Babel, located at tools/node_modules/@babel, is licensed as follows: - """ - MIT License - - Copyright (c) 2014-present Sebastian McKenzie and other contributors - - 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. - """ - - gtest, located at deps/googletest, is licensed as follows: """ Copyright 2008, Google Inc. diff --git a/Makefile b/Makefile index 03d7368fbab418..4aace77c7c8c63 100644 --- a/Makefile +++ b/Makefile @@ -10,6 +10,9 @@ TEST_CI_ARGS ?= STAGINGSERVER ?= node-www LOGLEVEL ?= silent OSTYPE := $(shell uname -s | tr '[:upper:]' '[:lower:]') +ifeq ($(findstring os/390,$OSTYPE),os/390) +OSTYPE ?= os390 +endif ARCHTYPE := $(shell uname -m | tr '[:upper:]' '[:lower:]') COVTESTS ?= test-cov COV_SKIP_TESTS ?= core_line_numbers.js,testFinalizer.js,test_function/test.js @@ -23,7 +26,7 @@ FIND ?= find ifdef JOBS PARALLEL_ARGS = -j $(JOBS) else - PARALLEL_ARGS = -J + PARALLEL_ARGS = endif ifdef ENABLE_V8_TAP @@ -168,6 +171,7 @@ uninstall: ## Uninstalls node from $PREFIX (default=/usr/local). $(PYTHON) tools/install.py $@ '$(DESTDIR)' '$(PREFIX)' .PHONY: clean +.NOTPARALLEL: clean clean: ## Remove build artifacts. $(RM) -r out/Makefile $(NODE_EXE) $(NODE_G_EXE) out/$(BUILDTYPE)/$(NODE_EXE) \ out/$(BUILDTYPE)/node.exp @@ -180,12 +184,14 @@ clean: ## Remove build artifacts. $(MAKE) bench-addons-clean .PHONY: testclean +.NOTPARALLEL: testclean testclean: # Next one is legacy remove this at some point $(RM) -r test/tmp* $(RM) -r test/.tmp* .PHONY: distclean +.NOTPARALLEL: distclean distclean: $(RM) -r out $(RM) config.gypi icu_config.gypi @@ -200,6 +206,7 @@ distclean: check: test .PHONY: coverage-clean +.NOTPARALLEL: coverage-clean # Remove files generated by running coverage, put the non-instrumented lib back # in place coverage-clean: @@ -313,6 +320,7 @@ test-only: all ## For a quick test, does not run linter or build docs. $(MAKE) tooltest # Used by `make coverage-test` +.PHONY: test-cov test-cov: all $(MAKE) build-addons $(MAKE) build-js-native-api-tests @@ -320,12 +328,15 @@ test-cov: all $(MAKE) cctest CI_SKIP_TESTS=$(COV_SKIP_TESTS) $(MAKE) jstest +.PHONY: test-parallel test-parallel: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) parallel +.PHONY: test-valgrind test-valgrind: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) --valgrind sequential parallel message +.PHONY: test-check-deopts test-check-deopts: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) --check-deopts parallel sequential @@ -454,16 +465,20 @@ clear-stalled: echo $${PS_OUT} | xargs kill -9; \ fi +.PHONY: test-build test-build: | all build-addons build-js-native-api-tests build-node-api-tests +.PHONY: test-build-js-native-api test-build-js-native-api: all build-js-native-api-tests +.PHONY: test-build-node-api test-build-node-api: all build-node-api-tests .PHONY: test-all test-all: test-build ## Run default tests with both Debug and Release builds. $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release +.PHONY: test-all-valgrind test-all-valgrind: test-build $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug,release --valgrind @@ -541,30 +556,39 @@ build-ci: run-ci: build-ci $(MAKE) test-ci -j1 +.PHONY: test-release test-release: test-build $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) +.PHONY: test-debug test-debug: test-build $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=debug +.PHONY: test-message test-message: test-build $(PYTHON) tools/test.py $(PARALLEL_ARGS) message +.PHONY: test-wpt test-wpt: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) wpt +.PHONY: test-simple test-simple: | cctest # Depends on 'all'. $(PYTHON) tools/test.py $(PARALLEL_ARGS) parallel sequential +.PHONY: test-pummel test-pummel: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) pummel +.PHONY: test-internet test-internet: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) internet +.PHONY: test-benchmark test-benchmark: | bench-addons-build $(PYTHON) tools/test.py $(PARALLEL_ARGS) benchmark +.PHONY: test-tick-processor test-tick-processor: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) tick-processor @@ -585,13 +609,16 @@ test-doc: doc-only lint-md ## Builds, lints, and verifies the docs. test-doc-ci: doc-only $(PYTHON) tools/test.py --shell $(NODE) $(TEST_CI_ARGS) $(PARALLEL_ARGS) doctool +.PHONY: test-known-issues test-known-issues: all $(PYTHON) tools/test.py $(PARALLEL_ARGS) known_issues # Related CI job: node-test-npm +.PHONY: test-npm test-npm: $(NODE_EXE) ## Run the npm test suite on deps/npm. $(NODE) tools/test-npm-package --install --logfile=test-npm.tap deps/npm test +.PHONY: test-npm-publish test-npm-publish: $(NODE_EXE) npm_package_config_publishtest=true $(NODE) deps/npm/test/run.js @@ -600,6 +627,7 @@ test-js-native-api: test-build-js-native-api $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) js-native-api .PHONY: test-js-native-api-clean +.NOTPARALLEL: test-js-native-api-clean test-js-native-api-clean: $(RM) -r test/js-native-api/*/build $(RM) test/js-native-api/.buildstamp @@ -609,6 +637,7 @@ test-node-api: test-build-node-api $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) node-api .PHONY: test-node-api-clean +.NOTPARALLEL: test-node-api-clean test-node-api-clean: $(RM) -r test/node-api/*/build $(RM) test/node-api/.buildstamp @@ -618,6 +647,7 @@ test-addons: test-build test-js-native-api test-node-api $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) addons .PHONY: test-addons-clean +.NOTPARALLEL: test-addons-clean test-addons-clean: $(RM) -r test/addons/??_*/ $(RM) -r test/addons/*/build @@ -625,9 +655,11 @@ test-addons-clean: $(MAKE) test-js-native-api-clean $(MAKE) test-node-api-clean +.PHONY: test-async-hooks test-async-hooks: $(PYTHON) tools/test.py $(PARALLEL_ARGS) --mode=$(BUILDTYPE_LOWER) async-hooks +.PHONY: test-with-async-hooks test-with-async-hooks: $(MAKE) build-addons $(MAKE) build-js-native-api-tests @@ -737,21 +769,39 @@ $(LINK_DATA): $(wildcard lib/*.js) tools/doc/apilinks.mjs | out/doc $(VERSIONS_DATA): CHANGELOG.md src/node_version.h tools/doc/versions.mjs $(call available-node, tools/doc/versions.mjs $@) +node_use_icu = $(call available-node,"-p" "typeof Intl === 'object'") + out/doc/api/%.json out/doc/api/%.html: doc/api/%.md tools/doc/generate.mjs \ tools/doc/markdown.mjs tools/doc/html.mjs tools/doc/json.mjs \ tools/doc/apilinks.mjs $(VERSIONS_DATA) | $(LINK_DATA) out/doc/api - $(call available-node, $(gen-api)) + @if [ "$(shell $(node_use_icu))" != "true" ]; then \ + echo "Skipping documentation generation (no ICU)"; \ + else \ + $(call available-node, $(gen-api)) \ + fi out/doc/api/all.html: $(apidocs_html) tools/doc/allhtml.mjs \ tools/doc/apilinks.mjs | out/doc/api - $(call available-node, tools/doc/allhtml.mjs) + @if [ "$(shell $(node_use_icu))" != "true" ]; then \ + echo "Skipping HTML single-page doc generation (no ICU)"; \ + else \ + $(call available-node, tools/doc/allhtml.mjs) \ + fi out/doc/api/all.json: $(apidocs_json) tools/doc/alljson.mjs | out/doc/api - $(call available-node, tools/doc/alljson.mjs) + @if [ "$(shell $(node_use_icu))" != "true" ]; then \ + echo "Skipping JSON single-file generation (no ICU)"; \ + else \ + $(call available-node, tools/doc/alljson.mjs) \ + fi .PHONY: out/doc/api/stability out/doc/api/stability: out/doc/api/all.json tools/doc/stability.mjs | out/doc/api - $(call available-node, tools/doc/stability.mjs) + @if [ "$(shell $(node_use_icu))" != "true" ]; then \ + echo "Skipping stability indicator generation (no ICU)"; \ + else \ + $(call available-node, tools/doc/stability.mjs) \ + fi .PHONY: docopen docopen: out/doc/api/all.html @@ -762,6 +812,7 @@ docserve: $(apidocs_html) $(apiassets) @$(PYTHON) -m http.server 8000 --bind 127.0.0.1 --directory out/doc/api .PHONY: docclean +.NOTPARALLEL: docclean docclean: $(RM) -r out/doc $(RM) "$(VERSIONS_DATA)" @@ -806,7 +857,10 @@ endif # ifeq ($(DISTTYPE),release) DISTTYPEDIR ?= $(DISTTYPE) RELEASE=$(shell sed -ne 's/\#define NODE_VERSION_IS_RELEASE \([01]\)/\1/p' src/node_version.h) PLATFORM=$(shell uname | tr '[:upper:]' '[:lower:]') -NPMVERSION=v$(shell cat deps/npm/package.json | grep '"version"' | sed 's/^[^:]*: "\([^"]*\)",.*/\1/') +ifeq ($(findstring os/390,$PLATFORM),os/390) +PLATFORM ?= os390 +endif +NPMVERSION=v$(shell cat deps/npm/package.json | grep '^ "version"' | sed 's/^[^:]*: "\([^"]*\)",.*/\1/') UNAME_M=$(shell uname -m) ifeq ($(findstring x86_64,$(UNAME_M)),x86_64) @@ -827,6 +881,9 @@ else ifeq ($(findstring s390,$(UNAME_M)),s390) DESTCPU ?= s390 else +ifeq ($(findstring OS/390,$(shell uname -s)),OS/390) +DESTCPU ?= s390x +else ifeq ($(findstring arm64,$(UNAME_M)),arm64) DESTCPU ?= arm64 else @@ -854,6 +911,7 @@ endif endif endif endif +endif ifeq ($(DESTCPU),x64) ARCH=x64 else @@ -923,6 +981,7 @@ XZ_COMPRESSION ?= 9e PKG=$(TARNAME).pkg MACOSOUTDIR=out/macos +.PHONY: check-xz ifeq ($(SKIP_XZ), 1) check-xz: $(info SKIP_XZ=1 supplied, skipping .tar.xz creation) @@ -938,14 +997,14 @@ endif .PHONY: release-only release-only: check-xz @if [ "$(DISTTYPE)" = "release" ] && `grep -q REPLACEME doc/api/*.md`; then \ - echo 'Please update REPLACEME tags in the following doc/api/*.md files (See doc/guides/releases.md):\n' ; \ + echo 'Please update REPLACEME tags in the following doc/api/*.md files (See doc/contributing/releases.md):\n' ; \ REPLACEMES="$(shell grep -l REPLACEME doc/api/*.md)" ; \ echo "$$REPLACEMES\n" | tr " " "\n" ; \ exit 1 ; \ fi @if [ "$(DISTTYPE)" = "release" ] && \ `grep -q DEP...X doc/api/deprecations.md`; then \ - echo 'Please update DEP...X in doc/api/deprecations.md (See doc/guides/releases.md)' ; \ + echo 'Please update DEP...X in doc/api/deprecations.md (See doc/contributing/releases.md)' ; \ exit 1 ; \ fi @if [ "$(shell git status --porcelain | egrep -v '^\?\? ')" = "" ]; then \ @@ -1058,14 +1117,18 @@ endif # Builds the macOS installer for releases. pkg: $(PKG) +.PHONY: corepack-update corepack-update: - rm -rf /tmp/node-corepack-clone - git clone 'https://github.com/nodejs/corepack.git' /tmp/node-corepack-clone - cd /tmp/node-corepack-clone && yarn pack - rm -rf deps/corepack && mkdir -p deps/corepack - cd deps/corepack && tar xf /tmp/node-corepack-clone/package.tgz --strip-components=1 + mkdir -p /tmp/node-corepack + curl -qLo /tmp/node-corepack/package.tgz "$$(npm view corepack dist.tarball)" + + rm -rf deps/corepack && mkdir deps/corepack + cd deps/corepack && tar xf /tmp/node-corepack/package.tgz --strip-components=1 chmod +x deps/corepack/shims/* + node deps/corepack/dist/corepack.js --version + +.PHONY: pkg-upload # Note: this is strictly for release builds on release machines only. pkg-upload: pkg ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)" @@ -1114,6 +1177,7 @@ endif .PHONY: tar tar: $(TARBALL) ## Create a source tarball. +.PHONY: tar-upload # Note: this is strictly for release builds on release machines only. tar-upload: tar ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)" @@ -1126,6 +1190,7 @@ ifeq ($(XZ), 1) ssh $(STAGINGSERVER) "touch nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/$(TARNAME).tar.xz.done" endif +.PHONY: doc-upload # Note: this is strictly for release builds on release machines only. doc-upload: doc ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)/docs/" @@ -1151,8 +1216,10 @@ ifeq ($(XZ), 1) endif $(RM) $(TARNAME)-headers.tar +.PHONY: tar-headers tar-headers: $(TARBALL)-headers ## Build the node header tarball. +.PHONY: tar-headers-upload tar-headers-upload: tar-headers ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)" chmod 664 $(TARNAME)-headers.tar.gz @@ -1196,6 +1263,7 @@ endif # This requires NODE_VERSION_IS_RELEASE defined as 1 in src/node_version.h. binary: $(BINARYTAR) ## Build release binary tarballs. +.PHONY: binary-upload # Note: this is strictly for release builds on release machines only. binary-upload: binary ssh $(STAGINGSERVER) "mkdir -p nodejs/$(DISTTYPEDIR)/$(FULLVERSION)" @@ -1218,6 +1286,7 @@ bench bench-all: bench-addons-build bench-addons-build: | $(NODE_EXE) benchmark/napi/.buildstamp .PHONY: bench-addons-clean +.NOTPARALLEL: bench-addons-clean bench-addons-clean: $(RM) -r benchmark/napi/*/build $(RM) benchmark/napi/.buildstamp @@ -1228,6 +1297,7 @@ lint-md-rollup: cd tools/lint-md && npm ci && npm run build .PHONY: lint-md-clean +.NOTPARALLEL: lint-md-clean lint-md-clean: $(RM) -r tools/lint-md/node_modules $(RM) tools/.*mdlintstamp @@ -1268,7 +1338,7 @@ format-md: LINT_JS_TARGETS = .eslintrc.js benchmark doc lib test tools run-lint-js = tools/node_modules/eslint/bin/eslint.js --cache \ - --report-unused-disable-directives $(LINT_JS_TARGETS) + --max-warnings=0 --report-unused-disable-directives $(LINT_JS_TARGETS) run-lint-js-fix = $(run-lint-js) --fix .PHONY: lint-js-fix @@ -1292,7 +1362,7 @@ jslint: lint-js $(warning Please use lint-js instead of jslint) run-lint-js-ci = tools/node_modules/eslint/bin/eslint.js \ - --report-unused-disable-directives -f tap \ + --max-warnings=0 --report-unused-disable-directives -f tap \ -o test-eslint.tap $(LINT_JS_TARGETS) .PHONY: lint-js-ci @@ -1327,6 +1397,7 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ test/cctest/*.h \ test/embedding/*.cc \ test/embedding/*.h \ + test/fixtures/*.c \ test/js-native-api/*/*.cc \ test/js-native-api/*/*.h \ test/node-api/*/*.cc \ @@ -1343,9 +1414,12 @@ LINT_CPP_FILES = $(filter-out $(LINT_CPP_EXCLUDE), $(wildcard \ # and the actual filename is generated so it won't match header guards ADDON_DOC_LINT_FLAGS=-whitespace/ending_newline,-build/header_guard +.PHONY: format-cpp-build format-cpp-build: cd tools/clang-format && $(call available-node,$(run-npm-ci)) +.PHONY: format-cpp-clean +.NOTPARALLEL: format-cpp-clean format-cpp-clean: $(RM) -r tools/clang-format/node_modules @@ -1405,8 +1479,8 @@ lint-py-build: $(PYTHON) -m pip install --no-user --upgrade -t tools/pip/site-packages flake8 || \ $(PYTHON) -m pip install --no-user --upgrade --system -t tools/pip/site-packages flake8 -ifneq ("","$(wildcard tools/pip/site-packages/flake8)") .PHONY: lint-py +ifneq ("","$(wildcard tools/pip/site-packages/flake8)") # Lints the Python code with flake8. # Flag the build if there are Python syntax errors or undefined names lint-py: @@ -1471,6 +1545,7 @@ lint-clean: HAS_DOCKER ?= $(shell command -v docker > /dev/null 2>&1; [ $$? -eq 0 ] && echo 1 || echo 0) +.PHONY: gen-openssl ifeq ($(HAS_DOCKER), 1) DOCKER_COMMAND ?= docker run -it -v $(PWD):/node IS_IN_WORKTREE = $(shell grep '^gitdir: ' $(PWD)/.git 2>/dev/null) diff --git a/README.md b/README.md index 06599e0a53a530..dd2616986f0ad9 100644 --- a/README.md +++ b/README.md @@ -10,14 +10,14 @@

-Node.js is an open-source, cross-platform, JavaScript runtime environment. It -executes JavaScript code outside of a browser. For more information on using -Node.js, see the [Node.js Website][]. +Node.js is an open-source, cross-platform, JavaScript runtime environment. + +For information on using Node.js, see the [Node.js website][]. The Node.js project uses an [open governance model](./GOVERNANCE.md). The [OpenJS Foundation][] provides support for the project. -**This project is bound by a [Code of Conduct][].** +**This project has a [Code of Conduct][].** # Table of contents @@ -120,7 +120,7 @@ For Current and LTS, the GPG detached signature of `SHASUMS256.txt` is in import the keys: ```console -$ gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D +$ gpg --keyserver hkps://keys.openpgp.org --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D ``` See the bottom of this README for a full script to import active release keys. @@ -156,55 +156,56 @@ For information on reporting security vulnerabilities in Node.js, see For information about the governance of the Node.js project, see [GOVERNANCE.md](./GOVERNANCE.md). - + ### TSC (Technical Steering Committee) * [aduh95](https://github.com/aduh95) - - **Antoine du Hamel** \ (he/him) + **Antoine du Hamel** <> (he/him) * [apapirovski](https://github.com/apapirovski) - - **Anatoli Papirovski** \ (he/him) + **Anatoli Papirovski** <> (he/him) * [BethGriggs](https://github.com/BethGriggs) - - **Beth Griggs** \ (she/her) + **Beth Griggs** <> (she/her) * [BridgeAR](https://github.com/BridgeAR) - - **Ruben Bridgewater** \ (he/him) + **Ruben Bridgewater** <> (he/him) * [ChALkeR](https://github.com/ChALkeR) - - **Сковорода Никита Андреевич** \ (he/him) + **Сковорода Никита Андреевич** <> (he/him) * [cjihrig](https://github.com/cjihrig) - - **Colin Ihrig** \ (he/him) -* [codebytere](https://github.com/codebytere) - - **Shelley Vohr** \ (she/her) + **Colin Ihrig** <> (he/him) * [danielleadams](https://github.com/danielleadams) - - **Danielle Adams** \ (she/her) + **Danielle Adams** <> (she/her) * [fhinkel](https://github.com/fhinkel) - - **Franziska Hinkelmann** \ (she/her) -* [gabrielschulhof](https://github.com/gabrielschulhof) - - **Gabriel Schulhof** \ + **Franziska Hinkelmann** <> (she/her) * [gireeshpunathil](https://github.com/gireeshpunathil) - - **Gireesh Punathil** \ (he/him) + **Gireesh Punathil** <> (he/him) * [jasnell](https://github.com/jasnell) - - **James M Snell** \ (he/him) + **James M Snell** <> (he/him) * [joyeecheung](https://github.com/joyeecheung) - - **Joyee Cheung** \ (she/her) + **Joyee Cheung** <> (she/her) * [mcollina](https://github.com/mcollina) - - **Matteo Collina** \ (he/him) + **Matteo Collina** <> (he/him) * [mhdawson](https://github.com/mhdawson) - - **Michael Dawson** \ (he/him) + **Michael Dawson** <> (he/him) * [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** \ (she/her) + **Mary Marchini** <> (she/her) * [MylesBorins](https://github.com/MylesBorins) - - **Myles Borins** \ (he/him) + **Myles Borins** <> (he/him) +* [RaisinTen](https://github.com/RaisinTen) - + **Darshan Sen** <> (he/him) +* [richardlau](https://github.com/richardlau) - + **Richard Lau** <> * [ronag](https://github.com/ronag) - - **Robert Nagy** \ + **Robert Nagy** <> * [targos](https://github.com/targos) - - **Michaël Zasso** \ (he/him) + **Michaël Zasso** <> (he/him) * [tniessen](https://github.com/tniessen) - - **Tobias Nießen** \ (he/him) + **Tobias Nießen** <> (he/him) * [Trott](https://github.com/Trott) - - **Rich Trott** \ (he/him) + **Rich Trott** <> (he/him)
@@ -213,47 +214,51 @@ For information about the governance of the Node.js project, see ### TSC emeriti * [addaleax](https://github.com/addaleax) - - **Anna Henningsen** \ (she/her) + **Anna Henningsen** <> (she/her) * [bnoordhuis](https://github.com/bnoordhuis) - - **Ben Noordhuis** \ + **Ben Noordhuis** <> * [chrisdickinson](https://github.com/chrisdickinson) - - **Chris Dickinson** \ + **Chris Dickinson** <> +* [codebytere](https://github.com/codebytere) - + **Shelley Vohr** <> (she/her) * [danbev](https://github.com/danbev) - - **Daniel Bevenius** \ (he/him) + **Daniel Bevenius** <> (he/him) * [evanlucas](https://github.com/evanlucas) - - **Evan Lucas** \ (he/him) + **Evan Lucas** <> (he/him) * [Fishrock123](https://github.com/Fishrock123) - - **Jeremiah Senkpiel** \ (he/they) + **Jeremiah Senkpiel** <> (he/they) +* [gabrielschulhof](https://github.com/gabrielschulhof) - + **Gabriel Schulhof** <> * [gibfahn](https://github.com/gibfahn) - - **Gibson Fahnestock** \ (he/him) + **Gibson Fahnestock** <> (he/him) * [indutny](https://github.com/indutny) - - **Fedor Indutny** \ + **Fedor Indutny** <> * [isaacs](https://github.com/isaacs) - - **Isaac Z. Schlueter** \ + **Isaac Z. Schlueter** <> * [joshgav](https://github.com/joshgav) - - **Josh Gavant** \ + **Josh Gavant** <> * [mscdex](https://github.com/mscdex) - - **Brian White** \ + **Brian White** <> * [nebrius](https://github.com/nebrius) - - **Bryan Hughes** \ + **Bryan Hughes** <> * [ofrobots](https://github.com/ofrobots) - - **Ali Ijaz Sheikh** \ (he/him) + **Ali Ijaz Sheikh** <> (he/him) * [orangemocha](https://github.com/orangemocha) - - **Alexis Campailla** \ + **Alexis Campailla** <> * [piscisaureus](https://github.com/piscisaureus) - - **Bert Belder** \ + **Bert Belder** <> * [rvagg](https://github.com/rvagg) - - **Rod Vagg** \ + **Rod Vagg** <> * [sam-github](https://github.com/sam-github) - - **Sam Roberts** \ + **Sam Roberts** <> * [shigeki](https://github.com/shigeki) - - **Shigeki Ohtsu** \ (he/him) + **Shigeki Ohtsu** <> (he/him) * [thefourtheye](https://github.com/thefourtheye) - - **Sakthipriyan Vairamani** \ (he/him) + **Sakthipriyan Vairamani** <> (he/him) * [TimothyGu](https://github.com/TimothyGu) - - **Tiancheng "Timothy" Gu** \ (he/him) + **Tiancheng "Timothy" Gu** <> (he/him) * [trevnorris](https://github.com/trevnorris) - - **Trevor Norris** \ + **Trevor Norris** <>
@@ -264,201 +269,195 @@ For information about the governance of the Node.js project, see ### Collaborators * [addaleax](https://github.com/addaleax) - - **Anna Henningsen** \ (she/her) + **Anna Henningsen** <> (she/her) * [aduh95](https://github.com/aduh95) - - **Antoine du Hamel** \ (he/him) + **Antoine du Hamel** <> (he/him) * [ak239](https://github.com/ak239) - - **Aleksei Koziatinskii** \ + **Aleksei Koziatinskii** <> * [antsmartian](https://github.com/antsmartian) - - **Anto Aravinth** \ (he/him) + **Anto Aravinth** <> (he/him) * [apapirovski](https://github.com/apapirovski) - - **Anatoli Papirovski** \ (he/him) + **Anatoli Papirovski** <> (he/him) * [AshCripps](https://github.com/AshCripps) - - **Ash Cripps** \ + **Ash Cripps** <> * [Ayase-252](https://github.com/Ayase-252) - - **Qingyu Deng** \ + **Qingyu Deng** <> * [bcoe](https://github.com/bcoe) - - **Ben Coe** \ (he/him) + **Ben Coe** <> (he/him) * [bengl](https://github.com/bengl) - - **Bryan English** \ (he/him) + **Bryan English** <> (he/him) * [benjamingr](https://github.com/benjamingr) - - **Benjamin Gruenbaum** \ + **Benjamin Gruenbaum** <> * [BethGriggs](https://github.com/BethGriggs) - - **Beth Griggs** \ (she/her) + **Beth Griggs** <> (she/her) * [bmeck](https://github.com/bmeck) - - **Bradley Farias** \ + **Bradley Farias** <> +* [bnb](https://github.com/bnb) - + **Tierney Cyren** <> (they/he) +* [bnoordhuis](https://github.com/bnoordhuis) - + **Ben Noordhuis** <> * [boneskull](https://github.com/boneskull) - - **Christopher Hiller** \ (he/him) + **Christopher Hiller** <> (he/him) * [BridgeAR](https://github.com/BridgeAR) - - **Ruben Bridgewater** \ (he/him) + **Ruben Bridgewater** <> (he/him) * [bzoz](https://github.com/bzoz) - - **Bartosz Sosnowski** \ + **Bartosz Sosnowski** <> * [cclauss](https://github.com/cclauss) - - **Christian Clauss** \ (he/him) + **Christian Clauss** <> (he/him) * [ChALkeR](https://github.com/ChALkeR) - - **Сковорода Никита Андреевич** \ (he/him) + **Сковорода Никита Андреевич** <> (he/him) * [cjihrig](https://github.com/cjihrig) - - **Colin Ihrig** \ (he/him) + **Colin Ihrig** <> (he/him) * [codebytere](https://github.com/codebytere) - - **Shelley Vohr** \ (she/her) + **Shelley Vohr** <> (she/her) * [danbev](https://github.com/danbev) - - **Daniel Bevenius** \ (he/him) + **Daniel Bevenius** <> (he/him) * [danielleadams](https://github.com/danielleadams) - - **Danielle Adams** \ (she/her) -* [davisjam](https://github.com/davisjam) - - **Jamie Davis** \ (he/him) -* [DerekNonGeneric](https://github.com/DerekNonGeneric) - - **Derek Lewis** \ (he/him) + **Danielle Adams** <> (she/her) * [devnexen](https://github.com/devnexen) - - **David Carlier** \ + **David Carlier** <> * [devsnek](https://github.com/devsnek) - - **Gus Caplan** \ (they/them) + **Gus Caplan** <> (they/them) * [dmabupt](https://github.com/dmabupt) - - **Xu Meng** \ (he/him) + **Xu Meng** <> (he/him) * [dnlup](https://github.com/dnlup) - **Daniele Belardi** \ (he/him) + **Daniele Belardi** <> (he/him) * [edsadr](https://github.com/edsadr) - - **Adrian Estrada** \ (he/him) -* [eugeneo](https://github.com/eugeneo) - - **Eugene Ostroukhov** \ + **Adrian Estrada** <> (he/him) * [evanlucas](https://github.com/evanlucas) - - **Evan Lucas** \ (he/him) + **Evan Lucas** <> (he/him) * [fhinkel](https://github.com/fhinkel) - - **Franziska Hinkelmann** \ (she/her) -* [Fishrock123](https://github.com/Fishrock123) - - **Jeremiah Senkpiel** \ (he/they) + **Franziska Hinkelmann** <> (she/her) * [Flarna](https://github.com/Flarna) - - **Gerhard Stöbich** \ (he/they) + **Gerhard Stöbich** <> (he/they) * [gabrielschulhof](https://github.com/gabrielschulhof) - - **Gabriel Schulhof** \ + **Gabriel Schulhof** <> * [gengjiawen](https://github.com/gengjiawen) - - **Jiawen Geng** \ + **Jiawen Geng** <> * [GeoffreyBooth](https://github.com/geoffreybooth) - - **Geoffrey Booth** \ (he/him) + **Geoffrey Booth** <> (he/him) * [gireeshpunathil](https://github.com/gireeshpunathil) - - **Gireesh Punathil** \ (he/him) + **Gireesh Punathil** <> (he/him) * [guybedford](https://github.com/guybedford) - - **Guy Bedford** \ (he/him) + **Guy Bedford** <> (he/him) * [HarshithaKP](https://github.com/HarshithaKP) - - **Harshitha K P** \ (she/her) + **Harshitha K P** <> (she/her) * [hashseed](https://github.com/hashseed) - - **Yang Guo** \ (he/him) + **Yang Guo** <> (he/him) * [himself65](https://github.com/himself65) - - **Zeyu Yang** \ (he/him) + **Zeyu Yang** <> (he/him) * [hiroppy](https://github.com/hiroppy) - - **Yuta Hiroto** \ (he/him) + **Yuta Hiroto** <> (he/him) * [iansu](https://github.com/iansu) - - **Ian Sutherland** \ + **Ian Sutherland** <> * [indutny](https://github.com/indutny) - - **Fedor Indutny** \ + **Fedor Indutny** <> * [JacksonTian](https://github.com/JacksonTian) - - **Jackson Tian** \ + **Jackson Tian** <> +* [JakobJingleheimer](https://github.com/JakobJingleheimer) - + **Jacob Smith** <> (he/him) * [jasnell](https://github.com/jasnell) - - **James M Snell** \ (he/him) + **James M Snell** <> (he/him) * [jkrems](https://github.com/jkrems) - - **Jan Krems** \ (he/him) -* [joaocgreis](https://github.com/joaocgreis) - - **João Reis** \ + **Jan Krems** <> (he/him) +* [joesepi](https://github.com/joesepi) - + **Joe Sepi** <> (he/him) * [joyeecheung](https://github.com/joyeecheung) - - **Joyee Cheung** \ (she/her) + **Joyee Cheung** <> (she/her) * [juanarbol](https://github.com/juanarbol) - - **Juan José Arboleda** \ (he/him) + **Juan José Arboleda** <> (he/him) * [JungMinu](https://github.com/JungMinu) - - **Minwoo Jung** \ (he/him) + **Minwoo Jung** <> (he/him) * [legendecas](https://github.com/legendecas) - - **Chengzhong Wu** \ (he/him) + **Chengzhong Wu** <> (he/him) * [Leko](https://github.com/Leko) - - **Shingo Inoue** \ (he/him) + **Shingo Inoue** <> (he/him) * [linkgoron](https://github.com/linkgoron) - - **Nitzan Uziely** \ + **Nitzan Uziely** <> * [lpinca](https://github.com/lpinca) - - **Luigi Pinca** \ (he/him) + **Luigi Pinca** <> (he/him) * [lundibundi](https://github.com/lundibundi) - - **Denys Otrishko** \ (he/him) + **Denys Otrishko** <> (he/him) * [Lxxyx](https://github.com/Lxxyx) - - **Zijian Liu** \ (he/him) -* [mafintosh](https://github.com/mafintosh) - - **Mathias Buus** \ (he/him) + **Zijian Liu** <> (he/him) +* [marsonya](https://github.com/marsonya) - + **Akhil Marsonya** <> (he/him) * [mcollina](https://github.com/mcollina) - - **Matteo Collina** \ (he/him) + **Matteo Collina** <> (he/him) +* [Mesteery](https://github.com/Mesteery) - + **Mestery** <> (he/him) * [mhdawson](https://github.com/mhdawson) - - **Michael Dawson** \ (he/him) + **Michael Dawson** <> (he/him) * [miladfarca](https://github.com/miladfarca) - - **Milad Fa** \ (he/him) + **Milad Fa** <> (he/him) * [mildsunrise](https://github.com/mildsunrise) - - **Alba Mendez** \ (she/her) + **Alba Mendez** <> (she/her) * [mmarchini](https://github.com/mmarchini) - - **Mary Marchini** \ (she/her) + **Mary Marchini** <> (she/her) * [mscdex](https://github.com/mscdex) - - **Brian White** \ + **Brian White** <> * [MylesBorins](https://github.com/MylesBorins) - - **Myles Borins** \ (he/him) + **Myles Borins** <> (he/him) * [oyyd](https://github.com/oyyd) - - **Ouyang Yadong** \ (he/him) + **Ouyang Yadong** <> (he/him) * [panva](https://github.com/panva) - - **Filip Skokan** \ + **Filip Skokan** <> * [PoojaDurgad](https://github.com/PoojaDurgad) - - **Pooja D P** \ (she/her) + **Pooja D P** <> (she/her) * [puzpuzpuz](https://github.com/puzpuzpuz) - - **Andrey Pechkurov** \ (he/him) + **Andrey Pechkurov** <> (he/him) * [Qard](https://github.com/Qard) - - **Stephen Belanger** \ (he/him) + **Stephen Belanger** <> (he/him) * [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** \ (he/him) + **Darshan Sen** <> (he/him) * [rexagod](https://github.com/rexagod) - - **Pranshu Srivastava** \ (he/him) + **Pranshu Srivastava** <> (he/him) * [richardlau](https://github.com/richardlau) - - **Richard Lau** \ + **Richard Lau** <> * [rickyes](https://github.com/rickyes) - - **Ricky Zhou** \<0x19951125@gmail.com> (he/him) + **Ricky Zhou** <<0x19951125@gmail.com>> (he/him) * [ronag](https://github.com/ronag) - - **Robert Nagy** \ + **Robert Nagy** <> * [ruyadorno](https://github.com/ruyadorno) - - **Ruy Adorno** \ (he/him) + **Ruy Adorno** <> (he/him) * [rvagg](https://github.com/rvagg) - - **Rod Vagg** \ + **Rod Vagg** <> * [ryzokuken](https://github.com/ryzokuken) - - **Ujjwal Sharma** \ (he/him) + **Ujjwal Sharma** <> (he/him) * [santigimeno](https://github.com/santigimeno) - - **Santiago Gimeno** \ -* [seishun](https://github.com/seishun) - - **Nikolai Vavilov** \ + **Santiago Gimeno** <> * [shisama](https://github.com/shisama) - - **Masashi Hirano** \ (he/him) -* [silverwind](https://github.com/silverwind) - - **Roman Reiss** \ + **Masashi Hirano** <> (he/him) * [srl295](https://github.com/srl295) - - **Steven R Loomis** \ + **Steven R Loomis** <> * [starkwang](https://github.com/starkwang) - - **Weijia Wang** \ + **Weijia Wang** <> * [sxa](https://github.com/sxa) - - **Stewart X Addison** \ (he/him) + **Stewart X Addison** <> (he/him) * [targos](https://github.com/targos) - - **Michaël Zasso** \ (he/him) + **Michaël Zasso** <> (he/him) * [TimothyGu](https://github.com/TimothyGu) - - **Tiancheng "Timothy" Gu** \ (he/him) + **Tiancheng "Timothy" Gu** <> (he/him) * [tniessen](https://github.com/tniessen) - - **Tobias Nießen** \ (he/him) + **Tobias Nießen** <> (he/him) * [trivikr](https://github.com/trivikr) - - **Trivikram Kamat** \ + **Trivikram Kamat** <> * [Trott](https://github.com/Trott) - - **Rich Trott** \ (he/him) + **Rich Trott** <> (he/him) * [vdeturckheim](https://github.com/vdeturckheim) - - **Vladimir de Turckheim** \ (he/him) + **Vladimir de Turckheim** <> (he/him) +* [VoltrexMaster](https://github.com/VoltrexMaster) - + **Mohammed Keyvanzadeh** <> (he/him) * [watilde](https://github.com/watilde) - - **Daijiro Wachi** \ (he/him) -* [watson](https://github.com/watson) - - **Thomas Watson** \ + **Daijiro Wachi** <> (he/him) * [XadillaX](https://github.com/XadillaX) - - **Khaidi Chu** \ (he/him) + **Khaidi Chu** <> (he/him) * [yashLadha](https://github.com/yashLadha) - - **Yash Ladha** \ (he/him) -* [yhwang](https://github.com/yhwang) - - **Yihong Wang** \ + **Yash Ladha** <> (he/him) * [yosuke-furukawa](https://github.com/yosuke-furukawa) - - **Yosuke Furukawa** \ + **Yosuke Furukawa** <> * [ZYSzys](https://github.com/ZYSzys) - - **Yongsheng Zhang** \ (he/him) + **Yongsheng Zhang** <> (he/him)
@@ -470,253 +469,299 @@ For information about the governance of the Node.js project, see ### Collaborator emeriti * [andrasq](https://github.com/andrasq) - - **Andras** \ + **Andras** <> * [AnnaMag](https://github.com/AnnaMag) - - **Anna M. Kedzierska** \ + **Anna M. Kedzierska** <> * [AndreasMadsen](https://github.com/AndreasMadsen) - - **Andreas Madsen** \ (he/him) + **Andreas Madsen** <> (he/him) * [aqrln](https://github.com/aqrln) - - **Alexey Orlenko** \ (he/him) + **Alexey Orlenko** <> (he/him) * [bmeurer](https://github.com/bmeurer) - - **Benedikt Meurer** \ -* [bnoordhuis](https://github.com/bnoordhuis) - - **Ben Noordhuis** \ + **Benedikt Meurer** <> * [brendanashworth](https://github.com/brendanashworth) - - **Brendan Ashworth** \ + **Brendan Ashworth** <> * [calvinmetcalf](https://github.com/calvinmetcalf) - - **Calvin Metcalf** \ + **Calvin Metcalf** <> * [chrisdickinson](https://github.com/chrisdickinson) - - **Chris Dickinson** \ + **Chris Dickinson** <> * [claudiorodriguez](https://github.com/claudiorodriguez) - - **Claudio Rodriguez** \ + **Claudio Rodriguez** <> * [DavidCai1993](https://github.com/DavidCai1993) - - **David Cai** \ (he/him) + **David Cai** <> (he/him) +* [davisjam](https://github.com/davisjam) - + **Jamie Davis** <> (he/him) * [digitalinfinity](https://github.com/digitalinfinity) - - **Hitesh Kanwathirtha** \ (he/him) + **Hitesh Kanwathirtha** <> (he/him) * [eljefedelrodeodeljefe](https://github.com/eljefedelrodeodeljefe) - - **Robert Jefe Lindstaedt** \ + **Robert Jefe Lindstaedt** <> * [estliberitas](https://github.com/estliberitas) - - **Alexander Makarenko** \ + **Alexander Makarenko** <> +* [eugeneo](https://github.com/eugeneo) - + **Eugene Ostroukhov** <> * [firedfox](https://github.com/firedfox) - - **Daniel Wang** \ + **Daniel Wang** <> +* [Fishrock123](https://github.com/Fishrock123) - + **Jeremiah Senkpiel** <> (he/they) * [gdams](https://github.com/gdams) - - **George Adams** \ (he/him) + **George Adams** <> (he/him) * [geek](https://github.com/geek) - - **Wyatt Preul** \ + **Wyatt Preul** <> * [gibfahn](https://github.com/gibfahn) - - **Gibson Fahnestock** \ (he/him) + **Gibson Fahnestock** <> (he/him) * [glentiki](https://github.com/glentiki) - - **Glen Keane** \ (he/him) + **Glen Keane** <> (he/him) * [iarna](https://github.com/iarna) - - **Rebecca Turner** \ + **Rebecca Turner** <> * [imran-iq](https://github.com/imran-iq) - - **Imran Iqbal** \ + **Imran Iqbal** <> * [imyller](https://github.com/imyller) - - **Ilkka Myller** \ + **Ilkka Myller** <> * [isaacs](https://github.com/isaacs) - - **Isaac Z. Schlueter** \ + **Isaac Z. Schlueter** <> * [italoacasas](https://github.com/italoacasas) - - **Italo A. Casas** \ (he/him) + **Italo A. Casas** <> (he/him) * [jasongin](https://github.com/jasongin) - - **Jason Ginchereau** \ + **Jason Ginchereau** <> * [jbergstroem](https://github.com/jbergstroem) - - **Johan Bergström** \ + **Johan Bergström** <> * [jdalton](https://github.com/jdalton) - - **John-David Dalton** \ + **John-David Dalton** <> * [jhamhader](https://github.com/jhamhader) - - **Yuval Brik** \ + **Yuval Brik** <> +* [joaocgreis](https://github.com/joaocgreis) - + **João Reis** <> * [joshgav](https://github.com/joshgav) - - **Josh Gavant** \ + **Josh Gavant** <> * [julianduque](https://github.com/julianduque) - - **Julian Duque** \ (he/him) + **Julian Duque** <> (he/him) * [kfarnung](https://github.com/kfarnung) - - **Kyle Farnung** \ (he/him) + **Kyle Farnung** <> (he/him) * [kunalspathak](https://github.com/kunalspathak) - - **Kunal Pathak** \ + **Kunal Pathak** <> * [lance](https://github.com/lance) - - **Lance Ball** \ (he/him) + **Lance Ball** <> (he/him) * [lucamaraschi](https://github.com/lucamaraschi) - - **Luca Maraschi** \ (he/him) + **Luca Maraschi** <> (he/him) * [lxe](https://github.com/lxe) - - **Aleksey Smolenchuk** \ + **Aleksey Smolenchuk** <> * [maclover7](https://github.com/maclover7) - - **Jon Moss** \ (he/him) + **Jon Moss** <> (he/him) +* [mafintosh](https://github.com/mafintosh) - + **Mathias Buus** <> (he/him) * [matthewloring](https://github.com/matthewloring) - - **Matthew Loring** \ + **Matthew Loring** <> * [micnic](https://github.com/micnic) - - **Nicu Micleușanu** \ (he/him) + **Nicu Micleușanu** <> (he/him) * [mikeal](https://github.com/mikeal) - - **Mikeal Rogers** \ + **Mikeal Rogers** <> * [misterdjules](https://github.com/misterdjules) - - **Julien Gilli** \ + **Julien Gilli** <> * [monsanto](https://github.com/monsanto) - - **Christopher Monsanto** \ + **Christopher Monsanto** <> * [MoonBall](https://github.com/MoonBall) - - **Chen Gang** \ + **Chen Gang** <> * [not-an-aardvark](https://github.com/not-an-aardvark) - - **Teddy Katz** \ (he/him) + **Teddy Katz** <> (he/him) * [ofrobots](https://github.com/ofrobots) - - **Ali Ijaz Sheikh** \ (he/him) + **Ali Ijaz Sheikh** <> (he/him) * [Olegas](https://github.com/Olegas) - - **Oleg Elifantiev** \ + **Oleg Elifantiev** <> * [orangemocha](https://github.com/orangemocha) - - **Alexis Campailla** \ + **Alexis Campailla** <> * [othiym23](https://github.com/othiym23) - - **Forrest L Norvell** \ (they/them/themself) + **Forrest L Norvell** <> (they/them/themself) * [petkaantonov](https://github.com/petkaantonov) - - **Petka Antonov** \ + **Petka Antonov** <> * [phillipj](https://github.com/phillipj) - - **Phillip Johnsen** \ + **Phillip Johnsen** <> * [piscisaureus](https://github.com/piscisaureus) - - **Bert Belder** \ + **Bert Belder** <> * [pmq20](https://github.com/pmq20) - - **Minqi Pan** \ + **Minqi Pan** <> * [princejwesley](https://github.com/princejwesley) - - **Prince John Wesley** \ + **Prince John Wesley** <> * [psmarshall](https://github.com/psmarshall) - - **Peter Marshall** \ (he/him) + **Peter Marshall** <> (he/him) * [refack](https://github.com/refack) - - **Refael Ackermann (רפאל פלחי)** \ (he/him/הוא/אתה) + **Refael Ackermann (רפאל פלחי)** <> (he/him/הוא/אתה) * [rlidwka](https://github.com/rlidwka) - - **Alex Kocharin** \ + **Alex Kocharin** <> * [rmg](https://github.com/rmg) - - **Ryan Graham** \ + **Ryan Graham** <> * [robertkowalski](https://github.com/robertkowalski) - - **Robert Kowalski** \ + **Robert Kowalski** <> * [romankl](https://github.com/romankl) - - **Roman Klauke** \ + **Roman Klauke** <> * [ronkorving](https://github.com/ronkorving) - - **Ron Korving** \ + **Ron Korving** <> * [RReverser](https://github.com/RReverser) - - **Ingvar Stepanyan** \ + **Ingvar Stepanyan** <> * [rubys](https://github.com/rubys) - - **Sam Ruby** \ + **Sam Ruby** <> * [saghul](https://github.com/saghul) - - **Saúl Ibarra Corretgé** \ + **Saúl Ibarra Corretgé** <> * [sam-github](https://github.com/sam-github) - - **Sam Roberts** \ + **Sam Roberts** <> * [sebdeckers](https://github.com/sebdeckers) - - **Sebastiaan Deckers** \ + **Sebastiaan Deckers** <> +* [seishun](https://github.com/seishun) - + **Nikolai Vavilov** <> * [shigeki](https://github.com/shigeki) - - **Shigeki Ohtsu** \ (he/him) + **Shigeki Ohtsu** <> (he/him) +* [silverwind](https://github.com/silverwind) - + **Roman Reiss** <> * [stefanmb](https://github.com/stefanmb) - - **Stefan Budeanu** \ + **Stefan Budeanu** <> * [tellnes](https://github.com/tellnes) - - **Christian Tellnes** \ + **Christian Tellnes** <> * [thefourtheye](https://github.com/thefourtheye) - - **Sakthipriyan Vairamani** \ (he/him) + **Sakthipriyan Vairamani** <> (he/him) * [thlorenz](https://github.com/thlorenz) - - **Thorsten Lorenz** \ + **Thorsten Lorenz** <> * [trevnorris](https://github.com/trevnorris) - - **Trevor Norris** \ + **Trevor Norris** <> * [tunniclm](https://github.com/tunniclm) - - **Mike Tunnicliffe** \ + **Mike Tunnicliffe** <> * [vkurchatkin](https://github.com/vkurchatkin) - - **Vladimir Kurchatkin** \ + **Vladimir Kurchatkin** <> * [vsemozhetbyt](https://github.com/vsemozhetbyt) - - **Vse Mozhet Byt** \ (he/him) + **Vse Mozhet Byt** <> (he/him) +* [watson](https://github.com/watson) - + **Thomas Watson** <> * [whitlockjc](https://github.com/whitlockjc) - - **Jeremy Whitlock** \ + **Jeremy Whitlock** <> +* [yhwang](https://github.com/yhwang) - + **Yihong Wang** <> * [yorkie](https://github.com/yorkie) - - **Yorkie Liu** \ + **Yorkie Liu** <>
+ -Collaborators follow the [Collaborator Guide](./doc/guides/collaborator-guide.md) in +Collaborators follow the [Collaborator Guide](./doc/contributing/collaborator-guide.md) in maintaining the Node.js project. ### Triagers * [Ayase-252](https://github.com/Ayase-252) - - **Qingyu Deng** \ + **Qingyu Deng** <> * [himadriganguly](https://github.com/himadriganguly) - - **Himadri Ganguly** \ (he/him) + **Himadri Ganguly** <> (he/him) * [iam-frankqiu](https://github.com/iam-frankqiu) - - **Frank Qiu** \ (he/him) + **Frank Qiu** <> (he/him) * [marsonya](https://github.com/marsonya) - - **Akhil Marsonya** \ (he/him) + **Akhil Marsonya** <> (he/him) +* [meixg](https://github.com/meixg) - + **Xuguang Mei** <> (he/him) * [Mesteery](https://github.com/Mesteery) - - **Mestery** \ + **Mestery** <> (he/him) * [PoojaDurgad](https://github.com/PoojaDurgad) - - **Pooja Durgad** \ + **Pooja Durgad** <> * [RaisinTen](https://github.com/RaisinTen) - - **Darshan Sen** \ + **Darshan Sen** <> * [VoltrexMaster](https://github.com/VoltrexMaster) - - **Voltrex** \ (he/him) + **Mohammed Keyvanzadeh** <> (he/him) ### Release keys Primary GPG keys for Node.js Releasers (some Releasers sign with subkeys): -* **Beth Griggs** \ +* **Beth Griggs** <> `4ED778F539E3634C779C87C6D7062848A1AB005C` -* **Colin Ihrig** \ +* **Bryan English** <> + `141F07595B7B3FFE74309A937405533BE57C7D57` +* **Colin Ihrig** <> `94AE36675C464D64BAFA68DD7434390BDBE9B9C5` -* **Danielle Adams** \ +* **Danielle Adams** <> `74F12602B6F1C4E913FAA37AD3A89613643B6201` -* **James M Snell** \ +* **James M Snell** <> `71DCFD284A79C3B38668286BC97EC7A07EDE3FC1` -* **Michaël Zasso** \ +* **Michaël Zasso** <> `8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600` -* **Myles Borins** \ +* **Myles Borins** <> `C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8` -* **Richard Lau** \ +* **Richard Lau** <> `C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C` -* **Rod Vagg** \ +* **Rod Vagg** <> `DD8F2338BAE7501E3DD5AC78C273792F7D83545D` -* **Ruben Bridgewater** \ +* **Ruben Bridgewater** <> `A48C2BEE680E841632CD4E44F07496B3EB3C1762` -* **Ruy Adorno** \ +* **Ruy Adorno** <> `108F52B48DB57BB0CC439B2997B01419BD92F80A` -* **Shelley Vohr** \ +* **Shelley Vohr** <> `B9E2F5981AA6E0CD28160D9FF13993A75599653C` To import the full set of trusted release keys (including subkeys possibly used to sign releases): ```bash -gpg --keyserver pool.sks-keyservers.net --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C -gpg --keyserver pool.sks-keyservers.net --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 -gpg --keyserver pool.sks-keyservers.net --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 -gpg --keyserver pool.sks-keyservers.net --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 -gpg --keyserver pool.sks-keyservers.net --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 -gpg --keyserver pool.sks-keyservers.net --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 -gpg --keyserver pool.sks-keyservers.net --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C -gpg --keyserver pool.sks-keyservers.net --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D -gpg --keyserver pool.sks-keyservers.net --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 -gpg --keyserver pool.sks-keyservers.net --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A -gpg --keyserver pool.sks-keyservers.net --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C +gpg --keyserver hkps://keys.openpgp.org --recv-keys 4ED778F539E3634C779C87C6D7062848A1AB005C +gpg --keyserver hkps://keys.openpgp.org --recv-keys 141F07595B7B3FFE74309A937405533BE57C7D57 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 94AE36675C464D64BAFA68DD7434390BDBE9B9C5 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 74F12602B6F1C4E913FAA37AD3A89613643B6201 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 71DCFD284A79C3B38668286BC97EC7A07EDE3FC1 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 8FCCA13FEF1D0C2E91008E09770F7A9A5AE15600 +gpg --keyserver hkps://keys.openpgp.org --recv-keys C4F0DFFF4E8C1A8236409D08E73BC641CC11F4C8 +gpg --keyserver hkps://keys.openpgp.org --recv-keys C82FA3AE1CBEDC6BE46B9360C43CEC45C17AB93C +gpg --keyserver hkps://keys.openpgp.org --recv-keys DD8F2338BAE7501E3DD5AC78C273792F7D83545D +gpg --keyserver hkps://keys.openpgp.org --recv-keys A48C2BEE680E841632CD4E44F07496B3EB3C1762 +gpg --keyserver hkps://keys.openpgp.org --recv-keys 108F52B48DB57BB0CC439B2997B01419BD92F80A +gpg --keyserver hkps://keys.openpgp.org --recv-keys B9E2F5981AA6E0CD28160D9FF13993A75599653C ``` -See the section above on [Verifying Binaries](#verifying-binaries) for how to +See the section above on [Verifying binaries](#verifying-binaries) for how to use these keys to verify a downloaded file.
Other keys used to sign some previous releases -* **Chris Dickinson** \ +* **Chris Dickinson** <> `9554F04D7259F04124DE6B476D5A82AC7E37093B` -* **Danielle Adams** \ +* **Danielle Adams** <> `1C050899334244A8AF75E53792EF661D867B9DFA` -* **Evan Lucas** \ +* **Evan Lucas** <> `B9AE9905FFD7803F25714661B63B535A4C206CA9` -* **Gibson Fahnestock** \ +* **Gibson Fahnestock** <> `77984A986EBC2AA786BC0F66B01FBB92821C587A` -* **Isaac Z. Schlueter** \ +* **Isaac Z. Schlueter** <> `93C7E9E91B49E432C2F75674B0A78B0A6C481CF6` -* **Italo A. Casas** \ +* **Italo A. Casas** <> `56730D5401028683275BD23C23EFEFE93C4CFFFE` -* **Jeremiah Senkpiel** \ +* **Jeremiah Senkpiel** <> `FD3A5288F042B6850C66B31F09FE44734EB7990E` -* **Julien Gilli** \ +* **Julien Gilli** <> `114F43EE0176B71C7BC219DD50A3051F888C628D` -* **Timothy J Fontaine** \ +* **Timothy J Fontaine** <> `7937DFD2AB06298B2293C3187D33FF9D0246406D`
+### Security release stewards + +When possible, the commitment to take slots in the +security release steward rotation is made by companies in order +to ensure individuals who act as security stewards have the +support and recognition from their employer to be able to +prioritize security releases. Security release stewards manage security +releases on a rotation basis as outlined in the +[security release process](./doc/contributing/security-release-process.md). + +* Datadog + * [bengl](https://github.com/bengl) - + **Bryan English** <> (he/him) + * [vdeturckheim](https://github.com/vdeturckheim) - + **Vladimir de Turckheim** <> (he/him) +* NearForm + * [mcollina](https://github.com/mcollina) - + **Matteo Collina** <> (he/him) +* Red Hat and IBM + * [joesepi](https://github.com/joesepi) - + **Joe Sepi** <> (he/him) + * [mhdawson](https://github.com/mhdawson) - + **Michael Dawson** <> (he/him) + ## License Node.js is available under the @@ -727,8 +772,8 @@ license text. [Code of Conduct]: https://github.com/nodejs/admin/blob/HEAD/CODE_OF_CONDUCT.md [Contributing to the project]: CONTRIBUTING.md -[Node.js Website]: https://nodejs.org/ +[Node.js website]: https://nodejs.org/ [OpenJS Foundation]: https://openjsf.org/ -[Strategic initiatives]: doc/guides/strategic-initiatives.md -[Technical values and prioritization]: doc/guides/technical-values.md +[Strategic initiatives]: doc/contributing/strategic-initiatives.md +[Technical values and prioritization]: doc/contributing/technical-values.md [Working Groups]: https://github.com/nodejs/TSC/blob/HEAD/WORKING_GROUPS.md diff --git a/SECURITY.md b/SECURITY.md index 3486e71f32a7bd..b22301a1f1d556 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -4,8 +4,8 @@ Report security bugs in Node.js via [HackerOne](https://hackerone.com/nodejs). -Your report will be acknowledged within 24 hours, and you’ll receive a more -detailed response to your report within 48 hours indicating the next steps in +Your report will be acknowledged within 5 days, and you’ll receive a more +detailed response to your report within 10 days indicating the next steps in handling your submission. After the initial reply to your report, the security team will endeavor to keep @@ -22,14 +22,7 @@ the HackerOne platform. See for further details. ## Reporting a bug in a third party module Security bugs in third party modules should be reported to their respective -maintainers and should also be coordinated through the Node.js Ecosystem -Security Team via [HackerOne](https://hackerone.com/nodejs-ecosystem). - -Details regarding this process can be found in the -[Security Working Group repository](https://github.com/nodejs/security-wg/blob/HEAD/processes/third\_party\_vuln\_process.md). - -Thank you for improving the security of Node.js and its ecosystem. Your efforts -and responsible disclosure are greatly appreciated and will be acknowledged. +maintainers. ## Disclosure policy diff --git a/benchmark/README.md b/benchmark/README.md index e40972fde08ac9..710731b3c9f0fd 100644 --- a/benchmark/README.md +++ b/benchmark/README.md @@ -5,7 +5,7 @@ of different Node.js implementations and different ways of writing JavaScript run by the built-in JavaScript engine. For a detailed guide on how to write and run benchmarks in this -directory, see [the guide on benchmarks](../doc/guides/writing-and-running-benchmarks.md). +directory, see [the guide on benchmarks](../doc/contributing/writing-and-running-benchmarks.md). ## Table of Contents @@ -77,17 +77,17 @@ writing benchmarks. ### `createBenchmark(fn, configs[, options])` -See [the guide on writing benchmarks](../doc/guides/writing-and-running-benchmarks.md#basics-of-a-benchmark). +See [the guide on writing benchmarks](../doc/contributing/writing-and-running-benchmarks.md#basics-of-a-benchmark). ### `default_http_benchmarker` The default benchmarker used to run HTTP benchmarks. -See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark). +See [the guide on writing HTTP benchmarks](../doc/contributing/writing-and-running-benchmarks.md#creating-an-http-benchmark). ### `PORT` The default port used to run HTTP benchmarks. -See [the guide on writing HTTP benchmarks](../doc/guides/writing-and-running-benchmarks.md#creating-an-http-benchmark). +See [the guide on writing HTTP benchmarks](../doc/contributing/writing-and-running-benchmarks.md#creating-an-http-benchmark). ### `sendResult(data)` diff --git a/benchmark/_http-benchmarkers.js b/benchmark/_http-benchmarkers.js index 615579cba52416..ec0e80a9e7edbe 100644 --- a/benchmark/_http-benchmarkers.js +++ b/benchmark/_http-benchmarkers.js @@ -173,7 +173,7 @@ class H2LoadBenchmarker { } processResults(output) { - const rex = /(\d+(?:\.\d+)) req\/s/; + const rex = /(\d+\.\d+) req\/s/; return rex.exec(output)[1]; } } diff --git a/benchmark/assert/deepequal-object.js b/benchmark/assert/deepequal-object.js index a8c539426a8156..7418e2a745ba40 100644 --- a/benchmark/assert/deepequal-object.js +++ b/benchmark/assert/deepequal-object.js @@ -24,8 +24,7 @@ function createObj(source, add = '') { } function main({ size, n, method, strict }) { - // TODO: Fix this "hack". `n` should not be manipulated. - n = Math.min(Math.ceil(n / size), 20); + const len = Math.min(Math.ceil(n / size), 20); const source = Array.apply(null, Array(size)); const actual = createObj(source); @@ -39,8 +38,8 @@ function main({ size, n, method, strict }) { const value2 = method.includes('not') ? expectedWrong : expected; bench.start(); - for (let i = 0; i < n; ++i) { + for (let i = 0; i < len; ++i) { fn(actual, value2); } - bench.end(n); + bench.end(len); } diff --git a/benchmark/buffers/buffer-slice.js b/benchmark/buffers/buffer-slice.js index a64cbd2ab2db7c..dcb18754e8420d 100644 --- a/benchmark/buffers/buffer-slice.js +++ b/benchmark/buffers/buffer-slice.js @@ -3,7 +3,7 @@ const common = require('../common.js'); const SlowBuffer = require('buffer').SlowBuffer; const bench = common.createBenchmark(main, { - type: ['fast', 'slow'], + type: ['fast', 'slow', 'subarray'], n: [1e6] }); @@ -11,10 +11,14 @@ const buf = Buffer.allocUnsafe(1024); const slowBuf = new SlowBuffer(1024); function main({ n, type }) { - const b = type === 'fast' ? buf : slowBuf; + const b = type === 'slow' ? slowBuf : buf; + const fn = type === 'subarray' ? + () => b.subarray(10, 256) : + () => b.slice(10, 256); + bench.start(); for (let i = 0; i < n; i++) { - b.slice(10, 256); + fn(); } bench.end(n); } diff --git a/benchmark/common.js b/benchmark/common.js index 28a317b9a1d7a4..88cb8a560f40e1 100644 --- a/benchmark/common.js +++ b/benchmark/common.js @@ -38,7 +38,7 @@ class Benchmark { this.config = this.queue[0]; process.nextTick(() => { - if (process.env.hasOwnProperty('NODE_RUN_BENCHMARK_FN')) { + if (Object.hasOwn(process.env, 'NODE_RUN_BENCHMARK_FN')) { fn(this.config); } else { // _run will use fork() to create a new process for each configuration @@ -91,7 +91,7 @@ class Benchmark { process.exit(1); } const [, key, value] = match; - if (Object.prototype.hasOwnProperty.call(configs, key)) { + if (Object.hasOwn(configs, key)) { if (!cliOptions[key]) cliOptions[key] = []; cliOptions[key].push( diff --git a/benchmark/crypto/hash-stream-creation.js b/benchmark/crypto/hash-stream-creation.js index c21eb6eaaaed99..e480c7b6edcc41 100644 --- a/benchmark/crypto/hash-stream-creation.js +++ b/benchmark/crypto/hash-stream-creation.js @@ -52,11 +52,7 @@ function legacyWrite(algo, message, encoding, writes, len, outEnc) { while (writes-- > 0) { const h = crypto.createHash(algo); h.update(message, encoding); - let res = h.digest(outEnc); - - // Include buffer creation costs for older versions - if (outEnc === 'buffer' && typeof res === 'string') - res = Buffer.from(res, 'binary'); + h.digest(outEnc); } bench.end(gbits); diff --git a/benchmark/crypto/webcrypto-digest.js b/benchmark/crypto/webcrypto-digest.js index 2d95f868f66f7c..4acd82878dacf2 100644 --- a/benchmark/crypto/webcrypto-digest.js +++ b/benchmark/crypto/webcrypto-digest.js @@ -3,11 +3,9 @@ const common = require('../common.js'); const { createHash, - webcrypto: { - subtle, - getRandomValues - } + webcrypto, } = require('crypto'); +const { subtle } = webcrypto; const bench = common.createBenchmark(main, { sync: ['createHash', 'subtle'], @@ -50,7 +48,7 @@ function measureSubtle(n, data, method) { } function main({ n, sync, data, method }) { - data = getRandomValues(Buffer.alloc(data)); + data = webcrypto.getRandomValues(Buffer.alloc(data)); switch (sync) { case 'createHash': return measureLegacy(n, data, method); case 'subtle': return measureSubtle(n, data, method); diff --git a/benchmark/es/foreach-bench.js b/benchmark/es/foreach-bench.js index 6992a1a5749438..86bd8dff4c0a2c 100644 --- a/benchmark/es/foreach-bench.js +++ b/benchmark/es/foreach-bench.js @@ -22,7 +22,7 @@ function useFor(n, items, count) { function useForOf(n, items) { bench.start(); for (let i = 0; i < n; i++) { - // eslint-disable-next-line no-unused-vars + // eslint-disable-next-line no-unused-vars, no-empty for (const item of items) {} } bench.end(n); diff --git a/benchmark/es/map-bench.js b/benchmark/es/map-bench.js index d0b8534cf7c906..7e5e8824bfecb5 100644 --- a/benchmark/es/map-bench.js +++ b/benchmark/es/map-bench.js @@ -72,7 +72,7 @@ function fakeMap() { get(key) { return m[`$${key}`]; }, set(key, val) { m[`$${key}`] = val; }, get size() { return Object.keys(m).length; }, - has(key) { return Object.prototype.hasOwnProperty.call(m, `$${key}`); } + has(key) { return Object.hasOwn(m, `$${key}`); } }; } diff --git a/benchmark/fs/bench-statSync-failure.js b/benchmark/fs/bench-statSync-failure.js index 82cb24c09f4af2..dd69259eacd07e 100644 --- a/benchmark/fs/bench-statSync-failure.js +++ b/benchmark/fs/bench-statSync-failure.js @@ -21,6 +21,7 @@ function main({ n, statSyncType }) { try { fs.statSync(arg); } catch { + // Continue regardless of error. } } } diff --git a/benchmark/fs/read-stream-throughput.js b/benchmark/fs/read-stream-throughput.js index 5984317ff91743..d4a0a798409a12 100644 --- a/benchmark/fs/read-stream-throughput.js +++ b/benchmark/fs/read-stream-throughput.js @@ -50,7 +50,11 @@ function main(conf) { buf.fill('x'); } - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } const ws = fs.createWriteStream(filename); ws.on('close', runTest.bind(null, filesize, highWaterMark, encoding, n)); ws.on('drain', write); @@ -81,7 +85,11 @@ function runTest(filesize, highWaterMark, encoding, n) { }); rs.on('end', () => { - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } // MB/sec bench.end(bytes / (1024 * 1024)); }); diff --git a/benchmark/fs/readfile-partitioned.js b/benchmark/fs/readfile-partitioned.js index 51700cfd649dfd..fac331ec38ba82 100644 --- a/benchmark/fs/readfile-partitioned.js +++ b/benchmark/fs/readfile-partitioned.js @@ -23,7 +23,11 @@ const bench = common.createBenchmark(main, { }); function main({ len, dur, concurrent }) { - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } let data = Buffer.alloc(len, 'x'); fs.writeFileSync(filename, data); data = null; @@ -38,7 +42,11 @@ function main({ len, dur, concurrent }) { const totalOps = reads + zips; benchEnded = true; bench.end(totalOps); - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } }, dur * 1000); function read() { diff --git a/benchmark/fs/readfile-promises.js b/benchmark/fs/readfile-promises.js index 28633c3f06427b..5cfa5b4cc02465 100644 --- a/benchmark/fs/readfile-promises.js +++ b/benchmark/fs/readfile-promises.js @@ -20,7 +20,11 @@ const bench = common.createBenchmark(main, { }); function main({ len, duration, concurrent }) { - try { fs.unlinkSync(filename); } catch { } + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } let data = Buffer.alloc(len, 'x'); fs.writeFileSync(filename, data); data = null; @@ -31,7 +35,11 @@ function main({ len, duration, concurrent }) { setTimeout(() => { benchEnded = true; bench.end(writes); - try { fs.unlinkSync(filename); } catch { } + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } process.exit(0); }, duration * 1000); diff --git a/benchmark/fs/readfile.js b/benchmark/fs/readfile.js index 3f996e02ede876..e27fe08f43ca86 100644 --- a/benchmark/fs/readfile.js +++ b/benchmark/fs/readfile.js @@ -20,7 +20,11 @@ const bench = common.createBenchmark(main, { }); function main({ len, duration, concurrent }) { - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } let data = Buffer.alloc(len, 'x'); fs.writeFileSync(filename, data); data = null; @@ -31,7 +35,11 @@ function main({ len, duration, concurrent }) { setTimeout(() => { benchEnded = true; bench.end(reads); - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } process.exit(0); }, duration * 1000); diff --git a/benchmark/fs/write-stream-throughput.js b/benchmark/fs/write-stream-throughput.js index 44a3bb23b041d1..88d3bce06d114e 100644 --- a/benchmark/fs/write-stream-throughput.js +++ b/benchmark/fs/write-stream-throughput.js @@ -36,7 +36,11 @@ function main({ dur, encodingType, size }) { throw new Error(`invalid encodingType: ${encodingType}`); } - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } let started = false; let ended = false; @@ -48,7 +52,11 @@ function main({ dur, encodingType, size }) { f.on('finish', () => { ended = true; const written = fs.statSync(filename).size / 1024; - try { fs.unlinkSync(filename); } catch {} + try { + fs.unlinkSync(filename); + } catch { + // Continue regardless of error. + } bench.end(written / 1024); }); diff --git a/benchmark/fs/writefile-promises.js b/benchmark/fs/writefile-promises.js index 2ba25184ff3132..8b3cd528bac5c9 100644 --- a/benchmark/fs/writefile-promises.js +++ b/benchmark/fs/writefile-promises.js @@ -46,7 +46,11 @@ function main({ encodingType, duration, concurrent, size }) { benchEnded = true; bench.end(writes); for (let i = 0; i < filesWritten; i++) { - try { fs.unlinkSync(`${filename}-${i}`); } catch { } + try { + fs.unlinkSync(`${filename}-${i}`); + } catch { + // Continue regardless of error. + } } process.exit(0); }, duration * 1000); diff --git a/benchmark/http/check_invalid_header_char.js b/benchmark/http/check_invalid_header_char.js index 245dc6fb8e1e7f..29439e3499d19e 100644 --- a/benchmark/http/check_invalid_header_char.js +++ b/benchmark/http/check_invalid_header_char.js @@ -55,7 +55,7 @@ const bench = common.createBenchmark(main, { function main({ n, input }) { let inputs = [input]; - if (groupedInputs.hasOwnProperty(input)) { + if (Object.hasOwn(groupedInputs, input)) { inputs = groupedInputs[input]; } diff --git a/benchmark/misc/punycode.js b/benchmark/misc/punycode.js index 9c674b5deefb8c..d0ee938ebd39a3 100644 --- a/benchmark/misc/punycode.js +++ b/benchmark/misc/punycode.js @@ -4,7 +4,9 @@ const common = require('../common.js'); let icu; try { icu = common.binding('icu'); -} catch {} +} catch { + // Continue regardless of error. +} const punycode = require('punycode'); const bench = common.createBenchmark(main, { diff --git a/benchmark/net/net-c2s-cork.js b/benchmark/net/net-c2s-cork.js index 1493cae68d0069..9a1129218531f1 100644 --- a/benchmark/net/net-c2s-cork.js +++ b/benchmark/net/net-c2s-cork.js @@ -55,7 +55,7 @@ function main({ dur, len, type }) { function send() { socket.cork(); - while (socket.write(chunk, encoding)) {} + while (socket.write(chunk, encoding)); socket.uncork(); } }); diff --git a/benchmark/run.js b/benchmark/run.js index aa7c71bdd4ecd3..a3c9da12f8b9c8 100644 --- a/benchmark/run.js +++ b/benchmark/run.js @@ -42,8 +42,7 @@ if (format === 'csv') { const filename = benchmarks[i]; const child = fork( path.resolve(__dirname, filename), - cli.test ? ['--test'] : [], - cli.optional.set + cli.test ? ['--test'] : cli.optional.set ); if (format !== 'csv') { diff --git a/benchmark/zlib/inflate.js b/benchmark/zlib/inflate.js index 09379c00c1250b..e4642b394468a9 100644 --- a/benchmark/zlib/inflate.js +++ b/benchmark/zlib/inflate.js @@ -16,7 +16,7 @@ function main({ n, method, inputLen }) { let i = 0; switch (method) { // Performs `n` single inflate operations - case 'inflate': + case 'inflate': { const inflate = zlib.inflate; bench.start(); (function next(err, result) { @@ -25,14 +25,16 @@ function main({ n, method, inputLen }) { inflate(chunk, next); })(); break; + } // Performs `n` single inflateSync operations - case 'inflateSync': + case 'inflateSync': { const inflateSync = zlib.inflateSync; bench.start(); for (; i < n; ++i) inflateSync(chunk); bench.end(n); break; + } default: throw new Error('Unsupported inflate method'); } diff --git a/common.gypi b/common.gypi index d4a34f0e0c277e..702eea8395f4db 100644 --- a/common.gypi +++ b/common.gypi @@ -36,7 +36,7 @@ # Reset this number to 0 on major V8 upgrades. # Increment by one for each non-official patch applied to deps/v8. - 'v8_embedder_string': '-node.12', + 'v8_embedder_string': '-node.15', ##### V8 defaults for Node.js ##### @@ -66,6 +66,9 @@ 'v8_enable_pointer_compression%': 0, 'v8_enable_31bit_smis_on_64bit_arch%': 0, + # Disable v8 hugepage by default. + 'v8_enable_hugepage%': 0, + # This is more of a V8 dev setting # https://github.com/nodejs/node/pull/22920/files#r222779926 'v8_enable_fast_mksnapshot': 0, @@ -99,11 +102,20 @@ 'obj_dir%': '<(PRODUCT_DIR)/obj.target', 'v8_base': '<(PRODUCT_DIR)/libv8_snapshot.a', }], + # V8 pointer compression only supports 64bit architectures. + ['target_arch in "arm ia32 mips mipsel ppc"', { + 'v8_enable_pointer_compression': 0, + 'v8_enable_31bit_smis_on_64bit_arch': 0, + }], ['target_arch in "ppc64 s390x"', { 'v8_enable_backtrace': 1, }], ['OS=="linux"', { 'node_section_ordering_info%': '' + }], + ['OS == "zos"', { + # use ICU data file on z/OS + 'icu_use_data_file_flag%': 1 }] ], }, @@ -195,7 +207,11 @@ # pull in V8's postmortem metadata 'ldflags': [ '-Wl,-z,allextract' ] }], - ['OS!="mac" and OS!="win"', { + ['OS=="zos"', { + # increase performance, number from experimentation + 'cflags': [ '-qINLINE=::150:100000' ] + }], + ['OS!="mac" and OS!="win" and OS!="zos"', { 'cflags': [ '-fno-omit-frame-pointer' ], }], ['OS=="linux"', { @@ -322,7 +338,7 @@ [ 'target_arch=="arm64"', { 'msvs_configuration_platform': 'arm64', }], - ['asan == 1 and OS != "mac"', { + ['asan == 1 and OS != "mac" and OS != "zos"', { 'cflags+': [ '-fno-omit-frame-pointer', '-fsanitize=address', @@ -398,10 +414,6 @@ 'cflags': [ '-m32' ], 'ldflags': [ '-m32' ], }], - [ 'target_arch=="x32"', { - 'cflags': [ '-mx32' ], - 'ldflags': [ '-mx32' ], - }], [ 'target_arch=="x64"', { 'cflags': [ '-m64' ], 'ldflags': [ '-m64' ], @@ -414,7 +426,7 @@ 'cflags': [ '-m64', '-mminimal-toc' ], 'ldflags': [ '-m64' ], }], - [ 'target_arch=="s390x"', { + [ 'target_arch=="s390x" and OS=="linux"', { 'cflags': [ '-m64', '-march=z196' ], 'ldflags': [ '-m64', '-march=z196' ], }], @@ -561,6 +573,50 @@ 'OPENSSL_NO_ASM', ], }], + ['OS == "zos"', { + 'defines': [ + '_XOPEN_SOURCE_EXTENDED', + '_XOPEN_SOURCE=600', + '_UNIX03_THREADS', + '_UNIX03_WITHDRAWN', + '_UNIX03_SOURCE', + '_OPEN_SYS_SOCK_IPV6', + '_OPEN_SYS_FILE_EXT=1', + '_POSIX_SOURCE', + '_OPEN_SYS', + '_OPEN_SYS_IF_EXT', + '_OPEN_SYS_SOCK_IPV6', + '_OPEN_MSGQ_EXT', + '_LARGE_TIME_API', + '_ALL_SOURCE', + '_AE_BIMODAL=1', + '__IBMCPP_TR1__', + 'NODE_PLATFORM="os390"', + 'PATH_MAX=1024', + '_ENHANCED_ASCII_EXT=0xFFFFFFFF', + '_Export=extern', + '__static_assert=static_assert', + ], + 'cflags': [ + '-q64', + '-Wc,DLL', + '-Wa,GOFF', + '-qARCH=10', + '-qASCII', + '-qTUNE=12', + '-qENUM=INT', + '-qEXPORTALL', + '-qASM', + ], + 'cflags_cc': [ + '-qxclang=-std=c++14', + ], + 'ldflags': [ + '-q64', + ], + # for addons due to v8config.h include of "zos-base.h": + 'include_dirs': ['<(zoslib_include_dir)'], + }], ], } } diff --git a/configure.py b/configure.py index a879a9661d65f7..162f94fa7fa038 100755 --- a/configure.py +++ b/configure.py @@ -14,12 +14,6 @@ import bz2 import io -# Fallback to find_executable from distutils.spawn is a stopgap for -# supporting V8 builds, which do not yet support Python 3. -try: - from shutil import which -except ImportError: - from distutils.spawn import find_executable as which from distutils.version import StrictVersion # If not run from node/, cd to node/. @@ -53,7 +47,7 @@ valid_os = ('win', 'mac', 'solaris', 'freebsd', 'openbsd', 'linux', 'android', 'aix', 'cloudabi') valid_arch = ('arm', 'arm64', 'ia32', 'mips', 'mipsel', 'mips64el', 'ppc', - 'ppc64', 'x32','x64', 'x86', 'x86_64', 's390x', 'riscv64') + 'ppc64', 'x64', 'x86', 'x86_64', 's390x', 'riscv64', 'loong64') valid_arm_float_abi = ('soft', 'softfp', 'hard') valid_arm_fpu = ('vfp', 'vfpv3', 'vfpv3-d16', 'neon') valid_mips_arch = ('loongson', 'r1', 'r2', 'r6', 'rx') @@ -68,6 +62,9 @@ "Flags that allows you to control whether you want to build against " "built-in dependencies or its shared representations. If necessary, " "provide multiple libraries with comma.") +static_optgroup = parser.add_argument_group("Static libraries", + "Flags that allows you to control whether you want to build against " + "additional static libraries.") intl_optgroup = parser.add_argument_group("Internationalization", "Flags that lets you enable i18n features in Node.js as well as which " "library you want to build against.") @@ -419,6 +416,13 @@ parser.add_argument_group(shared_optgroup) +static_optgroup.add_argument('--static-zoslib-gyp', + action='store', + dest='static_zoslib_gyp', + help='path to zoslib.gyp file for includes and to link to static zoslib libray') + +parser.add_argument_group(static_optgroup) + parser.add_argument('--systemtap-includes', action='store', dest='systemtap_includes', @@ -641,6 +645,12 @@ default=None, help='do not install the bundled npm (package manager)') +parser.add_argument('--without-corepack', + action='store_true', + dest='without_corepack', + default=None, + help='do not install the bundled Corepack') + # Dummy option for backwards compatibility parser.add_argument('--without-report', action='store_true', @@ -764,6 +774,13 @@ default=True, help='compile V8 with auxiliar functions for native debuggers') +parser.add_argument('--v8-enable-hugepage', + action='store_true', + dest='v8_enable_hugepage', + default=None, + help='Enable V8 transparent hugepage support. This feature is only '+ + 'available on Linux platform.') + parser.add_argument('--node-builtin-modules-path', action='store', dest='node_builtin_modules_path', @@ -828,7 +845,7 @@ def pkg_config(pkg): otherwise (None, None, None, None)""" pkg_config = os.environ.get('PKG_CONFIG', 'pkg-config') args = [] # Print pkg-config warnings on first round. - retval = () + retval = [] for flag in ['--libs-only-l', '--cflags-only-I', '--libs-only-L', '--modversion']: args += [flag] @@ -843,9 +860,9 @@ def pkg_config(pkg): except OSError as e: if e.errno != errno.ENOENT: raise e # Unexpected error. return (None, None, None, None) # No pkg-config/pkgconf installed. - retval += (val,) + retval.append(val) args = ['--silence-errors'] - return retval + return tuple(retval) def try_check_compiler(cc, lang): @@ -858,7 +875,11 @@ def try_check_compiler(cc, lang): proc.stdin.write(b'__clang__ __GNUC__ __GNUC_MINOR__ __GNUC_PATCHLEVEL__ ' b'__clang_major__ __clang_minor__ __clang_patchlevel__') - values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:7] + if sys.platform == 'zos': + values = (to_utf8(proc.communicate()[0]).split('\n')[-2].split() + ['0'] * 7)[0:7] + else: + values = (to_utf8(proc.communicate()[0]).split() + ['0'] * 7)[0:7] + is_clang = values[0] == '1' gcc_version = tuple(map(int, values[1:1+3])) clang_version = tuple(map(int, values[4:4+3])) if is_clang else None @@ -1045,6 +1066,8 @@ def is_arm_hard_float_abi(): def host_arch_cc(): """Host architecture check using the CC command.""" + if sys.platform.startswith('zos'): + return 's390x' k = cc_macros(os.environ.get('CC_host')) matchup = { @@ -1058,6 +1081,7 @@ def host_arch_cc(): '__x86_64__' : 'x64', '__s390x__' : 's390x', '__riscv' : 'riscv', + '__loongarch64': 'loong64', } rtn = 'ia32' # default @@ -1130,6 +1154,15 @@ def configure_mips(o, target_arch): host_byteorder = 'little' if target_arch in ('mipsel', 'mips64el') else 'big' o['variables']['v8_host_byteorder'] = host_byteorder +def configure_zos(o): + o['variables']['node_static_zoslib'] = b(True) + if options.static_zoslib_gyp: + # Apply to all Node.js components for now + o['variables']['zoslib_include_dir'] = os.path.dirname(options.static_zoslib_gyp) + '/include' + o['include_dirs'] += [o['variables']['zoslib_include_dir']] + else: + raise Exception('--static-zoslib-gyp= is required.') + def clang_version_ge(version_checked): for compiler in [(CC, 'c'), (CXX, 'c++')]: ok, is_clang, clang_version, gcc_version = \ @@ -1154,6 +1187,7 @@ def configure_node(o): o['variables']['OS'] = 'android' o['variables']['node_prefix'] = options.prefix o['variables']['node_install_npm'] = b(not options.without_npm) + o['variables']['node_install_corepack'] = b(not options.without_corepack) o['variables']['debug_node'] = b(options.debug_node) o['default_configuration'] = 'Debug' if options.debug else 'Release' o['variables']['error_on_warn'] = b(options.error_on_warn) @@ -1198,6 +1232,8 @@ def configure_node(o): configure_arm(o) elif target_arch in ('mips', 'mipsel', 'mips64el'): configure_mips(o, target_arch) + elif sys.platform == 'zos': + configure_zos(o) if flavor == 'aix': o['variables']['node_target_type'] = 'static_library' @@ -1310,6 +1346,8 @@ def configure_node(o): shlib_suffix = '%s.dylib' elif sys.platform.startswith('aix'): shlib_suffix = '%s.a' + elif sys.platform.startswith('zos'): + shlib_suffix = '%s.x' else: shlib_suffix = 'so.%s' if '%s' in shlib_suffix: @@ -1400,7 +1438,11 @@ def configure_v8(o): o['variables']['test_isolation_mode'] = 'noop' # Needed by d8.gyp. if options.without_bundled_v8 and options.enable_d8: raise Exception('--enable-d8 is incompatible with --without-bundled-v8.') - + if options.static_zoslib_gyp: + o['variables']['static_zoslib_gyp'] = options.static_zoslib_gyp + if flavor != 'linux' and options.v8_enable_hugepage: + raise Exception('--v8-enable-hugepage is supported only on linux.') + o['variables']['v8_enable_hugepage'] = 1 if options.v8_enable_hugepage else 0 def configure_openssl(o): variables = o['variables'] @@ -1803,6 +1845,9 @@ def icu_download(path): elif sys.platform.startswith('aix'): icu_config['variables']['icu_asm_ext'] = 'S' icu_config['variables']['icu_asm_opts'] = [ '-a', 'xlc' ] + elif sys.platform == 'zos': + icu_config['variables']['icu_asm_ext'] = 'S' + icu_config['variables']['icu_asm_opts'] = [ '-a', 'zos' ] else: # assume GCC-compatible asm is OK icu_config['variables']['icu_asm_ext'] = 'S' @@ -1852,7 +1897,7 @@ def make_bin_override(): # sys.executable. This directory will be prefixed to the PATH, so that # other tools that shell out to `python` will use the appropriate python - which_python = which('python') + which_python = shutil.which('python') if (which_python and os.path.realpath(which_python) == os.path.realpath(sys.executable)): return @@ -1980,6 +2025,7 @@ def make_bin_override(): gyp_args = ['--no-parallel', '-Dconfiguring_node=1'] +gyp_args += ['-Dbuild_type=' + config['BUILDTYPE']] if options.use_ninja: gyp_args += ['-f', 'ninja'] @@ -1995,8 +2041,8 @@ def make_bin_override(): if bin_override is not None: gyp_args += ['-Dpython=' + sys.executable] -# pass the leftover positional arguments to GYP -gyp_args += args +# pass the leftover non-whitespace positional arguments to GYP +gyp_args += [arg for arg in args if not str.isspace(arg)] if warn.warned and not options.verbose: warn('warnings were emitted in the configure phase') diff --git a/deps/acorn/acorn/CHANGELOG.md b/deps/acorn/acorn/CHANGELOG.md index 117c898c8ad156..278fa50c9d83b1 100644 --- a/deps/acorn/acorn/CHANGELOG.md +++ b/deps/acorn/acorn/CHANGELOG.md @@ -1,3 +1,13 @@ +## 8.6.0 (2021-11-18) + +### Bug fixes + +Fix a bug where an object literal with multiple `__proto__` properties would incorrectly be accepted if a later property value held an assigment. + +### New features + +Support class private fields with the `in` operator. + ## 8.5.0 (2021-09-06) ### Bug fixes @@ -36,7 +46,7 @@ A new option, `allowSuperOutsideMethod`, can be used to suppress the error when Default `allowAwaitOutsideFunction` to true for ECMAScript 2022 an higher. -Add support for the `p` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag. +Add support for the `d` ([indices](https://github.com/tc39/proposal-regexp-match-indices)) regexp flag. ## 8.2.4 (2021-05-04) diff --git a/deps/acorn/acorn/dist/acorn.js b/deps/acorn/acorn/dist/acorn.js index 96e3b82d834408..5d9b521ac320bd 100644 --- a/deps/acorn/acorn/dist/acorn.js +++ b/deps/acorn/acorn/dist/acorn.js @@ -1,8 +1,8 @@ (function (global, factory) { typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : typeof define === 'function' && define.amd ? define(['exports'], factory) : - (global = global || self, factory(global.acorn = {})); -}(this, (function (exports) { 'use strict'; + (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.acorn = {})); +})(this, (function (exports) { 'use strict'; // Reserved word lists for various dialects of the language @@ -18,7 +18,7 @@ var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; - var keywords = { + var keywords$1 = { 5: ecma5AndLessKeywords, "5module": ecma5AndLessKeywords + " export import", 6: ecma5AndLessKeywords + " const class extends export import super" @@ -137,17 +137,17 @@ // Map keyword names to token types. - var keywords$1 = {}; + var keywords = {}; // Succinct definitions of keyword token types function kw(name, options) { if ( options === void 0 ) options = {}; options.keyword = name; - return keywords$1[name] = new TokenType(name, options) + return keywords[name] = new TokenType(name, options) } - var types = { + var types$1 = { num: new TokenType("num", startsExpr), regexp: new TokenType("regexp", startsExpr), string: new TokenType("string", startsExpr), @@ -489,7 +489,7 @@ var Parser = function Parser(options, input, startPos) { this.options = options = getOptions(options); this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); + this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); var reserved = ""; if (options.allowReserved !== true) { reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; @@ -520,7 +520,7 @@ // Properties of the current token: // Its type - this.type = types.eof; + this.type = types$1.eof; // For tokens that include more information than their type, the value this.value = null; // Its start and end offset @@ -580,8 +580,11 @@ }; prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; + prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.canAwait.get = function () { for (var i = this.scopeStack.length - 1; i >= 0; i--) { var scope = this.scopeStack[i]; @@ -590,20 +593,25 @@ } return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction }; + prototypeAccessors.allowSuper.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod }; + prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; + prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; + prototypeAccessors.allowNewDotTarget.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit }; + prototypeAccessors.inClassStaticBlock.get = function () { return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0 }; @@ -633,12 +641,12 @@ Object.defineProperties( Parser.prototype, prototypeAccessors ); - var pp = Parser.prototype; + var pp$9 = Parser.prototype; // ## Parser utilities var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; - pp.strictDirective = function(start) { + pp$9.strictDirective = function(start) { for (;;) { // Try to find string literal. skipWhiteSpace.lastIndex = start; @@ -666,7 +674,7 @@ // Predicate that tests whether the next token is of the given // type, and if yes, consumes it as a side effect. - pp.eat = function(type) { + pp$9.eat = function(type) { if (this.type === type) { this.next(); return true @@ -677,13 +685,13 @@ // Tests whether parsed token is a contextual keyword. - pp.isContextual = function(name) { - return this.type === types.name && this.value === name && !this.containsEsc + pp$9.isContextual = function(name) { + return this.type === types$1.name && this.value === name && !this.containsEsc }; // Consumes contextual keyword if possible. - pp.eatContextual = function(name) { + pp$9.eatContextual = function(name) { if (!this.isContextual(name)) { return false } this.next(); return true @@ -691,19 +699,19 @@ // Asserts that following token is given contextual keyword. - pp.expectContextual = function(name) { + pp$9.expectContextual = function(name) { if (!this.eatContextual(name)) { this.unexpected(); } }; // Test whether a semicolon can be inserted at the current position. - pp.canInsertSemicolon = function() { - return this.type === types.eof || - this.type === types.braceR || + pp$9.canInsertSemicolon = function() { + return this.type === types$1.eof || + this.type === types$1.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; - pp.insertSemicolon = function() { + pp$9.insertSemicolon = function() { if (this.canInsertSemicolon()) { if (this.options.onInsertedSemicolon) { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } @@ -714,11 +722,11 @@ // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. - pp.semicolon = function() { - if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); } + pp$9.semicolon = function() { + if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); } }; - pp.afterTrailingComma = function(tokType, notNext) { + pp$9.afterTrailingComma = function(tokType, notNext) { if (this.type === tokType) { if (this.options.onTrailingComma) { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } @@ -731,13 +739,13 @@ // Expect a token of a given type. If found, consume it, otherwise, // raise an unexpected token error. - pp.expect = function(type) { + pp$9.expect = function(type) { this.eat(type) || this.unexpected(); }; // Raise an unexpected token error. - pp.unexpected = function(pos) { + pp$9.unexpected = function(pos) { this.raise(pos != null ? pos : this.start, "Unexpected token"); }; @@ -750,7 +758,7 @@ -1; } - pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { + pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return } if (refDestructuringErrors.trailingComma > -1) { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } @@ -758,7 +766,7 @@ if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); } }; - pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { + pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) { if (!refDestructuringErrors) { return false } var shorthandAssign = refDestructuringErrors.shorthandAssign; var doubleProto = refDestructuringErrors.doubleProto; @@ -769,20 +777,20 @@ { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } }; - pp.checkYieldAwaitInDefaultParams = function() { + pp$9.checkYieldAwaitInDefaultParams = function() { if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } if (this.awaitPos) { this.raise(this.awaitPos, "Await expression cannot be a default value"); } }; - pp.isSimpleAssignTarget = function(expr) { + pp$9.isSimpleAssignTarget = function(expr) { if (expr.type === "ParenthesizedExpression") { return this.isSimpleAssignTarget(expr.expression) } return expr.type === "Identifier" || expr.type === "MemberExpression" }; - var pp$1 = Parser.prototype; + var pp$8 = Parser.prototype; // ### Statement parsing @@ -791,10 +799,10 @@ // `program` argument. If present, the statements will be appended // to its body instead of creating a new node. - pp$1.parseTopLevel = function(node) { + pp$8.parseTopLevel = function(node) { var exports = Object.create(null); if (!node.body) { node.body = []; } - while (this.type !== types.eof) { + while (this.type !== types$1.eof) { var stmt = this.parseStatement(null, true, exports); node.body.push(stmt); } @@ -813,7 +821,7 @@ var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; - pp$1.isLet = function(context) { + pp$8.isLet = function(context) { if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); @@ -839,7 +847,7 @@ // check 'async [no LineTerminator here] function' // - 'async /*foo*/ function' is OK. // - 'async /*\n*/ function' is invalid. - pp$1.isAsyncFunction = function() { + pp$8.isAsyncFunction = function() { if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { return false } @@ -859,11 +867,11 @@ // `if (foo) /blah/.exec(foo)`, where looking at the previous token // does not help. - pp$1.parseStatement = function(context, topLevel, exports) { + pp$8.parseStatement = function(context, topLevel, exports) { var starttype = this.type, node = this.startNode(), kind; if (this.isLet(context)) { - starttype = types._var; + starttype = types$1._var; kind = "let"; } @@ -872,35 +880,35 @@ // complexity. switch (starttype) { - case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword) - case types._debugger: return this.parseDebuggerStatement(node) - case types._do: return this.parseDoStatement(node) - case types._for: return this.parseForStatement(node) - case types._function: + case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword) + case types$1._debugger: return this.parseDebuggerStatement(node) + case types$1._do: return this.parseDoStatement(node) + case types$1._for: return this.parseForStatement(node) + case types$1._function: // Function as sole body of either an if statement or a labeled statement // works, but not when it is part of a labeled statement that is the sole // body of an if statement. if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); } return this.parseFunctionStatement(node, false, !context) - case types._class: + case types$1._class: if (context) { this.unexpected(); } return this.parseClass(node, true) - case types._if: return this.parseIfStatement(node) - case types._return: return this.parseReturnStatement(node) - case types._switch: return this.parseSwitchStatement(node) - case types._throw: return this.parseThrowStatement(node) - case types._try: return this.parseTryStatement(node) - case types._const: case types._var: + case types$1._if: return this.parseIfStatement(node) + case types$1._return: return this.parseReturnStatement(node) + case types$1._switch: return this.parseSwitchStatement(node) + case types$1._throw: return this.parseThrowStatement(node) + case types$1._try: return this.parseTryStatement(node) + case types$1._const: case types$1._var: kind = kind || this.value; if (context && kind !== "var") { this.unexpected(); } return this.parseVarStatement(node, kind) - case types._while: return this.parseWhileStatement(node) - case types._with: return this.parseWithStatement(node) - case types.braceL: return this.parseBlock(true, node) - case types.semi: return this.parseEmptyStatement(node) - case types._export: - case types._import: - if (this.options.ecmaVersion > 10 && starttype === types._import) { + case types$1._while: return this.parseWhileStatement(node) + case types$1._with: return this.parseWithStatement(node) + case types$1.braceL: return this.parseBlock(true, node) + case types$1.semi: return this.parseEmptyStatement(node) + case types$1._export: + case types$1._import: + if (this.options.ecmaVersion > 10 && starttype === types$1._import) { skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); @@ -914,7 +922,7 @@ if (!this.inModule) { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } } - return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports) + return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports) // If the statement does not start with a statement keyword or a // brace, it's an ExpressionStatement or LabeledStatement. We @@ -929,17 +937,17 @@ } var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) + if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) { return this.parseLabeledStatement(node, maybeName, expr, context) } else { return this.parseExpressionStatement(node, expr) } } }; - pp$1.parseBreakContinueStatement = function(node, keyword) { + pp$8.parseBreakContinueStatement = function(node, keyword) { var isBreak = keyword === "break"; this.next(); - if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; } - else if (this.type !== types.name) { this.unexpected(); } + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; } + else if (this.type !== types$1.name) { this.unexpected(); } else { node.label = this.parseIdent(); this.semicolon(); @@ -959,21 +967,21 @@ return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") }; - pp$1.parseDebuggerStatement = function(node) { + pp$8.parseDebuggerStatement = function(node) { this.next(); this.semicolon(); return this.finishNode(node, "DebuggerStatement") }; - pp$1.parseDoStatement = function(node) { + pp$8.parseDoStatement = function(node) { this.next(); this.labels.push(loopLabel); node.body = this.parseStatement("do"); this.labels.pop(); - this.expect(types._while); + this.expect(types$1._while); node.test = this.parseParenExpression(); if (this.options.ecmaVersion >= 6) - { this.eat(types.semi); } + { this.eat(types$1.semi); } else { this.semicolon(); } return this.finishNode(node, "DoWhileStatement") @@ -987,25 +995,25 @@ // part (semicolon immediately after the opening parenthesis), it // is a regular `for` loop. - pp$1.parseForStatement = function(node) { + pp$8.parseForStatement = function(node) { this.next(); var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1; this.labels.push(loopLabel); this.enterScope(0); - this.expect(types.parenL); - if (this.type === types.semi) { + this.expect(types$1.parenL); + if (this.type === types$1.semi) { if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, null) } var isLet = this.isLet(); - if (this.type === types._var || this.type === types._const || isLet) { + if (this.type === types$1._var || this.type === types$1._const || isLet) { var init$1 = this.startNode(), kind = isLet ? "let" : this.value; this.next(); this.parseVar(init$1, true, kind); this.finishNode(init$1, "VariableDeclaration"); - if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { + if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { + if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } @@ -1017,9 +1025,9 @@ var startsWithLet = this.isContextual("let"), isForOf = false; var refDestructuringErrors = new DestructuringErrors; var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors); - if (this.type === types._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { + if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { + if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } @@ -1034,21 +1042,21 @@ return this.parseFor(node, init) }; - pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) { + pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) { this.next(); return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync) }; - pp$1.parseIfStatement = function(node) { + pp$8.parseIfStatement = function(node) { this.next(); node.test = this.parseParenExpression(); // allow function declarations in branches, but only in non-strict mode node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types._else) ? this.parseStatement("if") : null; + node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null; return this.finishNode(node, "IfStatement") }; - pp$1.parseReturnStatement = function(node) { + pp$8.parseReturnStatement = function(node) { if (!this.inFunction && !this.options.allowReturnOutsideFunction) { this.raise(this.start, "'return' outside of function"); } this.next(); @@ -1057,16 +1065,16 @@ // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. - if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; } + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; } else { node.argument = this.parseExpression(); this.semicolon(); } return this.finishNode(node, "ReturnStatement") }; - pp$1.parseSwitchStatement = function(node) { + pp$8.parseSwitchStatement = function(node) { this.next(); node.discriminant = this.parseParenExpression(); node.cases = []; - this.expect(types.braceL); + this.expect(types$1.braceL); this.labels.push(switchLabel); this.enterScope(0); @@ -1075,9 +1083,9 @@ // adding statements to. var cur; - for (var sawDefault = false; this.type !== types.braceR;) { - if (this.type === types._case || this.type === types._default) { - var isCase = this.type === types._case; + for (var sawDefault = false; this.type !== types$1.braceR;) { + if (this.type === types$1._case || this.type === types$1._default) { + var isCase = this.type === types$1._case; if (cur) { this.finishNode(cur, "SwitchCase"); } node.cases.push(cur = this.startNode()); cur.consequent = []; @@ -1089,7 +1097,7 @@ sawDefault = true; cur.test = null; } - this.expect(types.colon); + this.expect(types$1.colon); } else { if (!cur) { this.unexpected(); } cur.consequent.push(this.parseStatement(null)); @@ -1102,7 +1110,7 @@ return this.finishNode(node, "SwitchStatement") }; - pp$1.parseThrowStatement = function(node) { + pp$8.parseThrowStatement = function(node) { this.next(); if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) { this.raise(this.lastTokEnd, "Illegal newline after throw"); } @@ -1113,21 +1121,21 @@ // Reused empty array added for node fields that are always empty. - var empty = []; + var empty$1 = []; - pp$1.parseTryStatement = function(node) { + pp$8.parseTryStatement = function(node) { this.next(); node.block = this.parseBlock(); node.handler = null; - if (this.type === types._catch) { + if (this.type === types$1._catch) { var clause = this.startNode(); this.next(); - if (this.eat(types.parenL)) { + if (this.eat(types$1.parenL)) { clause.param = this.parseBindingAtom(); var simple = clause.param.type === "Identifier"; this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); - this.expect(types.parenR); + this.expect(types$1.parenR); } else { if (this.options.ecmaVersion < 10) { this.unexpected(); } clause.param = null; @@ -1137,20 +1145,20 @@ this.exitScope(); node.handler = this.finishNode(clause, "CatchClause"); } - node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; + node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null; if (!node.handler && !node.finalizer) { this.raise(node.start, "Missing catch or finally clause"); } return this.finishNode(node, "TryStatement") }; - pp$1.parseVarStatement = function(node, kind) { + pp$8.parseVarStatement = function(node, kind) { this.next(); this.parseVar(node, false, kind); this.semicolon(); return this.finishNode(node, "VariableDeclaration") }; - pp$1.parseWhileStatement = function(node) { + pp$8.parseWhileStatement = function(node) { this.next(); node.test = this.parseParenExpression(); this.labels.push(loopLabel); @@ -1159,7 +1167,7 @@ return this.finishNode(node, "WhileStatement") }; - pp$1.parseWithStatement = function(node) { + pp$8.parseWithStatement = function(node) { if (this.strict) { this.raise(this.start, "'with' in strict mode"); } this.next(); node.object = this.parseParenExpression(); @@ -1167,12 +1175,12 @@ return this.finishNode(node, "WithStatement") }; - pp$1.parseEmptyStatement = function(node) { + pp$8.parseEmptyStatement = function(node) { this.next(); return this.finishNode(node, "EmptyStatement") }; - pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { + pp$8.parseLabeledStatement = function(node, maybeName, expr, context) { for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) { var label = list[i$1]; @@ -1180,7 +1188,7 @@ if (label.name === maybeName) { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); } } - var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null; + var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null; for (var i = this.labels.length - 1; i >= 0; i--) { var label$1 = this.labels[i]; if (label$1.statementStart === node.start) { @@ -1196,7 +1204,7 @@ return this.finishNode(node, "LabeledStatement") }; - pp$1.parseExpressionStatement = function(node, expr) { + pp$8.parseExpressionStatement = function(node, expr) { node.expression = expr; this.semicolon(); return this.finishNode(node, "ExpressionStatement") @@ -1206,14 +1214,14 @@ // strict"` declarations when `allowStrict` is true (used for // function bodies). - pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { + pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) { if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; if ( node === void 0 ) node = this.startNode(); node.body = []; - this.expect(types.braceL); + this.expect(types$1.braceL); if (createNewLexicalScope) { this.enterScope(0); } - while (this.type !== types.braceR) { + while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } @@ -1227,13 +1235,13 @@ // `parseStatement` will already have parsed the init statement or // expression. - pp$1.parseFor = function(node, init) { + pp$8.parseFor = function(node, init) { node.init = init; - this.expect(types.semi); - node.test = this.type === types.semi ? null : this.parseExpression(); - this.expect(types.semi); - node.update = this.type === types.parenR ? null : this.parseExpression(); - this.expect(types.parenR); + this.expect(types$1.semi); + node.test = this.type === types$1.semi ? null : this.parseExpression(); + this.expect(types$1.semi); + node.update = this.type === types$1.parenR ? null : this.parseExpression(); + this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); @@ -1243,8 +1251,8 @@ // Parse a `for`/`in` and `for`/`of` loop, which are almost // same from parser's perspective. - pp$1.parseForIn = function(node, init) { - var isForIn = this.type === types._in; + pp$8.parseForIn = function(node, init) { + var isForIn = this.type === types$1._in; this.next(); if ( @@ -1265,7 +1273,7 @@ } node.left = init; node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types.parenR); + this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); @@ -1274,28 +1282,28 @@ // Parse a list of variable declarations. - pp$1.parseVar = function(node, isFor, kind) { + pp$8.parseVar = function(node, isFor, kind) { node.declarations = []; node.kind = kind; for (;;) { var decl = this.startNode(); this.parseVarId(decl, kind); - if (this.eat(types.eq)) { + if (this.eat(types$1.eq)) { decl.init = this.parseMaybeAssign(isFor); - } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { + } else if (kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { this.unexpected(); - } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) { + } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) { this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); } else { decl.init = null; } node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types.comma)) { break } + if (!this.eat(types$1.comma)) { break } } return node }; - pp$1.parseVarId = function(decl, kind) { + pp$8.parseVarId = function(decl, kind) { decl.id = this.parseBindingAtom(); this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); }; @@ -1306,18 +1314,18 @@ // `statement & FUNC_STATEMENT`). // Remove `allowExpressionBody` for 7.0.0, as it is only called with false - pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { + pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { this.initFunction(node); if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT)) + if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT)) { this.unexpected(); } - node.generator = this.eat(types.star); + node.generator = this.eat(types$1.star); } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } if (statement & FUNC_STATEMENT) { - node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent(); + node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent(); if (node.id && !(statement & FUNC_HANGING_STATEMENT)) // If it is a regular function declaration in sloppy mode, then it is // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding @@ -1333,7 +1341,7 @@ this.enterScope(functionFlags(node.async, node.generator)); if (!(statement & FUNC_STATEMENT)) - { node.id = this.type === types.name ? this.parseIdent() : null; } + { node.id = this.type === types$1.name ? this.parseIdent() : null; } this.parseFunctionParams(node); this.parseFunctionBody(node, allowExpressionBody, false, forInit); @@ -1344,16 +1352,16 @@ return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression") }; - pp$1.parseFunctionParams = function(node) { - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); + pp$8.parseFunctionParams = function(node) { + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); }; // Parse a class declaration or literal (depending on the // `isStatement` parameter). - pp$1.parseClass = function(node, isStatement) { + pp$8.parseClass = function(node, isStatement) { this.next(); // ecma-262 14.6 Class Definitions @@ -1367,8 +1375,8 @@ var classBody = this.startNode(); var hadConstructor = false; classBody.body = []; - this.expect(types.braceL); - while (this.type !== types.braceR) { + this.expect(types$1.braceL); + while (this.type !== types$1.braceR) { var element = this.parseClassElement(node.superClass !== null); if (element) { classBody.body.push(element); @@ -1387,8 +1395,8 @@ return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") }; - pp$1.parseClassElement = function(constructorAllowsSuper) { - if (this.eat(types.semi)) { return null } + pp$8.parseClassElement = function(constructorAllowsSuper) { + if (this.eat(types$1.semi)) { return null } var ecmaVersion = this.options.ecmaVersion; var node = this.startNode(); @@ -1400,11 +1408,11 @@ if (this.eatContextual("static")) { // Parse static init block - if (ecmaVersion >= 13 && this.eat(types.braceL)) { + if (ecmaVersion >= 13 && this.eat(types$1.braceL)) { this.parseClassStaticBlock(node); return node } - if (this.isClassElementNameStart() || this.type === types.star) { + if (this.isClassElementNameStart() || this.type === types$1.star) { isStatic = true; } else { keyName = "static"; @@ -1412,13 +1420,13 @@ } node.static = isStatic; if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) { - if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) { + if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) { isAsync = true; } else { keyName = "async"; } } - if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) { + if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) { isGenerator = true; } if (!keyName && !isAsync && !isGenerator) { @@ -1445,7 +1453,7 @@ } // Parse element value - if (ecmaVersion < 13 || this.type === types.parenL || kind !== "method" || isGenerator || isAsync) { + if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) { var isConstructor = !node.static && checkKeyName(node, "constructor"); var allowsDirectSuper = isConstructor && constructorAllowsSuper; // Couldn't move this check into the 'parseClassMethod' method for backward compatibility. @@ -1459,19 +1467,19 @@ return node }; - pp$1.isClassElementNameStart = function() { + pp$8.isClassElementNameStart = function() { return ( - this.type === types.name || - this.type === types.privateId || - this.type === types.num || - this.type === types.string || - this.type === types.bracketL || + this.type === types$1.name || + this.type === types$1.privateId || + this.type === types$1.num || + this.type === types$1.string || + this.type === types$1.bracketL || this.type.keyword ) }; - pp$1.parseClassElementName = function(element) { - if (this.type === types.privateId) { + pp$8.parseClassElementName = function(element) { + if (this.type === types$1.privateId) { if (this.value === "constructor") { this.raise(this.start, "Classes can't have an element named '#constructor'"); } @@ -1482,7 +1490,7 @@ } }; - pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { + pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { // Check key and flags var key = method.key; if (method.kind === "constructor") { @@ -1506,14 +1514,14 @@ return this.finishNode(method, "MethodDefinition") }; - pp$1.parseClassField = function(field) { + pp$8.parseClassField = function(field) { if (checkKeyName(field, "constructor")) { this.raise(field.key.start, "Classes can't have a field named 'constructor'"); } else if (field.static && checkKeyName(field, "prototype")) { this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); } - if (this.eat(types.eq)) { + if (this.eat(types$1.eq)) { // To raise SyntaxError if 'arguments' exists in the initializer. var scope = this.currentThisScope(); var inClassFieldInit = scope.inClassFieldInit; @@ -1528,13 +1536,13 @@ return this.finishNode(field, "PropertyDefinition") }; - pp$1.parseClassStaticBlock = function(node) { + pp$8.parseClassStaticBlock = function(node) { node.body = []; var oldLabels = this.labels; this.labels = []; this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER); - while (this.type !== types.braceR) { + while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } @@ -1545,8 +1553,8 @@ return this.finishNode(node, "StaticBlock") }; - pp$1.parseClassId = function(node, isStatement) { - if (this.type === types.name) { + pp$8.parseClassId = function(node, isStatement) { + if (this.type === types$1.name) { node.id = this.parseIdent(); if (isStatement) { this.checkLValSimple(node.id, BIND_LEXICAL, false); } @@ -1557,17 +1565,17 @@ } }; - pp$1.parseClassSuper = function(node) { - node.superClass = this.eat(types._extends) ? this.parseExprSubscripts(false) : null; + pp$8.parseClassSuper = function(node) { + node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null; }; - pp$1.enterClassBody = function() { + pp$8.enterClassBody = function() { var element = {declared: Object.create(null), used: []}; this.privateNameStack.push(element); return element.declared }; - pp$1.exitClassBody = function() { + pp$8.exitClassBody = function() { var ref = this.privateNameStack.pop(); var declared = ref.declared; var used = ref.used; @@ -1622,10 +1630,10 @@ // Parses module export declaration. - pp$1.parseExport = function(node, exports) { + pp$8.parseExport = function(node, exports) { this.next(); // export * from '...' - if (this.eat(types.star)) { + if (this.eat(types$1.star)) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { node.exported = this.parseIdent(true); @@ -1635,20 +1643,20 @@ } } this.expectContextual("from"); - if (this.type !== types.string) { this.unexpected(); } + if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); this.semicolon(); return this.finishNode(node, "ExportAllDeclaration") } - if (this.eat(types._default)) { // export default ... + if (this.eat(types$1._default)) { // export default ... this.checkExport(exports, "default", this.lastTokStart); var isAsync; - if (this.type === types._function || (isAsync = this.isAsyncFunction())) { + if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) { var fNode = this.startNode(); this.next(); if (isAsync) { this.next(); } node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); - } else if (this.type === types._class) { + } else if (this.type === types$1._class) { var cNode = this.startNode(); node.declaration = this.parseClass(cNode, "nullableID"); } else { @@ -1670,7 +1678,7 @@ node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); if (this.eatContextual("from")) { - if (this.type !== types.string) { this.unexpected(); } + if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); } else { for (var i = 0, list = node.specifiers; i < list.length; i += 1) { @@ -1689,14 +1697,14 @@ return this.finishNode(node, "ExportNamedDeclaration") }; - pp$1.checkExport = function(exports, name, pos) { + pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } if (has(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; - pp$1.checkPatternExport = function(exports, pat) { + pp$8.checkPatternExport = function(exports, pat) { var type = pat.type; if (type === "Identifier") { this.checkExport(exports, pat.name, pat.start); } @@ -1723,7 +1731,7 @@ { this.checkPatternExport(exports, pat.expression); } }; - pp$1.checkVariableExport = function(exports, decls) { + pp$8.checkVariableExport = function(exports, decls) { if (!exports) { return } for (var i = 0, list = decls; i < list.length; i += 1) { @@ -1733,7 +1741,7 @@ } }; - pp$1.shouldParseExportStatement = function() { + pp$8.shouldParseExportStatement = function() { return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || @@ -1744,14 +1752,14 @@ // Parses a comma-separated list of module exports. - pp$1.parseExportSpecifiers = function(exports) { + pp$8.parseExportSpecifiers = function(exports) { var nodes = [], first = true; // export { x, y as z } [from '...'] - this.expect(types.braceL); - while (!this.eat(types.braceR)) { + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var node = this.startNode(); @@ -1765,16 +1773,16 @@ // Parses import declaration. - pp$1.parseImport = function(node) { + pp$8.parseImport = function(node) { this.next(); // import '...' - if (this.type === types.string) { - node.specifiers = empty; + if (this.type === types$1.string) { + node.specifiers = empty$1; node.source = this.parseExprAtom(); } else { node.specifiers = this.parseImportSpecifiers(); this.expectContextual("from"); - node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected(); + node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected(); } this.semicolon(); return this.finishNode(node, "ImportDeclaration") @@ -1782,17 +1790,17 @@ // Parses a comma-separated list of module imports. - pp$1.parseImportSpecifiers = function() { + pp$8.parseImportSpecifiers = function() { var nodes = [], first = true; - if (this.type === types.name) { + if (this.type === types$1.name) { // import defaultObj, { x, y as z } from '...' var node = this.startNode(); node.local = this.parseIdent(); this.checkLValSimple(node.local, BIND_LEXICAL); nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); - if (!this.eat(types.comma)) { return nodes } + if (!this.eat(types$1.comma)) { return nodes } } - if (this.type === types.star) { + if (this.type === types$1.star) { var node$1 = this.startNode(); this.next(); this.expectContextual("as"); @@ -1801,11 +1809,11 @@ nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); return nodes } - this.expect(types.braceL); - while (!this.eat(types.braceR)) { + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var node$2 = this.startNode(); @@ -1823,12 +1831,12 @@ }; // Set `ExpressionStatement#directive` property for directive prologues. - pp$1.adaptDirectivePrologue = function(statements) { + pp$8.adaptDirectivePrologue = function(statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { statements[i].directive = statements[i].expression.raw.slice(1, -1); } }; - pp$1.isDirectiveCandidate = function(statement) { + pp$8.isDirectiveCandidate = function(statement) { return ( statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && @@ -1838,12 +1846,12 @@ ) }; - var pp$2 = Parser.prototype; + var pp$7 = Parser.prototype; // Convert existing expression atom to assignable pattern // if possible. - pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { + pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) { if (this.options.ecmaVersion >= 6 && node) { switch (node.type) { case "Identifier": @@ -1924,7 +1932,7 @@ // Convert list of expression atoms to binding list. - pp$2.toAssignableList = function(exprList, isBinding) { + pp$7.toAssignableList = function(exprList, isBinding) { var end = exprList.length; for (var i = 0; i < end; i++) { var elt = exprList[i]; @@ -1940,19 +1948,19 @@ // Parses spread element. - pp$2.parseSpread = function(refDestructuringErrors) { + pp$7.parseSpread = function(refDestructuringErrors) { var node = this.startNode(); this.next(); node.argument = this.parseMaybeAssign(false, refDestructuringErrors); return this.finishNode(node, "SpreadElement") }; - pp$2.parseRestBinding = function() { + pp$7.parseRestBinding = function() { var node = this.startNode(); this.next(); // RestElement inside of a function parameter must be an identifier - if (this.options.ecmaVersion === 6 && this.type !== types.name) + if (this.options.ecmaVersion === 6 && this.type !== types$1.name) { this.unexpected(); } node.argument = this.parseBindingAtom(); @@ -1962,36 +1970,36 @@ // Parses lvalue (assignable) atom. - pp$2.parseBindingAtom = function() { + pp$7.parseBindingAtom = function() { if (this.options.ecmaVersion >= 6) { switch (this.type) { - case types.bracketL: + case types$1.bracketL: var node = this.startNode(); this.next(); - node.elements = this.parseBindingList(types.bracketR, true, true); + node.elements = this.parseBindingList(types$1.bracketR, true, true); return this.finishNode(node, "ArrayPattern") - case types.braceL: + case types$1.braceL: return this.parseObj(true) } } return this.parseIdent() }; - pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { + pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) { var elts = [], first = true; while (!this.eat(close)) { if (first) { first = false; } - else { this.expect(types.comma); } - if (allowEmpty && this.type === types.comma) { + else { this.expect(types$1.comma); } + if (allowEmpty && this.type === types$1.comma) { elts.push(null); } else if (allowTrailingComma && this.afterTrailingComma(close)) { break - } else if (this.type === types.ellipsis) { + } else if (this.type === types$1.ellipsis) { var rest = this.parseRestBinding(); this.parseBindingListItem(rest); elts.push(rest); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } this.expect(close); break } else { @@ -2003,15 +2011,15 @@ return elts }; - pp$2.parseBindingListItem = function(param) { + pp$7.parseBindingListItem = function(param) { return param }; // Parses assignment pattern around given atom if possible. - pp$2.parseMaybeDefault = function(startPos, startLoc, left) { + pp$7.parseMaybeDefault = function(startPos, startLoc, left) { left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left } + if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.right = this.parseMaybeAssign(); @@ -2082,7 +2090,7 @@ // duplicate argument names. checkClashes is ignored if the provided construct // is an assignment (i.e., bindingType is BIND_NONE). - pp$2.checkLValSimple = function(expr, bindingType, checkClashes) { + pp$7.checkLValSimple = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; var isBind = bindingType !== BIND_NONE; @@ -2120,7 +2128,7 @@ } }; - pp$2.checkLValPattern = function(expr, bindingType, checkClashes) { + pp$7.checkLValPattern = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; switch (expr.type) { @@ -2145,7 +2153,7 @@ } }; - pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) { + pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; switch (expr.type) { @@ -2177,7 +2185,7 @@ this.generator = !!generator; }; - var types$1 = { + var types = { b_stat: new TokContext("{", false), b_expr: new TokContext("{", true), b_tmpl: new TokContext("${", false), @@ -2190,38 +2198,38 @@ f_gen: new TokContext("function", false, false, null, true) }; - var pp$3 = Parser.prototype; + var pp$6 = Parser.prototype; - pp$3.initialContext = function() { - return [types$1.b_stat] + pp$6.initialContext = function() { + return [types.b_stat] }; - pp$3.curContext = function() { + pp$6.curContext = function() { return this.context[this.context.length - 1] }; - pp$3.braceIsBlock = function(prevType) { + pp$6.braceIsBlock = function(prevType) { var parent = this.curContext(); - if (parent === types$1.f_expr || parent === types$1.f_stat) + if (parent === types.f_expr || parent === types.f_stat) { return true } - if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr)) + if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) { return !parent.isExpr } // The check for `tt.name && exprAllowed` detects whether we are // after a `yield` or `of` construct. See the `updateContext` for // `tt.name`. - if (prevType === types._return || prevType === types.name && this.exprAllowed) + if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } - if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) + if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) { return true } - if (prevType === types.braceL) - { return parent === types$1.b_stat } - if (prevType === types._var || prevType === types._const || prevType === types.name) + if (prevType === types$1.braceL) + { return parent === types.b_stat } + if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) { return false } return !this.exprAllowed }; - pp$3.inGeneratorContext = function() { + pp$6.inGeneratorContext = function() { for (var i = this.context.length - 1; i >= 1; i--) { var context = this.context[i]; if (context.token === "function") @@ -2230,9 +2238,9 @@ return false }; - pp$3.updateContext = function(prevType) { + pp$6.updateContext = function(prevType) { var update, type = this.type; - if (type.keyword && prevType === types.dot) + if (type.keyword && prevType === types$1.dot) { this.exprAllowed = false; } else if (update = type.updateContext) { update.call(this, prevType); } @@ -2241,7 +2249,7 @@ }; // Used to handle egde case when token context could not be inferred correctly in tokenize phase - pp$3.overrideContext = function(tokenCtx) { + pp$6.overrideContext = function(tokenCtx) { if (this.curContext() !== tokenCtx) { this.context[this.context.length - 1] = tokenCtx; } @@ -2249,71 +2257,71 @@ // Token-specific context update code - types.parenR.updateContext = types.braceR.updateContext = function() { + types$1.parenR.updateContext = types$1.braceR.updateContext = function() { if (this.context.length === 1) { this.exprAllowed = true; return } var out = this.context.pop(); - if (out === types$1.b_stat && this.curContext().token === "function") { + if (out === types.b_stat && this.curContext().token === "function") { out = this.context.pop(); } this.exprAllowed = !out.isExpr; }; - types.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr); + types$1.braceL.updateContext = function(prevType) { + this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); this.exprAllowed = true; }; - types.dollarBraceL.updateContext = function() { - this.context.push(types$1.b_tmpl); + types$1.dollarBraceL.updateContext = function() { + this.context.push(types.b_tmpl); this.exprAllowed = true; }; - types.parenL.updateContext = function(prevType) { - var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; - this.context.push(statementParens ? types$1.p_stat : types$1.p_expr); + types$1.parenL.updateContext = function(prevType) { + var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while; + this.context.push(statementParens ? types.p_stat : types.p_expr); this.exprAllowed = true; }; - types.incDec.updateContext = function() { + types$1.incDec.updateContext = function() { // tokExprAllowed stays unchanged }; - types._function.updateContext = types._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types._else && - !(prevType === types.semi && this.curContext() !== types$1.p_stat) && - !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && - !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) - { this.context.push(types$1.f_expr); } + types$1._function.updateContext = types$1._class.updateContext = function(prevType) { + if (prevType.beforeExpr && prevType !== types$1._else && + !(prevType === types$1.semi && this.curContext() !== types.p_stat) && + !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && + !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) + { this.context.push(types.f_expr); } else - { this.context.push(types$1.f_stat); } + { this.context.push(types.f_stat); } this.exprAllowed = false; }; - types.backQuote.updateContext = function() { - if (this.curContext() === types$1.q_tmpl) + types$1.backQuote.updateContext = function() { + if (this.curContext() === types.q_tmpl) { this.context.pop(); } else - { this.context.push(types$1.q_tmpl); } + { this.context.push(types.q_tmpl); } this.exprAllowed = false; }; - types.star.updateContext = function(prevType) { - if (prevType === types._function) { + types$1.star.updateContext = function(prevType) { + if (prevType === types$1._function) { var index = this.context.length - 1; - if (this.context[index] === types$1.f_expr) - { this.context[index] = types$1.f_expr_gen; } + if (this.context[index] === types.f_expr) + { this.context[index] = types.f_expr_gen; } else - { this.context[index] = types$1.f_gen; } + { this.context[index] = types.f_gen; } } this.exprAllowed = true; }; - types.name.updateContext = function(prevType) { + types$1.name.updateContext = function(prevType) { var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types.dot) { + if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) { if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { allowed = true; } @@ -2323,14 +2331,14 @@ // A recursive descent parser operates by defining functions for all - var pp$4 = Parser.prototype; + var pp$5 = Parser.prototype; // Check if property name clashes with already added. // Object/class getters and setters are not allowed to clash — // either with each other or with an init property — and in // strict mode, init properties are also not allowed to be repeated. - pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) { + pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) { if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { return } if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) @@ -2347,10 +2355,12 @@ if (name === "__proto__" && kind === "init") { if (propHash.proto) { if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) - { refDestructuringErrors.doubleProto = key.start; } - // Backwards-compat kludge. Can be removed in version 6.0 - } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } + if (refDestructuringErrors.doubleProto < 0) { + refDestructuringErrors.doubleProto = key.start; + } + } else { + this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); + } } propHash.proto = true; } @@ -2392,13 +2402,13 @@ // and object pattern might appear (so it's possible to raise // delayed syntax error at correct position). - pp$4.parseExpression = function(forInit, refDestructuringErrors) { + pp$5.parseExpression = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); - if (this.type === types.comma) { + if (this.type === types$1.comma) { var node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; - while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } + while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } return this.finishNode(node, "SequenceExpression") } return expr @@ -2407,7 +2417,7 @@ // Parse an assignment expression. This includes applications of // operators like `+=`. - pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { + pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { if (this.isContextual("yield")) { if (this.inGenerator) { return this.parseYield(forInit) } // The tokenizer will assume an expression is allowed after @@ -2415,10 +2425,11 @@ else { this.exprAllowed = false; } } - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1; + var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; if (refDestructuringErrors) { oldParenAssign = refDestructuringErrors.parenthesizedAssign; oldTrailingComma = refDestructuringErrors.trailingComma; + oldDoubleProto = refDestructuringErrors.doubleProto; refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; } else { refDestructuringErrors = new DestructuringErrors; @@ -2426,7 +2437,7 @@ } var startPos = this.start, startLoc = this.startLoc; - if (this.type === types.parenL || this.type === types.name) { + if (this.type === types$1.parenL || this.type === types$1.name) { this.potentialArrowAt = this.start; this.potentialArrowInForAwait = forInit === "await"; } @@ -2435,20 +2446,21 @@ if (this.type.isAssign) { var node = this.startNodeAt(startPos, startLoc); node.operator = this.value; - if (this.type === types.eq) + if (this.type === types$1.eq) { left = this.toAssignable(left, false, refDestructuringErrors); } if (!ownDestructuringErrors) { refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; } if (refDestructuringErrors.shorthandAssign >= left.start) { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly - if (this.type === types.eq) + if (this.type === types$1.eq) { this.checkLValPattern(left); } else { this.checkLValSimple(left); } node.left = left; this.next(); node.right = this.parseMaybeAssign(forInit); + if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; } return this.finishNode(node, "AssignmentExpression") } else { if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } @@ -2460,15 +2472,15 @@ // Parse a ternary conditional (`?:`) operator. - pp$4.parseMaybeConditional = function(forInit, refDestructuringErrors) { + pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprOps(forInit, refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - if (this.eat(types.question)) { + if (this.eat(types$1.question)) { var node = this.startNodeAt(startPos, startLoc); node.test = expr; node.consequent = this.parseMaybeAssign(); - this.expect(types.colon); + this.expect(types$1.colon); node.alternate = this.parseMaybeAssign(forInit); return this.finishNode(node, "ConditionalExpression") } @@ -2477,7 +2489,7 @@ // Start the precedence parser. - pp$4.parseExprOps = function(forInit, refDestructuringErrors) { + pp$5.parseExprOps = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } @@ -2490,23 +2502,23 @@ // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. - pp$4.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { + pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { var prec = this.type.binop; - if (prec != null && (!forInit || this.type !== types._in)) { + if (prec != null && (!forInit || this.type !== types$1._in)) { if (prec > minPrec) { - var logical = this.type === types.logicalOR || this.type === types.logicalAND; - var coalesce = this.type === types.coalesce; + var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND; + var coalesce = this.type === types$1.coalesce; if (coalesce) { // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. - prec = types.logicalAND.binop; + prec = types$1.logicalAND.binop; } var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { + if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) { this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); } return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit) @@ -2515,7 +2527,8 @@ return left }; - pp$4.buildBinary = function(startPos, startLoc, left, right, op, logical) { + pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) { + if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.operator = op; @@ -2525,13 +2538,13 @@ // Parse unary operators, both prefix and postfix. - pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { + pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { var startPos = this.start, startLoc = this.startLoc, expr; if (this.isContextual("await") && this.canAwait) { expr = this.parseAwait(forInit); sawUnary = true; } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types.incDec; + var node = this.startNode(), update = this.type === types$1.incDec; node.operator = this.value; node.prefix = true; this.next(); @@ -2545,6 +2558,11 @@ { this.raiseRecoverable(node.start, "Private fields can not be deleted"); } else { sawUnary = true; } expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); + } else if (!sawUnary && this.type === types$1.privateId) { + if (forInit || this.privateNameStack.length === 0) { this.unexpected(); } + expr = this.parsePrivateIdent(); + // only could be private fields in 'in', such as #x in obj + if (this.type !== types$1._in) { this.unexpected(); } } else { expr = this.parseExprSubscripts(refDestructuringErrors, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } @@ -2559,7 +2577,7 @@ } } - if (!incDec && this.eat(types.starstar)) { + if (!incDec && this.eat(types$1.starstar)) { if (sawUnary) { this.unexpected(this.lastTokStart); } else @@ -2578,7 +2596,7 @@ // Parse call, dot, and `[]`-subscript expressions. - pp$4.parseExprSubscripts = function(refDestructuringErrors, forInit) { + pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprAtom(refDestructuringErrors, forInit); if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") @@ -2592,7 +2610,7 @@ return result }; - pp$4.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { + pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.potentialArrowAt === base.start; @@ -2615,19 +2633,19 @@ } }; - pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { + pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { var optionalSupported = this.options.ecmaVersion >= 11; - var optional = optionalSupported && this.eat(types.questionDot); + var optional = optionalSupported && this.eat(types$1.questionDot); if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } - var computed = this.eat(types.bracketL); - if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { + var computed = this.eat(types$1.bracketL); + if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) { var node = this.startNodeAt(startPos, startLoc); node.object = base; if (computed) { node.property = this.parseExpression(); - this.expect(types.bracketR); - } else if (this.type === types.privateId && base.type !== "Super") { + this.expect(types$1.bracketR); + } else if (this.type === types$1.privateId && base.type !== "Super") { node.property = this.parsePrivateIdent(); } else { node.property = this.parseIdent(this.options.allowReserved !== "never"); @@ -2637,13 +2655,13 @@ node.optional = optional; } base = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types.parenL)) { + } else if (!noCalls && this.eat(types$1.parenL)) { var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; - var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) { + var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); + if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); if (this.awaitIdentPos > 0) @@ -2664,7 +2682,7 @@ node$1.optional = optional; } base = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types.backQuote) { + } else if (this.type === types$1.backQuote) { if (optional || optionalChained) { this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); } @@ -2681,19 +2699,19 @@ // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. - pp$4.parseExprAtom = function(refDestructuringErrors, forInit) { + pp$5.parseExprAtom = function(refDestructuringErrors, forInit) { // If a division operator appears in an expression position, the // tokenizer got confused, and we force it to read a regexp instead. - if (this.type === types.slash) { this.readRegexp(); } + if (this.type === types$1.slash) { this.readRegexp(); } var node, canBeArrow = this.potentialArrowAt === this.start; switch (this.type) { - case types._super: + case types$1._super: if (!this.allowSuper) { this.raise(this.start, "'super' keyword outside a method"); } node = this.startNode(); this.next(); - if (this.type === types.parenL && !this.allowDirectSuper) + if (this.type === types$1.parenL && !this.allowDirectSuper) { this.raise(node.start, "super() call outside constructor of a subclass"); } // The `super` keyword can appear at below: // SuperProperty: @@ -2701,52 +2719,52 @@ // super . IdentifierName // SuperCall: // super ( Arguments ) - if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL) + if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) { this.unexpected(); } return this.finishNode(node, "Super") - case types._this: + case types$1._this: node = this.startNode(); this.next(); return this.finishNode(node, "ThisExpression") - case types.name: + case types$1.name: var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) { - this.overrideContext(types$1.f_expr); + if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) { + this.overrideContext(types.f_expr); return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit) } if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types.arrow)) + if (this.eat(types$1.arrow)) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc && + if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types.arrow)) + if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) { this.unexpected(); } return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit) } } return id - case types.regexp: + case types$1.regexp: var value = this.value; node = this.parseLiteral(value.value); node.regex = {pattern: value.pattern, flags: value.flags}; return node - case types.num: case types.string: + case types$1.num: case types$1.string: return this.parseLiteral(this.value) - case types._null: case types._true: case types._false: + case types$1._null: case types$1._true: case types$1._false: node = this.startNode(); - node.value = this.type === types._null ? null : this.type === types._true; + node.value = this.type === types$1._null ? null : this.type === types$1._true; node.raw = this.type.keyword; this.next(); return this.finishNode(node, "Literal") - case types.parenL: + case types$1.parenL: var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); if (refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) @@ -2756,31 +2774,31 @@ } return expr - case types.bracketL: + case types$1.bracketL: node = this.startNode(); this.next(); - node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors); + node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors); return this.finishNode(node, "ArrayExpression") - case types.braceL: - this.overrideContext(types$1.b_expr); + case types$1.braceL: + this.overrideContext(types.b_expr); return this.parseObj(false, refDestructuringErrors) - case types._function: + case types$1._function: node = this.startNode(); this.next(); return this.parseFunction(node, 0) - case types._class: + case types$1._class: return this.parseClass(this.startNode(), false) - case types._new: + case types$1._new: return this.parseNew() - case types.backQuote: + case types$1.backQuote: return this.parseTemplate() - case types._import: + case types$1._import: if (this.options.ecmaVersion >= 11) { return this.parseExprImport() } else { @@ -2792,7 +2810,7 @@ } }; - pp$4.parseExprImport = function() { + pp$5.parseExprImport = function() { var node = this.startNode(); // Consume `import` as an identifier for `import.meta`. @@ -2801,9 +2819,9 @@ var meta = this.parseIdent(true); switch (this.type) { - case types.parenL: + case types$1.parenL: return this.parseDynamicImport(node) - case types.dot: + case types$1.dot: node.meta = meta; return this.parseImportMeta(node) default: @@ -2811,16 +2829,16 @@ } }; - pp$4.parseDynamicImport = function(node) { + pp$5.parseDynamicImport = function(node) { this.next(); // skip `(` // Parse node.source. node.source = this.parseMaybeAssign(); // Verify ending. - if (!this.eat(types.parenR)) { + if (!this.eat(types$1.parenR)) { var errorPos = this.start; - if (this.eat(types.comma) && this.eat(types.parenR)) { + if (this.eat(types$1.comma) && this.eat(types$1.parenR)) { this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); } else { this.unexpected(errorPos); @@ -2830,7 +2848,7 @@ return this.finishNode(node, "ImportExpression") }; - pp$4.parseImportMeta = function(node) { + pp$5.parseImportMeta = function(node) { this.next(); // skip `.` var containsEsc = this.containsEsc; @@ -2846,7 +2864,7 @@ return this.finishNode(node, "MetaProperty") }; - pp$4.parseLiteral = function(value) { + pp$5.parseLiteral = function(value) { var node = this.startNode(); node.value = value; node.raw = this.input.slice(this.start, this.end); @@ -2855,14 +2873,14 @@ return this.finishNode(node, "Literal") }; - pp$4.parseParenExpression = function() { - this.expect(types.parenL); + pp$5.parseParenExpression = function() { + this.expect(types$1.parenL); var val = this.parseExpression(); - this.expect(types.parenR); + this.expect(types$1.parenR); return val }; - pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { + pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; if (this.options.ecmaVersion >= 6) { this.next(); @@ -2873,24 +2891,24 @@ this.yieldPos = 0; this.awaitPos = 0; // Do not save awaitIdentPos to allow checking awaits nested in parameters - while (this.type !== types.parenR) { - first ? first = false : this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) { + while (this.type !== types$1.parenR) { + first ? first = false : this.expect(types$1.comma); + if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) { lastIsComma = true; break - } else if (this.type === types.ellipsis) { + } else if (this.type === types$1.ellipsis) { spreadStart = this.start; exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } break } else { exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); } } var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; - this.expect(types.parenR); + this.expect(types$1.parenR); - if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { + if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); this.yieldPos = oldYieldPos; @@ -2924,12 +2942,12 @@ } }; - pp$4.parseParenItem = function(item) { + pp$5.parseParenItem = function(item) { return item }; - pp$4.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, forInit) + pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { + return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit) }; // New's precedence is slightly tricky. It must allow its argument to @@ -2938,13 +2956,13 @@ // argument to parseSubscripts to prevent it from consuming the // argument list. - var empty$1 = []; + var empty = []; - pp$4.parseNew = function() { + pp$5.parseNew = function() { if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } var node = this.startNode(); var meta = this.parseIdent(true); - if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) { + if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) { node.meta = meta; var containsEsc = this.containsEsc; node.property = this.parseIdent(true); @@ -2956,23 +2974,23 @@ { this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); } return this.finishNode(node, "MetaProperty") } - var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import; + var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import; node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false); if (isImport && node.callee.type === "ImportExpression") { this.raise(startPos, "Cannot use new with import()"); } - if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); } - else { node.arguments = empty$1; } + if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); } + else { node.arguments = empty; } return this.finishNode(node, "NewExpression") }; // Parse template expression. - pp$4.parseTemplateElement = function(ref) { + pp$5.parseTemplateElement = function(ref) { var isTagged = ref.isTagged; var elem = this.startNode(); - if (this.type === types.invalidTemplate) { + if (this.type === types$1.invalidTemplate) { if (!isTagged) { this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); } @@ -2987,11 +3005,11 @@ }; } this.next(); - elem.tail = this.type === types.backQuote; + elem.tail = this.type === types$1.backQuote; return this.finishNode(elem, "TemplateElement") }; - pp$4.parseTemplate = function(ref) { + pp$5.parseTemplate = function(ref) { if ( ref === void 0 ) ref = {}; var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; @@ -3001,32 +3019,32 @@ var curElt = this.parseTemplateElement({isTagged: isTagged}); node.quasis = [curElt]; while (!curElt.tail) { - if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); } - this.expect(types.dollarBraceL); + if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); } + this.expect(types$1.dollarBraceL); node.expressions.push(this.parseExpression()); - this.expect(types.braceR); + this.expect(types$1.braceR); node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged})); } this.next(); return this.finishNode(node, "TemplateLiteral") }; - pp$4.isAsyncProp = function(prop) { + pp$5.isAsyncProp = function(prop) { return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && - (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) && + (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; // Parse an object literal or binding pattern. - pp$4.parseObj = function(isPattern, refDestructuringErrors) { + pp$5.parseObj = function(isPattern, refDestructuringErrors) { var node = this.startNode(), first = true, propHash = {}; node.properties = []; this.next(); - while (!this.eat(types.braceR)) { + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var prop = this.parseProperty(isPattern, refDestructuringErrors); @@ -3036,18 +3054,18 @@ return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") }; - pp$4.parseProperty = function(isPattern, refDestructuringErrors) { + pp$5.parseProperty = function(isPattern, refDestructuringErrors) { var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) { + if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) { if (isPattern) { prop.argument = this.parseIdent(false); - if (this.type === types.comma) { + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } return this.finishNode(prop, "RestElement") } // To disallow parenthesized identifier via `this.toAssignable()`. - if (this.type === types.parenL && refDestructuringErrors) { + if (this.type === types$1.parenL && refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0) { refDestructuringErrors.parenthesizedAssign = this.start; } @@ -3058,7 +3076,7 @@ // Parse argument. prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); // To disallow trailing comma via `this.toAssignable()`. - if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { + if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } // Finish @@ -3072,13 +3090,13 @@ startLoc = this.startLoc; } if (!isPattern) - { isGenerator = this.eat(types.star); } + { isGenerator = this.eat(types$1.star); } } var containsEsc = this.containsEsc; this.parsePropertyName(prop); if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); + isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star); this.parsePropertyName(prop, refDestructuringErrors); } else { isAsync = false; @@ -3087,14 +3105,14 @@ return this.finishNode(prop, "Property") }; - pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types.colon) + pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { + if ((isGenerator || isAsync) && this.type === types$1.colon) { this.unexpected(); } - if (this.eat(types.colon)) { + if (this.eat(types$1.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) { + } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { if (isPattern) { this.unexpected(); } prop.kind = "init"; prop.method = true; @@ -3102,7 +3120,7 @@ } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && - (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) { + (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) { if (isGenerator || isAsync) { this.unexpected(); } prop.kind = prop.key.name; this.parsePropertyName(prop); @@ -3126,7 +3144,7 @@ prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else if (this.type === types.eq && refDestructuringErrors) { + } else if (this.type === types$1.eq && refDestructuringErrors) { if (refDestructuringErrors.shorthandAssign < 0) { refDestructuringErrors.shorthandAssign = this.start; } prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); @@ -3137,23 +3155,23 @@ } else { this.unexpected(); } }; - pp$4.parsePropertyName = function(prop) { + pp$5.parsePropertyName = function(prop) { if (this.options.ecmaVersion >= 6) { - if (this.eat(types.bracketL)) { + if (this.eat(types$1.bracketL)) { prop.computed = true; prop.key = this.parseMaybeAssign(); - this.expect(types.bracketR); + this.expect(types$1.bracketR); return prop.key } else { prop.computed = false; } } - return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") + return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") }; // Initialize empty function node. - pp$4.initFunction = function(node) { + pp$5.initFunction = function(node) { node.id = null; if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } if (this.options.ecmaVersion >= 8) { node.async = false; } @@ -3161,7 +3179,7 @@ // Parse object or class method. - pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { + pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.initFunction(node); @@ -3175,8 +3193,8 @@ this.awaitIdentPos = 0; this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); this.parseFunctionBody(node, false, true, false); @@ -3188,7 +3206,7 @@ // Parse arrow function expression with given parameters. - pp$4.parseArrowExpression = function(node, params, isAsync, forInit) { + pp$5.parseArrowExpression = function(node, params, isAsync, forInit) { var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); @@ -3210,8 +3228,8 @@ // Parse function body and check parameters. - pp$4.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { - var isExpression = isArrowFunction && this.type !== types.braceL; + pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { + var isExpression = isArrowFunction && this.type !== types$1.braceL; var oldStrict = this.strict, useStrict = false; if (isExpression) { @@ -3247,7 +3265,7 @@ this.exitScope(); }; - pp$4.isSimpleParamList = function(params) { + pp$5.isSimpleParamList = function(params) { for (var i = 0, list = params; i < list.length; i += 1) { var param = list[i]; @@ -3260,7 +3278,7 @@ // Checks function params for various disallowed patterns such as using "eval" // or "arguments" and duplicate parameters. - pp$4.checkParams = function(node, allowDuplicates) { + pp$5.checkParams = function(node, allowDuplicates) { var nameHash = Object.create(null); for (var i = 0, list = node.params; i < list.length; i += 1) { @@ -3276,20 +3294,20 @@ // nothing in between them to be parsed as `null` (which is needed // for array literals). - pp$4.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { + pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { var elts = [], first = true; while (!this.eat(close)) { if (!first) { - this.expect(types.comma); + this.expect(types$1.comma); if (allowTrailingComma && this.afterTrailingComma(close)) { break } } else { first = false; } var elt = (void 0); - if (allowEmpty && this.type === types.comma) + if (allowEmpty && this.type === types$1.comma) { elt = null; } - else if (this.type === types.ellipsis) { + else if (this.type === types$1.ellipsis) { elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0) + if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } } else { elt = this.parseMaybeAssign(false, refDestructuringErrors); @@ -3299,7 +3317,7 @@ return elts }; - pp$4.checkUnreserved = function(ref) { + pp$5.checkUnreserved = function(ref) { var start = ref.start; var end = ref.end; var name = ref.name; @@ -3328,9 +3346,9 @@ // when parsing properties), it will also convert keywords into // identifiers. - pp$4.parseIdent = function(liberal, isBinding) { + pp$5.parseIdent = function(liberal, isBinding) { var node = this.startNode(); - if (this.type === types.name) { + if (this.type === types$1.name) { node.name = this.value; } else if (this.type.keyword) { node.name = this.type.keyword; @@ -3356,9 +3374,9 @@ return node }; - pp$4.parsePrivateIdent = function() { + pp$5.parsePrivateIdent = function() { var node = this.startNode(); - if (this.type === types.privateId) { + if (this.type === types$1.privateId) { node.name = this.value; } else { this.unexpected(); @@ -3378,22 +3396,22 @@ // Parses yield expression inside generator. - pp$4.parseYield = function(forInit) { + pp$5.parseYield = function(forInit) { if (!this.yieldPos) { this.yieldPos = this.start; } var node = this.startNode(); this.next(); - if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) { + if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) { node.delegate = false; node.argument = null; } else { - node.delegate = this.eat(types.star); + node.delegate = this.eat(types$1.star); node.argument = this.parseMaybeAssign(forInit); } return this.finishNode(node, "YieldExpression") }; - pp$4.parseAwait = function(forInit) { + pp$5.parseAwait = function(forInit) { if (!this.awaitPos) { this.awaitPos = this.start; } var node = this.startNode(); @@ -3402,7 +3420,7 @@ return this.finishNode(node, "AwaitExpression") }; - var pp$5 = Parser.prototype; + var pp$4 = Parser.prototype; // This function is used to raise exceptions on parse errors. It // takes an offset integer (into the current `input`) to indicate @@ -3410,7 +3428,7 @@ // of the error message, and then raises a `SyntaxError` with that // message. - pp$5.raise = function(pos, message) { + pp$4.raise = function(pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; var err = new SyntaxError(message); @@ -3418,15 +3436,15 @@ throw err }; - pp$5.raiseRecoverable = pp$5.raise; + pp$4.raiseRecoverable = pp$4.raise; - pp$5.curPosition = function() { + pp$4.curPosition = function() { if (this.options.locations) { return new Position(this.curLine, this.pos - this.lineStart) } }; - var pp$6 = Parser.prototype; + var pp$3 = Parser.prototype; var Scope = function Scope(flags) { this.flags = flags; @@ -3442,22 +3460,22 @@ // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. - pp$6.enterScope = function(flags) { + pp$3.enterScope = function(flags) { this.scopeStack.push(new Scope(flags)); }; - pp$6.exitScope = function() { + pp$3.exitScope = function() { this.scopeStack.pop(); }; // The spec says: // > At the top level of a function, or script, function declarations are // > treated like var declarations rather than like lexical declarations. - pp$6.treatFunctionsAsVarInScope = function(scope) { + pp$3.treatFunctionsAsVarInScope = function(scope) { return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP) }; - pp$6.declareName = function(name, bindingType, pos) { + pp$3.declareName = function(name, bindingType, pos) { var redeclared = false; if (bindingType === BIND_LEXICAL) { var scope = this.currentScope(); @@ -3492,7 +3510,7 @@ if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); } }; - pp$6.checkLocalExport = function(id) { + pp$3.checkLocalExport = function(id) { // scope.functions must be empty as Module code is always strict. if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) { @@ -3500,11 +3518,11 @@ } }; - pp$6.currentScope = function() { + pp$3.currentScope = function() { return this.scopeStack[this.scopeStack.length - 1] }; - pp$6.currentVarScope = function() { + pp$3.currentVarScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR) { return scope } @@ -3512,7 +3530,7 @@ }; // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. - pp$6.currentThisScope = function() { + pp$3.currentThisScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } @@ -3533,13 +3551,13 @@ // Start an AST node, attaching a start offset. - var pp$7 = Parser.prototype; + var pp$2 = Parser.prototype; - pp$7.startNode = function() { + pp$2.startNode = function() { return new Node(this, this.start, this.startLoc) }; - pp$7.startNodeAt = function(pos, loc) { + pp$2.startNodeAt = function(pos, loc) { return new Node(this, pos, loc) }; @@ -3555,17 +3573,17 @@ return node } - pp$7.finishNode = function(node, type) { + pp$2.finishNode = function(node, type) { return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) }; // Finish node at given position - pp$7.finishNodeAt = function(node, type, pos, loc) { + pp$2.finishNodeAt = function(node, type, pos, loc) { return finishNodeAt.call(this, node, type, pos, loc) }; - pp$7.copyNode = function(node) { + pp$2.copyNode = function(node) { var newNode = new Node(this, node.start, this.startLoc); for (var prop in node) { newNode[prop] = node[prop]; } return newNode @@ -3622,7 +3640,7 @@ buildUnicodeData(11); buildUnicodeData(12); - var pp$8 = Parser.prototype; + var pp$1 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; @@ -3718,7 +3736,7 @@ return false }; - function codePointToString(ch) { + function codePointToString$1(ch) { if (ch <= 0xFFFF) { return String.fromCharCode(ch) } ch -= 0x10000; return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) @@ -3730,7 +3748,7 @@ * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ - pp$8.validateRegExpFlags = function(state) { + pp$1.validateRegExpFlags = function(state) { var validFlags = state.validFlags; var flags = state.flags; @@ -3751,7 +3769,7 @@ * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ - pp$8.validateRegExpPattern = function(state) { + pp$1.validateRegExpPattern = function(state) { this.regexp_pattern(state); // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of @@ -3766,7 +3784,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern - pp$8.regexp_pattern = function(state) { + pp$1.regexp_pattern = function(state) { state.pos = 0; state.lastIntValue = 0; state.lastStringValue = ""; @@ -3800,7 +3818,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction - pp$8.regexp_disjunction = function(state) { + pp$1.regexp_disjunction = function(state) { this.regexp_alternative(state); while (state.eat(0x7C /* | */)) { this.regexp_alternative(state); @@ -3816,13 +3834,13 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative - pp$8.regexp_alternative = function(state) { + pp$1.regexp_alternative = function(state) { while (state.pos < state.source.length && this.regexp_eatTerm(state)) { } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term - pp$8.regexp_eatTerm = function(state) { + pp$1.regexp_eatTerm = function(state) { if (this.regexp_eatAssertion(state)) { // Handle `QuantifiableAssertion Quantifier` alternative. // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion @@ -3845,7 +3863,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion - pp$8.regexp_eatAssertion = function(state) { + pp$1.regexp_eatAssertion = function(state) { var start = state.pos; state.lastAssertionIsQuantifiable = false; @@ -3883,7 +3901,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier - pp$8.regexp_eatQuantifier = function(state, noError) { + pp$1.regexp_eatQuantifier = function(state, noError) { if ( noError === void 0 ) noError = false; if (this.regexp_eatQuantifierPrefix(state, noError)) { @@ -3894,7 +3912,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix - pp$8.regexp_eatQuantifierPrefix = function(state, noError) { + pp$1.regexp_eatQuantifierPrefix = function(state, noError) { return ( state.eat(0x2A /* * */) || state.eat(0x2B /* + */) || @@ -3902,7 +3920,7 @@ this.regexp_eatBracedQuantifier(state, noError) ) }; - pp$8.regexp_eatBracedQuantifier = function(state, noError) { + pp$1.regexp_eatBracedQuantifier = function(state, noError) { var start = state.pos; if (state.eat(0x7B /* { */)) { var min = 0, max = -1; @@ -3928,7 +3946,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom - pp$8.regexp_eatAtom = function(state) { + pp$1.regexp_eatAtom = function(state) { return ( this.regexp_eatPatternCharacters(state) || state.eat(0x2E /* . */) || @@ -3938,7 +3956,7 @@ this.regexp_eatCapturingGroup(state) ) }; - pp$8.regexp_eatReverseSolidusAtomEscape = function(state) { + pp$1.regexp_eatReverseSolidusAtomEscape = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatAtomEscape(state)) { @@ -3948,7 +3966,7 @@ } return false }; - pp$8.regexp_eatUncapturingGroup = function(state) { + pp$1.regexp_eatUncapturingGroup = function(state) { var start = state.pos; if (state.eat(0x28 /* ( */)) { if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { @@ -3962,7 +3980,7 @@ } return false }; - pp$8.regexp_eatCapturingGroup = function(state) { + pp$1.regexp_eatCapturingGroup = function(state) { if (state.eat(0x28 /* ( */)) { if (this.options.ecmaVersion >= 9) { this.regexp_groupSpecifier(state); @@ -3980,7 +3998,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom - pp$8.regexp_eatExtendedAtom = function(state) { + pp$1.regexp_eatExtendedAtom = function(state) { return ( state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || @@ -3993,7 +4011,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier - pp$8.regexp_eatInvalidBracedQuantifier = function(state) { + pp$1.regexp_eatInvalidBracedQuantifier = function(state) { if (this.regexp_eatBracedQuantifier(state, true)) { state.raise("Nothing to repeat"); } @@ -4001,7 +4019,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter - pp$8.regexp_eatSyntaxCharacter = function(state) { + pp$1.regexp_eatSyntaxCharacter = function(state) { var ch = state.current(); if (isSyntaxCharacter(ch)) { state.lastIntValue = ch; @@ -4023,7 +4041,7 @@ // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter // But eat eager. - pp$8.regexp_eatPatternCharacters = function(state) { + pp$1.regexp_eatPatternCharacters = function(state) { var start = state.pos; var ch = 0; while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { @@ -4033,7 +4051,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter - pp$8.regexp_eatExtendedPatternCharacter = function(state) { + pp$1.regexp_eatExtendedPatternCharacter = function(state) { var ch = state.current(); if ( ch !== -1 && @@ -4054,7 +4072,7 @@ // GroupSpecifier :: // [empty] // `?` GroupName - pp$8.regexp_groupSpecifier = function(state) { + pp$1.regexp_groupSpecifier = function(state) { if (state.eat(0x3F /* ? */)) { if (this.regexp_eatGroupName(state)) { if (state.groupNames.indexOf(state.lastStringValue) !== -1) { @@ -4070,7 +4088,7 @@ // GroupName :: // `<` RegExpIdentifierName `>` // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatGroupName = function(state) { + pp$1.regexp_eatGroupName = function(state) { state.lastStringValue = ""; if (state.eat(0x3C /* < */)) { if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { @@ -4085,12 +4103,12 @@ // RegExpIdentifierStart // RegExpIdentifierName RegExpIdentifierPart // Note: this updates `state.lastStringValue` property with the eaten name. - pp$8.regexp_eatRegExpIdentifierName = function(state) { + pp$1.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); + state.lastStringValue += codePointToString$1(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); + state.lastStringValue += codePointToString$1(state.lastIntValue); } return true } @@ -4102,7 +4120,7 @@ // `$` // `_` // `\` RegExpUnicodeEscapeSequence[+U] - pp$8.regexp_eatRegExpIdentifierStart = function(state) { + pp$1.regexp_eatRegExpIdentifierStart = function(state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); @@ -4130,7 +4148,7 @@ // `\` RegExpUnicodeEscapeSequence[+U] // // - pp$8.regexp_eatRegExpIdentifierPart = function(state) { + pp$1.regexp_eatRegExpIdentifierPart = function(state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); @@ -4152,7 +4170,7 @@ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape - pp$8.regexp_eatAtomEscape = function(state) { + pp$1.regexp_eatAtomEscape = function(state) { if ( this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || @@ -4170,7 +4188,7 @@ } return false }; - pp$8.regexp_eatBackReference = function(state) { + pp$1.regexp_eatBackReference = function(state) { var start = state.pos; if (this.regexp_eatDecimalEscape(state)) { var n = state.lastIntValue; @@ -4188,7 +4206,7 @@ } return false }; - pp$8.regexp_eatKGroupName = function(state) { + pp$1.regexp_eatKGroupName = function(state) { if (state.eat(0x6B /* k */)) { if (this.regexp_eatGroupName(state)) { state.backReferenceNames.push(state.lastStringValue); @@ -4200,7 +4218,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape - pp$8.regexp_eatCharacterEscape = function(state) { + pp$1.regexp_eatCharacterEscape = function(state) { return ( this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || @@ -4211,7 +4229,7 @@ this.regexp_eatIdentityEscape(state) ) }; - pp$8.regexp_eatCControlLetter = function(state) { + pp$1.regexp_eatCControlLetter = function(state) { var start = state.pos; if (state.eat(0x63 /* c */)) { if (this.regexp_eatControlLetter(state)) { @@ -4221,7 +4239,7 @@ } return false }; - pp$8.regexp_eatZero = function(state) { + pp$1.regexp_eatZero = function(state) { if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { state.lastIntValue = 0; state.advance(); @@ -4231,7 +4249,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape - pp$8.regexp_eatControlEscape = function(state) { + pp$1.regexp_eatControlEscape = function(state) { var ch = state.current(); if (ch === 0x74 /* t */) { state.lastIntValue = 0x09; /* \t */ @@ -4262,7 +4280,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter - pp$8.regexp_eatControlLetter = function(state) { + pp$1.regexp_eatControlLetter = function(state) { var ch = state.current(); if (isControlLetter(ch)) { state.lastIntValue = ch % 0x20; @@ -4279,7 +4297,7 @@ } // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence - pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { + pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { if ( forceU === void 0 ) forceU = false; var start = state.pos; @@ -4324,7 +4342,7 @@ } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape - pp$8.regexp_eatIdentityEscape = function(state) { + pp$1.regexp_eatIdentityEscape = function(state) { if (state.switchU) { if (this.regexp_eatSyntaxCharacter(state)) { return true @@ -4347,7 +4365,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape - pp$8.regexp_eatDecimalEscape = function(state) { + pp$1.regexp_eatDecimalEscape = function(state) { state.lastIntValue = 0; var ch = state.current(); if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { @@ -4361,7 +4379,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape - pp$8.regexp_eatCharacterClassEscape = function(state) { + pp$1.regexp_eatCharacterClassEscape = function(state) { var ch = state.current(); if (isCharacterClassEscape(ch)) { @@ -4403,7 +4421,7 @@ // UnicodePropertyValueExpression :: // UnicodePropertyName `=` UnicodePropertyValue // LoneUnicodePropertyNameOrValue - pp$8.regexp_eatUnicodePropertyValueExpression = function(state) { + pp$1.regexp_eatUnicodePropertyValueExpression = function(state) { var start = state.pos; // UnicodePropertyName `=` UnicodePropertyValue @@ -4425,24 +4443,24 @@ } return false }; - pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { + pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { if (!has(state.unicodeProperties.nonBinary, name)) { state.raise("Invalid property name"); } if (!state.unicodeProperties.nonBinary[name].test(value)) { state.raise("Invalid property value"); } }; - pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { + pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { if (!state.unicodeProperties.binary.test(nameOrValue)) { state.raise("Invalid property name"); } }; // UnicodePropertyName :: // UnicodePropertyNameCharacters - pp$8.regexp_eatUnicodePropertyName = function(state) { + pp$1.regexp_eatUnicodePropertyName = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); + state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" @@ -4453,11 +4471,11 @@ // UnicodePropertyValue :: // UnicodePropertyValueCharacters - pp$8.regexp_eatUnicodePropertyValue = function(state) { + pp$1.regexp_eatUnicodePropertyValue = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); + state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" @@ -4468,12 +4486,12 @@ // LoneUnicodePropertyNameOrValue :: // UnicodePropertyValueCharacters - pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { + pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { return this.regexp_eatUnicodePropertyValue(state) }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass - pp$8.regexp_eatCharacterClass = function(state) { + pp$1.regexp_eatCharacterClass = function(state) { if (state.eat(0x5B /* [ */)) { state.eat(0x5E /* ^ */); this.regexp_classRanges(state); @@ -4489,7 +4507,7 @@ // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash - pp$8.regexp_classRanges = function(state) { + pp$1.regexp_classRanges = function(state) { while (this.regexp_eatClassAtom(state)) { var left = state.lastIntValue; if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { @@ -4506,7 +4524,7 @@ // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash - pp$8.regexp_eatClassAtom = function(state) { + pp$1.regexp_eatClassAtom = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { @@ -4535,7 +4553,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape - pp$8.regexp_eatClassEscape = function(state) { + pp$1.regexp_eatClassEscape = function(state) { var start = state.pos; if (state.eat(0x62 /* b */)) { @@ -4562,7 +4580,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter - pp$8.regexp_eatClassControlLetter = function(state) { + pp$1.regexp_eatClassControlLetter = function(state) { var ch = state.current(); if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { state.lastIntValue = ch % 0x20; @@ -4573,7 +4591,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatHexEscapeSequence = function(state) { + pp$1.regexp_eatHexEscapeSequence = function(state) { var start = state.pos; if (state.eat(0x78 /* x */)) { if (this.regexp_eatFixedHexDigits(state, 2)) { @@ -4588,7 +4606,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits - pp$8.regexp_eatDecimalDigits = function(state) { + pp$1.regexp_eatDecimalDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; @@ -4603,7 +4621,7 @@ } // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits - pp$8.regexp_eatHexDigits = function(state) { + pp$1.regexp_eatHexDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; @@ -4632,7 +4650,7 @@ // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence // Allows only 0-377(octal) i.e. 0-255(decimal). - pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) { + pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) { if (this.regexp_eatOctalDigit(state)) { var n1 = state.lastIntValue; if (this.regexp_eatOctalDigit(state)) { @@ -4651,7 +4669,7 @@ }; // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit - pp$8.regexp_eatOctalDigit = function(state) { + pp$1.regexp_eatOctalDigit = function(state) { var ch = state.current(); if (isOctalDigit(ch)) { state.lastIntValue = ch - 0x30; /* 0 */ @@ -4668,7 +4686,7 @@ // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence - pp$8.regexp_eatFixedHexDigits = function(state, length) { + pp$1.regexp_eatFixedHexDigits = function(state, length) { var start = state.pos; state.lastIntValue = 0; for (var i = 0; i < length; ++i) { @@ -4700,11 +4718,11 @@ // ## Tokenizer - var pp$9 = Parser.prototype; + var pp = Parser.prototype; // Move to the next token - pp$9.next = function(ignoreEscapeSequenceInKeyword) { + pp.next = function(ignoreEscapeSequenceInKeyword) { if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } if (this.options.onToken) @@ -4717,21 +4735,21 @@ this.nextToken(); }; - pp$9.getToken = function() { + pp.getToken = function() { this.next(); return new Token(this) }; // If we're in an ES6 environment, make parsers iterable if (typeof Symbol !== "undefined") - { pp$9[Symbol.iterator] = function() { - var this$1 = this; + { pp[Symbol.iterator] = function() { + var this$1$1 = this; return { next: function () { - var token = this$1.getToken(); + var token = this$1$1.getToken(); return { - done: token.type === types.eof, + done: token.type === types$1.eof, value: token } } @@ -4744,19 +4762,19 @@ // Read a single token, updating the parser object's token-related // properties. - pp$9.nextToken = function() { + pp.nextToken = function() { var curContext = this.curContext(); if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } this.start = this.pos; if (this.options.locations) { this.startLoc = this.curPosition(); } - if (this.pos >= this.input.length) { return this.finishToken(types.eof) } + if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) } if (curContext.override) { return curContext.override(this) } else { this.readToken(this.fullCharCodeAtPos()); } }; - pp$9.readToken = function(code) { + pp.readToken = function(code) { // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) @@ -4765,14 +4783,14 @@ return this.getTokenFromCode(code) }; - pp$9.fullCharCodeAtPos = function() { + pp.fullCharCodeAtPos = function() { var code = this.input.charCodeAt(this.pos); if (code <= 0xd7ff || code >= 0xdc00) { return code } var next = this.input.charCodeAt(this.pos + 1); return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00 }; - pp$9.skipBlockComment = function() { + pp.skipBlockComment = function() { var startLoc = this.options.onComment && this.curPosition(); var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } @@ -4790,7 +4808,7 @@ startLoc, this.curPosition()); } }; - pp$9.skipLineComment = function(startSkip) { + pp.skipLineComment = function(startSkip) { var start = this.pos; var startLoc = this.options.onComment && this.curPosition(); var ch = this.input.charCodeAt(this.pos += startSkip); @@ -4805,7 +4823,7 @@ // Called at the start of the parse and after every token. Skips // whitespace and comments, and. - pp$9.skipSpace = function() { + pp.skipSpace = function() { loop: while (this.pos < this.input.length) { var ch = this.input.charCodeAt(this.pos); switch (ch) { @@ -4850,7 +4868,7 @@ // the token, so that the next one's `start` will point at the // right position. - pp$9.finishToken = function(type, val) { + pp.finishToken = function(type, val) { this.end = this.pos; if (this.options.locations) { this.endLoc = this.curPosition(); } var prevType = this.type; @@ -4869,62 +4887,62 @@ // // All in the name of speed. // - pp$9.readToken_dot = function() { + pp.readToken_dot = function() { var next = this.input.charCodeAt(this.pos + 1); if (next >= 48 && next <= 57) { return this.readNumber(true) } var next2 = this.input.charCodeAt(this.pos + 2); if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' this.pos += 3; - return this.finishToken(types.ellipsis) + return this.finishToken(types$1.ellipsis) } else { ++this.pos; - return this.finishToken(types.dot) + return this.finishToken(types$1.dot) } }; - pp$9.readToken_slash = function() { // '/' + pp.readToken_slash = function() { // '/' var next = this.input.charCodeAt(this.pos + 1); if (this.exprAllowed) { ++this.pos; return this.readRegexp() } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.slash, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.slash, 1) }; - pp$9.readToken_mult_modulo_exp = function(code) { // '%*' + pp.readToken_mult_modulo_exp = function(code) { // '%*' var next = this.input.charCodeAt(this.pos + 1); var size = 1; - var tokentype = code === 42 ? types.star : types.modulo; + var tokentype = code === 42 ? types$1.star : types$1.modulo; // exponentiation operator ** and **= if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { ++size; - tokentype = types.starstar; + tokentype = types$1.starstar; next = this.input.charCodeAt(this.pos + 2); } - if (next === 61) { return this.finishOp(types.assign, size + 1) } + if (next === 61) { return this.finishOp(types$1.assign, size + 1) } return this.finishOp(tokentype, size) }; - pp$9.readToken_pipe_amp = function(code) { // '|&' + pp.readToken_pipe_amp = function(code) { // '|&' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (this.options.ecmaVersion >= 12) { var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { return this.finishOp(types.assign, 3) } + if (next2 === 61) { return this.finishOp(types$1.assign, 3) } } - return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) + return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2) } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1) }; - pp$9.readToken_caret = function() { // '^' + pp.readToken_caret = function() { // '^' var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.bitwiseXOR, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.bitwiseXOR, 1) }; - pp$9.readToken_plus_min = function(code) { // '+-' + pp.readToken_plus_min = function(code) { // '+-' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && @@ -4934,19 +4952,19 @@ this.skipSpace(); return this.nextToken() } - return this.finishOp(types.incDec, 2) + return this.finishOp(types$1.incDec, 2) } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.plusMin, 1) }; - pp$9.readToken_lt_gt = function(code) { // '<>' + pp.readToken_lt_gt = function(code) { // '<>' var next = this.input.charCodeAt(this.pos + 1); var size = 1; if (next === code) { size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) + if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) } + return this.finishOp(types$1.bitShift, size) } if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { @@ -4956,53 +4974,53 @@ return this.nextToken() } if (next === 61) { size = 2; } - return this.finishOp(types.relational, size) + return this.finishOp(types$1.relational, size) }; - pp$9.readToken_eq_excl = function(code) { // '=!' + pp.readToken_eq_excl = function(code) { // '=!' var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) } + if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) } if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>' this.pos += 2; - return this.finishToken(types.arrow) + return this.finishToken(types$1.arrow) } - return this.finishOp(code === 61 ? types.eq : types.prefix, 1) + return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1) }; - pp$9.readToken_question = function() { // '?' + pp.readToken_question = function() { // '?' var ecmaVersion = this.options.ecmaVersion; if (ecmaVersion >= 11) { var next = this.input.charCodeAt(this.pos + 1); if (next === 46) { var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) } + if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) } } if (next === 63) { if (ecmaVersion >= 12) { var next2$1 = this.input.charCodeAt(this.pos + 2); - if (next2$1 === 61) { return this.finishOp(types.assign, 3) } + if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) } } - return this.finishOp(types.coalesce, 2) + return this.finishOp(types$1.coalesce, 2) } } - return this.finishOp(types.question, 1) + return this.finishOp(types$1.question, 1) }; - pp$9.readToken_numberSign = function() { // '#' + pp.readToken_numberSign = function() { // '#' var ecmaVersion = this.options.ecmaVersion; var code = 35; // '#' if (ecmaVersion >= 13) { ++this.pos; code = this.fullCharCodeAtPos(); if (isIdentifierStart(code, true) || code === 92 /* '\' */) { - return this.finishToken(types.privateId, this.readWord1()) + return this.finishToken(types$1.privateId, this.readWord1()) } } - this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); + this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); }; - pp$9.getTokenFromCode = function(code) { + pp.getTokenFromCode = function(code) { switch (code) { // The interpretation of a dot depends on whether it is followed // by a digit or another two dots. @@ -5010,20 +5028,20 @@ return this.readToken_dot() // Punctuation tokens. - case 40: ++this.pos; return this.finishToken(types.parenL) - case 41: ++this.pos; return this.finishToken(types.parenR) - case 59: ++this.pos; return this.finishToken(types.semi) - case 44: ++this.pos; return this.finishToken(types.comma) - case 91: ++this.pos; return this.finishToken(types.bracketL) - case 93: ++this.pos; return this.finishToken(types.bracketR) - case 123: ++this.pos; return this.finishToken(types.braceL) - case 125: ++this.pos; return this.finishToken(types.braceR) - case 58: ++this.pos; return this.finishToken(types.colon) + case 40: ++this.pos; return this.finishToken(types$1.parenL) + case 41: ++this.pos; return this.finishToken(types$1.parenR) + case 59: ++this.pos; return this.finishToken(types$1.semi) + case 44: ++this.pos; return this.finishToken(types$1.comma) + case 91: ++this.pos; return this.finishToken(types$1.bracketL) + case 93: ++this.pos; return this.finishToken(types$1.bracketR) + case 123: ++this.pos; return this.finishToken(types$1.braceL) + case 125: ++this.pos; return this.finishToken(types$1.braceR) + case 58: ++this.pos; return this.finishToken(types$1.colon) case 96: // '`' if (this.options.ecmaVersion < 6) { break } ++this.pos; - return this.finishToken(types.backQuote) + return this.finishToken(types$1.backQuote) case 48: // '0' var next = this.input.charCodeAt(this.pos + 1); @@ -5046,7 +5064,6 @@ // often referred to. `finishOp` simply skips the amount of // characters it is given as second argument, and returns a token // of the type given by its first argument. - case 47: // '/' return this.readToken_slash() @@ -5072,22 +5089,22 @@ return this.readToken_question() case 126: // '~' - return this.finishOp(types.prefix, 1) + return this.finishOp(types$1.prefix, 1) case 35: // '#' return this.readToken_numberSign() } - this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); + this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); }; - pp$9.finishOp = function(type, size) { + pp.finishOp = function(type, size) { var str = this.input.slice(this.pos, this.pos + size); this.pos += size; return this.finishToken(type, str) }; - pp$9.readRegexp = function() { + pp.readRegexp = function() { var escaped, inClass, start = this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(start, "Unterminated regular expression"); } @@ -5122,14 +5139,14 @@ // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral } - return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value}) + return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value}) }; // Read an integer in the given radix. Return null if zero digits // were read, the integer value otherwise. When `len` is given, this // will return `null` unless the integer has exactly `len` digits. - pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { + pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { // `len` is used for character escape sequences. In that case, disallow separators. var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined; @@ -5183,7 +5200,7 @@ return BigInt(str.replace(/_/g, "")) } - pp$9.readRadixNumber = function(radix) { + pp.readRadixNumber = function(radix) { var start = this.pos; this.pos += 2; // 0x var val = this.readInt(radix); @@ -5192,12 +5209,12 @@ val = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } - return this.finishToken(types.num, val) + return this.finishToken(types$1.num, val) }; // Read an integer, octal integer, or floating-point number. - pp$9.readNumber = function(startsWithDot) { + pp.readNumber = function(startsWithDot) { var start = this.pos; if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, "Invalid number"); } var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; @@ -5207,7 +5224,7 @@ var val$1 = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } - return this.finishToken(types.num, val$1) + return this.finishToken(types$1.num, val$1) } if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; } if (next === 46 && !octal) { // '.' @@ -5223,12 +5240,12 @@ if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } var val = stringToNumber(this.input.slice(start, this.pos), octal); - return this.finishToken(types.num, val) + return this.finishToken(types$1.num, val) }; // Read a string value, interpreting backslash-escapes. - pp$9.readCodePoint = function() { + pp.readCodePoint = function() { var ch = this.input.charCodeAt(this.pos), code; if (ch === 123) { // '{' @@ -5243,14 +5260,14 @@ return code }; - function codePointToString$1(code) { + function codePointToString(code) { // UTF-16 Decoding if (code <= 0xFFFF) { return String.fromCharCode(code) } code -= 0x10000; return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) } - pp$9.readString = function(quote) { + pp.readString = function(quote) { var out = "", chunkStart = ++this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(this.start, "Unterminated string constant"); } @@ -5273,14 +5290,14 @@ } } out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(types.string, out) + return this.finishToken(types$1.string, out) }; // Reads template string tokens. var INVALID_TEMPLATE_ESCAPE_ERROR = {}; - pp$9.tryReadTemplateToken = function() { + pp.tryReadTemplateToken = function() { this.inTemplateElement = true; try { this.readTmplToken(); @@ -5295,7 +5312,7 @@ this.inTemplateElement = false; }; - pp$9.invalidStringToken = function(position, message) { + pp.invalidStringToken = function(position, message) { if (this.inTemplateElement && this.options.ecmaVersion >= 9) { throw INVALID_TEMPLATE_ESCAPE_ERROR } else { @@ -5303,23 +5320,23 @@ } }; - pp$9.readTmplToken = function() { + pp.readTmplToken = function() { var out = "", chunkStart = this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(this.start, "Unterminated template"); } var ch = this.input.charCodeAt(this.pos); if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${' - if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) { + if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) { if (ch === 36) { this.pos += 2; - return this.finishToken(types.dollarBraceL) + return this.finishToken(types$1.dollarBraceL) } else { ++this.pos; - return this.finishToken(types.backQuote) + return this.finishToken(types$1.backQuote) } } out += this.input.slice(chunkStart, this.pos); - return this.finishToken(types.template, out) + return this.finishToken(types$1.template, out) } if (ch === 92) { // '\' out += this.input.slice(chunkStart, this.pos); @@ -5350,7 +5367,7 @@ }; // Reads a template token to search for the end, without validating any escape sequences - pp$9.readInvalidTemplateToken = function() { + pp.readInvalidTemplateToken = function() { for (; this.pos < this.input.length; this.pos++) { switch (this.input[this.pos]) { case "\\": @@ -5361,10 +5378,10 @@ if (this.input[this.pos + 1] !== "{") { break } - // falls through + // falls through case "`": - return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos)) + return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos)) // no default } @@ -5374,14 +5391,14 @@ // Used to read escaped characters - pp$9.readEscapedChar = function(inTemplate) { + pp.readEscapedChar = function(inTemplate) { var ch = this.input.charCodeAt(++this.pos); ++this.pos; switch (ch) { case 110: return "\n" // 'n' -> '\n' case 114: return "\r" // 'r' -> '\r' case 120: return String.fromCharCode(this.readHexChar(2)) // 'x' - case 117: return codePointToString$1(this.readCodePoint()) // 'u' + case 117: return codePointToString(this.readCodePoint()) // 'u' case 116: return "\t" // 't' -> '\t' case 98: return "\b" // 'b' -> '\b' case 118: return "\u000b" // 'v' -> '\u000b' @@ -5439,7 +5456,7 @@ // Used to read character escape sequences ('\x', '\u', '\U'). - pp$9.readHexChar = function(len) { + pp.readHexChar = function(len) { var codePos = this.pos; var n = this.readInt(16, len); if (n === null) { this.invalidStringToken(codePos, "Bad character escape sequence"); } @@ -5452,7 +5469,7 @@ // Incrementally adds only escaped chars, adding other chunks as-is // as a micro-optimization. - pp$9.readWord1 = function() { + pp.readWord1 = function() { this.containsEsc = false; var word = "", first = true, chunkStart = this.pos; var astral = this.options.ecmaVersion >= 6; @@ -5470,7 +5487,7 @@ var esc = this.readCodePoint(); if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral)) { this.invalidStringToken(escStart, "Invalid Unicode escape"); } - word += codePointToString$1(esc); + word += codePointToString(esc); chunkStart = this.pos; } else { break @@ -5483,18 +5500,18 @@ // Read an identifier or keyword token. Will check for reserved // words when necessary. - pp$9.readWord = function() { + pp.readWord = function() { var word = this.readWord1(); - var type = types.name; + var type = types$1.name; if (this.keywords.test(word)) { - type = keywords$1[word]; + type = keywords[word]; } return this.finishToken(type, word) }; // Acorn is a tiny, fast JavaScript parser written in JavaScript. - var version = "8.5.0"; + var version = "8.6.0"; Parser.acorn = { Parser: Parser, @@ -5505,10 +5522,10 @@ getLineInfo: getLineInfo, Node: Node, TokenType: TokenType, - tokTypes: types, - keywordTypes: keywords$1, + tokTypes: types$1, + keywordTypes: keywords, TokContext: TokContext, - tokContexts: types$1, + tokContexts: types, isIdentifierChar: isIdentifierChar, isIdentifierStart: isIdentifierStart, Token: Token, @@ -5556,17 +5573,17 @@ exports.isIdentifierChar = isIdentifierChar; exports.isIdentifierStart = isIdentifierStart; exports.isNewLine = isNewLine; - exports.keywordTypes = keywords$1; + exports.keywordTypes = keywords; exports.lineBreak = lineBreak; exports.lineBreakG = lineBreakG; exports.nonASCIIwhitespace = nonASCIIwhitespace; exports.parse = parse; exports.parseExpressionAt = parseExpressionAt; - exports.tokContexts = types$1; - exports.tokTypes = types; + exports.tokContexts = types; + exports.tokTypes = types$1; exports.tokenizer = tokenizer; exports.version = version; Object.defineProperty(exports, '__esModule', { value: true }); -}))); +})); diff --git a/deps/acorn/acorn/dist/acorn.mjs b/deps/acorn/acorn/dist/acorn.mjs index 96a8294589badc..df5b26e5dd0f74 100644 --- a/deps/acorn/acorn/dist/acorn.mjs +++ b/deps/acorn/acorn/dist/acorn.mjs @@ -12,7 +12,7 @@ var reservedWords = { var ecma5AndLessKeywords = "break case catch continue debugger default do else finally for function if return switch throw try var while with null true false instanceof typeof void delete new in this"; -var keywords = { +var keywords$1 = { 5: ecma5AndLessKeywords, "5module": ecma5AndLessKeywords + " export import", 6: ecma5AndLessKeywords + " const class extends export import super" @@ -131,17 +131,17 @@ var beforeExpr = {beforeExpr: true}, startsExpr = {startsExpr: true}; // Map keyword names to token types. -var keywords$1 = {}; +var keywords = {}; // Succinct definitions of keyword token types function kw(name, options) { if ( options === void 0 ) options = {}; options.keyword = name; - return keywords$1[name] = new TokenType(name, options) + return keywords[name] = new TokenType(name, options) } -var types = { +var types$1 = { num: new TokenType("num", startsExpr), regexp: new TokenType("regexp", startsExpr), string: new TokenType("string", startsExpr), @@ -483,7 +483,7 @@ var var Parser = function Parser(options, input, startPos) { this.options = options = getOptions(options); this.sourceFile = options.sourceFile; - this.keywords = wordsRegexp(keywords[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); + this.keywords = wordsRegexp(keywords$1[options.ecmaVersion >= 6 ? 6 : options.sourceType === "module" ? "5module" : 5]); var reserved = ""; if (options.allowReserved !== true) { reserved = reservedWords[options.ecmaVersion >= 6 ? 6 : options.ecmaVersion === 5 ? 5 : 3]; @@ -514,7 +514,7 @@ var Parser = function Parser(options, input, startPos) { // Properties of the current token: // Its type - this.type = types.eof; + this.type = types$1.eof; // For tokens that include more information than their type, the value this.value = null; // Its start and end offset @@ -574,8 +574,11 @@ Parser.prototype.parse = function parse () { }; prototypeAccessors.inFunction.get = function () { return (this.currentVarScope().flags & SCOPE_FUNCTION) > 0 }; + prototypeAccessors.inGenerator.get = function () { return (this.currentVarScope().flags & SCOPE_GENERATOR) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.inAsync.get = function () { return (this.currentVarScope().flags & SCOPE_ASYNC) > 0 && !this.currentVarScope().inClassFieldInit }; + prototypeAccessors.canAwait.get = function () { for (var i = this.scopeStack.length - 1; i >= 0; i--) { var scope = this.scopeStack[i]; @@ -584,20 +587,25 @@ prototypeAccessors.canAwait.get = function () { } return (this.inModule && this.options.ecmaVersion >= 13) || this.options.allowAwaitOutsideFunction }; + prototypeAccessors.allowSuper.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & SCOPE_SUPER) > 0 || inClassFieldInit || this.options.allowSuperOutsideMethod }; + prototypeAccessors.allowDirectSuper.get = function () { return (this.currentThisScope().flags & SCOPE_DIRECT_SUPER) > 0 }; + prototypeAccessors.treatFunctionsAsVar.get = function () { return this.treatFunctionsAsVarInScope(this.currentScope()) }; + prototypeAccessors.allowNewDotTarget.get = function () { var ref = this.currentThisScope(); var flags = ref.flags; var inClassFieldInit = ref.inClassFieldInit; return (flags & (SCOPE_FUNCTION | SCOPE_CLASS_STATIC_BLOCK)) > 0 || inClassFieldInit }; + prototypeAccessors.inClassStaticBlock.get = function () { return (this.currentVarScope().flags & SCOPE_CLASS_STATIC_BLOCK) > 0 }; @@ -627,12 +635,12 @@ Parser.tokenizer = function tokenizer (input, options) { Object.defineProperties( Parser.prototype, prototypeAccessors ); -var pp = Parser.prototype; +var pp$9 = Parser.prototype; // ## Parser utilities var literal = /^(?:'((?:\\.|[^'\\])*?)'|"((?:\\.|[^"\\])*?)")/; -pp.strictDirective = function(start) { +pp$9.strictDirective = function(start) { for (;;) { // Try to find string literal. skipWhiteSpace.lastIndex = start; @@ -660,7 +668,7 @@ pp.strictDirective = function(start) { // Predicate that tests whether the next token is of the given // type, and if yes, consumes it as a side effect. -pp.eat = function(type) { +pp$9.eat = function(type) { if (this.type === type) { this.next(); return true @@ -671,13 +679,13 @@ pp.eat = function(type) { // Tests whether parsed token is a contextual keyword. -pp.isContextual = function(name) { - return this.type === types.name && this.value === name && !this.containsEsc +pp$9.isContextual = function(name) { + return this.type === types$1.name && this.value === name && !this.containsEsc }; // Consumes contextual keyword if possible. -pp.eatContextual = function(name) { +pp$9.eatContextual = function(name) { if (!this.isContextual(name)) { return false } this.next(); return true @@ -685,19 +693,19 @@ pp.eatContextual = function(name) { // Asserts that following token is given contextual keyword. -pp.expectContextual = function(name) { +pp$9.expectContextual = function(name) { if (!this.eatContextual(name)) { this.unexpected(); } }; // Test whether a semicolon can be inserted at the current position. -pp.canInsertSemicolon = function() { - return this.type === types.eof || - this.type === types.braceR || +pp$9.canInsertSemicolon = function() { + return this.type === types$1.eof || + this.type === types$1.braceR || lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; -pp.insertSemicolon = function() { +pp$9.insertSemicolon = function() { if (this.canInsertSemicolon()) { if (this.options.onInsertedSemicolon) { this.options.onInsertedSemicolon(this.lastTokEnd, this.lastTokEndLoc); } @@ -708,11 +716,11 @@ pp.insertSemicolon = function() { // Consume a semicolon, or, failing that, see if we are allowed to // pretend that there is a semicolon at this position. -pp.semicolon = function() { - if (!this.eat(types.semi) && !this.insertSemicolon()) { this.unexpected(); } +pp$9.semicolon = function() { + if (!this.eat(types$1.semi) && !this.insertSemicolon()) { this.unexpected(); } }; -pp.afterTrailingComma = function(tokType, notNext) { +pp$9.afterTrailingComma = function(tokType, notNext) { if (this.type === tokType) { if (this.options.onTrailingComma) { this.options.onTrailingComma(this.lastTokStart, this.lastTokStartLoc); } @@ -725,13 +733,13 @@ pp.afterTrailingComma = function(tokType, notNext) { // Expect a token of a given type. If found, consume it, otherwise, // raise an unexpected token error. -pp.expect = function(type) { +pp$9.expect = function(type) { this.eat(type) || this.unexpected(); }; // Raise an unexpected token error. -pp.unexpected = function(pos) { +pp$9.unexpected = function(pos) { this.raise(pos != null ? pos : this.start, "Unexpected token"); }; @@ -744,7 +752,7 @@ function DestructuringErrors() { -1; } -pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { +pp$9.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (!refDestructuringErrors) { return } if (refDestructuringErrors.trailingComma > -1) { this.raiseRecoverable(refDestructuringErrors.trailingComma, "Comma is not permitted after the rest element"); } @@ -752,7 +760,7 @@ pp.checkPatternErrors = function(refDestructuringErrors, isAssign) { if (parens > -1) { this.raiseRecoverable(parens, "Parenthesized pattern"); } }; -pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { +pp$9.checkExpressionErrors = function(refDestructuringErrors, andThrow) { if (!refDestructuringErrors) { return false } var shorthandAssign = refDestructuringErrors.shorthandAssign; var doubleProto = refDestructuringErrors.doubleProto; @@ -763,20 +771,20 @@ pp.checkExpressionErrors = function(refDestructuringErrors, andThrow) { { this.raiseRecoverable(doubleProto, "Redefinition of __proto__ property"); } }; -pp.checkYieldAwaitInDefaultParams = function() { +pp$9.checkYieldAwaitInDefaultParams = function() { if (this.yieldPos && (!this.awaitPos || this.yieldPos < this.awaitPos)) { this.raise(this.yieldPos, "Yield expression cannot be a default value"); } if (this.awaitPos) { this.raise(this.awaitPos, "Await expression cannot be a default value"); } }; -pp.isSimpleAssignTarget = function(expr) { +pp$9.isSimpleAssignTarget = function(expr) { if (expr.type === "ParenthesizedExpression") { return this.isSimpleAssignTarget(expr.expression) } return expr.type === "Identifier" || expr.type === "MemberExpression" }; -var pp$1 = Parser.prototype; +var pp$8 = Parser.prototype; // ### Statement parsing @@ -785,10 +793,10 @@ var pp$1 = Parser.prototype; // `program` argument. If present, the statements will be appended // to its body instead of creating a new node. -pp$1.parseTopLevel = function(node) { +pp$8.parseTopLevel = function(node) { var exports = Object.create(null); if (!node.body) { node.body = []; } - while (this.type !== types.eof) { + while (this.type !== types$1.eof) { var stmt = this.parseStatement(null, true, exports); node.body.push(stmt); } @@ -807,7 +815,7 @@ pp$1.parseTopLevel = function(node) { var loopLabel = {kind: "loop"}, switchLabel = {kind: "switch"}; -pp$1.isLet = function(context) { +pp$8.isLet = function(context) { if (this.options.ecmaVersion < 6 || !this.isContextual("let")) { return false } skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); @@ -833,7 +841,7 @@ pp$1.isLet = function(context) { // check 'async [no LineTerminator here] function' // - 'async /*foo*/ function' is OK. // - 'async /*\n*/ function' is invalid. -pp$1.isAsyncFunction = function() { +pp$8.isAsyncFunction = function() { if (this.options.ecmaVersion < 8 || !this.isContextual("async")) { return false } @@ -853,11 +861,11 @@ pp$1.isAsyncFunction = function() { // `if (foo) /blah/.exec(foo)`, where looking at the previous token // does not help. -pp$1.parseStatement = function(context, topLevel, exports) { +pp$8.parseStatement = function(context, topLevel, exports) { var starttype = this.type, node = this.startNode(), kind; if (this.isLet(context)) { - starttype = types._var; + starttype = types$1._var; kind = "let"; } @@ -866,35 +874,35 @@ pp$1.parseStatement = function(context, topLevel, exports) { // complexity. switch (starttype) { - case types._break: case types._continue: return this.parseBreakContinueStatement(node, starttype.keyword) - case types._debugger: return this.parseDebuggerStatement(node) - case types._do: return this.parseDoStatement(node) - case types._for: return this.parseForStatement(node) - case types._function: + case types$1._break: case types$1._continue: return this.parseBreakContinueStatement(node, starttype.keyword) + case types$1._debugger: return this.parseDebuggerStatement(node) + case types$1._do: return this.parseDoStatement(node) + case types$1._for: return this.parseForStatement(node) + case types$1._function: // Function as sole body of either an if statement or a labeled statement // works, but not when it is part of a labeled statement that is the sole // body of an if statement. if ((context && (this.strict || context !== "if" && context !== "label")) && this.options.ecmaVersion >= 6) { this.unexpected(); } return this.parseFunctionStatement(node, false, !context) - case types._class: + case types$1._class: if (context) { this.unexpected(); } return this.parseClass(node, true) - case types._if: return this.parseIfStatement(node) - case types._return: return this.parseReturnStatement(node) - case types._switch: return this.parseSwitchStatement(node) - case types._throw: return this.parseThrowStatement(node) - case types._try: return this.parseTryStatement(node) - case types._const: case types._var: + case types$1._if: return this.parseIfStatement(node) + case types$1._return: return this.parseReturnStatement(node) + case types$1._switch: return this.parseSwitchStatement(node) + case types$1._throw: return this.parseThrowStatement(node) + case types$1._try: return this.parseTryStatement(node) + case types$1._const: case types$1._var: kind = kind || this.value; if (context && kind !== "var") { this.unexpected(); } return this.parseVarStatement(node, kind) - case types._while: return this.parseWhileStatement(node) - case types._with: return this.parseWithStatement(node) - case types.braceL: return this.parseBlock(true, node) - case types.semi: return this.parseEmptyStatement(node) - case types._export: - case types._import: - if (this.options.ecmaVersion > 10 && starttype === types._import) { + case types$1._while: return this.parseWhileStatement(node) + case types$1._with: return this.parseWithStatement(node) + case types$1.braceL: return this.parseBlock(true, node) + case types$1.semi: return this.parseEmptyStatement(node) + case types$1._export: + case types$1._import: + if (this.options.ecmaVersion > 10 && starttype === types$1._import) { skipWhiteSpace.lastIndex = this.pos; var skip = skipWhiteSpace.exec(this.input); var next = this.pos + skip[0].length, nextCh = this.input.charCodeAt(next); @@ -908,7 +916,7 @@ pp$1.parseStatement = function(context, topLevel, exports) { if (!this.inModule) { this.raise(this.start, "'import' and 'export' may appear only with 'sourceType: module'"); } } - return starttype === types._import ? this.parseImport(node) : this.parseExport(node, exports) + return starttype === types$1._import ? this.parseImport(node) : this.parseExport(node, exports) // If the statement does not start with a statement keyword or a // brace, it's an ExpressionStatement or LabeledStatement. We @@ -923,17 +931,17 @@ pp$1.parseStatement = function(context, topLevel, exports) { } var maybeName = this.value, expr = this.parseExpression(); - if (starttype === types.name && expr.type === "Identifier" && this.eat(types.colon)) + if (starttype === types$1.name && expr.type === "Identifier" && this.eat(types$1.colon)) { return this.parseLabeledStatement(node, maybeName, expr, context) } else { return this.parseExpressionStatement(node, expr) } } }; -pp$1.parseBreakContinueStatement = function(node, keyword) { +pp$8.parseBreakContinueStatement = function(node, keyword) { var isBreak = keyword === "break"; this.next(); - if (this.eat(types.semi) || this.insertSemicolon()) { node.label = null; } - else if (this.type !== types.name) { this.unexpected(); } + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.label = null; } + else if (this.type !== types$1.name) { this.unexpected(); } else { node.label = this.parseIdent(); this.semicolon(); @@ -953,21 +961,21 @@ pp$1.parseBreakContinueStatement = function(node, keyword) { return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement") }; -pp$1.parseDebuggerStatement = function(node) { +pp$8.parseDebuggerStatement = function(node) { this.next(); this.semicolon(); return this.finishNode(node, "DebuggerStatement") }; -pp$1.parseDoStatement = function(node) { +pp$8.parseDoStatement = function(node) { this.next(); this.labels.push(loopLabel); node.body = this.parseStatement("do"); this.labels.pop(); - this.expect(types._while); + this.expect(types$1._while); node.test = this.parseParenExpression(); if (this.options.ecmaVersion >= 6) - { this.eat(types.semi); } + { this.eat(types$1.semi); } else { this.semicolon(); } return this.finishNode(node, "DoWhileStatement") @@ -981,25 +989,25 @@ pp$1.parseDoStatement = function(node) { // part (semicolon immediately after the opening parenthesis), it // is a regular `for` loop. -pp$1.parseForStatement = function(node) { +pp$8.parseForStatement = function(node) { this.next(); var awaitAt = (this.options.ecmaVersion >= 9 && this.canAwait && this.eatContextual("await")) ? this.lastTokStart : -1; this.labels.push(loopLabel); this.enterScope(0); - this.expect(types.parenL); - if (this.type === types.semi) { + this.expect(types$1.parenL); + if (this.type === types$1.semi) { if (awaitAt > -1) { this.unexpected(awaitAt); } return this.parseFor(node, null) } var isLet = this.isLet(); - if (this.type === types._var || this.type === types._const || isLet) { + if (this.type === types$1._var || this.type === types$1._const || isLet) { var init$1 = this.startNode(), kind = isLet ? "let" : this.value; this.next(); this.parseVar(init$1, true, kind); this.finishNode(init$1, "VariableDeclaration"); - if ((this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { + if ((this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of"))) && init$1.declarations.length === 1) { if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { + if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } @@ -1011,9 +1019,9 @@ pp$1.parseForStatement = function(node) { var startsWithLet = this.isContextual("let"), isForOf = false; var refDestructuringErrors = new DestructuringErrors; var init = this.parseExpression(awaitAt > -1 ? "await" : true, refDestructuringErrors); - if (this.type === types._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { + if (this.type === types$1._in || (isForOf = this.options.ecmaVersion >= 6 && this.isContextual("of"))) { if (this.options.ecmaVersion >= 9) { - if (this.type === types._in) { + if (this.type === types$1._in) { if (awaitAt > -1) { this.unexpected(awaitAt); } } else { node.await = awaitAt > -1; } } @@ -1028,21 +1036,21 @@ pp$1.parseForStatement = function(node) { return this.parseFor(node, init) }; -pp$1.parseFunctionStatement = function(node, isAsync, declarationPosition) { +pp$8.parseFunctionStatement = function(node, isAsync, declarationPosition) { this.next(); return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), false, isAsync) }; -pp$1.parseIfStatement = function(node) { +pp$8.parseIfStatement = function(node) { this.next(); node.test = this.parseParenExpression(); // allow function declarations in branches, but only in non-strict mode node.consequent = this.parseStatement("if"); - node.alternate = this.eat(types._else) ? this.parseStatement("if") : null; + node.alternate = this.eat(types$1._else) ? this.parseStatement("if") : null; return this.finishNode(node, "IfStatement") }; -pp$1.parseReturnStatement = function(node) { +pp$8.parseReturnStatement = function(node) { if (!this.inFunction && !this.options.allowReturnOutsideFunction) { this.raise(this.start, "'return' outside of function"); } this.next(); @@ -1051,16 +1059,16 @@ pp$1.parseReturnStatement = function(node) { // optional arguments, we eagerly look for a semicolon or the // possibility to insert one. - if (this.eat(types.semi) || this.insertSemicolon()) { node.argument = null; } + if (this.eat(types$1.semi) || this.insertSemicolon()) { node.argument = null; } else { node.argument = this.parseExpression(); this.semicolon(); } return this.finishNode(node, "ReturnStatement") }; -pp$1.parseSwitchStatement = function(node) { +pp$8.parseSwitchStatement = function(node) { this.next(); node.discriminant = this.parseParenExpression(); node.cases = []; - this.expect(types.braceL); + this.expect(types$1.braceL); this.labels.push(switchLabel); this.enterScope(0); @@ -1069,9 +1077,9 @@ pp$1.parseSwitchStatement = function(node) { // adding statements to. var cur; - for (var sawDefault = false; this.type !== types.braceR;) { - if (this.type === types._case || this.type === types._default) { - var isCase = this.type === types._case; + for (var sawDefault = false; this.type !== types$1.braceR;) { + if (this.type === types$1._case || this.type === types$1._default) { + var isCase = this.type === types$1._case; if (cur) { this.finishNode(cur, "SwitchCase"); } node.cases.push(cur = this.startNode()); cur.consequent = []; @@ -1083,7 +1091,7 @@ pp$1.parseSwitchStatement = function(node) { sawDefault = true; cur.test = null; } - this.expect(types.colon); + this.expect(types$1.colon); } else { if (!cur) { this.unexpected(); } cur.consequent.push(this.parseStatement(null)); @@ -1096,7 +1104,7 @@ pp$1.parseSwitchStatement = function(node) { return this.finishNode(node, "SwitchStatement") }; -pp$1.parseThrowStatement = function(node) { +pp$8.parseThrowStatement = function(node) { this.next(); if (lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) { this.raise(this.lastTokEnd, "Illegal newline after throw"); } @@ -1107,21 +1115,21 @@ pp$1.parseThrowStatement = function(node) { // Reused empty array added for node fields that are always empty. -var empty = []; +var empty$1 = []; -pp$1.parseTryStatement = function(node) { +pp$8.parseTryStatement = function(node) { this.next(); node.block = this.parseBlock(); node.handler = null; - if (this.type === types._catch) { + if (this.type === types$1._catch) { var clause = this.startNode(); this.next(); - if (this.eat(types.parenL)) { + if (this.eat(types$1.parenL)) { clause.param = this.parseBindingAtom(); var simple = clause.param.type === "Identifier"; this.enterScope(simple ? SCOPE_SIMPLE_CATCH : 0); this.checkLValPattern(clause.param, simple ? BIND_SIMPLE_CATCH : BIND_LEXICAL); - this.expect(types.parenR); + this.expect(types$1.parenR); } else { if (this.options.ecmaVersion < 10) { this.unexpected(); } clause.param = null; @@ -1131,20 +1139,20 @@ pp$1.parseTryStatement = function(node) { this.exitScope(); node.handler = this.finishNode(clause, "CatchClause"); } - node.finalizer = this.eat(types._finally) ? this.parseBlock() : null; + node.finalizer = this.eat(types$1._finally) ? this.parseBlock() : null; if (!node.handler && !node.finalizer) { this.raise(node.start, "Missing catch or finally clause"); } return this.finishNode(node, "TryStatement") }; -pp$1.parseVarStatement = function(node, kind) { +pp$8.parseVarStatement = function(node, kind) { this.next(); this.parseVar(node, false, kind); this.semicolon(); return this.finishNode(node, "VariableDeclaration") }; -pp$1.parseWhileStatement = function(node) { +pp$8.parseWhileStatement = function(node) { this.next(); node.test = this.parseParenExpression(); this.labels.push(loopLabel); @@ -1153,7 +1161,7 @@ pp$1.parseWhileStatement = function(node) { return this.finishNode(node, "WhileStatement") }; -pp$1.parseWithStatement = function(node) { +pp$8.parseWithStatement = function(node) { if (this.strict) { this.raise(this.start, "'with' in strict mode"); } this.next(); node.object = this.parseParenExpression(); @@ -1161,12 +1169,12 @@ pp$1.parseWithStatement = function(node) { return this.finishNode(node, "WithStatement") }; -pp$1.parseEmptyStatement = function(node) { +pp$8.parseEmptyStatement = function(node) { this.next(); return this.finishNode(node, "EmptyStatement") }; -pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { +pp$8.parseLabeledStatement = function(node, maybeName, expr, context) { for (var i$1 = 0, list = this.labels; i$1 < list.length; i$1 += 1) { var label = list[i$1]; @@ -1174,7 +1182,7 @@ pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { if (label.name === maybeName) { this.raise(expr.start, "Label '" + maybeName + "' is already declared"); } } - var kind = this.type.isLoop ? "loop" : this.type === types._switch ? "switch" : null; + var kind = this.type.isLoop ? "loop" : this.type === types$1._switch ? "switch" : null; for (var i = this.labels.length - 1; i >= 0; i--) { var label$1 = this.labels[i]; if (label$1.statementStart === node.start) { @@ -1190,7 +1198,7 @@ pp$1.parseLabeledStatement = function(node, maybeName, expr, context) { return this.finishNode(node, "LabeledStatement") }; -pp$1.parseExpressionStatement = function(node, expr) { +pp$8.parseExpressionStatement = function(node, expr) { node.expression = expr; this.semicolon(); return this.finishNode(node, "ExpressionStatement") @@ -1200,14 +1208,14 @@ pp$1.parseExpressionStatement = function(node, expr) { // strict"` declarations when `allowStrict` is true (used for // function bodies). -pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { +pp$8.parseBlock = function(createNewLexicalScope, node, exitStrict) { if ( createNewLexicalScope === void 0 ) createNewLexicalScope = true; if ( node === void 0 ) node = this.startNode(); node.body = []; - this.expect(types.braceL); + this.expect(types$1.braceL); if (createNewLexicalScope) { this.enterScope(0); } - while (this.type !== types.braceR) { + while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } @@ -1221,13 +1229,13 @@ pp$1.parseBlock = function(createNewLexicalScope, node, exitStrict) { // `parseStatement` will already have parsed the init statement or // expression. -pp$1.parseFor = function(node, init) { +pp$8.parseFor = function(node, init) { node.init = init; - this.expect(types.semi); - node.test = this.type === types.semi ? null : this.parseExpression(); - this.expect(types.semi); - node.update = this.type === types.parenR ? null : this.parseExpression(); - this.expect(types.parenR); + this.expect(types$1.semi); + node.test = this.type === types$1.semi ? null : this.parseExpression(); + this.expect(types$1.semi); + node.update = this.type === types$1.parenR ? null : this.parseExpression(); + this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); @@ -1237,8 +1245,8 @@ pp$1.parseFor = function(node, init) { // Parse a `for`/`in` and `for`/`of` loop, which are almost // same from parser's perspective. -pp$1.parseForIn = function(node, init) { - var isForIn = this.type === types._in; +pp$8.parseForIn = function(node, init) { + var isForIn = this.type === types$1._in; this.next(); if ( @@ -1259,7 +1267,7 @@ pp$1.parseForIn = function(node, init) { } node.left = init; node.right = isForIn ? this.parseExpression() : this.parseMaybeAssign(); - this.expect(types.parenR); + this.expect(types$1.parenR); node.body = this.parseStatement("for"); this.exitScope(); this.labels.pop(); @@ -1268,28 +1276,28 @@ pp$1.parseForIn = function(node, init) { // Parse a list of variable declarations. -pp$1.parseVar = function(node, isFor, kind) { +pp$8.parseVar = function(node, isFor, kind) { node.declarations = []; node.kind = kind; for (;;) { var decl = this.startNode(); this.parseVarId(decl, kind); - if (this.eat(types.eq)) { + if (this.eat(types$1.eq)) { decl.init = this.parseMaybeAssign(isFor); - } else if (kind === "const" && !(this.type === types._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { + } else if (kind === "const" && !(this.type === types$1._in || (this.options.ecmaVersion >= 6 && this.isContextual("of")))) { this.unexpected(); - } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types._in || this.isContextual("of")))) { + } else if (decl.id.type !== "Identifier" && !(isFor && (this.type === types$1._in || this.isContextual("of")))) { this.raise(this.lastTokEnd, "Complex binding patterns require an initialization value"); } else { decl.init = null; } node.declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(types.comma)) { break } + if (!this.eat(types$1.comma)) { break } } return node }; -pp$1.parseVarId = function(decl, kind) { +pp$8.parseVarId = function(decl, kind) { decl.id = this.parseBindingAtom(); this.checkLValPattern(decl.id, kind === "var" ? BIND_VAR : BIND_LEXICAL, false); }; @@ -1300,18 +1308,18 @@ var FUNC_STATEMENT = 1, FUNC_HANGING_STATEMENT = 2, FUNC_NULLABLE_ID = 4; // `statement & FUNC_STATEMENT`). // Remove `allowExpressionBody` for 7.0.0, as it is only called with false -pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { +pp$8.parseFunction = function(node, statement, allowExpressionBody, isAsync, forInit) { this.initFunction(node); if (this.options.ecmaVersion >= 9 || this.options.ecmaVersion >= 6 && !isAsync) { - if (this.type === types.star && (statement & FUNC_HANGING_STATEMENT)) + if (this.type === types$1.star && (statement & FUNC_HANGING_STATEMENT)) { this.unexpected(); } - node.generator = this.eat(types.star); + node.generator = this.eat(types$1.star); } if (this.options.ecmaVersion >= 8) { node.async = !!isAsync; } if (statement & FUNC_STATEMENT) { - node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types.name ? null : this.parseIdent(); + node.id = (statement & FUNC_NULLABLE_ID) && this.type !== types$1.name ? null : this.parseIdent(); if (node.id && !(statement & FUNC_HANGING_STATEMENT)) // If it is a regular function declaration in sloppy mode, then it is // subject to Annex B semantics (BIND_FUNCTION). Otherwise, the binding @@ -1327,7 +1335,7 @@ pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, for this.enterScope(functionFlags(node.async, node.generator)); if (!(statement & FUNC_STATEMENT)) - { node.id = this.type === types.name ? this.parseIdent() : null; } + { node.id = this.type === types$1.name ? this.parseIdent() : null; } this.parseFunctionParams(node); this.parseFunctionBody(node, allowExpressionBody, false, forInit); @@ -1338,16 +1346,16 @@ pp$1.parseFunction = function(node, statement, allowExpressionBody, isAsync, for return this.finishNode(node, (statement & FUNC_STATEMENT) ? "FunctionDeclaration" : "FunctionExpression") }; -pp$1.parseFunctionParams = function(node) { - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); +pp$8.parseFunctionParams = function(node) { + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); }; // Parse a class declaration or literal (depending on the // `isStatement` parameter). -pp$1.parseClass = function(node, isStatement) { +pp$8.parseClass = function(node, isStatement) { this.next(); // ecma-262 14.6 Class Definitions @@ -1361,8 +1369,8 @@ pp$1.parseClass = function(node, isStatement) { var classBody = this.startNode(); var hadConstructor = false; classBody.body = []; - this.expect(types.braceL); - while (this.type !== types.braceR) { + this.expect(types$1.braceL); + while (this.type !== types$1.braceR) { var element = this.parseClassElement(node.superClass !== null); if (element) { classBody.body.push(element); @@ -1381,8 +1389,8 @@ pp$1.parseClass = function(node, isStatement) { return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression") }; -pp$1.parseClassElement = function(constructorAllowsSuper) { - if (this.eat(types.semi)) { return null } +pp$8.parseClassElement = function(constructorAllowsSuper) { + if (this.eat(types$1.semi)) { return null } var ecmaVersion = this.options.ecmaVersion; var node = this.startNode(); @@ -1394,11 +1402,11 @@ pp$1.parseClassElement = function(constructorAllowsSuper) { if (this.eatContextual("static")) { // Parse static init block - if (ecmaVersion >= 13 && this.eat(types.braceL)) { + if (ecmaVersion >= 13 && this.eat(types$1.braceL)) { this.parseClassStaticBlock(node); return node } - if (this.isClassElementNameStart() || this.type === types.star) { + if (this.isClassElementNameStart() || this.type === types$1.star) { isStatic = true; } else { keyName = "static"; @@ -1406,13 +1414,13 @@ pp$1.parseClassElement = function(constructorAllowsSuper) { } node.static = isStatic; if (!keyName && ecmaVersion >= 8 && this.eatContextual("async")) { - if ((this.isClassElementNameStart() || this.type === types.star) && !this.canInsertSemicolon()) { + if ((this.isClassElementNameStart() || this.type === types$1.star) && !this.canInsertSemicolon()) { isAsync = true; } else { keyName = "async"; } } - if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types.star)) { + if (!keyName && (ecmaVersion >= 9 || !isAsync) && this.eat(types$1.star)) { isGenerator = true; } if (!keyName && !isAsync && !isGenerator) { @@ -1439,7 +1447,7 @@ pp$1.parseClassElement = function(constructorAllowsSuper) { } // Parse element value - if (ecmaVersion < 13 || this.type === types.parenL || kind !== "method" || isGenerator || isAsync) { + if (ecmaVersion < 13 || this.type === types$1.parenL || kind !== "method" || isGenerator || isAsync) { var isConstructor = !node.static && checkKeyName(node, "constructor"); var allowsDirectSuper = isConstructor && constructorAllowsSuper; // Couldn't move this check into the 'parseClassMethod' method for backward compatibility. @@ -1453,19 +1461,19 @@ pp$1.parseClassElement = function(constructorAllowsSuper) { return node }; -pp$1.isClassElementNameStart = function() { +pp$8.isClassElementNameStart = function() { return ( - this.type === types.name || - this.type === types.privateId || - this.type === types.num || - this.type === types.string || - this.type === types.bracketL || + this.type === types$1.name || + this.type === types$1.privateId || + this.type === types$1.num || + this.type === types$1.string || + this.type === types$1.bracketL || this.type.keyword ) }; -pp$1.parseClassElementName = function(element) { - if (this.type === types.privateId) { +pp$8.parseClassElementName = function(element) { + if (this.type === types$1.privateId) { if (this.value === "constructor") { this.raise(this.start, "Classes can't have an element named '#constructor'"); } @@ -1476,7 +1484,7 @@ pp$1.parseClassElementName = function(element) { } }; -pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { +pp$8.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper) { // Check key and flags var key = method.key; if (method.kind === "constructor") { @@ -1500,14 +1508,14 @@ pp$1.parseClassMethod = function(method, isGenerator, isAsync, allowsDirectSuper return this.finishNode(method, "MethodDefinition") }; -pp$1.parseClassField = function(field) { +pp$8.parseClassField = function(field) { if (checkKeyName(field, "constructor")) { this.raise(field.key.start, "Classes can't have a field named 'constructor'"); } else if (field.static && checkKeyName(field, "prototype")) { this.raise(field.key.start, "Classes can't have a static field named 'prototype'"); } - if (this.eat(types.eq)) { + if (this.eat(types$1.eq)) { // To raise SyntaxError if 'arguments' exists in the initializer. var scope = this.currentThisScope(); var inClassFieldInit = scope.inClassFieldInit; @@ -1522,13 +1530,13 @@ pp$1.parseClassField = function(field) { return this.finishNode(field, "PropertyDefinition") }; -pp$1.parseClassStaticBlock = function(node) { +pp$8.parseClassStaticBlock = function(node) { node.body = []; var oldLabels = this.labels; this.labels = []; this.enterScope(SCOPE_CLASS_STATIC_BLOCK | SCOPE_SUPER); - while (this.type !== types.braceR) { + while (this.type !== types$1.braceR) { var stmt = this.parseStatement(null); node.body.push(stmt); } @@ -1539,8 +1547,8 @@ pp$1.parseClassStaticBlock = function(node) { return this.finishNode(node, "StaticBlock") }; -pp$1.parseClassId = function(node, isStatement) { - if (this.type === types.name) { +pp$8.parseClassId = function(node, isStatement) { + if (this.type === types$1.name) { node.id = this.parseIdent(); if (isStatement) { this.checkLValSimple(node.id, BIND_LEXICAL, false); } @@ -1551,17 +1559,17 @@ pp$1.parseClassId = function(node, isStatement) { } }; -pp$1.parseClassSuper = function(node) { - node.superClass = this.eat(types._extends) ? this.parseExprSubscripts(false) : null; +pp$8.parseClassSuper = function(node) { + node.superClass = this.eat(types$1._extends) ? this.parseExprSubscripts(false) : null; }; -pp$1.enterClassBody = function() { +pp$8.enterClassBody = function() { var element = {declared: Object.create(null), used: []}; this.privateNameStack.push(element); return element.declared }; -pp$1.exitClassBody = function() { +pp$8.exitClassBody = function() { var ref = this.privateNameStack.pop(); var declared = ref.declared; var used = ref.used; @@ -1616,10 +1624,10 @@ function checkKeyName(node, name) { // Parses module export declaration. -pp$1.parseExport = function(node, exports) { +pp$8.parseExport = function(node, exports) { this.next(); // export * from '...' - if (this.eat(types.star)) { + if (this.eat(types$1.star)) { if (this.options.ecmaVersion >= 11) { if (this.eatContextual("as")) { node.exported = this.parseIdent(true); @@ -1629,20 +1637,20 @@ pp$1.parseExport = function(node, exports) { } } this.expectContextual("from"); - if (this.type !== types.string) { this.unexpected(); } + if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); this.semicolon(); return this.finishNode(node, "ExportAllDeclaration") } - if (this.eat(types._default)) { // export default ... + if (this.eat(types$1._default)) { // export default ... this.checkExport(exports, "default", this.lastTokStart); var isAsync; - if (this.type === types._function || (isAsync = this.isAsyncFunction())) { + if (this.type === types$1._function || (isAsync = this.isAsyncFunction())) { var fNode = this.startNode(); this.next(); if (isAsync) { this.next(); } node.declaration = this.parseFunction(fNode, FUNC_STATEMENT | FUNC_NULLABLE_ID, false, isAsync); - } else if (this.type === types._class) { + } else if (this.type === types$1._class) { var cNode = this.startNode(); node.declaration = this.parseClass(cNode, "nullableID"); } else { @@ -1664,7 +1672,7 @@ pp$1.parseExport = function(node, exports) { node.declaration = null; node.specifiers = this.parseExportSpecifiers(exports); if (this.eatContextual("from")) { - if (this.type !== types.string) { this.unexpected(); } + if (this.type !== types$1.string) { this.unexpected(); } node.source = this.parseExprAtom(); } else { for (var i = 0, list = node.specifiers; i < list.length; i += 1) { @@ -1683,14 +1691,14 @@ pp$1.parseExport = function(node, exports) { return this.finishNode(node, "ExportNamedDeclaration") }; -pp$1.checkExport = function(exports, name, pos) { +pp$8.checkExport = function(exports, name, pos) { if (!exports) { return } if (has(exports, name)) { this.raiseRecoverable(pos, "Duplicate export '" + name + "'"); } exports[name] = true; }; -pp$1.checkPatternExport = function(exports, pat) { +pp$8.checkPatternExport = function(exports, pat) { var type = pat.type; if (type === "Identifier") { this.checkExport(exports, pat.name, pat.start); } @@ -1717,7 +1725,7 @@ pp$1.checkPatternExport = function(exports, pat) { { this.checkPatternExport(exports, pat.expression); } }; -pp$1.checkVariableExport = function(exports, decls) { +pp$8.checkVariableExport = function(exports, decls) { if (!exports) { return } for (var i = 0, list = decls; i < list.length; i += 1) { @@ -1727,7 +1735,7 @@ pp$1.checkVariableExport = function(exports, decls) { } }; -pp$1.shouldParseExportStatement = function() { +pp$8.shouldParseExportStatement = function() { return this.type.keyword === "var" || this.type.keyword === "const" || this.type.keyword === "class" || @@ -1738,14 +1746,14 @@ pp$1.shouldParseExportStatement = function() { // Parses a comma-separated list of module exports. -pp$1.parseExportSpecifiers = function(exports) { +pp$8.parseExportSpecifiers = function(exports) { var nodes = [], first = true; // export { x, y as z } [from '...'] - this.expect(types.braceL); - while (!this.eat(types.braceR)) { + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var node = this.startNode(); @@ -1759,16 +1767,16 @@ pp$1.parseExportSpecifiers = function(exports) { // Parses import declaration. -pp$1.parseImport = function(node) { +pp$8.parseImport = function(node) { this.next(); // import '...' - if (this.type === types.string) { - node.specifiers = empty; + if (this.type === types$1.string) { + node.specifiers = empty$1; node.source = this.parseExprAtom(); } else { node.specifiers = this.parseImportSpecifiers(); this.expectContextual("from"); - node.source = this.type === types.string ? this.parseExprAtom() : this.unexpected(); + node.source = this.type === types$1.string ? this.parseExprAtom() : this.unexpected(); } this.semicolon(); return this.finishNode(node, "ImportDeclaration") @@ -1776,17 +1784,17 @@ pp$1.parseImport = function(node) { // Parses a comma-separated list of module imports. -pp$1.parseImportSpecifiers = function() { +pp$8.parseImportSpecifiers = function() { var nodes = [], first = true; - if (this.type === types.name) { + if (this.type === types$1.name) { // import defaultObj, { x, y as z } from '...' var node = this.startNode(); node.local = this.parseIdent(); this.checkLValSimple(node.local, BIND_LEXICAL); nodes.push(this.finishNode(node, "ImportDefaultSpecifier")); - if (!this.eat(types.comma)) { return nodes } + if (!this.eat(types$1.comma)) { return nodes } } - if (this.type === types.star) { + if (this.type === types$1.star) { var node$1 = this.startNode(); this.next(); this.expectContextual("as"); @@ -1795,11 +1803,11 @@ pp$1.parseImportSpecifiers = function() { nodes.push(this.finishNode(node$1, "ImportNamespaceSpecifier")); return nodes } - this.expect(types.braceL); - while (!this.eat(types.braceR)) { + this.expect(types$1.braceL); + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var node$2 = this.startNode(); @@ -1817,12 +1825,12 @@ pp$1.parseImportSpecifiers = function() { }; // Set `ExpressionStatement#directive` property for directive prologues. -pp$1.adaptDirectivePrologue = function(statements) { +pp$8.adaptDirectivePrologue = function(statements) { for (var i = 0; i < statements.length && this.isDirectiveCandidate(statements[i]); ++i) { statements[i].directive = statements[i].expression.raw.slice(1, -1); } }; -pp$1.isDirectiveCandidate = function(statement) { +pp$8.isDirectiveCandidate = function(statement) { return ( statement.type === "ExpressionStatement" && statement.expression.type === "Literal" && @@ -1832,12 +1840,12 @@ pp$1.isDirectiveCandidate = function(statement) { ) }; -var pp$2 = Parser.prototype; +var pp$7 = Parser.prototype; // Convert existing expression atom to assignable pattern // if possible. -pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { +pp$7.toAssignable = function(node, isBinding, refDestructuringErrors) { if (this.options.ecmaVersion >= 6 && node) { switch (node.type) { case "Identifier": @@ -1918,7 +1926,7 @@ pp$2.toAssignable = function(node, isBinding, refDestructuringErrors) { // Convert list of expression atoms to binding list. -pp$2.toAssignableList = function(exprList, isBinding) { +pp$7.toAssignableList = function(exprList, isBinding) { var end = exprList.length; for (var i = 0; i < end; i++) { var elt = exprList[i]; @@ -1934,19 +1942,19 @@ pp$2.toAssignableList = function(exprList, isBinding) { // Parses spread element. -pp$2.parseSpread = function(refDestructuringErrors) { +pp$7.parseSpread = function(refDestructuringErrors) { var node = this.startNode(); this.next(); node.argument = this.parseMaybeAssign(false, refDestructuringErrors); return this.finishNode(node, "SpreadElement") }; -pp$2.parseRestBinding = function() { +pp$7.parseRestBinding = function() { var node = this.startNode(); this.next(); // RestElement inside of a function parameter must be an identifier - if (this.options.ecmaVersion === 6 && this.type !== types.name) + if (this.options.ecmaVersion === 6 && this.type !== types$1.name) { this.unexpected(); } node.argument = this.parseBindingAtom(); @@ -1956,36 +1964,36 @@ pp$2.parseRestBinding = function() { // Parses lvalue (assignable) atom. -pp$2.parseBindingAtom = function() { +pp$7.parseBindingAtom = function() { if (this.options.ecmaVersion >= 6) { switch (this.type) { - case types.bracketL: + case types$1.bracketL: var node = this.startNode(); this.next(); - node.elements = this.parseBindingList(types.bracketR, true, true); + node.elements = this.parseBindingList(types$1.bracketR, true, true); return this.finishNode(node, "ArrayPattern") - case types.braceL: + case types$1.braceL: return this.parseObj(true) } } return this.parseIdent() }; -pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { +pp$7.parseBindingList = function(close, allowEmpty, allowTrailingComma) { var elts = [], first = true; while (!this.eat(close)) { if (first) { first = false; } - else { this.expect(types.comma); } - if (allowEmpty && this.type === types.comma) { + else { this.expect(types$1.comma); } + if (allowEmpty && this.type === types$1.comma) { elts.push(null); } else if (allowTrailingComma && this.afterTrailingComma(close)) { break - } else if (this.type === types.ellipsis) { + } else if (this.type === types$1.ellipsis) { var rest = this.parseRestBinding(); this.parseBindingListItem(rest); elts.push(rest); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } this.expect(close); break } else { @@ -1997,15 +2005,15 @@ pp$2.parseBindingList = function(close, allowEmpty, allowTrailingComma) { return elts }; -pp$2.parseBindingListItem = function(param) { +pp$7.parseBindingListItem = function(param) { return param }; // Parses assignment pattern around given atom if possible. -pp$2.parseMaybeDefault = function(startPos, startLoc, left) { +pp$7.parseMaybeDefault = function(startPos, startLoc, left) { left = left || this.parseBindingAtom(); - if (this.options.ecmaVersion < 6 || !this.eat(types.eq)) { return left } + if (this.options.ecmaVersion < 6 || !this.eat(types$1.eq)) { return left } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.right = this.parseMaybeAssign(); @@ -2076,7 +2084,7 @@ pp$2.parseMaybeDefault = function(startPos, startLoc, left) { // duplicate argument names. checkClashes is ignored if the provided construct // is an assignment (i.e., bindingType is BIND_NONE). -pp$2.checkLValSimple = function(expr, bindingType, checkClashes) { +pp$7.checkLValSimple = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; var isBind = bindingType !== BIND_NONE; @@ -2114,7 +2122,7 @@ pp$2.checkLValSimple = function(expr, bindingType, checkClashes) { } }; -pp$2.checkLValPattern = function(expr, bindingType, checkClashes) { +pp$7.checkLValPattern = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; switch (expr.type) { @@ -2139,7 +2147,7 @@ pp$2.checkLValPattern = function(expr, bindingType, checkClashes) { } }; -pp$2.checkLValInnerPattern = function(expr, bindingType, checkClashes) { +pp$7.checkLValInnerPattern = function(expr, bindingType, checkClashes) { if ( bindingType === void 0 ) bindingType = BIND_NONE; switch (expr.type) { @@ -2171,7 +2179,7 @@ var TokContext = function TokContext(token, isExpr, preserveSpace, override, gen this.generator = !!generator; }; -var types$1 = { +var types = { b_stat: new TokContext("{", false), b_expr: new TokContext("{", true), b_tmpl: new TokContext("${", false), @@ -2184,38 +2192,38 @@ var types$1 = { f_gen: new TokContext("function", false, false, null, true) }; -var pp$3 = Parser.prototype; +var pp$6 = Parser.prototype; -pp$3.initialContext = function() { - return [types$1.b_stat] +pp$6.initialContext = function() { + return [types.b_stat] }; -pp$3.curContext = function() { +pp$6.curContext = function() { return this.context[this.context.length - 1] }; -pp$3.braceIsBlock = function(prevType) { +pp$6.braceIsBlock = function(prevType) { var parent = this.curContext(); - if (parent === types$1.f_expr || parent === types$1.f_stat) + if (parent === types.f_expr || parent === types.f_stat) { return true } - if (prevType === types.colon && (parent === types$1.b_stat || parent === types$1.b_expr)) + if (prevType === types$1.colon && (parent === types.b_stat || parent === types.b_expr)) { return !parent.isExpr } // The check for `tt.name && exprAllowed` detects whether we are // after a `yield` or `of` construct. See the `updateContext` for // `tt.name`. - if (prevType === types._return || prevType === types.name && this.exprAllowed) + if (prevType === types$1._return || prevType === types$1.name && this.exprAllowed) { return lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) } - if (prevType === types._else || prevType === types.semi || prevType === types.eof || prevType === types.parenR || prevType === types.arrow) + if (prevType === types$1._else || prevType === types$1.semi || prevType === types$1.eof || prevType === types$1.parenR || prevType === types$1.arrow) { return true } - if (prevType === types.braceL) - { return parent === types$1.b_stat } - if (prevType === types._var || prevType === types._const || prevType === types.name) + if (prevType === types$1.braceL) + { return parent === types.b_stat } + if (prevType === types$1._var || prevType === types$1._const || prevType === types$1.name) { return false } return !this.exprAllowed }; -pp$3.inGeneratorContext = function() { +pp$6.inGeneratorContext = function() { for (var i = this.context.length - 1; i >= 1; i--) { var context = this.context[i]; if (context.token === "function") @@ -2224,9 +2232,9 @@ pp$3.inGeneratorContext = function() { return false }; -pp$3.updateContext = function(prevType) { +pp$6.updateContext = function(prevType) { var update, type = this.type; - if (type.keyword && prevType === types.dot) + if (type.keyword && prevType === types$1.dot) { this.exprAllowed = false; } else if (update = type.updateContext) { update.call(this, prevType); } @@ -2235,7 +2243,7 @@ pp$3.updateContext = function(prevType) { }; // Used to handle egde case when token context could not be inferred correctly in tokenize phase -pp$3.overrideContext = function(tokenCtx) { +pp$6.overrideContext = function(tokenCtx) { if (this.curContext() !== tokenCtx) { this.context[this.context.length - 1] = tokenCtx; } @@ -2243,71 +2251,71 @@ pp$3.overrideContext = function(tokenCtx) { // Token-specific context update code -types.parenR.updateContext = types.braceR.updateContext = function() { +types$1.parenR.updateContext = types$1.braceR.updateContext = function() { if (this.context.length === 1) { this.exprAllowed = true; return } var out = this.context.pop(); - if (out === types$1.b_stat && this.curContext().token === "function") { + if (out === types.b_stat && this.curContext().token === "function") { out = this.context.pop(); } this.exprAllowed = !out.isExpr; }; -types.braceL.updateContext = function(prevType) { - this.context.push(this.braceIsBlock(prevType) ? types$1.b_stat : types$1.b_expr); +types$1.braceL.updateContext = function(prevType) { + this.context.push(this.braceIsBlock(prevType) ? types.b_stat : types.b_expr); this.exprAllowed = true; }; -types.dollarBraceL.updateContext = function() { - this.context.push(types$1.b_tmpl); +types$1.dollarBraceL.updateContext = function() { + this.context.push(types.b_tmpl); this.exprAllowed = true; }; -types.parenL.updateContext = function(prevType) { - var statementParens = prevType === types._if || prevType === types._for || prevType === types._with || prevType === types._while; - this.context.push(statementParens ? types$1.p_stat : types$1.p_expr); +types$1.parenL.updateContext = function(prevType) { + var statementParens = prevType === types$1._if || prevType === types$1._for || prevType === types$1._with || prevType === types$1._while; + this.context.push(statementParens ? types.p_stat : types.p_expr); this.exprAllowed = true; }; -types.incDec.updateContext = function() { +types$1.incDec.updateContext = function() { // tokExprAllowed stays unchanged }; -types._function.updateContext = types._class.updateContext = function(prevType) { - if (prevType.beforeExpr && prevType !== types._else && - !(prevType === types.semi && this.curContext() !== types$1.p_stat) && - !(prevType === types._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && - !((prevType === types.colon || prevType === types.braceL) && this.curContext() === types$1.b_stat)) - { this.context.push(types$1.f_expr); } +types$1._function.updateContext = types$1._class.updateContext = function(prevType) { + if (prevType.beforeExpr && prevType !== types$1._else && + !(prevType === types$1.semi && this.curContext() !== types.p_stat) && + !(prevType === types$1._return && lineBreak.test(this.input.slice(this.lastTokEnd, this.start))) && + !((prevType === types$1.colon || prevType === types$1.braceL) && this.curContext() === types.b_stat)) + { this.context.push(types.f_expr); } else - { this.context.push(types$1.f_stat); } + { this.context.push(types.f_stat); } this.exprAllowed = false; }; -types.backQuote.updateContext = function() { - if (this.curContext() === types$1.q_tmpl) +types$1.backQuote.updateContext = function() { + if (this.curContext() === types.q_tmpl) { this.context.pop(); } else - { this.context.push(types$1.q_tmpl); } + { this.context.push(types.q_tmpl); } this.exprAllowed = false; }; -types.star.updateContext = function(prevType) { - if (prevType === types._function) { +types$1.star.updateContext = function(prevType) { + if (prevType === types$1._function) { var index = this.context.length - 1; - if (this.context[index] === types$1.f_expr) - { this.context[index] = types$1.f_expr_gen; } + if (this.context[index] === types.f_expr) + { this.context[index] = types.f_expr_gen; } else - { this.context[index] = types$1.f_gen; } + { this.context[index] = types.f_gen; } } this.exprAllowed = true; }; -types.name.updateContext = function(prevType) { +types$1.name.updateContext = function(prevType) { var allowed = false; - if (this.options.ecmaVersion >= 6 && prevType !== types.dot) { + if (this.options.ecmaVersion >= 6 && prevType !== types$1.dot) { if (this.value === "of" && !this.exprAllowed || this.value === "yield" && this.inGeneratorContext()) { allowed = true; } @@ -2317,14 +2325,14 @@ types.name.updateContext = function(prevType) { // A recursive descent parser operates by defining functions for all -var pp$4 = Parser.prototype; +var pp$5 = Parser.prototype; // Check if property name clashes with already added. // Object/class getters and setters are not allowed to clash — // either with each other or with an init property — and in // strict mode, init properties are also not allowed to be repeated. -pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) { +pp$5.checkPropClash = function(prop, propHash, refDestructuringErrors) { if (this.options.ecmaVersion >= 9 && prop.type === "SpreadElement") { return } if (this.options.ecmaVersion >= 6 && (prop.computed || prop.method || prop.shorthand)) @@ -2341,10 +2349,12 @@ pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) { if (name === "__proto__" && kind === "init") { if (propHash.proto) { if (refDestructuringErrors) { - if (refDestructuringErrors.doubleProto < 0) - { refDestructuringErrors.doubleProto = key.start; } - // Backwards-compat kludge. Can be removed in version 6.0 - } else { this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); } + if (refDestructuringErrors.doubleProto < 0) { + refDestructuringErrors.doubleProto = key.start; + } + } else { + this.raiseRecoverable(key.start, "Redefinition of __proto__ property"); + } } propHash.proto = true; } @@ -2386,13 +2396,13 @@ pp$4.checkPropClash = function(prop, propHash, refDestructuringErrors) { // and object pattern might appear (so it's possible to raise // delayed syntax error at correct position). -pp$4.parseExpression = function(forInit, refDestructuringErrors) { +pp$5.parseExpression = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeAssign(forInit, refDestructuringErrors); - if (this.type === types.comma) { + if (this.type === types$1.comma) { var node = this.startNodeAt(startPos, startLoc); node.expressions = [expr]; - while (this.eat(types.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } + while (this.eat(types$1.comma)) { node.expressions.push(this.parseMaybeAssign(forInit, refDestructuringErrors)); } return this.finishNode(node, "SequenceExpression") } return expr @@ -2401,7 +2411,7 @@ pp$4.parseExpression = function(forInit, refDestructuringErrors) { // Parse an assignment expression. This includes applications of // operators like `+=`. -pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { +pp$5.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse) { if (this.isContextual("yield")) { if (this.inGenerator) { return this.parseYield(forInit) } // The tokenizer will assume an expression is allowed after @@ -2409,10 +2419,11 @@ pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse else { this.exprAllowed = false; } } - var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1; + var ownDestructuringErrors = false, oldParenAssign = -1, oldTrailingComma = -1, oldDoubleProto = -1; if (refDestructuringErrors) { oldParenAssign = refDestructuringErrors.parenthesizedAssign; oldTrailingComma = refDestructuringErrors.trailingComma; + oldDoubleProto = refDestructuringErrors.doubleProto; refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = -1; } else { refDestructuringErrors = new DestructuringErrors; @@ -2420,7 +2431,7 @@ pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse } var startPos = this.start, startLoc = this.startLoc; - if (this.type === types.parenL || this.type === types.name) { + if (this.type === types$1.parenL || this.type === types$1.name) { this.potentialArrowAt = this.start; this.potentialArrowInForAwait = forInit === "await"; } @@ -2429,20 +2440,21 @@ pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse if (this.type.isAssign) { var node = this.startNodeAt(startPos, startLoc); node.operator = this.value; - if (this.type === types.eq) + if (this.type === types$1.eq) { left = this.toAssignable(left, false, refDestructuringErrors); } if (!ownDestructuringErrors) { refDestructuringErrors.parenthesizedAssign = refDestructuringErrors.trailingComma = refDestructuringErrors.doubleProto = -1; } if (refDestructuringErrors.shorthandAssign >= left.start) { refDestructuringErrors.shorthandAssign = -1; } // reset because shorthand default was used correctly - if (this.type === types.eq) + if (this.type === types$1.eq) { this.checkLValPattern(left); } else { this.checkLValSimple(left); } node.left = left; this.next(); node.right = this.parseMaybeAssign(forInit); + if (oldDoubleProto > -1) { refDestructuringErrors.doubleProto = oldDoubleProto; } return this.finishNode(node, "AssignmentExpression") } else { if (ownDestructuringErrors) { this.checkExpressionErrors(refDestructuringErrors, true); } @@ -2454,15 +2466,15 @@ pp$4.parseMaybeAssign = function(forInit, refDestructuringErrors, afterLeftParse // Parse a ternary conditional (`?:`) operator. -pp$4.parseMaybeConditional = function(forInit, refDestructuringErrors) { +pp$5.parseMaybeConditional = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprOps(forInit, refDestructuringErrors); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } - if (this.eat(types.question)) { + if (this.eat(types$1.question)) { var node = this.startNodeAt(startPos, startLoc); node.test = expr; node.consequent = this.parseMaybeAssign(); - this.expect(types.colon); + this.expect(types$1.colon); node.alternate = this.parseMaybeAssign(forInit); return this.finishNode(node, "ConditionalExpression") } @@ -2471,7 +2483,7 @@ pp$4.parseMaybeConditional = function(forInit, refDestructuringErrors) { // Start the precedence parser. -pp$4.parseExprOps = function(forInit, refDestructuringErrors) { +pp$5.parseExprOps = function(forInit, refDestructuringErrors) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseMaybeUnary(refDestructuringErrors, false, false, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } @@ -2484,23 +2496,23 @@ pp$4.parseExprOps = function(forInit, refDestructuringErrors) { // defer further parser to one of its callers when it encounters an // operator that has a lower precedence than the set it is parsing. -pp$4.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { +pp$5.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) { var prec = this.type.binop; - if (prec != null && (!forInit || this.type !== types._in)) { + if (prec != null && (!forInit || this.type !== types$1._in)) { if (prec > minPrec) { - var logical = this.type === types.logicalOR || this.type === types.logicalAND; - var coalesce = this.type === types.coalesce; + var logical = this.type === types$1.logicalOR || this.type === types$1.logicalAND; + var coalesce = this.type === types$1.coalesce; if (coalesce) { // Handle the precedence of `tt.coalesce` as equal to the range of logical expressions. // In other words, `node.right` shouldn't contain logical expressions in order to check the mixed error. - prec = types.logicalAND.binop; + prec = types$1.logicalAND.binop; } var op = this.value; this.next(); var startPos = this.start, startLoc = this.startLoc; var right = this.parseExprOp(this.parseMaybeUnary(null, false, false, forInit), startPos, startLoc, prec, forInit); var node = this.buildBinary(leftStartPos, leftStartLoc, left, right, op, logical || coalesce); - if ((logical && this.type === types.coalesce) || (coalesce && (this.type === types.logicalOR || this.type === types.logicalAND))) { + if ((logical && this.type === types$1.coalesce) || (coalesce && (this.type === types$1.logicalOR || this.type === types$1.logicalAND))) { this.raiseRecoverable(this.start, "Logical expressions and coalesce expressions cannot be mixed. Wrap either by parentheses"); } return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec, forInit) @@ -2509,7 +2521,8 @@ pp$4.parseExprOp = function(left, leftStartPos, leftStartLoc, minPrec, forInit) return left }; -pp$4.buildBinary = function(startPos, startLoc, left, right, op, logical) { +pp$5.buildBinary = function(startPos, startLoc, left, right, op, logical) { + if (right.type === "PrivateIdentifier") { this.raise(right.start, "Private identifier can only be left side of binary expression"); } var node = this.startNodeAt(startPos, startLoc); node.left = left; node.operator = op; @@ -2519,13 +2532,13 @@ pp$4.buildBinary = function(startPos, startLoc, left, right, op, logical) { // Parse unary operators, both prefix and postfix. -pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { +pp$5.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forInit) { var startPos = this.start, startLoc = this.startLoc, expr; if (this.isContextual("await") && this.canAwait) { expr = this.parseAwait(forInit); sawUnary = true; } else if (this.type.prefix) { - var node = this.startNode(), update = this.type === types.incDec; + var node = this.startNode(), update = this.type === types$1.incDec; node.operator = this.value; node.prefix = true; this.next(); @@ -2539,6 +2552,11 @@ pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forIni { this.raiseRecoverable(node.start, "Private fields can not be deleted"); } else { sawUnary = true; } expr = this.finishNode(node, update ? "UpdateExpression" : "UnaryExpression"); + } else if (!sawUnary && this.type === types$1.privateId) { + if (forInit || this.privateNameStack.length === 0) { this.unexpected(); } + expr = this.parsePrivateIdent(); + // only could be private fields in 'in', such as #x in obj + if (this.type !== types$1._in) { this.unexpected(); } } else { expr = this.parseExprSubscripts(refDestructuringErrors, forInit); if (this.checkExpressionErrors(refDestructuringErrors)) { return expr } @@ -2553,7 +2571,7 @@ pp$4.parseMaybeUnary = function(refDestructuringErrors, sawUnary, incDec, forIni } } - if (!incDec && this.eat(types.starstar)) { + if (!incDec && this.eat(types$1.starstar)) { if (sawUnary) { this.unexpected(this.lastTokStart); } else @@ -2572,7 +2590,7 @@ function isPrivateFieldAccess(node) { // Parse call, dot, and `[]`-subscript expressions. -pp$4.parseExprSubscripts = function(refDestructuringErrors, forInit) { +pp$5.parseExprSubscripts = function(refDestructuringErrors, forInit) { var startPos = this.start, startLoc = this.startLoc; var expr = this.parseExprAtom(refDestructuringErrors, forInit); if (expr.type === "ArrowFunctionExpression" && this.input.slice(this.lastTokStart, this.lastTokEnd) !== ")") @@ -2586,7 +2604,7 @@ pp$4.parseExprSubscripts = function(refDestructuringErrors, forInit) { return result }; -pp$4.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { +pp$5.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { var maybeAsyncArrow = this.options.ecmaVersion >= 8 && base.type === "Identifier" && base.name === "async" && this.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && this.potentialArrowAt === base.start; @@ -2609,19 +2627,19 @@ pp$4.parseSubscripts = function(base, startPos, startLoc, noCalls, forInit) { } }; -pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { +pp$5.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArrow, optionalChained, forInit) { var optionalSupported = this.options.ecmaVersion >= 11; - var optional = optionalSupported && this.eat(types.questionDot); + var optional = optionalSupported && this.eat(types$1.questionDot); if (noCalls && optional) { this.raise(this.lastTokStart, "Optional chaining cannot appear in the callee of new expressions"); } - var computed = this.eat(types.bracketL); - if (computed || (optional && this.type !== types.parenL && this.type !== types.backQuote) || this.eat(types.dot)) { + var computed = this.eat(types$1.bracketL); + if (computed || (optional && this.type !== types$1.parenL && this.type !== types$1.backQuote) || this.eat(types$1.dot)) { var node = this.startNodeAt(startPos, startLoc); node.object = base; if (computed) { node.property = this.parseExpression(); - this.expect(types.bracketR); - } else if (this.type === types.privateId && base.type !== "Super") { + this.expect(types$1.bracketR); + } else if (this.type === types$1.privateId && base.type !== "Super") { node.property = this.parsePrivateIdent(); } else { node.property = this.parseIdent(this.options.allowReserved !== "never"); @@ -2631,13 +2649,13 @@ pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArro node.optional = optional; } base = this.finishNode(node, "MemberExpression"); - } else if (!noCalls && this.eat(types.parenL)) { + } else if (!noCalls && this.eat(types$1.parenL)) { var refDestructuringErrors = new DestructuringErrors, oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.yieldPos = 0; this.awaitPos = 0; this.awaitIdentPos = 0; - var exprList = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); - if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types.arrow)) { + var exprList = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false, refDestructuringErrors); + if (maybeAsyncArrow && !optional && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); if (this.awaitIdentPos > 0) @@ -2658,7 +2676,7 @@ pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArro node$1.optional = optional; } base = this.finishNode(node$1, "CallExpression"); - } else if (this.type === types.backQuote) { + } else if (this.type === types$1.backQuote) { if (optional || optionalChained) { this.raise(this.start, "Optional chaining cannot appear in the tag of tagged template expressions"); } @@ -2675,19 +2693,19 @@ pp$4.parseSubscript = function(base, startPos, startLoc, noCalls, maybeAsyncArro // `new`, or an expression wrapped in punctuation like `()`, `[]`, // or `{}`. -pp$4.parseExprAtom = function(refDestructuringErrors, forInit) { +pp$5.parseExprAtom = function(refDestructuringErrors, forInit) { // If a division operator appears in an expression position, the // tokenizer got confused, and we force it to read a regexp instead. - if (this.type === types.slash) { this.readRegexp(); } + if (this.type === types$1.slash) { this.readRegexp(); } var node, canBeArrow = this.potentialArrowAt === this.start; switch (this.type) { - case types._super: + case types$1._super: if (!this.allowSuper) { this.raise(this.start, "'super' keyword outside a method"); } node = this.startNode(); this.next(); - if (this.type === types.parenL && !this.allowDirectSuper) + if (this.type === types$1.parenL && !this.allowDirectSuper) { this.raise(node.start, "super() call outside constructor of a subclass"); } // The `super` keyword can appear at below: // SuperProperty: @@ -2695,52 +2713,52 @@ pp$4.parseExprAtom = function(refDestructuringErrors, forInit) { // super . IdentifierName // SuperCall: // super ( Arguments ) - if (this.type !== types.dot && this.type !== types.bracketL && this.type !== types.parenL) + if (this.type !== types$1.dot && this.type !== types$1.bracketL && this.type !== types$1.parenL) { this.unexpected(); } return this.finishNode(node, "Super") - case types._this: + case types$1._this: node = this.startNode(); this.next(); return this.finishNode(node, "ThisExpression") - case types.name: + case types$1.name: var startPos = this.start, startLoc = this.startLoc, containsEsc = this.containsEsc; var id = this.parseIdent(false); - if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types._function)) { - this.overrideContext(types$1.f_expr); + if (this.options.ecmaVersion >= 8 && !containsEsc && id.name === "async" && !this.canInsertSemicolon() && this.eat(types$1._function)) { + this.overrideContext(types.f_expr); return this.parseFunction(this.startNodeAt(startPos, startLoc), 0, false, true, forInit) } if (canBeArrow && !this.canInsertSemicolon()) { - if (this.eat(types.arrow)) + if (this.eat(types$1.arrow)) { return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], false, forInit) } - if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types.name && !containsEsc && + if (this.options.ecmaVersion >= 8 && id.name === "async" && this.type === types$1.name && !containsEsc && (!this.potentialArrowInForAwait || this.value !== "of" || this.containsEsc)) { id = this.parseIdent(false); - if (this.canInsertSemicolon() || !this.eat(types.arrow)) + if (this.canInsertSemicolon() || !this.eat(types$1.arrow)) { this.unexpected(); } return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), [id], true, forInit) } } return id - case types.regexp: + case types$1.regexp: var value = this.value; node = this.parseLiteral(value.value); node.regex = {pattern: value.pattern, flags: value.flags}; return node - case types.num: case types.string: + case types$1.num: case types$1.string: return this.parseLiteral(this.value) - case types._null: case types._true: case types._false: + case types$1._null: case types$1._true: case types$1._false: node = this.startNode(); - node.value = this.type === types._null ? null : this.type === types._true; + node.value = this.type === types$1._null ? null : this.type === types$1._true; node.raw = this.type.keyword; this.next(); return this.finishNode(node, "Literal") - case types.parenL: + case types$1.parenL: var start = this.start, expr = this.parseParenAndDistinguishExpression(canBeArrow, forInit); if (refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0 && !this.isSimpleAssignTarget(expr)) @@ -2750,31 +2768,31 @@ pp$4.parseExprAtom = function(refDestructuringErrors, forInit) { } return expr - case types.bracketL: + case types$1.bracketL: node = this.startNode(); this.next(); - node.elements = this.parseExprList(types.bracketR, true, true, refDestructuringErrors); + node.elements = this.parseExprList(types$1.bracketR, true, true, refDestructuringErrors); return this.finishNode(node, "ArrayExpression") - case types.braceL: - this.overrideContext(types$1.b_expr); + case types$1.braceL: + this.overrideContext(types.b_expr); return this.parseObj(false, refDestructuringErrors) - case types._function: + case types$1._function: node = this.startNode(); this.next(); return this.parseFunction(node, 0) - case types._class: + case types$1._class: return this.parseClass(this.startNode(), false) - case types._new: + case types$1._new: return this.parseNew() - case types.backQuote: + case types$1.backQuote: return this.parseTemplate() - case types._import: + case types$1._import: if (this.options.ecmaVersion >= 11) { return this.parseExprImport() } else { @@ -2786,7 +2804,7 @@ pp$4.parseExprAtom = function(refDestructuringErrors, forInit) { } }; -pp$4.parseExprImport = function() { +pp$5.parseExprImport = function() { var node = this.startNode(); // Consume `import` as an identifier for `import.meta`. @@ -2795,9 +2813,9 @@ pp$4.parseExprImport = function() { var meta = this.parseIdent(true); switch (this.type) { - case types.parenL: + case types$1.parenL: return this.parseDynamicImport(node) - case types.dot: + case types$1.dot: node.meta = meta; return this.parseImportMeta(node) default: @@ -2805,16 +2823,16 @@ pp$4.parseExprImport = function() { } }; -pp$4.parseDynamicImport = function(node) { +pp$5.parseDynamicImport = function(node) { this.next(); // skip `(` // Parse node.source. node.source = this.parseMaybeAssign(); // Verify ending. - if (!this.eat(types.parenR)) { + if (!this.eat(types$1.parenR)) { var errorPos = this.start; - if (this.eat(types.comma) && this.eat(types.parenR)) { + if (this.eat(types$1.comma) && this.eat(types$1.parenR)) { this.raiseRecoverable(errorPos, "Trailing comma is not allowed in import()"); } else { this.unexpected(errorPos); @@ -2824,7 +2842,7 @@ pp$4.parseDynamicImport = function(node) { return this.finishNode(node, "ImportExpression") }; -pp$4.parseImportMeta = function(node) { +pp$5.parseImportMeta = function(node) { this.next(); // skip `.` var containsEsc = this.containsEsc; @@ -2840,7 +2858,7 @@ pp$4.parseImportMeta = function(node) { return this.finishNode(node, "MetaProperty") }; -pp$4.parseLiteral = function(value) { +pp$5.parseLiteral = function(value) { var node = this.startNode(); node.value = value; node.raw = this.input.slice(this.start, this.end); @@ -2849,14 +2867,14 @@ pp$4.parseLiteral = function(value) { return this.finishNode(node, "Literal") }; -pp$4.parseParenExpression = function() { - this.expect(types.parenL); +pp$5.parseParenExpression = function() { + this.expect(types$1.parenL); var val = this.parseExpression(); - this.expect(types.parenR); + this.expect(types$1.parenR); return val }; -pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { +pp$5.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { var startPos = this.start, startLoc = this.startLoc, val, allowTrailingComma = this.options.ecmaVersion >= 8; if (this.options.ecmaVersion >= 6) { this.next(); @@ -2867,24 +2885,24 @@ pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { this.yieldPos = 0; this.awaitPos = 0; // Do not save awaitIdentPos to allow checking awaits nested in parameters - while (this.type !== types.parenR) { - first ? first = false : this.expect(types.comma); - if (allowTrailingComma && this.afterTrailingComma(types.parenR, true)) { + while (this.type !== types$1.parenR) { + first ? first = false : this.expect(types$1.comma); + if (allowTrailingComma && this.afterTrailingComma(types$1.parenR, true)) { lastIsComma = true; break - } else if (this.type === types.ellipsis) { + } else if (this.type === types$1.ellipsis) { spreadStart = this.start; exprList.push(this.parseParenItem(this.parseRestBinding())); - if (this.type === types.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } break } else { exprList.push(this.parseMaybeAssign(false, refDestructuringErrors, this.parseParenItem)); } } var innerEndPos = this.lastTokEnd, innerEndLoc = this.lastTokEndLoc; - this.expect(types.parenR); + this.expect(types$1.parenR); - if (canBeArrow && !this.canInsertSemicolon() && this.eat(types.arrow)) { + if (canBeArrow && !this.canInsertSemicolon() && this.eat(types$1.arrow)) { this.checkPatternErrors(refDestructuringErrors, false); this.checkYieldAwaitInDefaultParams(); this.yieldPos = oldYieldPos; @@ -2918,12 +2936,12 @@ pp$4.parseParenAndDistinguishExpression = function(canBeArrow, forInit) { } }; -pp$4.parseParenItem = function(item) { +pp$5.parseParenItem = function(item) { return item }; -pp$4.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { - return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, forInit) +pp$5.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { + return this.parseArrowExpression(this.startNodeAt(startPos, startLoc), exprList, false, forInit) }; // New's precedence is slightly tricky. It must allow its argument to @@ -2932,13 +2950,13 @@ pp$4.parseParenArrowList = function(startPos, startLoc, exprList, forInit) { // argument to parseSubscripts to prevent it from consuming the // argument list. -var empty$1 = []; +var empty = []; -pp$4.parseNew = function() { +pp$5.parseNew = function() { if (this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword new"); } var node = this.startNode(); var meta = this.parseIdent(true); - if (this.options.ecmaVersion >= 6 && this.eat(types.dot)) { + if (this.options.ecmaVersion >= 6 && this.eat(types$1.dot)) { node.meta = meta; var containsEsc = this.containsEsc; node.property = this.parseIdent(true); @@ -2950,23 +2968,23 @@ pp$4.parseNew = function() { { this.raiseRecoverable(node.start, "'new.target' can only be used in functions and class static block"); } return this.finishNode(node, "MetaProperty") } - var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types._import; + var startPos = this.start, startLoc = this.startLoc, isImport = this.type === types$1._import; node.callee = this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true, false); if (isImport && node.callee.type === "ImportExpression") { this.raise(startPos, "Cannot use new with import()"); } - if (this.eat(types.parenL)) { node.arguments = this.parseExprList(types.parenR, this.options.ecmaVersion >= 8, false); } - else { node.arguments = empty$1; } + if (this.eat(types$1.parenL)) { node.arguments = this.parseExprList(types$1.parenR, this.options.ecmaVersion >= 8, false); } + else { node.arguments = empty; } return this.finishNode(node, "NewExpression") }; // Parse template expression. -pp$4.parseTemplateElement = function(ref) { +pp$5.parseTemplateElement = function(ref) { var isTagged = ref.isTagged; var elem = this.startNode(); - if (this.type === types.invalidTemplate) { + if (this.type === types$1.invalidTemplate) { if (!isTagged) { this.raiseRecoverable(this.start, "Bad escape sequence in untagged template literal"); } @@ -2981,11 +2999,11 @@ pp$4.parseTemplateElement = function(ref) { }; } this.next(); - elem.tail = this.type === types.backQuote; + elem.tail = this.type === types$1.backQuote; return this.finishNode(elem, "TemplateElement") }; -pp$4.parseTemplate = function(ref) { +pp$5.parseTemplate = function(ref) { if ( ref === void 0 ) ref = {}; var isTagged = ref.isTagged; if ( isTagged === void 0 ) isTagged = false; @@ -2995,32 +3013,32 @@ pp$4.parseTemplate = function(ref) { var curElt = this.parseTemplateElement({isTagged: isTagged}); node.quasis = [curElt]; while (!curElt.tail) { - if (this.type === types.eof) { this.raise(this.pos, "Unterminated template literal"); } - this.expect(types.dollarBraceL); + if (this.type === types$1.eof) { this.raise(this.pos, "Unterminated template literal"); } + this.expect(types$1.dollarBraceL); node.expressions.push(this.parseExpression()); - this.expect(types.braceR); + this.expect(types$1.braceR); node.quasis.push(curElt = this.parseTemplateElement({isTagged: isTagged})); } this.next(); return this.finishNode(node, "TemplateLiteral") }; -pp$4.isAsyncProp = function(prop) { +pp$5.isAsyncProp = function(prop) { return !prop.computed && prop.key.type === "Identifier" && prop.key.name === "async" && - (this.type === types.name || this.type === types.num || this.type === types.string || this.type === types.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types.star)) && + (this.type === types$1.name || this.type === types$1.num || this.type === types$1.string || this.type === types$1.bracketL || this.type.keyword || (this.options.ecmaVersion >= 9 && this.type === types$1.star)) && !lineBreak.test(this.input.slice(this.lastTokEnd, this.start)) }; // Parse an object literal or binding pattern. -pp$4.parseObj = function(isPattern, refDestructuringErrors) { +pp$5.parseObj = function(isPattern, refDestructuringErrors) { var node = this.startNode(), first = true, propHash = {}; node.properties = []; this.next(); - while (!this.eat(types.braceR)) { + while (!this.eat(types$1.braceR)) { if (!first) { - this.expect(types.comma); - if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types.braceR)) { break } + this.expect(types$1.comma); + if (this.options.ecmaVersion >= 5 && this.afterTrailingComma(types$1.braceR)) { break } } else { first = false; } var prop = this.parseProperty(isPattern, refDestructuringErrors); @@ -3030,18 +3048,18 @@ pp$4.parseObj = function(isPattern, refDestructuringErrors) { return this.finishNode(node, isPattern ? "ObjectPattern" : "ObjectExpression") }; -pp$4.parseProperty = function(isPattern, refDestructuringErrors) { +pp$5.parseProperty = function(isPattern, refDestructuringErrors) { var prop = this.startNode(), isGenerator, isAsync, startPos, startLoc; - if (this.options.ecmaVersion >= 9 && this.eat(types.ellipsis)) { + if (this.options.ecmaVersion >= 9 && this.eat(types$1.ellipsis)) { if (isPattern) { prop.argument = this.parseIdent(false); - if (this.type === types.comma) { + if (this.type === types$1.comma) { this.raise(this.start, "Comma is not permitted after the rest element"); } return this.finishNode(prop, "RestElement") } // To disallow parenthesized identifier via `this.toAssignable()`. - if (this.type === types.parenL && refDestructuringErrors) { + if (this.type === types$1.parenL && refDestructuringErrors) { if (refDestructuringErrors.parenthesizedAssign < 0) { refDestructuringErrors.parenthesizedAssign = this.start; } @@ -3052,7 +3070,7 @@ pp$4.parseProperty = function(isPattern, refDestructuringErrors) { // Parse argument. prop.argument = this.parseMaybeAssign(false, refDestructuringErrors); // To disallow trailing comma via `this.toAssignable()`. - if (this.type === types.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { + if (this.type === types$1.comma && refDestructuringErrors && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } // Finish @@ -3066,13 +3084,13 @@ pp$4.parseProperty = function(isPattern, refDestructuringErrors) { startLoc = this.startLoc; } if (!isPattern) - { isGenerator = this.eat(types.star); } + { isGenerator = this.eat(types$1.star); } } var containsEsc = this.containsEsc; this.parsePropertyName(prop); if (!isPattern && !containsEsc && this.options.ecmaVersion >= 8 && !isGenerator && this.isAsyncProp(prop)) { isAsync = true; - isGenerator = this.options.ecmaVersion >= 9 && this.eat(types.star); + isGenerator = this.options.ecmaVersion >= 9 && this.eat(types$1.star); this.parsePropertyName(prop, refDestructuringErrors); } else { isAsync = false; @@ -3081,14 +3099,14 @@ pp$4.parseProperty = function(isPattern, refDestructuringErrors) { return this.finishNode(prop, "Property") }; -pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { - if ((isGenerator || isAsync) && this.type === types.colon) +pp$5.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startPos, startLoc, refDestructuringErrors, containsEsc) { + if ((isGenerator || isAsync) && this.type === types$1.colon) { this.unexpected(); } - if (this.eat(types.colon)) { + if (this.eat(types$1.colon)) { prop.value = isPattern ? this.parseMaybeDefault(this.start, this.startLoc) : this.parseMaybeAssign(false, refDestructuringErrors); prop.kind = "init"; - } else if (this.options.ecmaVersion >= 6 && this.type === types.parenL) { + } else if (this.options.ecmaVersion >= 6 && this.type === types$1.parenL) { if (isPattern) { this.unexpected(); } prop.kind = "init"; prop.method = true; @@ -3096,7 +3114,7 @@ pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP } else if (!isPattern && !containsEsc && this.options.ecmaVersion >= 5 && !prop.computed && prop.key.type === "Identifier" && (prop.key.name === "get" || prop.key.name === "set") && - (this.type !== types.comma && this.type !== types.braceR && this.type !== types.eq)) { + (this.type !== types$1.comma && this.type !== types$1.braceR && this.type !== types$1.eq)) { if (isGenerator || isAsync) { this.unexpected(); } prop.kind = prop.key.name; this.parsePropertyName(prop); @@ -3120,7 +3138,7 @@ pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP prop.kind = "init"; if (isPattern) { prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); - } else if (this.type === types.eq && refDestructuringErrors) { + } else if (this.type === types$1.eq && refDestructuringErrors) { if (refDestructuringErrors.shorthandAssign < 0) { refDestructuringErrors.shorthandAssign = this.start; } prop.value = this.parseMaybeDefault(startPos, startLoc, this.copyNode(prop.key)); @@ -3131,23 +3149,23 @@ pp$4.parsePropertyValue = function(prop, isPattern, isGenerator, isAsync, startP } else { this.unexpected(); } }; -pp$4.parsePropertyName = function(prop) { +pp$5.parsePropertyName = function(prop) { if (this.options.ecmaVersion >= 6) { - if (this.eat(types.bracketL)) { + if (this.eat(types$1.bracketL)) { prop.computed = true; prop.key = this.parseMaybeAssign(); - this.expect(types.bracketR); + this.expect(types$1.bracketR); return prop.key } else { prop.computed = false; } } - return prop.key = this.type === types.num || this.type === types.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") + return prop.key = this.type === types$1.num || this.type === types$1.string ? this.parseExprAtom() : this.parseIdent(this.options.allowReserved !== "never") }; // Initialize empty function node. -pp$4.initFunction = function(node) { +pp$5.initFunction = function(node) { node.id = null; if (this.options.ecmaVersion >= 6) { node.generator = node.expression = false; } if (this.options.ecmaVersion >= 8) { node.async = false; } @@ -3155,7 +3173,7 @@ pp$4.initFunction = function(node) { // Parse object or class method. -pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { +pp$5.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { var node = this.startNode(), oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.initFunction(node); @@ -3169,8 +3187,8 @@ pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { this.awaitIdentPos = 0; this.enterScope(functionFlags(isAsync, node.generator) | SCOPE_SUPER | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - this.expect(types.parenL); - node.params = this.parseBindingList(types.parenR, false, this.options.ecmaVersion >= 8); + this.expect(types$1.parenL); + node.params = this.parseBindingList(types$1.parenR, false, this.options.ecmaVersion >= 8); this.checkYieldAwaitInDefaultParams(); this.parseFunctionBody(node, false, true, false); @@ -3182,7 +3200,7 @@ pp$4.parseMethod = function(isGenerator, isAsync, allowDirectSuper) { // Parse arrow function expression with given parameters. -pp$4.parseArrowExpression = function(node, params, isAsync, forInit) { +pp$5.parseArrowExpression = function(node, params, isAsync, forInit) { var oldYieldPos = this.yieldPos, oldAwaitPos = this.awaitPos, oldAwaitIdentPos = this.awaitIdentPos; this.enterScope(functionFlags(isAsync, false) | SCOPE_ARROW); @@ -3204,8 +3222,8 @@ pp$4.parseArrowExpression = function(node, params, isAsync, forInit) { // Parse function body and check parameters. -pp$4.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { - var isExpression = isArrowFunction && this.type !== types.braceL; +pp$5.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { + var isExpression = isArrowFunction && this.type !== types$1.braceL; var oldStrict = this.strict, useStrict = false; if (isExpression) { @@ -3241,7 +3259,7 @@ pp$4.parseFunctionBody = function(node, isArrowFunction, isMethod, forInit) { this.exitScope(); }; -pp$4.isSimpleParamList = function(params) { +pp$5.isSimpleParamList = function(params) { for (var i = 0, list = params; i < list.length; i += 1) { var param = list[i]; @@ -3254,7 +3272,7 @@ pp$4.isSimpleParamList = function(params) { // Checks function params for various disallowed patterns such as using "eval" // or "arguments" and duplicate parameters. -pp$4.checkParams = function(node, allowDuplicates) { +pp$5.checkParams = function(node, allowDuplicates) { var nameHash = Object.create(null); for (var i = 0, list = node.params; i < list.length; i += 1) { @@ -3270,20 +3288,20 @@ pp$4.checkParams = function(node, allowDuplicates) { // nothing in between them to be parsed as `null` (which is needed // for array literals). -pp$4.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { +pp$5.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestructuringErrors) { var elts = [], first = true; while (!this.eat(close)) { if (!first) { - this.expect(types.comma); + this.expect(types$1.comma); if (allowTrailingComma && this.afterTrailingComma(close)) { break } } else { first = false; } var elt = (void 0); - if (allowEmpty && this.type === types.comma) + if (allowEmpty && this.type === types$1.comma) { elt = null; } - else if (this.type === types.ellipsis) { + else if (this.type === types$1.ellipsis) { elt = this.parseSpread(refDestructuringErrors); - if (refDestructuringErrors && this.type === types.comma && refDestructuringErrors.trailingComma < 0) + if (refDestructuringErrors && this.type === types$1.comma && refDestructuringErrors.trailingComma < 0) { refDestructuringErrors.trailingComma = this.start; } } else { elt = this.parseMaybeAssign(false, refDestructuringErrors); @@ -3293,7 +3311,7 @@ pp$4.parseExprList = function(close, allowTrailingComma, allowEmpty, refDestruct return elts }; -pp$4.checkUnreserved = function(ref) { +pp$5.checkUnreserved = function(ref) { var start = ref.start; var end = ref.end; var name = ref.name; @@ -3322,9 +3340,9 @@ pp$4.checkUnreserved = function(ref) { // when parsing properties), it will also convert keywords into // identifiers. -pp$4.parseIdent = function(liberal, isBinding) { +pp$5.parseIdent = function(liberal, isBinding) { var node = this.startNode(); - if (this.type === types.name) { + if (this.type === types$1.name) { node.name = this.value; } else if (this.type.keyword) { node.name = this.type.keyword; @@ -3350,9 +3368,9 @@ pp$4.parseIdent = function(liberal, isBinding) { return node }; -pp$4.parsePrivateIdent = function() { +pp$5.parsePrivateIdent = function() { var node = this.startNode(); - if (this.type === types.privateId) { + if (this.type === types$1.privateId) { node.name = this.value; } else { this.unexpected(); @@ -3372,22 +3390,22 @@ pp$4.parsePrivateIdent = function() { // Parses yield expression inside generator. -pp$4.parseYield = function(forInit) { +pp$5.parseYield = function(forInit) { if (!this.yieldPos) { this.yieldPos = this.start; } var node = this.startNode(); this.next(); - if (this.type === types.semi || this.canInsertSemicolon() || (this.type !== types.star && !this.type.startsExpr)) { + if (this.type === types$1.semi || this.canInsertSemicolon() || (this.type !== types$1.star && !this.type.startsExpr)) { node.delegate = false; node.argument = null; } else { - node.delegate = this.eat(types.star); + node.delegate = this.eat(types$1.star); node.argument = this.parseMaybeAssign(forInit); } return this.finishNode(node, "YieldExpression") }; -pp$4.parseAwait = function(forInit) { +pp$5.parseAwait = function(forInit) { if (!this.awaitPos) { this.awaitPos = this.start; } var node = this.startNode(); @@ -3396,7 +3414,7 @@ pp$4.parseAwait = function(forInit) { return this.finishNode(node, "AwaitExpression") }; -var pp$5 = Parser.prototype; +var pp$4 = Parser.prototype; // This function is used to raise exceptions on parse errors. It // takes an offset integer (into the current `input`) to indicate @@ -3404,7 +3422,7 @@ var pp$5 = Parser.prototype; // of the error message, and then raises a `SyntaxError` with that // message. -pp$5.raise = function(pos, message) { +pp$4.raise = function(pos, message) { var loc = getLineInfo(this.input, pos); message += " (" + loc.line + ":" + loc.column + ")"; var err = new SyntaxError(message); @@ -3412,15 +3430,15 @@ pp$5.raise = function(pos, message) { throw err }; -pp$5.raiseRecoverable = pp$5.raise; +pp$4.raiseRecoverable = pp$4.raise; -pp$5.curPosition = function() { +pp$4.curPosition = function() { if (this.options.locations) { return new Position(this.curLine, this.pos - this.lineStart) } }; -var pp$6 = Parser.prototype; +var pp$3 = Parser.prototype; var Scope = function Scope(flags) { this.flags = flags; @@ -3436,22 +3454,22 @@ var Scope = function Scope(flags) { // The functions in this module keep track of declared variables in the current scope in order to detect duplicate variable names. -pp$6.enterScope = function(flags) { +pp$3.enterScope = function(flags) { this.scopeStack.push(new Scope(flags)); }; -pp$6.exitScope = function() { +pp$3.exitScope = function() { this.scopeStack.pop(); }; // The spec says: // > At the top level of a function, or script, function declarations are // > treated like var declarations rather than like lexical declarations. -pp$6.treatFunctionsAsVarInScope = function(scope) { +pp$3.treatFunctionsAsVarInScope = function(scope) { return (scope.flags & SCOPE_FUNCTION) || !this.inModule && (scope.flags & SCOPE_TOP) }; -pp$6.declareName = function(name, bindingType, pos) { +pp$3.declareName = function(name, bindingType, pos) { var redeclared = false; if (bindingType === BIND_LEXICAL) { var scope = this.currentScope(); @@ -3486,7 +3504,7 @@ pp$6.declareName = function(name, bindingType, pos) { if (redeclared) { this.raiseRecoverable(pos, ("Identifier '" + name + "' has already been declared")); } }; -pp$6.checkLocalExport = function(id) { +pp$3.checkLocalExport = function(id) { // scope.functions must be empty as Module code is always strict. if (this.scopeStack[0].lexical.indexOf(id.name) === -1 && this.scopeStack[0].var.indexOf(id.name) === -1) { @@ -3494,11 +3512,11 @@ pp$6.checkLocalExport = function(id) { } }; -pp$6.currentScope = function() { +pp$3.currentScope = function() { return this.scopeStack[this.scopeStack.length - 1] }; -pp$6.currentVarScope = function() { +pp$3.currentVarScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR) { return scope } @@ -3506,7 +3524,7 @@ pp$6.currentVarScope = function() { }; // Could be useful for `this`, `new.target`, `super()`, `super.property`, and `super[property]`. -pp$6.currentThisScope = function() { +pp$3.currentThisScope = function() { for (var i = this.scopeStack.length - 1;; i--) { var scope = this.scopeStack[i]; if (scope.flags & SCOPE_VAR && !(scope.flags & SCOPE_ARROW)) { return scope } @@ -3527,13 +3545,13 @@ var Node = function Node(parser, pos, loc) { // Start an AST node, attaching a start offset. -var pp$7 = Parser.prototype; +var pp$2 = Parser.prototype; -pp$7.startNode = function() { +pp$2.startNode = function() { return new Node(this, this.start, this.startLoc) }; -pp$7.startNodeAt = function(pos, loc) { +pp$2.startNodeAt = function(pos, loc) { return new Node(this, pos, loc) }; @@ -3549,17 +3567,17 @@ function finishNodeAt(node, type, pos, loc) { return node } -pp$7.finishNode = function(node, type) { +pp$2.finishNode = function(node, type) { return finishNodeAt.call(this, node, type, this.lastTokEnd, this.lastTokEndLoc) }; // Finish node at given position -pp$7.finishNodeAt = function(node, type, pos, loc) { +pp$2.finishNodeAt = function(node, type, pos, loc) { return finishNodeAt.call(this, node, type, pos, loc) }; -pp$7.copyNode = function(node) { +pp$2.copyNode = function(node) { var newNode = new Node(this, node.start, this.startLoc); for (var prop in node) { newNode[prop] = node[prop]; } return newNode @@ -3616,7 +3634,7 @@ buildUnicodeData(10); buildUnicodeData(11); buildUnicodeData(12); -var pp$8 = Parser.prototype; +var pp$1 = Parser.prototype; var RegExpValidationState = function RegExpValidationState(parser) { this.parser = parser; @@ -3712,7 +3730,7 @@ RegExpValidationState.prototype.eat = function eat (ch, forceU) { return false }; -function codePointToString(ch) { +function codePointToString$1(ch) { if (ch <= 0xFFFF) { return String.fromCharCode(ch) } ch -= 0x10000; return String.fromCharCode((ch >> 10) + 0xD800, (ch & 0x03FF) + 0xDC00) @@ -3724,7 +3742,7 @@ function codePointToString(ch) { * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ -pp$8.validateRegExpFlags = function(state) { +pp$1.validateRegExpFlags = function(state) { var validFlags = state.validFlags; var flags = state.flags; @@ -3745,7 +3763,7 @@ pp$8.validateRegExpFlags = function(state) { * @param {RegExpValidationState} state The state to validate RegExp. * @returns {void} */ -pp$8.validateRegExpPattern = function(state) { +pp$1.validateRegExpPattern = function(state) { this.regexp_pattern(state); // The goal symbol for the parse is |Pattern[~U, ~N]|. If the result of @@ -3760,7 +3778,7 @@ pp$8.validateRegExpPattern = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Pattern -pp$8.regexp_pattern = function(state) { +pp$1.regexp_pattern = function(state) { state.pos = 0; state.lastIntValue = 0; state.lastStringValue = ""; @@ -3794,7 +3812,7 @@ pp$8.regexp_pattern = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Disjunction -pp$8.regexp_disjunction = function(state) { +pp$1.regexp_disjunction = function(state) { this.regexp_alternative(state); while (state.eat(0x7C /* | */)) { this.regexp_alternative(state); @@ -3810,13 +3828,13 @@ pp$8.regexp_disjunction = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Alternative -pp$8.regexp_alternative = function(state) { +pp$1.regexp_alternative = function(state) { while (state.pos < state.source.length && this.regexp_eatTerm(state)) { } }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Term -pp$8.regexp_eatTerm = function(state) { +pp$1.regexp_eatTerm = function(state) { if (this.regexp_eatAssertion(state)) { // Handle `QuantifiableAssertion Quantifier` alternative. // `state.lastAssertionIsQuantifiable` is true if the last eaten Assertion @@ -3839,7 +3857,7 @@ pp$8.regexp_eatTerm = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-Assertion -pp$8.regexp_eatAssertion = function(state) { +pp$1.regexp_eatAssertion = function(state) { var start = state.pos; state.lastAssertionIsQuantifiable = false; @@ -3877,7 +3895,7 @@ pp$8.regexp_eatAssertion = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Quantifier -pp$8.regexp_eatQuantifier = function(state, noError) { +pp$1.regexp_eatQuantifier = function(state, noError) { if ( noError === void 0 ) noError = false; if (this.regexp_eatQuantifierPrefix(state, noError)) { @@ -3888,7 +3906,7 @@ pp$8.regexp_eatQuantifier = function(state, noError) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-QuantifierPrefix -pp$8.regexp_eatQuantifierPrefix = function(state, noError) { +pp$1.regexp_eatQuantifierPrefix = function(state, noError) { return ( state.eat(0x2A /* * */) || state.eat(0x2B /* + */) || @@ -3896,7 +3914,7 @@ pp$8.regexp_eatQuantifierPrefix = function(state, noError) { this.regexp_eatBracedQuantifier(state, noError) ) }; -pp$8.regexp_eatBracedQuantifier = function(state, noError) { +pp$1.regexp_eatBracedQuantifier = function(state, noError) { var start = state.pos; if (state.eat(0x7B /* { */)) { var min = 0, max = -1; @@ -3922,7 +3940,7 @@ pp$8.regexp_eatBracedQuantifier = function(state, noError) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-Atom -pp$8.regexp_eatAtom = function(state) { +pp$1.regexp_eatAtom = function(state) { return ( this.regexp_eatPatternCharacters(state) || state.eat(0x2E /* . */) || @@ -3932,7 +3950,7 @@ pp$8.regexp_eatAtom = function(state) { this.regexp_eatCapturingGroup(state) ) }; -pp$8.regexp_eatReverseSolidusAtomEscape = function(state) { +pp$1.regexp_eatReverseSolidusAtomEscape = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { if (this.regexp_eatAtomEscape(state)) { @@ -3942,7 +3960,7 @@ pp$8.regexp_eatReverseSolidusAtomEscape = function(state) { } return false }; -pp$8.regexp_eatUncapturingGroup = function(state) { +pp$1.regexp_eatUncapturingGroup = function(state) { var start = state.pos; if (state.eat(0x28 /* ( */)) { if (state.eat(0x3F /* ? */) && state.eat(0x3A /* : */)) { @@ -3956,7 +3974,7 @@ pp$8.regexp_eatUncapturingGroup = function(state) { } return false }; -pp$8.regexp_eatCapturingGroup = function(state) { +pp$1.regexp_eatCapturingGroup = function(state) { if (state.eat(0x28 /* ( */)) { if (this.options.ecmaVersion >= 9) { this.regexp_groupSpecifier(state); @@ -3974,7 +3992,7 @@ pp$8.regexp_eatCapturingGroup = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedAtom -pp$8.regexp_eatExtendedAtom = function(state) { +pp$1.regexp_eatExtendedAtom = function(state) { return ( state.eat(0x2E /* . */) || this.regexp_eatReverseSolidusAtomEscape(state) || @@ -3987,7 +4005,7 @@ pp$8.regexp_eatExtendedAtom = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-InvalidBracedQuantifier -pp$8.regexp_eatInvalidBracedQuantifier = function(state) { +pp$1.regexp_eatInvalidBracedQuantifier = function(state) { if (this.regexp_eatBracedQuantifier(state, true)) { state.raise("Nothing to repeat"); } @@ -3995,7 +4013,7 @@ pp$8.regexp_eatInvalidBracedQuantifier = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-SyntaxCharacter -pp$8.regexp_eatSyntaxCharacter = function(state) { +pp$1.regexp_eatSyntaxCharacter = function(state) { var ch = state.current(); if (isSyntaxCharacter(ch)) { state.lastIntValue = ch; @@ -4017,7 +4035,7 @@ function isSyntaxCharacter(ch) { // https://www.ecma-international.org/ecma-262/8.0/#prod-PatternCharacter // But eat eager. -pp$8.regexp_eatPatternCharacters = function(state) { +pp$1.regexp_eatPatternCharacters = function(state) { var start = state.pos; var ch = 0; while ((ch = state.current()) !== -1 && !isSyntaxCharacter(ch)) { @@ -4027,7 +4045,7 @@ pp$8.regexp_eatPatternCharacters = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ExtendedPatternCharacter -pp$8.regexp_eatExtendedPatternCharacter = function(state) { +pp$1.regexp_eatExtendedPatternCharacter = function(state) { var ch = state.current(); if ( ch !== -1 && @@ -4048,7 +4066,7 @@ pp$8.regexp_eatExtendedPatternCharacter = function(state) { // GroupSpecifier :: // [empty] // `?` GroupName -pp$8.regexp_groupSpecifier = function(state) { +pp$1.regexp_groupSpecifier = function(state) { if (state.eat(0x3F /* ? */)) { if (this.regexp_eatGroupName(state)) { if (state.groupNames.indexOf(state.lastStringValue) !== -1) { @@ -4064,7 +4082,7 @@ pp$8.regexp_groupSpecifier = function(state) { // GroupName :: // `<` RegExpIdentifierName `>` // Note: this updates `state.lastStringValue` property with the eaten name. -pp$8.regexp_eatGroupName = function(state) { +pp$1.regexp_eatGroupName = function(state) { state.lastStringValue = ""; if (state.eat(0x3C /* < */)) { if (this.regexp_eatRegExpIdentifierName(state) && state.eat(0x3E /* > */)) { @@ -4079,12 +4097,12 @@ pp$8.regexp_eatGroupName = function(state) { // RegExpIdentifierStart // RegExpIdentifierName RegExpIdentifierPart // Note: this updates `state.lastStringValue` property with the eaten name. -pp$8.regexp_eatRegExpIdentifierName = function(state) { +pp$1.regexp_eatRegExpIdentifierName = function(state) { state.lastStringValue = ""; if (this.regexp_eatRegExpIdentifierStart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); + state.lastStringValue += codePointToString$1(state.lastIntValue); while (this.regexp_eatRegExpIdentifierPart(state)) { - state.lastStringValue += codePointToString(state.lastIntValue); + state.lastStringValue += codePointToString$1(state.lastIntValue); } return true } @@ -4096,7 +4114,7 @@ pp$8.regexp_eatRegExpIdentifierName = function(state) { // `$` // `_` // `\` RegExpUnicodeEscapeSequence[+U] -pp$8.regexp_eatRegExpIdentifierStart = function(state) { +pp$1.regexp_eatRegExpIdentifierStart = function(state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); @@ -4124,7 +4142,7 @@ function isRegExpIdentifierStart(ch) { // `\` RegExpUnicodeEscapeSequence[+U] // // -pp$8.regexp_eatRegExpIdentifierPart = function(state) { +pp$1.regexp_eatRegExpIdentifierPart = function(state) { var start = state.pos; var forceU = this.options.ecmaVersion >= 11; var ch = state.current(forceU); @@ -4146,7 +4164,7 @@ function isRegExpIdentifierPart(ch) { } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-AtomEscape -pp$8.regexp_eatAtomEscape = function(state) { +pp$1.regexp_eatAtomEscape = function(state) { if ( this.regexp_eatBackReference(state) || this.regexp_eatCharacterClassEscape(state) || @@ -4164,7 +4182,7 @@ pp$8.regexp_eatAtomEscape = function(state) { } return false }; -pp$8.regexp_eatBackReference = function(state) { +pp$1.regexp_eatBackReference = function(state) { var start = state.pos; if (this.regexp_eatDecimalEscape(state)) { var n = state.lastIntValue; @@ -4182,7 +4200,7 @@ pp$8.regexp_eatBackReference = function(state) { } return false }; -pp$8.regexp_eatKGroupName = function(state) { +pp$1.regexp_eatKGroupName = function(state) { if (state.eat(0x6B /* k */)) { if (this.regexp_eatGroupName(state)) { state.backReferenceNames.push(state.lastStringValue); @@ -4194,7 +4212,7 @@ pp$8.regexp_eatKGroupName = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-CharacterEscape -pp$8.regexp_eatCharacterEscape = function(state) { +pp$1.regexp_eatCharacterEscape = function(state) { return ( this.regexp_eatControlEscape(state) || this.regexp_eatCControlLetter(state) || @@ -4205,7 +4223,7 @@ pp$8.regexp_eatCharacterEscape = function(state) { this.regexp_eatIdentityEscape(state) ) }; -pp$8.regexp_eatCControlLetter = function(state) { +pp$1.regexp_eatCControlLetter = function(state) { var start = state.pos; if (state.eat(0x63 /* c */)) { if (this.regexp_eatControlLetter(state)) { @@ -4215,7 +4233,7 @@ pp$8.regexp_eatCControlLetter = function(state) { } return false }; -pp$8.regexp_eatZero = function(state) { +pp$1.regexp_eatZero = function(state) { if (state.current() === 0x30 /* 0 */ && !isDecimalDigit(state.lookahead())) { state.lastIntValue = 0; state.advance(); @@ -4225,7 +4243,7 @@ pp$8.regexp_eatZero = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlEscape -pp$8.regexp_eatControlEscape = function(state) { +pp$1.regexp_eatControlEscape = function(state) { var ch = state.current(); if (ch === 0x74 /* t */) { state.lastIntValue = 0x09; /* \t */ @@ -4256,7 +4274,7 @@ pp$8.regexp_eatControlEscape = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-ControlLetter -pp$8.regexp_eatControlLetter = function(state) { +pp$1.regexp_eatControlLetter = function(state) { var ch = state.current(); if (isControlLetter(ch)) { state.lastIntValue = ch % 0x20; @@ -4273,7 +4291,7 @@ function isControlLetter(ch) { } // https://www.ecma-international.org/ecma-262/8.0/#prod-RegExpUnicodeEscapeSequence -pp$8.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { +pp$1.regexp_eatRegExpUnicodeEscapeSequence = function(state, forceU) { if ( forceU === void 0 ) forceU = false; var start = state.pos; @@ -4318,7 +4336,7 @@ function isValidUnicode(ch) { } // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-IdentityEscape -pp$8.regexp_eatIdentityEscape = function(state) { +pp$1.regexp_eatIdentityEscape = function(state) { if (state.switchU) { if (this.regexp_eatSyntaxCharacter(state)) { return true @@ -4341,7 +4359,7 @@ pp$8.regexp_eatIdentityEscape = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalEscape -pp$8.regexp_eatDecimalEscape = function(state) { +pp$1.regexp_eatDecimalEscape = function(state) { state.lastIntValue = 0; var ch = state.current(); if (ch >= 0x31 /* 1 */ && ch <= 0x39 /* 9 */) { @@ -4355,7 +4373,7 @@ pp$8.regexp_eatDecimalEscape = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClassEscape -pp$8.regexp_eatCharacterClassEscape = function(state) { +pp$1.regexp_eatCharacterClassEscape = function(state) { var ch = state.current(); if (isCharacterClassEscape(ch)) { @@ -4397,7 +4415,7 @@ function isCharacterClassEscape(ch) { // UnicodePropertyValueExpression :: // UnicodePropertyName `=` UnicodePropertyValue // LoneUnicodePropertyNameOrValue -pp$8.regexp_eatUnicodePropertyValueExpression = function(state) { +pp$1.regexp_eatUnicodePropertyValueExpression = function(state) { var start = state.pos; // UnicodePropertyName `=` UnicodePropertyValue @@ -4419,24 +4437,24 @@ pp$8.regexp_eatUnicodePropertyValueExpression = function(state) { } return false }; -pp$8.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { +pp$1.regexp_validateUnicodePropertyNameAndValue = function(state, name, value) { if (!has(state.unicodeProperties.nonBinary, name)) { state.raise("Invalid property name"); } if (!state.unicodeProperties.nonBinary[name].test(value)) { state.raise("Invalid property value"); } }; -pp$8.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { +pp$1.regexp_validateUnicodePropertyNameOrValue = function(state, nameOrValue) { if (!state.unicodeProperties.binary.test(nameOrValue)) { state.raise("Invalid property name"); } }; // UnicodePropertyName :: // UnicodePropertyNameCharacters -pp$8.regexp_eatUnicodePropertyName = function(state) { +pp$1.regexp_eatUnicodePropertyName = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyNameCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); + state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" @@ -4447,11 +4465,11 @@ function isUnicodePropertyNameCharacter(ch) { // UnicodePropertyValue :: // UnicodePropertyValueCharacters -pp$8.regexp_eatUnicodePropertyValue = function(state) { +pp$1.regexp_eatUnicodePropertyValue = function(state) { var ch = 0; state.lastStringValue = ""; while (isUnicodePropertyValueCharacter(ch = state.current())) { - state.lastStringValue += codePointToString(ch); + state.lastStringValue += codePointToString$1(ch); state.advance(); } return state.lastStringValue !== "" @@ -4462,12 +4480,12 @@ function isUnicodePropertyValueCharacter(ch) { // LoneUnicodePropertyNameOrValue :: // UnicodePropertyValueCharacters -pp$8.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { +pp$1.regexp_eatLoneUnicodePropertyNameOrValue = function(state) { return this.regexp_eatUnicodePropertyValue(state) }; // https://www.ecma-international.org/ecma-262/8.0/#prod-CharacterClass -pp$8.regexp_eatCharacterClass = function(state) { +pp$1.regexp_eatCharacterClass = function(state) { if (state.eat(0x5B /* [ */)) { state.eat(0x5E /* ^ */); this.regexp_classRanges(state); @@ -4483,7 +4501,7 @@ pp$8.regexp_eatCharacterClass = function(state) { // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRanges // https://www.ecma-international.org/ecma-262/8.0/#prod-NonemptyClassRangesNoDash -pp$8.regexp_classRanges = function(state) { +pp$1.regexp_classRanges = function(state) { while (this.regexp_eatClassAtom(state)) { var left = state.lastIntValue; if (state.eat(0x2D /* - */) && this.regexp_eatClassAtom(state)) { @@ -4500,7 +4518,7 @@ pp$8.regexp_classRanges = function(state) { // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtom // https://www.ecma-international.org/ecma-262/8.0/#prod-ClassAtomNoDash -pp$8.regexp_eatClassAtom = function(state) { +pp$1.regexp_eatClassAtom = function(state) { var start = state.pos; if (state.eat(0x5C /* \ */)) { @@ -4529,7 +4547,7 @@ pp$8.regexp_eatClassAtom = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassEscape -pp$8.regexp_eatClassEscape = function(state) { +pp$1.regexp_eatClassEscape = function(state) { var start = state.pos; if (state.eat(0x62 /* b */)) { @@ -4556,7 +4574,7 @@ pp$8.regexp_eatClassEscape = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-ClassControlLetter -pp$8.regexp_eatClassControlLetter = function(state) { +pp$1.regexp_eatClassControlLetter = function(state) { var ch = state.current(); if (isDecimalDigit(ch) || ch === 0x5F /* _ */) { state.lastIntValue = ch % 0x20; @@ -4567,7 +4585,7 @@ pp$8.regexp_eatClassControlLetter = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence -pp$8.regexp_eatHexEscapeSequence = function(state) { +pp$1.regexp_eatHexEscapeSequence = function(state) { var start = state.pos; if (state.eat(0x78 /* x */)) { if (this.regexp_eatFixedHexDigits(state, 2)) { @@ -4582,7 +4600,7 @@ pp$8.regexp_eatHexEscapeSequence = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-DecimalDigits -pp$8.regexp_eatDecimalDigits = function(state) { +pp$1.regexp_eatDecimalDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; @@ -4597,7 +4615,7 @@ function isDecimalDigit(ch) { } // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigits -pp$8.regexp_eatHexDigits = function(state) { +pp$1.regexp_eatHexDigits = function(state) { var start = state.pos; var ch = 0; state.lastIntValue = 0; @@ -4626,7 +4644,7 @@ function hexToInt(ch) { // https://www.ecma-international.org/ecma-262/8.0/#prod-annexB-LegacyOctalEscapeSequence // Allows only 0-377(octal) i.e. 0-255(decimal). -pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) { +pp$1.regexp_eatLegacyOctalEscapeSequence = function(state) { if (this.regexp_eatOctalDigit(state)) { var n1 = state.lastIntValue; if (this.regexp_eatOctalDigit(state)) { @@ -4645,7 +4663,7 @@ pp$8.regexp_eatLegacyOctalEscapeSequence = function(state) { }; // https://www.ecma-international.org/ecma-262/8.0/#prod-OctalDigit -pp$8.regexp_eatOctalDigit = function(state) { +pp$1.regexp_eatOctalDigit = function(state) { var ch = state.current(); if (isOctalDigit(ch)) { state.lastIntValue = ch - 0x30; /* 0 */ @@ -4662,7 +4680,7 @@ function isOctalDigit(ch) { // https://www.ecma-international.org/ecma-262/8.0/#prod-Hex4Digits // https://www.ecma-international.org/ecma-262/8.0/#prod-HexDigit // And HexDigit HexDigit in https://www.ecma-international.org/ecma-262/8.0/#prod-HexEscapeSequence -pp$8.regexp_eatFixedHexDigits = function(state, length) { +pp$1.regexp_eatFixedHexDigits = function(state, length) { var start = state.pos; state.lastIntValue = 0; for (var i = 0; i < length; ++i) { @@ -4694,11 +4712,11 @@ var Token = function Token(p) { // ## Tokenizer -var pp$9 = Parser.prototype; +var pp = Parser.prototype; // Move to the next token -pp$9.next = function(ignoreEscapeSequenceInKeyword) { +pp.next = function(ignoreEscapeSequenceInKeyword) { if (!ignoreEscapeSequenceInKeyword && this.type.keyword && this.containsEsc) { this.raiseRecoverable(this.start, "Escape sequence in keyword " + this.type.keyword); } if (this.options.onToken) @@ -4711,21 +4729,21 @@ pp$9.next = function(ignoreEscapeSequenceInKeyword) { this.nextToken(); }; -pp$9.getToken = function() { +pp.getToken = function() { this.next(); return new Token(this) }; // If we're in an ES6 environment, make parsers iterable if (typeof Symbol !== "undefined") - { pp$9[Symbol.iterator] = function() { - var this$1 = this; + { pp[Symbol.iterator] = function() { + var this$1$1 = this; return { next: function () { - var token = this$1.getToken(); + var token = this$1$1.getToken(); return { - done: token.type === types.eof, + done: token.type === types$1.eof, value: token } } @@ -4738,19 +4756,19 @@ if (typeof Symbol !== "undefined") // Read a single token, updating the parser object's token-related // properties. -pp$9.nextToken = function() { +pp.nextToken = function() { var curContext = this.curContext(); if (!curContext || !curContext.preserveSpace) { this.skipSpace(); } this.start = this.pos; if (this.options.locations) { this.startLoc = this.curPosition(); } - if (this.pos >= this.input.length) { return this.finishToken(types.eof) } + if (this.pos >= this.input.length) { return this.finishToken(types$1.eof) } if (curContext.override) { return curContext.override(this) } else { this.readToken(this.fullCharCodeAtPos()); } }; -pp$9.readToken = function(code) { +pp.readToken = function(code) { // Identifier or keyword. '\uXXXX' sequences are allowed in // identifiers, so '\' also dispatches to that. if (isIdentifierStart(code, this.options.ecmaVersion >= 6) || code === 92 /* '\' */) @@ -4759,14 +4777,14 @@ pp$9.readToken = function(code) { return this.getTokenFromCode(code) }; -pp$9.fullCharCodeAtPos = function() { +pp.fullCharCodeAtPos = function() { var code = this.input.charCodeAt(this.pos); if (code <= 0xd7ff || code >= 0xdc00) { return code } var next = this.input.charCodeAt(this.pos + 1); return next <= 0xdbff || next >= 0xe000 ? code : (code << 10) + next - 0x35fdc00 }; -pp$9.skipBlockComment = function() { +pp.skipBlockComment = function() { var startLoc = this.options.onComment && this.curPosition(); var start = this.pos, end = this.input.indexOf("*/", this.pos += 2); if (end === -1) { this.raise(this.pos - 2, "Unterminated comment"); } @@ -4784,7 +4802,7 @@ pp$9.skipBlockComment = function() { startLoc, this.curPosition()); } }; -pp$9.skipLineComment = function(startSkip) { +pp.skipLineComment = function(startSkip) { var start = this.pos; var startLoc = this.options.onComment && this.curPosition(); var ch = this.input.charCodeAt(this.pos += startSkip); @@ -4799,7 +4817,7 @@ pp$9.skipLineComment = function(startSkip) { // Called at the start of the parse and after every token. Skips // whitespace and comments, and. -pp$9.skipSpace = function() { +pp.skipSpace = function() { loop: while (this.pos < this.input.length) { var ch = this.input.charCodeAt(this.pos); switch (ch) { @@ -4844,7 +4862,7 @@ pp$9.skipSpace = function() { // the token, so that the next one's `start` will point at the // right position. -pp$9.finishToken = function(type, val) { +pp.finishToken = function(type, val) { this.end = this.pos; if (this.options.locations) { this.endLoc = this.curPosition(); } var prevType = this.type; @@ -4863,62 +4881,62 @@ pp$9.finishToken = function(type, val) { // // All in the name of speed. // -pp$9.readToken_dot = function() { +pp.readToken_dot = function() { var next = this.input.charCodeAt(this.pos + 1); if (next >= 48 && next <= 57) { return this.readNumber(true) } var next2 = this.input.charCodeAt(this.pos + 2); if (this.options.ecmaVersion >= 6 && next === 46 && next2 === 46) { // 46 = dot '.' this.pos += 3; - return this.finishToken(types.ellipsis) + return this.finishToken(types$1.ellipsis) } else { ++this.pos; - return this.finishToken(types.dot) + return this.finishToken(types$1.dot) } }; -pp$9.readToken_slash = function() { // '/' +pp.readToken_slash = function() { // '/' var next = this.input.charCodeAt(this.pos + 1); if (this.exprAllowed) { ++this.pos; return this.readRegexp() } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.slash, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.slash, 1) }; -pp$9.readToken_mult_modulo_exp = function(code) { // '%*' +pp.readToken_mult_modulo_exp = function(code) { // '%*' var next = this.input.charCodeAt(this.pos + 1); var size = 1; - var tokentype = code === 42 ? types.star : types.modulo; + var tokentype = code === 42 ? types$1.star : types$1.modulo; // exponentiation operator ** and **= if (this.options.ecmaVersion >= 7 && code === 42 && next === 42) { ++size; - tokentype = types.starstar; + tokentype = types$1.starstar; next = this.input.charCodeAt(this.pos + 2); } - if (next === 61) { return this.finishOp(types.assign, size + 1) } + if (next === 61) { return this.finishOp(types$1.assign, size + 1) } return this.finishOp(tokentype, size) }; -pp$9.readToken_pipe_amp = function(code) { // '|&' +pp.readToken_pipe_amp = function(code) { // '|&' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (this.options.ecmaVersion >= 12) { var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 === 61) { return this.finishOp(types.assign, 3) } + if (next2 === 61) { return this.finishOp(types$1.assign, 3) } } - return this.finishOp(code === 124 ? types.logicalOR : types.logicalAND, 2) + return this.finishOp(code === 124 ? types$1.logicalOR : types$1.logicalAND, 2) } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(code === 124 ? types.bitwiseOR : types.bitwiseAND, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(code === 124 ? types$1.bitwiseOR : types$1.bitwiseAND, 1) }; -pp$9.readToken_caret = function() { // '^' +pp.readToken_caret = function() { // '^' var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.bitwiseXOR, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.bitwiseXOR, 1) }; -pp$9.readToken_plus_min = function(code) { // '+-' +pp.readToken_plus_min = function(code) { // '+-' var next = this.input.charCodeAt(this.pos + 1); if (next === code) { if (next === 45 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 62 && @@ -4928,19 +4946,19 @@ pp$9.readToken_plus_min = function(code) { // '+-' this.skipSpace(); return this.nextToken() } - return this.finishOp(types.incDec, 2) + return this.finishOp(types$1.incDec, 2) } - if (next === 61) { return this.finishOp(types.assign, 2) } - return this.finishOp(types.plusMin, 1) + if (next === 61) { return this.finishOp(types$1.assign, 2) } + return this.finishOp(types$1.plusMin, 1) }; -pp$9.readToken_lt_gt = function(code) { // '<>' +pp.readToken_lt_gt = function(code) { // '<>' var next = this.input.charCodeAt(this.pos + 1); var size = 1; if (next === code) { size = code === 62 && this.input.charCodeAt(this.pos + 2) === 62 ? 3 : 2; - if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types.assign, size + 1) } - return this.finishOp(types.bitShift, size) + if (this.input.charCodeAt(this.pos + size) === 61) { return this.finishOp(types$1.assign, size + 1) } + return this.finishOp(types$1.bitShift, size) } if (next === 33 && code === 60 && !this.inModule && this.input.charCodeAt(this.pos + 2) === 45 && this.input.charCodeAt(this.pos + 3) === 45) { @@ -4950,53 +4968,53 @@ pp$9.readToken_lt_gt = function(code) { // '<>' return this.nextToken() } if (next === 61) { size = 2; } - return this.finishOp(types.relational, size) + return this.finishOp(types$1.relational, size) }; -pp$9.readToken_eq_excl = function(code) { // '=!' +pp.readToken_eq_excl = function(code) { // '=!' var next = this.input.charCodeAt(this.pos + 1); - if (next === 61) { return this.finishOp(types.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) } + if (next === 61) { return this.finishOp(types$1.equality, this.input.charCodeAt(this.pos + 2) === 61 ? 3 : 2) } if (code === 61 && next === 62 && this.options.ecmaVersion >= 6) { // '=>' this.pos += 2; - return this.finishToken(types.arrow) + return this.finishToken(types$1.arrow) } - return this.finishOp(code === 61 ? types.eq : types.prefix, 1) + return this.finishOp(code === 61 ? types$1.eq : types$1.prefix, 1) }; -pp$9.readToken_question = function() { // '?' +pp.readToken_question = function() { // '?' var ecmaVersion = this.options.ecmaVersion; if (ecmaVersion >= 11) { var next = this.input.charCodeAt(this.pos + 1); if (next === 46) { var next2 = this.input.charCodeAt(this.pos + 2); - if (next2 < 48 || next2 > 57) { return this.finishOp(types.questionDot, 2) } + if (next2 < 48 || next2 > 57) { return this.finishOp(types$1.questionDot, 2) } } if (next === 63) { if (ecmaVersion >= 12) { var next2$1 = this.input.charCodeAt(this.pos + 2); - if (next2$1 === 61) { return this.finishOp(types.assign, 3) } + if (next2$1 === 61) { return this.finishOp(types$1.assign, 3) } } - return this.finishOp(types.coalesce, 2) + return this.finishOp(types$1.coalesce, 2) } } - return this.finishOp(types.question, 1) + return this.finishOp(types$1.question, 1) }; -pp$9.readToken_numberSign = function() { // '#' +pp.readToken_numberSign = function() { // '#' var ecmaVersion = this.options.ecmaVersion; var code = 35; // '#' if (ecmaVersion >= 13) { ++this.pos; code = this.fullCharCodeAtPos(); if (isIdentifierStart(code, true) || code === 92 /* '\' */) { - return this.finishToken(types.privateId, this.readWord1()) + return this.finishToken(types$1.privateId, this.readWord1()) } } - this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); + this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); }; -pp$9.getTokenFromCode = function(code) { +pp.getTokenFromCode = function(code) { switch (code) { // The interpretation of a dot depends on whether it is followed // by a digit or another two dots. @@ -5004,20 +5022,20 @@ pp$9.getTokenFromCode = function(code) { return this.readToken_dot() // Punctuation tokens. - case 40: ++this.pos; return this.finishToken(types.parenL) - case 41: ++this.pos; return this.finishToken(types.parenR) - case 59: ++this.pos; return this.finishToken(types.semi) - case 44: ++this.pos; return this.finishToken(types.comma) - case 91: ++this.pos; return this.finishToken(types.bracketL) - case 93: ++this.pos; return this.finishToken(types.bracketR) - case 123: ++this.pos; return this.finishToken(types.braceL) - case 125: ++this.pos; return this.finishToken(types.braceR) - case 58: ++this.pos; return this.finishToken(types.colon) + case 40: ++this.pos; return this.finishToken(types$1.parenL) + case 41: ++this.pos; return this.finishToken(types$1.parenR) + case 59: ++this.pos; return this.finishToken(types$1.semi) + case 44: ++this.pos; return this.finishToken(types$1.comma) + case 91: ++this.pos; return this.finishToken(types$1.bracketL) + case 93: ++this.pos; return this.finishToken(types$1.bracketR) + case 123: ++this.pos; return this.finishToken(types$1.braceL) + case 125: ++this.pos; return this.finishToken(types$1.braceR) + case 58: ++this.pos; return this.finishToken(types$1.colon) case 96: // '`' if (this.options.ecmaVersion < 6) { break } ++this.pos; - return this.finishToken(types.backQuote) + return this.finishToken(types$1.backQuote) case 48: // '0' var next = this.input.charCodeAt(this.pos + 1); @@ -5040,7 +5058,6 @@ pp$9.getTokenFromCode = function(code) { // often referred to. `finishOp` simply skips the amount of // characters it is given as second argument, and returns a token // of the type given by its first argument. - case 47: // '/' return this.readToken_slash() @@ -5066,22 +5083,22 @@ pp$9.getTokenFromCode = function(code) { return this.readToken_question() case 126: // '~' - return this.finishOp(types.prefix, 1) + return this.finishOp(types$1.prefix, 1) case 35: // '#' return this.readToken_numberSign() } - this.raise(this.pos, "Unexpected character '" + codePointToString$1(code) + "'"); + this.raise(this.pos, "Unexpected character '" + codePointToString(code) + "'"); }; -pp$9.finishOp = function(type, size) { +pp.finishOp = function(type, size) { var str = this.input.slice(this.pos, this.pos + size); this.pos += size; return this.finishToken(type, str) }; -pp$9.readRegexp = function() { +pp.readRegexp = function() { var escaped, inClass, start = this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(start, "Unterminated regular expression"); } @@ -5116,14 +5133,14 @@ pp$9.readRegexp = function() { // https://github.com/estree/estree/blob/a27003adf4fd7bfad44de9cef372a2eacd527b1c/es5.md#regexpliteral } - return this.finishToken(types.regexp, {pattern: pattern, flags: flags, value: value}) + return this.finishToken(types$1.regexp, {pattern: pattern, flags: flags, value: value}) }; // Read an integer in the given radix. Return null if zero digits // were read, the integer value otherwise. When `len` is given, this // will return `null` unless the integer has exactly `len` digits. -pp$9.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { +pp.readInt = function(radix, len, maybeLegacyOctalNumericLiteral) { // `len` is used for character escape sequences. In that case, disallow separators. var allowSeparators = this.options.ecmaVersion >= 12 && len === undefined; @@ -5177,7 +5194,7 @@ function stringToBigInt(str) { return BigInt(str.replace(/_/g, "")) } -pp$9.readRadixNumber = function(radix) { +pp.readRadixNumber = function(radix) { var start = this.pos; this.pos += 2; // 0x var val = this.readInt(radix); @@ -5186,12 +5203,12 @@ pp$9.readRadixNumber = function(radix) { val = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; } else if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } - return this.finishToken(types.num, val) + return this.finishToken(types$1.num, val) }; // Read an integer, octal integer, or floating-point number. -pp$9.readNumber = function(startsWithDot) { +pp.readNumber = function(startsWithDot) { var start = this.pos; if (!startsWithDot && this.readInt(10, undefined, true) === null) { this.raise(start, "Invalid number"); } var octal = this.pos - start >= 2 && this.input.charCodeAt(start) === 48; @@ -5201,7 +5218,7 @@ pp$9.readNumber = function(startsWithDot) { var val$1 = stringToBigInt(this.input.slice(start, this.pos)); ++this.pos; if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } - return this.finishToken(types.num, val$1) + return this.finishToken(types$1.num, val$1) } if (octal && /[89]/.test(this.input.slice(start, this.pos))) { octal = false; } if (next === 46 && !octal) { // '.' @@ -5217,12 +5234,12 @@ pp$9.readNumber = function(startsWithDot) { if (isIdentifierStart(this.fullCharCodeAtPos())) { this.raise(this.pos, "Identifier directly after number"); } var val = stringToNumber(this.input.slice(start, this.pos), octal); - return this.finishToken(types.num, val) + return this.finishToken(types$1.num, val) }; // Read a string value, interpreting backslash-escapes. -pp$9.readCodePoint = function() { +pp.readCodePoint = function() { var ch = this.input.charCodeAt(this.pos), code; if (ch === 123) { // '{' @@ -5237,14 +5254,14 @@ pp$9.readCodePoint = function() { return code }; -function codePointToString$1(code) { +function codePointToString(code) { // UTF-16 Decoding if (code <= 0xFFFF) { return String.fromCharCode(code) } code -= 0x10000; return String.fromCharCode((code >> 10) + 0xD800, (code & 1023) + 0xDC00) } -pp$9.readString = function(quote) { +pp.readString = function(quote) { var out = "", chunkStart = ++this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(this.start, "Unterminated string constant"); } @@ -5267,14 +5284,14 @@ pp$9.readString = function(quote) { } } out += this.input.slice(chunkStart, this.pos++); - return this.finishToken(types.string, out) + return this.finishToken(types$1.string, out) }; // Reads template string tokens. var INVALID_TEMPLATE_ESCAPE_ERROR = {}; -pp$9.tryReadTemplateToken = function() { +pp.tryReadTemplateToken = function() { this.inTemplateElement = true; try { this.readTmplToken(); @@ -5289,7 +5306,7 @@ pp$9.tryReadTemplateToken = function() { this.inTemplateElement = false; }; -pp$9.invalidStringToken = function(position, message) { +pp.invalidStringToken = function(position, message) { if (this.inTemplateElement && this.options.ecmaVersion >= 9) { throw INVALID_TEMPLATE_ESCAPE_ERROR } else { @@ -5297,23 +5314,23 @@ pp$9.invalidStringToken = function(position, message) { } }; -pp$9.readTmplToken = function() { +pp.readTmplToken = function() { var out = "", chunkStart = this.pos; for (;;) { if (this.pos >= this.input.length) { this.raise(this.start, "Unterminated template"); } var ch = this.input.charCodeAt(this.pos); if (ch === 96 || ch === 36 && this.input.charCodeAt(this.pos + 1) === 123) { // '`', '${' - if (this.pos === this.start && (this.type === types.template || this.type === types.invalidTemplate)) { + if (this.pos === this.start && (this.type === types$1.template || this.type === types$1.invalidTemplate)) { if (ch === 36) { this.pos += 2; - return this.finishToken(types.dollarBraceL) + return this.finishToken(types$1.dollarBraceL) } else { ++this.pos; - return this.finishToken(types.backQuote) + return this.finishToken(types$1.backQuote) } } out += this.input.slice(chunkStart, this.pos); - return this.finishToken(types.template, out) + return this.finishToken(types$1.template, out) } if (ch === 92) { // '\' out += this.input.slice(chunkStart, this.pos); @@ -5344,7 +5361,7 @@ pp$9.readTmplToken = function() { }; // Reads a template token to search for the end, without validating any escape sequences -pp$9.readInvalidTemplateToken = function() { +pp.readInvalidTemplateToken = function() { for (; this.pos < this.input.length; this.pos++) { switch (this.input[this.pos]) { case "\\": @@ -5355,10 +5372,10 @@ pp$9.readInvalidTemplateToken = function() { if (this.input[this.pos + 1] !== "{") { break } - // falls through + // falls through case "`": - return this.finishToken(types.invalidTemplate, this.input.slice(this.start, this.pos)) + return this.finishToken(types$1.invalidTemplate, this.input.slice(this.start, this.pos)) // no default } @@ -5368,14 +5385,14 @@ pp$9.readInvalidTemplateToken = function() { // Used to read escaped characters -pp$9.readEscapedChar = function(inTemplate) { +pp.readEscapedChar = function(inTemplate) { var ch = this.input.charCodeAt(++this.pos); ++this.pos; switch (ch) { case 110: return "\n" // 'n' -> '\n' case 114: return "\r" // 'r' -> '\r' case 120: return String.fromCharCode(this.readHexChar(2)) // 'x' - case 117: return codePointToString$1(this.readCodePoint()) // 'u' + case 117: return codePointToString(this.readCodePoint()) // 'u' case 116: return "\t" // 't' -> '\t' case 98: return "\b" // 'b' -> '\b' case 118: return "\u000b" // 'v' -> '\u000b' @@ -5433,7 +5450,7 @@ pp$9.readEscapedChar = function(inTemplate) { // Used to read character escape sequences ('\x', '\u', '\U'). -pp$9.readHexChar = function(len) { +pp.readHexChar = function(len) { var codePos = this.pos; var n = this.readInt(16, len); if (n === null) { this.invalidStringToken(codePos, "Bad character escape sequence"); } @@ -5446,7 +5463,7 @@ pp$9.readHexChar = function(len) { // Incrementally adds only escaped chars, adding other chunks as-is // as a micro-optimization. -pp$9.readWord1 = function() { +pp.readWord1 = function() { this.containsEsc = false; var word = "", first = true, chunkStart = this.pos; var astral = this.options.ecmaVersion >= 6; @@ -5464,7 +5481,7 @@ pp$9.readWord1 = function() { var esc = this.readCodePoint(); if (!(first ? isIdentifierStart : isIdentifierChar)(esc, astral)) { this.invalidStringToken(escStart, "Invalid Unicode escape"); } - word += codePointToString$1(esc); + word += codePointToString(esc); chunkStart = this.pos; } else { break @@ -5477,18 +5494,18 @@ pp$9.readWord1 = function() { // Read an identifier or keyword token. Will check for reserved // words when necessary. -pp$9.readWord = function() { +pp.readWord = function() { var word = this.readWord1(); - var type = types.name; + var type = types$1.name; if (this.keywords.test(word)) { - type = keywords$1[word]; + type = keywords[word]; } return this.finishToken(type, word) }; // Acorn is a tiny, fast JavaScript parser written in JavaScript. -var version = "8.5.0"; +var version = "8.6.0"; Parser.acorn = { Parser: Parser, @@ -5499,10 +5516,10 @@ Parser.acorn = { getLineInfo: getLineInfo, Node: Node, TokenType: TokenType, - tokTypes: types, - keywordTypes: keywords$1, + tokTypes: types$1, + keywordTypes: keywords, TokContext: TokContext, - tokContexts: types$1, + tokContexts: types, isIdentifierChar: isIdentifierChar, isIdentifierStart: isIdentifierStart, Token: Token, @@ -5538,4 +5555,4 @@ function tokenizer(input, options) { return Parser.tokenizer(input, options) } -export { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords$1 as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types$1 as tokContexts, types as tokTypes, tokenizer, version }; +export { Node, Parser, Position, SourceLocation, TokContext, Token, TokenType, defaultOptions, getLineInfo, isIdentifierChar, isIdentifierStart, isNewLine, keywords as keywordTypes, lineBreak, lineBreakG, nonASCIIwhitespace, parse, parseExpressionAt, types as tokContexts, types$1 as tokTypes, tokenizer, version }; diff --git a/deps/acorn/acorn/dist/bin.js b/deps/acorn/acorn/dist/bin.js index d35d6ee9909209..675cab9ac89cae 100644 --- a/deps/acorn/acorn/dist/bin.js +++ b/deps/acorn/acorn/dist/bin.js @@ -4,6 +4,26 @@ var path = require('path'); var fs = require('fs'); var acorn = require('./acorn.js'); +function _interopNamespace(e) { + if (e && e.__esModule) return e; + var n = Object.create(null); + if (e) { + Object.keys(e).forEach(function (k) { + if (k !== 'default') { + var d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: function () { return e[k]; } + }); + } + }); + } + n["default"] = e; + return Object.freeze(n); +} + +var acorn__namespace = /*#__PURE__*/_interopNamespace(acorn); + var inputFilePaths = [], forceFileName = false, fileMode = false, silent = false, compact = false, tokenize = false; var options = {}; @@ -44,14 +64,14 @@ function run(codeList) { codeList.forEach(function (code, idx) { fileIdx = idx; if (!tokenize) { - result = acorn.parse(code, options); + result = acorn__namespace.parse(code, options); options.program = result; } else { - var tokenizer = acorn.tokenizer(code, options), token; + var tokenizer = acorn__namespace.tokenizer(code, options), token; do { token = tokenizer.getToken(); result.push(token); - } while (token.type !== acorn.tokTypes.eof) + } while (token.type !== acorn__namespace.tokTypes.eof) } }); } catch (e) { diff --git a/deps/acorn/acorn/package.json b/deps/acorn/acorn/package.json index 138b7873d373b3..e242a235e00c84 100644 --- a/deps/acorn/acorn/package.json +++ b/deps/acorn/acorn/package.json @@ -16,7 +16,7 @@ ], "./package.json": "./package.json" }, - "version": "8.5.0", + "version": "8.6.0", "engines": {"node": ">=0.4.0"}, "maintainers": [ { diff --git a/deps/cares/CHANGES b/deps/cares/CHANGES new file mode 100644 index 00000000000000..fcdc0437ae4600 --- /dev/null +++ b/deps/cares/CHANGES @@ -0,0 +1,5121 @@ + Changelog for the c-ares project. Generated with git2changes.pl + +Version 1.18.1 (26 Oct 2021) + +bradh352 (26 Oct 2021) +- missed version + +- 1.18.1 release prep + +- ares_getaddrinfo() was returning the wrong size for ai_addrlen + + ai_addrlen was erroneously returning 16 bytes instead of the + sizeof(struct sockaddr_in6). This is a regression introduced + in 1.18.0. + + Reported by: James Brown + Fix By: Brad House (@bradh352) + +- Windows: autotools force linking to iphlpapi + +GitHub (26 Oct 2021) +- [Gregor Jasny brought this change] + + Fix typo detected by lintian (#434) + + typo in docs for ares_parse_uri_reply + + Fix By: Gregor Jasny (@gjasny) + +Version 1.18.0 (25 Oct 2021) + +bradh352 (25 Oct 2021) +- replace Travis badge with Cirrus-CI badge + +- c-ares 1.18.0 release prep + +GitHub (21 Oct 2021) +- [Jérôme Duval brought this change] + + Haiku: port (#431) + + Port for Haiku. Slight CMake changes, header changes, and resolv.conf/hosts paths specific to Haiku. + + Port By: Jérôme Duval (@korli) + +bradh352 (19 Oct 2021) +- valgrind: fix reported invalid read + +- make sure distcheck runs + +- detect oddities and skip test if necessary + +- fix null ptr deref in strlen + +- bend over backwards for testing file access, something is weird on debian + +- chmod(fn, 0) is failing on debian + +- maybe process needs to be called + +- split test output + +- clean up a couple of compiler warnings + +- use helper function for addrinfo to simplify code + +- INSTANTIATE_TEST_CASE_P -> INSTANTIATE_TEST_SUITE_P as new convention in googletest + +- gmock: update from 1.8.0 to 1.11.0 + +- Cirrus-CI: fix debian arm build + +- Cirrus-CI: more updates for proper testing + +- install proper packages for asan and analyze + +- fix crash in tests + +- try to disable container tests + +- need g++ for tests on debian + +- try cirrus-ci again + +- whitespace + +- start bringing up cirrus-ci + +- prep for adding new ci + +- fix cut and paste error + +GitHub (18 Oct 2021) +- [Brad House brought this change] + + RFC6761: special case "localhost" (#430) + + As per RFC6761 Section 6.3, "localhost" lookups need to be special cased to return loopback addresses, and not forward queries to recursive dns servers. + + We first look up via files (/etc/hosts or equivalent), and if that fails, we then attempt a system-specific address enumeration for loopback addresses (currently Windows-only), and finally fallback to ::1 and 127.0.0.1. + + Fix By: Brad House (@bradh352) + Fixes Bug: #399 + +- [Brad House brought this change] + + Reimplement ares_gethostbyname() by wrapping ares_getaddrinfo() (#428) + + ares_gethostbyname() and ares_getaddrinfo() do a lot of similar things, however ares_getaddrinfo() has some desirable behaviors that should be imported into ares_gethostbyname(). For one, it sorts the address lists for the most likely to succeed based on the current system routes. Next, when AF_UNSPEC is specified, it properly handles search lists instead of first searching all of AF_INET6 then AF_INET, since ares_gethostbyname() searches in parallel. Therefore, this PR should also resolve the issues attempted in #94. + + A few things this PR does: + + 1. ares_parse_a_reply() and ares_parse_aaaa_reply() had very similar code to translate struct ares_addrinfo into a struct hostent as well as into struct ares_addrttl/ares_addr6ttl this has been split out into helper functions of ares__addrinfo2hostent() and ares__addrinfo2addrttl() to prevent this duplicative code. + + 2. ares_getaddrinfo() was apparently never honoring HOSTALIASES, and this was discovered once ares_gethostbyname() was turned into a wrapper, the affected test cases started failing. + + 3. A slight API modification to save the query hostname into struct ares_addrinfo as the last element of name. Since this is the last element, and all user-level instances of struct ares_addrinfo are allocated internally by c-ares, this is not an ABI-breaking change nor would it impact any API compatibility. This was needed since struct hostent has an h_name element. + + 4. Test Framework: MockServer tests via TCP would fail if more than 1 request was received at a time which is common when ares_getaddrinfo() queries for both A and AAAA records simultaneously. Infact, this was a long standing issue in which the ares_getaddrinfo() test were bypassing TCP alltogether. This has been corrected, the message is now processed in a loop. + + 5. Some tests had to be updated for overall correctness as they were invalid but somehow passing prior to this change. + + Change By: Brad House (@bradh352) + +bradh352 (9 Oct 2021) +- ares_getaddrinfo() missing sanity check to fix #426 + +- ares_getaddrinfo(): continue to next domain in search if query returns ARES_ENODATA + + Some DNS servers may behave badly and return a valid response with no data, in this + case, continue on to the next search domain, but cache the result. + + Fixes Bug: #426 + Fix By: Brad House (@bradh352) + +- Allow '/' as a valid character for a returned name + + As of c-ares 1.17.2, a CNAME an in-addr.arpa delegation broke due + to not allowing '/'. This needs to be allowed to not break valid + functionality. + + Fixes Bug: #427 + Reported By: Adrian (@leftshift) + Fix By: Brad House (@bradh352) + +Daniel Stenberg (5 Oct 2021) +- libcares.pc.in: update the URL + +bradh352 (8 Sep 2021) +- ares_expand_name should allow underscores (_) as SRV records legitimately use them + + c-ares 1.17.2 introduced response validation to prevent a security issue, however + it did not have (_) listed as a valid character for domain name responses which + caused issues when a CNAME referenced a SRV record which contained underscores. + + While RFC2181 section 11 does explicitly state not to do validation, that applies + to servers not clients. + + Fixes: #424 + Fix By: Brad House (@bradh352) + +Daniel Stenberg (7 Sep 2021) +- domain: update to use c-ares.org + + Closes #423 + +- mailing list: moved to lists.haxx.se + +GitHub (3 Sep 2021) +- [Biswapriyo Nath brought this change] + + CMake: Fix build in cygwin (#422) + + As cygwin environment has both socket.h and winsock2.h headers check WIN32 not to include the later one here + + Fix By: Biswapriyo Nath (@Biswa96) + +bradh352 (23 Aug 2021) +- make building more verbose + +- add appveyor cmake/mingw static-only build + +GitHub (17 Aug 2021) +- [Sinan Kaya brought this change] + + CMake: lower case advapi32 for cross-building with mingw (#420) + + When cross compiling with yocto's meta-mingw layer, getting a dependency + error. + + This is caused by the fact that advapi32 is lower case in mingw builds. + + Fix By: Sinan Kaya + +bradh352 (17 Aug 2021) +- autotools: add ax_check_gnu_make.m4 + +- autotools: add ax_require_defined.m4 + +- autotools: dont use newer AC_CHECK_INCLUDES_DEFAULT, don't quote AC_ERROR_MSG + +- import more files needed by newer ax_code_coverage.m4 + +- import more files needed by newer ax_code_coverage.m4 + +- work around autoreconf -fiv first call returning 'error: too many loops' + +- restore zz40-xc-ovr.m4 + +- autotools: processed configure.ac through autoupdate + +- autotools. update ax_code_coverage.m4 to latest. don't use deprecated AC_HELP_STRING + +- pull out some old autotools cruft + +GitHub (17 Aug 2021) +- [Felix Yan brought this change] + + Provide ares_nameser.h as a public interface (#417) + + NodeJS needs ares_nameser.h as a pubic header. + + Fixes: #415 + Fix By: Felix Yan (@felixonmars) + +- [Felix Yan brought this change] + + Fix building when latest ax_code_coverage.m4 is imported (#418) + + ax_code_coverage.m4 dropped the @CODE_COVERAGE_RULES@ macro, so we need to switch to the latest recommendation from the m4 file. This requires updates to Makefile.am. + + Fix By: Felix Yan (@felixonmars) + +bradh352 (12 Aug 2021) +- bump version to match current release + +GitHub (12 Aug 2021) +- [dhrumilrana brought this change] + + z/OS minor update, add missing semicolon in ares_init.c (#414) + + Build fix for z/OS + + Fix by: Dhrumil Rana (@dhrumilrana) + +- [Daniel Bevenius brought this change] + + add build to .gitignore (#410) + + This commit adds the build directory to be ignored by git. + + The motivation for adding this to .gitignore as opposed to + .git/info/exclude is that the CMake example in INSTALL.md uses build + as the name of the directory to be used by CMake. This will cause + git to report build as an untracked file. + + Fix By: Daniel Bevenius (@danbev) + +- [Martin Holeš brought this change] + + Add support for URI(Uniform Resource Identifier) records. (#411) + + Add ares_parse_uri_reply() for parsing URI DNS replies. + + Fix By: Martin Holeš (@martin-256) + +Daniel Stenberg (10 Aug 2021) +- ares_getaddrinfo.3: available since 1.16.0 + +- README.md: use https:// links + +Version 1.17.2 (24 Jul 2021) + +bradh352 (24 Jul 2021) +- fix typo + +- prep for 1.17.2 release + +GitHub (30 Jun 2021) +- [jeanpierrecartal brought this change] + + Replace strdup() with ares_strdup() (#408) + + strdup() is used in src/lib/ares_parse_a_reply.c and src/lib/ares_parse_aaaa_reply.c whereas allocated memory is freed using ares_free(). + + Bug: 407 + Fix By: Jean-pierre Cartal (@jeanpierrecartal) + +- [Brad House brought this change] + + Validate hostnames in DNS responses and discard from malicious servers (#406) + + To prevent possible users having XSS issues due to intentionally malformed DNS replies, validate hostnames returned in responses and return EBADRESP if they are not valid. + + It is not clear what legitimate issues this may cause at this point. + + Bug Reported By: philipp.jeitner@sit.fraunhofer.de + Fix By: Brad House (@bradh352) + +bradh352 (11 Jun 2021) +- ares_expand_name(): fix formatting and handling of root name response + + Fixes issue introduced in prior commit with formatting and handling + of parsing a root name response which should not be escaped. + + Fix By: Brad House + +- ares_expand_name() should escape more characters + + RFC1035 5.1 specifies some reserved characters and escaping sequences + that are allowed to be specified. Expand the list of reserved characters + and also escape non-printable characters using the \DDD format as + specified in the RFC. + + Bug Reported By: philipp.jeitner@sit.fraunhofer.de + Fix By: Brad House (@bradh352) + +GitHub (15 Apr 2021) +- [HALX99 brought this change] + + Fix can't get dns server on macos and ios (#401) + + If DNS configuration didn't include search domains on MacOS (or iOS) it would throw an error instead of ignoring. + + Fix By: @halx99 + +- [catalinh-bd brought this change] + + Bugfix/crash in ares sortaddrinfo (#400) + + The bug was generated because there was no check for the number + of items in the list and invalid memory was accesed when the list + was empty. There is a check for null after calling malloc but on + some systems it always returns a valid address for size equals 0. + Relates To: #392, 0903dcecabca283d0fa771632892dc7592b7a66d + + Fix By: @catalinh-bd + +bradh352 (2 Mar 2021) +- Null deref if ares_getaddrinfo() is terminated with ares_destroy() + + ares_freeaddrinfo() was not checking for a Null ptr during cleanup of + an aborted query. + + Once that was resolved it uncovered another possible issue with + multiple simultaneous underlying queries being outstanding and + possibly prematurely cleaning up the handle. + + Reported By: Michael Kourlas + Fix By: Brad House (@bradh352) + +GitHub (18 Feb 2021) +- [Brad House brought this change] + + CMake: RANDOM_FILE not defined #397 + + RANDOM_FILE was never defined by cmake, causing RC4 key generation to use the less secure rand() method. + + Also, due to clashes with chain-building from other projects (e.g. curl) that may define RANDOM_FILE, this was renamed to CARES_RANDOM_FILE. + + This is the proposed change for #396 + + Fix By: Brad House (@bradh352) + +- [Anton Danielsson brought this change] + + CMake: fix Make install for iOS/MacOS (#395) + + INSTALL TARGETS were missing the BUNDLE DESTINATION + + Fix By: Anton Danielsson (@anton-danielsson) + +- [František Dvořák brought this change] + + Fix build with autotools out of source tree (#394) + + Add missing include directory, which fixes the build with autotools in separated build directory. + + Fix By: František Dvořák (@valtri) + +bradh352 (15 Jan 2021) +- fuzzing: HAVE_CONFIG_H may not be defined so cannot include ares_setup.h. Its not needed even though we include ares_nameser.h + +- remove redundant header checks + +- properly detect netinet/tcp.h on openbsd + +- more portability updates + +- renamed nameser.h to ares_nameser.h requires Makefile.inc update for distributed files + +- more portability updates + +- remove bad files + +- portability updates for test cases + +- Portability Updates for arpa/nameser.h (#388) + + There is too much inconsistency between platforms for arpa/nameser.h and arpa/nameser_compat.h for the way the current files are structured. Still load the respective system files but make our private nameser.h more forgiving. + + Fixes: #388 + Fix By: Brad House (@bradh352) + +- ares_parse_ptr_reply() handle NULL for addr/addr_len. Fixes #392 + + NodeJS passes NULL for addr and 0 for addrlen parameters to ares_parse_ptr_reply(). On systems where malloc(0) returned NULL, this would cause the function to return ARES_ENOMEM, but the cleanup wasn't handled properly and would crash. + + This patche fixes that bug, and also hardens ares_free_hostent() to not leak memory during cleanup. + + Fixes: #392 + Fix By: Brad House (@bradh352) + +- Define behavior of malloc(0) + + Some systems may return either NULL or a valid pointer on malloc(0). c-ares should never call malloc(0) so lets return NULL so we're more likely to find an issue if it were to occur. + +GitHub (24 Dec 2020) +- [dhrumilrana brought this change] + + z/OS: port (#390) + + Port c-ares to z/OS. + + Fix By: Dhrumil Rana (@dhrumilrana) + +- [vburdo brought this change] + + Use unbuffered stdio for /dev/urandom to read only requested data (#391) + + Buffered fread() reads 4096 bytes which is completely unnecessary and potentially may cause problems. + I discovered this on private linux configuration where custom /dev/urandom implementation has poor performance. + + Fix By: @vburdo + +- [Jay Freeman (saurik) brought this change] + + This relative header #include needs to use quotes. (#386) + + Fix By: Jay Freeman (@saurik) + +bradh352 (23 Nov 2020) +- Win32: Fix tools build with autotools static library + When c-ares is being built as static on Win32, CARES_STATICLIB must + be defined, but it wasn't being pulled in for the tools. + + Fixes: #384 + Fix By: Brad House (@bradh352) + +- Loosen requirements for static c-ares library when building tests + + It appears that when building tests, it would hardcode enabling building + of the c-ares static library. This was probably due to Windows limitations + in symbol visibility. + + This change will use the static library if it exists for tests, always. + Otherwise, it will only forcibly enable static libraries for tests on + Windows. + + Fixes: #380 + Fix By: Brad House (@bradh352) + +- Remove legacy comment about ahost/acountry/adig targets + +- Distribute fuzzinput/fuzznames for fuzz tests + + The fuzz test files were not being distributed. This doesn't appear to be + a regression, it looks like they have never been distributed. + + Fixes: #379 + Fix By: Brad House (@bradh352) + +Version 1.17.1 (19 Nov 2020) + +GitHub (19 Nov 2020) +- [Brad House brought this change] + + Travis: add iOS target built with CMake (#378) + + Issue #377 suggested that CMake builds for iOS with c-ares were broken. This PR adds an automatic Travis build for iOS CMake. + + Fix By: Brad House (@bradh352) + +bradh352 (18 Nov 2020) +- fix build + +GitHub (18 Nov 2020) +- [Fabrice Fontaine brought this change] + + External projects were using non-public header ares_dns.h, make public again (#376) + + It appears some outside projects were relying on macros in ares_dns.h, even though it doesn't appear that header was ever meant to be public. That said, we don't want to break external integrators so we should distribute this header again. + + Fix By: Fabrice Fontaine (@ffontaine) + +bradh352 (17 Nov 2020) +- note that so versioning has moved to configure.ac + +- note about 1.17.1 + +- fix sed gone wrong + +GitHub (17 Nov 2020) +- [Daniel Stenberg brought this change] + + autotools cleanup (#372) + + * remove: install-sh mkinstalldirs + + They're generated when needed, no need to store in it. + + * buildconf: remove custom logic with autoreconf + + Fix By: Daniel Stenberg (@bagder) + +bradh352 (17 Nov 2020) +- attempt to fix 1.17.0 release distribution issues + +Version 1.17.0 (16 Nov 2020) + +bradh352 (16 Nov 2020) +- 1.17.0 release prep + +- ares_getaddrinfo(): duplicate hints ai_socktype and ai_protocol into output + + ai_socktype and ai_protocol were ignored from the hints input. They are now + duplicated into the output as expected. Currently no sanity checks on + proper values are taking place. + + Fixes: #317 + Fix By: Brad House (@bradh352) + +- ares_parse_{a,aaaa}_reply could return larger *naddrttls than passed in + + If there are more ttls returned than the maximum provided by the requestor, then + the *naddrttls response would be larger than the actual number of elements in + the addrttls array. + + This bug could lead to invalid memory accesses in applications using c-ares. + + This behavior appeared to break with PR #257 + + Fixes: #371 + Reported By: Momtchil Momtchev (@mmomtchev) + Fix By: Brad House (@bradh352) + +GitHub (5 Nov 2020) +- [Dustin Lundquist brought this change] + + docs: ares_set_local_ip4() uses host byte order (#368) + + Properly document brain-dead behavior of ares_set_local_ip4() using host byte order instead of expected network byte order. + + Fix By: Dustin Lundquist + +- [Łukasz Marszał brought this change] + + empty hquery->name could lead to invalid memory access (#367) + + If hquery->name is empty (=="\0"), &hquery->name[strlen(hquery->name)-1] would point to "random" place in memory. This is causing some of my address sanitizer tests to fail. + + Fix By: Łukasz Marszał (@lmarszal) + +bradh352 (28 Sep 2020) +- Fix OSSFuzz reported issue in CAA reply parsing + + OSS-Fuzz is reporting a use-of-uninitialized-value: + https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=26012 + + Reported By: David Drysdale (@daviddrysdale) + +GitHub (26 Sep 2020) +- [David Hotham brought this change] + + fuzz CAA parsing (#363) + + Add fuzz support for CAA parsing + + Fix By: David Hotham (@dimbleby) + +- [Daniela Sonnenschein brought this change] + + Allow parsing of CAA Resource Record (#360) + + CAA (Certification Authority Authorization) was introduced in RFC 6844. + This has been obsoleted by RFC 8659. This commit added the possibility + to query CAA resource records with adig and adds a parser for CAA + records, that can be used in conjunction with ares_query(3). + + Closes Bug: #292 + Fix By: Daniela Sonnenschein (@lxdicted) + +Daniel Stenberg (17 Sep 2020) +- docs: remove the html and pdf make targets + + They're rarely used in our daily work flow and mostly just add friction, + + Closes #362 + +bradh352 (14 Sep 2020) +- ares_process needs to always include nameser.h as it has compat + +- Define T_OPT if system doesn't provide it + +GitHub (12 Sep 2020) +- [Gisle Vanem brought this change] + + Change the mailman links (#358) + + Links when wrapping become misleading. Insert newline to prevent wrapping. + + Fix By: Gisle Vanem (@gvanem) + +- [Gisle Vanem brought this change] + + [adig] Update man-page for the '-x' option (#357) + + Fix By: Gisle Vanem (@gvanem) + +- [Gisle Vanem brought this change] + + [adig] add '-x' option. (#356) + + Added a 'dig-style' '-x' option. Also support '-xx' for a + IPv6 bit-string PTR query. + + Fix By: Gisle Vanem (@gvanem) + +bradh352 (12 Sep 2020) +- fix indentation + +- ns_t_opt -> T_OPT + +GitHub (12 Sep 2020) +- [Gisle Vanem brought this change] + + Fixes for Watt-32 on djgpp + Windows (#355) + + No longer any relation to libcurl since '/packages/DOS/common.dj' is dropped. + This Makefile.dj has been tested on Win-10 only (using the Windows hosted djgpp cross compiler). + + Fix By: Gisle Vanem (@gvanem) + +- [Gisle Vanem brought this change] + + Fixes for Watt-32 on Windows and MSDOS (#354) + + Move the prototype to 'ares_private.h'. + + Fix By: Gisle Vanem (@gvanem) + +bradh352 (11 Sep 2020) +- update path for include + +- remove stale information + +- remove stale information + +Brad House (9 Sep 2020) +- silence compiler warnings + +- Remove stale msvc files from makefile + +GitHub (9 Sep 2020) +- [Brad House brought this change] + + Reorganize source tree (#349) + + Originally started by Daniel Stenberg (@bagder) with #123, this patch reorganizes the c-ares source tree to have a more modern layout. It also fixes out of tree builds for autotools, and automatically builds the tests if tests are enabled. All tests are passing which tests each of the supported build systems (autotools, cmake, nmake, mingw gmake). There may be some edge cases that will have to be caught later on for things I'm not aware of. + + Fix By: Brad House (@bradh352) + +Brad House (1 Sep 2020) +- remove CURLDEBUG as per #82 + +GitHub (1 Sep 2020) +- [Erik Lax brought this change] + + Detect remote DNS server does not support EDNS as per RFC 6891 (#244) + + EDNS retry should be based on FORMERR returned without an OPT RR record as per https://tools.ietf.org/html/rfc6891#section-7 rather than just treating any unexpected error condition as a reason to disable EDNS on the channel. + + Fix By: Erik Lax (@eriklax) + +Brad House (27 Aug 2020) +- Fix for #345, don't use 'true' use 1 + +GitHub (27 Aug 2020) +- [Seraphime Kirkovski brought this change] + + ares_gethostbyname: Fix AF_UNSPEC support when using an ip address (#204) + + fake_hostent() was not supporting AF_UNSPEC, so when an ip address was specified when using AF_UNSPEC it would attempt to do a DNS lookup rather than returning a fake hostent using the ip address. + + Fix By: Seraphime Kirkovski (@Seraphime) + +- [apenn-msft brought this change] + + Tests should use dynamic system-assigned ports rather than static port (#346) + + The c-ares test suite was hardcoded to use port 5300 (and possibly 5301, 5302) for the test suite. Especially in containers, there may be no guarantee these ports are available and cause tests to fail when they could otherwise succeed. Instead, request the system to assign a port to use dynamically. This is now the default. To override, the test suite still takes the "-p " option as it always has and will honor that. + + Fix By: Anthony Penniston (@apenn-msft) + +Brad House (25 Aug 2020) +- Unset members of the addr struct contain garbage values (#343) + + When generating the ares_sockaddr data by getaddrinfo() it was only filling + in certain members while leaving others uninitialized. This left garbage + data if a user tried to use the unset values. memset() the ares_sockaddr + to 0 prior to filling in the values to prevent this. + + Reported By: @SmorkalovG + Fix By: Brad House (@bradh352) + +GitHub (24 Aug 2020) +- [Jonathan Maye-Hobbs brought this change] + + FQDN with trailing period should be queried first with larger ndot value (#345) + + If a query is performed for dynamodb.us-east-1.amazonaws.com. with ndots=5, it was attempting to search the search domains rather than just attempting the FQDN that was passed it. This patch now at least attempts the FQDN first. + + We may need to determine if we should abort any further searching, however as is probably intended. + + Fix by: Jonathan Maye-Hobbs (@wheelpharoah) + +- [Gisle Vanem brought this change] + + Update acountry.c country code list (#341) + + Updated country_list[]: + * 2-letter ISO-3166 country-codes. + * Add, rename some names + codes in accordance with latest table at https://en.wikipedia.org/wiki/ISO_3166-1. + + Fix By: Gisle Vanem (@gvanem) + +- [Bulat Gaifullin brought this change] + + Test case should honor flag HAVE_WRITEV rather than WIN32 (#344) + + Test cases where not honoring the HAVE_WRITEV flag but instead using WIN32 to determine if WRITEV was available or not. This patch fixes that. + + Fix By: Bulat Gaifullin (@bgaifullin) + +Brad House (18 Jul 2020) +- Ensure c89 support + + A couple of for loops in Mac-specific code were using integer declarations + inside a for loop. Move the declaration to the top of the preceding + code block to retain c89 compliance. + + Reported By: Jeffrey Walton + +GitHub (2 Jul 2020) +- [Fionn Fitzmaurice brought this change] + + Avoid buffer overflow in RC4 loop comparison (#336) + + The rc4 function iterates over a buffer of size buffer_len who's maximum + value is INT_MAX with a counter of type short that is not guaranteed to + have maximum size INT_MAX. + + In circumstances where short is narrower than int and where buffer_len + is larger than the maximum value of a short, it may be possible to loop + infinitely as counter will overflow and never be greater than or equal + to buffer_len. + + The solution is to make the comparison be between types of equal width. + This commit defines counter as an int. + + Fix By: Fionn Fitzmaurice (@fionn) + +- [anonymoushelpishere brought this change] + + Updated help information for adig, acountry, and ahost. (#334) + + Provide more descriptive help information for various utilities. + + Fix By: @anonymoushelpishere + +- [lutianxiong brought this change] + + avoid read-heap-buffer-overflow (#332) + + Fix invalid read in ares_parse_soa_reply.c found during fuzzing + + Fixes Bug: #333 + Fix By: lutianxiong (@ltx2018) + +- [Ivan Baidakou brought this change] + + Fix: sizeof(sizeof(addr.saX)) -> sizeof(addr.saX) in readaddrinfo (#331) + + Looks like a sed-gone-wrong, a sizeof inside of a sizeof. + + Fix By: Ivan Baidakou (@basiliscos) + +Version 1.16.1 (11 May 2020) + +Brad House (11 May 2020) +- c-ares 1.16.1 release prep + +- update travis to use xcode11.4 + +- Prevent possible double-free in ares_getaddrinfo() if ares_destroy() is called + + In the event that ares_destroy() is called prior to ares_getaddrinfo() completing, + it would result in an invalid read and double-free due to calling end_hquery() twice. + + Reported By: Jann Horn @ Google Project Zero + +GitHub (30 Apr 2020) +- [shelley vohr brought this change] + + fix: windows UNICODE incompatibilities with ares_getaddrinfo (#328) + + Fixes the following compatibility issues: + * Use RegQueryValueExA instead of RegQueryValueEx + * Use ExpandEnvironmentStringsA instead of ExpandEnvironmentStrings + * Use RegOpenKeyExA instead of RegOpenKeyExA + * Use GetWindowsDirectoryA instead of GetWindowsDirectoryA + + Fix By: Shelley Vohr (@codebytere) + Closes: #327 + +Brad House (13 Apr 2020) +- travis: CloudFlare does not allow T_ANY requests, so live tests that use it fail. Disable. + +- travis: bump macos image to the latest + +- cast-align warnings are false for struct sockaddr, silence + + Create a macro to silence false cast-align warnings when casting + struct sockaddr * to struct sockaddr_in * and struct sockaddr_in6 *. + + Fix By: Brad House (@bradh352) + +- MacOS: Enable libresolv support for retrieving DNS servers like iOS does. + +GitHub (10 Apr 2020) +- [Dmitry Igrishin brought this change] + + CMake: Populate the INCLUDE_DIRECTORIES property of installed targets (#323) + + Populate the INCLUDE_DIRECTORIES property of installed targets + + Fix By: Dmitry Igrishin (@dmitigr) + +Brad House (10 Apr 2020) +- travis: make valgrind use cmake for tests + +- dont try to use libtool to run valgrind + +- valgrind requires libtool installed to wrap tests + +- scan build 7 + +- fix travis live test + +- add debug for travis + +- try without sudo + +- attempt to modernize travis build environment + +GitHub (6 Apr 2020) +- [Teemu R brought this change] + + Allow TXT records on CHAOS qclass (#321) + + Some DNS servers intentionally "misuse" the obsoleted CHAOS (CH) qclass to provide things like `version.bind`, `version.server`, `authors.bind`, `hostname.bind` and `id.server`. + + C-ares was not allowing such use cases. + + Fix By: Teemu R. (@rytilahti) + +Brad House (5 Apr 2020) +- Remove warnings from ares_getaddrinfo.3 man page + + As reported in #319, non-standard macros of .IN were used. + Replace with .RS/.RE. + + Fixes: #319 + Fix By: Brad House (@bradh352) + +- ares_getaddrinfo man page render better for man2html + +- update man pages to render better for man2html + +Version 1.16.0 (12 Mar 2020) + +Brad House (12 Mar 2020) +- 1.16.0 release notes draft + +- attempt to fix double-free introduced in e0517f9 + +GitHub (12 Mar 2020) +- [David Drysdale brought this change] + + test: fuzzer input triggering double free (#315) + + OSS-Fuzz has reported a double-free with the fuzzer input file + included here; run with: + ./test/aresfuzz test/fuzzinput/clusterfuzz-5637790584012800 + + Bisecting the failure points to commit e0517f97d988 ("Parse SOA records + from ns_t_any response (#103)") + +- [Brad House brought this change] + + CMake: Install Manpages (#314) + + CMake wasn't installing manpages. + + Fixes #297 + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + Enable cmake tests for AppVeyor (#313) + + Tests require linking against the static library on Windows otherwise the symbols are not exported for internals being tested. + + Fix By: Brad House (@bradh352) + +Brad House (11 Mar 2020) +- Add AppVeyor badge + +- bump c-ares version to 1.16.0. test AppVeyor integration. + +GitHub (11 Mar 2020) +- [Brad House brought this change] + + replace all usages of inet_addr() with ares_inet_pton() which is more proper (#312) + + Replace usage of inet_addr() with ares_inet_pton() which is more appropriate and fixes issues with legitimate addresses like 255.255.255.0. IPv6 already used this. + + Fixes #309 + Fix By: Brad House (@bradh352) + +- [Brad House brought this change] + + CMake: Generate WinPDB files during build (#311) + + Build and Install PDB (Windows Debug Symbol) files if supported by underlying system. + + Also update AppVeyor to test cmake builds. + + Fixes #245 + Fix By: Piotr Pietraszkiewicz (@ppietrasa) and Brad House (@bradh352) + +- [Brad House brought this change] + + CMake: Rework library function checking (#310) + + CHECK_LIBRARY_EXISTS(), while it takes a function name, does not actually verify the function exists in the library being evaluated. Instead, if the function is found in any dependent library, and the referenced library also exists, it returns true. This is not desirable. + + Wrap with a Macro to change the behavior. + + Fixes: #307 + Fix By: Brad House (@bradh352) + +- [Dron Rathore brought this change] + + Parse SOA records from ns_t_any response (#103) + + Added the capability of parsing SOA record from a response buffer of ns_t_any type query, this implementation doesn't interfere with existing T_SOA query's response as that too is treated as a list of records. The function returns ARES_EBADRESP if no SOA record is found(as per RFC). + + The basic idea of sticking to RFC that a ns_t_any too should return an SOA record is something open for discussion but I have kept the functionality intact as it was previously i.e the function returns ARES_EBADRESP if it doesn't find a SOA record regardless of which response it is parsing i.e. T_SOA or T_ANY. + + Note that asking for T_ANY is generally a bad idea: + - https://blog.cloudflare.com/what-happened-next-the-deprecation-of-any/ + - https://tools.ietf.org/html/draft-ietf-dnsop-refuse-any + + Bug: #102 + Fix By: Dron Rathore (@DronRathore) + +- [Stephen Bryant brought this change] + + Added CPack functionality for generating RPM or DEB packages (#283) + + Added CPack functionality for generating RPM or DEB packages + + ie: run `cpack -G RPM` (or "DEB") after building with CMake. + + The current configuration creates 3 separate packages for the shared library, + the development files and the tools. + + Fix By: Stephen Bryant (@bf-bryants) + +- [tjwalton brought this change] + + ares_gethostbyname: Return ENODATA if no valid A or AAAA record found (#304) + + ares_gethostbyname() was returning ESUCCESS when no A or AAAA record was found but a CNAME pointing nowhere was present. ENODATA should be returned instead, however the hosts pointer will still be present to provide the alias list. + + * Return ENODATA if no valid A or AAAA record found + * Fix and update test ParseAReplyNoData. + * Add test for new ENODATA behaviour in ares_gethostbyname. + + Fixes Bug #303 + Fix By: @tjwalton + +- [Michal Rostecki brought this change] + + test: Separate live tests from SetServers* tests (#299) + + Before this change, SetServers, SetServersPorts and SetServersCSV + contained test cases trying to make DNS queries with the google.com + hostname, which requires Internet connectivity. Tests with that + requirement should be defined in the ares-test-live.cc file and contain + "Live" prefix to filter them out with `--gtest_filter=-*.Live*` on + machines without Internet connectivity. + + Fix By: Michal Rostecki (@mrostecki) + +- [Adam Majer brought this change] + + Only count valid addresses when response parsing (#302) + + When ares_parse_a_reply or ares_parse_aaaa_reply is called in case + where another AAAA and A responses exist, the resulting ares_addrttl + count is invalid and the structure points to gibberish. + + This is a regression since 1.15. + + Issue: https://github.com/c-ares/c-ares/issues/300 + Fix By: Adam Majer (@AdamMajer) + +Brad House (24 Dec 2019) +- [Kyle Edwards brought this change] + + CMake: Provide c-ares version in package export file (#296) + + The CMake package export file should provide version information. + + Fix By: Kyle Edwards (@KyleFromKitware) + +- [Ben Noordhuis brought this change] + + Accept invalid /etc/resolv.conf lookup values, ability to build container tests (#274) + + * Add CARES_BUILD_CONTAINER_TESTS CMake option to add ability to build the Linux-only containerized tests. + * Accept invalid /etc/resolv.conf lookup values + + Before this commit invalid `lookup` values resulted in c-ares not using + any lookups without any clear indication why. After this commit it uses + the default "fb". + + Fix By: Ben Noordhuis (@bnoordhuis) + +- [Christian Ammer brought this change] + + Parallel A and AAAA lookups in `ares_getaddrinfo` (#290) + + A and AAAA lookups for ares_getaddrinfo() are now performed in parallel. + + For this change `ares_search` was removed from `ares_getaddrinfo`. + Instead `ares_query` in combination with `next_dns_lookup` are + doing the suffix search. + + Adding support for `.onion` addresses which are tested by + `TEST_F(DefaultChannelTest, GetAddrinfoOnionDomain)` + + Fix By: Christian Ammer (@ChristianAmmer) + +- [Vy Nguyen brought this change] + + Move variables into the block where it is used to avoid unused-vars (#281) + + Warning uncovered with [-Werror, -Wunused-variables] + + Fix By: Vy Nguyen (@oontvoo) + +- [Vy Nguyen brought this change] + + Rename local macros to avoid conflicting with system ones and remove unsed variables. (Otherwise code will break once compiled with [-Werror,-Wmacro-redefined,-Wunused-variable] ) (#280) + + Fix new getaddrinfo code to not redefine macros on some systems. + + Fix By: Vy Nguyen (@oontvoo) + +- [Egor Pugin brought this change] + + [ares_getenv] Return NULL in all cases. (#279) + + if ares_getenv is defined, it must return a value on all platforms. + + Fix By: Egor Pugin (@egorpugin) + +- [Abhishek Arya brought this change] + + Add OSS-Fuzz fuzzing badge (#278) + + Adds based on instructions at + https://google.github.io/oss-fuzz/getting-started/new-project-guide/#status-badge + + Patch By: Abhishek Arya (@inferno-chromium) + +- [Peter Eisentraut brought this change] + + ares_init_options.3: Fix layout (#275) + + 7e6af8e inserted the documentation of resolvconf_path in the middle of + the item for ednspsz, leading to broken layout. Fix that. + + Fix By: Peter Eisentraut (@petere) + +- [Gregor Jasny brought this change] + + manpages: Fix typos detected by lintian (#269) + + + Fix By: Gregor Jasny (@gjasny) + +- [lifenjoiner brought this change] + + keep command line usage up to date (#256) + + adig and ahost built-in help did not match args taken. + + Fix-By: @lifenjoiner + +- [Dan Noé brought this change] + + ares-test.cc: Handle nullptr in AddrInfo ostream. (#268) + + The const AddrInfo& argument to operator<< overload for AddrInfo can be + a nullptr unique_ptr. Handle this explicitly by printing {nullptr} if + the rest of the function cannot be safely executed. + + Fix-by: Dan Noé + +- [Dan Noé brought this change] + + Add missing limits.h include from ares_getaddrinfo.c (#267) + + This files references INT_MAX, but does not include limits.h. This can + cause a build failure on some platforms. Include limits.h if we have it. + + Fix-by: Dan Noé + +- [Andrew Selivanov brought this change] + + fix fuzzer docs and add missing getaddrinfo docs (#265) + + There is a fix for a bit outdated clang fuzzer docs and ares_getaddrinfo docs. + + Fix By: Andrew Selivanov (@ki11roy) + +- [Andrew Selivanov brought this change] + + Fix leak and crash in ares_parse_a/aaaa_reply (#264) + + * fix leak if naddress of particular type found + * fix segfault when wanted ttls count lesser than count of result records + * add fuzzer input files that trigger problems (from #263) + + Reported-By: David Drysdale (@daviddrysdale) + Fix-By: Andrew Selivanov (@ki11roy) + +- [Andrew Selivanov brought this change] + + fix segfault when parsing wrong type of record (#262) + + Fixes segfault when trying to ares_parse_aaaa with AF_INET and vise versa. + + Fix By: Andrew Selivanov (@ki11roy) + +- work around mingw compile failure + +- c++ requires explicit casts + +- support EnvValue on Windows by implementing setenv/unsetenv + +- [Andrew Selivanov brought this change] + + getaddrinfo enhancements (#257) + + * Service support has been added to getaddrinfo. + * ares_parse_a/aaaa_record now share code with the addrinfo parser. + * Private ares_addrinfo structure with useful extensions such as ttls (including cname ttls), + as well as the ability to list multiple cnames in chain of lookups + + Work By: Andrew Selivanov @ki11roy + +- [Andrew Selivanov brought this change] + + fix ares__sortaddrinfo, use wrappers for sock_funcs (#258) + + Some socket functions weren't exposed for use by other areas of the library. Expose + those and make use of them in ares__sortaddrinfo(). + + Fix By: Andrew Selivanov (@ki11roy) + +- Fix c89 compilation support broken by .onion rejection changes + + Move .onion check lower after all variables have been declared. + + Bug: #246 + +- [kedixa brought this change] + + getaddrinfo: callback must be called on bad domain (#249) + + Due to an order of incrementing the remaining queries and calling ares_query, on a bad domain + the registered callback wouldn't be called. + + Bug: #248 + Fixed-By: @kedixa + +- [Darrin W. Cullop brought this change] + + Windows ARM/ARM64 requires AdvApi32 (#252) + + Fix link issues caused by missing library that appears to only be required on ARM (though + docs don't list this restriction). Doesn't hurt to require it everywhere. + + Bug: #251 + Fixed-By: Darrin Cullop (@dwcullop) + +- [kedixa brought this change] + + getaddrinfo: avoid infinite loop in case of NXDOMAIN(#240) (#242) + + There are two possible causes for infinite loops fo NXDOMAIN, based on how many dots are in the domain name (one for < ARES_OPT_NDOTS and one for >= ARES_OPT_NDOTS), where it will repeat the same query over and over as the hquery->next_domain doesn't increment. + + Fix By: @kedixa + +- Portability fix for ares__sortaddrinfo() + + replace uint32_t with unsigned int and socklen_t with ares_socklen_t + + By: Brad House + +- [Khaidi Chu brought this change] + + fix: init bufp before reject .onion to make it can be free correctly (#241) + + When querying a .onion domain, it returns directly without setting bufp to NULL. A subsequent free() that occurs can cause a segmentation fault. + + Fix By: Khaidi Chu (@XadillaX) + +- [Andrew Selivanov brought this change] + + Add ares__sortaddrinfo() to support getaddrinfo() sorted results (#239) + + This is a port of RFC 6724 compliant sorting function from Android Bionic project: + https://android.googlesource.com/platform/bionic/+/e919b116d35aa7deb24ddece69c491e24c3b0d6f/libc/netbsd/net/getaddrinfo.c + + The latest version is essentially the same, except two additional parameters to test connection with (mark/uid): + https://android.googlesource.com/platform/bionic/+/master/libc/dns/net/getaddrinfo.c + + Please note that even that version has some restrictions. It doesn't support some rules from RFC 6724: + + Rule 3 (Avoid deprecated addresses) + Rule 4 (Prefer home addresses) + Rule 7 (Prefer native transport) + + Submitted By: Andrew Selivanov (@ki11roy) + +- [Christian Ammer brought this change] + + Increase portability of `ares-test-mock-ai.cc` (#235) + + * using portable ares_inet_pton and updated includes in ares-test-mock-ai + * forgot to remove deleted ares-test-ai.cc in Makefile.inc + + Fix By: Christian Ammer (@ChristianAmmer) + +- [Fabrice Fontaine brought this change] + + m4/xc-cc-check.m4: use XC_CHECK_BUILD_FLAGS (#236) + + Use XC_CHECK_BUILD_FLAGS instead of XC_CHECK_USER_FLAGS. + Otherwise it complains of CPPFLAGS in CFLAGS. + [Retrieved from: + https://git.buildroot.net/buildroot/tree/package/c-ares/0001-use_check_build_instead_of_check_user.patch] + + Signed-off-by: Gustavo Zacarias + Signed-off-by: Fabrice Fontaine + Submitted by: Fabrice Fontaine + +- [Christian Ammer brought this change] + + Bugfix for `ares_getaddrinfo` and additional unit tests (#234) + + This PullRequest fixes a bug in the function add_to_addrinfo which task is to add new addrinfo items to the ai_next linked list. Also additional unit tests for testing ares_getaddrinfo will be added: + + Additional mock server test classes (ares-test-mock-ai.cc): + MockTCPChannelTestAI + MockExtraOptsTestAI + MockNoCheckRespChannelTestAI + MockEDNSChannelTestAI + RotateMultiMockTestAI + NoRotateMultiMockTestAI + + Additional live tests (ares-test-live-ai.cc): + LiveGetHostByNameV4 + LiveGetHostByNameV6 + LiveGetHostByNameV4AndV6 + + Fix By: Christian Ammer (@ChristianAmmer) + +- [Christian Ammer brought this change] + + Remaining queries counter fix, additional unit tests for `ares_getaddrinfo` (#233) + + Remaining queries counter fix, added tests (ParallelLookups, + SearchDomains, SearchDomainsServFailOnAAAA). Removed unnecessary + if and commented code in test. + + Fix By: Christian Ammer (@ChristianAmmer) + +- [Christian Ammer brought this change] + + Add initial implementation for ares_getaddrinfo (#112) + + Initial implementation for ares_getaddrinfo(). It is NOT compliant with RFC6724, though + it is expected to come closer to conformance prior to the next release. + + Features not supported include sorted addresses and honoring of service and hints + parameters. + + Implementation by: Christian Ammer (@ChristianAmmer) + +- [Ben Noordhuis brought this change] + + test: fix bad expectation in ipv6 localhost test (#227) + + The LiveGetLocalhostByAddrV6 test expected to see "localhost" in the + result when doing an address-to-name lookup for ::1 but on my system + that resolves to "ip6-loopback" because of this stanza in /etc/hosts: + + $ grep ^::1 /etc/hosts + ::1 ip6-localhost ip6-loopback + + Fix By: Ben Noordhuis (@bnoordhuis) + Bug: #85 + +- [Ben Noordhuis brought this change] + + ares_version.h: bump version (#230) + + Version change not committed from maketgz.sh + + Bug: #229 + +Daniel Stenberg (24 Oct 2018) +- ares_library_init_android.3: minor syntax edits, fixed AVAILABILITY + +Version 1.15.0 (23 Oct 2018) + +Brad House (23 Oct 2018) +- last minute 1.15.0 addition + +- [Ben Noordhuis brought this change] + + Report ARES_ENOTFOUND for .onion domain names as per RFC7686. (#228) + + Quoting RFC 7686: + + Name Resolution APIs and Libraries (...) MUST either respond + to requests for .onion names by resolving them according to + [tor-rendezvous] or by responding with NXDOMAIN. + + A legacy client may inadvertently attempt to resolve a .onion + name through the DNS. This causes a disclosure that the client + is attempting to use Tor to reach a specific service. Malicious + resolvers could be engineered to capture and record such leaks, + which might have very adverse consequences for the well-being + of the user. + + Bug: #196 + Fix By: Ben Noordhuis @bnoordhuis + +- prepare for c-ares 1.15.0 release + +- AIX Build Fix + + AIX attempts to include both nameser_compat.h and onameser_compat.h. It appears + the proper fix is to define _USE_IRS so that only nameser_compat.h is used. + + Bug: #224 + Fix By: Brad House (@bradh352) + +- Fix crash in ares_dup() due to new ARES_OPT_RESOLVCONF + + ares_dup() calls ares_init_options() by making its own fake option + mask since the original mask isn't stored but ARES_OPT_RESOLVCONF + was always set, instead of conditionally set. This caused a crash + because ares_strdup() isn't NULL-safe if no custom path was set. + + Made ares_dup() set ARES_OPT_RESOLVCONF conditionally. + + Fix By: Brad House (@bradh352) + +- [Sarat Addepalli brought this change] + + Add ares_init_options() configurability for path to resolv.conf file + + Add resolvconf_path to end of struct ares_options with ARES_OPT_RESOLVCONF option + so on Unix-like systems a custom path can be specified. If no path is specified, + /etc/resolv.conf is used like normal. + + Fix By: Sarat Addepalli @SirR4T + Fixes Bug: #220 + Review By: Brad House @bradh352 + +- remove stale variables + +- fix prototype name for ares_strsplit_free() + +- add missing prototype + +- simplify ares_strsplit() and create ares_strsplit_free() helper function + +- missing ares_strsplit.h from HHEADERS for inclusion in distribution + +- [Ruslan Baratov brought this change] + + Add CARES_BUILD_TOOLS CMake option (#214) + + Add ability to exclude building of tools (adig, ahost, acountry) in CMake. This should also close #200. + + Fix By: Ruslan Baratov (@ruslo) + Bug: #200 + +- [flyingdutchman23 brought this change] + + Style. Whitespace cleanup. (#213) + + Small whitespace cleanups. + + Fix By: @flyingdutchman23 + +- [John Schember brought this change] + + Android: Support for domain search suffix (#211) + + Fixes issue #207. Uses LinkProperties.getDomains() to get a list of search domains and adds them to the suffix list. This also adds a new helper function to split strings into an array based on multiple delimiters replacing multiple other functions for dealing with string splitting. + + Submitter: John Schember (@user-none) + Fixes: #207 + Approved-by: Brad House (@bradh352) + +- [afalin brought this change] + + Improve DNS suffixes extracting from WinNT registry (#202) + + Join all global and connection specific suffix lists. Use 'HKLM\Software\Policies\Microsoft\Windows NT\DNSClient\SearchList', 'HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\Domain' as global suffix lists. + + Fix By: @afalin + +- Be consistent with indention in CMakeLists.txt + + The imported TRANSFORM_MAKEFILE_INC function from curl used space indention + but the rest of the file used tabs. Go ahead and make it tabs for + consistency as well. + + Committed By: Brad House + +- [flyingdutchman23 brought this change] + + Fix modern gcc warning: argument to 'sizeof' in 'strncpy' call is the same expression as the source + + Silence warning about using src to determine number of bytes to copy. + In this case it doesn't matter whether it is `src` or `dest`. So there + is no functionality change. + + Bug: #210 + Fix By: @flyingdutchman23 + +- [Andi Schnebinger brought this change] + + fix stringop-overflow warning of GCC (#201) + + When using a modern GCC to compile c-ares, there is a stringop-overflow warning. + This patch simply silences the false-positive warning, there is no actual code flaw. + + Bug: https://github.com/c-ares/c-ares/pull/201 + Fixed By: Andi Schnebinger @Iniesta8 + +GitHub (18 May 2018) +- [David Drysdale brought this change] + + travis: do coverage in "coverage" build (#195) + + Fixes #194, a mistake from commit a255081f2c3c ("travis: Only do + coverage/distcheck on normal build") + +Brad House (17 May 2018) +- [Brad Spencer brought this change] + + Apply the IPv6 server blacklist to all nameserver sources, not just Windows (#193) + + For #164, I mentioned that it seemed like the IPv6 nameserver blacklist should apply to all OSes. In a mailing list post, @bradh352 agreed and suggested that I file a PR to make it so. + + This moves the blacklist check from being Windows-specific to being a general feature of config_nameservers(), no matter the nameserver source. It also simplifies the ares_ipv6_server_blacklisted() implementation to not parse and re-parse the blacklisted IPv6 addresses from strings on every check. I think they're almost as easy to read as a sequence of hex bytes in an array initializer, and it's definitely less work on each trip through the code. + + Fix By: Brad Spencer @b-spencer + PR: https://github.com/c-ares/c-ares/pull/193 + +- [Brad Spencer brought this change] + + Fix warnings emitted by MSVC when using -W4 (#192) + + These changes fix a few warnings emitted by recent versions of MSVC when compiling with -W4. Half of the changes are in Windows-specific code, and the other half should be safe no matter the compiler or OS. + + The allocation function change is probably the only one that needs explanation. MSVC gives warnings about the function pointers not being stable across DLL boundaries or something to that effect, so for Windows, I've made them be called indirectly, which at least made the compiler happy. I can't say I've tested every linking combination on Windows with them before or after the change, but it seems harmless. + + Fix By: Brad Spencer @b-spencer + PR: https://github.com/c-ares/c-ares/pull/192 + +- [David Hotham brought this change] + + Prevent changing name servers while queries are outstanding (#191) + + Changing name servers doesn't work, per #41. Better to return an error code than to crash. + + Fix-by: David Hotham @dimbleby + +David Drysdale (15 May 2018) +- [Tobias Nießen brought this change] + + Fix comment in ares_rules.h (#189) + +Brad House (6 May 2018) +- [Brad Spencer brought this change] + + Harden and rationalize c-ares timeout computation (#187) + + * Harden and rationalize c-ares timeout computation + * Remove the rand() part of the timeout calculation completely. + + When c-ares sends a DNS query, it computes the timeout for that request as follows: + + timeplus = channel->timeout << (query->try_count / channel->nservers); + timeplus = (timeplus * (9 + (rand () & 7))) / 16; + I see two issues with this code. Firstly, when either try_count or channel->timeout are large enough, this can end up as an illegal shift. + + Secondly, the algorithm for adding the random timeout (added in 2009) is surprising. The original commit that introduced this algorithm says it was done to avoid a "packet storm". But, the algorithm appears to only reduce the timeout by an amount proportional to the scaled timeout's magnitude. It isn't clear to me that, for example, cutting a 30 second timeout almost in half to roughly 17 seconds is appropriate. Even with the default timeout of 5000 ms, this algorithm computes values between 2812 ms and 5000 ms, which is enough to cause a slightly latent DNS response to get spuriously dropped. + + If preventing the timers from all expiring at the same time really is desirable, then it seems better to extend the timeout by a small factor so that the application gets at least the timeout it asked for, and maybe a little more. In my experience, this is common practice for timeouts: applications expect that a timeout will happen at or after the designated time (but not before), allowing for delay in detecting and reporting the timeout. Furthermore, it seems like the timeout shouldn't be extended by very much (we don't want a 30 second timeout changing into a 45 second timeout, either). + + Consider also the documentation of channel->timeout in ares_init_options(): + + The number of milliseconds each name server is given to respond to a query on the first try. (After the first try, the timeout algorithm becomes more complicated, but scales linearly with the value of timeout.) The default is five seconds. + + In the current implementation, even the first try does not use the value that the user supplies; it will use anywhere between 56% and 100% of that value. + + The attached patch attempts to address all of these concerns without trying to make the algorithm much more sophisticated. After performing a safe shift, this patch simply adds a small random timeout to the computed value of between 0 ms and 511 ms. I could see limiting the random amount to be no greater than a proportion of the configured magnitude, but I can't see scaling the random with the overall computed timeout. As far as I understand, the goal is just to schedule retries "not at the same exact time", so a small difference seems sufficient. + + UPDATE: randomization removed. + + Closes PR #187 + Fix by: Brad Spencer + +- distribute ares_android.h + + Distribute ares_android.h when a release distribution package is + created. + + Reported By: Andrey Khranovsky + Bug: https://c-ares.haxx.se/mail/c-ares-archive-2018-04/0000.shtml + +- ares_set_servers_csv() on failure should not leave channel in a bad state + + If bad data is passed to ares_set_servers_csv() or + ares_set_servers_ports_csv() it will clear the existing channel + configured DNS servers, then a call to ares_send() will fail due + to a bad malloc which may have undefined behavior. + + The fix now only clears existing servers on success. An additional + sanity check was added in ares_send() to ensure nservers >= 1 or + will result in ARES_ESERVFAIL. + + Bug: https://c-ares.haxx.se/mail/c-ares-archive-2018-03/0000.shtml + Reported-by: Francisco Sedano Crippa + +- docs: Not all manpages are listed + + Some docs aren't installed or not showing up on + https://c-ares.haxx.se/docs.html + due to not being listed in Makefile.inc. Add missing docs and + ensure docs are alphabetized. + +Version 1.14.0 (16 Feb 2018) + +Daniel Stenberg (16 Feb 2018) +- ares_android.c: fix warning: ISO C forbids an empty translation unit + +- RELEASE-NOTES: some more work we did and people who helped + +Brad House (16 Feb 2018) +- travis: skip Autotools style testing for cmake + + Fix cmake test build by skipping autotools portion of test script. + +- travis: standardize CMake test off of Autotools tests + + Instead of running 'make test', run the tests directly like autotools + does. It provides more verbose output. + +- travis: Enable building tests for CMake + + Travis should auto-build and run tests for cmake builds now that + PR #168 is merged. + +- fix version in pkgconfig + +- Add version update to CMakeLists in maketgz + +- Release prep. Add support for pkgconfig in cmake, set versions appropriately + +Gregor Jasny (15 Feb 2018) +- CMake: Add tests + +Brad House (14 Feb 2018) +- [Gregor Jasny brought this change] + + Use cmake3 package provided by Ubuntu (#182) + +- Cmake 3.1 instead of 3.2.1 should be the minimum + +- Update RELEASE-NOTES and RELEASE-PROCEDURE.md to prepare for next release + +- get rid of c++ style comments + +- Use trusty for all builds, precise is EOL. Update clang and cmake versions. + +- Current CMakeLists.txt doesn't support 2.8.12 anymore, we need to bump the version to 3.2.1 minimum + +- Re-organize sections in INSTALL.md and add CMake section + +- [Sergey Kolomenkin brought this change] + + remove compilation warnings in MSVC (#47) + +- document handling of timeouts for ares_process and ares_process_fd to close PR #57 + +- As per Issue #155, since we do not require gethostname() during init, if it fails, there's no reason for init to fail as it is only used to populate the domain + +GitHub (7 Feb 2018) +- [David Drysdale brought this change] + + Document WSAStartup requirement (#180) + +David Drysdale (6 Feb 2018) +- [Antonio Tajuelo brought this change] + + Added coderelease.io badge to readme.md for letting people subscribe to new versions (#174) + +- [Sheel Bedi brought this change] + + Update year in LICENSE.md to 2018 (#170) + +GitHub (4 Feb 2018) +- [David Drysdale brought this change] + + travis: use VM not container for {L,A}SAN builds (#177) + + As per https://github.com/travis-ci/travis-ci/issues/9033, container + based builds do not currently allow ptrace, which is used by LSAN and + ASAN. + +Brad House (3 Feb 2018) +- [acthompson-google-com brought this change] + + Android JNI code leaks local references in some cases (#175) + + * Add Google LLC to AUTHORS. + + * android: Explicitly delete all JNI local references, and cache JNI method IDs at initialization. + + * android: Only return ARES_ENOTINITIALIZED on failures in initialization code. + +Gregor Jasny (2 Jan 2018) +- Embed fused Google Test 1.8.0 + +Brad House (21 Dec 2017) +- [John Schember brought this change] + + android: Check returns for obj and classes are not NULL. Document API levels for various Android functions and objects used. (#166) + +- CARES_CHECK_TYPE should reference variable so a warning is not produced for -Werror compatibility + +- [Brad Spencer brought this change] + + Fix computation of IPv6 blacklist mask for values of netmask > 8. (#164) + +David Drysdale (14 Dec 2017) +- travis: Only do coverage/distcheck on normal build + +- travis: only do pip install on Linux + +- travis: only test in IPv4 mode + + Travis' Trusty environment does not support IPv6. + +- test: allow restriction to one IP address family + +- [Roman Teterin brought this change] + + Fix a typo in init_by_resolv_conf (#160) + +Brad House (11 Dec 2017) +- @gvanem says MSVC -RTCc option fails, looks erroneous to me, but the additional mask is harmless + +- Fix some other mingw warnings + +- Issue #143, get rid of windows build warning due to passing 'char **' to argument expecting 'const char **' + +- [Gregor Jasny brought this change] + + Distribute CMake files (#130) + +- Android variants may not have __system_property_get + + Some android systems like ARM64 may not have the __system_property_get + symbol in libc (but still have it in the public headers). Detect this + condition at build time. The __system_property_get method of retrieving + name servers is deprecated as of Oreo so should strictly be a fallback + mechanism anyhow. + +David Drysdale (9 Nov 2017) +- [David Hotham brought this change] + + Wrong function name throughout man page (#154) + +- ares_data.c: iterate through substructs when freeing + + Previous code recursed into substructures, which makes it more likely + that large/heavily-nested responses could use up lots of stack. + +- test: test ares_free_data on long chain of structs + +- [Felix Yan brought this change] + + Fix a typo in inet_ntop.c (#151) + +Daniel Stenberg (29 Sep 2017) +- ares_gethostbyname.3: fix callback status values + + - ARES_ENOTFOUND means the _name_ wasn't found + + - ARES_ENODATA can be returned when a resolve fails + + Reported-by: Jakub Hrozek + Bug: https://c-ares.haxx.se/mail/c-ares-archive-2011-06/0012.shtml + +Brad House (28 Sep 2017) +- [John Schember brought this change] + + Fix DNS server lookup breaking with Android O due to Android removing access to net.dns# system properties. (#148) + + As of Android 8 (Oreo) access to net.dns# has been removed (https://developer.android.com/about/versions/oreo/android-8.0-changes.html). The reasoning given is that it, "improves privacy on the platform". Currently c-ares uses this to get the list of DNS servers. + + Now the only way to access the DNS server list is by using the Connectivity Manager though Java. This adds the necessary JNI code to use the Connectivity Manager and pull the DNS server list. The old way using __system_property_get with net.dns# remains for compatibilty. + + Using the Connectivity Manager requires the ACCESS_NETWORK_STATE permission to be set on the app. Existing applications most likely are not setting this and keeping the previous method as a fallback will at the very least ensure those apps don't break on older versions of Android. They will need to add this permission for Android 8 compatibility. + + Included in the patch are two initalization functions which are required. The JVM must be registered as well as the Connectivity Manager itself. There is no way to get the Connectivity Manager except though Java. Either being passed down to C directly or by passing in an Android Context which can be used to get the Connectivity Manager. Examples are provided in the documentation. + +- [Konstantinos Sofokleous brought this change] + + allow linking against the static msvc runtime library (#133) + + allow linking against the static msvc runtime library + +- [Gergely Nagy brought this change] + + Force using the ANSI versions of WinAPI functions (#142) + + When compiling c-ares with a build system that defines UNICODE, + bad versions of WinAPI functions are used causing failures or even + crashes. When windows.h is included in MBCS mode (like in the default + build system), the ..A versions are the same as using the one without + any suffix. + +- [cmake] build fix on Solaris + +GitHub (11 Sep 2017) +- [Brad House brought this change] + + Win32 exclude legacy ipv6 subnets (#144) + + win32 ipv6: add infrastructure to exclude ipv6 subnets that are known to cause issues + +- [David Drysdale brought this change] + + windows: only look for ancient compilers (#146) + + Also drop the use of a versioned output directory; just use + .\msvc + +- [David Drysdale brought this change] + + ares_init_options.3: match up sock_state_cb args (#141) + + Fixes #140 + +Daniel Stenberg (25 Aug 2017) +- [Anna Henningsen brought this change] + + gethostbyaddr: fail with `ECANCELLED` for `ares_cancel()` + + When `ares_cancel()` was invoked, `ares_gethostbyaddr()` + queries would fail with `ENOTFOUND` instead of `ECANCELLED`. + + It seems appropriate to treat `ares_cancel()` like `ares_destroy()`, + but I would appreciate review of the correctness of this change. + + Ref: https://github.com/nodejs/node/issues/14814 + + Closes #138 + +David Drysdale (18 Aug 2017) +- [David Hotham brought this change] + + support most recent Visual Studio 2017 + +Brad House (26 Jul 2017) +- Preserve original DNS server order on Windows for equal metrics. + + qsort is not stable, in order to make it stable we need to record + the original index and add it as a secondary sort value when the + metrics are equal to prevent using DNS servers that may not work + at all as reported by some users. + +David Drysdale (15 Jul 2017) +- [Anna Henningsen brought this change] + + ares_parse_naptr_reply: make buffer length check more accurate + + 9478908a490a6bf009ba58d81de8c1d06d50a117 introduced a length check + for records parsed by `ares_parse_naptr_reply()`. However, that + function is designed to parse replies which also contain non-NAPTR + records; for A records, the `rr_len > 7` check will fail as there + are only 4 bytes of payload. + In particular, parsing ANY replies for NAPTR records was broken + by that patch. + + Fix that by moving the check into the case in which it is already + known that the record is a NAPTR record. + +- appveyor: run dnsdump as a sanity check + +- travis: run dnsdump as a sanity check + +- test: use ares_free_string() throughout + + As pointed out by Gisle Vanem in #125. + +Daniel Stenberg (3 Jul 2017) +- RELEASE-PROCEDURE.md: how to release + + Fixes #115 + Closes #116 + +David Drysdale (2 Jul 2017) +- test: Build dnsdump on Windows too + + Thanks to Gisle Vanem for showing the way: + https://github.com/c-ares/c-ares/commit/b701af8a24cf9d173b1dbe5faedcea34642e92da#commitcomment-22830845 + +Brad House (26 Jun 2017) +- [Christian Ammer brought this change] + + fix statement like #define - ares ssize_t define had a trailing semicolon (#120) + +David Drysdale (21 Jun 2017) +- test: distribute the fuzzcheck.sh script + + The TESTS target runs fuzzcheck.sh so make sure it is included + in the distributed tarball. + + (The test itself will be pointless when run on a distribution, because + the fuzzing corpus directories are not shipped, but at least this + means that `make -C test test` should work.) + +- test: run the name-parsing corpus check too + +Daniel Stenberg (21 Jun 2017) +- dist: don't build/ship PDF versions in release archives + + ... experience says very few read them and they can still get build by + those who want them.a + +- ares_version.h: bump version + +Version 1.13.0 (20 Jun 2017) + +Daniel Stenberg (20 Jun 2017) +- RELEASE-NOTES: 1.13.0 + +- ares_set_socket_functions.3: added in 1.13.0 + +David Drysdale (18 Jun 2017) +- ares_parse_naptr_reply: check sufficient data + + Check that there is enough data for the required elements + of an NAPTR record (2 int16, 3 bytes for string lengths) + before processing a record. + +- test: Feed in short NAPTR + +- test: Add fuzz input with short NAPTR + +- test: add ares_parse_naptr_reply to fuzzer + +- [noiz brought this change] + + Update ares.h to support compiling with QNX + +- [Dionna Glaze brought this change] + + Simple changes to appease stricter compilers. + + ares_process.c uses htonl, which needs included. + ares_getnameinfo.c uses a dynamically selected format string for + sprintf, which -Wformat-literal doesn't like. Usually one would use + inttypes.h and a format string "%" PRIu32, but C99 is too new for some + supported platforms. + +GitHub (16 Jun 2017) +- [Gregor Jasny brought this change] + + CMake: Emulate interface library on import (#108) + + Closes: #104 + Signed-off-by: Gregor Jasny + +Brad House (6 Jun 2017) +- [ChristianAmmer brought this change] + + Added support for Windows DNS Suffix Search List (#93) + + This change solves issue #53. + + Support for suffix search lists was already built in for Linux. The search list could be set via set_search. With this change the suffix search list from Windows is read from the registry and then set into the ares configuration via set_search. There are two sources for the search list: + + The global DNS suffix search list. + The primary and connection specific DNS suffixes if the global is not available. + + Contributed by @ChristianAmmer + +Daniel Stenberg (25 May 2017) +- [Thomas Köckerbauer brought this change] + + configure: do not heck for ar if specified manually + + Closes #62 + +David Drysdale (23 May 2017) +- ares_expand_name: limit number of indirections + +- test: fuzz input file that takes a while to process + +- test: copy data in fuzz regression driver + + Oops. + +GitHub (23 May 2017) +- [David Drysdale brought this change] + + Convert char from ISO-8859-1 to UTF-8 (#99) + + Fixes #97 + +- [Gregor Jasny brought this change] + + travis: Use trusty for cmake builds (#109) + + kubuntu-backports dropped the CMake package for Precise + +David Drysdale (2 May 2017) +- [David Hotham brought this change] + + msvc_ver.inc support most recent Visual Studio 2017 (#101) + +- test: use io.h not unistd.h for Windows + +- test: try building fuzz binaries on Windows + +- test: stick to int in ares-fuzz.c + + Using int rather than ares_ssize_t means this file + needs no c-ares dependency - it's a general driver for + any libFuzzer-style entrypoint. + +- test: force ARES_OPT_NOROTATE for no-rotate tests + +- test: check expected NOROTATE value + +- ares_create_query: use ares_free not naked free + + Accidentally added in commit 65c71be1cbe5 + ("ares_create_query: avoid single-byte buffer overwrite") + +Brad House (17 Mar 2017) +- Need ares.h for ares_ssize_t + +- tests should not use ssize_t, use ares_ssize_t + +GitHub (16 Mar 2017) +- [Brad House brought this change] + + Portability updates for legacy systems. (#92) + + Socklen_t should not be used in code, instead ares_socklen_t should be used. + Convert ssize_t to ares_ssize_t for portability since the public API now exposes this. + +David Drysdale (14 Mar 2017) +- [Michael Osei brought this change] + + Update msvc_ver.inc (#91) + + For Visual Studio 2017 builds + +Daniel Stenberg (13 Mar 2017) +- [Brad House brought this change] + + Windows DNS server sorting (#81) + + Original Patch From Brad Spencer: + https://c-ares.haxx.se/mail/c-ares-archive-2016-04/0000.shtml + + My modifications include: + * Dynamically find GetBestRoute2 since it is a Windows Vista+ symbol, and will fall back to prior behavior when not available. + * Prefer get_DNS_AdaptersAddresses as the modifications should alleviate the concerns which caused us to prefer get_DNS_NetworkParams + * Update AppVeyor to use MinGW-w64 instead of the legacy MinGW + * Fix compile error in test suite for Windows. + + Original message from patch below: + + From: Brad Spencer + Date: Fri, 29 Apr 2016 14:26:23 -0300 + + On Windows, the c-ares DNS resolver tries first to get a full list of + DNS server addresses by enumerating the system's IPv4/v6 interfaces and + then getting the per-interface DNS server lists from those interfaces + and joining them together. The OS, at least in the way the c-ares + prefers to query them (which also may be the only or best way in some + environments), does not provide a unified list of DNS servers ordered + according to "current network conditions". Currently, c-ares will then + try to use them in whatever order the nested enumeration produces, which + may result in DNS requests being sent to servers on one interface + (hosting the current default route, for example) that are only intended + to be used via another interface (intended to be used when the first + interface is not available, for example). This, in turn, can lead to + spurious failures and timeouts simply because of the server address + order that resulted because of the enumeration process. + + This patch makes the (safe?) assumption that there is no other better + rule to chose which interface's DNS server list should be prioritized. + After all, a DNS lookup isn't something "per network"; applications + don't look up "these DNS names on this interface and those DNS names on + that interface". There is a single resource pool of DNS servers and the + application should presume that any server will give it the "right" + answer. However, even if all DNS servers are assumed to give equally + useful responses, it is reasonable to expect that some DNS servers will + not accept requests on all interfaces. This patch avoids the problem by + sorting the DNS server addresses using the Windows IPv4/v6 routing tables. + + For example, a request to DNS server C on interface 2 that is actually + sent over interface 1 (which may happen to have the default route) may + be rejected by or not delivered to DNS server C. So, better to use DNS + servers A and B associated with interface 1, at least as a first try. + + By using the metric of the route to the DNS server itself as a proxy for + priority of the DNS server in the list, this patch is able to adapt + dynamically to changes in the interface list, the DNS server lists per + interface, which interfaces are active, the routing table, and so on, + while always picking a good "best" DNS server first. + + In cases where any DNS server on any interface will do, this patch still + seems useful because it will prioritize a lower-metric route's (and thus + interface's) servers. + +David Drysdale (22 Feb 2017) +- [Sergii Pylypenko brought this change] + + docs: fixed references to ares_set_local_ip4 and ares_set_local_ip6 + +- [Calle Wilund brought this change] + + ares test: fix win32 build errors with virtual socket function tests + + The added api requires both some typedefs not previously imported + into the test build + the test code did not fully deal with + socket differences on windows. + +- [Calle Wilund brought this change] + + ares_process: fix return type of socket_create function (win32 warning) + +Daniel Stenberg (31 Jan 2017) +- [Calle Wilund brought this change] + + ares_set_socket_functions: Add man page + + Providing some rudimentary documentation for the added functionality + + Closes #72 + +- [Calle Wilund brought this change] + + ares-test: Add test helpers and cases for virtual socket IO + + * Added test case macro to automatically run tests twice, once "normal", + once with virtual IO. + * Changed most "live" query tests to run in dual mode to verify + at least simple socket IO via virtual functions + * Added test case for settings/duping socket functions & callback data + +- [elcallio brought this change] + + Implement using virtual socket IO functions when set + + Uses virtual socket IO functions when set on a channel. + Note that no socket options are set, nor is any binding + done by the library in this case, since the client defining + these is probably more suited to deal with this. + +- [elcallio brought this change] + + Add virtual function set for socket IO + + Defines a structure of basic create, close, read/write + functions as virtual function calls, settable for individual + c-ares channels. + +David Drysdale (30 Jan 2017) +- test: ignore aresfuzzname binary + +Gregor Jasny (14 Jan 2017) +- [Stephen Sorley brought this change] + + Always use check_symbol_exists instead of check_function_exists. + +- Also add includes to TARGETS_INST_DEST + +- [Stephen Sorley brought this change] + + Windows build fixes + +- CMake: Export targets + +- CMake: Use GNUInstallDirs for install location defaults + +David Drysdale (11 Jan 2017) +- Update Makefile.am for renamed INSTALL.md + +GitHub (11 Jan 2017) +- [David Drysdale brought this change] + + docs: convert INSTALL to MarkDown & tweak (#83) + +- [Gregor Jasny brought this change] + + Merge pull request #77 from stephen-sorley/cmake_modernize + + Updated CMake minimum version to 2.8.12. + +Stephen Sorley (4 Jan 2017) +- Changed executables to depend directly on internal libcares target, instead of against + the external-facing alias targets. + +- Updated Travis to pull CMake 2.8.12 from kubuntu-backports ppa. + +- Updated CMake minimum version to 2.8.12. + + Changed the way usage requirements (include dirs, compile defs, dependent libraries) are specified, to match the recommended standard practice for modern CMake. This involves using target-specific functions (target_include_directories, target_compile_definitions, etc.), along with the PUBLIC, PRIVATE or INTERFACE modifiers. + + Updated chain-building support to imitate new-style Find modules (import libs), instead of old-style Find modules (cache variables). + +David Drysdale (26 Dec 2016) +- [Chris Araman brought this change] + + configure: clock_gettime workaround (#75) + + Commits 7518c26, c41726b, and bc14ee7 brought this workaround to the CMake build system. This expands it to the autoconf build system. + + Fixes #71 + +- test: add fuzz entrypoint for ares_create_query() + +- test: Add gTest/gMock files to SOURCES + + Built tarballs are not including all of the files needed + to build the test suite because they are missing from the + _SOURCES variable in Makefile.am. + +- travis: Move build scripts under travis/ + + Travis doesn't always propagate errors in inline multi-line + scripts, so move them all to be explicit shell scripts, each + with set -e. + +- travis: check distributed tarball builds + +Daniel Stenberg (25 Oct 2016) +- dist: ship msvc_ver.inc too + + Reported-by: Bruce Stephens + + Fixes #69 + +- [Aaron Bieber brought this change] + + fix build on OpenBSD + +- ares_version.h: bump, working on 1.12.1 now + +GitHub (18 Oct 2016) +- [Gregor Jasny brought this change] + + Merge pull request #64 from bradh352/master + + Add CMake build system support to C-Ares. + +Brad House (5 Oct 2016) +- suggested PROJECT_NAME change broke chain building as it needs the magic PROJECT_NAME set in the ADD_LIBRARY for matching. Fix to make both goals work + +- update MacOSX 10.12 detection + +- Expand XCode clock_gettime fix to include MacOS 10.12, not just iOS10 + +David Drysdale (4 Oct 2016) +- Revert "travis: work around bug in PyCParser" + + This reverts commit a24a10a348fc00b8cfd684d91894a1df14880ea9. + +- travis: work around bug in PyCParser + + See https://github.com/pyca/cryptography/issues/3187 + +Brad House (3 Oct 2016) +- PROJECT_SOURCE_DIR instead of CMAKE_CURRENT_SOURCE_DIR as per @gjasny + +- use a project name of c-ares as per @gjasny + +- Import curl conversion of Makefile.inc to cmake form dynamically as per bdoetsch@ameritech.net to make maintaining multiple build systems easier + +Daniel Stenberg (30 Sep 2016) +- dist: add ares_library_initialized.* to the tarball + +David Drysdale (30 Sep 2016) +- test: check ares_create_query with too-long name + +Daniel Stenberg (30 Sep 2016) +- man pages: minor formatting edits + +Brad House (29 Sep 2016) +- merge fc7917e from @daviddrysdale ... travis build updates for cmake + +- cleanups as per @gjasny ... Use naked IF statements and use NOT DEFINED + +Version 1.12.0 (29 Sep 2016) + +Daniel Stenberg (29 Sep 2016) +- RELEASE-NOTES: 1.12.0 + +- [David Drysdale brought this change] + + ares-test-misc: test ares_create_query with escaped trailing dot + +- ares_create_query: avoid single-byte buffer overwrite + + ... when the name ends with an escaped dot. + + CVE-2016-5180 + + Bug: https://c-ares.haxx.se/adv_20160929.html + +Brad House (29 Sep 2016) +- CMake: Unify library versioning with the libtool methodology to make keeping library versions in sync easier with the autotools build system + +Daniel Stenberg (29 Sep 2016) +- ares_library_initialized.3: added + +- make: bump CARES_VERSION_INFO for release + +David Drysdale (29 Sep 2016) +- man: update ares_init_options.3 + +Daniel Stenberg (29 Sep 2016) +- ares_library_init.3: corrected the ares_library_init_mem proto + +Brad House (28 Sep 2016) +- XCode v8 introduced clock_gettime() for iOS v10. However, it is a weak symbol, which means when earlier iOS versions try to use clock_gettime() it results in a crash due to the missing symbol. Detect this condition and do not set HAVE_CLOCK_GETTIME_MONOTONIC. + +- Adds cmake build system support to C-Ares. + + The patch does not modify any source files, it only adds 3 new files + (CMakelists.txt, ares_build.h.cmake, ares_config.h.cmake) which form the + build system. I've tried to go through as much of the autotools tests and + extracted what I thought was appropriate, though many of the tests aren't + as in-depth in CMake as they are for autotools ... it is unclear why some + of them exist at all, I'm guessing for legacy systems that CMake probably + doesn't support anyhow. + + Building the library, and examples (adig, ahost, acountry) plus installation + should work across a large number of tested platforms. The tests have not + yet been integrated. + +Daniel Stenberg (27 Sep 2016) +- README.md: remove space from link + +- README: link to the correct c-ares badge! + + Reported-by: David Hotham + + Fixes #63 + +- docs: minor formatting edits + +- ares_destroy.3: formatting polish + +- ares_init.3: split the init docs into two separate man pages + +- SECURITY: point to the vulnerabilities page now + +- RELEASE-NOTES: synced with daa7235b1a5 + +- ares_create_query.3: edit language + + Tried to make the man page more readable. + +David Drysdale (26 Sep 2016) +- test: fix gMock to work with gcc >= 6.x + + Taken from: + https://github.com/google/googletest/issues/705#issuecomment-235067917 + +Daniel Stenberg (26 Sep 2016) +- [Brad House brought this change] + + headers: remove checks for and defines of variable sizes + + ... they're not really used and by avoiding them in the ares_build.h + output we make the public header less dependent on data sizes. + +David Drysdale (24 Sep 2016) +- api: add ARES_OPT_NOROTATE optmask value + + Fix up a couple of problems with configuring whether c-ares rotates + between different name servers between requests. + + Firstly, ares_save_options() returns (in *optmask) the value of + (channel->optmask & ARES_OPT_ROTATE), which doesn't necessarily + indicate whether the channel is or is not actually doing rotation. + This can be confusing/incorrect if: + - the channel was originally configured without ARES_OPT_ROTATE + (so it appears that the channel is not rotating) + - the /etc/resolv.conf file includes the 'rotate' option + (so the channel is actually performing rotation). + + Secondly, it is not possible to reliably configure a channel + to not-rotate; leaving off ARES_OPT_ROTATE is not enough, since + a 'rotate' option in /etc/resolv.conf will turn it on again. + + Therefore: + - add an ARES_OPT_NOROTATE optmask value to allow explicit + configuration of no-rotate behaviour + - in ares_save_options(), report the value of channel->rotate + as exactly one of (optmask & ARES_OPT_ROTATE) or + (optmask & ARES_OPT_NOROTATE). + + In terms of back-compatibility: + - existing apps that set ARES_OPT_ROTATE will continue to rotate, + and to have ARES_OPT_ROTATE reported back from ares_save_options() + - existing apps that don't set ARES_OPT_ROTATE will continue to + use local config/defaults to decide whether to rotate, and will + now get ARES_OPT_ROTATE or ARES_OPT_NOROTATE reported back from + ares_save_options() rather than 0. + +- ares_init_options: only propagate init failures from options + + Commit 46bb820be3a8 ("ares_init_options: don't lose init failure") + changed init behaviour so that earlier errors in initialization + weren't lost. In particular, if the user passes in specific + options but they are not applied (e.g. because of an allocation + failure), that failure needs to be reported back to the user; this + also applies when duplicating a channel with ares_dup(). + + However, other initialization failures can be ignored and + overridden -- in particular, if init_by_resolv_conf() or + init_by_environment() fail, then falling back to default values + is OK. + + So only preserve failures from the init_by_options() stage, not + from all initialization stages. + + Fixes issue 60. + +- test: Force reinstall of libtool on OSX + + Travis build environment appears to have changed. + +- test: Add valgrind build variant + +- test: Add null pointer to gtest args + + GoogleTest assumes that there is a null pointer in argv[argc], + so make it look like that. Without this change, tests run with + command-line arguments get memory errors under valgrind/ASAN. + +Daniel Stenberg (21 Aug 2016) +- AUTHOR: maybe gitgub isn't really an author =) + +- AUTHORS: added contributors from the git log + +- LICENSE.md: add a stand-alone license file + + Just the MIT license used in the top the source files moved out to a + stand-alone file for easier reference and discovery. + +- README: added "CII best practices" badge + +- SECURITY.md: suggested "security process" for the project + +David Drysdale (17 Aug 2016) +- test: Add Clang static analysis build to Travis + + Run scan-build over the library source code, but skip the + tests. Needs a later Clang install in Travis + +- test: more info on how to run fuzz testing + +- test: make fuzzer driver code C not C++ + +- test: fuzzer mode for AFL's persistent mode + + When fuzzing with AFL, if the LLVM-based instrumentation is + used (via the afl-clang-fast wrapper), then it is possible to + have a single execution of the fuzzer program iterate multiple + times over the fuzzing entrypoint (similar to libFuzzer's normal + mode of execution) with different data. This is much (e.g. 10x) + faster. + + Add code to support this, by checking whether __AFL_LOOP is + defined at compile-time. + + Also, shift the code to effectively be C rather than C++. + +- test: simplify deps for fuzzer entrypoint + + No need to depend on the rest of the test code (ares-test.h) for + the fuzzer entrypoint; this makes the entrypoint slightly simpler + to build with LLVM's libFuzzer. + + Also shift the code to effectively be C rather than C++ + +- test: disable MinGW tests + + The test binary built in the MinGW build is failing for some + reason. It works for me when I build locally, so I'm guessing + it's down to some sort of AppVeyor environment issue. + + Disable for now. + +Daniel Stenberg (16 Aug 2016) +- read_tcp_data: remove superfluous NULL check + + CID 56884 by Coverity. The pointer is already derefenced before this + point so it can't be NULL here anyway. + +- web: http => https + +GitHub (20 Jul 2016) +- [David Drysdale brought this change] + + Merge pull request #59 from fuze/master + + Update msvc_ver.inc for VS2015 Update 3 + +- [Chris Araman brought this change] + + Update msvc_ver.inc + + support Visual Studio 2015 Update 3 + +David Drysdale (2 May 2016) +- Fix trailing comment for #endif + +Daniel Stenberg (30 Apr 2016) +- email: use Gisle's "new" address + +David Drysdale (18 Apr 2016) +- test: drop superfluous fuzz inputs + + Where there are multiple fuzz input files that only differ in + the first two bytes (the query ID), just keep the first such + file. + +svante karlsson (15 Apr 2016) +- Update msvc_ver.inc + + support Visual Studio 2015 Update 2 + +David Drysdale (31 Mar 2016) +- test: Run fuzzcheck.sh in Travis build + +- test: add fuzzing check script to tests + + Add a test script that runs the fuzzing command over the + corpus of DNS packets. This doesn't actually do any fuzzing + (it just runs them as inputs without generating any variations) + but it does ensure that the fuzzing entrypoint is still working. + +- test: allow multiple files in aresfuzz command line + + If no arguments are specified, use stdin as input. + Otherwise treat each argument as a filename and feed + its contents to the fuzz entrypoint. + +- test: Add corpus of DNS packets + + For fuzz testing it is useful to start from a corpus of valid + packets, so fill out the test/fuzzinput/ directory with a bunch + of inputs. + + These packets were generated by temporarily modifying the c-ares + process_answer() function to save off any incoming response messages. + +- test: Add utility to show DNS packet from file + +- [nordsturm brought this change] + + Fix nsort initialization + + Author: Alexander Drachevskiy + http://c-ares.haxx.se/mail/c-ares-archive-2014-07/0004.shtml + http://c-ares.haxx.se/mail/c-ares-archive-2014-07/0014.shtml + +- test: Check setting nsort=0 option is respected + +- test: Update fuzzing function prototype + + libFuzzer changed expected return type from void to int + in LLVM 3.8. + +- Explicitly clear struct servent before use + + On a build where MSAN has been manually set up (which involves + using an MSAN-instrumented version of the standard C++ library, see + https://github.com/google/sanitizers/wiki/MemorySanitizerLibcxxHowTo) + there's a warning about use of uninitialized memory here. It + might be a false positive, but the fix is trivial so include it. + +- test: for AF_UNSPEC, return CNAME only for AAAA, but valid A record + + Also shuffle expected responses rsp6/rsp4 into the order they will occur. + +- [Chris Araman brought this change] + + msvc_ver.inc: support Visual Studio 2015 Update 1 + +- build: commonize MSVC version detection + + Remove the need to copy/paste version number mapping between + Makefile.msvc and test/Makefile.msvc. + +- test: Use different name in live test + +- test: Only pass unused args to GoogleTest + +- ahost.c: add cast to fix C++ compile + + If ahost.c is force-compiled as C++ the missing cast from + (void *) to (char **) is problematic. + +- ares_library_cleanup: reset ares_realloc too + + Otherwise a subsequent use of the library might use a previous + incarnation's realloc() implementation. + +Daniel Stenberg (9 Mar 2016) +- [Brad House brought this change] + + configure: check if tests can get built before enabled + + The current approach for disabling tests is not a good solution because + it forces you to pass --disable-tests, rather than auto-detect if your + system can support the tests in the first place. Many (most?) systems + do not have C++11. This also causes issues when chain-building c-ares, + the hosting system needs to be updated to support passing this + additional flag if necessary, it doesn't seem reasonable to add this + requirement which breaks compatibility. + + This change auto-detects if the system can build the tests and + automatically disable them if it cannot. If you pass --enable-tests to + configure and the system cannot build them either due to lack of system + support, or because cross-compilation is being used, it will throw an + appropriate error since the user indicated they really did want the + tests. + +David Drysdale (3 Mar 2016) +- [Viktor Szakats brought this change] + + Makefile.m32: add support for CROSSPREFIX + +- [Viktor Szakats brought this change] + + Makefile.m32: add support for extra flags + + Allow specification of CARES_{LD,C}FLAG_EXTRAS envvars + for mingw + +- test: Build with MinGW on AppVeyor + +- test: avoid in6addr_* constants + + These aren't available on MinGW, so use explicit addresses instead. + +- test: add missing #includes for dns-proto.cc + +- [Gregor Jasny brought this change] + + Fix man page typos detected by Lintian + +Daniel Stenberg (19 Feb 2016) +- configure: acknowledge --disable-tests + + Fixes #44 + +- AUTHORS: added contributors from the 1.11.0 release + +- bump: start working on the next version + +Version 1.11.0 (19 Feb 2016) + +Daniel Stenberg (19 Feb 2016) +- RELEASE-NOTES: final edits for 1.11.0 + +David Drysdale (15 Feb 2016) +- ares_dup.3: remove mention of nonexistent function + + ares_dup_options() doesn't exist, so don't document it. + +- test: skip repeated build steps + + Top-level buildconf/configure now triggers for the + test/ subdir too, so don't need to do explicitly. + +- test: namespaces unavailable when cross-compiling + +Daniel Stenberg (13 Feb 2016) +- configure: only run configure in test when NOT cross-compiling + + ... as the tests won't run cross-compiled anyway + +David Drysdale (13 Feb 2016) +- test: prefer ON_CALL to EXPECT_CALL to reduce flakes + + For UDP tests, there's a chance of a retry. EXPECT_CALL only + expects a single request to arrive at the server; ON_CALL allows + for a UDP retry and repeats the same answer. + + Note that ON_CALL and EXPECT_CALL can't be mixed in the same + test, and that tests that have a varied sequence of responses + for the same repeated request still have to use EXPECT_CALL. + +Daniel Stenberg (13 Feb 2016) +- configure: run configure in 'test' too + + Having the test dir completely stand-alone causes too many issues for + users and devs. It still needs to be built specifically. + +- configure: build silently by default + +- buildconf: run test/buildconf too if present + +- test/configure: build silently by default + +- [Gregor Jasny brought this change] + + dist: Distribute README.md + + Closes #42 + +Version 1.11.0 (11 Feb 2016) + +Daniel Stenberg (11 Feb 2016) +- Makefile.am: distribute the test dir too + +- RELEASE-NOTES: synced with 385582bd14b68a + +- [Nicolas \"Pixel\" Noble brought this change] + + ares_win32_init: make LoadLibrary work when using UNICODE too + + Closes #17 + +David Drysdale (11 Feb 2016) +- Use "resolve" as synonym of "dns" in nsswitch.conf + + Modern Linux systems may have libnss_resolve from systemd as the + resolver, which is then configured in /etc/nsswitch.conf with + the "resolve" keyword rather than "dns". + + Fixes #33 + +- ares_set_socket_callback: make manpage match code + + The code in ares_process.c that invokes the socket creation/connection + callback only checks for rc < 0, not for standard ares error codes. + +- Merge pull request #36 from AGWA-forks/master + + Add ares_set_socket_configure_callback() + +- test: Update init tests to match behaviour + + Unreadable config files are now treated the same way + as absent config files. + +- [Fedor Indutny brought this change] + + Ignore `fopen` errors to use default values + + After 46bb820be3a83520e70e6c5f0c5133253fcd69cd `init_by_resolv_conf` + errors are no longer swallowed in `ares_init_options`. This has exposed + a previously unknown bug in `lookups` initialization code. + + If there is no lookup configuration in `resolv.conf`, + `init_by_resolv_conf` will attempt to read it from other files available + on the system. However, some of these files may have restricted + permissions (like `600`), which will lead to `EACCESS` errno, which in + turn is handled like a fatal error by `init_by_resolv_conf`. + + However, it sounds illogical that this error should be handled as a + fatal. There is a `init_by_defaults` call that overrides `lookups` with + default value, and certainly possible absence of lookup information is + the reason why this function exists in a first place! + + I suggest handling any `fopen` errors as non-fatal ones, allowing to + pick up the `lookups` value from different config files, or to pick up + default value. + +Andrew Ayer (9 Feb 2016) +- Document callback type in man page for ares_set_socket_callback + +- Add ares_set_socket_configure_callback() + + This function sets a callback that is invoked after the socket is + created, but before the connection is established. This is an ideal + time to customize various socket options. + +David Drysdale (9 Feb 2016) +- test: ares_set_socket_callback failure behaviour + +- test: Check ares_parse_txt_reply_ext() entrypoint + +- [Fedor Indutny brought this change] + + txt: introduce `ares_parse_txt_reply_ext` + + Introduce `ares_txt_ext` structure with an extra `record_start` + field, which indicates a start of a new TXT record, thus allowing to + differentiate the chunks in the same record, from a chunks in a + different record. + + Introduce a new API method: `ares_parse_txt_reply_ext` that works with + this kind of struct. + +- doc: Update missed repo references + +- doc: Update docs on contributing + +- test: Run command line tools in Travis + + Do a quick execution of each of the command line tools + in the continuous integration build, so that any (say) + sanitizer failures show up. + +- acountry: drop inert test + + If ver_1 is true, then z0 and z1 must both be 'z', and so + (z0 != 'z' && z1 != 'z') can never be true. + + CID 56879, pointed out by Coverity. + +- doc: update badge locations to master repo + +- test: Enable maintainer mode + debug in Travis + +- test: Add an iOS build target + +- test: Ignore SIGPIPE in tests + +- test: More initialization tests + +- test: Improve containerized test mechanism + + Aim is to ensure that code coverage information can escape the + container. To do this: + - Enter a new mount namespace too, so that we can... + - Bind mount the expected source directory into the container + - Share memory with the sub-process so coverage information is + shared too. + +- test: Make contained tests easier to write + +- test: Add framework for containerized testing + + On Linux we can potentially use user and UTS namespaces to run a test + in a pseudo-container with: + - arbitrary filesystem (e.g. /etc/resolv.conf, /etc/nsswitch.conf, /etc/hosts) + - arbitrary hostname/domainname. + + Include a first pass at the framework code to allow this, along with a + first test case that uses the container. + +- test: Use a longer timeout for less flakiness + + Having occasional test failures from timeout before multiple + queries can complete, so up the default timeout for the test + from 100ms to 1500ms. + +- test: Make failure tests more robust + + Different platforms will do different numbers of allocations + in the processing of a given API call; just check that the + return code is either success or ENOMEM, and free off any + returned state in the former case. + + Also cope with ECONNREFUSED as well as ENOTFOUND. + +- test: Get test code building under Windows + + - Initial nmake file based off library nmake file + - Cast socket call arguments to (char *) + - Use wrapper sclose() that maps to closesocket() or close() + - Build a config.h indicating presence of headers + - Conditionally include netdb.h + - Remove unnecessary include of sys/socket.h + - Force longer bitmask for allocation failure tracking + - Call WSAStartup() / WSACleanup() in main() + - Set TCP_NODELAY for mock server + - Turn on tests in AppVeyor build + +- test: Disable tests that manipulate env on Windows + +- test: Move file lists into Makefile.inc + + In preparation for a Win32 build of the test suite. + +- test: Add a simple multi-server test + + Check rotate option does something + +- test: Allow for multiple mock servers + + - Update the MockServer to allow separate specification of + UDP and TCP ports + - Have an array of mock servers listening on consecutive + sets of ports. + - Rename Process(fd) to ProcessFD(fd) to avoid confusion. + - Initialize channel by using the new ares_set_servers_ports() + entrypoint, so multiple ports on the same loopback address + can be used. + +- test: Update test for set/get_servers variants + + Ports are significant in the _ports_ variant functions, so update test to cope. + +- test: Make GetNameServers() utility function port-aware + + Also make it generally available. + +- test: more testing, including of internal static functions + +- test: more tests, especially fallback processing + + - Make mock server listen on UDP + TCP in parallel. + - Test UDP->TCP fallback on truncation + - Test EDNS->no-EDNS fallback + - Test some environment init options + - Test nonsense reply + + test: short response + +- test: more tests, particularly of initialization + +- test: Run mock tests over both TCP and UDP + + With the exception of a few tests that make use of the timed + retry aspect of UDP. + +- test: Run mock tests over both IPv4 and IPv6 + +- test: Add more tests for edge cases + +- test: more nooks and crannies of pton functions + +- test: More tests for PTR parsing + +- test: Use of HOSTALIAS environment variable + +- test: Add RAII utility classes for testing + + - TempFile holds specific contents + - EnvValue sets an environment variable + +- test: More search domain scenarios + +- test: Remove duplicate flags from Makefile.am + +- test: Make test code leak-free + +- test: More tests + + - test use of sortlist + - test gethostbyname(AF_UNSPEC) + +- test: Test ares_gethostbyname_file() + +- test: Add more tests of ares_getnameinfo() + +- test: Tweak tests, add alloc failure test + +- test: Test init with options + +- test: More tests + + - ares_inet_net_pton() variants + - ares_getsock() variants + +- test: Expose ProcessWork() function + +- test: More parsing tests + + Including: + - Split each parse function test set out into separate files. + - Add an allocation failure test for each parsing function. + - Add error check test for each parsing function. + +- test: Add various additional tests + +- test: More tests + + Include tests of internal functions, based on the value of the + CARES_SYMBOL_HIDING macro; need to configure the library with + --disable-symbol-hiding to enable these tests. + +- test: Allow command line override of mock server port + +- test: Add README.md documentation + +- test: Temporarily avoid latest Python requests package + + Currently get error from Travis on this install step, and downgrading one + version appears to fix the problem. + + "Could not find any downloads that satisfy the requirement pyOpenSSL>=0.13 + (from requests[security])" + +- test: Add AppVeyor config file for Windows build + +- test: Add configuration for a Travis build + + Cover Linux & OSX on the container infrastructure, but install + a later G++ to satisfy the tests' need for C++11. + + Use a build matrix to include a variety of build variants: + - ASAN + - UBSAN + - LSAN + - Coverage via coveralls.io + + test: invoke ASAN and coverage in Travis build + + Also shift to use explicit build matrix + + test: Use coveralls.io for coverage tracking + + test: Add a build with UBSAN + + Also expand and re-order the setting of environment variables + for easier modification. + + test: Add LSAN build to Travis config + +- test: Add initial unit tests for c-ares library + + The tests are written in C++11, using the GoogleTest and GoogleMock + frameworks. They have their own independent autoconf setup, so that + users of the library need not have a C++ compiler just to get c-ares + working (however, the test/configure.ac file does assume the use of + a shared top-level m4/ directory). However, this autoconf setup has + only been tested on Linux and OSX so far. + + Run with "./arestest", or "./arestest -v" to see extra debug info. + The GoogleTest options for running specific tests are also + available (e.g. "./arestest --gtest_filter=*Live*"). + + The tests are nowhere near complete yet (currently hitting around + 60% coverage as reported by gcov), but they do include examples + of a few different styles of testing: + + - There are live tests (ares-test-live.cc), which assume that the + current machine has a valid DNS setup and connection to the + internet; these tests issue queries for real domains but don't + particularly check what gets returned. The tests will fail on + an offline machine. + + - There a few mock tests (ares-test-mock.cc) that set up a fake DNS + server and inject its port into the c-ares library configuration. + These tests allow specific response messages to be crafted and + injected, and so are likely to be used for many more tests in + future. + + - To make this generation/injection easier, the dns-proto.h file + includes C++ helper classes for building DNS packets. + + - Other library entrypoints that don't require network activity + (e.g. ares_parse_*_reply) are tested directly. + + - There are few tests of library-internal functions that are not + normally visible to API users (in ares-test-internal.cc). + + - A couple of the tests use a helper method of the test fixture to + inject memory allocation failures, using the earlier change to the + library to allow override of malloc/realloc/free. + + - There is also an entrypoint to allow Clang's libfuzzer to drive + the packet parsing code in ares_parse_*_reply, together with a + standalone wrapper for it (./aresfuzz) to allow use of afl-fuzz + for further fuzz testing. + +- test: Add local copy of GoogleMock/GoogleTest 1.7.0 + + Don't check in gtest/m4 files, as they are unused and interfere + with the top-level configure process. + +- doc: Show build badges in README.md + + Note that these URLs will need to be updated if/when the test branch + gets pulled into the master repo/branch. + +- doc: Convert README to README.md + + Gives better display on GitHub + +- doc: Update in preparation for next release + + Assume 1.11.0 is next (as there are various API additions). + Also add myself to AUTHORS. + +- build: Allow header compilation by Windows C++ compiler + +- build: Expose whether symbol hiding is on + + Adding the CARES_SYMBOL_HIDING definition allows the test suite to + detect whether internal symbols are available or not. + +- build: Add autoconf macros for C++11 code using pthreads + + Pull in testing macros from the GNU autoconf archive to allow + configure scripts to test for and setup use of a C++11 compiler + (AX_CXX_COMPILE_STDCXX_11) and the pthreads library (AX_PTHREAD). + + Note that these macros are not used by the main library autoconf, + just by the tests (which share the same m4/ directory). + +- build: Add a code coverage option + + Configure with: + ./configure --enable-code-coverage + Show coverage output with: + make code-coverage-capture + + Built on m4/ax_code_coverage.m4 from the GNU autoconf archive + to provide the macros to check for presence of gcov + lcov; + upstream macro modified to: + - Remove use of $(AM_DEFAULT_VERBOSITY) , as earlier versions of + autoconf (such as the one used by default on Travis) do not have this. + - Rather than automatically defining CODE_COVERAGE_RULES to be a set + of makefile rules that use ifeq/endif (which is GNU make-specific), + instead only define CODE_COVERAGE_RULES if coverages is turned on, + and in that case don't use conditionals in the makefile. + +- api: Add entrypoints to allow use of per-server ports + + Add user-visible entrypoints ares_{get,set}_servers_ports(3), which + take struct ares_addr_port_node rather than struct ares_addr_node. + This structure includes a UDP and TCP port number; if this is set + to zero, the channel-wide port values are used as before. + + Similarly, add a new ares_set_servers_ports_csv(3) entrypoint, which + is analogous to ares_set_servers(3) except it doesn't ignore any + specified port information; instead, any per-server specified port + is used as both the UDP and TCP port for that server. + + The internal struct ares_addr is extended to hold the UDP/TCP ports, + stored in network order, with the convention that a value of zero + indicates that the channel-wide UDP/TCP port should be used. + + For the internal implementation of ares_dup(3), shift to use the + _ports() version of the get/set functions, so port information is + transferred correctly to the new channel. + + Update manpages, and add missing ares_set_servers_csv to the lists + while we're at it + +- api: Add ares_set_sortlist(3) entrypoint + + Allow explicit configuration of the channel's sortlist, by + specifying a string in the same format as the equivalent + /etc/resolv.conf option. + + This allows library users to perform the same configuration + that is available via /etc/resolv.conf, but without needing + to change that file. + +- api: Allow injection of user-specified malloc/free functions + + Add a new ares_library_init_mem() initialization function for the + library which allows the library user to specify their own malloc, + realloc & free equivalents for use library-wide. + + Store these function pointers in library-wide global variables, + defaulting to libc's malloc(), realloc() and free(). + + Change all calls to malloc, realloc and free to use the function pointer + instead. Also ensure that ares_strdup() is always available + (even if the local environment includes strdup(3)), and change the + library code to always use it. + + Convert calls to calloc() to use ares_malloc() + memset + +- api: Add option to expose some internal functions + + Purely for testing, add --enable-expose-statics option to configure + which converts some static internal functions to be externally visible. + +- api: Expose the ares_library_initialized() function + +- ahost: Allow repeated -s options + + This also removes a potential leak where later -s options would + replace earlier ones without freeing the relevant string. + +- Mark unhittable lines + + Add comments for the benefit of the lcov tool, marking + lines that cannot be hit. Typically these are fall-back + protection arms that are already covered by earlier checks, + and so it's not worth taking out the unhittable code (in case + someone changes the code between the two places in future). + +- ares_set_servers_csv.3: make return type match code + +- bitncmp: update comment to match code behaviour + +- ares_striendstr: fix so non-NULL return can happen + + This looks to have been broken since it was first introduced in 2005 in + commit aba0b775ea30 ("Added ares_getnameinfo which mimics the + getnameinfo API") + +- config_sortlist: free any existing sortlist on (re)alloc failure + + If we get an allocation failure on 2nd or later entry in the sortlist, the + code would return ENOMEM but still leave the initial entries allocated. + Ensure that *sortlist is set to NULL whenever ENOMEM is returned. + +- ares_dup: clear new channel on failure + + If the attempt to transfer IPv6 servers from the old to the new channel + fails, the previous code would still return a channel to the user even though + an error return code was generated. This makes it likely that users would + leak the channel, so explicitly clear the channel in this case. + +- ares_init_options: don't lose init failure + + If (say) init_by_options() fails, the subsequent call to + init_by_defaults() was overwriting the return code with + success. Still call init_by_defaults() regardless, but track + its return value separately + +- ares_gethostbyname: don't leak valid-but-empty hostent + + If an AF_UNSPEC query gets a valid response to its AAAA query, + but which has no IPv6 addresses in it, then the code chains on to + a A record query. However, the hostent from the AAAA response + was being leaked along the way (because it gets replaced before + the follow-on end_hquery() invocation). + +- ares_parse_txt_reply: propagate errors from per-substring loop + + If we get an allocation failure when processing a particular substring in a + TXT record, that failure is silently lost; fix that by propagating errors from + the inner loop to the outer loop. + +- process_answer: fix things up correctly when removing EDNS option + + When a server rejects an EDNS-equipped request, we retry without + the EDNS option. However, in TCP mode, the 2-byte length prefix was + being calculated wrong -- it was built from the answer length rather than + the length of the original request. + + Also, it is theoretically possible that the call to realloc() might change + the data pointed to; to allow for this, qbuf also needs updating. + + (Both these fixes were actually included in a patchset sent on the mailing + list in Oct 2012, but were included with other functional changes that + didn't get merged: + http://c-ares.haxx.se/mail/c-ares-archive-2012-10/0004.shtml) + +- ares__read_line: clear buf pointer on realloc failure + +- ares_expand_name: check for valid bits in label length + + The top two bits of the label length indicate whether this is a + label length (00) or an index to a name elsewhere in the message + (11). RFC1035 4.1.4 says that the other possible values for the + top two bits (01, 10) are reserved for future use. + +Daniel Stenberg (23 Jan 2016) +- [Gregor Jasny brought this change] + + Fix typos detected by lintian + + Closes #32 + +- [Gregor Jasny brought this change] + + Distribute all man pages + +- README.cares: s/I/Daniel + + ... and add a pointer to an existing version of the original area 1.1.1 + package.a + +- read_tcp_data: don't try to use NULL pointer after malloc failure + + CID 56884, pointed out by Coverity. We really should make this function + return an error code so that a malloc() failure can return back a major + failure. + +- configure_socket: explicitly ignore return code + + CID 56889 in Coverity pointed out the return code from setsocknonblock() + is ignored, and this added typecast to (void) makes it explicit. + +- ahost: check the select() return code + + Fixes CID 137189, pointed out by Coverity + +David Drysdale (18 Jan 2016) +- Fix buildconf on platforms using glibtoolize + + Commit c49a87eea538 changed buildconf to only check for + libtoolize, but missed a line + +- Don't exit loop early leaving uninitialized entries + + Update for commit affc63cba875d. + + The original patch from Gregor Jasny did not have the break + statement; I incorrectly added it to prevent continuing the loop. + However, the later entries in the array would then be left + uninitialized, causing problems for later cleanup. + + So fix to match Gregor's original patch, with apologies. + +Daniel Stenberg (18 Jan 2016) +- buildconf: remove check for libtool, it only requires libtoolize + +David Drysdale (17 Jan 2016) +- [Gregor Jasny brought this change] + + Use libresolv to initialize cares on iPhone targets + + On iPhone targets like iOS, watchOS or tvOS the file + /etc/resolv.conf cannot be used to configure cares. + + Instead the resolver library is queried for configuration + values. + + CC: Yury Kirpichev + +Daniel Stenberg (17 Jan 2016) +- README: updated to new repo URL + +David Drysdale (14 Jan 2016) +- [Lei Shi brought this change] + + Fixing slow DNS lookup issue + + This patch is fixing the dns lookup issue due to dummy dns information + of a disconnected adapter(in my case is a bluetooth adapter). I changed + the dns lookup policy to try GetNetworkParams first because the + GetNetworkParams provides the most reliable dns information (lots of + checks were done by system). I also filter out inoperable adapter in + DNS_AdaptersAddresses in case GetNetworkParams fail. + +- Merge pull request #30 from p-push/vs-2015 + + Support Visual Studio 2015 + +Oleg Pudeyev (3 Jan 2016) +- [Gisle Vanem brought this change] + + Support Visual Studio 2015 + +David Drysdale (11 Nov 2015) +- [Andrew Andkjar brought this change] + + added another version case to Makefile.msvc + + nmake version 11.00.61030.0 resolves to CC_VERS_NUM = 110 + +- Merge pull request #26 from bitbouncer/vs-2013 + + added define for visual studio 2013 + +svante karlsson (25 Jun 2015) +- added define for visual studio 2013 + +Jakub Hrozek (6 Nov 2014) +- ares__read_line: free buf on realloc failure + +- Destroy options if ares_save_options fails + + It's possible that, if ares_save_options failed, the opts structure + would contain some allocated memory. Calling ares_destroy_options in + this case is safe, because ares_save_options zeroes out the memory + initially. + +- [David Drysdale brought this change] + + Continue loop if space for hostname not large enough + + When attempting to build a search domain from the local hostname + (used as a fallback when no other methods have given a search + domain), the code doubles the buffer size on each loop iteration. + + However, the loop previously had a WHILE_FALSE terminator so the continue + statement exited the loop rather than going round again. + +Daniel Stenberg (30 Oct 2014) +- ares_getnameinfo.3: there is no ares_getaddrinfo + +David Drysdale (30 Sep 2014) +- [Gregor Jasny brought this change] + + Prevent tmpbuf from overrunning + + Fix Coverity error CID 56886. + + Signed-off-by: Gregor Jasny + +- [Gregor Jasny brought this change] + + Re-start loop if select fails + + Fix Coverity error CID 56882 + + Signed-off-by: Gregor Jasny + +- [Gregor Jasny brought this change] + + Free temporary variable in error path + + Fix Coverity CID 56890 + + Signed-off-by: Gregor Jasny + +- [Gregor Jasny brought this change] + + Fix integer shift overflow if both tcp_socket and udp_socket are set + + The problem occurs if at the start of the loop the sockindex is at the + last valid ARES_GETSOCK_MAXNUM position. If then both udp_socket and + tcp_socket are valid, sockindex gets incremented for UDP first and + points one entry behind the array for the tcp block. + So the fix is to check after every increment of sockindex if it is still + valid. + + Fix Coverity error CID 56878 + + Signed-off-by: Gregor Jasny + +- [Gregor Jasny brought this change] + + Null check before dereference + + Fix Coverity error CID 56880 + + Signed-off-by: Gregor Jasny + +Jakub Hrozek (28 Jul 2014) +- [Gisle Vanem brought this change] + + Comment in ares_ipv6.h + +David Drysdale (25 Jul 2014) +- CONTRIBUTING: add file to indicate mailing list is preferred + +- Add -t u option to ahost + + Add an option to allow specification of the AF_UNSPEC + address family. + +Jakub Hrozek (24 Jul 2014) +- host_callback: Fall back to AF_INET on searching with AF_UNSPEC + + Previously, when an ares_gethostbyname() searched with AF_UNSPEC and the + first AF_INET6 call only returned CNAMEs, the host_callback never + retried AF_INET. + + This patch makes sure than on ARES_SUCCESS, the result of AF_INET6 is + taken as authoritative only if the result contains some addresses. + +- [David Drysdale brought this change] + + Move memset call below platform-specific declarations + + A GitHub commenter [1] says that my recent change to ahost.c has + problems compiling on Windows + C89 platforms. + + [1] https://github.com/bagder/c-ares/commit/ee22246507c9#commitcomment-6587616 + +- [David Drysdale brought this change] + + Update ahost man page to describe -s option. + + Commit ee22246507c9 added the -s option to the + ahost command, but neglected to update the man page to + describe it. + + Also fix typo in description of -t option. + +- ares_parse_soa_reply: Do not leak rr_name on allocation failure + + If ares_malloc_data failed, already allocated rr_name would go out of + scope. + +- [David Drysdale brought this change] + + Don't override explicitly specified search domains + + Only set search domains from /etc/resolv.conf if there isn't a value + already present in the channel. + +- [David Drysdale brought this change] + + Allow specification of search domain in ahost + + Add the "-s domain" command line option to override the search + domains. + +Daniel Stenberg (12 May 2014) +- Revert "ares_parse_aaaa_reply: fix leak when reply contains 1 alias and no address" + + This reverts commit 440110b303fdbfadb3ad53d30eeb98cc45d70451. + +- [Frederic Germain brought this change] + + ares_parse_aaaa_reply: fix leak when reply contains 1 alias and no address + +- [Doug Kwan brought this change] + + ares_build.h: fix building on 64-bit powerpc + + There are two issues. + + 1. gcc actually does not use __ppc__ and __ppc64__ but __PPC__ and + __PPC64__. The tests of __ILP32__ and __LP64__ are sufficient for gcc. + + 2. clang defines __GNU__ and defines both __ppc64__ and __ppc__ when + targeting ppc64. This makes CARES_SIZEOF_LONG to be 4 on a ppc64 system + when building with clang. + + My patch is two change the order of the checks so that we check the + 64-bit case first. + +- refresh: updated now with automake 1.14 + +- [David Drysdale brought this change] + + single_domain: Invalid memory access for empty string input + + We noticed a small buglet in ares_search() when it gets an empty string + as input -- the single_domain() utility function in ares_search.c + accesses invalid memory (before the start of the string). + +Guenter Knauf (31 Aug 2013) +- Fixed warning 'type specifier missing'. + +Daniel Stenberg (30 Aug 2013) +- [Tor Arntsen brought this change] + + ares_rules.h: CARES_SIZEOF_LONG doesn't exist anymore, don't test for it + + It was removed in f19387dd72432 + +- nowarn: use instead of configure for size of long + + This makes the header file much more multi-arch friendly and can be used + as-is with both 32 bit and 64 bit builds. + +- timeoffset: made static and private + + ares__timeoffset() was only used once within this single source file + +- timeadd: make static + + ares__timeadd() was only ever used from within the same source + +Yang Tse (18 Jul 2013) +- xc-am-iface.m4: comments refinement + +- configure: fix 'subdir-objects' distclean related issue + + See XC_AMEND_DISTCLEAN comments for details. + +- configure: automake 1.14 compatibility tweak (use XC_AUTOMAKE) + +- xc-am-iface.m4: provide XC_AUTOMAKE macro + +Daniel Stenberg (12 May 2013) +- gitignore: ignore all ares_*pdf but also CHANGES.dist + +- bump: start working towards 1.10.1 + +Version 1.10.0 (12 May 2013) + +Daniel Stenberg (12 May 2013) +- RELEASE-NOTES: two more bug fixes + +- [Keith Shaw brought this change] + + ares_set_servers_csv: fixed IPv6 address parsing + + Fixed bug that caused the last part of an IPv6 address to be parsed as + the port number when the last part is all numeric. + +- nroff: fix two syntax mistakes + + ares_parse_a_reply and ares_parse_aaaa_reply both had two \fB instead of + \fP + + Reported-by: Alexander Klauer + Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-03/0010.shtml + +- [Alex Loukissas brought this change] + + build: fix build on msvc11 + +- Makefile.am: increment -version-info for 1.10.0 release + +- README: remove unnecessary comment + +- ares_version.h: copyright end range year is now 2013 + +- RELEASE-NOTES: synced with fb0737f3a0a1c37 + +- [Paul Saab brought this change] + + ares_parse_aaaa_reply: Plug memory leak + + This change is similar to ares_parse_a_reply.c in commit + bffd67f16a8f42fe6dbf79ab2e39d92eea05c8a6 + +- [Patrick Valsecchi brought this change] + + ares_parse_txt_reply: return a ares_txt_reply node for each sub-string + + Previously, the function would wrongly return all substrings merged into + one. + +- [Alexander Klauer brought this change] + + library init: documentation update + + This commit updates the documentation of ares_library_init() and + ares_library_cleanup() with regard to the newly introduced reference + counting of initializations and deinitializations. + +- [Alexander Klauer brought this change] + + library init: be recursive + + Previously, a single call to ares_library_cleanup() would deinitialise + the c-ares library, regardless of how many times ares_library_init() was + called. This behaviour may cause problems in programs linking two or + more libraries which, in turn, use c-ares. The present commit fixes this + problem, deinitializing the library only after a number of calls to + ares_library_cleanup() matching the number of calls to + ares_library_init(). + +- [Patrick Valsecchi brought this change] + + protocol parsing: check input data stricter + + ... so that bad length fields aren't blindly accepted + + Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-04/0016.shtml + +Guenter Knauf (11 Apr 2013) +- Create ares_build.h when buidling from Git. + +- Added -DCARES_STATICLIB to CFLAGS. + + Currently this static makefile does only support building the + static library libcares.a. + +Daniel Stenberg (8 Apr 2013) +- [Alexander Klauer brought this change] + + .gitignore: ignore patch files + + This commit adds a line to .gitignore to the effect that patch files + generated by 'git format-patch' are excluded from the repository. + +- [Alexander Klauer brought this change] + + ares_destroy() documentation: no new requests + + Clarify that no new requests may be added to a resolver channel that is + currently being destroyed. + +- [Alexander Klauer brought this change] + + Documentation: properly document ARES_ECANCELLED + + This commit clarifies the behaviour of ares_cancel() with respect to + callbacks and adds missing documentation of ARES_ECANCELLED to the man + pages of the affected functions. + +- [Alexander Klauer brought this change] + + ares_cancel(): cancel requests safely + + An invocation of ares_cancel() walks through the request list, calling + the callbacks of all pending requests on a channel. Previously, if such + a callback added a new request to the channel, the request list might + not end up empty, causing an abort by assertion failure. The present + commit ensures that precisely all requests present upon entry of + ares_cancel() are cancelled, and that adding new requests through + callbacks is safe. + +Yang Tse (10 Mar 2013) +- ares.h: stricter CARES_EXTERN linkage decorations logic + + No API change involved. + +- ares_build.h.dist: enhance non-configure GCC ABI detection logic + + GCC specific adjustments: + + - check __ILP32__ before 32 and 64bit processor architectures in + order to detect ILP32 programming model on 64 bit processors + which, of course, also support LP64 programming model, when using + gcc 4.7 or newer. + + - keep 32bit processor architecture checks in order to support gcc + versions older than 4.7 which don't define __ILP32__ + + - check __LP64__ for gcc 3.3 and newer, while keeping 64bit processor + architecture checks for older versions which don't define __LP64__ + +Daniel Stenberg (9 Mar 2013) +- ares.h: there is no ares_free_soa function + +Yang Tse (9 Mar 2013) +- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility + +- ares_inet_ntop.3: s/socklen_t/ares_socklen_t + +- configure: use XC_LIBTOOL for portability across libtool versions + +- xc-lt-iface.m4: provide XC_LIBTOOL macro + +- Makefile.am: use AM_CPPFLAGS instead of INCLUDES + +- inet_ntop.c: s/socklen_t/ares_socklen_t + +- inet_ntop.c: s/socklen_t/ares_socklen_t for portability + +Daniel Stenberg (19 Feb 2013) +- ares.h: s/socklen_t/ares_socklen_t for portability + +- ares_inet_ntop.3: 4th argument is socklen_t! + +- spell inet correctly! + +- ares_inet_pton/ntop: cleanup + + Make sure that the symbols are always exported and present in c-ares. + + Make the headers prefixed with 'ares'. + + Removed the inet_ntop.h version as it no longer features any content. + +- ares_inet_ntop/ares_inet_pton: added man pages + +Yang Tse (15 Feb 2013) +- [Gisle Vanem brought this change] + + curl_setup_once.h: definition of HAVE_CLOSE_S defines sclose() to close_s() + +- [Gisle Vanem brought this change] + + config-dos.h: define HAVE_CLOSE_S for MSDOS/Watt-32 + +- [Gisle Vanem brought this change] + + config-dos.h: define strerror() to strerror_s_() for High-C + +Daniel Stenberg (13 Feb 2013) +- ares_get_datatype: removed unused function + + it was also wrongly named as internal functions require two underscores + +- ares__bitncmp: use two underscores for private functions + + It used a single one previously making it look like a public one + +- ares__generate_new_id: moved to ares_query.c + + ... and ares__rc4 is turned into a local static function. + +- ares__swap_lists: make private and static + + ... since there's only one user, make it static within ares_process.c + +Yang Tse (13 Feb 2013) +- Makefile.msvc: add four VS version strings + +Daniel Stenberg (13 Feb 2013) +- ares_expand_name.3: clarify how to free the data + +Yang Tse (30 Jan 2013) +- zz40-xc-ovr.m4: fix 'wc' detection - follow-up 2 + + - Fix a pair of single quotes to double quotes. + + URL: http://curl.haxx.se/mail/lib-2013-01/0355.html + Reported by: Tor Arntsen + +- zz40-xc-ovr.m4: fix 'wc' detection - follow-up + + - Take into account that 'wc' may return leading spaces and/or tabs. + + - Set initial IFS to space, tab and newline. + +- zz40-xc-ovr.m4: fix 'wc' detection + + - Take into account that 'wc' may return leading spaces. + + - Set internationalization behavior variables. + + Tor Arntsen analyzed and reported the issue. + + URL: http://curl.haxx.se/mail/lib-2013-01/0351.html + +- zz40-xc-ovr.m4: check another three basic utilities + +- zz40-xc-ovr.m4: 1.0 interface stabilization + + - Stabilization results in 4 public interface m4 macros: + XC_CONFIGURE_PREAMBLE + XC_CONFIGURE_PREAMBLE_VER_MAJOR + XC_CONFIGURE_PREAMBLE_VER_MINOR + XC_CHECK_PATH_SEPARATOR + - Avoid one level of internal indirection + - Update comments + - Drop XC_OVR_ZZ40 macro + +- zz40-xc-ovr.m4: emit witness message in configure BODY + + This avoids witness message in output when running configure --help, + while sending the message to config.log for other configure runs. + +- zz40-xc-ovr.m4: truly do version conditional overriding + + - version conditional overriding + - catch unexpanded XC macros + - fix double words in comments + +- zz40-xc-ovr.m4: fix variable assignment of subshell output bashism + + Tor Arntsen analyzed and reported the issue. + + URL: http://curl.haxx.se/mail/lib-2013-01/0306.html + +- zz40-xc-ovr.m4: reinstate strict AC_REQUIRE macro dependencies + +- zz40-xc-ovr.m4: avoid double single-quote usage + +- zz40-xc-ovr.m4: parentheses balancing of 'case' statements + + m4 quadrigraph shell comment technique allows proper autoconf + parentheses balancing in shell 'case' statements. The presence + of unbalanced parentheses may otherwise trigger expansion bugs. + +- zz40-xc-ovr.m4: internals overhauling + + - Update comments + - Execute commands in subshells + - Faster path separator check + - Fix missing 'test' command + - Rename private macros + - Minimize AC_REQUIRE usage + +- zz40-xc-ovr.m4: redirect errors and warnings to stderr + +- configure: use XC_CONFIGURE_PREAMBLE early checks + + Some basic checks we make were placed early enough in generated + configure script when using autoconf 2.5X versions. Newer autoconf + versions expand these checks much further into the configure script, + rendering them useless. Using XC_CONFIGURE_PREAMBLE fixes placement + of early intended checks across all our autoconf supported versions. + +- zz40-xc-ovr.m4: provide XC_CONFIGURE_PREAMBLE macro + +- configure: autotools compatibility fixes - step I + + Fix proper macro expansion order across autotools versions for + C compiler and preprocessor program checks. + +- configure: fix automake 1.13 compatibility + + Tested with: + + buildconf: autoconf version 2.69 + buildconf: autom4te version 2.69 + buildconf: autoheader version 2.69 + buildconf: automake version 1.13.1 + buildconf: aclocal version 1.13.1 + buildconf: libtool version 2.4 + buildconf: GNU m4 version 1.4.16 + +- ares_private.h: use again memdebug.h instead of curl_memdebug.h + +- configure.ac: replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS + + automake 1.13 errors if AM_CONFIG_HEADER is used in configure script. + +- cares-override.m4: provide AC_CONFIG_MACRO_DIR definition conditionally + + Provide a 'traceable' AC_CONFIG_MACRO_DIR definition only when using + an autoconf version that does not provide it, instead of what we were + doing up to now of providing and overriding AC_CONFIG_MACRO_DIR for + all autoconf versions. + +- ares_private.h: use curl_memdebug.h instead of memdebug.h + +- vc6cares.dsp: add ares_create_query.c and ares_parse_soa_reply.c + +- cares-functions.m4: improve gethostname arg 2 data type check + +- setup_once.h: HP-UX specific 'bool', 'false' and 'true' definitions. + + Also reverts commit bceb40095a + +- configure: check if compiler halts on function prototype mismatch + +- cares-functions.m4: add gethostname arg 2 data type check and definition + +- cares-functions.m4: update thread-safeness detection of getaddrinfo() + + Take in account that POSIX standard Issue 7 drops h_errno support. Now, we also + consider getaddrinfo() to be thread-safe when (_POSIX_C_SOURCE >= 200809L) or + (_XOPEN_SOURCE >= 700) independently of whether h_errno exists or not. + + Take in account that h_errno might be a modifiable lvalue not defined as + a C preprocessor macro. + +- setup_once.h: HP-UX issue workaround + + Issue: When building a 32bit target with large file support HP-UX + header file may simultaneously provide two different + sets of declarations for sendfile and sendpath functions, one with + static and another with external linkage. Given that we do not use + mentioned functions we really don't care which linkage is the + appropriate one, but on the other hand, the double declaration emmits + warnings when using the HP-UX compiler and errors when using modern + gcc versions resulting in fatal compilation errors. + + Mentioned issue is now fixed as long as we don't use sendfile nor + sendpath functions. + +- setup_once.h: refactor inclusion of and + + Inclusion of these two header files now done in setup_once.h + +- Header inclusion clean-up + + Remove header inclusions already done in setup_once.h + +- setup_once.h: HP-UX specific TRUE and FALSE definitions + + Some HP-UX system headers require TRUE defined to 1 and FALSE to 0. + +- ares_timeout.c: fix compiler warning + +- ares_create_query.c: IRIX compilation fix + +- c-ares/nameser.h: add some T_* defines for ns_t_* values + +Daniel Stenberg (7 Nov 2012) +- Revert "ares_parse_aaaa_reply: fix memory leak" + + This reverts commit 50f25d8a4b2d16f4c5e0ef620238688b7a315c7a. + +- ares_parse_aaaa_reply: fix memory leak + + an allocated buffer was not freed in the successful case. + +- [Gisle Vanem brought this change] + + adig: perror() doesn't work for socket errors on windows + + ... so print the SOCKERRNO instead + +- get_DNS_AdaptersAddresses: fix IPv6 parsing + + Use of the wrong define made the function not parse IPv6 addresses + properly. + + Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-06/0028.shtml + Reported by: Saúl Ibarra Corretgé + +- version: bumped to 1.10.0 + + Due to the newly added function: ares_create_query() + +- AUTHORS: synced with 83093ac450 + + Added 21 authors since this document was last updated + +- ares_create_query.3: mention when this is added + +- [hpopescu@ixiacom.com brought this change] + + Added new feature (rfc2671) + +- code police: fix indents, < 80 columns, reflowed comments + +Guenter Knauf (11 Jul 2012) +- Cleaned up version awk script. + +Daniel Stenberg (30 Jun 2012) +- [Gisle Vanem brought this change] + + read_udp_packets: bail out loop on bad sockets + + I can see that recvfrom() in ares_process.c many times is called with + 'udp_socket' == ARES_SOCKET_BAD. The code takes care not to call + recv/recvfrom with ARES_SOCKET_BAD in the outer-loop. So should the + inner-loop. + +Yang Tse (29 Jun 2012) +- cares-compilers.m4: remove -Wstrict-aliasing=3 from clang + + Currently it is unknown if there is any version of clang that + actually supports -Wstrict-aliasing. What is known is that there + are several that don't support it. + +- cares-compilers.m4: -Wstrict-aliasing=3 for warning enabled gcc and clang builds + +Daniel Stenberg (18 Jun 2012) +- version: work towards 1.9.2 (at least) + +Version 1.9.1 (18 Jun 2012) + +Daniel Stenberg (18 Jun 2012) +- RELEASE-NOTES: 1.9.1 coming up + +Version 1.9.0 (16 Jun 2012) + +Daniel Stenberg (16 Jun 2012) +- ares_version.h: next version is 1.9.0 + +- [Marko Kreen brought this change] + + ares_data.h: ARES_DATATYPE_SOA_REPLY is added in 1.9.0 + +- RELEASE-NOTES: synced with 979bf951d + + Next release deemed to become 1.9.0 due to the new function + +- [Marko Kreen brought this change] + + SOA parser added + + I need to do SOA queries, so here is a parser for them. + + - ares_soa_reply: new struct + - ares_malloc_data/ares_free_soa: ARES_DATATYPE_SOA_REPLY + - ares_parse_soa_reply: actual function + +Yang Tse (14 Jun 2012) +- Kill compiler warning + +- Fix libcares.pc generation for static MingW* cross builds + +Daniel Stenberg (21 May 2012) +- [Nick Alcock brought this change] + + Fix UDP and TCP port byte order in saved options. + + The UDP and TCP port are stored in network byte order in the + ares_channeldata, but are passed in to ares_init_options() in host byte + order. Thus we must return them from ares_save_options() in host byte + order too, or a duplicated channel will convert them again, leading to a + nonfunctional channel and a mysterious connection refused error from + ares_gethostbyname(). This breaks ares_dup(), thus the curl easy API + when c-ares is used by curl, and thus all the curl easy API's users. + +Yang Tse (28 Apr 2012) +- version: start working on 1.8.1-DEV + +Version 1.8.0 (27 Apr 2012) + +Daniel Stenberg (27 Apr 2012) +- RELEASE-NOTES: call next 1.8 instead + + Since we added a function, let's use a stricter bumping scheme + +Yang Tse (25 Apr 2012) +- INSTALL: some adjustments + +Daniel Stenberg (25 Apr 2012) +- GIT-INFO: mention buildconf + +Yang Tse (25 Apr 2012) +- INSTALL: remove more sections that don't apply to c-ares + +- ares_timeout.c: fix compiler warning + +Daniel Stenberg (25 Apr 2012) +- [Ben Noordhuis brought this change] + + Makefile.m32: fix mingw32 build + + * add . to include path so ares_build.h is picked up + * make ar configurable to ease cross-compiling + +- RELEASE-NOTES: added what's happened since 1.7.5 + +Guenter Knauf (22 Apr 2012) +- Updated copyright year. + +Yang Tse (21 Apr 2012) +- ares_init.c: Further refactoring of Windows system's DNS fetching code + +Guenter Knauf (20 Apr 2012) +- Android: small changes to dns property part. + + Prefix prop vars; kill var; use DNS_PROP_NAME_PREFIX macro. + +- Handle CNAME-only in ares_parse_aaaa_reply(). + + posted to the c-ares list by Peter Griess . + +- Add support for multiple DNS servers on Android. + + Before, c-ares always used the first DNS server on Android, causing + network problems if this DNS server was not available. + + Signed-off-by: Geert Uytterhoeven + +- Added INSTALL so it gets into tarballs. + +- Added some more ifdefs to silent compiler warnings. + +Yang Tse (17 Apr 2012) +- INSTALL: remove a non c-ares section + +- cares-compilers.m4: -Wno-pedantic-ms-format for Windows gcc 4.5 builds + + When building a Windows target with gcc 4.5 or newer and strict compiler + warnings enabled use -Wno-pedantic-ms-format in addition to other flags. + +- setup_once.h: tighten requirements for stdbool.h header inclusion + + Include stdbool.h only when it is available and configure is capable of + detecting a proper 'bool' data type when the header is included. + +- configure: NATIVE_WINDOWS no longer defined in config file + +- cares-compilers.m4: double underscore decoration for visibility attribute + +- build adjustments: CARES_SYMBOL_HIDING no longer defined in config files + + configure script now provides conditional definitions for Makefile.am + that result in CARES_SYMBOL_HIDING being defined by resulting makefiles + when appropriate. + +- configure: Windows cross-compilation fixes + + CARES_BUILDING_LIBRARY and CARES_STATICLIB no longer defined in ares_config.h, + configure will generate appropriate conditionals so that mentioned symbols + get defined and used in Makefile derived from Makefile.am at compilation time. + +Guenter Knauf (17 Apr 2012) +- Added INSTALL file adapted from libcurl. + + Not yet ready, and needs further edits. + +Yang Tse (16 Apr 2012) +- ares_init.c: get_iphlpapi_dns_info() refactoring + +Guenter Knauf (16 Apr 2012) +- Kill some more compiler warnings. + +- Kill compiler warning about unused var. + +- Fixed my last commit: wrong preprocessor directive. + +- Check for __ANDROID__ in addition to ANDROID macro. + +- Check for __ANDROID__ in addition to ANDROID macro. + + Posted to c-ares list by Wayne. + +- Fix for Android to disable useless arpa/nameser.h. + +- Fix for Android to include sys/select.h for fd_set. + +Yang Tse (17 Mar 2012) +- ares_data.c: some NAPTR related fixes + +Daniel Stenberg (16 Mar 2012) +- port numbers: convert them to network order! + + When the config options ARES_OPT_UDP_PORT or ARES_OPT_TCP_PORT are used, + make sure to convert them to network byte order! + + Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-02/0004.shtml + +- white space cleanup + + - Keep code within 80 columns + + - Removed funny spaces after open paren and before closing paren + +- [Poul Thomas Lomholt brought this change] + + get_iphlpapi_dns_info: fix buffer overrun + + I experienced a buffer overrun exception in c-ares on Windows and + tracked it down to be an error in the calculation of the 'left' variable + in get_iphlpapi_dns_info(). + + I changed the variable type of 'left' to a _signed_ type because of the + subtraction arithmetic; not sure if a long is the best choice + +- Merge pull request #7 from saghul/naptr + + Added support for parsing NAPTR records + +saghul (23 Feb 2012) +- Added support for parsing NAPTR records + +Yang Tse (19 Jan 2012) +- ares_init.c: fix compiler warning on winsock builds + +- configure: libtool 1.5 tweaks + +Daniel Stenberg (19 Dec 2011) +- ares_timeout.3: fix the NAME section + + It was clearly a copy n' paste error + +Yang Tse (27 Sep 2011) +- [Albert Chin brought this change] + + configure - m4: make CURL_CHECK_DEF ignore leading whitespace on symbol def + + When using Sun C compiler the preprocessor somehow inserts an extra space + in front of replaced symbol, breaking CURL_CHECK_DEF macro. To workaround + this, macro CURL_CHECK_DEF now ignores all leading whitespace in front of + symbol substitution result. + +- ares_init.c: fix segfault triggered in ares_init_options() upon previous + failure of init_by_defaults() and incomplete cleanup there. + +- ares_process.c: fix compiler warning + +- fix MSVC compiler warning 'conditional expression is constant' + +- setup_once.h cleanup and sync + +- [Denis Bilenko brought this change] + + ares_getnameinfo: fix random results with c-ares 1.7.5 + + In ares_getnameinfo memcpy did not copy enough bytes, causing + it to return arbitrary memory contents as a result. + +- warnings: fix another 'conversion may lose significant bits' compiler warning + +- ares_dns.h: adjust DNS__16BIT and DNS__32BIT macro definitions + + Fixing compiler warnings existing definitions triggered on these. + +- ares_destroy.c: fix segfault in ares_destroy_options() + +Daniel Stenberg (21 Aug 2011) +- ares_parse_srv_reply: silence compiler warnings + + ... by adding ugly typecasts. + +- CHANGES: generate from script + + The CHANGES file is now generated automatically with 'git2changes.pl', + invoked by the maketgz script which is used to build release archives. + + The former human edited CHANGES file was renamed to CHANGES.0 in git. + +Yang Tse (21 Aug 2011) +- Makefile.netware: SIZEOF_SHORT definition + +- warnings: fix some 'conversion may lose significant bits' compiler warnings + +- configure: fix symbol hiding usability check + + A more thorough test is done now in order to determine visibility attribute + usability, given that some compilers don't support visibility attribute on + all configurations. + +Daniel Stenberg (16 Aug 2011) +- 1.7.6: start working... + +Version 1.7.5 (16 Aug 2011) + +Daniel Stenberg (16 Aug 2011) +- CHANGES: synced for 1.7.5 release + +- RELEASE-NOTES: synced with bb4096effef7f000 + +Jakub Hrozek (15 Aug 2011) +- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses + +Yang Tse (10 Aug 2011) +- [Gisle Vanem brought this change] + + ares_iphlpapi.h: Watcom C fix + + Added "!defined(_WS2DEF_)" since Watcom doesn't have + a per type guard for the typedefs 'CSADDR_INFO' (that MingW has) or + 'SOCKET_ADDRESS' (that MSVC has). But we can use the header-guard for + instead. + +- [Gisle Vanem brought this change] + + Makefile.Watcom: + * The 'NTDDI_VERSION' needs to be raised to 0x05010000 + in order for SOCKADDR_STORAGE etc. to be typedefed. + * Replaced '-dUSE_WATT32' with '-dWATT32'. + * Added $(DEMOS) to the 'all' target and removed the 'demos' + target to be consistent with e.g. Makefile.msvc etc. + * 'ENABLE_IPV6' is no longer used. Hence removed the '%use_ipv6' construct. + * object-file order seems to be important (Watcom v.19). Hence + 'ares_getopt.obj' must be put after the .obj that references getopt(). + +- cares-compilers.m4: CARES_CONVERT_INCLUDE_TO_ISYSTEM adjustments + + Add CARES_CHECK_COMPILER as a requirement. + + Ensure macro does nothing unless GNU_C or CLANG compiler is used. + + This should allow usage of this macro in unforeseen placements. + +- config-win32.h: comments adjustments - followup + +- config-win32.h: comments adjustments + +Daniel Stenberg (5 Aug 2011) +- [Tom Hughes brought this change] + + ares_parse_a_reply: fix memleak + +Yang Tse (29 Jul 2011) +- cares-functions.m4 serial # bump + +- Revert "configure: additional flag checks for fcntl() and socket()" + + This reverts commit 5f2a3b0e48f26d24cb1fefea0dccb92d417dcbf7. + +- configure: additional flag checks for fcntl() and socket() + +- xc-translit.m4 fix quoting + +- configure: avoid direct usage of AS_TR_* macros + +- xc-translit.m4 provides transliteration macros with well defined behavior. + +Jakub Hrozek (15 Jun 2011) +- Revert "Only fall back to AF_INET searches when looking for AF_UNSPEC addresses" + + This reverts commit b5823d65706af687c0e5110af8f0cfdcd068997d. + + This patch was not reviewed properly before pushing + +- Revert "Do not use sized constants in public headers" + + This reverts commit 22c01e96f7b2ae9923e1baa50bfe3c0d22297a7d. + + This is a Red Hat specific patch that does not belong into upstream + +- Use correct sizeof in ares_getnameinfo() + +- Do not leak rr_name on failures inside ares_parse_ptr_reply + +- Do not leak rr_name on failures inside ares_parse_a_reply + +- Do not leak rr_name on failures inside ares_parse_aaaa_reply + +- Do not leak rr_name on failures inside ares_parse_ns_reply + +- Fix incorrect sizeof() in ares_save_options + +- Fix incorrect allocation in ares_parse_ptr_reply() + +- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses + +- Do not use sized constants in public headers + +Daniel Stenberg (13 Jun 2011) +- [Jakub Hrozek brought this change] + + ares_free_hostent(NULL) should be a noop + +Yang Tse (8 Jun 2011) +- configure: fix recvfrom 5th arg type qualifier detection (followup) + +- configure: fix recvfrom 5th arg type qualifier detection + + Additionally remove whitespace from EOL + +Daniel Stenberg (4 Jun 2011) +- strlen: use size_t to receive the return + +Yang Tse (4 Jun 2011) +- xlc: avoid preprocessor definition usage when linking + +- ares_nowarn: icc 9.1 workaround + +- ares_nowarn: header inclusion fix + +- ares_init: make ares_private.h last included header again + +- compiler warning: fix + + Fix compiler warning: conversion may lose significant bits + +- compiler warning: fix + + Fix compiler warning: variable was set but never used + + Fix compiler warning: clobber ignored + +- ares_iphlpapi: fix compiler warnings + +- winsock: compilation fixes + + Provide winsock iphlpapi alternative definitions to prevent compilation + failures when using a variety of winsock header implementations. + +Daniel Stenberg (17 May 2011) +- [David Stuart brought this change] + + IPv6-on-windows: find DNS servers correctly + +- man pages: docs for the c-ares utility programs + +- ares_parse_ns_reply.c: remove CVSism + +Yang Tse (27 Mar 2011) +- build: fix header inclusion + +- getservbyport replacement for Win CE + +- renamed getplatform() to ares__getplatform() to avoid namespace pollution + +- configure: fix libtool warning + + Recent versions of libtool are now tracing usage of AC_CONFIG_MACRO_DIR + macro and warn heavily when not used in configure script along with + ACLOCAL_AMFLAGS in Makefile.am. So in order to make libtool happy + while keeping backwards compatibility this is added. + +- adig: RFC4034 resource record type detection + + Can be tested with: adig -s 8.8.8.8 -t ANY example.com + +- nameser.h: RFC4034 resource record type definitions + +- build: move platform stuff to ares_platform.c and ares_platform.h + +- build: find out windows platform using GetVersionEx() + +- build: use getenv() replacement function for systems which lack it + +- setup_once: system error codes for Windows CE + +- ares_search: use ERRNO macro for portability sake + +- System's errno.h inclusion cleanup follow-up. + + System's errno.h is conditionally included from setup_once.h + +- Windows CE specific adjustment + + All versions of Windows CE support Winsock 1.1 + +- System's errno.h inclusion cleanup. + + System's errno.h is conditionally included from setup_once.h + +- ares_init: fix gethostname error detection on winsock platforms + +- configure: r-enable temporarily disabled detection of system's inet_ntop() + + Detection was temporarily disabled in commit 674e044ccb21f2f63537da53565fce868f + +Daniel Stenberg (15 Mar 2011) +- configure: stop using the deprecated AM_INIT_AUTOMAKE syntax + +- [Gisle Vanem brought this change] + + Watt-32: use errno + + Make sure Watt-32 programs use 'errno' even on Win32 targets + +Guenter Knauf (18 Feb 2011) +- Removed commented CLFAGS no longer needed. + +- Fixed CFLAGS for NetWare. + + Added -m32 to enable compilation with x86_64 compilers; + added conditional to set -fpcc-struct-return only for gcc compiler. + +Daniel Stenberg (18 Feb 2011) +- [Gisle Vanem brought this change] + + Watt32: fix server init + + Somewhere in the process, programs using the Watt-32 tcp/ip stack + stopped working. + +- [Dima Tisnek brought this change] + + config_sortlist: (win32) missing else + + Without an else there, contents of "pat" that could have been + successfully set just above, may be clobbered by successive unsuccessful + calls to "xxx_pton" or "ip_addr". + +Yang Tse (17 Jan 2011) +- Makefile.msvc: add a couple of VS version strings + +- Makefile.msvc: add a couple of VS version strings + +- build: add install target to Makefile.msvc + +Daniel Stenberg (27 Dec 2010) +- ares_set_servers_csv: remove unused variables + +- init_by_resolv_conf: fix compiler warnings + + The code received the return codes in the 'status' variable without + using it. Instead we just ignore those particular errors. + +- getv4: Value stored to 'dst' is never read + +- advance_tcp_send_queue: avoid NULL ptr dereference + + If given a too large 'num_bytes' value, it would cause a NULL ptr + dereference. Instead the code will now break out of the loop at the end + of the list. + +- [Peter Pentchev brought this change] + + configure: fix a bashism + +- cleanup: avoid unsafe typecasts + + Avoid the risk of reading 16bit data from an unaligned address by using + a macro that is adapted for this. + +- [Stefan Bühler brought this change] + + ares_expand_name: Fix encoded length for indirect root + +Yang Tse (18 Dec 2010) +- build: add some explicit file references to VS project files + +- config-win32: provide HAVE_ASSERT_H definition + +- build: include ares_nowarn in sample program VS project files + +- build: include ares_nowarn among SAMPLESOURCES and SAMPLEHEADERS + +- configure: temporarily disable detection of system's inet_ntop() + + This is done to allow compilation of ares_inet_ntop() by some daily + builds picky compilers that otherwise do not need this function. + +- changes: mention last fix + +- ares_inet_ntop: remove definition and usage of macro SPRINTF + + Existing definition of SPRINTF always resulted in sprintf() being used, + and sprintf() returning 'int' is already used throughout the library. + +- ares_inet_ntop: reapply changes from previous c-ares version (III) + + - Replace 'u_char' with 'unsigned char'. + - Replace 'u_int' with 'unsigned int'. + - use macros ERRNO and SET_ERRNO() for errno handling. + +- ares_inet_ntop: reapply changes from previous c-ares version (II) + + - Remove rcsid. + - Adjust header file inclusions. + - ares_inet_ntop used only on systems without a proper inet_ntop function. + +- ares_inet_ntop: reapply changes from previous c-ares version (I) + + - Replace tabs with spaces. + - Use ANSI C style for function declarations and definitions. + - Use sizeof with parentheses. + +- ares_inet_ntop: fix off by one error triggering out of bounds write + + ares_inet_ntop would trigger an out of bounds write when the representation + of the address required 15 characters, due to not taking in account null + termination character. + + Full import of inet_ntop.c from bind-9.5.3rc1 to pull additional fixes. + +- ares_nowarn: add conditional inclusion of assert.h header + +- fix compiler warning: conversion may lose significant bits + +- ares_inet_net_pton: fix non-rejection of some malformed literals + + ares_inet_net_pton would return wrong values when excessively large, + and invalid, netmasks are used. Fixes are from bind-9.5.3rc1, + issue also described in the WLB-2008080064 advisory. + +- setup_once: provide ISASCII macro + +- configure: inet_net_pton function check adjustments + + Define HAVE_INET_NET_PTON only when system's inet_net_pton function is IPv6 + capable and is not affected by the WLB-2008080064 advisory. + + HAVE_INET_NET_PTON_IPV6 is no longer defined nor used. + +- ares_init: fix detection of semicolon comments in resolv.conf + + File resolv.conf may either use a hash '#' or a semicolon ';' character as an + indication that the rest of the line is a comment. This fixes not recognizing + the semicolon as a valid comment indicator in resolv.conf. + +- version: start working on 1.7.5 + +Version 1.7.4 (8 Dec 2010) + +Daniel Stenberg (8 Dec 2010) +- release-preps: CHANGES and RELEASE-NOTES synced + +- ares_set_local_*: added in 1.7.4, not before + +Yang Tse (3 Dec 2010) +- build: provide SIZEOF_SIZE_T definition for non-configure builds + +- build: config.dos renamed to config-dos.h + +- build: provide SIZEOF_SIZE_T netware definition + +- ares_gethostbyaddr: fix compiler warning: conversion may lose significant bits + +- configure: undo using autobuilds to temporarily verify strict aliasing warnings. + +- fix compiler warning: rounding, sign extension, or loss of accuracy may result + +Daniel Stenberg (2 Dec 2010) +- [Ben Noordhuis brought this change] + + ares_parse_a_reply: fix CNAME response parsing + + Reply to a CNAME query doesn't contain addresses, causing + ares_parse_a_reply() to bail out with ARES_ENODATA + + Bug: http://groups.google.com/group/nodejs/browse_thread/thread/a1268c9ea5e9ad9b + +Yang Tse (1 Dec 2010) +- fix compiler warning: conversion may lose significant bits + +- atoi: remove atoi usage + +- ares_init: fix compiler warning: conversion may lose significant bits + +- configure: fix autoconf warning + +- inet_pton: fix compiler warning + +- configure: use autobuilds to temporarily verify strict aliasing warnings. + + Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing + rules and warnings. Given that cross-compiled targets autobuilds do not run the + test-suite, there is no risk of running code that violates strict aliasing rules + +- ares_getnameinfo: Partially revert commit 85520d66e0ac7ac73411bc25e98769a88b2f + + Upon socket address family and length validation failure return ARES_ENOTIMP + in callback again, this is the error code documented in man page and used + mostly all over the library. + +- ares_getnameinfo: Validate socket address family and length. + + Validate socket address family and that the socket address length is appropriate + for the specified family. Failure is reported with ARES_EBADFAMILY in callback. + +- ares_getnameinfo: fix two compiler warnings + +- Added another VS10 version string + +- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'. + +- Revert commit 494274e653936335c255a47599970de3df21e7c4 + +- configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body + +- Fix compiler warning: array subscript has type 'char' + +- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'. + +- Revert following commits: + 07bc7ea79509bcc9ef6e09151e81766ed00d3392 + 3392a50ea3f8573ea4b7a9d82b9833dab60cb0e9 + 9912637d32c9987719a1ea12db591aee2941891c + + The purpose of the whole patch was to silence a compiler warning triggered + with GCC 4 on file ares_process.c The specific compiler warning was + 'dereferencing type-punned pointer might break strict-aliasing rules'. + + A simpler patch will follow to equally silence the warning. + +- ares_options: reorder header inclusions to make inclusion of + ares_private.h the last included one again. + +Daniel Stenberg (12 Nov 2010) +- [Patrik Thunstrom brought this change] + + adig: fix NAPTR parsing + + I ran across a small "issue" in your adig example. + + It is simply the last part of the NAPTR record, the replacement element, + which is not a string, as currently handled in adig, but a domain name. + +- ares_save_options: assignments instead of memcpy + +- init_by_options: don't copy an empty sortlist + + If there aren't any sort items to copy, don't bother. Without this + little precaution it would do a malloc(0) which causes undefined + behaviors and is frowned upon by curl's memdebug-system. + +Guenter Knauf (3 Oct 2010) +- Minor Watcom makefile tweaks. + +Daniel Stenberg (30 Sep 2010) +- [Mike Crowe brought this change] + + Fix lookup with HOSTALIASES set. + + ares__read_line returns ARES_EOF when it reaches the end of the + file. This will happen every time when reading to the end of the + HOSTALIASES file. Unfortunately single_domain treats this error as + being fatal. + + Signed-off-by: Mike Crowe + +Ben Greear (24 Aug 2010) +- Add missing break that caused get_ares_servers to fail. + + Reported-by: Ning Dong + Signed-off-by: Ben Greear + +Yang Tse (11 Aug 2010) +- configure: werror related adjustments + +Guenter Knauf (8 Aug 2010) +- Added copyright string to ares_version.h and make use of it in other files. + +- Block created ares_build.h for NetWare to avoid usage from other platforms. + +- Fix to overwrite default libname. + +- Some more Watcom makefile massage ... + +- Some more Watcom makefile massage ... + +Ben Greear (4 Aug 2010) +- sock-addr-storage: Detect and deal with lack of .ss_family member. + + AIX, at least, does not have sockaddr_storage.ss_family member. + Detect this in the configure logic and use proper #ifdefs in the + ares_process logic. + + Signed-off-by: Ben Greear + Tested-by: Tor Arntsen + +Guenter Knauf (3 Aug 2010) +- Added Watcom makefile based on libcurl's Makefile.Watcom. + +Ben Greear (31 Jul 2010) +- typo: Fix compile bug for platforms that don't have sockaddr_storage. + + Bug was introduced by me in previous commit. + + Signed-off-by: Ben Greear + +- Fix aliasing warning in gcc 4.4.4 (at least). + + Should be no functional change, though the code gets a bit + ugglier. + + Signed-off-by: Ben Greear + +Daniel Stenberg (31 Jul 2010) +- ares_set_servers_csv: use ISDIGIT + + The IS*() set of macros are preferred to the regular is*() functions as + they help us avoid the most common pitfalls. + +Ben Greear (30 Jul 2010) +- cast arg to isdigit to int + + Looks like it might silence a warning on Netware build. + + Signed-off-by: Ben Greear + +- remove all uses of uint32_t + + Previous fix forgot a few. + + Signed-off-by: Ben Greear + +- fix signed v/s unsigned casts warning in ares_gethostbyaddr.c + + Signed-off-by: Ben Greear + +- local-bind-fixup: Fix inet_pton warning. + + Conditionally include for inet_pton + headers. + + Signed-off-by: Ben Greear + +- build: Enable compiling with -Werror. + + This helps find compile warnings because they simply break + the build. + + To use: + ./configure --enable-warnings --enable-werror + + Signed-off-by: Ben Greear + +- ipv6: Fix some build issues related to the local-bind feature. + + Signed-off-by: Ben Greear + +Guenter Knauf (29 Jul 2010) +- Replaced uint32_t with unsigned int to fix broken builds on a couple of platforms. + +Daniel Stenberg (18 Jul 2010) +- [Ben Greear brought this change] + + local-bind: Support binding to local interface/IPs + + Add 3 new functions to set the local binding for the out-going + socket connection, and add ares_set_servers_csv() to set a + list of servers at once as a comma-separated string. + + Signed-off-by: Ben Greear + +- version: now start on 1.7.4 + +- [Andrew C. Morrow brought this change] + + fix memory leak in ares_getnameinfo + +Version 1.7.3 (11 Jun 2010) + +Daniel Stenberg (11 Jun 2010) +- changelogs: updated for 1.7.3 + +- [BogDan Vatra brought this change] + + init: allow c-ares to work on Android OS + +- changelog: fill in the 1.7.2 changes + +- added another pdf to ignore + +Yang Tse (11 Jun 2010) +- add ares_parse_mx_reply.c to VS dsp file + +Daniel Stenberg (10 Jun 2010) +- tarball: add $(CSOURCES) $(HHEADERS) to EXTRA_DIST + + It's not clear to me why we need this, but we apparently may + otherwise not get all files bundled in the dist tarball. + +- version: start working on 1.7.3 + +Version 1.7.2 (10 Jun 2010) + +Daniel Stenberg (10 Jun 2010) +- RELEASE-NOTES: 1.7.2 details added + +- [Jakub Hrozek brought this change] + + ares_init: Last, not first instance of domain or search should win + +- style: make code less than 80 columns wide + +Yang Tse (31 May 2010) +- [Tor Arntsen brought this change] + + improve alternative definition of bool to use enum instead of unsigned char + +- fix VS2010 compiler warnings + +Daniel Stenberg (18 Apr 2010) +- [Jérémy Lal brought this change] + + added ares_parse_mx_reply + +- repair the file mode + +- remove all $Id$ lines + +- remove all .cvsignore files + +- spell fix + + reported by Gregor Jasny on the mailing list + +- [Peter Pentchev brought this change] + + Fix a couple of typos and grammar nits. + +- ignore the GPG signature files too + +- start the journey towards 1.7.2 + +- no longer CVS tagging + +- ignore generated PDFs + +Version 1.7.1 (23 Mar 2010) + +Daniel Stenberg (23 Mar 2010) +- 1.7.1 + +- made README the primary readme file + + ... and did README.cares to contain a historic reason etc. + +- s/CVS/git + +- git now, not CVS + +- ignore lots of generated files + +- [Daniel Johnson brought this change] + + Fix warnings for clang + +Yang Tse (17 Mar 2010) +- replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing + +- update outdated serial number + +- fix compiler warning + +- watt32 compilation fix + +- Added another VS10 version string + +- fix line break + +- removed usage of 's6_addr', fixing compilation issue triggered with no + longer using 'in6_addr' but only our 'ares_in6_addr' struct + +Daniel Stenberg (5 Mar 2010) +- Daniel Johnson provided fixes for building with the clang compiler + +Yang Tse (5 Mar 2010) +- Added IPv6 name servers support + +Gisle Vanem (5 Mar 2010) +- Ops!. Readded ares_nowarn.h. + +- Added ares_nowarn.c. + +Yang Tse (28 Feb 2010) +- Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems + +- Added ares_nowarn.* to VC6 project file + +- Added SIZEOF_INT definition + +- fix compiler warning + +- fix compiler warning + +- fix compiler warning + +Daniel Stenberg (17 Feb 2010) +- ares_reinit() + + - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much + like the res_init() resolver function offers + +- - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't + check for broken connections like ares_process() did. Based on that, I + merged the two functions into a single generic one with two front-ends. + +Yang Tse (30 Dec 2009) +- VMS specific preprocessor symbol checking adjustments + +- Mention last changes + +- - Fix configure_socket() to use ares_socket_t instead of int data type. + +- - Where run-time error checks enabling compiler option /GZ was used it is now + replaced with equivalent /RTCsu for Visual Studio 2003 and newer versions. + + - Compiler option /GX is now replaced with equivalent /EHsc for all versions. + +- - Ingmar Runge noticed that Windows config-win32.h configuration file + did not include a definition for HAVE_CLOSESOCKET which resulted in + function close() being inappropriately used to close sockets. + +Daniel Stenberg (30 Nov 2009) +- start working on 1.7.1 + +Version 1.7.0 (27 Nov 2009) + +Yang Tse (27 Nov 2009) +- Preserve empty line following last target + +- - Larry Lansing fixed ares_parse_srv_reply to properly parse replies + which might contain non-SRV answers, skipping over potential non-SRV + ones such as CNAMEs. + +- When using icc, compile with -fpic and link with intel dynamic libraries. + +- Added 'currently' in italics to insist on transient situation. + +- Fix language + +- Daniel wants upcoming release to be 1.7.0 + +- Mention last changes + +- - Removed from external interface preprocessor symbol definition for + CARES_HAVE_ARES_FREE_DATA. Current functionality of ares_free_data() + makes it unnecessary. + +- Added README.msvc + +- Changed c-ares naming conventions when using MSVC as described in README.msvc + +- - Mention other recent changes + +- - Jakub Hrozek renamed addrttl and addr6ttl structs to ares_addrttl and + ares_addr6ttl in order to prevent name space pollution, along with + necessary changes to code base and man pages.This change does not break + ABI, there is no need to recompile existing applications. But existing + applications using these structs with the old name will need source code + adjustments when recompiled using c-ares 1.6.1. + +- - Jakub Hrozek fixed more function prototypes in man pages to sync them + with the ones declared in ares.h + +- Make configure remove the ares_build.h file included in distribution tarballs. + +- Fix macro redefinition. + +- Fix name space pollution. + +- Allow using different extra import libraries for debug and release builds. + +- Add manifest stuff to msvc makefile + +- Sync man page with reality + +- Add missing external API decoration for ares_set_socket_callback() + +- Add ares_free_data() man page. + +- - Provide in external interface preprocessor symbol definitions for + CARES_HAVE_ARES_FREE_DATA as an indication of function availability. + +- Remove typecast + +- Fix comment + +- Add ares_data.c and ares_data.h + +- Jakub Hrozek modified ares_parse_srv_reply() and ares_parse_txt_reply() API + to return a linked lists of results. These were also modified to internally + use the ares_data memory struct and as such its result must be free'ed with + ares_free_data(). + +- Initial support for the generic ares_free_data() function that will allow + applications to free memory allocated and returned by some c-ares funtions. + +- Make usage of calloc()'s arguments consistent with rest of code base + +- workaround icc 9.1 optimizer issue + +- Add icc fvisibility bug test + +- Fix icc 9.0 compiler warning: external definition with no prior declaration + +- Fix three var names + +- Add check for assert.h header file + +- getaddrinfo is fully thread safe on solaris versions which + implement the function even when h_errno is not a macro. + + The h_errno macro test now only done on systems for which there + is no hard coded knowledge about getaddrinfo's thread safeness. + +- Remove files generated on previous buildconf/configure run + +- Remove enable-thread / disable-thread configure option. These were only placebo + options. The library is always built as thread safe as possible on every system. + +- Refactor how preprocessor symbol _THREAD_SAFE definition is done. + +- Assume that getaddrinfo is thread safe, unless hard coded + knowledge says the contrary or h_errno is not defined. + +- Related with the threadsafe capability of getaddrinfo: + + - Constantine Sapuntzakis reported that Darwin 6.0 a.k.a. MAC OS X 10.2 + and newer have a threadsafe getaddrinfo. + + - Fix Dragonfly BSD triplet detection. + + - In case the hard-coded knowledge says that getaddrinfo is threadsafe, + an additional check is done to verify that h_errno is also defined. + If h_errno isn't defined, we finally assume that it isn't threadsafe. + Jamie Lokier provided the inspiration for this extra check. + +- AIX 5.2 and newer have threadsafe getaddrinfo. + + Add some comments to better understand what the regex's pretend to achieve. + +- HP-UX 11.11 and later have threadsafe getaddrinfo + +- Check if getaddrinfo is threadsafe when function check allows it to be used + +- Renamed fpGetNetworkParams and fpSystemFunction036 to avoid namespace pollution with static library + +- Add kernel32.lib + +- Mention last changes + +- Reinstate copyright symbol lost in previous commit + +- Make some strings different in resource file for debug or release builds + +- Ignore more subdirs + +- Fix compiler warning: conditional expression is constant + +- Sync linker and resource compiler options with Makefile.msvc + +- Follow Makefile.msvc subdirectory naming scheme, and sync compiler options + +- Updated MSVC makefile that allows building dynamic and static + c-ares libraries in debug and release flavours. + + Additionally each of the three sample programs is built against + each of the four possible c-ares libraries, generating all this + a total number of 12 executables and 4 libraries. + +- Test for USE_WINSOCK since it is more restrictive than WIN32 + +- Make header inclusion depend on HAVE_*_H definition + +- Remove unneeded preprocessor directives + +- Adjust c-ares include paths for memory tracking enabled (--enable-curldebug) builds + +- source files used by sample programs + +- Renamed c-ares setup.h to ares_setup.h + +- Adjust include paths to take in account that currently: + + c-ares with --enable-curldebug uses memdebug.h from libcurl's lib subdirectory. + + memdebug.h needs access to libcurl's setup.h from libcurl's lib subdirectory + and also needs access to libcurl's generated curl_config.h diff --git a/deps/cares/CMakeLists.txt b/deps/cares/CMakeLists.txt new file mode 100644 index 00000000000000..cc4b590718df83 --- /dev/null +++ b/deps/cares/CMakeLists.txt @@ -0,0 +1,766 @@ +CMAKE_MINIMUM_REQUIRED (VERSION 3.1.0) + +INCLUDE (CheckIncludeFiles) +INCLUDE (CheckTypeSize) +INCLUDE (CheckFunctionExists) +INCLUDE (CheckSymbolExists) +INCLUDE (CheckCSourceCompiles) +INCLUDE (CheckStructHasMember) +INCLUDE (CheckLibraryExists) + +PROJECT (c-ares LANGUAGES C VERSION "1.18.0" ) + +# Set this version before release +SET (CARES_VERSION "1.18.1") + +INCLUDE (GNUInstallDirs) # include this *AFTER* PROJECT(), otherwise paths are wrong. + +# This is for libtool compatibility, and specified in a form that is easily +# translatable from libtool (even if the actual form doesn't make sense). +# For instance, in an autotools project, in Makefile.am there is a line that +# contains something like: +# -version-info 4:0:2 +# This breaks down into sections of current:revision:age +# This then generates a version of "(current-age).age.revision" with an +# interface version of "(current-age)" +# For example, a version of 4:0:2 would generate output such as: +# libname.so -> libname.so.2 +# libname.so.2 -> libname.so.2.2.0 +SET (CARES_LIB_VERSIONINFO "7:1:5") + + +OPTION (CARES_STATIC "Build as a static library" OFF) +OPTION (CARES_SHARED "Build as a shared library" ON) +OPTION (CARES_INSTALL "Create installation targets (chain builders may want to disable this)" ON) +OPTION (CARES_STATIC_PIC "Build the static library as PIC (position independent)" OFF) +OPTION (CARES_BUILD_TESTS "Build and run tests" OFF) +OPTION (CARES_BUILD_CONTAINER_TESTS "Build and run container tests (implies CARES_BUILD_TESTS, Linux only)" OFF) +OPTION (CARES_BUILD_TOOLS "Build tools" ON) + +# Tests require static to be enabled on Windows to be able to access otherwise hidden symbols +IF (CARES_BUILD_TESTS AND (NOT CARES_STATIC) AND WIN32) + SET (CARES_STATIC ON) + SET (CARES_STATIC_PIC ON) + MESSAGE (WARNING "Static building was requested be disabled, but reenabled to support tests") +ENDIF () + +# allow linking against the static runtime library in msvc +IF (MSVC) + OPTION (CARES_MSVC_STATIC_RUNTIME "Link against the static runtime library" OFF) + IF (CARES_MSVC_STATIC_RUNTIME) + # CMAKE_CONFIGURATION_TYPES is empty on non-IDE generators (Ninja, NMake) + # and that's why we also use CMAKE_BUILD_TYPE to cover for those generators. + # For IDE generators, CMAKE_BUILD_TYPE is usually empty + FOREACH (config_type ${CMAKE_CONFIGURATION_TYPES} ${CMAKE_BUILD_TYPE}) + STRING (TOUPPER ${config_type} upper_config_type) + SET (flag_var "CMAKE_C_FLAGS_${upper_config_type}") + IF (${flag_var} MATCHES "/MD") + STRING (REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + ENDIF () + ENDFOREACH () + + # clean up + SET (upper_config_type) + SET (config_type) + SET (flag_var) + ENDIF () +ENDIF () + +# Keep build organized. +SET (CMAKE_RUNTIME_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_BINDIR}") +SET (CMAKE_LIBRARY_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") +SET (CMAKE_ARCHIVE_OUTPUT_DIRECTORY "${PROJECT_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR}") +SET (PACKAGE_DIRECTORY ${PROJECT_BINARY_DIR}/package) + +# Destinations for installing different kinds of targets (pass to install command). +SET (TARGETS_INST_DEST + RUNTIME DESTINATION ${CMAKE_INSTALL_BINDIR} + BUNDLE DESTINATION ${CMAKE_INSTALL_BINDIR} + LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR} + ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR} +) + +# Function in Library +# CHECK_LIBRARY_EXISTS can't be used as it will return true if the function +# is found in a different dependent library. +MACRO (CARES_FUNCTION_IN_LIBRARY func lib var) + CHECK_FUNCTION_EXISTS ("${func}" "_CARES_FUNC_IN_LIB_GLOBAL_${func}") + IF ("${_CARES_FUNC_IN_LIB_GLOBAL_${func}}") + SET (${var} FALSE) + ELSE () + CHECK_LIBRARY_EXISTS ("${lib}" "${func}" "" ${var}) + ENDIF () +ENDMACRO () + +# Look for dependent/required libraries +CARES_FUNCTION_IN_LIBRARY (res_servicename resolv HAVE_RES_SERVICENAME_IN_LIBRESOLV) +IF (HAVE_RES_SERVICENAME_IN_LIBRESOLV) + SET (HAVE_LIBRESOLV 1) +ENDIF () + +IF (APPLE) + CHECK_C_SOURCE_COMPILES (" + #include + #include + int main() { +#if TARGET_OS_IPHONE == 0 +#error Not an iPhone target +#endif +return 0; + } + " + IOS) + + CHECK_C_SOURCE_COMPILES (" +#include +#include + int main() { +#if TARGET_OS_IPHONE == 0 || __IPHONE_OS_VERSION_MIN_REQUIRED < 100000 +# error Not iOS v10 +#endif +return 0; + } + " + IOS_V10) + + CHECK_C_SOURCE_COMPILES (" +#include +#include +#ifndef MAC_OS_X_VERSION_10_12 +# define MAC_OS_X_VERSION_10_12 101200 +#endif + int main() { +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12 +# error Not MacOSX 10.12 or higher +#endif +return 0; + } + " + MACOS_V1012) +ENDIF () + +IF ((IOS OR APPLE OR ZOS) AND HAVE_LIBRESOLV) + SET (CARES_USE_LIBRESOLV 1) +ENDIF() + + +CARES_FUNCTION_IN_LIBRARY (gethostbyname nsl HAVE_LIBNSL) +CARES_FUNCTION_IN_LIBRARY (gethostbyname socket HAVE_GHBN_LIBSOCKET) +CARES_FUNCTION_IN_LIBRARY (gethostbyname network HAVE_LIBNETWORK) +CARES_FUNCTION_IN_LIBRARY (socket socket HAVE_SOCKET_LIBSOCKET) +IF (HAVE_GHBN_LIBSOCKET OR HAVE_SOCKET_LIBSOCKET) + SET(HAVE_LIBSOCKET TRUE) +ENDIF () +CARES_FUNCTION_IN_LIBRARY (socket network HAVE_LIBNETWORK) +CARES_FUNCTION_IN_LIBRARY (clock_gettime rt HAVE_LIBRT) + + +# Look for necessary includes +CHECK_INCLUDE_FILES (sys/types.h HAVE_SYS_TYPES_H) +CHECK_INCLUDE_FILES (sys/socket.h HAVE_SYS_SOCKET_H) +CHECK_INCLUDE_FILES (sys/sockio.h HAVE_SYS_SOCKIO_H) +CHECK_INCLUDE_FILES (arpa/inet.h HAVE_ARPA_INET_H) +CHECK_INCLUDE_FILES (arpa/nameser_compat.h HAVE_ARPA_NAMESER_COMPAT_H) +CHECK_INCLUDE_FILES (arpa/nameser.h HAVE_ARPA_NAMESER_H) +CHECK_INCLUDE_FILES (assert.h HAVE_ASSERT_H) +CHECK_INCLUDE_FILES (errno.h HAVE_ERRNO_H) +CHECK_INCLUDE_FILES (fcntl.h HAVE_FCNTL_H) +CHECK_INCLUDE_FILES (inttypes.h HAVE_INTTYPES_H) +CHECK_INCLUDE_FILES (limits.h HAVE_LIMITS_H) +CHECK_INCLUDE_FILES (malloc.h HAVE_MALLOC_H) +CHECK_INCLUDE_FILES (memory.h HAVE_MEMORY_H) +CHECK_INCLUDE_FILES (netdb.h HAVE_NETDB_H) +CHECK_INCLUDE_FILES (netinet/in.h HAVE_NETINET_IN_H) +CHECK_INCLUDE_FILES (net/if.h HAVE_NET_IF_H) +CHECK_INCLUDE_FILES (signal.h HAVE_SIGNAL_H) +CHECK_INCLUDE_FILES (socket.h HAVE_SOCKET_H) +CHECK_INCLUDE_FILES (stdbool.h HAVE_STDBOOL_H) +CHECK_INCLUDE_FILES (stdint.h HAVE_STDINT_H) +CHECK_INCLUDE_FILES (stdlib.h HAVE_STDLIB_H) +CHECK_INCLUDE_FILES (strings.h HAVE_STRINGS_H) +CHECK_INCLUDE_FILES (string.h HAVE_STRING_H) +CHECK_INCLUDE_FILES (stropts.h HAVE_STROPTS_H) +CHECK_INCLUDE_FILES (sys/ioctl.h HAVE_SYS_IOCTL_H) +CHECK_INCLUDE_FILES (sys/param.h HAVE_SYS_PARAM_H) +CHECK_INCLUDE_FILES (sys/select.h HAVE_SYS_SELECT_H) +CHECK_INCLUDE_FILES (sys/stat.h HAVE_SYS_STAT_H) +CHECK_INCLUDE_FILES (sys/time.h HAVE_SYS_TIME_H) +CHECK_INCLUDE_FILES (sys/uio.h HAVE_SYS_UIO_H) +CHECK_INCLUDE_FILES (time.h HAVE_TIME_H) +CHECK_INCLUDE_FILES (dlfcn.h HAVE_DLFCN_H) +CHECK_INCLUDE_FILES (unistd.h HAVE_UNISTD_H) + +# On OpenBSD, you must include sys/types.h before netinet/tcp.h +IF (HAVE_SYS_TYPES_H) + CHECK_INCLUDE_FILES ("sys/types.h;netinet/tcp.h" HAVE_NETINET_TCP_H) +ELSE () + CHECK_INCLUDE_FILES (netinet/tcp.h HAVE_NETINET_TCP_H) +ENDIF () + +# Include order matters for these windows files. +# As cygwin environment has both socket.h and winsock2.h +# headers check WIN32 not to include the later one here +IF (WIN32) +CHECK_INCLUDE_FILES ("winsock2.h;windows.h" HAVE_WINSOCK2_H) +CHECK_INCLUDE_FILES ("winsock2.h;ws2tcpip.h;windows.h" HAVE_WS2TCPIP_H) +CHECK_INCLUDE_FILES ("winsock.h;windows.h" HAVE_WINSOCK_H) +CHECK_INCLUDE_FILES (windows.h HAVE_WINDOWS_H) +ENDIF () + +# Set system-specific compiler flags +IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin") + LIST (APPEND SYSFLAGS -D_DARWIN_C_SOURCE) +ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "Linux") + LIST (APPEND SYSFLAGS -D_GNU_SOURCE -D_POSIX_C_SOURCE=199309L -D_XOPEN_SOURCE=600) +ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "SunOS") + LIST (APPEND SYSFLAGS -D__EXTENSIONS__ -D_REENTRANT -D_XOPEN_SOURCE=600) +ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "AIX") + LIST (APPEND SYSFLAGS -D_ALL_SOURCE -D_XOPEN_SOURCE=600 -D_USE_IRS) +ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "FreeBSD") + # Don't define _XOPEN_SOURCE on FreeBSD, it actually reduces visibility instead of increasing it +ELSEIF (WIN32) + LIST (APPEND SYSFLAGS -DWIN32_LEAN_AND_MEAN -D_CRT_SECURE_NO_DEPRECATE -D_CRT_NONSTDC_NO_DEPRECATE -D_WIN32_WINNT=0x0600) +ENDIF () +ADD_DEFINITIONS(${SYSFLAGS}) + + + +# Tell C-Ares about libraries to depend on +IF (HAVE_LIBRESOLV) + LIST (APPEND CARES_DEPENDENT_LIBS resolv) +ENDIF () +IF (HAVE_LIBNSL) + LIST (APPEND CARES_DEPENDENT_LIBS nsl) +ENDIF () +IF (HAVE_LIBSOCKET) + LIST (APPEND CARES_DEPENDENT_LIBS socket) +ENDIF () +IF (HAVE_LIBNETWORK) + LIST (APPEND CARES_DEPENDENT_LIBS network) +ENDIF () +IF (HAVE_LIBRT) + LIST (APPEND CARES_DEPENDENT_LIBS rt) +ENDIF () +IF (WIN32) + LIST (APPEND CARES_DEPENDENT_LIBS ws2_32 advapi32 iphlpapi) +ENDIF () + + +# When checking for symbols, we need to make sure we set the proper +# headers, libraries, and definitions for the detection to work properly +# CMAKE_REQUIRED_DEFINITIONS, CMAKE_REQUIRED_LIBRARIES, and +# CMAKE_EXTRA_INCLUDE_FILES. When we're done with the detection, we'll +# unset them. + +SET (CMAKE_REQUIRED_DEFINITIONS ${SYSFLAGS}) +LIST (APPEND CMAKE_REQUIRED_LIBRARIES ${CARES_DEPENDENT_LIBS}) + +MACRO (CARES_EXTRAINCLUDE_IFSET var include) + IF (${var}) + LIST (APPEND CMAKE_EXTRA_INCLUDE_FILES ${include}) + ENDIF () +ENDMACRO () + +CARES_EXTRAINCLUDE_IFSET (HAVE_STDBOOL_H stdbool.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TYPES_H sys/types.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_ARPA_INET_H arpa/inet.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_ARPA_NAMESER_H arpa/nameser.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_NETDB_H netdb.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_NET_IF_H net/if.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_NETINET_IN_H netinet/in.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_NETINET_TCP_H netinet/tcp.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SIGNAL_H signal.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_STDLIB_H stdlib.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_STRING_H string.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_STRINGS_H strings.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_IOCTL_H sys/ioctl.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SELECT_H sys/select.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKET_H sys/socket.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_SOCKIO_H sys/sockio.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_TIME_H sys/time.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_SYS_UIO_H sys/uio.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_TIME_H time.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_FCNTL_H fcntl.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_UNISTD_H unistd.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_WINSOCK2_H winsock2.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_WS2TCPIP_H ws2tcpip.h) +CARES_EXTRAINCLUDE_IFSET (HAVE_WINDOWS_H windows.h) + +# Check Types +# CHECK_TYPE_SIZE can't be used to see if a type exists because on Apple when +# building multi-arch, it will throw an error. So we need to wrap +# CHECK_C_SOURCE_COMPILES for our tests. +MACRO (CARES_TYPE_EXISTS type var) + SET(_CARES_C_SOURCE " + #include + #include + ") + FOREACH(_C_HEADER ${CMAKE_EXTRA_INCLUDE_FILES}) + SET(_CARES_C_SOURCE "${_CARES_C_SOURCE} + #include <${_C_HEADER}>") + ENDFOREACH(_C_HEADER) + + SET(_CARES_C_SOURCE "${_CARES_C_SOURCE} + int main() { + ${type} var_exists; + (void)var_exists; + return 0; + } + ") + CHECK_C_SOURCE_COMPILES ("${_CARES_C_SOURCE}" ${var}) +ENDMACRO () + +CARES_TYPE_EXISTS (socklen_t HAVE_SOCKLEN_T) +CARES_TYPE_EXISTS (SOCKET HAVE_TYPE_SOCKET) +CARES_TYPE_EXISTS (bool HAVE_BOOL_T) +CARES_TYPE_EXISTS (ssize_t HAVE_SSIZE_T) +CARES_TYPE_EXISTS ("long long" HAVE_LONGLONG) +CARES_TYPE_EXISTS (sig_atomic_t HAVE_SIG_ATOMIC_T) +CARES_TYPE_EXISTS ("struct addrinfo" HAVE_STRUCT_ADDRINFO) +CARES_TYPE_EXISTS ("struct in6_addr" HAVE_STRUCT_IN6_ADDR) +CARES_TYPE_EXISTS ("struct sockaddr_in6" HAVE_STRUCT_SOCKADDR_IN6) +CARES_TYPE_EXISTS ("struct sockaddr_storage" HAVE_STRUCT_SOCKADDR_STORAGE) +CARES_TYPE_EXISTS ("struct timeval" HAVE_STRUCT_TIMEVAL) + + +# Check for preprocessor defines +CHECK_SYMBOL_EXISTS (AF_INET6 "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_AF_INET6) +CHECK_SYMBOL_EXISTS (O_NONBLOCK "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_O_NONBLOCK) +CHECK_SYMBOL_EXISTS (FIONBIO "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FIONBIO) +CHECK_SYMBOL_EXISTS (SIOCGIFADDR "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IOCTL_SIOCGIFADDR) +CHECK_SYMBOL_EXISTS (MSG_NOSIGNAL "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_MSG_NOSIGNAL) +CHECK_SYMBOL_EXISTS (PF_INET6 "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_PF_INET6) +CHECK_SYMBOL_EXISTS (SO_NONBLOCK "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SO_NONBLOCK) + +# XCode v8 bug: iOS when targeting less than v10, or MacOS when targeting less than v10.12 will +# say clock_gettime exists, it is a weak symbol that only exists in iOS10/MacOS10.12 and will +# cause a crash at runtime when running on older versions. Skip finding CLOCK_MONOTONIC on older +# OS's. +IF ((NOT APPLE) OR IOS_V10 OR MACOS_V1012) + CHECK_SYMBOL_EXISTS (CLOCK_MONOTONIC "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOCK_GETTIME_MONOTONIC) +ENDIF () + +CHECK_STRUCT_HAS_MEMBER("struct sockaddr_in6" sin6_scope_id "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID LANGUAGE C) + +# Check for "LL" numeric suffix support +CHECK_C_SOURCE_COMPILES ("int main() { int n=1234LL; return 0; }" HAVE_LL) + + +CHECK_SYMBOL_EXISTS (bitncmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_BITNCMP) +CHECK_SYMBOL_EXISTS (closesocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET) +CHECK_SYMBOL_EXISTS (CloseSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CLOSESOCKET_CAMEL) +CHECK_SYMBOL_EXISTS (connect "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_CONNECT) +CHECK_SYMBOL_EXISTS (fcntl "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FCNTL) +CHECK_SYMBOL_EXISTS (freeaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_FREEADDRINFO) +CHECK_SYMBOL_EXISTS (getaddrinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETADDRINFO) +CHECK_SYMBOL_EXISTS (getenv "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETENV) +CHECK_SYMBOL_EXISTS (gethostbyaddr "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTBYADDR) +CHECK_SYMBOL_EXISTS (gethostbyname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTBYNAME) +CHECK_SYMBOL_EXISTS (gethostname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETHOSTNAME) +CHECK_SYMBOL_EXISTS (getnameinfo "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETNAMEINFO) +CHECK_SYMBOL_EXISTS (getservbyport_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYPORT_R) +CHECK_SYMBOL_EXISTS (getservbyname_r "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETSERVBYNAME_R) +CHECK_SYMBOL_EXISTS (gettimeofday "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_GETTIMEOFDAY) +CHECK_SYMBOL_EXISTS (if_indextoname "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IF_INDEXTONAME) +CHECK_SYMBOL_EXISTS (inet_net_pton "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_INET_NET_PTON) +IF (NOT WIN32) + # Disabled on Windows, because these functions are only really supported on Windows + # Vista or newer (_WIN32_WINNT >= 0x0600). Older versions of Windows may provide + # them as experimental non-working features, so we have to disable them manually. + CHECK_SYMBOL_EXISTS (inet_ntop "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_INET_NTOP) + CHECK_SYMBOL_EXISTS (inet_pton "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_INET_PTON) +ENDIF () +CHECK_SYMBOL_EXISTS (ioctl "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IOCTL) +CHECK_SYMBOL_EXISTS (ioctlsocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IOCTLSOCKET) +CHECK_SYMBOL_EXISTS (IoctlSocket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_IOCTLSOCKET_CAMEL) +CHECK_SYMBOL_EXISTS (recv "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_RECV) +CHECK_SYMBOL_EXISTS (recvfrom "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_RECVFROM) +CHECK_SYMBOL_EXISTS (send "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SEND) +CHECK_SYMBOL_EXISTS (setsockopt "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SETSOCKOPT) +CHECK_SYMBOL_EXISTS (socket "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_SOCKET) +CHECK_SYMBOL_EXISTS (strcasecmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRCASECMP) +CHECK_SYMBOL_EXISTS (strcmpi "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRCMPI) +CHECK_SYMBOL_EXISTS (strdup "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRDUP) +CHECK_SYMBOL_EXISTS (stricmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRICMP) +CHECK_SYMBOL_EXISTS (strncasecmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRNCASECMP) +CHECK_SYMBOL_EXISTS (strncmpi "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRNCMPI) +CHECK_SYMBOL_EXISTS (strnicmp "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_STRNICMP) +CHECK_SYMBOL_EXISTS (writev "${CMAKE_EXTRA_INCLUDE_FILES}" HAVE_WRITEV) + +# On Android, the system headers may define __system_property_get(), but excluded +# from libc. We need to perform a link test instead of a header/symbol test. +CHECK_FUNCTION_EXISTS (__system_property_get HAVE___SYSTEM_PROPERTY_GET) + +# Unset temporary data +SET (CMAKE_EXTRA_INCLUDE_FILES) +SET (CMAKE_REQUIRED_DEFINITIONS) +SET (CMAKE_REQUIRED_LIBRARIES) + + +find_file(CARES_RANDOM_FILE urandom /dev) +mark_as_advanced(CARES_RANDOM_FILE) + + +################################################################################ +# recv, recvfrom, send, getnameinfo, gethostname +# ARGUMENTS AND RETURN VALUES +# +# The AutoTools build tries to be really thorough here. So much so that it +# takes forever. We really don't want to do that. Lets make some educated +# guesses based on datatypes we have available, and for others, use some 'sane' +# defaults. This should be much quicker and nearly as accurate ... and even +# if not, it probably won't matter in the least. + +IF (HAVE_SSIZE_T AND HAVE_SOCKLEN_T) + # If we have ssize_t and socklen_t, the API is usually sane and uses ssize_t and size_t for lengths + SET (RECVFROM_TYPE_RETV ssize_t) + SET (RECVFROM_TYPE_ARG3 size_t) +ELSE () + SET (RECVFROM_TYPE_RETV int) + SET (RECVFROM_TYPE_ARG3 int) +ENDIF () + +IF (HAVE_TYPE_SOCKET) + # If the SOCKET type is defined, it uses socket ... should be windows only + SET (RECVFROM_TYPE_ARG1 SOCKET) +ELSE () + SET (RECVFROM_TYPE_ARG1 int) +ENDIF() + +IF (HAVE_SOCKLEN_T) + # If we have socklen_t the APIs pretty much always actually use it + SET (RECVFROM_TYPE_ARG6 "socklen_t *") + SET (GETNAMEINFO_TYPE_ARG2 socklen_t) + SET (GETNAMEINFO_TYPE_ARG46 socklen_t) +ELSE () + SET (RECVFROM_TYPE_ARG6 "int *") + SET (GETNAMEINFO_TYPE_ARG2 int) + SET (GETNAMEINFO_TYPE_ARG46 int) +ENDIF () + +IF (WIN32) + SET (RECV_TYPE_ARG2 "char *") +ELSE () + SET (RECV_TYPE_ARG2 "void *") +ENDIF () + +# Functions are typically consistent so the equivalent fields map ... equivalently +SET (RECV_TYPE_RETV ${RECVFROM_TYPE_RETV}) +SET (SEND_TYPE_RETV ${RECVFROM_TYPE_RETV}) +SET (RECV_TYPE_ARG1 ${RECVFROM_TYPE_ARG1}) +SET (RECVFROM_TYPE_ARG2 ${RECV_TYPE_ARG2}) +SET (SEND_TYPE_ARG1 ${RECVFROM_TYPE_ARG1}) +SET (RECV_TYPE_ARG3 ${RECVFROM_TYPE_ARG3}) +SET (SEND_TYPE_ARG3 ${RECVFROM_TYPE_ARG3}) +SET (GETHOSTNAME_TYPE_ARG2 ${RECVFROM_TYPE_ARG3}) + +# These should always be "sane" values to use always +SET (RECVFROM_QUAL_ARG5 ) +SET (RECVFROM_TYPE_ARG4 int) +SET (RECVFROM_TYPE_ARG5 "struct sockaddr *") +SET (RECV_TYPE_ARG4 int) +SET (GETNAMEINFO_TYPE_ARG1 "struct sockaddr *") +SET (GETNAMEINFO_TYPE_ARG7 int) +SET (SEND_TYPE_ARG2 "void *") +SET (SEND_TYPE_ARG4 int) +################################################################################ + + +# HAVE_CXX11 ?? +# HAVE_SIG_ATOMIC_T_VOLATILE ?? + + +# Set a few variables by hand that C-Ares wants, logically, based on detection +# data. + +IF (HAVE_SOCKLEN_T) + Set (CARES_TYPEOF_ARES_SOCKLEN_T "socklen_t") +ELSE () + Set (CARES_TYPEOF_ARES_SOCKLEN_T "int") +ENDIF () + +IF (HAVE_SSIZE_T) + Set (CARES_TYPEOF_ARES_SSIZE_T "ssize_t") +ELSE () + IF (WIN32) + IF ("${CMAKE_SIZEOF_VOID_P}" EQUAL "8") + Set (CARES_TYPEOF_ARES_SSIZE_T "__int64") + ELSE () + Set (CARES_TYPEOF_ARES_SSIZE_T "int") + ENDIF () + ELSE () + Set (CARES_TYPEOF_ARES_SSIZE_T "long") + ENDIF () +ENDIF () + +IF (HAVE_FCNTL AND HAVE_O_NONBLOCK) + SET (HAVE_FCNTL_O_NONBLOCK 1) +ENDIF () + +IF (HAVE_IOCTL AND HAVE_FIONBIO) + SET (HAVE_IOCTL_FIONBIO 1) +ENDIF () + +IF (HAVE_IOCTLSOCKET AND HAVE_FIONBIO) + SET (HAVE_IOCTLSOCKET_FIONBIO 1) +ENDIF () + +IF (HAVE_IOCTLSOCKET_CAMEL AND HAVE_FIONBIO) + SET (HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1) +ENDIF () + +IF (HAVE_GETADDRINFO) + IF (CMAKE_SYSTEM_NAME STREQUAL "Darwin" OR + CMAKE_SYSTEM_NAME STREQUAL "HPUX" OR + CMAKE_SYSTEM_NAME STREQUAL "NetBSD" OR + CMAKE_SYSTEM_NAME STREQUAL "SunOS" OR + CMAKE_SYSTEM_NAME STREQUAL "FreeBSD" OR + CMAKE_SYSTEM_NAME STREQUAL "AIX" OR + WIN32) + SET (HAVE_GETADDRINFO_THREADSAFE 1) + ENDIF () +ENDIF () + +IF (HAVE_TIME_H AND HAVE_SYS_TIME_H) + SET (TIME_WITH_SYS_TIME 1) +ENDIF () + +IF (HAVE_GETSERVBYPORT_R) + # TODO : Should probably autodetect + IF (CMAKE_SYSTEM_NAME STREQUAL "SunOS") + SET (GETSERVBYPORT_R_ARGS 5) + ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "AIX" OR + CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR + HAIKU) + SET (GETSERVBYPORT_R_ARGS 4) + ELSE () + # Probably linux + SET (GETSERVBYPORT_R_ARGS 6) + ENDIF () +ENDIF () + +IF (HAVE_GETSERVBYNAME_R) + # TODO : Should probably autodetect + IF (CMAKE_SYSTEM_NAME STREQUAL "SunOS") + SET (GETSERVBYNAME_R_ARGS 5) + ELSEIF (CMAKE_SYSTEM_NAME STREQUAL "AIX" OR + CMAKE_SYSTEM_NAME STREQUAL "OpenBSD" OR + HAIKU) + SET (GETSERVBYNAME_R_ARGS 4) + ELSE () + # Probably linux + SET (GETSERVBYNAME_R_ARGS 6) + ENDIF () +ENDIF () + +# Set some aliases used for ares_build.h +IF (HAVE_SYS_TYPES_H) + SET (CARES_HAVE_SYS_TYPES_H 1) +ENDIF () +IF (HAVE_SYS_SOCKET_H) + SET (CARES_HAVE_SYS_SOCKET_H 1) +ENDIF() +IF (HAVE_WS2TCPIP_H) + SET (CARES_HAVE_WS2TCPIP_H 1) +ENDIF() +IF (HAVE_WINSOCK2_H) + SET (CARES_HAVE_WINSOCK2_H 1) +ENDIF() +IF (HAVE_WINDOWS_H) + SET (CARES_HAVE_WINDOWS_H 1) +ENDIF() +IF (HAVE_ARPA_NAMESER_H) + SET (CARES_HAVE_ARPA_NAMESER_H 1) +ENDIF() +IF (HAVE_ARPA_NAMESER_COMPAT_H) + SET (CARES_HAVE_ARPA_NAMESER_COMPAT_H 1) +ENDIF() + +# Record toplevel CMakeLists.txt path +set(CARES_TOPLEVEL_DIR "${CMAKE_CURRENT_SOURCE_DIR}") + + +# TRANSFORM_MAKEFILE_INC +# +# This function consumes the "Makefile.inc" autotools file, and converts it into +# "Makefile.inc.cmake", a cmake include file; transforming this: +# +# CSOURCES = ares__close_sockets.c \ +# ares__get_hostent.c \ +# ares__read_line.c \ +# ... +# +# into this: +# +# SET (CSOURCES +# ares__close_sockets.c +# ares__get_hostent.c +# ares__read_line.c +# ... +function(TRANSFORM_MAKEFILE_INC INPUT_FILE OUTPUT_FILE) + file(READ ${INPUT_FILE} MAKEFILE_INC_TEXT) + string(REPLACE "$(top_srcdir)" "\${PROJECT_SOURCE_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REPLACE "$(top_builddir)" "\${PROJECT_BINARY_DIR}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + + string(REGEX REPLACE "\\\\\n" "ß!ß" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REGEX REPLACE "([a-zA-Z_][a-zA-Z0-9_]*)[\t ]*=[\t ]*([^\n]*)" "SET(\\1 \\2)" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + string(REPLACE "ß!ß" "\n" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) + + string(REGEX REPLACE "\\$\\(([a-zA-Z_][a-zA-Z0-9_]*)\\)" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace $() with ${} + string(REGEX REPLACE "@([a-zA-Z_][a-zA-Z0-9_]*)@" "\${\\1}" MAKEFILE_INC_TEXT ${MAKEFILE_INC_TEXT}) # Replace @@ with ${}, even if that may not be read by CMake scripts. + file(WRITE ${OUTPUT_FILE} ${MAKEFILE_INC_TEXT}) +endfunction() + +# Directory for includes +ADD_SUBDIRECTORY (include) + +# Directory for lib and tools +ADD_SUBDIRECTORY (src) + +# Docs +ADD_SUBDIRECTORY (docs) + +# Tests +IF (CARES_BUILD_TESTS OR CARES_BUILD_CONTAINER_TESTS) + ENABLE_TESTING () + ADD_SUBDIRECTORY (test) +ENDIF () + + +# Export targets +IF (CARES_INSTALL) + SET (CMAKECONFIG_INSTALL_DIR "${CMAKE_INSTALL_LIBDIR}/cmake/${PROJECT_NAME}") + INCLUDE (CMakePackageConfigHelpers) + CONFIGURE_PACKAGE_CONFIG_FILE (${PROJECT_NAME}-config.cmake.in ${PROJECT_NAME}-config.cmake + INSTALL_DESTINATION ${CMAKECONFIG_INSTALL_DIR} + PATH_VARS CMAKE_INSTALL_INCLUDEDIR + NO_CHECK_REQUIRED_COMPONENTS_MACRO + ) + + WRITE_BASIC_PACKAGE_VERSION_FILE(${PROJECT_NAME}-config-version.cmake VERSION "${CARES_VERSION}" COMPATIBILITY SameMajorVersion) + INSTALL (EXPORT ${PROJECT_NAME}-targets COMPONENT Devel DESTINATION ${CMAKECONFIG_INSTALL_DIR} NAMESPACE ${PROJECT_NAME}::) + INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config.cmake" "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}-config-version.cmake" COMPONENT Devel DESTINATION ${CMAKECONFIG_INSTALL_DIR}) + + # pkgconfig support + IF (NOT CARES_SHARED) + SET (CPPFLAG_CARES_STATICLIB "-DCARES_STATICLIB") + FOREACH (LIB ${CARES_DEPENDENT_LIBS}) + SET (CARES_PRIVATE_LIBS "${CARES_PRIVATE_LIBS} -l${LIB}") + ENDFOREACH () + ENDIF () + CONFIGURE_FILE("libcares.pc.cmake" "libcares.pc" @ONLY) + INSTALL (FILES "${CMAKE_CURRENT_BINARY_DIR}/libcares.pc" COMPONENT Devel DESTINATION "${CMAKE_INSTALL_LIBDIR}/pkgconfig") +ENDIF () + + +# Legacy chain-building variables (provided for compatibility with old code). +# Don't use these, external code should be updated to refer to the aliases directly (e.g., Cares::cares). +SET (CARES_FOUND 1 CACHE INTERNAL "CARES LIBRARY FOUND") +SET (CARES_LIBRARIES ${PROJECT_NAME}::cares CACHE INTERNAL "CARES LIBRARIES") + + +IF (CARES_INSTALL) + # Package creation + set( CPACK_PACKAGE_NAME ${PROJECT_NAME} ) + set( CPACK_PACKAGE_VENDOR "Daniel Stenberg" ) # Github project owner + set( CPACK_PACKAGE_DESCRIPTION_SUMMARY "A C library for asynchronous DNS requests" ) + set( CPACK_PACKAGE_HOMEPAGE_URL "https://c-ares.org/" ) + set( CPACK_PACKAGE_CONTACT "https://c-ares.org/" ) + set( CPACK_PACKAGE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR} ) + set( CPACK_PACKAGE_VERSION_MINOR ${PROJECT_VERSION_MINOR} ) + set( CPACK_PACKAGE_VERSION_PATCH ${PROJECT_VERSION_PATCH} ) + set( CPACK_PACKAGE_VERSION ${CPACK_PACKAGE_VERSION_MAJOR}.${CPACK_PACKAGE_VERSION_MINOR}.${CPACK_PACKAGE_VERSION_PATCH} ) + set( CPACK_PACKAGE_INSTALL_DIRECTORY ${PROJECT_NAME} ) + set( CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/LICENSE.md" ) + set( CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/README.md" ) + + set( CPACK_COMPONENT_Library_DISPLAY_NAME "c-ares Library" ) + set( CPACK_COMPONENT_Library_DESCRIPTION "The c-ares binary library." ) + set( CPACK_COMPONENT_Library_REQUIRED 1 ) + set( CPACK_COMPONENT_Devel_DISPLAY_NAME "c-ares Development Files" ) + set( CPACK_COMPONENT_Devel_DESCRIPTION "Development files for compiling against c-ares." ) + set( CPACK_COMPONENT_Devel_REQUIRED 0 ) + IF (CARES_BUILD_TOOLS) + set( CPACK_COMPONENT_Tools_DISPLAY_NAME "c-ares Tools" ) + set( CPACK_COMPONENT_Tools_DESCRIPTION "Tools for using c-ares." ) + set( CPACK_COMPONENT_Tools_REQUIRED 0 ) + ENDIF () + + if( ${CMAKE_SYSTEM_NAME} STREQUAL "Linux" ) + + if ( "${CPACK_PACKAGE_ARCHITECTURE}" STREQUAL "" ) + # Note: the architecture should default to the local architecture, but it + # in fact comes up empty. We call `uname -m` to ask the kernel instead. + EXECUTE_PROCESS( COMMAND uname -m COMMAND tr -d '\n' OUTPUT_VARIABLE CPACK_PACKAGE_ARCHITECTURE ) + endif() + + set( CPACK_INCLUDE_TOPLEVEL_DIRECTORY 1 ) + set( CPACK_PACKAGE_RELEASE 1 ) + + + # RPM - https://cmake.org/cmake/help/latest/cpack_gen/rpm.html + set( CPACK_RPM_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} ) + set( CPACK_RPM_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE} ) + set( CPACK_RPM_PACKAGE_DESCRIPTION ${CPACK_PACKAGE_DESCRIPTION_SUMMARY} ) + set( CPACK_RPM_PACKAGE_URL ${CPACK_PACKAGE_HOMEPAGE_URL} ) + set( CPACK_RPM_PACKAGE_LICENSE "MIT" ) + set( CPACK_RPM_COMPONENT_INSTALL 1 ) + set( CPACK_RPM_COMPRESSION_TYPE "xz" ) + set( CPACK_RPM_PACKAGE_AUTOPROV 1 ) + + set( CPACK_RPM_Library_PACKAGE_SUMMARY ${CPACK_COMPONENT_Library_DESCRIPTION} ) + set( CPACK_RPM_Library_PACKAGE_ARCHITECTURE ${CPACK_RPM_PACKAGE_ARCHITECTURE} ) + set( CPACK_RPM_Library_PACKAGE_NAME "libcares${CARES_LIB_VERSION_MAJOR}" ) + set( CPACK_RPM_Library_FILE_NAME "RPM-DEFAULT" ) + + set( CPACK_RPM_Devel_PACKAGE_REQUIRES "cmake >= ${CMAKE_MINIMUM_REQUIRED_VERSION}, ${CPACK_RPM_Library_PACKAGE_NAME} >= ${CPACK_PACKAGE_VERSION}" ) + set( CPACK_RPM_Devel_PACKAGE_SUMMARY ${CPACK_COMPONENT_Devel_DESCRIPTION} ) + set( CPACK_RPM_Devel_PACKAGE_ARCHITECTURE ${CPACK_RPM_PACKAGE_ARCHITECTURE} ) + set( CPACK_RPM_Devel_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-devel" ) + set( CPACK_RPM_Devel_FILE_NAME "RPM-DEFAULT" ) + + IF (CARES_BUILD_TOOLS) + set( CPACK_RPM_Tools_PACKAGE_REQUIRES "${CPACK_RPM_Library_PACKAGE_NAME} >= ${CPACK_PACKAGE_VERSION}" ) + set( CPACK_RPM_Tools_PACKAGE_SUMMARY ${CPACK_COMPONENT_Tools_DESCRIPTION} ) + set( CPACK_RPM_Tools_PACKAGE_ARCHITECTURE ${CPACK_RPM_PACKAGE_ARCHITECTURE} ) + set( CPACK_RPM_Tools_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-tools" ) + set( CPACK_RPM_Tools_FILE_NAME "RPM-DEFAULT" ) + ENDIF () + + + # DEB - https://cmake.org/cmake/help/latest/cpack_gen/deb.html + set( CPACK_DEBIAN_PACKAGE_RELEASE ${CPACK_PACKAGE_RELEASE} ) + set( CPACK_DEBIAN_PACKAGE_HOMEPAGE ${CPACK_PACKAGE_HOMEPAGE_URL} ) + set( CPACK_DEB_COMPONENT_INSTALL 1 ) + set( CPACK_DEBIAN_COMPRESSION_TYPE "xz") + set( CPACK_DEBIAN_PACKAGE_SHLIBDEPS 1 ) + + if ( ${CPACK_PACKAGE_ARCHITECTURE} STREQUAL "x86_64" ) + set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE "amd64" ) # DEB doesn't always use the kernel's arch name + else() + set( CPACK_DEBIAN_PACKAGE_ARCHITECTURE ${CPACK_PACKAGE_ARCHITECTURE} ) + endif() + + set( CPACK_DEBIAN_FILE_NAME "DEB-DEFAULT" ) # Use default naming scheme + + set( CPACK_DEBIAN_LIBRARY_PACKAGE_NAME ${CPACK_RPM_Library_PACKAGE_NAME} ) + + set( CPACK_DEBIAN_DEVEL_PACKAGE_DEPENDS "cmake (>= ${CMAKE_MINIMUM_REQUIRED_VERSION}), ${CPACK_DEBIAN_LIBRARY_PACKAGE_NAME} (>= ${CPACK_PACKAGE_VERSION})" ) + set( CPACK_DEBIAN_DEVEL_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-dev" ) + + IF (CARES_BUILD_TOOLS) + set( CPACK_DEBIAN_TOOLS_PACKAGE_NAME "${CPACK_PACKAGE_NAME}-tools" ) + set( CPACK_DEBIAN_TOOLS_PACKAGE_SHLIBDEPS OFF ) # dpkg-shlibdeps can't find the libs we built + set( CPACK_DEBIAN_TOOLS_PACKAGE_DEPENDS "${CPACK_DEBIAN_LIBRARY_PACKAGE_NAME} (>= ${CPACK_PACKAGE_VERSION})" ) + ENDIF () + + elseif( ${CMAKE_HOST_WIN32} ) + set( CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL ON ) + set( CPACK_NSIS_DISPLAY_NAME ${PROJECT_NAME} ) + set( CPACK_NSIS_PACKAGE_NAME ${PROJECT_NAME} ) + set( CPACK_NSIS_URL_INFO_ABOUT ${CPACK_PACKAGE_HOMEPAGE_URL} ) + endif() + + # This must always be last! + include( CPack ) +ENDIF () diff --git a/deps/cares/CONTRIBUTING.md b/deps/cares/CONTRIBUTING.md new file mode 100644 index 00000000000000..a3b5194c78ad5f --- /dev/null +++ b/deps/cares/CONTRIBUTING.md @@ -0,0 +1,15 @@ +Contributing to c-ares +====================== + +To contribute patches to c-ares, please generate a GitHub pull request +and follow these guidelines: + + - Check that the Travis builds are green for your pull request. + - Please update the test suite to add a test case for any new functionality. + - Build the library with `./configure --enable-debug --enable-maintainer-mode` and + ensure there are no new warnings. + +To improve the chances of the c-ares maintainers responding to your request: + + - Also send an email to the mailing list at `c-ares@lists.haxx.se` describing your change. + - To follow any associated discussion, please subscribe to the [mailing list](http://lists.haxx.se/listinfo/c-ares). diff --git a/deps/cares/INSTALL.md b/deps/cares/INSTALL.md new file mode 100644 index 00000000000000..1e33ad7fd0eb02 --- /dev/null +++ b/deps/cares/INSTALL.md @@ -0,0 +1,409 @@ +** This file is adapted from libcurl and not yet fully rewritten for c-ares! ** + +``` + ___ __ _ _ __ ___ ___ + / __| ___ / _` | '__/ _ \/ __| + | (_ |___| (_| | | | __/\__ \ + \___| \__,_|_| \___||___/ + + How To Compile +``` + +Installing Binary Packages +========================== + +Lots of people download binary distributions of c-ares. This document +does not describe how to install c-ares using such a binary package. +This document describes how to compile, build and install c-ares from +source code. + +Building from Git +================= + +If you get your code off a Git repository rather than an official +release tarball, see the [GIT-INFO](GIT-INFO) file in the root directory +for specific instructions on how to proceed. + +In particular, if not using CMake you will need to run `./buildconf` (Unix) or +`buildconf.bat` (Windows) to generate build files, and for the former +you will need a local installation of Autotools. If using CMake the steps are +the same for both Git and official release tarballs. + +AutoTools Build +=============== + +### General Information, works on most Unix Platforms (Linux, FreeBSD, etc) + +A normal Unix installation is made in three or four steps (after you've +unpacked the source archive): + + ./configure + make + make install + +You probably need to be root when doing the last command. + +If you have checked out the sources from the git repository, read the +[GIT-INFO](GIT_INFO) on how to proceed. + +Get a full listing of all available configure options by invoking it like: + + ./configure --help + +If you want to install c-ares in a different file hierarchy than /usr/local, +you need to specify that already when running configure: + + ./configure --prefix=/path/to/c-ares/tree + +If you happen to have write permission in that directory, you can do `make +install` without being root. An example of this would be to make a local +install in your own home directory: + + ./configure --prefix=$HOME + make + make install + +### More Options + +To force configure to use the standard cc compiler if both cc and gcc are +present, run configure like + + CC=cc ./configure + # or + env CC=cc ./configure + +To force a static library compile, disable the shared library creation +by running configure like: + + ./configure --disable-shared + +If you're a c-ares developer and use gcc, you might want to enable more +debug options with the `--enable-debug` option. + +### Special Cases + +Some versions of uClibc require configuring with `CPPFLAGS=-D_GNU_SOURCE=1` +to get correct large file support. + +The Open Watcom C compiler on Linux requires configuring with the variables: + + ./configure CC=owcc AR="$WATCOM/binl/wlib" AR_FLAGS=-q \ + RANLIB=/bin/true STRIP="$WATCOM/binl/wstrip" CFLAGS=-Wextra + + +### CROSS COMPILE + +(This section was graciously brought to us by Jim Duey, with additions by +Dan Fandrich) + +Download and unpack the c-ares package. + +`cd` to the new directory. (e.g. `cd c-ares-1.7.6`) + +Set environment variables to point to the cross-compile toolchain and call +configure with any options you need. Be sure and specify the `--host` and +`--build` parameters at configuration time. The following script is an +example of cross-compiling for the IBM 405GP PowerPC processor using the +toolchain from MonteVista for Hardhat Linux. + +```sh +#! /bin/sh + +export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin +export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include" +export AR=ppc_405-ar +export AS=ppc_405-as +export LD=ppc_405-ld +export RANLIB=ppc_405-ranlib +export CC=ppc_405-gcc +export NM=ppc_405-nm + +./configure --target=powerpc-hardhat-linux \ + --host=powerpc-hardhat-linux \ + --build=i586-pc-linux-gnu \ + --prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \ + --exec-prefix=/usr/local +``` + +You may also need to provide a parameter like `--with-random=/dev/urandom` +to configure as it cannot detect the presence of a random number +generating device for a target system. The `--prefix` parameter +specifies where c-ares will be installed. If `configure` completes +successfully, do `make` and `make install` as usual. + +In some cases, you may be able to simplify the above commands to as +little as: + + ./configure --host=ARCH-OS + + +### Cygwin (Windows) + +Almost identical to the unix installation. Run the configure script in the +c-ares root with `sh configure`. Make sure you have the sh executable in +`/bin/` or you'll see the configure fail toward the end. + +Run `make` + + +### QNX + +(This section was graciously brought to us by David Bentham) + +As QNX is targeted for resource constrained environments, the QNX headers +set conservative limits. This includes the `FD_SETSIZE` macro, set by default +to 32. Socket descriptors returned within the c-ares library may exceed this, +resulting in memory faults/SIGSEGV crashes when passed into `select(..)` +calls using `fd_set` macros. + +A good all-round solution to this is to override the default when building +c-ares, by overriding `CFLAGS` during configure, example: + + # configure CFLAGS='-DFD_SETSIZE=64 -g -O2' + + +### RISC OS + +The library can be cross-compiled using gccsdk as follows: + + CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \ + --host=arm-riscos-aof --without-random --disable-shared + make + +where `riscos-gcc` and `riscos-ar` are links to the gccsdk tools. +You can then link your program with `c-ares/lib/.libs/libcares.a`. + + +### Android + +Method using a configure cross-compile (tested with Android NDK r7b): + + - prepare the toolchain of the Android NDK for standalone use; this can + be done by invoking the script: + + ./tools/make-standalone-toolchain.sh + + which creates a usual cross-compile toolchain. Lets assume that you put + this toolchain below `/opt` then invoke configure with something + like: + + ``` + export PATH=/opt/arm-linux-androideabi-4.4.3/bin:$PATH + ./configure --host=arm-linux-androideabi [more configure options] + make + ``` + - if you want to compile directly from our GIT repo you might run into + this issue with older automake stuff: + + ``` + checking host system type... + Invalid configuration `arm-linux-androideabi': + system `androideabi' not recognized + configure: error: /bin/sh ./config.sub arm-linux-androideabi failed + ``` + this issue can be fixed with using more recent versions of `config.sub` + and `config.guess` which can be obtained here: + http://git.savannah.gnu.org/gitweb/?p=config.git;a=tree + you need to replace your system-own versions which usually can be + found in your automake folder: + `find /usr -name config.sub` + + +CMake builds +============ + +Current releases of c-ares introduce a CMake v3+ build system that has been +tested on most platforms including Windows, Linux, FreeBSD, MacOS, AIX and +Solaris. + +In the most basic form, building with CMake might look like: + +```sh +cd /path/to/cmake/source +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/cares .. +make +sudo make install +``` + +Options +------- + +Options to CMake are passed on the command line using "-D${OPTION}=${VALUE}". +The values defined are all boolean and take values like On, Off, True, False. + +* CARES_STATIC - Build the static library (off by default) +* CARES_SHARED - Build the shared library (on by default) +* CARES_INSTALL - Hook in installation, useful to disable if chain building +* CARES_STATIC_PIC - Build the static library as position-independent (off by + default) + + +Ninja +----- + +Ninja is the next-generation build system meant for generators like CMake that +heavily parallize builds. Its use is very similar to the normal build: + +```sh +cd /path/to/cmake/source +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/cares -G "Ninja" .. +ninja +sudo ninja install +``` + +Windows MSVC Command Line +------------------------- + +``` +cd \path\to\cmake\source +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\cares -G "NMake Makefiles" .. +nmake +nmake install +``` + +Windows MinGW-w64 Command Line via MSYS +--------------------------------------- +``` +cd \path\to\cmake\source +mkdir build +cd build +cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\cares -G "MSYS Makefiles" .. +make +make install +``` + + +Platform-specific build systems +=============================== + +Win32 +----- + +### Building Windows DLLs and C run-time (CRT) linkage issues + +As a general rule, building a DLL with static CRT linkage is highly +discouraged, and intermixing CRTs in the same app is something to +avoid at any cost. + +Reading and comprehension of Microsoft Knowledge Base articles +KB94248 and KB140584 is a must for any Windows developer. Especially +important is full understanding if you are not going to follow the +advice given above. + + - [KB94248](http://support.microsoft.com/kb/94248/en-us) - How To Use the C Run-Time + + - [KB140584](http://support.microsoft.com/kb/140584/en-us) - How to link with the correct C Run-Time (CRT) library + + - [KB190799](http://msdn.microsoft.com/en-us/library/ms235460) - Potential Errors Passing CRT Objects Across DLL Boundaries + +If your app is misbehaving in some strange way, or it is suffering +from memory corruption, before asking for further help, please try +first to rebuild every single library your app uses as well as your +app using the debug multithreaded dynamic C runtime. + + +### MingW32 + +Make sure that MinGW32's bin dir is in the search path, for example: + + set PATH=c:\mingw32\bin;%PATH% + +then run 'make -f Makefile.m32' in the root dir. + + +### MSVC 6 caveats + +If you use MSVC 6 it is required that you use the February 2003 edition PSDK: +http://www.microsoft.com/msdownload/platformsdk/sdkupdate/psdk-full.htm + + +### MSVC from command line + +Run the `vcvars32.bat` file to get a proper environment. The +`vcvars32.bat` file is part of the Microsoft development environment and +you may find it in `C:\Program Files\Microsoft Visual Studio\vc98\bin` +provided that you installed Visual C/C++ 6 in the default directory. + +Further details in [README.msvc](README.msvc) + + +### Important static c-ares usage note + +When building an application that uses the static c-ares library, you must +add `-DCARES_STATICLIB` to your `CFLAGS`. Otherwise the linker will look for +dynamic import symbols. + + +IBM OS/2 +-------- + +Building under OS/2 is not much different from building under unix. +You need: + + - emx 0.9d + - GNU make + - GNU patch + - ksh + - GNU bison + - GNU file utilities + - GNU sed + - autoconf 2.13 + +If during the linking you get an error about `_errno` being an undefined +symbol referenced from the text segment, you need to add `-D__ST_MT_ERRNO__` +in your definitions. + +If you're getting huge binaries, probably your makefiles have the `-g` in +`CFLAGS`. + + +NetWare +------- + +To compile `libcares.a` / `libcares.lib` you need: + + - either any gcc / nlmconv, or CodeWarrior 7 PDK 4 or later. + - gnu make and awk running on the platform you compile on; + native Win32 versions can be downloaded from: + http://www.gknw.net/development/prgtools/ + - recent Novell LibC SDK available from: + http://developer.novell.com/ndk/libc.htm + - or recent Novell CLib SDK available from: + http://developer.novell.com/ndk/clib.htm + +Set a search path to your compiler, linker and tools; on Linux make +sure that the var `OSTYPE` contains the string 'linux'; set the var +`NDKBASE` to point to the base of your Novell NDK; and then type +`make -f Makefile.netware` from the top source directory; + + +PORTS +===== + +This is a probably incomplete list of known hardware and operating systems +that c-ares has been compiled for. If you know a system c-ares compiles and +runs on, that isn't listed, please let us know! + + - Alpha Tru64 v5.0 5.1 + - ARM Android 1.5, 2.1, 2.3 + - MIPS IRIX 6.2, 6.5 + - Power AIX 3.2.5, 4.2, 4.3.1, 4.3.2, 5.1, 5.2 + - i386 Linux 1.3, 2.0, 2.2, 2.3, 2.4, 2.6 + - i386 Novell NetWare + - i386 Windows 95, 98, ME, NT, 2000, XP, 2003 + - x86_64 Linux + + +Useful URLs +=========== + + - c-ares: https://c-ares.org/ + - MingW: http://www.mingw.org/ + - MinGW-w64: http://mingw-w64.sourceforge.net/ + - OpenWatcom: http://www.openwatcom.org/ diff --git a/deps/cares/Makefile.Watcom b/deps/cares/Makefile.Watcom new file mode 100644 index 00000000000000..fa529a56edc8e1 --- /dev/null +++ b/deps/cares/Makefile.Watcom @@ -0,0 +1,164 @@ +# +# Watcom / OpenWatcom / Win32 makefile for cares. +# Quick hack by Guenter; comments to: /dev/nul +# + +!ifndef %watcom +!error WATCOM environment variable not set! +!else +SYS_INCL = -I$(%watcom)\h\nt -I$(%watcom)\h +SYS_LIBS = $(%watcom)\lib386\nt;$(%watcom)\lib386 +!endif + +!ifdef %libname +LIBNAME = $(%libname) +!else +LIBNAME = cares +!endif +TARGETS = $(LIBNAME).dll $(LIBNAME)_imp.lib $(LIBNAME).lib +DEMOS = adig.exe ahost.exe acountry.exe + +CC = wcc386 +LD = wlink +AR = wlib +RC = wrc + +!ifdef __LOADDLL__ +! loaddll wcc386 wccd386 +! loaddll wpp386 wppd386 +! loaddll wlib wlibd +!endif + +!if $(__VERSION__) < 1250 +RM = del /q /f 2>NUL +!else +RM = rm -f +!endif +MD = mkdir +RD = rmdir /q /s 2>NUL +CP = copy + +CFLAGS = -3r -mf -hc -zff -zgf -zq -zm -zc -s -fr=con -w2 -fpi -oilrtfm & + -wcd=201 -bt=nt -d+ -dWIN32 -dCARES_BUILDING_LIBRARY & + -dNTDDI_VERSION=0x05010000 -I. $(SYS_INCL) + +LFLAGS = option quiet, map, caseexact, eliminate + +!ifdef %debug +DEBUG = -dDEBUG=1 -dDEBUGBUILD +CFLAGS += -d3 $(DEBUG) +LFLAGS += debug all +!else +CFLAGS += -d0 +!endif + +CFLAGS += -d_WIN32_WINNT=0x0600 + +# +# Change to suite. +# +!ifdef %use_watt32 +CFLAGS += -dWATT32 -I$(%watt_root)\inc +!endif + +OBJ_BASE = WC_Win32.obj +LINK_ARG = $(OBJ_BASE)\dyn\wlink.arg +LIB_ARG = $(OBJ_BASE)\stat\wlib.arg + +# In order to process Makefile.inc wmake must be called with -u switch! +!ifneq __MAKEOPTS__ -u +!error You MUST call wmake with the -u switch! +!else +!include Makefile.inc +!endif + +OBJS = $(CSOURCES:.c=.obj) +OBJS = $OBJ_DIR\$(OBJS: = $OBJ_DIR\) + +# +# Use $(OBJS) as a template to generate $(OBJS_STAT) and $(OBJS_DYN). +# +OBJ_DIR = $(OBJ_BASE)\stat +OBJS_STAT = $+ $(OBJS) $- + +OBJ_DIR = $(OBJ_BASE)\dyn +OBJS_DYN = $+ $(OBJS) $- + +ARESBUILDH = ares_build.h +RESOURCE = $(OBJ_BASE)\dyn\cares.res + +all: $(ARESBUILDH) $(OBJ_BASE) $(TARGETS) $(DEMOS) .SYMBOLIC + @echo Welcome to cares + +$(OBJ_BASE): + -$(MD) $^@ + -$(MD) $^@\stat + -$(MD) $^@\dyn + -$(MD) $^@\demos + +$(ARESBUILDH): .EXISTSONLY + $(CP) $^@.dist $^@ + +$(LIBNAME).dll: $(OBJS_DYN) $(RESOURCE) $(LINK_ARG) + $(LD) name $^@ @$]@ + +$(LIBNAME).lib: $(OBJS_STAT) $(LIB_ARG) + $(AR) -q -b -c $^@ @$]@ + +adig.exe: $(OBJ_BASE)\demos\adig.obj $(OBJ_BASE)\demos\ares_getopt.obj $(LIBNAME).lib + $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\demos\ares_getopt.obj $[@ } library $]@, ws2_32.lib + +ahost.exe: $(OBJ_BASE)\demos\ahost.obj $(OBJ_BASE)\demos\ares_getopt.obj $(LIBNAME).lib + $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\demos\ares_getopt.obj $[@ } library $]@, ws2_32.lib + +acountry.exe: $(OBJ_BASE)\demos\acountry.obj $(OBJ_BASE)\demos\ares_getopt.obj $(LIBNAME).lib + $(LD) name $^@ system nt $(LFLAGS) file { $(OBJ_BASE)\demos\ares_getopt.obj $[@ } library $]@, ws2_32.lib + +clean: .SYMBOLIC + -$(RM) $(OBJS_STAT) + -$(RM) $(OBJS_DYN) + -$(RM) $(RESOURCE) $(LINK_ARG) $(LIB_ARG) + +vclean realclean: clean .SYMBOLIC + -$(RM) $(TARGETS) $(LIBNAME).map + -$(RM) $(DEMOS) $(DEMOS:.exe=.map) + -$(RD) $(OBJ_BASE)\stat + -$(RD) $(OBJ_BASE)\dyn + -$(RD) $(OBJ_BASE)\demos + -$(RD) $(OBJ_BASE) + +.ERASE +$(RESOURCE): cares.rc .AUTODEPEND + $(RC) $(DEBUG) -q -r -zm -I..\include $(SYS_INCL) $[@ -fo=$^@ + +.ERASE +.c{$(OBJ_BASE)\dyn}.obj: + $(CC) $(CFLAGS) -bd $[@ -fo=$^@ + +.ERASE +.c{$(OBJ_BASE)\stat}.obj: + $(CC) $(CFLAGS) -DCARES_STATICLIB $[@ -fo=$^@ + +.ERASE +.c{$(OBJ_BASE)\demos}.obj: + $(CC) $(CFLAGS) -DCARES_STATICLIB $[@ -fo=$^@ + +$(LINK_ARG): $(__MAKEFILES__) + %create $^@ + @%append $^@ system nt dll + @%append $^@ file { $(OBJS_DYN) } + @%append $^@ option res=$(RESOURCE), implib=$(LIBNAME)_imp.lib + @%append $^@ $(LFLAGS) + @%append $^@ libpath $(SYS_LIBS) +# @%append $^@ library clib3r.lib +!ifdef %use_watt32 + @%append $^@ library $(%watt_root)\lib\wattcpw_imp.lib +!else + @%append $^@ library ws2_32.lib +!endif + +$(LIB_ARG): $(__MAKEFILES__) + %create $^@ + @for %f in ($(OBJS_STAT)) do @%append $^@ +- %f + + diff --git a/deps/cares/Makefile.am b/deps/cares/Makefile.am new file mode 100644 index 00000000000000..eef3d3d160e455 --- /dev/null +++ b/deps/cares/Makefile.am @@ -0,0 +1,37 @@ +AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install + +MSVCFILES = msvc_ver.inc buildconf.bat + +# adig and ahost are just sample programs and thus not mentioned with the +# regular sources and headers +EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES \ + c-ares-config.cmake.in libcares.pc.cmake libcares.pc.in buildconf get_ver.awk \ + maketgz TODO README.msvc $(MSVCFILES) INSTALL.md README.md LICENSE.md \ + CMakeLists.txt Makefile.dj Makefile.m32 Makefile.netware Makefile.msvc \ + Makefile.Watcom AUTHORS CONTRIBUTING.md SECURITY.md TODO + + +CLEANFILES = $(PDFPAGES) $(HTMLPAGES) + +DISTCLEANFILES = include/ares_build.h + +DIST_SUBDIRS = include src test docs + +SUBDIRS = @BUILD_SUBDIRS@ + +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libcares.pc + +# where to install the c-ares headers +libcares_ladir = $(includedir) + + +# Make files named *.dist replace the file without .dist extension +dist-hook: + find $(distdir) -name "*.dist" -exec rm {} \; + (distit=`find $(srcdir) -name "*.dist"`; \ + for file in $$distit; do \ + strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ + cp $$file $(distdir)$$strip; \ + done) diff --git a/deps/cares/Makefile.dj b/deps/cares/Makefile.dj new file mode 100644 index 00000000000000..a88aae219da933 --- /dev/null +++ b/deps/cares/Makefile.dj @@ -0,0 +1,102 @@ +# +# c-ares Makefile for djgpp/gcc/Watt-32. +# By Gisle Vanem 2004 - 2020. +# +include src/lib/Makefile.inc + +CSOURCES := $(addprefix src/lib/, $(CSOURCES)) +CSOURCES := $(filter-out src/lib/windows_port.c, $(CSOURCES)) + +VPATH = src/lib src/tools + +# +# Root directory for Waterloo tcp/ip. +# WATT_ROOT should be set during Watt-32 install. +# +WATT32_ROOT = $(realpath $(WATT_ROOT)) +WATT32_LIB = $(WATT32_ROOT)/lib/libwatt.a + +OBJ_DIR = djgpp + +CFLAGS = -g -O2 -I./include -I./src/lib \ + -I$(WATT32_ROOT)/inc -Wall \ + -DWATT32 -DHAVE_CONFIG_H \ + -Dselect=select_s + +LDFLAGS = -s + +ifeq ($(OS),Windows_NT) + # + # Windows hosted djgpp cross compiler. Get it from: + # https://github.com/andrewwutw/build-djgpp/releases + # + DJ_PREFIX ?= c:/some-path/djgpp/bin/i586-pc-msdosdjgpp- + CC = $(DJ_PREFIX)gcc + +else + # + # The normal djgpp 'gcc' for MSDOS. + # + CC = gcc +endif + +OBJECTS = $(addprefix $(OBJ_DIR)/, \ + $(notdir $(CSOURCES:.c=.o))) + +GENERATED = src/lib/ares_config.h \ + include/ares_build.h + +TARGETS = libcares.a acountry.exe adig.exe ahost.exe + +.SECONDARY: $(OBJ_DIR)/ares_getopt.o + +all: $(OBJ_DIR) $(GENERATED) $(TARGETS) + @echo Welcome to c-ares. + +libcares.a: $(OBJECTS) + ar rs $@ $(OBJECTS) + +src/lib/ares_config.h: src/lib/config-dos.h + cp --update $< $@ + +include/ares_build.h: include/ares_build.h.dist + cp --update $< $@ + +%.exe: src/tools/%.c $(OBJ_DIR)/ares_getopt.o libcares.a + $(call compile_and_link, $@, $^ $(WATT32_LIB)) + +# Clean generated files and objects. +# +clean: + - rm -f depend.dj $(GENERATED) $(OBJ_DIR)/*.o + - rmdir $(OBJ_DIR) + +# Clean everything +# +realclean vclean: clean + - rm -f $(TARGETS) $(TARGETS:.exe=.map) + +$(OBJ_DIR): + - mkdir $@ + +$(OBJ_DIR)/%.o: %.c + $(CC) $(CFLAGS) -o $@ -c $< + @echo + +define compile_and_link + $(CC) -o $(1) $(CFLAGS) $(LDFLAGS) -Wl,--print-map,--sort-common $(2) > $(1:.exe=.map) + @echo +endef + +DEP_REPLACE = sed -e 's@\(.*\)\.o: @\n$$(OBJ_DIR)\/\1.o: @' \ + -e 's@$(WATT32_ROOT)@$$(WATT32_ROOT)@g' + +# +# One may have to do 'make -f Makefile.dj clean' first in case +# a foreign 'curl_config.h' is making trouble. +# +depend: $(GENERATED) Makefile.dj + $(CC) -MM $(CFLAGS) $(CSOURCES) | $(DEP_REPLACE) > depend.dj + +-include depend.dj + diff --git a/deps/cares/Makefile.in b/deps/cares/Makefile.in new file mode 100644 index 00000000000000..7d7b59eaa2dc37 --- /dev/null +++ b/deps/cares/Makefile.in @@ -0,0 +1,938 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = . +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(top_srcdir)/configure \ + $(am__configure_deps) $(am__DIST_COMMON) +am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \ + configure.lineno config.status.lineno +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h \ + $(top_builddir)/include/ares_build.h +CONFIG_CLEAN_FILES = libcares.pc +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(pkgconfigdir)" +DATA = $(pkgconfig_DATA) +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + cscope distdir distdir-am dist dist-all distcheck +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/libcares.pc.in \ + AUTHORS INSTALL.md NEWS README.md TODO compile config.guess \ + config.sub depcomp install-sh ltmain.sh missing +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +distdir = $(PACKAGE)-$(VERSION) +top_distdir = $(distdir) +am__remove_distdir = \ + if test -d "$(distdir)"; then \ + find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \ + && rm -rf "$(distdir)" \ + || { sleep 5 && rm -rf "$(distdir)"; }; \ + else :; fi +am__post_remove_distdir = $(am__remove_distdir) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +DIST_ARCHIVES = $(distdir).tar.gz +GZIP_ENV = --best +DIST_TARGETS = dist-gzip +# Exists only to be overridden by the user if desired. +AM_DISTCHECK_DVI_TARGET = dvi +distuninstallcheck_listfiles = find . -type f -print +am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \ + | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$' +distcleancheck_listfiles = find . -type f -print +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install +MSVCFILES = msvc_ver.inc buildconf.bat + +# adig and ahost are just sample programs and thus not mentioned with the +# regular sources and headers +EXTRA_DIST = AUTHORS CHANGES README.cares $(man_MANS) RELEASE-NOTES \ + c-ares-config.cmake.in libcares.pc.cmake libcares.pc.in buildconf get_ver.awk \ + maketgz TODO README.msvc $(MSVCFILES) INSTALL.md README.md LICENSE.md \ + CMakeLists.txt Makefile.dj Makefile.m32 Makefile.netware Makefile.msvc \ + Makefile.Watcom AUTHORS CONTRIBUTING.md SECURITY.md TODO + +CLEANFILES = $(PDFPAGES) $(HTMLPAGES) +DISTCLEANFILES = include/ares_build.h +DIST_SUBDIRS = include src test docs +SUBDIRS = @BUILD_SUBDIRS@ +pkgconfigdir = $(libdir)/pkgconfig +pkgconfig_DATA = libcares.pc + +# where to install the c-ares headers +libcares_ladir = $(includedir) +all: all-recursive + +.SUFFIXES: +am--refresh: Makefile + @: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + echo ' cd $(srcdir) && $(AUTOMAKE) --foreign'; \ + $(am__cd) $(srcdir) && $(AUTOMAKE) --foreign \ + && exit 0; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + echo ' $(SHELL) ./config.status'; \ + $(SHELL) ./config.status;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + $(SHELL) ./config.status --recheck + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + $(am__cd) $(srcdir) && $(AUTOCONF) +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + $(am__cd) $(srcdir) && $(ACLOCAL) $(ACLOCAL_AMFLAGS) +$(am__aclocal_m4_deps): +libcares.pc: $(top_builddir)/config.status $(srcdir)/libcares.pc.in + cd $(top_builddir) && $(SHELL) ./config.status $@ + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +distclean-libtool: + -rm -f libtool config.lt +install-pkgconfigDATA: $(pkgconfig_DATA) + @$(NORMAL_INSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(pkgconfigdir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(pkgconfigdir)" || exit $$?; \ + done + +uninstall-pkgconfigDATA: + @$(NORMAL_UNINSTALL) + @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir) + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscope: cscope.files + test ! -s cscope.files \ + || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS) +clean-cscope: + -rm -f cscope.files +cscope.files: clean-cscope cscopelist +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags + -rm -f cscope.out cscope.in.out cscope.po.out cscope.files +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + $(am__remove_distdir) + test -d "$(distdir)" || mkdir "$(distdir)" + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$(top_distdir)" distdir="$(distdir)" \ + dist-hook + -test -n "$(am__skip_mode_fix)" \ + || find "$(distdir)" -type d ! -perm -755 \ + -exec chmod u+rwx,go+rx {} \; -o \ + ! -type d ! -perm -444 -links 1 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -400 -exec chmod a+r {} \; -o \ + ! -type d ! -perm -444 -exec $(install_sh) -c -m a+r {} {} \; \ + || chmod -R a+r "$(distdir)" +dist-gzip: distdir + tardir=$(distdir) && $(am__tar) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).tar.gz + $(am__post_remove_distdir) + +dist-bzip2: distdir + tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2 + $(am__post_remove_distdir) + +dist-lzip: distdir + tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz + $(am__post_remove_distdir) + +dist-xz: distdir + tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz + $(am__post_remove_distdir) + +dist-zstd: distdir + tardir=$(distdir) && $(am__tar) | zstd -c $${ZSTD_CLEVEL-$${ZSTD_OPT--19}} >$(distdir).tar.zst + $(am__post_remove_distdir) + +dist-tarZ: distdir + @echo WARNING: "Support for distribution archives compressed with" \ + "legacy program 'compress' is deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z + $(am__post_remove_distdir) + +dist-shar: distdir + @echo WARNING: "Support for shar distribution archives is" \ + "deprecated." >&2 + @echo WARNING: "It will be removed altogether in Automake 2.0" >&2 + shar $(distdir) | eval GZIP= gzip $(GZIP_ENV) -c >$(distdir).shar.gz + $(am__post_remove_distdir) + +dist-zip: distdir + -rm -f $(distdir).zip + zip -rq $(distdir).zip $(distdir) + $(am__post_remove_distdir) + +dist dist-all: + $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:' + $(am__post_remove_distdir) + +# This target untars the dist file and tries a VPATH configuration. Then +# it guarantees that the distribution is self-contained by making another +# tarfile. +distcheck: dist + case '$(DIST_ARCHIVES)' in \ + *.tar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).tar.gz | $(am__untar) ;;\ + *.tar.bz2*) \ + bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\ + *.tar.lz*) \ + lzip -dc $(distdir).tar.lz | $(am__untar) ;;\ + *.tar.xz*) \ + xz -dc $(distdir).tar.xz | $(am__untar) ;;\ + *.tar.Z*) \ + uncompress -c $(distdir).tar.Z | $(am__untar) ;;\ + *.shar.gz*) \ + eval GZIP= gzip $(GZIP_ENV) -dc $(distdir).shar.gz | unshar ;;\ + *.zip*) \ + unzip $(distdir).zip ;;\ + *.tar.zst*) \ + zstd -dc $(distdir).tar.zst | $(am__untar) ;;\ + esac + chmod -R a-w $(distdir) + chmod u+w $(distdir) + mkdir $(distdir)/_build $(distdir)/_build/sub $(distdir)/_inst + chmod a-w $(distdir) + test -d $(distdir)/_build || exit 0; \ + dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \ + && dc_destdir="$${TMPDIR-/tmp}/am-dc-$$$$/" \ + && am__cwd=`pwd` \ + && $(am__cd) $(distdir)/_build/sub \ + && ../../configure \ + $(AM_DISTCHECK_CONFIGURE_FLAGS) \ + $(DISTCHECK_CONFIGURE_FLAGS) \ + --srcdir=../.. --prefix="$$dc_install_base" \ + && $(MAKE) $(AM_MAKEFLAGS) \ + && $(MAKE) $(AM_MAKEFLAGS) $(AM_DISTCHECK_DVI_TARGET) \ + && $(MAKE) $(AM_MAKEFLAGS) check \ + && $(MAKE) $(AM_MAKEFLAGS) install \ + && $(MAKE) $(AM_MAKEFLAGS) installcheck \ + && $(MAKE) $(AM_MAKEFLAGS) uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) distuninstallcheck_dir="$$dc_install_base" \ + distuninstallcheck \ + && chmod -R a-w "$$dc_install_base" \ + && ({ \ + (cd ../.. && umask 077 && mkdir "$$dc_destdir") \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" install \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" uninstall \ + && $(MAKE) $(AM_MAKEFLAGS) DESTDIR="$$dc_destdir" \ + distuninstallcheck_dir="$$dc_destdir" distuninstallcheck; \ + } || { rm -rf "$$dc_destdir"; exit 1; }) \ + && rm -rf "$$dc_destdir" \ + && $(MAKE) $(AM_MAKEFLAGS) dist \ + && rm -rf $(DIST_ARCHIVES) \ + && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \ + && cd "$$am__cwd" \ + || exit 1 + $(am__post_remove_distdir) + @(echo "$(distdir) archives ready for distribution: "; \ + list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \ + sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x' +distuninstallcheck: + @test -n '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: trying to run $@ with an empty' \ + '$$(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + $(am__cd) '$(distuninstallcheck_dir)' || { \ + echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \ + exit 1; \ + }; \ + test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left after uninstall:" ; \ + if test -n "$(DESTDIR)"; then \ + echo " (check DESTDIR support)"; \ + fi ; \ + $(distuninstallcheck_listfiles) ; \ + exit 1; } >&2 +distcleancheck: distclean + @if test '$(srcdir)' = . ; then \ + echo "ERROR: distcleancheck can only run from a VPATH build" ; \ + exit 1 ; \ + fi + @test `$(distcleancheck_listfiles) | wc -l` -eq 0 \ + || { echo "ERROR: files left in build directory after distclean:" ; \ + $(distcleancheck_listfiles) ; \ + exit 1; } >&2 +check-am: all-am +check: check-recursive +all-am: Makefile $(DATA) +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(pkgconfigdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES) + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-libtool \ + distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: install-pkgconfigDATA + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f $(am__CONFIG_DISTCLEAN_FILES) + -rm -rf $(top_srcdir)/autom4te.cache + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-pkgconfigDATA + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--refresh check check-am clean clean-cscope clean-generic \ + clean-libtool cscope cscopelist-am ctags ctags-am dist \ + dist-all dist-bzip2 dist-gzip dist-hook dist-lzip dist-shar \ + dist-tarZ dist-xz dist-zip dist-zstd distcheck distclean \ + distclean-generic distclean-libtool distclean-tags \ + distcleancheck distdir distuninstallcheck dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-pkgconfigDATA install-ps install-ps-am install-strip \ + installcheck installcheck-am installdirs installdirs-am \ + maintainer-clean maintainer-clean-generic mostlyclean \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-pkgconfigDATA + +.PRECIOUS: Makefile + + +# Make files named *.dist replace the file without .dist extension +dist-hook: + find $(distdir) -name "*.dist" -exec rm {} \; + (distit=`find $(srcdir) -name "*.dist"`; \ + for file in $$distit; do \ + strip=`echo $$file | sed -e s/^$(srcdir)// -e s/\.dist//`; \ + cp $$file $(distdir)$$strip; \ + done) + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/Makefile.m32 b/deps/cares/Makefile.m32 new file mode 100644 index 00000000000000..66d28b1c146761 --- /dev/null +++ b/deps/cares/Makefile.m32 @@ -0,0 +1,77 @@ +############################################################# +# +## Makefile for building libcares.a with MingW32 (GCC-3.2) +## Use: make -f Makefile.m32 [demos] +## +## Quick hack by Guenter; comments to: /dev/nul +# +######################################################## +## Nothing more to do below this line! + +LIB = src/lib/libcares.a + +AR = $(CROSSPREFIX)ar +CC = $(CROSSPREFIX)gcc +LD = $(CROSSPREFIX)gcc +RANLIB = $(CROSSPREFIX)ranlib +#RM = rm -f +CP = cp -afv + +CFLAGS = $(CARES_CFLAG_EXTRAS) -O2 -Wall -I./include -I./src/lib -D_WIN32_WINNT=0x0600 +CFLAGS += -DCARES_STATICLIB +LDFLAGS = $(CARES_LDFLAG_EXTRAS) -s +LIBS = -lws2_32 -liphlpapi + +# Makefile.inc provides the CSOURCES and HHEADERS defines +include src/lib/Makefile.inc + +OBJLIB := $(patsubst %.c,src/lib/%.o,$(strip $(CSOURCES))) + + +$(LIB): $(OBJLIB) + $(AR) cru $@ $^ + $(RANLIB) $@ + +all: $(LIB) demos + +demos: src/tools/adig.exe src/tools/ahost.exe src/tools/acountry.exe + +tags: + etags *.[ch] + +%.exe: %.o src/tools/ares_getopt.o $(LIB) + $(LD) $(LDFLAGS) -o $@ $^ $(LIBS) + +$(OBJLIB): include/ares.h include/ares_dns.h include/ares_build.h + +.c.o: + $(CC) $(CFLAGS) -o $@ -c $< + +include/ares_build.h: + $(CP) include/ares_build.h.dist include/ares_build.h + +check: + +install: + ${top_srcdir}/mkinstalldirs ${DESTDIR}${libdir} + ${top_srcdir}/mkinstalldirs ${DESTDIR}${includedir} + ${top_srcdir}/mkinstalldirs ${DESTDIR}${mandir}/man3 + ${INSTALL} -m 644 $(LIB) ${DESTDIR}${libdir} + ${RANLIB} ${DESTDIR}${libdir}/$(LIB) + chmod u-w ${DESTDIR}${libdir}/$(LIB) + ${INSTALL} -m 444 ${srcdir}/include/ares.h ${DESTDIR}${includedir} + ${INSTALL} -m 444 ${srcdir}/include/ares_build.h ${DESTDIR}${includedir} + ${INSTALL} -m 444 ${srcdir}/include/ares_rules.h ${DESTDIR}${includedir} + ${INSTALL} -m 444 ${srcdir}/include/ares_version.h ${DESTDIR}${includedir} + (for man in $(MANPAGES); do \ + ${INSTALL} -m 444 ${srcdir}/$${man} ${DESTDIR}${mandir}/man3; \ + done) + +clean: + $(RM) src/tools/ares_getopt.o $(OBJLIB) $(LIB) src/tools/adig.exe src/tools/ahost.exe src/tools/acountry.exe + +distclean: clean + $(RM) config.cache config.log config.status Makefile +ifeq "$(wildcard include/ares_build.h.dist)" "include/ares_build.h.dist" + $(RM) include/ares_build.h +endif diff --git a/deps/cares/Makefile.msvc b/deps/cares/Makefile.msvc new file mode 100644 index 00000000000000..62cc48fb3b545f --- /dev/null +++ b/deps/cares/Makefile.msvc @@ -0,0 +1,491 @@ + +# Copyright (C) 2009-2013 by Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this +# software and its documentation for any purpose and without +# fee is hereby granted, provided that the above copyright +# notice appear in all copies and that both that copyright +# notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in +# advertising or publicity pertaining to distribution of the +# software without specific, written prior permission. +# M.I.T. makes no representations about the suitability of +# this software for any purpose. It is provided "as is" +# without express or implied warranty. + +# ------------------------------------------------------------------------------ +# +# Makefile for building c-ares libraries and sample programs with MSVC. +# +# Usage: nmake /f makefile.msvc CFG= +# +# must be one of: [ lib-release | lib-debug | dll-release | dll-debug } +# must be one of: [ ALL | c-ares | acountry | adig | ahost | clean } +# +# If a other than ALL or clean is given, becomes mandatory. +# +# If neither nor are specified this results in +# all targets being built for all c-ares library types. +# +# This makefile must be processed from the subdir where it is located. +# +# All results are generated below a subdirectory named msvcXXX. +# +# ------------------------------------------------------------------------------ + +NAME = cares + +# ------------------------------------------------ +# c-ares static and dynamic libraries common base +# file names for release and debug configurations +# ------------------------------------------------ + +STA_LIB_REL = lib$(NAME) +DYN_LIB_REL = $(NAME) +STA_LIB_DBG = $(STA_LIB_REL)d +DYN_LIB_DBG = $(DYN_LIB_REL)d + +# ------------------------------------------- +# Base names for c-ares DLL import libraries +# ------------------------------------------- + +IMP_LIB_REL = $(DYN_LIB_REL) +IMP_LIB_DBG = $(DYN_LIB_DBG) + +# -------------------------- +# Runtime library selection +# -------------------------- + +RTLIB = /MD +RTLIBD = /MDd + +!IF "$(RTLIBCFG)" == "static" +RTLIB = /MT +RTLIBD = /MTd +!ENDIF + +# -------------------------------------------------------- +# Define USE_WATT32 to 1 to use the Watt-32 tcp/ip stack, +# otherwise Winsock tcp/ip stack will be used as default. +# -------------------------------------------------------- + +USE_WATT32 = 0 + +# -------------------------------------------------------- +# Detect compiler version. +# -------------------------------------------------------- +!INCLUDE .\msvc_ver.inc + +# ---------------------------------------------------- +# Verify that current subdir is the c-ares source one +# ---------------------------------------------------- + +!IF ! EXIST(.\src\lib\ares_init.c) +! MESSAGE Can not process Makefile.msvc from outside of c-ares source subdirectory. +! MESSAGE Change to the subdirectory where Makefile.msvc is found, and try again. +! ERROR See previous message. +!ENDIF + +# ------------------------------------------------------------------ +# Base subdir is the common root from which other subdirs will hang. +# ------------------------------------------------------------------ + +BASE_DIR = .\msvc + +# ---------------------------------------- +# Subdir holding sources for all projects +# ---------------------------------------- + +SRCDIR = . + +# ----------------------------- +# Default installation subdirs +# ----------------------------- + +!IFNDEF INSTALL_DIR +INSTALL_DIR = . +!ENDIF + +!IFNDEF INSTALL_DIR_LIB +INSTALL_DIR_LIB = $(INSTALL_DIR)\lib +!ENDIF + +!IFNDEF INSTALL_DIR_INC +INSTALL_DIR_INC = $(INSTALL_DIR)\include +!ENDIF + +# ------------------------- +# Configuration validation +# ------------------------- + +VALID_CFGSET = FALSE +!IF "$(CFG)" == "lib-release" || "$(CFG)" == "lib-debug" || \ + "$(CFG)" == "dll-release" || "$(CFG)" == "dll-debug" +VALID_CFGSET = TRUE +!ENDIF + +!IF "$(VALID_CFGSET)" == "FALSE" && "$(CFG)" != "" +! MESSAGE MSVC c-ares makefile +! MESSAGE +! MESSAGE Usage: nmake /f makefile.msvc CFG= +! MESSAGE +! MESSAGE must be one of: [ lib-release | lib-debug | dll-release | dll-debug } +! MESSAGE must be one of: [ ALL | c-ares | acountry | adig | ahost | clean } +! MESSAGE +! MESSAGE If a other than ALL or clean is given, becomes mandatory. +! MESSAGE +! MESSAGE If neither nor are specified this results in +! MESSAGE all targets being built for all c-ares library types. +! MESSAGE +! ERROR Choose a valid configuration. +!ENDIF + +# -------------------------------------------------------- +# Project subdirs independent of configuration being used +# -------------------------------------------------------- + +CARES_DIR = $(BASE_DIR)\cares +PROG1_DIR = $(BASE_DIR)\acountry +PROG2_DIR = $(BASE_DIR)\adig +PROG3_DIR = $(BASE_DIR)\ahost + +# --------------------------------------------------- +# Subdirs which are configuration dependent are only +# defined when a valid configuration has been given. +# --------------------------------------------------- + +!IF "$(VALID_CFGSET)" == "TRUE" +CARES_OUTDIR = $(CARES_DIR)\$(CFG) +PROG1_OUTDIR = $(PROG1_DIR)\$(CFG) +PROG2_OUTDIR = $(PROG2_DIR)\$(CFG) +PROG3_OUTDIR = $(PROG3_DIR)\$(CFG) +CARES_OBJDIR = $(CARES_OUTDIR)\obj +PROG1_OBJDIR = $(PROG1_OUTDIR)\obj +PROG2_OBJDIR = $(PROG2_OUTDIR)\obj +PROG3_OBJDIR = $(PROG3_OUTDIR)\obj +!ELSE +!UNDEF CARES_OUTDIR +!UNDEF PROG1_OUTDIR +!UNDEF PROG2_OUTDIR +!UNDEF PROG3_OUTDIR +!UNDEF CARES_OBJDIR +!UNDEF PROG1_OBJDIR +!UNDEF PROG2_OBJDIR +!UNDEF PROG3_OBJDIR +!ENDIF + +# ------------------------------------- +# Settings that depend on tcp/ip stack +# ------------------------------------- + +!IF "$(USE_WATT32)" == "1" +CFLAGS = /UWIN32 /DWATT32 /I$(WATT_ROOT)\inc +EX_LIBS_REL = $(WATT_ROOT)\lib\wattcpvc_imp.lib +EX_LIBS_DBG = $(WATT_ROOT)\lib\wattcpvc_imp_d.lib +!ELSE +CFLAGS = /DWIN32 /D_WIN32_WINNT=0x0600 +EX_LIBS_REL = ws2_32.lib advapi32.lib kernel32.lib iphlpapi.lib +EX_LIBS_DBG = ws2_32.lib advapi32.lib kernel32.lib iphlpapi.lib +!ENDIF + +# ------------------------------------------------- +# Switches that depend on ancient compiler versions +# ------------------------------------------------- + +!IF $(CC_VERS_NUM) == 60 +PDB_NONE = /pdb:none +PDBTYPE_CONSOLIDATE = /pdbtype:consolidate +!ELSE +!UNDEF PDB_NONE +!UNDEF PDBTYPE_CONSOLIDATE +!ENDIF + +!IF $(CC_VERS_NUM) <= 70 +RT_ERROR_CHECKING = /GZ +!ELSE +RT_ERROR_CHECKING = /RTCsu +!ENDIF + +# ---------------------------- +# Assorted commands and flags +# ---------------------------- + +CC_CMD_REL = cl.exe /nologo $(RTLIB) /DNDEBUG /O2 +CC_CMD_DBG = cl.exe /nologo $(RTLIBD) /D_DEBUG /Od /Zi $(RT_ERROR_CHECKING) +CC_CFLAGS = $(CFLAGS) /I.\src\lib /I.\include /W3 /EHsc /FD + +RC_CMD_REL = rc.exe /l 0x409 /d "NDEBUG" +RC_CMD_DBG = rc.exe /l 0x409 /d "_DEBUG" + +LINK_CMD_LIB = link.exe /lib /nologo +LINK_CMD_DLL = link.exe /dll /nologo /incremental:no /fixed:no +LINK_CMD_EXE = link.exe /nologo /incremental:no /fixed:no /subsystem:console + +LINK_CMD_EXE_REL = $(LINK_CMD_EXE) /release $(PDB_NONE) +LINK_CMD_EXE_DBG = $(LINK_CMD_EXE) /debug $(PDBTYPE_CONSOLIDATE) + +# --------------------------------- +# Configuration dependent settings +# --------------------------------- + +!IF "$(CFG)" == "lib-release" +CARES_TARGET = $(STA_LIB_REL).lib +CARES_CFLAGS = /DCARES_BUILDING_LIBRARY /DCARES_STATICLIB +CARES_LFLAGS = +SPROG_CFLAGS = /DCARES_STATICLIB +SPROG_LFLAGS = /libpath:$(CARES_OUTDIR) $(EX_LIBS_REL) $(STA_LIB_REL).lib +CARES_LINK = $(LINK_CMD_LIB) +SPROG_LINK = $(LINK_CMD_EXE_REL) +CC_CMD = $(CC_CMD_REL) +!ENDIF + +!IF "$(CFG)" == "lib-debug" +CARES_TARGET = $(STA_LIB_DBG).lib +CARES_CFLAGS = /DCARES_BUILDING_LIBRARY /DCARES_STATICLIB /DDEBUGBUILD +CARES_LFLAGS = +SPROG_CFLAGS = /DCARES_STATICLIB +SPROG_LFLAGS = /libpath:$(CARES_OUTDIR) $(EX_LIBS_DBG) $(STA_LIB_DBG).lib +CARES_LINK = $(LINK_CMD_LIB) +SPROG_LINK = $(LINK_CMD_EXE_DBG) +CC_CMD = $(CC_CMD_DBG) +!ENDIF + +!IF "$(CFG)" == "dll-release" +CARES_TARGET = $(DYN_LIB_REL).dll +CARES_CFLAGS = /DCARES_BUILDING_LIBRARY +CARES_LFLAGS = /release $(EX_LIBS_REL) /implib:$(CARES_OUTDIR)\$(IMP_LIB_REL).lib $(PDB_NONE) +SPROG_CFLAGS = +SPROG_LFLAGS = /libpath:$(CARES_OUTDIR) $(EX_LIBS_REL) $(IMP_LIB_REL).lib +CARES_LINK = $(LINK_CMD_DLL) +SPROG_LINK = $(LINK_CMD_EXE_REL) +CC_CMD = $(CC_CMD_REL) +USE_RES_FILE = TRUE +RC_CMD = $(RC_CMD_REL) +!ENDIF + +!IF "$(CFG)" == "dll-debug" +CARES_TARGET = $(DYN_LIB_DBG).dll +CARES_CFLAGS = /DCARES_BUILDING_LIBRARY /DDEBUGBUILD +CARES_LFLAGS = /debug $(EX_LIBS_DBG) /implib:$(CARES_OUTDIR)\$(IMP_LIB_DBG).lib /pdb:$(CARES_OUTDIR)\$(DYN_LIB_DBG).pdb $(PDBTYPE_CONSOLIDATE) +SPROG_CFLAGS = +SPROG_LFLAGS = /libpath:$(CARES_OUTDIR) $(EX_LIBS_DBG) $(IMP_LIB_DBG).lib +CARES_LINK = $(LINK_CMD_DLL) +SPROG_LINK = $(LINK_CMD_EXE_DBG) +CC_CMD = $(CC_CMD_DBG) +USE_RES_FILE = TRUE +RC_CMD = $(RC_CMD_DBG) +!ENDIF + +# -------------------------------------------- +# Makefile.inc provides lists of source files +# -------------------------------------------- + +!INCLUDE .\src\lib\Makefile.inc +!INCLUDE .\src\tools\Makefile.inc + +# ---------------------------- +# Build lists of object files +# ---------------------------- + +!IF "$(VALID_CFGSET)" == "TRUE" + +!IF [ECHO CARES_OBJS=^$(CARES_OBJDIR)\$(CSOURCES: = $(CARES_OBJDIR^)\) > .\cares_objs.inc] == 0 +!INCLUDE .\cares_objs.inc +!IF [DEL .\cares_objs.inc] +!ENDIF +!ELSE +!ERROR Problem generating CARES_OBJS list. +!ENDIF +CARES_OBJS = $(CARES_OBJS:.c=.obj) +!IF "$(USE_RES_FILE)" == "TRUE" +CARES_OBJS = $(CARES_OBJS) $(CARES_OBJDIR)\cares.res +!ENDIF + +!IF [ECHO PROG1_OBJS=^$(PROG1_OBJDIR)\$(SAMPLESOURCES: = $(PROG1_OBJDIR^)\) > .\prog1_objs.inc] == 0 +!INCLUDE .\prog1_objs.inc +!IF [DEL .\prog1_objs.inc] +!ENDIF +!ELSE +!ERROR Problem generating PROG1_OBJS list. +!ENDIF +PROG1_OBJS = $(PROG1_OBJS:.c=.obj) +PROG1_OBJS = $(PROG1_OBJS:/=\) +PROG1_OBJS = $(PROG1_OBJS) $(PROG1_OBJDIR)\acountry.obj + +!IF [ECHO PROG2_OBJS=^$(PROG2_OBJDIR)\$(SAMPLESOURCES: = $(PROG2_OBJDIR^)\) > .\prog2_objs.inc] == 0 +!INCLUDE .\prog2_objs.inc +!IF [DEL .\prog2_objs.inc] +!ENDIF +!ELSE +!ERROR Problem generating PROG2_OBJS list. +!ENDIF +PROG2_OBJS = $(PROG2_OBJS:.c=.obj) +PROG2_OBJS = $(PROG2_OBJS:/=\) +PROG2_OBJS = $(PROG2_OBJS) $(PROG2_OBJDIR)\adig.obj + +!IF [ECHO PROG3_OBJS=^$(PROG3_OBJDIR)\$(SAMPLESOURCES: = $(PROG3_OBJDIR^)\) > .\prog3_objs.inc] == 0 +!INCLUDE .\prog3_objs.inc +!IF [DEL .\prog3_objs.inc] +!ENDIF +!ELSE +!ERROR Problem generating PROG3_OBJS list. +!ENDIF +PROG3_OBJS = $(PROG3_OBJS:.c=.obj) +PROG3_OBJS = $(PROG3_OBJS:/=\) +PROG3_OBJS = $(PROG3_OBJS) $(PROG3_OBJDIR)\ahost.obj + +!ENDIF + + +# -------------------------------- +# Only our custom inference rules +# -------------------------------- + +.SUFFIXES: +.SUFFIXES: .c .rc + +{$(SRCDIR)\src\lib}.rc{$(CARES_OBJDIR)}.res: + $(RC_CMD) /Fo $@ $< + +{$(SRCDIR)\src\lib}.c{$(CARES_OBJDIR)}.obj: + $(CC_CMD) $(CC_CFLAGS) $(CARES_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< + +{$(SRCDIR)\src\tools}.c{$(PROG1_OBJDIR)}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< + +{$(SRCDIR)\src\tools}.c{$(PROG2_OBJDIR)}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< + +{$(SRCDIR)\src\tools}.c{$(PROG3_OBJDIR)}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$@ /Fd$(@D)\ /c $< + +# Hack Alert! we reference ../lib/ files in the Makefile.inc for tools as they +# share some files with the library itself. We need to hack around that here. + +{$(SRCDIR)\src\lib}.c{$(PROG1_OBJDIR)\..\lib}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG1_OBJDIR)\$(@F) /Fd$(PROG1_OBJDIR)\ /c $< + +{$(SRCDIR)\src\lib}.c{$(PROG2_OBJDIR)\..\lib}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG2_OBJDIR)\$(@F) /Fd$(PROG2_OBJDIR)\ /c $< + +{$(SRCDIR)\src\lib}.c{$(PROG3_OBJDIR)\..\lib}.obj: + $(CC_CMD) $(CC_CFLAGS) $(SPROG_CFLAGS) /Fo$(PROG3_OBJDIR)\$(@F) /Fd$(PROG3_OBJDIR)\ /c $< + +# ------------------------------------------------------------- # +# ------------------------------------------------------------- # +# Default target when no CFG library type has been specified, # +# results in building target ALL for all c-ares library types. # +# ------------------------------------------------------------- # +# ------------------------------------------------------------- # + +!IF "$(VALID_CFGSET)" == "FALSE" + +ALL: + $(MAKE) /NOLOGO /f .\Makefile.msvc CFG=lib-release ALL + $(MAKE) /NOLOGO /f .\Makefile.msvc CFG=lib-debug ALL + $(MAKE) /NOLOGO /f .\Makefile.msvc CFG=dll-release ALL + $(MAKE) /NOLOGO /f .\Makefile.msvc CFG=dll-debug ALL + +clean: + @-RMDIR /S /Q $(BASE_DIR) >NUL 2>&1 + +install: + @$(MAKE) /nologo /f .\Makefile.msvc CFG=lib-release install + @$(MAKE) /nologo /f .\Makefile.msvc CFG=lib-debug install + @$(MAKE) /nologo /f .\Makefile.msvc CFG=dll-release install + @$(MAKE) /nologo /f .\Makefile.msvc CFG=dll-debug install + +!ENDIF + +# --------------------------------------------------------------------- +# Targets only available when a proper CFG library type has been given +# --------------------------------------------------------------------- + +!IF "$(VALID_CFGSET)" == "TRUE" + +ALL: c-ares acountry adig ahost + @ + +# $(HHEADERS) $(CSOURCES) +c-ares: $(CARES_OBJDIR) $(CARES_OBJS) $(CARES_OUTDIR) + $(CARES_LINK) $(CARES_LFLAGS) /out:$(CARES_OUTDIR)\$(CARES_TARGET) $(CARES_OBJS) +! IF "$(USE_RES_FILE)" == "TRUE" + @if exist $(CARES_OUTDIR)\$(CARES_TARGET).manifest mt -nologo -manifest $(CARES_OUTDIR)\$(CARES_TARGET).manifest -outputresource:$(CARES_OUTDIR)\$(CARES_TARGET);2 +! ENDIF + +# acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +acountry: c-ares $(PROG1_OBJDIR) $(PROG1_OBJS) $(PROG1_OUTDIR) + $(SPROG_LINK) $(SPROG_LFLAGS) /out:$(PROG1_OUTDIR)\acountry.exe $(PROG1_OBJS:..\lib=) + @if exist $(PROG1_OUTDIR)\acountry.exe.manifest mt -nologo -manifest $(PROG1_OUTDIR)\acountry.exe.manifest -outputresource:$(PROG1_OUTDIR)\acountry.exe;1 + +# adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +adig: c-ares $(PROG2_OBJDIR) $(PROG2_OBJS) $(PROG2_OUTDIR) + $(SPROG_LINK) $(SPROG_LFLAGS) /out:$(PROG2_OUTDIR)\adig.exe $(PROG2_OBJS:..\lib=) + @if exist $(PROG2_OUTDIR)\adig.exe.manifest mt -nologo -manifest $(PROG2_OUTDIR)\adig.exe.manifest -outputresource:$(PROG2_OUTDIR)\adig.exe;1 + +# ahost.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +ahost: c-ares $(PROG3_OBJDIR) $(PROG3_OBJS) $(PROG3_OUTDIR) + $(SPROG_LINK) $(SPROG_LFLAGS) /out:$(PROG3_OUTDIR)\ahost.exe $(PROG3_OBJS:..\lib=) + @if exist $(PROG3_OUTDIR)\ahost.exe.manifest mt -nologo -manifest $(PROG3_OUTDIR)\ahost.exe.manifest -outputresource:$(PROG3_OUTDIR)\ahost.exe;1 + +$(CARES_OUTDIR): $(CARES_DIR) + @if not exist $(CARES_OUTDIR) mkdir $(CARES_OUTDIR) + +$(PROG1_OUTDIR): $(PROG1_DIR) + @if not exist $(PROG1_OUTDIR) mkdir $(PROG1_OUTDIR) + +$(PROG2_OUTDIR): $(PROG2_DIR) + @if not exist $(PROG2_OUTDIR) mkdir $(PROG2_OUTDIR) + +$(PROG3_OUTDIR): $(PROG3_DIR) + @if not exist $(PROG3_OUTDIR) mkdir $(PROG3_OUTDIR) + +$(CARES_OBJDIR): $(CARES_OUTDIR) + @if not exist $(CARES_OBJDIR) mkdir $(CARES_OBJDIR) + +$(PROG1_OBJDIR): $(PROG1_OUTDIR) + @if not exist $(PROG1_OBJDIR) mkdir $(PROG1_OBJDIR) + +$(PROG2_OBJDIR): $(PROG2_OUTDIR) + @if not exist $(PROG2_OBJDIR) mkdir $(PROG2_OBJDIR) + +$(PROG3_OBJDIR): $(PROG3_OUTDIR) + @if not exist $(PROG3_OBJDIR) mkdir $(PROG3_OBJDIR) + +clean: + @-RMDIR /S /Q $(CARES_OUTDIR) >NUL 2>&1 + @-RMDIR /S /Q $(PROG1_OUTDIR) >NUL 2>&1 + @-RMDIR /S /Q $(PROG2_OUTDIR) >NUL 2>&1 + @-RMDIR /S /Q $(PROG3_OUTDIR) >NUL 2>&1 + +install: + @if not exist $(CARES_OUTDIR)\$(CARES_TARGET) \ + $(MAKE) /f .\Makefile.msvc CFG=$(CFG) c-ares + @if not exist "$(INSTALL_DIR)" mkdir "$(INSTALL_DIR)" + @if not exist "$(INSTALL_DIR_LIB)" mkdir "$(INSTALL_DIR_LIB)" + @if not exist "$(INSTALL_DIR_INC)" mkdir "$(INSTALL_DIR_INC)" + @copy /y $(CARES_OUTDIR)\*.* "$(INSTALL_DIR_LIB)" >NUL + @copy /y $(SRCDIR)\include\ares.h "$(INSTALL_DIR_INC)" >NUL + @copy /y $(SRCDIR)\include\ares_build.h "$(INSTALL_DIR_INC)" >NUL + @copy /y $(SRCDIR)\include\ares_rules.h "$(INSTALL_DIR_INC)" >NUL + @copy /y $(SRCDIR)\include\ares_version.h "$(INSTALL_DIR_INC)" >NUL + @echo Installed c-ares $(CFG) + +!ENDIF + +$(BASE_DIR): + @if not exist $(BASE_DIR) mkdir $(BASE_DIR) + +$(CARES_DIR): $(BASE_DIR) + @if not exist $(CARES_DIR) mkdir $(CARES_DIR) + +$(PROG1_DIR): $(BASE_DIR) + @if not exist $(PROG1_DIR) mkdir $(PROG1_DIR) + +$(PROG2_DIR): $(BASE_DIR) + @if not exist $(PROG2_DIR) mkdir $(PROG2_DIR) + +$(PROG3_DIR): $(BASE_DIR) + @if not exist $(PROG3_DIR) mkdir $(PROG3_DIR) + +# End of Makefile.msvc diff --git a/deps/cares/Makefile.netware b/deps/cares/Makefile.netware new file mode 100644 index 00000000000000..e1a8a5523ca07b --- /dev/null +++ b/deps/cares/Makefile.netware @@ -0,0 +1,430 @@ +################################################################# +# +## Makefile for building libcares (NetWare version - gnu make) +## Use: make -f Makefile.netware +## +## Comments to: Guenter Knauf http://www.gknw.de/phpbb +# +################################################################# + +# Edit the path below to point to the base of your Novell NDK. +ifndef NDKBASE +NDKBASE = c:/novell +endif + +ifndef INSTDIR +INSTDIR = ../ares-$(LIBCARES_VERSION_STR)-bin-nw +endif + +# Edit the vars below to change NLM target settings. +TARGETS = adig.nlm ahost.nlm acountry.nlm +LTARGET = libcares.$(LIBEXT) +VERSION = $(LIBCARES_VERSION) +COPYR = $(LIBCARES_COPYRIGHT_STR) +DESCR = cURL $(subst .def,,$(notdir $@)) $(LIBCARES_VERSION_STR) - http://curl.haxx.se +MTSAFE = YES +STACK = 64000 +SCREEN = none +#EXPORTS = +# Comment the line below if you dont want to load protected automatically. +#LDRING = 3 + +# Edit the var below to point to your lib architecture. +ifndef LIBARCH +LIBARCH = LIBC +endif + +# must be equal to NDEBUG or DEBUG +ifndef DB +DB = NDEBUG +endif +# Optimization: -O or debugging: -g +ifeq ($(DB),NDEBUG) + OPT = -O2 + OBJDIR = release +else + OPT = -g + OBJDIR = debug +endif + +# Include the version info retrieved from curlver.h +-include $(OBJDIR)/version.inc + +# The following lines defines your compiler. +ifdef CWFolder + METROWERKS = $(CWFolder) +endif +ifdef METROWERKS + # MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support + MWCW_PATH = $(subst \,/,$(METROWERKS))/Novell Support/Metrowerks Support + CC = mwccnlm +else + CC = gcc +endif +# a native win32 awk can be downloaded from here: +# http://www.gknw.net/development/prgtools/awk-20070501.zip +AWK = awk +YACC = bison -y +CP = cp -afv +MKDIR = mkdir +# RM = rm -f +# if you want to mark the target as MTSAFE you will need a tool for +# generating the xdc data for the linker; here's a minimal tool: +# http://www.gknw.net/development/prgtools/mkxdc.zip +MPKXDC = mkxdc + +# Global flags for all compilers +CFLAGS += $(OPT) -D$(DB) -DNETWARE -DHAVE_CONFIG_H -nostdinc + +ifeq ($(CC),mwccnlm) +LD = mwldnlm +LDFLAGS = -nostdlib $(PRELUDE) $(OBJEXE) $(<:.def=.o) -o $@ -commandfile +AR = mwldnlm +ARFLAGS = -nostdlib -type library -o +LIBEXT = lib +#RANLIB = +CFLAGS += -msgstyle gcc -gccinc -inline off -opt nointrinsics -proc 586 +CFLAGS += -relax_pointers +#CFLAGS += -w on +ifeq ($(LIBARCH),LIBC) + PRELUDE = $(SDK_LIBC)/imports/libcpre.o + CFLAGS += -align 4 +else + # PRELUDE = $(SDK_CLIB)/imports/clibpre.o + # to avoid the __init_* / __deinit_* whoes dont use prelude from NDK + PRELUDE = "$(MWCW_PATH)/libraries/runtime/prelude.obj" + # CFLAGS += -include "$(MWCW_PATH)/headers/nlm_clib_prefix.h" + CFLAGS += -align 1 +endif +else +LD = nlmconv +LDFLAGS = -T +AR = ar +ARFLAGS = -cq +LIBEXT = a +RANLIB = ranlib +CFLAGS += -m32 +CFLAGS += -fno-builtin -fno-strict-aliasing +ifeq ($(findstring gcc,$(CC)),gcc) +CFLAGS += -fpcc-struct-return +endif +CFLAGS += -Wall # -pedantic +ifeq ($(LIBARCH),LIBC) + PRELUDE = $(SDK_LIBC)/imports/libcpre.gcc.o +else + # PRELUDE = $(SDK_CLIB)/imports/clibpre.gcc.o + # to avoid the __init_* / __deinit_* whoes dont use prelude from NDK + # http://www.gknw.net/development/mk_nlm/gcc_pre.zip + PRELUDE = $(NDK_ROOT)/pre/prelude.o + CFLAGS += -include $(NDKBASE)/nlmconv/genlm.h +endif +endif + +NDK_ROOT = $(NDKBASE)/ndk +SDK_CLIB = $(NDK_ROOT)/nwsdk +SDK_LIBC = $(NDK_ROOT)/libc + +ifeq ($(LIBARCH),LIBC) + INCLUDES += -I$(SDK_LIBC)/include + # INCLUDES += -I$(SDK_LIBC)/include/nks + # INCLUDES += -I$(SDK_LIBC)/include/winsock + CFLAGS += -D_POSIX_SOURCE +else + INCLUDES += -I$(SDK_CLIB)/include/nlm + # INCLUDES += -I$(SDK_CLIB)/include/nlm/obsolete + # INCLUDES += -I$(SDK_CLIB)/include +endif + +CFLAGS += -I. $(INCLUDES) + +ifeq ($(MTSAFE),YES) + XDCOPT = -n +endif +ifeq ($(MTSAFE),NO) + XDCOPT = -u +endif + +ifeq ($(findstring /sh,$(SHELL)),/sh) +DL = ' +#-include $(NDKBASE)/nlmconv/ncpfs.inc +endif + +# Makefile.inc provides the CSOURCES and HHEADERS defines +include Makefile.inc + +OBJLIB := $(patsubst %.c,$(OBJDIR)/%.o,$(strip $(CSOURCES))) +OBJEXE = $(OBJLIB) $(OBJDIR)/ares_getopt.o + +.PHONY: lib nlm prebuild dist install clean + +lib: prebuild $(LTARGET) + +nlm: prebuild $(TARGETS) + +prebuild: $(OBJDIR) ares_build.h $(OBJDIR)/version.inc ares_config.h + +install: $(INSTDIR) all + @$(CP) *.nlm $(INSTDIR) + @$(CP) ../CHANGES $(INSTDIR) + @$(CP) ../COPYING $(INSTDIR) + @$(CP) ../README $(INSTDIR) + @$(CP) ../RELEASE-NOTES $(INSTDIR) + +clean: + -$(RM) $(LTARGET) $(TARGETS) ares_config.h + -$(RM) -r $(OBJDIR) + -$(RM) -r arpa + +%.$(LIBEXT): $(OBJLIB) + @echo Creating $@ + @-$(RM) $@ + @$(AR) $(ARFLAGS) $@ $^ +ifdef RANLIB + @$(RANLIB) $@ +endif + +%.nlm: $(OBJDIR)/%.def $(OBJDIR)/%.o $(OBJDIR)/%.xdc $(OBJEXE) + @echo Linking $@ + @-$(RM) $@ + @$(LD) $(LDFLAGS) $< + +$(OBJDIR) $(INSTDIR): + @$(MKDIR) $@ + +$(OBJDIR)/%.o: %.c +# @echo Compiling $< + $(CC) $(CFLAGS) -c $< -o $@ + +$(OBJDIR)/version.inc: ares_version.h $(OBJDIR) + @echo Creating $@ + @$(AWK) -f get_ver.awk $< > $@ + +$(OBJDIR)/%.xdc: Makefile.netware + @echo Creating $@ + @$(MPKXDC) $(XDCOPT) $@ + +$(OBJDIR)/%.def: Makefile.netware + @echo Creating $@ + @echo $(DL)# DEF file for linking with $(LD)$(DL) > $@ + @echo $(DL)# Do not edit this file - it is created by make!$(DL) >> $@ + @echo $(DL)# All your changes will be lost!!$(DL) >> $@ + @echo $(DL)#$(DL) >> $@ + @echo $(DL)copyright "$(COPYR)"$(DL) >> $@ + @echo $(DL)description "$(DESCR)"$(DL) >> $@ + @echo $(DL)version $(VERSION)$(DL) >> $@ +ifdef NLMTYPE + @echo $(DL)type $(NLMTYPE)$(DL) >> $@ +endif +ifdef STACK + @echo $(DL)stack $(STACK)$(DL) >> $@ +endif +ifdef SCREEN + @echo $(DL)screenname "$(SCREEN)"$(DL) >> $@ +else + @echo $(DL)screenname "DEFAULT"$(DL) >> $@ +endif +ifeq ($(DB),DEBUG) + @echo $(DL)debug$(DL) >> $@ +endif + @echo $(DL)threadname "$^"$(DL) >> $@ +ifdef XDCOPT + @echo $(DL)xdcdata $(@:.def=.xdc)$(DL) >> $@ +endif +ifeq ($(LDRING),0) + @echo $(DL)flag_on 16$(DL) >> $@ +endif +ifeq ($(LDRING),3) + @echo $(DL)flag_on 512$(DL) >> $@ +endif +ifeq ($(LIBARCH),CLIB) + @echo $(DL)start _Prelude$(DL) >> $@ + @echo $(DL)exit _Stop$(DL) >> $@ + @echo $(DL)import @$(SDK_CLIB)/imports/clib.imp$(DL) >> $@ + @echo $(DL)import @$(SDK_CLIB)/imports/threads.imp$(DL) >> $@ + @echo $(DL)import @$(SDK_CLIB)/imports/nlmlib.imp$(DL) >> $@ + @echo $(DL)import @$(SDK_CLIB)/imports/socklib.imp$(DL) >> $@ + @echo $(DL)module clib$(DL) >> $@ +else + @echo $(DL)flag_on 64$(DL) >> $@ + @echo $(DL)pseudopreemption$(DL) >> $@ + @echo $(DL)start _LibCPrelude$(DL) >> $@ + @echo $(DL)exit _LibCPostlude$(DL) >> $@ + @echo $(DL)check _LibCCheckUnload$(DL) >> $@ + @echo $(DL)import @$(SDK_LIBC)/imports/libc.imp$(DL) >> $@ + @echo $(DL)import @$(SDK_LIBC)/imports/netware.imp$(DL) >> $@ + @echo $(DL)module libc$(DL) >> $@ +endif +ifdef MODULES + @echo $(DL)module $(MODULES)$(DL) >> $@ +endif +ifdef EXPORTS + @echo $(DL)export $(EXPORTS)$(DL) >> $@ +endif +ifdef IMPORTS + @echo $(DL)import $(IMPORTS)$(DL) >> $@ +endif +ifeq ($(LD),nlmconv) + @echo $(DL)input $(PRELUDE)$(DL) >> $@ + @echo $(DL)input $(OBJEXE)$(DL) >> $@ + @echo $(DL)input $(@:.def=.o)$(DL) >> $@ + @echo $(DL)output $(notdir $(@:.def=.nlm))$(DL) >> $@ +endif + +ares_config.h: Makefile.netware + @echo Creating $@ + @echo $(DL)/* $@ for NetWare target.$(DL) > $@ + @echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@ + @echo $(DL)** All your changes will be lost!!$(DL) >> $@ + @echo $(DL)*/$(DL) >> $@ + @echo $(DL)#ifndef NETWARE$(DL) >> $@ + @echo $(DL)#error This $(notdir $@) is created for NetWare platform!$(DL) >> $@ + @echo $(DL)#endif$(DL) >> $@ + @echo $(DL)#define VERSION "$(LIBCARES_VERSION_STR)"$(DL) >> $@ + @echo $(DL)#define PACKAGE_BUGREPORT "a suitable curl mailing list => http://curl.haxx.se/mail/"$(DL) >> $@ +ifeq ($(LIBARCH),CLIB) + @echo $(DL)#define OS "i586-pc-clib-NetWare"$(DL) >> $@ + @echo $(DL)#define HAVE_STRICMP 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRNICMP 1$(DL) >> $@ + @echo $(DL)#define NETDB_USE_INTERNET 1$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG2 char *$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG3 int$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_RETV int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG2 char$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG3 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG6 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_RETV int$(DL) >> $@ + @echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG2 char *$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG3 int$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_RETV int$(DL) >> $@ +else + @echo $(DL)#define OS "i586-pc-libc-NetWare"$(DL) >> $@ + @echo $(DL)#define HAVE_DLFCN_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_DLOPEN 1$(DL) >> $@ + @echo $(DL)#define HAVE_FTRUNCATE 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETTIMEOFDAY 1$(DL) >> $@ + @echo $(DL)#define HAVE_INTTYPES_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_LONGLONG 1$(DL) >> $@ + @echo $(DL)#define HAVE_STDINT_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRCASECMP 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRLCAT 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRLCPY 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRTOLL 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_PARAM_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_SELECT_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_TERMIOS_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_AF_INET6 1$(DL) >> $@ + @echo $(DL)#define HAVE_PF_INET6 1$(DL) >> $@ + @echo $(DL)#define HAVE_FREEADDRINFO 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETADDRINFO 1$(DL) >> $@ + @echo $(DL)#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRUCT_IN6_ADDR 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRUCT_SOCKADDR_IN6 1$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG2 void *$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG3 size_t$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define RECV_TYPE_RETV ssize_t$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG2 void$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG3 size_t$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG5 struct sockaddr$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG6 size_t$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_RETV ssize_t$(DL) >> $@ + @echo $(DL)#define RECVFROM_TYPE_ARG2_IS_VOID 1$(DL) >> $@ + @echo $(DL)#define SEND_QUAL_ARG2$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG1 int$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG2 void *$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG3 size_t$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_ARG4 int$(DL) >> $@ + @echo $(DL)#define SEND_TYPE_RETV ssize_t$(DL) >> $@ +endif + @echo $(DL)#define HAVE_ARPA_INET_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_ASSERT_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_ERRNO_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_ERR_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_FCNTL_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETENV 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETHOSTBYADDR 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETHOSTBYNAME 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETHOSTNAME 1$(DL) >> $@ + @echo $(DL)#define HAVE_GETPROTOBYNAME 1$(DL) >> $@ + @echo $(DL)#define HAVE_GMTIME_R 1$(DL) >> $@ + @echo $(DL)#define HAVE_INET_ADDR 1$(DL) >> $@ + @echo $(DL)#define HAVE_IOCTL 1$(DL) >> $@ + @echo $(DL)#define HAVE_IOCTL_FIONBIO 1$(DL) >> $@ + @echo $(DL)#define HAVE_LIMITS_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_LL 1$(DL) >> $@ + @echo $(DL)#define HAVE_LOCALTIME_R 1$(DL) >> $@ + @echo $(DL)#define HAVE_MALLOC_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_NETINET_IN_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_RECV 1$(DL) >> $@ + @echo $(DL)#define HAVE_RECVFROM 1$(DL) >> $@ + @echo $(DL)#define HAVE_SELECT 1$(DL) >> $@ + @echo $(DL)#define HAVE_SEND 1$(DL) >> $@ + @echo $(DL)#define HAVE_SETJMP_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SIGNAL 1$(DL) >> $@ + @echo $(DL)#define HAVE_SIGNAL_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SIG_ATOMIC_T 1$(DL) >> $@ + @echo $(DL)#define HAVE_SOCKET 1$(DL) >> $@ + @echo $(DL)#define HAVE_STDLIB_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRDUP 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRFTIME 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRING_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRSTR 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRUCT_ADDRINFO 1$(DL) >> $@ + @echo $(DL)#define HAVE_STRUCT_TIMEVAL 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_IOCTL_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_STAT_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_TIME_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_TIME_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_UNAME 1$(DL) >> $@ + @echo $(DL)#define HAVE_UNISTD_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_UTIME 1$(DL) >> $@ + @echo $(DL)#define HAVE_UTIME_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_WRITEV 1$(DL) >> $@ + @echo $(DL)#define RETSIGTYPE void$(DL) >> $@ + @echo $(DL)#define STDC_HEADERS 1$(DL) >> $@ + @echo $(DL)#define TIME_WITH_SYS_TIME 1$(DL) >> $@ +ifdef NW_WINSOCK + @echo $(DL)#define HAVE_CLOSESOCKET 1$(DL) >> $@ +else + @echo $(DL)#define HAVE_SYS_TYPES_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_SOCKET_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_SYS_SOCKIO_H 1$(DL) >> $@ + @echo $(DL)#define HAVE_NETDB_H 1$(DL) >> $@ +endif + @echo $(DL)#ifdef __GNUC__$(DL) >> $@ + @echo $(DL)#define HAVE_VARIADIC_MACROS_GCC 1$(DL) >> $@ + @echo $(DL)#else$(DL) >> $@ + @echo $(DL)#define HAVE_VARIADIC_MACROS_C99 1$(DL) >> $@ + @echo $(DL)#endif$(DL) >> $@ + +FORCE: ; + +ares_build.h: Makefile.netware FORCE + @echo Creating $@ + @echo $(DL)/* $@ intended for NetWare target.$(DL) > $@ + @echo $(DL)** Do not edit this file - it is created by make!$(DL) >> $@ + @echo $(DL)** All your changes will be lost!!$(DL) >> $@ + @echo $(DL)*/$(DL) >> $@ + @echo $(DL)#ifndef NETWARE$(DL) >> $@ + @echo $(DL)#error This $(notdir $@) is created for NetWare platform!$(DL) >> $@ + @echo $(DL)#endif$(DL) >> $@ + @echo $(DL)#ifndef __CARES_BUILD_H$(DL) >> $@ + @echo $(DL)#define __CARES_BUILD_H$(DL) >> $@ +ifeq ($(LIBARCH),CLIB) + @echo $(DL)#define CARES_TYPEOF_ARES_SOCKLEN_T int$(DL) >> $@ +else + @echo $(DL)#define CARES_TYPEOF_ARES_SOCKLEN_T unsigned int$(DL) >> $@ +endif + @echo $(DL)typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t;$(DL) >> $@ + @echo $(DL)#endif /* __CARES_BUILD_H */$(DL) >> $@ diff --git a/deps/cares/README.cares b/deps/cares/README.cares index 4dee46eabf8f4b..ec809ab948367c 100644 --- a/deps/cares/README.cares +++ b/deps/cares/README.cares @@ -12,4 +12,4 @@ compatible with ares: a new name makes that more obvious to the public. The original libares was distributed at ftp://athena-dist.mit.edu:pub/ATHENA/ares (which seems to not be alive anymore). A local copy of the original ares package is kept here: -https://c-ares.haxx.se/download/ares-1.1.1.tar.gz +https://c-ares.org/download/ares-1.1.1.tar.gz diff --git a/deps/cares/README.md b/deps/cares/README.md index 148338f9e18081..24a96c453dd0ff 100644 --- a/deps/cares/README.md +++ b/deps/cares/README.md @@ -1,7 +1,7 @@ c-ares ====== -[![Build Status](https://travis-ci.org/c-ares/c-ares.svg?branch=master)](https://travis-ci.org/c-ares/c-ares) +[![Build Status](https://api.cirrus-ci.com/github/c-ares/c-ares.svg)](https://cirrus-ci.com/github/c-ares/c-ares) [![Windows Build Status](https://ci.appveyor.com/api/projects/status/aevgc5914tm72pvs/branch/master?svg=true)](https://ci.appveyor.com/project/c-ares/c-ares/branch/master) [![Coverage Status](https://coveralls.io/repos/c-ares/c-ares/badge.svg?branch=master&service=github)](https://coveralls.io/github/c-ares/c-ares?branch=master) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/291/badge)](https://bestpractices.coreinfrastructure.org/projects/291) @@ -14,19 +14,19 @@ perform multiple DNS queries in parallel. The primary examples of such applications are servers which communicate with multiple clients and programs with graphical user interfaces. -The full source code is available in the ['c-ares' release archives](https://c-ares.haxx.se/download/), -and in a git repository: http://github.com/c-ares/c-ares. See the +The full source code is available in the ['c-ares' release archives](https://c-ares.org/download/), +and in a git repository: https://github.com/c-ares/c-ares. See the [INSTALL.md](INSTALL.md) file for build information. If you find bugs, correct flaws, have questions or have comments in general in regard to c-ares (or by all means the original ares too), get in touch with us -on the c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares +on the c-ares mailing list: https://lists.haxx.se/listinfo/c-ares c-ares is of course distributed under the same MIT-style license as the original ares. You'll find all c-ares details and news here: - https://c-ares.haxx.se/ + https://c-ares.org/ Notes for c-ares hackers diff --git a/deps/cares/RELEASE-NOTES b/deps/cares/RELEASE-NOTES index a006ed4c964e71..d095749deab951 100644 --- a/deps/cares/RELEASE-NOTES +++ b/deps/cares/RELEASE-NOTES @@ -1,79 +1,85 @@ -c-ares version 1.17.2 +c-ares version 1.18.1 + +This is an urgent bugfix release for a regression made in 1.18.0. + +Bug fixes: + o ares_getaddrinfo() would return ai_addrlen of 16 for ipv6 + adddresses rather than the sizeof(struct sockaddr_in6) -This is a security and bugfix release. It addresses a few security related -issues along with various bugfixes mostly related to portability. -Security: - o NodeJS passes NULL for addr and 0 for addrlen to ares_parse_ptr_reply() on - systems where malloc(0) returns NULL. This would cause a crash. [8] - o When building c-ares with CMake, the RANDOM_FILE would not be set and - therefore downgrade to the less secure random number generator [12] - o If ares_getaddrinfo() was terminated by an ares_destroy(), it would cause - a crash [13] - o Crash in sortaddrinfo() if the list size equals 0 due to an unexpected - DNS response [14] - o Expand number of escaped characters in DNS replies as per RFC1035 5.1 to - prevent spoofing [16], [17] - o Perform validation on hostnames to prevent possible XSS due to applications - not performing valiation themselves [18] + +c-ares version 1.18.0 + +This is a feature and bugfix release. It addresses a couple of new feature +requests as well as a couple of bug fixes. Changes: - o Use non-blocking /dev/urandom for random data to prevent early startup - performance issues [5] - o z/OS port [6] - o ares_malloc(0) is now defined behavior (returns NULL) rather than - system-specific to catch edge cases [7] + o Add support for URI(Uniform Resource Identifier) records via + ares_parse_uri_reply() [1] + o Provide ares_nameser.h as a public interface as needed by NodeJS [5] + o Update URLs from c-ares.haxx.se to c-ares.org [9] + o During a domain search, treat ARES_ENODATA as ARES_NXDOMAIN so that the + search process will continue to the next domain in the search. [11] + o Turn ares_gethostbyname() into a wrapper for ares_getaddrinfo() as they + followed very similar code paths and ares_gethostbyaddr() has some more + desirable features such as priority sorting and parallel queries for + AF_UNSPEC. [12] + o ares_getaddrinfo() now contains a name element in the address info + structure as the last element. This is not an API or ABI break due to + the structure always being internally allocated and it being the last + element. [12] + o ares_parse_a_reply() and ares_parse_aaaa_reply() were nearly identical, those + now use the same helper functions for parsing rather than having their own + code. [12] + o RFC6761 Section 6.3 says "localhost" lookups need to be special cased to + return loopback addresses, and not forward queries to recursive dns servers. + On Windows this now returns all loopback addresses, on other systems it + returns 127.0.0.1 or ::1 always, and will never forward a request for + "localhost" to outside DNS servers. [13] + o Haiki: port [14] Bug fixes: - o Fuzz testing files were not distributed with official archives [1] - o Building tests should not force building of static libraries except on - Windows [2] - o Windows builds of the tools would fail if built as static due to a missing - CARES_STATICLIB definition [3] - o Relative headers must use double quotes to prevent pulling in a system - library [4] - o Fix OpenBSD building by implementing portability updates for including - arpa/nameser.h [9] - o Fix building out-of-tree for autotools [10] - o Make install on MacOS/iOS with CMake was missing the bundle destination so - libraries weren't actually installed [11] - o Fix retrieving DNS server configuration on MacOS and iOS if the configuration - did not include search domains [15] - o ares_parse_a_reply and ares_parse_aaa_reply were erroneously using strdup() - instead of ares_strdup() [19] - + o add build to .gitignore [2] + o z/OS minor update, add missing semicolon in ares_init.c [3] + o Fix building when latest ax_code_coverage.m4 is imported [4] + o Work around autotools 'error: too many loops' and other newer autotools + import related bugs. + o MinGW cross builds need advapi32 link as lower case [6] + o Cygwin build fix due to containing both socket.h and winsock2.h [7] + o ares_expand_name should allow underscores (_) as SRV records legitimately use + them [8] + o Allow '/' as a valid character for a returned name for CNAME in-addr.arpa + delegation [10] + o ares_getaddrinfo() was not honoring HOSTALIASES [12] + o ares_getaddrinfo() had some test cases disabled due to a bug in the test + framework itself which has now been resolved [12] + o Due to Travis-CI becoming unfriendly to open-source, Cirrus-CI has now been + brought online for automated unit testing. Thanks go to these friendly people for their efforts and contributions: - Anton Danielsson (@anton-danielsson) + Biswapriyo Nath (@Biswa96) Brad House (@bradh352) + Daniel Bevenius (@danbev) Daniel Stenberg (@bagder) Dhrumil Rana (@dhrumilrana) - František Dvořák (@valtri) - @halx99 - Jay Freeman (@saurik) - Jean-pierre Cartal (@jeanpierrecartal) - Michael Kourlas - Philipp Jeitner - @vburdo -(11 contributors) + Felix Yan (@felixonmars) + Jérôme Duval (@korli) + Martin Holeš (@martin-256) + Sinan Kaya +(9 contributors) References to bug reports and discussions on issues: - [1] = https://github.com/c-ares/c-ares/issues/379 - [2] = https://github.com/c-ares/c-ares/issues/380 - [3] = https://github.com/c-ares/c-ares/issues/384 - [4] = https://github.com/c-ares/c-ares/pull/386 - [5] = https://github.com/c-ares/c-ares/pull/391 - [6] = https://github.com/c-ares/c-ares/pull/390 - [7] = https://github.com/c-ares/c-ares/commit/485fb66 - [8] = https://github.com/c-ares/c-ares/issues/392 - [9] = https://github.com/c-ares/c-ares/issues/388 - [10] = https://github.com/c-ares/c-ares/pull/394 - [11] = https://github.com/c-ares/c-ares/pull/395 - [12] = https://github.com/c-ares/c-ares/pull/397 - [13] = https://github.com/c-ares/c-ares/commit/df94703 - [14] = https://github.com/c-ares/c-ares/pull/400 - [15] = https://github.com/c-ares/c-ares/pull/401 - [16] = https://github.com/c-ares/c-ares/commit/362f91d - [17] = https://github.com/c-ares/c-ares/commit/44c009b - [18] = https://github.com/c-ares/c-ares/commit/c9b6c60 - [19] = https://github.com/c-ares/c-ares/pull/408 + [1] = https://github.com/c-ares/c-ares/pull/411 + [2] = https://github.com/c-ares/c-ares/pull/410 + [3] = https://github.com/c-ares/c-ares/pull/414 + [4] = https://github.com/c-ares/c-ares/pull/418 + [5] = https://github.com/c-ares/c-ares/pull/417 + [6] = https://github.com/c-ares/c-ares/pull/420 + [7] = https://github.com/c-ares/c-ares/pull/422 + [8] = https://github.com/c-ares/c-ares/issues/424 + [9] = https://github.com/c-ares/c-ares/issues/423 + [10] = https://github.com/c-ares/c-ares/issues/427 + [11] = https://github.com/c-ares/c-ares/issues/426 + [12] = https://github.com/c-ares/c-ares/pull/428 + [13] = https://github.com/c-ares/c-ares/pull/430 + [14] = https://github.com/c-ares/c-ares/pull/431 diff --git a/deps/cares/SECURITY.md b/deps/cares/SECURITY.md new file mode 100644 index 00000000000000..2a04a8dbcc3557 --- /dev/null +++ b/deps/cares/SECURITY.md @@ -0,0 +1,100 @@ +c-ares security +=============== + +This document is intended to provide guidance on how security vulnerabilities +should be handled in the c-ares project. + +Publishing Information +---------------------- + +All known and public c-ares vulnerabilities will be listed on [the c-ares web +site](https://c-ares.org/vulns.html). + +Security vulnerabilities should not be entered in the project's public bug +tracker unless the necessary configuration is in place to limit access to the +issue to only the reporter and the project's security team. + +Vulnerability Handling +---------------------- + +The typical process for handling a new security vulnerability is as follows. + +No information should be made public about a vulnerability until it is +formally announced at the end of this process. That means, for example that a +bug tracker entry must NOT be created to track the issue since that will make +the issue public and it should not be discussed on the project's public +mailing list. Also messages associated with any commits should not make any +reference to the security nature of the commit if done prior to the public +announcement. + +- The person discovering the issue, the reporter, reports the vulnerability + privately to `c-ares-security@haxx.se`. That's an email alias that reaches a + handful of selected and trusted people. + +- Messages that do not relate to the reporting or managing of an undisclosed + security vulnerability in c-ares are ignored and no further action is + required. + +- A person in the security team sends an e-mail to the original reporter to + acknowledge the report. + +- The security team investigates the report and either rejects it or accepts + it. + +- If the report is rejected, the team writes to the reporter to explain why. + +- If the report is accepted, the team writes to the reporter to let him/her + know it is accepted and that they are working on a fix. + +- The security team discusses the problem, works out a fix, considers the + impact of the problem and suggests a release schedule. This discussion + should involve the reporter as much as possible. + +- The release of the information should be "as soon as possible" and is most + often synced with an upcoming release that contains the fix. If the + reporter, or anyone else, thinks the next planned release is too far away + then a separate earlier release for security reasons should be considered. + +- Write a security advisory draft about the problem that explains what the + problem is, its impact, which versions it affects, solutions or + workarounds, when the release is out and make sure to credit all + contributors properly. + +- Request a CVE number from + [distros@openwall](http://oss-security.openwall.org/wiki/mailing-lists/distros) + when also informing and preparing them for the upcoming public security + vulnerability announcement - attach the advisory draft for information. Note + that 'distros' won't accept an embargo longer than 19 days. + +- Update the "security advisory" with the CVE number. + +- The security team commits the fix in a private branch. The commit message + should ideally contain the CVE number. This fix is usually also distributed + to the 'distros' mailing list to allow them to use the fix prior to the + public announcement. + +- At the day of the next release, the private branch is merged into the master + branch and pushed. Once pushed, the information is accessible to the public + and the actual release should follow suit immediately afterwards. + +- The project team creates a release that includes the fix. + +- The project team announces the release and the vulnerability to the world in + the same manner we always announce releases. It gets sent to the c-ares + mailing list and the oss-security mailing list. + +- The security web page on the web site should get the new vulnerability + mentioned. + +C-ARES-SECURITY (at haxx dot se) +-------------------------------- + +Who is on this list? There are a couple of criteria you must meet, and then we +might ask you to join the list or you can ask to join it. It really isn't very +formal. We basically only require that you have a long-term presence in the +c-ares project and you have shown an understanding for the project and its way +of working. You must've been around for a good while and you should have no +plans in vanishing in the near future. + +We do not make the list of partipants public mostly because it tends to vary +somewhat over time and a list somewhere will only risk getting outdated. diff --git a/deps/cares/acinclude.m4 b/deps/cares/acinclude.m4 new file mode 100644 index 00000000000000..c255198e5f452c --- /dev/null +++ b/deps/cares/acinclude.m4 @@ -0,0 +1,1915 @@ + + +dnl CURL_CHECK_DEF (SYMBOL, [INCLUDES], [SILENT]) +dnl ------------------------------------------------- +dnl Use the C preprocessor to find out if the given object-style symbol +dnl is defined and get its expansion. This macro will not use default +dnl includes even if no INCLUDES argument is given. This macro will run +dnl silently when invoked with three arguments. If the expansion would +dnl result in a set of double-quoted strings the returned expansion will +dnl actually be a single double-quoted string concatenating all them. + +AC_DEFUN([CURL_CHECK_DEF], [ + AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl + AS_VAR_PUSHDEF([ac_Def], [curl_cv_def_$1])dnl + if test -z "$SED"; then + AC_MSG_ERROR([SED not set. Cannot continue without SED being set.]) + fi + if test -z "$GREP"; then + AC_MSG_ERROR([GREP not set. Cannot continue without GREP being set.]) + fi + ifelse($3,,[AC_MSG_CHECKING([for preprocessor definition of $1])]) + tmp_exp="" + AC_PREPROC_IFELSE([ + AC_LANG_SOURCE( +ifelse($2,,,[$2])[[ +#ifdef $1 +CURL_DEF_TOKEN $1 +#endif + ]]) + ],[ + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[[ ]][[ ]]*//' 2>/dev/null | \ + "$SED" 's/[["]][[ ]]*[["]]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "$1"; then + tmp_exp="" + fi + ]) + if test -z "$tmp_exp"; then + AS_VAR_SET(ac_HaveDef, no) + ifelse($3,,[AC_MSG_RESULT([no])]) + else + AS_VAR_SET(ac_HaveDef, yes) + AS_VAR_SET(ac_Def, $tmp_exp) + ifelse($3,,[AC_MSG_RESULT([$tmp_exp])]) + fi + AS_VAR_POPDEF([ac_Def])dnl + AS_VAR_POPDEF([ac_HaveDef])dnl +]) + + +dnl CURL_CHECK_DEF_CC (SYMBOL, [INCLUDES], [SILENT]) +dnl ------------------------------------------------- +dnl Use the C compiler to find out only if the given symbol is defined +dnl or not, this can not find out its expansion. This macro will not use +dnl default includes even if no INCLUDES argument is given. This macro +dnl will run silently when invoked with three arguments. + +AC_DEFUN([CURL_CHECK_DEF_CC], [ + AS_VAR_PUSHDEF([ac_HaveDef], [curl_cv_have_def_$1])dnl + ifelse($3,,[AC_MSG_CHECKING([for compiler definition of $1])]) + AC_COMPILE_IFELSE([ + AC_LANG_SOURCE( +ifelse($2,,,[$2])[[ +int main (void) +{ +#ifdef $1 + return 0; +#else + force compilation error +#endif +} + ]]) + ],[ + tst_symbol_defined="yes" + ],[ + tst_symbol_defined="no" + ]) + if test "$tst_symbol_defined" = "yes"; then + AS_VAR_SET(ac_HaveDef, yes) + ifelse($3,,[AC_MSG_RESULT([yes])]) + else + AS_VAR_SET(ac_HaveDef, no) + ifelse($3,,[AC_MSG_RESULT([no])]) + fi + AS_VAR_POPDEF([ac_HaveDef])dnl +]) + + +dnl CARES_CHECK_LIB_XNET +dnl ------------------------------------------------- +dnl Verify if X/Open network library is required. + +AC_DEFUN([CARES_CHECK_LIB_XNET], [ + AC_MSG_CHECKING([if X/Open network library is required]) + tst_lib_xnet_required="no" + AC_COMPILE_IFELSE([ + AC_LANG_SOURCE([[ +int main (void) +{ +#if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) + return 0; +#elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) + return 0; +#else + force compilation error +#endif +} + ]]) + ],[ + tst_lib_xnet_required="yes" + LIBS="$LIBS -lxnet" + ]) + AC_MSG_RESULT([$tst_lib_xnet_required]) +]) + + +dnl CARES_CHECK_AIX_ALL_SOURCE +dnl ------------------------------------------------- +dnl Provides a replacement of traditional AC_AIX with +dnl an uniform behaviour across all autoconf versions, +dnl and with our own placement rules. + +AC_DEFUN([CARES_CHECK_AIX_ALL_SOURCE], [ + AH_VERBATIM([_ALL_SOURCE], + [/* Define to 1 if OS is AIX. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif]) + AC_BEFORE([$0], [AC_SYS_LARGEFILE])dnl + AC_BEFORE([$0], [CARES_CONFIGURE_REENTRANT])dnl + AC_MSG_CHECKING([if OS is AIX (to define _ALL_SOURCE)]) + AC_EGREP_CPP([yes_this_is_aix],[ +#ifdef _AIX + yes_this_is_aix +#endif + ],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(_ALL_SOURCE) + ],[ + AC_MSG_RESULT([no]) + ]) +]) + + +dnl CURL_CHECK_HEADER_WINDOWS +dnl ------------------------------------------------- +dnl Check for compilable and valid windows.h header + +AC_DEFUN([CURL_CHECK_HEADER_WINDOWS], [ + AC_CACHE_CHECK([for windows.h], [ac_cv_header_windows_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include + ]],[[ +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINDOWS_H shall not be defined. +#else + int dummy=2*WINVER; +#endif + ]]) + ],[ + ac_cv_header_windows_h="yes" + ],[ + ac_cv_header_windows_h="no" + ]) + ]) + case "$ac_cv_header_windows_h" in + yes) + AC_DEFINE_UNQUOTED(HAVE_WINDOWS_H, 1, + [Define to 1 if you have the windows.h header file.]) + AC_DEFINE_UNQUOTED(WIN32_LEAN_AND_MEAN, 1, + [Define to avoid automatic inclusion of winsock.h]) + ;; + esac +]) + + +dnl CURL_CHECK_NATIVE_WINDOWS +dnl ------------------------------------------------- +dnl Check if building a native Windows target + +AC_DEFUN([CURL_CHECK_NATIVE_WINDOWS], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl + AC_CACHE_CHECK([whether build target is a native Windows one], [ac_cv_native_windows], [ + if test "$ac_cv_header_windows_h" = "no"; then + ac_cv_native_windows="no" + else + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ +#if defined(__MINGW32__) || defined(__MINGW32CE__) || \ + (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))) + int dummy=1; +#else + Not a native Windows build target. +#endif + ]]) + ],[ + ac_cv_native_windows="yes" + ],[ + ac_cv_native_windows="no" + ]) + fi + ]) + AM_CONDITIONAL(DOING_NATIVE_WINDOWS, test "x$ac_cv_native_windows" = xyes) +]) + + +dnl CURL_CHECK_HEADER_WINSOCK +dnl ------------------------------------------------- +dnl Check for compilable and valid winsock.h header + +AC_DEFUN([CURL_CHECK_HEADER_WINSOCK], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl + AC_CACHE_CHECK([for winsock.h], [ac_cv_header_winsock_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + ]],[[ +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINSOCK_H shall not be defined. +#else + int dummy=WSACleanup(); +#endif + ]]) + ],[ + ac_cv_header_winsock_h="yes" + ],[ + ac_cv_header_winsock_h="no" + ]) + ]) + case "$ac_cv_header_winsock_h" in + yes) + AC_DEFINE_UNQUOTED(HAVE_WINSOCK_H, 1, + [Define to 1 if you have the winsock.h header file.]) + ;; + esac +]) + + +dnl CURL_CHECK_HEADER_WINSOCK2 +dnl ------------------------------------------------- +dnl Check for compilable and valid winsock2.h header + +AC_DEFUN([CURL_CHECK_HEADER_WINSOCK2], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINDOWS])dnl + AC_CACHE_CHECK([for winsock2.h], [ac_cv_header_winsock2_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + ]],[[ +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WINSOCK2_H shall not be defined. +#else + int dummy=2*IPPROTO_ESP; +#endif + ]]) + ],[ + ac_cv_header_winsock2_h="yes" + ],[ + ac_cv_header_winsock2_h="no" + ]) + ]) + case "$ac_cv_header_winsock2_h" in + yes) + AC_DEFINE_UNQUOTED(HAVE_WINSOCK2_H, 1, + [Define to 1 if you have the winsock2.h header file.]) + ;; + esac +]) + + +dnl CURL_CHECK_HEADER_WS2TCPIP +dnl ------------------------------------------------- +dnl Check for compilable and valid ws2tcpip.h header + +AC_DEFUN([CURL_CHECK_HEADER_WS2TCPIP], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl + AC_CACHE_CHECK([for ws2tcpip.h], [ac_cv_header_ws2tcpip_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include +#include + ]],[[ +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WS2TCPIP_H shall not be defined. +#else + int dummy=2*IP_PKTINFO; +#endif + ]]) + ],[ + ac_cv_header_ws2tcpip_h="yes" + ],[ + ac_cv_header_ws2tcpip_h="no" + ]) + ]) + case "$ac_cv_header_ws2tcpip_h" in + yes) + AC_DEFINE_UNQUOTED(HAVE_WS2TCPIP_H, 1, + [Define to 1 if you have the ws2tcpip.h header file.]) + ;; + esac +]) + + +dnl CURL_CHECK_HEADER_MALLOC +dnl ------------------------------------------------- +dnl Check for compilable and valid malloc.h header, +dnl and check if it is needed even with stdlib.h + +AC_DEFUN([CURL_CHECK_HEADER_MALLOC], [ + AC_CACHE_CHECK([for malloc.h], [ac_cv_header_malloc_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + ]]) + ],[ + ac_cv_header_malloc_h="yes" + ],[ + ac_cv_header_malloc_h="no" + ]) + ]) + if test "$ac_cv_header_malloc_h" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_MALLOC_H, 1, + [Define to 1 if you have the malloc.h header file.]) + # + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + ]]) + ],[ + curl_cv_need_header_malloc_h="no" + ],[ + curl_cv_need_header_malloc_h="yes" + ]) + # + case "$curl_cv_need_header_malloc_h" in + yes) + AC_DEFINE_UNQUOTED(NEED_MALLOC_H, 1, + [Define to 1 if you need the malloc.h header file even with stdlib.h]) + ;; + esac + fi +]) + + +dnl CURL_CHECK_HEADER_MEMORY +dnl ------------------------------------------------- +dnl Check for compilable and valid memory.h header, +dnl and check if it is needed even with stdlib.h for +dnl memory related functions. + +AC_DEFUN([CURL_CHECK_HEADER_MEMORY], [ + AC_CACHE_CHECK([for memory.h], [ac_cv_header_memory_h], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + ]]) + ],[ + ac_cv_header_memory_h="yes" + ],[ + ac_cv_header_memory_h="no" + ]) + ]) + if test "$ac_cv_header_memory_h" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_MEMORY_H, 1, + [Define to 1 if you have the memory.h header file.]) + # + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + ]]) + ],[ + curl_cv_need_header_memory_h="no" + ],[ + curl_cv_need_header_memory_h="yes" + ]) + # + case "$curl_cv_need_header_memory_h" in + yes) + AC_DEFINE_UNQUOTED(NEED_MEMORY_H, 1, + [Define to 1 if you need the memory.h header file even with stdlib.h]) + ;; + esac + fi +]) + + +dnl CURL_CHECK_FUNC_GETNAMEINFO +dnl ------------------------------------------------- +dnl Test if the getnameinfo function is available, +dnl and check the types of five of its arguments. +dnl If the function succeeds HAVE_GETNAMEINFO will be +dnl defined, defining the types of the arguments in +dnl GETNAMEINFO_TYPE_ARG1, GETNAMEINFO_TYPE_ARG2, +dnl GETNAMEINFO_TYPE_ARG46 and GETNAMEINFO_TYPE_ARG7, +dnl and also defining the type qualifier of first +dnl argument in GETNAMEINFO_QUAL_ARG1. + +AC_DEFUN([CURL_CHECK_FUNC_GETNAMEINFO], [ + AC_REQUIRE([CURL_CHECK_HEADER_WS2TCPIP])dnl + AC_CHECK_HEADERS(sys/types.h sys/socket.h netdb.h) + # + AC_MSG_CHECKING([for getnameinfo]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getnameinfo]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_getnameinfo="yes" + ],[ + AC_MSG_RESULT([no]) + curl_cv_getnameinfo="no" + ]) + # + if test "$curl_cv_getnameinfo" != "yes"; then + AC_MSG_CHECKING([deeper for getnameinfo]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + getnameinfo(); + ]]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_getnameinfo="yes" + ],[ + AC_MSG_RESULT([but still no]) + curl_cv_getnameinfo="no" + ]) + fi + # + if test "$curl_cv_getnameinfo" != "yes"; then + AC_MSG_CHECKING([deeper and deeper for getnameinfo]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#endif + ]],[[ + getnameinfo(0, 0, 0, 0, 0, 0, 0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_getnameinfo="yes" + ],[ + AC_MSG_RESULT([but still no]) + curl_cv_getnameinfo="no" + ]) + fi + # + if test "$curl_cv_getnameinfo" = "yes"; then + AC_CACHE_CHECK([types of arguments for getnameinfo], + [curl_cv_func_getnameinfo_args], [ + curl_cv_func_getnameinfo_args="unknown" + for gni_arg1 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do + for gni_arg2 in 'socklen_t' 'size_t' 'int'; do + for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do + for gni_arg7 in 'int' 'unsigned int'; do + if test "$curl_cv_func_getnameinfo_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#if (!defined(_WIN32_WINNT)) || (_WIN32_WINNT < 0x0501) +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#define GNICALLCONV WSAAPI +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#define GNICALLCONV +#endif + extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, + char *, $gni_arg46, + char *, $gni_arg46, + $gni_arg7); + ]],[[ + $gni_arg2 salen=0; + $gni_arg46 hostlen=0; + $gni_arg46 servlen=0; + $gni_arg7 flags=0; + int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); + ]]) + ],[ + curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" + ]) + fi + done + done + done + done + ]) # AC-CACHE-CHECK + if test "$curl_cv_func_getnameinfo_args" = "unknown"; then + AC_MSG_WARN([Cannot find proper types to use for getnameinfo args]) + AC_MSG_WARN([HAVE_GETNAMEINFO will not be defined]) + else + gni_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_getnameinfo_args" | sed 's/\*/\*/g'` + IFS=$gni_prev_IFS + shift + # + gni_qual_type_arg1=$[1] + # + AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG2, $[2], + [Define to the type of arg 2 for getnameinfo.]) + AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG46, $[3], + [Define to the type of args 4 and 6 for getnameinfo.]) + AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG7, $[4], + [Define to the type of arg 7 for getnameinfo.]) + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$gni_qual_type_arg1" in + const*) + gni_qual_arg1=const + gni_type_arg1=`echo $gni_qual_type_arg1 | sed 's/^const //'` + ;; + *) + gni_qual_arg1= + gni_type_arg1=$gni_qual_type_arg1 + ;; + esac + # + AC_DEFINE_UNQUOTED(GETNAMEINFO_QUAL_ARG1, $gni_qual_arg1, + [Define to the type qualifier of arg 1 for getnameinfo.]) + AC_DEFINE_UNQUOTED(GETNAMEINFO_TYPE_ARG1, $gni_type_arg1, + [Define to the type of arg 1 for getnameinfo.]) + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + AC_DEFINE_UNQUOTED(HAVE_GETNAMEINFO, 1, + [Define to 1 if you have the getnameinfo function.]) + ac_cv_func_getnameinfo="yes" + fi + fi +]) + + +dnl TYPE_SOCKADDR_STORAGE +dnl ------------------------------------------------- +dnl Check for struct sockaddr_storage. Most IPv6-enabled +dnl hosts have it, but AIX 4.3 is one known exception. + +AC_DEFUN([TYPE_SOCKADDR_STORAGE], +[ + AC_CHECK_TYPE([struct sockaddr_storage], + AC_DEFINE(HAVE_STRUCT_SOCKADDR_STORAGE, 1, + [if struct sockaddr_storage is defined]), , + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + ]) +]) + + +dnl CURL_CHECK_NI_WITHSCOPEID +dnl ------------------------------------------------- +dnl Check for working NI_WITHSCOPEID in getnameinfo() + +AC_DEFUN([CURL_CHECK_NI_WITHSCOPEID], [ + AC_REQUIRE([CURL_CHECK_FUNC_GETNAMEINFO])dnl + AC_REQUIRE([TYPE_SOCKADDR_STORAGE])dnl + AC_CHECK_HEADERS(stdio.h sys/types.h sys/socket.h \ + netdb.h netinet/in.h arpa/inet.h) + # + AC_CACHE_CHECK([for working NI_WITHSCOPEID], + [ac_cv_working_ni_withscopeid], [ + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_STDIO_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif + ]],[[ +#if defined(NI_WITHSCOPEID) && defined(HAVE_GETNAMEINFO) +#ifdef HAVE_STRUCT_SOCKADDR_STORAGE + struct sockaddr_storage sa; +#else + unsigned char sa[256]; +#endif + char hostbuf[NI_MAXHOST]; + int rc; + GETNAMEINFO_TYPE_ARG2 salen = (GETNAMEINFO_TYPE_ARG2)sizeof(sa); + GETNAMEINFO_TYPE_ARG46 hostlen = (GETNAMEINFO_TYPE_ARG46)sizeof(hostbuf); + GETNAMEINFO_TYPE_ARG7 flags = NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; + int fd = socket(AF_INET6, SOCK_STREAM, 0); + if(fd < 0) { + perror("socket()"); + return 1; /* Error creating socket */ + } + rc = getsockname(fd, (GETNAMEINFO_TYPE_ARG1)&sa, &salen); + if(rc) { + perror("getsockname()"); + return 2; /* Error retrieving socket name */ + } + rc = getnameinfo((GETNAMEINFO_TYPE_ARG1)&sa, salen, hostbuf, hostlen, NULL, 0, flags); + if(rc) { + printf("rc = %s\n", gai_strerror(rc)); + return 3; /* Error translating socket address */ + } + return 0; /* Ok, NI_WITHSCOPEID works */ +#else + return 4; /* Error, NI_WITHSCOPEID not defined or no getnameinfo() */ +#endif + ]]) # AC-LANG-PROGRAM + ],[ + # Exit code == 0. Program worked. + ac_cv_working_ni_withscopeid="yes" + ],[ + # Exit code != 0. Program failed. + ac_cv_working_ni_withscopeid="no" + ],[ + # Program is not run when cross-compiling. So we assume + # NI_WITHSCOPEID will work if we are able to compile it. + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include +#include +#include + ]],[[ + unsigned int dummy= NI_NUMERICHOST | NI_NUMERICSERV | NI_WITHSCOPEID; + ]]) + ],[ + ac_cv_working_ni_withscopeid="yes" + ],[ + ac_cv_working_ni_withscopeid="no" + ]) # AC-COMPILE-IFELSE + ]) # AC-RUN-IFELSE + ]) # AC-CACHE-CHECK + case "$ac_cv_working_ni_withscopeid" in + yes) + AC_DEFINE(HAVE_NI_WITHSCOPEID, 1, + [Define to 1 if NI_WITHSCOPEID exists and works.]) + ;; + esac +]) + + +dnl CURL_CHECK_FUNC_RECV +dnl ------------------------------------------------- +dnl Test if the socket recv() function is available, +dnl and check its return type and the types of its +dnl arguments. If the function succeeds HAVE_RECV +dnl will be defined, defining the types of the arguments +dnl in RECV_TYPE_ARG1, RECV_TYPE_ARG2, RECV_TYPE_ARG3 +dnl and RECV_TYPE_ARG4, defining the type of the function +dnl return value in RECV_TYPE_RETV. + +AC_DEFUN([CURL_CHECK_FUNC_RECV], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl + AC_CHECK_HEADERS(sys/types.h sys/socket.h) + # + AC_MSG_CHECKING([for recv]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ]],[[ + recv(0, 0, 0, 0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_recv="yes" + ],[ + AC_MSG_RESULT([no]) + curl_cv_recv="no" + ]) + # + if test "$curl_cv_recv" = "yes"; then + AC_CACHE_CHECK([types of args and return type for recv], + [curl_cv_func_recv_args], [ + curl_cv_func_recv_args="unknown" + for recv_retv in 'int' 'ssize_t'; do + for recv_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for recv_arg2 in 'char *' 'void *'; do + for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for recv_arg4 in 'int' 'unsigned int'; do + if test "$curl_cv_func_recv_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define RECVCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define RECVCALLCONV +#endif + extern $recv_retv RECVCALLCONV + recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); + ]],[[ + $recv_arg1 s=0; + $recv_arg2 buf=0; + $recv_arg3 len=0; + $recv_arg4 flags=0; + $recv_retv res = recv(s, buf, len, flags); + ]]) + ],[ + curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" + ]) + fi + done + done + done + done + done + ]) # AC-CACHE-CHECK + if test "$curl_cv_func_recv_args" = "unknown"; then + AC_MSG_ERROR([Cannot find proper types to use for recv args]) + else + recv_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_recv_args" | sed 's/\*/\*/g'` + IFS=$recv_prev_IFS + shift + # + AC_DEFINE_UNQUOTED(RECV_TYPE_ARG1, $[1], + [Define to the type of arg 1 for recv.]) + AC_DEFINE_UNQUOTED(RECV_TYPE_ARG2, $[2], + [Define to the type of arg 2 for recv.]) + AC_DEFINE_UNQUOTED(RECV_TYPE_ARG3, $[3], + [Define to the type of arg 3 for recv.]) + AC_DEFINE_UNQUOTED(RECV_TYPE_ARG4, $[4], + [Define to the type of arg 4 for recv.]) + AC_DEFINE_UNQUOTED(RECV_TYPE_RETV, $[5], + [Define to the function return type for recv.]) + # + AC_DEFINE_UNQUOTED(HAVE_RECV, 1, + [Define to 1 if you have the recv function.]) + ac_cv_func_recv="yes" + fi + else + AC_MSG_ERROR([Unable to link function recv]) + fi +]) + + +dnl CURL_CHECK_FUNC_SEND +dnl ------------------------------------------------- +dnl Test if the socket send() function is available, +dnl and check its return type and the types of its +dnl arguments. If the function succeeds HAVE_SEND +dnl will be defined, defining the types of the arguments +dnl in SEND_TYPE_ARG1, SEND_TYPE_ARG2, SEND_TYPE_ARG3 +dnl and SEND_TYPE_ARG4, defining the type of the function +dnl return value in SEND_TYPE_RETV, and also defining the +dnl type qualifier of second argument in SEND_QUAL_ARG2. + +AC_DEFUN([CURL_CHECK_FUNC_SEND], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl + AC_CHECK_HEADERS(sys/types.h sys/socket.h) + # + AC_MSG_CHECKING([for send]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ]],[[ + send(0, 0, 0, 0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_send="yes" + ],[ + AC_MSG_RESULT([no]) + curl_cv_send="no" + ]) + # + if test "$curl_cv_send" = "yes"; then + AC_CACHE_CHECK([types of args and return type for send], + [curl_cv_func_send_args], [ + curl_cv_func_send_args="unknown" + for send_retv in 'int' 'ssize_t'; do + for send_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do + for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for send_arg4 in 'int' 'unsigned int'; do + if test "$curl_cv_func_send_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define SENDCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define SENDCALLCONV +#endif + extern $send_retv SENDCALLCONV + send($send_arg1, $send_arg2, $send_arg3, $send_arg4); + ]],[[ + $send_arg1 s=0; + $send_arg3 len=0; + $send_arg4 flags=0; + $send_retv res = send(s, 0, len, flags); + ]]) + ],[ + curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" + ]) + fi + done + done + done + done + done + ]) # AC-CACHE-CHECK + if test "$curl_cv_func_send_args" = "unknown"; then + AC_MSG_ERROR([Cannot find proper types to use for send args]) + else + send_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_send_args" | sed 's/\*/\*/g'` + IFS=$send_prev_IFS + shift + # + send_qual_type_arg2=$[2] + # + AC_DEFINE_UNQUOTED(SEND_TYPE_ARG1, $[1], + [Define to the type of arg 1 for send.]) + AC_DEFINE_UNQUOTED(SEND_TYPE_ARG3, $[3], + [Define to the type of arg 3 for send.]) + AC_DEFINE_UNQUOTED(SEND_TYPE_ARG4, $[4], + [Define to the type of arg 4 for send.]) + AC_DEFINE_UNQUOTED(SEND_TYPE_RETV, $[5], + [Define to the function return type for send.]) + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$send_qual_type_arg2" in + const*) + send_qual_arg2=const + send_type_arg2=`echo $send_qual_type_arg2 | sed 's/^const //'` + ;; + *) + send_qual_arg2= + send_type_arg2=$send_qual_type_arg2 + ;; + esac + # + AC_DEFINE_UNQUOTED(SEND_QUAL_ARG2, $send_qual_arg2, + [Define to the type qualifier of arg 2 for send.]) + AC_DEFINE_UNQUOTED(SEND_TYPE_ARG2, $send_type_arg2, + [Define to the type of arg 2 for send.]) + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + AC_DEFINE_UNQUOTED(HAVE_SEND, 1, + [Define to 1 if you have the send function.]) + ac_cv_func_send="yes" + fi + else + AC_MSG_ERROR([Unable to link function send]) + fi +]) + + +dnl CURL_CHECK_FUNC_RECVFROM +dnl ------------------------------------------------- +dnl Test if the socket recvfrom() function is available, +dnl and check its return type and the types of its +dnl arguments. If the function succeeds HAVE_RECVFROM +dnl will be defined, defining the types of the arguments +dnl in RECVFROM_TYPE_ARG1, RECVFROM_TYPE_ARG2, and so on +dnl to RECVFROM_TYPE_ARG6, defining also the type of the +dnl function return value in RECVFROM_TYPE_RETV. +dnl Notice that the types returned for pointer arguments +dnl will actually be the type pointed by the pointer. + +AC_DEFUN([CURL_CHECK_FUNC_RECVFROM], [ + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl + AC_CHECK_HEADERS(sys/types.h sys/socket.h) + # + AC_MSG_CHECKING([for recvfrom]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ]],[[ + recvfrom(0, 0, 0, 0, 0, 0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + curl_cv_recvfrom="yes" + ],[ + AC_MSG_RESULT([no]) + curl_cv_recvfrom="no" + ]) + # + if test "$curl_cv_recvfrom" = "yes"; then + AC_CACHE_CHECK([types of args and return type for recvfrom], + [curl_cv_func_recvfrom_args], [ + curl_cv_func_recvfrom_args="unknown" + for recvfrom_retv in 'int' 'ssize_t'; do + for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for recvfrom_arg2 in 'char *' 'void *'; do + for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for recvfrom_arg4 in 'int' 'unsigned int'; do + for recvfrom_arg5 in 'struct sockaddr *' 'void *' 'const struct sockaddr *'; do + for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do + if test "$curl_cv_func_recvfrom_args" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define RECVFROMCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define RECVFROMCALLCONV +#endif + extern $recvfrom_retv RECVFROMCALLCONV + recvfrom($recvfrom_arg1, $recvfrom_arg2, + $recvfrom_arg3, $recvfrom_arg4, + $recvfrom_arg5, $recvfrom_arg6); + ]],[[ + $recvfrom_arg1 s=0; + $recvfrom_arg2 buf=0; + $recvfrom_arg3 len=0; + $recvfrom_arg4 flags=0; + $recvfrom_arg5 addr=0; + $recvfrom_arg6 addrlen=0; + $recvfrom_retv res=0; + res = recvfrom(s, buf, len, flags, addr, addrlen); + ]]) + ],[ + curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" + ]) + fi + done + done + done + done + done + done + done + ]) # AC-CACHE-CHECK + # Nearly last minute change for this release starts here + AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, + [Define to 1 if you have the recvfrom function.]) + ac_cv_func_recvfrom="yes" + # Nearly last minute change for this release ends here + if test "$curl_cv_func_recvfrom_args" = "unknown"; then + AC_MSG_WARN([Cannot find proper types to use for recvfrom args]) + else + recvfrom_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` + IFS=$recvfrom_prev_IFS + shift + # + recvfrom_ptrt_arg2=$[2] + recvfrom_qual_ptrt_arg5=$[5] + recvfrom_ptrt_arg6=$[6] + # + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG1, $[1], + [Define to the type of arg 1 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG3, $[3], + [Define to the type of arg 3 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG4, $[4], + [Define to the type of arg 4 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_RETV, $[7], + [Define to the function return type for recvfrom.]) + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$recvfrom_qual_ptrt_arg5" in + const*) + recvfrom_qual_arg5=const + recvfrom_ptrt_arg5=`echo $recvfrom_qual_ptrt_arg5 | sed 's/^const //'` + ;; + *) + recvfrom_qual_arg5= + recvfrom_ptrt_arg5=$recvfrom_qual_ptrt_arg5 + ;; + esac + # + recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` + recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` + recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` + # + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2, $recvfrom_type_arg2, + [Define to the type pointed by arg 2 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_QUAL_ARG5, $recvfrom_qual_arg5, + [Define to the type qualifier pointed by arg 5 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5, $recvfrom_type_arg5, + [Define to the type pointed by arg 5 for recvfrom.]) + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6, $recvfrom_type_arg6, + [Define to the type pointed by arg 6 for recvfrom.]) + # + if test "$recvfrom_type_arg2" = "void"; then + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG2_IS_VOID, 1, + [Define to 1 if the type pointed by arg 2 for recvfrom is void.]) + fi + if test "$recvfrom_type_arg5" = "void"; then + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG5_IS_VOID, 1, + [Define to 1 if the type pointed by arg 5 for recvfrom is void.]) + fi + if test "$recvfrom_type_arg6" = "void"; then + AC_DEFINE_UNQUOTED(RECVFROM_TYPE_ARG6_IS_VOID, 1, + [Define to 1 if the type pointed by arg 6 for recvfrom is void.]) + fi + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + AC_DEFINE_UNQUOTED(HAVE_RECVFROM, 1, + [Define to 1 if you have the recvfrom function.]) + ac_cv_func_recvfrom="yes" + fi + else + AC_MSG_WARN([Unable to link function recvfrom]) + AC_MSG_WARN([Your system will be vulnerable to some forms of DNS cache poisoning]) + fi +]) + + +dnl CURL_CHECK_MSG_NOSIGNAL +dnl ------------------------------------------------- +dnl Check for MSG_NOSIGNAL + +AC_DEFUN([CURL_CHECK_MSG_NOSIGNAL], [ + AC_CHECK_HEADERS(sys/types.h sys/socket.h) + AC_CACHE_CHECK([for MSG_NOSIGNAL], [ac_cv_msg_nosignal], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ]],[[ + int flag=MSG_NOSIGNAL; + ]]) + ],[ + ac_cv_msg_nosignal="yes" + ],[ + ac_cv_msg_nosignal="no" + ]) + ]) + case "$ac_cv_msg_nosignal" in + yes) + AC_DEFINE_UNQUOTED(HAVE_MSG_NOSIGNAL, 1, + [Define to 1 if you have the MSG_NOSIGNAL flag.]) + ;; + esac +]) + + +dnl CURL_CHECK_STRUCT_TIMEVAL +dnl ------------------------------------------------- +dnl Check for timeval struct + +AC_DEFUN([CURL_CHECK_STRUCT_TIMEVAL], [ + AC_REQUIRE([AC_HEADER_TIME])dnl + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK])dnl + AC_REQUIRE([CURL_CHECK_HEADER_WINSOCK2])dnl + AC_CHECK_HEADERS(sys/types.h sys/time.h time.h sys/socket.h) + AC_CACHE_CHECK([for struct timeval], [ac_cv_struct_timeval], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif + ]],[[ + struct timeval ts; + ts.tv_sec = 0; + ts.tv_usec = 0; + ]]) + ],[ + ac_cv_struct_timeval="yes" + ],[ + ac_cv_struct_timeval="no" + ]) + ]) + case "$ac_cv_struct_timeval" in + yes) + AC_DEFINE_UNQUOTED(HAVE_STRUCT_TIMEVAL, 1, + [Define to 1 if you have the timeval struct.]) + ;; + esac +]) + + +dnl TYPE_SIG_ATOMIC_T +dnl ------------------------------------------------- +dnl Check if the sig_atomic_t type is available, and +dnl verify if it is already defined as volatile. + +AC_DEFUN([TYPE_SIG_ATOMIC_T], [ + AC_CHECK_HEADERS(signal.h) + AC_CHECK_TYPE([sig_atomic_t],[ + AC_DEFINE(HAVE_SIG_ATOMIC_T, 1, + [Define to 1 if sig_atomic_t is an available typedef.]) + ], ,[ +#ifdef HAVE_SIGNAL_H +#include +#endif + ]) + case "$ac_cv_type_sig_atomic_t" in + yes) + # + AC_MSG_CHECKING([if sig_atomic_t is already defined as volatile]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_SIGNAL_H +#include +#endif + ]],[[ + static volatile sig_atomic_t dummy = 0; + ]]) + ],[ + AC_MSG_RESULT([no]) + ac_cv_sig_atomic_t_volatile="no" + ],[ + AC_MSG_RESULT([yes]) + ac_cv_sig_atomic_t_volatile="yes" + ]) + # + if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then + AC_DEFINE(HAVE_SIG_ATOMIC_T_VOLATILE, 1, + [Define to 1 if sig_atomic_t is already defined as volatile.]) + fi + ;; + esac +]) + + +dnl TYPE_IN_ADDR_T +dnl ------------------------------------------------- +dnl Check for in_addr_t: it is used to receive the return code of inet_addr() +dnl and a few other things. + +AC_DEFUN([TYPE_IN_ADDR_T], [ + AC_CHECK_TYPE([in_addr_t], ,[ + dnl in_addr_t not available + AC_CACHE_CHECK([for in_addr_t equivalent], + [curl_cv_in_addr_t_equiv], [ + curl_cv_in_addr_t_equiv="unknown" + for t in "unsigned long" int size_t unsigned long; do + if test "$curl_cv_in_addr_t_equiv" = "unknown"; then + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + ]],[[ + $t data = inet_addr ("1.2.3.4"); + ]]) + ],[ + curl_cv_in_addr_t_equiv="$t" + ]) + fi + done + ]) + case "$curl_cv_in_addr_t_equiv" in + unknown) + AC_MSG_ERROR([Cannot find a type to use in place of in_addr_t]) + ;; + *) + AC_DEFINE_UNQUOTED(in_addr_t, $curl_cv_in_addr_t_equiv, + [Type to use in place of in_addr_t when system does not provide it.]) + ;; + esac + ],[ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + ]) +]) + + +dnl CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC +dnl ------------------------------------------------- +dnl Check if monotonic clock_gettime is available. + +AC_DEFUN([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC], [ + AC_REQUIRE([AC_HEADER_TIME])dnl + AC_CHECK_HEADERS(sys/types.h sys/time.h time.h) + AC_MSG_CHECKING([for monotonic clock_gettime]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + ]],[[ + struct timespec ts; + (void)clock_gettime(CLOCK_MONOTONIC, &ts); + ]]) + ],[ + AC_MSG_RESULT([yes]) + ac_cv_func_clock_gettime="yes" + ],[ + AC_MSG_RESULT([no]) + ac_cv_func_clock_gettime="no" + ]) + dnl Definition of HAVE_CLOCK_GETTIME_MONOTONIC is intentionally postponed + dnl until library linking and run-time checks for clock_gettime succeed. +]) + + +dnl CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC +dnl ------------------------------------------------- +dnl If monotonic clock_gettime is available then, +dnl check and prepended to LIBS any needed libraries. + +AC_DEFUN([CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC], [ + AC_REQUIRE([CURL_CHECK_FUNC_CLOCK_GETTIME_MONOTONIC])dnl + # + if test "$ac_cv_func_clock_gettime" = "yes"; then + # + AC_MSG_CHECKING([for clock_gettime in libraries]) + # + curl_cv_save_LIBS="$LIBS" + curl_cv_gclk_LIBS="unknown" + # + for x_xlibs in '' '-lrt' '-lposix4' ; do + if test "$curl_cv_gclk_LIBS" = "unknown"; then + if test -z "$x_xlibs"; then + LIBS="$curl_cv_save_LIBS" + else + LIBS="$x_xlibs $curl_cv_save_LIBS" + fi + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + ]],[[ + struct timespec ts; + (void)clock_gettime(CLOCK_MONOTONIC, &ts); + ]]) + ],[ + curl_cv_gclk_LIBS="$x_xlibs" + ]) + fi + done + # + LIBS="$curl_cv_save_LIBS" + # + case X-"$curl_cv_gclk_LIBS" in + X-unknown) + AC_MSG_RESULT([cannot find clock_gettime]) + AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) + ac_cv_func_clock_gettime="no" + ;; + X-) + AC_MSG_RESULT([no additional lib required]) + ac_cv_func_clock_gettime="yes" + ;; + *) + if test -z "$curl_cv_save_LIBS"; then + LIBS="$curl_cv_gclk_LIBS" + else + LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" + fi + AC_MSG_RESULT([$curl_cv_gclk_LIBS]) + ac_cv_func_clock_gettime="yes" + ;; + esac + # + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$ac_cv_func_clock_gettime" = "yes"; then + AC_MSG_CHECKING([if monotonic clock_gettime works]) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + ]],[[ + struct timespec ts; + if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) + exit(0); + else + exit(1); + ]]) + ],[ + AC_MSG_RESULT([yes]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_WARN([HAVE_CLOCK_GETTIME_MONOTONIC will not be defined]) + ac_cv_func_clock_gettime="no" + LIBS="$curl_cv_save_LIBS" + ]) + fi + # + case "$ac_cv_func_clock_gettime" in + yes) + AC_DEFINE_UNQUOTED(HAVE_CLOCK_GETTIME_MONOTONIC, 1, + [Define to 1 if you have the clock_gettime function and monotonic timer.]) + ;; + esac + # + fi + # +]) + + +dnl CARES_CHECK_LIBS_CONNECT +dnl ------------------------------------------------- +dnl Verify if network connect function is already available +dnl using current libraries or if another one is required. + +AC_DEFUN([CARES_CHECK_LIBS_CONNECT], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_MSG_CHECKING([for connect in libraries]) + tst_connect_save_LIBS="$LIBS" + tst_connect_need_LIBS="unknown" + for tst_lib in '' '-lsocket' ; do + if test "$tst_connect_need_LIBS" = "unknown"; then + LIBS="$tst_lib $tst_connect_save_LIBS" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + #ifndef HAVE_WINDOWS_H + int connect(int, void*, int); + #endif + ]],[[ + if(0 != connect(0, 0, 0)) + return 1; + ]]) + ],[ + tst_connect_need_LIBS="$tst_lib" + ]) + fi + done + LIBS="$tst_connect_save_LIBS" + # + case X-"$tst_connect_need_LIBS" in + X-unknown) + AC_MSG_RESULT([cannot find connect]) + AC_MSG_ERROR([cannot find connect function in libraries.]) + ;; + X-) + AC_MSG_RESULT([yes]) + ;; + *) + AC_MSG_RESULT([$tst_connect_need_LIBS]) + LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" + ;; + esac +]) + + +dnl CARES_DEFINE_UNQUOTED (VARIABLE, [VALUE]) +dnl ------------------------------------------------- +dnl Like AC_DEFINE_UNQUOTED this macro will define a C preprocessor +dnl symbol that can be further used in custom template configuration +dnl files. This macro, unlike AC_DEFINE_UNQUOTED, does not use a third +dnl argument for the description. Symbol definitions done with this +dnl macro are intended to be exclusively used in handcrafted *.h.in +dnl template files. Contrary to what AC_DEFINE_UNQUOTED does, this one +dnl prevents autoheader generation and insertion of symbol template +dnl stub and definition into the first configuration header file. Do +dnl not use this macro as a replacement for AC_DEFINE_UNQUOTED, each +dnl one serves different functional needs. + +AC_DEFUN([CARES_DEFINE_UNQUOTED], [ +cat >>confdefs.h <<_EOF +[@%:@define] $1 ifelse($#, 2, [$2], 1) +_EOF +]) + +dnl CARES_CONFIGURE_ARES_SOCKLEN_T +dnl ------------------------------------------------- +dnl Find out suitable ares_socklen_t data type definition and size, making +dnl appropriate definitions for template file ares_build.h.in +dnl to properly configure and use the library. +dnl +dnl The need for the ares_socklen_t definition arises mainly to properly +dnl interface HP-UX systems which on one hand have a typedef'ed socklen_t +dnl data type which is 32 or 64-Bit wide depending on the data model being +dnl used, and that on the other hand is only actually used when interfacing +dnl the X/Open sockets provided in the xnet library. + +AC_DEFUN([CARES_CONFIGURE_ARES_SOCKLEN_T], [ + AC_REQUIRE([CARES_INCLUDES_WS2TCPIP])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + AC_REQUIRE([CARES_PREPROCESS_CALLCONV])dnl + # + AC_MSG_CHECKING([for ares_socklen_t data type]) + cares_typeof_ares_socklen_t="unknown" + for arg1 in int SOCKET; do + for arg2 in 'struct sockaddr' void; do + for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do + if test "$cares_typeof_ares_socklen_t" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_preprocess_callconv + extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *); + ]],[[ + $t *lenptr = 0; + if(0 != getpeername(0, 0, lenptr)) + return 1; + ]]) + ],[ + cares_typeof_ares_socklen_t="$t" + ]) + fi + done + done + done + for t in socklen_t int; do + if test "$cares_typeof_ares_socklen_t" = "void"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_socket + typedef $t ares_socklen_t; + ]],[[ + ares_socklen_t dummy; + ]]) + ],[ + cares_typeof_ares_socklen_t="$t" + ]) + fi + done + AC_MSG_RESULT([$cares_typeof_ares_socklen_t]) + if test "$cares_typeof_ares_socklen_t" = "void" || + test "$cares_typeof_ares_socklen_t" = "unknown"; then + AC_MSG_ERROR([cannot find data type for ares_socklen_t.]) + fi + # + AC_MSG_CHECKING([size of ares_socklen_t]) + cares_sizeof_ares_socklen_t="unknown" + cares_pull_headers_socklen_t="unknown" + if test "$ac_cv_header_ws2tcpip_h" = "yes"; then + tst_pull_header_checks='none ws2tcpip' + tst_size_checks='4' + else + tst_pull_header_checks='none systypes syssocket' + tst_size_checks='4 8 2' + fi + for tst_size in $tst_size_checks; do + for tst_pull_headers in $tst_pull_header_checks; do + if test "$cares_sizeof_ares_socklen_t" = "unknown"; then + case $tst_pull_headers in + ws2tcpip) + tmp_includes="$cares_includes_ws2tcpip" + ;; + systypes) + tmp_includes="$cares_includes_sys_types" + ;; + syssocket) + tmp_includes="$cares_includes_sys_socket" + ;; + *) + tmp_includes="" + ;; + esac + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $tmp_includes + typedef $cares_typeof_ares_socklen_t ares_socklen_t; + typedef char dummy_arr[sizeof(ares_socklen_t) == $tst_size ? 1 : -1]; + ]],[[ + ares_socklen_t dummy; + ]]) + ],[ + cares_sizeof_ares_socklen_t="$tst_size" + cares_pull_headers_socklen_t="$tst_pull_headers" + ]) + fi + done + done + AC_MSG_RESULT([$cares_sizeof_ares_socklen_t]) + if test "$cares_sizeof_ares_socklen_t" = "unknown"; then + AC_MSG_ERROR([cannot find out size of ares_socklen_t.]) + fi + # + case $cares_pull_headers_socklen_t in + ws2tcpip) + CARES_DEFINE_UNQUOTED([CARES_PULL_WS2TCPIP_H]) + ;; + systypes) + CARES_DEFINE_UNQUOTED([CARES_PULL_SYS_TYPES_H]) + ;; + syssocket) + CARES_DEFINE_UNQUOTED([CARES_PULL_SYS_TYPES_H]) + CARES_DEFINE_UNQUOTED([CARES_PULL_SYS_SOCKET_H]) + ;; + esac + CARES_DEFINE_UNQUOTED([CARES_TYPEOF_ARES_SOCKLEN_T], [$cares_typeof_ares_socklen_t]) + CARES_DEFINE_UNQUOTED([CARES_SIZEOF_ARES_SOCKLEN_T], [$cares_sizeof_ares_socklen_t]) +]) + + +dnl This macro determines if the specified struct exists in the specified file +dnl Syntax: +dnl CARES_CHECK_STRUCT(headers, struct name, if found, [if not found]) + +AC_DEFUN([CARES_CHECK_STRUCT], [ + AC_MSG_CHECKING([for struct $2]) + AC_TRY_COMPILE([$1], + [ + struct $2 struct_instance; + ], ac_struct="yes", ac_found="no") + if test "$ac_struct" = "yes" ; then + AC_MSG_RESULT(yes) + $3 + else + AC_MSG_RESULT(no) + $4 + fi +]) + +dnl This macro determines if the specified constant exists in the specified file +dnl Syntax: +dnl CARES_CHECK_CONSTANT(headers, constant name, if found, [if not found]) + +AC_DEFUN([CARES_CHECK_CONSTANT], [ + AC_MSG_CHECKING([for $2]) + AC_EGREP_CPP(VARIABLEWASDEFINED, + [ + $1 + + #ifdef $2 + VARIABLEWASDEFINED + #else + NJET + #endif + ], ac_constant="yes", ac_constant="no" + ) + if test "$ac_constant" = "yes" ; then + AC_MSG_RESULT(yes) + $3 + else + AC_MSG_RESULT(no) + $4 + fi +]) + diff --git a/deps/cares/aclocal.m4 b/deps/cares/aclocal.m4 new file mode 100644 index 00000000000000..e7ced790b9190b --- /dev/null +++ b/deps/cares/aclocal.m4 @@ -0,0 +1,1211 @@ +# generated automatically by aclocal 1.16.5 -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. + +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +m4_ifndef([AC_CONFIG_MACRO_DIRS], [m4_defun([_AM_CONFIG_MACRO_DIRS], [])m4_defun([AC_CONFIG_MACRO_DIRS], [_AM_CONFIG_MACRO_DIRS($@)])]) +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.71],, +[m4_warning([this file was generated for autoconf 2.71. +You have another version of autoconf. It may work, but is not guaranteed to. +If you have problems, you may need to regenerate the build system entirely. +To do so, use the procedure documented by the package, typically 'autoreconf'.])]) + +# Copyright (C) 2002-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_AUTOMAKE_VERSION(VERSION) +# ---------------------------- +# Automake X.Y traces this macro to ensure aclocal.m4 has been +# generated from the m4 files accompanying Automake X.Y. +# (This private macro should not be called outside this file.) +AC_DEFUN([AM_AUTOMAKE_VERSION], +[am__api_version='1.16' +dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to +dnl require some minimum version. Point them to the right macro. +m4_if([$1], [1.16.5], [], + [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl +]) + +# _AM_AUTOCONF_VERSION(VERSION) +# ----------------------------- +# aclocal traces this macro to find the Autoconf version. +# This is a private macro too. Using m4_define simplifies +# the logic in aclocal, which can simply ignore this definition. +m4_define([_AM_AUTOCONF_VERSION], []) + +# AM_SET_CURRENT_AUTOMAKE_VERSION +# ------------------------------- +# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. +# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. +AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], +[AM_AUTOMAKE_VERSION([1.16.5])dnl +m4_ifndef([AC_AUTOCONF_VERSION], + [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl +_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) + +# AM_AUX_DIR_EXPAND -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets +# $ac_aux_dir to '$srcdir/foo'. In other projects, it is set to +# '$srcdir', '$srcdir/..', or '$srcdir/../..'. +# +# Of course, Automake must honor this variable whenever it calls a +# tool from the auxiliary directory. The problem is that $srcdir (and +# therefore $ac_aux_dir as well) can be either absolute or relative, +# depending on how configure is run. This is pretty annoying, since +# it makes $ac_aux_dir quite unusable in subdirectories: in the top +# source directory, any form will work fine, but in subdirectories a +# relative path needs to be adjusted first. +# +# $ac_aux_dir/missing +# fails when called from a subdirectory if $ac_aux_dir is relative +# $top_srcdir/$ac_aux_dir/missing +# fails if $ac_aux_dir is absolute, +# fails when called from a subdirectory in a VPATH build with +# a relative $ac_aux_dir +# +# The reason of the latter failure is that $top_srcdir and $ac_aux_dir +# are both prefixed by $srcdir. In an in-source build this is usually +# harmless because $srcdir is '.', but things will broke when you +# start a VPATH build or use an absolute $srcdir. +# +# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, +# iff we strip the leading $srcdir from $ac_aux_dir. That would be: +# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` +# and then we would define $MISSING as +# MISSING="\${SHELL} $am_aux_dir/missing" +# This will work as long as MISSING is not called from configure, because +# unfortunately $(top_srcdir) has no meaning in configure. +# However there are other variables, like CC, which are often used in +# configure, and could therefore not use this "fixed" $ac_aux_dir. +# +# Another solution, used here, is to always expand $ac_aux_dir to an +# absolute PATH. The drawback is that using absolute paths prevent a +# configured tree to be moved without reconfiguration. + +AC_DEFUN([AM_AUX_DIR_EXPAND], +[AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` +]) + +# AM_CONDITIONAL -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_CONDITIONAL(NAME, SHELL-CONDITION) +# ------------------------------------- +# Define a conditional. +AC_DEFUN([AM_CONDITIONAL], +[AC_PREREQ([2.52])dnl + m4_if([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], + [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl +AC_SUBST([$1_TRUE])dnl +AC_SUBST([$1_FALSE])dnl +_AM_SUBST_NOTMAKE([$1_TRUE])dnl +_AM_SUBST_NOTMAKE([$1_FALSE])dnl +m4_define([_AM_COND_VALUE_$1], [$2])dnl +if $2; then + $1_TRUE= + $1_FALSE='#' +else + $1_TRUE='#' + $1_FALSE= +fi +AC_CONFIG_COMMANDS_PRE( +[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then + AC_MSG_ERROR([[conditional "$1" was never defined. +Usually this means the macro was only invoked conditionally.]]) +fi])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + + +# There are a few dirty hacks below to avoid letting 'AC_PROG_CC' be +# written in clear, in which case automake, when reading aclocal.m4, +# will think it sees a *use*, and therefore will trigger all it's +# C support machinery. Also note that it means that autoscan, seeing +# CC etc. in the Makefile, will ask for an AC_PROG_CC use... + + +# _AM_DEPENDENCIES(NAME) +# ---------------------- +# See how the compiler implements dependency checking. +# NAME is "CC", "CXX", "OBJC", "OBJCXX", "UPC", or "GJC". +# We try a few techniques and use that to set a single cache variable. +# +# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was +# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular +# dependency, and given that the user is not expected to run this macro, +# just rely on AC_PROG_CC. +AC_DEFUN([_AM_DEPENDENCIES], +[AC_REQUIRE([AM_SET_DEPDIR])dnl +AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl +AC_REQUIRE([AM_MAKE_INCLUDE])dnl +AC_REQUIRE([AM_DEP_TRACK])dnl + +m4_if([$1], [CC], [depcc="$CC" am_compiler_list=], + [$1], [CXX], [depcc="$CXX" am_compiler_list=], + [$1], [OBJC], [depcc="$OBJC" am_compiler_list='gcc3 gcc'], + [$1], [OBJCXX], [depcc="$OBJCXX" am_compiler_list='gcc3 gcc'], + [$1], [UPC], [depcc="$UPC" am_compiler_list=], + [$1], [GCJ], [depcc="$GCJ" am_compiler_list='gcc3 gcc'], + [depcc="$$1" am_compiler_list=]) + +AC_CACHE_CHECK([dependency style of $depcc], + [am_cv_$1_dependencies_compiler_type], +[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_$1_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` + fi + am__universal=false + m4_case([$1], [CC], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac], + [CXX], + [case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac]) + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_$1_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_$1_dependencies_compiler_type=none +fi +]) +AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) +AM_CONDITIONAL([am__fastdep$1], [ + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) +]) + + +# AM_SET_DEPDIR +# ------------- +# Choose a directory name for dependency files. +# This macro is AC_REQUIREd in _AM_DEPENDENCIES. +AC_DEFUN([AM_SET_DEPDIR], +[AC_REQUIRE([AM_SET_LEADING_DOT])dnl +AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl +]) + + +# AM_DEP_TRACK +# ------------ +AC_DEFUN([AM_DEP_TRACK], +[AC_ARG_ENABLE([dependency-tracking], [dnl +AS_HELP_STRING( + [--enable-dependency-tracking], + [do not reject slow dependency extractors]) +AS_HELP_STRING( + [--disable-dependency-tracking], + [speeds up one-time build])]) +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi +AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) +AC_SUBST([AMDEPBACKSLASH])dnl +_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl +AC_SUBST([am__nodep])dnl +_AM_SUBST_NOTMAKE([am__nodep])dnl +]) + +# Generate code to set up dependency tracking. -*- Autoconf -*- + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_OUTPUT_DEPENDENCY_COMMANDS +# ------------------------------ +AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], +[{ + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + AS_CASE([$CONFIG_FILES], + [*\'*], [eval set x "$CONFIG_FILES"], + [*], [set x $CONFIG_FILES]) + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`AS_ECHO(["$am_mf"]) | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`AS_DIRNAME(["$am_mf"])` + am_filepart=`AS_BASENAME(["$am_mf"])` + AM_RUN_LOG([cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles]) || am_rc=$? + done + if test $am_rc -ne 0; then + AC_MSG_FAILURE([Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE="gmake" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking).]) + fi + AS_UNSET([am_dirpart]) + AS_UNSET([am_filepart]) + AS_UNSET([am_mf]) + AS_UNSET([am_rc]) + rm -f conftest-deps.mk +} +])# _AM_OUTPUT_DEPENDENCY_COMMANDS + + +# AM_OUTPUT_DEPENDENCY_COMMANDS +# ----------------------------- +# This macro should only be invoked once -- use via AC_REQUIRE. +# +# This code is only required when automatic dependency tracking is enabled. +# This creates each '.Po' and '.Plo' makefile fragment that we'll need in +# order to bootstrap the dependency handling code. +AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], +[AC_CONFIG_COMMANDS([depfiles], + [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], + [AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}"])]) + +# Do all the work for Automake. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This macro actually does too much. Some checks are only needed if +# your package does certain things. But this isn't really a big deal. + +dnl Redefine AC_PROG_CC to automatically invoke _AM_PROG_CC_C_O. +m4_define([AC_PROG_CC], +m4_defn([AC_PROG_CC]) +[_AM_PROG_CC_C_O +]) + +# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) +# AM_INIT_AUTOMAKE([OPTIONS]) +# ----------------------------------------------- +# The call with PACKAGE and VERSION arguments is the old style +# call (pre autoconf-2.50), which is being phased out. PACKAGE +# and VERSION should now be passed to AC_INIT and removed from +# the call to AM_INIT_AUTOMAKE. +# We support both call styles for the transition. After +# the next Automake release, Autoconf can make the AC_INIT +# arguments mandatory, and then we can depend on a new Autoconf +# release and drop the old call support. +AC_DEFUN([AM_INIT_AUTOMAKE], +[AC_PREREQ([2.65])dnl +m4_ifdef([_$0_ALREADY_INIT], + [m4_fatal([$0 expanded multiple times +]m4_defn([_$0_ALREADY_INIT]))], + [m4_define([_$0_ALREADY_INIT], m4_expansion_stack)])dnl +dnl Autoconf wants to disallow AM_ names. We explicitly allow +dnl the ones we care about. +m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl +AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl +AC_REQUIRE([AC_PROG_INSTALL])dnl +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi +AC_SUBST([CYGPATH_W]) + +# Define the identity of the package. +dnl Distinguish between old-style and new-style calls. +m4_ifval([$2], +[AC_DIAGNOSE([obsolete], + [$0: two- and three-arguments forms are deprecated.]) +m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl + AC_SUBST([PACKAGE], [$1])dnl + AC_SUBST([VERSION], [$2])], +[_AM_SET_OPTIONS([$1])dnl +dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. +m4_if( + m4_ifset([AC_PACKAGE_NAME], [ok]):m4_ifset([AC_PACKAGE_VERSION], [ok]), + [ok:ok],, + [m4_fatal([AC_INIT should be called with package and version arguments])])dnl + AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl + AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl + +_AM_IF_OPTION([no-define],, +[AC_DEFINE_UNQUOTED([PACKAGE], ["$PACKAGE"], [Name of package]) + AC_DEFINE_UNQUOTED([VERSION], ["$VERSION"], [Version number of package])])dnl + +# Some tools Automake needs. +AC_REQUIRE([AM_SANITY_CHECK])dnl +AC_REQUIRE([AC_ARG_PROGRAM])dnl +AM_MISSING_PROG([ACLOCAL], [aclocal-${am__api_version}]) +AM_MISSING_PROG([AUTOCONF], [autoconf]) +AM_MISSING_PROG([AUTOMAKE], [automake-${am__api_version}]) +AM_MISSING_PROG([AUTOHEADER], [autoheader]) +AM_MISSING_PROG([MAKEINFO], [makeinfo]) +AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl +AC_REQUIRE([AC_PROG_MKDIR_P])dnl +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +AC_SUBST([mkdir_p], ['$(MKDIR_P)']) +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([AC_PROG_MAKE_SET])dnl +AC_REQUIRE([AM_SET_LEADING_DOT])dnl +_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], + [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], + [_AM_PROG_TAR([v7])])]) +_AM_IF_OPTION([no-dependencies],, +[AC_PROVIDE_IFELSE([AC_PROG_CC], + [_AM_DEPENDENCIES([CC])], + [m4_define([AC_PROG_CC], + m4_defn([AC_PROG_CC])[_AM_DEPENDENCIES([CC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_CXX], + [_AM_DEPENDENCIES([CXX])], + [m4_define([AC_PROG_CXX], + m4_defn([AC_PROG_CXX])[_AM_DEPENDENCIES([CXX])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJC], + [_AM_DEPENDENCIES([OBJC])], + [m4_define([AC_PROG_OBJC], + m4_defn([AC_PROG_OBJC])[_AM_DEPENDENCIES([OBJC])])])dnl +AC_PROVIDE_IFELSE([AC_PROG_OBJCXX], + [_AM_DEPENDENCIES([OBJCXX])], + [m4_define([AC_PROG_OBJCXX], + m4_defn([AC_PROG_OBJCXX])[_AM_DEPENDENCIES([OBJCXX])])])dnl +]) +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi +AC_SUBST([CTAGS]) +if test -z "$ETAGS"; then + ETAGS=etags +fi +AC_SUBST([ETAGS]) +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi +AC_SUBST([CSCOPE]) + +AC_REQUIRE([AM_SILENT_RULES])dnl +dnl The testsuite driver may need to know about EXEEXT, so add the +dnl 'am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This +dnl macro is hooked onto _AC_COMPILER_EXEEXT early, see below. +AC_CONFIG_COMMANDS_PRE(dnl +[m4_provide_if([_AM_COMPILER_EXEEXT], + [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + AC_MSG_ERROR([Your 'rm' program is bad, sorry.]) + fi +fi +dnl The trailing newline in this macro's definition is deliberate, for +dnl backward compatibility and to allow trailing 'dnl'-style comments +dnl after the AM_INIT_AUTOMAKE invocation. See automake bug#16841. +]) + +dnl Hook into '_AC_COMPILER_EXEEXT' early to learn its expansion. Do not +dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further +dnl mangled by Autoconf and run in a shell conditional statement. +m4_define([_AC_COMPILER_EXEEXT], +m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) + +# When config.status generates a header, we must update the stamp-h file. +# This file resides in the same directory as the config header +# that is generated. The stamp files are numbered to have different names. + +# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the +# loop where config.status creates the headers, so we can generate +# our stamp files there. +AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], +[# Compute $1's index in $config_headers. +_am_arg=$1 +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_SH +# ------------------ +# Define $install_sh. +AC_DEFUN([AM_PROG_INSTALL_SH], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi +AC_SUBST([install_sh])]) + +# Copyright (C) 2003-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# Check whether the underlying file-system supports filenames +# with a leading dot. For instance MS-DOS doesn't. +AC_DEFUN([AM_SET_LEADING_DOT], +[rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null +AC_SUBST([am__leading_dot])]) + +# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- +# From Jim Meyering + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAINTAINER_MODE([DEFAULT-MODE]) +# ---------------------------------- +# Control maintainer-specific portions of Makefiles. +# Default is to disable them, unless 'enable' is passed literally. +# For symmetry, 'disable' may be passed as well. Anyway, the user +# can override the default with the --enable/--disable switch. +AC_DEFUN([AM_MAINTAINER_MODE], +[m4_case(m4_default([$1], [disable]), + [enable], [m4_define([am_maintainer_other], [disable])], + [disable], [m4_define([am_maintainer_other], [enable])], + [m4_define([am_maintainer_other], [enable]) + m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) +AC_MSG_CHECKING([whether to enable maintainer-specific portions of Makefiles]) + dnl maintainer-mode's default is 'disable' unless 'enable' is passed + AC_ARG_ENABLE([maintainer-mode], + [AS_HELP_STRING([--]am_maintainer_other[-maintainer-mode], + am_maintainer_other[ make rules and dependencies not useful + (and sometimes confusing) to the casual installer])], + [USE_MAINTAINER_MODE=$enableval], + [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) + AC_MSG_RESULT([$USE_MAINTAINER_MODE]) + AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) + MAINT=$MAINTAINER_MODE_TRUE + AC_SUBST([MAINT])dnl +] +) + +# Check to see how 'make' treats includes. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MAKE_INCLUDE() +# ----------------- +# Check whether make has an 'include' directive that can support all +# the idioms we need for our automatic dependency tracking code. +AC_DEFUN([AM_MAKE_INCLUDE], +[AC_MSG_CHECKING([whether ${MAKE-make} supports the include directive]) +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + AM_RUN_LOG([${MAKE-make} -f confmf.$s && cat confinc.out]) + AS_CASE([$?:`cat confinc.out 2>/dev/null`], + ['0:this is the am__doit target'], + [AS_CASE([$s], + [BSD], [am__include='.include' am__quote='"'], + [am__include='include' am__quote=''])]) + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +AC_MSG_RESULT([${_am_result}]) +AC_SUBST([am__include])]) +AC_SUBST([am__quote])]) + +# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- + +# Copyright (C) 1997-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_MISSING_PROG(NAME, PROGRAM) +# ------------------------------ +AC_DEFUN([AM_MISSING_PROG], +[AC_REQUIRE([AM_MISSING_HAS_RUN]) +$1=${$1-"${am_missing_run}$2"} +AC_SUBST($1)]) + +# AM_MISSING_HAS_RUN +# ------------------ +# Define MISSING if not defined so far and test if it is modern enough. +# If it is, set am_missing_run to use it, otherwise, to nothing. +AC_DEFUN([AM_MISSING_HAS_RUN], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([missing])dnl +if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + AC_MSG_WARN(['missing' script is too old or missing]) +fi +]) + +# Helper functions for option handling. -*- Autoconf -*- + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_MANGLE_OPTION(NAME) +# ----------------------- +AC_DEFUN([_AM_MANGLE_OPTION], +[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) + +# _AM_SET_OPTION(NAME) +# -------------------- +# Set option NAME. Presently that only means defining a flag for this option. +AC_DEFUN([_AM_SET_OPTION], +[m4_define(_AM_MANGLE_OPTION([$1]), [1])]) + +# _AM_SET_OPTIONS(OPTIONS) +# ------------------------ +# OPTIONS is a space-separated list of Automake options. +AC_DEFUN([_AM_SET_OPTIONS], +[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) + +# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) +# ------------------------------------------- +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +AC_DEFUN([_AM_IF_OPTION], +[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_CC_C_O +# --------------- +# Like AC_PROG_CC_C_O, but changed for automake. We rewrite AC_PROG_CC +# to automatically call this. +AC_DEFUN([_AM_PROG_CC_C_O], +[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl +AC_REQUIRE_AUX_FILE([compile])dnl +AC_LANG_PUSH([C])dnl +AC_CACHE_CHECK( + [whether $CC understands -c and -o together], + [am_cv_prog_cc_c_o], + [AC_LANG_CONFTEST([AC_LANG_PROGRAM([])]) + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if AM_RUN_LOG([$CC -c conftest.$ac_ext -o conftest2.$ac_objext]) \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i]) +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +AC_LANG_POP([C])]) + +# For backward compatibility. +AC_DEFUN_ONCE([AM_PROG_CC_C_O], [AC_REQUIRE([AC_PROG_CC])]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_RUN_LOG(COMMAND) +# ------------------- +# Run COMMAND, save the exit status in ac_status, and log it. +# (This has been adapted from Autoconf's _AC_RUN_LOG macro.) +AC_DEFUN([AM_RUN_LOG], +[{ echo "$as_me:$LINENO: $1" >&AS_MESSAGE_LOG_FD + ($1) >&AS_MESSAGE_LOG_FD 2>&AS_MESSAGE_LOG_FD + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + (exit $ac_status); }]) + +# Check to make sure that the build environment is sane. -*- Autoconf -*- + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SANITY_CHECK +# --------------- +AC_DEFUN([AM_SANITY_CHECK], +[AC_MSG_CHECKING([whether build environment is sane]) +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[[\\\"\#\$\&\'\`$am_lf]]*) + AC_MSG_ERROR([unsafe absolute working directory name]);; +esac +case $srcdir in + *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) + AC_MSG_ERROR([unsafe srcdir value: '$srcdir']);; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$[*]" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$[*]" != "X $srcdir/configure conftest.file" \ + && test "$[*]" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken + alias in your environment]) + fi + if test "$[2]" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$[2]" = conftest.file + ) +then + # Ok. + : +else + AC_MSG_ERROR([newly created file is older than distributed files! +Check your system clock]) +fi +AC_MSG_RESULT([yes]) +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi +AC_CONFIG_COMMANDS_PRE( + [AC_MSG_CHECKING([that generated files are newer than configure]) + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + AC_MSG_RESULT([done])]) +rm -f conftest.file +]) + +# Copyright (C) 2009-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_SILENT_RULES([DEFAULT]) +# -------------------------- +# Enable less verbose build rules; with the default set to DEFAULT +# ("yes" being less verbose, "no" or empty being verbose). +AC_DEFUN([AM_SILENT_RULES], +[AC_ARG_ENABLE([silent-rules], [dnl +AS_HELP_STRING( + [--enable-silent-rules], + [less verbose build output (undo: "make V=1")]) +AS_HELP_STRING( + [--disable-silent-rules], + [verbose build output (undo: "make V=0")])dnl +]) +case $enable_silent_rules in @%:@ ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; +esac +dnl +dnl A few 'make' implementations (e.g., NonStop OS and NextStep) +dnl do not support nested variable expansions. +dnl See automake bug#9928 and bug#10237. +am_make=${MAKE-make} +AC_CACHE_CHECK([whether $am_make supports nested variables], + [am_cv_make_support_nested_variables], + [if AS_ECHO([['TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit']]) | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi]) +if test $am_cv_make_support_nested_variables = yes; then + dnl Using '$V' instead of '$(V)' breaks IRIX make. + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AC_SUBST([AM_V])dnl +AM_SUBST_NOTMAKE([AM_V])dnl +AC_SUBST([AM_DEFAULT_V])dnl +AM_SUBST_NOTMAKE([AM_DEFAULT_V])dnl +AC_SUBST([AM_DEFAULT_VERBOSITY])dnl +AM_BACKSLASH='\' +AC_SUBST([AM_BACKSLASH])dnl +_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl +]) + +# Copyright (C) 2001-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# AM_PROG_INSTALL_STRIP +# --------------------- +# One issue with vendor 'install' (even GNU) is that you can't +# specify the program used to strip binaries. This is especially +# annoying in cross-compiling environments, where the build's strip +# is unlikely to handle the host's binaries. +# Fortunately install-sh will honor a STRIPPROG variable, so we +# always use install-sh in "make install-strip", and initialize +# STRIPPROG with the value of the STRIP variable (set by the user). +AC_DEFUN([AM_PROG_INSTALL_STRIP], +[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +dnl Don't test for $cross_compiling = yes, because it might be 'maybe'. +if test "$cross_compiling" != no; then + AC_CHECK_TOOL([STRIP], [strip], :) +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" +AC_SUBST([INSTALL_STRIP_PROGRAM])]) + +# Copyright (C) 2006-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_SUBST_NOTMAKE(VARIABLE) +# --------------------------- +# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. +# This macro is traced by Automake. +AC_DEFUN([_AM_SUBST_NOTMAKE]) + +# AM_SUBST_NOTMAKE(VARIABLE) +# -------------------------- +# Public sister of _AM_SUBST_NOTMAKE. +AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) + +# Check how to create a tarball. -*- Autoconf -*- + +# Copyright (C) 2004-2021 Free Software Foundation, Inc. +# +# This file is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# _AM_PROG_TAR(FORMAT) +# -------------------- +# Check how to create a tarball in format FORMAT. +# FORMAT should be one of 'v7', 'ustar', or 'pax'. +# +# Substitute a variable $(am__tar) that is a command +# writing to stdout a FORMAT-tarball containing the directory +# $tardir. +# tardir=directory && $(am__tar) > result.tar +# +# Substitute a variable $(am__untar) that extract such +# a tarball read from stdin. +# $(am__untar) < result.tar +# +AC_DEFUN([_AM_PROG_TAR], +[# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AC_SUBST([AMTAR], ['$${TAR-tar}']) + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' + +m4_if([$1], [v7], + [am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -'], + + [m4_case([$1], + [ustar], + [# The POSIX 1988 'ustar' format is defined with fixed-size fields. + # There is notably a 21 bits limit for the UID and the GID. In fact, + # the 'pax' utility can hang on bigger UID/GID (see automake bug#8343 + # and bug#13588). + am_max_uid=2097151 # 2^21 - 1 + am_max_gid=$am_max_uid + # The $UID and $GID variables are not portable, so we need to resort + # to the POSIX-mandated id(1) utility. Errors in the 'id' calls + # below are definitely unexpected, so allow the users to see them + # (that is, avoid stderr redirection). + am_uid=`id -u || echo unknown` + am_gid=`id -g || echo unknown` + AC_MSG_CHECKING([whether UID '$am_uid' is supported by ustar format]) + if test $am_uid -le $am_max_uid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi + AC_MSG_CHECKING([whether GID '$am_gid' is supported by ustar format]) + if test $am_gid -le $am_max_gid; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + _am_tools=none + fi], + + [pax], + [], + + [m4_fatal([Unknown tar format])]) + + AC_MSG_CHECKING([how to create a $1 tar archive]) + + # Go ahead even if we have the value already cached. We do so because we + # need to set the values for the 'am__tar' and 'am__untar' variables. + _am_tools=${am_cv_prog_tar_$1-$_am_tools} + + for _am_tool in $_am_tools; do + case $_am_tool in + gnutar) + for _am_tar in tar gnutar gtar; do + AM_RUN_LOG([$_am_tar --version]) && break + done + am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' + am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' + am__untar="$_am_tar -xf -" + ;; + plaintar) + # Must skip GNU tar: if it does not support --format= it doesn't create + # ustar tarball either. + (tar --version) >/dev/null 2>&1 && continue + am__tar='tar chf - "$$tardir"' + am__tar_='tar chf - "$tardir"' + am__untar='tar xf -' + ;; + pax) + am__tar='pax -L -x $1 -w "$$tardir"' + am__tar_='pax -L -x $1 -w "$tardir"' + am__untar='pax -r' + ;; + cpio) + am__tar='find "$$tardir" -print | cpio -o -H $1 -L' + am__tar_='find "$tardir" -print | cpio -o -H $1 -L' + am__untar='cpio -i -H $1 -d' + ;; + none) + am__tar=false + am__tar_=false + am__untar=false + ;; + esac + + # If the value was cached, stop now. We just wanted to have am__tar + # and am__untar set. + test -n "${am_cv_prog_tar_$1}" && break + + # tar/untar a dummy directory, and stop if the command works. + rm -rf conftest.dir + mkdir conftest.dir + echo GrepMe > conftest.dir/file + AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) + rm -rf conftest.dir + if test -s conftest.tar; then + AM_RUN_LOG([$am__untar /dev/null 2>&1 && break + fi + done + rm -rf conftest.dir + + AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) + AC_MSG_RESULT([$am_cv_prog_tar_$1])]) + +AC_SUBST([am__tar]) +AC_SUBST([am__untar]) +]) # _AM_PROG_TAR + +m4_include([m4/ax_ac_append_to_file.m4]) +m4_include([m4/ax_ac_print_to_file.m4]) +m4_include([m4/ax_add_am_macro_static.m4]) +m4_include([m4/ax_am_macros_static.m4]) +m4_include([m4/ax_check_gnu_make.m4]) +m4_include([m4/ax_code_coverage.m4]) +m4_include([m4/ax_cxx_compile_stdcxx_11.m4]) +m4_include([m4/ax_file_escapes.m4]) +m4_include([m4/ax_require_defined.m4]) +m4_include([m4/cares-compilers.m4]) +m4_include([m4/cares-confopts.m4]) +m4_include([m4/cares-functions.m4]) +m4_include([m4/cares-reentrant.m4]) +m4_include([m4/libtool.m4]) +m4_include([m4/ltoptions.m4]) +m4_include([m4/ltsugar.m4]) +m4_include([m4/ltversion.m4]) +m4_include([m4/lt~obsolete.m4]) +m4_include([m4/xc-am-iface.m4]) +m4_include([m4/xc-cc-check.m4]) +m4_include([m4/xc-lt-iface.m4]) +m4_include([m4/xc-translit.m4]) +m4_include([m4/xc-val-flgs.m4]) +m4_include([m4/zz40-xc-ovr.m4]) +m4_include([acinclude.m4]) diff --git a/deps/cares/aminclude_static.am b/deps/cares/aminclude_static.am new file mode 100644 index 00000000000000..c90aef60a4bcf4 --- /dev/null +++ b/deps/cares/aminclude_static.am @@ -0,0 +1,126 @@ + +# aminclude_static.am generated automatically by Autoconf +# from AX_AM_MACROS_STATIC on Wed Oct 27 08:06:13 CEST 2021 + + +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# Multiple directories may be specified, separated by whitespace. +# (Default: $(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage, +# set to 0 to disable it and leave empty to stay with the default. +# (Default: empty) +# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov +# instances. (Default: based on ) +# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov +# instances. (Default: ) +# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov +# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the +# collecting lcov instance. (Default: ) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov +# instance. (Default: ) +# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering +# lcov instance. (Default: empty) +# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov +# instance. (Default: ) +# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the +# genhtml instance. (Default: based on ) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: ) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the $(PACKAGE_NAME) and +# $(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. +# Optional variables +# run only on top dir +if CODE_COVERAGE_ENABLED + ifeq ($(abs_builddir), $(abs_top_builddir)) +CODE_COVERAGE_DIRECTORY ?= $(top_builddir) +CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info +CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage + +CODE_COVERAGE_BRANCH_COVERAGE ?= +CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),--rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)" +CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?= +CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=$(if $(CODE_COVERAGE_BRANCH_COVERAGE),--rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +CODE_COVERAGE_IGNORE_PATTERN ?= + +GITIGNOREFILES := $(GITIGNOREFILES) $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) +code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V)) +code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_cap_0 = @echo " LCOV --capture" $(CODE_COVERAGE_OUTPUT_FILE); +code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V)) +code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN); +code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V)) +code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_genhtml_0 = @echo " GEN " "$(CODE_COVERAGE_OUTPUT_DIRECTORY)"; +code_coverage_quiet = $(code_coverage_quiet_$(V)) +code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) +code_coverage_quiet_0 = --quiet + +# sanitizes the test-name: replaces with underscores: dashes and dots +code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1))) + +# Use recursive makes in order to ignore errors during check +check-code-coverage: + -$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check + $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture + +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook + $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS) + $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS) + -@rm -f "$(CODE_COVERAGE_OUTPUT_FILE).tmp" + $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) + @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" + +code-coverage-clean: + -$(LCOV) --directory $(top_builddir) -z + -rm -rf "$(CODE_COVERAGE_OUTPUT_FILE)" "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" + -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete + +code-coverage-dist-clean: + +AM_DISTCHECK_CONFIGURE_FLAGS := $(AM_DISTCHECK_CONFIGURE_FLAGS) --disable-code-coverage + else # ifneq ($(abs_builddir), $(abs_top_builddir)) +check-code-coverage: + +code-coverage-capture: code-coverage-capture-hook + +code-coverage-clean: + +code-coverage-dist-clean: + endif # ifeq ($(abs_builddir), $(abs_top_builddir)) +else #! CODE_COVERAGE_ENABLED +# Use recursive makes in order to ignore errors during check +check-code-coverage: + @echo "Need to reconfigure with --enable-code-coverage" +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook + @echo "Need to reconfigure with --enable-code-coverage" + +code-coverage-clean: + +code-coverage-dist-clean: + +endif #CODE_COVERAGE_ENABLED +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: + +.PHONY: check-code-coverage code-coverage-capture code-coverage-dist-clean code-coverage-clean code-coverage-capture-hook diff --git a/deps/cares/buildconf b/deps/cares/buildconf new file mode 100755 index 00000000000000..4e4c17e9991980 --- /dev/null +++ b/deps/cares/buildconf @@ -0,0 +1,4 @@ +#!/bin/sh + +echo "*** Do not use buildconf. Instead, just use: autoreconf -fi" >&2 +exec ${AUTORECONF:-autoreconf} -fi "${@}" diff --git a/deps/cares/buildconf.bat b/deps/cares/buildconf.bat new file mode 100644 index 00000000000000..dcee45239b8b58 --- /dev/null +++ b/deps/cares/buildconf.bat @@ -0,0 +1,20 @@ +@echo off +REM +REM +REM This batch file must be used to set up a git tree to build on +REM systems where there is no autotools support (i.e. Microsoft). +REM +REM This file is not included nor needed for c-ares' release +REM archives, neither for c-ares' daily snapshot archives. + +if exist GIT-INFO goto start_doing +ECHO ERROR: This file shall only be used with a c-ares git checkout. +goto end_all +:start_doing + +if not exist include\ares_build.h.dist goto end_ares_build_h +copy /Y include\ares_build.h.dist include\ares_build.h +:end_ares_build_h + +:end_all + diff --git a/deps/cares/c-ares-config.cmake.in b/deps/cares/c-ares-config.cmake.in new file mode 100644 index 00000000000000..464837b3750e4a --- /dev/null +++ b/deps/cares/c-ares-config.cmake.in @@ -0,0 +1,21 @@ +@PACKAGE_INIT@ + +set_and_check(c-ares_INCLUDE_DIR "@PACKAGE_CMAKE_INSTALL_INCLUDEDIR@") + +include("${CMAKE_CURRENT_LIST_DIR}/c-ares-config-version.cmake") +include("${CMAKE_CURRENT_LIST_DIR}/c-ares-targets.cmake") + +set(c-ares_LIBRARY c-ares::cares) + +if(@CARES_SHARED@) + add_library(c-ares::cares_shared INTERFACE IMPORTED) + set_target_properties(c-ares::cares_shared PROPERTIES INTERFACE_LINK_LIBRARIES "c-ares::cares") + set(c-ares_SHARED_LIBRARY c-ares::cares_shared) +elseif(@CARES_STATIC@) + add_library(c-ares::cares_static INTERFACE IMPORTED) + set_target_properties(c-ares::cares_static PROPERTIES INTERFACE_LINK_LIBRARIES "c-ares::cares") +endif() + +if(@CARES_STATIC@) + set(c-ares_STATIC_LIBRARY c-ares::cares_static) +endif() diff --git a/deps/cares/cares.gyp b/deps/cares/cares.gyp index 6c12fc5948d5ab..88933e00745d30 100644 --- a/deps/cares/cares.gyp +++ b/deps/cares/cares.gyp @@ -30,15 +30,18 @@ { 'target_name': 'cares', 'type': '<(library)', - 'include_dirs': [ 'include', 'src/lib' ], + 'include_dirs': [ 'include' ], 'direct_dependent_settings': { - 'include_dirs': [ 'include', 'src/lib' ] + 'include_dirs': [ 'include' ] }, 'sources': [ 'include/ares.h', 'include/ares_dns.h', + 'include/ares_nameser.h', 'include/ares_rules.h', 'include/ares_version.h', + 'src/lib/ares__addrinfo2hostent.c', + 'src/lib/ares__addrinfo_localhost.c', 'src/lib/ares_android.c', 'src/lib/ares_cancel.c', 'src/lib/ares__close_sockets.c', @@ -66,7 +69,6 @@ 'src/lib/ares_llist.c', 'src/lib/ares_llist.h', 'src/lib/ares_mkquery.c', - 'src/lib/ares_nameser.h', 'src/lib/ares_nowarn.c', 'src/lib/ares_nowarn.h', 'src/lib/ares_options.c', @@ -81,6 +83,7 @@ 'src/lib/ares_parse_soa_reply.c', 'src/lib/ares_parse_srv_reply.c', 'src/lib/ares_parse_txt_reply.c', + 'src/lib/ares_parse_uri_reply.c', 'src/lib/ares_platform.h', 'src/lib/ares_private.h', 'src/lib/ares_process.c', diff --git a/deps/cares/compile b/deps/cares/compile new file mode 100755 index 00000000000000..df363c8fbfbcbb --- /dev/null +++ b/deps/cares/compile @@ -0,0 +1,348 @@ +#! /bin/sh +# Wrapper for compilers which do not understand '-c -o'. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. +# Written by Tom Tromey . +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# This file is maintained in Automake, please report +# bugs to or send patches to +# . + +nl=' +' + +# We need space, tab and new line, in precisely that order. Quoting is +# there to prevent tools from complaining about whitespace usage. +IFS=" "" $nl" + +file_conv= + +# func_file_conv build_file lazy +# Convert a $build file to $host form and store it in $file +# Currently only supports Windows hosts. If the determined conversion +# type is listed in (the comma separated) LAZY, no conversion will +# take place. +func_file_conv () +{ + file=$1 + case $file in + / | /[!/]*) # absolute file, and not a UNC file + if test -z "$file_conv"; then + # lazily determine how to convert abs files + case `uname -s` in + MINGW*) + file_conv=mingw + ;; + CYGWIN* | MSYS*) + file_conv=cygwin + ;; + *) + file_conv=wine + ;; + esac + fi + case $file_conv/,$2, in + *,$file_conv,*) + ;; + mingw/*) + file=`cmd //C echo "$file " | sed -e 's/"\(.*\) " *$/\1/'` + ;; + cygwin/* | msys/*) + file=`cygpath -m "$file" || echo "$file"` + ;; + wine/*) + file=`winepath -w "$file" || echo "$file"` + ;; + esac + ;; + esac +} + +# func_cl_dashL linkdir +# Make cl look for libraries in LINKDIR +func_cl_dashL () +{ + func_file_conv "$1" + if test -z "$lib_path"; then + lib_path=$file + else + lib_path="$lib_path;$file" + fi + linker_opts="$linker_opts -LIBPATH:$file" +} + +# func_cl_dashl library +# Do a library search-path lookup for cl +func_cl_dashl () +{ + lib=$1 + found=no + save_IFS=$IFS + IFS=';' + for dir in $lib_path $LIB + do + IFS=$save_IFS + if $shared && test -f "$dir/$lib.dll.lib"; then + found=yes + lib=$dir/$lib.dll.lib + break + fi + if test -f "$dir/$lib.lib"; then + found=yes + lib=$dir/$lib.lib + break + fi + if test -f "$dir/lib$lib.a"; then + found=yes + lib=$dir/lib$lib.a + break + fi + done + IFS=$save_IFS + + if test "$found" != yes; then + lib=$lib.lib + fi +} + +# func_cl_wrapper cl arg... +# Adjust compile command to suit cl +func_cl_wrapper () +{ + # Assume a capable shell + lib_path= + shared=: + linker_opts= + for arg + do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + eat=1 + case $2 in + *.o | *.[oO][bB][jJ]) + func_file_conv "$2" + set x "$@" -Fo"$file" + shift + ;; + *) + func_file_conv "$2" + set x "$@" -Fe"$file" + shift + ;; + esac + ;; + -I) + eat=1 + func_file_conv "$2" mingw + set x "$@" -I"$file" + shift + ;; + -I*) + func_file_conv "${1#-I}" mingw + set x "$@" -I"$file" + shift + ;; + -l) + eat=1 + func_cl_dashl "$2" + set x "$@" "$lib" + shift + ;; + -l*) + func_cl_dashl "${1#-l}" + set x "$@" "$lib" + shift + ;; + -L) + eat=1 + func_cl_dashL "$2" + ;; + -L*) + func_cl_dashL "${1#-L}" + ;; + -static) + shared=false + ;; + -Wl,*) + arg=${1#-Wl,} + save_ifs="$IFS"; IFS=',' + for flag in $arg; do + IFS="$save_ifs" + linker_opts="$linker_opts $flag" + done + IFS="$save_ifs" + ;; + -Xlinker) + eat=1 + linker_opts="$linker_opts $2" + ;; + -*) + set x "$@" "$1" + shift + ;; + *.cc | *.CC | *.cxx | *.CXX | *.[cC]++) + func_file_conv "$1" + set x "$@" -Tp"$file" + shift + ;; + *.c | *.cpp | *.CPP | *.lib | *.LIB | *.Lib | *.OBJ | *.obj | *.[oO]) + func_file_conv "$1" mingw + set x "$@" "$file" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift + done + if test -n "$linker_opts"; then + linker_opts="-link$linker_opts" + fi + exec "$@" $linker_opts + exit 1 +} + +eat= + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: compile [--help] [--version] PROGRAM [ARGS] + +Wrapper for compilers which do not understand '-c -o'. +Remove '-o dest.o' from ARGS, run PROGRAM with the remaining +arguments, and rename the output as expected. + +If you are trying to build a whole package this is not the +right script to run: please start by reading the file 'INSTALL'. + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "compile $scriptversion" + exit $? + ;; + cl | *[/\\]cl | cl.exe | *[/\\]cl.exe | \ + icl | *[/\\]icl | icl.exe | *[/\\]icl.exe ) + func_cl_wrapper "$@" # Doesn't return... + ;; +esac + +ofile= +cfile= + +for arg +do + if test -n "$eat"; then + eat= + else + case $1 in + -o) + # configure might choose to run compile as 'compile cc -o foo foo.c'. + # So we strip '-o arg' only if arg is an object. + eat=1 + case $2 in + *.o | *.obj) + ofile=$2 + ;; + *) + set x "$@" -o "$2" + shift + ;; + esac + ;; + *.c) + cfile=$1 + set x "$@" "$1" + shift + ;; + *) + set x "$@" "$1" + shift + ;; + esac + fi + shift +done + +if test -z "$ofile" || test -z "$cfile"; then + # If no '-o' option was seen then we might have been invoked from a + # pattern rule where we don't need one. That is ok -- this is a + # normal compilation that the losing compiler can handle. If no + # '.c' file was seen then we are probably linking. That is also + # ok. + exec "$@" +fi + +# Name of file we expect compiler to create. +cofile=`echo "$cfile" | sed 's|^.*[\\/]||; s|^[a-zA-Z]:||; s/\.c$/.o/'` + +# Create the lock directory. +# Note: use '[/\\:.-]' here to ensure that we don't use the same name +# that we are using for the .o file. Also, base the name on the expected +# object file name, since that is what matters with a parallel build. +lockdir=`echo "$cofile" | sed -e 's|[/\\:.-]|_|g'`.d +while true; do + if mkdir "$lockdir" >/dev/null 2>&1; then + break + fi + sleep 1 +done +# FIXME: race condition here if user kills between mkdir and trap. +trap "rmdir '$lockdir'; exit 1" 1 2 15 + +# Run the compile. +"$@" +ret=$? + +if test -f "$cofile"; then + test "$cofile" = "$ofile" || mv "$cofile" "$ofile" +elif test -f "${cofile}bj"; then + test "${cofile}bj" = "$ofile" || mv "${cofile}bj" "$ofile" +fi + +rmdir "$lockdir" +exit $ret + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/cares/config.guess b/deps/cares/config.guess new file mode 100755 index 00000000000000..f50dcdb6de2af0 --- /dev/null +++ b/deps/cares/config.guess @@ -0,0 +1,1480 @@ +#! /bin/sh +# Attempt to guess a canonical system name. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-02-24' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). +# +# Originally written by Per Bothner; maintained since 2000 by Ben Elliston. +# +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess +# +# Please send patches to . + + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] + +Output the configuration name of the system \`$me' is run on. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.guess ($timestamp) + +Originally written by Per Bothner. +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" >&2 + exit 1 ;; + * ) + break ;; + esac +done + +if test $# != 0; then + echo "$me: too many arguments$help" >&2 + exit 1 +fi + +trap 'exit 1' 1 2 15 + +# CC_FOR_BUILD -- compiler used by this script. Note that the use of a +# compiler to aid in system detection is discouraged as it requires +# temporary files to be created and, as you can see below, it is a +# headache to deal with in a portable fashion. + +# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still +# use `HOST_CC' if defined, but it is deprecated. + +# Portable tmp directory creation inspired by the Autoconf team. + +set_cc_for_build=' +trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; +trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; +: ${TMPDIR=/tmp} ; + { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || + { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || + { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || + { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; +dummy=$tmp/dummy ; +tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; +case $CC_FOR_BUILD,$HOST_CC,$CC in + ,,) echo "int x;" > "$dummy.c" ; + for c in cc gcc c89 c99 ; do + if ($c -c -o "$dummy.o" "$dummy.c") >/dev/null 2>&1 ; then + CC_FOR_BUILD="$c"; break ; + fi ; + done ; + if test x"$CC_FOR_BUILD" = x ; then + CC_FOR_BUILD=no_compiler_found ; + fi + ;; + ,,*) CC_FOR_BUILD=$CC ;; + ,*,*) CC_FOR_BUILD=$HOST_CC ;; +esac ; set_cc_for_build= ;' + +# This is needed to find uname on a Pyramid OSx when run in the BSD universe. +# (ghazi@noc.rutgers.edu 1994-08-24) +if (test -f /.attbin/uname) >/dev/null 2>&1 ; then + PATH=$PATH:/.attbin ; export PATH +fi + +UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown +UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown +UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown +UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown + +case "$UNAME_SYSTEM" in +Linux|GNU|GNU/*) + # If the system lacks a compiler, then just pick glibc. + # We could probably try harder. + LIBC=gnu + + eval "$set_cc_for_build" + cat <<-EOF > "$dummy.c" + #include + #if defined(__UCLIBC__) + LIBC=uclibc + #elif defined(__dietlibc__) + LIBC=dietlibc + #else + LIBC=gnu + #endif + EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^LIBC' | sed 's, ,,g'`" + + # If ldd exists, use it to detect musl libc. + if command -v ldd >/dev/null && \ + ldd --version 2>&1 | grep -q ^musl + then + LIBC=musl + fi + ;; +esac + +# Note: order is significant - the case branches are not exclusive. + +case "$UNAME_MACHINE:$UNAME_SYSTEM:$UNAME_RELEASE:$UNAME_VERSION" in + *:NetBSD:*:*) + # NetBSD (nbsd) targets should (where applicable) match one or + # more of the tuples: *-*-netbsdelf*, *-*-netbsdaout*, + # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently + # switched to ELF, *-*-netbsd* would select the old + # object file format. This provides both forward + # compatibility and a consistent mechanism for selecting the + # object file format. + # + # Note: NetBSD doesn't particularly care about the vendor + # portion of the name. We always set it to "unknown". + sysctl="sysctl -n hw.machine_arch" + UNAME_MACHINE_ARCH=`(uname -p 2>/dev/null || \ + "/sbin/$sysctl" 2>/dev/null || \ + "/usr/sbin/$sysctl" 2>/dev/null || \ + echo unknown)` + case "$UNAME_MACHINE_ARCH" in + armeb) machine=armeb-unknown ;; + arm*) machine=arm-unknown ;; + sh3el) machine=shl-unknown ;; + sh3eb) machine=sh-unknown ;; + sh5el) machine=sh5le-unknown ;; + earmv*) + arch=`echo "$UNAME_MACHINE_ARCH" | sed -e 's,^e\(armv[0-9]\).*$,\1,'` + endian=`echo "$UNAME_MACHINE_ARCH" | sed -ne 's,^.*\(eb\)$,\1,p'` + machine="${arch}${endian}"-unknown + ;; + *) machine="$UNAME_MACHINE_ARCH"-unknown ;; + esac + # The Operating System including object format, if it has switched + # to ELF recently (or will in the future) and ABI. + case "$UNAME_MACHINE_ARCH" in + earm*) + os=netbsdelf + ;; + arm*|i386|m68k|ns32k|sh3*|sparc|vax) + eval "$set_cc_for_build" + if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ELF__ + then + # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). + # Return netbsd for either. FIX? + os=netbsd + else + os=netbsdelf + fi + ;; + *) + os=netbsd + ;; + esac + # Determine ABI tags. + case "$UNAME_MACHINE_ARCH" in + earm*) + expr='s/^earmv[0-9]/-eabi/;s/eb$//' + abi=`echo "$UNAME_MACHINE_ARCH" | sed -e "$expr"` + ;; + esac + # The OS release + # Debian GNU/NetBSD machines have a different userland, and + # thus, need a distinct triplet. However, they do not need + # kernel version information, so it can be replaced with a + # suitable tag, in the style of linux-gnu. + case "$UNAME_VERSION" in + Debian*) + release='-gnu' + ;; + *) + release=`echo "$UNAME_RELEASE" | sed -e 's/[-_].*//' | cut -d. -f1,2` + ;; + esac + # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: + # contains redundant information, the shorter form: + # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. + echo "$machine-${os}${release}${abi}" + exit ;; + *:Bitrig:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/Bitrig.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-bitrig"$UNAME_RELEASE" + exit ;; + *:OpenBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-openbsd"$UNAME_RELEASE" + exit ;; + *:LibertyBSD:*:*) + UNAME_MACHINE_ARCH=`arch | sed 's/^.*BSD\.//'` + echo "$UNAME_MACHINE_ARCH"-unknown-libertybsd"$UNAME_RELEASE" + exit ;; + *:MidnightBSD:*:*) + echo "$UNAME_MACHINE"-unknown-midnightbsd"$UNAME_RELEASE" + exit ;; + *:ekkoBSD:*:*) + echo "$UNAME_MACHINE"-unknown-ekkobsd"$UNAME_RELEASE" + exit ;; + *:SolidBSD:*:*) + echo "$UNAME_MACHINE"-unknown-solidbsd"$UNAME_RELEASE" + exit ;; + macppc:MirBSD:*:*) + echo powerpc-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:MirBSD:*:*) + echo "$UNAME_MACHINE"-unknown-mirbsd"$UNAME_RELEASE" + exit ;; + *:Sortix:*:*) + echo "$UNAME_MACHINE"-unknown-sortix + exit ;; + *:Redox:*:*) + echo "$UNAME_MACHINE"-unknown-redox + exit ;; + mips:OSF1:*.*) + echo mips-dec-osf1 + exit ;; + alpha:OSF1:*:*) + case $UNAME_RELEASE in + *4.0) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` + ;; + *5.*) + UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` + ;; + esac + # According to Compaq, /usr/sbin/psrinfo has been available on + # OSF/1 and Tru64 systems produced since 1995. I hope that + # covers most systems running today. This code pipes the CPU + # types through head -n 1, so we only detect the type of CPU 0. + ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` + case "$ALPHA_CPU_TYPE" in + "EV4 (21064)") + UNAME_MACHINE=alpha ;; + "EV4.5 (21064)") + UNAME_MACHINE=alpha ;; + "LCA4 (21066/21068)") + UNAME_MACHINE=alpha ;; + "EV5 (21164)") + UNAME_MACHINE=alphaev5 ;; + "EV5.6 (21164A)") + UNAME_MACHINE=alphaev56 ;; + "EV5.6 (21164PC)") + UNAME_MACHINE=alphapca56 ;; + "EV5.7 (21164PC)") + UNAME_MACHINE=alphapca57 ;; + "EV6 (21264)") + UNAME_MACHINE=alphaev6 ;; + "EV6.7 (21264A)") + UNAME_MACHINE=alphaev67 ;; + "EV6.8CB (21264C)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8AL (21264B)") + UNAME_MACHINE=alphaev68 ;; + "EV6.8CX (21264D)") + UNAME_MACHINE=alphaev68 ;; + "EV6.9A (21264/EV69A)") + UNAME_MACHINE=alphaev69 ;; + "EV7 (21364)") + UNAME_MACHINE=alphaev7 ;; + "EV7.9 (21364A)") + UNAME_MACHINE=alphaev79 ;; + esac + # A Pn.n version is a patched version. + # A Vn.n version is a released version. + # A Tn.n version is a released field test version. + # A Xn.n version is an unreleased experimental baselevel. + # 1.2 uses "1.2" for uname -r. + echo "$UNAME_MACHINE"-dec-osf"`echo "$UNAME_RELEASE" | sed -e 's/^[PVTX]//' | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz`" + # Reset EXIT trap before exiting to avoid spurious non-zero exit code. + exitcode=$? + trap '' 0 + exit $exitcode ;; + Amiga*:UNIX_System_V:4.0:*) + echo m68k-unknown-sysv4 + exit ;; + *:[Aa]miga[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-amigaos + exit ;; + *:[Mm]orph[Oo][Ss]:*:*) + echo "$UNAME_MACHINE"-unknown-morphos + exit ;; + *:OS/390:*:*) + echo i370-ibm-openedition + exit ;; + *:z/VM:*:*) + echo s390-ibm-zvmoe + exit ;; + *:OS400:*:*) + echo powerpc-ibm-os400 + exit ;; + arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) + echo arm-acorn-riscix"$UNAME_RELEASE" + exit ;; + arm*:riscos:*:*|arm*:RISCOS:*:*) + echo arm-unknown-riscos + exit ;; + SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) + echo hppa1.1-hitachi-hiuxmpp + exit ;; + Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) + # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. + if test "`(/bin/universe) 2>/dev/null`" = att ; then + echo pyramid-pyramid-sysv3 + else + echo pyramid-pyramid-bsd + fi + exit ;; + NILE*:*:*:dcosx) + echo pyramid-pyramid-svr4 + exit ;; + DRS?6000:unix:4.0:6*) + echo sparc-icl-nx6 + exit ;; + DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) + case `/usr/bin/uname -p` in + sparc) echo sparc-icl-nx7; exit ;; + esac ;; + s390x:SunOS:*:*) + echo "$UNAME_MACHINE"-ibm-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + sun4H:SunOS:5.*:*) + echo sparc-hal-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) + echo sparc-sun-solaris2"`echo "$UNAME_RELEASE" | sed -e 's/[^.]*//'`" + exit ;; + i86pc:AuroraUX:5.*:* | i86xen:AuroraUX:5.*:*) + echo i386-pc-auroraux"$UNAME_RELEASE" + exit ;; + i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) + eval "$set_cc_for_build" + SUN_ARCH=i386 + # If there is a compiler, see if it is configured for 64-bit objects. + # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. + # This test works for both compilers. + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + SUN_ARCH=x86_64 + fi + fi + echo "$SUN_ARCH"-pc-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:6*:*) + # According to config.sub, this is the proper way to canonicalize + # SunOS6. Hard to guess exactly what SunOS6 will be like, but + # it's likely to be more like Solaris than SunOS4. + echo sparc-sun-solaris3"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + sun4*:SunOS:*:*) + case "`/usr/bin/arch -k`" in + Series*|S4*) + UNAME_RELEASE=`uname -v` + ;; + esac + # Japanese Language versions have a version number like `4.1.3-JL'. + echo sparc-sun-sunos"`echo "$UNAME_RELEASE"|sed -e 's/-/_/'`" + exit ;; + sun3*:SunOS:*:*) + echo m68k-sun-sunos"$UNAME_RELEASE" + exit ;; + sun*:*:4.2BSD:*) + UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` + test "x$UNAME_RELEASE" = x && UNAME_RELEASE=3 + case "`/bin/arch`" in + sun3) + echo m68k-sun-sunos"$UNAME_RELEASE" + ;; + sun4) + echo sparc-sun-sunos"$UNAME_RELEASE" + ;; + esac + exit ;; + aushp:SunOS:*:*) + echo sparc-auspex-sunos"$UNAME_RELEASE" + exit ;; + # The situation for MiNT is a little confusing. The machine name + # can be virtually everything (everything which is not + # "atarist" or "atariste" at least should have a processor + # > m68000). The system name ranges from "MiNT" over "FreeMiNT" + # to the lowercase version "mint" (or "freemint"). Finally + # the system name "TOS" denotes a system which is actually not + # MiNT. But MiNT is downward compatible to TOS, so this should + # be no problem. + atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) + echo m68k-atari-mint"$UNAME_RELEASE" + exit ;; + milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) + echo m68k-milan-mint"$UNAME_RELEASE" + exit ;; + hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) + echo m68k-hades-mint"$UNAME_RELEASE" + exit ;; + *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) + echo m68k-unknown-mint"$UNAME_RELEASE" + exit ;; + m68k:machten:*:*) + echo m68k-apple-machten"$UNAME_RELEASE" + exit ;; + powerpc:machten:*:*) + echo powerpc-apple-machten"$UNAME_RELEASE" + exit ;; + RISC*:Mach:*:*) + echo mips-dec-mach_bsd4.3 + exit ;; + RISC*:ULTRIX:*:*) + echo mips-dec-ultrix"$UNAME_RELEASE" + exit ;; + VAX*:ULTRIX*:*:*) + echo vax-dec-ultrix"$UNAME_RELEASE" + exit ;; + 2020:CLIX:*:* | 2430:CLIX:*:*) + echo clipper-intergraph-clix"$UNAME_RELEASE" + exit ;; + mips:*:*:UMIPS | mips:*:*:RISCos) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" +#ifdef __cplusplus +#include /* for printf() prototype */ + int main (int argc, char *argv[]) { +#else + int main (argc, argv) int argc; char *argv[]; { +#endif + #if defined (host_mips) && defined (MIPSEB) + #if defined (SYSTYPE_SYSV) + printf ("mips-mips-riscos%ssysv\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_SVR4) + printf ("mips-mips-riscos%ssvr4\\n", argv[1]); exit (0); + #endif + #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) + printf ("mips-mips-riscos%sbsd\\n", argv[1]); exit (0); + #endif + #endif + exit (-1); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && + dummyarg=`echo "$UNAME_RELEASE" | sed -n 's/\([0-9]*\).*/\1/p'` && + SYSTEM_NAME=`"$dummy" "$dummyarg"` && + { echo "$SYSTEM_NAME"; exit; } + echo mips-mips-riscos"$UNAME_RELEASE" + exit ;; + Motorola:PowerMAX_OS:*:*) + echo powerpc-motorola-powermax + exit ;; + Motorola:*:4.3:PL8-*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) + echo powerpc-harris-powermax + exit ;; + Night_Hawk:Power_UNIX:*:*) + echo powerpc-harris-powerunix + exit ;; + m88k:CX/UX:7*:*) + echo m88k-harris-cxux7 + exit ;; + m88k:*:4*:R4*) + echo m88k-motorola-sysv4 + exit ;; + m88k:*:3*:R3*) + echo m88k-motorola-sysv3 + exit ;; + AViiON:dgux:*:*) + # DG/UX returns AViiON for all architectures + UNAME_PROCESSOR=`/usr/bin/uname -p` + if [ "$UNAME_PROCESSOR" = mc88100 ] || [ "$UNAME_PROCESSOR" = mc88110 ] + then + if [ "$TARGET_BINARY_INTERFACE"x = m88kdguxelfx ] || \ + [ "$TARGET_BINARY_INTERFACE"x = x ] + then + echo m88k-dg-dgux"$UNAME_RELEASE" + else + echo m88k-dg-dguxbcs"$UNAME_RELEASE" + fi + else + echo i586-dg-dgux"$UNAME_RELEASE" + fi + exit ;; + M88*:DolphinOS:*:*) # DolphinOS (SVR3) + echo m88k-dolphin-sysv3 + exit ;; + M88*:*:R3*:*) + # Delta 88k system running SVR3 + echo m88k-motorola-sysv3 + exit ;; + XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) + echo m88k-tektronix-sysv3 + exit ;; + Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) + echo m68k-tektronix-bsd + exit ;; + *:IRIX*:*:*) + echo mips-sgi-irix"`echo "$UNAME_RELEASE"|sed -e 's/-/_/g'`" + exit ;; + ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. + echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id + exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' + i*86:AIX:*:*) + echo i386-ibm-aix + exit ;; + ia64:AIX:*:*) + if [ -x /usr/bin/oslevel ] ; then + IBM_REV=`/usr/bin/oslevel` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$UNAME_MACHINE"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:2:3) + if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + + main() + { + if (!__power_pc()) + exit(1); + puts("powerpc-ibm-aix3.2.5"); + exit(0); + } +EOF + if $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` + then + echo "$SYSTEM_NAME" + else + echo rs6000-ibm-aix3.2.5 + fi + elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then + echo rs6000-ibm-aix3.2.4 + else + echo rs6000-ibm-aix3.2 + fi + exit ;; + *:AIX:*:[4567]) + IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` + if /usr/sbin/lsattr -El "$IBM_CPU_ID" | grep ' POWER' >/dev/null 2>&1; then + IBM_ARCH=rs6000 + else + IBM_ARCH=powerpc + fi + if [ -x /usr/bin/lslpp ] ; then + IBM_REV=`/usr/bin/lslpp -Lqc bos.rte.libc | + awk -F: '{ print $3 }' | sed s/[0-9]*$/0/` + else + IBM_REV="$UNAME_VERSION.$UNAME_RELEASE" + fi + echo "$IBM_ARCH"-ibm-aix"$IBM_REV" + exit ;; + *:AIX:*:*) + echo rs6000-ibm-aix + exit ;; + ibmrt:4.4BSD:*|romp-ibm:4.4BSD:*) + echo romp-ibm-bsd4.4 + exit ;; + ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and + echo romp-ibm-bsd"$UNAME_RELEASE" # 4.3 with uname added to + exit ;; # report: romp-ibm BSD 4.3 + *:BOSX:*:*) + echo rs6000-bull-bosx + exit ;; + DPX/2?00:B.O.S.:*:*) + echo m68k-bull-sysv3 + exit ;; + 9000/[34]??:4.3bsd:1.*:*) + echo m68k-hp-bsd + exit ;; + hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) + echo m68k-hp-bsd4.4 + exit ;; + 9000/[34678]??:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + case "$UNAME_MACHINE" in + 9000/31?) HP_ARCH=m68000 ;; + 9000/[34]??) HP_ARCH=m68k ;; + 9000/[678][0-9][0-9]) + if [ -x /usr/bin/getconf ]; then + sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` + sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` + case "$sc_cpu_version" in + 523) HP_ARCH=hppa1.0 ;; # CPU_PA_RISC1_0 + 528) HP_ARCH=hppa1.1 ;; # CPU_PA_RISC1_1 + 532) # CPU_PA_RISC2_0 + case "$sc_kernel_bits" in + 32) HP_ARCH=hppa2.0n ;; + 64) HP_ARCH=hppa2.0w ;; + '') HP_ARCH=hppa2.0 ;; # HP-UX 10.20 + esac ;; + esac + fi + if [ "$HP_ARCH" = "" ]; then + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + + #define _HPUX_SOURCE + #include + #include + + int main () + { + #if defined(_SC_KERNEL_BITS) + long bits = sysconf(_SC_KERNEL_BITS); + #endif + long cpu = sysconf (_SC_CPU_VERSION); + + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1"); break; + case CPU_PA_RISC2_0: + #if defined(_SC_KERNEL_BITS) + switch (bits) + { + case 64: puts ("hppa2.0w"); break; + case 32: puts ("hppa2.0n"); break; + default: puts ("hppa2.0"); break; + } break; + #else /* !defined(_SC_KERNEL_BITS) */ + puts ("hppa2.0"); break; + #endif + default: puts ("hppa1.0"); break; + } + exit (0); + } +EOF + (CCOPTS="" $CC_FOR_BUILD -o "$dummy" "$dummy.c" 2>/dev/null) && HP_ARCH=`"$dummy"` + test -z "$HP_ARCH" && HP_ARCH=hppa + fi ;; + esac + if [ "$HP_ARCH" = hppa2.0w ] + then + eval "$set_cc_for_build" + + # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating + # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler + # generating 64-bit code. GNU and HP use different nomenclature: + # + # $ CC_FOR_BUILD=cc ./config.guess + # => hppa2.0w-hp-hpux11.23 + # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess + # => hppa64-hp-hpux11.23 + + if echo __LP64__ | (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | + grep -q __LP64__ + then + HP_ARCH=hppa2.0w + else + HP_ARCH=hppa64 + fi + fi + echo "$HP_ARCH"-hp-hpux"$HPUX_REV" + exit ;; + ia64:HP-UX:*:*) + HPUX_REV=`echo "$UNAME_RELEASE"|sed -e 's/[^.]*.[0B]*//'` + echo ia64-hp-hpux"$HPUX_REV" + exit ;; + 3050*:HI-UX:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #include + int + main () + { + long cpu = sysconf (_SC_CPU_VERSION); + /* The order matters, because CPU_IS_HP_MC68K erroneously returns + true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct + results, however. */ + if (CPU_IS_PA_RISC (cpu)) + { + switch (cpu) + { + case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; + case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; + case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; + default: puts ("hppa-hitachi-hiuxwe2"); break; + } + } + else if (CPU_IS_HP_MC68K (cpu)) + puts ("m68k-hitachi-hiuxwe2"); + else puts ("unknown-hitachi-hiuxwe2"); + exit (0); + } +EOF + $CC_FOR_BUILD -o "$dummy" "$dummy.c" && SYSTEM_NAME=`"$dummy"` && + { echo "$SYSTEM_NAME"; exit; } + echo unknown-hitachi-hiuxwe2 + exit ;; + 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:*) + echo hppa1.1-hp-bsd + exit ;; + 9000/8??:4.3bsd:*:*) + echo hppa1.0-hp-bsd + exit ;; + *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) + echo hppa1.0-hp-mpeix + exit ;; + hp7??:OSF1:*:* | hp8?[79]:OSF1:*:*) + echo hppa1.1-hp-osf + exit ;; + hp8??:OSF1:*:*) + echo hppa1.0-hp-osf + exit ;; + i*86:OSF1:*:*) + if [ -x /usr/sbin/sysversion ] ; then + echo "$UNAME_MACHINE"-unknown-osf1mk + else + echo "$UNAME_MACHINE"-unknown-osf1 + fi + exit ;; + parisc*:Lites*:*:*) + echo hppa1.1-hp-lites + exit ;; + C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) + echo c1-convex-bsd + exit ;; + C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) + if getsysinfo -f scalar_acc + then echo c32-convex-bsd + else echo c2-convex-bsd + fi + exit ;; + C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) + echo c34-convex-bsd + exit ;; + C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) + echo c38-convex-bsd + exit ;; + C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) + echo c4-convex-bsd + exit ;; + CRAY*Y-MP:*:*:*) + echo ymp-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*[A-Z]90:*:*:*) + echo "$UNAME_MACHINE"-cray-unicos"$UNAME_RELEASE" \ + | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ + -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ + -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*TS:*:*:*) + echo t90-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*T3E:*:*:*) + echo alphaev5-cray-unicosmk"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + CRAY*SV1:*:*:*) + echo sv1-cray-unicos"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + *:UNICOS/mp:*:*) + echo craynv-cray-unicosmp"$UNAME_RELEASE" | sed -e 's/\.[^.]*$/.X/' + exit ;; + F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) + FUJITSU_PROC=`uname -m | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz` + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | sed -e 's/ /_/'` + echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + 5000:UNIX_System_V:4.*:*) + FUJITSU_SYS=`uname -p | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/\///'` + FUJITSU_REL=`echo "$UNAME_RELEASE" | tr ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz | sed -e 's/ /_/'` + echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" + exit ;; + i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) + echo "$UNAME_MACHINE"-pc-bsdi"$UNAME_RELEASE" + exit ;; + sparc*:BSD/OS:*:*) + echo sparc-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:BSD/OS:*:*) + echo "$UNAME_MACHINE"-unknown-bsdi"$UNAME_RELEASE" + exit ;; + *:FreeBSD:*:*) + UNAME_PROCESSOR=`/usr/bin/uname -p` + case "$UNAME_PROCESSOR" in + amd64) + UNAME_PROCESSOR=x86_64 ;; + i386) + UNAME_PROCESSOR=i586 ;; + esac + echo "$UNAME_PROCESSOR"-unknown-freebsd"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + i*:CYGWIN*:*) + echo "$UNAME_MACHINE"-pc-cygwin + exit ;; + *:MINGW64*:*) + echo "$UNAME_MACHINE"-pc-mingw64 + exit ;; + *:MINGW*:*) + echo "$UNAME_MACHINE"-pc-mingw32 + exit ;; + *:MSYS*:*) + echo "$UNAME_MACHINE"-pc-msys + exit ;; + i*:PW*:*) + echo "$UNAME_MACHINE"-pc-pw32 + exit ;; + *:Interix*:*) + case "$UNAME_MACHINE" in + x86) + echo i586-pc-interix"$UNAME_RELEASE" + exit ;; + authenticamd | genuineintel | EM64T) + echo x86_64-unknown-interix"$UNAME_RELEASE" + exit ;; + IA64) + echo ia64-unknown-interix"$UNAME_RELEASE" + exit ;; + esac ;; + i*:UWIN*:*) + echo "$UNAME_MACHINE"-pc-uwin + exit ;; + amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) + echo x86_64-unknown-cygwin + exit ;; + prep*:SunOS:5.*:*) + echo powerpcle-unknown-solaris2"`echo "$UNAME_RELEASE"|sed -e 's/[^.]*//'`" + exit ;; + *:GNU:*:*) + # the GNU system + echo "`echo "$UNAME_MACHINE"|sed -e 's,[-/].*$,,'`-unknown-$LIBC`echo "$UNAME_RELEASE"|sed -e 's,/.*$,,'`" + exit ;; + *:GNU/*:*:*) + # other systems with GNU libc and userland + echo "$UNAME_MACHINE-unknown-`echo "$UNAME_SYSTEM" | sed 's,^[^/]*/,,' | tr "[:upper:]" "[:lower:]"``echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`-$LIBC" + exit ;; + i*86:Minix:*:*) + echo "$UNAME_MACHINE"-pc-minix + exit ;; + aarch64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + aarch64_be:Linux:*:*) + UNAME_MACHINE=aarch64_be + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + alpha:Linux:*:*) + case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in + EV5) UNAME_MACHINE=alphaev5 ;; + EV56) UNAME_MACHINE=alphaev56 ;; + PCA56) UNAME_MACHINE=alphapca56 ;; + PCA57) UNAME_MACHINE=alphapca56 ;; + EV6) UNAME_MACHINE=alphaev6 ;; + EV67) UNAME_MACHINE=alphaev67 ;; + EV68*) UNAME_MACHINE=alphaev68 ;; + esac + objdump --private-headers /bin/sh | grep -q ld.so.1 + if test "$?" = 0 ; then LIBC=gnulibc1 ; fi + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arc:Linux:*:* | arceb:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + arm*:Linux:*:*) + eval "$set_cc_for_build" + if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_EABI__ + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + else + if echo __ARM_PCS_VFP | $CC_FOR_BUILD -E - 2>/dev/null \ + | grep -q __ARM_PCS_VFP + then + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabi + else + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC"eabihf + fi + fi + exit ;; + avr32*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + cris:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + crisv32:Linux:*:*) + echo "$UNAME_MACHINE"-axis-linux-"$LIBC" + exit ;; + e2k:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + frv:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + hexagon:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:Linux:*:*) + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + exit ;; + ia64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + k1om:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m32r*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + m68*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + mips:Linux:*:* | mips64:Linux:*:*) + eval "$set_cc_for_build" + sed 's/^ //' << EOF > "$dummy.c" + #undef CPU + #undef ${UNAME_MACHINE} + #undef ${UNAME_MACHINE}el + #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) + CPU=${UNAME_MACHINE}el + #else + #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) + CPU=${UNAME_MACHINE} + #else + CPU= + #endif + #endif +EOF + eval "`$CC_FOR_BUILD -E "$dummy.c" 2>/dev/null | grep '^CPU'`" + test "x$CPU" != x && { echo "$CPU-unknown-linux-$LIBC"; exit; } + ;; + mips64el:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + openrisc*:Linux:*:*) + echo or1k-unknown-linux-"$LIBC" + exit ;; + or32:Linux:*:* | or1k*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + padre:Linux:*:*) + echo sparc-unknown-linux-"$LIBC" + exit ;; + parisc64:Linux:*:* | hppa64:Linux:*:*) + echo hppa64-unknown-linux-"$LIBC" + exit ;; + parisc:Linux:*:* | hppa:Linux:*:*) + # Look for CPU level + case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in + PA7*) echo hppa1.1-unknown-linux-"$LIBC" ;; + PA8*) echo hppa2.0-unknown-linux-"$LIBC" ;; + *) echo hppa-unknown-linux-"$LIBC" ;; + esac + exit ;; + ppc64:Linux:*:*) + echo powerpc64-unknown-linux-"$LIBC" + exit ;; + ppc:Linux:*:*) + echo powerpc-unknown-linux-"$LIBC" + exit ;; + ppc64le:Linux:*:*) + echo powerpc64le-unknown-linux-"$LIBC" + exit ;; + ppcle:Linux:*:*) + echo powerpcle-unknown-linux-"$LIBC" + exit ;; + riscv32:Linux:*:* | riscv64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + s390:Linux:*:* | s390x:Linux:*:*) + echo "$UNAME_MACHINE"-ibm-linux-"$LIBC" + exit ;; + sh64*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sh*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + sparc:Linux:*:* | sparc64:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + tile*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + vax:Linux:*:*) + echo "$UNAME_MACHINE"-dec-linux-"$LIBC" + exit ;; + x86_64:Linux:*:*) + if objdump -f /bin/sh | grep -q elf32-x86-64; then + echo "$UNAME_MACHINE"-pc-linux-"$LIBC"x32 + else + echo "$UNAME_MACHINE"-pc-linux-"$LIBC" + fi + exit ;; + xtensa*:Linux:*:*) + echo "$UNAME_MACHINE"-unknown-linux-"$LIBC" + exit ;; + i*86:DYNIX/ptx:4*:*) + # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. + # earlier versions are messed up and put the nodename in both + # sysname and nodename. + echo i386-sequent-sysv4 + exit ;; + i*86:UNIX_SV:4.2MP:2.*) + # Unixware is an offshoot of SVR4, but it has its own version + # number series starting with 2... + # I am not positive that other SVR4 systems won't match this, + # I just have to hope. -- rms. + # Use sysv4.2uw... so that sysv4* matches it. + echo "$UNAME_MACHINE"-pc-sysv4.2uw"$UNAME_VERSION" + exit ;; + i*86:OS/2:*:*) + # If we were able to find `uname', then EMX Unix compatibility + # is probably installed. + echo "$UNAME_MACHINE"-pc-os2-emx + exit ;; + i*86:XTS-300:*:STOP) + echo "$UNAME_MACHINE"-unknown-stop + exit ;; + i*86:atheos:*:*) + echo "$UNAME_MACHINE"-unknown-atheos + exit ;; + i*86:syllable:*:*) + echo "$UNAME_MACHINE"-pc-syllable + exit ;; + i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) + echo i386-unknown-lynxos"$UNAME_RELEASE" + exit ;; + i*86:*DOS:*:*) + echo "$UNAME_MACHINE"-pc-msdosdjgpp + exit ;; + i*86:*:4.*:*) + UNAME_REL=`echo "$UNAME_RELEASE" | sed 's/\/MP$//'` + if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then + echo "$UNAME_MACHINE"-univel-sysv"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv"$UNAME_REL" + fi + exit ;; + i*86:*:5:[678]*) + # UnixWare 7.x, OpenUNIX and OpenServer 6. + case `/bin/uname -X | grep "^Machine"` in + *486*) UNAME_MACHINE=i486 ;; + *Pentium) UNAME_MACHINE=i586 ;; + *Pent*|*Celeron) UNAME_MACHINE=i686 ;; + esac + echo "$UNAME_MACHINE-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}{$UNAME_VERSION}" + exit ;; + i*86:*:3.2:*) + if test -f /usr/options/cb.name; then + UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then + UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` + (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 + (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ + && UNAME_MACHINE=i586 + (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ + && UNAME_MACHINE=i686 + (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ + && UNAME_MACHINE=i686 + echo "$UNAME_MACHINE"-pc-sco"$UNAME_REL" + else + echo "$UNAME_MACHINE"-pc-sysv32 + fi + exit ;; + pc:*:*:*) + # Left here for compatibility: + # uname -m prints for DJGPP always 'pc', but it prints nothing about + # the processor, so we play safe by assuming i586. + # Note: whatever this is, it MUST be the same as what config.sub + # prints for the "djgpp" host, or else GDB configure will decide that + # this is a cross-build. + echo i586-pc-msdosdjgpp + exit ;; + Intel:Mach:3*:*) + echo i386-pc-mach3 + exit ;; + paragon:*:*:*) + echo i860-intel-osf1 + exit ;; + i860:*:4.*:*) # i860-SVR4 + if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then + echo i860-stardent-sysv"$UNAME_RELEASE" # Stardent Vistra i860-SVR4 + else # Add other i860-SVR4 vendors below as they are discovered. + echo i860-unknown-sysv"$UNAME_RELEASE" # Unknown i860-SVR4 + fi + exit ;; + mini*:CTIX:SYS*5:*) + # "miniframe" + echo m68010-convergent-sysv + exit ;; + mc68k:UNIX:SYSTEM5:3.51m) + echo m68k-convergent-sysv + exit ;; + M680?0:D-NIX:5.3:*) + echo m68k-diab-dnix + exit ;; + M68*:*:R3V[5678]*:*) + test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; + 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) + OS_REL='' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4; exit; } ;; + NCR*:*:4.2:* | MPRAS*:*:4.2:*) + OS_REL='.3' + test -r /etc/.relid \ + && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` + /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ + && { echo i486-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } + /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ + && { echo i586-ncr-sysv4.3"$OS_REL"; exit; } ;; + m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) + echo m68k-unknown-lynxos"$UNAME_RELEASE" + exit ;; + mc68030:UNIX_System_V:4.*:*) + echo m68k-atari-sysv4 + exit ;; + TSUNAMI:LynxOS:2.*:*) + echo sparc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + rs6000:LynxOS:2.*:*) + echo rs6000-unknown-lynxos"$UNAME_RELEASE" + exit ;; + PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) + echo powerpc-unknown-lynxos"$UNAME_RELEASE" + exit ;; + SM[BE]S:UNIX_SV:*:*) + echo mips-dde-sysv"$UNAME_RELEASE" + exit ;; + RM*:ReliantUNIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + RM*:SINIX-*:*:*) + echo mips-sni-sysv4 + exit ;; + *:SINIX-*:*:*) + if uname -p 2>/dev/null >/dev/null ; then + UNAME_MACHINE=`(uname -p) 2>/dev/null` + echo "$UNAME_MACHINE"-sni-sysv4 + else + echo ns32k-sni-sysv + fi + exit ;; + PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort + # says + echo i586-unisys-sysv4 + exit ;; + *:UNIX_System_V:4*:FTX*) + # From Gerald Hewes . + # How about differentiating between stratus architectures? -djm + echo hppa1.1-stratus-sysv4 + exit ;; + *:*:*:FTX*) + # From seanf@swdc.stratus.com. + echo i860-stratus-sysv4 + exit ;; + i*86:VOS:*:*) + # From Paul.Green@stratus.com. + echo "$UNAME_MACHINE"-stratus-vos + exit ;; + *:VOS:*:*) + # From Paul.Green@stratus.com. + echo hppa1.1-stratus-vos + exit ;; + mc68*:A/UX:*:*) + echo m68k-apple-aux"$UNAME_RELEASE" + exit ;; + news*:NEWS-OS:6*:*) + echo mips-sony-newsos6 + exit ;; + R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) + if [ -d /usr/nec ]; then + echo mips-nec-sysv"$UNAME_RELEASE" + else + echo mips-unknown-sysv"$UNAME_RELEASE" + fi + exit ;; + BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. + echo powerpc-be-beos + exit ;; + BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. + echo powerpc-apple-beos + exit ;; + BePC:BeOS:*:*) # BeOS running on Intel PC compatible. + echo i586-pc-beos + exit ;; + BePC:Haiku:*:*) # Haiku running on Intel PC compatible. + echo i586-pc-haiku + exit ;; + x86_64:Haiku:*:*) + echo x86_64-unknown-haiku + exit ;; + SX-4:SUPER-UX:*:*) + echo sx4-nec-superux"$UNAME_RELEASE" + exit ;; + SX-5:SUPER-UX:*:*) + echo sx5-nec-superux"$UNAME_RELEASE" + exit ;; + SX-6:SUPER-UX:*:*) + echo sx6-nec-superux"$UNAME_RELEASE" + exit ;; + SX-7:SUPER-UX:*:*) + echo sx7-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8:SUPER-UX:*:*) + echo sx8-nec-superux"$UNAME_RELEASE" + exit ;; + SX-8R:SUPER-UX:*:*) + echo sx8r-nec-superux"$UNAME_RELEASE" + exit ;; + SX-ACE:SUPER-UX:*:*) + echo sxace-nec-superux"$UNAME_RELEASE" + exit ;; + Power*:Rhapsody:*:*) + echo powerpc-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Rhapsody:*:*) + echo "$UNAME_MACHINE"-apple-rhapsody"$UNAME_RELEASE" + exit ;; + *:Darwin:*:*) + UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown + eval "$set_cc_for_build" + if test "$UNAME_PROCESSOR" = unknown ; then + UNAME_PROCESSOR=powerpc + fi + if test "`echo "$UNAME_RELEASE" | sed -e 's/\..*//'`" -le 10 ; then + if [ "$CC_FOR_BUILD" != no_compiler_found ]; then + if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_64BIT_ARCH >/dev/null + then + case $UNAME_PROCESSOR in + i386) UNAME_PROCESSOR=x86_64 ;; + powerpc) UNAME_PROCESSOR=powerpc64 ;; + esac + fi + # On 10.4-10.6 one might compile for PowerPC via gcc -arch ppc + if (echo '#ifdef __POWERPC__'; echo IS_PPC; echo '#endif') | \ + (CCOPTS="" $CC_FOR_BUILD -E - 2>/dev/null) | \ + grep IS_PPC >/dev/null + then + UNAME_PROCESSOR=powerpc + fi + fi + elif test "$UNAME_PROCESSOR" = i386 ; then + # Avoid executing cc on OS X 10.9, as it ships with a stub + # that puts up a graphical alert prompting to install + # developer tools. Any system running Mac OS X 10.7 or + # later (Darwin 11 and later) is required to have a 64-bit + # processor. This is not true of the ARM version of Darwin + # that Apple uses in portable devices. + UNAME_PROCESSOR=x86_64 + fi + echo "$UNAME_PROCESSOR"-apple-darwin"$UNAME_RELEASE" + exit ;; + *:procnto*:*:* | *:QNX:[0123456789]*:*) + UNAME_PROCESSOR=`uname -p` + if test "$UNAME_PROCESSOR" = x86; then + UNAME_PROCESSOR=i386 + UNAME_MACHINE=pc + fi + echo "$UNAME_PROCESSOR"-"$UNAME_MACHINE"-nto-qnx"$UNAME_RELEASE" + exit ;; + *:QNX:*:4*) + echo i386-pc-qnx + exit ;; + NEO-*:NONSTOP_KERNEL:*:*) + echo neo-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSE-*:NONSTOP_KERNEL:*:*) + echo nse-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSR-*:NONSTOP_KERNEL:*:*) + echo nsr-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSV-*:NONSTOP_KERNEL:*:*) + echo nsv-tandem-nsk"$UNAME_RELEASE" + exit ;; + NSX-*:NONSTOP_KERNEL:*:*) + echo nsx-tandem-nsk"$UNAME_RELEASE" + exit ;; + *:NonStop-UX:*:*) + echo mips-compaq-nonstopux + exit ;; + BS2000:POSIX*:*:*) + echo bs2000-siemens-sysv + exit ;; + DS/*:UNIX_System_V:*:*) + echo "$UNAME_MACHINE"-"$UNAME_SYSTEM"-"$UNAME_RELEASE" + exit ;; + *:Plan9:*:*) + # "uname -m" is not consistent, so use $cputype instead. 386 + # is converted to i386 for consistency with other x86 + # operating systems. + if test "$cputype" = 386; then + UNAME_MACHINE=i386 + else + UNAME_MACHINE="$cputype" + fi + echo "$UNAME_MACHINE"-unknown-plan9 + exit ;; + *:TOPS-10:*:*) + echo pdp10-unknown-tops10 + exit ;; + *:TENEX:*:*) + echo pdp10-unknown-tenex + exit ;; + KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) + echo pdp10-dec-tops20 + exit ;; + XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) + echo pdp10-xkl-tops20 + exit ;; + *:TOPS-20:*:*) + echo pdp10-unknown-tops20 + exit ;; + *:ITS:*:*) + echo pdp10-unknown-its + exit ;; + SEI:*:*:SEIUX) + echo mips-sei-seiux"$UNAME_RELEASE" + exit ;; + *:DragonFly:*:*) + echo "$UNAME_MACHINE"-unknown-dragonfly"`echo "$UNAME_RELEASE"|sed -e 's/[-(].*//'`" + exit ;; + *:*VMS:*:*) + UNAME_MACHINE=`(uname -p) 2>/dev/null` + case "$UNAME_MACHINE" in + A*) echo alpha-dec-vms ; exit ;; + I*) echo ia64-dec-vms ; exit ;; + V*) echo vax-dec-vms ; exit ;; + esac ;; + *:XENIX:*:SysV) + echo i386-pc-xenix + exit ;; + i*86:skyos:*:*) + echo "$UNAME_MACHINE"-pc-skyos"`echo "$UNAME_RELEASE" | sed -e 's/ .*$//'`" + exit ;; + i*86:rdos:*:*) + echo "$UNAME_MACHINE"-pc-rdos + exit ;; + i*86:AROS:*:*) + echo "$UNAME_MACHINE"-pc-aros + exit ;; + x86_64:VMkernel:*:*) + echo "$UNAME_MACHINE"-unknown-esx + exit ;; + amd64:Isilon\ OneFS:*:*) + echo x86_64-unknown-onefs + exit ;; +esac + +echo "$0: unable to guess system type" >&2 + +case "$UNAME_MACHINE:$UNAME_SYSTEM" in + mips:Linux | mips64:Linux) + # If we got here on MIPS GNU/Linux, output extra information. + cat >&2 <&2 </dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null` + +hostinfo = `(hostinfo) 2>/dev/null` +/bin/universe = `(/bin/universe) 2>/dev/null` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` +/bin/arch = `(/bin/arch) 2>/dev/null` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` + +UNAME_MACHINE = "$UNAME_MACHINE" +UNAME_RELEASE = "$UNAME_RELEASE" +UNAME_SYSTEM = "$UNAME_SYSTEM" +UNAME_VERSION = "$UNAME_VERSION" +EOF + +exit 1 + +# Local variables: +# eval: (add-hook 'write-file-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/deps/cares/config.sub b/deps/cares/config.sub new file mode 100755 index 00000000000000..1d8e98bcee23a0 --- /dev/null +++ b/deps/cares/config.sub @@ -0,0 +1,1801 @@ +#! /bin/sh +# Configuration validation subroutine script. +# Copyright 1992-2018 Free Software Foundation, Inc. + +timestamp='2018-02-22' + +# This file is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, see . +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that +# program. This Exception is an additional permission under section 7 +# of the GNU General Public License, version 3 ("GPLv3"). + + +# Please send patches to . +# +# Configuration subroutine to validate and canonicalize a configuration type. +# Supply the specified configuration type as an argument. +# If it is invalid, we print an error message on stderr and exit with code 1. +# Otherwise, we print the canonical config type on stdout and succeed. + +# You can get the latest version of this script from: +# https://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub + +# This file is supposed to be the same for all GNU packages +# and recognize all the CPU types, system types and aliases +# that are meaningful with *any* GNU software. +# Each package is responsible for reporting which valid configurations +# it does not support. The user should be able to distinguish +# a failure to support a valid configuration from a meaningless +# configuration. + +# The goal of this file is to map all the various variations of a given +# machine specification into a single specification in the form: +# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM +# or in some cases, the newer four-part form: +# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM +# It is wrong to echo any other type of specification. + +me=`echo "$0" | sed -e 's,.*/,,'` + +usage="\ +Usage: $0 [OPTION] CPU-MFR-OPSYS or ALIAS + +Canonicalize a configuration name. + +Options: + -h, --help print this help, then exit + -t, --time-stamp print date of last modification, then exit + -v, --version print version number, then exit + +Report bugs and patches to ." + +version="\ +GNU config.sub ($timestamp) + +Copyright 1992-2018 Free Software Foundation, Inc. + +This is free software; see the source for copying conditions. There is NO +warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." + +help=" +Try \`$me --help' for more information." + +# Parse command line +while test $# -gt 0 ; do + case $1 in + --time-stamp | --time* | -t ) + echo "$timestamp" ; exit ;; + --version | -v ) + echo "$version" ; exit ;; + --help | --h* | -h ) + echo "$usage"; exit ;; + -- ) # Stop option processing + shift; break ;; + - ) # Use stdin as input. + break ;; + -* ) + echo "$me: invalid option $1$help" + exit 1 ;; + + *local*) + # First pass through any local machine types. + echo "$1" + exit ;; + + * ) + break ;; + esac +done + +case $# in + 0) echo "$me: missing argument$help" >&2 + exit 1;; + 1) ;; + *) echo "$me: too many arguments$help" >&2 + exit 1;; +esac + +# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). +# Here we must recognize all the valid KERNEL-OS combinations. +maybe_os=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` +case $maybe_os in + nto-qnx* | linux-gnu* | linux-android* | linux-dietlibc | linux-newlib* | \ + linux-musl* | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ + knetbsd*-gnu* | netbsd*-gnu* | netbsd*-eabi* | \ + kopensolaris*-gnu* | cloudabi*-eabi* | \ + storm-chaos* | os2-emx* | rtmk-nova*) + os=-$maybe_os + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` + ;; + android-linux) + os=-linux-android + basic_machine=`echo "$1" | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`-unknown + ;; + *) + basic_machine=`echo "$1" | sed 's/-[^-]*$//'` + if [ "$basic_machine" != "$1" ] + then os=`echo "$1" | sed 's/.*-/-/'` + else os=; fi + ;; +esac + +### Let's recognize common machines as not being operating systems so +### that things like config.sub decstation-3100 work. We also +### recognize some manufacturers as not being operating systems, so we +### can provide default operating systems below. +case $os in + -sun*os*) + # Prevent following clause from handling this invalid input. + ;; + -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ + -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ + -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ + -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ + -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ + -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ + -apple | -axis | -knuth | -cray | -microblaze*) + os= + basic_machine=$1 + ;; + -bluegene*) + os=-cnk + ;; + -sim | -cisco | -oki | -wec | -winbond) + os= + basic_machine=$1 + ;; + -scout) + ;; + -wrs) + os=-vxworks + basic_machine=$1 + ;; + -chorusos*) + os=-chorusos + basic_machine=$1 + ;; + -chorusrdb) + os=-chorusrdb + basic_machine=$1 + ;; + -hiux*) + os=-hiuxwe2 + ;; + -sco6) + os=-sco5v6 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5) + os=-sco3.2v5 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco4) + os=-sco3.2v4 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2.[4-9]*) + os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco3.2v[4-9]*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco5v6*) + # Don't forget version if it is 3.2v4 or newer. + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -sco*) + os=-sco3.2v2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -udk*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -isc) + os=-isc2.2 + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -clix*) + basic_machine=clipper-intergraph + ;; + -isc*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-pc/'` + ;; + -lynx*178) + os=-lynxos178 + ;; + -lynx*5) + os=-lynxos5 + ;; + -lynx*) + os=-lynxos + ;; + -ptx*) + basic_machine=`echo "$1" | sed -e 's/86-.*/86-sequent/'` + ;; + -psos*) + os=-psos + ;; + -mint | -mint[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; +esac + +# Decode aliases for certain CPU-COMPANY combinations. +case $basic_machine in + # Recognize the basic CPU types without company name. + # Some are omitted here because they have special meanings below. + 1750a | 580 \ + | a29k \ + | aarch64 | aarch64_be \ + | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ + | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ + | am33_2.0 \ + | arc | arceb \ + | arm | arm[bl]e | arme[lb] | armv[2-8] | armv[3-8][lb] | armv7[arm] \ + | avr | avr32 \ + | ba \ + | be32 | be64 \ + | bfin \ + | c4x | c8051 | clipper \ + | d10v | d30v | dlx | dsp16xx \ + | e2k | epiphany \ + | fido | fr30 | frv | ft32 \ + | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ + | hexagon \ + | i370 | i860 | i960 | ia16 | ia64 \ + | ip2k | iq2000 \ + | k1om \ + | le32 | le64 \ + | lm32 \ + | m32c | m32r | m32rle | m68000 | m68k | m88k \ + | maxq | mb | microblaze | microblazeel | mcore | mep | metag \ + | mips | mipsbe | mipseb | mipsel | mipsle \ + | mips16 \ + | mips64 | mips64el \ + | mips64octeon | mips64octeonel \ + | mips64orion | mips64orionel \ + | mips64r5900 | mips64r5900el \ + | mips64vr | mips64vrel \ + | mips64vr4100 | mips64vr4100el \ + | mips64vr4300 | mips64vr4300el \ + | mips64vr5000 | mips64vr5000el \ + | mips64vr5900 | mips64vr5900el \ + | mipsisa32 | mipsisa32el \ + | mipsisa32r2 | mipsisa32r2el \ + | mipsisa32r6 | mipsisa32r6el \ + | mipsisa64 | mipsisa64el \ + | mipsisa64r2 | mipsisa64r2el \ + | mipsisa64r6 | mipsisa64r6el \ + | mipsisa64sb1 | mipsisa64sb1el \ + | mipsisa64sr71k | mipsisa64sr71kel \ + | mipsr5900 | mipsr5900el \ + | mipstx39 | mipstx39el \ + | mn10200 | mn10300 \ + | moxie \ + | mt \ + | msp430 \ + | nds32 | nds32le | nds32be \ + | nios | nios2 | nios2eb | nios2el \ + | ns16k | ns32k \ + | open8 | or1k | or1knd | or32 \ + | pdp10 | pj | pjl \ + | powerpc | powerpc64 | powerpc64le | powerpcle \ + | pru \ + | pyramid \ + | riscv32 | riscv64 \ + | rl78 | rx \ + | score \ + | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[234]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ + | sh64 | sh64le \ + | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ + | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ + | spu \ + | tahoe | tic4x | tic54x | tic55x | tic6x | tic80 | tron \ + | ubicom32 \ + | v850 | v850e | v850e1 | v850e2 | v850es | v850e2v3 \ + | visium \ + | wasm32 \ + | x86 | xc16x | xstormy16 | xtensa \ + | z8k | z80) + basic_machine=$basic_machine-unknown + ;; + c54x) + basic_machine=tic54x-unknown + ;; + c55x) + basic_machine=tic55x-unknown + ;; + c6x) + basic_machine=tic6x-unknown + ;; + leon|leon[3-9]) + basic_machine=sparc-$basic_machine + ;; + m6811 | m68hc11 | m6812 | m68hc12 | m68hcs12x | nvptx | picochip) + basic_machine=$basic_machine-unknown + os=-none + ;; + m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65) + ;; + ms1) + basic_machine=mt-unknown + ;; + + strongarm | thumb | xscale) + basic_machine=arm-unknown + ;; + xgate) + basic_machine=$basic_machine-unknown + os=-none + ;; + xscaleeb) + basic_machine=armeb-unknown + ;; + + xscaleel) + basic_machine=armel-unknown + ;; + + # We use `pc' rather than `unknown' + # because (1) that's what they normally are, and + # (2) the word "unknown" tends to confuse beginning users. + i*86 | x86_64) + basic_machine=$basic_machine-pc + ;; + # Object if more than one company name word. + *-*-*) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; + # Recognize the basic CPU types with company name. + 580-* \ + | a29k-* \ + | aarch64-* | aarch64_be-* \ + | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ + | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ + | alphapca5[67]-* | alpha64pca5[67]-* | arc-* | arceb-* \ + | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ + | avr-* | avr32-* \ + | ba-* \ + | be32-* | be64-* \ + | bfin-* | bs2000-* \ + | c[123]* | c30-* | [cjt]90-* | c4x-* \ + | c8051-* | clipper-* | craynv-* | cydra-* \ + | d10v-* | d30v-* | dlx-* \ + | e2k-* | elxsi-* \ + | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ + | h8300-* | h8500-* \ + | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ + | hexagon-* \ + | i*86-* | i860-* | i960-* | ia16-* | ia64-* \ + | ip2k-* | iq2000-* \ + | k1om-* \ + | le32-* | le64-* \ + | lm32-* \ + | m32c-* | m32r-* | m32rle-* \ + | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ + | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \ + | microblaze-* | microblazeel-* \ + | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ + | mips16-* \ + | mips64-* | mips64el-* \ + | mips64octeon-* | mips64octeonel-* \ + | mips64orion-* | mips64orionel-* \ + | mips64r5900-* | mips64r5900el-* \ + | mips64vr-* | mips64vrel-* \ + | mips64vr4100-* | mips64vr4100el-* \ + | mips64vr4300-* | mips64vr4300el-* \ + | mips64vr5000-* | mips64vr5000el-* \ + | mips64vr5900-* | mips64vr5900el-* \ + | mipsisa32-* | mipsisa32el-* \ + | mipsisa32r2-* | mipsisa32r2el-* \ + | mipsisa32r6-* | mipsisa32r6el-* \ + | mipsisa64-* | mipsisa64el-* \ + | mipsisa64r2-* | mipsisa64r2el-* \ + | mipsisa64r6-* | mipsisa64r6el-* \ + | mipsisa64sb1-* | mipsisa64sb1el-* \ + | mipsisa64sr71k-* | mipsisa64sr71kel-* \ + | mipsr5900-* | mipsr5900el-* \ + | mipstx39-* | mipstx39el-* \ + | mmix-* \ + | mt-* \ + | msp430-* \ + | nds32-* | nds32le-* | nds32be-* \ + | nios-* | nios2-* | nios2eb-* | nios2el-* \ + | none-* | np1-* | ns16k-* | ns32k-* \ + | open8-* \ + | or1k*-* \ + | orion-* \ + | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ + | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* \ + | pru-* \ + | pyramid-* \ + | riscv32-* | riscv64-* \ + | rl78-* | romp-* | rs6000-* | rx-* \ + | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ + | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ + | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ + | sparclite-* \ + | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | sv1-* | sx*-* \ + | tahoe-* \ + | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \ + | tile*-* \ + | tron-* \ + | ubicom32-* \ + | v850-* | v850e-* | v850e1-* | v850es-* | v850e2-* | v850e2v3-* \ + | vax-* \ + | visium-* \ + | wasm32-* \ + | we32k-* \ + | x86-* | x86_64-* | xc16x-* | xps100-* \ + | xstormy16-* | xtensa*-* \ + | ymp-* \ + | z8k-* | z80-*) + ;; + # Recognize the basic CPU types without company name, with glob match. + xtensa*) + basic_machine=$basic_machine-unknown + ;; + # Recognize the various machine names and aliases which stand + # for a CPU type and a company and sometimes even an OS. + 386bsd) + basic_machine=i386-pc + os=-bsd + ;; + 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) + basic_machine=m68000-att + ;; + 3b*) + basic_machine=we32k-att + ;; + a29khif) + basic_machine=a29k-amd + os=-udi + ;; + abacus) + basic_machine=abacus-unknown + ;; + adobe68k) + basic_machine=m68010-adobe + os=-scout + ;; + alliant | fx80) + basic_machine=fx80-alliant + ;; + altos | altos3068) + basic_machine=m68k-altos + ;; + am29k) + basic_machine=a29k-none + os=-bsd + ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + amdahl) + basic_machine=580-amdahl + os=-sysv + ;; + amiga | amiga-*) + basic_machine=m68k-unknown + ;; + amigaos | amigados) + basic_machine=m68k-unknown + os=-amigaos + ;; + amigaunix | amix) + basic_machine=m68k-unknown + os=-sysv4 + ;; + apollo68) + basic_machine=m68k-apollo + os=-sysv + ;; + apollo68bsd) + basic_machine=m68k-apollo + os=-bsd + ;; + aros) + basic_machine=i386-pc + os=-aros + ;; + asmjs) + basic_machine=asmjs-unknown + ;; + aux) + basic_machine=m68k-apple + os=-aux + ;; + balance) + basic_machine=ns32k-sequent + os=-dynix + ;; + blackfin) + basic_machine=bfin-unknown + os=-linux + ;; + blackfin-*) + basic_machine=bfin-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + bluegene*) + basic_machine=powerpc-ibm + os=-cnk + ;; + c54x-*) + basic_machine=tic54x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c55x-*) + basic_machine=tic55x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c6x-*) + basic_machine=tic6x-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + c90) + basic_machine=c90-cray + os=-unicos + ;; + cegcc) + basic_machine=arm-unknown + os=-cegcc + ;; + convex-c1) + basic_machine=c1-convex + os=-bsd + ;; + convex-c2) + basic_machine=c2-convex + os=-bsd + ;; + convex-c32) + basic_machine=c32-convex + os=-bsd + ;; + convex-c34) + basic_machine=c34-convex + os=-bsd + ;; + convex-c38) + basic_machine=c38-convex + os=-bsd + ;; + cray | j90) + basic_machine=j90-cray + os=-unicos + ;; + craynv) + basic_machine=craynv-cray + os=-unicosmp + ;; + cr16 | cr16-*) + basic_machine=cr16-unknown + os=-elf + ;; + crds | unos) + basic_machine=m68k-crds + ;; + crisv32 | crisv32-* | etraxfs*) + basic_machine=crisv32-axis + ;; + cris | cris-* | etrax*) + basic_machine=cris-axis + ;; + crx) + basic_machine=crx-unknown + os=-elf + ;; + da30 | da30-*) + basic_machine=m68k-da30 + ;; + decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) + basic_machine=mips-dec + ;; + decsystem10* | dec10*) + basic_machine=pdp10-dec + os=-tops10 + ;; + decsystem20* | dec20*) + basic_machine=pdp10-dec + os=-tops20 + ;; + delta | 3300 | motorola-3300 | motorola-delta \ + | 3300-motorola | delta-motorola) + basic_machine=m68k-motorola + ;; + delta88) + basic_machine=m88k-motorola + os=-sysv3 + ;; + dicos) + basic_machine=i686-pc + os=-dicos + ;; + djgpp) + basic_machine=i586-pc + os=-msdosdjgpp + ;; + dpx20 | dpx20-*) + basic_machine=rs6000-bull + os=-bosx + ;; + dpx2*) + basic_machine=m68k-bull + os=-sysv3 + ;; + e500v[12]) + basic_machine=powerpc-unknown + os=$os"spe" + ;; + e500v[12]-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=$os"spe" + ;; + ebmon29k) + basic_machine=a29k-amd + os=-ebmon + ;; + elxsi) + basic_machine=elxsi-elxsi + os=-bsd + ;; + encore | umax | mmax) + basic_machine=ns32k-encore + ;; + es1800 | OSE68k | ose68k | ose | OSE) + basic_machine=m68k-ericsson + os=-ose + ;; + fx2800) + basic_machine=i860-alliant + ;; + genix) + basic_machine=ns32k-ns + ;; + gmicro) + basic_machine=tron-gmicro + os=-sysv + ;; + go32) + basic_machine=i386-pc + os=-go32 + ;; + h3050r* | hiux*) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + h8300hms) + basic_machine=h8300-hitachi + os=-hms + ;; + h8300xray) + basic_machine=h8300-hitachi + os=-xray + ;; + h8500hms) + basic_machine=h8500-hitachi + os=-hms + ;; + harris) + basic_machine=m88k-harris + os=-sysv3 + ;; + hp300-*) + basic_machine=m68k-hp + ;; + hp300bsd) + basic_machine=m68k-hp + os=-bsd + ;; + hp300hpux) + basic_machine=m68k-hp + os=-hpux + ;; + hp3k9[0-9][0-9] | hp9[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k2[0-9][0-9] | hp9k31[0-9]) + basic_machine=m68000-hp + ;; + hp9k3[2-9][0-9]) + basic_machine=m68k-hp + ;; + hp9k6[0-9][0-9] | hp6[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hp9k7[0-79][0-9] | hp7[0-79][0-9]) + basic_machine=hppa1.1-hp + ;; + hp9k78[0-9] | hp78[0-9]) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) + # FIXME: really hppa2.0-hp + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][13679] | hp8[0-9][13679]) + basic_machine=hppa1.1-hp + ;; + hp9k8[0-9][0-9] | hp8[0-9][0-9]) + basic_machine=hppa1.0-hp + ;; + hppaosf) + basic_machine=hppa1.1-hp + os=-osf + ;; + hppro) + basic_machine=hppa1.1-hp + os=-proelf + ;; + i370-ibm* | ibm*) + basic_machine=i370-ibm + ;; + i*86v32) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv32 + ;; + i*86v4*) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv4 + ;; + i*86v) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-sysv + ;; + i*86sol2) + basic_machine=`echo "$1" | sed -e 's/86.*/86-pc/'` + os=-solaris2 + ;; + i386mach) + basic_machine=i386-mach + os=-mach + ;; + vsta) + basic_machine=i386-unknown + os=-vsta + ;; + iris | iris4d) + basic_machine=mips-sgi + case $os in + -irix*) + ;; + *) + os=-irix4 + ;; + esac + ;; + isi68 | isi) + basic_machine=m68k-isi + os=-sysv + ;; + leon-*|leon[3-9]-*) + basic_machine=sparc-`echo "$basic_machine" | sed 's/-.*//'` + ;; + m68knommu) + basic_machine=m68k-unknown + os=-linux + ;; + m68knommu-*) + basic_machine=m68k-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + magnum | m3230) + basic_machine=mips-mips + os=-sysv + ;; + merlin) + basic_machine=ns32k-utek + os=-sysv + ;; + microblaze*) + basic_machine=microblaze-xilinx + ;; + mingw64) + basic_machine=x86_64-pc + os=-mingw64 + ;; + mingw32) + basic_machine=i686-pc + os=-mingw32 + ;; + mingw32ce) + basic_machine=arm-unknown + os=-mingw32ce + ;; + miniframe) + basic_machine=m68000-convergent + ;; + *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) + basic_machine=m68k-atari + os=-mint + ;; + mips3*-*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'` + ;; + mips3*) + basic_machine=`echo "$basic_machine" | sed -e 's/mips3/mips64/'`-unknown + ;; + monitor) + basic_machine=m68k-rom68k + os=-coff + ;; + morphos) + basic_machine=powerpc-unknown + os=-morphos + ;; + moxiebox) + basic_machine=moxie-unknown + os=-moxiebox + ;; + msdos) + basic_machine=i386-pc + os=-msdos + ;; + ms1-*) + basic_machine=`echo "$basic_machine" | sed -e 's/ms1-/mt-/'` + ;; + msys) + basic_machine=i686-pc + os=-msys + ;; + mvs) + basic_machine=i370-ibm + os=-mvs + ;; + nacl) + basic_machine=le32-unknown + os=-nacl + ;; + ncr3000) + basic_machine=i486-ncr + os=-sysv4 + ;; + netbsd386) + basic_machine=i386-unknown + os=-netbsd + ;; + netwinder) + basic_machine=armv4l-rebel + os=-linux + ;; + news | news700 | news800 | news900) + basic_machine=m68k-sony + os=-newsos + ;; + news1000) + basic_machine=m68030-sony + os=-newsos + ;; + news-3600 | risc-news) + basic_machine=mips-sony + os=-newsos + ;; + necv70) + basic_machine=v70-nec + os=-sysv + ;; + next | m*-next) + basic_machine=m68k-next + case $os in + -nextstep* ) + ;; + -ns2*) + os=-nextstep2 + ;; + *) + os=-nextstep3 + ;; + esac + ;; + nh3000) + basic_machine=m68k-harris + os=-cxux + ;; + nh[45]000) + basic_machine=m88k-harris + os=-cxux + ;; + nindy960) + basic_machine=i960-intel + os=-nindy + ;; + mon960) + basic_machine=i960-intel + os=-mon960 + ;; + nonstopux) + basic_machine=mips-compaq + os=-nonstopux + ;; + np1) + basic_machine=np1-gould + ;; + neo-tandem) + basic_machine=neo-tandem + ;; + nse-tandem) + basic_machine=nse-tandem + ;; + nsr-tandem) + basic_machine=nsr-tandem + ;; + nsv-tandem) + basic_machine=nsv-tandem + ;; + nsx-tandem) + basic_machine=nsx-tandem + ;; + op50n-* | op60c-*) + basic_machine=hppa1.1-oki + os=-proelf + ;; + openrisc | openrisc-*) + basic_machine=or32-unknown + ;; + os400) + basic_machine=powerpc-ibm + os=-os400 + ;; + OSE68000 | ose68000) + basic_machine=m68000-ericsson + os=-ose + ;; + os68k) + basic_machine=m68k-none + os=-os68k + ;; + pa-hitachi) + basic_machine=hppa1.1-hitachi + os=-hiuxwe2 + ;; + paragon) + basic_machine=i860-intel + os=-osf + ;; + parisc) + basic_machine=hppa-unknown + os=-linux + ;; + parisc-*) + basic_machine=hppa-`echo "$basic_machine" | sed 's/^[^-]*-//'` + os=-linux + ;; + pbd) + basic_machine=sparc-tti + ;; + pbb) + basic_machine=m68k-tti + ;; + pc532 | pc532-*) + basic_machine=ns32k-pc532 + ;; + pc98) + basic_machine=i386-pc + ;; + pc98-*) + basic_machine=i386-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium | p5 | k5 | k6 | nexgen | viac3) + basic_machine=i586-pc + ;; + pentiumpro | p6 | 6x86 | athlon | athlon_*) + basic_machine=i686-pc + ;; + pentiumii | pentium2 | pentiumiii | pentium3) + basic_machine=i686-pc + ;; + pentium4) + basic_machine=i786-pc + ;; + pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) + basic_machine=i586-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumpro-* | p6-* | 6x86-* | athlon-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) + basic_machine=i686-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pentium4-*) + basic_machine=i786-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + pn) + basic_machine=pn-gould + ;; + power) basic_machine=power-ibm + ;; + ppc | ppcbe) basic_machine=powerpc-unknown + ;; + ppc-* | ppcbe-*) + basic_machine=powerpc-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppcle | powerpclittle) + basic_machine=powerpcle-unknown + ;; + ppcle-* | powerpclittle-*) + basic_machine=powerpcle-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64) basic_machine=powerpc64-unknown + ;; + ppc64-*) basic_machine=powerpc64-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ppc64le | powerpc64little) + basic_machine=powerpc64le-unknown + ;; + ppc64le-* | powerpc64little-*) + basic_machine=powerpc64le-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + ps2) + basic_machine=i386-ibm + ;; + pw32) + basic_machine=i586-unknown + os=-pw32 + ;; + rdos | rdos64) + basic_machine=x86_64-pc + os=-rdos + ;; + rdos32) + basic_machine=i386-pc + os=-rdos + ;; + rom68k) + basic_machine=m68k-rom68k + os=-coff + ;; + rm[46]00) + basic_machine=mips-siemens + ;; + rtpc | rtpc-*) + basic_machine=romp-ibm + ;; + s390 | s390-*) + basic_machine=s390-ibm + ;; + s390x | s390x-*) + basic_machine=s390x-ibm + ;; + sa29200) + basic_machine=a29k-amd + os=-udi + ;; + sb1) + basic_machine=mipsisa64sb1-unknown + ;; + sb1el) + basic_machine=mipsisa64sb1el-unknown + ;; + sde) + basic_machine=mipsisa32-sde + os=-elf + ;; + sei) + basic_machine=mips-sei + os=-seiux + ;; + sequent) + basic_machine=i386-sequent + ;; + sh5el) + basic_machine=sh5le-unknown + ;; + simso-wrs) + basic_machine=sparclite-wrs + os=-vxworks + ;; + sps7) + basic_machine=m68k-bull + os=-sysv2 + ;; + spur) + basic_machine=spur-unknown + ;; + st2000) + basic_machine=m68k-tandem + ;; + stratus) + basic_machine=i860-stratus + os=-sysv4 + ;; + strongarm-* | thumb-*) + basic_machine=arm-`echo "$basic_machine" | sed 's/^[^-]*-//'` + ;; + sun2) + basic_machine=m68000-sun + ;; + sun2os3) + basic_machine=m68000-sun + os=-sunos3 + ;; + sun2os4) + basic_machine=m68000-sun + os=-sunos4 + ;; + sun3os3) + basic_machine=m68k-sun + os=-sunos3 + ;; + sun3os4) + basic_machine=m68k-sun + os=-sunos4 + ;; + sun4os3) + basic_machine=sparc-sun + os=-sunos3 + ;; + sun4os4) + basic_machine=sparc-sun + os=-sunos4 + ;; + sun4sol2) + basic_machine=sparc-sun + os=-solaris2 + ;; + sun3 | sun3-*) + basic_machine=m68k-sun + ;; + sun4) + basic_machine=sparc-sun + ;; + sun386 | sun386i | roadrunner) + basic_machine=i386-sun + ;; + sv1) + basic_machine=sv1-cray + os=-unicos + ;; + symmetry) + basic_machine=i386-sequent + os=-dynix + ;; + t3e) + basic_machine=alphaev5-cray + os=-unicos + ;; + t90) + basic_machine=t90-cray + os=-unicos + ;; + tile*) + basic_machine=$basic_machine-unknown + os=-linux-gnu + ;; + tx39) + basic_machine=mipstx39-unknown + ;; + tx39el) + basic_machine=mipstx39el-unknown + ;; + toad1) + basic_machine=pdp10-xkl + os=-tops20 + ;; + tower | tower-32) + basic_machine=m68k-ncr + ;; + tpf) + basic_machine=s390x-ibm + os=-tpf + ;; + udi29k) + basic_machine=a29k-amd + os=-udi + ;; + ultra3) + basic_machine=a29k-nyu + os=-sym1 + ;; + v810 | necv810) + basic_machine=v810-nec + os=-none + ;; + vaxv) + basic_machine=vax-dec + os=-sysv + ;; + vms) + basic_machine=vax-dec + os=-vms + ;; + vpp*|vx|vx-*) + basic_machine=f301-fujitsu + ;; + vxworks960) + basic_machine=i960-wrs + os=-vxworks + ;; + vxworks68) + basic_machine=m68k-wrs + os=-vxworks + ;; + vxworks29k) + basic_machine=a29k-wrs + os=-vxworks + ;; + w65*) + basic_machine=w65-wdc + os=-none + ;; + w89k-*) + basic_machine=hppa1.1-winbond + os=-proelf + ;; + x64) + basic_machine=x86_64-pc + ;; + xbox) + basic_machine=i686-pc + os=-mingw32 + ;; + xps | xps100) + basic_machine=xps100-honeywell + ;; + xscale-* | xscalee[bl]-*) + basic_machine=`echo "$basic_machine" | sed 's/^xscale/arm/'` + ;; + ymp) + basic_machine=ymp-cray + os=-unicos + ;; + none) + basic_machine=none-none + os=-none + ;; + +# Here we handle the default manufacturer of certain CPU types. It is in +# some cases the only manufacturer, in others, it is the most popular. + w89k) + basic_machine=hppa1.1-winbond + ;; + op50n) + basic_machine=hppa1.1-oki + ;; + op60c) + basic_machine=hppa1.1-oki + ;; + romp) + basic_machine=romp-ibm + ;; + mmix) + basic_machine=mmix-knuth + ;; + rs6000) + basic_machine=rs6000-ibm + ;; + vax) + basic_machine=vax-dec + ;; + pdp11) + basic_machine=pdp11-dec + ;; + we32k) + basic_machine=we32k-att + ;; + sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) + basic_machine=sh-unknown + ;; + cydra) + basic_machine=cydra-cydrome + ;; + orion) + basic_machine=orion-highlevel + ;; + orion105) + basic_machine=clipper-highlevel + ;; + mac | mpw | mac-mpw) + basic_machine=m68k-apple + ;; + pmac | pmac-mpw) + basic_machine=powerpc-apple + ;; + *-unknown) + # Make sure to match an already-canonicalized machine name. + ;; + *) + echo Invalid configuration \`"$1"\': machine \`"$basic_machine"\' not recognized 1>&2 + exit 1 + ;; +esac + +# Here we canonicalize certain aliases for manufacturers. +case $basic_machine in + *-digital*) + basic_machine=`echo "$basic_machine" | sed 's/digital.*/dec/'` + ;; + *-commodore*) + basic_machine=`echo "$basic_machine" | sed 's/commodore.*/cbm/'` + ;; + *) + ;; +esac + +# Decode manufacturer-specific aliases for certain operating systems. + +if [ x"$os" != x"" ] +then +case $os in + # First match some system type aliases that might get confused + # with valid system types. + # -solaris* is a basic system type, with this one exception. + -auroraux) + os=-auroraux + ;; + -solaris1 | -solaris1.*) + os=`echo $os | sed -e 's|solaris1|sunos4|'` + ;; + -solaris) + os=-solaris2 + ;; + -unixware*) + os=-sysv4.2uw + ;; + -gnu/linux*) + os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` + ;; + # es1800 is here to avoid being matched by es* (a different OS) + -es1800*) + os=-ose + ;; + # Now accept the basic system types. + # The portable systems comes first. + # Each alternative MUST end in a * to match a version number. + # -sysv* is not here because it comes later, after sysvr4. + -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ + | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ + | -hpux* | -unos* | -osf* | -luna* | -dgux* | -auroraux* | -solaris* \ + | -sym* | -kopensolaris* | -plan9* \ + | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ + | -aos* | -aros* | -cloudabi* | -sortix* \ + | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ + | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ + | -hiux* | -knetbsd* | -mirbsd* | -netbsd* \ + | -bitrig* | -openbsd* | -solidbsd* | -libertybsd* \ + | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ + | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ + | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ + | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ + | -chorusos* | -chorusrdb* | -cegcc* | -glidix* \ + | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ + | -midipix* | -mingw32* | -mingw64* | -linux-gnu* | -linux-android* \ + | -linux-newlib* | -linux-musl* | -linux-uclibc* \ + | -uxpv* | -beos* | -mpeix* | -udk* | -moxiebox* \ + | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* \ + | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ + | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ + | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ + | -morphos* | -superux* | -rtmk* | -windiss* \ + | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ + | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es* \ + | -onefs* | -tirtos* | -phoenix* | -fuchsia* | -redox* | -bme* \ + | -midnightbsd*) + # Remember, each alternative MUST END IN *, to match a version number. + ;; + -qnx*) + case $basic_machine in + x86-* | i*86-*) + ;; + *) + os=-nto$os + ;; + esac + ;; + -nto-qnx*) + ;; + -nto*) + os=`echo $os | sed -e 's|nto|nto-qnx|'` + ;; + -sim | -xray | -os68k* | -v88r* \ + | -windows* | -osx | -abug | -netware* | -os9* \ + | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) + ;; + -mac*) + os=`echo "$os" | sed -e 's|mac|macos|'` + ;; + -linux-dietlibc) + os=-linux-dietlibc + ;; + -linux*) + os=`echo $os | sed -e 's|linux|linux-gnu|'` + ;; + -sunos5*) + os=`echo "$os" | sed -e 's|sunos5|solaris2|'` + ;; + -sunos6*) + os=`echo "$os" | sed -e 's|sunos6|solaris3|'` + ;; + -opened*) + os=-openedition + ;; + -os400*) + os=-os400 + ;; + -wince*) + os=-wince + ;; + -utek*) + os=-bsd + ;; + -dynix*) + os=-bsd + ;; + -acis*) + os=-aos + ;; + -atheos*) + os=-atheos + ;; + -syllable*) + os=-syllable + ;; + -386bsd) + os=-bsd + ;; + -ctix* | -uts*) + os=-sysv + ;; + -nova*) + os=-rtmk-nova + ;; + -ns2) + os=-nextstep2 + ;; + -nsk*) + os=-nsk + ;; + # Preserve the version number of sinix5. + -sinix5.*) + os=`echo $os | sed -e 's|sinix|sysv|'` + ;; + -sinix*) + os=-sysv4 + ;; + -tpf*) + os=-tpf + ;; + -triton*) + os=-sysv3 + ;; + -oss*) + os=-sysv3 + ;; + -svr4*) + os=-sysv4 + ;; + -svr3) + os=-sysv3 + ;; + -sysvr4) + os=-sysv4 + ;; + # This must come after -sysvr4. + -sysv*) + ;; + -ose*) + os=-ose + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + os=-mint + ;; + -zvmoe) + os=-zvmoe + ;; + -dicos*) + os=-dicos + ;; + -pikeos*) + # Until real need of OS specific support for + # particular features comes up, bare metal + # configurations are quite functional. + case $basic_machine in + arm*) + os=-eabi + ;; + *) + os=-elf + ;; + esac + ;; + -nacl*) + ;; + -ios) + ;; + -none) + ;; + *) + # Get rid of the `-' at the beginning of $os. + os=`echo $os | sed 's/[^-]*-//'` + echo Invalid configuration \`"$1"\': system \`"$os"\' not recognized 1>&2 + exit 1 + ;; +esac +else + +# Here we handle the default operating systems that come with various machines. +# The value should be what the vendor currently ships out the door with their +# machine or put another way, the most popular os provided with the machine. + +# Note that if you're going to try to match "-MANUFACTURER" here (say, +# "-sun"), then you have to tell the case statement up towards the top +# that MANUFACTURER isn't an operating system. Otherwise, code above +# will signal an error saying that MANUFACTURER isn't an operating +# system, and we'll never get to this point. + +case $basic_machine in + score-*) + os=-elf + ;; + spu-*) + os=-elf + ;; + *-acorn) + os=-riscix1.2 + ;; + arm*-rebel) + os=-linux + ;; + arm*-semi) + os=-aout + ;; + c4x-* | tic4x-*) + os=-coff + ;; + c8051-*) + os=-elf + ;; + hexagon-*) + os=-elf + ;; + tic54x-*) + os=-coff + ;; + tic55x-*) + os=-coff + ;; + tic6x-*) + os=-coff + ;; + # This must come before the *-dec entry. + pdp10-*) + os=-tops20 + ;; + pdp11-*) + os=-none + ;; + *-dec | vax-*) + os=-ultrix4.2 + ;; + m68*-apollo) + os=-domain + ;; + i386-sun) + os=-sunos4.0.2 + ;; + m68000-sun) + os=-sunos3 + ;; + m68*-cisco) + os=-aout + ;; + mep-*) + os=-elf + ;; + mips*-cisco) + os=-elf + ;; + mips*-*) + os=-elf + ;; + or32-*) + os=-coff + ;; + *-tti) # must be before sparc entry or we get the wrong os. + os=-sysv3 + ;; + sparc-* | *-sun) + os=-sunos4.1.1 + ;; + pru-*) + os=-elf + ;; + *-be) + os=-beos + ;; + *-ibm) + os=-aix + ;; + *-knuth) + os=-mmixware + ;; + *-wec) + os=-proelf + ;; + *-winbond) + os=-proelf + ;; + *-oki) + os=-proelf + ;; + *-hp) + os=-hpux + ;; + *-hitachi) + os=-hiux + ;; + i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) + os=-sysv + ;; + *-cbm) + os=-amigaos + ;; + *-dg) + os=-dgux + ;; + *-dolphin) + os=-sysv3 + ;; + m68k-ccur) + os=-rtu + ;; + m88k-omron*) + os=-luna + ;; + *-next) + os=-nextstep + ;; + *-sequent) + os=-ptx + ;; + *-crds) + os=-unos + ;; + *-ns) + os=-genix + ;; + i370-*) + os=-mvs + ;; + *-gould) + os=-sysv + ;; + *-highlevel) + os=-bsd + ;; + *-encore) + os=-bsd + ;; + *-sgi) + os=-irix + ;; + *-siemens) + os=-sysv4 + ;; + *-masscomp) + os=-rtu + ;; + f30[01]-fujitsu | f700-fujitsu) + os=-uxpv + ;; + *-rom68k) + os=-coff + ;; + *-*bug) + os=-coff + ;; + *-apple) + os=-macos + ;; + *-atari*) + os=-mint + ;; + *) + os=-none + ;; +esac +fi + +# Here we handle the case where we know the os, and the CPU type, but not the +# manufacturer. We pick the logical manufacturer. +vendor=unknown +case $basic_machine in + *-unknown) + case $os in + -riscix*) + vendor=acorn + ;; + -sunos*) + vendor=sun + ;; + -cnk*|-aix*) + vendor=ibm + ;; + -beos*) + vendor=be + ;; + -hpux*) + vendor=hp + ;; + -mpeix*) + vendor=hp + ;; + -hiux*) + vendor=hitachi + ;; + -unos*) + vendor=crds + ;; + -dgux*) + vendor=dg + ;; + -luna*) + vendor=omron + ;; + -genix*) + vendor=ns + ;; + -mvs* | -opened*) + vendor=ibm + ;; + -os400*) + vendor=ibm + ;; + -ptx*) + vendor=sequent + ;; + -tpf*) + vendor=ibm + ;; + -vxsim* | -vxworks* | -windiss*) + vendor=wrs + ;; + -aux*) + vendor=apple + ;; + -hms*) + vendor=hitachi + ;; + -mpw* | -macos*) + vendor=apple + ;; + -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) + vendor=atari + ;; + -vos*) + vendor=stratus + ;; + esac + basic_machine=`echo "$basic_machine" | sed "s/unknown/$vendor/"` + ;; +esac + +echo "$basic_machine$os" +exit + +# Local variables: +# eval: (add-hook 'write-file-functions 'time-stamp) +# time-stamp-start: "timestamp='" +# time-stamp-format: "%:y-%02m-%02d" +# time-stamp-end: "'" +# End: diff --git a/deps/cares/configure b/deps/cares/configure new file mode 100755 index 00000000000000..737f0a0ddd93e6 --- /dev/null +++ b/deps/cares/configure @@ -0,0 +1,36935 @@ +#! /bin/sh +# Guess values for system-dependent variables and create Makefiles. +# Generated by GNU Autoconf 2.71 for c-ares 1.18.1. +# +# Report bugs to . +# +# +# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation, +# Inc. +# +# +# This configure script is free software; the Free Software Foundation +# gives unlimited permission to copy, distribute and modify it. + +## -------------------------------- ## +## XC_CONFIGURE_PREAMBLE ver: 1.0 ## +## -------------------------------- ## + +xc_configure_preamble_ver_major='1' +xc_configure_preamble_ver_minor='0' + +# +# Set IFS to space, tab and newline. +# + +xc_space=' ' +xc_tab=' ' +xc_newline=' +' +IFS="$xc_space$xc_tab$xc_newline" + +# +# Set internationalization behavior variables. +# + +LANG='C' +LC_ALL='C' +LANGUAGE='C' +export LANG +export LC_ALL +export LANGUAGE + +# +# Some useful variables. +# + +xc_msg_warn='configure: WARNING:' +xc_msg_abrt='Can not continue.' +xc_msg_err='configure: error:' + +# +# Verify that 'echo' command is available, otherwise abort. +# + +xc_tst_str='unknown' +(`echo "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + # Try built-in echo, and fail. + echo "$xc_msg_err 'echo' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'test' command is available, otherwise abort. +# + +xc_tst_str='unknown' +(`test -n "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'test' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'PATH' variable is set, otherwise abort. +# + +xc_tst_str='unknown' +(`test -n "$PATH" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'PATH' variable not set. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'expr' command is available, otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`expr "$xc_tst_str" : '.*' 2>/dev/null` +case "x$xc_tst_str" in # (( + x7) + : + ;; + *) + echo "$xc_msg_err 'expr' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'sed' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | sed -e 's:unknown:success:' 2>/dev/null` +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'sed' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'grep' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +(`echo "$xc_tst_str" 2>/dev/null \ + | grep 'unknown' >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'grep' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'tr' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str="${xc_tab}98s7u6c5c4e3s2s10" +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | tr -d "0123456789$xc_tab" 2>/dev/null` +case "x$xc_tst_str" in # (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'tr' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'wc' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown unknown unknown unknown' +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | wc -w 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null` +case "x$xc_tst_str" in # (( + x4) + : + ;; + *) + echo "$xc_msg_err 'wc' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Verify that 'cat' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`cat <<_EOT 2>/dev/null \ + | wc -l 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null +unknown +unknown +unknown +_EOT` +case "x$xc_tst_str" in # (( + x3) + : + ;; + *) + echo "$xc_msg_err 'cat' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac + +# +# Auto-detect and set 'PATH_SEPARATOR', unless it is already non-empty set. +# + +# Directory count in 'PATH' when using a colon separator. +xc_tst_dirs_col='x' +xc_tst_prev_IFS=$IFS; IFS=':' +for xc_tst_dir in $PATH; do + IFS=$xc_tst_prev_IFS + xc_tst_dirs_col="x$xc_tst_dirs_col" +done +IFS=$xc_tst_prev_IFS +xc_tst_dirs_col=`expr "$xc_tst_dirs_col" : '.*'` + +# Directory count in 'PATH' when using a semicolon separator. +xc_tst_dirs_sem='x' +xc_tst_prev_IFS=$IFS; IFS=';' +for xc_tst_dir in $PATH; do + IFS=$xc_tst_prev_IFS + xc_tst_dirs_sem="x$xc_tst_dirs_sem" +done +IFS=$xc_tst_prev_IFS +xc_tst_dirs_sem=`expr "$xc_tst_dirs_sem" : '.*'` + +if test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then + # When both counting methods give the same result we do not want to + # chose one over the other, and consider auto-detection not possible. + if test -z "$PATH_SEPARATOR"; then + # Stop dead until user provides 'PATH_SEPARATOR' definition. + echo "$xc_msg_err 'PATH_SEPARATOR' variable not set. $xc_msg_abrt" >&2 + exit 1 + fi +else + # Separator with the greater directory count is the auto-detected one. + if test $xc_tst_dirs_sem -gt $xc_tst_dirs_col; then + xc_tst_auto_separator=';' + else + xc_tst_auto_separator=':' + fi + if test -z "$PATH_SEPARATOR"; then + # Simply use the auto-detected one when not already set. + PATH_SEPARATOR=$xc_tst_auto_separator + elif test "x$PATH_SEPARATOR" != "x$xc_tst_auto_separator"; then + echo "$xc_msg_warn 'PATH_SEPARATOR' does not match auto-detected one." >&2 + fi +fi +xc_PATH_SEPARATOR=$PATH_SEPARATOR + +xc_configure_preamble_result='yes' + + +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + +# Use a proper internal environment variable to ensure we don't fall + # into an infinite loop, continuously re-executing ourselves. + if test x"${_as_can_reexec}" != xno && test "x$CONFIG_SHELL" != x; then + _as_can_reexec=no; export _as_can_reexec; + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 + fi + # We don't want this to propagate to other subprocesses. + { _as_can_reexec=; unset _as_can_reexec;} +if test "x$CONFIG_SHELL" = x; then + as_bourne_compatible="as_nop=: +if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else \$as_nop + case \`(set -o) 2>/dev/null\` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi +" + as_required="as_fn_return () { (exit \$1); } +as_fn_success () { as_fn_return 0; } +as_fn_failure () { as_fn_return 1; } +as_fn_ret_success () { return 0; } +as_fn_ret_failure () { return 1; } + +exitcode=0 +as_fn_success || { exitcode=1; echo as_fn_success failed.; } +as_fn_failure && { exitcode=1; echo as_fn_failure succeeded.; } +as_fn_ret_success || { exitcode=1; echo as_fn_ret_success failed.; } +as_fn_ret_failure && { exitcode=1; echo as_fn_ret_failure succeeded.; } +if ( set x; as_fn_ret_success y && test x = \"\$1\" ) +then : + +else \$as_nop + exitcode=1; echo positional parameters were not saved. +fi +test x\$exitcode = x0 || exit 1 +blah=\$(echo \$(echo blah)) +test x\"\$blah\" = xblah || exit 1 +test -x / || exit 1" + as_suggested=" as_lineno_1=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_1a=\$LINENO + as_lineno_2=";as_suggested=$as_suggested$LINENO;as_suggested=$as_suggested" as_lineno_2a=\$LINENO + eval 'test \"x\$as_lineno_1'\$as_run'\" != \"x\$as_lineno_2'\$as_run'\" && + test \"x\`expr \$as_lineno_1'\$as_run' + 1\`\" = \"x\$as_lineno_2'\$as_run'\"' || exit 1 +test \$(( 1 + 1 )) = 2 || exit 1 + + test -n \"\${ZSH_VERSION+set}\${BASH_VERSION+set}\" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + ECHO=\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO\$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test \"X\`printf %s \$ECHO\`\" = \"X\$ECHO\" \\ + || test \"X\`print -r -- \$ECHO\`\" = \"X\$ECHO\" ) || exit 1" + if (eval "$as_required") 2>/dev/null +then : + as_have_required=yes +else $as_nop + as_have_required=no +fi + if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null +then : + +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + case $as_dir in #( + /*) + for as_base in sh bash ksh sh5; do + # Try only shells that exist, to save several forks. + as_shell=$as_dir$as_base + if { test -f "$as_shell" || test -f "$as_shell.exe"; } && + as_run=a "$as_shell" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$as_shell as_have_required=yes + if as_run=a "$as_shell" -c "$as_bourne_compatible""$as_suggested" 2>/dev/null +then : + break 2 +fi +fi + done;; + esac + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + if { test -f "$SHELL" || test -f "$SHELL.exe"; } && + as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null +then : + CONFIG_SHELL=$SHELL as_have_required=yes +fi +fi + + + if test "x$CONFIG_SHELL" != x +then : + export CONFIG_SHELL + # We cannot yet assume a decent shell, so we have to provide a +# neutralization value for shells without unset; and this also +# works around shells that cannot unset nonexistent variables. +# Preserve -v and -x to the replacement shell. +BASH_ENV=/dev/null +ENV=/dev/null +(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV +case $- in # (((( + *v*x* | *x*v* ) as_opts=-vx ;; + *v* ) as_opts=-v ;; + *x* ) as_opts=-x ;; + * ) as_opts= ;; +esac +exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} +# Admittedly, this is quite paranoid, since all the known shells bail +# out after a failed `exec'. +printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 +exit 255 +fi + + if test x$as_have_required = xno +then : + printf "%s\n" "$0: This script requires a shell more modern than all" + printf "%s\n" "$0: the shells that I found on your system." + if test ${ZSH_VERSION+y} ; then + printf "%s\n" "$0: In particular, zsh $ZSH_VERSION has bugs and should" + printf "%s\n" "$0: be upgraded to zsh 4.3.4 or later." + else + printf "%s\n" "$0: Please tell bug-autoconf@gnu.org and c-ares mailing +$0: list: http://lists.haxx.se/listinfo/c-ares about your +$0: system, including any error possibly output before this +$0: message. Then install a modern shell, or manually run +$0: the script under such a shell if you do have one." + fi + exit 1 +fi +fi +fi +SHELL=${CONFIG_SHELL-/bin/sh} +export SHELL +# Unset more variables known to interfere with behavior of common tools. +CLICOLOR_FORCE= GREP_OPTIONS= +unset CLICOLOR_FORCE GREP_OPTIONS + +## --------------------- ## +## M4sh Shell Functions. ## +## --------------------- ## +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + +# as_fn_nop +# --------- +# Do nothing but, unlike ":", preserve the value of $?. +as_fn_nop () +{ + return $? +} +as_nop=as_fn_nop + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + + as_lineno_1=$LINENO as_lineno_1a=$LINENO + as_lineno_2=$LINENO as_lineno_2a=$LINENO + eval 'test "x$as_lineno_1'$as_run'" != "x$as_lineno_2'$as_run'" && + test "x`expr $as_lineno_1'$as_run' + 1`" = "x$as_lineno_2'$as_run'"' || { + # Blame Lee E. McMahon (1931-1989) for sed's syntax. :-) + sed -n ' + p + /[$]LINENO/= + ' <$as_myself | + sed ' + s/[$]LINENO.*/&-/ + t lineno + b + :lineno + N + :loop + s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ + t loop + s/-\n.*// + ' >$as_me.lineno && + chmod +x "$as_me.lineno" || + { printf "%s\n" "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2; as_fn_exit 1; } + + # If we had to re-execute with $CONFIG_SHELL, we're ensured to have + # already done that, so ensure we don't try to do so again and fall + # in an infinite loop. This has already happened in practice. + _as_can_reexec=no; export _as_can_reexec + # Don't try to exec as it changes $[0], causing all sort of problems + # (the dirname of $[0] is not the place where we might find the + # original and so on. Autoconf is especially sensitive to this). + . "./$as_me.lineno" + # Exit status is that of the last command. + exit +} + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + +SHELL=${CONFIG_SHELL-/bin/sh} + + +test -n "$DJDIR" || exec 7<&0 &1 + +# Name of the host. +# hostname on some systems (SVR3.2, old GNU/Linux) returns a bogus exit status, +# so uname gets run too. +ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` + +# +# Initializations. +# +ac_default_prefix=/usr/local +ac_clean_files= +ac_config_libobj_dir=. +LIBOBJS= +cross_compiling=no +subdirs= +MFLAGS= +MAKEFLAGS= + +# Identity of this package. +PACKAGE_NAME='c-ares' +PACKAGE_TARNAME='c-ares' +PACKAGE_VERSION='1.18.1' +PACKAGE_STRING='c-ares 1.18.1' +PACKAGE_BUGREPORT='c-ares mailing list: http://lists.haxx.se/listinfo/c-ares' +PACKAGE_URL='' + +ac_unique_file="src/lib/ares_ipv6.h" +# Factoring default headers for most tests. +ac_includes_default="\ +#include +#ifdef HAVE_STDIO_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_INTTYPES_H +# include +#endif +#ifdef HAVE_STDINT_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_STAT_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif" + +ac_header_c_list= +enable_option_checking=no +ac_subst_vars='am__EXEEXT_FALSE +am__EXEEXT_TRUE +LTLIBOBJS +LIBOBJS +BUILD_SUBDIRS +subdirs +CARES_CFLAG_EXTRAS +CARES_PRIVATE_LIBS +CFLAG_CARES_SYMBOL_HIDING +DOING_CARES_SYMBOL_HIDING_FALSE +DOING_CARES_SYMBOL_HIDING_TRUE +CARES_RANDOM_FILE +DOING_NATIVE_WINDOWS_FALSE +DOING_NATIVE_WINDOWS_TRUE +CPPFLAG_CARES_STATICLIB +USE_CPPFLAG_CARES_STATICLIB_FALSE +USE_CPPFLAG_CARES_STATICLIB_TRUE +CARES_LT_SHLIB_USE_MIMPURE_TEXT_FALSE +CARES_LT_SHLIB_USE_MIMPURE_TEXT_TRUE +CARES_LT_SHLIB_USE_NO_UNDEFINED_FALSE +CARES_LT_SHLIB_USE_NO_UNDEFINED_TRUE +CARES_LT_SHLIB_USE_VERSION_INFO_FALSE +CARES_LT_SHLIB_USE_VERSION_INFO_TRUE +CXXCPP +LT_SYS_LIBRARY_PATH +OTOOL64 +OTOOL +LIPO +NMEDIT +DSYMUTIL +MANIFEST_TOOL +RANLIB +ac_ct_AR +LN_S +NM +ac_ct_DUMPBIN +DUMPBIN +LD +FGREP +LIBTOOL +OBJDUMP +DLLTOOL +AS +CSCOPE +ETAGS +CTAGS +am__fastdepCXX_FALSE +am__fastdepCXX_TRUE +CXXDEPMODE +am__fastdepCC_FALSE +am__fastdepCC_TRUE +CCDEPMODE +am__nodep +AMDEPBACKSLASH +AMDEP_FALSE +AMDEP_TRUE +am__include +DEPDIR +am__untar +am__tar +AMTAR +am__leading_dot +SET_MAKE +mkdir_p +MKDIR_P +INSTALL_STRIP_PROGRAM +STRIP +install_sh +MAKEINFO +AUTOHEADER +AUTOMAKE +AUTOCONF +ACLOCAL +VERSION +PACKAGE +CYGPATH_W +am__isrc +HAVE_CXX11 +ac_ct_CXX +CXXFLAGS +CXX +CPP +OBJEXT +EXEEXT +ac_ct_CC +CPPFLAGS +LDFLAGS +CFLAGS +CC +INSTALL_DATA +INSTALL_SCRIPT +INSTALL_PROGRAM +host_os +host_vendor +host_cpu +host +build_os +build_vendor +build_cpu +build +CODE_COVERAGE_LIBS +CODE_COVERAGE_CXXFLAGS +CODE_COVERAGE_CFLAGS +CODE_COVERAGE_CPPFLAGS +GENHTML +LCOV +GCOV +ifnGNUmake +ifGNUmake +AWK +CODE_COVERAGE_ENABLED +CODE_COVERAGE_ENABLED_FALSE +CODE_COVERAGE_ENABLED_TRUE +AR +EGREP +GREP +SED +AM_BACKSLASH +AM_DEFAULT_VERBOSITY +AM_DEFAULT_V +AM_V +MAINT +MAINTAINER_MODE_FALSE +MAINTAINER_MODE_TRUE +CARES_VERSION_INFO +target_alias +host_alias +build_alias +LIBS +ECHO_T +ECHO_N +ECHO_C +DEFS +mandir +localedir +libdir +psdir +pdfdir +dvidir +htmldir +infodir +docdir +oldincludedir +includedir +runstatedir +localstatedir +sharedstatedir +sysconfdir +datadir +datarootdir +libexecdir +sbindir +bindir +program_transform_name +prefix +exec_prefix +PACKAGE_URL +PACKAGE_BUGREPORT +PACKAGE_STRING +PACKAGE_VERSION +PACKAGE_TARNAME +PACKAGE_NAME +SHELL +PATH_SEPARATOR +am__quote' +ac_subst_files='' +ac_user_opts=' +enable_option_checking +enable_maintainer_mode +enable_silent_rules +enable_debug +enable_optimize +enable_warnings +enable_werror +enable_symbol_hiding +enable_expose_statics +with_gcov +enable_code_coverage +enable_dependency_tracking +enable_largefile +enable_shared +enable_static +with_pic +enable_fast_install +with_aix_soname +with_gnu_ld +with_sysroot +enable_libtool_lock +enable_libgcc +with_random +enable_nonblocking +enable_tests +' + ac_precious_vars='build_alias +host_alias +target_alias +CC +CFLAGS +LDFLAGS +LIBS +CPPFLAGS +CPP +CXX +CXXFLAGS +CCC +LT_SYS_LIBRARY_PATH +CXXCPP' +ac_subdirs_all='test' + +# Initialize some variables set by options. +ac_init_help= +ac_init_version=false +ac_unrecognized_opts= +ac_unrecognized_sep= +# The variables have the same names as the options, with +# dashes changed to underlines. +cache_file=/dev/null +exec_prefix=NONE +no_create= +no_recursion= +prefix=NONE +program_prefix=NONE +program_suffix=NONE +program_transform_name=s,x,x, +silent= +site= +srcdir= +verbose= +x_includes=NONE +x_libraries=NONE + +# Installation directory options. +# These are left unexpanded so users can "make install exec_prefix=/foo" +# and all the variables that are supposed to be based on exec_prefix +# by default will actually change. +# Use braces instead of parens because sh, perl, etc. also accept them. +# (The list follows the same order as the GNU Coding Standards.) +bindir='${exec_prefix}/bin' +sbindir='${exec_prefix}/sbin' +libexecdir='${exec_prefix}/libexec' +datarootdir='${prefix}/share' +datadir='${datarootdir}' +sysconfdir='${prefix}/etc' +sharedstatedir='${prefix}/com' +localstatedir='${prefix}/var' +runstatedir='${localstatedir}/run' +includedir='${prefix}/include' +oldincludedir='/usr/include' +docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' +infodir='${datarootdir}/info' +htmldir='${docdir}' +dvidir='${docdir}' +pdfdir='${docdir}' +psdir='${docdir}' +libdir='${exec_prefix}/lib' +localedir='${datarootdir}/locale' +mandir='${datarootdir}/man' + +ac_prev= +ac_dashdash= +for ac_option +do + # If the previous option needs an argument, assign it. + if test -n "$ac_prev"; then + eval $ac_prev=\$ac_option + ac_prev= + continue + fi + + case $ac_option in + *=?*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; + *=) ac_optarg= ;; + *) ac_optarg=yes ;; + esac + + case $ac_dashdash$ac_option in + --) + ac_dashdash=yes ;; + + -bindir | --bindir | --bindi | --bind | --bin | --bi) + ac_prev=bindir ;; + -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) + bindir=$ac_optarg ;; + + -build | --build | --buil | --bui | --bu) + ac_prev=build_alias ;; + -build=* | --build=* | --buil=* | --bui=* | --bu=*) + build_alias=$ac_optarg ;; + + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) + cache_file=$ac_optarg ;; + + --config-cache | -C) + cache_file=config.cache ;; + + -datadir | --datadir | --datadi | --datad) + ac_prev=datadir ;; + -datadir=* | --datadir=* | --datadi=* | --datad=*) + datadir=$ac_optarg ;; + + -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ + | --dataroo | --dataro | --datar) + ac_prev=datarootdir ;; + -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ + | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) + datarootdir=$ac_optarg ;; + + -disable-* | --disable-*) + ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=no ;; + + -docdir | --docdir | --docdi | --doc | --do) + ac_prev=docdir ;; + -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) + docdir=$ac_optarg ;; + + -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) + ac_prev=dvidir ;; + -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) + dvidir=$ac_optarg ;; + + -enable-* | --enable-*) + ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid feature name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"enable_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval enable_$ac_useropt=\$ac_optarg ;; + + -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ + | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ + | --exec | --exe | --ex) + ac_prev=exec_prefix ;; + -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ + | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ + | --exec=* | --exe=* | --ex=*) + exec_prefix=$ac_optarg ;; + + -gas | --gas | --ga | --g) + # Obsolete; use --with-gas. + with_gas=yes ;; + + -help | --help | --hel | --he | -h) + ac_init_help=long ;; + -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) + ac_init_help=recursive ;; + -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) + ac_init_help=short ;; + + -host | --host | --hos | --ho) + ac_prev=host_alias ;; + -host=* | --host=* | --hos=* | --ho=*) + host_alias=$ac_optarg ;; + + -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) + ac_prev=htmldir ;; + -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ + | --ht=*) + htmldir=$ac_optarg ;; + + -includedir | --includedir | --includedi | --included | --include \ + | --includ | --inclu | --incl | --inc) + ac_prev=includedir ;; + -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ + | --includ=* | --inclu=* | --incl=* | --inc=*) + includedir=$ac_optarg ;; + + -infodir | --infodir | --infodi | --infod | --info | --inf) + ac_prev=infodir ;; + -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) + infodir=$ac_optarg ;; + + -libdir | --libdir | --libdi | --libd) + ac_prev=libdir ;; + -libdir=* | --libdir=* | --libdi=* | --libd=*) + libdir=$ac_optarg ;; + + -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ + | --libexe | --libex | --libe) + ac_prev=libexecdir ;; + -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ + | --libexe=* | --libex=* | --libe=*) + libexecdir=$ac_optarg ;; + + -localedir | --localedir | --localedi | --localed | --locale) + ac_prev=localedir ;; + -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) + localedir=$ac_optarg ;; + + -localstatedir | --localstatedir | --localstatedi | --localstated \ + | --localstate | --localstat | --localsta | --localst | --locals) + ac_prev=localstatedir ;; + -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ + | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) + localstatedir=$ac_optarg ;; + + -mandir | --mandir | --mandi | --mand | --man | --ma | --m) + ac_prev=mandir ;; + -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) + mandir=$ac_optarg ;; + + -nfp | --nfp | --nf) + # Obsolete; use --without-fp. + with_fp=no ;; + + -no-create | --no-create | --no-creat | --no-crea | --no-cre \ + | --no-cr | --no-c | -n) + no_create=yes ;; + + -no-recursion | --no-recursion | --no-recursio | --no-recursi \ + | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) + no_recursion=yes ;; + + -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ + | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ + | --oldin | --oldi | --old | --ol | --o) + ac_prev=oldincludedir ;; + -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ + | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ + | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) + oldincludedir=$ac_optarg ;; + + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + prefix=$ac_optarg ;; + + -program-prefix | --program-prefix | --program-prefi | --program-pref \ + | --program-pre | --program-pr | --program-p) + ac_prev=program_prefix ;; + -program-prefix=* | --program-prefix=* | --program-prefi=* \ + | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) + program_prefix=$ac_optarg ;; + + -program-suffix | --program-suffix | --program-suffi | --program-suff \ + | --program-suf | --program-su | --program-s) + ac_prev=program_suffix ;; + -program-suffix=* | --program-suffix=* | --program-suffi=* \ + | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) + program_suffix=$ac_optarg ;; + + -program-transform-name | --program-transform-name \ + | --program-transform-nam | --program-transform-na \ + | --program-transform-n | --program-transform- \ + | --program-transform | --program-transfor \ + | --program-transfo | --program-transf \ + | --program-trans | --program-tran \ + | --progr-tra | --program-tr | --program-t) + ac_prev=program_transform_name ;; + -program-transform-name=* | --program-transform-name=* \ + | --program-transform-nam=* | --program-transform-na=* \ + | --program-transform-n=* | --program-transform-=* \ + | --program-transform=* | --program-transfor=* \ + | --program-transfo=* | --program-transf=* \ + | --program-trans=* | --program-tran=* \ + | --progr-tra=* | --program-tr=* | --program-t=*) + program_transform_name=$ac_optarg ;; + + -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) + ac_prev=pdfdir ;; + -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) + pdfdir=$ac_optarg ;; + + -psdir | --psdir | --psdi | --psd | --ps) + ac_prev=psdir ;; + -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) + psdir=$ac_optarg ;; + + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + silent=yes ;; + + -runstatedir | --runstatedir | --runstatedi | --runstated \ + | --runstate | --runstat | --runsta | --runst | --runs \ + | --run | --ru | --r) + ac_prev=runstatedir ;; + -runstatedir=* | --runstatedir=* | --runstatedi=* | --runstated=* \ + | --runstate=* | --runstat=* | --runsta=* | --runst=* | --runs=* \ + | --run=* | --ru=* | --r=*) + runstatedir=$ac_optarg ;; + + -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) + ac_prev=sbindir ;; + -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ + | --sbi=* | --sb=*) + sbindir=$ac_optarg ;; + + -sharedstatedir | --sharedstatedir | --sharedstatedi \ + | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ + | --sharedst | --shareds | --shared | --share | --shar \ + | --sha | --sh) + ac_prev=sharedstatedir ;; + -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ + | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ + | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ + | --sha=* | --sh=*) + sharedstatedir=$ac_optarg ;; + + -site | --site | --sit) + ac_prev=site ;; + -site=* | --site=* | --sit=*) + site=$ac_optarg ;; + + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + srcdir=$ac_optarg ;; + + -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ + | --syscon | --sysco | --sysc | --sys | --sy) + ac_prev=sysconfdir ;; + -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ + | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) + sysconfdir=$ac_optarg ;; + + -target | --target | --targe | --targ | --tar | --ta | --t) + ac_prev=target_alias ;; + -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) + target_alias=$ac_optarg ;; + + -v | -verbose | --verbose | --verbos | --verbo | --verb) + verbose=yes ;; + + -version | --version | --versio | --versi | --vers | -V) + ac_init_version=: ;; + + -with-* | --with-*) + ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=\$ac_optarg ;; + + -without-* | --without-*) + ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` + # Reject names that are not valid shell variable names. + expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && + as_fn_error $? "invalid package name: \`$ac_useropt'" + ac_useropt_orig=$ac_useropt + ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` + case $ac_user_opts in + *" +"with_$ac_useropt" +"*) ;; + *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" + ac_unrecognized_sep=', ';; + esac + eval with_$ac_useropt=no ;; + + --x) + # Obsolete; use --with-x. + with_x=yes ;; + + -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ + | --x-incl | --x-inc | --x-in | --x-i) + ac_prev=x_includes ;; + -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ + | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) + x_includes=$ac_optarg ;; + + -x-libraries | --x-libraries | --x-librarie | --x-librari \ + | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) + ac_prev=x_libraries ;; + -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ + | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) + x_libraries=$ac_optarg ;; + + -*) as_fn_error $? "unrecognized option: \`$ac_option' +Try \`$0 --help' for more information" + ;; + + *=*) + ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` + # Reject names that are not valid shell variable names. + case $ac_envvar in #( + '' | [0-9]* | *[!_$as_cr_alnum]* ) + as_fn_error $? "invalid variable name: \`$ac_envvar'" ;; + esac + eval $ac_envvar=\$ac_optarg + export $ac_envvar ;; + + *) + # FIXME: should be removed in autoconf 3.0. + printf "%s\n" "$as_me: WARNING: you should use --build, --host, --target" >&2 + expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && + printf "%s\n" "$as_me: WARNING: invalid host type: $ac_option" >&2 + : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}" + ;; + + esac +done + +if test -n "$ac_prev"; then + ac_option=--`echo $ac_prev | sed 's/_/-/g'` + as_fn_error $? "missing argument to $ac_option" +fi + +if test -n "$ac_unrecognized_opts"; then + case $enable_option_checking in + no) ;; + fatal) as_fn_error $? "unrecognized options: $ac_unrecognized_opts" ;; + *) printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; + esac +fi + +# Check all directory arguments for consistency. +for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ + datadir sysconfdir sharedstatedir localstatedir includedir \ + oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ + libdir localedir mandir runstatedir +do + eval ac_val=\$$ac_var + # Remove trailing slashes. + case $ac_val in + */ ) + ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` + eval $ac_var=\$ac_val;; + esac + # Be sure to have absolute directory names. + case $ac_val in + [\\/$]* | ?:[\\/]* ) continue;; + NONE | '' ) case $ac_var in *prefix ) continue;; esac;; + esac + as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" +done + +# There might be people who depend on the old broken behavior: `$host' +# used to hold the argument of --host etc. +# FIXME: To remove some day. +build=$build_alias +host=$host_alias +target=$target_alias + +# FIXME: To remove some day. +if test "x$host_alias" != x; then + if test "x$build_alias" = x; then + cross_compiling=maybe + elif test "x$build_alias" != "x$host_alias"; then + cross_compiling=yes + fi +fi + +ac_tool_prefix= +test -n "$host_alias" && ac_tool_prefix=$host_alias- + +test "$silent" = yes && exec 6>/dev/null + + +ac_pwd=`pwd` && test -n "$ac_pwd" && +ac_ls_di=`ls -di .` && +ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || + as_fn_error $? "working directory cannot be determined" +test "X$ac_ls_di" = "X$ac_pwd_ls_di" || + as_fn_error $? "pwd does not report name of working directory" + + +# Find the source files, if location was not specified. +if test -z "$srcdir"; then + ac_srcdir_defaulted=yes + # Try the directory containing this script, then the parent directory. + ac_confdir=`$as_dirname -- "$as_myself" || +$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_myself" : 'X\(//\)[^/]' \| \ + X"$as_myself" : 'X\(//\)$' \| \ + X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_myself" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + srcdir=$ac_confdir + if test ! -r "$srcdir/$ac_unique_file"; then + srcdir=.. + fi +else + ac_srcdir_defaulted=no +fi +if test ! -r "$srcdir/$ac_unique_file"; then + test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." + as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" +fi +ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" +ac_abs_confdir=`( + cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" + pwd)` +# When building in place, set srcdir=. +if test "$ac_abs_confdir" = "$ac_pwd"; then + srcdir=. +fi +# Remove unnecessary trailing slashes from srcdir. +# Double slashes in file names in object file debugging info +# mess up M-x gdb in Emacs. +case $srcdir in +*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; +esac +for ac_var in $ac_precious_vars; do + eval ac_env_${ac_var}_set=\${${ac_var}+set} + eval ac_env_${ac_var}_value=\$${ac_var} + eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} + eval ac_cv_env_${ac_var}_value=\$${ac_var} +done + +# +# Report the --help message. +# +if test "$ac_init_help" = "long"; then + # Omit some internal or obsolete options to make the list less imposing. + # This message is too long to be a string in the A/UX 3.1 sh. + cat <<_ACEOF +\`configure' configures c-ares 1.18.1 to adapt to many kinds of systems. + +Usage: $0 [OPTION]... [VAR=VALUE]... + +To assign environment variables (e.g., CC, CFLAGS...), specify them as +VAR=VALUE. See below for descriptions of some of the useful variables. + +Defaults for the options are specified in brackets. + +Configuration: + -h, --help display this help and exit + --help=short display options specific to this package + --help=recursive display the short help of all the included packages + -V, --version display version information and exit + -q, --quiet, --silent do not print \`checking ...' messages + --cache-file=FILE cache test results in FILE [disabled] + -C, --config-cache alias for \`--cache-file=config.cache' + -n, --no-create do not create output files + --srcdir=DIR find the sources in DIR [configure dir or \`..'] + +Installation directories: + --prefix=PREFIX install architecture-independent files in PREFIX + [$ac_default_prefix] + --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX + [PREFIX] + +By default, \`make install' will install all the files in +\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify +an installation prefix other than \`$ac_default_prefix' using \`--prefix', +for instance \`--prefix=\$HOME'. + +For better control, use the options below. + +Fine tuning of the installation directories: + --bindir=DIR user executables [EPREFIX/bin] + --sbindir=DIR system admin executables [EPREFIX/sbin] + --libexecdir=DIR program executables [EPREFIX/libexec] + --sysconfdir=DIR read-only single-machine data [PREFIX/etc] + --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] + --localstatedir=DIR modifiable single-machine data [PREFIX/var] + --runstatedir=DIR modifiable per-process data [LOCALSTATEDIR/run] + --libdir=DIR object code libraries [EPREFIX/lib] + --includedir=DIR C header files [PREFIX/include] + --oldincludedir=DIR C header files for non-gcc [/usr/include] + --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] + --datadir=DIR read-only architecture-independent data [DATAROOTDIR] + --infodir=DIR info documentation [DATAROOTDIR/info] + --localedir=DIR locale-dependent data [DATAROOTDIR/locale] + --mandir=DIR man documentation [DATAROOTDIR/man] + --docdir=DIR documentation root [DATAROOTDIR/doc/c-ares] + --htmldir=DIR html documentation [DOCDIR] + --dvidir=DIR dvi documentation [DOCDIR] + --pdfdir=DIR pdf documentation [DOCDIR] + --psdir=DIR ps documentation [DOCDIR] +_ACEOF + + cat <<\_ACEOF + +Program names: + --program-prefix=PREFIX prepend PREFIX to installed program names + --program-suffix=SUFFIX append SUFFIX to installed program names + --program-transform-name=PROGRAM run sed PROGRAM on installed program names + +System types: + --build=BUILD configure for building on BUILD [guessed] + --host=HOST cross-compile to build programs to run on HOST [BUILD] +_ACEOF +fi + +if test -n "$ac_init_help"; then + case $ac_init_help in + short | recursive ) echo "Configuration of c-ares 1.18.1:";; + esac + cat <<\_ACEOF + +Optional Features: + --disable-option-checking ignore unrecognized --enable/--with options + --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) + --enable-FEATURE[=ARG] include FEATURE [ARG=yes] + --enable-maintainer-mode + enable make rules and dependencies not useful (and + sometimes confusing) to the casual installer + --enable-silent-rules less verbose build output (undo: "make V=1") + --disable-silent-rules verbose build output (undo: "make V=0") + --enable-debug Enable debug build options + --disable-debug Disable debug build options + --enable-optimize(=OPT) Enable compiler optimizations (default=-O2) + --disable-optimize Disable compiler optimizations + --enable-warnings Enable strict compiler warnings + --disable-warnings Disable strict compiler warnings + --enable-werror Enable compiler warnings as errors + --disable-werror Disable compiler warnings as errors + --enable-symbol-hiding Enable hiding of library internal symbols + --disable-symbol-hiding Disable hiding of library internal symbols + --enable-expose-statics Enable exposure of internal static functions for + testing + --disable-expose-statics + Disable exposure of internal static functions for + testing + --enable-code-coverage Whether to enable code coverage support + --enable-dependency-tracking + do not reject slow dependency extractors + --disable-dependency-tracking + speeds up one-time build + --disable-largefile omit support for large files + --enable-shared[=PKGS] build shared libraries [default=yes] + --enable-static[=PKGS] build static libraries [default=yes] + --enable-fast-install[=PKGS] + optimize for fast installation [default=yes] + --disable-libtool-lock avoid locking (might break parallel builds) + --enable-libgcc use libgcc when linking + --enable-nonblocking Enable non-blocking communications + --disable-nonblocking Disable non-blocking communications + --enable-tests build test suite + +Optional Packages: + --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] + --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) + --with-gcov=GCOV use given GCOV for coverage (GCOV=gcov). + --with-pic[=PKGS] try to use only PIC/non-PIC objects [default=use + both] + --with-aix-soname=aix|svr4|both + shared library versioning (aka "SONAME") variant to + provide on AIX, [default=aix]. + --with-gnu-ld assume the C compiler uses GNU ld [default=no] + --with-sysroot[=DIR] Search for dependent libraries within DIR (or the + compiler's sysroot if not specified). + --with-random=FILE read randomness from FILE (default=/dev/urandom) + +Some influential environment variables: + CC C compiler command + CFLAGS C compiler flags + LDFLAGS linker flags, e.g. -L if you have libraries in a + nonstandard directory + LIBS libraries to pass to the linker, e.g. -l + CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I if + you have headers in a nonstandard directory + CPP C preprocessor + CXX C++ compiler command + CXXFLAGS C++ compiler flags + LT_SYS_LIBRARY_PATH + User-defined run-time library search path. + CXXCPP C++ preprocessor + +Use these variables to override the choices made by `configure' or to help +it to find libraries and programs with nonstandard names/locations. + +Report bugs to . +_ACEOF +ac_status=$? +fi + +if test "$ac_init_help" = "recursive"; then + # If there are subdirs, report their specific --help. + for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue + test -d "$ac_dir" || + { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || + continue + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + cd "$ac_dir" || { ac_status=$?; continue; } + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + echo && + $SHELL "$ac_srcdir/configure.gnu" --help=recursive + elif test -f "$ac_srcdir/configure"; then + echo && + $SHELL "$ac_srcdir/configure" --help=recursive + else + printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2 + fi || ac_status=$? + cd "$ac_pwd" || { ac_status=$?; break; } + done +fi + +test -n "$ac_init_help" && exit $ac_status +if $ac_init_version; then + cat <<\_ACEOF +c-ares configure 1.18.1 +generated by GNU Autoconf 2.71 + +Copyright (C) 2021 Free Software Foundation, Inc. +This configure script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it. +_ACEOF + exit +fi + +## ------------------------ ## +## Autoconf initialization. ## +## ------------------------ ## + +# ac_fn_c_try_compile LINENO +# -------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_compile + +# ac_fn_c_try_cpp LINENO +# ---------------------- +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_cpp + +# ac_fn_cxx_try_compile LINENO +# ---------------------------- +# Try to compile conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam + if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest.$ac_objext +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_compile + +# ac_fn_c_try_link LINENO +# ----------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_c_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_c_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_link + +# ac_fn_c_check_header_compile LINENO HEADER VAR INCLUDES +# ------------------------------------------------------- +# Tests whether HEADER exists and can be compiled using the include files in +# INCLUDES, setting the cache variable VAR accordingly. +ac_fn_c_check_header_compile () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +#include <$2> +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_header_compile + +# ac_fn_c_check_func LINENO FUNC VAR +# ---------------------------------- +# Tests whether FUNC exists, setting the cache variable VAR accordingly +ac_fn_c_check_func () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +/* Define $2 to an innocuous variant, in case declares $2. + For example, HP-UX 11i declares gettimeofday. */ +#define $2 innocuous_$2 + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char $2 (); below. */ + +#include +#undef $2 + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char $2 (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_$2 || defined __stub___$2 +choke me +#endif + +int +main (void) +{ +return $2 (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_func + +# ac_fn_cxx_try_cpp LINENO +# ------------------------ +# Try to preprocess conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_cpp () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_cpp conftest.$ac_ext" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_cpp conftest.$ac_ext") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } > conftest.i && { + test -z "$ac_cxx_preproc_warn_flag$ac_cxx_werror_flag" || + test ! -s conftest.err + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_cpp + +# ac_fn_cxx_try_link LINENO +# ------------------------- +# Try to link conftest.$ac_ext, and return whether this succeeded. +ac_fn_cxx_try_link () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + rm -f conftest.$ac_objext conftest.beam conftest$ac_exeext + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + grep -v '^ *+' conftest.err >conftest.er1 + cat conftest.er1 >&5 + mv -f conftest.er1 conftest.err + fi + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { + test -z "$ac_cxx_werror_flag" || + test ! -s conftest.err + } && test -s conftest$ac_exeext && { + test "$cross_compiling" = yes || + test -x conftest$ac_exeext + } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=1 +fi + # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information + # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would + # interfere with the next link command; also delete a directory that is + # left behind by Apple's compiler. We do this before executing the actions. + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_cxx_try_link + +# ac_fn_c_try_run LINENO +# ---------------------- +# Try to run conftest.$ac_ext, and return whether this succeeded. Assumes that +# executables *can* be run. +ac_fn_c_try_run () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && { ac_try='./conftest$ac_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; } +then : + ac_retval=0 +else $as_nop + printf "%s\n" "$as_me: program exited with status $ac_status" >&5 + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + + ac_retval=$ac_status +fi + rm -rf conftest.dSYM conftest_ipa8_conftest.oo + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + as_fn_set_status $ac_retval + +} # ac_fn_c_try_run + +# ac_fn_check_decl LINENO SYMBOL VAR INCLUDES EXTRA-OPTIONS FLAG-VAR +# ------------------------------------------------------------------ +# Tests whether SYMBOL is declared in INCLUDES, setting cache variable VAR +# accordingly. Pass EXTRA-OPTIONS to the compiler, using FLAG-VAR. +ac_fn_check_decl () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + as_decl_name=`echo $2|sed 's/ *(.*//'` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $as_decl_name is declared" >&5 +printf %s "checking whether $as_decl_name is declared... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` + eval ac_save_FLAGS=\$$6 + as_fn_append $6 " $5" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +#ifndef $as_decl_name +#ifdef __cplusplus + (void) $as_decl_use; +#else + (void) $as_decl_name; +#endif +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$3=yes" +else $as_nop + eval "$3=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + eval $6=\$ac_save_FLAGS + +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_check_decl + +# ac_fn_c_check_type LINENO TYPE VAR INCLUDES +# ------------------------------------------- +# Tests whether TYPE exists after having included INCLUDES, setting cache +# variable VAR accordingly. +ac_fn_c_check_type () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2" >&5 +printf %s "checking for $2... " >&6; } +if eval test \${$3+y} +then : + printf %s "(cached) " >&6 +else $as_nop + eval "$3=no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof ($2)) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$4 +int +main (void) +{ +if (sizeof (($2))) + return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + eval "$3=yes" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$3 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_type + +# ac_fn_c_check_member LINENO AGGR MEMBER VAR INCLUDES +# ---------------------------------------------------- +# Tries to find if the field MEMBER exists in type AGGR, after including +# INCLUDES, setting cache variable VAR accordingly. +ac_fn_c_check_member () +{ + as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $2.$3" >&5 +printf %s "checking for $2.$3... " >&6; } +if eval test \${$4+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$5 +int +main (void) +{ +static $2 ac_aggr; +if (sizeof ac_aggr.$3) +return 0; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + eval "$4=yes" +else $as_nop + eval "$4=no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +eval ac_res=\$$4 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno + +} # ac_fn_c_check_member +ac_configure_args_raw= +for ac_arg +do + case $ac_arg in + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_configure_args_raw " '$ac_arg'" +done + +case $ac_configure_args_raw in + *$as_nl*) + ac_safe_unquote= ;; + *) + ac_unsafe_z='|&;<>()$`\\"*?[ '' ' # This string ends in space, tab. + ac_unsafe_a="$ac_unsafe_z#~" + ac_safe_unquote="s/ '\\([^$ac_unsafe_a][^$ac_unsafe_z]*\\)'/ \\1/g" + ac_configure_args_raw=` printf "%s\n" "$ac_configure_args_raw" | sed "$ac_safe_unquote"`;; +esac + +cat >config.log <<_ACEOF +This file contains any messages produced by compilers while +running configure, to aid debugging if configure makes a mistake. + +It was created by c-ares $as_me 1.18.1, which was +generated by GNU Autoconf 2.71. Invocation command line was + + $ $0$ac_configure_args_raw + +_ACEOF +exec 5>>config.log +{ +cat <<_ASUNAME +## --------- ## +## Platform. ## +## --------- ## + +hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` +uname -m = `(uname -m) 2>/dev/null || echo unknown` +uname -r = `(uname -r) 2>/dev/null || echo unknown` +uname -s = `(uname -s) 2>/dev/null || echo unknown` +uname -v = `(uname -v) 2>/dev/null || echo unknown` + +/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` +/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` + +/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` +/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` +/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` +/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` +/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` +/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` +/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` + +_ASUNAME + +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + printf "%s\n" "PATH: $as_dir" + done +IFS=$as_save_IFS + +} >&5 + +cat >&5 <<_ACEOF + + +## ----------- ## +## Core tests. ## +## ----------- ## + +_ACEOF + + +# Keep a trace of the command line. +# Strip out --no-create and --no-recursion so they do not pile up. +# Strip out --silent because we don't want to record it for future runs. +# Also quote any args containing shell meta-characters. +# Make two passes to allow for proper duplicate-argument suppression. +ac_configure_args= +ac_configure_args0= +ac_configure_args1= +ac_must_keep_next=false +for ac_pass in 1 2 +do + for ac_arg + do + case $ac_arg in + -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil) + continue ;; + *\'*) + ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + case $ac_pass in + 1) as_fn_append ac_configure_args0 " '$ac_arg'" ;; + 2) + as_fn_append ac_configure_args1 " '$ac_arg'" + if test $ac_must_keep_next = true; then + ac_must_keep_next=false # Got value, back to normal. + else + case $ac_arg in + *=* | --config-cache | -C | -disable-* | --disable-* \ + | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ + | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ + | -with-* | --with-* | -without-* | --without-* | --x) + case "$ac_configure_args0 " in + "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; + esac + ;; + -* ) ac_must_keep_next=true ;; + esac + fi + as_fn_append ac_configure_args " '$ac_arg'" + ;; + esac + done +done +{ ac_configure_args0=; unset ac_configure_args0;} +{ ac_configure_args1=; unset ac_configure_args1;} + +# When interrupted or exit'd, cleanup temporary files, and complete +# config.log. We remove comments because anyway the quotes in there +# would cause problems or look ugly. +# WARNING: Use '\'' to represent an apostrophe within the trap. +# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. +trap 'exit_status=$? + # Sanitize IFS. + IFS=" "" $as_nl" + # Save into config.log some information that might help in debugging. + { + echo + + printf "%s\n" "## ---------------- ## +## Cache variables. ## +## ---------------- ##" + echo + # The following way of writing the cache mishandles newlines in values, +( + for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + (set) 2>&1 | + case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + sed -n \ + "s/'\''/'\''\\\\'\'''\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" + ;; #( + *) + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) + echo + + printf "%s\n" "## ----------------- ## +## Output variables. ## +## ----------------- ##" + echo + for ac_var in $ac_subst_vars + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + + if test -n "$ac_subst_files"; then + printf "%s\n" "## ------------------- ## +## File substitutions. ## +## ------------------- ##" + echo + for ac_var in $ac_subst_files + do + eval ac_val=\$$ac_var + case $ac_val in + *\'\''*) ac_val=`printf "%s\n" "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; + esac + printf "%s\n" "$ac_var='\''$ac_val'\''" + done | sort + echo + fi + + if test -s confdefs.h; then + printf "%s\n" "## ----------- ## +## confdefs.h. ## +## ----------- ##" + echo + cat confdefs.h + echo + fi + test "$ac_signal" != 0 && + printf "%s\n" "$as_me: caught signal $ac_signal" + printf "%s\n" "$as_me: exit $exit_status" + } >&5 + rm -f core *.core core.conftest.* && + rm -f -r conftest* confdefs* conf$$* $ac_clean_files && + exit $exit_status +' 0 +for ac_signal in 1 2 13 15; do + trap 'ac_signal='$ac_signal'; as_fn_exit 1' $ac_signal +done +ac_signal=0 + +# confdefs.h avoids OS command line length limits that DEFS can exceed. +rm -f -r conftest* confdefs.h + +printf "%s\n" "/* confdefs.h */" > confdefs.h + +# Predefined preprocessor variables. + +printf "%s\n" "#define PACKAGE_NAME \"$PACKAGE_NAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_TARNAME \"$PACKAGE_TARNAME\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_VERSION \"$PACKAGE_VERSION\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_STRING \"$PACKAGE_STRING\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_BUGREPORT \"$PACKAGE_BUGREPORT\"" >>confdefs.h + +printf "%s\n" "#define PACKAGE_URL \"$PACKAGE_URL\"" >>confdefs.h + + +# Let the site file select an alternate cache file if it wants to. +# Prefer an explicitly selected file to automatically selected ones. +if test -n "$CONFIG_SITE"; then + ac_site_files="$CONFIG_SITE" +elif test "x$prefix" != xNONE; then + ac_site_files="$prefix/share/config.site $prefix/etc/config.site" +else + ac_site_files="$ac_default_prefix/share/config.site $ac_default_prefix/etc/config.site" +fi + +for ac_site_file in $ac_site_files +do + case $ac_site_file in #( + */*) : + ;; #( + *) : + ac_site_file=./$ac_site_file ;; +esac + if test -f "$ac_site_file" && test -r "$ac_site_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading site script $ac_site_file" >&5 +printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} + sed 's/^/| /' "$ac_site_file" >&5 + . "$ac_site_file" \ + || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "failed to load site script $ac_site_file +See \`config.log' for more details" "$LINENO" 5; } + fi +done + +if test -r "$cache_file"; then + # Some versions of bash will fail to source /dev/null (special files + # actually), so we avoid doing that. DJGPP emulates it as a regular file. + if test /dev/null != "$cache_file" && test -f "$cache_file"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: loading cache $cache_file" >&5 +printf "%s\n" "$as_me: loading cache $cache_file" >&6;} + case $cache_file in + [\\/]* | ?:[\\/]* ) . "$cache_file";; + *) . "./$cache_file";; + esac + fi +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating cache $cache_file" >&5 +printf "%s\n" "$as_me: creating cache $cache_file" >&6;} + >$cache_file +fi + +# Test code for whether the C compiler supports C89 (global declarations) +ac_c_conftest_c89_globals=' +/* Does the compiler advertise C89 conformance? + Do not test the value of __STDC__, because some compilers set it to 0 + while being otherwise adequately conformant. */ +#if !defined __STDC__ +# error "Compiler does not advertise C89 conformance" +#endif + +#include +#include +struct stat; +/* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ +struct buf { int x; }; +struct buf * (*rcsopen) (struct buf *, struct stat *, int); +static char *e (p, i) + char **p; + int i; +{ + return p[i]; +} +static char *f (char * (*g) (char **, int), char **p, ...) +{ + char *s; + va_list v; + va_start (v,p); + s = g (p, va_arg (v,int)); + va_end (v); + return s; +} + +/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has + function prototypes and stuff, but not \xHH hex character constants. + These do not provoke an error unfortunately, instead are silently treated + as an "x". The following induces an error, until -std is added to get + proper ANSI mode. Curiously \x00 != x always comes out true, for an + array size at least. It is necessary to write \x00 == 0 to get something + that is true only with -std. */ +int osf4_cc_array ['\''\x00'\'' == 0 ? 1 : -1]; + +/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters + inside strings and character constants. */ +#define FOO(x) '\''x'\'' +int xlc6_cc_array[FOO(a) == '\''x'\'' ? 1 : -1]; + +int test (int i, double x); +struct s1 {int (*f) (int a);}; +struct s2 {int (*f) (double a);}; +int pairnames (int, char **, int *(*)(struct buf *, struct stat *, int), + int, int);' + +# Test code for whether the C compiler supports C89 (body of main). +ac_c_conftest_c89_main=' +ok |= (argc == 0 || f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]); +' + +# Test code for whether the C compiler supports C99 (global declarations) +ac_c_conftest_c99_globals=' +// Does the compiler advertise C99 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L +# error "Compiler does not advertise C99 conformance" +#endif + +#include +extern int puts (const char *); +extern int printf (const char *, ...); +extern int dprintf (int, const char *, ...); +extern void *malloc (size_t); + +// Check varargs macros. These examples are taken from C99 6.10.3.5. +// dprintf is used instead of fprintf to avoid needing to declare +// FILE and stderr. +#define debug(...) dprintf (2, __VA_ARGS__) +#define showlist(...) puts (#__VA_ARGS__) +#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) +static void +test_varargs_macros (void) +{ + int x = 1234; + int y = 5678; + debug ("Flag"); + debug ("X = %d\n", x); + showlist (The first, second, and third items.); + report (x>y, "x is %d but y is %d", x, y); +} + +// Check long long types. +#define BIG64 18446744073709551615ull +#define BIG32 4294967295ul +#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) +#if !BIG_OK + #error "your preprocessor is broken" +#endif +#if BIG_OK +#else + #error "your preprocessor is broken" +#endif +static long long int bignum = -9223372036854775807LL; +static unsigned long long int ubignum = BIG64; + +struct incomplete_array +{ + int datasize; + double data[]; +}; + +struct named_init { + int number; + const wchar_t *name; + double average; +}; + +typedef const char *ccp; + +static inline int +test_restrict (ccp restrict text) +{ + // See if C++-style comments work. + // Iterate through items via the restricted pointer. + // Also check for declarations in for loops. + for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i) + continue; + return 0; +} + +// Check varargs and va_copy. +static bool +test_varargs (const char *format, ...) +{ + va_list args; + va_start (args, format); + va_list args_copy; + va_copy (args_copy, args); + + const char *str = ""; + int number = 0; + float fnumber = 0; + + while (*format) + { + switch (*format++) + { + case '\''s'\'': // string + str = va_arg (args_copy, const char *); + break; + case '\''d'\'': // int + number = va_arg (args_copy, int); + break; + case '\''f'\'': // float + fnumber = va_arg (args_copy, double); + break; + default: + break; + } + } + va_end (args_copy); + va_end (args); + + return *str && number && fnumber; +} +' + +# Test code for whether the C compiler supports C99 (body of main). +ac_c_conftest_c99_main=' + // Check bool. + _Bool success = false; + success |= (argc != 0); + + // Check restrict. + if (test_restrict ("String literal") == 0) + success = true; + char *restrict newvar = "Another string"; + + // Check varargs. + success &= test_varargs ("s, d'\'' f .", "string", 65, 34.234); + test_varargs_macros (); + + // Check flexible array members. + struct incomplete_array *ia = + malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); + ia->datasize = 10; + for (int i = 0; i < ia->datasize; ++i) + ia->data[i] = i * 1.234; + + // Check named initializers. + struct named_init ni = { + .number = 34, + .name = L"Test wide string", + .average = 543.34343, + }; + + ni.number = 58; + + int dynamic_array[ni.number]; + dynamic_array[0] = argv[0][0]; + dynamic_array[ni.number - 1] = 543; + + // work around unused variable warnings + ok |= (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == '\''x'\'' + || dynamic_array[ni.number - 1] != 543); +' + +# Test code for whether the C compiler supports C11 (global declarations) +ac_c_conftest_c11_globals=' +// Does the compiler advertise C11 conformance? +#if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L +# error "Compiler does not advertise C11 conformance" +#endif + +// Check _Alignas. +char _Alignas (double) aligned_as_double; +char _Alignas (0) no_special_alignment; +extern char aligned_as_int; +char _Alignas (0) _Alignas (int) aligned_as_int; + +// Check _Alignof. +enum +{ + int_alignment = _Alignof (int), + int_array_alignment = _Alignof (int[100]), + char_alignment = _Alignof (char) +}; +_Static_assert (0 < -_Alignof (int), "_Alignof is signed"); + +// Check _Noreturn. +int _Noreturn does_not_return (void) { for (;;) continue; } + +// Check _Static_assert. +struct test_static_assert +{ + int x; + _Static_assert (sizeof (int) <= sizeof (long int), + "_Static_assert does not work in struct"); + long int y; +}; + +// Check UTF-8 literals. +#define u8 syntax error! +char const utf8_literal[] = u8"happens to be ASCII" "another string"; + +// Check duplicate typedefs. +typedef long *long_ptr; +typedef long int *long_ptr; +typedef long_ptr long_ptr; + +// Anonymous structures and unions -- taken from C11 6.7.2.1 Example 1. +struct anonymous +{ + union { + struct { int i; int j; }; + struct { int k; long int l; } w; + }; + int m; +} v1; +' + +# Test code for whether the C compiler supports C11 (body of main). +ac_c_conftest_c11_main=' + _Static_assert ((offsetof (struct anonymous, i) + == offsetof (struct anonymous, w.k)), + "Anonymous union alignment botch"); + v1.i = 2; + v1.w.k = 5; + ok |= v1.i != 5; +' + +# Test code for whether the C compiler supports C11 (complete). +ac_c_conftest_c11_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} +${ac_c_conftest_c11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + ${ac_c_conftest_c11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C99 (complete). +ac_c_conftest_c99_program="${ac_c_conftest_c89_globals} +${ac_c_conftest_c99_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + ${ac_c_conftest_c99_main} + return ok; +} +" + +# Test code for whether the C compiler supports C89 (complete). +ac_c_conftest_c89_program="${ac_c_conftest_c89_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_c_conftest_c89_main} + return ok; +} +" + +# Test code for whether the C++ compiler supports C++98 (global declarations) +ac_cxx_conftest_cxx98_globals=' +// Does the compiler advertise C++98 conformance? +#if !defined __cplusplus || __cplusplus < 199711L +# error "Compiler does not advertise C++98 conformance" +#endif + +// These inclusions are to reject old compilers that +// lack the unsuffixed header files. +#include +#include + +// and are *not* freestanding headers in C++98. +extern void assert (int); +namespace std { + extern int strcmp (const char *, const char *); +} + +// Namespaces, exceptions, and templates were all added after "C++ 2.0". +using std::exception; +using std::strcmp; + +namespace { + +void test_exception_syntax() +{ + try { + throw "test"; + } catch (const char *s) { + // Extra parentheses suppress a warning when building autoconf itself, + // due to lint rules shared with more typical C programs. + assert (!(strcmp) (s, "test")); + } +} + +template struct test_template +{ + T const val; + explicit test_template(T t) : val(t) {} + template T add(U u) { return static_cast(u) + val; } +}; + +} // anonymous namespace +' + +# Test code for whether the C++ compiler supports C++98 (body of main) +ac_cxx_conftest_cxx98_main=' + assert (argc); + assert (! argv[0]); +{ + test_exception_syntax (); + test_template tt (2.0); + assert (tt.add (4) == 6.0); + assert (true && !false); +} +' + +# Test code for whether the C++ compiler supports C++11 (global declarations) +ac_cxx_conftest_cxx11_globals=' +// Does the compiler advertise C++ 2011 conformance? +#if !defined __cplusplus || __cplusplus < 201103L +# error "Compiler does not advertise C++11 conformance" +#endif + +namespace cxx11test +{ + constexpr int get_val() { return 20; } + + struct testinit + { + int i; + double d; + }; + + class delegate + { + public: + delegate(int n) : n(n) {} + delegate(): delegate(2354) {} + + virtual int getval() { return this->n; }; + protected: + int n; + }; + + class overridden : public delegate + { + public: + overridden(int n): delegate(n) {} + virtual int getval() override final { return this->n * 2; } + }; + + class nocopy + { + public: + nocopy(int i): i(i) {} + nocopy() = default; + nocopy(const nocopy&) = delete; + nocopy & operator=(const nocopy&) = delete; + private: + int i; + }; + + // for testing lambda expressions + template Ret eval(Fn f, Ret v) + { + return f(v); + } + + // for testing variadic templates and trailing return types + template auto sum(V first) -> V + { + return first; + } + template auto sum(V first, Args... rest) -> V + { + return first + sum(rest...); + } +} +' + +# Test code for whether the C++ compiler supports C++11 (body of main) +ac_cxx_conftest_cxx11_main=' +{ + // Test auto and decltype + auto a1 = 6538; + auto a2 = 48573953.4; + auto a3 = "String literal"; + + int total = 0; + for (auto i = a3; *i; ++i) { total += *i; } + + decltype(a2) a4 = 34895.034; +} +{ + // Test constexpr + short sa[cxx11test::get_val()] = { 0 }; +} +{ + // Test initializer lists + cxx11test::testinit il = { 4323, 435234.23544 }; +} +{ + // Test range-based for + int array[] = {9, 7, 13, 15, 4, 18, 12, 10, 5, 3, + 14, 19, 17, 8, 6, 20, 16, 2, 11, 1}; + for (auto &x : array) { x += 23; } +} +{ + // Test lambda expressions + using cxx11test::eval; + assert (eval ([](int x) { return x*2; }, 21) == 42); + double d = 2.0; + assert (eval ([&](double x) { return d += x; }, 3.0) == 5.0); + assert (d == 5.0); + assert (eval ([=](double x) mutable { return d += x; }, 4.0) == 9.0); + assert (d == 5.0); +} +{ + // Test use of variadic templates + using cxx11test::sum; + auto a = sum(1); + auto b = sum(1, 2); + auto c = sum(1.0, 2.0, 3.0); +} +{ + // Test constructor delegation + cxx11test::delegate d1; + cxx11test::delegate d2(); + cxx11test::delegate d3(45); +} +{ + // Test override and final + cxx11test::overridden o1(55464); +} +{ + // Test nullptr + char *c = nullptr; +} +{ + // Test template brackets + test_template<::test_template> v(test_template(12)); +} +{ + // Unicode literals + char const *utf8 = u8"UTF-8 string \u2500"; + char16_t const *utf16 = u"UTF-8 string \u2500"; + char32_t const *utf32 = U"UTF-32 string \u2500"; +} +' + +# Test code for whether the C compiler supports C++11 (complete). +ac_cxx_conftest_cxx11_program="${ac_cxx_conftest_cxx98_globals} +${ac_cxx_conftest_cxx11_globals} + +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + ${ac_cxx_conftest_cxx11_main} + return ok; +} +" + +# Test code for whether the C compiler supports C++98 (complete). +ac_cxx_conftest_cxx98_program="${ac_cxx_conftest_cxx98_globals} +int +main (int argc, char **argv) +{ + int ok = 0; + ${ac_cxx_conftest_cxx98_main} + return ok; +} +" + +as_fn_append ac_header_c_list " stdio.h stdio_h HAVE_STDIO_H" +as_fn_append ac_header_c_list " stdlib.h stdlib_h HAVE_STDLIB_H" +as_fn_append ac_header_c_list " string.h string_h HAVE_STRING_H" +as_fn_append ac_header_c_list " inttypes.h inttypes_h HAVE_INTTYPES_H" +as_fn_append ac_header_c_list " stdint.h stdint_h HAVE_STDINT_H" +as_fn_append ac_header_c_list " strings.h strings_h HAVE_STRINGS_H" +as_fn_append ac_header_c_list " sys/stat.h sys_stat_h HAVE_SYS_STAT_H" +as_fn_append ac_header_c_list " sys/types.h sys_types_h HAVE_SYS_TYPES_H" +as_fn_append ac_header_c_list " unistd.h unistd_h HAVE_UNISTD_H" +as_fn_append ac_header_c_list " sys/time.h sys_time_h HAVE_SYS_TIME_H" + +# Auxiliary files required by this configure script. +ac_aux_files="ltmain.sh missing compile install-sh config.guess config.sub" + +# Locations in which to look for auxiliary files. +ac_aux_dir_candidates="${srcdir}${PATH_SEPARATOR}${srcdir}/..${PATH_SEPARATOR}${srcdir}/../.." + +# Search for a directory containing all of the required auxiliary files, +# $ac_aux_files, from the $PATH-style list $ac_aux_dir_candidates. +# If we don't find one directory that contains all the files we need, +# we report the set of missing files from the *first* directory in +# $ac_aux_dir_candidates and give up. +ac_missing_aux_files="" +ac_first_candidate=: +printf "%s\n" "$as_me:${as_lineno-$LINENO}: looking for aux files: $ac_aux_files" >&5 +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_found=false +for as_dir in $ac_aux_dir_candidates +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + as_found=: + + printf "%s\n" "$as_me:${as_lineno-$LINENO}: trying $as_dir" >&5 + ac_aux_dir_found=yes + ac_install_sh= + for ac_aux in $ac_aux_files + do + # As a special case, if "install-sh" is required, that requirement + # can be satisfied by any of "install-sh", "install.sh", or "shtool", + # and $ac_install_sh is set appropriately for whichever one is found. + if test x"$ac_aux" = x"install-sh" + then + if test -f "${as_dir}install-sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install-sh found" >&5 + ac_install_sh="${as_dir}install-sh -c" + elif test -f "${as_dir}install.sh"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}install.sh found" >&5 + ac_install_sh="${as_dir}install.sh -c" + elif test -f "${as_dir}shtool"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}shtool found" >&5 + ac_install_sh="${as_dir}shtool install -c" + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} install-sh" + else + break + fi + fi + else + if test -f "${as_dir}${ac_aux}"; then + printf "%s\n" "$as_me:${as_lineno-$LINENO}: ${as_dir}${ac_aux} found" >&5 + else + ac_aux_dir_found=no + if $ac_first_candidate; then + ac_missing_aux_files="${ac_missing_aux_files} ${ac_aux}" + else + break + fi + fi + fi + done + if test "$ac_aux_dir_found" = yes; then + ac_aux_dir="$as_dir" + break + fi + ac_first_candidate=false + + as_found=false +done +IFS=$as_save_IFS +if $as_found +then : + +else $as_nop + as_fn_error $? "cannot find required auxiliary files:$ac_missing_aux_files" "$LINENO" 5 +fi + + +# These three variables are undocumented and unsupported, +# and are intended to be withdrawn in a future Autoconf release. +# They can cause serious problems if a builder's source tree is in a directory +# whose full name contains unusual characters. +if test -f "${ac_aux_dir}config.guess"; then + ac_config_guess="$SHELL ${ac_aux_dir}config.guess" +fi +if test -f "${ac_aux_dir}config.sub"; then + ac_config_sub="$SHELL ${ac_aux_dir}config.sub" +fi +if test -f "$ac_aux_dir/configure"; then + ac_configure="$SHELL ${ac_aux_dir}configure" +fi + +# Check that the precious variables saved in the cache have kept the same +# value. +ac_cache_corrupted=false +for ac_var in $ac_precious_vars; do + eval ac_old_set=\$ac_cv_env_${ac_var}_set + eval ac_new_set=\$ac_env_${ac_var}_set + eval ac_old_val=\$ac_cv_env_${ac_var}_value + eval ac_new_val=\$ac_env_${ac_var}_value + case $ac_old_set,$ac_new_set in + set,) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,set) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} + ac_cache_corrupted=: ;; + ,);; + *) + if test "x$ac_old_val" != "x$ac_new_val"; then + # differences in whitespace do not lead to failure. + ac_old_val_w=`echo x $ac_old_val` + ac_new_val_w=`echo x $ac_new_val` + if test "$ac_old_val_w" != "$ac_new_val_w"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5 +printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} + ac_cache_corrupted=: + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 +printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} + eval $ac_var=\$ac_old_val + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5 +printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5 +printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;} + fi;; + esac + # Pass precious variables to config.status. + if test "$ac_new_set" = set; then + case $ac_new_val in + *\'*) ac_arg=$ac_var=`printf "%s\n" "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; + *) ac_arg=$ac_var=$ac_new_val ;; + esac + case " $ac_configure_args " in + *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. + *) as_fn_append ac_configure_args " '$ac_arg'" ;; + esac + fi +done +if $ac_cache_corrupted; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 +printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;} + as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file' + and start over" "$LINENO" 5 +fi +## -------------------- ## +## Main body of script. ## +## -------------------- ## + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +CARES_VERSION_INFO="7:1:5" + + + +ac_config_headers="$ac_config_headers src/lib/ares_config.h include/ares_build.h" + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable maintainer-specific portions of Makefiles" >&5 +printf %s "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } + # Check whether --enable-maintainer-mode was given. +if test ${enable_maintainer_mode+y} +then : + enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval +else $as_nop + USE_MAINTAINER_MODE=no +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $USE_MAINTAINER_MODE" >&5 +printf "%s\n" "$USE_MAINTAINER_MODE" >&6; } + if test $USE_MAINTAINER_MODE = yes; then + MAINTAINER_MODE_TRUE= + MAINTAINER_MODE_FALSE='#' +else + MAINTAINER_MODE_TRUE='#' + MAINTAINER_MODE_FALSE= +fi + + MAINT=$MAINTAINER_MODE_TRUE + + +# Check whether --enable-silent-rules was given. +if test ${enable_silent_rules+y} +then : + enableval=$enable_silent_rules; +fi + +case $enable_silent_rules in # ((( + yes) AM_DEFAULT_VERBOSITY=0;; + no) AM_DEFAULT_VERBOSITY=1;; + *) AM_DEFAULT_VERBOSITY=0;; +esac +am_make=${MAKE-make} +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $am_make supports nested variables" >&5 +printf %s "checking whether $am_make supports nested variables... " >&6; } +if test ${am_cv_make_support_nested_variables+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if printf "%s\n" 'TRUE=$(BAR$(V)) +BAR0=false +BAR1=true +V=1 +am__doit: + @$(TRUE) +.PHONY: am__doit' | $am_make -f - >/dev/null 2>&1; then + am_cv_make_support_nested_variables=yes +else + am_cv_make_support_nested_variables=no +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_make_support_nested_variables" >&5 +printf "%s\n" "$am_cv_make_support_nested_variables" >&6; } +if test $am_cv_make_support_nested_variables = yes; then + AM_V='$(V)' + AM_DEFAULT_V='$(AM_DEFAULT_VERBOSITY)' +else + AM_V=$AM_DEFAULT_VERBOSITY + AM_DEFAULT_V=$AM_DEFAULT_VERBOSITY +fi +AM_BACKSLASH='\' + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable debug build options" >&5 +printf %s "checking whether to enable debug build options... " >&6; } + OPT_DEBUG_BUILD="default" + # Check whether --enable-debug was given. +if test ${enable_debug+y} +then : + enableval=$enable_debug; OPT_DEBUG_BUILD=$enableval +fi + + case "$OPT_DEBUG_BUILD" in + no) + want_debug="no" + ;; + default) + want_debug="no" + ;; + *) + want_debug="yes" + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_debug" >&5 +printf "%s\n" "$want_debug" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler optimizer" >&5 +printf %s "checking whether to enable compiler optimizer... " >&6; } + OPT_COMPILER_OPTIMIZE="default" + # Check whether --enable-optimize was given. +if test ${enable_optimize+y} +then : + enableval=$enable_optimize; OPT_COMPILER_OPTIMIZE=$enableval +fi + + case "$OPT_COMPILER_OPTIMIZE" in + no) + want_optimize="no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + default) + if test "$want_debug" = "yes"; then + want_optimize="assume_no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not specified (assuming no)" >&5 +printf "%s\n" "not specified (assuming no)" >&6; } + else + want_optimize="assume_yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: not specified (assuming yes)" >&5 +printf "%s\n" "not specified (assuming yes)" >&6; } + fi + ;; + *) + want_optimize="yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable strict compiler warnings" >&5 +printf %s "checking whether to enable strict compiler warnings... " >&6; } + OPT_COMPILER_WARNINGS="default" + # Check whether --enable-warnings was given. +if test ${enable_warnings+y} +then : + enableval=$enable_warnings; OPT_COMPILER_WARNINGS=$enableval +fi + + case "$OPT_COMPILER_WARNINGS" in + no) + want_warnings="no" + ;; + default) + want_warnings="$want_debug" + ;; + *) + want_warnings="yes" + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_warnings" >&5 +printf "%s\n" "$want_warnings" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable compiler warnings as errors" >&5 +printf %s "checking whether to enable compiler warnings as errors... " >&6; } + OPT_COMPILER_WERROR="default" + # Check whether --enable-werror was given. +if test ${enable_werror+y} +then : + enableval=$enable_werror; OPT_COMPILER_WERROR=$enableval +fi + + case "$OPT_COMPILER_WERROR" in + no) + want_werror="no" + ;; + default) + want_werror="no" + ;; + *) + want_werror="yes" + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_werror" >&5 +printf "%s\n" "$want_werror" >&6; } + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable hiding of library internal symbols" >&5 +printf %s "checking whether to enable hiding of library internal symbols... " >&6; } + OPT_SYMBOL_HIDING="default" + # Check whether --enable-symbol-hiding was given. +if test ${enable_symbol_hiding+y} +then : + enableval=$enable_symbol_hiding; OPT_SYMBOL_HIDING=$enableval +fi + + case "$OPT_SYMBOL_HIDING" in + no) + want_symbol_hiding="no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + default) + want_symbol_hiding="yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + *) + want_symbol_hiding="yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to expose internal static functions for testing" >&5 +printf %s "checking whether to expose internal static functions for testing... " >&6; } + OPT_EXPOSE_STATICS="default" + # Check whether --enable-expose-statics was given. +if test ${enable_expose_statics+y} +then : + enableval=$enable_expose_statics; OPT_EXPOSE_STATICS=$enableval +fi + + case "$OPT_EXPOSE_STATICS" in + no) + want_expose_statics="no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + default) + want_expose_statics="no" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + *) + want_expose_statics="yes" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + esac + if test "$want_expose_statics" = "yes"; then + +printf "%s\n" "#define CARES_EXPOSE_STATICS 1" >>confdefs.h + + fi + + +# +# Check that 'XC_CONFIGURE_PREAMBLE' has already run. +# + +if test -z "$xc_configure_preamble_result"; then + as_fn_error $? "xc_configure_preamble_result not set (internal problem)" "$LINENO" 5 +fi + +# +# Check that 'PATH_SEPARATOR' has already been set. +# + +if test -z "$xc_PATH_SEPARATOR"; then + as_fn_error $? "xc_PATH_SEPARATOR not set (internal problem)" "$LINENO" 5 +fi +if test -z "$PATH_SEPARATOR"; then + as_fn_error $? "PATH_SEPARATOR not set (internal or config.site problem)" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for path separator" >&5 +printf %s "checking for path separator... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $PATH_SEPARATOR" >&5 +printf "%s\n" "$PATH_SEPARATOR" >&6; } +if test "x$PATH_SEPARATOR" != "x$xc_PATH_SEPARATOR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for initial path separator" >&5 +printf %s "checking for initial path separator... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_PATH_SEPARATOR" >&5 +printf "%s\n" "$xc_PATH_SEPARATOR" >&6; } + as_fn_error $? "path separator mismatch (internal or config.site problem)" "$LINENO" 5 +fi + + +# Extract the first word of "sed", so it can be a program name with args. +set dummy sed; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $SED in + [\\/]* | ?:[\\/]*) + ac_cv_path_SED="$SED" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_SED="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_SED" && ac_cv_path_SED="not_found" + ;; +esac +fi +SED=$ac_cv_path_SED +if test -n "$SED"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $SED" >&5 +printf "%s\n" "$SED" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +if test -z "$SED" || test "$SED" = "not_found"; then + as_fn_error $? "sed not found in PATH. Cannot continue without sed." "$LINENO" 5 +fi + + +# Extract the first word of "grep", so it can be a program name with args. +set dummy grep; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $GREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_GREP="$GREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_GREP="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_GREP" && ac_cv_path_GREP="not_found" + ;; +esac +fi +GREP=$ac_cv_path_GREP +if test -n "$GREP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GREP" >&5 +printf "%s\n" "$GREP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +if test -z "$GREP" || test "$GREP" = "not_found"; then + as_fn_error $? "grep not found in PATH. Cannot continue without grep." "$LINENO" 5 +fi + + +if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } + EGREP="$GREP -E" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 +printf "%s\n" "$EGREP" >&6; } +else + # Extract the first word of "egrep", so it can be a program name with args. +set dummy egrep; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $EGREP in + [\\/]* | ?:[\\/]*) + ac_cv_path_EGREP="$EGREP" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_EGREP="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + test -z "$ac_cv_path_EGREP" && ac_cv_path_EGREP="not_found" + ;; +esac +fi +EGREP=$ac_cv_path_EGREP +if test -n "$EGREP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $EGREP" >&5 +printf "%s\n" "$EGREP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$EGREP" || test "$EGREP" = "not_found"; then + as_fn_error $? "egrep not found in PATH. Cannot continue without egrep." "$LINENO" 5 +fi + + +if test -z "$AR"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ar", so it can be a program name with args. +set dummy ${ac_tool_prefix}ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $AR in + [\\/]* | ?:[\\/]*) + ac_cv_path_AR="$AR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_AR="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +AR=$ac_cv_path_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_path_AR"; then + ac_pt_AR=$AR + # Extract the first word of "ar", so it can be a program name with args. +set dummy ar; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_path_ac_pt_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $ac_pt_AR in + [\\/]* | ?:[\\/]*) + ac_cv_path_ac_pt_AR="$ac_pt_AR" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +as_dummy="$PATH:/usr/bin:/usr/local/bin" +for as_dir in $as_dummy +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_path_ac_pt_AR="$as_dir$ac_word$ac_exec_ext" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + + ;; +esac +fi +ac_pt_AR=$ac_cv_path_ac_pt_AR +if test -n "$ac_pt_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_pt_AR" >&5 +printf "%s\n" "$ac_pt_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_pt_AR" = x; then + AR="not_found" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_pt_AR + fi +else + AR="$ac_cv_path_AR" +fi + + if test -z "$AR" || test "$AR" = "not_found"; then + as_fn_error $? "ar not found in PATH. Cannot continue without ar." "$LINENO" 5 + fi +fi + + + + + + + + + + + + + + + + + # allow to override gcov location + +# Check whether --with-gcov was given. +if test ${with_gcov+y} +then : + withval=$with_gcov; _AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov +else $as_nop + _AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov +fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build with code coverage support" >&5 +printf %s "checking whether to build with code coverage support... " >&6; } + # Check whether --enable-code-coverage was given. +if test ${enable_code_coverage+y} +then : + enableval=$enable_code_coverage; +else $as_nop + enable_code_coverage=no +fi + + + if test "x$enable_code_coverage" = xyes; then + CODE_COVERAGE_ENABLED_TRUE= + CODE_COVERAGE_ENABLED_FALSE='#' +else + CODE_COVERAGE_ENABLED_TRUE='#' + CODE_COVERAGE_ENABLED_FALSE= +fi + + CODE_COVERAGE_ENABLED=$enable_code_coverage + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_code_coverage" >&5 +printf "%s\n" "$enable_code_coverage" >&6; } + + if test "x$enable_code_coverage" = xyes +then : + + + for ac_prog in gawk mawk nawk awk +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AWK+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AWK"; then + ac_cv_prog_AWK="$AWK" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AWK="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AWK=$ac_cv_prog_AWK +if test -n "$AWK"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AWK" >&5 +printf "%s\n" "$AWK" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AWK" && break +done + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU make" >&5 +printf %s "checking for GNU make... " >&6; } +if test ${_cv_gnu_make_command+y} +then : + printf %s "(cached) " >&6 +else $as_nop + _cv_gnu_make_command="" ; + for a in "$MAKE" make gmake gnumake ; do + if test -z "$a" ; then continue ; fi ; + if "$a" --version 2> /dev/null | grep GNU 2>&1 > /dev/null ; then + _cv_gnu_make_command=$a ; + AX_CHECK_GNU_MAKE_HEADLINE=$("$a" --version 2> /dev/null | grep "GNU Make") + ax_check_gnu_make_version=$(echo ${AX_CHECK_GNU_MAKE_HEADLINE} | ${AWK} -F " " '{ print $(NF); }') + break ; + fi + done ; +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $_cv_gnu_make_command" >&5 +printf "%s\n" "$_cv_gnu_make_command" >&6; } + if test "x$_cv_gnu_make_command" = x"" +then : + ifGNUmake="#" +else $as_nop + ifGNUmake="" +fi + if test "x$_cv_gnu_make_command" = x"" +then : + ifnGNUmake="" +else $as_nop + ifnGNUmake="#" +fi + if test "x$_cv_gnu_make_command" = x"" +then : + { ax_cv_gnu_make_command=; unset ax_cv_gnu_make_command;} +else $as_nop + ax_cv_gnu_make_command=${_cv_gnu_make_command} +fi + if test "x$_cv_gnu_make_command" = x"" +then : + as_fn_error $? "not using GNU make that is needed for coverage" "$LINENO" 5 +fi + + + + + # check for gcov + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. +set dummy ${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_GCOV+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$GCOV"; then + ac_cv_prog_GCOV="$GCOV" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_GCOV="${ac_tool_prefix}$_AX_CODE_COVERAGE_GCOV_PROG_WITH" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GCOV=$ac_cv_prog_GCOV +if test -n "$GCOV"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GCOV" >&5 +printf "%s\n" "$GCOV" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_GCOV"; then + ac_ct_GCOV=$GCOV + # Extract the first word of "$_AX_CODE_COVERAGE_GCOV_PROG_WITH", so it can be a program name with args. +set dummy $_AX_CODE_COVERAGE_GCOV_PROG_WITH; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_GCOV+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_GCOV"; then + ac_cv_prog_ac_ct_GCOV="$ac_ct_GCOV" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_GCOV="$_AX_CODE_COVERAGE_GCOV_PROG_WITH" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_GCOV=$ac_cv_prog_ac_ct_GCOV +if test -n "$ac_ct_GCOV"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_GCOV" >&5 +printf "%s\n" "$ac_ct_GCOV" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_GCOV" = x; then + GCOV=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + GCOV=$ac_ct_GCOV + fi +else + GCOV="$ac_cv_prog_GCOV" +fi + + if test "X$GCOV" = "X:" +then : + as_fn_error $? "gcov is needed to do coverage" "$LINENO" 5 +fi + + + if test "$GCC" = "no" +then : + + as_fn_error $? "not compiling with gcc, which is required for gcov code coverage" "$LINENO" 5 + +fi + + # Extract the first word of "lcov", so it can be a program name with args. +set dummy lcov; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LCOV+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$LCOV"; then + ac_cv_prog_LCOV="$LCOV" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LCOV="lcov" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LCOV=$ac_cv_prog_LCOV +if test -n "$LCOV"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LCOV" >&5 +printf "%s\n" "$LCOV" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + # Extract the first word of "genhtml", so it can be a program name with args. +set dummy genhtml; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_GENHTML+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$GENHTML"; then + ac_cv_prog_GENHTML="$GENHTML" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_GENHTML="genhtml" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +GENHTML=$ac_cv_prog_GENHTML +if test -n "$GENHTML"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $GENHTML" >&5 +printf "%s\n" "$GENHTML" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + if test x"$LCOV" = x +then : + + as_fn_error $? "To enable code coverage reporting you must have lcov installed" "$LINENO" 5 + +fi + + if test x"$GENHTML" = x +then : + + as_fn_error $? "Could not find genhtml from the lcov package" "$LINENO" 5 + +fi + + CODE_COVERAGE_CPPFLAGS="-DNDEBUG" + CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_LIBS="-lgcov" + + + + + + + +fi + + + + + + + + + + + + + + + + + + # Make sure we can run config.sub. +$SHELL "${ac_aux_dir}config.sub" sun4 >/dev/null 2>&1 || + as_fn_error $? "cannot run $SHELL ${ac_aux_dir}config.sub" "$LINENO" 5 + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking build system type" >&5 +printf %s "checking build system type... " >&6; } +if test ${ac_cv_build+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_build_alias=$build_alias +test "x$ac_build_alias" = x && + ac_build_alias=`$SHELL "${ac_aux_dir}config.guess"` +test "x$ac_build_alias" = x && + as_fn_error $? "cannot guess build type; you must specify one" "$LINENO" 5 +ac_cv_build=`$SHELL "${ac_aux_dir}config.sub" $ac_build_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $ac_build_alias failed" "$LINENO" 5 + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_build" >&5 +printf "%s\n" "$ac_cv_build" >&6; } +case $ac_cv_build in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical build" "$LINENO" 5;; +esac +build=$ac_cv_build +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_build +shift +build_cpu=$1 +build_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +build_os=$* +IFS=$ac_save_IFS +case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking host system type" >&5 +printf %s "checking host system type... " >&6; } +if test ${ac_cv_host+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test "x$host_alias" = x; then + ac_cv_host=$ac_cv_build +else + ac_cv_host=`$SHELL "${ac_aux_dir}config.sub" $host_alias` || + as_fn_error $? "$SHELL ${ac_aux_dir}config.sub $host_alias failed" "$LINENO" 5 +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_host" >&5 +printf "%s\n" "$ac_cv_host" >&6; } +case $ac_cv_host in +*-*-*) ;; +*) as_fn_error $? "invalid value of canonical host" "$LINENO" 5;; +esac +host=$ac_cv_host +ac_save_IFS=$IFS; IFS='-' +set x $ac_cv_host +shift +host_cpu=$1 +host_vendor=$2 +shift; shift +# Remember, the first character of IFS is used to create $*, +# except with old shells: +host_os=$* +IFS=$ac_save_IFS +case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac + + + +printf "%s\n" "#define OS \"${host}\"" >>confdefs.h + + + + xc_prog_cc_prev_IFS=$IFS + xc_prog_cc_prev_LIBS=$LIBS + xc_prog_cc_prev_CFLAGS=$CFLAGS + xc_prog_cc_prev_LDFLAGS=$LDFLAGS + xc_prog_cc_prev_CPPFLAGS=$CPPFLAGS + + + + xc_bad_var_libs=no + for xc_word in $LIBS; do + case "$xc_word" in + -l* | --library=*) + : + ;; + *) + xc_bad_var_libs=yes + ;; + esac + done + if test $xc_bad_var_libs = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5 +printf "%s\n" "$as_me: using LIBS: $LIBS" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: LIBS error: LIBS may only be used to specify libraries (-lname)." >&5 +printf "%s\n" "$as_me: LIBS error: LIBS may only be used to specify libraries (-lname)." >&6;} + fi + + + xc_bad_var_ldflags=no + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_ldflags=yes + ;; + -U*) + xc_bad_var_ldflags=yes + ;; + -I*) + xc_bad_var_ldflags=yes + ;; + -l* | --library=*) + xc_bad_var_ldflags=yes + ;; + esac + done + if test $xc_bad_var_ldflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5 +printf "%s\n" "$as_me: using LDFLAGS: $LDFLAGS" >&6;} + xc_bad_var_msg="LDFLAGS error: LDFLAGS may only be used to specify linker flags, not" + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -U*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -I*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + + xc_bad_var_cppflags=no + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + xc_bad_var_cppflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cppflags=yes + ;; + -l* | --library=*) + xc_bad_var_cppflags=yes + ;; + esac + done + if test $xc_bad_var_cppflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5 +printf "%s\n" "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;} + xc_bad_var_msg="CPPFLAGS error: CPPFLAGS may only be used to specify C preprocessor flags, not" + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -L* | --library-path=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + + xc_bad_var_cflags=no + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_cflags=yes + ;; + -U*) + xc_bad_var_cflags=yes + ;; + -I*) + xc_bad_var_cflags=yes + ;; + -rpath*) + xc_bad_var_cflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cflags=yes + ;; + -l* | --library=*) + xc_bad_var_cflags=yes + ;; + esac + done + if test $xc_bad_var_cflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5 +printf "%s\n" "$as_me: using CFLAGS: $CFLAGS" >&6;} + xc_bad_var_msg="CFLAGS error: CFLAGS may only be used to specify C compiler flags, not" + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -U*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -I*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -rpath*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -L* | --library-path=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + if test $xc_bad_var_libs = yes || + test $xc_bad_var_cflags = yes || + test $xc_bad_var_ldflags = yes || + test $xc_bad_var_cppflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5 +printf "%s\n" "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;} + fi + + + # Find a good install program. We prefer a C program (faster), +# so one script is as good as another. But avoid the broken or +# incompatible versions: +# SysV /etc/install, /usr/sbin/install +# SunOS /usr/etc/install +# IRIX /sbin/install +# AIX /bin/install +# AmigaOS /C/install, which installs bootblocks on floppy discs +# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag +# AFS /usr/afsws/bin/install, which mishandles nonexistent args +# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" +# OS/2's system install, which has a completely different semantic +# ./install, which can be erroneously created by make from ./install.sh. +# Reject install programs that cannot install multiple files. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a BSD-compatible install" >&5 +printf %s "checking for a BSD-compatible install... " >&6; } +if test -z "$INSTALL"; then +if test ${ac_cv_path_install+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + # Account for fact that we put trailing slashes in our PATH walk. +case $as_dir in #(( + ./ | /[cC]/* | \ + /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ + ?:[\\/]os2[\\/]install[\\/]* | ?:[\\/]OS2[\\/]INSTALL[\\/]* | \ + /usr/ucb/* ) ;; + *) + # OSF1 and SCO ODT 3.0 have their own names for install. + # Don't use installbsd from OSF since it installs stuff as root + # by default. + for ac_prog in ginstall scoinst install; do + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext"; then + if test $ac_prog = install && + grep dspmsg "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # AIX install. It has an incompatible calling convention. + : + elif test $ac_prog = install && + grep pwplus "$as_dir$ac_prog$ac_exec_ext" >/dev/null 2>&1; then + # program-specific install script used by HP pwplus--don't use. + : + else + rm -rf conftest.one conftest.two conftest.dir + echo one > conftest.one + echo two > conftest.two + mkdir conftest.dir + if "$as_dir$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir/" && + test -s conftest.one && test -s conftest.two && + test -s conftest.dir/conftest.one && + test -s conftest.dir/conftest.two + then + ac_cv_path_install="$as_dir$ac_prog$ac_exec_ext -c" + break 3 + fi + fi + fi + done + done + ;; +esac + + done +IFS=$as_save_IFS + +rm -rf conftest.one conftest.two conftest.dir + +fi + if test ${ac_cv_path_install+y}; then + INSTALL=$ac_cv_path_install + else + # As a last resort, use the slow shell script. Don't cache a + # value for INSTALL within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + INSTALL=$ac_install_sh + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $INSTALL" >&5 +printf "%s\n" "$INSTALL" >&6; } + +# Use test -z because SunOS4 sh mishandles braces in ${var-val}. +# It thinks the first close brace ends the variable substitution. +test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' + +test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' + +test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' + + + + + + + + + + + +# Expand $ac_aux_dir to an absolute path. +am_aux_dir=`cd "$ac_aux_dir" && pwd` + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. +set dummy ${ac_tool_prefix}gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "gcc", so it can be a program name with args. +set dummy gcc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="gcc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. +set dummy ${ac_tool_prefix}cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + fi +fi +if test -z "$CC"; then + # Extract the first word of "cc", so it can be a program name with args. +set dummy cc; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else + ac_prog_rejected=no +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + if test "$as_dir$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then + ac_prog_rejected=yes + continue + fi + ac_cv_prog_CC="cc" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +if test $ac_prog_rejected = yes; then + # We found a bogon in the path, so make sure we never use it. + set dummy $ac_cv_prog_CC + shift + if test $# != 0; then + # We chose a different compiler from the bogus one. + # However, it has the same basename, so the bogon will be chosen + # first if we set CC to just the basename; use the full file name. + shift + ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" + fi +fi +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + for ac_prog in cl.exe + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CC" && break + done +fi +if test -z "$CC"; then + ac_ct_CC=$CC + for ac_prog in cl.exe +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CC" && break +done + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +fi + +fi +if test -z "$CC"; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}clang", so it can be a program name with args. +set dummy ${ac_tool_prefix}clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CC"; then + ac_cv_prog_CC="$CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CC="${ac_tool_prefix}clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CC=$ac_cv_prog_CC +if test -n "$CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CC" >&5 +printf "%s\n" "$CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_CC"; then + ac_ct_CC=$CC + # Extract the first word of "clang", so it can be a program name with args. +set dummy clang; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CC"; then + ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CC="clang" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CC=$ac_cv_prog_ac_ct_CC +if test -n "$ac_ct_CC"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CC" >&5 +printf "%s\n" "$ac_ct_CC" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_CC" = x; then + CC="" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CC=$ac_ct_CC + fi +else + CC="$ac_cv_prog_CC" +fi + +fi + + +test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "no acceptable C compiler found in \$PATH +See \`config.log' for more details" "$LINENO" 5; } + +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion -version; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" +# Try to create an executable without -o first, disregard a.out. +# It will help us diagnose broken compilers, and finding out an intuition +# of exeext. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler works" >&5 +printf %s "checking whether the C compiler works... " >&6; } +ac_link_default=`printf "%s\n" "$ac_link" | sed 's/ -o *conftest[^ ]*//'` + +# The possible output files: +ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" + +ac_rmfiles= +for ac_file in $ac_files +do + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + * ) ac_rmfiles="$ac_rmfiles $ac_file";; + esac +done +rm -f $ac_rmfiles + +if { { ac_try="$ac_link_default" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link_default") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. +# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' +# in a Makefile. We should not override ac_cv_exeext if it was cached, +# so that the user can short-circuit this test for compilers unknown to +# Autoconf. +for ac_file in $ac_files '' +do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) + ;; + [ab].out ) + # We found the default executable, but exeext='' is most + # certainly right. + break;; + *.* ) + if test ${ac_cv_exeext+y} && test "$ac_cv_exeext" != no; + then :; else + ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + fi + # We set ac_cv_exeext here because the later test for it is not + # safe: cross compilers may not add the suffix if given an `-o' + # argument, so we may need to know it at that point already. + # Even if this section looks crufty: it has the advantage of + # actually working. + break;; + * ) + break;; + esac +done +test "$ac_cv_exeext" = no && ac_cv_exeext= + +else $as_nop + ac_file='' +fi +if test -z "$ac_file" +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "C compiler cannot create executables +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 +printf %s "checking for C compiler default output file name... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_file" >&5 +printf "%s\n" "$ac_file" >&6; } +ac_exeext=$ac_cv_exeext + +rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of executables" >&5 +printf %s "checking for suffix of executables... " >&6; } +if { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + # If both `conftest.exe' and `conftest' are `present' (well, observable) +# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will +# work properly (i.e., refer to `conftest.exe'), while it won't with +# `rm'. +for ac_file in conftest.exe conftest conftest.*; do + test -f "$ac_file" || continue + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; + *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` + break;; + * ) break;; + esac +done +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of executables: cannot compile and link +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest conftest$ac_cv_exeext +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5 +printf "%s\n" "$ac_cv_exeext" >&6; } + +rm -f conftest.$ac_ext +EXEEXT=$ac_cv_exeext +ac_exeext=$EXEEXT +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +int +main (void) +{ +FILE *f = fopen ("conftest.out", "w"); + return ferror (f) || fclose (f) != 0; + + ; + return 0; +} +_ACEOF +ac_clean_files="$ac_clean_files conftest.out" +# Check that the compiler produces executables we can run. If not, either +# the compiler is broken, or we cross compile. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether we are cross compiling" >&5 +printf %s "checking whether we are cross compiling... " >&6; } +if test "$cross_compiling" != yes; then + { { ac_try="$ac_link" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_link") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if { ac_try='./conftest$ac_cv_exeext' + { { case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_try") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; }; then + cross_compiling=no + else + if test "$cross_compiling" = maybe; then + cross_compiling=yes + else + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error 77 "cannot run C compiled programs. +If you meant to cross compile, use \`--host'. +See \`config.log' for more details" "$LINENO" 5; } + fi + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 +printf "%s\n" "$cross_compiling" >&6; } + +rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out +ac_clean_files=$ac_clean_files_save +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 +printf %s "checking for suffix of object files... " >&6; } +if test ${ac_cv_objext+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +rm -f conftest.o conftest.obj +if { { ac_try="$ac_compile" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compile") 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +then : + for ac_file in conftest.o conftest.obj conftest.*; do + test -f "$ac_file" || continue; + case $ac_file in + *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; + *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` + break;; + esac +done +else $as_nop + printf "%s\n" "$as_me: failed program was:" >&5 +sed 's/^/| /' conftest.$ac_ext >&5 + +{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot compute suffix of object files: cannot compile +See \`config.log' for more details" "$LINENO" 5; } +fi +rm -f conftest.$ac_cv_objext conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 +printf "%s\n" "$ac_cv_objext" >&6; } +OBJEXT=$ac_cv_objext +ac_objext=$OBJEXT +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C" >&5 +printf %s "checking whether the compiler supports GNU C... " >&6; } +if test ${ac_cv_c_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_c_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GCC=yes +else + GCC= +fi +ac_test_CFLAGS=${CFLAGS+y} +ac_save_CFLAGS=$CFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5 +printf %s "checking whether $CC accepts -g... " >&6; } +if test ${ac_cv_prog_cc_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_c_werror_flag=$ac_c_werror_flag + ac_c_werror_flag=yes + ac_cv_prog_cc_g=no + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +else $as_nop + CFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + ac_c_werror_flag=$ac_save_c_werror_flag + CFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_c_werror_flag=$ac_save_c_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 +printf "%s\n" "$ac_cv_prog_cc_g" >&6; } +if test $ac_test_CFLAGS; then + CFLAGS=$ac_save_CFLAGS +elif test $ac_cv_prog_cc_g = yes; then + if test "$GCC" = yes; then + CFLAGS="-g -O2" + else + CFLAGS="-g" + fi +else + if test "$GCC" = yes; then + CFLAGS="-O2" + else + CFLAGS= + fi +fi +ac_prog_cc_stdc=no +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C11 features" >&5 +printf %s "checking for $CC option to enable C11 features... " >&6; } +if test ${ac_cv_prog_cc_c11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c11=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c11_program +_ACEOF +for ac_arg in '' -std=gnu11 +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c11" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 +printf "%s\n" "$ac_cv_prog_cc_c11" >&6; } + CC="$CC $ac_cv_prog_cc_c11" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11 + ac_prog_cc_stdc=c11 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C99 features" >&5 +printf %s "checking for $CC option to enable C99 features... " >&6; } +if test ${ac_cv_prog_cc_c99+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c99=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c99_program +_ACEOF +for ac_arg in '' -std=gnu99 -std=c99 -c99 -qlanglvl=extc1x -qlanglvl=extc99 -AC99 -D_STDC_C99= +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c99=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c99" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c99" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c99" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 +printf "%s\n" "$ac_cv_prog_cc_c99" >&6; } + CC="$CC $ac_cv_prog_cc_c99" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99 + ac_prog_cc_stdc=c99 +fi +fi +if test x$ac_prog_cc_stdc = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC option to enable C89 features" >&5 +printf %s "checking for $CC option to enable C89 features... " >&6; } +if test ${ac_cv_prog_cc_c89+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cc_c89=no +ac_save_CC=$CC +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_c_conftest_c89_program +_ACEOF +for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" +do + CC="$ac_save_CC $ac_arg" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_prog_cc_c89=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cc_c89" != "xno" && break +done +rm -f conftest.$ac_ext +CC=$ac_save_CC +fi + +if test "x$ac_cv_prog_cc_c89" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cc_c89" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 +printf "%s\n" "$ac_cv_prog_cc_c89" >&6; } + CC="$CC $ac_cv_prog_cc_c89" +fi + ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89 + ac_prog_cc_stdc=c89 +fi +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CC understands -c and -o together" >&5 +printf %s "checking whether $CC understands -c and -o together... " >&6; } +if test ${am_cv_prog_cc_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF + # Make sure it works both with $CC and with simple cc. + # Following AC_PROG_CC_C_O, we do the test twice because some + # compilers refuse to overwrite an existing .o file with -o, + # though they will create one. + am_cv_prog_cc_c_o=yes + for am_i in 1 2; do + if { echo "$as_me:$LINENO: $CC -c conftest.$ac_ext -o conftest2.$ac_objext" >&5 + ($CC -c conftest.$ac_ext -o conftest2.$ac_objext) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } \ + && test -f conftest2.$ac_objext; then + : OK + else + am_cv_prog_cc_c_o=no + break + fi + done + rm -f core conftest* + unset am_i +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_prog_cc_c_o" >&5 +printf "%s\n" "$am_cv_prog_cc_c_o" >&6; } +if test "$am_cv_prog_cc_c_o" != yes; then + # Losing compiler, so override with the script. + # FIXME: It is wrong to rewrite CC. + # But if we don't then we get into trouble of one sort or another. + # A longer-term fix would be to have automake use am__CC in this case, + # and then we could set am__CC="\$(top_srcdir)/compile \$(CC)" + CC="$am_aux_dir/compile $CC" +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C preprocessor" >&5 +printf %s "checking how to run the C preprocessor... " >&6; } +# On Suns, sometimes $CPP names a directory. +if test -n "$CPP" && test -d "$CPP"; then + CPP= +fi +if test -z "$CPP"; then + if test ${ac_cv_prog_CPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CC needs to be expanded + for CPP in "$CC -E" "$CC -E -traditional-cpp" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CPP=$CPP + +fi + CPP=$ac_cv_prog_CPP +else + ac_cv_prog_CPP=$CPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CPP" >&5 +printf "%s\n" "$CPP" >&6; } +ac_preproc_ok=false +for ac_c_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C preprocessor \"$CPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + IFS=$xc_prog_cc_prev_IFS + LIBS=$xc_prog_cc_prev_LIBS + CFLAGS=$xc_prog_cc_prev_CFLAGS + LDFLAGS=$xc_prog_cc_prev_LDFLAGS + CPPFLAGS=$xc_prog_cc_prev_CPPFLAGS + + + + + + + + + + + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +if test -z "$CXX"; then + if test -n "$CCC"; then + CXX=$CCC + else + if test -n "$ac_tool_prefix"; then + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$CXX"; then + ac_cv_prog_CXX="$CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_CXX="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +CXX=$ac_cv_prog_CXX +if test -n "$CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXX" >&5 +printf "%s\n" "$CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$CXX" && break + done +fi +if test -z "$CXX"; then + ac_ct_CXX=$CXX + for ac_prog in g++ c++ gpp aCC CC cxx cc++ cl.exe FCC KCC RCC xlC_r xlC clang++ +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_CXX"; then + ac_cv_prog_ac_ct_CXX="$ac_ct_CXX" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_CXX="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_CXX=$ac_cv_prog_ac_ct_CXX +if test -n "$ac_ct_CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_CXX" >&5 +printf "%s\n" "$ac_ct_CXX" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_CXX" && break +done + + if test "x$ac_ct_CXX" = x; then + CXX="g++" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + CXX=$ac_ct_CXX + fi +fi + + fi +fi +# Provide some information about the compiler. +printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C++ compiler version" >&5 +set X $ac_compile +ac_compiler=$2 +for ac_option in --version -v -V -qversion; do + { { ac_try="$ac_compiler $ac_option >&5" +case "(($ac_try" in + *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; + *) ac_try_echo=$ac_try;; +esac +eval ac_try_echo="\"\$as_me:${as_lineno-$LINENO}: $ac_try_echo\"" +printf "%s\n" "$ac_try_echo"; } >&5 + (eval "$ac_compiler $ac_option >&5") 2>conftest.err + ac_status=$? + if test -s conftest.err; then + sed '10a\ +... rest of stderr output deleted ... + 10q' conftest.err >conftest.er1 + cat conftest.er1 >&5 + fi + rm -f conftest.er1 conftest.err + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } +done + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the compiler supports GNU C++" >&5 +printf %s "checking whether the compiler supports GNU C++... " >&6; } +if test ${ac_cv_cxx_compiler_gnu+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +#ifndef __GNUC__ + choke me +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ac_compiler_gnu=yes +else $as_nop + ac_compiler_gnu=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +ac_cv_cxx_compiler_gnu=$ac_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_cxx_compiler_gnu" >&5 +printf "%s\n" "$ac_cv_cxx_compiler_gnu" >&6; } +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +if test $ac_compiler_gnu = yes; then + GXX=yes +else + GXX= +fi +ac_test_CXXFLAGS=${CXXFLAGS+y} +ac_save_CXXFLAGS=$CXXFLAGS +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX accepts -g" >&5 +printf %s "checking whether $CXX accepts -g... " >&6; } +if test ${ac_cv_prog_cxx_g+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_cxx_werror_flag=$ac_cxx_werror_flag + ac_cxx_werror_flag=yes + ac_cv_prog_cxx_g=no + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_g=yes +else $as_nop + CXXFLAGS="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + +else $as_nop + ac_cxx_werror_flag=$ac_save_cxx_werror_flag + CXXFLAGS="-g" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_g=yes +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cxx_werror_flag=$ac_save_cxx_werror_flag +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_g" >&5 +printf "%s\n" "$ac_cv_prog_cxx_g" >&6; } +if test $ac_test_CXXFLAGS; then + CXXFLAGS=$ac_save_CXXFLAGS +elif test $ac_cv_prog_cxx_g = yes; then + if test "$GXX" = yes; then + CXXFLAGS="-g -O2" + else + CXXFLAGS="-g" + fi +else + if test "$GXX" = yes; then + CXXFLAGS="-O2" + else + CXXFLAGS= + fi +fi +ac_prog_cxx_stdcxx=no +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++11 features" >&5 +printf %s "checking for $CXX option to enable C++11 features... " >&6; } +if test ${ac_cv_prog_cxx_11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_11=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx11_program +_ACEOF +for ac_arg in '' -std=gnu++11 -std=gnu++0x -std=c++11 -std=c++0x -qlanglvl=extended0x -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx11=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx11" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx11" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx11" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx11" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx11" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx11" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx11 + ac_prog_cxx_stdcxx=cxx11 +fi +fi +if test x$ac_prog_cxx_stdcxx = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CXX option to enable C++98 features" >&5 +printf %s "checking for $CXX option to enable C++98 features... " >&6; } +if test ${ac_cv_prog_cxx_98+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_prog_cxx_98=no +ac_save_CXX=$CXX +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_cxx_conftest_cxx98_program +_ACEOF +for ac_arg in '' -std=gnu++98 -std=c++98 -qlanglvl=extended -AA +do + CXX="$ac_save_CXX $ac_arg" + if ac_fn_cxx_try_compile "$LINENO" +then : + ac_cv_prog_cxx_cxx98=$ac_arg +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + test "x$ac_cv_prog_cxx_cxx98" != "xno" && break +done +rm -f conftest.$ac_ext +CXX=$ac_save_CXX +fi + +if test "x$ac_cv_prog_cxx_cxx98" = xno +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 +printf "%s\n" "unsupported" >&6; } +else $as_nop + if test "x$ac_cv_prog_cxx_cxx98" = x +then : + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 +printf "%s\n" "none needed" >&6; } +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cxx_cxx98" >&5 +printf "%s\n" "$ac_cv_prog_cxx_cxx98" >&6; } + CXX="$CXX $ac_cv_prog_cxx_cxx98" +fi + ac_cv_prog_cxx_stdcxx=$ac_cv_prog_cxx_cxx98 + ac_prog_cxx_stdcxx=cxx98 +fi +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + + + ax_cxx_compile_cxx11_required=false + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + ac_success=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features by default" >&5 +printf %s "checking whether $CXX supports C++11 features by default... " >&6; } +if test ${ax_cv_cxx_compile_cxx11+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + struct Base { + virtual void f() {} + }; + struct Child : public Base { + virtual void f() override {} + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + auto l = [](){}; + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function because of this + namespace test_template_alias_sfinae { + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} + + template + void func(member*) {} + + void test(); + + void test() { + func(0); + } + } + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + ax_cv_cxx_compile_cxx11=yes +else $as_nop + ax_cv_cxx_compile_cxx11=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ax_cv_cxx_compile_cxx11" >&5 +printf "%s\n" "$ax_cv_cxx_compile_cxx11" >&6; } + if test x$ax_cv_cxx_compile_cxx11 = xyes; then + ac_success=yes + fi + + + + if test x$ac_success = xno; then + for switch in -std=c++11 -std=c++0x; do + cachevar=`printf "%s\n" "ax_cv_cxx_compile_cxx11_$switch" | $as_tr_sh` + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether $CXX supports C++11 features with $switch" >&5 +printf %s "checking whether $CXX supports C++11 features with $switch... " >&6; } +if eval test \${$cachevar+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + struct Base { + virtual void f() {} + }; + struct Child : public Base { + virtual void f() override {} + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + auto l = [](){}; + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function because of this + namespace test_template_alias_sfinae { + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} + + template + void func(member*) {} + + void test(); + + void test() { + func(0); + } + } + +_ACEOF +if ac_fn_cxx_try_compile "$LINENO" +then : + eval $cachevar=yes +else $as_nop + eval $cachevar=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CXXFLAGS="$ac_save_CXXFLAGS" +fi +eval ac_res=\$$cachevar + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } + if eval test x\$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + if test x$ax_cxx_compile_cxx11_required = xtrue; then + if test x$ac_success = xno; then + as_fn_error $? "*** A compiler with support for C++11 language features is required." "$LINENO" 5 + fi + else + if test x$ac_success = xno; then + HAVE_CXX11=0 + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: No compiler with C++11 support was found" >&5 +printf "%s\n" "$as_me: No compiler with C++11 support was found" >&6;} + else + HAVE_CXX11=1 + +printf "%s\n" "#define HAVE_CXX11 1" >>confdefs.h + + fi + + + fi + + +am__api_version='1.16' + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build environment is sane" >&5 +printf %s "checking whether build environment is sane... " >&6; } +# Reject unsafe characters in $srcdir or the absolute working directory +# name. Accept space and tab only in the latter. +am_lf=' +' +case `pwd` in + *[\\\"\#\$\&\'\`$am_lf]*) + as_fn_error $? "unsafe absolute working directory name" "$LINENO" 5;; +esac +case $srcdir in + *[\\\"\#\$\&\'\`$am_lf\ \ ]*) + as_fn_error $? "unsafe srcdir value: '$srcdir'" "$LINENO" 5;; +esac + +# Do 'set' in a subshell so we don't clobber the current shell's +# arguments. Must try -L first in case configure is actually a +# symlink; some systems play weird games with the mod time of symlinks +# (eg FreeBSD returns the mod time of the symlink's containing +# directory). +if ( + am_has_slept=no + for am_try in 1 2; do + echo "timestamp, slept: $am_has_slept" > conftest.file + set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` + if test "$*" = "X"; then + # -L didn't work. + set X `ls -t "$srcdir/configure" conftest.file` + fi + if test "$*" != "X $srcdir/configure conftest.file" \ + && test "$*" != "X conftest.file $srcdir/configure"; then + + # If neither matched, then we have a broken ls. This can happen + # if, for instance, CONFIG_SHELL is bash and it inherits a + # broken ls alias from the environment. This has actually + # happened. Such a system could not be considered "sane". + as_fn_error $? "ls -t appears to fail. Make sure there is not a broken + alias in your environment" "$LINENO" 5 + fi + if test "$2" = conftest.file || test $am_try -eq 2; then + break + fi + # Just in case. + sleep 1 + am_has_slept=yes + done + test "$2" = conftest.file + ) +then + # Ok. + : +else + as_fn_error $? "newly created file is older than distributed files! +Check your system clock" "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +# If we didn't sleep, we still need to ensure time stamps of config.status and +# generated files are strictly newer. +am_sleep_pid= +if grep 'slept: no' conftest.file >/dev/null 2>&1; then + ( sleep 1 ) & + am_sleep_pid=$! +fi + +rm -f conftest.file + +test "$program_prefix" != NONE && + program_transform_name="s&^&$program_prefix&;$program_transform_name" +# Use a double $ so make ignores it. +test "$program_suffix" != NONE && + program_transform_name="s&\$&$program_suffix&;$program_transform_name" +# Double any \ or $. +# By default was `s,x,x', remove it if useless. +ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' +program_transform_name=`printf "%s\n" "$program_transform_name" | sed "$ac_script"` + + + if test x"${MISSING+set}" != xset; then + MISSING="\${SHELL} '$am_aux_dir/missing'" +fi +# Use eval to expand $SHELL +if eval "$MISSING --is-lightweight"; then + am_missing_run="$MISSING " +else + am_missing_run= + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: 'missing' script is too old or missing" >&5 +printf "%s\n" "$as_me: WARNING: 'missing' script is too old or missing" >&2;} +fi + +if test x"${install_sh+set}" != xset; then + case $am_aux_dir in + *\ * | *\ *) + install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; + *) + install_sh="\${SHELL} $am_aux_dir/install-sh" + esac +fi + +# Installed binaries are usually stripped using 'strip' when the user +# run "make install-strip". However 'strip' might not be the right +# tool to use in cross-compilation environments, therefore Automake +# will honor the 'STRIP' environment variable to overrule this program. +if test "$cross_compiling" != no; then + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +fi +INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a race-free mkdir -p" >&5 +printf %s "checking for a race-free mkdir -p... " >&6; } +if test -z "$MKDIR_P"; then + if test ${ac_cv_path_mkdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in mkdir gmkdir; do + for ac_exec_ext in '' $ac_executable_extensions; do + as_fn_executable_p "$as_dir$ac_prog$ac_exec_ext" || continue + case `"$as_dir$ac_prog$ac_exec_ext" --version 2>&1` in #( + 'mkdir ('*'coreutils) '* | \ + 'BusyBox '* | \ + 'mkdir (fileutils) '4.1*) + ac_cv_path_mkdir=$as_dir$ac_prog$ac_exec_ext + break 3;; + esac + done + done + done +IFS=$as_save_IFS + +fi + + test -d ./--version && rmdir ./--version + if test ${ac_cv_path_mkdir+y}; then + MKDIR_P="$ac_cv_path_mkdir -p" + else + # As a last resort, use the slow shell script. Don't cache a + # value for MKDIR_P within a source directory, because that will + # break other packages using the cache if that directory is + # removed, or if the value is a relative name. + MKDIR_P="$ac_install_sh -d" + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MKDIR_P" >&5 +printf "%s\n" "$MKDIR_P" >&6; } + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} sets \$(MAKE)" >&5 +printf %s "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } +set x ${MAKE-make} +ac_make=`printf "%s\n" "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` +if eval test \${ac_cv_prog_make_${ac_make}_set+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat >conftest.make <<\_ACEOF +SHELL = /bin/sh +all: + @echo '@@@%%%=$(MAKE)=@@@%%%' +_ACEOF +# GNU make sometimes prints "make[1]: Entering ...", which would confuse us. +case `${MAKE-make} -f conftest.make 2>/dev/null` in + *@@@%%%=?*=@@@%%%*) + eval ac_cv_prog_make_${ac_make}_set=yes;; + *) + eval ac_cv_prog_make_${ac_make}_set=no;; +esac +rm -f conftest.make +fi +if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + SET_MAKE= +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + SET_MAKE="MAKE=${MAKE-make}" +fi + +rm -rf .tst 2>/dev/null +mkdir .tst 2>/dev/null +if test -d .tst; then + am__leading_dot=. +else + am__leading_dot=_ +fi +rmdir .tst 2>/dev/null + +DEPDIR="${am__leading_dot}deps" + +ac_config_commands="$ac_config_commands depfiles" + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ${MAKE-make} supports the include directive" >&5 +printf %s "checking whether ${MAKE-make} supports the include directive... " >&6; } +cat > confinc.mk << 'END' +am__doit: + @echo this is the am__doit target >confinc.out +.PHONY: am__doit +END +am__include="#" +am__quote= +# BSD make does it like this. +echo '.include "confinc.mk" # ignored' > confmf.BSD +# Other make implementations (GNU, Solaris 10, AIX) do it like this. +echo 'include confinc.mk # ignored' > confmf.GNU +_am_result=no +for s in GNU BSD; do + { echo "$as_me:$LINENO: ${MAKE-make} -f confmf.$s && cat confinc.out" >&5 + (${MAKE-make} -f confmf.$s && cat confinc.out) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } + case $?:`cat confinc.out 2>/dev/null` in #( + '0:this is the am__doit target') : + case $s in #( + BSD) : + am__include='.include' am__quote='"' ;; #( + *) : + am__include='include' am__quote='' ;; +esac ;; #( + *) : + ;; +esac + if test "$am__include" != "#"; then + _am_result="yes ($s style)" + break + fi +done +rm -f confinc.* confmf.* +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${_am_result}" >&5 +printf "%s\n" "${_am_result}" >&6; } + +# Check whether --enable-dependency-tracking was given. +if test ${enable_dependency_tracking+y} +then : + enableval=$enable_dependency_tracking; +fi + +if test "x$enable_dependency_tracking" != xno; then + am_depcomp="$ac_aux_dir/depcomp" + AMDEPBACKSLASH='\' + am__nodep='_no' +fi + if test "x$enable_dependency_tracking" != xno; then + AMDEP_TRUE= + AMDEP_FALSE='#' +else + AMDEP_TRUE='#' + AMDEP_FALSE= +fi + + +## --------------------------------------- ## +## Start of automake initialization code ## +## --------------------------------------- ## + +if test "`cd $srcdir && pwd`" != "`pwd`"; then + # Use -I$(srcdir) only when $(srcdir) != ., so that make's output + # is not polluted with repeated "-I." + am__isrc=' -I$(srcdir)' + # test to see if srcdir already configured + if test -f $srcdir/config.status; then + as_fn_error $? "source directory already configured; run \"make distclean\" there first" "$LINENO" 5 + fi +fi + +# test whether we have cygpath +if test -z "$CYGPATH_W"; then + if (cygpath --version) >/dev/null 2>/dev/null; then + CYGPATH_W='cygpath -w' + else + CYGPATH_W=echo + fi +fi + + +# Define the identity of the package. + PACKAGE='c-ares' + VERSION='1.18.1' + + +printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h + + +printf "%s\n" "#define VERSION \"$VERSION\"" >>confdefs.h + +# Some tools Automake needs. + +ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} + + +AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} + + +AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} + + +AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} + + +MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} + +# For better backward compatibility. To be removed once Automake 1.9.x +# dies out for good. For more background, see: +# +# +mkdir_p='$(MKDIR_P)' + +# We need awk for the "check" target (and possibly the TAP driver). The +# system "awk" is bad on some platforms. +# Always define AMTAR for backward compatibility. Yes, it's still used +# in the wild :-( We should find a proper way to deprecate it ... +AMTAR='$${TAR-tar}' + + +# We'll loop over all known methods to create a tar archive until one works. +_am_tools='gnutar pax cpio none' + +am__tar='$${TAR-tar} chof - "$$tardir"' am__untar='$${TAR-tar} xf -' + + + + + +depcc="$CC" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CC_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CC_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CC_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CC_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CC_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CC_dependencies_compiler_type" >&6; } +CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then + am__fastdepCC_TRUE= + am__fastdepCC_FALSE='#' +else + am__fastdepCC_TRUE='#' + am__fastdepCC_FALSE= +fi + + +depcc="$CXX" am_compiler_list= + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dependency style of $depcc" >&5 +printf %s "checking dependency style of $depcc... " >&6; } +if test ${am_cv_CXX_dependencies_compiler_type+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then + # We make a subdir and do the tests there. Otherwise we can end up + # making bogus files that we don't know about and never remove. For + # instance it was reported that on HP-UX the gcc test will end up + # making a dummy file named 'D' -- because '-MD' means "put the output + # in D". + rm -rf conftest.dir + mkdir conftest.dir + # Copy depcomp to subdir because otherwise we won't find it if we're + # using a relative directory. + cp "$am_depcomp" conftest.dir + cd conftest.dir + # We will build objects and dependencies in a subdirectory because + # it helps to detect inapplicable dependency modes. For instance + # both Tru64's cc and ICC support -MD to output dependencies as a + # side effect of compilation, but ICC will put the dependencies in + # the current directory while Tru64 will put them in the object + # directory. + mkdir sub + + am_cv_CXX_dependencies_compiler_type=none + if test "$am_compiler_list" = ""; then + am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` + fi + am__universal=false + case " $depcc " in #( + *\ -arch\ *\ -arch\ *) am__universal=true ;; + esac + + for depmode in $am_compiler_list; do + # Setup a source with many dependencies, because some compilers + # like to wrap large dependency lists on column 80 (with \), and + # we should not choose a depcomp mode which is confused by this. + # + # We need to recreate these files for each test, as the compiler may + # overwrite some of them when testing with obscure command lines. + # This happens at least with the AIX C compiler. + : > sub/conftest.c + for i in 1 2 3 4 5 6; do + echo '#include "conftst'$i'.h"' >> sub/conftest.c + # Using ": > sub/conftst$i.h" creates only sub/conftst1.h with + # Solaris 10 /bin/sh. + echo '/* dummy */' > sub/conftst$i.h + done + echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf + + # We check with '-c' and '-o' for the sake of the "dashmstdout" + # mode. It turns out that the SunPro C++ compiler does not properly + # handle '-M -o', and we need to detect this. Also, some Intel + # versions had trouble with output in subdirs. + am__obj=sub/conftest.${OBJEXT-o} + am__minus_obj="-o $am__obj" + case $depmode in + gcc) + # This depmode causes a compiler race in universal mode. + test "$am__universal" = false || continue + ;; + nosideeffect) + # After this tag, mechanisms are not by side-effect, so they'll + # only be used when explicitly requested. + if test "x$enable_dependency_tracking" = xyes; then + continue + else + break + fi + ;; + msvc7 | msvc7msys | msvisualcpp | msvcmsys) + # This compiler won't grok '-c -o', but also, the minuso test has + # not run yet. These depmodes are late enough in the game, and + # so weak that their functioning should not be impacted. + am__obj=conftest.${OBJEXT-o} + am__minus_obj= + ;; + none) break ;; + esac + if depmode=$depmode \ + source=sub/conftest.c object=$am__obj \ + depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ + $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ + >/dev/null 2>conftest.err && + grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && + grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && + grep $am__obj sub/conftest.Po > /dev/null 2>&1 && + ${MAKE-make} -s -f confmf > /dev/null 2>&1; then + # icc doesn't choke on unknown options, it will just issue warnings + # or remarks (even with -Werror). So we grep stderr for any message + # that says an option was ignored or not supported. + # When given -MP, icc 7.0 and 7.1 complain thusly: + # icc: Command line warning: ignoring option '-M'; no argument required + # The diagnosis changed in icc 8.0: + # icc: Command line remark: option '-MP' not supported + if (grep 'ignoring option' conftest.err || + grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else + am_cv_CXX_dependencies_compiler_type=$depmode + break + fi + fi + done + + cd .. + rm -rf conftest.dir +else + am_cv_CXX_dependencies_compiler_type=none +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $am_cv_CXX_dependencies_compiler_type" >&5 +printf "%s\n" "$am_cv_CXX_dependencies_compiler_type" >&6; } +CXXDEPMODE=depmode=$am_cv_CXX_dependencies_compiler_type + + if + test "x$enable_dependency_tracking" != xno \ + && test "$am_cv_CXX_dependencies_compiler_type" = gcc3; then + am__fastdepCXX_TRUE= + am__fastdepCXX_FALSE='#' +else + am__fastdepCXX_TRUE='#' + am__fastdepCXX_FALSE= +fi + + +# Variables for tags utilities; see am/tags.am +if test -z "$CTAGS"; then + CTAGS=ctags +fi + +if test -z "$ETAGS"; then + ETAGS=etags +fi + +if test -z "$CSCOPE"; then + CSCOPE=cscope +fi + + + +# POSIX will say in a future version that running "rm -f" with no argument +# is OK; and we want to be able to make that assumption in our Makefile +# recipes. So use an aggressive probe to check that the usage we want is +# actually supported "in the wild" to an acceptable degree. +# See automake bug#10828. +# To make any issue more visible, cause the running configure to be aborted +# by default if the 'rm' program in use doesn't match our expectations; the +# user can still override this though. +if rm -f && rm -fr && rm -rf; then : OK; else + cat >&2 <<'END' +Oops! + +Your 'rm' program seems unable to run without file operands specified +on the command line, even when the '-f' option is present. This is contrary +to the behaviour of most rm programs out there, and not conforming with +the upcoming POSIX standard: + +Please tell bug-automake@gnu.org about your system, including the value +of your $PATH and any error possibly output before this message. This +can help us improve future automake versions. + +END + if test x"$ACCEPT_INFERIOR_RM_PROGRAM" = x"yes"; then + echo 'Configuration will proceed anyway, since you have set the' >&2 + echo 'ACCEPT_INFERIOR_RM_PROGRAM variable to "yes"' >&2 + echo >&2 + else + cat >&2 <<'END' +Aborting the configuration process, to ensure you take notice of the issue. + +You can download and install GNU coreutils to get an 'rm' implementation +that behaves properly: . + +If you want to complete the configuration process using your problematic +'rm' anyway, export the environment variable ACCEPT_INFERIOR_RM_PROGRAM +to "yes", and re-run configure. + +END + as_fn_error $? "Your 'rm' program is bad, sorry." "$LINENO" 5 + fi +fi + +## ------------------------------------- ## +## End of automake initialization code ## +## ------------------------------------- ## + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5 +printf %s "checking for grep that handles long lines and -e... " >&6; } +if test ${ac_cv_path_GREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$GREP"; then + ac_path_GREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in grep ggrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_GREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_GREP" || continue +# Check for GNU ac_path_GREP and select it if it is found. + # Check for GNU $ac_path_GREP +case `"$ac_path_GREP" --version 2>&1` in +*GNU*) + ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'GREP' >> "conftest.nl" + "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_GREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_GREP="$ac_path_GREP" + ac_path_GREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_GREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_GREP"; then + as_fn_error $? "no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_GREP=$GREP +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_GREP" >&5 +printf "%s\n" "$ac_cv_path_GREP" >&6; } + GREP="$ac_cv_path_GREP" + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if OS is AIX (to define _ALL_SOURCE)" >&5 +printf %s "checking if OS is AIX (to define _ALL_SOURCE)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#ifdef _AIX + yes_this_is_aix +#endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "yes_this_is_aix" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + printf "%s\n" "#define _ALL_SOURCE 1" >>confdefs.h + + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -rf conftest* + + + + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is already defined" >&5 +printf %s "checking if _THREAD_SAFE is already defined... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + +#ifdef _THREAD_SAFE + int dummy=1; +#else + force compilation error +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tmp_thread_safe_initially_defined="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tmp_thread_safe_initially_defined="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + # + if test "$tmp_thread_safe_initially_defined" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is actually needed" >&5 +printf %s "checking if _THREAD_SAFE is actually needed... " >&6; } + + case $host_os in + aix[123].* | aix4.[012].*) + tmp_need_thread_safe="no" + ;; + aix*) + tmp_need_thread_safe="yes" + ;; + *) + tmp_need_thread_safe="no" + ;; + esac + + if test "$tmp_need_thread_safe" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _THREAD_SAFE is onwards defined" >&5 +printf %s "checking if _THREAD_SAFE is onwards defined... " >&6; } + if test "$tmp_thread_safe_initially_defined" = "yes" || + test "$tmp_need_thread_safe" = "yes"; then + + +printf "%s\n" "#define NEED_THREAD_SAFE 1" >>confdefs.h + +cat >>confdefs.h <<_EOF +#ifndef _THREAD_SAFE +# define _THREAD_SAFE +#endif +_EOF + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + # + + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is already defined" >&5 +printf %s "checking if _REENTRANT is already defined... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + +#ifdef _REENTRANT + int dummy=1; +#else + force compilation error +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tmp_reentrant_initially_defined="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tmp_reentrant_initially_defined="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + # + if test "$tmp_reentrant_initially_defined" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is actually needed" >&5 +printf %s "checking if _REENTRANT is actually needed... " >&6; } + + case $host_os in + solaris*) + tmp_need_reentrant="yes" + ;; + *) + tmp_need_reentrant="no" + ;; + esac + + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + + if(0 != errno) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_errno="yes" + +else $as_nop + + tmp_errno="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tmp_errno" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + +#ifdef errno + int dummy=1; +#else + force compilation error +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_errno="errno_macro_defined" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#define _REENTRANT +#include + +int +main (void) +{ + +#ifdef errno + int dummy=1; +#else + force compilation error +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_errno="errno_macro_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define gmtime_r to an innocuous variant, in case declares gmtime_r. + For example, HP-UX 11i declares gettimeofday. */ +#define gmtime_r innocuous_gmtime_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gmtime_r (); below. */ + +#include +#undef gmtime_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gmtime_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gmtime_r || defined __stub___gmtime_r +choke me +#endif + +int +main (void) +{ +return gmtime_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_gmtime_r="yes" + +else $as_nop + + tmp_gmtime_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_gmtime_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gmtime_r" >/dev/null 2>&1 +then : + + tmp_gmtime_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gmtime_r" >/dev/null 2>&1 +then : + + tmp_gmtime_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define localtime_r to an innocuous variant, in case declares localtime_r. + For example, HP-UX 11i declares gettimeofday. */ +#define localtime_r innocuous_localtime_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char localtime_r (); below. */ + +#include +#undef localtime_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char localtime_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_localtime_r || defined __stub___localtime_r +choke me +#endif + +int +main (void) +{ +return localtime_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_localtime_r="yes" + +else $as_nop + + tmp_localtime_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_localtime_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "localtime_r" >/dev/null 2>&1 +then : + + tmp_localtime_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "localtime_r" >/dev/null 2>&1 +then : + + tmp_localtime_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strerror_r to an innocuous variant, in case declares strerror_r. + For example, HP-UX 11i declares gettimeofday. */ +#define strerror_r innocuous_strerror_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strerror_r (); below. */ + +#include +#undef strerror_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strerror_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strerror_r || defined __stub___strerror_r +choke me +#endif + +int +main (void) +{ +return strerror_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_strerror_r="yes" + +else $as_nop + + tmp_strerror_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_strerror_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strerror_r" >/dev/null 2>&1 +then : + + tmp_strerror_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strerror_r" >/dev/null 2>&1 +then : + + tmp_strerror_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strtok_r to an innocuous variant, in case declares strtok_r. + For example, HP-UX 11i declares gettimeofday. */ +#define strtok_r innocuous_strtok_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strtok_r (); below. */ + +#include +#undef strtok_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strtok_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strtok_r || defined __stub___strtok_r +choke me +#endif + +int +main (void) +{ +return strtok_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_strtok_r="yes" + +else $as_nop + + tmp_strtok_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_strtok_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strtok_r" >/dev/null 2>&1 +then : + + tmp_strtok_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strtok_r" >/dev/null 2>&1 +then : + + tmp_strtok_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define inet_ntoa_r to an innocuous variant, in case declares inet_ntoa_r. + For example, HP-UX 11i declares gettimeofday. */ +#define inet_ntoa_r innocuous_inet_ntoa_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char inet_ntoa_r (); below. */ + +#include +#undef inet_ntoa_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntoa_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_inet_ntoa_r || defined __stub___inet_ntoa_r +choke me +#endif + +int +main (void) +{ +return inet_ntoa_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_inet_ntoa_r="yes" + +else $as_nop + + tmp_inet_ntoa_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_inet_ntoa_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "inet_ntoa_r" >/dev/null 2>&1 +then : + + tmp_inet_ntoa_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "inet_ntoa_r" >/dev/null 2>&1 +then : + + tmp_inet_ntoa_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define gethostbyaddr_r to an innocuous variant, in case declares gethostbyaddr_r. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyaddr_r innocuous_gethostbyaddr_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyaddr_r (); below. */ + +#include +#undef gethostbyaddr_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyaddr_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gethostbyaddr_r || defined __stub___gethostbyaddr_r +choke me +#endif + +int +main (void) +{ +return gethostbyaddr_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_gethostbyaddr_r="yes" + +else $as_nop + + tmp_gethostbyaddr_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_gethostbyaddr_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyaddr_r" >/dev/null 2>&1 +then : + + tmp_gethostbyaddr_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyaddr_r" >/dev/null 2>&1 +then : + + tmp_gethostbyaddr_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define gethostbyname_r to an innocuous variant, in case declares gethostbyname_r. + For example, HP-UX 11i declares gettimeofday. */ +#define gethostbyname_r innocuous_gethostbyname_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char gethostbyname_r (); below. */ + +#include +#undef gethostbyname_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char gethostbyname_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_gethostbyname_r || defined __stub___gethostbyname_r +choke me +#endif + +int +main (void) +{ +return gethostbyname_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_gethostbyname_r="yes" + +else $as_nop + + tmp_gethostbyname_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_gethostbyname_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyname_r" >/dev/null 2>&1 +then : + + tmp_gethostbyname_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyname_r" >/dev/null 2>&1 +then : + + tmp_gethostbyname_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getprotobyname_r to an innocuous variant, in case declares getprotobyname_r. + For example, HP-UX 11i declares gettimeofday. */ +#define getprotobyname_r innocuous_getprotobyname_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getprotobyname_r (); below. */ + +#include +#undef getprotobyname_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getprotobyname_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getprotobyname_r || defined __stub___getprotobyname_r +choke me +#endif + +int +main (void) +{ +return getprotobyname_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_getprotobyname_r="yes" + +else $as_nop + + tmp_getprotobyname_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_getprotobyname_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getprotobyname_r" >/dev/null 2>&1 +then : + + tmp_getprotobyname_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getprotobyname_r" >/dev/null 2>&1 +then : + + tmp_getprotobyname_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + if test "$tmp_need_reentrant" = "no"; then + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getservbyport_r to an innocuous variant, in case declares getservbyport_r. + For example, HP-UX 11i declares gettimeofday. */ +#define getservbyport_r innocuous_getservbyport_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getservbyport_r (); below. */ + +#include +#undef getservbyport_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getservbyport_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getservbyport_r || defined __stub___getservbyport_r +choke me +#endif + +int +main (void) +{ +return getservbyport_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_getservbyport_r="yes" + +else $as_nop + + tmp_getservbyport_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test "$tmp_getservbyport_r" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getservbyport_r" >/dev/null 2>&1 +then : + + tmp_getservbyport_r="proto_declared" + +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#define _REENTRANT +#include +#include + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getservbyport_r" >/dev/null 2>&1 +then : + + tmp_getservbyport_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + +fi +rm -rf conftest* + + +fi +rm -rf conftest* + + fi + + fi + + fi + if test "$tmp_need_reentrant" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if _REENTRANT is onwards defined" >&5 +printf %s "checking if _REENTRANT is onwards defined... " >&6; } + if test "$tmp_reentrant_initially_defined" = "yes" || + test "$tmp_need_reentrant" = "yes"; then + + +printf "%s\n" "#define NEED_REENTRANT 1" >>confdefs.h + +cat >>confdefs.h <<_EOF +#ifndef _REENTRANT +# define _REENTRANT +#endif +_EOF + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + # + + +# Check whether --enable-largefile was given. +if test ${enable_largefile+y} +then : + enableval=$enable_largefile; +fi + +if test "$enable_largefile" != no; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5 +printf %s "checking for special C compiler options needed for large files... " >&6; } +if test ${ac_cv_sys_largefile_CC+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_sys_largefile_CC=no + if test "$GCC" != yes; then + ac_save_CC=$CC + while :; do + # IRIX 6.2 and later do not support large files by default, + # so use the C compiler's -n32 option if that helps. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF + if ac_fn_c_try_compile "$LINENO" +then : + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + CC="$CC -n32" + if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_largefile_CC=' -n32'; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam + break + done + CC=$ac_save_CC + rm -f conftest.$ac_ext + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_largefile_CC" >&5 +printf "%s\n" "$ac_cv_sys_largefile_CC" >&6; } + if test "$ac_cv_sys_largefile_CC" != no; then + CC=$CC$ac_cv_sys_largefile_CC + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5 +printf %s "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; } +if test ${ac_cv_sys_file_offset_bits+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _FILE_OFFSET_BITS 64 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_file_offset_bits=64; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_file_offset_bits=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_file_offset_bits" >&5 +printf "%s\n" "$ac_cv_sys_file_offset_bits" >&6; } +case $ac_cv_sys_file_offset_bits in #( + no | unknown) ;; + *) +printf "%s\n" "#define _FILE_OFFSET_BITS $ac_cv_sys_file_offset_bits" >>confdefs.h +;; +esac +rm -rf conftest* + if test $ac_cv_sys_file_offset_bits = unknown; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5 +printf %s "checking for _LARGE_FILES value needed for large files... " >&6; } +if test ${ac_cv_sys_large_files+y} +then : + printf %s "(cached) " >&6 +else $as_nop + while :; do + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=no; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#define _LARGE_FILES 1 +#include + /* Check that off_t can represent 2**63 - 1 correctly. + We can't simply define LARGE_OFF_T to be 9223372036854775807, + since some C++ compilers masquerading as C compilers + incorrectly reject 9223372036854775807. */ +#define LARGE_OFF_T (((off_t) 1 << 31 << 31) - 1 + ((off_t) 1 << 31 << 31)) + int off_t_is_large[(LARGE_OFF_T % 2147483629 == 721 + && LARGE_OFF_T % 2147483647 == 1) + ? 1 : -1]; +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_sys_large_files=1; break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + ac_cv_sys_large_files=unknown + break +done +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_sys_large_files" >&5 +printf "%s\n" "$ac_cv_sys_large_files" >&6; } +case $ac_cv_sys_large_files in #( + no | unknown) ;; + *) +printf "%s\n" "#define _LARGE_FILES $ac_cv_sys_large_files" >>confdefs.h +;; +esac +rm -rf conftest* + fi +fi + + +case $host_os in + solaris*) + +printf "%s\n" "#define ETC_INET 1" >>confdefs.h + + ;; +esac + +case `pwd` in + *\ * | *\ *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&5 +printf "%s\n" "$as_me: WARNING: Libtool does not cope well with whitespace in \`pwd\`" >&2;} ;; +esac + + + +macro_version='2.4.6' +macro_revision='2.4.6' + + + + + + + + + + + + + + +ltmain=$ac_aux_dir/ltmain.sh + +# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\(["`$\\]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' + +ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to print strings" >&5 +printf %s "checking how to print strings... " >&6; } +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "" +} + +case $ECHO in + printf*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: printf" >&5 +printf "%s\n" "printf" >&6; } ;; + print*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: print -r" >&5 +printf "%s\n" "print -r" >&6; } ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cat" >&5 +printf "%s\n" "cat" >&6; } ;; +esac + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a sed that does not truncate output" >&5 +printf %s "checking for a sed that does not truncate output... " >&6; } +if test ${ac_cv_path_SED+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for ac_i in 1 2 3 4 5 6 7; do + ac_script="$ac_script$as_nl$ac_script" + done + echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed + { ac_script=; unset ac_script;} + if test -z "$SED"; then + ac_path_SED_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in sed gsed + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_SED="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_SED" || continue +# Check for GNU ac_path_SED and select it if it is found. + # Check for GNU $ac_path_SED +case `"$ac_path_SED" --version 2>&1` in +*GNU*) + ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" '' >> "conftest.nl" + "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_SED_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_SED="$ac_path_SED" + ac_path_SED_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_SED_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_SED"; then + as_fn_error $? "no acceptable sed could be found in \$PATH" "$LINENO" 5 + fi +else + ac_cv_path_SED=$SED +fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_SED" >&5 +printf "%s\n" "$ac_cv_path_SED" >&6; } + SED="$ac_cv_path_SED" + rm -f conftest.sed + +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for fgrep" >&5 +printf %s "checking for fgrep... " >&6; } +if test ${ac_cv_path_FGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo 'ab*c' | $GREP -F 'ab*c' >/dev/null 2>&1 + then ac_cv_path_FGREP="$GREP -F" + else + if test -z "$FGREP"; then + ac_path_FGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in fgrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_FGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_FGREP" || continue +# Check for GNU ac_path_FGREP and select it if it is found. + # Check for GNU $ac_path_FGREP +case `"$ac_path_FGREP" --version 2>&1` in +*GNU*) + ac_cv_path_FGREP="$ac_path_FGREP" ac_path_FGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'FGREP' >> "conftest.nl" + "$ac_path_FGREP" FGREP < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_FGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_FGREP="$ac_path_FGREP" + ac_path_FGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_FGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_FGREP"; then + as_fn_error $? "no acceptable fgrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_FGREP=$FGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_FGREP" >&5 +printf "%s\n" "$ac_cv_path_FGREP" >&6; } + FGREP="$ac_cv_path_FGREP" + + +test -z "$GREP" && GREP=grep + + + + + + + + + + + + + + + + + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for BSD- or MS-compatible name lister (nm)" >&5 +printf %s "checking for BSD- or MS-compatible name lister (nm)... " >&6; } +if test ${lt_cv_path_NM+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_NM" >&5 +printf "%s\n" "$lt_cv_path_NM" >&6; } +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + if test -n "$ac_tool_prefix"; then + for ac_prog in dumpbin "link -dump" + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DUMPBIN"; then + ac_cv_prog_DUMPBIN="$DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DUMPBIN="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DUMPBIN=$ac_cv_prog_DUMPBIN +if test -n "$DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DUMPBIN" >&5 +printf "%s\n" "$DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$DUMPBIN" && break + done +fi +if test -z "$DUMPBIN"; then + ac_ct_DUMPBIN=$DUMPBIN + for ac_prog in dumpbin "link -dump" +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DUMPBIN+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DUMPBIN"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_ct_DUMPBIN" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DUMPBIN="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DUMPBIN=$ac_cv_prog_ac_ct_DUMPBIN +if test -n "$ac_ct_DUMPBIN"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DUMPBIN" >&5 +printf "%s\n" "$ac_ct_DUMPBIN" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_DUMPBIN" && break +done + + if test "x$ac_ct_DUMPBIN" = x; then + DUMPBIN=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DUMPBIN=$ac_ct_DUMPBIN + fi +fi + + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the name lister ($NM) interface" >&5 +printf %s "checking the name lister ($NM) interface... " >&6; } +if test ${lt_cv_nm_interface+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&5) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&5) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&5 + (eval echo "\"\$as_me:$LINENO: output\"" >&5) + cat conftest.out >&5 + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_nm_interface" >&5 +printf "%s\n" "$lt_cv_nm_interface" >&6; } + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether ln -s works" >&5 +printf %s "checking whether ln -s works... " >&6; } +LN_S=$as_ln_s +if test "$LN_S" = "ln -s"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no, using $LN_S" >&5 +printf "%s\n" "no, using $LN_S" >&6; } +fi + +# find the maximum length of command line arguments +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking the maximum length of command line arguments" >&5 +printf %s "checking the maximum length of command line arguments... " >&6; } +if test ${lt_cv_sys_max_cmd_len+y} +then : + printf %s "(cached) " >&6 +else $as_nop + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[ ]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac + +fi + +if test -n "$lt_cv_sys_max_cmd_len"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sys_max_cmd_len" >&5 +printf "%s\n" "$lt_cv_sys_max_cmd_len" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none" >&5 +printf "%s\n" "none" >&6; } +fi +max_cmd_len=$lt_cv_sys_max_cmd_len + + + + + + +: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} + +if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi + + + + + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to $host format" >&5 +printf %s "checking how to convert $build file names to $host format... " >&6; } +if test ${lt_cv_to_host_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac + +fi + +to_host_file_cmd=$lt_cv_to_host_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_host_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_host_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to convert $build file names to toolchain format" >&5 +printf %s "checking how to convert $build file names to toolchain format... " >&6; } +if test ${lt_cv_to_tool_file_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + #assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac + +fi + +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_to_tool_file_cmd" >&5 +printf "%s\n" "$lt_cv_to_tool_file_cmd" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $LD option to reload object files" >&5 +printf %s "checking for $LD option to reload object files... " >&6; } +if test ${lt_cv_ld_reload_flag+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_reload_flag='-r' +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_reload_flag" >&5 +printf "%s\n" "$lt_cv_ld_reload_flag" >&6; } +reload_flag=$lt_cv_ld_reload_flag +case $reload_flag in +"" | " "*) ;; +*) reload_flag=" $reload_flag" ;; +esac +reload_cmds='$LD$reload_flag -o $output$reload_objs' +case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + if test yes != "$GCC"; then + reload_cmds=false + fi + ;; + darwin*) + if test yes = "$GCC"; then + reload_cmds='$LTCC $LTCFLAGS -nostdlib $wl-r -o $output$reload_objs' + else + reload_cmds='$LD$reload_flag -o $output$reload_objs' + fi + ;; +esac + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to recognize dependent libraries" >&5 +printf %s "checking how to recognize dependent libraries... " >&6; } +if test ${lt_cv_deplibs_check_method+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[4-9]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[45]*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[3-9]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF-[0-9][0-9]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]' + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|PA-RISC[0-9]\.[0-9]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[3-9]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[^/]+(\.so\.[0-9]+\.[0-9]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [ML]SB (shared object|dynamic lib) M[0-9][0-9]* Version [0-9]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [0-9][0-9]*-bit [LM]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [0-9][0-9]*-bit [LM]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_deplibs_check_method" >&5 +printf "%s\n" "$lt_cv_deplibs_check_method" >&6; } + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[\1]\/[\1]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + + + + + + + + + + + + + + + + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to associate runtime and link libraries" >&5 +printf %s "checking how to associate runtime and link libraries... " >&6; } +if test ${lt_cv_sharedlib_from_linklib_cmd+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_sharedlib_from_linklib_cmd" >&5 +printf "%s\n" "$lt_cv_sharedlib_from_linklib_cmd" >&6; } +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + + + + + + + +if test -n "$ac_tool_prefix"; then + for ac_prog in ar + do + # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. +set dummy $ac_tool_prefix$ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AR"; then + ac_cv_prog_AR="$AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AR="$ac_tool_prefix$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AR=$ac_cv_prog_AR +if test -n "$AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AR" >&5 +printf "%s\n" "$AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$AR" && break + done +fi +if test -z "$AR"; then + ac_ct_AR=$AR + for ac_prog in ar +do + # Extract the first word of "$ac_prog", so it can be a program name with args. +set dummy $ac_prog; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AR+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AR"; then + ac_cv_prog_ac_ct_AR="$ac_ct_AR" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AR="$ac_prog" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AR=$ac_cv_prog_ac_ct_AR +if test -n "$ac_ct_AR"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AR" >&5 +printf "%s\n" "$ac_ct_AR" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + test -n "$ac_ct_AR" && break +done + + if test "x$ac_ct_AR" = x; then + AR="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AR=$ac_ct_AR + fi +fi + +: ${AR=ar} +: ${AR_FLAGS=cr} + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for archiver @FILE support" >&5 +printf %s "checking for archiver @FILE support... " >&6; } +if test ${lt_cv_ar_at_file+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ar_at_file=no + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&5' + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$lt_ar_try\""; } >&5 + (eval $lt_ar_try) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ar_at_file" >&5 +printf "%s\n" "$lt_cv_ar_at_file" >&6; } + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi + + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. +set dummy ${ac_tool_prefix}strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$STRIP"; then + ac_cv_prog_STRIP="$STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_STRIP="${ac_tool_prefix}strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +STRIP=$ac_cv_prog_STRIP +if test -n "$STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $STRIP" >&5 +printf "%s\n" "$STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_STRIP"; then + ac_ct_STRIP=$STRIP + # Extract the first word of "strip", so it can be a program name with args. +set dummy strip; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_STRIP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_STRIP"; then + ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_STRIP="strip" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP +if test -n "$ac_ct_STRIP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_STRIP" >&5 +printf "%s\n" "$ac_ct_STRIP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_STRIP" = x; then + STRIP=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + STRIP=$ac_ct_STRIP + fi +else + STRIP="$ac_cv_prog_STRIP" +fi + +test -z "$STRIP" && STRIP=: + + + + + + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}ranlib", so it can be a program name with args. +set dummy ${ac_tool_prefix}ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$RANLIB"; then + ac_cv_prog_RANLIB="$RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_RANLIB="${ac_tool_prefix}ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +RANLIB=$ac_cv_prog_RANLIB +if test -n "$RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $RANLIB" >&5 +printf "%s\n" "$RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_RANLIB"; then + ac_ct_RANLIB=$RANLIB + # Extract the first word of "ranlib", so it can be a program name with args. +set dummy ranlib; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_RANLIB+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_RANLIB"; then + ac_cv_prog_ac_ct_RANLIB="$ac_ct_RANLIB" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_RANLIB="ranlib" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_RANLIB=$ac_cv_prog_ac_ct_RANLIB +if test -n "$ac_ct_RANLIB"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_RANLIB" >&5 +printf "%s\n" "$ac_ct_RANLIB" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_RANLIB" = x; then + RANLIB=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + RANLIB=$ac_ct_RANLIB + fi +else + RANLIB="$ac_cv_prog_RANLIB" +fi + +test -z "$RANLIB" && RANLIB=: + + + + + + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + +# Check for command to grab the raw symbol name followed by C symbol from nm. +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking command to parse $NM output from $compiler object" >&5 +printf %s "checking command to parse $NM output from $compiler object... " >&6; } +if test ${lt_cv_sys_global_symbol_pipe+y} +then : + printf %s "(cached) " >&6 +else $as_nop + +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[BCDEGRST]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([_A-Za-z][_A-Za-z0-9]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[BCDT]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[ABCDGISTW]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[ABCDEGRST]' + fi + ;; +irix* | nonstopux*) + symcode='[BCDEGRST]' + ;; +osf*) + symcode='[BCDEGQRST]' + ;; +solaris*) + symcode='[BDRT]' + ;; +sco3.2v5*) + symcode='[DT]' + ;; +sysv4.2uw2*) + symcode='[DT]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[ABDT]' + ;; +sysv4) + symcode='[DFNSTU]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[ABCDGIRSTW]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK '"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[ ]\($symcode$symcode*\)[ ][ ]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Now try to grab the symbols. + nlist=conftest.nm + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&5 + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&5 && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$lt_prog_compiler_no_builtin_flag" + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&5 + fi + else + echo "cannot find nm_test_var in $nlist" >&5 + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&5 + fi + else + echo "$progname: failed program was:" >&5 + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done + +fi + +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: failed" >&5 +printf "%s\n" "failed" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ok" >&5 +printf "%s\n" "ok" >&6; } +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[@]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for sysroot" >&5 +printf %s "checking for sysroot... " >&6; } + +# Check whether --with-sysroot was given. +if test ${with_sysroot+y} +then : + withval=$with_sysroot; +else $as_nop + with_sysroot=no +fi + + +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_sysroot" >&5 +printf "%s\n" "$with_sysroot" >&6; } + as_fn_error $? "The sysroot must be an absolute path." "$LINENO" 5 + ;; +esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: ${lt_sysroot:-no}" >&5 +printf "%s\n" "${lt_sysroot:-no}" >&6; } + + + + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for a working dd" >&5 +printf %s "checking for a working dd... " >&6; } +if test ${ac_cv_path_lt_DD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +if test -z "$lt_DD"; then + ac_path_lt_DD_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in dd + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_lt_DD="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_lt_DD" || continue +if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi + $ac_path_lt_DD_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_lt_DD"; then + : + fi +else + ac_cv_path_lt_DD=$lt_DD +fi + +rm -f conftest.i conftest2.i conftest.out +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_lt_DD" >&5 +printf "%s\n" "$ac_cv_path_lt_DD" >&6; } + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to truncate binary pipes" >&5 +printf %s "checking how to truncate binary pipes... " >&6; } +if test ${lt_cv_truncate_bin+y} +then : + printf %s "(cached) " >&6 +else $as_nop + printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q" +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_truncate_bin" >&5 +printf "%s\n" "$lt_cv_truncate_bin" >&6; } + + + + + + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + +# Check whether --enable-libtool-lock was given. +if test ${enable_libtool_lock+y} +then : + enableval=$enable_libtool_lock; +fi + +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '#line '$LINENO' "configure"' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the C compiler needs -belf" >&5 +printf %s "checking whether the C compiler needs -belf... " >&6; } +if test ${lt_cv_cc_needs_belf+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_cc_needs_belf=yes +else $as_nop + lt_cv_cc_needs_belf=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_cc_needs_belf" >&5 +printf "%s\n" "$lt_cv_cc_needs_belf" >&6; } + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock + +if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}mt", so it can be a program name with args. +set dummy ${ac_tool_prefix}mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$MANIFEST_TOOL"; then + ac_cv_prog_MANIFEST_TOOL="$MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_MANIFEST_TOOL="${ac_tool_prefix}mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +MANIFEST_TOOL=$ac_cv_prog_MANIFEST_TOOL +if test -n "$MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MANIFEST_TOOL" >&5 +printf "%s\n" "$MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_MANIFEST_TOOL"; then + ac_ct_MANIFEST_TOOL=$MANIFEST_TOOL + # Extract the first word of "mt", so it can be a program name with args. +set dummy mt; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_MANIFEST_TOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_MANIFEST_TOOL"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="$ac_ct_MANIFEST_TOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_MANIFEST_TOOL="mt" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_MANIFEST_TOOL=$ac_cv_prog_ac_ct_MANIFEST_TOOL +if test -n "$ac_ct_MANIFEST_TOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_MANIFEST_TOOL" >&5 +printf "%s\n" "$ac_ct_MANIFEST_TOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_MANIFEST_TOOL" = x; then + MANIFEST_TOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + MANIFEST_TOOL=$ac_ct_MANIFEST_TOOL + fi +else + MANIFEST_TOOL="$ac_cv_prog_MANIFEST_TOOL" +fi + +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $MANIFEST_TOOL is a manifest tool" >&5 +printf %s "checking if $MANIFEST_TOOL is a manifest tool... " >&6; } +if test ${lt_cv_path_mainfest_tool+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&5 + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&5 + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest* +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_path_mainfest_tool" >&5 +printf "%s\n" "$lt_cv_path_mainfest_tool" >&6; } +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi + + + + + + + case $host_os in + rhapsody* | darwin*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dsymutil", so it can be a program name with args. +set dummy ${ac_tool_prefix}dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DSYMUTIL"; then + ac_cv_prog_DSYMUTIL="$DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DSYMUTIL="${ac_tool_prefix}dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DSYMUTIL=$ac_cv_prog_DSYMUTIL +if test -n "$DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DSYMUTIL" >&5 +printf "%s\n" "$DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DSYMUTIL"; then + ac_ct_DSYMUTIL=$DSYMUTIL + # Extract the first word of "dsymutil", so it can be a program name with args. +set dummy dsymutil; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DSYMUTIL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DSYMUTIL"; then + ac_cv_prog_ac_ct_DSYMUTIL="$ac_ct_DSYMUTIL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DSYMUTIL="dsymutil" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DSYMUTIL=$ac_cv_prog_ac_ct_DSYMUTIL +if test -n "$ac_ct_DSYMUTIL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DSYMUTIL" >&5 +printf "%s\n" "$ac_ct_DSYMUTIL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DSYMUTIL" = x; then + DSYMUTIL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DSYMUTIL=$ac_ct_DSYMUTIL + fi +else + DSYMUTIL="$ac_cv_prog_DSYMUTIL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}nmedit", so it can be a program name with args. +set dummy ${ac_tool_prefix}nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$NMEDIT"; then + ac_cv_prog_NMEDIT="$NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_NMEDIT="${ac_tool_prefix}nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +NMEDIT=$ac_cv_prog_NMEDIT +if test -n "$NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $NMEDIT" >&5 +printf "%s\n" "$NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_NMEDIT"; then + ac_ct_NMEDIT=$NMEDIT + # Extract the first word of "nmedit", so it can be a program name with args. +set dummy nmedit; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_NMEDIT+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_NMEDIT"; then + ac_cv_prog_ac_ct_NMEDIT="$ac_ct_NMEDIT" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_NMEDIT="nmedit" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_NMEDIT=$ac_cv_prog_ac_ct_NMEDIT +if test -n "$ac_ct_NMEDIT"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_NMEDIT" >&5 +printf "%s\n" "$ac_ct_NMEDIT" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_NMEDIT" = x; then + NMEDIT=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + NMEDIT=$ac_ct_NMEDIT + fi +else + NMEDIT="$ac_cv_prog_NMEDIT" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}lipo", so it can be a program name with args. +set dummy ${ac_tool_prefix}lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$LIPO"; then + ac_cv_prog_LIPO="$LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_LIPO="${ac_tool_prefix}lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +LIPO=$ac_cv_prog_LIPO +if test -n "$LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $LIPO" >&5 +printf "%s\n" "$LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_LIPO"; then + ac_ct_LIPO=$LIPO + # Extract the first word of "lipo", so it can be a program name with args. +set dummy lipo; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_LIPO+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_LIPO"; then + ac_cv_prog_ac_ct_LIPO="$ac_ct_LIPO" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_LIPO="lipo" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_LIPO=$ac_cv_prog_ac_ct_LIPO +if test -n "$ac_ct_LIPO"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_LIPO" >&5 +printf "%s\n" "$ac_ct_LIPO" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_LIPO" = x; then + LIPO=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + LIPO=$ac_ct_LIPO + fi +else + LIPO="$ac_cv_prog_LIPO" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL"; then + ac_cv_prog_OTOOL="$OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL="${ac_tool_prefix}otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL=$ac_cv_prog_OTOOL +if test -n "$OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL" >&5 +printf "%s\n" "$OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL"; then + ac_ct_OTOOL=$OTOOL + # Extract the first word of "otool", so it can be a program name with args. +set dummy otool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL"; then + ac_cv_prog_ac_ct_OTOOL="$ac_ct_OTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL="otool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL=$ac_cv_prog_ac_ct_OTOOL +if test -n "$ac_ct_OTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL" >&5 +printf "%s\n" "$ac_ct_OTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL" = x; then + OTOOL=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL=$ac_ct_OTOOL + fi +else + OTOOL="$ac_cv_prog_OTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}otool64", so it can be a program name with args. +set dummy ${ac_tool_prefix}otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OTOOL64"; then + ac_cv_prog_OTOOL64="$OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OTOOL64="${ac_tool_prefix}otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OTOOL64=$ac_cv_prog_OTOOL64 +if test -n "$OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OTOOL64" >&5 +printf "%s\n" "$OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OTOOL64"; then + ac_ct_OTOOL64=$OTOOL64 + # Extract the first word of "otool64", so it can be a program name with args. +set dummy otool64; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OTOOL64+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OTOOL64"; then + ac_cv_prog_ac_ct_OTOOL64="$ac_ct_OTOOL64" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OTOOL64="otool64" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OTOOL64=$ac_cv_prog_ac_ct_OTOOL64 +if test -n "$ac_ct_OTOOL64"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OTOOL64" >&5 +printf "%s\n" "$ac_ct_OTOOL64" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OTOOL64" = x; then + OTOOL64=":" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OTOOL64=$ac_ct_OTOOL64 + fi +else + OTOOL64="$ac_cv_prog_OTOOL64" +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -single_module linker flag" >&5 +printf %s "checking for -single_module linker flag... " >&6; } +if test ${lt_cv_apple_cc_single_mod+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&5 + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&5 + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_apple_cc_single_mod" >&5 +printf "%s\n" "$lt_cv_apple_cc_single_mod" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -exported_symbols_list linker flag" >&5 +printf %s "checking for -exported_symbols_list linker flag... " >&6; } +if test ${lt_cv_ld_exported_symbols_list+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_ld_exported_symbols_list=yes +else $as_nop + lt_cv_ld_exported_symbols_list=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_exported_symbols_list" >&5 +printf "%s\n" "$lt_cv_ld_exported_symbols_list" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for -force_load linker flag" >&5 +printf %s "checking for -force_load linker flag... " >&6; } +if test ${lt_cv_ld_force_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&5 + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&5 + echo "$AR cr libconftest.a conftest.o" >&5 + $AR cr libconftest.a conftest.o 2>&5 + echo "$RANLIB libconftest.a" >&5 + $RANLIB libconftest.a 2>&5 + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&5 + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&5 + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&5 + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_ld_force_load" >&5 +printf "%s\n" "$lt_cv_ld_force_load" >&6; } + case $host_os in + rhapsody* | darwin1.[012]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[912]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[012][,.]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*|11.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + +ac_header= ac_cache= +for ac_item in $ac_header_c_list +do + if test $ac_cache; then + ac_fn_c_check_header_compile "$LINENO" $ac_header ac_cv_header_$ac_cache "$ac_includes_default" + if eval test \"x\$ac_cv_header_$ac_cache\" = xyes; then + printf "%s\n" "#define $ac_item 1" >> confdefs.h + fi + ac_header= ac_cache= + elif test $ac_header; then + ac_cache=$ac_item + else + ac_header=$ac_item + fi +done + + + + + + + + +if test $ac_cv_header_stdlib_h = yes && test $ac_cv_header_string_h = yes +then : + +printf "%s\n" "#define STDC_HEADERS 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "dlfcn.h" "ac_cv_header_dlfcn_h" "$ac_includes_default +" +if test "x$ac_cv_header_dlfcn_h" = xyes +then : + printf "%s\n" "#define HAVE_DLFCN_H 1" >>confdefs.h + +fi + + + +func_stripname_cnf () +{ + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED "s%^$1%%; s%$2\$%%"`;; + esac +} # func_stripname_cnf + +# ------------------------------------ # +# Determine libtool default behavior # +# ------------------------------------ # + +# +# Default behavior is to enable shared and static libraries on systems +# where libtool knows how to build both library versions, and does not +# require separate configuration and build runs for each flavor. +# + +xc_lt_want_enable_shared='yes' +xc_lt_want_enable_static='yes' + +# +# User may have disabled shared or static libraries. +# +case "x$enable_shared" in # ( + xno) + xc_lt_want_enable_shared='no' + ;; +esac +case "x$enable_static" in # ( + xno) + xc_lt_want_enable_static='no' + ;; +esac +if test "x$xc_lt_want_enable_shared" = 'xno' && + test "x$xc_lt_want_enable_static" = 'xno'; then + as_fn_error $? "can not disable shared and static libraries simultaneously" "$LINENO" 5 +fi + +# +# Default behavior on systems that require independent configuration +# and build runs for shared and static is to enable shared libraries +# and disable static ones. On these systems option '--disable-shared' +# must be used in order to build a proper static library. +# + +if test "x$xc_lt_want_enable_shared" = 'xyes' && + test "x$xc_lt_want_enable_static" = 'xyes'; then + case $host_os in # ( + mingw* | pw32* | cegcc* | os2* | aix*) + xc_lt_want_enable_static='no' + ;; + esac +fi + +# +# Make libtool aware of current shared and static library preferences +# taking in account that, depending on host characteristics, libtool +# may modify these option preferences later in this configure script. +# + +enable_shared=$xc_lt_want_enable_shared +enable_static=$xc_lt_want_enable_static + +# +# Default behavior is to build PIC objects for shared libraries and +# non-PIC objects for static libraries. +# + +xc_lt_want_with_pic='default' + +# +# User may have specified PIC preference. +# + +case "x$with_pic" in # (( + xno) + xc_lt_want_with_pic='no' + ;; + xyes) + xc_lt_want_with_pic='yes' + ;; +esac + +# +# Default behavior on some systems where building a shared library out +# of non-PIC compiled objects will fail with following linker error +# "relocation R_X86_64_32 can not be used when making a shared object" +# is to build PIC objects even for static libraries. This behavior may +# be overriden using 'configure --disable-shared --without-pic'. +# + +if test "x$xc_lt_want_with_pic" = 'xdefault'; then + case $host_cpu in # ( + x86_64 | amd64 | ia64) + case $host_os in # ( + linux* | freebsd*) + xc_lt_want_with_pic='yes' + ;; + esac + ;; + esac +fi + +# +# Make libtool aware of current PIC preference taking in account that, +# depending on host characteristics, libtool may modify PIC default +# behavior to fit host system idiosyncrasies later in this script. +# + +with_pic=$xc_lt_want_with_pic + +## ----------------------- ## +## Start of libtool code ## +## ----------------------- ## + + + + +# Set options +enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}as", so it can be a program name with args. +set dummy ${ac_tool_prefix}as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_AS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$AS"; then + ac_cv_prog_AS="$AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_AS="${ac_tool_prefix}as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +AS=$ac_cv_prog_AS +if test -n "$AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $AS" >&5 +printf "%s\n" "$AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_AS"; then + ac_ct_AS=$AS + # Extract the first word of "as", so it can be a program name with args. +set dummy as; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_AS+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_AS"; then + ac_cv_prog_ac_ct_AS="$ac_ct_AS" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_AS="as" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_AS=$ac_cv_prog_ac_ct_AS +if test -n "$ac_ct_AS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_AS" >&5 +printf "%s\n" "$ac_ct_AS" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_AS" = x; then + AS="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + AS=$ac_ct_AS + fi +else + AS="$ac_cv_prog_AS" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}dlltool", so it can be a program name with args. +set dummy ${ac_tool_prefix}dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$DLLTOOL"; then + ac_cv_prog_DLLTOOL="$DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_DLLTOOL="${ac_tool_prefix}dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +DLLTOOL=$ac_cv_prog_DLLTOOL +if test -n "$DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $DLLTOOL" >&5 +printf "%s\n" "$DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_DLLTOOL"; then + ac_ct_DLLTOOL=$DLLTOOL + # Extract the first word of "dlltool", so it can be a program name with args. +set dummy dlltool; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_DLLTOOL+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_DLLTOOL"; then + ac_cv_prog_ac_ct_DLLTOOL="$ac_ct_DLLTOOL" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_DLLTOOL="dlltool" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_DLLTOOL=$ac_cv_prog_ac_ct_DLLTOOL +if test -n "$ac_ct_DLLTOOL"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_DLLTOOL" >&5 +printf "%s\n" "$ac_ct_DLLTOOL" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_DLLTOOL" = x; then + DLLTOOL="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + DLLTOOL=$ac_ct_DLLTOOL + fi +else + DLLTOOL="$ac_cv_prog_DLLTOOL" +fi + + if test -n "$ac_tool_prefix"; then + # Extract the first word of "${ac_tool_prefix}objdump", so it can be a program name with args. +set dummy ${ac_tool_prefix}objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$OBJDUMP"; then + ac_cv_prog_OBJDUMP="$OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_OBJDUMP="${ac_tool_prefix}objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +OBJDUMP=$ac_cv_prog_OBJDUMP +if test -n "$OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $OBJDUMP" >&5 +printf "%s\n" "$OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + +fi +if test -z "$ac_cv_prog_OBJDUMP"; then + ac_ct_OBJDUMP=$OBJDUMP + # Extract the first word of "objdump", so it can be a program name with args. +set dummy objdump; ac_word=$2 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +printf %s "checking for $ac_word... " >&6; } +if test ${ac_cv_prog_ac_ct_OBJDUMP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -n "$ac_ct_OBJDUMP"; then + ac_cv_prog_ac_ct_OBJDUMP="$ac_ct_OBJDUMP" # Let the user override the test. +else +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir$ac_word$ac_exec_ext"; then + ac_cv_prog_ac_ct_OBJDUMP="objdump" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: found $as_dir$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + +fi +fi +ac_ct_OBJDUMP=$ac_cv_prog_ac_ct_OBJDUMP +if test -n "$ac_ct_OBJDUMP"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_ct_OBJDUMP" >&5 +printf "%s\n" "$ac_ct_OBJDUMP" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + if test "x$ac_ct_OBJDUMP" = x; then + OBJDUMP="false" + else + case $cross_compiling:$ac_tool_warned in +yes:) +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: using cross tools not prefixed with host triplet" >&5 +printf "%s\n" "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} +ac_tool_warned=yes ;; +esac + OBJDUMP=$ac_ct_OBJDUMP + fi +else + OBJDUMP="$ac_cv_prog_OBJDUMP" +fi + + ;; +esac + +test -z "$AS" && AS=as + + + + + +test -z "$DLLTOOL" && DLLTOOL=dlltool + + + + + +test -z "$OBJDUMP" && OBJDUMP=objdump + + + + + + + + enable_dlopen=no + + + + # Check whether --enable-shared was given. +if test ${enable_shared+y} +then : + enableval=$enable_shared; p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_shared=yes +fi + + + + + + + + + + # Check whether --enable-static was given. +if test ${enable_static+y} +then : + enableval=$enable_static; p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_static=yes +fi + + + + + + + + + + +# Check whether --with-pic was given. +if test ${with_pic+y} +then : + withval=$with_pic; lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + pic_mode=default +fi + + + + + + + + + # Check whether --enable-fast-install was given. +if test ${enable_fast_install+y} +then : + enableval=$enable_fast_install; p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac +else $as_nop + enable_fast_install=yes +fi + + + + + + + + + shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[5-9]*,yes) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking which variant of shared library versioning to provide" >&5 +printf %s "checking which variant of shared library versioning to provide... " >&6; } + +# Check whether --with-aix-soname was given. +if test ${with_aix_soname+y} +then : + withval=$with_aix_soname; case $withval in + aix|svr4|both) + ;; + *) + as_fn_error $? "Unknown argument to --with-aix-soname" "$LINENO" 5 + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname +else $as_nop + if test ${lt_cv_with_aix_soname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_with_aix_soname=aix +fi + + with_aix_soname=$lt_cv_with_aix_soname +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $with_aix_soname" >&5 +printf "%s\n" "$with_aix_soname" >&6; } + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + + + + + + + + + + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +test -z "$LN_S" && LN_S="ln -s" + + + + + + + + + + + + + + +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for objdir" >&5 +printf %s "checking for objdir... " >&6; } +if test ${lt_cv_objdir+y} +then : + printf %s "(cached) " >&6 +else $as_nop + rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_objdir" >&5 +printf "%s\n" "$lt_cv_objdir" >&6; } +objdir=$lt_cv_objdir + + + + + +printf "%s\n" "#define LT_OBJDIR \"$lt_cv_objdir/\"" >>confdefs.h + + + + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ${ac_tool_prefix}file" >&5 +printf %s "checking for ${ac_tool_prefix}file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/${ac_tool_prefix}file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"${ac_tool_prefix}file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + + + +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for file" >&5 +printf %s "checking for file... " >&6; } +if test ${lt_cv_path_MAGIC_CMD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + case $MAGIC_CMD in +[\\/*] | ?:[\\/]*) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + ac_dummy="/usr/bin$PATH_SEPARATOR$PATH" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/file"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"file" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac +fi + +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $MAGIC_CMD" >&5 +printf "%s\n" "$MAGIC_CMD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi + + + else + MAGIC_CMD=: + fi +fi + + fi + ;; +esac + +# Use C for the default configuration in the libtool script + +lt_save_CC=$CC +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +objext=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + +lt_prog_compiler_no_builtin_flag= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + lt_prog_compiler_no_builtin_flag=' -Xcompiler -fno-builtin' ;; + *) + lt_prog_compiler_no_builtin_flag=' -fno-builtin' ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -fno-rtti -fno-exceptions" >&5 +printf %s "checking if $compiler supports -fno-rtti -fno-exceptions... " >&6; } +if test ${lt_cv_prog_compiler_rtti_exceptions+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_rtti_exceptions=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="-fno-rtti -fno-exceptions" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_rtti_exceptions=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_rtti_exceptions" >&5 +printf "%s\n" "$lt_cv_prog_compiler_rtti_exceptions" >&6; } + +if test yes = "$lt_cv_prog_compiler_rtti_exceptions"; then + lt_prog_compiler_no_builtin_flag="$lt_prog_compiler_no_builtin_flag -fno-rtti -fno-exceptions" +else + : +fi + +fi + + + + + + + lt_prog_compiler_wl= +lt_prog_compiler_pic= +lt_prog_compiler_static= + + + if test yes = "$GCC"; then + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_static='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + fi + lt_prog_compiler_pic='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + ;; + + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + lt_prog_compiler_can_build_shared=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic=-Kconform_pic + fi + ;; + + *) + lt_prog_compiler_pic='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + lt_prog_compiler_wl='-Xlinker ' + if test -n "$lt_prog_compiler_pic"; then + lt_prog_compiler_pic="-Xcompiler $lt_prog_compiler_pic" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + lt_prog_compiler_wl='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static='-Bstatic' + else + lt_prog_compiler_static='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + lt_prog_compiler_wl='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + lt_prog_compiler_static='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + lt_prog_compiler_wl='-Wl,' + # PIC (with -KPIC) is the default. + lt_prog_compiler_static='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-static' + ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='--shared' + lt_prog_compiler_static='--static' + ;; + nagfor*) + # NAG Fortran compiler + lt_prog_compiler_wl='-Wl,-Wl,,' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + ccc*) + lt_prog_compiler_wl='-Wl,' + # All Alpha code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-qpic' + lt_prog_compiler_static='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [1-7].* | *Sun*Fortran*\ 8.[0-3]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='' + ;; + *Sun\ F* | *Sun*Fortran*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + lt_prog_compiler_wl='-Wl,' + ;; + *Intel*\ [CF]*Compiler*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fPIC' + lt_prog_compiler_static='-static' + ;; + *Portland\ Group*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-fpic' + lt_prog_compiler_static='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + lt_prog_compiler_wl='-Wl,' + # All OSF/1 code is PIC. + lt_prog_compiler_static='-non_shared' + ;; + + rdos*) + lt_prog_compiler_static='-non_shared' + ;; + + solaris*) + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + lt_prog_compiler_wl='-Qoption ld ';; + *) + lt_prog_compiler_wl='-Wl,';; + esac + ;; + + sunos4*) + lt_prog_compiler_wl='-Qoption ld ' + lt_prog_compiler_pic='-PIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic='-Kconform_pic' + lt_prog_compiler_static='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_pic='-KPIC' + lt_prog_compiler_static='-Bstatic' + ;; + + unicos*) + lt_prog_compiler_wl='-Wl,' + lt_prog_compiler_can_build_shared=no + ;; + + uts4*) + lt_prog_compiler_pic='-pic' + lt_prog_compiler_static='-Bstatic' + ;; + + *) + lt_prog_compiler_can_build_shared=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic= + ;; + *) + lt_prog_compiler_pic="$lt_prog_compiler_pic -DPIC" + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic=$lt_prog_compiler_pic +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic" >&6; } +lt_prog_compiler_pic=$lt_cv_prog_compiler_pic + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic_works=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works"; then + case $lt_prog_compiler_pic in + "" | " "*) ;; + *) lt_prog_compiler_pic=" $lt_prog_compiler_pic" ;; + esac +else + lt_prog_compiler_pic= + lt_prog_compiler_can_build_shared=no +fi + +fi + + + + + + + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl eval lt_tmp_static_flag=\"$lt_prog_compiler_static\" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_static_works=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works=yes + fi + else + lt_cv_prog_compiler_static_works=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works"; then + : +else + lt_prog_compiler_static= +fi + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } + if test no = "$hard_links"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + runpath_var= + allow_undefined_flag= + always_export_symbols=no + archive_cmds= + archive_expsym_cmds= + compiler_needs_object=no + enable_shared_with_static_runtimes=no + export_dynamic_flag_spec= + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + hardcode_automatic=no + hardcode_direct=no + hardcode_direct_absolute=no + hardcode_libdir_flag_spec= + hardcode_libdir_separator= + hardcode_minus_L=no + hardcode_shlibpath_var=unsupported + inherit_rpath=no + link_all_deplibs=unknown + module_cmds= + module_expsym_cmds= + old_archive_from_new_cmds= + old_archive_from_expsyms_cmds= + thread_safe_flag_spec= + whole_archive_flag_spec= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + include_expsyms= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + exclude_expsyms='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs=no + ;; + esac + + ld_shlibs=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[2-9]*) ;; + *\ \(GNU\ Binutils\)\ [3-9]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + export_dynamic_flag_spec='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/(^)\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [01].* | *\ 2.[0-9].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[3-9]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, ) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec='-L$libdir' + export_dynamic_flag_spec='$wl--export-all-symbols' + allow_undefined_flag=unsupported + always_export_symbols=no + enable_shared_with_static_runtimes=yes + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs=no + fi + ;; + + haiku*) + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs=yes + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + interix[3-9]*) + hardcode_direct=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + whole_archive_flag_spec= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[cC]* | bgxl[cC]* | mpixl[cC]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + whole_archive_flag_spec='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + whole_archive_flag_spec='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + archive_cmds='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + export_dynamic_flag_spec='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + whole_archive_flag_spec='--whole-archive$convenience --no-whole-archive' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + ld_shlibs=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [01].* | *\ 2.[0-9].* | *\ 2.1[0-5].*) + ld_shlibs=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + ;; + + sunos4*) + archive_cmds='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + ld_shlibs=no + fi + ;; + esac + + if test no = "$ld_shlibs"; then + runpath_var= + hardcode_libdir_flag_spec= + export_dynamic_flag_spec= + whole_archive_flag_spec= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + allow_undefined_flag=unsupported + always_export_symbols=yes + archive_expsym_cmds='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + hardcode_minus_L=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + hardcode_direct=unsupported + fi + ;; + + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds='' + hardcode_direct=yes + hardcode_direct_absolute=yes + hardcode_libdir_separator=':' + link_all_deplibs=yes + file_list_spec='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct=no + hardcode_direct_absolute=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L=yes + hardcode_libdir_flag_spec='-L$libdir' + hardcode_libdir_separator= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + always_export_symbols=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + allow_undefined_flag='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + archive_expsym_cmds='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag="-z nodefs" + archive_expsym_cmds="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath_+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath_=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath_"; then + lt_cv_aix_libpath_=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath_ +fi + + hardcode_libdir_flag_spec='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag=' $wl-bernotok' + allow_undefined_flag=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec='$convenience' + fi + archive_cmds_need_lc=yes + archive_expsym_cmds='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds="$archive_expsym_cmds"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds="$archive_expsym_cmds"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds="$archive_expsym_cmds"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds='' + ;; + m68k) + archive_cmds='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + ;; + esac + ;; + + bsdi[45]*) + export_dynamic_flag_spec=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + always_export_symbols=yes + file_list_spec='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, )='true' + enable_shared_with_static_runtimes=yes + exclude_expsyms='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + export_symbols_cmds='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1,DATA/'\'' | $SED -e '\''/^[AITW][ ]/s/.*[ ]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + old_postinstall_cmds='chmod 644 $oldlib' + postlink_cmds='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + hardcode_libdir_flag_spec=' ' + allow_undefined_flag=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + old_archive_from_new_cmds='true' + # FIXME: Should let the user specify the lib program. + old_archive_cmds='lib -OUT:$oldlib$oldobjs$old_deplibs' + enable_shared_with_static_runtimes=yes + ;; + esac + ;; + + darwin* | rhapsody*) + + + archive_cmds_need_lc=no + hardcode_direct=no + hardcode_automatic=yes + hardcode_shlibpath_var=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec='' + fi + link_all_deplibs=yes + allow_undefined_flag=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + + else + ld_shlibs=no + fi + + ;; + + dgux*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + hpux9*) + if test yes = "$GCC"; then + archive_cmds='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + archive_cmds='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + export_dynamic_flag_spec='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + archive_cmds='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + archive_cmds='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $CC understands -b" >&5 +printf %s "checking if $CC understands -b... " >&6; } +if test ${lt_cv_prog_compiler__b+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler__b=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -b" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler__b=yes + fi + else + lt_cv_prog_compiler__b=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler__b" >&5 +printf "%s\n" "$lt_cv_prog_compiler__b" >&6; } + +if test yes = "$lt_cv_prog_compiler__b"; then + archive_cmds='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' +else + archive_cmds='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' +fi + + ;; + esac + fi + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec='$wl+b $wl$libdir' + hardcode_libdir_separator=: + + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct=no + hardcode_shlibpath_var=no + ;; + *) + hardcode_direct=yes + hardcode_direct_absolute=yes + export_dynamic_flag_spec='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + hardcode_minus_L=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + archive_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $host_os linker accepts -exported_symbol" >&5 +printf %s "checking whether the $host_os linker accepts -exported_symbol... " >&6; } +if test ${lt_cv_irix_exported_symbol+y} +then : + printf %s "(cached) " >&6 +else $as_nop + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +int foo (void) { return 0; } +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + lt_cv_irix_exported_symbol=yes +else $as_nop + lt_cv_irix_exported_symbol=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_irix_exported_symbol" >&5 +printf "%s\n" "$lt_cv_irix_exported_symbol" >&6; } + if test yes = "$lt_cv_irix_exported_symbol"; then + archive_expsym_cmds='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + link_all_deplibs=no + else + archive_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + inherit_rpath=yes + link_all_deplibs=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + ld_shlibs=yes + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + archive_cmds='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_direct=yes + hardcode_shlibpath_var=no + ;; + + newsos6) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + hardcode_shlibpath_var=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct=yes + hardcode_shlibpath_var=no + hardcode_direct_absolute=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + export_dynamic_flag_spec='$wl-E' + else + archive_cmds='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + hardcode_libdir_flag_spec='$wl-rpath,$libdir' + fi + else + ld_shlibs=no + fi + ;; + + os2*) + hardcode_libdir_flag_spec='-L$libdir' + hardcode_minus_L=yes + allow_undefined_flag=unsupported + shrext_cmds=.dll + archive_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes=yes + ;; + + osf3*) + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + archive_cmds_need_lc='no' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + hardcode_libdir_separator=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + allow_undefined_flag=' $wl-expect_unresolved $wl\*' + archive_cmds='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec='$wl-rpath $wl$libdir' + else + allow_undefined_flag=' -expect_unresolved \*' + archive_cmds='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + hardcode_libdir_flag_spec='-rpath $libdir' + fi + archive_cmds_need_lc='no' + hardcode_libdir_separator=: + ;; + + solaris*) + no_undefined_flag=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + archive_cmds='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + archive_cmds='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + archive_cmds='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + hardcode_libdir_flag_spec='-R$libdir' + hardcode_shlibpath_var=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + whole_archive_flag_spec='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + whole_archive_flag_spec='-z allextract$convenience -z defaultextract' + fi + ;; + esac + link_all_deplibs=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + archive_cmds='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + hardcode_libdir_flag_spec='-L$libdir' + hardcode_direct=yes + hardcode_minus_L=yes + hardcode_shlibpath_var=no + ;; + + sysv4) + case $host_vendor in + sni) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + archive_cmds='$LD -G -o $lib $libobjs $deplibs $linker_flags' + reload_cmds='$CC -r -o $output$reload_objs' + hardcode_direct=no + ;; + motorola) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_direct=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + hardcode_shlibpath_var=no + ;; + + sysv4.3*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + export_dynamic_flag_spec='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_shlibpath_var=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + ld_shlibs=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag='$wl-z,text' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag='$wl-z,text' + allow_undefined_flag='$wl-z,nodefs' + archive_cmds_need_lc=no + hardcode_shlibpath_var=no + hardcode_libdir_flag_spec='$wl-R,$libdir' + hardcode_libdir_separator=':' + link_all_deplibs=yes + export_dynamic_flag_spec='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + archive_cmds='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + archive_cmds='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + archive_cmds='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + hardcode_libdir_flag_spec='-L$libdir' + hardcode_shlibpath_var=no + ;; + + *) + ld_shlibs=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + export_dynamic_flag_spec='$wl-Blargedynsym' + ;; + esac + fi + fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs" >&5 +printf "%s\n" "$ld_shlibs" >&6; } +test no = "$ld_shlibs" && can_build_shared=no + +with_gnu_ld=$with_gnu_ld + + + + + + + + + + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc+y} +then : + printf %s "(cached) " >&6 +else $as_nop + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl + pic_flag=$lt_prog_compiler_pic + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag + allow_undefined_flag= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc=no + else + lt_cv_archive_cmds_need_lc=yes + fi + allow_undefined_flag=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc" >&6; } + archive_cmds_need_lc=$lt_cv_archive_cmds_need_lc + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } + +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([A-Za-z]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[lt_foo]++; } + if (lt_freq[lt_foo] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([A-Za-z]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api" + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib" + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null +then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } +hardcode_action= +if test -n "$hardcode_libdir_flag_spec" || + test -n "$runpath_var" || + test yes = "$hardcode_automatic"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, )" && + test no != "$hardcode_minus_L"; then + # Linking always hardcodes the temporary library directory. + hardcode_action=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action=unsupported +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action" >&5 +printf "%s\n" "$hardcode_action" >&6; } + +if test relink = "$hardcode_action" || + test yes = "$inherit_rpath"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + +fi + + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + ac_fn_c_check_func "$LINENO" "shl_load" "ac_cv_func_shl_load" +if test "x$ac_cv_func_shl_load" = xyes +then : + lt_cv_dlopen=shl_load +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for shl_load in -ldld" >&5 +printf %s "checking for shl_load in -ldld... " >&6; } +if test ${ac_cv_lib_dld_shl_load+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char shl_load (); +int +main (void) +{ +return shl_load (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_shl_load=yes +else $as_nop + ac_cv_lib_dld_shl_load=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_shl_load" >&5 +printf "%s\n" "$ac_cv_lib_dld_shl_load" >&6; } +if test "x$ac_cv_lib_dld_shl_load" = xyes +then : + lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld +else $as_nop + ac_fn_c_check_func "$LINENO" "dlopen" "ac_cv_func_dlopen" +if test "x$ac_cv_func_dlopen" = xyes +then : + lt_cv_dlopen=dlopen +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -ldl" >&5 +printf %s "checking for dlopen in -ldl... " >&6; } +if test ${ac_cv_lib_dl_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dl_dlopen=yes +else $as_nop + ac_cv_lib_dl_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dl_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_dl_dlopen" >&6; } +if test "x$ac_cv_lib_dl_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dlopen in -lsvld" >&5 +printf %s "checking for dlopen in -lsvld... " >&6; } +if test ${ac_cv_lib_svld_dlopen+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsvld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dlopen (); +int +main (void) +{ +return dlopen (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_svld_dlopen=yes +else $as_nop + ac_cv_lib_svld_dlopen=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_svld_dlopen" >&5 +printf "%s\n" "$ac_cv_lib_svld_dlopen" >&6; } +if test "x$ac_cv_lib_svld_dlopen" = xyes +then : + lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for dld_link in -ldld" >&5 +printf %s "checking for dld_link in -ldld... " >&6; } +if test ${ac_cv_lib_dld_dld_link+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-ldld $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char dld_link (); +int +main (void) +{ +return dld_link (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_dld_dld_link=yes +else $as_nop + ac_cv_lib_dld_dld_link=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_dld_dld_link" >&5 +printf "%s\n" "$ac_cv_lib_dld_dld_link" >&6; } +if test "x$ac_cv_lib_dld_dld_link" = xyes +then : + lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld +fi + + +fi + + +fi + + +fi + + +fi + + +fi + + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a program can dlopen itself" >&5 +printf %s "checking whether a program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self" >&5 +printf "%s\n" "$lt_cv_dlopen_self" >&6; } + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether a statically linked program can dlopen itself" >&5 +printf %s "checking whether a statically linked program can dlopen itself... " >&6; } +if test ${lt_cv_dlopen_self_static+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test yes = "$cross_compiling"; then : + lt_cv_dlopen_self_static=cross +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +} +_LT_EOF + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_link\""; } >&5 + (eval $ac_link) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&5 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlneed_uscore) lt_cv_dlopen_self_static=yes ;; + x$lt_dlunknown|x*) lt_cv_dlopen_self_static=no ;; + esac + else : + # compilation failed + lt_cv_dlopen_self_static=no + fi +fi +rm -fr conftest* + + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_dlopen_self_static" >&5 +printf "%s\n" "$lt_cv_dlopen_self_static" >&6; } + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi + + + + + + + + + + + + + + + + + +striplib= +old_striplib= +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether stripping libraries is possible" >&5 +printf %s "checking whether stripping libraries is possible... " >&6; } +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + esac +fi + + + + + + + + + + + + + # Report what library types will actually be built + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if libtool supports shared libraries" >&5 +printf %s "checking if libtool supports shared libraries... " >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $can_build_shared" >&5 +printf "%s\n" "$can_build_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries" >&5 +printf %s "checking whether to build shared libraries... " >&6; } + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[4-9]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_shared" >&5 +printf "%s\n" "$enable_shared" >&6; } + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries" >&5 +printf %s "checking whether to build static libraries... " >&6; } + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $enable_static" >&5 +printf "%s\n" "$enable_static" >&6; } + + + + +fi +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +CC=$lt_save_CC + + if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to run the C++ preprocessor" >&5 +printf %s "checking how to run the C++ preprocessor... " >&6; } +if test -z "$CXXCPP"; then + if test ${ac_cv_prog_CXXCPP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # Double quotes because $CXX needs to be expanded + for CXXCPP in "$CXX -E" cpp /lib/cpp + do + ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + break +fi + + done + ac_cv_prog_CXXCPP=$CXXCPP + +fi + CXXCPP=$ac_cv_prog_CXXCPP +else + ac_cv_prog_CXXCPP=$CXXCPP +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $CXXCPP" >&5 +printf "%s\n" "$CXXCPP" >&6; } +ac_preproc_ok=false +for ac_cxx_preproc_warn_flag in '' yes +do + # Use a header file that comes with gcc, so configuring glibc + # with a fresh cross-compiler works. + # On the NeXT, cc -E runs the code through the compiler's parser, + # not just through cpp. "Syntax error" is here to catch this case. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + Syntax error +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO" +then : + +else $as_nop + # Broken: fails on valid input. +continue +fi +rm -f conftest.err conftest.i conftest.$ac_ext + + # OK, works on sane cases. Now check whether nonexistent headers + # can be detected and how. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +_ACEOF +if ac_fn_cxx_try_cpp "$LINENO" +then : + # Broken: success on invalid input. +continue +else $as_nop + # Passes both tests. +ac_preproc_ok=: +break +fi +rm -f conftest.err conftest.i conftest.$ac_ext + +done +# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. +rm -f conftest.i conftest.err conftest.$ac_ext +if $ac_preproc_ok +then : + +else $as_nop + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "C++ preprocessor \"$CXXCPP\" fails sanity check +See \`config.log' for more details" "$LINENO" 5; } +fi + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + +else + _lt_caught_CXX_error=yes +fi + +ac_ext=cpp +ac_cpp='$CXXCPP $CPPFLAGS' +ac_compile='$CXX -c $CXXFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CXX -o conftest$ac_exeext $CXXFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_cxx_compiler_gnu + +archive_cmds_need_lc_CXX=no +allow_undefined_flag_CXX= +always_export_symbols_CXX=no +archive_expsym_cmds_CXX= +compiler_needs_object_CXX=no +export_dynamic_flag_spec_CXX= +hardcode_direct_CXX=no +hardcode_direct_absolute_CXX=no +hardcode_libdir_flag_spec_CXX= +hardcode_libdir_separator_CXX= +hardcode_minus_L_CXX=no +hardcode_shlibpath_var_CXX=unsupported +hardcode_automatic_CXX=no +inherit_rpath_CXX=no +module_cmds_CXX= +module_expsym_cmds_CXX= +link_all_deplibs_CXX=unknown +old_archive_cmds_CXX=$old_archive_cmds +reload_flag_CXX=$reload_flag +reload_cmds_CXX=$reload_cmds +no_undefined_flag_CXX= +whole_archive_flag_spec_CXX= +enable_shared_with_static_runtimes_CXX=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +objext_CXX=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + + + + + + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC + + + # save warnings/boilerplate of simple test code + ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* + + ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* + + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + compiler_CXX=$CC + func_cc_basename $compiler +cc_basename=$func_cc_basename_result + + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + lt_prog_compiler_no_builtin_flag_CXX=' -fno-builtin' + else + lt_prog_compiler_no_builtin_flag_CXX= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + + +# Check whether --with-gnu-ld was given. +if test ${with_gnu_ld+y} +then : + withval=$with_gnu_ld; test no = "$withval" || with_gnu_ld=yes +else $as_nop + with_gnu_ld=no +fi + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ld used by $CC" >&5 +printf %s "checking for ld used by $CC... " >&6; } + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [\\/]* | ?:[\\/]*) + re_direlt='/[^/][^/]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for GNU ld" >&5 +printf %s "checking for GNU ld... " >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for non-GNU ld" >&5 +printf %s "checking for non-GNU ld... " >&6; } +fi +if test ${lt_cv_path_LD+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &5 +printf "%s\n" "$LD" >&6; } +else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } +fi +test -z "$LD" && as_fn_error $? "no acceptable ld found in \$PATH" "$LINENO" 5 +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if the linker ($LD) is GNU ld" >&5 +printf %s "checking if the linker ($LD) is GNU ld... " >&6; } +if test ${lt_cv_prog_gnu_ld+y} +then : + printf %s "(cached) " >&6 +else $as_nop + # I'd rather use --version here, but apparently some GNU lds only accept -v. +case `$LD -v 2>&1 &5 +printf "%s\n" "$lt_cv_prog_gnu_ld" >&6; } +with_gnu_ld=$lt_cv_prog_gnu_ld + + + + + + + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + archive_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + whole_archive_flag_spec_CXX= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + ld_shlibs_CXX=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aix[4-9]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[23]|aix4.[23].*|aix[5-9]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + archive_cmds_CXX='' + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + file_list_spec_CXX='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + hardcode_direct_CXX=no + hardcode_direct_absolute_CXX=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[012]|aix4.[012].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + hardcode_direct_CXX=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + hardcode_minus_L_CXX=yes + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_libdir_separator_CXX= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + export_dynamic_flag_spec_CXX='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + always_export_symbols_CXX=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + no_undefined_flag_CXX='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath__CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" + + archive_expsym_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + hardcode_libdir_flag_spec_CXX='$wl-R $libdir:/usr/lib:/lib' + allow_undefined_flag_CXX="-z nodefs" + archive_expsym_cmds_CXX="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + if test ${lt_cv_aix_libpath__CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO" +then : + + lt_aix_libpath_sed=' + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }' + lt_cv_aix_libpath__CXX=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + if test -z "$lt_cv_aix_libpath__CXX"; then + lt_cv_aix_libpath__CXX=/usr/lib:/lib + fi + +fi + + aix_libpath=$lt_cv_aix_libpath__CXX +fi + + hardcode_libdir_flag_spec_CXX='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + no_undefined_flag_CXX=' $wl-bernotok' + allow_undefined_flag_CXX=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + whole_archive_flag_spec_CXX='$convenience' + fi + archive_cmds_need_lc_CXX=yes + archive_expsym_cmds_CXX='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([, ]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + archive_expsym_cmds_CXX="$archive_expsym_cmds_CXX"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + allow_undefined_flag_CXX=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + archive_cmds_CXX='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + ld_shlibs_CXX=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + hardcode_libdir_flag_spec_CXX=' ' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=yes + file_list_spec_CXX='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + archive_cmds_CXX='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, CXX)='true' + enable_shared_with_static_runtimes_CXX=yes + # Don't use ranlib + old_postinstall_cmds_CXX='chmod 644 $oldlib' + postlink_cmds_CXX='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, CXX) is actually meaningless, + # as there is no search path for DLLs. + hardcode_libdir_flag_spec_CXX='-L$libdir' + export_dynamic_flag_spec_CXX='$wl--export-all-symbols' + allow_undefined_flag_CXX=unsupported + always_export_symbols_CXX=no + enable_shared_with_static_runtimes_CXX=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + archive_cmds_CXX='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + archive_expsym_cmds_CXX='if test DEF = "`$SED -n -e '\''s/^[ ]*//'\'' -e '\''/^\(;.*\)*$/d'\'' -e '\''s/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p'\'' -e q $export_symbols`" ; then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + ld_shlibs_CXX=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + + + archive_cmds_need_lc_CXX=no + hardcode_direct_CXX=no + hardcode_automatic_CXX=yes + hardcode_shlibpath_var_CXX=unsupported + if test yes = "$lt_cv_ld_force_load"; then + whole_archive_flag_spec_CXX='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + + else + whole_archive_flag_spec_CXX='' + fi + link_all_deplibs_CXX=yes + allow_undefined_flag_CXX=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + archive_cmds_CXX="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + module_cmds_CXX="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + module_expsym_cmds_CXX="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + if test yes != "$lt_cv_apple_cc_single_mod"; then + archive_cmds_CXX="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + archive_expsym_cmds_CXX="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi + + else + ld_shlibs_CXX=no + fi + + ;; + + os2*) + hardcode_libdir_flag_spec_CXX='-L$libdir' + hardcode_minus_L_CXX=yes + allow_undefined_flag_CXX=unsupported + shrext_cmds=.dll + archive_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + archive_expsym_cmds_CXX='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + old_archive_From_new_cmds_CXX='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + enable_shared_with_static_runtimes_CXX=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + ld_shlibs_CXX=no + ;; + + freebsd-elf*) + archive_cmds_need_lc_CXX=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + ld_shlibs_CXX=yes + ;; + + haiku*) + archive_cmds_CXX='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + link_all_deplibs_CXX=yes + ;; + + hpux9*) + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' + hardcode_libdir_separator_CXX=: + export_dynamic_flag_spec_CXX='$wl-E' + hardcode_direct_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + archive_cmds_CXX='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + hardcode_libdir_flag_spec_CXX='$wl+b $wl$libdir' + hardcode_libdir_separator_CXX=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + export_dynamic_flag_spec_CXX='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + ;; + *) + hardcode_direct_CXX=yes + hardcode_direct_absolute_CXX=yes + hardcode_minus_L_CXX=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + archive_cmds_CXX='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + interix[3-9]*) + hardcode_direct_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + archive_cmds_CXX='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + archive_expsym_cmds_CXX='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + archive_cmds_CXX='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + link_all_deplibs_CXX=yes + ;; + esac + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + hardcode_libdir_separator_CXX=: + inherit_rpath_CXX=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + archive_expsym_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + archive_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + archive_cmds_need_lc_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [1-5].* | *pgcpp\ [1-5].*) + prelink_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + old_archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + archive_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='$wl--rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + whole_archive_flag_spec_CXX='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + archive_expsym_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + export_dynamic_flag_spec_CXX='$wl--export-dynamic' + archive_cmds_CXX='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + archive_expsym_cmds_CXX='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + hardcode_libdir_flag_spec_CXX='-R$libdir' + whole_archive_flag_spec_CXX='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + compiler_needs_object_CXX=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + archive_cmds_CXX='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + ld_shlibs_CXX=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + hardcode_direct_CXX=yes + hardcode_shlibpath_var_CXX=no + hardcode_direct_absolute_CXX=yes + archive_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + archive_expsym_cmds_CXX='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + export_dynamic_flag_spec_CXX='$wl-E' + whole_archive_flag_spec_CXX=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + ld_shlibs_CXX=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + archive_cmds_CXX='tempext=`echo $shared_ext | $SED -e '\''s/\([^()0-9A-Za-z{}]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + hardcode_libdir_flag_spec_CXX='$wl-rpath,$libdir' + hardcode_libdir_separator_CXX=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) old_archive_cmds_CXX='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) old_archive_cmds_CXX='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + cxx*) + case $host in + osf3*) + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + ;; + *) + allow_undefined_flag_CXX=' -expect_unresolved \*' + archive_cmds_CXX='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + archive_expsym_cmds_CXX='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + hardcode_libdir_flag_spec_CXX='-rpath $libdir' + ;; + esac + + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + allow_undefined_flag_CXX=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + archive_cmds_CXX='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + hardcode_libdir_flag_spec_CXX='$wl-rpath $wl$libdir' + hardcode_libdir_separator_CXX=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + archive_cmds_need_lc_CXX=yes + no_undefined_flag_CXX=' -zdefs' + archive_cmds_CXX='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + hardcode_libdir_flag_spec_CXX='-R$libdir' + hardcode_shlibpath_var_CXX=no + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + whole_archive_flag_spec_CXX='-z allextract$convenience -z defaultextract' + ;; + esac + link_all_deplibs_CXX=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + old_archive_cmds_CXX='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + archive_cmds_CXX='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + old_archive_cmds_CXX='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + no_undefined_flag_CXX=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + archive_cmds_CXX='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + archive_cmds_CXX='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + archive_expsym_cmds_CXX='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + fi + + hardcode_libdir_flag_spec_CXX='$wl-R $wl$libdir' + case $host_os in + solaris2.[0-5] | solaris2.[0-5].*) ;; + *) + whole_archive_flag_spec_CXX='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[01].[10]* | unixware7* | sco3.2v5.0.[024]*) + no_undefined_flag_CXX='$wl-z,text' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + no_undefined_flag_CXX='$wl-z,text' + allow_undefined_flag_CXX='$wl-z,nodefs' + archive_cmds_need_lc_CXX=no + hardcode_shlibpath_var_CXX=no + hardcode_libdir_flag_spec_CXX='$wl-R,$libdir' + hardcode_libdir_separator_CXX=':' + link_all_deplibs_CXX=yes + export_dynamic_flag_spec_CXX='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + archive_cmds_CXX='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + old_archive_cmds_CXX='$CC -Tprelink_objects $oldobjs~ + '"$old_archive_cmds_CXX" + reload_cmds_CXX='$CC -Tprelink_objects $reload_objs~ + '"$reload_cmds_CXX" + ;; + *) + archive_cmds_CXX='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + archive_expsym_cmds_CXX='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + + *) + # FIXME: insert proper C++ library support + ld_shlibs_CXX=no + ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +printf "%s\n" "$ld_shlibs_CXX" >&6; } + test no = "$ld_shlibs_CXX" && can_build_shared=no + + GCC_CXX=$GXX + LD_CXX=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + # Dependencies to place before and after the object being linked: +predep_objects_CXX= +postdep_objects_CXX= +predeps_CXX= +postdeps_CXX= +compiler_lib_search_path_CXX= + +cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF + + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; }; then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$compiler_lib_search_path_CXX"; then + compiler_lib_search_path_CXX=$prev$p + else + compiler_lib_search_path_CXX="${compiler_lib_search_path_CXX} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$postdeps_CXX"; then + postdeps_CXX=$prev$p + else + postdeps_CXX="${postdeps_CXX} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$predep_objects_CXX"; then + predep_objects_CXX=$p + else + predep_objects_CXX="$predep_objects_CXX $p" + fi + else + if test -z "$postdep_objects_CXX"; then + postdep_objects_CXX=$p + else + postdep_objects_CXX="$postdep_objects_CXX $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling CXX test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +case $host_os in +interix[3-9]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + predep_objects_CXX= + postdep_objects_CXX= + postdeps_CXX= + ;; +esac + + +case " $postdeps_CXX " in +*" -lc "*) archive_cmds_need_lc_CXX=no ;; +esac + compiler_lib_search_dirs_CXX= +if test -n "${compiler_lib_search_path_CXX}"; then + compiler_lib_search_dirs_CXX=`echo " ${compiler_lib_search_path_CXX}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + lt_prog_compiler_wl_CXX= +lt_prog_compiler_pic_CXX= +lt_prog_compiler_static_CXX= + + + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + fi + lt_prog_compiler_pic_CXX='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + lt_prog_compiler_pic_CXX='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + lt_prog_compiler_pic_CXX='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + case $host_os in + os2*) + lt_prog_compiler_static_CXX='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + lt_prog_compiler_pic_CXX='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + lt_prog_compiler_pic_CXX= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + lt_prog_compiler_static_CXX= + ;; + interix[3-9]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + lt_prog_compiler_pic_CXX=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + *) + lt_prog_compiler_pic_CXX='-fPIC' + ;; + esac + else + case $host_os in + aix[4-9]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + lt_prog_compiler_static_CXX='-Bstatic' + else + lt_prog_compiler_static_CXX='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, CXX)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + lt_prog_compiler_pic_CXX='-DDLL_EXPORT' + ;; + dgux*) + case $cc_basename in + ec++*) + lt_prog_compiler_pic_CXX='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + lt_prog_compiler_pic_CXX='+Z' + fi + ;; + aCC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + lt_prog_compiler_pic_CXX='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_static_CXX='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + lt_prog_compiler_wl_CXX='--backend -Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fPIC' + lt_prog_compiler_static_CXX='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-fpic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + xlc* | xlC* | bgxl[cC]* | mpixl[cC]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-qpic' + lt_prog_compiler_static_CXX='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + lt_prog_compiler_pic_CXX='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + lt_prog_compiler_pic_CXX='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + lt_prog_compiler_wl_CXX='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + lt_prog_compiler_pic_CXX='-pic' + ;; + cxx*) + # Digital/Compaq C++ + lt_prog_compiler_wl_CXX='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + lt_prog_compiler_pic_CXX= + lt_prog_compiler_static_CXX='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + lt_prog_compiler_wl_CXX='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + lt_prog_compiler_pic_CXX='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + lt_prog_compiler_pic_CXX='-pic' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + lcc*) + # Lucid + lt_prog_compiler_pic_CXX='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + lt_prog_compiler_wl_CXX='-Wl,' + lt_prog_compiler_pic_CXX='-KPIC' + lt_prog_compiler_static_CXX='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + lt_prog_compiler_pic_CXX='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + lt_prog_compiler_can_build_shared_CXX=no + ;; + esac + fi + +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + lt_prog_compiler_pic_CXX= + ;; + *) + lt_prog_compiler_pic_CXX="$lt_prog_compiler_pic_CXX -DPIC" + ;; +esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $compiler option to produce PIC" >&5 +printf %s "checking for $compiler option to produce PIC... " >&6; } +if test ${lt_cv_prog_compiler_pic_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic_CXX=$lt_prog_compiler_pic_CXX +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_CXX" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_CXX" >&6; } +lt_prog_compiler_pic_CXX=$lt_cv_prog_compiler_pic_CXX + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$lt_prog_compiler_pic_CXX"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works" >&5 +printf %s "checking if $compiler PIC flag $lt_prog_compiler_pic_CXX works... " >&6; } +if test ${lt_cv_prog_compiler_pic_works_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_pic_works_CXX=no + ac_outfile=conftest.$ac_objext + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$lt_prog_compiler_pic_CXX -DPIC" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_pic_works_CXX=yes + fi + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_pic_works_CXX" >&5 +printf "%s\n" "$lt_cv_prog_compiler_pic_works_CXX" >&6; } + +if test yes = "$lt_cv_prog_compiler_pic_works_CXX"; then + case $lt_prog_compiler_pic_CXX in + "" | " "*) ;; + *) lt_prog_compiler_pic_CXX=" $lt_prog_compiler_pic_CXX" ;; + esac +else + lt_prog_compiler_pic_CXX= + lt_prog_compiler_can_build_shared_CXX=no +fi + +fi + + + + + +# +# Check to make sure the static flag actually works. +# +wl=$lt_prog_compiler_wl_CXX eval lt_tmp_static_flag=\"$lt_prog_compiler_static_CXX\" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler static flag $lt_tmp_static_flag works" >&5 +printf %s "checking if $compiler static flag $lt_tmp_static_flag works... " >&6; } +if test ${lt_cv_prog_compiler_static_works_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_static_works_CXX=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $lt_tmp_static_flag" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&5 + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + lt_cv_prog_compiler_static_works_CXX=yes + fi + else + lt_cv_prog_compiler_static_works_CXX=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_static_works_CXX" >&5 +printf "%s\n" "$lt_cv_prog_compiler_static_works_CXX" >&6; } + +if test yes = "$lt_cv_prog_compiler_static_works_CXX"; then + : +else + lt_prog_compiler_static_CXX= +fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if $compiler supports -c -o file.$ac_objext" >&5 +printf %s "checking if $compiler supports -c -o file.$ac_objext... " >&6; } +if test ${lt_cv_prog_compiler_c_o_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_prog_compiler_c_o_CXX=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&5) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&5 + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + lt_cv_prog_compiler_c_o_CXX=yes + fi + fi + chmod u+w . 2>&5 + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_prog_compiler_c_o_CXX" >&5 +printf "%s\n" "$lt_cv_prog_compiler_c_o_CXX" >&6; } + + + + +hard_links=nottested +if test no = "$lt_cv_prog_compiler_c_o_CXX" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if we can lock with hard links" >&5 +printf %s "checking if we can lock with hard links... " >&6; } + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hard_links" >&5 +printf "%s\n" "$hard_links" >&6; } + if test no = "$hard_links"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&5 +printf "%s\n" "$as_me: WARNING: '$CC' does not support '-c -o', so 'make -j' may be unsafe" >&2;} + need_locks=warn + fi +else + need_locks=no +fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the $compiler linker ($LD) supports shared libraries" >&5 +printf %s "checking whether the $compiler linker ($LD) supports shared libraries... " >&6; } + + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*' + case $host_os in + aix[4-9]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + export_symbols_cmds_CXX='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && (substr(\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + export_symbols_cmds_CXX='`func_echo_all $NM | $SED -e '\''s/B\([^B]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && (substr(\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + export_symbols_cmds_CXX=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + exclude_expsyms_CXX='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[BCDGRS][ ]/s/.*[ ]\([^ ]*\)/\1 DATA/;s/^.*[ ]__nm__\([^ ]*\)[ ][^ ]*/\1 DATA/;/^I[ ]/d;/^[AITW][ ]/s/.* //'\'' | sort | uniq > $export_symbols' + exclude_expsyms_CXX='[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname' + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + link_all_deplibs_CXX=no + ;; + *) + export_symbols_cmds_CXX='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ld_shlibs_CXX" >&5 +printf "%s\n" "$ld_shlibs_CXX" >&6; } +test no = "$ld_shlibs_CXX" && can_build_shared=no + +with_gnu_ld_CXX=$with_gnu_ld + + + + + + +# +# Do we need to explicitly link libc? +# +case "x$archive_cmds_need_lc_CXX" in +x|xyes) + # Assume -lc should be added + archive_cmds_need_lc_CXX=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $archive_cmds_CXX in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether -lc should be explicitly linked in" >&5 +printf %s "checking whether -lc should be explicitly linked in... " >&6; } +if test ${lt_cv_archive_cmds_need_lc_CXX+y} +then : + printf %s "(cached) " >&6 +else $as_nop + $RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$ac_compile\""; } >&5 + (eval $ac_compile) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$lt_prog_compiler_wl_CXX + pic_flag=$lt_prog_compiler_pic_CXX + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$allow_undefined_flag_CXX + allow_undefined_flag_CXX= + if { { eval echo "\"\$as_me\":${as_lineno-$LINENO}: \"$archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1\""; } >&5 + (eval $archive_cmds_CXX 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) 2>&5 + ac_status=$? + printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 + test $ac_status = 0; } + then + lt_cv_archive_cmds_need_lc_CXX=no + else + lt_cv_archive_cmds_need_lc_CXX=yes + fi + allow_undefined_flag_CXX=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $lt_cv_archive_cmds_need_lc_CXX" >&5 +printf "%s\n" "$lt_cv_archive_cmds_need_lc_CXX" >&6; } + archive_cmds_need_lc_CXX=$lt_cv_archive_cmds_need_lc_CXX + ;; + esac + fi + ;; +esac + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking dynamic linker characteristics" >&5 +printf %s "checking dynamic linker characteristics... " >&6; } + +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + + + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[4-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[01] | aix4.[01].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a(lib.so.V)' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V($shared_archive_member_spec.o), lib.a(lib.so.V)" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a(lib.so.V), lib.so.V($shared_archive_member_spec.o)" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([^/]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[45]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([a-zA-Z]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | $GREP ';[c-zC-Z]:/' >/dev/null; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[.]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' + + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[23].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[01]* | freebsdelf3.[01]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[2-9]* | freebsdelf3.[2-9]* | \ + freebsd4.[0-5] | freebsdelf4.[0-5] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[3-9]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + hardcode_libdir_flag_spec_CXX='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + if test ${lt_cv_shlibpath_overrides_runpath+y} +then : + printf %s "(cached) " >&6 +else $as_nop + lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$lt_prog_compiler_wl_CXX\"; \ + LDFLAGS=\"\$LDFLAGS $hardcode_libdir_flag_spec_CXX\"" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_link "$LINENO" +then : + if ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null +then : + lt_cv_shlibpath_overrides_runpath=yes +fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + +fi + + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \$2)); skip = 1; } { if (!skip) print \$0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $dynamic_linker" >&5 +printf "%s\n" "$dynamic_linker" >&6; } +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to hardcode library paths into programs" >&5 +printf %s "checking how to hardcode library paths into programs... " >&6; } +hardcode_action_CXX= +if test -n "$hardcode_libdir_flag_spec_CXX" || + test -n "$runpath_var_CXX" || + test yes = "$hardcode_automatic_CXX"; then + + # We can hardcode non-existent directories. + if test no != "$hardcode_direct_CXX" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, CXX)" && + test no != "$hardcode_minus_L_CXX"; then + # Linking always hardcodes the temporary library directory. + hardcode_action_CXX=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + hardcode_action_CXX=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + hardcode_action_CXX=unsupported +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $hardcode_action_CXX" >&5 +printf "%s\n" "$hardcode_action_CXX" >&6; } + +if test relink = "$hardcode_action_CXX" || + test yes = "$inherit_rpath_CXX"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi + + + + + + + + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +ac_ext=c +ac_cpp='$CPP $CPPFLAGS' +ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' +ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' +ac_compiler_gnu=$ac_cv_c_compiler_gnu + + + + + + + + + + + + + + + + ac_config_commands="$ac_config_commands libtool" + + + + +# Only expand once: + + +## --------------------- ## +## End of libtool code ## +## --------------------- ## + +# +# Verify if finally libtool shared libraries will be built +# + +case "x$enable_shared" in # (( + xyes | xno) + xc_lt_build_shared=$enable_shared + ;; + *) + as_fn_error $? "unexpected libtool enable_shared value: $enable_shared" "$LINENO" 5 + ;; +esac + +# +# Verify if finally libtool static libraries will be built +# + +case "x$enable_static" in # (( + xyes | xno) + xc_lt_build_static=$enable_static + ;; + *) + as_fn_error $? "unexpected libtool enable_static value: $enable_static" "$LINENO" 5 + ;; +esac + +# +# Verify if libtool shared libraries should be linked using flag -version-info +# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -version-info" >&5 +printf %s "checking whether to build shared libraries with -version-info... " >&6; } +xc_lt_shlib_use_version_info='yes' +if test "x$version_type" = 'xnone'; then + xc_lt_shlib_use_version_info='no' +fi +case $host_os in # ( + amigaos*) + xc_lt_shlib_use_version_info='yes' + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_version_info" >&5 +printf "%s\n" "$xc_lt_shlib_use_version_info" >&6; } + +# +# Verify if libtool shared libraries should be linked using flag -no-undefined +# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -no-undefined" >&5 +printf %s "checking whether to build shared libraries with -no-undefined... " >&6; } +xc_lt_shlib_use_no_undefined='no' +if test "x$allow_undefined" = 'xno'; then + xc_lt_shlib_use_no_undefined='yes' +elif test "x$allow_undefined_flag" = 'xunsupported'; then + xc_lt_shlib_use_no_undefined='yes' +fi +case $host_os in # ( + cygwin* | mingw* | pw32* | cegcc* | os2* | aix*) + xc_lt_shlib_use_no_undefined='yes' + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_no_undefined" >&5 +printf "%s\n" "$xc_lt_shlib_use_no_undefined" >&6; } + +# +# Verify if libtool shared libraries should be linked using flag -mimpure-text +# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with -mimpure-text" >&5 +printf %s "checking whether to build shared libraries with -mimpure-text... " >&6; } +xc_lt_shlib_use_mimpure_text='no' +case $host_os in # ( + solaris2*) + if test "x$GCC" = 'xyes'; then + xc_lt_shlib_use_mimpure_text='yes' + fi + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_shlib_use_mimpure_text" >&5 +printf "%s\n" "$xc_lt_shlib_use_mimpure_text" >&6; } + +# +# Find out wether libtool libraries would be built wit PIC +# + +case "x$pic_mode" in # (((( + xdefault) + xc_lt_build_shared_with_pic='yes' + xc_lt_build_static_with_pic='no' + ;; + xyes) + xc_lt_build_shared_with_pic='yes' + xc_lt_build_static_with_pic='yes' + ;; + xno) + xc_lt_build_shared_with_pic='no' + xc_lt_build_static_with_pic='no' + ;; + *) + xc_lt_build_shared_with_pic='unknown' + xc_lt_build_static_with_pic='unknown' + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unexpected libtool pic_mode value: $pic_mode" >&5 +printf "%s\n" "$as_me: WARNING: unexpected libtool pic_mode value: $pic_mode" >&2;} + ;; +esac +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries with PIC" >&5 +printf %s "checking whether to build shared libraries with PIC... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_with_pic" >&5 +printf "%s\n" "$xc_lt_build_shared_with_pic" >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries with PIC" >&5 +printf %s "checking whether to build static libraries with PIC... " >&6; } +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_with_pic" >&5 +printf "%s\n" "$xc_lt_build_static_with_pic" >&6; } + +# +# Verify if libtool shared libraries will be built while static not built +# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build shared libraries only" >&5 +printf %s "checking whether to build shared libraries only... " >&6; } +if test "$xc_lt_build_shared" = 'yes' && + test "$xc_lt_build_static" = 'no'; then + xc_lt_build_shared_only='yes' +else + xc_lt_build_shared_only='no' +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_shared_only" >&5 +printf "%s\n" "$xc_lt_build_shared_only" >&6; } + +# +# Verify if libtool static libraries will be built while shared not built +# + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build static libraries only" >&5 +printf %s "checking whether to build static libraries only... " >&6; } +if test "$xc_lt_build_static" = 'yes' && + test "$xc_lt_build_shared" = 'no'; then + xc_lt_build_static_only='yes' +else + xc_lt_build_static_only='no' +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $xc_lt_build_static_only" >&5 +printf "%s\n" "$xc_lt_build_static_only" >&6; } + + + + + +# +# Automake conditionals based on libtool related checks +# + + if test "x$xc_lt_shlib_use_version_info" = 'xyes'; then + CARES_LT_SHLIB_USE_VERSION_INFO_TRUE= + CARES_LT_SHLIB_USE_VERSION_INFO_FALSE='#' +else + CARES_LT_SHLIB_USE_VERSION_INFO_TRUE='#' + CARES_LT_SHLIB_USE_VERSION_INFO_FALSE= +fi + + if test "x$xc_lt_shlib_use_no_undefined" = 'xyes'; then + CARES_LT_SHLIB_USE_NO_UNDEFINED_TRUE= + CARES_LT_SHLIB_USE_NO_UNDEFINED_FALSE='#' +else + CARES_LT_SHLIB_USE_NO_UNDEFINED_TRUE='#' + CARES_LT_SHLIB_USE_NO_UNDEFINED_FALSE= +fi + + if test "x$xc_lt_shlib_use_mimpure_text" = 'xyes'; then + CARES_LT_SHLIB_USE_MIMPURE_TEXT_TRUE= + CARES_LT_SHLIB_USE_MIMPURE_TEXT_FALSE='#' +else + CARES_LT_SHLIB_USE_MIMPURE_TEXT_TRUE='#' + CARES_LT_SHLIB_USE_MIMPURE_TEXT_FALSE= +fi + + +# +# Due to libtool and automake machinery limitations of not allowing +# specifying separate CPPFLAGS or CFLAGS when compiling objects for +# inclusion of these in shared or static libraries, we are forced to +# build using separate configure runs for shared and static libraries +# on systems where different CPPFLAGS or CFLAGS are mandatory in order +# to compile objects for each kind of library. Notice that relying on +# the '-DPIC' CFLAG that libtool provides is not valid given that the +# user might for example choose to build static libraries with PIC. +# + +# +# Make our Makefile.am files use the staticlib CPPFLAG only when strictly +# targeting a static library and not building its shared counterpart. +# + + if test "x$xc_lt_build_static_only" = 'xyes'; then + USE_CPPFLAG_CARES_STATICLIB_TRUE= + USE_CPPFLAG_CARES_STATICLIB_FALSE='#' +else + USE_CPPFLAG_CARES_STATICLIB_TRUE='#' + USE_CPPFLAG_CARES_STATICLIB_FALSE= +fi + + +# +# Make staticlib CPPFLAG variable and its definition visible in output +# files unconditionally, providing an empty definition unless strictly +# targeting a static library and not building its shared counterpart. +# + +CPPFLAG_CARES_STATICLIB= +if test "x$xc_lt_build_static_only" = 'xyes'; then + CPPFLAG_CARES_STATICLIB='-DCARES_STATICLIB' +fi + + + + + # + compiler_id="unknown" + compiler_num="0" + # + flags_dbg_all="unknown" + flags_dbg_yes="unknown" + flags_dbg_off="unknown" + flags_opt_all="unknown" + flags_opt_yes="unknown" + flags_opt_off="unknown" + # + flags_prefer_cppflags="no" + # + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is DEC/Compaq/HP C" >&5 +printf %s "checking if compiler is DEC/Compaq/HP C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __DECC +CURL_DEF_TOKEN __DECC +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___DECC=no + + else + curl_cv_have_def___DECC=yes + curl_cv_def___DECC=$tmp_exp + + fi + + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __DECC_VER +CURL_DEF_TOKEN __DECC_VER +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__DECC_VER"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___DECC_VER=no + + else + curl_cv_have_def___DECC_VER=yes + curl_cv_def___DECC_VER=$tmp_exp + + fi + + if test "$curl_cv_have_def___DECC" = "yes" && + test "$curl_cv_have_def___DECC_VER" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="DEC_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g2" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -O4" + flags_opt_yes="-O1" + flags_opt_off="-O0" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is HP-UX C" >&5 +printf %s "checking if compiler is HP-UX C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __HP_cc +CURL_DEF_TOKEN __HP_cc +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__HP_cc"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___HP_cc=no + + else + curl_cv_have_def___HP_cc=yes + curl_cv_def___HP_cc=$tmp_exp + + fi + + if test "$curl_cv_have_def___HP_cc" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="HP_UX_C" + flags_dbg_all="-g -s" + flags_dbg_yes="-g" + flags_dbg_off="-s" + flags_opt_all="-O +O0 +O1 +O2 +O3 +O4" + flags_opt_yes="+O2" + flags_opt_off="+O0" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is IBM C" >&5 +printf %s "checking if compiler is IBM C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __IBMC__ +CURL_DEF_TOKEN __IBMC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__IBMC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___IBMC__=no + + else + curl_cv_have_def___IBMC__=yes + curl_cv_def___IBMC__=$tmp_exp + + fi + + if test "$curl_cv_have_def___IBMC__" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="IBM_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5" + flags_opt_all="$flags_opt_all -qnooptimize" + flags_opt_all="$flags_opt_all -qoptimize=0" + flags_opt_all="$flags_opt_all -qoptimize=1" + flags_opt_all="$flags_opt_all -qoptimize=2" + flags_opt_all="$flags_opt_all -qoptimize=3" + flags_opt_all="$flags_opt_all -qoptimize=4" + flags_opt_all="$flags_opt_all -qoptimize=5" + flags_opt_yes="-O2" + flags_opt_off="-qnooptimize" + flags_prefer_cppflags="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Intel C" >&5 +printf %s "checking if compiler is Intel C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __INTEL_COMPILER +CURL_DEF_TOKEN __INTEL_COMPILER +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__INTEL_COMPILER"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___INTEL_COMPILER=no + + else + curl_cv_have_def___INTEL_COMPILER=yes + curl_cv_def___INTEL_COMPILER=$tmp_exp + + fi + + if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_num="$curl_cv_def___INTEL_COMPILER" + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __unix__ +CURL_DEF_TOKEN __unix__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = ""; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___unix__=no + + else + curl_cv_have_def___unix__=yes + curl_cv_def___unix__=$tmp_exp + + fi + + if test "$curl_cv_have_def___unix__" = "yes"; then + compiler_id="INTEL_UNIX_C" + flags_dbg_all="-g -g0" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + compiler_id="INTEL_WINDOWS_C" + flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7 /Oy /Oy-" + flags_dbg_all="$flags_dbg_all /debug" + flags_dbg_all="$flags_dbg_all /debug:none" + flags_dbg_all="$flags_dbg_all /debug:minimal" + flags_dbg_all="$flags_dbg_all /debug:partial" + flags_dbg_all="$flags_dbg_all /debug:full" + flags_dbg_all="$flags_dbg_all /debug:semantic_stepping" + flags_dbg_all="$flags_dbg_all /debug:extended" + flags_dbg_yes="/Zi /Oy-" + flags_dbg_off="/debug:none /Oy-" + flags_opt_all="/O /O0 /O1 /O2 /O3 /Od /Og /Og- /Oi /Oi-" + flags_opt_yes="/O2" + flags_opt_off="/Od" + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is clang" >&5 +printf %s "checking if compiler is clang... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __clang__ +CURL_DEF_TOKEN __clang__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__clang__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___clang__=no + + else + curl_cv_have_def___clang__=yes + curl_cv_def___clang__=$tmp_exp + + fi + + if test "$curl_cv_have_def___clang__" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="CLANG" + clangver=`$CC -dumpversion` + clangvhi=`echo $clangver | cut -d . -f1` + clangvlo=`echo $clangver | cut -d . -f2` + compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null` + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_all="$flags_dbg_all -ggdb" + flags_dbg_all="$flags_dbg_all -gstabs" + flags_dbg_all="$flags_dbg_all -gstabs+" + flags_dbg_all="$flags_dbg_all -gcoff" + flags_dbg_all="$flags_dbg_all -gxcoff" + flags_dbg_all="$flags_dbg_all -gdwarf-2" + flags_dbg_all="$flags_dbg_all -gvms" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4" + flags_opt_yes="-Os" + flags_opt_off="-O0" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is GNU C" >&5 +printf %s "checking if compiler is GNU C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __GNUC__ +CURL_DEF_TOKEN __GNUC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___GNUC__=no + + else + curl_cv_have_def___GNUC__=yes + curl_cv_def___GNUC__=$tmp_exp + + fi + + if test "$curl_cv_have_def___GNUC__" = "yes" && + test "$compiler_id" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="GNU_C" + gccver=`$CC -dumpversion` + gccvhi=`echo $gccver | cut -d . -f1` + gccvlo=`echo $gccver | cut -d . -f2` + compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null` + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_all="$flags_dbg_all -ggdb" + flags_dbg_all="$flags_dbg_all -gstabs" + flags_dbg_all="$flags_dbg_all -gstabs+" + flags_dbg_all="$flags_dbg_all -gcoff" + flags_dbg_all="$flags_dbg_all -gxcoff" + flags_dbg_all="$flags_dbg_all -gdwarf-2" + flags_dbg_all="$flags_dbg_all -gvms" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" + flags_opt_yes="-O2" + flags_opt_off="-O0" + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef _WIN32 +CURL_DEF_TOKEN _WIN32 +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "_WIN32"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def__WIN32=no + + else + curl_cv_have_def__WIN32=yes + curl_cv_def__WIN32=$tmp_exp + + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is LCC" >&5 +printf %s "checking if compiler is LCC... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __LCC__ +CURL_DEF_TOKEN __LCC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__LCC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___LCC__=no + + else + curl_cv_have_def___LCC__=yes + curl_cv_def___LCC__=$tmp_exp + + fi + + if test "$curl_cv_have_def___LCC__" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="LCC" + flags_dbg_all="-g" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPSpro C" >&5 +printf %s "checking if compiler is SGI MIPSpro C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __GNUC__ +CURL_DEF_TOKEN __GNUC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___GNUC__=no + + else + curl_cv_have_def___GNUC__=yes + curl_cv_def___GNUC__=$tmp_exp + + fi + + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef _COMPILER_VERSION +CURL_DEF_TOKEN _COMPILER_VERSION +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "_COMPILER_VERSION"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def__COMPILER_VERSION=no + + else + curl_cv_have_def__COMPILER_VERSION=yes + curl_cv_def__COMPILER_VERSION=$tmp_exp + + fi + + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef _SGI_COMPILER_VERSION +CURL_DEF_TOKEN _SGI_COMPILER_VERSION +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "_SGI_COMPILER_VERSION"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def__SGI_COMPILER_VERSION=no + + else + curl_cv_have_def__SGI_COMPILER_VERSION=yes + curl_cv_def__SGI_COMPILER_VERSION=$tmp_exp + + fi + + if test "$curl_cv_have_def___GNUC__" = "no" && + (test "$curl_cv_have_def__SGI_COMPILER_VERSION" = "yes" || + test "$curl_cv_have_def__COMPILER_VERSION" = "yes"); then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="SGI_MIPSPRO_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SGI MIPS C" >&5 +printf %s "checking if compiler is SGI MIPS C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __GNUC__ +CURL_DEF_TOKEN __GNUC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__GNUC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___GNUC__=no + + else + curl_cv_have_def___GNUC__=yes + curl_cv_def___GNUC__=$tmp_exp + + fi + + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __sgi +CURL_DEF_TOKEN __sgi +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__sgi"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___sgi=no + + else + curl_cv_have_def___sgi=yes + curl_cv_def___sgi=$tmp_exp + + fi + + if test "$curl_cv_have_def___GNUC__" = "no" && + test "$curl_cv_have_def___sgi" = "yes" && + test "$compiler_id" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="SGI_MIPS_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is SunPro C" >&5 +printf %s "checking if compiler is SunPro C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __SUNPRO_C +CURL_DEF_TOKEN __SUNPRO_C +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__SUNPRO_C"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___SUNPRO_C=no + + else + curl_cv_have_def___SUNPRO_C=yes + curl_cv_def___SUNPRO_C=$tmp_exp + + fi + + if test "$curl_cv_have_def___SUNPRO_C" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="SUNPRO_C" + flags_dbg_all="-g -s" + flags_dbg_yes="-g" + flags_dbg_off="-s" + flags_opt_all="-O -xO -xO1 -xO2 -xO3 -xO4 -xO5" + flags_opt_yes="-xO2" + flags_opt_off="" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Tiny C" >&5 +printf %s "checking if compiler is Tiny C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __TINYC__ +CURL_DEF_TOKEN __TINYC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__TINYC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___TINYC__=no + + else + curl_cv_have_def___TINYC__=yes + curl_cv_def___TINYC__=$tmp_exp + + fi + + if test "$curl_cv_have_def___TINYC__" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + compiler_id="TINY_C" + flags_dbg_all="-g -b" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler is Watcom C" >&5 +printf %s "checking if compiler is Watcom C... " >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __WATCOMC__ +CURL_DEF_TOKEN __WATCOMC__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__WATCOMC__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___WATCOMC__=no + + else + curl_cv_have_def___WATCOMC__=yes + curl_cv_def___WATCOMC__=$tmp_exp + + fi + + if test "$curl_cv_have_def___WATCOMC__" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + + if test -z "$SED"; then + as_fn_error $? "SED not set. Cannot continue without SED being set." "$LINENO" 5 + fi + if test -z "$GREP"; then + as_fn_error $? "GREP not set. Cannot continue without GREP being set." "$LINENO" 5 + fi + + tmp_exp="" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef __UNIX__ +CURL_DEF_TOKEN __UNIX__ +#endif + + +_ACEOF +if ac_fn_c_try_cpp "$LINENO" +then : + + tmp_exp=`eval "$ac_cpp conftest.$ac_ext" 2>/dev/null | \ + "$GREP" CURL_DEF_TOKEN 2>/dev/null | \ + "$SED" 's/.*CURL_DEF_TOKEN[ ][ ]*//' 2>/dev/null | \ + "$SED" 's/["][ ]*["]//g' 2>/dev/null` + if test -z "$tmp_exp" || test "$tmp_exp" = "__UNIX__"; then + tmp_exp="" + fi + +fi +rm -f conftest.err conftest.i conftest.$ac_ext + if test -z "$tmp_exp"; then + curl_cv_have_def___UNIX__=no + + else + curl_cv_have_def___UNIX__=yes + curl_cv_def___UNIX__=$tmp_exp + + fi + + if test "$curl_cv_have_def___UNIX__" = "yes"; then + compiler_id="WATCOM_UNIX_C" + flags_dbg_all="-g1 -g1+ -g2 -g3" + flags_dbg_yes="-g2" + flags_dbg_off="" + flags_opt_all="-O0 -O1 -O2 -O3" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + compiler_id="WATCOM_WINDOWS_C" + flags_dbg_all="" + flags_dbg_yes="" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + # + if test "$compiler_id" = "unknown"; then + cat <<_EOF 1>&2 +*** +*** Warning: This configure script does not have information about the +*** compiler you are using, relative to the flags required to enable or +*** disable generation of debug info, optimization options or warnings. +*** +*** Whatever settings are present in CFLAGS will be used for this run. +*** +*** If you wish to help the c-ares project to better support your compiler +*** you can report this and the required info on the c-ares development +*** mailing list: http://lists.haxx.se/listinfo/c-ares/ +*** +_EOF + fi + + +squeeze() { + _sqz_result="" + eval _sqz_input=\$$1 + for _sqz_token in $_sqz_input; do + if test -z "$_sqz_result"; then + _sqz_result="$_sqz_token" + else + _sqz_result="$_sqz_result $_sqz_token" + fi + done + eval $1=\$_sqz_result + return 0 +} + + + # + if test "$compiler_id" != "unknown"; then + # + if test "$compiler_id" = "GNU_C" || + test "$compiler_id" = "CLANG"; then + + if test "$compiler_id" = "GNU_C" || + test "$compiler_id" = "CLANG"; then + tmp_has_include="no" + tmp_chg_FLAGS="$CFLAGS" + for word1 in $tmp_chg_FLAGS; do + case "$word1" in + -I*) + tmp_has_include="yes" + ;; + esac + done + if test "$tmp_has_include" = "yes"; then + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` + CFLAGS="$tmp_chg_FLAGS" + squeeze CFLAGS + fi + tmp_has_include="no" + tmp_chg_FLAGS="$CPPFLAGS" + for word1 in $tmp_chg_FLAGS; do + case "$word1" in + -I*) + tmp_has_include="yes" + ;; + esac + done + if test "$tmp_has_include" = "yes"; then + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` + CPPFLAGS="$tmp_chg_FLAGS" + squeeze CPPFLAGS + fi + fi + + fi + # + tmp_save_CPPFLAGS="$CPPFLAGS" + tmp_save_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="" + tmp_CFLAGS="" + # + case "$compiler_id" in + # + CLANG) + # + tmp_CFLAGS="$tmp_CFLAGS -Qunused-arguments" + ;; + # + DEC_C) + # + tmp_CFLAGS="$tmp_CFLAGS -std1" + tmp_CFLAGS="$tmp_CFLAGS -noansi_alias" + tmp_CFLAGS="$tmp_CFLAGS -warnprotos" + tmp_CFLAGS="$tmp_CFLAGS -msg_fatal toofewargs,toomanyargs" + ;; + # + GNU_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + HP_UX_C) + # + tmp_CFLAGS="$tmp_CFLAGS -z" + tmp_CFLAGS="$tmp_CFLAGS +W 4227,4255" + ;; + # + IBM_C) + # + tmp_CPPFLAGS="$tmp_CPPFLAGS -qthreaded" + tmp_CPPFLAGS="$tmp_CPPFLAGS -qnoansialias" + tmp_CPPFLAGS="$tmp_CPPFLAGS -qhalt=e" + ;; + # + INTEL_UNIX_C) + # + tmp_CFLAGS="$tmp_CFLAGS -std=gnu89" + tmp_CPPFLAGS="$tmp_CPPFLAGS -we 140,147,165,266" + tmp_CPPFLAGS="$tmp_CPPFLAGS -wd 279,981,1469" + ;; + # + INTEL_WINDOWS_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + LCC) + # + tmp_CFLAGS="$tmp_CFLAGS -n" + ;; + # + SGI_MIPS_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + SGI_MIPSPRO_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + SUNPRO_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + TINY_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + WATCOM_UNIX_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + WATCOM_WINDOWS_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + esac + # + squeeze tmp_CPPFLAGS + squeeze tmp_CFLAGS + # + if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts some basic options" >&5 +printf %s "checking if compiler accepts some basic options... " >&6; } + CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CPPFLAGS + squeeze CFLAGS + + tmp_compiler_works="unknown" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/cc-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tmp_compiler_works" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/link-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + if test "x$cross_compiling" != "xyes" && + test "$tmp_compiler_works" = "yes"; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# ifdef __STDC__ +# include +# endif + +int +main (void) +{ + + int i = 0; + exit(i); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + echo "run-fail: test program exited with status $ac_status" >&6 + echo " " >&6 + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test "$tmp_compiler_works" = "yes"; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 +printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} + + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 +printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + + fi + + fi + # + fi + + + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CFLAGS="$CFLAGS" + tmp_save_CPPFLAGS="$CPPFLAGS" + # + tmp_options="" + tmp_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="$CPPFLAGS" + + ac_var_stripped="" + for word1 in $tmp_CFLAGS; do + ac_var_strip_word="no" + for word2 in $flags_dbg_all; do + if test "$word1" = "$word2"; then + ac_var_strip_word="yes" + fi + done + if test "$ac_var_strip_word" = "no"; then + ac_var_stripped="$ac_var_stripped $word1" + fi + done + tmp_CFLAGS="$ac_var_stripped" + squeeze tmp_CFLAGS + + + ac_var_stripped="" + for word1 in $tmp_CPPFLAGS; do + ac_var_strip_word="no" + for word2 in $flags_dbg_all; do + if test "$word1" = "$word2"; then + ac_var_strip_word="yes" + fi + done + if test "$ac_var_strip_word" = "no"; then + ac_var_stripped="$ac_var_stripped $word1" + fi + done + tmp_CPPFLAGS="$ac_var_stripped" + squeeze tmp_CPPFLAGS + + # + if test "$want_debug" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug enabling options" >&5 +printf %s "checking if compiler accepts debug enabling options... " >&6; } + tmp_options="$flags_dbg_yes" + fi + if test "$want_debug" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts debug disabling options" >&5 +printf %s "checking if compiler accepts debug disabling options... " >&6; } + tmp_options="$flags_dbg_off" + fi + # + if test "$flags_prefer_cppflags" = "yes"; then + CPPFLAGS="$tmp_CPPFLAGS $tmp_options" + CFLAGS="$tmp_CFLAGS" + else + CPPFLAGS="$tmp_CPPFLAGS" + CFLAGS="$tmp_CFLAGS $tmp_options" + fi + squeeze CPPFLAGS + squeeze CFLAGS + + tmp_compiler_works="unknown" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/cc-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tmp_compiler_works" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/link-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + if test "x$cross_compiling" != "xyes" && + test "$tmp_compiler_works" = "yes"; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# ifdef __STDC__ +# include +# endif + +int +main (void) +{ + + int i = 0; + exit(i); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + echo "run-fail: test program exited with status $ac_status" >&6 + echo " " >&6 + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test "$tmp_compiler_works" = "yes"; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 +printf "%s\n" "$as_me: compiler options added: $tmp_options" >&6;} + + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 +printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + + fi + + # + fi + + + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CFLAGS="$CFLAGS" + tmp_save_CPPFLAGS="$CPPFLAGS" + # + tmp_options="" + tmp_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="$CPPFLAGS" + honor_optimize_option="yes" + # + # + if test "$want_optimize" = "assume_no" || + test "$want_optimize" = "assume_yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler optimizer assumed setting might be used" >&5 +printf %s "checking if compiler optimizer assumed setting might be used... " >&6; } + + + ac_var_match_word="no" + for word1 in $tmp_CFLAGS; do + for word2 in $flags_opt_all; do + if test "$word1" = "$word2"; then + ac_var_match_word="yes" + fi + done + done + + if test "$ac_var_match_word" = "yes"; then + + honor_optimize_option="no" + + + fi + + + + ac_var_match_word="no" + for word1 in $tmp_CPPFLAGS; do + for word2 in $flags_opt_all; do + if test "$word1" = "$word2"; then + ac_var_match_word="yes" + fi + done + done + + if test "$ac_var_match_word" = "yes"; then + + honor_optimize_option="no" + + + fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $honor_optimize_option" >&5 +printf "%s\n" "$honor_optimize_option" >&6; } + if test "$honor_optimize_option" = "yes"; then + if test "$want_optimize" = "assume_yes"; then + want_optimize="yes" + fi + if test "$want_optimize" = "assume_no"; then + want_optimize="no" + fi + fi + fi + # + if test "$honor_optimize_option" = "yes"; then + + ac_var_stripped="" + for word1 in $tmp_CFLAGS; do + ac_var_strip_word="no" + for word2 in $flags_opt_all; do + if test "$word1" = "$word2"; then + ac_var_strip_word="yes" + fi + done + if test "$ac_var_strip_word" = "no"; then + ac_var_stripped="$ac_var_stripped $word1" + fi + done + tmp_CFLAGS="$ac_var_stripped" + squeeze tmp_CFLAGS + + + ac_var_stripped="" + for word1 in $tmp_CPPFLAGS; do + ac_var_strip_word="no" + for word2 in $flags_opt_all; do + if test "$word1" = "$word2"; then + ac_var_strip_word="yes" + fi + done + if test "$ac_var_strip_word" = "no"; then + ac_var_stripped="$ac_var_stripped $word1" + fi + done + tmp_CPPFLAGS="$ac_var_stripped" + squeeze tmp_CPPFLAGS + + if test "$want_optimize" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer enabling options" >&5 +printf %s "checking if compiler accepts optimizer enabling options... " >&6; } + tmp_options="$flags_opt_yes" + fi + if test "$want_optimize" = "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts optimizer disabling options" >&5 +printf %s "checking if compiler accepts optimizer disabling options... " >&6; } + tmp_options="$flags_opt_off" + fi + if test "$flags_prefer_cppflags" = "yes"; then + CPPFLAGS="$tmp_CPPFLAGS $tmp_options" + CFLAGS="$tmp_CFLAGS" + else + CPPFLAGS="$tmp_CPPFLAGS" + CFLAGS="$tmp_CFLAGS $tmp_options" + fi + squeeze CPPFLAGS + squeeze CFLAGS + + tmp_compiler_works="unknown" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/cc-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tmp_compiler_works" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/link-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + if test "x$cross_compiling" != "xyes" && + test "$tmp_compiler_works" = "yes"; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# ifdef __STDC__ +# include +# endif + +int +main (void) +{ + + int i = 0; + exit(i); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + echo "run-fail: test program exited with status $ac_status" >&6 + echo " " >&6 + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test "$tmp_compiler_works" = "yes"; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_options" >&5 +printf "%s\n" "$as_me: compiler options added: $tmp_options" >&6;} + + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_options" >&5 +printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_options" >&2;} + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + + fi + + fi + # + fi + + + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CPPFLAGS="$CPPFLAGS" + tmp_save_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="" + tmp_CFLAGS="" + # + case "$compiler_id" in + # + CLANG) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -pedantic" + tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" + tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" + tmp_CFLAGS="$tmp_CFLAGS -Wshadow" + tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" + tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" + tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" + tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" + tmp_CFLAGS="$tmp_CFLAGS -Wundef" + tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" + tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" + tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" + tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" + tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" + tmp_CFLAGS="$tmp_CFLAGS -Wshorten-64-to-32" + # + if test "$compiler_num" -ge "101"; then + tmp_CFLAGS="$tmp_CFLAGS -Wunused" + fi + fi + ;; + # + DEC_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -msg_enable level3" + fi + ;; + # + GNU_C) + # + if test "$want_warnings" = "yes"; then + # + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -pedantic" + fi + # + tmp_CFLAGS="$tmp_CFLAGS -Wall -W" + # + if test "$compiler_num" -ge "104"; then + tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wunused -Wshadow" + fi + fi + # + if test "$compiler_num" -ge "207"; then + tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" + fi + fi + # + if test "$compiler_num" -ge "295"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" + fi + # + if test "$compiler_num" -ge "296"; then + tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" + tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" + tmp_CFLAGS="$tmp_CFLAGS -Wundef" + fi + # + if test "$compiler_num" -ge "297"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" + fi + # + if test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS" + fi + # + if test "$compiler_num" -ge "303"; then + tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" + fi + # + if test "$compiler_num" -ge "304"; then + tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" + fi + # + if test "$compiler_num" -ge "400"; then + tmp_CFLAGS="$tmp_CFLAGS -Wstrict-aliasing=3" + fi + # + if test "$compiler_num" -ge "402"; then + tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" + fi + # + if test "$compiler_num" -ge "403"; then + tmp_CFLAGS="$tmp_CFLAGS -Wtype-limits -Wold-style-declaration" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-parameter-type -Wempty-body" + tmp_CFLAGS="$tmp_CFLAGS -Wclobbered -Wignored-qualifiers" + tmp_CFLAGS="$tmp_CFLAGS -Wconversion -Wno-sign-conversion -Wvla" + fi + # + if test "$compiler_num" -ge "405"; then + if test "$curl_cv_have_def__WIN32" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format" + fi + fi + # + fi + # + if test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" + else + if test "x$cross_compiling" = "xyes"; then + if test "$compiler_num" -ge "104"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow" + fi + if test "$compiler_num" -ge "207"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes" + fi + fi + fi + ;; + # + HP_UX_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS +w1" + fi + ;; + # + IBM_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + INTEL_UNIX_C) + # + if test "$want_warnings" = "yes"; then + if test "$compiler_num" -gt "600"; then + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wall -w2" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcheck" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcomment" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wdeprecated" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wmissing-prototypes" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wp64" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wpointer-arith" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wreturn-type" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wshadow" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wuninitialized" + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wunused-function" + fi + fi + tmp_CFLAGS="$tmp_CFLAGS -fno-omit-frame-pointer" + tmp_CFLAGS="$tmp_CFLAGS -fno-strict-aliasing" + tmp_CFLAGS="$tmp_CFLAGS -fp-model precise" + if test "$compiler_num" -ge "1000"; then + tmp_CFLAGS="$tmp_CFLAGS -vec-report0" + fi + ;; + # + INTEL_WINDOWS_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + LCC) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS" + fi + ;; + # + SGI_MIPS_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -fullwarn" + fi + ;; + # + SGI_MIPSPRO_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -fullwarn" + tmp_CFLAGS="$tmp_CFLAGS -woff 1209" + fi + ;; + # + SUNPRO_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -v" + fi + ;; + # + TINY_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -Wall" + tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings" + tmp_CFLAGS="$tmp_CFLAGS -Wunsupported" + fi + ;; + # + WATCOM_UNIX_C) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" + fi + ;; + # + WATCOM_WINDOWS_C) + # + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + esac + # + squeeze tmp_CPPFLAGS + squeeze tmp_CFLAGS + # + if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler accepts strict warning options" >&5 +printf %s "checking if compiler accepts strict warning options... " >&6; } + CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CPPFLAGS + squeeze CFLAGS + + tmp_compiler_works="unknown" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/cc-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tmp_compiler_works" = "yes"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + int i = 1; + return i; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/link-fail: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + if test "x$cross_compiling" != "xyes" && + test "$tmp_compiler_works" = "yes"; then + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# ifdef __STDC__ +# include +# endif + +int +main (void) +{ + + int i = 0; + exit(i); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + tmp_compiler_works="yes" + +else $as_nop + + tmp_compiler_works="no" + echo " " >&6 + echo "run-fail: test program exited with status $ac_status" >&6 + echo " " >&6 + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + if test "$tmp_compiler_works" = "yes"; then + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 +printf "%s\n" "$as_me: compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS" >&6;} + + else + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&5 +printf "%s\n" "$as_me: WARNING: compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS" >&2;} + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + + fi + + fi + # + fi + + +if test "$compiler_id" = "INTEL_UNIX_C"; then + # + if test "$compiler_num" -ge "1000"; then + CFLAGS="$CFLAGS -shared-intel" + elif test "$compiler_num" -ge "900"; then + CFLAGS="$CFLAGS -i-dynamic" + fi + # +fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on compilation errors" >&5 +printf %s "checking if compiler halts on compilation errors... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + force compilation error + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "compiler does not halt on compilation errors." "$LINENO" 5 + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on negative sized arrays" >&5 +printf %s "checking if compiler halts on negative sized arrays... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + typedef char bad_t[sizeof(char) == sizeof(int) ? -1 : -1 ]; + +int +main (void) +{ + + bad_t dummy; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "compiler does not halt on negative sized arrays." "$LINENO" 5 + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler halts on function prototype mismatch" >&5 +printf %s "checking if compiler halts on function prototype mismatch... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# include + int rand(int n); + int rand(int n) + { + if(n) + return ++n; + else + return n; + } + +int +main (void) +{ + + int i[2]; + int j = rand(i[0]); + if(j) + return j; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + as_fn_error $? "compiler does not halt on function prototype mismatch." "$LINENO" 5 + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if compiler supports hiding library internal symbols" >&5 +printf %s "checking if compiler supports hiding library internal symbols... " >&6; } + supports_symbol_hiding="no" + symbol_hiding_CFLAGS="" + symbol_hiding_EXTERN="" + tmp_CFLAGS="" + tmp_EXTERN="" + case "$compiler_id" in + CLANG) + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + ;; + GNU_C) + if test "$compiler_num" -ge "304"; then + if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + fi + fi + ;; + INTEL_UNIX_C) + if test "$compiler_num" -ge "900"; then + if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then + tmp_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +# include + +int +main (void) +{ + + printf("icc fvisibility bug test"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + CFLAGS="$tmp_save_CFLAGS" + fi + fi + ;; + SUNPRO_C) + if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then + tmp_EXTERN="__global" + tmp_CFLAGS="-xldscope=hidden" + supports_symbol_hiding="yes" + fi + ;; + esac + if test "$supports_symbol_hiding" = "yes"; then + tmp_save_CFLAGS="$CFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CFLAGS + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $tmp_EXTERN char *dummy(char *buff); + char *dummy(char *buff) + { + if(buff) + return ++buff; + else + return buff; + } + +int +main (void) +{ + + char b[16]; + char *r = dummy(&b[0]); + if(r) + return (int)*r; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + supports_symbol_hiding="yes" + if test -f conftest.err; then + grep 'visibility' conftest.err >/dev/null + if test "$?" -eq "0"; then + supports_symbol_hiding="no" + fi + fi + +else $as_nop + + supports_symbol_hiding="no" + echo " " >&6 + sed 's/^/cc-src: /' conftest.$ac_ext >&6 + sed 's/^/cc-err: /' conftest.err >&6 + echo " " >&6 + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + CFLAGS="$tmp_save_CFLAGS" + fi + if test "$supports_symbol_hiding" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + symbol_hiding_CFLAGS="$tmp_CFLAGS" + symbol_hiding_EXTERN="$tmp_EXTERN" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 +printf %s "checking for windows.h... " >&6; } +if test ${ac_cv_header_windows_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINDOWS_H shall not be defined. +#else + int dummy=2*WINVER; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_windows_h="yes" + +else $as_nop + + ac_cv_header_windows_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 +printf "%s\n" "$ac_cv_header_windows_h" >&6; } + case "$ac_cv_header_windows_h" in + yes) + +printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h + + +printf "%s\n" "#define WIN32_LEAN_AND_MEAN 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether build target is a native Windows one" >&5 +printf %s "checking whether build target is a native Windows one... " >&6; } +if test ${ac_cv_native_windows+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + if test "$ac_cv_header_windows_h" = "no"; then + ac_cv_native_windows="no" + else + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + +#if defined(__MINGW32__) || defined(__MINGW32CE__) || \ + (defined(_MSC_VER) && (defined(_WIN32) || defined(_WIN64))) + int dummy=1; +#else + Not a native Windows build target. +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_native_windows="yes" + +else $as_nop + + ac_cv_native_windows="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_native_windows" >&5 +printf "%s\n" "$ac_cv_native_windows" >&6; } + if test "x$ac_cv_native_windows" = xyes; then + DOING_NATIVE_WINDOWS_TRUE= + DOING_NATIVE_WINDOWS_FALSE='#' +else + DOING_NATIVE_WINDOWS_TRUE='#' + DOING_NATIVE_WINDOWS_FALSE= +fi + + +case X-"$ac_cv_native_windows" in + X-yes) + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 +printf %s "checking for winsock.h... " >&6; } +if test ${ac_cv_header_winsock_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINSOCK_H shall not be defined. +#else + int dummy=WSACleanup(); +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_winsock_h="yes" + +else $as_nop + + ac_cv_header_winsock_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 +printf "%s\n" "$ac_cv_header_winsock_h" >&6; } + case "$ac_cv_header_winsock_h" in + yes) + +printf "%s\n" "#define HAVE_WINSOCK_H 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 +printf %s "checking for winsock2.h... " >&6; } +if test ${ac_cv_header_winsock2_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WINSOCK2_H shall not be defined. +#else + int dummy=2*IPPROTO_ESP; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_winsock2_h="yes" + +else $as_nop + + ac_cv_header_winsock2_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 +printf "%s\n" "$ac_cv_header_winsock2_h" >&6; } + case "$ac_cv_header_winsock2_h" in + yes) + +printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 +printf %s "checking for ws2tcpip.h... " >&6; } +if test ${ac_cv_header_ws2tcpip_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WS2TCPIP_H shall not be defined. +#else + int dummy=2*IP_PKTINFO; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_ws2tcpip_h="yes" + +else $as_nop + + ac_cv_header_ws2tcpip_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 +printf "%s\n" "$ac_cv_header_ws2tcpip_h" >&6; } + case "$ac_cv_header_ws2tcpip_h" in + yes) + +printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h + + ;; + esac + + CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0600" + ;; + *) + ac_cv_header_winsock_h="no" + ac_cv_header_winsock2_h="no" + ac_cv_header_ws2tcpip_h="no" + ;; +esac + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if X/Open network library is required" >&5 +printf %s "checking if X/Open network library is required... " >&6; } + tst_lib_xnet_required="no" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +int main (void) +{ +#if defined(__hpux) && defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 600) + return 0; +#elif defined(__hpux) && defined(_XOPEN_SOURCE_EXTENDED) + return 0; +#else + force compilation error +#endif +} + + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tst_lib_xnet_required="yes" + LIBS="$LIBS -lxnet" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_lib_xnet_required" >&5 +printf "%s\n" "$tst_lib_xnet_required" >&6; } + + +ac_fn_c_check_func "$LINENO" "gethostbyname" "ac_cv_func_gethostbyname" +if test "x$ac_cv_func_gethostbyname" = xyes +then : + HAVE_GETHOSTBYNAME="1" + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnsl" >&5 +printf %s "checking for gethostbyname in -lnsl... " >&6; } +if test ${ac_cv_lib_nsl_gethostbyname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main (void) +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_nsl_gethostbyname=yes +else $as_nop + ac_cv_lib_nsl_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_nsl_gethostbyname" >&5 +printf "%s\n" "$ac_cv_lib_nsl_gethostbyname" >&6; } +if test "x$ac_cv_lib_nsl_gethostbyname" = xyes +then : + HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lnsl" + +fi + + +fi + + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lsocket" >&5 +printf %s "checking for gethostbyname in -lsocket... " >&6; } +if test ${ac_cv_lib_socket_gethostbyname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lsocket $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main (void) +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_socket_gethostbyname=yes +else $as_nop + ac_cv_lib_socket_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_socket_gethostbyname" >&5 +printf "%s\n" "$ac_cv_lib_socket_gethostbyname" >&6; } +if test "x$ac_cv_lib_socket_gethostbyname" = xyes +then : + HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lsocket" + +fi + +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname with both nsl and socket libs" >&5 +printf %s "checking for gethostbyname with both nsl and socket libs... " >&6; } + my_ac_save_LIBS=$LIBS + LIBS="-lnsl -lsocket $LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + gethostbyname(); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_GETHOSTBYNAME="1" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + LIBS=$my_ac_save_LIBS + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + if test "$ac_cv_header_windows_h" = "yes"; then + if test "$ac_cv_header_winsock_h" = "yes"; then + case $host in + *-*-mingw32ce*) + winsock_LIB="-lwinsock" + ;; + *) + winsock_LIB="-lwsock32" + ;; + esac + fi + if test "$ac_cv_header_winsock2_h" = "yes"; then + winsock_LIB="-lws2_32" + fi + if test ! -z "$winsock_LIB"; then + my_ac_save_LIBS=$LIBS + LIBS="$winsock_LIB $LIBS" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in $winsock_LIB" >&5 +printf %s "checking for gethostbyname in $winsock_LIB... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#endif + +int +main (void) +{ + + gethostbyname("www.dummysite.com"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_GETHOSTBYNAME="1" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + winsock_LIB="" + LIBS=$my_ac_save_LIBS + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + fi +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for Minix 3" >&5 +printf %s "checking for gethostbyname for Minix 3... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +/* Older Minix versions may need here instead */ +#include + +int +main (void) +{ + + gethostbyname("www.dummysite.com"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_GETHOSTBYNAME="1" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname for eCos" >&5 +printf %s "checking for gethostbyname for eCos... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#include + +int +main (void) +{ + + gethostbyname("www.dummysite.com"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + HAVE_GETHOSTBYNAME="1" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostbyname in -lnet" >&5 +printf %s "checking for gethostbyname in -lnet... " >&6; } +if test ${ac_cv_lib_net_gethostbyname+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lnet $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char gethostbyname (); +int +main (void) +{ +return gethostbyname (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_net_gethostbyname=yes +else $as_nop + ac_cv_lib_net_gethostbyname=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_net_gethostbyname" >&5 +printf "%s\n" "$ac_cv_lib_net_gethostbyname" >&6; } +if test "x$ac_cv_lib_net_gethostbyname" = xyes +then : + HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lnet" + +fi + +fi + + +if test "$HAVE_GETHOSTBYNAME" != "1"; then + as_fn_error $? "couldn't find libraries for gethostbyname()" "$LINENO" 5 +fi + +if test "x$host_vendor" = "xapple" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_servicename" >&5 +printf %s "checking for library containing res_servicename... " >&6; } +if test ${ac_cv_search_res_servicename+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char res_servicename (); +int +main (void) +{ +return res_servicename (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_res_servicename=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_res_servicename+y} +then : + break +fi +done +if test ${ac_cv_search_res_servicename+y} +then : + +else $as_nop + ac_cv_search_res_servicename=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_servicename" >&5 +printf "%s\n" "$ac_cv_search_res_servicename" >&6; } +ac_res=$ac_cv_search_res_servicename +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + +printf "%s\n" "#define CARES_USE_LIBRESOLV 1" >>confdefs.h + + +else $as_nop + + as_fn_error $? "Unable to find libresolv which is required for iPhone targets" "$LINENO" 5 + +fi + + +fi + +if test "x$host_vendor" = "xibm" -a "x$host_os" = "xopenedition" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for library containing res_init" >&5 +printf %s "checking for library containing res_init... " >&6; } +if test ${ac_cv_search_res_init+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_func_search_save_LIBS=$LIBS +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char res_init (); +int +main (void) +{ +return res_init (); + ; + return 0; +} +_ACEOF +for ac_lib in '' resolv +do + if test -z "$ac_lib"; then + ac_res="none required" + else + ac_res=-l$ac_lib + LIBS="-l$ac_lib $ac_func_search_save_LIBS" + fi + if ac_fn_c_try_link "$LINENO" +then : + ac_cv_search_res_init=$ac_res +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext + if test ${ac_cv_search_res_init+y} +then : + break +fi +done +if test ${ac_cv_search_res_init+y} +then : + +else $as_nop + ac_cv_search_res_init=no +fi +rm conftest.$ac_ext +LIBS=$ac_func_search_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_search_res_init" >&5 +printf "%s\n" "$ac_cv_search_res_init" >&6; } +ac_res=$ac_cv_search_res_init +if test "$ac_res" != no +then : + test "$ac_res" = "none required" || LIBS="$ac_res $LIBS" + + +printf "%s\n" "#define CARES_USE_LIBRESOLV 1" >>confdefs.h + + +else $as_nop + + as_fn_error $? "Unable to find libresolv which is required for z/OS" "$LINENO" 5 + +fi + + +fi + +ac_fn_c_check_func "$LINENO" "strcasecmp" "ac_cv_func_strcasecmp" +if test "x$ac_cv_func_strcasecmp" = xyes +then : + +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 +printf %s "checking for strcasecmp in -lresolve... " >&6; } +if test ${ac_cv_lib_resolve_strcasecmp+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolve $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char strcasecmp (); +int +main (void) +{ +return strcasecmp (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_resolve_strcasecmp=yes +else $as_nop + ac_cv_lib_resolve_strcasecmp=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 +printf "%s\n" "$ac_cv_lib_resolve_strcasecmp" >&6; } +if test "x$ac_cv_lib_resolve_strcasecmp" = xyes +then : + printf "%s\n" "#define HAVE_LIBRESOLVE 1" >>confdefs.h + + LIBS="-lresolve $LIBS" + +fi + +fi + + +if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for strcasecmp in -lresolve" >&5 +printf %s "checking for strcasecmp in -lresolve... " >&6; } +if test ${ac_cv_lib_resolve_strcasecmp+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_check_lib_save_LIBS=$LIBS +LIBS="-lresolve -lnsl $LIBS" +cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +char strcasecmp (); +int +main (void) +{ +return strcasecmp (); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + ac_cv_lib_resolve_strcasecmp=yes +else $as_nop + ac_cv_lib_resolve_strcasecmp=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext +LIBS=$ac_check_lib_save_LIBS +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_resolve_strcasecmp" >&5 +printf "%s\n" "$ac_cv_lib_resolve_strcasecmp" >&6; } +if test "x$ac_cv_lib_resolve_strcasecmp" = xyes +then : + LIBS="-lresolve $LIBS" +fi + +fi +ac_cv_func_strcasecmp="no" + +if test "$ac_cv_header_winsock2_h" = "yes"; then + LIBS="$LIBS -liphlpapi" +fi + + +cares_includes_winsock2="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# else +# ifdef HAVE_WINSOCK_H +# include +# endif +# endif +#endif +/* includes end */" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 +printf %s "checking for windows.h... " >&6; } +if test ${ac_cv_header_windows_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINDOWS_H shall not be defined. +#else + int dummy=2*WINVER; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_windows_h="yes" + +else $as_nop + + ac_cv_header_windows_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 +printf "%s\n" "$ac_cv_header_windows_h" >&6; } + case "$ac_cv_header_windows_h" in + yes) + +printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h + + +printf "%s\n" "#define WIN32_LEAN_AND_MEAN 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock.h" >&5 +printf %s "checking for winsock.h... " >&6; } +if test ${ac_cv_header_winsock_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINSOCK_H shall not be defined. +#else + int dummy=WSACleanup(); +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_winsock_h="yes" + +else $as_nop + + ac_cv_header_winsock_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock_h" >&5 +printf "%s\n" "$ac_cv_header_winsock_h" >&6; } + case "$ac_cv_header_winsock_h" in + yes) + +printf "%s\n" "#define HAVE_WINSOCK_H 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 +printf %s "checking for winsock2.h... " >&6; } +if test ${ac_cv_header_winsock2_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WINSOCK2_H shall not be defined. +#else + int dummy=2*IPPROTO_ESP; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_winsock2_h="yes" + +else $as_nop + + ac_cv_header_winsock2_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 +printf "%s\n" "$ac_cv_header_winsock2_h" >&6; } + case "$ac_cv_header_winsock2_h" in + yes) + +printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + + ;; + esac + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for connect in libraries" >&5 +printf %s "checking for connect in libraries... " >&6; } + tst_connect_save_LIBS="$LIBS" + tst_connect_need_LIBS="unknown" + for tst_lib in '' '-lsocket' ; do + if test "$tst_connect_need_LIBS" = "unknown"; then + LIBS="$tst_lib $tst_connect_save_LIBS" + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + #ifndef HAVE_WINDOWS_H + int connect(int, void*, int); + #endif + +int +main (void) +{ + + if(0 != connect(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + tst_connect_need_LIBS="$tst_lib" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + done + LIBS="$tst_connect_save_LIBS" + # + case X-"$tst_connect_need_LIBS" in + X-unknown) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find connect" >&5 +printf "%s\n" "cannot find connect" >&6; } + as_fn_error $? "cannot find connect function in libraries." "$LINENO" 5 + ;; + X-) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_connect_need_LIBS" >&5 +printf "%s\n" "$tst_connect_need_LIBS" >&6; } + LIBS="$tst_connect_need_LIBS $tst_connect_save_LIBS" + ;; + esac + + +if test "x$host_vendor" = "xapple" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for iOS minimum version 10 or later" >&5 +printf %s "checking for iOS minimum version 10 or later... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#include + +int +main (void) +{ + +#if TARGET_OS_IPHONE == 0 || __IPHONE_OS_VERSION_MIN_REQUIRED < 100000 +#error Not iOS 10 or later +#endif +return 0; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ac_cv_ios_10="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi + +if test "x$host_vendor" = "xapple" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for macOS minimum version 10.12 or later" >&5 +printf %s "checking for macOS minimum version 10.12 or later... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include +#include + +int +main (void) +{ + +#ifndef MAC_OS_X_VERSION_10_12 +# define MAC_OS_X_VERSION_10_12 101200 +#endif +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12 +#error Not macOS 10.12 or later +#endif +return 0; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ac_cv_macos_10_12="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi + +if test "x$host_vendor" != "xapple" || test "x$ac_cv_ios_10" = "xyes" || test "x$ac_cv_macos_10_12" = "xyes"; then + + +# Obsolete code to be removed. +if test $ac_cv_header_sys_time_h = yes; then + +printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + +fi +# End of obsolete code. + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" +if test "x$ac_cv_header_time_h" = xyes +then : + printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for monotonic clock_gettime" >&5 +printf %s "checking for monotonic clock_gettime... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + +int +main (void) +{ + + struct timespec ts; + (void)clock_gettime(CLOCK_MONOTONIC, &ts); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ac_cv_func_clock_gettime="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_clock_gettime="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + + + # + if test "$ac_cv_func_clock_gettime" = "yes"; then + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for clock_gettime in libraries" >&5 +printf %s "checking for clock_gettime in libraries... " >&6; } + # + curl_cv_save_LIBS="$LIBS" + curl_cv_gclk_LIBS="unknown" + # + for x_xlibs in '' '-lrt' '-lposix4' ; do + if test "$curl_cv_gclk_LIBS" = "unknown"; then + if test -z "$x_xlibs"; then + LIBS="$curl_cv_save_LIBS" + else + LIBS="$x_xlibs $curl_cv_save_LIBS" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + +int +main (void) +{ + + struct timespec ts; + (void)clock_gettime(CLOCK_MONOTONIC, &ts); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + curl_cv_gclk_LIBS="$x_xlibs" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + done + # + LIBS="$curl_cv_save_LIBS" + # + case X-"$curl_cv_gclk_LIBS" in + X-unknown) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: cannot find clock_gettime" >&5 +printf "%s\n" "cannot find clock_gettime" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 +printf "%s\n" "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} + ac_cv_func_clock_gettime="no" + ;; + X-) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no additional lib required" >&5 +printf "%s\n" "no additional lib required" >&6; } + ac_cv_func_clock_gettime="yes" + ;; + *) + if test -z "$curl_cv_save_LIBS"; then + LIBS="$curl_cv_gclk_LIBS" + else + LIBS="$curl_cv_gclk_LIBS $curl_cv_save_LIBS" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_gclk_LIBS" >&5 +printf "%s\n" "$curl_cv_gclk_LIBS" >&6; } + ac_cv_func_clock_gettime="yes" + ;; + esac + # + if test "x$cross_compiling" != "xyes" && + test "$ac_cv_func_clock_gettime" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if monotonic clock_gettime works" >&5 +printf %s "checking if monotonic clock_gettime works... " >&6; } + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef HAVE_STDLIB_H +#include +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif + +int +main (void) +{ + + struct timespec ts; + if (0 == clock_gettime(CLOCK_MONOTONIC, &ts)) + exit(0); + else + exit(1); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&5 +printf "%s\n" "$as_me: WARNING: HAVE_CLOCK_GETTIME_MONOTONIC will not be defined" >&2;} + ac_cv_func_clock_gettime="no" + LIBS="$curl_cv_save_LIBS" + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + # + case "$ac_cv_func_clock_gettime" in + yes) + +printf "%s\n" "#define HAVE_CLOCK_GETTIME_MONOTONIC 1" >>confdefs.h + + ;; + esac + # + fi + # + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to use libgcc" >&5 +printf %s "checking whether to use libgcc... " >&6; } +# Check whether --enable-libgcc was given. +if test ${enable_libgcc+y} +then : + enableval=$enable_libgcc; case "$enableval" in + yes) + LIBS="$LIBS -lgcc" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ;; + *) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ;; + esac +else $as_nop + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi + + + + + + +STDC_HEADERS + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5 +printf %s "checking for egrep... " >&6; } +if test ${ac_cv_path_EGREP+y} +then : + printf %s "(cached) " >&6 +else $as_nop + if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 + then ac_cv_path_EGREP="$GREP -E" + else + if test -z "$EGREP"; then + ac_path_EGREP_found=false + # Loop through the user's path and test for each of PROGNAME-LIST + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + for ac_prog in egrep + do + for ac_exec_ext in '' $ac_executable_extensions; do + ac_path_EGREP="$as_dir$ac_prog$ac_exec_ext" + as_fn_executable_p "$ac_path_EGREP" || continue +# Check for GNU ac_path_EGREP and select it if it is found. + # Check for GNU $ac_path_EGREP +case `"$ac_path_EGREP" --version 2>&1` in +*GNU*) + ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; +*) + ac_count=0 + printf %s 0123456789 >"conftest.in" + while : + do + cat "conftest.in" "conftest.in" >"conftest.tmp" + mv "conftest.tmp" "conftest.in" + cp "conftest.in" "conftest.nl" + printf "%s\n" 'EGREP' >> "conftest.nl" + "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break + diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break + as_fn_arith $ac_count + 1 && ac_count=$as_val + if test $ac_count -gt ${ac_path_EGREP_max-0}; then + # Best one so far, save it but keep looking for a better one + ac_cv_path_EGREP="$ac_path_EGREP" + ac_path_EGREP_max=$ac_count + fi + # 10*(2^10) chars as input seems more than enough + test $ac_count -gt 10 && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out;; +esac + + $ac_path_EGREP_found && break 3 + done + done + done +IFS=$as_save_IFS + if test -z "$ac_cv_path_EGREP"; then + as_fn_error $? "no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" "$LINENO" 5 + fi +else + ac_cv_path_EGREP=$EGREP +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_path_EGREP" >&5 +printf "%s\n" "$ac_cv_path_EGREP" >&6; } + EGREP="$ac_cv_path_EGREP" + + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for malloc.h" >&5 +printf %s "checking for malloc.h... " >&6; } +if test ${ac_cv_header_malloc_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_malloc_h="yes" + +else $as_nop + + ac_cv_header_malloc_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_malloc_h" >&5 +printf "%s\n" "$ac_cv_header_malloc_h" >&6; } + if test "$ac_cv_header_malloc_h" = "yes"; then + +printf "%s\n" "#define HAVE_MALLOC_H 1" >>confdefs.h + + # + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_need_header_malloc_h="no" + +else $as_nop + + curl_cv_need_header_malloc_h="yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + # + case "$curl_cv_need_header_malloc_h" in + yes) + +printf "%s\n" "#define NEED_MALLOC_H 1" >>confdefs.h + + ;; + esac + fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for memory.h" >&5 +printf %s "checking for memory.h... " >&6; } +if test ${ac_cv_header_memory_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_memory_h="yes" + +else $as_nop + + ac_cv_header_memory_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_memory_h" >&5 +printf "%s\n" "$ac_cv_header_memory_h" >&6; } + if test "$ac_cv_header_memory_h" = "yes"; then + +printf "%s\n" "#define HAVE_MEMORY_H 1" >>confdefs.h + + # + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#include + +int +main (void) +{ + + void *p = malloc(10); + void *q = calloc(10,10); + free(p); + free(q); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_need_header_memory_h="no" + +else $as_nop + + curl_cv_need_header_memory_h="yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + # + case "$curl_cv_need_header_memory_h" in + yes) + +printf "%s\n" "#define NEED_MEMORY_H 1" >>confdefs.h + + ;; + esac + fi + + +ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/select.h" "ac_cv_header_sys_select_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_select_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SELECT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_ioctl_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/param.h" "ac_cv_header_sys_param_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_param_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_PARAM_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_sys_uio_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "assert.h" "ac_cv_header_assert_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_assert_h" = xyes +then : + printf "%s\n" "#define HAVE_ASSERT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_netdb_h" = xyes +then : + printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_netinet_in_h" = xyes +then : + printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netinet/tcp.h" "ac_cv_header_netinet_tcp_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_netinet_tcp_h" = xyes +then : + printf "%s\n" "#define HAVE_NETINET_TCP_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "net/if.h" "ac_cv_header_net_if_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_net_if_h" = xyes +then : + printf "%s\n" "#define HAVE_NET_IF_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "errno.h" "ac_cv_header_errno_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_errno_h" = xyes +then : + printf "%s\n" "#define HAVE_ERRNO_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "socket.h" "ac_cv_header_socket_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_strings_h" = xyes +then : + printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "stdbool.h" "ac_cv_header_stdbool_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_stdbool_h" = xyes +then : + printf "%s\n" "#define HAVE_STDBOOL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_time_h" = xyes +then : + printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "limits.h" "ac_cv_header_limits_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_limits_h" = xyes +then : + printf "%s\n" "#define HAVE_LIMITS_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "arpa/nameser.h" "ac_cv_header_arpa_nameser_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_arpa_nameser_h" = xyes +then : + printf "%s\n" "#define HAVE_ARPA_NAMESER_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "arpa/nameser_compat.h" "ac_cv_header_arpa_nameser_compat_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_arpa_nameser_compat_h" = xyes +then : + printf "%s\n" "#define HAVE_ARPA_NAMESER_COMPAT_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif + + +" +if test "x$ac_cv_header_arpa_inet_h" = xyes +then : + printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h + +fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for $CC options needed to detect all undeclared functions" >&5 +printf %s "checking for $CC options needed to detect all undeclared functions... " >&6; } +if test ${ac_cv_c_undeclared_builtin_options+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_save_CFLAGS=$CFLAGS + ac_cv_c_undeclared_builtin_options='cannot detect' + for ac_arg in '' -fno-builtin; do + CFLAGS="$ac_save_CFLAGS $ac_arg" + # This test program should *not* compile successfully. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ +(void) strchr; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + +else $as_nop + # This test program should compile successfully. + # No library function is consistently available on + # freestanding implementations, so test against a dummy + # declaration. Include always-available headers on the + # off chance that they somehow elicit warnings. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include +#include +#include +extern void ac_decl (int, char *); + +int +main (void) +{ +(void) ac_decl (0, (char *) 0); + (void) ac_decl; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if test x"$ac_arg" = x +then : + ac_cv_c_undeclared_builtin_options='none needed' +else $as_nop + ac_cv_c_undeclared_builtin_options=$ac_arg +fi + break +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + done + CFLAGS=$ac_save_CFLAGS + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 +printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } + case $ac_cv_c_undeclared_builtin_options in #( + 'cannot detect') : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot make $CC report undeclared builtins +See \`config.log' for more details" "$LINENO" 5; } ;; #( + 'none needed') : + ac_c_undeclared_builtin_options='' ;; #( + *) : + ac_c_undeclared_builtin_options=$ac_cv_c_undeclared_builtin_options ;; +esac + +ac_fn_check_decl "$LINENO" "HAVE_ARPA_NAMESER_H" "ac_cv_have_decl_HAVE_ARPA_NAMESER_H" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_HAVE_ARPA_NAMESER_H" = xyes +then : + + +cat >>confdefs.h <<_EOF +#define CARES_HAVE_ARPA_NAMESER_H 1 +_EOF + + +fi +ac_fn_check_decl "$LINENO" "HAVE_ARPA_NAMESER_COMPAT_H" "ac_cv_have_decl_HAVE_ARPA_NAMESER_COMPAT_H" "$ac_includes_default" "$ac_c_undeclared_builtin_options" "CFLAGS" +if test "x$ac_cv_have_decl_HAVE_ARPA_NAMESER_COMPAT_H" = xyes +then : + + +cat >>confdefs.h <<_EOF +#define CARES_HAVE_ARPA_NAMESER_COMPAT_H 1 +_EOF + + +fi + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for an ANSI C-conforming const" >&5 +printf %s "checking for an ANSI C-conforming const... " >&6; } +if test ${ac_cv_c_const+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main (void) +{ + +#ifndef __cplusplus + /* Ultrix mips cc rejects this sort of thing. */ + typedef int charset[2]; + const charset cs = { 0, 0 }; + /* SunOS 4.1.1 cc rejects this. */ + char const *const *pcpcc; + char **ppc; + /* NEC SVR4.0.2 mips cc rejects this. */ + struct point {int x, y;}; + static struct point const zero = {0,0}; + /* IBM XL C 1.02.0.0 rejects this. + It does not let you subtract one const X* pointer from another in + an arm of an if-expression whose if-part is not a constant + expression */ + const char *g = "string"; + pcpcc = &g + (g ? g-g : 0); + /* HPUX 7.0 cc rejects these. */ + ++pcpcc; + ppc = (char**) pcpcc; + pcpcc = (char const *const *) ppc; + { /* SCO 3.2v4 cc rejects this sort of thing. */ + char tx; + char *t = &tx; + char const *s = 0 ? (char *) 0 : (char const *) 0; + + *t++ = 0; + if (s) return 0; + } + { /* Someone thinks the Sun supposedly-ANSI compiler will reject this. */ + int x[] = {25, 17}; + const int *foo = &x[0]; + ++foo; + } + { /* Sun SC1.0 ANSI compiler rejects this -- but not the above. */ + typedef const int *iptr; + iptr p = 0; + ++p; + } + { /* IBM XL C 1.02.0.0 rejects this sort of thing, saying + "k.c", line 2.27: 1506-025 (S) Operand must be a modifiable lvalue. */ + struct s { int j; const int *ap[3]; } bx; + struct s *b = &bx; b->j = 5; + } + { /* ULTRIX-32 V3.1 (Rev 9) vcc rejects this */ + const int foo = 10; + if (!foo) return 0; + } + return !cs[0] && !zero.x; +#endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_const=yes +else $as_nop + ac_cv_c_const=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_const" >&5 +printf "%s\n" "$ac_cv_c_const" >&6; } +if test $ac_cv_c_const = no; then + +printf "%s\n" "#define const /**/" >>confdefs.h + +fi + +ac_fn_c_check_type "$LINENO" "size_t" "ac_cv_type_size_t" "$ac_includes_default" +if test "x$ac_cv_type_size_t" = xyes +then : + +else $as_nop + +printf "%s\n" "#define size_t unsigned int" >>confdefs.h + +fi + + +# Obsolete code to be removed. +if test $ac_cv_header_sys_time_h = yes; then + +printf "%s\n" "#define TIME_WITH_SYS_TIME 1" >>confdefs.h + +fi +# End of obsolete code. + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/time.h" "ac_cv_header_sys_time_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_time_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "time.h" "ac_cv_header_time_h" "$ac_includes_default" +if test "x$ac_cv_header_time_h" = xyes +then : + printf "%s\n" "#define HAVE_TIME_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct timeval" >&5 +printf %s "checking for struct timeval... " >&6; } +if test ${ac_cv_struct_timeval+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#endif +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#ifdef TIME_WITH_SYS_TIME +#include +#endif +#else +#ifdef HAVE_TIME_H +#include +#endif +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif + +int +main (void) +{ + + struct timeval ts; + ts.tv_sec = 0; + ts.tv_usec = 0; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_struct_timeval="yes" + +else $as_nop + + ac_cv_struct_timeval="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_timeval" >&5 +printf "%s\n" "$ac_cv_struct_timeval" >&6; } + case "$ac_cv_struct_timeval" in + yes) + +printf "%s\n" "#define HAVE_STRUCT_TIMEVAL 1" >>confdefs.h + + ;; + esac + + +ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default" +if test "x$ac_cv_type_long_long" = xyes +then : + +printf "%s\n" "#define HAVE_LONGLONG 1" >>confdefs.h + + longlong="yes" + +fi + + +if test "xyes" = "x$longlong"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if numberLL works" >&5 +printf %s "checking if numberLL works... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + long long val = 1000LL; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_LL 1" >>confdefs.h + + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + +# check for ssize_t +ac_fn_c_check_type "$LINENO" "ssize_t" "ac_cv_type_ssize_t" "$ac_includes_default" +if test "x$ac_cv_type_ssize_t" = xyes +then : + CARES_TYPEOF_ARES_SSIZE_T=ssize_t +else $as_nop + CARES_TYPEOF_ARES_SSIZE_T=int +fi + + + +printf "%s\n" "#define CARES_TYPEOF_ARES_SSIZE_T ${CARES_TYPEOF_ARES_SSIZE_T}" >>confdefs.h + + + +# check for bool type +ac_fn_c_check_type "$LINENO" "bool" "ac_cv_type_bool" " +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_STDBOOL_H +#include +#endif + +" +if test "x$ac_cv_type_bool" = xyes +then : + + +printf "%s\n" "#define HAVE_BOOL_T 1" >>confdefs.h + + +fi + + + +cares_includes_ws2tcpip="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# ifdef HAVE_WS2TCPIP_H +# include +# endif +# endif +#endif +/* includes end */" + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for windows.h" >&5 +printf %s "checking for windows.h... " >&6; } +if test ${ac_cv_header_windows_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) + HAVE_WINDOWS_H shall not be defined. +#else + int dummy=2*WINVER; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_windows_h="yes" + +else $as_nop + + ac_cv_header_windows_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_windows_h" >&5 +printf "%s\n" "$ac_cv_header_windows_h" >&6; } + case "$ac_cv_header_windows_h" in + yes) + +printf "%s\n" "#define HAVE_WINDOWS_H 1" >>confdefs.h + + +printf "%s\n" "#define WIN32_LEAN_AND_MEAN 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for winsock2.h" >&5 +printf %s "checking for winsock2.h... " >&6; } +if test ${ac_cv_header_winsock2_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WINSOCK2_H shall not be defined. +#else + int dummy=2*IPPROTO_ESP; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_winsock2_h="yes" + +else $as_nop + + ac_cv_header_winsock2_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_winsock2_h" >&5 +printf "%s\n" "$ac_cv_header_winsock2_h" >&6; } + case "$ac_cv_header_winsock2_h" in + yes) + +printf "%s\n" "#define HAVE_WINSOCK2_H 1" >>confdefs.h + + ;; + esac + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ws2tcpip.h" >&5 +printf %s "checking for ws2tcpip.h... " >&6; } +if test ${ac_cv_header_ws2tcpip_h+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#include +#include + +int +main (void) +{ + +#if defined(__CYGWIN__) || defined(__CEGCC__) || defined(__MINGW32CE__) + HAVE_WS2TCPIP_H shall not be defined. +#else + int dummy=2*IP_PKTINFO; +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_header_ws2tcpip_h="yes" + +else $as_nop + + ac_cv_header_ws2tcpip_h="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_header_ws2tcpip_h" >&5 +printf "%s\n" "$ac_cv_header_ws2tcpip_h" >&6; } + case "$ac_cv_header_ws2tcpip_h" in + yes) + +printf "%s\n" "#define HAVE_WS2TCPIP_H 1" >>confdefs.h + + ;; + esac + + + +cares_includes_sys_socket="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_sys_socket +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$cares_includes_sys_socket +" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + + +cares_preprocess_callconv="\ +/* preprocess start */ +#ifdef HAVE_WINDOWS_H +# define FUNCALLCONV __stdcall +#else +# define FUNCALLCONV +#endif +/* preprocess end */" + + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for ares_socklen_t data type" >&5 +printf %s "checking for ares_socklen_t data type... " >&6; } + cares_typeof_ares_socklen_t="unknown" + for arg1 in int SOCKET; do + for arg2 in 'struct sockaddr' void; do + for t in socklen_t int size_t 'unsigned int' long 'unsigned long' void; do + if test "$cares_typeof_ares_socklen_t" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_preprocess_callconv + extern int FUNCALLCONV getpeername($arg1, $arg2 *, $t *); + +int +main (void) +{ + + $t *lenptr = 0; + if(0 != getpeername(0, 0, lenptr)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + cares_typeof_ares_socklen_t="$t" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + done + for t in socklen_t int; do + if test "$cares_typeof_ares_socklen_t" = "void"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_socket + typedef $t ares_socklen_t; + +int +main (void) +{ + + ares_socklen_t dummy; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + cares_typeof_ares_socklen_t="$t" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cares_typeof_ares_socklen_t" >&5 +printf "%s\n" "$cares_typeof_ares_socklen_t" >&6; } + if test "$cares_typeof_ares_socklen_t" = "void" || + test "$cares_typeof_ares_socklen_t" = "unknown"; then + as_fn_error $? "cannot find data type for ares_socklen_t." "$LINENO" 5 + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking size of ares_socklen_t" >&5 +printf %s "checking size of ares_socklen_t... " >&6; } + cares_sizeof_ares_socklen_t="unknown" + cares_pull_headers_socklen_t="unknown" + if test "$ac_cv_header_ws2tcpip_h" = "yes"; then + tst_pull_header_checks='none ws2tcpip' + tst_size_checks='4' + else + tst_pull_header_checks='none systypes syssocket' + tst_size_checks='4 8 2' + fi + for tst_size in $tst_size_checks; do + for tst_pull_headers in $tst_pull_header_checks; do + if test "$cares_sizeof_ares_socklen_t" = "unknown"; then + case $tst_pull_headers in + ws2tcpip) + tmp_includes="$cares_includes_ws2tcpip" + ;; + systypes) + tmp_includes="$cares_includes_sys_types" + ;; + syssocket) + tmp_includes="$cares_includes_sys_socket" + ;; + *) + tmp_includes="" + ;; + esac + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $tmp_includes + typedef $cares_typeof_ares_socklen_t ares_socklen_t; + typedef char dummy_arr[sizeof(ares_socklen_t) == $tst_size ? 1 : -1]; + +int +main (void) +{ + + ares_socklen_t dummy; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + cares_sizeof_ares_socklen_t="$tst_size" + cares_pull_headers_socklen_t="$tst_pull_headers" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cares_sizeof_ares_socklen_t" >&5 +printf "%s\n" "$cares_sizeof_ares_socklen_t" >&6; } + if test "$cares_sizeof_ares_socklen_t" = "unknown"; then + as_fn_error $? "cannot find out size of ares_socklen_t." "$LINENO" 5 + fi + # + case $cares_pull_headers_socklen_t in + ws2tcpip) + +cat >>confdefs.h <<_EOF +#define CARES_PULL_WS2TCPIP_H 1 +_EOF + + ;; + systypes) + +cat >>confdefs.h <<_EOF +#define CARES_PULL_SYS_TYPES_H 1 +_EOF + + ;; + syssocket) + +cat >>confdefs.h <<_EOF +#define CARES_PULL_SYS_TYPES_H 1 +_EOF + + +cat >>confdefs.h <<_EOF +#define CARES_PULL_SYS_SOCKET_H 1 +_EOF + + ;; + esac + +cat >>confdefs.h <<_EOF +#define CARES_TYPEOF_ARES_SOCKLEN_T $cares_typeof_ares_socklen_t +_EOF + + +cat >>confdefs.h <<_EOF +#define CARES_SIZEOF_ARES_SOCKLEN_T $cares_sizeof_ares_socklen_t +_EOF + + + + + ac_fn_c_check_type "$LINENO" "in_addr_t" "ac_cv_type_in_addr_t" " +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + +" +if test "x$ac_cv_type_in_addr_t" = xyes +then : + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for in_addr_t equivalent" >&5 +printf %s "checking for in_addr_t equivalent... " >&6; } +if test ${curl_cv_in_addr_t_equiv+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + curl_cv_in_addr_t_equiv="unknown" + for t in "unsigned long" int size_t unsigned long; do + if test "$curl_cv_in_addr_t_equiv" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + +int +main (void) +{ + + $t data = inet_addr ("1.2.3.4"); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + curl_cv_in_addr_t_equiv="$t" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_in_addr_t_equiv" >&5 +printf "%s\n" "$curl_cv_in_addr_t_equiv" >&6; } + case "$curl_cv_in_addr_t_equiv" in + unknown) + as_fn_error $? "Cannot find a type to use in place of in_addr_t" "$LINENO" 5 + ;; + *) + +printf "%s\n" "#define in_addr_t $curl_cv_in_addr_t_equiv" >>confdefs.h + + ;; + esac + +fi + + + + + ac_fn_c_check_type "$LINENO" "struct sockaddr_storage" "ac_cv_type_struct_sockaddr_storage" " +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_ARPA_INET_H +#include +#endif +#endif + +" +if test "x$ac_cv_type_struct_sockaddr_storage" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_STORAGE 1" >>confdefs.h + +fi + + + + + ac_fn_c_check_header_compile "$LINENO" "signal.h" "ac_cv_header_signal_h" "$ac_includes_default" +if test "x$ac_cv_header_signal_h" = xyes +then : + printf "%s\n" "#define HAVE_SIGNAL_H 1" >>confdefs.h + +fi + + ac_fn_c_check_type "$LINENO" "sig_atomic_t" "ac_cv_type_sig_atomic_t" " +#ifdef HAVE_SIGNAL_H +#include +#endif + +" +if test "x$ac_cv_type_sig_atomic_t" = xyes +then : + + +printf "%s\n" "#define HAVE_SIG_ATOMIC_T 1" >>confdefs.h + + +fi + + case "$ac_cv_type_sig_atomic_t" in + yes) + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if sig_atomic_t is already defined as volatile" >&5 +printf %s "checking if sig_atomic_t is already defined as volatile... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#ifdef HAVE_SIGNAL_H +#include +#endif + +int +main (void) +{ + + static volatile sig_atomic_t dummy = 0; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_sig_atomic_t_volatile="no" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + ac_cv_sig_atomic_t_volatile="yes" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$ac_cv_sig_atomic_t_volatile" = "yes"; then + +printf "%s\n" "#define HAVE_SIG_ATOMIC_T_VOLATILE 1" >>confdefs.h + + fi + ;; + esac + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking return type of signal handlers" >&5 +printf %s "checking return type of signal handlers... " >&6; } +if test ${ac_cv_type_signal+y} +then : + printf %s "(cached) " >&6 +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include +#include + +int +main (void) +{ +return *(signal (0, 0)) (0) == 1; + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_type_signal=int +else $as_nop + ac_cv_type_signal=void +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_type_signal" >&5 +printf "%s\n" "$ac_cv_type_signal" >&6; } + +printf "%s\n" "#define RETSIGTYPE $ac_cv_type_signal" >>confdefs.h + + + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for recv" >&5 +printf %s "checking for recv... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + +int +main (void) +{ + + recv(0, 0, 0, 0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_recv="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + curl_cv_recv="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$curl_cv_recv" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recv" >&5 +printf %s "checking types of args and return type for recv... " >&6; } +if test ${curl_cv_func_recv_args+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + curl_cv_func_recv_args="unknown" + for recv_retv in 'int' 'ssize_t'; do + for recv_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for recv_arg2 in 'char *' 'void *'; do + for recv_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for recv_arg4 in 'int' 'unsigned int'; do + if test "$curl_cv_func_recv_args" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define RECVCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define RECVCALLCONV +#endif + extern $recv_retv RECVCALLCONV + recv($recv_arg1, $recv_arg2, $recv_arg3, $recv_arg4); + +int +main (void) +{ + + $recv_arg1 s=0; + $recv_arg2 buf=0; + $recv_arg3 len=0; + $recv_arg4 flags=0; + $recv_retv res = recv(s, buf, len, flags); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_func_recv_args="$recv_arg1,$recv_arg2,$recv_arg3,$recv_arg4,$recv_retv" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + done + done + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recv_args" >&5 +printf "%s\n" "$curl_cv_func_recv_args" >&6; } # AC-CACHE-CHECK + if test "$curl_cv_func_recv_args" = "unknown"; then + as_fn_error $? "Cannot find proper types to use for recv args" "$LINENO" 5 + else + recv_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_recv_args" | sed 's/\*/\*/g'` + IFS=$recv_prev_IFS + shift + # + +printf "%s\n" "#define RECV_TYPE_ARG1 $1" >>confdefs.h + + +printf "%s\n" "#define RECV_TYPE_ARG2 $2" >>confdefs.h + + +printf "%s\n" "#define RECV_TYPE_ARG3 $3" >>confdefs.h + + +printf "%s\n" "#define RECV_TYPE_ARG4 $4" >>confdefs.h + + +printf "%s\n" "#define RECV_TYPE_RETV $5" >>confdefs.h + + # + +printf "%s\n" "#define HAVE_RECV 1" >>confdefs.h + + ac_cv_func_recv="yes" + fi + else + as_fn_error $? "Unable to link function recv" "$LINENO" 5 + fi + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for recvfrom" >&5 +printf %s "checking for recvfrom... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + +int +main (void) +{ + + recvfrom(0, 0, 0, 0, 0, 0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_recvfrom="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + curl_cv_recvfrom="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$curl_cv_recvfrom" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for recvfrom" >&5 +printf %s "checking types of args and return type for recvfrom... " >&6; } +if test ${curl_cv_func_recvfrom_args+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + curl_cv_func_recvfrom_args="unknown" + for recvfrom_retv in 'int' 'ssize_t'; do + for recvfrom_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for recvfrom_arg2 in 'char *' 'void *'; do + for recvfrom_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for recvfrom_arg4 in 'int' 'unsigned int'; do + for recvfrom_arg5 in 'struct sockaddr *' 'void *' 'const struct sockaddr *'; do + for recvfrom_arg6 in 'socklen_t *' 'int *' 'unsigned int *' 'size_t *' 'void *'; do + if test "$curl_cv_func_recvfrom_args" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define RECVFROMCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define RECVFROMCALLCONV +#endif + extern $recvfrom_retv RECVFROMCALLCONV + recvfrom($recvfrom_arg1, $recvfrom_arg2, + $recvfrom_arg3, $recvfrom_arg4, + $recvfrom_arg5, $recvfrom_arg6); + +int +main (void) +{ + + $recvfrom_arg1 s=0; + $recvfrom_arg2 buf=0; + $recvfrom_arg3 len=0; + $recvfrom_arg4 flags=0; + $recvfrom_arg5 addr=0; + $recvfrom_arg6 addrlen=0; + $recvfrom_retv res=0; + res = recvfrom(s, buf, len, flags, addr, addrlen); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_func_recvfrom_args="$recvfrom_arg1,$recvfrom_arg2,$recvfrom_arg3,$recvfrom_arg4,$recvfrom_arg5,$recvfrom_arg6,$recvfrom_retv" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + done + done + done + done + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_recvfrom_args" >&5 +printf "%s\n" "$curl_cv_func_recvfrom_args" >&6; } # AC-CACHE-CHECK + # Nearly last minute change for this release starts here + +printf "%s\n" "#define HAVE_RECVFROM 1" >>confdefs.h + + ac_cv_func_recvfrom="yes" + # Nearly last minute change for this release ends here + if test "$curl_cv_func_recvfrom_args" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for recvfrom args" >&5 +printf "%s\n" "$as_me: WARNING: Cannot find proper types to use for recvfrom args" >&2;} + else + recvfrom_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_recvfrom_args" | sed 's/\*/\*/g'` + IFS=$recvfrom_prev_IFS + shift + # + recvfrom_ptrt_arg2=$2 + recvfrom_qual_ptrt_arg5=$5 + recvfrom_ptrt_arg6=$6 + # + +printf "%s\n" "#define RECVFROM_TYPE_ARG1 $1" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_TYPE_ARG3 $3" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_TYPE_ARG4 $4" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_TYPE_RETV $7" >>confdefs.h + + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$recvfrom_qual_ptrt_arg5" in + const*) + recvfrom_qual_arg5=const + recvfrom_ptrt_arg5=`echo $recvfrom_qual_ptrt_arg5 | sed 's/^const //'` + ;; + *) + recvfrom_qual_arg5= + recvfrom_ptrt_arg5=$recvfrom_qual_ptrt_arg5 + ;; + esac + # + recvfrom_type_arg2=`echo $recvfrom_ptrt_arg2 | sed 's/ \*//'` + recvfrom_type_arg5=`echo $recvfrom_ptrt_arg5 | sed 's/ \*//'` + recvfrom_type_arg6=`echo $recvfrom_ptrt_arg6 | sed 's/ \*//'` + # + +printf "%s\n" "#define RECVFROM_TYPE_ARG2 $recvfrom_type_arg2" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_QUAL_ARG5 $recvfrom_qual_arg5" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_TYPE_ARG5 $recvfrom_type_arg5" >>confdefs.h + + +printf "%s\n" "#define RECVFROM_TYPE_ARG6 $recvfrom_type_arg6" >>confdefs.h + + # + if test "$recvfrom_type_arg2" = "void"; then + +printf "%s\n" "#define RECVFROM_TYPE_ARG2_IS_VOID 1" >>confdefs.h + + fi + if test "$recvfrom_type_arg5" = "void"; then + +printf "%s\n" "#define RECVFROM_TYPE_ARG5_IS_VOID 1" >>confdefs.h + + fi + if test "$recvfrom_type_arg6" = "void"; then + +printf "%s\n" "#define RECVFROM_TYPE_ARG6_IS_VOID 1" >>confdefs.h + + fi + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + +printf "%s\n" "#define HAVE_RECVFROM 1" >>confdefs.h + + ac_cv_func_recvfrom="yes" + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Unable to link function recvfrom" >&5 +printf "%s\n" "$as_me: WARNING: Unable to link function recvfrom" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Your system will be vulnerable to some forms of DNS cache poisoning" >&5 +printf "%s\n" "$as_me: WARNING: Your system will be vulnerable to some forms of DNS cache poisoning" >&2;} + fi + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for send" >&5 +printf %s "checking for send... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + +int +main (void) +{ + + send(0, 0, 0, 0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_send="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + curl_cv_send="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$curl_cv_send" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of args and return type for send" >&5 +printf %s "checking types of args and return type for send... " >&6; } +if test ${curl_cv_func_send_args+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + curl_cv_func_send_args="unknown" + for send_retv in 'int' 'ssize_t'; do + for send_arg1 in 'int' 'ssize_t' 'SOCKET'; do + for send_arg2 in 'char *' 'void *' 'const char *' 'const void *'; do + for send_arg3 in 'size_t' 'int' 'socklen_t' 'unsigned int'; do + for send_arg4 in 'int' 'unsigned int'; do + if test "$curl_cv_func_send_args" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#define SENDCALLCONV PASCAL +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#define SENDCALLCONV +#endif + extern $send_retv SENDCALLCONV + send($send_arg1, $send_arg2, $send_arg3, $send_arg4); + +int +main (void) +{ + + $send_arg1 s=0; + $send_arg3 len=0; + $send_arg4 flags=0; + $send_retv res = send(s, 0, len, flags); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_func_send_args="$send_arg1,$send_arg2,$send_arg3,$send_arg4,$send_retv" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + done + done + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_send_args" >&5 +printf "%s\n" "$curl_cv_func_send_args" >&6; } # AC-CACHE-CHECK + if test "$curl_cv_func_send_args" = "unknown"; then + as_fn_error $? "Cannot find proper types to use for send args" "$LINENO" 5 + else + send_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_send_args" | sed 's/\*/\*/g'` + IFS=$send_prev_IFS + shift + # + send_qual_type_arg2=$2 + # + +printf "%s\n" "#define SEND_TYPE_ARG1 $1" >>confdefs.h + + +printf "%s\n" "#define SEND_TYPE_ARG3 $3" >>confdefs.h + + +printf "%s\n" "#define SEND_TYPE_ARG4 $4" >>confdefs.h + + +printf "%s\n" "#define SEND_TYPE_RETV $5" >>confdefs.h + + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$send_qual_type_arg2" in + const*) + send_qual_arg2=const + send_type_arg2=`echo $send_qual_type_arg2 | sed 's/^const //'` + ;; + *) + send_qual_arg2= + send_type_arg2=$send_qual_type_arg2 + ;; + esac + # + +printf "%s\n" "#define SEND_QUAL_ARG2 $send_qual_arg2" >>confdefs.h + + +printf "%s\n" "#define SEND_TYPE_ARG2 $send_type_arg2" >>confdefs.h + + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + +printf "%s\n" "#define HAVE_SEND 1" >>confdefs.h + + ac_cv_func_send="yes" + fi + else + as_fn_error $? "Unable to link function send" "$LINENO" 5 + fi + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for MSG_NOSIGNAL" >&5 +printf %s "checking for MSG_NOSIGNAL... " >&6; } +if test ${ac_cv_msg_nosignal+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + +int +main (void) +{ + + int flag=MSG_NOSIGNAL; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + ac_cv_msg_nosignal="yes" + +else $as_nop + + ac_cv_msg_nosignal="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_msg_nosignal" >&5 +printf "%s\n" "$ac_cv_msg_nosignal" >&6; } + case "$ac_cv_msg_nosignal" in + yes) + +printf "%s\n" "#define HAVE_MSG_NOSIGNAL 1" >>confdefs.h + + ;; + esac + + + +cares_includes_socket="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SOCKET_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_socket +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "socket.h" "ac_cv_header_socket_h" "$cares_includes_socket +" +if test "x$ac_cv_header_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SOCKET_H 1" >>confdefs.h + +fi + + + + # + tst_links_closesocket="unknown" + tst_proto_closesocket="unknown" + tst_compi_closesocket="unknown" + tst_allow_closesocket="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket can be linked" >&5 +printf %s "checking if closesocket can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_socket + +int +main (void) +{ + + if(0 != closesocket(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_closesocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_closesocket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_closesocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket is prototyped" >&5 +printf %s "checking if closesocket is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_socket + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "closesocket" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_closesocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_closesocket="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_closesocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket is compilable" >&5 +printf %s "checking if closesocket is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_socket + +int +main (void) +{ + + if(0 != closesocket(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_closesocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_closesocket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_closesocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket usage allowed" >&5 +printf %s "checking if closesocket usage allowed... " >&6; } + if test "x$cares_disallow_closesocket" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_closesocket="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_closesocket="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if closesocket might be used" >&5 +printf %s "checking if closesocket might be used... " >&6; } + if test "$tst_links_closesocket" = "yes" && + test "$tst_proto_closesocket" = "yes" && + test "$tst_compi_closesocket" = "yes" && + test "$tst_allow_closesocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_CLOSESOCKET 1" >>confdefs.h + + ac_cv_func_closesocket="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_closesocket="no" + fi + + + # + tst_links_closesocket_camel="unknown" + tst_proto_closesocket_camel="unknown" + tst_compi_closesocket_camel="unknown" + tst_allow_closesocket_camel="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket can be linked" >&5 +printf %s "checking if CloseSocket can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_socket + +int +main (void) +{ + + if(0 != CloseSocket(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_closesocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_closesocket_camel="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_closesocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is prototyped" >&5 +printf %s "checking if CloseSocket is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_sys_socket + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "CloseSocket" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_closesocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_closesocket_camel="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_closesocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket is compilable" >&5 +printf %s "checking if CloseSocket is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_socket + +int +main (void) +{ + + if(0 != CloseSocket(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_closesocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_closesocket_camel="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_closesocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket usage allowed" >&5 +printf %s "checking if CloseSocket usage allowed... " >&6; } + if test "x$cares_disallow_closesocket_camel" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_closesocket_camel="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_closesocket_camel="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if CloseSocket might be used" >&5 +printf %s "checking if CloseSocket might be used... " >&6; } + if test "$tst_links_closesocket_camel" = "yes" && + test "$tst_proto_closesocket_camel" = "yes" && + test "$tst_compi_closesocket_camel" = "yes" && + test "$tst_allow_closesocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_CLOSESOCKET_CAMEL 1" >>confdefs.h + + ac_cv_func_closesocket_camel="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_closesocket_camel="no" + fi + + + # + tst_links_connect="unknown" + tst_proto_connect="unknown" + tst_compi_connect="unknown" + tst_allow_connect="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect can be linked" >&5 +printf %s "checking if connect can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +int +main (void) +{ + + if(0 != connect(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_connect="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_connect="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_connect" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect is prototyped" >&5 +printf %s "checking if connect is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "connect" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_connect="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_connect="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_connect" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect is compilable" >&5 +printf %s "checking if connect is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +int +main (void) +{ + + if(0 != connect(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_connect="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_connect="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_connect" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect usage allowed" >&5 +printf %s "checking if connect usage allowed... " >&6; } + if test "x$cares_disallow_connect" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_connect="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_connect="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if connect might be used" >&5 +printf %s "checking if connect might be used... " >&6; } + if test "$tst_links_connect" = "yes" && + test "$tst_proto_connect" = "yes" && + test "$tst_compi_connect" = "yes" && + test "$tst_allow_connect" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_CONNECT 1" >>confdefs.h + + ac_cv_func_connect="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_connect="no" + fi + + +cares_includes_fcntl="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_FCNTL_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_fcntl +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$cares_includes_fcntl +" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "fcntl.h" "ac_cv_header_fcntl_h" "$cares_includes_fcntl +" +if test "x$ac_cv_header_fcntl_h" = xyes +then : + printf "%s\n" "#define HAVE_FCNTL_H 1" >>confdefs.h + +fi + + + + # + tst_links_fcntl="unknown" + tst_proto_fcntl="unknown" + tst_compi_fcntl="unknown" + tst_allow_fcntl="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl can be linked" >&5 +printf %s "checking if fcntl can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define fcntl to an innocuous variant, in case declares fcntl. + For example, HP-UX 11i declares gettimeofday. */ +#define fcntl innocuous_fcntl + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char fcntl (); below. */ + +#include +#undef fcntl + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char fcntl (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_fcntl || defined __stub___fcntl +choke me +#endif + +int +main (void) +{ +return fcntl (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_fcntl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_fcntl="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_fcntl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl is prototyped" >&5 +printf %s "checking if fcntl is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_fcntl + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "fcntl" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_fcntl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_fcntl="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_fcntl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl is compilable" >&5 +printf %s "checking if fcntl is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_fcntl + +int +main (void) +{ + + if(0 != fcntl(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_fcntl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_fcntl="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_fcntl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl usage allowed" >&5 +printf %s "checking if fcntl usage allowed... " >&6; } + if test "x$cares_disallow_fcntl" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_fcntl="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_fcntl="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl might be used" >&5 +printf %s "checking if fcntl might be used... " >&6; } + if test "$tst_links_fcntl" = "yes" && + test "$tst_proto_fcntl" = "yes" && + test "$tst_compi_fcntl" = "yes" && + test "$tst_allow_fcntl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_FCNTL 1" >>confdefs.h + + ac_cv_func_fcntl="yes" + + # + tst_compi_fcntl_o_nonblock="unknown" + tst_allow_fcntl_o_nonblock="unknown" + # + case $host_os in + sunos4* | aix3* | beos*) + cares_disallow_fcntl_o_nonblock="yes" + ;; + esac + # + if test "$ac_cv_func_fcntl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK is compilable" >&5 +printf %s "checking if fcntl O_NONBLOCK is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_fcntl + +int +main (void) +{ + + int flags = 0; + if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_fcntl_o_nonblock="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_fcntl_o_nonblock="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_fcntl_o_nonblock" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK usage allowed" >&5 +printf %s "checking if fcntl O_NONBLOCK usage allowed... " >&6; } + if test "x$cares_disallow_fcntl_o_nonblock" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_fcntl_o_nonblock="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_fcntl_o_nonblock="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if fcntl O_NONBLOCK might be used" >&5 +printf %s "checking if fcntl O_NONBLOCK might be used... " >&6; } + if test "$tst_compi_fcntl_o_nonblock" = "yes" && + test "$tst_allow_fcntl_o_nonblock" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_FCNTL_O_NONBLOCK 1" >>confdefs.h + + ac_cv_func_fcntl_o_nonblock="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_fcntl_o_nonblock="no" + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_fcntl="no" + fi + + +cares_includes_netdb="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_netdb +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$cares_includes_netdb +" +if test "x$ac_cv_header_netdb_h" = xyes +then : + printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h + +fi + + + + # + tst_links_freeaddrinfo="unknown" + tst_proto_freeaddrinfo="unknown" + tst_compi_freeaddrinfo="unknown" + tst_allow_freeaddrinfo="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo can be linked" >&5 +printf %s "checking if freeaddrinfo can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + freeaddrinfo(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_freeaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_freeaddrinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_freeaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is prototyped" >&5 +printf %s "checking if freeaddrinfo is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "freeaddrinfo" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_freeaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_freeaddrinfo="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_freeaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo is compilable" >&5 +printf %s "checking if freeaddrinfo is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + freeaddrinfo(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_freeaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_freeaddrinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_freeaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo usage allowed" >&5 +printf %s "checking if freeaddrinfo usage allowed... " >&6; } + if test "x$cares_disallow_freeaddrinfo" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_freeaddrinfo="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_freeaddrinfo="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if freeaddrinfo might be used" >&5 +printf %s "checking if freeaddrinfo might be used... " >&6; } + if test "$tst_links_freeaddrinfo" = "yes" && + test "$tst_proto_freeaddrinfo" = "yes" && + test "$tst_compi_freeaddrinfo" = "yes" && + test "$tst_allow_freeaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_FREEADDRINFO 1" >>confdefs.h + + ac_cv_func_freeaddrinfo="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_freeaddrinfo="no" + fi + + +cares_includes_stdlib="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_stdlib +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "stdlib.h" "ac_cv_header_stdlib_h" "$cares_includes_stdlib +" +if test "x$ac_cv_header_stdlib_h" = xyes +then : + printf "%s\n" "#define HAVE_STDLIB_H 1" >>confdefs.h + +fi + + + +cares_includes_string="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_string +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "string.h" "ac_cv_header_string_h" "$cares_includes_string +" +if test "x$ac_cv_header_string_h" = xyes +then : + printf "%s\n" "#define HAVE_STRING_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "strings.h" "ac_cv_header_strings_h" "$cares_includes_string +" +if test "x$ac_cv_header_strings_h" = xyes +then : + printf "%s\n" "#define HAVE_STRINGS_H 1" >>confdefs.h + +fi + + + + # + tst_links_getaddrinfo="unknown" + tst_proto_getaddrinfo="unknown" + tst_compi_getaddrinfo="unknown" + tst_works_getaddrinfo="unknown" + tst_allow_getaddrinfo="unknown" + tst_tsafe_getaddrinfo="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo can be linked" >&5 +printf %s "checking if getaddrinfo can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + if(0 != getaddrinfo(0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_getaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_getaddrinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_getaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is prototyped" >&5 +printf %s "checking if getaddrinfo is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getaddrinfo" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_getaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_getaddrinfo="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_getaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is compilable" >&5 +printf %s "checking if getaddrinfo is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + if(0 != getaddrinfo(0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getaddrinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_getaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo seems to work" >&5 +printf %s "checking if getaddrinfo seems to work... " >&6; } + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_ws2tcpip + $cares_includes_stdlib + $cares_includes_string + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + struct addrinfo hints; + struct addrinfo *ai = 0; + int error; + + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_NUMERICHOST; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + error = getaddrinfo("127.0.0.1", 0, &hints, &ai); + if(error || !ai) + exit(1); /* fail */ + else + exit(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_works_getaddrinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_works_getaddrinfo="no" + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + # + if test "$tst_compi_getaddrinfo" = "yes" && + test "$tst_works_getaddrinfo" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo usage allowed" >&5 +printf %s "checking if getaddrinfo usage allowed... " >&6; } + if test "x$cares_disallow_getaddrinfo" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_getaddrinfo="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_getaddrinfo="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo might be used" >&5 +printf %s "checking if getaddrinfo might be used... " >&6; } + if test "$tst_links_getaddrinfo" = "yes" && + test "$tst_proto_getaddrinfo" = "yes" && + test "$tst_compi_getaddrinfo" = "yes" && + test "$tst_allow_getaddrinfo" = "yes" && + test "$tst_works_getaddrinfo" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETADDRINFO 1" >>confdefs.h + + ac_cv_func_getaddrinfo="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_getaddrinfo="no" + ac_cv_func_getaddrinfo_threadsafe="no" + fi + # + if test "$ac_cv_func_getaddrinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getaddrinfo is threadsafe" >&5 +printf %s "checking if getaddrinfo is threadsafe... " >&6; } + case $host_os in + aix[1234].* | aix5.[01].*) + tst_tsafe_getaddrinfo="no" + ;; + aix*) + tst_tsafe_getaddrinfo="yes" + ;; + darwin[12345].*) + tst_tsafe_getaddrinfo="no" + ;; + darwin*) + tst_tsafe_getaddrinfo="yes" + ;; + freebsd[1234].* | freebsd5.[1234]*) + tst_tsafe_getaddrinfo="no" + ;; + freebsd*) + tst_tsafe_getaddrinfo="yes" + ;; + hpux[123456789].* | hpux10.* | hpux11.0* | hpux11.10*) + tst_tsafe_getaddrinfo="no" + ;; + hpux*) + tst_tsafe_getaddrinfo="yes" + ;; + netbsd[123].*) + tst_tsafe_getaddrinfo="no" + ;; + netbsd*) + tst_tsafe_getaddrinfo="yes" + ;; + *bsd*) + tst_tsafe_getaddrinfo="no" + ;; + solaris2*) + tst_tsafe_getaddrinfo="yes" + ;; + esac + if test "$tst_tsafe_getaddrinfo" = "unknown" && + test "$ac_cv_native_windows" = "yes"; then + tst_tsafe_getaddrinfo="yes" + fi + if test "$tst_tsafe_getaddrinfo" = "unknown"; then + + + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_socket + $cares_includes_netdb + +int main (void) +{ +#ifdef h_errno + return 0; +#else + force compilation error +#endif +} + + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tst_symbol_defined="yes" + +else $as_nop + + tst_symbol_defined="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tst_symbol_defined" = "yes"; then + curl_cv_have_def_h_errno=yes + + else + curl_cv_have_def_h_errno=no + + fi + + if test "$curl_cv_have_def_h_errno" = "yes"; then + tst_h_errno_macro="yes" + else + tst_h_errno_macro="no" + fi + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_socket + $cares_includes_netdb + +int +main (void) +{ + + h_errno = 2; + if(0 != h_errno) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tst_h_errno_modifiable_lvalue="yes" + +else $as_nop + + tst_h_errno_modifiable_lvalue="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + +#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200809L) + return 0; +#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700) + return 0; +#else + force compilation error +#endif + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tst_h_errno_sbs_issue_7="yes" + +else $as_nop + + tst_h_errno_sbs_issue_7="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$tst_h_errno_macro" = "no" && + test "$tst_h_errno_modifiable_lvalue" = "no" && + test "$tst_h_errno_sbs_issue_7" = "no"; then + tst_tsafe_getaddrinfo="no" + else + tst_tsafe_getaddrinfo="yes" + fi + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_tsafe_getaddrinfo" >&5 +printf "%s\n" "$tst_tsafe_getaddrinfo" >&6; } + if test "$tst_tsafe_getaddrinfo" = "yes"; then + +printf "%s\n" "#define HAVE_GETADDRINFO_THREADSAFE 1" >>confdefs.h + + ac_cv_func_getaddrinfo_threadsafe="yes" + else + ac_cv_func_getaddrinfo_threadsafe="no" + fi + fi + + + # + tst_links_getenv="unknown" + tst_proto_getenv="unknown" + tst_compi_getenv="unknown" + tst_allow_getenv="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getenv can be linked" >&5 +printf %s "checking if getenv can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getenv to an innocuous variant, in case declares getenv. + For example, HP-UX 11i declares gettimeofday. */ +#define getenv innocuous_getenv + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getenv (); below. */ + +#include +#undef getenv + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getenv (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getenv || defined __stub___getenv +choke me +#endif + +int +main (void) +{ +return getenv (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_getenv="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_getenv="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_getenv" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getenv is prototyped" >&5 +printf %s "checking if getenv is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_stdlib + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getenv" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_getenv="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_getenv="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_getenv" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getenv is compilable" >&5 +printf %s "checking if getenv is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stdlib + +int +main (void) +{ + + if(0 != getenv(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getenv="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getenv="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_getenv" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getenv usage allowed" >&5 +printf %s "checking if getenv usage allowed... " >&6; } + if test "x$cares_disallow_getenv" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_getenv="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_getenv="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getenv might be used" >&5 +printf %s "checking if getenv might be used... " >&6; } + if test "$tst_links_getenv" = "yes" && + test "$tst_proto_getenv" = "yes" && + test "$tst_compi_getenv" = "yes" && + test "$tst_allow_getenv" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETENV 1" >>confdefs.h + + ac_cv_func_getenv="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_getenv="no" + fi + + + # + tst_links_gethostbyaddr="unknown" + tst_proto_gethostbyaddr="unknown" + tst_compi_gethostbyaddr="unknown" + tst_allow_gethostbyaddr="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr can be linked" >&5 +printf %s "checking if gethostbyaddr can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_netdb + +int +main (void) +{ + + if(0 != gethostbyaddr(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_gethostbyaddr="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_gethostbyaddr="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_gethostbyaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is prototyped" >&5 +printf %s "checking if gethostbyaddr is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_netdb + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyaddr" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_gethostbyaddr="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_gethostbyaddr="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_gethostbyaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr is compilable" >&5 +printf %s "checking if gethostbyaddr is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_netdb + +int +main (void) +{ + + if(0 != gethostbyaddr(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_gethostbyaddr="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_gethostbyaddr="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_gethostbyaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr usage allowed" >&5 +printf %s "checking if gethostbyaddr usage allowed... " >&6; } + if test "x$cares_disallow_gethostbyaddr" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_gethostbyaddr="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_gethostbyaddr="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyaddr might be used" >&5 +printf %s "checking if gethostbyaddr might be used... " >&6; } + if test "$tst_links_gethostbyaddr" = "yes" && + test "$tst_proto_gethostbyaddr" = "yes" && + test "$tst_compi_gethostbyaddr" = "yes" && + test "$tst_allow_gethostbyaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETHOSTBYADDR 1" >>confdefs.h + + ac_cv_func_gethostbyaddr="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_gethostbyaddr="no" + fi + + + # + tst_links_gethostbyname="unknown" + tst_proto_gethostbyname="unknown" + tst_compi_gethostbyname="unknown" + tst_allow_gethostbyname="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname can be linked" >&5 +printf %s "checking if gethostbyname can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_netdb + +int +main (void) +{ + + if(0 != gethostbyname(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_gethostbyname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_gethostbyname="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_gethostbyname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is prototyped" >&5 +printf %s "checking if gethostbyname is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_netdb + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostbyname" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_gethostbyname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_gethostbyname="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_gethostbyname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname is compilable" >&5 +printf %s "checking if gethostbyname is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_netdb + +int +main (void) +{ + + if(0 != gethostbyname(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_gethostbyname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_gethostbyname="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_gethostbyname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname usage allowed" >&5 +printf %s "checking if gethostbyname usage allowed... " >&6; } + if test "x$cares_disallow_gethostbyname" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_gethostbyname="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_gethostbyname="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostbyname might be used" >&5 +printf %s "checking if gethostbyname might be used... " >&6; } + if test "$tst_links_gethostbyname" = "yes" && + test "$tst_proto_gethostbyname" = "yes" && + test "$tst_compi_gethostbyname" = "yes" && + test "$tst_allow_gethostbyname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETHOSTBYNAME 1" >>confdefs.h + + ac_cv_func_gethostbyname="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_gethostbyname="no" + fi + + +cares_includes_unistd="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_unistd +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$cares_includes_unistd +" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi + + + + # + tst_links_gethostname="unknown" + tst_proto_gethostname="unknown" + tst_compi_gethostname="unknown" + tst_allow_gethostname="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname can be linked" >&5 +printf %s "checking if gethostname can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_unistd + +int +main (void) +{ + + if(0 != gethostname(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_gethostname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_gethostname="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_gethostname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname is prototyped" >&5 +printf %s "checking if gethostname is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_unistd + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "gethostname" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_gethostname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_gethostname="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_gethostname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname is compilable" >&5 +printf %s "checking if gethostname is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_unistd + +int +main (void) +{ + + if(0 != gethostname(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_gethostname="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_gethostname="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_gethostname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for gethostname arg 2 data type" >&5 +printf %s "checking for gethostname arg 2 data type... " >&6; } + tst_gethostname_type_arg2="unknown" + for tst_arg1 in 'char *' 'unsigned char *' 'void *'; do + for tst_arg2 in 'int' 'unsigned int' 'size_t'; do + if test "$tst_gethostname_type_arg2" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_unistd + $cares_preprocess_callconv + extern int FUNCALLCONV gethostname($tst_arg1, $tst_arg2); + +int +main (void) +{ + + if(0 != gethostname(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + tst_gethostname_type_arg2="$tst_arg2" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_gethostname_type_arg2" >&5 +printf "%s\n" "$tst_gethostname_type_arg2" >&6; } + if test "$tst_gethostname_type_arg2" != "unknown"; then + +printf "%s\n" "#define GETHOSTNAME_TYPE_ARG2 $tst_gethostname_type_arg2" >>confdefs.h + + fi + fi + # + if test "$tst_compi_gethostname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname usage allowed" >&5 +printf %s "checking if gethostname usage allowed... " >&6; } + if test "x$cares_disallow_gethostname" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_gethostname="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_gethostname="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if gethostname might be used" >&5 +printf %s "checking if gethostname might be used... " >&6; } + if test "$tst_links_gethostname" = "yes" && + test "$tst_proto_gethostname" = "yes" && + test "$tst_compi_gethostname" = "yes" && + test "$tst_allow_gethostname" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETHOSTNAME 1" >>confdefs.h + + ac_cv_func_gethostname="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_gethostname="no" + fi + + + # + tst_links_getservbyport_r="unknown" + tst_proto_getservbyport_r="unknown" + tst_compi_getservbyport_r="unknown" + tst_allow_getservbyport_r="unknown" + tst_nargs_getservbyport_r="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r can be linked" >&5 +printf %s "checking if getservbyport_r can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getservbyport_r to an innocuous variant, in case declares getservbyport_r. + For example, HP-UX 11i declares gettimeofday. */ +#define getservbyport_r innocuous_getservbyport_r + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getservbyport_r (); below. */ + +#include +#undef getservbyport_r + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getservbyport_r (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getservbyport_r || defined __stub___getservbyport_r +choke me +#endif + +int +main (void) +{ +return getservbyport_r (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_getservbyport_r="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_getservbyport_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_getservbyport_r" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is prototyped" >&5 +printf %s "checking if getservbyport_r is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_netdb + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "getservbyport_r" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_getservbyport_r="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_getservbyport_r="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_getservbyport_r" = "yes"; then + if test "$tst_nargs_getservbyport_r" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 4 args." >&5 +printf %s "checking if getservbyport_r takes 4 args.... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_netdb + +int +main (void) +{ + + if(0 != getservbyport_r(0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="4" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getservbyport_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test "$tst_nargs_getservbyport_r" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 5 args." >&5 +printf %s "checking if getservbyport_r takes 5 args.... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_netdb + +int +main (void) +{ + + if(0 != getservbyport_r(0, 0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="5" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getservbyport_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test "$tst_nargs_getservbyport_r" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r takes 6 args." >&5 +printf %s "checking if getservbyport_r takes 6 args.... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_netdb + +int +main (void) +{ + + if(0 != getservbyport_r(0, 0, 0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="6" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_getservbyport_r="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r is compilable" >&5 +printf %s "checking if getservbyport_r is compilable... " >&6; } + if test "$tst_compi_getservbyport_r" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + fi + # + if test "$tst_compi_getservbyport_r" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r usage allowed" >&5 +printf %s "checking if getservbyport_r usage allowed... " >&6; } + if test "x$cares_disallow_getservbyport_r" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_getservbyport_r="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_getservbyport_r="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if getservbyport_r might be used" >&5 +printf %s "checking if getservbyport_r might be used... " >&6; } + if test "$tst_links_getservbyport_r" = "yes" && + test "$tst_proto_getservbyport_r" = "yes" && + test "$tst_compi_getservbyport_r" = "yes" && + test "$tst_allow_getservbyport_r" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_GETSERVBYPORT_R 1" >>confdefs.h + + +printf "%s\n" "#define GETSERVBYPORT_R_ARGS $tst_nargs_getservbyport_r" >>confdefs.h + + if test "$tst_nargs_getservbyport_r" -eq "4"; then + +printf "%s\n" "#define GETSERVBYPORT_R_BUFSIZE sizeof(struct servent_data)" >>confdefs.h + + else + +printf "%s\n" "#define GETSERVBYPORT_R_BUFSIZE 4096" >>confdefs.h + + fi + ac_cv_func_getservbyport_r="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_getservbyport_r="no" + fi + + +cares_includes_arpa_inet="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_arpa_inet +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$cares_includes_arpa_inet +" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netinet/in.h" "ac_cv_header_netinet_in_h" "$cares_includes_arpa_inet +" +if test "x$ac_cv_header_netinet_in_h" = xyes +then : + printf "%s\n" "#define HAVE_NETINET_IN_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "arpa/inet.h" "ac_cv_header_arpa_inet_h" "$cares_includes_arpa_inet +" +if test "x$ac_cv_header_arpa_inet_h" = xyes +then : + printf "%s\n" "#define HAVE_ARPA_INET_H 1" >>confdefs.h + +fi + + + + # + tst_links_inet_net_pton="unknown" + tst_proto_inet_net_pton="unknown" + tst_compi_inet_net_pton="unknown" + tst_works_inet_net_pton="unknown" + tst_allow_inet_net_pton="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton can be linked" >&5 +printf %s "checking if inet_net_pton can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define inet_net_pton to an innocuous variant, in case declares inet_net_pton. + For example, HP-UX 11i declares gettimeofday. */ +#define inet_net_pton innocuous_inet_net_pton + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char inet_net_pton (); below. */ + +#include +#undef inet_net_pton + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_net_pton (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_inet_net_pton || defined __stub___inet_net_pton +choke me +#endif + +int +main (void) +{ +return inet_net_pton (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_inet_net_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_inet_net_pton="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_inet_net_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton is prototyped" >&5 +printf %s "checking if inet_net_pton is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_arpa_inet + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "inet_net_pton" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_inet_net_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_inet_net_pton="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_inet_net_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton is compilable" >&5 +printf %s "checking if inet_net_pton is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_arpa_inet + +int +main (void) +{ + + if(0 != inet_net_pton(0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_inet_net_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_inet_net_pton="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_net_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton seems to work" >&5 +printf %s "checking if inet_net_pton seems to work... " >&6; } + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + +int +main (void) +{ + + unsigned char ipv6a[16+1]; + unsigned char ipv4a[4+1]; + const char *ipv6net1 = "fe80::214:4fff:fe0b:76c8"; + const char *ipv6net2 = "::fffe:7f00:1"; + const char *ipv6net3 = "7f20:1::/64"; + const char *ipv6net4 = "7f20:1::/2147483649"; + const char *ipv4net1 = "192.168.100.1"; + const char *ipv4net2 = "192.168.100/32"; + const char *ipv4net3 = "192.168.100.1/2147483649"; + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(32 != inet_net_pton(AF_INET, ipv4net1, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0x00] != 0xc0) || + (ipv4a[0x01] != 0xa8) || + (ipv4a[0x02] != 0x64) || + (ipv4a[0x03] != 0x01) || + (ipv4a[0x04] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(32 != inet_net_pton(AF_INET, ipv4net2, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0x00] != 0xc0) || + (ipv4a[0x01] != 0xa8) || + (ipv4a[0x02] != 0x64) || + (ipv4a[0x03] != 0x00) || + (ipv4a[0x04] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(-1 != inet_net_pton(AF_INET, ipv4net3, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(128 != inet_net_pton(AF_INET6, ipv6net1, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x00] != 0xfe) || + (ipv6a[0x01] != 0x80) || + (ipv6a[0x08] != 0x02) || + (ipv6a[0x09] != 0x14) || + (ipv6a[0x0a] != 0x4f) || + (ipv6a[0x0b] != 0xff) || + (ipv6a[0x0c] != 0xfe) || + (ipv6a[0x0d] != 0x0b) || + (ipv6a[0x0e] != 0x76) || + (ipv6a[0x0f] != 0xc8) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x02] != 0x0) || + (ipv6a[0x03] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 0, sizeof(ipv6a)); + ipv6a[0x10] = 0x01; + if(128 != inet_net_pton(AF_INET6, ipv6net2, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x0a] != 0xff) || + (ipv6a[0x0b] != 0xfe) || + (ipv6a[0x0c] != 0x7f) || + (ipv6a[0x0f] != 0x01) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x00] != 0x0) || + (ipv6a[0x01] != 0x0) || + (ipv6a[0x02] != 0x0) || + (ipv6a[0x03] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) || + (ipv6a[0x08] != 0x0) || + (ipv6a[0x09] != 0x0) || + (ipv6a[0x0d] != 0x0) || + (ipv6a[0x0e] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(64 != inet_net_pton(AF_INET6, ipv6net3, ipv6a, 16)) + exit(1); /* fail */ + if( (ipv6a[0x00] != 0x7f) || + (ipv6a[0x01] != 0x20) || + (ipv6a[0x03] != 0x01) || + (ipv6a[0x08] != 0x01) || + (ipv6a[0x09] != 0x01) || + (ipv6a[0x0a] != 0x01) || + (ipv6a[0x0b] != 0x01) || + (ipv6a[0x0c] != 0x01) || + (ipv6a[0x0d] != 0x01) || + (ipv6a[0x0e] != 0x01) || + (ipv6a[0x0f] != 0x01) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + if( (ipv6a[0x02] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) || + (ipv6a[0x07] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(-1 != inet_net_pton(AF_INET6, ipv6net4, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + exit(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_works_inet_net_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_works_inet_net_pton="no" + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + # + if test "$tst_compi_inet_net_pton" = "yes" && + test "$tst_works_inet_net_pton" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton usage allowed" >&5 +printf %s "checking if inet_net_pton usage allowed... " >&6; } + if test "x$cares_disallow_inet_net_pton" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_inet_net_pton="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_inet_net_pton="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_net_pton might be used" >&5 +printf %s "checking if inet_net_pton might be used... " >&6; } + if test "$tst_links_inet_net_pton" = "yes" && + test "$tst_proto_inet_net_pton" = "yes" && + test "$tst_compi_inet_net_pton" = "yes" && + test "$tst_allow_inet_net_pton" = "yes" && + test "$tst_works_inet_net_pton" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_INET_NET_PTON 1" >>confdefs.h + + ac_cv_func_inet_net_pton="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_inet_net_pton="no" + fi + + + # + tst_links_inet_ntop="unknown" + tst_proto_inet_ntop="unknown" + tst_compi_inet_ntop="unknown" + tst_works_inet_ntop="unknown" + tst_allow_inet_ntop="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop can be linked" >&5 +printf %s "checking if inet_ntop can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define inet_ntop to an innocuous variant, in case declares inet_ntop. + For example, HP-UX 11i declares gettimeofday. */ +#define inet_ntop innocuous_inet_ntop + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char inet_ntop (); below. */ + +#include +#undef inet_ntop + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_ntop (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_inet_ntop || defined __stub___inet_ntop +choke me +#endif + +int +main (void) +{ +return inet_ntop (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_inet_ntop="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_inet_ntop="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_inet_ntop" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is prototyped" >&5 +printf %s "checking if inet_ntop is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_arpa_inet + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "inet_ntop" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_inet_ntop="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_inet_ntop="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_inet_ntop" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop is compilable" >&5 +printf %s "checking if inet_ntop is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_arpa_inet + +int +main (void) +{ + + if(0 != inet_ntop(0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_inet_ntop="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_inet_ntop="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_ntop" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop seems to work" >&5 +printf %s "checking if inet_ntop seems to work... " >&6; } + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + +int +main (void) +{ + + char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; + char ipv4res[sizeof "255.255.255.255"]; + unsigned char ipv6a[26]; + unsigned char ipv4a[5]; + char *ipv6ptr = 0; + char *ipv4ptr = 0; + /* - */ + ipv4res[0] = '\0'; + ipv4a[0] = 0xc0; + ipv4a[1] = 0xa8; + ipv4a[2] = 0x64; + ipv4a[3] = 0x01; + ipv4a[4] = 0x01; + /* - */ + ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); + if(!ipv4ptr) + exit(1); /* fail */ + if(ipv4ptr != ipv4res) + exit(1); /* fail */ + if(!ipv4ptr[0]) + exit(1); /* fail */ + if(memcmp(ipv4res, "192.168.100.1", 13) != 0) + exit(1); /* fail */ + /* - */ + ipv6res[0] = '\0'; + memset(ipv6a, 0, sizeof(ipv6a)); + ipv6a[0] = 0xfe; + ipv6a[1] = 0x80; + ipv6a[8] = 0x02; + ipv6a[9] = 0x14; + ipv6a[10] = 0x4f; + ipv6a[11] = 0xff; + ipv6a[12] = 0xfe; + ipv6a[13] = 0x0b; + ipv6a[14] = 0x76; + ipv6a[15] = 0xc8; + ipv6a[25] = 0x01; + /* - */ + ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); + if(!ipv6ptr) + exit(1); /* fail */ + if(ipv6ptr != ipv6res) + exit(1); /* fail */ + if(!ipv6ptr[0]) + exit(1); /* fail */ + if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) + exit(1); /* fail */ + /* - */ + exit(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_works_inet_ntop="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_works_inet_ntop="no" + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + # + if test "$tst_compi_inet_ntop" = "yes" && + test "$tst_works_inet_ntop" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop usage allowed" >&5 +printf %s "checking if inet_ntop usage allowed... " >&6; } + if test "x$cares_disallow_inet_ntop" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_inet_ntop="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_inet_ntop="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_ntop might be used" >&5 +printf %s "checking if inet_ntop might be used... " >&6; } + if test "$tst_links_inet_ntop" = "yes" && + test "$tst_proto_inet_ntop" = "yes" && + test "$tst_compi_inet_ntop" = "yes" && + test "$tst_allow_inet_ntop" = "yes" && + test "$tst_works_inet_ntop" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_INET_NTOP 1" >>confdefs.h + + ac_cv_func_inet_ntop="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_inet_ntop="no" + fi + + + # + tst_links_inet_pton="unknown" + tst_proto_inet_pton="unknown" + tst_compi_inet_pton="unknown" + tst_works_inet_pton="unknown" + tst_allow_inet_pton="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton can be linked" >&5 +printf %s "checking if inet_pton can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define inet_pton to an innocuous variant, in case declares inet_pton. + For example, HP-UX 11i declares gettimeofday. */ +#define inet_pton innocuous_inet_pton + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char inet_pton (); below. */ + +#include +#undef inet_pton + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char inet_pton (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_inet_pton || defined __stub___inet_pton +choke me +#endif + +int +main (void) +{ +return inet_pton (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_inet_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_inet_pton="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_inet_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton is prototyped" >&5 +printf %s "checking if inet_pton is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_arpa_inet + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "inet_pton" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_inet_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_inet_pton="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_inet_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton is compilable" >&5 +printf %s "checking if inet_pton is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_arpa_inet + +int +main (void) +{ + + if(0 != inet_pton(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_inet_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_inet_pton="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_pton" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton seems to work" >&5 +printf %s "checking if inet_pton seems to work... " >&6; } + if test "$cross_compiling" = yes +then : + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "cannot run test program while cross compiling +See \`config.log' for more details" "$LINENO" 5; } +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + +int +main (void) +{ + + unsigned char ipv6a[16+1]; + unsigned char ipv4a[4+1]; + const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; + const char *ipv4src = "192.168.100.1"; + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0] != 0xc0) || + (ipv4a[1] != 0xa8) || + (ipv4a[2] != 0x64) || + (ipv4a[3] != 0x01) || + (ipv4a[4] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0] != 0xfe) || + (ipv6a[1] != 0x80) || + (ipv6a[8] != 0x02) || + (ipv6a[9] != 0x14) || + (ipv6a[10] != 0x4f) || + (ipv6a[11] != 0xff) || + (ipv6a[12] != 0xfe) || + (ipv6a[13] != 0x0b) || + (ipv6a[14] != 0x76) || + (ipv6a[15] != 0xc8) || + (ipv6a[16] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[2] != 0x0) || + (ipv6a[3] != 0x0) || + (ipv6a[4] != 0x0) || + (ipv6a[5] != 0x0) || + (ipv6a[6] != 0x0) || + (ipv6a[7] != 0x0) ) + exit(1); /* fail */ + /* - */ + exit(0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_works_inet_pton="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_works_inet_pton="no" + +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi + # + if test "$tst_compi_inet_pton" = "yes" && + test "$tst_works_inet_pton" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton usage allowed" >&5 +printf %s "checking if inet_pton usage allowed... " >&6; } + if test "x$cares_disallow_inet_pton" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_inet_pton="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_inet_pton="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if inet_pton might be used" >&5 +printf %s "checking if inet_pton might be used... " >&6; } + if test "$tst_links_inet_pton" = "yes" && + test "$tst_proto_inet_pton" = "yes" && + test "$tst_compi_inet_pton" = "yes" && + test "$tst_allow_inet_pton" = "yes" && + test "$tst_works_inet_pton" != "no"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_INET_PTON 1" >>confdefs.h + + ac_cv_func_inet_pton="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_inet_pton="no" + fi + + +cares_includes_stropts="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_SYS_IOCTL_H +# include +#endif +#ifdef HAVE_STROPTS_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_stropts +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "unistd.h" "ac_cv_header_unistd_h" "$cares_includes_stropts +" +if test "x$ac_cv_header_unistd_h" = xyes +then : + printf "%s\n" "#define HAVE_UNISTD_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$cares_includes_stropts +" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/ioctl.h" "ac_cv_header_sys_ioctl_h" "$cares_includes_stropts +" +if test "x$ac_cv_header_sys_ioctl_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_IOCTL_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "stropts.h" "ac_cv_header_stropts_h" "$cares_includes_stropts +" +if test "x$ac_cv_header_stropts_h" = xyes +then : + printf "%s\n" "#define HAVE_STROPTS_H 1" >>confdefs.h + +fi + + + + # + tst_links_ioctl="unknown" + tst_proto_ioctl="unknown" + tst_compi_ioctl="unknown" + tst_allow_ioctl="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl can be linked" >&5 +printf %s "checking if ioctl can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define ioctl to an innocuous variant, in case declares ioctl. + For example, HP-UX 11i declares gettimeofday. */ +#define ioctl innocuous_ioctl + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char ioctl (); below. */ + +#include +#undef ioctl + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char ioctl (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_ioctl || defined __stub___ioctl +choke me +#endif + +int +main (void) +{ +return ioctl (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_ioctl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_ioctl="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl is prototyped" >&5 +printf %s "checking if ioctl is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_stropts + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "ioctl" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_ioctl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_ioctl="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl is compilable" >&5 +printf %s "checking if ioctl is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stropts + +int +main (void) +{ + + if(0 != ioctl(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctl="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctl="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl usage allowed" >&5 +printf %s "checking if ioctl usage allowed... " >&6; } + if test "x$cares_disallow_ioctl" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctl="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctl="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl might be used" >&5 +printf %s "checking if ioctl might be used... " >&6; } + if test "$tst_links_ioctl" = "yes" && + test "$tst_proto_ioctl" = "yes" && + test "$tst_compi_ioctl" = "yes" && + test "$tst_allow_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTL 1" >>confdefs.h + + ac_cv_func_ioctl="yes" + + # + tst_compi_ioctl_fionbio="unknown" + tst_allow_ioctl_fionbio="unknown" + # + if test "$ac_cv_func_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO is compilable" >&5 +printf %s "checking if ioctl FIONBIO is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stropts + +int +main (void) +{ + + int flags = 0; + if(0 != ioctl(0, FIONBIO, &flags)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctl_fionbio="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctl_fionbio="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctl_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO usage allowed" >&5 +printf %s "checking if ioctl FIONBIO usage allowed... " >&6; } + if test "x$cares_disallow_ioctl_fionbio" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctl_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctl_fionbio="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl FIONBIO might be used" >&5 +printf %s "checking if ioctl FIONBIO might be used... " >&6; } + if test "$tst_compi_ioctl_fionbio" = "yes" && + test "$tst_allow_ioctl_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTL_FIONBIO 1" >>confdefs.h + + ac_cv_func_ioctl_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctl_fionbio="no" + fi + + + # + tst_compi_ioctl_siocgifaddr="unknown" + tst_allow_ioctl_siocgifaddr="unknown" + # + if test "$ac_cv_func_ioctl" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR is compilable" >&5 +printf %s "checking if ioctl SIOCGIFADDR is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stropts + #include + +int +main (void) +{ + + struct ifreq ifr; + if(0 != ioctl(0, SIOCGIFADDR, &ifr)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctl_siocgifaddr="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctl_siocgifaddr="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR usage allowed" >&5 +printf %s "checking if ioctl SIOCGIFADDR usage allowed... " >&6; } + if test "x$cares_disallow_ioctl_siocgifaddr" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctl_siocgifaddr="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctl_siocgifaddr="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctl SIOCGIFADDR might be used" >&5 +printf %s "checking if ioctl SIOCGIFADDR might be used... " >&6; } + if test "$tst_compi_ioctl_siocgifaddr" = "yes" && + test "$tst_allow_ioctl_siocgifaddr" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTL_SIOCGIFADDR 1" >>confdefs.h + + ac_cv_func_ioctl_siocgifaddr="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctl_siocgifaddr="no" + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctl="no" + fi + + + # + tst_links_ioctlsocket="unknown" + tst_proto_ioctlsocket="unknown" + tst_compi_ioctlsocket="unknown" + tst_allow_ioctlsocket="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket can be linked" >&5 +printf %s "checking if ioctlsocket can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + +int +main (void) +{ + + if(0 != ioctlsocket(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_ioctlsocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_ioctlsocket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_ioctlsocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is prototyped" >&5 +printf %s "checking if ioctlsocket is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "ioctlsocket" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_ioctlsocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_ioctlsocket="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_ioctlsocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket is compilable" >&5 +printf %s "checking if ioctlsocket is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + +int +main (void) +{ + + if(0 != ioctlsocket(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctlsocket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctlsocket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctlsocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket usage allowed" >&5 +printf %s "checking if ioctlsocket usage allowed... " >&6; } + if test "x$cares_disallow_ioctlsocket" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctlsocket="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctlsocket="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket might be used" >&5 +printf %s "checking if ioctlsocket might be used... " >&6; } + if test "$tst_links_ioctlsocket" = "yes" && + test "$tst_proto_ioctlsocket" = "yes" && + test "$tst_compi_ioctlsocket" = "yes" && + test "$tst_allow_ioctlsocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTLSOCKET 1" >>confdefs.h + + ac_cv_func_ioctlsocket="yes" + + # + tst_compi_ioctlsocket_fionbio="unknown" + tst_allow_ioctlsocket_fionbio="unknown" + # + if test "$ac_cv_func_ioctlsocket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO is compilable" >&5 +printf %s "checking if ioctlsocket FIONBIO is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + +int +main (void) +{ + + int flags = 0; + if(0 != ioctlsocket(0, FIONBIO, &flags)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctlsocket_fionbio="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctlsocket_fionbio="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO usage allowed" >&5 +printf %s "checking if ioctlsocket FIONBIO usage allowed... " >&6; } + if test "x$cares_disallow_ioctlsocket_fionbio" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctlsocket_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctlsocket_fionbio="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if ioctlsocket FIONBIO might be used" >&5 +printf %s "checking if ioctlsocket FIONBIO might be used... " >&6; } + if test "$tst_compi_ioctlsocket_fionbio" = "yes" && + test "$tst_allow_ioctlsocket_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTLSOCKET_FIONBIO 1" >>confdefs.h + + ac_cv_func_ioctlsocket_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctlsocket_fionbio="no" + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctlsocket="no" + fi + + + # + tst_links_ioctlsocket_camel="unknown" + tst_proto_ioctlsocket_camel="unknown" + tst_compi_ioctlsocket_camel="unknown" + tst_allow_ioctlsocket_camel="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket can be linked" >&5 +printf %s "checking if IoctlSocket can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define IoctlSocket to an innocuous variant, in case declares IoctlSocket. + For example, HP-UX 11i declares gettimeofday. */ +#define IoctlSocket innocuous_IoctlSocket + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char IoctlSocket (); below. */ + +#include +#undef IoctlSocket + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char IoctlSocket (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_IoctlSocket || defined __stub___IoctlSocket +choke me +#endif + +int +main (void) +{ +return IoctlSocket (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_ioctlsocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_ioctlsocket_camel="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_ioctlsocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is prototyped" >&5 +printf %s "checking if IoctlSocket is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_stropts + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "IoctlSocket" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_ioctlsocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_ioctlsocket_camel="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_ioctlsocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket is compilable" >&5 +printf %s "checking if IoctlSocket is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stropts + +int +main (void) +{ + + if(0 != IoctlSocket(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctlsocket_camel="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctlsocket_camel="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctlsocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket usage allowed" >&5 +printf %s "checking if IoctlSocket usage allowed... " >&6; } + if test "x$cares_disallow_ioctlsocket_camel" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctlsocket_camel="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctlsocket_camel="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket might be used" >&5 +printf %s "checking if IoctlSocket might be used... " >&6; } + if test "$tst_links_ioctlsocket_camel" = "yes" && + test "$tst_proto_ioctlsocket_camel" = "yes" && + test "$tst_compi_ioctlsocket_camel" = "yes" && + test "$tst_allow_ioctlsocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTLSOCKET_CAMEL 1" >>confdefs.h + + ac_cv_func_ioctlsocket_camel="yes" + + # + tst_compi_ioctlsocket_camel_fionbio="unknown" + tst_allow_ioctlsocket_camel_fionbio="unknown" + # + if test "$ac_cv_func_ioctlsocket_camel" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO is compilable" >&5 +printf %s "checking if IoctlSocket FIONBIO is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_stropts + +int +main (void) +{ + + long flags = 0; + if(0 != ioctlsocket(0, FIONBIO, &flags)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_ioctlsocket_camel_fionbio="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_ioctlsocket_camel_fionbio="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO usage allowed" >&5 +printf %s "checking if IoctlSocket FIONBIO usage allowed... " >&6; } + if test "x$cares_disallow_ioctlsocket_camel_fionbio" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_ioctlsocket_camel_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_ioctlsocket_camel_fionbio="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if IoctlSocket FIONBIO might be used" >&5 +printf %s "checking if IoctlSocket FIONBIO might be used... " >&6; } + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && + test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_IOCTLSOCKET_CAMEL_FIONBIO 1" >>confdefs.h + + ac_cv_func_ioctlsocket_camel_fionbio="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctlsocket_camel_fionbio="no" + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_ioctlsocket_camel="no" + fi + + + # + tst_links_setsockopt="unknown" + tst_proto_setsockopt="unknown" + tst_compi_setsockopt="unknown" + tst_allow_setsockopt="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt can be linked" >&5 +printf %s "checking if setsockopt can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + +int +main (void) +{ + + if(0 != setsockopt(0, 0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_setsockopt="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_setsockopt="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_setsockopt" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt is prototyped" >&5 +printf %s "checking if setsockopt is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_sys_socket + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "setsockopt" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_setsockopt="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_setsockopt="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_setsockopt" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt is compilable" >&5 +printf %s "checking if setsockopt is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + +int +main (void) +{ + + if(0 != setsockopt(0, 0, 0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_setsockopt="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_setsockopt="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_setsockopt" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt usage allowed" >&5 +printf %s "checking if setsockopt usage allowed... " >&6; } + if test "x$cares_disallow_setsockopt" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_setsockopt="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_setsockopt="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt might be used" >&5 +printf %s "checking if setsockopt might be used... " >&6; } + if test "$tst_links_setsockopt" = "yes" && + test "$tst_proto_setsockopt" = "yes" && + test "$tst_compi_setsockopt" = "yes" && + test "$tst_allow_setsockopt" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_SETSOCKOPT 1" >>confdefs.h + + ac_cv_func_setsockopt="yes" + + # + tst_compi_setsockopt_so_nonblock="unknown" + tst_allow_setsockopt_so_nonblock="unknown" + # + if test "$ac_cv_func_setsockopt" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK is compilable" >&5 +printf %s "checking if setsockopt SO_NONBLOCK is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + +int +main (void) +{ + + if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_setsockopt_so_nonblock="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_setsockopt_so_nonblock="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK usage allowed" >&5 +printf %s "checking if setsockopt SO_NONBLOCK usage allowed... " >&6; } + if test "x$cares_disallow_setsockopt_so_nonblock" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_setsockopt_so_nonblock="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_setsockopt_so_nonblock="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if setsockopt SO_NONBLOCK might be used" >&5 +printf %s "checking if setsockopt SO_NONBLOCK might be used... " >&6; } + if test "$tst_compi_setsockopt_so_nonblock" = "yes" && + test "$tst_allow_setsockopt_so_nonblock" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_SETSOCKOPT_SO_NONBLOCK 1" >>confdefs.h + + ac_cv_func_setsockopt_so_nonblock="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_setsockopt_so_nonblock="no" + fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_setsockopt="no" + fi + + + # + tst_links_socket="unknown" + tst_proto_socket="unknown" + tst_compi_socket="unknown" + tst_allow_socket="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket can be linked" >&5 +printf %s "checking if socket can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +int +main (void) +{ + + if(0 != socket(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_socket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_socket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_socket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket is prototyped" >&5 +printf %s "checking if socket is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "socket" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_socket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_socket="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_socket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket is compilable" >&5 +printf %s "checking if socket is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + +int +main (void) +{ + + if(0 != socket(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_socket="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_socket="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_socket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket usage allowed" >&5 +printf %s "checking if socket usage allowed... " >&6; } + if test "x$cares_disallow_socket" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_socket="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_socket="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if socket might be used" >&5 +printf %s "checking if socket might be used... " >&6; } + if test "$tst_links_socket" = "yes" && + test "$tst_proto_socket" = "yes" && + test "$tst_compi_socket" = "yes" && + test "$tst_allow_socket" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_SOCKET 1" >>confdefs.h + + ac_cv_func_socket="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_socket="no" + fi + + + # + tst_links_strcasecmp="unknown" + tst_proto_strcasecmp="unknown" + tst_compi_strcasecmp="unknown" + tst_allow_strcasecmp="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp can be linked" >&5 +printf %s "checking if strcasecmp can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strcasecmp to an innocuous variant, in case declares strcasecmp. + For example, HP-UX 11i declares gettimeofday. */ +#define strcasecmp innocuous_strcasecmp + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strcasecmp (); below. */ + +#include +#undef strcasecmp + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strcasecmp (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strcasecmp || defined __stub___strcasecmp +choke me +#endif + +int +main (void) +{ +return strcasecmp (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strcasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strcasecmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strcasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is prototyped" >&5 +printf %s "checking if strcasecmp is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strcasecmp" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strcasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strcasecmp="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strcasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp is compilable" >&5 +printf %s "checking if strcasecmp is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strcasecmp(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strcasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strcasecmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strcasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp usage allowed" >&5 +printf %s "checking if strcasecmp usage allowed... " >&6; } + if test "x$cares_disallow_strcasecmp" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strcasecmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strcasecmp="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcasecmp might be used" >&5 +printf %s "checking if strcasecmp might be used... " >&6; } + if test "$tst_links_strcasecmp" = "yes" && + test "$tst_proto_strcasecmp" = "yes" && + test "$tst_compi_strcasecmp" = "yes" && + test "$tst_allow_strcasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRCASECMP 1" >>confdefs.h + + ac_cv_func_strcasecmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strcasecmp="no" + fi + + + # + tst_links_strcmpi="unknown" + tst_proto_strcmpi="unknown" + tst_compi_strcmpi="unknown" + tst_allow_strcmpi="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi can be linked" >&5 +printf %s "checking if strcmpi can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strcmpi to an innocuous variant, in case declares strcmpi. + For example, HP-UX 11i declares gettimeofday. */ +#define strcmpi innocuous_strcmpi + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strcmpi (); below. */ + +#include +#undef strcmpi + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strcmpi (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strcmpi || defined __stub___strcmpi +choke me +#endif + +int +main (void) +{ +return strcmpi (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strcmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strcmpi="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strcmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is prototyped" >&5 +printf %s "checking if strcmpi is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strcmpi" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strcmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strcmpi="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strcmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi is compilable" >&5 +printf %s "checking if strcmpi is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strcmpi(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strcmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strcmpi="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strcmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi usage allowed" >&5 +printf %s "checking if strcmpi usage allowed... " >&6; } + if test "x$cares_disallow_strcmpi" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strcmpi="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strcmpi="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strcmpi might be used" >&5 +printf %s "checking if strcmpi might be used... " >&6; } + if test "$tst_links_strcmpi" = "yes" && + test "$tst_proto_strcmpi" = "yes" && + test "$tst_compi_strcmpi" = "yes" && + test "$tst_allow_strcmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRCMPI 1" >>confdefs.h + + ac_cv_func_strcmpi="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strcmpi="no" + fi + + + # + tst_links_strdup="unknown" + tst_proto_strdup="unknown" + tst_compi_strdup="unknown" + tst_allow_strdup="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup can be linked" >&5 +printf %s "checking if strdup can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strdup to an innocuous variant, in case declares strdup. + For example, HP-UX 11i declares gettimeofday. */ +#define strdup innocuous_strdup + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strdup (); below. */ + +#include +#undef strdup + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strdup (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strdup || defined __stub___strdup +choke me +#endif + +int +main (void) +{ +return strdup (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strdup="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strdup="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strdup" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup is prototyped" >&5 +printf %s "checking if strdup is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strdup" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strdup="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strdup="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strdup" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup is compilable" >&5 +printf %s "checking if strdup is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strdup(0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strdup="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strdup="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strdup" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup usage allowed" >&5 +printf %s "checking if strdup usage allowed... " >&6; } + if test "x$cares_disallow_strdup" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strdup="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strdup="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strdup might be used" >&5 +printf %s "checking if strdup might be used... " >&6; } + if test "$tst_links_strdup" = "yes" && + test "$tst_proto_strdup" = "yes" && + test "$tst_compi_strdup" = "yes" && + test "$tst_allow_strdup" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRDUP 1" >>confdefs.h + + ac_cv_func_strdup="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strdup="no" + fi + + + # + tst_links_stricmp="unknown" + tst_proto_stricmp="unknown" + tst_compi_stricmp="unknown" + tst_allow_stricmp="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp can be linked" >&5 +printf %s "checking if stricmp can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define stricmp to an innocuous variant, in case declares stricmp. + For example, HP-UX 11i declares gettimeofday. */ +#define stricmp innocuous_stricmp + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char stricmp (); below. */ + +#include +#undef stricmp + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char stricmp (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_stricmp || defined __stub___stricmp +choke me +#endif + +int +main (void) +{ +return stricmp (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_stricmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_stricmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_stricmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is prototyped" >&5 +printf %s "checking if stricmp is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "stricmp" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_stricmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_stricmp="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_stricmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp is compilable" >&5 +printf %s "checking if stricmp is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != stricmp(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_stricmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_stricmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_stricmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp usage allowed" >&5 +printf %s "checking if stricmp usage allowed... " >&6; } + if test "x$cares_disallow_stricmp" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_stricmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_stricmp="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if stricmp might be used" >&5 +printf %s "checking if stricmp might be used... " >&6; } + if test "$tst_links_stricmp" = "yes" && + test "$tst_proto_stricmp" = "yes" && + test "$tst_compi_stricmp" = "yes" && + test "$tst_allow_stricmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRICMP 1" >>confdefs.h + + ac_cv_func_stricmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_stricmp="no" + fi + + + # + tst_links_strncasecmp="unknown" + tst_proto_strncasecmp="unknown" + tst_compi_strncasecmp="unknown" + tst_allow_strncasecmp="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncasecmp can be linked" >&5 +printf %s "checking if strncasecmp can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strncasecmp to an innocuous variant, in case declares strncasecmp. + For example, HP-UX 11i declares gettimeofday. */ +#define strncasecmp innocuous_strncasecmp + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strncasecmp (); below. */ + +#include +#undef strncasecmp + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strncasecmp (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strncasecmp || defined __stub___strncasecmp +choke me +#endif + +int +main (void) +{ +return strncasecmp (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strncasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strncasecmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strncasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is prototyped" >&5 +printf %s "checking if strncasecmp is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strncasecmp" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strncasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strncasecmp="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strncasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncasecmp is compilable" >&5 +printf %s "checking if strncasecmp is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strncasecmp(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strncasecmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strncasecmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strncasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncasecmp usage allowed" >&5 +printf %s "checking if strncasecmp usage allowed... " >&6; } + if test "x$cares_disallow_strncasecmp" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strncasecmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strncasecmp="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncasecmp might be used" >&5 +printf %s "checking if strncasecmp might be used... " >&6; } + if test "$tst_links_strncasecmp" = "yes" && + test "$tst_proto_strncasecmp" = "yes" && + test "$tst_compi_strncasecmp" = "yes" && + test "$tst_allow_strncasecmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRNCASECMP 1" >>confdefs.h + + ac_cv_func_strncasecmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strncasecmp="no" + fi + + + # + tst_links_strncmpi="unknown" + tst_proto_strncmpi="unknown" + tst_compi_strncmpi="unknown" + tst_allow_strncmpi="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi can be linked" >&5 +printf %s "checking if strncmpi can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strncmpi to an innocuous variant, in case declares strncmpi. + For example, HP-UX 11i declares gettimeofday. */ +#define strncmpi innocuous_strncmpi + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strncmpi (); below. */ + +#include +#undef strncmpi + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strncmpi (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strncmpi || defined __stub___strncmpi +choke me +#endif + +int +main (void) +{ +return strncmpi (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strncmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strncmpi="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strncmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi is prototyped" >&5 +printf %s "checking if strncmpi is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strncmpi" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strncmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strncmpi="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strncmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi is compilable" >&5 +printf %s "checking if strncmpi is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strncmpi(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strncmpi="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strncmpi="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strncmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi usage allowed" >&5 +printf %s "checking if strncmpi usage allowed... " >&6; } + if test "x$cares_disallow_strncmpi" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strncmpi="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strncmpi="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strncmpi might be used" >&5 +printf %s "checking if strncmpi might be used... " >&6; } + if test "$tst_links_strncmpi" = "yes" && + test "$tst_proto_strncmpi" = "yes" && + test "$tst_compi_strncmpi" = "yes" && + test "$tst_allow_strncmpi" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRNCMPI 1" >>confdefs.h + + ac_cv_func_strncmpi="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strncmpi="no" + fi + + + # + tst_links_strnicmp="unknown" + tst_proto_strnicmp="unknown" + tst_compi_strnicmp="unknown" + tst_allow_strnicmp="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp can be linked" >&5 +printf %s "checking if strnicmp can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define strnicmp to an innocuous variant, in case declares strnicmp. + For example, HP-UX 11i declares gettimeofday. */ +#define strnicmp innocuous_strnicmp + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char strnicmp (); below. */ + +#include +#undef strnicmp + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char strnicmp (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_strnicmp || defined __stub___strnicmp +choke me +#endif + +int +main (void) +{ +return strnicmp (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_strnicmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_strnicmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_strnicmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp is prototyped" >&5 +printf %s "checking if strnicmp is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_string + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "strnicmp" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_strnicmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_strnicmp="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_strnicmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp is compilable" >&5 +printf %s "checking if strnicmp is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_string + +int +main (void) +{ + + if(0 != strnicmp(0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_strnicmp="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_strnicmp="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_strnicmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp usage allowed" >&5 +printf %s "checking if strnicmp usage allowed... " >&6; } + if test "x$cares_disallow_strnicmp" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_strnicmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_strnicmp="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if strnicmp might be used" >&5 +printf %s "checking if strnicmp might be used... " >&6; } + if test "$tst_links_strnicmp" = "yes" && + test "$tst_proto_strnicmp" = "yes" && + test "$tst_compi_strnicmp" = "yes" && + test "$tst_allow_strnicmp" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRNICMP 1" >>confdefs.h + + ac_cv_func_strnicmp="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_strnicmp="no" + fi + + +cares_includes_sys_uio="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_UIO_H +# include +#endif +/* includes end */" + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$cares_includes_sys_uio +" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/uio.h" "ac_cv_header_sys_uio_h" "$cares_includes_sys_uio +" +if test "x$ac_cv_header_sys_uio_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_UIO_H 1" >>confdefs.h + +fi + + + + # + tst_links_writev="unknown" + tst_proto_writev="unknown" + tst_compi_writev="unknown" + tst_allow_writev="unknown" + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev can be linked" >&5 +printf %s "checking if writev can be linked... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define writev to an innocuous variant, in case declares writev. + For example, HP-UX 11i declares gettimeofday. */ +#define writev innocuous_writev + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char writev (); below. */ + +#include +#undef writev + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char writev (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_writev || defined __stub___writev +choke me +#endif + +int +main (void) +{ +return writev (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_links_writev="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_links_writev="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$tst_links_writev" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev is prototyped" >&5 +printf %s "checking if writev is prototyped... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + $cares_includes_sys_uio + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "writev" >/dev/null 2>&1 +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_proto_writev="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_proto_writev="no" + +fi +rm -rf conftest* + + fi + # + if test "$tst_proto_writev" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev is compilable" >&5 +printf %s "checking if writev is compilable... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + $cares_includes_sys_uio + +int +main (void) +{ + + if(0 != writev(0, 0, 0)) + return 1; + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_compi_writev="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_compi_writev="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + # + if test "$tst_compi_writev" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev usage allowed" >&5 +printf %s "checking if writev usage allowed... " >&6; } + if test "x$cares_disallow_writev" != "xyes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + tst_allow_writev="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + tst_allow_writev="no" + fi + fi + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking if writev might be used" >&5 +printf %s "checking if writev might be used... " >&6; } + if test "$tst_links_writev" = "yes" && + test "$tst_proto_writev" = "yes" && + test "$tst_compi_writev" = "yes" && + test "$tst_allow_writev" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_WRITEV 1" >>confdefs.h + + ac_cv_func_writev="yes" + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + ac_cv_func_writev="no" + fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for PF_INET6" >&5 +printf %s "checking for PF_INET6... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + + + #ifdef PF_INET6 + VARIABLEWASDEFINED + #else + NJET + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "VARIABLEWASDEFINED" >/dev/null 2>&1 +then : + ac_constant="yes" +else $as_nop + ac_constant="no" + +fi +rm -rf conftest* + + if test "$ac_constant" = "yes" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_PF_INET6 1" >>confdefs.h + + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for AF_INET6" >&5 +printf %s "checking for AF_INET6... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + + + #ifdef AF_INET6 + VARIABLEWASDEFINED + #else + NJET + #endif + +_ACEOF +if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | + $EGREP "VARIABLEWASDEFINED" >/dev/null 2>&1 +then : + ac_constant="yes" +else $as_nop + ac_constant="no" + +fi +rm -rf conftest* + + if test "$ac_constant" = "yes" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_AF_INET6 1" >>confdefs.h + + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + fi + + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct in6_addr" >&5 +printf %s "checking for struct in6_addr... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + +int +main (void) +{ + + struct in6_addr struct_instance; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_struct="yes" +else $as_nop + ac_found="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$ac_struct" = "yes" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRUCT_IN6_ADDR 1" >>confdefs.h + + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for struct sockaddr_in6" >&5 +printf %s "checking for struct sockaddr_in6... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + +int +main (void) +{ + + struct sockaddr_in6 struct_instance; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_struct="yes" +else $as_nop + ac_found="no" +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test "$ac_struct" = "yes" ; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + +printf "%s\n" "#define HAVE_STRUCT_SOCKADDR_IN6 1" >>confdefs.h + ac_have_sockaddr_in6=yes + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + + fi + + +ac_fn_c_check_member "$LINENO" "struct sockaddr_in6" "sin6_scope_id" "ac_cv_member_struct_sockaddr_in6_sin6_scope_id" " +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + +" +if test "x$ac_cv_member_struct_sockaddr_in6_sin6_scope_id" = xyes +then : + +printf "%s\n" "#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1" >>confdefs.h + + +fi + + +ac_fn_c_check_member "$LINENO" "struct addrinfo" "ai_flags" "ac_cv_member_struct_addrinfo_ai_flags" " +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#endif + + +" +if test "x$ac_cv_member_struct_addrinfo_ai_flags" = xyes +then : + +printf "%s\n" "#define HAVE_STRUCT_ADDRINFO 1" >>confdefs.h + +fi + + + + + for ac_func in bitncmp gettimeofday if_indextoname +do : + as_ac_var=`printf "%s\n" "ac_cv_func_$ac_func" | $as_tr_sh` +ac_fn_c_check_func "$LINENO" "$ac_func" "$as_ac_var" +if eval test \"x\$"$as_ac_var"\" = x"yes" +then : + cat >>confdefs.h <<_ACEOF +#define `printf "%s\n" "HAVE_$ac_func" | $as_tr_cpp` 1 +_ACEOF + + +else $as_nop + + func="$ac_func" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking deeper for $func" >&5 +printf %s "checking deeper for $func... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + $func (); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + eval "ac_cv_func_$func=yes" + +cat >>confdefs.h <<_ACEOF +#define `echo "HAVE_$func" | sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | sed 's/^A-Z0-9_/_/g'` 1 +_ACEOF + + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 +printf "%s\n" "but still no" >&6; } + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + +fi + +done + +ac_fn_c_check_func "$LINENO" "__system_property_get" "ac_cv_func___system_property_get" +if test "x$ac_cv_func___system_property_get" = xyes +then : + + +printf "%s\n" "#define HAVE___SYSTEM_PROPERTY_GET 1" >>confdefs.h + + +fi + + + + ac_fn_c_check_header_compile "$LINENO" "sys/types.h" "ac_cv_header_sys_types_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_types_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_TYPES_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "sys/socket.h" "ac_cv_header_sys_socket_h" "$ac_includes_default" +if test "x$ac_cv_header_sys_socket_h" = xyes +then : + printf "%s\n" "#define HAVE_SYS_SOCKET_H 1" >>confdefs.h + +fi +ac_fn_c_check_header_compile "$LINENO" "netdb.h" "ac_cv_header_netdb_h" "$ac_includes_default" +if test "x$ac_cv_header_netdb_h" = xyes +then : + printf "%s\n" "#define HAVE_NETDB_H 1" >>confdefs.h + +fi + + # + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for getnameinfo" >&5 +printf %s "checking for getnameinfo... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + /* Define getnameinfo to an innocuous variant, in case declares getnameinfo. + For example, HP-UX 11i declares gettimeofday. */ +#define getnameinfo innocuous_getnameinfo + +/* System header to define __stub macros and hopefully few prototypes, + which can conflict with char getnameinfo (); below. */ + +#include +#undef getnameinfo + +/* Override any GCC internal prototype to avoid an error. + Use char because int might match the return type of a GCC + builtin and then its argument prototype would still apply. */ +#ifdef __cplusplus +extern "C" +#endif +char getnameinfo (); +/* The GNU C library defines this for functions which it implements + to always fail with ENOSYS. Some functions are actually named + something starting with __ and the normal name is an alias. */ +#if defined __stub_getnameinfo || defined __stub___getnameinfo +choke me +#endif + +int +main (void) +{ +return getnameinfo (); + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_getnameinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + curl_cv_getnameinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + # + if test "$curl_cv_getnameinfo" != "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking deeper for getnameinfo" >&5 +printf %s "checking deeper for getnameinfo... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + + +int +main (void) +{ + + getnameinfo(); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_getnameinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 +printf "%s\n" "but still no" >&6; } + curl_cv_getnameinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + # + if test "$curl_cv_getnameinfo" != "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking deeper and deeper for getnameinfo" >&5 +printf %s "checking deeper and deeper for getnameinfo... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#endif + +int +main (void) +{ + + getnameinfo(0, 0, 0, 0, 0, 0, 0); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_link "$LINENO" +then : + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + curl_cv_getnameinfo="yes" + +else $as_nop + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: but still no" >&5 +printf "%s\n" "but still no" >&6; } + curl_cv_getnameinfo="no" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam \ + conftest$ac_exeext conftest.$ac_ext + fi + # + if test "$curl_cv_getnameinfo" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking types of arguments for getnameinfo" >&5 +printf %s "checking types of arguments for getnameinfo... " >&6; } +if test ${curl_cv_func_getnameinfo_args+y} +then : + printf %s "(cached) " >&6 +else $as_nop + + curl_cv_func_getnameinfo_args="unknown" + for gni_arg1 in 'struct sockaddr *' 'const struct sockaddr *' 'void *'; do + for gni_arg2 in 'socklen_t' 'size_t' 'int'; do + for gni_arg46 in 'size_t' 'int' 'socklen_t' 'unsigned int' 'DWORD'; do + for gni_arg7 in 'int' 'unsigned int'; do + if test "$curl_cv_func_getnameinfo_args" = "unknown"; then + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + + +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#if (!defined(_WIN32_WINNT)) || (_WIN32_WINNT < 0x0501) +#undef _WIN32_WINNT +#define _WIN32_WINNT 0x0501 +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#define GNICALLCONV WSAAPI +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#define GNICALLCONV +#endif + extern int GNICALLCONV getnameinfo($gni_arg1, $gni_arg2, + char *, $gni_arg46, + char *, $gni_arg46, + $gni_arg7); + +int +main (void) +{ + + $gni_arg2 salen=0; + $gni_arg46 hostlen=0; + $gni_arg46 servlen=0; + $gni_arg7 flags=0; + int res = getnameinfo(0, salen, 0, hostlen, 0, servlen, flags); + + ; + return 0; +} + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + curl_cv_func_getnameinfo_args="$gni_arg1,$gni_arg2,$gni_arg46,$gni_arg7" + +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + done + done + done + done + +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $curl_cv_func_getnameinfo_args" >&5 +printf "%s\n" "$curl_cv_func_getnameinfo_args" >&6; } # AC-CACHE-CHECK + if test "$curl_cv_func_getnameinfo_args" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Cannot find proper types to use for getnameinfo args" >&5 +printf "%s\n" "$as_me: WARNING: Cannot find proper types to use for getnameinfo args" >&2;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: HAVE_GETNAMEINFO will not be defined" >&5 +printf "%s\n" "$as_me: WARNING: HAVE_GETNAMEINFO will not be defined" >&2;} + else + gni_prev_IFS=$IFS; IFS=',' + set dummy `echo "$curl_cv_func_getnameinfo_args" | sed 's/\*/\*/g'` + IFS=$gni_prev_IFS + shift + # + gni_qual_type_arg1=$1 + # + +printf "%s\n" "#define GETNAMEINFO_TYPE_ARG2 $2" >>confdefs.h + + +printf "%s\n" "#define GETNAMEINFO_TYPE_ARG46 $3" >>confdefs.h + + +printf "%s\n" "#define GETNAMEINFO_TYPE_ARG7 $4" >>confdefs.h + + # + prev_sh_opts=$- + # + case $prev_sh_opts in + *f*) + ;; + *) + set -f + ;; + esac + # + case "$gni_qual_type_arg1" in + const*) + gni_qual_arg1=const + gni_type_arg1=`echo $gni_qual_type_arg1 | sed 's/^const //'` + ;; + *) + gni_qual_arg1= + gni_type_arg1=$gni_qual_type_arg1 + ;; + esac + # + +printf "%s\n" "#define GETNAMEINFO_QUAL_ARG1 $gni_qual_arg1" >>confdefs.h + + +printf "%s\n" "#define GETNAMEINFO_TYPE_ARG1 $gni_type_arg1" >>confdefs.h + + # + case $prev_sh_opts in + *f*) + ;; + *) + set +f + ;; + esac + # + +printf "%s\n" "#define HAVE_GETNAMEINFO 1" >>confdefs.h + + ac_cv_func_getnameinfo="yes" + fi + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether byte ordering is bigendian" >&5 +printf %s "checking whether byte ordering is bigendian... " >&6; } +if test ${ac_cv_c_bigendian+y} +then : + printf %s "(cached) " >&6 +else $as_nop + ac_cv_c_bigendian=unknown + # See if we're dealing with a universal compiler. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#ifndef __APPLE_CC__ + not a universal capable compiler + #endif + typedef int dummy; + +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + + # Check for potential -arch flags. It is not universal unless + # there are at least two -arch flags with different values. + ac_arch= + ac_prev= + for ac_word in $CC $CFLAGS $CPPFLAGS $LDFLAGS; do + if test -n "$ac_prev"; then + case $ac_word in + i?86 | x86_64 | ppc | ppc64) + if test -z "$ac_arch" || test "$ac_arch" = "$ac_word"; then + ac_arch=$ac_word + else + ac_cv_c_bigendian=universal + break + fi + ;; + esac + ac_prev= + elif test "x$ac_word" = "x-arch"; then + ac_prev=arch + fi + done +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + if test $ac_cv_c_bigendian = unknown; then + # See if sys/param.h defines the BYTE_ORDER macro. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if ! (defined BYTE_ORDER && defined BIG_ENDIAN \ + && defined LITTLE_ENDIAN && BYTE_ORDER && BIG_ENDIAN \ + && LITTLE_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + #include + +int +main (void) +{ +#if BYTE_ORDER != BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # See if defines _LITTLE_ENDIAN or _BIG_ENDIAN (e.g., Solaris). + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#if ! (defined _LITTLE_ENDIAN || defined _BIG_ENDIAN) + bogus endian macros + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + # It does; now see whether it defined to _BIG_ENDIAN or not. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +#include + +int +main (void) +{ +#ifndef _BIG_ENDIAN + not big endian + #endif + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + ac_cv_c_bigendian=yes +else $as_nop + ac_cv_c_bigendian=no +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext + fi + if test $ac_cv_c_bigendian = unknown; then + # Compile a test program. + if test "$cross_compiling" = yes +then : + # Try to guess by grepping values from an object file. + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +unsigned short int ascii_mm[] = + { 0x4249, 0x4765, 0x6E44, 0x6961, 0x6E53, 0x7953, 0 }; + unsigned short int ascii_ii[] = + { 0x694C, 0x5454, 0x656C, 0x6E45, 0x6944, 0x6E61, 0 }; + int use_ascii (int i) { + return ascii_mm[i] + ascii_ii[i]; + } + unsigned short int ebcdic_ii[] = + { 0x89D3, 0xE3E3, 0x8593, 0x95C5, 0x89C4, 0x9581, 0 }; + unsigned short int ebcdic_mm[] = + { 0xC2C9, 0xC785, 0x95C4, 0x8981, 0x95E2, 0xA8E2, 0 }; + int use_ebcdic (int i) { + return ebcdic_mm[i] + ebcdic_ii[i]; + } + extern int foo; + +int +main (void) +{ +return use_ascii (foo) == use_ebcdic (foo); + ; + return 0; +} +_ACEOF +if ac_fn_c_try_compile "$LINENO" +then : + if grep BIGenDianSyS conftest.$ac_objext >/dev/null; then + ac_cv_c_bigendian=yes + fi + if grep LiTTleEnDian conftest.$ac_objext >/dev/null ; then + if test "$ac_cv_c_bigendian" = unknown; then + ac_cv_c_bigendian=no + else + # finding both strings is unlikely to happen, but who knows? + ac_cv_c_bigendian=unknown + fi + fi +fi +rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext +else $as_nop + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ +$ac_includes_default +int +main (void) +{ + + /* Are we little or big endian? From Harbison&Steele. */ + union + { + long int l; + char c[sizeof (long int)]; + } u; + u.l = 1; + return u.c[sizeof (long int) - 1] == 1; + + ; + return 0; +} +_ACEOF +if ac_fn_c_try_run "$LINENO" +then : + ac_cv_c_bigendian=no +else $as_nop + ac_cv_c_bigendian=yes +fi +rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext \ + conftest.$ac_objext conftest.beam conftest.$ac_ext +fi + + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_bigendian" >&5 +printf "%s\n" "$ac_cv_c_bigendian" >&6; } + case $ac_cv_c_bigendian in #( + yes) + +printf "%s\n" "#define ARES_BIG_ENDIAN 1" >>confdefs.h +;; #( + no) + ;; #( + universal) + +printf "%s\n" "#define AC_APPLE_UNIVERSAL_BUILD 1" >>confdefs.h + + ;; #( + *) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: couldn't figure out endianess, assuming little endian!" >&5 +printf "%s\n" "$as_me: WARNING: couldn't figure out endianess, assuming little endian!" >&2;} + ;; + esac + + + +# Check whether --with-random was given. +if test ${with_random+y} +then : + withval=$with_random; CARES_RANDOM_FILE="$withval" +else $as_nop + + if test "$cross_compiling" = "no"; then + as_ac_File=`printf "%s\n" "ac_cv_file_"/dev/urandom"" | $as_tr_sh` +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for \"/dev/urandom\"" >&5 +printf %s "checking for \"/dev/urandom\"... " >&6; } +if eval test \${$as_ac_File+y} +then : + printf %s "(cached) " >&6 +else $as_nop + test "$cross_compiling" = yes && + as_fn_error $? "cannot check for file existence when cross compiling" "$LINENO" 5 +if test -r ""/dev/urandom""; then + eval "$as_ac_File=yes" +else + eval "$as_ac_File=no" +fi +fi +eval ac_res=\$$as_ac_File + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5 +printf "%s\n" "$ac_res" >&6; } +if eval test \"x\$"$as_ac_File"\" = x"yes" +then : + CARES_RANDOM_FILE="/dev/urandom" +fi + + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot check for /dev/urandom while cross compiling; assuming none" >&5 +printf "%s\n" "$as_me: WARNING: cannot check for /dev/urandom while cross compiling; assuming none" >&2;} + fi + + + +fi + +if test -n "$CARES_RANDOM_FILE" && test X"$CARES_RANDOM_FILE" != Xno ; then + + +printf "%s\n" "#define CARES_RANDOM_FILE \"$CARES_RANDOM_FILE\"" >>confdefs.h + +fi + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to enable non-blocking communications" >&5 +printf %s "checking whether to enable non-blocking communications... " >&6; } + OPT_NONBLOCKING="default" + # Check whether --enable-nonblocking was given. +if test ${enable_nonblocking+y} +then : + enableval=$enable_nonblocking; OPT_NONBLOCKING=$enableval +fi + + case "$OPT_NONBLOCKING" in + no) + want_nonblocking="no" + ;; + default) + want_nonblocking="yes" + ;; + *) + want_nonblocking="yes" + ;; + esac + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $want_nonblocking" >&5 +printf "%s\n" "$want_nonblocking" >&6; } + + + # + tst_method="unknown" + if test "$want_nonblocking" = "yes"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking how to set a socket into non-blocking mode" >&5 +printf %s "checking how to set a socket into non-blocking mode... " >&6; } + if test "x$ac_cv_func_fcntl_o_nonblock" = "xyes"; then + tst_method="fcntl O_NONBLOCK" + elif test "x$ac_cv_func_ioctl_fionbio" = "xyes"; then + tst_method="ioctl FIONBIO" + elif test "x$ac_cv_func_ioctlsocket_fionbio" = "xyes"; then + tst_method="ioctlsocket FIONBIO" + elif test "x$ac_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then + tst_method="IoctlSocket FIONBIO" + elif test "x$ac_cv_func_setsockopt_so_nonblock" = "xyes"; then + tst_method="setsockopt SO_NONBLOCK" + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $tst_method" >&5 +printf "%s\n" "$tst_method" >&6; } + if test "$tst_method" = "unknown"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cannot determine non-blocking socket method." >&5 +printf "%s\n" "$as_me: WARNING: cannot determine non-blocking socket method." >&2;} + fi + fi + if test "$tst_method" = "unknown"; then + +printf "%s\n" "#define USE_BLOCKING_SOCKETS 1" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: non-blocking sockets disabled." >&5 +printf "%s\n" "$as_me: WARNING: non-blocking sockets disabled." >&2;} + fi + + + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether hiding of library internal symbols will actually happen" >&5 +printf %s "checking whether hiding of library internal symbols will actually happen... " >&6; } + CFLAG_CARES_SYMBOL_HIDING="" + doing_symbol_hiding="no" + if test x"$ac_cv_native_windows" != "xyes" && + test "$want_symbol_hiding" = "yes" && + test "$supports_symbol_hiding" = "yes"; then + doing_symbol_hiding="yes" + CFLAG_CARES_SYMBOL_HIDING="$symbol_hiding_CFLAGS" + +printf "%s\n" "#define CARES_SYMBOL_SCOPE_EXTERN $symbol_hiding_EXTERN" >>confdefs.h + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5 +printf "%s\n" "yes" >&6; } + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: no" >&5 +printf "%s\n" "no" >&6; } + fi + if test x$doing_symbol_hiding = xyes; then + DOING_CARES_SYMBOL_HIDING_TRUE= + DOING_CARES_SYMBOL_HIDING_FALSE='#' +else + DOING_CARES_SYMBOL_HIDING_TRUE='#' + DOING_CARES_SYMBOL_HIDING_FALSE= +fi + + + if test "$doing_symbol_hiding" = "yes"; then + +printf "%s\n" "#define CARES_SYMBOL_HIDING 1" >>confdefs.h + + fi + + +CARES_PRIVATE_LIBS="$LIBS" + + +CARES_CFLAG_EXTRAS="" +if test X"$want_werror" = Xyes; then + CARES_CFLAG_EXTRAS="-Werror" +fi + + + +squeeze CFLAGS +squeeze CPPFLAGS +squeeze DEFS +squeeze LDFLAGS +squeeze LIBS + +squeeze CARES_PRIVATE_LIBS + + + + xc_bad_var_libs=no + for xc_word in $LIBS; do + case "$xc_word" in + -l* | --library=*) + : + ;; + *) + xc_bad_var_libs=yes + ;; + esac + done + if test $xc_bad_var_libs = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LIBS: $LIBS" >&5 +printf "%s\n" "$as_me: using LIBS: $LIBS" >&6;} + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: LIBS error: LIBS may only be used to specify libraries (-lname)." >&5 +printf "%s\n" "$as_me: LIBS error: LIBS may only be used to specify libraries (-lname)." >&6;} + fi + + + xc_bad_var_ldflags=no + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_ldflags=yes + ;; + -U*) + xc_bad_var_ldflags=yes + ;; + -I*) + xc_bad_var_ldflags=yes + ;; + -l* | --library=*) + xc_bad_var_ldflags=yes + ;; + esac + done + if test $xc_bad_var_ldflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using LDFLAGS: $LDFLAGS" >&5 +printf "%s\n" "$as_me: using LDFLAGS: $LDFLAGS" >&6;} + xc_bad_var_msg="LDFLAGS error: LDFLAGS may only be used to specify linker flags, not" + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -U*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -I*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + + xc_bad_var_cppflags=no + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + xc_bad_var_cppflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cppflags=yes + ;; + -l* | --library=*) + xc_bad_var_cppflags=yes + ;; + esac + done + if test $xc_bad_var_cppflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CPPFLAGS: $CPPFLAGS" >&5 +printf "%s\n" "$as_me: using CPPFLAGS: $CPPFLAGS" >&6;} + xc_bad_var_msg="CPPFLAGS error: CPPFLAGS may only be used to specify C preprocessor flags, not" + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -L* | --library-path=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + + xc_bad_var_cflags=no + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_cflags=yes + ;; + -U*) + xc_bad_var_cflags=yes + ;; + -I*) + xc_bad_var_cflags=yes + ;; + -rpath*) + xc_bad_var_cflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cflags=yes + ;; + -l* | --library=*) + xc_bad_var_cflags=yes + ;; + esac + done + if test $xc_bad_var_cflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: using CFLAGS: $CFLAGS" >&5 +printf "%s\n" "$as_me: using CFLAGS: $CFLAGS" >&6;} + xc_bad_var_msg="CFLAGS error: CFLAGS may only be used to specify C compiler flags, not" + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -U*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -I*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word" >&6;} + ;; + -rpath*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -L* | --library-path=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word" >&6;} + ;; + -l* | --library=*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&5 +printf "%s\n" "$as_me: $xc_bad_var_msg libraries. Use LIBS for: $xc_word" >&6;} + ;; + esac + done + fi + + if test $xc_bad_var_libs = yes || + test $xc_bad_var_cflags = yes || + test $xc_bad_var_ldflags = yes || + test $xc_bad_var_cppflags = yes; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: Continuing even with errors mentioned immediately above this line." >&5 +printf "%s\n" "$as_me: WARNING: Continuing even with errors mentioned immediately above this line." >&2;} + fi + + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether to build tests" >&5 +printf %s "checking whether to build tests... " >&6; } +# Check whether --enable-tests was given. +if test ${enable_tests+y} +then : + enableval=$enable_tests; build_tests="$enableval" +else $as_nop + if test "x$HAVE_CXX11" = "x1" && test "x$cross_compiling" = "xno" ; then + build_tests="yes" + else + build_tests="no" + fi + + +fi + + +if test "x$build_tests" = "xyes" ; then + if test "x$HAVE_CXX11" = "0" ; then + as_fn_error $? "*** Building tests requires a CXX11 compiler" "$LINENO" 5 + fi + if test "x$cross_compiling" = "xyes" ; then + as_fn_error $? "*** Tests not supported when cross compiling" "$LINENO" 5 + fi +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $build_tests" >&5 +printf "%s\n" "$build_tests" >&6; } + + +BUILD_SUBDIRS="include src docs" +if test "x$build_tests" = "xyes" ; then + + +subdirs="$subdirs test" + + BUILD_SUBDIRS="${BUILD_SUBDIRS} test" +fi + + + +ac_config_files="$ac_config_files Makefile include/Makefile src/Makefile src/lib/Makefile src/tools/Makefile docs/Makefile libcares.pc" + + +cat >confcache <<\_ACEOF +# This file is a shell script that caches the results of configure +# tests run on this system so they can be shared between configure +# scripts and configure runs, see configure's option --config-cache. +# It is not useful on other systems. If it contains results you don't +# want to keep, you may remove or edit it. +# +# config.status only pays attention to the cache file if you give it +# the --recheck option to rerun configure. +# +# `ac_cv_env_foo' variables (set or unset) will be overridden when +# loading this file, other *unset* `ac_cv_foo' will be assigned the +# following values. + +_ACEOF + +# The following way of writing the cache mishandles newlines in values, +# but we know of no workaround that is simple, portable, and efficient. +# So, we kill variables containing newlines. +# Ultrix sh set writes to stderr and can't be redirected directly, +# and sets the high bit in the cache file unless we assign to the vars. +( + for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do + eval ac_val=\$$ac_var + case $ac_val in #( + *${as_nl}*) + case $ac_var in #( + *_cv_*) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: cache variable $ac_var contains a newline" >&5 +printf "%s\n" "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; + esac + case $ac_var in #( + _ | IFS | as_nl) ;; #( + BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( + *) { eval $ac_var=; unset $ac_var;} ;; + esac ;; + esac + done + + (set) 2>&1 | + case $as_nl`(ac_space=' '; set) 2>&1` in #( + *${as_nl}ac_space=\ *) + # `set' does not quote correctly, so add quotes: double-quote + # substitution turns \\\\ into \\, and sed turns \\ into \. + sed -n \ + "s/'/'\\\\''/g; + s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" + ;; #( + *) + # `set' quotes correctly as required by POSIX, so do not add quotes. + sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" + ;; + esac | + sort +) | + sed ' + /^ac_cv_env_/b end + t clear + :clear + s/^\([^=]*\)=\(.*[{}].*\)$/test ${\1+y} || &/ + t end + s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ + :end' >>confcache +if diff "$cache_file" confcache >/dev/null 2>&1; then :; else + if test -w "$cache_file"; then + if test "x$cache_file" != "x/dev/null"; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5 +printf "%s\n" "$as_me: updating cache $cache_file" >&6;} + if test ! -f "$cache_file" || test -h "$cache_file"; then + cat confcache >"$cache_file" + else + case $cache_file in #( + */* | ?:*) + mv -f confcache "$cache_file"$$ && + mv -f "$cache_file"$$ "$cache_file" ;; #( + *) + mv -f confcache "$cache_file" ;; + esac + fi + fi + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5 +printf "%s\n" "$as_me: not updating unwritable cache $cache_file" >&6;} + fi +fi +rm -f confcache + +test "x$prefix" = xNONE && prefix=$ac_default_prefix +# Let make expand exec_prefix. +test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' + +DEFS=-DHAVE_CONFIG_H + +ac_libobjs= +ac_ltlibobjs= +U= +for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue + # 1. Remove the extension, and $U if already installed. + ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' + ac_i=`printf "%s\n" "$ac_i" | sed "$ac_script"` + # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR + # will be set to the directory where LIBOBJS objects are built. + as_fn_append ac_libobjs " \${LIBOBJDIR}$ac_i\$U.$ac_objext" + as_fn_append ac_ltlibobjs " \${LIBOBJDIR}$ac_i"'$U.lo' +done +LIBOBJS=$ac_libobjs + +LTLIBOBJS=$ac_ltlibobjs + + +if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then + as_fn_error $? "conditional \"MAINTAINER_MODE\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CODE_COVERAGE_ENABLED_TRUE}" && test -z "${CODE_COVERAGE_ENABLED_FALSE}"; then + as_fn_error $? "conditional \"CODE_COVERAGE_ENABLED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking that generated files are newer than configure" >&5 +printf %s "checking that generated files are newer than configure... " >&6; } + if test -n "$am_sleep_pid"; then + # Hide warnings about reused PIDs. + wait $am_sleep_pid 2>/dev/null + fi + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: done" >&5 +printf "%s\n" "done" >&6; } +if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then + as_fn_error $? "conditional \"AMDEP\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCC\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${am__fastdepCXX_TRUE}" && test -z "${am__fastdepCXX_FALSE}"; then + as_fn_error $? "conditional \"am__fastdepCXX\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + if test -n "$EXEEXT"; then + am__EXEEXT_TRUE= + am__EXEEXT_FALSE='#' +else + am__EXEEXT_TRUE='#' + am__EXEEXT_FALSE= +fi + +if test -z "${CARES_LT_SHLIB_USE_VERSION_INFO_TRUE}" && test -z "${CARES_LT_SHLIB_USE_VERSION_INFO_FALSE}"; then + as_fn_error $? "conditional \"CARES_LT_SHLIB_USE_VERSION_INFO\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CARES_LT_SHLIB_USE_NO_UNDEFINED_TRUE}" && test -z "${CARES_LT_SHLIB_USE_NO_UNDEFINED_FALSE}"; then + as_fn_error $? "conditional \"CARES_LT_SHLIB_USE_NO_UNDEFINED\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${CARES_LT_SHLIB_USE_MIMPURE_TEXT_TRUE}" && test -z "${CARES_LT_SHLIB_USE_MIMPURE_TEXT_FALSE}"; then + as_fn_error $? "conditional \"CARES_LT_SHLIB_USE_MIMPURE_TEXT\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${USE_CPPFLAG_CARES_STATICLIB_TRUE}" && test -z "${USE_CPPFLAG_CARES_STATICLIB_FALSE}"; then + as_fn_error $? "conditional \"USE_CPPFLAG_CARES_STATICLIB\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi +if test -z "${DOING_NATIVE_WINDOWS_TRUE}" && test -z "${DOING_NATIVE_WINDOWS_FALSE}"; then + as_fn_error $? "conditional \"DOING_NATIVE_WINDOWS\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +if test -z "${DOING_CARES_SYMBOL_HIDING_TRUE}" && test -z "${DOING_CARES_SYMBOL_HIDING_FALSE}"; then + as_fn_error $? "conditional \"DOING_CARES_SYMBOL_HIDING\" was never defined. +Usually this means the macro was only invoked conditionally." "$LINENO" 5 +fi + +: "${CONFIG_STATUS=./config.status}" +ac_write_fail=0 +ac_clean_files_save=$ac_clean_files +ac_clean_files="$ac_clean_files $CONFIG_STATUS" +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $CONFIG_STATUS" >&5 +printf "%s\n" "$as_me: creating $CONFIG_STATUS" >&6;} +as_write_fail=0 +cat >$CONFIG_STATUS <<_ASEOF || as_write_fail=1 +#! $SHELL +# Generated by $as_me. +# Run this file to recreate the current configuration. +# Compiler output produced by configure, useful for debugging +# configure, is in config.log if it exists. + +debug=false +ac_cs_recheck=false +ac_cs_silent=false + +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$CONFIG_STATUS <<\_ASEOF || as_write_fail=1 +## -------------------- ## +## M4sh Initialization. ## +## -------------------- ## + +# Be more Bourne compatible +DUALCASE=1; export DUALCASE # for MKS sh +as_nop=: +if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 +then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else $as_nop + case `(set -o) 2>/dev/null` in #( + *posix*) : + set -o posix ;; #( + *) : + ;; +esac +fi + + + +# Reset variables that may have inherited troublesome values from +# the environment. + +# IFS needs to be set, to space, tab, and newline, in precisely that order. +# (If _AS_PATH_WALK were called with IFS unset, it would have the +# side effect of setting IFS to empty, thus disabling word splitting.) +# Quoting is to prevent editors from complaining about space-tab. +as_nl=' +' +export as_nl +IFS=" "" $as_nl" + +PS1='$ ' +PS2='> ' +PS4='+ ' + +# Ensure predictable behavior from utilities with locale-dependent output. +LC_ALL=C +export LC_ALL +LANGUAGE=C +export LANGUAGE + +# We cannot yet rely on "unset" to work, but we need these variables +# to be unset--not just set to an empty or harmless value--now, to +# avoid bugs in old shells (e.g. pre-3.0 UWIN ksh). This construct +# also avoids known problems related to "unset" and subshell syntax +# in other old shells (e.g. bash 2.01 and pdksh 5.2.14). +for as_var in BASH_ENV ENV MAIL MAILPATH CDPATH +do eval test \${$as_var+y} \ + && ( (unset $as_var) || exit 1) >/dev/null 2>&1 && unset $as_var || : +done + +# Ensure that fds 0, 1, and 2 are open. +if (exec 3>&0) 2>/dev/null; then :; else exec 0&1) 2>/dev/null; then :; else exec 1>/dev/null; fi +if (exec 3>&2) ; then :; else exec 2>/dev/null; fi + + + +# Find who we are. Look in the path if we contain no directory separator. +as_myself= +case $0 in #(( + *[\\/]* ) as_myself=$0 ;; + *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + case $as_dir in #((( + '') as_dir=./ ;; + */) ;; + *) as_dir=$as_dir/ ;; + esac + test -r "$as_dir$0" && as_myself=$as_dir$0 && break + done +IFS=$as_save_IFS + + ;; +esac +# We did not find ourselves, most probably we were run as `sh COMMAND' +# in which case we are not to be found in the path. +if test "x$as_myself" = x; then + as_myself=$0 +fi +if test ! -f "$as_myself"; then + printf "%s\n" "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 + exit 1 +fi + + + +# as_fn_error STATUS ERROR [LINENO LOG_FD] +# ---------------------------------------- +# Output "`basename $0`: error: ERROR" to stderr. If LINENO and LOG_FD are +# provided, also output the error to LOG_FD, referencing LINENO. Then exit the +# script with STATUS, using 1 if that was 0. +as_fn_error () +{ + as_status=$1; test $as_status -eq 0 && as_status=1 + if test "$4"; then + as_lineno=${as_lineno-"$3"} as_lineno_stack=as_lineno_stack=$as_lineno_stack + printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: $2" >&$4 + fi + printf "%s\n" "$as_me: error: $2" >&2 + as_fn_exit $as_status +} # as_fn_error + + + +# as_fn_set_status STATUS +# ----------------------- +# Set $? to STATUS, without forking. +as_fn_set_status () +{ + return $1 +} # as_fn_set_status + +# as_fn_exit STATUS +# ----------------- +# Exit the shell with STATUS, even in a "trap 0" or "set -e" context. +as_fn_exit () +{ + set +e + as_fn_set_status $1 + exit $1 +} # as_fn_exit + +# as_fn_unset VAR +# --------------- +# Portably unset VAR. +as_fn_unset () +{ + { eval $1=; unset $1;} +} +as_unset=as_fn_unset + +# as_fn_append VAR VALUE +# ---------------------- +# Append the text in VALUE to the end of the definition contained in VAR. Take +# advantage of any shell optimizations that allow amortized linear growth over +# repeated appends, instead of the typical quadratic growth present in naive +# implementations. +if (eval "as_var=1; as_var+=2; test x\$as_var = x12") 2>/dev/null +then : + eval 'as_fn_append () + { + eval $1+=\$2 + }' +else $as_nop + as_fn_append () + { + eval $1=\$$1\$2 + } +fi # as_fn_append + +# as_fn_arith ARG... +# ------------------ +# Perform arithmetic evaluation on the ARGs, and store the result in the +# global $as_val. Take advantage of shells that can avoid forks. The arguments +# must be portable across $(()) and expr. +if (eval "test \$(( 1 + 1 )) = 2") 2>/dev/null +then : + eval 'as_fn_arith () + { + as_val=$(( $* )) + }' +else $as_nop + as_fn_arith () + { + as_val=`expr "$@" || test $? -eq 1` + } +fi # as_fn_arith + + +if expr a : '\(a\)' >/dev/null 2>&1 && + test "X`expr 00001 : '.*\(...\)'`" = X001; then + as_expr=expr +else + as_expr=false +fi + +if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then + as_basename=basename +else + as_basename=false +fi + +if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then + as_dirname=dirname +else + as_dirname=false +fi + +as_me=`$as_basename -- "$0" || +$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ + X"$0" : 'X\(//\)$' \| \ + X"$0" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$0" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + +# Avoid depending upon Character Ranges. +as_cr_letters='abcdefghijklmnopqrstuvwxyz' +as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' +as_cr_Letters=$as_cr_letters$as_cr_LETTERS +as_cr_digits='0123456789' +as_cr_alnum=$as_cr_Letters$as_cr_digits + + +# Determine whether it's possible to make 'echo' print without a newline. +# These variables are no longer used directly by Autoconf, but are AC_SUBSTed +# for compatibility with existing Makefiles. +ECHO_C= ECHO_N= ECHO_T= +case `echo -n x` in #((((( +-n*) + case `echo 'xy\c'` in + *c*) ECHO_T=' ';; # ECHO_T is single tab character. + xy) ECHO_C='\c';; + *) echo `echo ksh88 bug on AIX 6.1` > /dev/null + ECHO_T=' ';; + esac;; +*) + ECHO_N='-n';; +esac + +# For backward compatibility with old third-party macros, we provide +# the shell variables $as_echo and $as_echo_n. New code should use +# AS_ECHO(["message"]) and AS_ECHO_N(["message"]), respectively. +as_echo='printf %s\n' +as_echo_n='printf %s' + +rm -f conf$$ conf$$.exe conf$$.file +if test -d conf$$.dir; then + rm -f conf$$.dir/conf$$.file +else + rm -f conf$$.dir + mkdir conf$$.dir 2>/dev/null +fi +if (echo >conf$$.file) 2>/dev/null; then + if ln -s conf$$.file conf$$ 2>/dev/null; then + as_ln_s='ln -s' + # ... but there are two gotchas: + # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. + # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. + # In both cases, we have to default to `cp -pR'. + ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || + as_ln_s='cp -pR' + elif ln conf$$.file conf$$ 2>/dev/null; then + as_ln_s=ln + else + as_ln_s='cp -pR' + fi +else + as_ln_s='cp -pR' +fi +rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file +rmdir conf$$.dir 2>/dev/null + + +# as_fn_mkdir_p +# ------------- +# Create "$as_dir" as a directory, including parents if necessary. +as_fn_mkdir_p () +{ + + case $as_dir in #( + -*) as_dir=./$as_dir;; + esac + test -d "$as_dir" || eval $as_mkdir_p || { + as_dirs= + while :; do + case $as_dir in #( + *\'*) as_qdir=`printf "%s\n" "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( + *) as_qdir=$as_dir;; + esac + as_dirs="'$as_qdir' $as_dirs" + as_dir=`$as_dirname -- "$as_dir" || +$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$as_dir" : 'X\(//\)[^/]' \| \ + X"$as_dir" : 'X\(//\)$' \| \ + X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$as_dir" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + test -d "$as_dir" && break + done + test -z "$as_dirs" || eval "mkdir $as_dirs" + } || test -d "$as_dir" || as_fn_error $? "cannot create directory $as_dir" + + +} # as_fn_mkdir_p +if mkdir -p . 2>/dev/null; then + as_mkdir_p='mkdir -p "$as_dir"' +else + test -d ./-p && rmdir ./-p + as_mkdir_p=false +fi + + +# as_fn_executable_p FILE +# ----------------------- +# Test if FILE is an executable regular file. +as_fn_executable_p () +{ + test -f "$1" && test -x "$1" +} # as_fn_executable_p +as_test_x='test -x' +as_executable_p=as_fn_executable_p + +# Sed expression to map a string onto a valid CPP name. +as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" + +# Sed expression to map a string onto a valid variable name. +as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" + + +exec 6>&1 +## ----------------------------------- ## +## Main body of $CONFIG_STATUS script. ## +## ----------------------------------- ## +_ASEOF +test $as_write_fail = 0 && chmod +x $CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# Save the log message, to keep $0 and so on meaningful, and to +# report actual input values of CONFIG_FILES etc. instead of their +# values after options handling. +ac_log=" +This file was extended by c-ares $as_me 1.18.1, which was +generated by GNU Autoconf 2.71. Invocation command line was + + CONFIG_FILES = $CONFIG_FILES + CONFIG_HEADERS = $CONFIG_HEADERS + CONFIG_LINKS = $CONFIG_LINKS + CONFIG_COMMANDS = $CONFIG_COMMANDS + $ $0 $@ + +on `(hostname || uname -n) 2>/dev/null | sed 1q` +" + +_ACEOF + +case $ac_config_files in *" +"*) set x $ac_config_files; shift; ac_config_files=$*;; +esac + +case $ac_config_headers in *" +"*) set x $ac_config_headers; shift; ac_config_headers=$*;; +esac + + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# Files that config.status was made for. +config_files="$ac_config_files" +config_headers="$ac_config_headers" +config_commands="$ac_config_commands" + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +ac_cs_usage="\ +\`$as_me' instantiates files and other configuration actions +from templates according to the current configuration. Unless the files +and actions are specified as TAGs, all are instantiated by default. + +Usage: $0 [OPTION]... [TAG]... + + -h, --help print this help, then exit + -V, --version print version number and configuration settings, then exit + --config print configuration, then exit + -q, --quiet, --silent + do not print progress messages + -d, --debug don't remove temporary files + --recheck update $as_me by reconfiguring in the same conditions + --file=FILE[:TEMPLATE] + instantiate the configuration file FILE + --header=FILE[:TEMPLATE] + instantiate the configuration header FILE + +Configuration files: +$config_files + +Configuration headers: +$config_headers + +Configuration commands: +$config_commands + +Report bugs to ." + +_ACEOF +ac_cs_config=`printf "%s\n" "$ac_configure_args" | sed "$ac_safe_unquote"` +ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\''/g"` +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_cs_config='$ac_cs_config_escaped' +ac_cs_version="\\ +c-ares config.status 1.18.1 +configured by $0, generated by GNU Autoconf 2.71, + with options \\"\$ac_cs_config\\" + +Copyright (C) 2021 Free Software Foundation, Inc. +This config.status script is free software; the Free Software Foundation +gives unlimited permission to copy, distribute and modify it." + +ac_pwd='$ac_pwd' +srcdir='$srcdir' +INSTALL='$INSTALL' +MKDIR_P='$MKDIR_P' +AWK='$AWK' +test -n "\$AWK" || AWK=awk +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# The default lists apply if the user does not specify any file. +ac_need_defaults=: +while test $# != 0 +do + case $1 in + --*=?*) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` + ac_shift=: + ;; + --*=) + ac_option=`expr "X$1" : 'X\([^=]*\)='` + ac_optarg= + ac_shift=: + ;; + *) + ac_option=$1 + ac_optarg=$2 + ac_shift=shift + ;; + esac + + case $ac_option in + # Handling of the options. + -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) + ac_cs_recheck=: ;; + --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) + printf "%s\n" "$ac_cs_version"; exit ;; + --config | --confi | --conf | --con | --co | --c ) + printf "%s\n" "$ac_cs_config"; exit ;; + --debug | --debu | --deb | --de | --d | -d ) + debug=: ;; + --file | --fil | --fi | --f ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + '') as_fn_error $? "missing file argument" ;; + esac + as_fn_append CONFIG_FILES " '$ac_optarg'" + ac_need_defaults=false;; + --header | --heade | --head | --hea ) + $ac_shift + case $ac_optarg in + *\'*) ac_optarg=`printf "%s\n" "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append CONFIG_HEADERS " '$ac_optarg'" + ac_need_defaults=false;; + --he | --h) + # Conflict between --help and --header + as_fn_error $? "ambiguous option: \`$1' +Try \`$0 --help' for more information.";; + --help | --hel | -h ) + printf "%s\n" "$ac_cs_usage"; exit ;; + -q | -quiet | --quiet | --quie | --qui | --qu | --q \ + | -silent | --silent | --silen | --sile | --sil | --si | --s) + ac_cs_silent=: ;; + + # This is an error. + -*) as_fn_error $? "unrecognized option: \`$1' +Try \`$0 --help' for more information." ;; + + *) as_fn_append ac_config_targets " $1" + ac_need_defaults=false ;; + + esac + shift +done + +ac_configure_extra_args= + +if $ac_cs_silent; then + exec 6>/dev/null + ac_configure_extra_args="$ac_configure_extra_args --silent" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +if \$ac_cs_recheck; then + set X $SHELL '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion + shift + \printf "%s\n" "running CONFIG_SHELL=$SHELL \$*" >&6 + CONFIG_SHELL='$SHELL' + export CONFIG_SHELL + exec "\$@" +fi + +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +exec 5>>config.log +{ + echo + sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX +## Running $as_me. ## +_ASBOX + printf "%s\n" "$ac_log" +} >&5 + +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +# +# INIT-COMMANDS +# +AMDEP_TRUE="$AMDEP_TRUE" MAKE="${MAKE-make}" + + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +macro_version='`$ECHO "$macro_version" | $SED "$delay_single_quote_subst"`' +macro_revision='`$ECHO "$macro_revision" | $SED "$delay_single_quote_subst"`' +AS='`$ECHO "$AS" | $SED "$delay_single_quote_subst"`' +DLLTOOL='`$ECHO "$DLLTOOL" | $SED "$delay_single_quote_subst"`' +OBJDUMP='`$ECHO "$OBJDUMP" | $SED "$delay_single_quote_subst"`' +enable_shared='`$ECHO "$enable_shared" | $SED "$delay_single_quote_subst"`' +enable_static='`$ECHO "$enable_static" | $SED "$delay_single_quote_subst"`' +pic_mode='`$ECHO "$pic_mode" | $SED "$delay_single_quote_subst"`' +enable_fast_install='`$ECHO "$enable_fast_install" | $SED "$delay_single_quote_subst"`' +shared_archive_member_spec='`$ECHO "$shared_archive_member_spec" | $SED "$delay_single_quote_subst"`' +SHELL='`$ECHO "$SHELL" | $SED "$delay_single_quote_subst"`' +ECHO='`$ECHO "$ECHO" | $SED "$delay_single_quote_subst"`' +PATH_SEPARATOR='`$ECHO "$PATH_SEPARATOR" | $SED "$delay_single_quote_subst"`' +host_alias='`$ECHO "$host_alias" | $SED "$delay_single_quote_subst"`' +host='`$ECHO "$host" | $SED "$delay_single_quote_subst"`' +host_os='`$ECHO "$host_os" | $SED "$delay_single_quote_subst"`' +build_alias='`$ECHO "$build_alias" | $SED "$delay_single_quote_subst"`' +build='`$ECHO "$build" | $SED "$delay_single_quote_subst"`' +build_os='`$ECHO "$build_os" | $SED "$delay_single_quote_subst"`' +SED='`$ECHO "$SED" | $SED "$delay_single_quote_subst"`' +Xsed='`$ECHO "$Xsed" | $SED "$delay_single_quote_subst"`' +GREP='`$ECHO "$GREP" | $SED "$delay_single_quote_subst"`' +EGREP='`$ECHO "$EGREP" | $SED "$delay_single_quote_subst"`' +FGREP='`$ECHO "$FGREP" | $SED "$delay_single_quote_subst"`' +LD='`$ECHO "$LD" | $SED "$delay_single_quote_subst"`' +NM='`$ECHO "$NM" | $SED "$delay_single_quote_subst"`' +LN_S='`$ECHO "$LN_S" | $SED "$delay_single_quote_subst"`' +max_cmd_len='`$ECHO "$max_cmd_len" | $SED "$delay_single_quote_subst"`' +ac_objext='`$ECHO "$ac_objext" | $SED "$delay_single_quote_subst"`' +exeext='`$ECHO "$exeext" | $SED "$delay_single_quote_subst"`' +lt_unset='`$ECHO "$lt_unset" | $SED "$delay_single_quote_subst"`' +lt_SP2NL='`$ECHO "$lt_SP2NL" | $SED "$delay_single_quote_subst"`' +lt_NL2SP='`$ECHO "$lt_NL2SP" | $SED "$delay_single_quote_subst"`' +lt_cv_to_host_file_cmd='`$ECHO "$lt_cv_to_host_file_cmd" | $SED "$delay_single_quote_subst"`' +lt_cv_to_tool_file_cmd='`$ECHO "$lt_cv_to_tool_file_cmd" | $SED "$delay_single_quote_subst"`' +reload_flag='`$ECHO "$reload_flag" | $SED "$delay_single_quote_subst"`' +reload_cmds='`$ECHO "$reload_cmds" | $SED "$delay_single_quote_subst"`' +deplibs_check_method='`$ECHO "$deplibs_check_method" | $SED "$delay_single_quote_subst"`' +file_magic_cmd='`$ECHO "$file_magic_cmd" | $SED "$delay_single_quote_subst"`' +file_magic_glob='`$ECHO "$file_magic_glob" | $SED "$delay_single_quote_subst"`' +want_nocaseglob='`$ECHO "$want_nocaseglob" | $SED "$delay_single_quote_subst"`' +sharedlib_from_linklib_cmd='`$ECHO "$sharedlib_from_linklib_cmd" | $SED "$delay_single_quote_subst"`' +AR='`$ECHO "$AR" | $SED "$delay_single_quote_subst"`' +AR_FLAGS='`$ECHO "$AR_FLAGS" | $SED "$delay_single_quote_subst"`' +archiver_list_spec='`$ECHO "$archiver_list_spec" | $SED "$delay_single_quote_subst"`' +STRIP='`$ECHO "$STRIP" | $SED "$delay_single_quote_subst"`' +RANLIB='`$ECHO "$RANLIB" | $SED "$delay_single_quote_subst"`' +old_postinstall_cmds='`$ECHO "$old_postinstall_cmds" | $SED "$delay_single_quote_subst"`' +old_postuninstall_cmds='`$ECHO "$old_postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_cmds='`$ECHO "$old_archive_cmds" | $SED "$delay_single_quote_subst"`' +lock_old_archive_extraction='`$ECHO "$lock_old_archive_extraction" | $SED "$delay_single_quote_subst"`' +CC='`$ECHO "$CC" | $SED "$delay_single_quote_subst"`' +CFLAGS='`$ECHO "$CFLAGS" | $SED "$delay_single_quote_subst"`' +compiler='`$ECHO "$compiler" | $SED "$delay_single_quote_subst"`' +GCC='`$ECHO "$GCC" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_pipe='`$ECHO "$lt_cv_sys_global_symbol_pipe" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_cdecl='`$ECHO "$lt_cv_sys_global_symbol_to_cdecl" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_import='`$ECHO "$lt_cv_sys_global_symbol_to_import" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address" | $SED "$delay_single_quote_subst"`' +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix='`$ECHO "$lt_cv_sys_global_symbol_to_c_name_address_lib_prefix" | $SED "$delay_single_quote_subst"`' +lt_cv_nm_interface='`$ECHO "$lt_cv_nm_interface" | $SED "$delay_single_quote_subst"`' +nm_file_list_spec='`$ECHO "$nm_file_list_spec" | $SED "$delay_single_quote_subst"`' +lt_sysroot='`$ECHO "$lt_sysroot" | $SED "$delay_single_quote_subst"`' +lt_cv_truncate_bin='`$ECHO "$lt_cv_truncate_bin" | $SED "$delay_single_quote_subst"`' +objdir='`$ECHO "$objdir" | $SED "$delay_single_quote_subst"`' +MAGIC_CMD='`$ECHO "$MAGIC_CMD" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag='`$ECHO "$lt_prog_compiler_no_builtin_flag" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic='`$ECHO "$lt_prog_compiler_pic" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl='`$ECHO "$lt_prog_compiler_wl" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static='`$ECHO "$lt_prog_compiler_static" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o='`$ECHO "$lt_cv_prog_compiler_c_o" | $SED "$delay_single_quote_subst"`' +need_locks='`$ECHO "$need_locks" | $SED "$delay_single_quote_subst"`' +MANIFEST_TOOL='`$ECHO "$MANIFEST_TOOL" | $SED "$delay_single_quote_subst"`' +DSYMUTIL='`$ECHO "$DSYMUTIL" | $SED "$delay_single_quote_subst"`' +NMEDIT='`$ECHO "$NMEDIT" | $SED "$delay_single_quote_subst"`' +LIPO='`$ECHO "$LIPO" | $SED "$delay_single_quote_subst"`' +OTOOL='`$ECHO "$OTOOL" | $SED "$delay_single_quote_subst"`' +OTOOL64='`$ECHO "$OTOOL64" | $SED "$delay_single_quote_subst"`' +libext='`$ECHO "$libext" | $SED "$delay_single_quote_subst"`' +shrext_cmds='`$ECHO "$shrext_cmds" | $SED "$delay_single_quote_subst"`' +extract_expsyms_cmds='`$ECHO "$extract_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc='`$ECHO "$archive_cmds_need_lc" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes='`$ECHO "$enable_shared_with_static_runtimes" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec='`$ECHO "$export_dynamic_flag_spec" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec='`$ECHO "$whole_archive_flag_spec" | $SED "$delay_single_quote_subst"`' +compiler_needs_object='`$ECHO "$compiler_needs_object" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds='`$ECHO "$old_archive_from_new_cmds" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds='`$ECHO "$old_archive_from_expsyms_cmds" | $SED "$delay_single_quote_subst"`' +archive_cmds='`$ECHO "$archive_cmds" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds='`$ECHO "$archive_expsym_cmds" | $SED "$delay_single_quote_subst"`' +module_cmds='`$ECHO "$module_cmds" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds='`$ECHO "$module_expsym_cmds" | $SED "$delay_single_quote_subst"`' +with_gnu_ld='`$ECHO "$with_gnu_ld" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag='`$ECHO "$allow_undefined_flag" | $SED "$delay_single_quote_subst"`' +no_undefined_flag='`$ECHO "$no_undefined_flag" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec='`$ECHO "$hardcode_libdir_flag_spec" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator='`$ECHO "$hardcode_libdir_separator" | $SED "$delay_single_quote_subst"`' +hardcode_direct='`$ECHO "$hardcode_direct" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute='`$ECHO "$hardcode_direct_absolute" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L='`$ECHO "$hardcode_minus_L" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var='`$ECHO "$hardcode_shlibpath_var" | $SED "$delay_single_quote_subst"`' +hardcode_automatic='`$ECHO "$hardcode_automatic" | $SED "$delay_single_quote_subst"`' +inherit_rpath='`$ECHO "$inherit_rpath" | $SED "$delay_single_quote_subst"`' +link_all_deplibs='`$ECHO "$link_all_deplibs" | $SED "$delay_single_quote_subst"`' +always_export_symbols='`$ECHO "$always_export_symbols" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds='`$ECHO "$export_symbols_cmds" | $SED "$delay_single_quote_subst"`' +exclude_expsyms='`$ECHO "$exclude_expsyms" | $SED "$delay_single_quote_subst"`' +include_expsyms='`$ECHO "$include_expsyms" | $SED "$delay_single_quote_subst"`' +prelink_cmds='`$ECHO "$prelink_cmds" | $SED "$delay_single_quote_subst"`' +postlink_cmds='`$ECHO "$postlink_cmds" | $SED "$delay_single_quote_subst"`' +file_list_spec='`$ECHO "$file_list_spec" | $SED "$delay_single_quote_subst"`' +variables_saved_for_relink='`$ECHO "$variables_saved_for_relink" | $SED "$delay_single_quote_subst"`' +need_lib_prefix='`$ECHO "$need_lib_prefix" | $SED "$delay_single_quote_subst"`' +need_version='`$ECHO "$need_version" | $SED "$delay_single_quote_subst"`' +version_type='`$ECHO "$version_type" | $SED "$delay_single_quote_subst"`' +runpath_var='`$ECHO "$runpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_var='`$ECHO "$shlibpath_var" | $SED "$delay_single_quote_subst"`' +shlibpath_overrides_runpath='`$ECHO "$shlibpath_overrides_runpath" | $SED "$delay_single_quote_subst"`' +libname_spec='`$ECHO "$libname_spec" | $SED "$delay_single_quote_subst"`' +library_names_spec='`$ECHO "$library_names_spec" | $SED "$delay_single_quote_subst"`' +soname_spec='`$ECHO "$soname_spec" | $SED "$delay_single_quote_subst"`' +install_override_mode='`$ECHO "$install_override_mode" | $SED "$delay_single_quote_subst"`' +postinstall_cmds='`$ECHO "$postinstall_cmds" | $SED "$delay_single_quote_subst"`' +postuninstall_cmds='`$ECHO "$postuninstall_cmds" | $SED "$delay_single_quote_subst"`' +finish_cmds='`$ECHO "$finish_cmds" | $SED "$delay_single_quote_subst"`' +finish_eval='`$ECHO "$finish_eval" | $SED "$delay_single_quote_subst"`' +hardcode_into_libs='`$ECHO "$hardcode_into_libs" | $SED "$delay_single_quote_subst"`' +sys_lib_search_path_spec='`$ECHO "$sys_lib_search_path_spec" | $SED "$delay_single_quote_subst"`' +configure_time_dlsearch_path='`$ECHO "$configure_time_dlsearch_path" | $SED "$delay_single_quote_subst"`' +configure_time_lt_sys_library_path='`$ECHO "$configure_time_lt_sys_library_path" | $SED "$delay_single_quote_subst"`' +hardcode_action='`$ECHO "$hardcode_action" | $SED "$delay_single_quote_subst"`' +enable_dlopen='`$ECHO "$enable_dlopen" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self='`$ECHO "$enable_dlopen_self" | $SED "$delay_single_quote_subst"`' +enable_dlopen_self_static='`$ECHO "$enable_dlopen_self_static" | $SED "$delay_single_quote_subst"`' +old_striplib='`$ECHO "$old_striplib" | $SED "$delay_single_quote_subst"`' +striplib='`$ECHO "$striplib" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs='`$ECHO "$compiler_lib_search_dirs" | $SED "$delay_single_quote_subst"`' +predep_objects='`$ECHO "$predep_objects" | $SED "$delay_single_quote_subst"`' +postdep_objects='`$ECHO "$postdep_objects" | $SED "$delay_single_quote_subst"`' +predeps='`$ECHO "$predeps" | $SED "$delay_single_quote_subst"`' +postdeps='`$ECHO "$postdeps" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path='`$ECHO "$compiler_lib_search_path" | $SED "$delay_single_quote_subst"`' +LD_CXX='`$ECHO "$LD_CXX" | $SED "$delay_single_quote_subst"`' +reload_flag_CXX='`$ECHO "$reload_flag_CXX" | $SED "$delay_single_quote_subst"`' +reload_cmds_CXX='`$ECHO "$reload_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_cmds_CXX='`$ECHO "$old_archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +compiler_CXX='`$ECHO "$compiler_CXX" | $SED "$delay_single_quote_subst"`' +GCC_CXX='`$ECHO "$GCC_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_no_builtin_flag_CXX='`$ECHO "$lt_prog_compiler_no_builtin_flag_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_pic_CXX='`$ECHO "$lt_prog_compiler_pic_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_wl_CXX='`$ECHO "$lt_prog_compiler_wl_CXX" | $SED "$delay_single_quote_subst"`' +lt_prog_compiler_static_CXX='`$ECHO "$lt_prog_compiler_static_CXX" | $SED "$delay_single_quote_subst"`' +lt_cv_prog_compiler_c_o_CXX='`$ECHO "$lt_cv_prog_compiler_c_o_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_need_lc_CXX='`$ECHO "$archive_cmds_need_lc_CXX" | $SED "$delay_single_quote_subst"`' +enable_shared_with_static_runtimes_CXX='`$ECHO "$enable_shared_with_static_runtimes_CXX" | $SED "$delay_single_quote_subst"`' +export_dynamic_flag_spec_CXX='`$ECHO "$export_dynamic_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +whole_archive_flag_spec_CXX='`$ECHO "$whole_archive_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +compiler_needs_object_CXX='`$ECHO "$compiler_needs_object_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_new_cmds_CXX='`$ECHO "$old_archive_from_new_cmds_CXX" | $SED "$delay_single_quote_subst"`' +old_archive_from_expsyms_cmds_CXX='`$ECHO "$old_archive_from_expsyms_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_cmds_CXX='`$ECHO "$archive_cmds_CXX" | $SED "$delay_single_quote_subst"`' +archive_expsym_cmds_CXX='`$ECHO "$archive_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_cmds_CXX='`$ECHO "$module_cmds_CXX" | $SED "$delay_single_quote_subst"`' +module_expsym_cmds_CXX='`$ECHO "$module_expsym_cmds_CXX" | $SED "$delay_single_quote_subst"`' +with_gnu_ld_CXX='`$ECHO "$with_gnu_ld_CXX" | $SED "$delay_single_quote_subst"`' +allow_undefined_flag_CXX='`$ECHO "$allow_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +no_undefined_flag_CXX='`$ECHO "$no_undefined_flag_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_flag_spec_CXX='`$ECHO "$hardcode_libdir_flag_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_libdir_separator_CXX='`$ECHO "$hardcode_libdir_separator_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_CXX='`$ECHO "$hardcode_direct_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_direct_absolute_CXX='`$ECHO "$hardcode_direct_absolute_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_minus_L_CXX='`$ECHO "$hardcode_minus_L_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_shlibpath_var_CXX='`$ECHO "$hardcode_shlibpath_var_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_automatic_CXX='`$ECHO "$hardcode_automatic_CXX" | $SED "$delay_single_quote_subst"`' +inherit_rpath_CXX='`$ECHO "$inherit_rpath_CXX" | $SED "$delay_single_quote_subst"`' +link_all_deplibs_CXX='`$ECHO "$link_all_deplibs_CXX" | $SED "$delay_single_quote_subst"`' +always_export_symbols_CXX='`$ECHO "$always_export_symbols_CXX" | $SED "$delay_single_quote_subst"`' +export_symbols_cmds_CXX='`$ECHO "$export_symbols_cmds_CXX" | $SED "$delay_single_quote_subst"`' +exclude_expsyms_CXX='`$ECHO "$exclude_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +include_expsyms_CXX='`$ECHO "$include_expsyms_CXX" | $SED "$delay_single_quote_subst"`' +prelink_cmds_CXX='`$ECHO "$prelink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +postlink_cmds_CXX='`$ECHO "$postlink_cmds_CXX" | $SED "$delay_single_quote_subst"`' +file_list_spec_CXX='`$ECHO "$file_list_spec_CXX" | $SED "$delay_single_quote_subst"`' +hardcode_action_CXX='`$ECHO "$hardcode_action_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_dirs_CXX='`$ECHO "$compiler_lib_search_dirs_CXX" | $SED "$delay_single_quote_subst"`' +predep_objects_CXX='`$ECHO "$predep_objects_CXX" | $SED "$delay_single_quote_subst"`' +postdep_objects_CXX='`$ECHO "$postdep_objects_CXX" | $SED "$delay_single_quote_subst"`' +predeps_CXX='`$ECHO "$predeps_CXX" | $SED "$delay_single_quote_subst"`' +postdeps_CXX='`$ECHO "$postdeps_CXX" | $SED "$delay_single_quote_subst"`' +compiler_lib_search_path_CXX='`$ECHO "$compiler_lib_search_path_CXX" | $SED "$delay_single_quote_subst"`' + +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in AS \ +DLLTOOL \ +OBJDUMP \ +SHELL \ +ECHO \ +PATH_SEPARATOR \ +SED \ +GREP \ +EGREP \ +FGREP \ +LD \ +NM \ +LN_S \ +lt_SP2NL \ +lt_NL2SP \ +reload_flag \ +deplibs_check_method \ +file_magic_cmd \ +file_magic_glob \ +want_nocaseglob \ +sharedlib_from_linklib_cmd \ +AR \ +AR_FLAGS \ +archiver_list_spec \ +STRIP \ +RANLIB \ +CC \ +CFLAGS \ +compiler \ +lt_cv_sys_global_symbol_pipe \ +lt_cv_sys_global_symbol_to_cdecl \ +lt_cv_sys_global_symbol_to_import \ +lt_cv_sys_global_symbol_to_c_name_address \ +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix \ +lt_cv_nm_interface \ +nm_file_list_spec \ +lt_cv_truncate_bin \ +lt_prog_compiler_no_builtin_flag \ +lt_prog_compiler_pic \ +lt_prog_compiler_wl \ +lt_prog_compiler_static \ +lt_cv_prog_compiler_c_o \ +need_locks \ +MANIFEST_TOOL \ +DSYMUTIL \ +NMEDIT \ +LIPO \ +OTOOL \ +OTOOL64 \ +shrext_cmds \ +export_dynamic_flag_spec \ +whole_archive_flag_spec \ +compiler_needs_object \ +with_gnu_ld \ +allow_undefined_flag \ +no_undefined_flag \ +hardcode_libdir_flag_spec \ +hardcode_libdir_separator \ +exclude_expsyms \ +include_expsyms \ +file_list_spec \ +variables_saved_for_relink \ +libname_spec \ +library_names_spec \ +soname_spec \ +install_override_mode \ +finish_eval \ +old_striplib \ +striplib \ +compiler_lib_search_dirs \ +predep_objects \ +postdep_objects \ +predeps \ +postdeps \ +compiler_lib_search_path \ +LD_CXX \ +reload_flag_CXX \ +compiler_CXX \ +lt_prog_compiler_no_builtin_flag_CXX \ +lt_prog_compiler_pic_CXX \ +lt_prog_compiler_wl_CXX \ +lt_prog_compiler_static_CXX \ +lt_cv_prog_compiler_c_o_CXX \ +export_dynamic_flag_spec_CXX \ +whole_archive_flag_spec_CXX \ +compiler_needs_object_CXX \ +with_gnu_ld_CXX \ +allow_undefined_flag_CXX \ +no_undefined_flag_CXX \ +hardcode_libdir_flag_spec_CXX \ +hardcode_libdir_separator_CXX \ +exclude_expsyms_CXX \ +include_expsyms_CXX \ +file_list_spec_CXX \ +compiler_lib_search_dirs_CXX \ +predep_objects_CXX \ +postdep_objects_CXX \ +predeps_CXX \ +postdeps_CXX \ +compiler_lib_search_path_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in reload_cmds \ +old_postinstall_cmds \ +old_postuninstall_cmds \ +old_archive_cmds \ +extract_expsyms_cmds \ +old_archive_from_new_cmds \ +old_archive_from_expsyms_cmds \ +archive_cmds \ +archive_expsym_cmds \ +module_cmds \ +module_expsym_cmds \ +export_symbols_cmds \ +prelink_cmds \ +postlink_cmds \ +postinstall_cmds \ +postuninstall_cmds \ +finish_cmds \ +sys_lib_search_path_spec \ +configure_time_dlsearch_path \ +configure_time_lt_sys_library_path \ +reload_cmds_CXX \ +old_archive_cmds_CXX \ +old_archive_from_new_cmds_CXX \ +old_archive_from_expsyms_cmds_CXX \ +archive_cmds_CXX \ +archive_expsym_cmds_CXX \ +module_cmds_CXX \ +module_expsym_cmds_CXX \ +export_symbols_cmds_CXX \ +prelink_cmds_CXX \ +postlink_cmds_CXX; do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[\\\\\\\`\\"\\\$]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +ac_aux_dir='$ac_aux_dir' + +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + + + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile' + + + + + + +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + +# Handling of arguments. +for ac_config_target in $ac_config_targets +do + case $ac_config_target in + "src/lib/ares_config.h") CONFIG_HEADERS="$CONFIG_HEADERS src/lib/ares_config.h" ;; + "include/ares_build.h") CONFIG_HEADERS="$CONFIG_HEADERS include/ares_build.h" ;; + "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; + "libtool") CONFIG_COMMANDS="$CONFIG_COMMANDS libtool" ;; + "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; + "include/Makefile") CONFIG_FILES="$CONFIG_FILES include/Makefile" ;; + "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; + "src/lib/Makefile") CONFIG_FILES="$CONFIG_FILES src/lib/Makefile" ;; + "src/tools/Makefile") CONFIG_FILES="$CONFIG_FILES src/tools/Makefile" ;; + "docs/Makefile") CONFIG_FILES="$CONFIG_FILES docs/Makefile" ;; + "libcares.pc") CONFIG_FILES="$CONFIG_FILES libcares.pc" ;; + + *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;; + esac +done + + +# If the user did not use the arguments to specify the items to instantiate, +# then the envvar interface is used. Set only those that are not. +# We use the long form for the default assignment because of an extremely +# bizarre bug on SunOS 4.1.3. +if $ac_need_defaults; then + test ${CONFIG_FILES+y} || CONFIG_FILES=$config_files + test ${CONFIG_HEADERS+y} || CONFIG_HEADERS=$config_headers + test ${CONFIG_COMMANDS+y} || CONFIG_COMMANDS=$config_commands +fi + +# Have a temporary directory for convenience. Make it in the build tree +# simply because there is no reason against having it here, and in addition, +# creating and moving files from /tmp can sometimes cause problems. +# Hook for its removal unless debugging. +# Note that there is a small window in which the directory will not be cleaned: +# after its creation but before its name has been assigned to `$tmp'. +$debug || +{ + tmp= ac_tmp= + trap 'exit_status=$? + : "${ac_tmp:=$tmp}" + { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status +' 0 + trap 'as_fn_exit 1' 1 2 13 15 +} +# Create a (secure) tmp directory for tmp files. + +{ + tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && + test -d "$tmp" +} || +{ + tmp=./conf$$-$RANDOM + (umask 077 && mkdir "$tmp") +} || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5 +ac_tmp=$tmp + +# Set up the scripts for CONFIG_FILES section. +# No need to generate them if there are no CONFIG_FILES. +# This happens for instance with `./config.status config.h'. +if test -n "$CONFIG_FILES"; then + + +ac_cr=`echo X | tr X '\015'` +# On cygwin, bash can eat \r inside `` if the user requested igncr. +# But we know of no other shell where ac_cr would be empty at this +# point, so we can use a bashism as a fallback. +if test "x$ac_cr" = x; then + eval ac_cr=\$\'\\r\' +fi +ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' /dev/null` +if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then + ac_cs_awk_cr='\\r' +else + ac_cs_awk_cr=$ac_cr +fi + +echo 'BEGIN {' >"$ac_tmp/subs1.awk" && +_ACEOF + + +{ + echo "cat >conf$$subs.awk <<_ACEOF" && + echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && + echo "_ACEOF" +} >conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 +ac_delim_num=`echo "$ac_subst_vars" | grep -c '^'` +ac_delim='%!_!# ' +for ac_last_try in false false false false false :; do + . ./conf$$subs.sh || + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + + ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` + if test $ac_delim_n = $ac_delim_num; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_STATUS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done +rm -f conf$$subs.sh + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK && +_ACEOF +sed -n ' +h +s/^/S["/; s/!.*/"]=/ +p +g +s/^[^!]*!// +:repl +t repl +s/'"$ac_delim"'$// +t delim +:nl +h +s/\(.\{148\}\)..*/\1/ +t more1 +s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ +p +n +b repl +:more1 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t nl +:delim +h +s/\(.\{148\}\)..*/\1/ +t more2 +s/["\\]/\\&/g; s/^/"/; s/$/"/ +p +b +:more2 +s/["\\]/\\&/g; s/^/"/; s/$/"\\/ +p +g +s/.\{148\}// +t delim +' >$CONFIG_STATUS || ac_write_fail=1 +rm -f conf$$subs.awk +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +_ACAWK +cat >>"\$ac_tmp/subs1.awk" <<_ACAWK && + for (key in S) S_is_set[key] = 1 + FS = "" + +} +{ + line = $ 0 + nfields = split(line, field, "@") + substed = 0 + len = length(field[1]) + for (i = 2; i < nfields; i++) { + key = field[i] + keylen = length(key) + if (S_is_set[key]) { + value = S[key] + line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) + len += length(value) + length(field[++i]) + substed = 1 + } else + len += 1 + keylen + } + + print line +} + +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then + sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" +else + cat +fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \ + || as_fn_error $? "could not setup config files machinery" "$LINENO" 5 +_ACEOF + +# VPATH may cause trouble with some makes, so we remove sole $(srcdir), +# ${srcdir} and @srcdir@ entries from VPATH if srcdir is ".", strip leading and +# trailing colons and then remove the whole line if VPATH becomes empty +# (actually we leave an empty line to preserve line numbers). +if test "x$srcdir" = x.; then + ac_vpsub='/^[ ]*VPATH[ ]*=[ ]*/{ +h +s/// +s/^/:/ +s/[ ]*$/:/ +s/:\$(srcdir):/:/g +s/:\${srcdir}:/:/g +s/:@srcdir@:/:/g +s/^:*// +s/:*$// +x +s/\(=[ ]*\).*/\1/ +G +s/\n// +s/^[^=]*=[ ]*$// +}' +fi + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +fi # test -n "$CONFIG_FILES" + +# Set up the scripts for CONFIG_HEADERS section. +# No need to generate them if there are no CONFIG_HEADERS. +# This happens for instance with `./config.status Makefile'. +if test -n "$CONFIG_HEADERS"; then +cat >"$ac_tmp/defines.awk" <<\_ACAWK || +BEGIN { +_ACEOF + +# Transform confdefs.h into an awk script `defines.awk', embedded as +# here-document in config.status, that substitutes the proper values into +# config.h.in to produce config.h. + +# Create a delimiter string that does not exist in confdefs.h, to ease +# handling of long lines. +ac_delim='%!_!# ' +for ac_last_try in false false :; do + ac_tt=`sed -n "/$ac_delim/p" confdefs.h` + if test -z "$ac_tt"; then + break + elif $ac_last_try; then + as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5 + else + ac_delim="$ac_delim!$ac_delim _$ac_delim!! " + fi +done + +# For the awk script, D is an array of macro values keyed by name, +# likewise P contains macro parameters if any. Preserve backslash +# newline sequences. + +ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]* +sed -n ' +s/.\{148\}/&'"$ac_delim"'/g +t rset +:rset +s/^[ ]*#[ ]*define[ ][ ]*/ / +t def +d +:def +s/\\$// +t bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3"/p +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p +d +:bsnl +s/["\\]/\\&/g +s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\ +D["\1"]=" \3\\\\\\n"\\/p +t cont +s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p +t cont +d +:cont +n +s/.\{148\}/&'"$ac_delim"'/g +t clear +:clear +s/\\$// +t bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/"/p +d +:bsnlc +s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p +b cont +' >$CONFIG_STATUS || ac_write_fail=1 + +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + for (key in D) D_is_set[key] = 1 + FS = "" +} +/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ { + line = \$ 0 + split(line, arg, " ") + if (arg[1] == "#") { + defundef = arg[2] + mac1 = arg[3] + } else { + defundef = substr(arg[1], 2) + mac1 = arg[2] + } + split(mac1, mac2, "(") #) + macro = mac2[1] + prefix = substr(line, 1, index(line, defundef) - 1) + if (D_is_set[macro]) { + # Preserve the white space surrounding the "#". + print prefix "define", macro P[macro] D[macro] + next + } else { + # Replace #undef with comments. This is necessary, for example, + # in the case of _POSIX_SOURCE, which is predefined and required + # on some systems where configure will not decide to define it. + if (defundef == "undef") { + print "/*", prefix defundef, macro, "*/" + next + } + } +} +{ print } +_ACAWK +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 + as_fn_error $? "could not setup config headers machinery" "$LINENO" 5 +fi # test -n "$CONFIG_HEADERS" + + +eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS :C $CONFIG_COMMANDS" +shift +for ac_tag +do + case $ac_tag in + :[FHLC]) ac_mode=$ac_tag; continue;; + esac + case $ac_mode$ac_tag in + :[FHL]*:*);; + :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;; + :[FH]-) ac_tag=-:-;; + :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; + esac + ac_save_IFS=$IFS + IFS=: + set x $ac_tag + IFS=$ac_save_IFS + shift + ac_file=$1 + shift + + case $ac_mode in + :L) ac_source=$1;; + :[FH]) + ac_file_inputs= + for ac_f + do + case $ac_f in + -) ac_f="$ac_tmp/stdin";; + *) # Look for the file first in the build tree, then in the source tree + # (if the path is not absolute). The absolute path cannot be DOS-style, + # because $ac_f cannot contain `:'. + test -f "$ac_f" || + case $ac_f in + [\\/$]*) false;; + *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; + esac || + as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;; + esac + case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac + as_fn_append ac_file_inputs " '$ac_f'" + done + + # Let's still pretend it is `configure' which instantiates (i.e., don't + # use $as_me), people would be surprised to read: + # /* config.h. Generated by config.status. */ + configure_input='Generated from '` + printf "%s\n" "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' + `' by configure.' + if test x"$ac_file" != x-; then + configure_input="$ac_file. $configure_input" + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: creating $ac_file" >&5 +printf "%s\n" "$as_me: creating $ac_file" >&6;} + fi + # Neutralize special characters interpreted by sed in replacement strings. + case $configure_input in #( + *\&* | *\|* | *\\* ) + ac_sed_conf_input=`printf "%s\n" "$configure_input" | + sed 's/[\\\\&|]/\\\\&/g'`;; #( + *) ac_sed_conf_input=$configure_input;; + esac + + case $ac_tag in + *:-:* | *:-) cat >"$ac_tmp/stdin" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;; + esac + ;; + esac + + ac_dir=`$as_dirname -- "$ac_file" || +$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$ac_file" : 'X\(//\)[^/]' \| \ + X"$ac_file" : 'X\(//\)$' \| \ + X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$ac_file" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + case $ac_mode in + :F) + # + # CONFIG_FILE + # + + case $INSTALL in + [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; + *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; + esac + ac_MKDIR_P=$MKDIR_P + case $MKDIR_P in + [\\/$]* | ?:[\\/]* ) ;; + */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; + esac +_ACEOF + +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +# If the template does not know about datarootdir, expand it. +# FIXME: This hack should be removed a few years after 2.60. +ac_datarootdir_hack=; ac_datarootdir_seen= +ac_sed_dataroot=' +/datarootdir/ { + p + q +} +/@datadir@/p +/@docdir@/p +/@infodir@/p +/@localedir@/p +/@mandir@/p' +case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in +*datarootdir*) ac_datarootdir_seen=yes;; +*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} +_ACEOF +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 + ac_datarootdir_hack=' + s&@datadir@&$datadir&g + s&@docdir@&$docdir&g + s&@infodir@&$infodir&g + s&@localedir@&$localedir&g + s&@mandir@&$mandir&g + s&\\\${datarootdir}&$datarootdir&g' ;; +esac +_ACEOF + +# Neutralize VPATH when `$srcdir' = `.'. +# Shell code in configure.ac might set extrasub. +# FIXME: do we really want to maintain this feature? +cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 +ac_sed_extra="$ac_vpsub +$extrasub +_ACEOF +cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 +:t +/@[a-zA-Z_][a-zA-Z_0-9]*@/!b +s|@configure_input@|$ac_sed_conf_input|;t t +s&@top_builddir@&$ac_top_builddir_sub&;t t +s&@top_build_prefix@&$ac_top_build_prefix&;t t +s&@srcdir@&$ac_srcdir&;t t +s&@abs_srcdir@&$ac_abs_srcdir&;t t +s&@top_srcdir@&$ac_top_srcdir&;t t +s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t +s&@builddir@&$ac_builddir&;t t +s&@abs_builddir@&$ac_abs_builddir&;t t +s&@abs_top_builddir@&$ac_abs_top_builddir&;t t +s&@INSTALL@&$ac_INSTALL&;t t +s&@MKDIR_P@&$ac_MKDIR_P&;t t +$ac_datarootdir_hack +" +eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \ + >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + +test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && + { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } && + { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' \ + "$ac_tmp/out"`; test -z "$ac_out"; } && + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&5 +printf "%s\n" "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' +which seems to be undefined. Please make sure it is defined" >&2;} + + rm -f "$ac_tmp/stdin" + case $ac_file in + -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";; + *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";; + esac \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + ;; + :H) + # + # CONFIG_HEADER + # + if test x"$ac_file" != x-; then + { + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" + } >"$ac_tmp/config.h" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5 +printf "%s\n" "$as_me: $ac_file is unchanged" >&6;} + else + rm -f "$ac_file" + mv "$ac_tmp/config.h" "$ac_file" \ + || as_fn_error $? "could not create $ac_file" "$LINENO" 5 + fi + else + printf "%s\n" "/* $configure_input */" >&1 \ + && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \ + || as_fn_error $? "could not create -" "$LINENO" 5 + fi +# Compute "$ac_file"'s index in $config_headers. +_am_arg="$ac_file" +_am_stamp_count=1 +for _am_header in $config_headers :; do + case $_am_header in + $_am_arg | $_am_arg:* ) + break ;; + * ) + _am_stamp_count=`expr $_am_stamp_count + 1` ;; + esac +done +echo "timestamp for $_am_arg" >`$as_dirname -- "$_am_arg" || +$as_expr X"$_am_arg" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$_am_arg" : 'X\(//\)[^/]' \| \ + X"$_am_arg" : 'X\(//\)$' \| \ + X"$_am_arg" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$_am_arg" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'`/stamp-h$_am_stamp_count + ;; + + :C) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: executing $ac_file commands" >&5 +printf "%s\n" "$as_me: executing $ac_file commands" >&6;} + ;; + esac + + + case $ac_file$ac_mode in + "depfiles":C) test x"$AMDEP_TRUE" != x"" || { + # Older Autoconf quotes --file arguments for eval, but not when files + # are listed without --file. Let's play safe and only enable the eval + # if we detect the quoting. + # TODO: see whether this extra hack can be removed once we start + # requiring Autoconf 2.70 or later. + case $CONFIG_FILES in #( + *\'*) : + eval set x "$CONFIG_FILES" ;; #( + *) : + set x $CONFIG_FILES ;; #( + *) : + ;; +esac + shift + # Used to flag and report bootstrapping failures. + am_rc=0 + for am_mf + do + # Strip MF so we end up with the name of the file. + am_mf=`printf "%s\n" "$am_mf" | sed -e 's/:.*$//'` + # Check whether this is an Automake generated Makefile which includes + # dependency-tracking related rules and includes. + # Grep'ing the whole file directly is not great: AIX grep has a line + # limit of 2048, but all sed's we know have understand at least 4000. + sed -n 's,^am--depfiles:.*,X,p' "$am_mf" | grep X >/dev/null 2>&1 \ + || continue + am_dirpart=`$as_dirname -- "$am_mf" || +$as_expr X"$am_mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ + X"$am_mf" : 'X\(//\)[^/]' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X"$am_mf" | + sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ + s//\1/ + q + } + /^X\(\/\/\)[^/].*/{ + s//\1/ + q + } + /^X\(\/\/\)$/{ + s//\1/ + q + } + /^X\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + am_filepart=`$as_basename -- "$am_mf" || +$as_expr X/"$am_mf" : '.*/\([^/][^/]*\)/*$' \| \ + X"$am_mf" : 'X\(//\)$' \| \ + X"$am_mf" : 'X\(/\)' \| . 2>/dev/null || +printf "%s\n" X/"$am_mf" | + sed '/^.*\/\([^/][^/]*\)\/*$/{ + s//\1/ + q + } + /^X\/\(\/\/\)$/{ + s//\1/ + q + } + /^X\/\(\/\).*/{ + s//\1/ + q + } + s/.*/./; q'` + { echo "$as_me:$LINENO: cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles" >&5 + (cd "$am_dirpart" \ + && sed -e '/# am--include-marker/d' "$am_filepart" \ + | $MAKE -f - am--depfiles) >&5 2>&5 + ac_status=$? + echo "$as_me:$LINENO: \$? = $ac_status" >&5 + (exit $ac_status); } || am_rc=$? + done + if test $am_rc -ne 0; then + { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5 +printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;} +as_fn_error $? "Something went wrong bootstrapping makefile fragments + for automatic dependency tracking. If GNU make was not used, consider + re-running the configure script with MAKE=\"gmake\" (or whatever is + necessary). You can also try re-running configure with the + '--disable-dependency-tracking' option to at least be able to build + the package (albeit without support for automatic dependency tracking). +See \`config.log' for more details" "$LINENO" 5; } + fi + { am_dirpart=; unset am_dirpart;} + { am_filepart=; unset am_filepart;} + { am_mf=; unset am_mf;} + { am_rc=; unset am_rc;} + rm -f conftest-deps.mk +} + ;; + "libtool":C) + + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +# The names of the tagged configurations supported by this script. +available_tags='CXX ' + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG + +# Which release of libtool.m4 was used? +macro_version=$macro_version +macro_revision=$macro_revision + +# Assembler program. +AS=$lt_AS + +# DLL creation program. +DLLTOOL=$lt_DLLTOOL + +# Object dumper program. +OBJDUMP=$lt_OBJDUMP + +# Whether or not to build shared libraries. +build_libtool_libs=$enable_shared + +# Whether or not to build static libraries. +build_old_libs=$enable_static + +# What type of objects to build. +pic_mode=$pic_mode + +# Whether or not to optimize for fast installation. +fast_install=$enable_fast_install + +# Shared archive member basename,for filename based shared library versioning on AIX. +shared_archive_member_spec=$shared_archive_member_spec + +# Shell to use when invoking shell scripts. +SHELL=$lt_SHELL + +# An echo program that protects backslashes. +ECHO=$lt_ECHO + +# The PATH separator for the build system. +PATH_SEPARATOR=$lt_PATH_SEPARATOR + +# The host system. +host_alias=$host_alias +host=$host +host_os=$host_os + +# The build system. +build_alias=$build_alias +build=$build +build_os=$build_os + +# A sed program that does not truncate output. +SED=$lt_SED + +# Sed that helps us avoid accidentally triggering echo(1) options like -n. +Xsed="\$SED -e 1s/^X//" + +# A grep program that handles long lines. +GREP=$lt_GREP + +# An ERE matcher. +EGREP=$lt_EGREP + +# A literal string matcher. +FGREP=$lt_FGREP + +# A BSD- or MS-compatible name lister. +NM=$lt_NM + +# Whether we need soft or hard links. +LN_S=$lt_LN_S + +# What is the maximum length of a command? +max_cmd_len=$max_cmd_len + +# Object file suffix (normally "o"). +objext=$ac_objext + +# Executable file suffix (normally ""). +exeext=$exeext + +# whether the shell understands "unset". +lt_unset=$lt_unset + +# turn spaces into newlines. +SP2NL=$lt_lt_SP2NL + +# turn newlines into spaces. +NL2SP=$lt_lt_NL2SP + +# convert \$build file names to \$host format. +to_host_file_cmd=$lt_cv_to_host_file_cmd + +# convert \$build files to toolchain format. +to_tool_file_cmd=$lt_cv_to_tool_file_cmd + +# Method to check whether dependent libraries are shared objects. +deplibs_check_method=$lt_deplibs_check_method + +# Command to use when deplibs_check_method = "file_magic". +file_magic_cmd=$lt_file_magic_cmd + +# How to find potential files when deplibs_check_method = "file_magic". +file_magic_glob=$lt_file_magic_glob + +# Find potential files using nocaseglob when deplibs_check_method = "file_magic". +want_nocaseglob=$lt_want_nocaseglob + +# Command to associate shared and link libraries. +sharedlib_from_linklib_cmd=$lt_sharedlib_from_linklib_cmd + +# The archiver. +AR=$lt_AR + +# Flags to create an archive. +AR_FLAGS=$lt_AR_FLAGS + +# How to feed a file listing to the archiver. +archiver_list_spec=$lt_archiver_list_spec + +# A symbol stripping program. +STRIP=$lt_STRIP + +# Commands used to install an old-style archive. +RANLIB=$lt_RANLIB +old_postinstall_cmds=$lt_old_postinstall_cmds +old_postuninstall_cmds=$lt_old_postuninstall_cmds + +# Whether to use a lock for old archive extraction. +lock_old_archive_extraction=$lock_old_archive_extraction + +# A C compiler. +LTCC=$lt_CC + +# LTCC compiler flags. +LTCFLAGS=$lt_CFLAGS + +# Take the output of nm and produce a listing of raw symbols and C names. +global_symbol_pipe=$lt_lt_cv_sys_global_symbol_pipe + +# Transform the output of nm in a proper C declaration. +global_symbol_to_cdecl=$lt_lt_cv_sys_global_symbol_to_cdecl + +# Transform the output of nm into a list of symbols to manually relocate. +global_symbol_to_import=$lt_lt_cv_sys_global_symbol_to_import + +# Transform the output of nm in a C name address pair. +global_symbol_to_c_name_address=$lt_lt_cv_sys_global_symbol_to_c_name_address + +# Transform the output of nm in a C name address pair when lib prefix is needed. +global_symbol_to_c_name_address_lib_prefix=$lt_lt_cv_sys_global_symbol_to_c_name_address_lib_prefix + +# The name lister interface. +nm_interface=$lt_lt_cv_nm_interface + +# Specify filename containing input files for \$NM. +nm_file_list_spec=$lt_nm_file_list_spec + +# The root where to search for dependent libraries,and where our libraries should be installed. +lt_sysroot=$lt_sysroot + +# Command to truncate a binary pipe. +lt_truncate_bin=$lt_lt_cv_truncate_bin + +# The name of the directory that contains temporary libtool files. +objdir=$objdir + +# Used to examine libraries when file_magic_cmd begins with "file". +MAGIC_CMD=$MAGIC_CMD + +# Must we lock files when doing compilation? +need_locks=$lt_need_locks + +# Manifest tool. +MANIFEST_TOOL=$lt_MANIFEST_TOOL + +# Tool to manipulate archived DWARF debug symbol files on Mac OS X. +DSYMUTIL=$lt_DSYMUTIL + +# Tool to change global to local symbols on Mac OS X. +NMEDIT=$lt_NMEDIT + +# Tool to manipulate fat objects and archives on Mac OS X. +LIPO=$lt_LIPO + +# ldd/readelf like tool for Mach-O binaries on Mac OS X. +OTOOL=$lt_OTOOL + +# ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4. +OTOOL64=$lt_OTOOL64 + +# Old archive suffix (normally "a"). +libext=$libext + +# Shared library suffix (normally ".so"). +shrext_cmds=$lt_shrext_cmds + +# The commands to extract the exported symbol list from a shared archive. +extract_expsyms_cmds=$lt_extract_expsyms_cmds + +# Variables whose values should be saved in libtool wrapper scripts and +# restored at link time. +variables_saved_for_relink=$lt_variables_saved_for_relink + +# Do we need the "lib" prefix for modules? +need_lib_prefix=$need_lib_prefix + +# Do we need a version for libraries? +need_version=$need_version + +# Library versioning type. +version_type=$version_type + +# Shared library runtime path variable. +runpath_var=$runpath_var + +# Shared library path variable. +shlibpath_var=$shlibpath_var + +# Is shlibpath searched before the hard-coded library search path? +shlibpath_overrides_runpath=$shlibpath_overrides_runpath + +# Format of library name prefix. +libname_spec=$lt_libname_spec + +# List of archive names. First name is the real one, the rest are links. +# The last name is the one that the linker finds with -lNAME +library_names_spec=$lt_library_names_spec + +# The coded name of the library, if different from the real name. +soname_spec=$lt_soname_spec + +# Permission mode override for installation of shared libraries. +install_override_mode=$lt_install_override_mode + +# Command to use after installation of a shared archive. +postinstall_cmds=$lt_postinstall_cmds + +# Command to use after uninstallation of a shared archive. +postuninstall_cmds=$lt_postuninstall_cmds + +# Commands used to finish a libtool library installation in a directory. +finish_cmds=$lt_finish_cmds + +# As "finish_cmds", except a single script fragment to be evaled but +# not shown. +finish_eval=$lt_finish_eval + +# Whether we should hardcode library paths into libraries. +hardcode_into_libs=$hardcode_into_libs + +# Compile-time system search path for libraries. +sys_lib_search_path_spec=$lt_sys_lib_search_path_spec + +# Detected run-time system search path for libraries. +sys_lib_dlsearch_path_spec=$lt_configure_time_dlsearch_path + +# Explicit LT_SYS_LIBRARY_PATH set during ./configure time. +configure_time_lt_sys_library_path=$lt_configure_time_lt_sys_library_path + +# Whether dlopen is supported. +dlopen_support=$enable_dlopen + +# Whether dlopen of programs is supported. +dlopen_self=$enable_dlopen_self + +# Whether dlopen of statically linked programs is supported. +dlopen_self_static=$enable_dlopen_self_static + +# Commands to strip libraries. +old_striplib=$lt_old_striplib +striplib=$lt_striplib + + +# The linker used to build libraries. +LD=$lt_LD + +# How to create reloadable object files. +reload_flag=$lt_reload_flag +reload_cmds=$lt_reload_cmds + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds + +# A language specific compiler. +CC=$lt_compiler + +# Is the compiler the GNU compiler? +with_gcc=$GCC + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds +archive_expsym_cmds=$lt_archive_expsym_cmds + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds +module_expsym_cmds=$lt_module_expsym_cmds + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects +postdep_objects=$lt_postdep_objects +predeps=$lt_predeps +postdeps=$lt_postdeps + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path + +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x$2 in + x) + ;; + *:) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'` \$$1\" + ;; + x:*) + eval $1=\"\$$1 `$ECHO $2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval $1=\"\$$1\ `$ECHO $2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval $1=\"`$ECHO $2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \$$1\" + ;; + *) + eval $1=\"`$ECHO $2 | $SED 's/:/ /g'`\" + ;; + esac +} + + +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in $*""; do + case $cc_temp in + compile | *[\\/]compile | ccache | *[\\/]ccache ) ;; + distcc | *[\\/]distcc | purify | *[\\/]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} + + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + + +ltmain=$ac_aux_dir/ltmain.sh + + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" + + + cat <<_LT_EOF >> "$ofile" + +# ### BEGIN LIBTOOL TAG CONFIG: CXX + +# The linker used to build libraries. +LD=$lt_LD_CXX + +# How to create reloadable object files. +reload_flag=$lt_reload_flag_CXX +reload_cmds=$lt_reload_cmds_CXX + +# Commands used to build an old-style archive. +old_archive_cmds=$lt_old_archive_cmds_CXX + +# A language specific compiler. +CC=$lt_compiler_CXX + +# Is the compiler the GNU compiler? +with_gcc=$GCC_CXX + +# Compiler flag to turn off builtin functions. +no_builtin_flag=$lt_lt_prog_compiler_no_builtin_flag_CXX + +# Additional compiler flags for building library objects. +pic_flag=$lt_lt_prog_compiler_pic_CXX + +# How to pass a linker flag through the compiler. +wl=$lt_lt_prog_compiler_wl_CXX + +# Compiler flag to prevent dynamic linking. +link_static_flag=$lt_lt_prog_compiler_static_CXX + +# Does compiler simultaneously support -c and -o options? +compiler_c_o=$lt_lt_cv_prog_compiler_c_o_CXX + +# Whether or not to add -lc for building shared libraries. +build_libtool_need_lc=$archive_cmds_need_lc_CXX + +# Whether or not to disallow shared libs when runtime libs are static. +allow_libtool_libs_with_static_runtimes=$enable_shared_with_static_runtimes_CXX + +# Compiler flag to allow reflexive dlopens. +export_dynamic_flag_spec=$lt_export_dynamic_flag_spec_CXX + +# Compiler flag to generate shared objects directly from archives. +whole_archive_flag_spec=$lt_whole_archive_flag_spec_CXX + +# Whether the compiler copes with passing no objects directly. +compiler_needs_object=$lt_compiler_needs_object_CXX + +# Create an old-style archive from a shared archive. +old_archive_from_new_cmds=$lt_old_archive_from_new_cmds_CXX + +# Create a temporary old-style archive to link instead of a shared archive. +old_archive_from_expsyms_cmds=$lt_old_archive_from_expsyms_cmds_CXX + +# Commands used to build a shared archive. +archive_cmds=$lt_archive_cmds_CXX +archive_expsym_cmds=$lt_archive_expsym_cmds_CXX + +# Commands used to build a loadable module if different from building +# a shared archive. +module_cmds=$lt_module_cmds_CXX +module_expsym_cmds=$lt_module_expsym_cmds_CXX + +# Whether we are building with GNU ld or not. +with_gnu_ld=$lt_with_gnu_ld_CXX + +# Flag that allows shared libraries with undefined symbols to be built. +allow_undefined_flag=$lt_allow_undefined_flag_CXX + +# Flag that enforces no undefined symbols. +no_undefined_flag=$lt_no_undefined_flag_CXX + +# Flag to hardcode \$libdir into a binary during linking. +# This must work even if \$libdir does not exist +hardcode_libdir_flag_spec=$lt_hardcode_libdir_flag_spec_CXX + +# Whether we need a single "-rpath" flag with a separated argument. +hardcode_libdir_separator=$lt_hardcode_libdir_separator_CXX + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary. +hardcode_direct=$hardcode_direct_CXX + +# Set to "yes" if using DIR/libNAME\$shared_ext during linking hardcodes +# DIR into the resulting binary and the resulting library dependency is +# "absolute",i.e impossible to change by setting \$shlibpath_var if the +# library is relocated. +hardcode_direct_absolute=$hardcode_direct_absolute_CXX + +# Set to "yes" if using the -LDIR flag during linking hardcodes DIR +# into the resulting binary. +hardcode_minus_L=$hardcode_minus_L_CXX + +# Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR +# into the resulting binary. +hardcode_shlibpath_var=$hardcode_shlibpath_var_CXX + +# Set to "yes" if building a shared library automatically hardcodes DIR +# into the library and all subsequent libraries and executables linked +# against it. +hardcode_automatic=$hardcode_automatic_CXX + +# Set to yes if linker adds runtime paths of dependent libraries +# to runtime path list. +inherit_rpath=$inherit_rpath_CXX + +# Whether libtool must link a program against all its dependency libraries. +link_all_deplibs=$link_all_deplibs_CXX + +# Set to "yes" if exported symbols are required. +always_export_symbols=$always_export_symbols_CXX + +# The commands to list exported symbols. +export_symbols_cmds=$lt_export_symbols_cmds_CXX + +# Symbols that should not be listed in the preloaded symbols. +exclude_expsyms=$lt_exclude_expsyms_CXX + +# Symbols that must always be exported. +include_expsyms=$lt_include_expsyms_CXX + +# Commands necessary for linking programs (against libraries) with templates. +prelink_cmds=$lt_prelink_cmds_CXX + +# Commands necessary for finishing linking programs. +postlink_cmds=$lt_postlink_cmds_CXX + +# Specify filename containing input files. +file_list_spec=$lt_file_list_spec_CXX + +# How to hardcode a shared library path into an executable. +hardcode_action=$hardcode_action_CXX + +# The directories searched by this compiler when creating a shared library. +compiler_lib_search_dirs=$lt_compiler_lib_search_dirs_CXX + +# Dependencies to place before and after the objects being linked to +# create a shared library. +predep_objects=$lt_predep_objects_CXX +postdep_objects=$lt_postdep_objects_CXX +predeps=$lt_predeps_CXX +postdeps=$lt_postdeps_CXX + +# The library search path used internally by the compiler when linking +# a shared library. +compiler_lib_search_path=$lt_compiler_lib_search_path_CXX + +# ### END LIBTOOL TAG CONFIG: CXX +_LT_EOF + + ;; + + esac +done # for ac_tag + + +as_fn_exit 0 +_ACEOF +ac_clean_files=$ac_clean_files_save + +test $ac_write_fail = 0 || + as_fn_error $? "write failure creating $CONFIG_STATUS" "$LINENO" 5 + + +# configure is writing to config.log, and then calls config.status. +# config.status does its own redirection, appending to config.log. +# Unfortunately, on DOS this fails, as config.log is still kept open +# by configure, so config.status won't be able to write to it; its +# output is simply discarded. So we exec the FD to /dev/null, +# effectively closing config.log, so it can be properly (re)opened and +# appended to by config.status. When coming back to configure, we +# need to make the FD available again. +if test "$no_create" != yes; then + ac_cs_success=: + ac_config_status_args= + test "$silent" = yes && + ac_config_status_args="$ac_config_status_args --quiet" + exec 5>/dev/null + $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false + exec 5>>config.log + # Use ||, not &&, to avoid exiting from the if with $? = 1, which + # would make configure fail if this is the last instruction. + $ac_cs_success || as_fn_exit 1 +fi + +# +# CONFIG_SUBDIRS section. +# +if test "$no_recursion" != yes; then + + # Remove --cache-file, --srcdir, and --disable-option-checking arguments + # so they do not pile up. + ac_sub_configure_args= + ac_prev= + eval "set x $ac_configure_args" + shift + for ac_arg + do + if test -n "$ac_prev"; then + ac_prev= + continue + fi + case $ac_arg in + -cache-file | --cache-file | --cache-fil | --cache-fi \ + | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) + ac_prev=cache_file ;; + -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ + | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* \ + | --c=*) + ;; + --config-cache | -C) + ;; + -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) + ac_prev=srcdir ;; + -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) + ;; + -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) + ac_prev=prefix ;; + -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) + ;; + --disable-option-checking) + ;; + *) + case $ac_arg in + *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + as_fn_append ac_sub_configure_args " '$ac_arg'" ;; + esac + done + + # Always prepend --prefix to ensure using the same prefix + # in subdir configurations. + ac_arg="--prefix=$prefix" + case $ac_arg in + *\'*) ac_arg=`printf "%s\n" "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; + esac + ac_sub_configure_args="'$ac_arg' $ac_sub_configure_args" + + # Pass --silent + if test "$silent" = yes; then + ac_sub_configure_args="--silent $ac_sub_configure_args" + fi + + # Always prepend --disable-option-checking to silence warnings, since + # different subdirs can have different --enable and --with options. + ac_sub_configure_args="--disable-option-checking $ac_sub_configure_args" + + ac_popdir=`pwd` + for ac_dir in : $subdirs; do test "x$ac_dir" = x: && continue + + # Do not complain, so a configure script can configure whichever + # parts of a large source tree are present. + test -d "$srcdir/$ac_dir" || continue + + ac_msg="=== configuring in $ac_dir (`pwd`/$ac_dir)" + printf "%s\n" "$as_me:${as_lineno-$LINENO}: $ac_msg" >&5 + printf "%s\n" "$ac_msg" >&6 + as_dir="$ac_dir"; as_fn_mkdir_p + ac_builddir=. + +case "$ac_dir" in +.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; +*) + ac_dir_suffix=/`printf "%s\n" "$ac_dir" | sed 's|^\.[\\/]||'` + # A ".." for each directory in $ac_dir_suffix. + ac_top_builddir_sub=`printf "%s\n" "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` + case $ac_top_builddir_sub in + "") ac_top_builddir_sub=. ac_top_build_prefix= ;; + *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; + esac ;; +esac +ac_abs_top_builddir=$ac_pwd +ac_abs_builddir=$ac_pwd$ac_dir_suffix +# for backward compatibility: +ac_top_builddir=$ac_top_build_prefix + +case $srcdir in + .) # We are building in place. + ac_srcdir=. + ac_top_srcdir=$ac_top_builddir_sub + ac_abs_top_srcdir=$ac_pwd ;; + [\\/]* | ?:[\\/]* ) # Absolute name. + ac_srcdir=$srcdir$ac_dir_suffix; + ac_top_srcdir=$srcdir + ac_abs_top_srcdir=$srcdir ;; + *) # Relative name. + ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix + ac_top_srcdir=$ac_top_build_prefix$srcdir + ac_abs_top_srcdir=$ac_pwd/$srcdir ;; +esac +ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix + + + cd "$ac_dir" + + # Check for configure.gnu first; this name is used for a wrapper for + # Metaconfig's "Configure" on case-insensitive file systems. + if test -f "$ac_srcdir/configure.gnu"; then + ac_sub_configure=$ac_srcdir/configure.gnu + elif test -f "$ac_srcdir/configure"; then + ac_sub_configure=$ac_srcdir/configure + else + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: no configuration information is in $ac_dir" >&5 +printf "%s\n" "$as_me: WARNING: no configuration information is in $ac_dir" >&2;} + ac_sub_configure= + fi + + # The recursion is here. + if test -n "$ac_sub_configure"; then + # Make the cache file name correct relative to the subdirectory. + case $cache_file in + [\\/]* | ?:[\\/]* ) ac_sub_cache_file=$cache_file ;; + *) # Relative name. + ac_sub_cache_file=$ac_top_build_prefix$cache_file ;; + esac + + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&5 +printf "%s\n" "$as_me: running $SHELL $ac_sub_configure $ac_sub_configure_args --cache-file=$ac_sub_cache_file --srcdir=$ac_srcdir" >&6;} + # The eval makes quoting arguments work. + eval "\$SHELL \"\$ac_sub_configure\" $ac_sub_configure_args \ + --cache-file=\"\$ac_sub_cache_file\" --srcdir=\"\$ac_srcdir\"" || + as_fn_error $? "$ac_sub_configure failed for $ac_dir" "$LINENO" 5 + fi + + cd "$ac_popdir" + done +fi +if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then + { printf "%s\n" "$as_me:${as_lineno-$LINENO}: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 +printf "%s\n" "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} +fi + + +## ---------------------------------- ## +## Start of distclean amending code ## +## ---------------------------------- ## + +for xc_subdir in '.' +do + +if test ! -f "$xc_subdir/Makefile"; then + echo "$xc_msg_err $xc_subdir/Makefile file not found. $xc_msg_abrt" >&2 + exit 1 +fi + +# Fetch dependency tracking file list from Makefile include lines. + +xc_inc_lines=`grep '^include .*(DEPDIR)' "$xc_subdir/Makefile" 2>/dev/null` +xc_cnt_words=`echo "$xc_inc_lines" | wc -w | tr -d "$xc_space$xc_tab"` + +# --disable-dependency-tracking might have been used, consequently +# there is nothing to amend without a dependency tracking file list. + +if test $xc_cnt_words -gt 0; then + +{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: amending $xc_subdir/Makefile" >&5 +printf "%s\n" "$as_me: amending $xc_subdir/Makefile" >&6;} + +# Build Makefile specific patch hunk. + +xc_p="$xc_subdir/xc_patch.tmp" + +xc_rm_depfiles=`echo "$xc_inc_lines" \ + | $SED 's%include% -rm -f%' 2>/dev/null` + +xc_dep_subdirs=`echo "$xc_inc_lines" \ + | $SED 's%include[ ][ ]*%%' 2>/dev/null \ + | $SED 's%(DEPDIR)/.*%(DEPDIR)%' 2>/dev/null \ + | sort | uniq` + +echo "$xc_rm_depfiles" >$xc_p + +for xc_dep_dir in $xc_dep_subdirs; do + echo "${xc_tab}@xm_dep_cnt=\`ls $xc_dep_dir | wc -l 2>/dev/null\`; \\" >>$xc_p + echo "${xc_tab}if test \$\$xm_dep_cnt -eq 0 && test -d $xc_dep_dir; then \\" >>$xc_p + echo "${xc_tab} rm -rf $xc_dep_dir; \\" >>$xc_p + echo "${xc_tab}fi" >>$xc_p +done + +# Build Makefile patching sed scripts. + +xc_s1="$xc_subdir/xc_script_1.tmp" +xc_s2="$xc_subdir/xc_script_2.tmp" +xc_s3="$xc_subdir/xc_script_3.tmp" + +cat >$xc_s1 <<\_EOT +/^distclean[ ]*:/,/^[^ ][^ ]*:/{ + s/^.*(DEPDIR)/___xc_depdir_line___/ +} +/^maintainer-clean[ ]*:/,/^[^ ][^ ]*:/{ + s/^.*(DEPDIR)/___xc_depdir_line___/ +} +_EOT + +cat >$xc_s2 <<\_EOT +/___xc_depdir_line___$/{ + N + /___xc_depdir_line___$/D +} +_EOT + +cat >$xc_s3 <<_EOT +/^___xc_depdir_line___/{ + r $xc_p + d +} +_EOT + +# Apply patch to Makefile and cleanup. + +$SED -f "$xc_s1" "$xc_subdir/Makefile" >"$xc_subdir/Makefile.tmp1" +$SED -f "$xc_s2" "$xc_subdir/Makefile.tmp1" >"$xc_subdir/Makefile.tmp2" +$SED -f "$xc_s3" "$xc_subdir/Makefile.tmp2" >"$xc_subdir/Makefile.tmp3" + +if test -f "$xc_subdir/Makefile.tmp3"; then + mv -f "$xc_subdir/Makefile.tmp3" "$xc_subdir/Makefile" +fi + +test -f "$xc_subdir/Makefile.tmp1" && rm -f "$xc_subdir/Makefile.tmp1" +test -f "$xc_subdir/Makefile.tmp2" && rm -f "$xc_subdir/Makefile.tmp2" +test -f "$xc_subdir/Makefile.tmp3" && rm -f "$xc_subdir/Makefile.tmp3" + +test -f "$xc_p" && rm -f "$xc_p" +test -f "$xc_s1" && rm -f "$xc_s1" +test -f "$xc_s2" && rm -f "$xc_s2" +test -f "$xc_s3" && rm -f "$xc_s3" + +fi + +done + +## -------------------------------- ## +## End of distclean amending code ## +## -------------------------------- ## + + + diff --git a/deps/cares/configure.ac b/deps/cares/configure.ac new file mode 100644 index 00000000000000..1d0fb5ce4e531f --- /dev/null +++ b/deps/cares/configure.ac @@ -0,0 +1,983 @@ +AC_PREREQ([2.60]) + +AC_INIT([c-ares], [1.18.1], + [c-ares mailing list: http://lists.haxx.se/listinfo/c-ares]) + +CARES_VERSION_INFO="7:1:5" +dnl This flag accepts an argument of the form current[:revision[:age]]. So, +dnl passing -version-info 3:12:1 sets current to 3, revision to 12, and age to +dnl 1. +dnl +dnl If either revision or age are omitted, they default to 0. Also note that age +dnl must be less than or equal to the current interface number. +dnl +dnl Here are a set of rules to help you update your library version information: +dnl +dnl 1.Start with version information of 0:0:0 for each libtool library. +dnl +dnl 2.Update the version information only immediately before a public release of +dnl your software. More frequent updates are unnecessary, and only guarantee +dnl that the current interface number gets larger faster. +dnl +dnl 3.If the library source code has changed at all since the last update, then +dnl increment revision (c:r+1:a) +dnl +dnl 4.If any interfaces have been added, removed, or changed since the last +dnl update, increment current, and set revision to 0. (c+1:r=0:a) +dnl +dnl 5.If any interfaces have been added since the last public release, then +dnl increment age. (c:r:a+1) +dnl +dnl 6.If any interfaces have been removed since the last public release, then +dnl set age to 0. (c:r:a=0) +dnl +AC_SUBST([CARES_VERSION_INFO]) + +AC_CONFIG_SRCDIR([src/lib/ares_ipv6.h]) +AC_CONFIG_HEADERS([src/lib/ares_config.h include/ares_build.h]) +AC_CONFIG_MACRO_DIR([m4]) +AM_MAINTAINER_MODE +m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) + +AX_REQUIRE_DEFINED([AX_CXX_COMPILE_STDCXX_11]) + +CARES_CHECK_OPTION_DEBUG +CARES_CHECK_OPTION_OPTIMIZE +CARES_CHECK_OPTION_WARNINGS +CARES_CHECK_OPTION_WERROR +CARES_CHECK_OPTION_SYMBOL_HIDING +CARES_CHECK_OPTION_EXPOSE_STATICS + +XC_CHECK_PATH_SEPARATOR + +dnl SED is mandatory for configure process and libtool. +dnl Set it now, allowing it to be changed later. +AC_PATH_PROG([SED], [sed], [not_found], + [$PATH:/usr/bin:/usr/local/bin]) +if test -z "$SED" || test "$SED" = "not_found"; then + AC_MSG_ERROR([sed not found in PATH. Cannot continue without sed.]) +fi +AC_SUBST([SED]) + +dnl GREP is mandatory for configure process and libtool. +dnl Set it now, allowing it to be changed later. +AC_PATH_PROG([GREP], [grep], [not_found], + [$PATH:/usr/bin:/usr/local/bin]) +if test -z "$GREP" || test "$GREP" = "not_found"; then + AC_MSG_ERROR([grep not found in PATH. Cannot continue without grep.]) +fi +AC_SUBST([GREP]) + +dnl EGREP is mandatory for configure process and libtool. +dnl Set it now, allowing it to be changed later. +if echo a | ($GREP -E '(a|b)') >/dev/null 2>&1; then + AC_MSG_CHECKING([for egrep]) + EGREP="$GREP -E" + AC_MSG_RESULT([$EGREP]) +else + AC_PATH_PROG([EGREP], [egrep], [not_found], + [$PATH:/usr/bin:/usr/local/bin]) +fi +if test -z "$EGREP" || test "$EGREP" = "not_found"; then + AC_MSG_ERROR([egrep not found in PATH. Cannot continue without egrep.]) +fi +AC_SUBST([EGREP]) + +dnl AR is mandatory for configure process and libtool. +dnl This is target dependent, so check it as a tool. +if test -z "$AR"; then + dnl allow it to be overridden + AC_PATH_TOOL([AR], [ar], [not_found], + [$PATH:/usr/bin:/usr/local/bin]) + if test -z "$AR" || test "$AR" = "not_found"; then + AC_MSG_ERROR([ar not found in PATH. Cannot continue without ar.]) + fi +fi +AC_SUBST([AR]) + +AX_CODE_COVERAGE + + +dnl +dnl Detect the canonical host and target build environment +dnl + +AC_CANONICAL_HOST +dnl Get system canonical name +AC_DEFINE_UNQUOTED(OS, "${host}", [cpu-machine-OS]) + +XC_CHECK_PROG_CC +AX_CXX_COMPILE_STDCXX_11([noext],[optional]) + +XC_AUTOMAKE + +dnl This defines _ALL_SOURCE for AIX +CARES_CHECK_AIX_ALL_SOURCE + +dnl Our configure and build reentrant settings +CARES_CONFIGURE_THREAD_SAFE +CARES_CONFIGURE_REENTRANT + +dnl check for how to do large files +AC_SYS_LARGEFILE + +case $host_os in + solaris*) + AC_DEFINE(ETC_INET, 1, [if a /etc/inet dir is being used]) + ;; +esac + +XC_LIBTOOL + + +# +# Automake conditionals based on libtool related checks +# + +AM_CONDITIONAL([CARES_LT_SHLIB_USE_VERSION_INFO], + [test "x$xc_lt_shlib_use_version_info" = 'xyes']) +AM_CONDITIONAL([CARES_LT_SHLIB_USE_NO_UNDEFINED], + [test "x$xc_lt_shlib_use_no_undefined" = 'xyes']) +AM_CONDITIONAL([CARES_LT_SHLIB_USE_MIMPURE_TEXT], + [test "x$xc_lt_shlib_use_mimpure_text" = 'xyes']) + +# +# Due to libtool and automake machinery limitations of not allowing +# specifying separate CPPFLAGS or CFLAGS when compiling objects for +# inclusion of these in shared or static libraries, we are forced to +# build using separate configure runs for shared and static libraries +# on systems where different CPPFLAGS or CFLAGS are mandatory in order +# to compile objects for each kind of library. Notice that relying on +# the '-DPIC' CFLAG that libtool provides is not valid given that the +# user might for example choose to build static libraries with PIC. +# + +# +# Make our Makefile.am files use the staticlib CPPFLAG only when strictly +# targeting a static library and not building its shared counterpart. +# + +AM_CONDITIONAL([USE_CPPFLAG_CARES_STATICLIB], + [test "x$xc_lt_build_static_only" = 'xyes']) + +# +# Make staticlib CPPFLAG variable and its definition visible in output +# files unconditionally, providing an empty definition unless strictly +# targeting a static library and not building its shared counterpart. +# + +CPPFLAG_CARES_STATICLIB= +if test "x$xc_lt_build_static_only" = 'xyes'; then + CPPFLAG_CARES_STATICLIB='-DCARES_STATICLIB' +fi +AC_SUBST([CPPFLAG_CARES_STATICLIB]) + +dnl ********************************************************************** +dnl platform/compiler/architecture specific checks/flags +dnl ********************************************************************** + +CARES_CHECK_COMPILER +CARES_SET_COMPILER_BASIC_OPTS +CARES_SET_COMPILER_DEBUG_OPTS +CARES_SET_COMPILER_OPTIMIZE_OPTS +CARES_SET_COMPILER_WARNING_OPTS + +if test "$compiler_id" = "INTEL_UNIX_C"; then + # + if test "$compiler_num" -ge "1000"; then + dnl icc 10.X or later + CFLAGS="$CFLAGS -shared-intel" + elif test "$compiler_num" -ge "900"; then + dnl icc 9.X specific + CFLAGS="$CFLAGS -i-dynamic" + fi + # +fi + +CARES_CHECK_COMPILER_HALT_ON_ERROR +CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE +CARES_CHECK_COMPILER_PROTOTYPE_MISMATCH +CARES_CHECK_COMPILER_SYMBOL_HIDING + +dnl ********************************************************************** +dnl Compilation based checks should not be done before this point. +dnl ********************************************************************** + +dnl ********************************************************************** +dnl Make sure that our checks for headers windows.h winsock.h winsock2.h +dnl and ws2tcpip.h take precedence over any other further checks which +dnl could be done later using AC_CHECK_HEADER or AC_CHECK_HEADERS for +dnl this specific header files. And do them before its results are used. +dnl ********************************************************************** + +CURL_CHECK_HEADER_WINDOWS +CURL_CHECK_NATIVE_WINDOWS +case X-"$ac_cv_native_windows" in + X-yes) + CURL_CHECK_HEADER_WINSOCK + CURL_CHECK_HEADER_WINSOCK2 + CURL_CHECK_HEADER_WS2TCPIP + CPPFLAGS="$CPPFLAGS -D_WIN32_WINNT=0x0600" + ;; + *) + ac_cv_header_winsock_h="no" + ac_cv_header_winsock2_h="no" + ac_cv_header_ws2tcpip_h="no" + ;; +esac + +dnl ********************************************************************** +dnl Checks for libraries. +dnl ********************************************************************** + +CARES_CHECK_LIB_XNET + +dnl gethostbyname without lib or in the nsl lib? +AC_CHECK_FUNC(gethostbyname, + [HAVE_GETHOSTBYNAME="1" + ], + [ AC_CHECK_LIB(nsl, gethostbyname, + [HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lnsl" + ]) + ]) + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl gethostbyname in the socket lib? + AC_CHECK_LIB(socket, gethostbyname, + [HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lsocket" + ]) +fi + +dnl At least one system has been identified to require BOTH nsl and socket +dnl libs at the same time to link properly. +if test "$HAVE_GETHOSTBYNAME" != "1" +then + AC_MSG_CHECKING([for gethostbyname with both nsl and socket libs]) + my_ac_save_LIBS=$LIBS + LIBS="-lnsl -lsocket $LIBS" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + gethostbyname(); + ]]) + ],[ + AC_MSG_RESULT([yes]) + HAVE_GETHOSTBYNAME="1" + ],[ + AC_MSG_RESULT([no]) + LIBS=$my_ac_save_LIBS + ]) +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl This is for winsock systems + if test "$ac_cv_header_windows_h" = "yes"; then + if test "$ac_cv_header_winsock_h" = "yes"; then + case $host in + *-*-mingw32ce*) + winsock_LIB="-lwinsock" + ;; + *) + winsock_LIB="-lwsock32" + ;; + esac + fi + if test "$ac_cv_header_winsock2_h" = "yes"; then + winsock_LIB="-lws2_32" + fi + if test ! -z "$winsock_LIB"; then + my_ac_save_LIBS=$LIBS + LIBS="$winsock_LIB $LIBS" + AC_MSG_CHECKING([for gethostbyname in $winsock_LIB]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#else +#ifdef HAVE_WINSOCK_H +#include +#endif +#endif +#endif + ]],[[ + gethostbyname("www.dummysite.com"); + ]]) + ],[ + AC_MSG_RESULT([yes]) + HAVE_GETHOSTBYNAME="1" + ],[ + AC_MSG_RESULT([no]) + winsock_LIB="" + LIBS=$my_ac_save_LIBS + ]) + fi + fi +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl This is for Minix 3.1 + AC_MSG_CHECKING([for gethostbyname for Minix 3]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +/* Older Minix versions may need here instead */ +#include + ]],[[ + gethostbyname("www.dummysite.com"); + ]]) + ],[ + AC_MSG_RESULT([yes]) + HAVE_GETHOSTBYNAME="1" + ],[ + AC_MSG_RESULT([no]) + ]) +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl This is for eCos with a stubbed DNS implementation + AC_MSG_CHECKING([for gethostbyname for eCos]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +#include +#include + ]],[[ + gethostbyname("www.dummysite.com"); + ]]) + ],[ + AC_MSG_RESULT([yes]) + HAVE_GETHOSTBYNAME="1" + ],[ + AC_MSG_RESULT([no]) + ]) +fi + +if test "$HAVE_GETHOSTBYNAME" != "1" +then + dnl gethostbyname in the net lib - for BeOS + AC_CHECK_LIB(net, gethostbyname, + [HAVE_GETHOSTBYNAME="1" + LIBS="$LIBS -lnet" + ]) +fi + + +if test "$HAVE_GETHOSTBYNAME" != "1"; then + AC_MSG_ERROR([couldn't find libraries for gethostbyname()]) +fi + +dnl resolv lib for Apple (MacOS and iOS) +AS_IF([test "x$host_vendor" = "xapple"], [ + AC_SEARCH_LIBS([res_servicename], [resolv], [ + AC_DEFINE([CARES_USE_LIBRESOLV], [1], [Use resolver library to configure cares]) + ], [ + AC_MSG_ERROR([Unable to find libresolv which is required for iPhone targets]) + ]) +]) + +dnl resolv lib for z/OS +AS_IF([test "x$host_vendor" = "xibm" -a "x$host_os" = "xopenedition" ], [ + AC_SEARCH_LIBS([res_init], [resolv], [ + AC_DEFINE([CARES_USE_LIBRESOLV], [1], [Use resolver library to configure cares]) + ], [ + AC_MSG_ERROR([Unable to find libresolv which is required for z/OS]) + ]) +]) + +dnl resolve lib? +AC_CHECK_FUNC(strcasecmp, , [ AC_CHECK_LIB(resolve, strcasecmp) ]) + +if test "$ac_cv_lib_resolve_strcasecmp" = "$ac_cv_func_strcasecmp"; then + AC_CHECK_LIB(resolve, strcasecmp, + [LIBS="-lresolve $LIBS"], + , + -lnsl) +fi +ac_cv_func_strcasecmp="no" + +dnl Windows builds require linking to iphlpapi +if test "$ac_cv_header_winsock2_h" = "yes"; then + LIBS="$LIBS -liphlpapi" +fi + +CARES_CHECK_LIBS_CONNECT + +dnl iOS 10? +AS_IF([test "x$host_vendor" = "xapple"], [ + AC_MSG_CHECKING([for iOS minimum version 10 or later]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include +#include + ]], [[ +#if TARGET_OS_IPHONE == 0 || __IPHONE_OS_VERSION_MIN_REQUIRED < 100000 +#error Not iOS 10 or later +#endif +return 0; + ]]) + ],[ + AC_MSG_RESULT([yes]) + ac_cv_ios_10="yes" + ],[ + AC_MSG_RESULT([no]) + ]) +]) + +dnl macOS 10.12? +AS_IF([test "x$host_vendor" = "xapple"], [ + AC_MSG_CHECKING([for macOS minimum version 10.12 or later]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include +#include + ]], [[ +#ifndef MAC_OS_X_VERSION_10_12 +# define MAC_OS_X_VERSION_10_12 101200 +#endif +#if MAC_OS_X_VERSION_MIN_REQUIRED < MAC_OS_X_VERSION_10_12 +#error Not macOS 10.12 or later +#endif +return 0; + ]]) + ],[ + AC_MSG_RESULT([yes]) + ac_cv_macos_10_12="yes" + ],[ + AC_MSG_RESULT([no]) + ]) +]) + +dnl ********************************************************************** +dnl In case that function clock_gettime with monotonic timer is available, +dnl check for additional required libraries. +dnl ********************************************************************** +dnl Xcode 8 bug: iOS when targeting less than 10, or macOS when targeting less than 10.12 will +dnl say clock_gettime exists, it is a weak symbol that only exists in iOS 10 or macOS 10.12 and will +dnl cause a crash at runtime when running on older versions. Skip finding CLOCK_MONOTONIC on older +dnl Apple OS's. +if test "x$host_vendor" != "xapple" || test "x$ac_cv_ios_10" = "xyes" || test "x$ac_cv_macos_10_12" = "xyes"; then + CURL_CHECK_LIBS_CLOCK_GETTIME_MONOTONIC +fi + +AC_MSG_CHECKING([whether to use libgcc]) +AC_ARG_ENABLE(libgcc, +AS_HELP_STRING([--enable-libgcc],[use libgcc when linking]), +[ case "$enableval" in + yes) + LIBS="$LIBS -lgcc" + AC_MSG_RESULT(yes) + ;; + *) AC_MSG_RESULT(no) + ;; + esac ], + AC_MSG_RESULT(no) +) + + +dnl Let's hope this split URL remains working: +dnl http://publibn.boulder.ibm.com/doc_link/en_US/a_doc_lib/aixprggd/ \ +dnl genprogc/thread_quick_ref.htm + + +dnl ********************************************************************** +dnl Back to "normal" configuring +dnl ********************************************************************** + +dnl Checks for header files. +STDC_HEADERS + +AC_PROG_EGREP + + +CURL_CHECK_HEADER_MALLOC +CURL_CHECK_HEADER_MEMORY + +dnl check for a few basic system headers we need +AC_CHECK_HEADERS( + sys/types.h \ + sys/time.h \ + sys/select.h \ + sys/socket.h \ + sys/ioctl.h \ + sys/param.h \ + sys/uio.h \ + assert.h \ + netdb.h \ + netinet/in.h \ + netinet/tcp.h \ + net/if.h \ + errno.h \ + socket.h \ + strings.h \ + stdbool.h \ + time.h \ + limits.h \ + arpa/nameser.h \ + arpa/nameser_compat.h \ + arpa/inet.h, +dnl to do if not found +[], +dnl to do if found +[], +dnl default includes +[ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_TIME_H +#include +#endif +dnl We do this default-include simply to make sure that the nameser_compat.h +dnl header *REALLY* can be include after the new nameser.h. It seems AIX 5.1 +dnl (and others?) is not designed to allow this. +#ifdef HAVE_ARPA_NAMESER_H +#include +#endif + +dnl *Sigh* these are needed in order for net/if.h to get properly detected. +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +] +) + +dnl Test and set CARES_HAVE_ARPA_NAMESER_H / CARES_HAVE_ARPA_NAMESER_COMPAT_H +AC_CHECK_DECL([HAVE_ARPA_NAMESER_H], +[ +CARES_DEFINE_UNQUOTED([CARES_HAVE_ARPA_NAMESER_H]) +], +[] +) +AC_CHECK_DECL([HAVE_ARPA_NAMESER_COMPAT_H], +[ +CARES_DEFINE_UNQUOTED([CARES_HAVE_ARPA_NAMESER_COMPAT_H]) +], +[] +) + +dnl Checks for typedefs, structures, and compiler characteristics. +AC_C_CONST +AC_TYPE_SIZE_T +m4_warn([obsolete], +[Update your code to rely only on HAVE_SYS_TIME_H, +then remove this warning and the obsolete code below it. +All current systems provide time.h; it need not be checked for. +Not all systems provide sys/time.h, but those that do, all allow +you to include it and time.h simultaneously.])dnl +AC_CHECK_HEADERS_ONCE([sys/time.h]) +# Obsolete code to be removed. +if test $ac_cv_header_sys_time_h = yes; then + AC_DEFINE([TIME_WITH_SYS_TIME],[1],[Define to 1 if you can safely include both + and . This macro is obsolete.]) +fi +# End of obsolete code. + +CURL_CHECK_STRUCT_TIMEVAL + +AC_CHECK_TYPE(long long, + [AC_DEFINE(HAVE_LONGLONG, 1, + [Define to 1 if the compiler supports the 'long long' data type.])] + longlong="yes" +) + +if test "xyes" = "x$longlong"; then + AC_MSG_CHECKING([if numberLL works]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + long long val = 1000LL; + ]]) + ],[ + AC_MSG_RESULT([yes]) + AC_DEFINE(HAVE_LL, 1, [if your compiler supports LL]) + ],[ + AC_MSG_RESULT([no]) + ]) +fi + + +# check for ssize_t +AC_CHECK_TYPE(ssize_t, [ CARES_TYPEOF_ARES_SSIZE_T=ssize_t ], + [ CARES_TYPEOF_ARES_SSIZE_T=int ]) + +AC_DEFINE_UNQUOTED([CARES_TYPEOF_ARES_SSIZE_T], ${CARES_TYPEOF_ARES_SSIZE_T}, + [the signed version of size_t]) + + +# check for bool type +AC_CHECK_TYPE([bool],[ + AC_DEFINE(HAVE_BOOL_T, 1, + [Define to 1 if bool is an available type.]) +], ,[ +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_STDBOOL_H +#include +#endif +]) + +CARES_CONFIGURE_ARES_SOCKLEN_T + +TYPE_IN_ADDR_T + +TYPE_SOCKADDR_STORAGE + +TYPE_SIG_ATOMIC_T + +m4_warn([obsolete], +[your code may safely assume C89 semantics that RETSIGTYPE is void. +Remove this warning and the `AC_CACHE_CHECK' when you adjust the code.])dnl +AC_CACHE_CHECK([return type of signal handlers],[ac_cv_type_signal],[AC_COMPILE_IFELSE( +[AC_LANG_PROGRAM([#include +#include +], + [return *(signal (0, 0)) (0) == 1;])], + [ac_cv_type_signal=int], + [ac_cv_type_signal=void])]) +AC_DEFINE_UNQUOTED([RETSIGTYPE],[$ac_cv_type_signal],[Define as the return type of signal handlers + (`int' or `void').]) + + +CURL_CHECK_FUNC_RECV +CURL_CHECK_FUNC_RECVFROM +CURL_CHECK_FUNC_SEND +CURL_CHECK_MSG_NOSIGNAL + +CARES_CHECK_FUNC_CLOSESOCKET +CARES_CHECK_FUNC_CLOSESOCKET_CAMEL +CARES_CHECK_FUNC_CONNECT +CARES_CHECK_FUNC_FCNTL +CARES_CHECK_FUNC_FREEADDRINFO +CARES_CHECK_FUNC_GETADDRINFO +CARES_CHECK_FUNC_GETENV +CARES_CHECK_FUNC_GETHOSTBYADDR +CARES_CHECK_FUNC_GETHOSTBYNAME +CARES_CHECK_FUNC_GETHOSTNAME +CARES_CHECK_FUNC_GETSERVBYPORT_R +CARES_CHECK_FUNC_INET_NET_PTON +CARES_CHECK_FUNC_INET_NTOP +CARES_CHECK_FUNC_INET_PTON +CARES_CHECK_FUNC_IOCTL +CARES_CHECK_FUNC_IOCTLSOCKET +CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL +CARES_CHECK_FUNC_SETSOCKOPT +CARES_CHECK_FUNC_SOCKET +CARES_CHECK_FUNC_STRCASECMP +CARES_CHECK_FUNC_STRCMPI +CARES_CHECK_FUNC_STRDUP +CARES_CHECK_FUNC_STRICMP +CARES_CHECK_FUNC_STRNCASECMP +CARES_CHECK_FUNC_STRNCMPI +CARES_CHECK_FUNC_STRNICMP +CARES_CHECK_FUNC_WRITEV + + +dnl check for AF_INET6 +CARES_CHECK_CONSTANT( + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ], [PF_INET6], + AC_DEFINE_UNQUOTED(HAVE_PF_INET6,1,[Define to 1 if you have PF_INET6.]) +) + +dnl check for PF_INET6 +CARES_CHECK_CONSTANT( + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#endif + ], [AF_INET6], + AC_DEFINE_UNQUOTED(HAVE_AF_INET6,1,[Define to 1 if you have AF_INET6.]) +) + + +dnl check for the in6_addr structure +CARES_CHECK_STRUCT( + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + ], [in6_addr], + AC_DEFINE_UNQUOTED(HAVE_STRUCT_IN6_ADDR,1,[Define to 1 if you have struct in6_addr.]) +) + +dnl check for the sockaddr_in6 structure +CARES_CHECK_STRUCT( + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + ], [sockaddr_in6], + AC_DEFINE_UNQUOTED(HAVE_STRUCT_SOCKADDR_IN6,1, + [Define to 1 if you have struct sockaddr_in6.]) ac_have_sockaddr_in6=yes +) + +AC_CHECK_MEMBER(struct sockaddr_in6.sin6_scope_id, + AC_DEFINE_UNQUOTED(HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID,1, + [Define to 1 if your struct sockaddr_in6 has sin6_scope_id.]) + , , + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#endif + ]) + +dnl check for the addrinfo structure +AC_CHECK_MEMBER(struct addrinfo.ai_flags, + AC_DEFINE_UNQUOTED(HAVE_STRUCT_ADDRINFO,1, + [Define to 1 if you have struct addrinfo.]),, + [ +#undef inline +#ifdef HAVE_WINDOWS_H +#ifndef WIN32_LEAN_AND_MEAN +#define WIN32_LEAN_AND_MEAN +#endif +#include +#ifdef HAVE_WINSOCK2_H +#include +#ifdef HAVE_WS2TCPIP_H +#include +#endif +#endif +#else +#ifdef HAVE_SYS_TYPES_H +#include +#endif +#ifdef HAVE_NETINET_IN_H +#include +#endif +#ifdef HAVE_SYS_SOCKET_H +#include +#endif +#ifdef HAVE_NETDB_H +#include +#endif +#endif + ] +) + + +AC_CHECK_FUNCS([bitncmp \ + gettimeofday \ + if_indextoname +],[ +],[ + func="$ac_func" + AC_MSG_CHECKING([deeper for $func]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + $func (); + ]]) + ],[ + AC_MSG_RESULT([yes]) + eval "ac_cv_func_$func=yes" + AC_DEFINE_UNQUOTED(XC_SH_TR_CPP([HAVE_$func]), [1], + [Define to 1 if you have the $func function.]) + ],[ + AC_MSG_RESULT([but still no]) + ]) +]) + +dnl Android. Some variants like arm64 may no longer have __system_property_get +dnl in libc, but they are defined in the headers. Perform a link check. +AC_CHECK_FUNC([__system_property_get], [ + AC_DEFINE([HAVE___SYSTEM_PROPERTY_GET], [1], [Define if __system_property_get exists.]) +]) + +dnl Check if the getnameinfo function is available +dnl and get the types of five of its arguments. +CURL_CHECK_FUNC_GETNAMEINFO + + +AC_C_BIGENDIAN( + [AC_DEFINE(ARES_BIG_ENDIAN, 1, + [define this if ares is built for a big endian system])], + , + [AC_MSG_WARN([couldn't figure out endianess, assuming little endian!])] +) + +dnl Check for user-specified random device +AC_ARG_WITH(random, +AS_HELP_STRING([--with-random=FILE], + [read randomness from FILE (default=/dev/urandom)]), + [ CARES_RANDOM_FILE="$withval" ], + [ + dnl Check for random device. If we're cross compiling, we can't + dnl check, and it's better to assume it doesn't exist than it is + dnl to fail on AC_CHECK_FILE or later. + if test "$cross_compiling" = "no"; then + AC_CHECK_FILE("/dev/urandom", [ CARES_RANDOM_FILE="/dev/urandom"] ) + else + AC_MSG_WARN([cannot check for /dev/urandom while cross compiling; assuming none]) + fi + + ] +) +if test -n "$CARES_RANDOM_FILE" && test X"$CARES_RANDOM_FILE" != Xno ; then + AC_SUBST(CARES_RANDOM_FILE) + AC_DEFINE_UNQUOTED(CARES_RANDOM_FILE, "$CARES_RANDOM_FILE", + [a suitable file/device to read random data from]) +fi + +CARES_CHECK_OPTION_NONBLOCKING +CARES_CHECK_NONBLOCKING_SOCKET + +CARES_CONFIGURE_SYMBOL_HIDING + +CARES_PRIVATE_LIBS="$LIBS" +AC_SUBST(CARES_PRIVATE_LIBS) + +CARES_CFLAG_EXTRAS="" +if test X"$want_werror" = Xyes; then + CARES_CFLAG_EXTRAS="-Werror" +fi +AC_SUBST(CARES_CFLAG_EXTRAS) + +dnl squeeze whitespace out of some variables + +squeeze CFLAGS +squeeze CPPFLAGS +squeeze DEFS +squeeze LDFLAGS +squeeze LIBS + +squeeze CARES_PRIVATE_LIBS + +XC_CHECK_BUILD_FLAGS + +AC_MSG_CHECKING([whether to build tests]) +AC_ARG_ENABLE(tests, + AS_HELP_STRING([--enable-tests], [build test suite]), + [ build_tests="$enableval" ], + [ if test "x$HAVE_CXX11" = "x1" && test "x$cross_compiling" = "xno" ; then + build_tests="yes" + else + build_tests="no" + fi + ] +) + +if test "x$build_tests" = "xyes" ; then + if test "x$HAVE_CXX11" = "0" ; then + AC_MSG_ERROR([*** Building tests requires a CXX11 compiler]) + fi + if test "x$cross_compiling" = "xyes" ; then + AC_MSG_ERROR([*** Tests not supported when cross compiling]) + fi +fi +AC_MSG_RESULT([$build_tests]) + + +BUILD_SUBDIRS="include src docs" +if test "x$build_tests" = "xyes" ; then + AC_CONFIG_SUBDIRS([test]) + BUILD_SUBDIRS="${BUILD_SUBDIRS} test" +fi + +AC_SUBST(BUILD_SUBDIRS) + +AC_CONFIG_FILES([Makefile \ + include/Makefile \ + src/Makefile \ + src/lib/Makefile \ + src/tools/Makefile \ + docs/Makefile \ + libcares.pc ]) + +AC_OUTPUT +XC_AMEND_DISTCLEAN(['.']) diff --git a/deps/cares/depcomp b/deps/cares/depcomp new file mode 100755 index 00000000000000..715e34311ed2d2 --- /dev/null +++ b/deps/cares/depcomp @@ -0,0 +1,791 @@ +#! /bin/sh +# depcomp - compile a program generating dependencies as side-effects + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1999-2021 Free Software Foundation, Inc. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +# Originally written by Alexandre Oliva . + +case $1 in + '') + echo "$0: No command. Try '$0 --help' for more information." 1>&2 + exit 1; + ;; + -h | --h*) + cat <<\EOF +Usage: depcomp [--help] [--version] PROGRAM [ARGS] + +Run PROGRAMS ARGS to compile a file, generating dependencies +as side-effects. + +Environment variables: + depmode Dependency tracking mode. + source Source file read by 'PROGRAMS ARGS'. + object Object file output by 'PROGRAMS ARGS'. + DEPDIR directory where to store dependencies. + depfile Dependency file to output. + tmpdepfile Temporary file to use when outputting dependencies. + libtool Whether libtool is used (yes/no). + +Report bugs to . +EOF + exit $? + ;; + -v | --v*) + echo "depcomp $scriptversion" + exit $? + ;; +esac + +# Get the directory component of the given path, and save it in the +# global variables '$dir'. Note that this directory component will +# be either empty or ending with a '/' character. This is deliberate. +set_dir_from () +{ + case $1 in + */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;; + *) dir=;; + esac +} + +# Get the suffix-stripped basename of the given path, and save it the +# global variable '$base'. +set_base_from () +{ + base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'` +} + +# If no dependency file was actually created by the compiler invocation, +# we still have to create a dummy depfile, to avoid errors with the +# Makefile "include basename.Plo" scheme. +make_dummy_depfile () +{ + echo "#dummy" > "$depfile" +} + +# Factor out some common post-processing of the generated depfile. +# Requires the auxiliary global variable '$tmpdepfile' to be set. +aix_post_process_depfile () +{ + # If the compiler actually managed to produce a dependency file, + # post-process it. + if test -f "$tmpdepfile"; then + # Each line is of the form 'foo.o: dependency.h'. + # Do two passes, one to just change these to + # $object: dependency.h + # and one to simply output + # dependency.h: + # which is needed to avoid the deleted-header problem. + { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile" + sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile" + } > "$depfile" + rm -f "$tmpdepfile" + else + make_dummy_depfile + fi +} + +# A tabulation character. +tab=' ' +# A newline character. +nl=' +' +# Character ranges might be problematic outside the C locale. +# These definitions help. +upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ +lower=abcdefghijklmnopqrstuvwxyz +digits=0123456789 +alpha=${upper}${lower} + +if test -z "$depmode" || test -z "$source" || test -z "$object"; then + echo "depcomp: Variables source, object and depmode must be set" 1>&2 + exit 1 +fi + +# Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po. +depfile=${depfile-`echo "$object" | + sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`} +tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`} + +rm -f "$tmpdepfile" + +# Avoid interferences from the environment. +gccflag= dashmflag= + +# Some modes work just like other modes, but use different flags. We +# parameterize here, but still list the modes in the big case below, +# to make depend.m4 easier to write. Note that we *cannot* use a case +# here, because this file can only contain one case statement. +if test "$depmode" = hp; then + # HP compiler uses -M and no extra arg. + gccflag=-M + depmode=gcc +fi + +if test "$depmode" = dashXmstdout; then + # This is just like dashmstdout with a different argument. + dashmflag=-xM + depmode=dashmstdout +fi + +cygpath_u="cygpath -u -f -" +if test "$depmode" = msvcmsys; then + # This is just like msvisualcpp but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvisualcpp +fi + +if test "$depmode" = msvc7msys; then + # This is just like msvc7 but w/o cygpath translation. + # Just convert the backslash-escaped backslashes to single forward + # slashes to satisfy depend.m4 + cygpath_u='sed s,\\\\,/,g' + depmode=msvc7 +fi + +if test "$depmode" = xlc; then + # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information. + gccflag=-qmakedep=gcc,-MF + depmode=gcc +fi + +case "$depmode" in +gcc3) +## gcc 3 implements dependency tracking that does exactly what +## we want. Yay! Note: for some reason libtool 1.4 doesn't like +## it if -MD -MP comes after the -MF stuff. Hmm. +## Unfortunately, FreeBSD c89 acceptance of flags depends upon +## the command line argument order; so add the flags where they +## appear in depend2.am. Note that the slowdown incurred here +## affects only configure: in makefiles, %FASTDEP% shortcuts this. + for arg + do + case $arg in + -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;; + *) set fnord "$@" "$arg" ;; + esac + shift # fnord + shift # $arg + done + "$@" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + mv "$tmpdepfile" "$depfile" + ;; + +gcc) +## Note that this doesn't just cater to obsosete pre-3.x GCC compilers. +## but also to in-use compilers like IMB xlc/xlC and the HP C compiler. +## (see the conditional assignment to $gccflag above). +## There are various ways to get dependency output from gcc. Here's +## why we pick this rather obscure method: +## - Don't want to use -MD because we'd like the dependencies to end +## up in a subdir. Having to rename by hand is ugly. +## (We might end up doing this anyway to support other compilers.) +## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like +## -MM, not -M (despite what the docs say). Also, it might not be +## supported by the other compilers which use the 'gcc' depmode. +## - Using -M directly means running the compiler twice (even worse +## than renaming). + if test -z "$gccflag"; then + gccflag=-MD, + fi + "$@" -Wp,"$gccflag$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The second -e expression handles DOS-style file names with drive + # letters. + sed -e 's/^[^:]*: / /' \ + -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile" +## This next piece of magic avoids the "deleted header file" problem. +## The problem is that when a header file which appears in a .P file +## is deleted, the dependency causes make to die (because there is +## typically no way to rebuild the header). We avoid this by adding +## dummy dependencies for each header file. Too bad gcc doesn't do +## this for us directly. +## Some versions of gcc put a space before the ':'. On the theory +## that the space means something, we add a space to the output as +## well. hp depmode also adds that space, but also prefixes the VPATH +## to the object. Take care to not repeat it in the output. +## Some versions of the HPUX 10.20 sed can't process this invocation +## correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +sgi) + if test "$libtool" = yes; then + "$@" "-Wp,-MDupdate,$tmpdepfile" + else + "$@" -MDupdate "$tmpdepfile" + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + + if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files + echo "$object : \\" > "$depfile" + # Clip off the initial element (the dependent). Don't try to be + # clever and replace this with sed code, as IRIX sed won't handle + # lines with more than a fixed number of characters (4096 in + # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines; + # the IRIX cc adds comments like '#:fec' to the end of the + # dependency line. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \ + | tr "$nl" ' ' >> "$depfile" + echo >> "$depfile" + # The second pass generates a dummy entry for each header file. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \ + >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" + ;; + +xlc) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +aix) + # The C for AIX Compiler uses -M and outputs the dependencies + # in a .u file. In older versions, this file always lives in the + # current directory. Also, the AIX compiler puts '$object:' at the + # start of each line; $object doesn't have directory information. + # Version 6 uses the directory in both cases. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.u + tmpdepfile2=$base.u + tmpdepfile3=$dir.libs/$base.u + "$@" -Wc,-M + else + tmpdepfile1=$dir$base.u + tmpdepfile2=$dir$base.u + tmpdepfile3=$dir$base.u + "$@" -M + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + aix_post_process_depfile + ;; + +tcc) + # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26 + # FIXME: That version still under development at the moment of writing. + # Make that this statement remains true also for stable, released + # versions. + # It will wrap lines (doesn't matter whether long or short) with a + # trailing '\', as in: + # + # foo.o : \ + # foo.c \ + # foo.h \ + # + # It will put a trailing '\' even on the last line, and will use leading + # spaces rather than leading tabs (at least since its commit 0394caf7 + # "Emit spaces for -MD"). + "$@" -MD -MF "$tmpdepfile" + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'. + # We have to change lines of the first kind to '$object: \'. + sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile" + # And for each line of the second kind, we have to emit a 'dep.h:' + # dummy dependency, to avoid the deleted-header problem. + sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile" + rm -f "$tmpdepfile" + ;; + +## The order of this option in the case statement is important, since the +## shell code in configure will try each of these formats in the order +## listed in this file. A plain '-MD' option would be understood by many +## compilers, so we must ensure this comes after the gcc and icc options. +pgcc) + # Portland's C compiler understands '-MD'. + # Will always output deps to 'file.d' where file is the root name of the + # source file under compilation, even if file resides in a subdirectory. + # The object file name does not affect the name of the '.d' file. + # pgcc 10.2 will output + # foo.o: sub/foo.c sub/foo.h + # and will wrap long lines using '\' : + # foo.o: sub/foo.c ... \ + # sub/foo.h ... \ + # ... + set_dir_from "$object" + # Use the source, not the object, to determine the base name, since + # that's sadly what pgcc will do too. + set_base_from "$source" + tmpdepfile=$base.d + + # For projects that build the same source file twice into different object + # files, the pgcc approach of using the *source* file root name can cause + # problems in parallel builds. Use a locking strategy to avoid stomping on + # the same $tmpdepfile. + lockdir=$base.d-lock + trap " + echo '$0: caught signal, cleaning up...' >&2 + rmdir '$lockdir' + exit 1 + " 1 2 13 15 + numtries=100 + i=$numtries + while test $i -gt 0; do + # mkdir is a portable test-and-set. + if mkdir "$lockdir" 2>/dev/null; then + # This process acquired the lock. + "$@" -MD + stat=$? + # Release the lock. + rmdir "$lockdir" + break + else + # If the lock is being held by a different process, wait + # until the winning process is done or we timeout. + while test -d "$lockdir" && test $i -gt 0; do + sleep 1 + i=`expr $i - 1` + done + fi + i=`expr $i - 1` + done + trap - 1 2 13 15 + if test $i -le 0; then + echo "$0: failed to acquire lock after $numtries attempts" >&2 + echo "$0: check lockdir '$lockdir'" >&2 + exit 1 + fi + + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + # Each line is of the form `foo.o: dependent.h', + # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'. + # Do two passes, one to just change these to + # `$object: dependent.h' and one to simply `dependent.h:'. + sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +hp2) + # The "hp" stanza above does not work with aCC (C++) and HP's ia64 + # compilers, which have integrated preprocessors. The correct option + # to use with these is +Maked; it writes dependencies to a file named + # 'foo.d', which lands next to the object file, wherever that + # happens to be. + # Much of this is similar to the tru64 case; see comments there. + set_dir_from "$object" + set_base_from "$object" + if test "$libtool" = yes; then + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir.libs/$base.d + "$@" -Wc,+Maked + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + "$@" +Maked + fi + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" + do + test -f "$tmpdepfile" && break + done + if test -f "$tmpdepfile"; then + sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile" + # Add 'dependent.h:' lines. + sed -ne '2,${ + s/^ *// + s/ \\*$// + s/$/:/ + p + }' "$tmpdepfile" >> "$depfile" + else + make_dummy_depfile + fi + rm -f "$tmpdepfile" "$tmpdepfile2" + ;; + +tru64) + # The Tru64 compiler uses -MD to generate dependencies as a side + # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'. + # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put + # dependencies in 'foo.d' instead, so we check for that too. + # Subdirectories are respected. + set_dir_from "$object" + set_base_from "$object" + + if test "$libtool" = yes; then + # Libtool generates 2 separate objects for the 2 libraries. These + # two compilations output dependencies in $dir.libs/$base.o.d and + # in $dir$base.o.d. We have to check for both files, because + # one of the two compilations can be disabled. We should prefer + # $dir$base.o.d over $dir.libs/$base.o.d because the latter is + # automatically cleaned when .libs/ is deleted, while ignoring + # the former would cause a distcleancheck panic. + tmpdepfile1=$dir$base.o.d # libtool 1.5 + tmpdepfile2=$dir.libs/$base.o.d # Likewise. + tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504 + "$@" -Wc,-MD + else + tmpdepfile1=$dir$base.d + tmpdepfile2=$dir$base.d + tmpdepfile3=$dir$base.d + "$@" -MD + fi + + stat=$? + if test $stat -ne 0; then + rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + exit $stat + fi + + for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" + do + test -f "$tmpdepfile" && break + done + # Same post-processing that is required for AIX mode. + aix_post_process_depfile + ;; + +msvc7) + if test "$libtool" = yes; then + showIncludes=-Wc,-showIncludes + else + showIncludes=-showIncludes + fi + "$@" $showIncludes > "$tmpdepfile" + stat=$? + grep -v '^Note: including file: ' "$tmpdepfile" + if test $stat -ne 0; then + rm -f "$tmpdepfile" + exit $stat + fi + rm -f "$depfile" + echo "$object : \\" > "$depfile" + # The first sed program below extracts the file names and escapes + # backslashes for cygpath. The second sed program outputs the file + # name when reading, but also accumulates all include files in the + # hold buffer in order to output them again at the end. This only + # works with sed implementations that can handle large buffers. + sed < "$tmpdepfile" -n ' +/^Note: including file: *\(.*\)/ { + s//\1/ + s/\\/\\\\/g + p +}' | $cygpath_u | sort -u | sed -n ' +s/ /\\ /g +s/\(.*\)/'"$tab"'\1 \\/p +s/.\(.*\) \\/\1:/ +H +$ { + s/.*/'"$tab"'/ + G + p +}' >> "$depfile" + echo >> "$depfile" # make sure the fragment doesn't end with a backslash + rm -f "$tmpdepfile" + ;; + +msvc7msys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +#nosideeffect) + # This comment above is used by automake to tell side-effect + # dependency tracking mechanisms from slower ones. + +dashmstdout) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout, regardless of -o. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + test -z "$dashmflag" && dashmflag=-M + # Require at least two characters before searching for ':' + # in the target name. This is to cope with DOS-style filenames: + # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise. + "$@" $dashmflag | + sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile" + rm -f "$depfile" + cat < "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process this sed invocation + # correctly. Breaking it into two sed invocations is a workaround. + tr ' ' "$nl" < "$tmpdepfile" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +dashXmstdout) + # This case only exists to satisfy depend.m4. It is never actually + # run, as this mode is specially recognized in the preamble. + exit 1 + ;; + +makedepend) + "$@" || exit $? + # Remove any Libtool call + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + # X makedepend + shift + cleared=no eat=no + for arg + do + case $cleared in + no) + set ""; shift + cleared=yes ;; + esac + if test $eat = yes; then + eat=no + continue + fi + case "$arg" in + -D*|-I*) + set fnord "$@" "$arg"; shift ;; + # Strip any option that makedepend may not understand. Remove + # the object too, otherwise makedepend will parse it as a source file. + -arch) + eat=yes ;; + -*|$object) + ;; + *) + set fnord "$@" "$arg"; shift ;; + esac + done + obj_suffix=`echo "$object" | sed 's/^.*\././'` + touch "$tmpdepfile" + ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@" + rm -f "$depfile" + # makedepend may prepend the VPATH from the source file name to the object. + # No need to regex-escape $object, excess matching of '.' is harmless. + sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile" + # Some versions of the HPUX 10.20 sed can't process the last invocation + # correctly. Breaking it into two sed invocations is a workaround. + sed '1,2d' "$tmpdepfile" \ + | tr ' ' "$nl" \ + | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \ + | sed -e 's/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" "$tmpdepfile".bak + ;; + +cpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + # Remove '-o $object'. + IFS=" " + for arg + do + case $arg in + -o) + shift + ;; + $object) + shift + ;; + *) + set fnord "$@" "$arg" + shift # fnord + shift # $arg + ;; + esac + done + + "$@" -E \ + | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \ + | sed '$ s: \\$::' > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + cat < "$tmpdepfile" >> "$depfile" + sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvisualcpp) + # Important note: in order to support this mode, a compiler *must* + # always write the preprocessed file to stdout. + "$@" || exit $? + + # Remove the call to Libtool. + if test "$libtool" = yes; then + while test "X$1" != 'X--mode=compile'; do + shift + done + shift + fi + + IFS=" " + for arg + do + case "$arg" in + -o) + shift + ;; + $object) + shift + ;; + "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI") + set fnord "$@" + shift + shift + ;; + *) + set fnord "$@" "$arg" + shift + shift + ;; + esac + done + "$@" -E 2>/dev/null | + sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile" + rm -f "$depfile" + echo "$object : \\" > "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile" + echo "$tab" >> "$depfile" + sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile" + rm -f "$tmpdepfile" + ;; + +msvcmsys) + # This case exists only to let depend.m4 do its work. It works by + # looking at the text of this script. This case will never be run, + # since it is checked for above. + exit 1 + ;; + +none) + exec "$@" + ;; + +*) + echo "Unknown depmode $depmode" 1>&2 + exit 1 + ;; +esac + +exit 0 + +# Local Variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/cares/docs/CMakeLists.txt b/deps/cares/docs/CMakeLists.txt new file mode 100644 index 00000000000000..5b91d313e2fd0f --- /dev/null +++ b/deps/cares/docs/CMakeLists.txt @@ -0,0 +1,17 @@ +# Headers and Man Pages installation target +IF (CARES_INSTALL) + # ManPages + FILE (GLOB DevelManPages "." "*.3") + INSTALL (FILES ${DevelManPages} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man3 + COMPONENT Devel + ) + + IF (CARES_BUILD_TOOLS) + FILE (GLOB ToolManPages "." "*.1") + INSTALL (FILES ${ToolManPages} + DESTINATION ${CMAKE_INSTALL_MANDIR}/man1 + COMPONENT Tools + ) + ENDIF () +ENDIF () diff --git a/deps/cares/docs/Makefile.am b/deps/cares/docs/Makefile.am new file mode 100644 index 00000000000000..289445ce49b497 --- /dev/null +++ b/deps/cares/docs/Makefile.am @@ -0,0 +1,11 @@ +#*************************************************************************** + +########################################################################### + +AUTOMAKE_OPTIONS = foreign subdir-objects no-dependencies + +include Makefile.inc + +man_MANS = $(MANPAGES) + +EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 acountry.1 Makefile.inc CMakeLists.txt diff --git a/deps/cares/docs/Makefile.in b/deps/cares/docs/Makefile.in new file mode 100644 index 00000000000000..b4e656ec2e823b --- /dev/null +++ b/deps/cares/docs/Makefile.in @@ -0,0 +1,636 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +#*************************************************************************** + +########################################################################### +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = docs +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h \ + $(top_builddir)/include/ares_build.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +depcomp = +am__maybe_remake_depfiles = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +man3dir = $(mandir)/man3 +am__installdirs = "$(DESTDIR)$(man3dir)" +NROFF = nroff +MANS = $(man_MANS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign subdir-objects no-dependencies +MANPAGES = ares_cancel.3 \ + ares_create_query.3 \ + ares_destroy.3 \ + ares_destroy_options.3 \ + ares_dup.3 \ + ares_expand_name.3 \ + ares_expand_string.3 \ + ares_fds.3 \ + ares_free_data.3 \ + ares_free_hostent.3 \ + ares_free_string.3 \ + ares_freeaddrinfo.3 \ + ares_get_servers.3 \ + ares_get_servers_ports.3 \ + ares_getaddrinfo.3 \ + ares_gethostbyaddr.3 \ + ares_gethostbyname.3 \ + ares_gethostbyname_file.3 \ + ares_getnameinfo.3 \ + ares_getsock.3 \ + ares_inet_ntop.3 \ + ares_inet_pton.3 \ + ares_init.3 \ + ares_init_options.3 \ + ares_library_cleanup.3 \ + ares_library_init.3 \ + ares_library_init_android.3 \ + ares_library_initialized.3 \ + ares_mkquery.3 \ + ares_parse_a_reply.3 \ + ares_parse_aaaa_reply.3 \ + ares_parse_caa_reply.3 \ + ares_parse_mx_reply.3 \ + ares_parse_naptr_reply.3 \ + ares_parse_ns_reply.3 \ + ares_parse_ptr_reply.3 \ + ares_parse_soa_reply.3 \ + ares_parse_srv_reply.3 \ + ares_parse_txt_reply.3 \ + ares_parse_uri_reply.3 \ + ares_process.3 \ + ares_query.3 \ + ares_save_options.3 \ + ares_search.3 \ + ares_send.3 \ + ares_set_local_dev.3 \ + ares_set_local_ip4.3 \ + ares_set_local_ip6.3 \ + ares_set_servers.3 \ + ares_set_servers_csv.3 \ + ares_set_servers_ports.3 \ + ares_set_servers_ports_csv.3 \ + ares_set_socket_callback.3 \ + ares_set_socket_configure_callback.3 \ + ares_set_socket_functions.3 \ + ares_set_sortlist.3 \ + ares_strerror.3 \ + ares_timeout.3 \ + ares_version.3 + +man_MANS = $(MANPAGES) +EXTRA_DIST = $(MANPAGES) ahost.1 adig.1 acountry.1 Makefile.inc CMakeLists.txt +all: all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.inc $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign docs/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign docs/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(srcdir)/Makefile.inc $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-man3: $(man_MANS) + @$(NORMAL_INSTALL) + @list1=''; \ + list2='$(man_MANS)'; \ + test -n "$(man3dir)" \ + && test -n "`echo $$list1$$list2`" \ + || exit 0; \ + echo " $(MKDIR_P) '$(DESTDIR)$(man3dir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(man3dir)" || exit 1; \ + { for i in $$list1; do echo "$$i"; done; \ + if test -n "$$list2"; then \ + for i in $$list2; do echo "$$i"; done \ + | sed -n '/\.3[a-z]*$$/p'; \ + fi; \ + } | while read p; do \ + if test -f $$p; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; echo "$$p"; \ + done | \ + sed -e 'n;s,.*/,,;p;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,' | \ + sed 'N;N;s,\n, ,g' | { \ + list=; while read file base inst; do \ + if test "$$base" = "$$inst"; then list="$$list $$file"; else \ + echo " $(INSTALL_DATA) '$$file' '$(DESTDIR)$(man3dir)/$$inst'"; \ + $(INSTALL_DATA) "$$file" "$(DESTDIR)$(man3dir)/$$inst" || exit $$?; \ + fi; \ + done; \ + for i in $$list; do echo "$$i"; done | $(am__base_list) | \ + while read files; do \ + test -z "$$files" || { \ + echo " $(INSTALL_DATA) $$files '$(DESTDIR)$(man3dir)'"; \ + $(INSTALL_DATA) $$files "$(DESTDIR)$(man3dir)" || exit $$?; }; \ + done; } + +uninstall-man3: + @$(NORMAL_UNINSTALL) + @list=''; test -n "$(man3dir)" || exit 0; \ + files=`{ for i in $$list; do echo "$$i"; done; \ + l2='$(man_MANS)'; for i in $$l2; do echo "$$i"; done | \ + sed -n '/\.3[a-z]*$$/p'; \ + } | sed -e 's,.*/,,;h;s,.*\.,,;s,^[^3][0-9a-z]*$$,3,;x' \ + -e 's,\.[0-9a-z]*$$,,;$(transform);G;s,\n,.,'`; \ + dir='$(DESTDIR)$(man3dir)'; $(am__uninstall_files_from_dir) +tags TAGS: + +ctags CTAGS: + +cscope cscopelist: + +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(MANS) +installdirs: + for dir in "$(DESTDIR)$(man3dir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-man + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: install-man3 + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-man + +uninstall-man: uninstall-man3 + +.MAKE: install-am install-strip + +.PHONY: all all-am check check-am clean clean-generic clean-libtool \ + cscopelist-am ctags-am distclean distclean-generic \ + distclean-libtool distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-man3 install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags-am uninstall uninstall-am uninstall-man \ + uninstall-man3 + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/docs/Makefile.inc b/deps/cares/docs/Makefile.inc new file mode 100644 index 00000000000000..3aa62aa43b3d58 --- /dev/null +++ b/deps/cares/docs/Makefile.inc @@ -0,0 +1,59 @@ +MANPAGES = ares_cancel.3 \ + ares_create_query.3 \ + ares_destroy.3 \ + ares_destroy_options.3 \ + ares_dup.3 \ + ares_expand_name.3 \ + ares_expand_string.3 \ + ares_fds.3 \ + ares_free_data.3 \ + ares_free_hostent.3 \ + ares_free_string.3 \ + ares_freeaddrinfo.3 \ + ares_get_servers.3 \ + ares_get_servers_ports.3 \ + ares_getaddrinfo.3 \ + ares_gethostbyaddr.3 \ + ares_gethostbyname.3 \ + ares_gethostbyname_file.3 \ + ares_getnameinfo.3 \ + ares_getsock.3 \ + ares_inet_ntop.3 \ + ares_inet_pton.3 \ + ares_init.3 \ + ares_init_options.3 \ + ares_library_cleanup.3 \ + ares_library_init.3 \ + ares_library_init_android.3 \ + ares_library_initialized.3 \ + ares_mkquery.3 \ + ares_parse_a_reply.3 \ + ares_parse_aaaa_reply.3 \ + ares_parse_caa_reply.3 \ + ares_parse_mx_reply.3 \ + ares_parse_naptr_reply.3 \ + ares_parse_ns_reply.3 \ + ares_parse_ptr_reply.3 \ + ares_parse_soa_reply.3 \ + ares_parse_srv_reply.3 \ + ares_parse_txt_reply.3 \ + ares_parse_uri_reply.3 \ + ares_process.3 \ + ares_query.3 \ + ares_save_options.3 \ + ares_search.3 \ + ares_send.3 \ + ares_set_local_dev.3 \ + ares_set_local_ip4.3 \ + ares_set_local_ip6.3 \ + ares_set_servers.3 \ + ares_set_servers_csv.3 \ + ares_set_servers_ports.3 \ + ares_set_servers_ports_csv.3 \ + ares_set_socket_callback.3 \ + ares_set_socket_configure_callback.3 \ + ares_set_socket_functions.3 \ + ares_set_sortlist.3 \ + ares_strerror.3 \ + ares_timeout.3 \ + ares_version.3 diff --git a/deps/cares/docs/acountry.1 b/deps/cares/docs/acountry.1 new file mode 100644 index 00000000000000..8c3aaea848d250 --- /dev/null +++ b/deps/cares/docs/acountry.1 @@ -0,0 +1,54 @@ +.TH ACOUNTRY "1" "April 2011" "c-ares utilities" +.SH NAME +acountry \- print the country where an IPv4 address or host is located +.SH SYNOPSIS +.B acountry +[\fIOPTION\fR]... \fIHOST\fR... +.SH DESCRIPTION +.PP +.\" Add any additional description here +.PP +Print the country where HOST (an IPv4 address or hostname) is located, +using the countries.nerd.dk DNS domain to identify the country. +.PP +This utility comes with the \fBc\-ares\fR asynchronous resolver library. +.SH OPTIONS +.TP +\fB\-d\fR +Print some extra debugging output. +.TP +\fB\-h\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-v\fR +Be more verbose. Print extra information. +.SH "REPORTING BUGS" +Report bugs to the c-ares mailing list: +.br +\fBhttps://lists.haxx.se/listinfo/c-ares\fR +.SH "SEE ALSO" +.PP +adig(1), ahost(1). +.PP +The DNSBL countries.nerd.dk +.br +\fBhttp://countries.nerd.dk/\fR +.SH COPYRIGHT +This utility is based on code/ideas contained in sofware written by Greg Hudson (ares) +carrying the following notice: +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. M.I.T. makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. +.br +No further copyright claims are being made by the author(s) of this utility. +.SH AUTHOR +Gisle Vanem diff --git a/deps/cares/docs/adig.1 b/deps/cares/docs/adig.1 new file mode 100644 index 00000000000000..2056b959dbff5f --- /dev/null +++ b/deps/cares/docs/adig.1 @@ -0,0 +1,85 @@ +.TH ADIG "1" "April 2011" "c-ares utilities" +.SH NAME +adig \- print information collected from Domain Name System (DNS) servers +.SH SYNOPSIS +.B adig +[\fIOPTION\fR]... \fINAME\fR... +.SH DESCRIPTION +.PP +.\" Add any additional description here +.PP +Send queries to DNS servers about \fINAME\fR and print received +information, where \fINAME\fR is a valid DNS name (e.g. www.example.com, +1.2.3.10.in-addr.arpa). +.PP +This utility comes with the \fBc\-ares\fR asynchronous resolver library. +.SH OPTIONS +.TP +\fB\-c\fR class +Set the query class. +Possible values for class are +NY, CHAOS, HS, IN (default). +.TP +\fB\-d\fR +Print some extra debugging output. +.TP +\fB\-f\fR flag +Add a flag. +Possible values for flag are +igntc, noaliases, norecurse, primary, stayopen, usevc. +.TP +\fB\-h\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-T\fR port +Use specified TCP port to connect to DNS server. +.TP +\fB\-s\fR server +Connect to specified DNS server, instead of the system's default one(s). +.TP +\fB\-t\fR type +Query records of specified type. +Possible values for type are +A (default), AAAA, AFSDB, ANY, AXFR, CNAME, GPOS, HINFO, ISDN, KEY, LOC, MAILA, +MAILB, MB, MD, MF, MG, MINFO, MR, MX, NAPTR, NS, NSAP, NSAP_PTR, NULL, +PTR, PX, RP, RT, SIG, SOA, SRV, TXT, URI, WKS, X25, +.TP +\fB\-U\fR port +Use specified UDP port to connect to DNS server. +.TP +\fB\-x\fR +For an IPv4 \fB-t PTR a.b.c.d\fR lookup, query for +.br +\fBd.c.b.a.in-addr.arpa.\fR +This more often gives correct names in the \fBANSWER\fR. +.br +For an IPv6 \fB-t PTR addr\fR lookup, query for \fBa.b.c....z.IP6.ARPA.\fR +.TP +\fB\-xx\fR +As for \fB-x\fR and an IPv6 address, compact \fBa.b.c....z.IP6.ARPA.\fR into a RFC-2673 bit-string. +This compacted \fBbit-string\fR form is not supported by many DNS-servers. + +.SH "REPORTING BUGS" +Report bugs to the c-ares mailing list: +.br +\fBhttps://lists.haxx.se/listinfo/c-ares\fR +.SH "SEE ALSO" +.PP +acountry(1), ahost(1). +.SH COPYRIGHT +This utility is based on code/ideas contained in sofware written by Greg Hudson (ares) +carrying the following notice: +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. M.I.T. makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. +.br +No further copyright claims are being made by the author(s) of this utility. diff --git a/deps/cares/docs/ahost.1 b/deps/cares/docs/ahost.1 new file mode 100644 index 00000000000000..430af821d49da1 --- /dev/null +++ b/deps/cares/docs/ahost.1 @@ -0,0 +1,59 @@ +.TH AHOST "1" "April 2011" "c-ares utilities" +.SH NAME +ahost \- print the A or AAAA record associated with a hostname or IP address +.SH SYNOPSIS +.B ahost +[\fIOPTION\fR]... \fIHOST\fR... +.SH DESCRIPTION +.PP +.\" Add any additional description here +.PP +Look up the DNS A or AAAA record associated with HOST (a hostname or an +IP address). +.PP +This utility comes with the \fBc\-ares\fR asynchronous resolver library. +.SH OPTIONS +.TP +\fB\-d\fR +Print some extra debugging output. +.TP +\fB\-h\fR, \fB\-\-help\fR +Display this help and exit. +.TP +\fB\-t\fR type +If type is "a", print the A record (default). +If type is "aaaa", print the AAAA record. +If type is "u", look for either AAAA or A record (in that order). +.TP +\fB\-s\fR \fIdomain\fP +Specify the \fIdomain\fP to search instead of using the default values from +.br +/etc/resolv.conf. This option only has an effect on platforms that use +.br +/etc/resolv.conf +for DNS configuration; it has no effect on other platforms (such as Win32 +or Android). +.SH "REPORTING BUGS" +Report bugs to the c-ares mailing list: +.br +\fBhttps://lists.haxx.se/listinfo/c-ares\fR +.SH "SEE ALSO" +.PP +acountry(1), adig(1). +.SH COPYRIGHT +This utility is based on code/ideas contained in sofware written by Greg Hudson (ares) +carrying the following notice: +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Permission to use, copy, modify, and distribute this software and its +documentation for any purpose and without fee is hereby granted, +provided that the above copyright notice appear in all copies and that +both that copyright notice and this permission notice appear in +supporting documentation, and that the name of M.I.T. not be used in +advertising or publicity pertaining to distribution of the software +without specific, written prior permission. M.I.T. makes no +representations about the suitability of this software for any +purpose. It is provided "as is" without express or implied warranty. +.br +No further copyright claims are being made by the author(s) of this utility. diff --git a/deps/cares/docs/ares_cancel.3 b/deps/cares/docs/ares_cancel.3 new file mode 100644 index 00000000000000..1a2d3f5846ea5f --- /dev/null +++ b/deps/cares/docs/ares_cancel.3 @@ -0,0 +1,46 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_CANCEL 3 "31 March 2004" +.SH NAME +ares_cancel \- Cancel a resolve +.SH SYNOPSIS +.nf +#include + +void ares_cancel(ares_channel \fIchannel\fP) +.fi +.SH DESCRIPTION +The \fBares_cancel(3)\fP function cancels all lookups/requests made on the the +name service channel identified by \fIchannel\fP. \fBares_cancel(3)\fP +invokes the callbacks for each pending query on the channel, passing a status +of +.BR ARES_ECANCELLED . +These calls give the callbacks a chance to clean up any state which might have +been stored in their arguments. If such a callback invocation adds a new +request to the channel, that request will \fInot\fP be cancelled by the +current invocation of \fBares_cancel(3)\fP. +.SH SEE ALSO +.BR ares_init (3) +.BR ares_destroy (3) +.SH NOTES +This function was added in c-ares 1.2.0 + +c-ares 1.6.0 and earlier pass a status of +.BR ARES_ETIMEOUT +instead of +.BR ARES_ECANCELLED . +.SH AUTHOR +Dirk Manske diff --git a/deps/cares/docs/ares_create_query.3 b/deps/cares/docs/ares_create_query.3 new file mode 100644 index 00000000000000..1ab0624e4134d0 --- /dev/null +++ b/deps/cares/docs/ares_create_query.3 @@ -0,0 +1,83 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_CREATE_QUERY 3 "17 Aug 2012" +.SH NAME +ares_create_query \- Compose a single-question DNS query buffer +.SH SYNOPSIS +.nf +#include + +int ares_create_query(const char *\fIname\fP, + int \fIdnsclass\fP, + int \fItype\fP, + unsigned short \fIid\fP, + int \fIrd\fP, + unsigned char **\fIbuf\fP, + int *\fIbuflen\fP, + int \fImax_udp_size\fP) +.fi +.SH DESCRIPTION +The \fIares_create_query(3)\fP function composes a DNS query with a single +question. The parameter \fIname\fP gives the query name as a NUL-terminated C +string of period-separated labels optionally ending with a period; periods and +backslashes within a label must be escaped with a backlash. + +The parameters \fIdnsclass\fP and \fItype\fP give the class and type of the +query using the values defined in \fB\fP. + +The parameter \fIid\fP gives a 16-bit identifier for the query. + +The parameter \fIrd\fP should be nonzero if recursion is desired, zero if not. + +The query will be placed in an allocated buffer, a pointer to which will be +stored in the variable pointed to by \fIbuf\fP, and the length of which will +be stored in the variable pointed to by \fIbuflen\fP. + +It is the caller's responsibility to free this buffer using +\fIares_free_string(3)\fP when it is no longer needed. The parameter +\fImax_udp_size\fP should be nonzero to activate EDNS. Usage of +\fIares_create_query(3)\fP\ with \fImax_udp_size\fP set to zero is equivalent +to using \fIares_mkquery(3)\fP. +.SH RETURN VALUES +.B ares_create_query +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +Construction of the DNS query succeeded. +.TP 15 +.B ARES_ENOTFOUND +The query name +.I name +refers to a +.I .onion +domain name. See RFC 7686. +.TP 15 +.B ARES_EBADNAME +The query name +.I name +could not be encoded as a domain name, either because it contained a +zero-length label or because it contained a label of more than 63 +characters. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +Added in c-ares 1.10.0 +.SH SEE ALSO +.BR ares_expand_name (3), +.BR ares_free_string (3), +.BR ares_mkquery (3) +.SH AUTHOR diff --git a/deps/cares/docs/ares_destroy.3 b/deps/cares/docs/ares_destroy.3 new file mode 100644 index 00000000000000..9cdee30aac6eec --- /dev/null +++ b/deps/cares/docs/ares_destroy.3 @@ -0,0 +1,40 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_DESTROY 3 "7 December 2004" +.SH NAME +ares_destroy \- Destroy a resolver channel +.SH SYNOPSIS +.nf +#include + +void ares_destroy(ares_channel \fIchannel\fP) +.fi +.SH DESCRIPTION +The \fBares_destroy(3)\fP function destroys the name service channel +identified by \fIchannel\fP, freeing all memory and closing all sockets used +by the channel. + +\fBares_destroy(3)\fP invokes the callbacks for each pending query on the +channel, passing a status of \fIARES_EDESTRUCTION\fP. These calls give the +callbacks a chance to clean up any state which might have been stored in their +arguments. A callback must not add new requests to a channel being destroyed. +.SH SEE ALSO +.BR ares_init (3), +.BR ares_cancel (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_destroy_options.3 b/deps/cares/docs/ares_destroy_options.3 new file mode 100644 index 00000000000000..31e346b79533ae --- /dev/null +++ b/deps/cares/docs/ares_destroy_options.3 @@ -0,0 +1,35 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_DESTROY_OPTIONS 3 "1 June 2007" +.SH NAME +ares_destroy_options \- Destroy options initialized with ares_save_options +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_destroy_options(struct ares_options *\fIoptions\fP) +.fi +.SH DESCRIPTION +The \fBares_destroy_options(3)\fP function destroys the options struct +identified by \Ioptions\fP, freeing all memory allocated by +\fBares_save_options(3)\fP. +.SH SEE ALSO +.BR ares_save_options (3), +.BR ares_init_options (3) +.SH AUTHOR +Brad House +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_dup.3 b/deps/cares/docs/ares_dup.3 new file mode 100644 index 00000000000000..e64c10423d0b0f --- /dev/null +++ b/deps/cares/docs/ares_dup.3 @@ -0,0 +1,39 @@ +.\" +.\" Copyright (C) 2004-2009 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_DUP 3 "26 May 2009" +.SH NAME +ares_dup \- Duplicate a resolver channel +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_dup(ares_channel *\fIdest\fP, ares_channel \fIsource\fP) +.fi +.SH DESCRIPTION +The \fBares_dup(3)\fP function duplicates an existing communications channel +for name service lookups. If it returns successfully, \fBares_dup(3)\fP will +set the variable pointed to by \fIdest\fP to a handle used to identify the +name service channel. The caller should invoke \fIares_destroy(3)\fP on the +handle when the channel is no longer needed. +.SH SEE ALSO +.BR ares_destroy(3), +.BR ares_init(3), +.BR ares_library_init(3) +.SH AVAILABILITY +\fIares_dup(3)\fP was added in c-ares 1.6.0 +.SH AUTHOR +Daniel Stenberg + diff --git a/deps/cares/docs/ares_expand_name.3 b/deps/cares/docs/ares_expand_name.3 new file mode 100644 index 00000000000000..fc18df3ee3018b --- /dev/null +++ b/deps/cares/docs/ares_expand_name.3 @@ -0,0 +1,65 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_EXPAND_NAME 3 "20 Nov 2009" +.SH NAME +ares_expand_name \- Expand a DNS-encoded domain name +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_expand_name(const unsigned char *\fIencoded\fP, +.B const unsigned char *\fIabuf\fP, int \fIalen\fP, char **\fIs\fP, +.B long *\fIenclen\fP) +.fi +.SH DESCRIPTION +The +.B ares_expand_name +function converts a DNS-encoded domain name to a dot-separated C +string. The argument +.I encoded +gives the beginning of the encoded domain name, and the arguments +.I abuf +and +.I alen +give the containing message buffer (necessary for the processing of +indirection pointers within the encoded domain name). The result is +placed in a NUL-terminated allocated buffer, a pointer to which is +stored in the variable pointed to by +.IR s . +The length of the encoded name is stored in the variable pointed to by +.I enclen +so that the caller can advance past the encoded domain name to read +further data in the message. + +Use \fIares_free_string(3)\fP to free the allocated hostname. +.SH RETURN VALUES +.B ares_expand_name +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +Expansion of the encoded name succeeded. +.TP 15 +.B ARES_EBADNAME +The encoded domain name was malformed and could not be expanded. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_mkquery (3), ares_free_string (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_expand_string.3 b/deps/cares/docs/ares_expand_string.3 new file mode 100644 index 00000000000000..33dd7bdada1f88 --- /dev/null +++ b/deps/cares/docs/ares_expand_string.3 @@ -0,0 +1,61 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_EXPAND_NAME 3 "20 Nov 2009" +.SH NAME +ares_expand_string \- Expand a length encoded string +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_expand_string(const unsigned char *\fIencoded\fP, +.B const unsigned char *\fIabuf\fP, int \fIalen\fP, unsigned char **\fIs\fP, +.B long *\fIenclen\fP) +.fi +.SH DESCRIPTION +The +.B ares_expand_string +function converts a length encoded string to a NUL-terminated C +string. The argument +.I encoded +gives the beginning of the encoded string, and the arguments +.I abuf +and +.I alen +give the containing message buffer (necessary for the processing of +indirection pointers within the encoded domain name). The result is +placed in a NUL-terminated allocated buffer, a pointer to which is +stored in the variable pointed to by +.IR s . +The length of the encoded string is stored in the variable pointed to by +.I enclen +so that the caller can advance past the encoded string to read +further data in the message. +.SH RETURN VALUES +.B ares_expand_string +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +Expansion of the encoded string succeeded. +.TP 15 +.B ARES_EBADSTR +The encoded string was malformed and could not be expanded. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_free_string (3) +.SH AUTHOR +Dominick Meglio diff --git a/deps/cares/docs/ares_fds.3 b/deps/cares/docs/ares_fds.3 new file mode 100644 index 00000000000000..07063fb008ff23 --- /dev/null +++ b/deps/cares/docs/ares_fds.3 @@ -0,0 +1,48 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_FDS 3 "23 July 1998" +.SH NAME +ares_fds \- return file descriptors to select on +.SH SYNOPSIS +.nf +#include + +int ares_fds(ares_channel \fIchannel\fP, + fd_set *\fIread_fds\fP, + fd_set *\fIwrite_fds\fP) +.fi +.SH DESCRIPTION +The \fBares_fds(3)\fP function retrieves the set of file descriptors which the +calling application should select on for reading and writing for the +processing of name service queries pending on the name service channel +identified by \fIchannel\fP. + +File descriptors will be set in the file descriptor sets pointed to by +\fIread_fds\fP and \fIwrite_fds\fP as appropriate. File descriptors already +set in \fIread_fds\fP and \fIwrite_fds\fP will remain set; initialization of +the file descriptor sets (using \fBFD_ZERO\fP) is the responsibility of the +caller. +.SH RETURN VALUES +\fBares_fds(3)\fP returns a value that is one greater than the number of the +highest socket set in either \fIread_fds\fP or \fIwrite_fds\fP. If no queries +are active, \fBares_fds(3)\fP returns 0. +.SH SEE ALSO +.BR ares_timeout (3), +.BR ares_process (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_free_data.3 b/deps/cares/docs/ares_free_data.3 new file mode 100644 index 00000000000000..18e83ce7821d2f --- /dev/null +++ b/deps/cares/docs/ares_free_data.3 @@ -0,0 +1,82 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2004-2010 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_FREE_DATA 3 "5 March 2010" +.SH NAME +ares_free_data \- Free data allocated by several c-ares functions +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_free_data(void *\fIdataptr\fP) +.PP +.B cc file.c -lcares +.fi +.SH DESCRIPTION +.PP +The +.B ares_free_data(3) +function frees one or more data structures allocated and returned +by several c-ares functions. Specifically the data returned by the +following list of functions must be deallocated using this function. +.TP 5 +.B ares_get_servers(3) +When used to free the data returned by ares_get_servers(3) this +will free the whole linked list of ares_addr_node structures returned +by ares_get_servers(3). +.TP +.B ares_parse_srv_reply(3) +When used to free the data returned by ares_parse_srv_reply(3) this +will free the whole linked list of ares_srv_reply structures returned +by ares_parse_srv_reply(3), along with any additional storage +associated with those structures. +.TP +.B ares_parse_mx_reply(3) +When used to free the data returned by ares_parse_mx_reply(3) this +will free the whole linked list of ares_mx_reply structures returned +by ares_parse_mx_reply(3), along with any additional storage +associated with those structures. +.TP +.B ares_parse_txt_reply(3) +When used to free the data returned by ares_parse_txt_reply(3) this +will free the whole linked list of ares_txt_reply structures returned +by ares_parse_txt_reply(3), along with any additional storage +associated with those structures. +.TP +.B ares_parse_soa_reply(3) +When used to free the data returned by ares_parse_soa_reply(3) this +will free the ares_soa_reply structure, along with any additional storage +associated with those structure. +.B ares_parse_uri_reply(3) +When used to free the data returned by ares_parse_uri_reply(3) this +will free list of ares_uri_reply structures, along with any additional +storage associated with those structure. +.SH RETURN VALUE +The ares_free_data() function does not return a value. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.0. +.SH SEE ALSO +.BR ares_get_servers(3), +.BR ares_parse_srv_reply(3), +.BR ares_parse_mx_reply(3), +.BR ares_parse_txt_reply(3), +.BR ares_parse_soa_reply(3) +.SH AUTHOR +Yang Tse +.PP +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2004-2010 by Daniel Stenberg. diff --git a/deps/cares/docs/ares_free_hostent.3 b/deps/cares/docs/ares_free_hostent.3 new file mode 100644 index 00000000000000..d692801bafe887 --- /dev/null +++ b/deps/cares/docs/ares_free_hostent.3 @@ -0,0 +1,45 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_FREE_HOSTENT 3 "23 July 1998" +.SH NAME +ares_free_hostent \- Free host structure allocated by ares functions +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_free_hostent(struct hostent *\fIhost\fP) +.fi +.SH DESCRIPTION +The +.I ares_free_hostent +function frees a +.B struct hostent +allocated by one of the functions \fIares_parse_a_reply(3)\fP, +\fIares_parse_aaaa_reply(3)\fP, or \fIares_parse_ptr_reply(3)\fP. +.SH NOTES +It is not necessary (and is not correct) to free the host structure passed to +the callback functions for \fIares_gethostbyname(3)\fP or +\fIares_gethostbyaddr(3)\fP. c-ares will automatically free such host +structures when the callback returns. +.SH SEE ALSO +.BR ares_parse_a_reply (3), +.BR ares_parse_aaaa_reply (3), +.BR ares_parse_ptr_reply (3), +.BR ares_parse_ns_reply (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_free_string.3 b/deps/cares/docs/ares_free_string.3 new file mode 100644 index 00000000000000..61d88aa27fcfdb --- /dev/null +++ b/deps/cares/docs/ares_free_string.3 @@ -0,0 +1,34 @@ +.\" +.\" Copyright 2000 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_FREE_STRING 3 "4 February 2004" +.SH NAME +ares_free_string \- Free strings allocated by ares functions +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_free_string(void *\fIstr\fP) +.fi +.SH DESCRIPTION +The \fIares_free_string(3)\fP function frees a string allocated by an ares +function. +.SH SEE ALSO +.BR ares_mkquery (3) +.BR ares_expand_string (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 2000 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_freeaddrinfo.3 b/deps/cares/docs/ares_freeaddrinfo.3 new file mode 100644 index 00000000000000..8a8ad591872824 --- /dev/null +++ b/deps/cares/docs/ares_freeaddrinfo.3 @@ -0,0 +1,37 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_FREEADDRINFO 3 "31 October 2018" +.SH NAME +ares_freeaddrinfo \- Free addrinfo structure allocated by ares functions +.SH SYNOPSIS +.nf +#include + +void ares_freeaddrinfo(struct ares_addrinfo *\fIai\fP) +.fi +.SH DESCRIPTION +The +.B ares_freeaddrinfo +function frees a +.B struct ares_addrinfo +returned in \fIresult\fP of +.B ares_addrinfo_callback +.SH SEE ALSO +.BR ares_getaddrinfo (3), +.SH AUTHOR +Christian Ammer +.BR +Andrew Selivanov diff --git a/deps/cares/docs/ares_get_servers.3 b/deps/cares/docs/ares_get_servers.3 new file mode 100644 index 00000000000000..d6064289bb7aef --- /dev/null +++ b/deps/cares/docs/ares_get_servers.3 @@ -0,0 +1,84 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2008-2010 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GET_SERVERS 3 "5 March 2010" +.SH NAME +ares_get_servers, ares_get_servers_ports \- Retrieve name servers from an initialized ares_channel +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_get_servers(ares_channel \fIchannel\fP, struct ares_addr_node **\fIservers\fP) +.B int ares_get_servers_ports(ares_channel \fIchannel\fP, struct ares_addr_port_node **\fIservers\fP) +.fi +.SH DESCRIPTION +The \fBares_get_servers(3)\fP function retrieves name servers configuration +from the +channel data identified by +.IR channel , +as a linked list of ares_addr_node structs storing a pointer to the first +node at the address specified by +.IR servers . + +The \fBares_get_servers_ports(3)\fP function also retrieves any per-server +port information that may have been previously configured, returning a linked +list of ares_addr_port structures. + +Function caller may traverse the returned name server linked list, or may use +it directly as suitable input for the \fBares_set_servers(3)\fP / +\fBares_set_servers_ports(3)\fP functions, but +shall not shrink or extend the list on its own. + +Each node of the name server linked list is stored in memory dynamically +allocated and managed by c-ares. It is the caller's responsibility to free +the resulting linked list, using \fBares_free_data(3)\fP , once the caller +does not need it any longer. + +This function is capable of handling IPv4 and IPv6 name server +addresses simultaneously, rendering \fBares_save_options(3)\fP with +optmask \fBARES_OPT_SERVERS\fP functionally obsolete except for +IPv4-only name server usage. + +.SH RETURN VALUES +This function may return any of the following values: +.TP 15 +.B ARES_SUCCESS +The name servers configuration was successfully retrieved +.TP 15 +.B ARES_ENOMEM +The memory was exhausted +.TP 15 +.B ARES_ENODATA +The channel data identified by +.IR channel +was invalid. +.SH SEE ALSO +.BR ares_set_servers (3), +.BR ares_init_options (3), +.BR ares_save_options(3) +.SH AVAILABILITY +\fBares_get_servers(3)\fP was added in c-ares 1.7.1; +\fBares_get_servers_ports(3)\fP was added in c-ares 1.11.0. +.SH AUTHOR +Implementation of this function and associated library internals are based +on code, comments and feedback provided in November and December of 2008 by +Daniel Stenberg, Gregor Jasny, Phil Blundell and Yang Tse, December 2009 +by Cedric Bail, February 2010 by Jakub Hrozek. On March 2010 Yang Tse +shuffled all the bits and this function popped out. +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2008-2010 by Daniel Stenberg diff --git a/deps/cares/docs/ares_get_servers_ports.3 b/deps/cares/docs/ares_get_servers_ports.3 new file mode 100644 index 00000000000000..1f5d1f708b75f1 --- /dev/null +++ b/deps/cares/docs/ares_get_servers_ports.3 @@ -0,0 +1 @@ +.so man3/ares_get_servers.3 diff --git a/deps/cares/docs/ares_getaddrinfo.3 b/deps/cares/docs/ares_getaddrinfo.3 new file mode 100644 index 00000000000000..33c8a50dd3fa41 --- /dev/null +++ b/deps/cares/docs/ares_getaddrinfo.3 @@ -0,0 +1,199 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETADDRINFO 3 "4 November 2018" +.SH NAME +ares_getaddrinfo \- Initiate a host query by name and service +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_addrinfo_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, struct ares_addrinfo *\fIresult\fP) +.PP +.B void ares_getaddrinfo(ares_channel \fIchannel\fP, const char *\fIname\fP, +.B const char* \fIservice\fP, const struct ares_addrinfo_hints *\fIhints\fP, +.B ares_addrinfo_callback \fIcallback\fP, void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_getaddrinfo +function initiates a host query by name on the name service channel +identified by +.IR channel . +The +.I name +and +.I service +parameters give the hostname and service as NULL-terminated C strings. +The +.I hints +parameter is an +.BR ares_addrinfo_hints +structure: +.PP +.RS +.EX +struct ares_addrinfo_hints { + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; +}; +.EE +.RE +.TP +.I ai_family +Specifies desired address family. AF_UNSPEC means return both AF_INET and AF_INET6. +.TP +.I ai_socktype +Specifies desired socket type, for example SOCK_STREAM or SOCK_DGRAM. +Setting this to 0 means any type. +.TP +.I ai_protocol +Setting this to 0 means any protocol. +.TP +.I ai_flags +Specifies additional options, see below. +.PP +.TP 19 +.B ARES_AI_NUMERICSERV +If this option is set +.I service +field will be treated as a numeric value. +.TP 19 +.B ARES_AI_CANONNAME +The ares_addrinfo structure will return a canonical names list. +.TP 19 +.B ARES_AI_NOSORT +Result addresses will not be sorted and no connections to resolved addresses will be attempted. +.TP 19 +.B ARES_AI_ENVHOSTS +Read hosts file path from the environment variable +.I CARES_HOSTS . +.PP +When the query is complete or has failed, the ares library will invoke \fIcallback\fP. +Completion or failure of the query may happen immediately, or may happen +during a later call to \fIares_process(3)\fP, \fIares_destroy(3)\fP or +\fIares_cancel(3)\fP. +.PP +The callback argument +.I arg +is copied from the +.B ares_getaddrinfo +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The host lookup completed successfully. +.TP 19 +.B ARES_ENOTIMP +The ares library does not know how to find addresses of type +.IR family . +.TP 19 +.B ARES_ENOTFOUND +The +.I name +was not found. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +On successful completion of the query, the callback argument +.I result +points to a +.B struct ares_addrinfo +which contains two linked lists, one with resolved addresses and another with canonical names. +Also included is the official name of the host (analogous to gethostbyname() h_name). +.PP +.RS +.EX +struct ares_addrinfo { + struct ares_addrinfo_cname *cnames; + struct ares_addrinfo_node *nodes; + char *name; +}; +.EE +.RE +.PP +.I ares_addrinfo_node +structure is similar to RFC3493 addrinfo, but without canonname and with extra ttl field. +.RS +.PP +.EX +struct ares_addrinfo_node { + int ai_ttl; + int ai_flags; + int ai_family; + int ai_socktype; + int ai_protocol; + ares_socklen_t ai_addrlen; + struct sockaddr *ai_addr; + struct ares_addrinfo_node *ai_next; +}; +.EE +.RE +.PP +.I ares_addrinfo_cname +structure is a linked list of CNAME records where +.I ttl +is a time to live +.I alias +is a label of the resource record and +.I name +is a value (canonical name) of the resource record. +See RFC2181 10.1.1. CNAME terminology. +.RS +.PP +.EX +struct ares_addrinfo_cname { + int ttl; + char *alias; + char *name; + struct ares_addrinfo_cname *next; +}; +.EE +.RE +.PP +The reserved memory has to be deleted by +.B ares_freeaddrinfo. + +The result is sorted according to RFC6724 except: + - Rule 3 (Avoid deprecated addresses) + - Rule 4 (Prefer home addresses) + - Rule 7 (Prefer native transport) + +Please note that the function will attempt a connection +on each of the resolved addresses as per RFC6724. +.SH AVAILABILITY +This function was added in c-ares 1.16.0, released in March 2020. +.SH SEE ALSO +.BR ares_freeaddrinfo (3) +.SH AUTHOR +Christian Ammer +.br +Andrew Selivanov diff --git a/deps/cares/docs/ares_gethostbyaddr.3 b/deps/cares/docs/ares_gethostbyaddr.3 new file mode 100644 index 00000000000000..77273075566f10 --- /dev/null +++ b/deps/cares/docs/ares_gethostbyaddr.3 @@ -0,0 +1,104 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETHOSTBYADDR 3 "24 July 1998" +.SH NAME +ares_gethostbyaddr \- Initiate a host query by address +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_host_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, struct hostent *\fIhostent\fP) +.PP +.B void ares_gethostbyaddr(ares_channel \fIchannel\fP, const void *\fIaddr\fP, +.B int \fIaddrlen\fP, int \fIfamily\fP, ares_host_callback \fIcallback\fP, +.B void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_gethostbyaddr +function initiates a host query by address on the name service channel +identified by +.IR channel . +The parameters +.I addr +and +.I addrlen +give the address as a series of bytes, and +.I family +gives the type of address. When the query is complete or has failed, the ares +library will invoke \fIcallback\fP. Completion or failure of the query may +happen immediately, or may happen during a later call to +\fIares_process(3)\fP, \fIares_destroy(3)\fP or \fIares_cancel(3)\fP. +.PP +The callback argument +.I arg +is copied from the +.B ares_gethostbyaddr +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The host lookup completed successfully. +.TP 19 +.B ARES_ENOTIMP +The ares library does not know how to look up addresses of type +.IR family . +.TP 19 +.B ARES_ENOTFOUND +The address +.I addr +was not found. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +On successful completion of the query, the callback argument +.I hostent +points to a +.B struct hostent +containing the name of the host returned by the query. The callback +need not and should not attempt to free the memory pointed to by +.IR hostent ; +the ares library will free it when the callback returns. If the query +did not complete successfully, +.I hostent +will be +.BR NULL . +.SH SEE ALSO +.BR ares_process (3), +.BR ares_gethostbyname (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_gethostbyname.3 b/deps/cares/docs/ares_gethostbyname.3 new file mode 100644 index 00000000000000..cfd6a0a12a2229 --- /dev/null +++ b/deps/cares/docs/ares_gethostbyname.3 @@ -0,0 +1,111 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETHOSTBYNAME 3 "25 July 1998" +.SH NAME +ares_gethostbyname \- Initiate a host query by name +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_host_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, struct hostent *\fIhostent\fP) +.PP +.B void ares_gethostbyname(ares_channel \fIchannel\fP, const char *\fIname\fP, +.B int \fIfamily\fP, ares_host_callback \fIcallback\fP, void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_gethostbyname +function initiates a host query by name on the name service channel +identified by +.IR channel . +The parameter +.I name +gives the hostname as a NUL-terminated C string, and +.I family +gives the desired type of address for the resulting host entry. When the +query is complete or has failed, the ares library will invoke \fIcallback\fP. +Completion or failure of the query may happen immediately, or may happen +during a later call to \fIares_process(3)\fP, \fIares_destroy(3)\fP or +\fIares_cancel(3)\fP. +.PP +The callback argument +.I arg +is copied from the +.B ares_gethostbyname +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The host lookup completed successfully. +.TP 19 +.B ARES_ENOTIMP +The ares library does not know how to find addresses of type +.IR family . +.TP 19 +.B ARES_EBADNAME +The hostname +.B name +is composed entirely of numbers and periods, but is not a valid +representation of an Internet address. +.TP 19 +.B ARES_ENODATA +There was no data returned to extract a result from. +.TP 19 +.B ARES_ENOTFOUND +The name +.I name +was not found. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +On successful completion of the query, the callback argument +.I hostent +points to a +.B struct hostent +containing the name of the host returned by the query. The callback +need not and should not attempt to free the memory pointed to by +.IR hostent ; +the ares library will free it when the callback returns. If the query +did not complete successfully, +.I hostent +will be +.BR NULL . +.SH SEE ALSO +.BR ares_process (3), +.BR ares_gethostbyaddr (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_gethostbyname_file.3 b/deps/cares/docs/ares_gethostbyname_file.3 new file mode 100644 index 00000000000000..8f59b4157661fb --- /dev/null +++ b/deps/cares/docs/ares_gethostbyname_file.3 @@ -0,0 +1,83 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETHOSTBYNAME 3 "25 July 1998" +.SH NAME +ares_gethostbyname_file \- Lookup a name in the system's hosts file +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_gethostbyname_file(ares_channel \fIchannel\fP, const char *\fIname\fP, +.B int \fIfamily\fP, struct hostent **host) +.fi +.SH DESCRIPTION +The +.B ares_gethostbyname_file +function performs a host lookup by name against the system's hosts file (or equivalent local hostname database). +The +.IR channel +parameter is required, but no asynchronous queries are performed. Instead, the +lookup is done via the same mechanism used to perform 'f' lookups +(see the +.I lookups +options field in \fIares_init_options(3)\fP). +The parameter +.I name +gives the hostname as a NUL-terminated C string, and +.I family +gives the desired type of address for the resulting host entry. +.PP +The return value indicates whether the query succeeded and, if not, how it +failed. It may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The host lookup completed successfully and +.I host +now points to the result (and must be freed with \fIares_free_hostent(3)\fP). +.TP 19 +.B ARES_ENOTFOUND +The hostname +.I name +was not found. +.TP 19 +.B ARES_EFILE +There was a file I/O error while performing the lookup. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.PP +On successful completion of the query, the pointer pointed to by +.I host +points to a +.B struct hostent +containing the address of the host returned by the lookup. The user must +free the memory pointed to by +.IR host +when finished with it by calling \fIares_free_hostent(3)\fP. If the lookup did +not complete successfully, +.I host +will be +.BR NULL . +.SH AVAILABILITY +Added in c-ares 1.5.4 +.SH SEE ALSO +.BR ares_gethostbyname (3), +.BR ares_free_hostent (3), +.BR ares_init_options (3) +.SH AUTHOR +Brad Spencer +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_getnameinfo.3 b/deps/cares/docs/ares_getnameinfo.3 new file mode 100644 index 00000000000000..1017432108ac1d --- /dev/null +++ b/deps/cares/docs/ares_getnameinfo.3 @@ -0,0 +1,151 @@ +.\" +.\" Copyright 2005 by Dominick Meglio. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETNAMEINFO 3 "1 May 2009" +.SH NAME +ares_getnameinfo \- Address-to-nodename translation in protocol-independent manner +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_nameinfo_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, char *\fInode\fP, char *\fIservice\fP) +.PP +.B void ares_getnameinfo(ares_channel \fIchannel\fP, const struct sockaddr *\fIsa\fP, +.B ares_socklen_t \fIsalen\fP, int \fIflags\fP, ares_nameinfo_callback \fIcallback\fP, +.B void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_getnameinfo +function is defined for protocol-independent address translation. The function +is a combination of \fIares_gethostbyaddr(3)\fP and \fIgetservbyport(3)\fP. The function will +translate the address either by executing a host query on the name service channel +identified by +.IR channel +or it will attempt to resolve it locally if possible. +The parameters +.I sa +and +.I len +give the address as a sockaddr structure, and +.I flags +gives the options that the function will use. Valid flags are listed below: +.TP 19 +.B ARES_NI_NOFQDN +Only the nodename portion of the FQDN is returned for local hosts. +.TP 19 +.B ARES_NI_NUMERICHOST +The numeric form of the hostname is returned rather than the name. +.TP 19 +.B ARES_NI_NAMEREQD +An error is returned if the hostname cannot be found in the DNS. +.TP 19 +.B ARES_NI_NUMERICSERV +The numeric form of the service is returned rather than the name. +.TP 19 +.B ARES_NI_TCP +The service name is to be looked up for the TCP protocol. +.TP 19 +.B ARES_NI_UDP +The service name is to be looked up for the UDP protocol. +.TP 19 +.B ARES_NI_SCTP +The service name is to be looked up for the SCTP protocol. +.TP 19 +.B ARES_NI_DCCP +The service name is to be looked up for the DCCP protocol. +.TP 19 +.B ARES_NI_NUMERICSCOPE +The numeric form of the scope ID is returned rather than the name. +.TP 19 +.B ARES_NI_LOOKUPHOST +A hostname lookup is being requested. +.TP 19 +.B ARES_NI_LOOKUPSERVICE +A service name lookup is being requested. +.PP +When the query +is complete or has +failed, the ares library will invoke \fIcallback\fP. Completion or failure of +the query may happen immediately, or may happen during a later call to +\fIares_process(3)\fP, \fIares_destroy(3)\fP or \fIares_cancel(3)\fP. +.PP +The callback argument +.I arg +is copied from the +.B ares_getnameinfo +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The host lookup completed successfully. +.TP 19 +.B ARES_ENOTIMP +The ares library does not know how to look up addresses of type +.IR family . +.TP 19 +.B ARES_ENOTFOUND +The address +.I addr +was not found. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.TP 19 +.B ARES_EBADFLAGS +The +.I flags +parameter contains an illegal value. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +On successful completion of the query, the callback argument +.I node +contains a string representing the hostname (assuming +.B ARES_NI_LOOKUPHOST +was specified). Additionally, +.I service +contains a string representing the service name (assuming +.B ARES_NI_LOOKUPSERVICE +was specified). +If the query did not complete successfully, or one of the values +was not requested, +.I node +or +.I service +will be +.BR NULL . +.SH SEE ALSO +.BR ares_process (3), +.SH AUTHOR +Dominick Meglio +.br +Copyright 2005 by Dominick Meglio. diff --git a/deps/cares/docs/ares_getsock.3 b/deps/cares/docs/ares_getsock.3 new file mode 100644 index 00000000000000..137329115e49a9 --- /dev/null +++ b/deps/cares/docs/ares_getsock.3 @@ -0,0 +1,57 @@ +.\" +.\" Copyright 1998 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_GETSOCK 3 "11 March 2010" +.SH NAME +ares_getsock \- get socket descriptors to wait on +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_getsock(ares_channel \fIchannel\fP, ares_socket_t *\fIsocks\fP, +.B int \fInumsocks\fP); +.fi +.SH DESCRIPTION +The +.B ares_getsock +function retrieves the set of socket descriptors which the calling +application should wait on for reading and/or writing for the +processing of name service queries pending on the name service channel +identified by +.IR channel . +Socket descriptors will be set in the socket descriptor array pointed to by +\fIsocks\fP. +\fInumsocks\fP is the size of the given array in number of ints. + +This function can only return information about up to 16 sockets. If more are +in use (however unlikely that is), they are simply not reported back. +.SH RETURN VALUES +\fBares_getsock\fP returns a bitmask for what actions to wait for on the +different sockets. The ares.h header file provides these convenience macros to +extract the information appropriately: + +.nf +#define ARES_GETSOCK_MAXNUM 16 /* ares_getsock() can return info about + this many sockets */ +#define ARES_GETSOCK_READABLE(bits,num) (bits & (1<< (num))) +#define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \ + ARES_GETSOCK_MAXNUM))) +.fi +.SH NOTES +This function was added in c-ares 1.3.1 +.SH SEE ALSO +.BR ares_timeout (3), +.BR ares_fds (3), +.BR ares_process (3) diff --git a/deps/cares/docs/ares_inet_ntop.3 b/deps/cares/docs/ares_inet_ntop.3 new file mode 100644 index 00000000000000..93ee09cf773b51 --- /dev/null +++ b/deps/cares/docs/ares_inet_ntop.3 @@ -0,0 +1,47 @@ +.\" +.\" Copyright (C) 2013 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_INET_NTOP 3 "17 Feb 2013" +.SH NAME +ares_inet_ntop \- convert a network format address to presentation format +.SH SYNOPSIS +.nf +.B #include +.PP +.B const char * +.B ares_inet_ntop(int af, const void *src, char *dst, ares_socklen_t size); +.fi +.SH DESCRIPTION +This is a portable version with the identical functionality of the commonly +available \fIinet_ntop\fP. + +The ares_inet_ntop() function converts a numeric address into a text string +suitable for presentation. The \fBaf\fP argument shall specify the family of +the address. This can be AF_INET or AF_INET6. The \fBsrc\fP argument points +to a buffer holding an IPv4 address if the af argument is AF_INET, or an IPv6 +address if the af argument is AF_INET6; the address must be in network byte +order. The \fBdst\fP argument points to a buffer where the function stores the +resulting text string; it shall not be NULL. The \fBsize\fP argument specifies +the size of this buffer, which shall be large enough to hold the text string +(INET_ADDRSTRLEN (16) characters for IPv4, INET6_ADDRSTRLEN (46) characters +for IPv6). +.SH SEE ALSO +.BR ares_init(3), +.BR ares_inet_pton(3) +.SH AVAILABILITY +made properly publicly available in c-ares for real in version 1.10.0 +.SH AUTHOR +Daniel Stenberg + diff --git a/deps/cares/docs/ares_inet_pton.3 b/deps/cares/docs/ares_inet_pton.3 new file mode 100644 index 00000000000000..b7d86bb4e0404b --- /dev/null +++ b/deps/cares/docs/ares_inet_pton.3 @@ -0,0 +1,43 @@ +.\" +.\" Copyright (C) 2013 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_INET_PTON 3 "17 Feb 2013" +.SH NAME +ares_inet_pton \- convert an IPv4 or IPv6 address from text to binary form +.SH SYNOPSIS +.nf +.B #include +.PP +.B const char *ares_inet_pton(int af, const char *src, void *dst); +.fi +.SH DESCRIPTION +This is a portable version with the identical functionality of the commonly +available \fIinet_pton\fP. + +The ares_inet_pton() function converts the address in its standard text +presentation form into its numeric binary form. The \fBaf\fP argument shall +specify the family of the address. The AF_INET and AF_INET6 address families +shall be supported. The \fBsrc\fP argument points to the string being passed +in. The \fBdst\fP argument points to a buffer into which the function stores +the numeric address; this shall be large enough to hold the numeric address +(32 bits for AF_INET, 128 bits for AF_INET6). +.SH SEE ALSO +.BR ares_init(3), +.BR ares_inet_ntop(3) +.SH AVAILABILITY +made properly publicly available in c-ares for real in version 1.10.0 +.SH AUTHOR +Daniel Stenberg + diff --git a/deps/cares/docs/ares_init.3 b/deps/cares/docs/ares_init.3 new file mode 100644 index 00000000000000..0baf4b76fea59f --- /dev/null +++ b/deps/cares/docs/ares_init.3 @@ -0,0 +1,81 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2004-2010 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_INIT 3 "5 March 2010" +.SH NAME +ares_init \- Initialize a resolver channel +.SH SYNOPSIS +.nf +#include + +int ares_init(ares_channel *\fIchannelptr\fP) +.fi +.SH DESCRIPTION +The \fBares_init(3)\fP function initializes a communications channel for name +service lookups. If it returns successfully, \fBares_init(3)\fP will set the +variable pointed to by \fIchannelptr\fP to a handle used to identify the name +service channel. The caller should invoke \fIares_destroy(3)\fP on the handle +when the channel is no longer needed. + +The \fIares_init_options(3)\fP function is provide to offer more init +alternatives. +.SH RETURN VALUES +\fIares_init(3)\fP can return any of the following values: +.TP 14 +.B ARES_SUCCESS +Initialization succeeded. +.TP 14 +.B ARES_EFILE +A configuration file could not be read. +.TP 14 +.B ARES_ENOMEM +The process's available memory was exhausted. +.TP 14 +.B ARES_ENOTINITIALIZED +c-ares library initialization not yet performed. +.SH NOTES +When initializing from +.B /etc/resolv.conf, +.BR ares_init (3) +reads the +.I domain +and +.I search +directives to allow lookups of short names relative to the domains +specified. The +.I domain +and +.I search +directives override one another. If more that one instance of either +.I domain +or +.I search +directives is specified, the last occurrence wins. For more information, +please see the +.BR resolv.conf (5) +manual page. +.SH SEE ALSO +.BR ares_init_options(3), +.BR ares_destroy(3), +.BR ares_dup(3), +.BR ares_library_init(3), +.BR ares_set_servers(3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2004-2010 by Daniel Stenberg. diff --git a/deps/cares/docs/ares_init_options.3 b/deps/cares/docs/ares_init_options.3 new file mode 100644 index 00000000000000..b9d52a895c165a --- /dev/null +++ b/deps/cares/docs/ares_init_options.3 @@ -0,0 +1,295 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2004-2010 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_INIT 3 "5 March 2010" +.SH NAME +ares_init_options \- Initialize a resolver channel +.SH SYNOPSIS +.nf +#include + +struct ares_options { + int flags; + int timeout; /* in seconds or milliseconds, depending on options */ + int tries; + int ndots; + unsigned short udp_port; + unsigned short tcp_port; + int socket_send_buffer_size; + int socket_receive_buffer_size; + struct in_addr *servers; + int nservers; + char **domains; + int ndomains; + char *lookups; + ares_sock_state_cb sock_state_cb; + void *sock_state_cb_data; + struct apattern *sortlist; + int nsort; + int ednspsz; + char *resolvconf_path; +}; + +int ares_init_options(ares_channel *\fIchannelptr\fP, + struct ares_options *\fIoptions\fP, + int \fIoptmask\fP) +.fi +.SH DESCRIPTION +The \fBares_init_options(3)\fP function initializes a communications channel +for name service lookups. If it returns successfully, +\fBares_init_options(3)\fP will set the variable pointed to by +\fIchannelptr\fP to a handle used to identify the name service channel. The +caller should invoke \fIares_destroy(3)\fP on the handle when the channel is +no longer needed. + +The \fIoptmask\fP parameter generally specifies which fields in the structure pointed to +by \fIoptions\fP are set, as follows: +.TP 18 +.B ARES_OPT_FLAGS +.B int \fIflags\fP; +.br +Flags controlling the behavior of the resolver. See below for a +description of possible flag values. +.TP 18 +.B ARES_OPT_TIMEOUT +.B int \fItimeout\fP; +.br +The number of seconds each name server is given to respond to a query on the +first try. (After the first try, the timeout algorithm becomes more +complicated, but scales linearly with the value of \fItimeout\fP.) The +default is five seconds. This option is being deprecated by +\fIARES_OPT_TIMEOUTMS\fP starting in c-ares 1.5.2. +.TP 18 +.B ARES_OPT_TIMEOUTMS +.B int \fItimeout\fP; +.br +The number of milliseconds each name server is given to respond to a query on +the first try. (After the first try, the timeout algorithm becomes more +complicated, but scales linearly with the value of \fItimeout\fP.) The +default is five seconds. Note that this option is specified with the same +struct field as the former \fIARES_OPT_TIMEOUT\fP, it is but the option bits +that tell c-ares how to interpret the number. This option was added in c-ares +1.5.2. +.TP 18 +.B ARES_OPT_TRIES +.B int \fItries\fP; +.br +The number of tries the resolver will try contacting each name server +before giving up. The default is four tries. +.TP 18 +.B ARES_OPT_NDOTS +.B int \fIndots\fP; +.br +The number of dots which must be present in a domain name for it to be +queried for "as is" prior to querying for it with the default domain +extensions appended. The default value is 1 unless set otherwise by +resolv.conf or the RES_OPTIONS environment variable. +.TP 18 +.B ARES_OPT_UDP_PORT +.B unsigned short \fIudp_port\fP; +.br +The port to use for queries over UDP, in network byte order. +The default value is 53 (in network byte order), the standard name +service port. +.TP 18 +.B ARES_OPT_TCP_PORT +.B unsigned short \fItcp_port\fP; +.br +The port to use for queries over TCP, in network byte order. +The default value is 53 (in network byte order), the standard name +service port. +.TP 18 +.B ARES_OPT_SERVERS +.B struct in_addr *\fIservers\fP; +.br +.B int \fInservers\fP; +.br +The list of IPv4 servers to contact, instead of the servers specified in +resolv.conf or the local named. In order to allow specification of either +IPv4 or IPv6 name servers, the +.BR ares_set_servers(3) +function must be used instead. +.TP 18 +.B ARES_OPT_DOMAINS +.B char **\fIdomains\fP; +.br +.B int \fIndomains\fP; +.br +The domains to search, instead of the domains specified in resolv.conf +or the domain derived from the kernel hostname variable. +.TP 18 +.B ARES_OPT_LOOKUPS +.B char *\fIlookups\fP; +.br +The lookups to perform for host queries. +.I lookups +should be set to a string of the characters "b" or "f", where "b" +indicates a DNS lookup and "f" indicates a lookup in the hosts file. +.TP 18 +.B ARES_OPT_SOCK_STATE_CB +.B void (*\fIsock_state_cb\fP)(void *data, ares_socket_t socket_fd, int readable, int writable); +.br +.B void *\fIsock_state_cb_data\fP; +.br +A callback function to be invoked when a socket changes state. +.I socket_fd +will be passed the socket whose state has changed; +.I readable +will be set to true if the socket should listen for read events, and +.I writable +will be set to true if the socket should listen for write events. +The value of +.I sock_state_cb_data +will be passed as the +.I data +argument. +.TP 18 +.B ARES_OPT_SORTLIST +.B struct apattern *\fIsortlist\fP; +.br +.B int \fInsort\fP; +.br +A list of IP address ranges that specifies the order of preference that +results from \fIares_gethostbyname\fP should be returned in. Note that +this can only be used with a sortlist retrieved via +\fBares_save_options(3)\fP (because +.B struct apattern +is opaque); to set a fresh sort list, use \fBares_set_sortlist(3)\fP. +.TP 18 +.B ARES_OPT_SOCK_SNDBUF +.B int \fIsocket_send_buffer_size\fP; +.br +The send buffer size to set for the socket. +.TP 18 +.B ARES_OPT_SOCK_RCVBUF +.B int \fIsocket_receive_buffer_size\fP; +.br +The receive buffer size to set for the socket. +.TP 18 +.B ARES_OPT_EDNSPSZ +.B int \fIednspsz\fP; +.br +The message size to be advertized in EDNS; only takes effect if the +.B ARES_FLAG_EDNS +flag is set. +.TP 18 +.B ARES_OPT_RESOLVCONF +.B char *\fIresolvconf_path\fP; +.br +The path to use for reading the resolv.conf file. The +.I resolvconf_path +should be set to a path string, and will be honoured on *nix like systems. The +default is +.B /etc/resolv.conf +.br +.PP +The \fIoptmask\fP parameter also includes options without a corresponding +field in the +.B ares_options +structure, as follows: +.TP 23 +.B ARES_OPT_ROTATE +Perform round-robin selection of the nameservers configured for the channel +for each resolution. +.TP 23 +.B ARES_OPT_NOROTATE +Do not perform round-robin nameserver selection; always use the list of +nameservers in the same order. +.PP +The +.I flags +field should be the bitwise or of some subset of the following values: +.TP 23 +.B ARES_FLAG_USEVC +Always use TCP queries (the "virtual circuit") instead of UDP +queries. Normally, TCP is only used if a UDP query yields a truncated +result. +.TP 23 +.B ARES_FLAG_PRIMARY +Only query the first server in the list of servers to query. +.TP 23 +.B ARES_FLAG_IGNTC +If a truncated response to a UDP query is received, do not fall back +to TCP; simply continue on with the truncated response. +.TP 23 +.B ARES_FLAG_NORECURSE +Do not set the "recursion desired" bit on outgoing queries, so that the name +server being contacted will not try to fetch the answer from other servers if +it doesn't know the answer locally. Be aware that ares will not do the +recursion for you. Recursion must be handled by the application calling ares +if \fIARES_FLAG_NORECURSE\fP is set. +.TP 23 +.B ARES_FLAG_STAYOPEN +Do not close communications sockets when the number of active queries +drops to zero. +.TP 23 +.B ARES_FLAG_NOSEARCH +Do not use the default search domains; only query hostnames as-is or +as aliases. +.TP 23 +.B ARES_FLAG_NOALIASES +Do not honor the HOSTALIASES environment variable, which normally +specifies a file of hostname translations. +.TP 23 +.B ARES_FLAG_NOCHECKRESP +Do not discard responses with the SERVFAIL, NOTIMP, or REFUSED +response code or responses whose questions don't match the questions +in the request. Primarily useful for writing clients which might be +used to test or debug name servers. +.TP 23 +.B ARES_FLAG_EDNS +Include an EDNS pseudo-resource record (RFC 2671) in generated requests. +.SH RETURN VALUES +\fBares_init_options(3)\fP can return any of the following values: +.TP 14 +.B ARES_SUCCESS +Initialization succeeded. +.TP 14 +.B ARES_EFILE +A configuration file could not be read. +.TP 14 +.B ARES_ENOMEM +The process's available memory was exhausted. +.TP 14 +.B ARES_ENOTINITIALIZED +c-ares library initialization not yet performed. +.SH NOTES +When initializing from +.B /etc/resolv.conf, +(or, alternatively when specified by the +.I resolvconf_path +path location) +\fBares_init_options(3)\fP reads the \fIdomain\fP and \fIsearch\fP directives +to allow lookups of short names relative to the domains specified. The +\fIdomain\fP and \fIsearch\fP directives override one another. If more that +one instance of either \fIdomain\fP or \fIsearch\fP directives is specified, +the last occurrence wins. For more information, please see the +.BR resolv.conf (5) +manual page. +.SH SEE ALSO +.BR ares_init(3), +.BR ares_destroy(3), +.BR ares_dup(3), +.BR ares_library_init(3), +.BR ares_save_options(3), +.BR ares_set_servers(3), +.BR ares_set_sortlist(3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2004-2010 by Daniel Stenberg. diff --git a/deps/cares/docs/ares_library_cleanup.3 b/deps/cares/docs/ares_library_cleanup.3 new file mode 100644 index 00000000000000..a1ffa6a948a479 --- /dev/null +++ b/deps/cares/docs/ares_library_cleanup.3 @@ -0,0 +1,84 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2004-2009 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_LIBRARY_CLEANUP 3 "19 May 2009" +.SH NAME +ares_library_cleanup \- c-ares library deinitialization +.SH SYNOPSIS +.nf +#include + +void ares_library_cleanup(void) +.fi +.SH DESCRIPTION +.PP +The +.B ares_library_cleanup +function uninitializes the c-ares library, freeing all resources +previously acquired by \fIares_library_init(3)\fP when the library +was initialized, provided there was only one single previous call to +\fIares_library_init(3)\fP. If there was more than one previous call to +\fIares_library_init(3)\fP, this function uninitializes the c-ares +library only if it is the call matching the call to +\fIares_library_init(3)\fP which initialized the library +(usually the very first call to \fIares_library_init(3)\fP). +Other calls to \fIares_library_cleanup(3)\fP have no effect other than +decrementing an internal counter. +.PP +This function must be called when the program using c-ares will +no longer need any c-ares function. Once the program has called +\fIares_library_cleanup(3)\fP sufficiently often such that the +library is uninitialised, it shall not make any further call to any +c-ares function. +.PP +This function does not cancel any pending c-ares lookups or requests +previously done. Program must use \fIares_cancel(3)\fP for this purpose. +.PP +.B This function is not thread safe. +You have to call it once the program is about to terminate, but this call must +be done once the program has terminated every single thread that it could have +initiated. This is required to avoid potential race conditions in library +deinitialization, and also due to the fact that \fIares_library_cleanup(3)\fP +might call functions from other libraries that are thread unsafe, and could +conflict with any other thread that is already using these other libraries. +.PP +Win32/64 application DLLs shall not call \fIares_library_cleanup(3)\fP from +the DllMain function. Doing so will produce deadlocks and other problems. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.0 along with the +definition of preprocessor symbol \fICARES_HAVE_ARES_LIBRARY_CLEANUP\fP as an +indication of the availability of this function. Reference counting in +\fIares_library_init()\fP and \fIares_library_cleanup()\fP, which requires +calls to the former function to match calls to the latter, is present since +c-ares version 1.10.0. +Earlier versions would deinitialize the library on the first call +to \fIares_library_cleanup()\fP. +.PP +Since the introduction of this function, it is absolutely mandatory to call it +for any Win32/64 program using c-ares. +.PP +Non-Win32/64 systems can still use c-ares version 1.7.0 without calling +\fIares_library_cleanup(3)\fP due to the fact that \fIcurrently\fP it is nearly +a do-nothing function on non-Win32/64 platforms. +.SH SEE ALSO +.BR ares_library_init(3), +.BR ares_cancel(3) +.SH AUTHOR +Yang Tse +.PP +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2004-2009 by Daniel Stenberg. diff --git a/deps/cares/docs/ares_library_init.3 b/deps/cares/docs/ares_library_init.3 new file mode 100644 index 00000000000000..b38cf325d4ee4e --- /dev/null +++ b/deps/cares/docs/ares_library_init.3 @@ -0,0 +1,114 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" Copyright (C) 2004-2009 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_LIBRARY_INIT 3 "19 May 2009" +.SH NAME +ares_library_init \- c-ares library initialization +.SH SYNOPSIS +.nf +#include + +int ares_library_init(int \fIflags\fP) + +int ares_library_init_mem(int \fIflags\fP, + void *(*\fIamalloc\fP)(size_t), + void (*\fIafree\fP)(void *ptr), + void (*\fIarealloc\fP)(void *ptr, size_t size)) +.fi +.SH DESCRIPTION +.PP +The +.B ares_library_init +function performs initializations internally required by the c-ares +library that must take place before any other function provided by +c-ares can be used in a program. +.PP +This function must be called at least once within the life of a program, +before the program actually executes any other c-ares library function. +Initializations done by this function remain effective until a number of +calls to \fIares_library_cleanup(3)\fP equal to the number of calls to +this function are performed. +.PP +Successive calls to this function do nothing further, only the first +call done when c-ares is in an uninitialized state is actually +effective. +.PP +The +.I flags +parameter is a bit pattern that tells c-ares exactly which features +should be initialized, as described below. Set the desired bits by +ORing the values together. In normal operation you should specify +\fIARES_LIB_INIT_ALL\fP. Don't use any other value unless you are +familiar with it and trying to control some internal c-ares feature. +.PP +The +.B ares_library_init_mem +function allows the caller to provide memory management functions that the +c-ares library will be use instead of \fImalloc(3)\fP, \fIfree(3)\fP and +\fIrealloc(3)\fP. +.PP +.B This function is not thread safe. +You have to call it once the program has started, but this call must be done +before the program starts any other thread. This is required to avoid +potential race conditions in library initialization, and also due to the fact +that \fIares_library_init(3)\fP might call functions from other libraries that +are thread unsafe, and could conflict with any other thread that is already +using these other libraries. +.PP +On Windows platforms, the library user should ensure that \fIWSAStartup()\fP +is called before the c-ares library is initialized and used. +.PP +Win32/64 application DLLs shall not call \fIares_library_init(3)\fP from the +DllMain function. Doing so will produce deadlocks and other problems. +.SH FLAGS +.TP 5 +.B ARES_LIB_INIT_ALL +Initialize everything possible. This sets all known bits. +.TP +.B ARES_LIB_INIT_WIN32 +Initialize Win32/64 specific libraries. +.TP +.B ARES_LIB_INIT_NONE +Initialize nothing extra. This sets no bit. +.SH RETURN VALUE +Upon successful completion, ares_library_init() will return 0. Otherwise, a +non-zero error number will be returned to indicate the error. Except for +\fIares_strerror(3)\fP, you shall not call any other c-ares function upon +\fIares_library_init(3)\fP failure. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.0 along with the +definition of preprocessor symbol \fICARES_HAVE_ARES_LIBRARY_INIT\fP as an +indication of the availability of this function. Its recursive behavior, +which requires a matching number of calls to \fIares_library_cleanup()\fP +in order to deinitialize the library, is present since c-ares version +1.10.0. Earlier versions would deinitialize the library on the first call +to \fIares_library_cleanup()\fP. +.PP +Since the introduction of this function it is absolutely mandatory to +call it for any Win32/64 program using c-ares. +.PP +Non-Win32/64 systems can still use c-ares version 1.7.0 without calling +\fIares_library_init(3)\fP due to the fact that \fIcurrently\fP it is nearly +a do-nothing function on non-Win32/64 platforms at this point. +.SH SEE ALSO +.BR ares_library_cleanup(3), +.BR ares_strerror(3) +.SH AUTHOR +Yang Tse +.PP +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2004-2009 by Daniel Stenberg. diff --git a/deps/cares/docs/ares_library_init_android.3 b/deps/cares/docs/ares_library_init_android.3 new file mode 100644 index 00000000000000..9e1ac4cd5bed30 --- /dev/null +++ b/deps/cares/docs/ares_library_init_android.3 @@ -0,0 +1,142 @@ +.\" +.\" Copyright (C) 2017 by John Schember +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_LIBRARY_INIT_ANDROID 3 "13 Sept 2017" +.SH NAME +ares_library_init_android \- c-ares library Android initialization +.SH SYNOPSIS +.nf +#include + +int ares_library_init_android(jobject \fIconnectivity_manager\fP) + +int ares_library_android_initialized(); + +void ares_library_init_jvm(JavaVM *\fIjvm\fP) + +.fi +.SH DESCRIPTION +The \fIares_library_init_android(3)\fP function performs initializations +internally required by the c-ares library when used on Android. This can take +place anytime after \fIares_library_init(3)\fP. It must take place after +\fIares_library_init_jvm\fP. ares_library_init_android must be called before +DNS resolution will work on Android 8 (Oreo) or newer when targetSdkVersion is +set to 26+. + +As of Android 8 (API level 26) getting DNS server information has +becomei more restrictive and can only be accessed using the +Connectivity Manager. It is necessary to pass the connectivity +manager to c-ares via JNI. Also, the ACCESS_NETWORK_STATE permission +must be present in the Android application. + +Android older than 8 do not need to to be initialized as they +are less restrictive. However, this is a run time not compile time +limitation. Proper Android initialization should take place regardless +of the targeted Android version. + +Deinitialization will take place though \fIares_library_cleanup(3)\fP. + +The \fBares_library_init_jvm\fP function allows the caller to register the JVM +with c-ares. It's meant to be called during JNI_OnLoad because you're +guaranteed to have the JVM in that function. The JVM is required in order to +use the Connectivty Manager registered using +\fIares_library_init_android(3)\fP. This must be call before +\fIares_library_init_android(3)\fP. + +The \fBares_library_android_initialized\fP function can be used to check +whether c-ares has been initialized for use with Android. +.SH RETURN VALUES +ARES_SUCCESS will be returned on success otherwise an error code will be +returned. +.SH THREAD SAFETY +.B These init functions are not thread safe. +You have to call it once the program has started, but this call must be done +before the program starts any other thread. This is required to avoid +potential race conditions in library initialization, and also due to the fact +these might call functions from other libraries that +are thread unsafe, and could conflict with any other thread that is already +using these other libraries. +.SH JNI +Accessing the Connectivity Manager though Java: + +Register the \fIares_library_android_init\fP. +.nf + static JNINativeMethod funcs[] = { + { "initialize_native", "(Landroid/net/ConnectivityManager;)I", + (void *)&ares_library_init_android} + }; + + JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) + { + JNIEnv *env = NULL; + jclass cls = NULL; + jint res; + + if ((*vm)->GetEnv(vm, (void **)&env, JNI_VERSION_1_6) != JNI_OK) + return -1; + + cls = (*env)->FindClass(env, JNIT_CLASS); + if (cls == NULL) + return -1; + + res = (*env)->RegisterNatives(env, cls, funcs, sizeof(funcs)/sizeof(funcs[0])); + if (res != 0) + return -1; + + ares_library_init_jvm(vm); + return JNI_VERSION_1_6; + } +.fi +Calling the registered function from Java: +.nf + public class MyObject { + static { + System.loadLibrary("cares"); + } + + private static native boolean initialize_native(ConnectivityManager + connectivity_manager); + + public static boolean initialize(Context context) { + initialize_native((ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE)); + } + } +.fi +Initializing the Connectivity Manager in JNI directly using an Android +Context. It is assumed the JVM has aleady been registered through +\fIJNI_OnLoad\fP. +.nf + void initialize(jobject android_context) + { + jclass obj_cls = jni_get_class(env, "android/content/Context"); + jmethodID obj_mid = jni_get_method_id(env, obj_cls, "getSystemService", "(Ljava/lang/String;)Ljava/lang/Object;"); + jfieldID fid = (*env)->GetStaticFieldID(env, obj_cls, "CONNECTIVITY_SERVICE", "Ljava/lang/String;"); + jstring str = (*env)->GetStaticObjectField(env, obj_cls, fid); + connectivity_manager = (*env)->CallObjectMethod(env, android_context, obj_mid, str); + if (connectivity_manager == NULL) + return; + ares_library_init_android(connectivity_manager); + } +.fi +.SH AVAILABILITY +This function was first introduced in c-ares version 1.15.0. +.SH SEE ALSO +.BR ares_library_init(3), +.BR ares_library_cleanup(3), +.SH AUTHOR +John Schember +.PP +Copyright (C) 2017 by John Schember + diff --git a/deps/cares/docs/ares_library_initialized.3 b/deps/cares/docs/ares_library_initialized.3 new file mode 100644 index 00000000000000..3e2727f85748a9 --- /dev/null +++ b/deps/cares/docs/ares_library_initialized.3 @@ -0,0 +1,34 @@ +.\" +.\" Copyright (C) 2016 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_LIBRARY_INITIALIZED 3 "29 Sep 2016" +.SH NAME +ares_library_initialized \- get the initialization state +.SH SYNOPSIS +.nf +#include + +int ares_library_initialized(void) +.fi +.SH DESCRIPTION +Returns information if c-ares needs to get initialized. +.SH RETURN VALUE +\fIARES_ENOTINITIALIZED\fP if not initialized and \fIARES_SUCCESS\fP if no +initialization is needed. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.11.0 +.SH SEE ALSO +.BR ares_library_init(3), +.BR ares_library_cleanup(3) diff --git a/deps/cares/docs/ares_mkquery.3 b/deps/cares/docs/ares_mkquery.3 new file mode 100644 index 00000000000000..c8afad83cbd22b --- /dev/null +++ b/deps/cares/docs/ares_mkquery.3 @@ -0,0 +1,89 @@ +.\" +.\" Copyright 1998, 2000 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_MKQUERY 3 "20 Nov 2009" +.SH NAME +ares_mkquery \- Compose a single-question DNS query buffer +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_mkquery(const char *\fIname\fP, int \fIdnsclass\fP, int \fItype\fP, +.B unsigned short \fIid\fP, int \fIrd\fP, unsigned char **\fIbuf\fP, +.B int *\fIbuflen\fP) +.fi +.SH DESCRIPTION +Deprecated function. See \fIares_create_query(3)\fP instead! + +The +.B ares_mkquery +function composes a DNS query with a single question. +The parameter +.I name +gives the query name as a NUL-terminated C string of period-separated +labels optionally ending with a period; periods and backslashes within +a label must be escaped with a backlash. The parameters +.I dnsclass +and +.I type +give the class and type of the query using the values defined in +.BR . +The parameter +.I id +gives a 16-bit identifier for the query. The parameter +.I rd +should be nonzero if recursion is desired, zero if not. The query +will be placed in an allocated buffer, a pointer to which will be +stored in the variable pointed to by +.IR buf , +and the length of which will be stored in the variable pointed to by +.IR buflen . +It is the caller's responsibility to free this buffer using +\fIares_free_string(3)\fP when it is no longer needed. + +Usage of \fIares_mkquery(3)\fP is deprecated, whereas the function is +equivalent to \fIares_create_query(3)\fP with \fBmax_udp_size\fP set to +0. + +.SH RETURN VALUES +.B ares_mkquery +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +Construction of the DNS query succeeded. +.TP 15 +.B ARES_ENOTFOUND +The query name +.I name +refers to a +.I .onion +domain name. See RFC 7686. +.TP 15 +.B ARES_EBADNAME +The query name +.I name +could not be encoded as a domain name, either because it contained a +zero-length label or because it contained a label of more than 63 +characters. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_expand_name (3), +.BR ares_free_string (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998, 2000 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_parse_a_reply.3 b/deps/cares/docs/ares_parse_a_reply.3 new file mode 100644 index 00000000000000..8e4908a7fe78cb --- /dev/null +++ b/deps/cares/docs/ares_parse_a_reply.3 @@ -0,0 +1,80 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_A_REPLY 3 "25 July 1998" +.SH NAME +ares_parse_a_reply \- Parse a reply to a DNS query of type A +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_a_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP, +.B struct hostent **\fIhost\fP, +.B struct ares_addrttl *\fIaddrttls\fP, int *\fInaddrttls\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_a_reply +function parses the response to a query of type A into a +.BR "struct hostent" +and/or an array of +.BR "struct ares_addrttls" . +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR host , +if host is nonnull. +It is the caller's responsibility to free the resulting host structure +using +.BR ares_free_hostent (3) +when it is no longer needed. +.PP +If +.IR addrttls +and +.IR naddrttls +are both nonnull, +then up to *naddrttls +.BR "struct ares_addrttl" +records are stored in the array pointed to by addrttls, +and then *naddrttls is set to the number of records so stored. +Note that the memory for these records is supplied by the caller. +.SH RETURN VALUES +.B ares_parse_a_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_gethostbyname (3), +.BR ares_free_hostent (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Andrew Selivanov +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_parse_aaaa_reply.3 b/deps/cares/docs/ares_parse_aaaa_reply.3 new file mode 100644 index 00000000000000..674acc5c468620 --- /dev/null +++ b/deps/cares/docs/ares_parse_aaaa_reply.3 @@ -0,0 +1,80 @@ +.\" +.\" Copyright 2005 by Dominick Meglio. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_AAAA_REPLY 3 "20 Nov 2009" +.SH NAME +ares_parse_aaaa_reply \- Parse a reply to a DNS query of type AAAA +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_aaaa_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP, +.B struct hostent **\fIhost\fP, +.B struct ares_addr6ttl *\fIaddrttls\fP, int *\fInaddrttls\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_aaaa_reply +function parses the response to a query of type AAAA into a +.BR "struct hostent" +and/or an array of +.BR "struct ares_addr6ttl" . +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR host , +if host is nonnull. +It is the caller's responsibility to free the resulting host structure +using +.BR ares_free_hostent (3) +when it is no longer needed. +.PP +If +.IR addrttls +and +.IR naddrttls +are both nonnull, +then up to *naddrttls +.BR "struct ares_addr6ttl" +records are stored in the array pointed to by addrttls, +and then *naddrttls is set to the number of records so stored. +Note that the memory for these records is supplied by the caller. +.SH RETURN VALUES +.B ares_parse_aaaa_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_gethostbyname (3), +.BR ares_free_hostent (3) +.SH AUTHOR +Dominick Meglio +.br +Copyright 2005 by Dominick Meglio. +.BR +Andrew Selivanov diff --git a/deps/cares/docs/ares_parse_caa_reply.3 b/deps/cares/docs/ares_parse_caa_reply.3 new file mode 100644 index 00000000000000..71bd6be96013cc --- /dev/null +++ b/deps/cares/docs/ares_parse_caa_reply.3 @@ -0,0 +1,171 @@ +.\" +.\" Copyright 2020 Danny Sonnenschein +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_CAA_REPLY 3 "16 September 2020" +.SH NAME +ares_parse_caa_reply \- Parse a reply to a DNS query of type CAA +.SH SYNOPSIS +.nf +#include + +int ares_parse_caa_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, + struct ares_caa_reply **\fIcaa_out\fP); +.fi +.SH DESCRIPTION +The +.BR "ares_parse_caa_reply" +function parses the response to a query of type CAA into a +linked list (one element per sub-string) of +.IR "struct ares_caa_reply" +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR caa_out . +It is the caller's responsibility to free the resulting +.IR caa_out +structure when it is no longer needed using the function +.B ares_free_data(3) +.PP +The structure +.I ares_caa_reply(3) +contains the following fields: +.sp +.in +4n +.nf +struct ares_caa_reply { + struct ares_caa_reply *next; + int critical; + unsigned char *property; + size_t plength; /* plength excludes null */ + unsigned char *value; + size_t length; /* length excludes null */ +}; +.fi +.in +.PP +.SH RETURN VALUES +.BR "ares_parse_caa_reply" +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH EXAMPLE +.nf +#include +#include +#include +#include + +#include +#include +#include + +#include "ares.h" + +static void dns_callback(void *arg, + int status, + int timeouts, + unsigned char *abuf, + int alen) + { + struct ares_caa_reply *caa_out; + int err; + + err = ares_parse_caa_reply (abuf, alen, &caa_out); + if (err == ARES_SUCCESS) + { + struct ares_caa_reply *caa_curr; + for (caa_curr=caa_out; caa_curr; caa_curr=caa_curr->next) + printf ("%s. CAA %i %s \\"%s\\"\\n", arg, + caa_curr->critical, + caa_curr->property, + caa_curr->value); + } + else + { + printf ("err=%i\\n", err); + } + ares_free_data (caa_out); + } + +static void main_loop(ares_channel *channel) + { + int nfds, count; + fd_set readers, writers; + struct timeval tv, *tvp; + while (1) + { + FD_ZERO (&readers); + FD_ZERO (&writers); + nfds = ares_fds (*channel, &readers, &writers); + if (nfds == 0) + break; + tvp = ares_timeout (*channel, NULL, &tv); + count = select (nfds, &readers, &writers, NULL, tvp); + ares_process (*channel, &readers, &writers); + } + } + +int main(int argc, char **argv) + { + const char *sversion; + int iversion; + int err; + + sversion = ares_version (&iversion); + printf ("c-ares version %s\\n", sversion); + + char *domain = "wikipedia.org"; + if (argc > 1) + domain = argv[1]; + + ares_channel channel; + if ((err = ares_init (&channel)) != ARES_SUCCESS) + { + printf ("ares_init() failed (%i)\\n", err); + exit (EXIT_FAILURE); + } + + ares_query (channel, domain, + 1, /* ns_c_in */ + 257, /* T_CAA */ + dns_callback, domain); + + main_loop (&channel); + + ares_destroy (channel); + + exit (EXIT_SUCCESS); + } +.fi +.SH AVAILABILITY +This function was first introduced in c-ares version 1.17.0. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Danny Sonnenschein , on behalf of platynum, https://platynum.ch diff --git a/deps/cares/docs/ares_parse_mx_reply.3 b/deps/cares/docs/ares_parse_mx_reply.3 new file mode 100644 index 00000000000000..87df4592ea3855 --- /dev/null +++ b/deps/cares/docs/ares_parse_mx_reply.3 @@ -0,0 +1,79 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_MX_REPLY 3 "4 August 2009" +.SH NAME +ares_parse_mx_reply \- Parse a reply to a DNS query of type MX +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_mx_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_mx_reply** \fImx_out\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_mx_reply +function parses the response to a query of type MX into a +linked list of +.I struct ares_mx_reply +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR mx_out . +It is the caller's responsibility to free the resulting +.IR mx_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_mx_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_mx_reply { + struct ares_mx_reply *next; + char *host; + unsigned short priority; +}; +.fi +.in +.PP +.SH RETURN VALUES +.B ares_parse_mx_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.2. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Jeremy Lal diff --git a/deps/cares/docs/ares_parse_naptr_reply.3 b/deps/cares/docs/ares_parse_naptr_reply.3 new file mode 100644 index 00000000000000..2a5f1e5bd08bed --- /dev/null +++ b/deps/cares/docs/ares_parse_naptr_reply.3 @@ -0,0 +1,83 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_NAPTR_REPLY 3 "23 February 2012" +.SH NAME +ares_parse_naptr_reply \- Parse a reply to a DNS query of type NAPTR +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_naptr_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_naptr_reply** \fInaptr_out\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_naptr_reply +function parses the response to a query of type NAPTR into a +linked list of +.I struct ares_naptr_reply +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR naptr_out . +It is the caller's responsibility to free the resulting +.IR naptr_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_naptr_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_naptr_reply { + struct ares_naptr_reply *next; + unsigned char *flags; + unsigned char *service; + unsigned char *regexp; + char *replacement; + unsigned short order; + unsigned short preference; +}; +.fi +.in +.PP +.SH RETURN VALUES +.B ares_parse_naptr_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.6. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Jakub Hrozek , on behalf of Red Hat, Inc http://www.redhat.com diff --git a/deps/cares/docs/ares_parse_ns_reply.3 b/deps/cares/docs/ares_parse_ns_reply.3 new file mode 100644 index 00000000000000..b6340ac84649ff --- /dev/null +++ b/deps/cares/docs/ares_parse_ns_reply.3 @@ -0,0 +1,66 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_NS_REPLY 3 "10 February 2007" +.SH NAME +ares_parse_ns_reply \- Parse a reply to a DNS query of type NS into a hostent +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_ns_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP, +.B struct hostent **\fIhost\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_ns_reply +function parses the response to a query of type NS into a +.BR "struct hostent" . +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR host . +The nameservers are stored into the +.BR aliases +field of the +.IR host +structure. +It is the caller's responsibility to free the resulting host structure +using +.BR ares_free_hostent (3) +when it is no longer needed. +.SH RETURN VALUES +.B ares_parse_ns_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_query (3), +.BR ares_free_hostent (3) +.SH AUTHOR +Written by Vlad Dinulescu , on behalf of AVIRA Gmbh http://www.avira.com diff --git a/deps/cares/docs/ares_parse_ptr_reply.3 b/deps/cares/docs/ares_parse_ptr_reply.3 new file mode 100644 index 00000000000000..1016a6823fddac --- /dev/null +++ b/deps/cares/docs/ares_parse_ptr_reply.3 @@ -0,0 +1,74 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_PTR_REPLY 3 "25 July 1998" +.SH NAME +ares_parse_ptr_reply \- Parse a reply to a DNS query of type PTR into a hostent +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_ptr_reply(const unsigned char *\fIabuf\fP, int \fIalen\fP, +.B const void *\fIaddr\fP, int \fIaddrlen\fP, int \fIfamily\fP, +.B struct hostent **\fIhost\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_ptr_reply +function parses the response to a query of type PTR into a +.BR "struct hostent" . +The parameters +.I abuf +and +.I alen +give the contents of the response. The parameters +.IR addr , +.IR addrlen , +and +.I family +specify which address was queried for; they are not used to verify the +response, merely used to fill in the address of the +.BR "struct hostent" . +The resulting +.B struct hostent +is stored in allocated memory and a pointer to it stored into the +variable pointed to by +.IR host . +It is the caller's responsibility to free the resulting host structure +using +.BR ares_free_hostent (3) +when it is no longer needed. +.SH RETURN VALUES +.B ares_parse_ptr_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH SEE ALSO +.BR ares_gethostbyaddr (3), +.BR ares_free_hostent (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_parse_soa_reply.3 b/deps/cares/docs/ares_parse_soa_reply.3 new file mode 100644 index 00000000000000..1c4456f0bbe9b0 --- /dev/null +++ b/deps/cares/docs/ares_parse_soa_reply.3 @@ -0,0 +1,80 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_SOA_REPLY 3 "29 May 2012" +.SH NAME +ares_parse_soa_reply \- Parse a reply to a DNS query of type SOA +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_soa_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_soa_reply** \fIsoa_out\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_soa_reply +function parses the response to a query of type SOA into a +.IR struct\ ares_soa_reply . +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR soa_out . +It is the caller's responsibility to free the resulting +.IR soa_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_soa_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_soa_reply { + char *nsname; + char *hostmaster; + unsigned int serial; + unsigned int refresh; + unsigned int retry; + unsigned int expire; + unsigned int minttl; +}; +.fi +.in +.PP +.SH RETURN VALUES +.B ares_parse_soa_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.9.0. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) diff --git a/deps/cares/docs/ares_parse_srv_reply.3 b/deps/cares/docs/ares_parse_srv_reply.3 new file mode 100644 index 00000000000000..9b561ffa365cc7 --- /dev/null +++ b/deps/cares/docs/ares_parse_srv_reply.3 @@ -0,0 +1,81 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_SRV_REPLY 3 "4 August 2009" +.SH NAME +ares_parse_srv_reply \- Parse a reply to a DNS query of type SRV +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_srv_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_srv_reply** \fIsrv_out\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_srv_reply +function parses the response to a query of type SRV into a +linked list of +.I struct ares_srv_reply +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR srv_out . +It is the caller's responsibility to free the resulting +.IR srv_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_srv_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_srv_reply { + struct ares_srv_reply *next; + unsigned short weight; + unsigned short priority; + unsigned short port; + char *host; +}; +.fi +.in +.PP +.SH RETURN VALUES +.B ares_parse_srv_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.0. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Jakub Hrozek , on behalf of Red Hat, Inc http://www.redhat.com diff --git a/deps/cares/docs/ares_parse_txt_reply.3 b/deps/cares/docs/ares_parse_txt_reply.3 new file mode 100644 index 00000000000000..e15d0eace15ac4 --- /dev/null +++ b/deps/cares/docs/ares_parse_txt_reply.3 @@ -0,0 +1,120 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_TXT_REPLY 3 "27 October 2009" +.SH NAME +ares_parse_txt_reply \- Parse a reply to a DNS query of type TXT +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_txt_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_txt_reply **\fItxt_out\fP); +.PP +.B int ares_parse_txt_reply_ext(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_txt_ext **\fItxt_out\fP); +.fi +.SH DESCRIPTION +The +.BR "ares_parse_txt_reply" " (" "ares_parse_txt_reply_ext" ")" +function parses the response to a query of type TXT into a +linked list (one element per sub-string) of +.IR "struct ares_txt_reply" " (" "struct ares_txt_ext" ")" +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR txt_out . +It is the caller's responsibility to free the resulting +.IR txt_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_txt_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_txt_reply { + struct ares_txt_reply *next; + unsigned int length; + unsigned char *txt; +}; +.fi +.in +.PP +The structure +.I ares_txt_ext +contains the following fields: +.sp +.in +4n +.nf +struct ares_txt_ext { + struct ares_txt_ext *next; + unsigned int length; + unsigned char *txt; + unsigned char record_start; +}; +.fi +.in +.PP +The +.I record_start +field in +.I struct ares_txt_ext +is 1 if this structure is a start of a TXT record, and 0 if the structure is a +continuation of a previous record. The linked list of the +.I struct ares_txt_ext +will have at least one item with +.I record_start +equal to 1, and may have some items with +.I record_start +equal to 0 between them. +.PP +These sequences of +.I struct ares_txt_ext +(starting from the item with +.I record_start +equal to 1, and ending right before the record start item) may be treated as +either components of a single TXT record or as a multi-parted TXT record, +depending on particular use case. +.PP +.SH RETURN VALUES +.BR "ares_parse_txt_reply" " (" "ares_parse_txt_reply_ext" ")" +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY +This function was first introduced in c-ares version 1.7.0. +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Jakub Hrozek , on behalf of Red Hat, Inc http://www.redhat.com +.PP +Amended by Fedor Indutny , on behalf of PayPal, Inc https://www.paypal.com diff --git a/deps/cares/docs/ares_parse_uri_reply.3 b/deps/cares/docs/ares_parse_uri_reply.3 new file mode 100644 index 00000000000000..09da1a94e58fb8 --- /dev/null +++ b/deps/cares/docs/ares_parse_uri_reply.3 @@ -0,0 +1,81 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PARSE_URI_REPLY 3 "14 August 2020" +.SH NAME +ares_parse_uri_reply \- Parse a reply to a DNS query of type URI +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_parse_uri_reply(const unsigned char* \fIabuf\fP, int \fIalen\fP, +.B struct ares_uri_reply** \fIuri_out\fP); +.fi +.SH DESCRIPTION +The +.B ares_parse_uri_reply +function parses the response to a query of type URI into a +linked list of +.I struct ares_uri_reply +The parameters +.I abuf +and +.I alen +give the contents of the response. The result is stored in allocated +memory and a pointer to it stored into the variable pointed to by +.IR uri_out . +It is the caller's responsibility to free the resulting +.IR uri_out +structure when it is no longer needed using the function +.B ares_free_data +.PP +The structure +.I ares_uri_reply +contains the following fields: +.sp +.in +4n +.nf +struct ares_uri_reply { + struct ares_uri_reply *next; + unsigned short weight; + unsigned short priority; + char *uri; + int ttl; +}; +.fi +.in +.PP +.SH RETURN VALUES +.B ares_parse_uri_reply +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The response was successfully parsed. +.TP 15 +.B ARES_EBADRESP +The response was malformatted. +.TP 15 +.B ARES_ENODATA +The response did not contain an answer to the query. +.TP 15 +.B ARES_ENOMEM +Memory was exhausted. +.SH AVAILABILITY + +.SH SEE ALSO +.BR ares_query (3) +.BR ares_free_data (3) +.SH AUTHOR +Written by Jan Petrasek diff --git a/deps/cares/docs/ares_process.3 b/deps/cares/docs/ares_process.3 new file mode 100644 index 00000000000000..caabbf13b94dfa --- /dev/null +++ b/deps/cares/docs/ares_process.3 @@ -0,0 +1,79 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_PROCESS 3 "25 July 1998" +.SH NAME +ares_process \- Process events for name resolution +.SH SYNOPSIS +.nf +#include + +void ares_process(ares_channel \fIchannel\fP, + fd_set *\fIread_fds\fP, + fd_set *\fIwrite_fds\fP) + +void ares_process_fd(ares_channel \fIchannel\fP, + ares_socket_t \fIread_fd\fP, + ares_socket_t \fIwrite_fd\fP) +.fi +.SH DESCRIPTION +The \fBares_process(3)\fP function handles input/output events and timeouts +associated with queries pending on the name service channel identified by +.IR channel . +The file descriptor sets pointed to by \fIread_fds\fP and \fIwrite_fds\fP +should have file descriptors set in them according to whether the file +descriptors specified by \fIares_fds(3)\fP are ready for reading and writing. +(The easiest way to determine this information is to invoke \fBselect(3)\fP +with a timeout no greater than the timeout given by \fIares_timeout(3)\fP). + +The \fBares_process(3)\fP function will invoke callbacks for pending queries +if they complete successfully or fail. + +\fBares_process_fd(3)\fP works the same way but acts and operates only on the +specific file descriptors (sockets) you pass in to the function. Use +ARES_SOCKET_BAD for "no action". This function is provided to allow users of +c-ares to void \fIselect(3)\fP in their applications and within c-ares. + +To only process possible timeout conditions without a socket event occurring, +one may pass NULL as the values for both \fIread_fds\fP and \fIwrite_fds\fP for +\fBares_process(3)\fP, or ARES_SOCKET_BAD for both \fIread_fd\fP and +\fIwrite_fd\fP for \fBares_process_fd(3)\fP. +.SH EXAMPLE +The following code fragment waits for all pending queries on a channel +to complete: + +.nf +int nfds, count; +fd_set readers, writers; +struct timeval tv, *tvp; + +while (1) { + FD_ZERO(&readers); + FD_ZERO(&writers); + nfds = ares_fds(channel, &readers, &writers); + if (nfds == 0) + break; + tvp = ares_timeout(channel, NULL, &tv); + count = select(nfds, &readers, &writers, NULL, tvp); + ares_process(channel, &readers, &writers); +} +.fi +.SH SEE ALSO +.BR ares_fds (3), +.BR ares_timeout (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_query.3 b/deps/cares/docs/ares_query.3 new file mode 100644 index 00000000000000..733fbc972b58fa --- /dev/null +++ b/deps/cares/docs/ares_query.3 @@ -0,0 +1,149 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_QUERY 3 "24 July 1998" +.SH NAME +ares_query \- Initiate a single-question DNS query +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, unsigned char *\fIabuf\fP, int \fIalen\fP) +.PP +.B void ares_query(ares_channel \fIchannel\fP, const char *\fIname\fP, +.B int \fIdnsclass\fP, int \fItype\fP, ares_callback \fIcallback\fP, +.B void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_query +function initiates a single-question DNS query on the name service +channel identified by +.IR channel . +The parameter +.I name +gives the query name as a NUL-terminated C string of period-separated +labels optionally ending with a period; periods and backslashes within +a label must be escaped with a backslash. The parameters +.I dnsclass +and +.I type +give the class and type of the query using the values defined in +.BR . +When the query is complete or has failed, the ares library will invoke +.IR callback . +Completion or failure of the query may happen immediately, or may +happen during a later call to +.BR ares_process (3) +or +.BR ares_destroy (3). +.PP +The callback argument +.I arg +is copied from the +.B ares_query +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The query completed successfully. +.TP 19 +.B ARES_ENODATA +The query completed but contains no answers. +.TP 19 +.B ARES_EFORMERR +The query completed but the server claims that the query was +malformatted. +.TP 19 +.B ARES_ESERVFAIL +The query completed but the server claims to have experienced a +failure. (This code can only occur if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_ENOTFOUND +The query completed but the queried-for domain name was not found. +.TP 19 +.B ARES_ENOTIMP +The query completed but the server does not implement the operation +requested by the query. (This code can only occur if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_EREFUSED +The query completed but the server refused the query. (This code can +only occur if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_EBADNAME +The query name +.I name +could not be encoded as a domain name, either because it contained a +zero-length label or because it contained a label of more than 63 +characters. +.TP 19 +.B ARES_ETIMEOUT +No name servers responded within the timeout period. +.TP 19 +.B ARES_ECONNREFUSED +No name servers could be contacted. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +If the query completed (even if there was something wrong with it, as +indicated by some of the above error codes), the callback argument +.I abuf +points to a result buffer of length +.IR alen . +If the query did not complete, +.I abuf +will be NULL and +.I alen +will be 0. +.SH SEE ALSO +.BR ares_process (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_save_options.3 b/deps/cares/docs/ares_save_options.3 new file mode 100644 index 00000000000000..bddae049344c6f --- /dev/null +++ b/deps/cares/docs/ares_save_options.3 @@ -0,0 +1,74 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SAVE_OPTIONS 3 "5 March 2010" +.SH NAME +ares_save_options \- Save configuration values obtained from initialized ares_channel +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_save_options(ares_channel \fIchannel\fP, struct ares_options *\fIoptions\fP, int *\fIoptmask\fP) +.fi +.SH DESCRIPTION +The \fBares_save_options(3)\fP function saves the channel data identified by +.IR channel , +into the options struct identified by +.IR options , +and saves the mask of options which are set to the integer +pointer (passed by reference) identified by +.IR optmask . + +The resultant options and optmask are then able to be +passed directly to ares_init_options. When the options +are no longer needed, ares_destroy_options should be called +to free any associated memory. +.SH RETURN VALUES +.B ares_save_options(3) +can return any of the following values: +.TP 15 +.B ARES_SUCCESS +The channel data was successfully stored +.TP 15 +.B ARES_ENOMEM +The memory was exhausted +.TP 15 +.B ARES_ENODATA +The channel data identified by +.IR channel +were invalid. +.SH NOTE +Since c-ares 1.6.0 the ares_options struct has been "locked" meaning that it +won't be extended to cover new functions. This function will remain +functioning, but it can only return config data that can be represented in +this config struct, which may no longer be the complete set of config +options. \fBares_dup(3)\fP will not have that restriction. + +The ares_options struct can not handle potential IPv6 name servers the +ares_channel might be configured to use. The \fBares_save_options(3)\fP function +will only return IPv4 servers, if any. In order to retrieve all name servers +an ares_channel might be using, the \fBares_get_servers(3)\fP function must be +used instead. +.SH SEE ALSO +.BR ares_destroy_options (3), +.BR ares_init_options (3), +.BR ares_get_servers (3), +.BR ares_dup (3) +.SH AVAILABILITY +ares_save_options(3) was added in c-ares 1.4.0 +.SH AUTHOR +Brad House +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_search.3 b/deps/cares/docs/ares_search.3 new file mode 100644 index 00000000000000..2c85d20f645b08 --- /dev/null +++ b/deps/cares/docs/ares_search.3 @@ -0,0 +1,151 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SEARCH 3 "24 July 1998" +.SH NAME +ares_search \- Initiate a DNS query with domain search +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, unsigned char *\fIabuf\fP, int \fIalen\fP) +.PP +.B void ares_search(ares_channel \fIchannel\fP, const char *\fIname\fP, +.B int \fIdnsclass\fP, int \fItype\fP, ares_callback \fIcallback\fP, +.B void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_search +function initiates a series of single-question DNS queries on the name +service channel identified by +.IR channel , +using the channel's search domains as well as a host alias file given +by the HOSTALIAS environment variable. The parameter +.I name +gives the alias name or the base of the query name as a NUL-terminated +C string of period-separated labels; if it ends with a period, the +channel's search domains will not be used. Periods and backslashes +within a label must be escaped with a backslash. The parameters +.I dnsclass +and +.I type +give the class and type of the query using the values defined in +.BR . +When the query sequence is complete or has failed, the ares library +will invoke +.IR callback . +Completion or failure of the query sequence may happen immediately, or +may happen during a later call to +.BR ares_process (3) +or +.BR ares_destroy (3). +.PP +The callback argument +.I arg +is copied from the +.B ares_search +argument +.IR arg . +The callback argument +.I status +indicates whether the query sequence ended with a successful query +and, if not, how the query sequence failed. It may have any of the +following values: +.TP 19 +.B ARES_SUCCESS +A query completed successfully. +.TP 19 +.B ARES_ENODATA +No query completed successfully; when the query was tried without a +search domain appended, a response was returned with no answers. +.TP 19 +.B ARES_EFORMERR +A query completed but the server claimed that the query was +malformatted. +.TP 19 +.B ARES_ESERVFAIL +No query completed successfully; when the query was tried without a +search domain appended, the server claimed to have experienced a +failure. (This code can only occur if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_ENOTFOUND +No query completed successfully; when the query was tried without a +search domain appended, the server reported that the queried-for +domain name was not found. +.TP 19 +.B ARES_ENOTIMP +A query completed but the server does not implement the operation +requested by the query. (This code can only occur if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_EREFUSED +A query completed but the server refused the query. (This code can +only occur returned if the +.B ARES_FLAG_NOCHECKRESP +flag was specified at channel initialization time; otherwise, such +responses are ignored at the +.BR ares_send (3) +level.) +.TP 19 +.B ARES_TIMEOUT +No name servers responded to a query within the timeout period. +.TP 19 +.B ARES_ECONNREFUSED +No name servers could be contacted. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +If a query completed successfully, the callback argument +.I abuf +points to a result buffer of length +.IR alen . +If the query did not complete successfully, +.I abuf +will usually be NULL and +.I alen +will usually be 0, but in some cases an unsuccessful query result may +be placed in +.IR abuf . +.SH SEE ALSO +.BR ares_process (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_send.3 b/deps/cares/docs/ares_send.3 new file mode 100644 index 00000000000000..b89abfeb85a890 --- /dev/null +++ b/deps/cares/docs/ares_send.3 @@ -0,0 +1,123 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SEND 3 "25 July 1998" +.SH NAME +ares_send \- Initiate a DNS query +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef void (*ares_callback)(void *\fIarg\fP, int \fIstatus\fP, +.B int \fItimeouts\fP, unsigned char *\fIabuf\fP, int \fIalen\fP) +.PP +.B void ares_send(ares_channel \fIchannel\fP, const unsigned char *\fIqbuf\fP, +.B int \fIqlen\fP, ares_callback \fIcallback\fP, void *\fIarg\fP) +.fi +.SH DESCRIPTION +The +.B ares_send +function initiates a DNS query on the name service channel identified +by +.IR channel . +The parameters +.I qbuf +and +.I qlen +give the DNS query, which should already have been formatted according +to the DNS protocol. When the query is complete or has failed, the +ares library will invoke +.IR callback . +Completion or failure of the query may happen immediately, or may +happen during a later call to +.BR ares_process (3) +or +.BR ares_destroy (3). +.PP +The callback argument +.I arg +is copied from the +.B ares_send +argument +.IR arg . +The callback argument +.I status +indicates whether the query succeeded and, if not, how it failed. It +may have any of the following values: +.TP 19 +.B ARES_SUCCESS +The query completed. +.TP 19 +.B ARES_EBADQUERY +The query buffer was poorly formed (was not long enough for a DNS +header or was too long for TCP transmission). +.TP 19 +.B ARES_ETIMEOUT +No name servers responded within the timeout period. +.TP 19 +.B ARES_ECONNREFUSED +No name servers could be contacted. +.TP 19 +.B ARES_ENOMEM +Memory was exhausted. +.TP 19 +.B ARES_ECANCELLED +The query was cancelled. +.TP 19 +.B ARES_EDESTRUCTION +The name service channel +.I channel +is being destroyed; the query will not be completed. +.PP +The callback argument +.I timeouts +reports how many times a query timed out during the execution of the +given request. +.PP +If the query completed, the callback argument +.I abuf +points to a result buffer of length +.IR alen . +If the query did not complete, +.I abuf +will be NULL and +.I alen +will be 0. +.PP +Unless the flag +.B ARES_FLAG_NOCHECKRESP +was set at channel initialization time, +.B ares_send +will normally ignore responses whose questions do not match the +questions in +.IR qbuf , +as well as responses with reply codes of +.BR SERVFAIL , +.BR NOTIMP , +and +.BR REFUSED . +Unlike other query functions in the ares library, however, +.B ares_send +does not inspect the header of the reply packet to determine the error +status, so a callback status of +.B ARES_SUCCESS +does not reflect as much about the response as for other query +functions. +.SH SEE ALSO +.BR ares_process (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_set_local_dev.3 b/deps/cares/docs/ares_set_local_dev.3 new file mode 100644 index 00000000000000..7d82133ac13438 --- /dev/null +++ b/deps/cares/docs/ares_set_local_dev.3 @@ -0,0 +1,39 @@ +.\" +.\" Copyright 2010 by Ben Greear +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_LOCAL_DEV 3 "30 June 2010" +.SH NAME +ares_set_local_dev \- Bind to a specific network device when creating sockets. +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_set_local_dev(ares_channel \fIchannel\fP, const char* \fIlocal_dev_name\fP) +.fi +.SH DESCRIPTION +The \fBares_set_local_dev\fP function causes all future sockets +to be bound to this device with SO_BINDTODEVICE. This forces communications +to go over a certain interface, which can be useful on multi-homed machines. +This option is only supported on Linux, and root privileges are required +for the option to work. If SO_BINDTODEVICE is not supported or the +setsocktop call fails (probably because of permissions), the error is +silently ignored. +.SH SEE ALSO +.BR ares_set_local_ip4 (3) +.BR ares_set_local_ip6 (3) +.SH NOTES +This function was added in c-ares 1.7.4 +.SH AUTHOR +Ben Greear diff --git a/deps/cares/docs/ares_set_local_ip4.3 b/deps/cares/docs/ares_set_local_ip4.3 new file mode 100644 index 00000000000000..e68e80e76ae194 --- /dev/null +++ b/deps/cares/docs/ares_set_local_ip4.3 @@ -0,0 +1,34 @@ +.\" +.\" Copyright 2010 by Ben Greear +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_LOCAL_IP4 3 "30 June 2010" +.SH NAME +ares_set_local_ip4 \- Set local IPv4 address outgoing requests. +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_set_local_ip4(ares_channel \fIchannel\fP, unsigned int \fIlocal_ip\fP) +.fi +.SH DESCRIPTION +The \fBares_set_local_ip4\fP function sets the IP address for outbound +requests. The parameter \fIlocal_ip\fP is specified in host byte order. This +allows users to specify outbound interfaces when used on multi-homed systems. +.SH SEE ALSO +.BR ares_set_local_ip6 (3) +.SH NOTES +This function was added in c-ares 1.7.4 +.SH AUTHOR +Ben Greear diff --git a/deps/cares/docs/ares_set_local_ip6.3 b/deps/cares/docs/ares_set_local_ip6.3 new file mode 100644 index 00000000000000..e659f5c930bb69 --- /dev/null +++ b/deps/cares/docs/ares_set_local_ip6.3 @@ -0,0 +1,35 @@ +.\" +.\" Copyright 2010 by Ben Greear +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_LOCAL_IP6 3 "30 June 2010" +.SH NAME +ares_set_local_ip6 \- Set local IPv6 address outgoing requests. +.SH SYNOPSIS +.nf +.B #include +.PP +.B void ares_set_local_ip6(ares_channel \fIchannel\fP, const unsigned char* \fIlocal_ip6\fP) +.fi +.SH DESCRIPTION +The \fBares_set_local_ip6\fP function sets the IPv6 address for outbound +IPv6 requests. The parameter \fIlocal_ip6\fP is specified in network byte +order. This allows users to specify outbound interfaces when used on +multi-homed systems. The local_ip6 argument must be 16 bytes in length. +.SH SEE ALSO +.BR ares_set_local_ip4 (3) +.SH NOTES +This function was added in c-ares 1.7.4 +.SH AUTHOR +Ben Greear diff --git a/deps/cares/docs/ares_set_servers.3 b/deps/cares/docs/ares_set_servers.3 new file mode 100644 index 00000000000000..65ad1e16427828 --- /dev/null +++ b/deps/cares/docs/ares_set_servers.3 @@ -0,0 +1,95 @@ +.\" +.\" Copyright 2010 by Ben Greear +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_SERVERS 3 "5 March 2010" +.SH NAME +ares_set_servers, ares_set_servers_ports \- Initialize an ares_channel name servers configuration +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_set_servers(ares_channel \fIchannel\fP, struct ares_addr_node *\fIservers\fP) +.B int ares_set_servers_ports(ares_channel \fIchannel\fP, struct ares_addr_port_node *\fIservers\fP) +.fi +.SH DESCRIPTION +The \fBares_set_servers(3)\fP function initializes name servers configuration +for the channel data identified by +.IR channel , +from a +.IR servers +pointer to a linked list of ares_addr_node structs holding name servers +address data. +.PP +The name server linked list pointer argument may be the result of a previous +call to \fBares_get_servers(3)\fP or a linked list of \fBares_addr_node\fP structs +set up by other means. +.PP +The \fBares_set_servers(3)\fP function also allows the specification of UDP and +TCP ports to be used for communication on a per-server basis. The provided +linked list argument may be the result of a previous call to +\fBares_get_servers_ports(3)\fP or a linked list of \fBares_addr_port_node\fP structs +set up by other means. +.PP +This function replaces any potentially previously configured name servers +with the ones given in the linked list. So, in order to configure a channel +with more than one name server all the desired ones must be specified in a +single list. +.PP +The function does not take ownership of the linked list argument. +The caller is responsible for freeing the linked list when no longer needed. +.PP +This function is capable of handling IPv4 and IPv6 name server +addresses simultaneously, rendering \fBares_init_options(3)\fP with +optmask \fBARES_OPT_SERVERS\fP functionally obsolete except for +IPv4-only name server usage. + +.SH RETURN VALUES +.B ares_set_servers(3) +may return any of the following values: +.TP 15 +.B ARES_SUCCESS +The name servers configuration was successfully initialized. +.TP 15 +.B ARES_ENOMEM +The process's available memory was exhausted. +.TP 15 +.B ARES_ENODATA +The channel data identified by +.IR channel +was invalid. +.TP 15 +.B ARES_ENOTINITIALIZED +c-ares library initialization not yet performed. +.TP 15 +.B ARES_ENOTIMP +Changing name servers configuration while queries are outstanding is not implemented. +.SH SEE ALSO +.BR ares_set_servers_csv (3), +.BR ares_get_servers (3), +.BR ares_init_options (3), +.BR ares_dup(3) +.SH AVAILABILITY +\fBares_set_servers(3)\fP was added in c-ares 1.7.1; +\fBares_set_servers_ports(3)\fP was added in c-ares 1.11.0. +.SH AUTHOR +Implementation of this function and associated library internals are based +on code, comments and feedback provided in November and December of 2008 by +Daniel Stenberg, Gregor Jasny, Phil Blundell and Yang Tse, December 2009 +by Cedric Bail, February 2010 by Jakub Hrozek. On March 2010 Yang Tse +shuffled all the bits and this function popped out. +.br +Copyright 1998 by the Massachusetts Institute of Technology. +.br +Copyright (C) 2008-2010 by Daniel Stenberg diff --git a/deps/cares/docs/ares_set_servers_csv.3 b/deps/cares/docs/ares_set_servers_csv.3 new file mode 100644 index 00000000000000..638d26987eddbc --- /dev/null +++ b/deps/cares/docs/ares_set_servers_csv.3 @@ -0,0 +1,67 @@ +.\" +.\" Copyright 2010 by Ben Greear +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_SERVERS_CSV 3 "30 June 2010" +.SH NAME +ares_set_servers_csv, ares_set_servers_ports_csv \- Set list of DNS servers to be used. +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_set_servers_csv(ares_channel \fIchannel\fP, const char* \fIservers\fP) +.B int ares_set_servers_ports_csv(ares_channel \fIchannel\fP, const char* \fIservers\fP) +.fi +.SH DESCRIPTION +The \fBares_set_servers_csv\fP and \fBares_set_servers_ports_csv\fPfunctions set +the list of DNS servers that ARES will query. The format of the servers option is: + +host[:port][,host[:port]]... + +For example: + +192.168.1.100,192.168.1.101,3.4.5.6 +.PP +The \fBares_set_servers_csv\fP function will ignore any port values specified in +the input string, whereare the \fBares_set_servers_ports_csv\fP function will +apply any specified port values as the UDP and TCP port to be used for that +particular nameserver. + +.SH RETURN VALUES +.B ares_set_servers_csv(3) +This function may return any of the following values: +.TP 15 +.B ARES_SUCCESS +The name servers configuration was successfully initialized. +.TP 15 +.B ARES_ENOMEM +The process's available memory was exhausted. +.TP 15 +.B ARES_ENODATA +The channel data identified by +.IR channel +was invalid. +.TP 15 +.B ARES_ENOTINITIALIZED +c-ares library initialization not yet performed. +.TP 15 +.B ARES_ENOTIMP +Changing name servers configuration while queries are outstanding is not implemented. +.SH SEE ALSO +.BR ares_set_servers (3) +.SH AVAILABILITY +\fBares_set_servers_csv\fP was added in c-ares 1.7.2; +\fBares_set_servers_ports_csv\fP was added in c-ares 1.11.0. +.SH AUTHOR +Ben Greear diff --git a/deps/cares/docs/ares_set_servers_ports.3 b/deps/cares/docs/ares_set_servers_ports.3 new file mode 100644 index 00000000000000..a3be18938e6983 --- /dev/null +++ b/deps/cares/docs/ares_set_servers_ports.3 @@ -0,0 +1 @@ +.so man3/ares_set_servers.3 diff --git a/deps/cares/docs/ares_set_servers_ports_csv.3 b/deps/cares/docs/ares_set_servers_ports_csv.3 new file mode 100644 index 00000000000000..30535c69f109bc --- /dev/null +++ b/deps/cares/docs/ares_set_servers_ports_csv.3 @@ -0,0 +1 @@ +.so man3/ares_set_servers_csv.3 diff --git a/deps/cares/docs/ares_set_socket_callback.3 b/deps/cares/docs/ares_set_socket_callback.3 new file mode 100644 index 00000000000000..14a5ad2dcb5ea2 --- /dev/null +++ b/deps/cares/docs/ares_set_socket_callback.3 @@ -0,0 +1,32 @@ +.\" +.TH ARES_SET_SOCKET_CALLBACK 3 "20 Nov 2009" +.SH NAME +ares_set_socket_callback \- Set a socket creation callback +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef int (*ares_sock_create_callback)(ares_socket_t \fIsocket_fd\fP, + int \fItype\fP, + void *\fIuserdata\fP) +.PP +.B void ares_set_socket_callback(ares_channel \fIchannel\fP, + ares_sock_create_callback \fIcallback\fP, + void *\fIuserdata\fP) +.PP +.B cc file.c -lcares +.fi +.SH DESCRIPTION +.PP +This function sets a \fIcallback\fP in the given ares channel handle. This +callback function will be invoked after the socket has been created, and +connected to the remote server. The callback must return ARES_SUCCESS if +things are fine, or return -1 to signal an error. A returned error will +abort the ares operation. +.SH SEE ALSO +.BR ares_init_options (3), ares_set_socket_configure_callback (3) +.SH AVAILABILITY +ares_set_socket_callback(3) was added in c-ares 1.6.0 +.SH AUTHOR +Gregor Jasny + diff --git a/deps/cares/docs/ares_set_socket_configure_callback.3 b/deps/cares/docs/ares_set_socket_configure_callback.3 new file mode 100644 index 00000000000000..d3b2f930179936 --- /dev/null +++ b/deps/cares/docs/ares_set_socket_configure_callback.3 @@ -0,0 +1,33 @@ +.\" +.TH ARES_SET_SOCKET_CONFIGURE_CALLBACK 3 "6 Feb 2016" +.SH NAME +ares_set_socket_configure_callback \- Set a socket configuration callback +.SH SYNOPSIS +.nf +.B #include +.PP +.B typedef int (*ares_sock_config_callback)(ares_socket_t \fIsocket_fd\fP, + int \fItype\fP, + void *\fIuserdata\fP) +.PP +.B void ares_set_socket_configure_callback(ares_channel \fIchannel\fP, + ares_sock_config_callback \fIcallback\fP, + void *\fIuserdata\fP) +.PP +.B cc file.c -lcares +.fi +.SH DESCRIPTION +.PP +This function sets a \fIcallback\fP in the given ares channel handle. This +callback function will be invoked after the socket has been created, but +before it has been connected to the remote server, which is an ideal time +to configure various socket options. The callback must return ARES_SUCCESS +if things are fine, or return -1 to signal an error. A returned error will +abort the ares operation. +.SH SEE ALSO +.BR ares_init_options (3), ares_set_socket_callback (3) +.SH AVAILABILITY +ares_set_socket_configure_callback(3) was added in c-ares 1.11.0 +.SH AUTHOR +Andrew Ayer + diff --git a/deps/cares/docs/ares_set_socket_functions.3 b/deps/cares/docs/ares_set_socket_functions.3 new file mode 100644 index 00000000000000..1cb0b8553bda74 --- /dev/null +++ b/deps/cares/docs/ares_set_socket_functions.3 @@ -0,0 +1,99 @@ +.\" +.TH ARES_SET_SOCKET_FUNCTIONS 3 "13 Dec 2016" +.SH NAME +ares_set_socket_functions \- Set socket io callbacks +.SH SYNOPSIS +.nf +.B #include +.PP +.B struct ares_socket_functions { + ares_socket_t(*\fIasocket\fP)(int, int, int, void *); + int(*\fIaclose\fP)(ares_socket_t, void *); + int(*\fIaconnect\fP)(ares_socket_t, const struct sockaddr *, ares_socklen_t, void *); + ares_ssize_t(*\fIarecvfrom\fP)(ares_socket_t, void *, size_t, int, struct sockaddr *, ares_socklen_t *, void *); + ares_ssize_t(*\fIasendv\fP)(ares_socket_t, const struct iovec *, int, void *); + }; + +.PP +.B void ares_set_socket_functions(ares_channel \fIchannel\fP, + const struct ares_socket_functions * \fIfunctions\fP, + void *\fIuser_data\fP); + +.fi +.SH DESCRIPTION +.PP +This function sets a set of callback \fIfunctions\fP in the given ares channel handle. +These callback functions will be invoked to create/destroy socket objects and perform +io, instead of the normal system calls. A client application can override normal network +operation fully through this functionality, and provide its own transport layer. +.PP +All callback functions are expected to operate like their system equivalents, and to +set +.BR errno(3) +to an appropriate error code on failure. C-ares also expects all io functions to behave +asynchronously, i.e. as if the socket object has been set to non-blocking mode. Thus +read/write calls (for TCP connections) are expected to often generate +.BR EAGAIN +or +.BR EWOULDBLOCK. + +.PP +The \fIuser_data\fP value is provided to each callback function invocation to serve as +context. +.PP +The +.B ares_socket_functions +must provide the following callbacks: +.TP 18 +.B \fIasocket\fP +.B ares_socket_t(*)(int \fIdomain\fP, int \fItype\fP, int \fIprotocol\fP, void * \fIuser_data\fP) +.br +Creates an endpoint for communication and returns a descriptor. \fIdomain\fP, \fItype\fP, and \fIprotocol\fP +each correspond to the parameters of +.BR socket(2). +Returns ahandle to the newly created socket, or -1 on error. +.TP 18 +.B \fIaclose\fP +.B int(*)(ares_socket_t \fIfd\fP, void * \fIuser_data\fP) +.br +Closes the socket endpoint indicated by \fIfd\fP. See +.BR close(2) +.TP 18 +.B \fIaconnect\fP +.B int(*)(ares_socket_t \fIfd\fP, const struct sockaddr * \fIaddr\fP, ares_socklen_t \fIaddr_len\fP, void * \fIuser_data\fP) +.br +Initiate a connection to the address indicated by \fIaddr\fP on a socket. See +.BR connect(2) + +.TP 18 +.B \fIarecvfrom\fP +.B ares_ssize_t(*)(ares_socket_t \fIfd\fP, void * \fIbuffer\fP, size_t \fIbuf_size\fP, int \fIflags\fP, struct sockaddr * \fIaddr\fP, ares_socklen_t * \fIaddr_len\fP, void * \fIuser_data\fP) +.br +Receives data from remote socket endpoint, if available. If the \fIaddr\fP parameter is not NULL and the connection protocol provides the source address, the callback should fill this in. See +.BR recvfrom(2) + +.TP 18 +.B \fIasendv\fP +.B ares_ssize_t(*)(ares_socket_t \fIfd\fP, const struct iovec * \fIdata\fP, int \fIlen\fP, void * \fIuser_data\fP) +.br +Send data, as provided by the iovec array \fIdata\fP, to the socket endpoint. See +.BR writev(2), + +.PP +The +.B ares_socket_functions +struct provided is not copied but directly referenced, +and must thus remain valid through out the channels and any created socket's lifetime. +.SH AVAILABILITY +Added in c-ares 1.13.0 +.SH SEE ALSO +.BR ares_init_options (3), +.BR socket(2), +.BR close(2), +.BR connect(2), +.BR recv(2), +.BR recvfrom(2), +.BR send(2), +.BR writev(2) +.SH AUTHOR +Carl Wilund diff --git a/deps/cares/docs/ares_set_sortlist.3 b/deps/cares/docs/ares_set_sortlist.3 new file mode 100644 index 00000000000000..24a97906ad9a27 --- /dev/null +++ b/deps/cares/docs/ares_set_sortlist.3 @@ -0,0 +1,58 @@ +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_SET_SORTLIST 3 "23 November 2015" +.SH NAME +ares_set_sortlist \- Initialize an ares_channel sortlist configuration +.SH SYNOPSIS +.nf +.B #include +.PP +.B int ares_set_sortlist(ares_channel \fIchannel\fP, const char *\fIsortstr\fP) +.fi +.SH DESCRIPTION +The \fBares_set_sortlist(3)\fP function initializes an address sortlist configuration +for the channel data identified by +.IR channel , +so that addresses returned by \fBares_gethostbyname(3)\fP are sorted according to the +sortlist. The provided +.IR sortstr +string that holds a space separated list of IP-address-netmask pairs. The +netmask is optional but follows the address after a slash if present. For example, +"130.155.160.0/255.255.240.0 130.155.0.0". + +This function replaces any potentially previously configured address sortlist +with the ones given in the configuration string. + +.SH RETURN VALUES +.B ares_set_sortlist(3) +may return any of the following values: +.TP 15 +.B ARES_SUCCESS +The sortlist configuration was successfully initialized. +.TP 15 +.B ARES_ENOMEM +The process's available memory was exhausted. +.TP 15 +.B ARES_ENODATA +The channel data identified by +.IR channel +was invalid. +.TP 15 +.B ARES_ENOTINITIALIZED +c-ares library initialization not yet performed. +.SH SEE ALSO +.BR ares_init_options (3), +.BR ares_dup(3) +.SH AVAILABILITY +ares_set_sortlist(3) was added in c-ares 1.11.0 diff --git a/deps/cares/docs/ares_strerror.3 b/deps/cares/docs/ares_strerror.3 new file mode 100644 index 00000000000000..4b50d5bbb5850f --- /dev/null +++ b/deps/cares/docs/ares_strerror.3 @@ -0,0 +1,37 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_STRERROR 3 "25 July 1998" +.SH NAME +ares_strerror \- Get the description of an ares library error code +.SH SYNOPSIS +.nf +.B #include +.PP +.B const char *ares_strerror(int \fIcode\fP) +.fi +.SH DESCRIPTION +The +.B ares_strerror +function gets the description of the ares library error code +.IR code , +returning the result as a NUL-terminated C string. +.SH NOTES +This function is not compatible with ares, it takes a different set of +arguments. +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_timeout.3 b/deps/cares/docs/ares_timeout.3 new file mode 100644 index 00000000000000..c57685dcf7c4c3 --- /dev/null +++ b/deps/cares/docs/ares_timeout.3 @@ -0,0 +1,46 @@ +.\" +.\" Copyright 1998 by the Massachusetts Institute of Technology. +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_TIMEOUT 3 "25 July 1998" +.SH NAME +ares_timeout \- return maximum time to wait +.SH SYNOPSIS +.nf +#include + +struct timeval *ares_timeout(ares_channel \fIchannel\fP, + struct timeval *\fImaxtv\fP, + struct timeval *\fItv\fP) +.fi +.SH DESCRIPTION +The \fBares_timeout(3)\fP function determines the maximum time for which the +caller should wait before invoking \fIares_process(3)\fP to process timeouts. +The parameter \fImaxtv\fP specifies a existing maximum timeout, or \fBNULL\fP +if the caller does not wish to apply a maximum timeout. The parameter +\fItv\fP must point to a writable buffer of type \fBstruct timeval\fP It is +valid for \fImaxtv\fP and \fItv\fP to have the same value. + +If no queries have timeouts pending sooner than the given maximum timeout, +\fBares_timeout(3)\fP returns the value of \fImaxtv\fP; otherwise +\fBares_timeout(3)\fP stores the appropriate timeout value into the buffer +pointed to by \fItv\fP and returns the value of \fItv\fP. +.SH SEE ALSO +.BR ares_fds (3), +.BR ares_process (3), +.BR ares_process_fd (3) +.SH AUTHOR +Greg Hudson, MIT Information Systems +.br +Copyright 1998 by the Massachusetts Institute of Technology. diff --git a/deps/cares/docs/ares_version.3 b/deps/cares/docs/ares_version.3 new file mode 100644 index 00000000000000..9ba7831f54db37 --- /dev/null +++ b/deps/cares/docs/ares_version.3 @@ -0,0 +1,35 @@ +.\" +.\" Copyright 2004 by Daniel Stenberg +.\" +.\" Permission to use, copy, modify, and distribute this +.\" software and its documentation for any purpose and without +.\" fee is hereby granted, provided that the above copyright +.\" notice appear in all copies and that both that copyright +.\" notice and this permission notice appear in supporting +.\" documentation, and that the name of M.I.T. not be used in +.\" advertising or publicity pertaining to distribution of the +.\" software without specific, written prior permission. +.\" M.I.T. makes no representations about the suitability of +.\" this software for any purpose. It is provided "as is" +.\" without express or implied warranty. +.\" +.TH ARES_VERSION 3 "29 January 2004" +.SH NAME +ares_version \- Get the version number of the library +.SH SYNOPSIS +.nf +#include + +const char *ares_version(int *\fIversion\fP) +.fi +.SH DESCRIPTION +The \fBares_version(3)\fP function gets the library version as a string and +optionally as an integer stored in the \fIversion\fP argument. If you pass a +NULL, no integer is attempted to be returned. + +The integer is built up as 24bit number, with 8 separate bits used for major +number, minor number and patch number. This makes a version string such as +1.2.3 will be returned as the hexadecimal number 0x010203 (decimal 66051). +.SH "SEE ALSO" +.BR ares_init (3), +.BR ares_library_init (3) diff --git a/deps/cares/get_ver.awk b/deps/cares/get_ver.awk new file mode 100644 index 00000000000000..5e3db6db99a96b --- /dev/null +++ b/deps/cares/get_ver.awk @@ -0,0 +1,27 @@ +# *************************************************************************** +# * Project: c-ares +# * +# *************************************************************************** +# awk script which fetches c-ares version number and string from input +# file and writes them to STDOUT. Here you can get an awk version for Win32: +# http://www.gknw.net/development/prgtools/awk-20100523.zip +# +BEGIN { + while ((getline < ARGV[1]) > 0) { + sub("\r", "") # make MSYS gawk work with CRLF header input. + if (match ($0, /^#define ARES_COPYRIGHT "[^"]+"$/)) + copyright_string = substr($0, 25, length($0)-25) + else if (match ($0, /^#define ARES_VERSION_STR "[^"]+"$/)) + version_string = substr($3, 2, length($3)-2) + else if (match ($0, /^#define ARES_VERSION_MAJOR [0-9]+$/)) + version_major = $3 + else if (match ($0, /^#define ARES_VERSION_MINOR [0-9]+$/)) + version_minor = $3 + else if (match ($0, /^#define ARES_VERSION_PATCH [0-9]+$/)) + version_patch = $3 + } + print "LIBCARES_VERSION = " version_major "," version_minor "," version_patch + print "LIBCARES_VERSION_STR = " version_string + print "LIBCARES_COPYRIGHT_STR = " copyright_string +} + diff --git a/deps/cares/include/CMakeLists.txt b/deps/cares/include/CMakeLists.txt new file mode 100644 index 00000000000000..3321956dd74f58 --- /dev/null +++ b/deps/cares/include/CMakeLists.txt @@ -0,0 +1,8 @@ +# Write ares_build.h configuration file. This is an installed file. +CONFIGURE_FILE (ares_build.h.cmake ${PROJECT_BINARY_DIR}/ares_build.h) + +# Headers installation target +IF (CARES_INSTALL) + SET (CARES_HEADERS ares.h ares_version.h "${PROJECT_BINARY_DIR}/ares_build.h" ares_rules.h ares_dns.h ares_nameser.h) + INSTALL (FILES ${CARES_HEADERS} COMPONENT Devel DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +ENDIF () diff --git a/deps/cares/include/Makefile.am b/deps/cares/include/Makefile.am new file mode 100644 index 00000000000000..d208bece64cd44 --- /dev/null +++ b/deps/cares/include/Makefile.am @@ -0,0 +1,7 @@ +AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install + +# what headers to install on 'make install': +include_HEADERS = ares.h ares_version.h ares_build.h ares_rules.h ares_dns.h ares_nameser.h + +EXTRA_DIST = ares_build.h.cmake ares_build.h.in ares_build.h.dist CMakeLists.txt diff --git a/deps/cares/include/Makefile.in b/deps/cares/include/Makefile.in new file mode 100644 index 00000000000000..fad83f2c905901 --- /dev/null +++ b/deps/cares/include/Makefile.in @@ -0,0 +1,623 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = include +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(include_HEADERS) \ + $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h ares_build.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(includedir)" +HEADERS = $(include_HEADERS) +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + ares_build.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/ares_build.h.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install + +# what headers to install on 'make install': +include_HEADERS = ares.h ares_version.h ares_build.h ares_rules.h ares_dns.h ares_nameser.h +EXTRA_DIST = ares_build.h.cmake ares_build.h.in ares_build.h.dist CMakeLists.txt +all: ares_build.h + $(MAKE) $(AM_MAKEFLAGS) all-am + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign include/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign include/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +ares_build.h: stamp-h2 + @test -f $@ || rm -f stamp-h2 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h2 + +stamp-h2: $(srcdir)/ares_build.h.in $(top_builddir)/config.status + @rm -f stamp-h2 + cd $(top_builddir) && $(SHELL) ./config.status include/ares_build.h + +distclean-hdr: + -rm -f ares_build.h stamp-h2 + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs +install-includeHEADERS: $(include_HEADERS) + @$(NORMAL_INSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + if test -n "$$list"; then \ + echo " $(MKDIR_P) '$(DESTDIR)$(includedir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(includedir)" || exit 1; \ + fi; \ + for p in $$list; do \ + if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \ + echo "$$d$$p"; \ + done | $(am__base_list) | \ + while read files; do \ + echo " $(INSTALL_HEADER) $$files '$(DESTDIR)$(includedir)'"; \ + $(INSTALL_HEADER) $$files "$(DESTDIR)$(includedir)" || exit $$?; \ + done + +uninstall-includeHEADERS: + @$(NORMAL_UNINSTALL) + @list='$(include_HEADERS)'; test -n "$(includedir)" || list=; \ + files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \ + dir='$(DESTDIR)$(includedir)'; $(am__uninstall_files_from_dir) + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(HEADERS) ares_build.h +installdirs: + for dir in "$(DESTDIR)$(includedir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-am + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-hdr distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: install-includeHEADERS + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: uninstall-includeHEADERS + +.MAKE: all install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am check check-am clean clean-generic \ + clean-libtool cscopelist-am ctags ctags-am distclean \ + distclean-generic distclean-hdr distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-includeHEADERS install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-generic \ + mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \ + uninstall-am uninstall-includeHEADERS + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/include/ares.h b/deps/cares/include/ares.h index b341d60934d34c..cf8a8553fe099e 100644 --- a/deps/cares/include/ares.h +++ b/deps/cares/include/ares.h @@ -39,7 +39,7 @@ #if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \ defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \ defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \ - defined(__QNXNTO__) || defined(__MVS__) + defined(__QNXNTO__) || defined(__MVS__) || defined(__HAIKU__) #include #endif #if (defined(NETWARE) && !defined(__NOVELL_LIBC__)) @@ -588,6 +588,14 @@ struct ares_soa_reply { unsigned int minttl; }; +struct ares_uri_reply { + struct ares_uri_reply *next; + unsigned short priority; + unsigned short weight; + char *uri; + int ttl; +}; + /* * Similar to addrinfo, but with extra ttl and missing canonname. */ @@ -617,6 +625,7 @@ struct ares_addrinfo_cname { struct ares_addrinfo { struct ares_addrinfo_cname *cnames; struct ares_addrinfo_node *nodes; + char *name; }; struct ares_addrinfo_hints { @@ -685,6 +694,10 @@ CARES_EXTERN int ares_parse_soa_reply(const unsigned char* abuf, int alen, struct ares_soa_reply** soa_out); +CARES_EXTERN int ares_parse_uri_reply(const unsigned char* abuf, + int alen, + struct ares_uri_reply** uri_out); + CARES_EXTERN void ares_free_string(void *str); CARES_EXTERN void ares_free_hostent(struct hostent *host); diff --git a/deps/cares/include/ares_build.h b/deps/cares/include/ares_build.h index 5e3ba9f0d8cb0c..7f7d2e02daaba9 100644 --- a/deps/cares/include/ares_build.h +++ b/deps/cares/include/ares_build.h @@ -2,7 +2,7 @@ #define __CARES_BUILD_H -/* Copyright (C) 2009 - 2013 by Daniel Stenberg et al +/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided @@ -42,7 +42,7 @@ * * If you think that something actually needs to be changed, adjusted * or fixed in this file, then, report it on the c-ares development - * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/ + * mailing list: http://lists.haxx.se/listinfo/c-ares/ * * Try to keep one section per platform, compiler and architecture, * otherwise, if an existing section is reused for a different one and diff --git a/deps/cares/include/ares_build.h.cmake b/deps/cares/include/ares_build.h.cmake new file mode 100644 index 00000000000000..e847f17ea79ea7 --- /dev/null +++ b/deps/cares/include/ares_build.h.cmake @@ -0,0 +1,43 @@ +#ifndef __CARES_BUILD_H +#define __CARES_BUILD_H + +#define CARES_TYPEOF_ARES_SOCKLEN_T @CARES_TYPEOF_ARES_SOCKLEN_T@ +#define CARES_TYPEOF_ARES_SSIZE_T @CARES_TYPEOF_ARES_SSIZE_T@ + +/* Prefix names with CARES_ to make sure they don't conflict with other config.h + * files. We need to include some dependent headers that may be system specific + * for C-Ares */ +#cmakedefine CARES_HAVE_SYS_TYPES_H +#cmakedefine CARES_HAVE_SYS_SOCKET_H +#cmakedefine CARES_HAVE_WINDOWS_H +#cmakedefine CARES_HAVE_WS2TCPIP_H +#cmakedefine CARES_HAVE_WINSOCK2_H +#cmakedefine CARES_HAVE_WINDOWS_H +#cmakedefine CARES_HAVE_ARPA_NAMESER_H +#cmakedefine CARES_HAVE_ARPA_NAMESER_COMPAT_H + +#ifdef CARES_HAVE_SYS_TYPES_H +# include +#endif + +#ifdef CARES_HAVE_SYS_SOCKET_H +# include +#endif + +#ifdef CARES_HAVE_WINSOCK2_H +# include +#endif + +#ifdef CARES_HAVE_WS2TCPIP_H +# include +#endif + +#ifdef CARES_HAVE_WINDOWS_H +# include +#endif + + +typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t; +typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t; + +#endif /* __CARES_BUILD_H */ diff --git a/deps/cares/include/ares_build.h.in b/deps/cares/include/ares_build.h.in new file mode 100644 index 00000000000000..8abc874c809026 --- /dev/null +++ b/deps/cares/include/ares_build.h.in @@ -0,0 +1,103 @@ +#ifndef __CARES_BUILD_H +#define __CARES_BUILD_H + + +/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al + * + * Permission to use, copy, modify, and distribute this software and its + * documentation for any purpose and without fee is hereby granted, provided + * that the above copyright notice appear in all copies and that both that + * copyright notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in advertising or + * publicity pertaining to distribution of the software without specific, + * written prior permission. M.I.T. makes no representations about the + * suitability of this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +/* ================================================================ */ +/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */ +/* ================================================================ */ + +/* + * NOTE 1: + * ------- + * + * Nothing in this file is intended to be modified or adjusted by the + * c-ares library user nor by the c-ares library builder. + * + * If you think that something actually needs to be changed, adjusted + * or fixed in this file, then, report it on the c-ares development + * mailing list: http://lists.haxx.se/listinfo/c-ares/ + * + * This header file shall only export symbols which are 'cares' or 'CARES' + * prefixed, otherwise public name space would be polluted. + * + * NOTE 2: + * ------- + * + * Right now you might be staring at file ares_build.h.in or ares_build.h, + * this is due to the following reason: + * + * On systems capable of running the configure script, the configure process + * will overwrite the distributed ares_build.h file with one that is suitable + * and specific to the library being configured and built, which is generated + * from the ares_build.h.in template file. + * + */ + +/* ================================================================ */ +/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */ +/* ================================================================ */ + +#ifdef CARES_TYPEOF_ARES_SOCKLEN_T +# error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h" + Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined +#endif + +#undef CARES_HAVE_ARPA_NAMESER_H +#undef CARES_HAVE_ARPA_NAMESER_COMPAT_H + +/* ================================================================ */ +/* EXTERNAL INTERFACE SETTINGS FOR CONFIGURE CAPABLE SYSTEMS ONLY */ +/* ================================================================ */ + +/* Configure process defines this to 1 when it finds out that system */ +/* header file ws2tcpip.h must be included by the external interface. */ +#undef CARES_PULL_WS2TCPIP_H +#ifdef CARES_PULL_WS2TCPIP_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# include +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/types.h must be included by the external interface. */ +#undef CARES_PULL_SYS_TYPES_H +#ifdef CARES_PULL_SYS_TYPES_H +# include +#endif + +/* Configure process defines this to 1 when it finds out that system */ +/* header file sys/socket.h must be included by the external interface. */ +#undef CARES_PULL_SYS_SOCKET_H +#ifdef CARES_PULL_SYS_SOCKET_H +# include +#endif + +/* Integral data type used for ares_socklen_t. */ +#undef CARES_TYPEOF_ARES_SOCKLEN_T + +/* Data type definition of ares_socklen_t. */ +typedef CARES_TYPEOF_ARES_SOCKLEN_T ares_socklen_t; + +/* Integral data type used for ares_ssize_t. */ +#undef CARES_TYPEOF_ARES_SSIZE_T + +/* Data type definition of ares_ssize_t. */ +typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t; + +#endif /* __CARES_BUILD_H */ diff --git a/deps/cares/src/lib/ares_nameser.h b/deps/cares/include/ares_nameser.h similarity index 97% rename from deps/cares/src/lib/ares_nameser.h rename to deps/cares/include/ares_nameser.h index 5270e5a3a6a079..18a9e5ac0e25fa 100644 --- a/deps/cares/src/lib/ares_nameser.h +++ b/deps/cares/include/ares_nameser.h @@ -2,10 +2,12 @@ #ifndef ARES_NAMESER_H #define ARES_NAMESER_H -#ifdef HAVE_ARPA_NAMESER_H +#include "ares_build.h" + +#ifdef CARES_HAVE_ARPA_NAMESER_H # include #endif -#ifdef HAVE_ARPA_NAMESER_COMPAT_H +#ifdef CARES_HAVE_ARPA_NAMESER_COMPAT_H # include #endif @@ -68,7 +70,7 @@ * provide them * ============================================================================ */ -#ifndef HAVE_ARPA_NAMESER_H +#ifndef CARES_HAVE_ARPA_NAMESER_H typedef enum __ns_class { ns_c_invalid = 0, /* Cookie. */ @@ -138,7 +140,7 @@ typedef enum __ns_type { ns_t_mailb = 253, /* Transfer mailbox records. */ ns_t_maila = 254, /* Transfer mail agent records. */ ns_t_any = 255, /* Wildcard match. */ - ns_t_zxfr = 256, /* BIND-specific, nonstandard. */ + ns_t_uri = 256, /* Uniform Resource Identifier (RFC7553) */ ns_t_caa = 257, /* Certification Authority Authorization. */ ns_t_max = 65536 } ns_type; @@ -173,7 +175,7 @@ typedef enum __ns_rcode { ns_r_badtime = 18 } ns_rcode; -#endif /* HAVE_ARPA_NAMESER_H */ +#endif /* CARES_HAVE_ARPA_NAMESER_H */ /* ============================================================================ @@ -468,8 +470,8 @@ typedef enum __ns_rcode { #ifndef T_ANY # define T_ANY 255 /* ns_t_any */ #endif -#ifndef T_ZXFR -# define T_ZXFR 256 /* ns_t_zxfr */ +#ifndef T_URI +# define T_URI 256 /* ns_t_uri */ #endif #ifndef T_CAA # define T_CAA 257 /* ns_t_caa */ diff --git a/deps/cares/include/ares_rules.h b/deps/cares/include/ares_rules.h index cac23cf2e32db3..1706ab7d00444d 100644 --- a/deps/cares/include/ares_rules.h +++ b/deps/cares/include/ares_rules.h @@ -2,7 +2,7 @@ #define __CARES_RULES_H -/* Copyright (C) 2009 by Daniel Stenberg et al +/* Copyright (C) 2009 - 2021 by Daniel Stenberg et al * * Permission to use, copy, modify, and distribute this software and its * documentation for any purpose and without fee is hereby granted, provided @@ -40,7 +40,7 @@ * library is properly built and used. * * You can find further help on the c-ares development mailing list: - * http://cool.haxx.se/mailman/listinfo/c-ares/ + * http://lists.haxx.se/listinfo/c-ares/ * * NOTE 2 * ------ diff --git a/deps/cares/include/ares_version.h b/deps/cares/include/ares_version.h index de1ac8424cca16..22c6f62fd72c62 100644 --- a/deps/cares/include/ares_version.h +++ b/deps/cares/include/ares_version.h @@ -3,15 +3,15 @@ #define ARES__VERSION_H /* This is the global package copyright */ -#define ARES_COPYRIGHT "2004 - 2020 Daniel Stenberg, ." +#define ARES_COPYRIGHT "2004 - 2021 Daniel Stenberg, ." #define ARES_VERSION_MAJOR 1 -#define ARES_VERSION_MINOR 17 -#define ARES_VERSION_PATCH 2 +#define ARES_VERSION_MINOR 18 +#define ARES_VERSION_PATCH 1 #define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\ (ARES_VERSION_MINOR<<8)|\ (ARES_VERSION_PATCH)) -#define ARES_VERSION_STR "1.17.2" +#define ARES_VERSION_STR "1.18.1" #if (ARES_VERSION >= 0x010700) # define CARES_HAVE_ARES_LIBRARY_INIT 1 diff --git a/deps/cares/install-sh b/deps/cares/install-sh new file mode 100755 index 00000000000000..ec298b53740270 --- /dev/null +++ b/deps/cares/install-sh @@ -0,0 +1,541 @@ +#!/bin/sh +# install - install a program, script, or datafile + +scriptversion=2020-11-14.01; # UTC + +# This originates from X11R5 (mit/util/scripts/install.sh), which was +# later released in X11R6 (xc/config/util/install.sh) with the +# following copyright and license. +# +# Copyright (C) 1994 X Consortium +# +# 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 +# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN +# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- +# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# +# Except as contained in this notice, the name of the X Consortium shall not +# be used in advertising or otherwise to promote the sale, use or other deal- +# ings in this Software without prior written authorization from the X Consor- +# tium. +# +# +# FSF changes to this file are in the public domain. +# +# Calling this script install-sh is preferred over install.sh, to prevent +# 'make' implicit rules from creating a file called install from it +# when there is no Makefile. +# +# This script is compatible with the BSD install script, but was written +# from scratch. + +tab=' ' +nl=' +' +IFS=" $tab$nl" + +# Set DOITPROG to "echo" to test this script. + +doit=${DOITPROG-} +doit_exec=${doit:-exec} + +# Put in absolute file names if you don't have them in your path; +# or use environment vars. + +chgrpprog=${CHGRPPROG-chgrp} +chmodprog=${CHMODPROG-chmod} +chownprog=${CHOWNPROG-chown} +cmpprog=${CMPPROG-cmp} +cpprog=${CPPROG-cp} +mkdirprog=${MKDIRPROG-mkdir} +mvprog=${MVPROG-mv} +rmprog=${RMPROG-rm} +stripprog=${STRIPPROG-strip} + +posix_mkdir= + +# Desired mode of installed file. +mode=0755 + +# Create dirs (including intermediate dirs) using mode 755. +# This is like GNU 'install' as of coreutils 8.32 (2020). +mkdir_umask=22 + +backupsuffix= +chgrpcmd= +chmodcmd=$chmodprog +chowncmd= +mvcmd=$mvprog +rmcmd="$rmprog -f" +stripcmd= + +src= +dst= +dir_arg= +dst_arg= + +copy_on_change=false +is_target_a_directory=possibly + +usage="\ +Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE + or: $0 [OPTION]... SRCFILES... DIRECTORY + or: $0 [OPTION]... -t DIRECTORY SRCFILES... + or: $0 [OPTION]... -d DIRECTORIES... + +In the 1st form, copy SRCFILE to DSTFILE. +In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. +In the 4th, create DIRECTORIES. + +Options: + --help display this help and exit. + --version display version info and exit. + + -c (ignored) + -C install only if different (preserve data modification time) + -d create directories instead of installing files. + -g GROUP $chgrpprog installed files to GROUP. + -m MODE $chmodprog installed files to MODE. + -o USER $chownprog installed files to USER. + -p pass -p to $cpprog. + -s $stripprog installed files. + -S SUFFIX attempt to back up existing files, with suffix SUFFIX. + -t DIRECTORY install into DIRECTORY. + -T report an error if DSTFILE is a directory. + +Environment variables override the default commands: + CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG + RMPROG STRIPPROG + +By default, rm is invoked with -f; when overridden with RMPROG, +it's up to you to specify -f if you want it. + +If -S is not specified, no backups are attempted. + +Email bug reports to bug-automake@gnu.org. +Automake home page: https://www.gnu.org/software/automake/ +" + +while test $# -ne 0; do + case $1 in + -c) ;; + + -C) copy_on_change=true;; + + -d) dir_arg=true;; + + -g) chgrpcmd="$chgrpprog $2" + shift;; + + --help) echo "$usage"; exit $?;; + + -m) mode=$2 + case $mode in + *' '* | *"$tab"* | *"$nl"* | *'*'* | *'?'* | *'['*) + echo "$0: invalid mode: $mode" >&2 + exit 1;; + esac + shift;; + + -o) chowncmd="$chownprog $2" + shift;; + + -p) cpprog="$cpprog -p";; + + -s) stripcmd=$stripprog;; + + -S) backupsuffix="$2" + shift;; + + -t) + is_target_a_directory=always + dst_arg=$2 + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + shift;; + + -T) is_target_a_directory=never;; + + --version) echo "$0 $scriptversion"; exit $?;; + + --) shift + break;; + + -*) echo "$0: invalid option: $1" >&2 + exit 1;; + + *) break;; + esac + shift +done + +# We allow the use of options -d and -T together, by making -d +# take the precedence; this is for compatibility with GNU install. + +if test -n "$dir_arg"; then + if test -n "$dst_arg"; then + echo "$0: target directory not allowed when installing a directory." >&2 + exit 1 + fi +fi + +if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then + # When -d is used, all remaining arguments are directories to create. + # When -t is used, the destination is already specified. + # Otherwise, the last argument is the destination. Remove it from $@. + for arg + do + if test -n "$dst_arg"; then + # $@ is not empty: it contains at least $arg. + set fnord "$@" "$dst_arg" + shift # fnord + fi + shift # arg + dst_arg=$arg + # Protect names problematic for 'test' and other utilities. + case $dst_arg in + -* | [=\(\)!]) dst_arg=./$dst_arg;; + esac + done +fi + +if test $# -eq 0; then + if test -z "$dir_arg"; then + echo "$0: no input file specified." >&2 + exit 1 + fi + # It's OK to call 'install-sh -d' without argument. + # This can happen when creating conditional directories. + exit 0 +fi + +if test -z "$dir_arg"; then + if test $# -gt 1 || test "$is_target_a_directory" = always; then + if test ! -d "$dst_arg"; then + echo "$0: $dst_arg: Is not a directory." >&2 + exit 1 + fi + fi +fi + +if test -z "$dir_arg"; then + do_exit='(exit $ret); exit $ret' + trap "ret=129; $do_exit" 1 + trap "ret=130; $do_exit" 2 + trap "ret=141; $do_exit" 13 + trap "ret=143; $do_exit" 15 + + # Set umask so as not to create temps with too-generous modes. + # However, 'strip' requires both read and write access to temps. + case $mode in + # Optimize common cases. + *644) cp_umask=133;; + *755) cp_umask=22;; + + *[0-7]) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw='% 200' + fi + cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; + *) + if test -z "$stripcmd"; then + u_plus_rw= + else + u_plus_rw=,u+rw + fi + cp_umask=$mode$u_plus_rw;; + esac +fi + +for src +do + # Protect names problematic for 'test' and other utilities. + case $src in + -* | [=\(\)!]) src=./$src;; + esac + + if test -n "$dir_arg"; then + dst=$src + dstdir=$dst + test -d "$dstdir" + dstdir_status=$? + # Don't chown directories that already exist. + if test $dstdir_status = 0; then + chowncmd="" + fi + else + + # Waiting for this to be detected by the "$cpprog $src $dsttmp" command + # might cause directories to be created, which would be especially bad + # if $src (and thus $dsttmp) contains '*'. + if test ! -f "$src" && test ! -d "$src"; then + echo "$0: $src does not exist." >&2 + exit 1 + fi + + if test -z "$dst_arg"; then + echo "$0: no destination specified." >&2 + exit 1 + fi + dst=$dst_arg + + # If destination is a directory, append the input filename. + if test -d "$dst"; then + if test "$is_target_a_directory" = never; then + echo "$0: $dst_arg: Is a directory" >&2 + exit 1 + fi + dstdir=$dst + dstbase=`basename "$src"` + case $dst in + */) dst=$dst$dstbase;; + *) dst=$dst/$dstbase;; + esac + dstdir_status=0 + else + dstdir=`dirname "$dst"` + test -d "$dstdir" + dstdir_status=$? + fi + fi + + case $dstdir in + */) dstdirslash=$dstdir;; + *) dstdirslash=$dstdir/;; + esac + + obsolete_mkdir_used=false + + if test $dstdir_status != 0; then + case $posix_mkdir in + '') + # With -d, create the new directory with the user-specified mode. + # Otherwise, rely on $mkdir_umask. + if test -n "$dir_arg"; then + mkdir_mode=-m$mode + else + mkdir_mode= + fi + + posix_mkdir=false + # The $RANDOM variable is not portable (e.g., dash). Use it + # here however when possible just to lower collision chance. + tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ + + trap ' + ret=$? + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" 2>/dev/null + exit $ret + ' 0 + + # Because "mkdir -p" follows existing symlinks and we likely work + # directly in world-writeable /tmp, make sure that the '$tmpdir' + # directory is successfully created first before we actually test + # 'mkdir -p'. + if (umask $mkdir_umask && + $mkdirprog $mkdir_mode "$tmpdir" && + exec $mkdirprog $mkdir_mode -p -- "$tmpdir/a/b") >/dev/null 2>&1 + then + if test -z "$dir_arg" || { + # Check for POSIX incompatibilities with -m. + # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or + # other-writable bit of parent directory when it shouldn't. + # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. + test_tmpdir="$tmpdir/a" + ls_ld_tmpdir=`ls -ld "$test_tmpdir"` + case $ls_ld_tmpdir in + d????-?r-*) different_mode=700;; + d????-?--*) different_mode=755;; + *) false;; + esac && + $mkdirprog -m$different_mode -p -- "$test_tmpdir" && { + ls_ld_tmpdir_1=`ls -ld "$test_tmpdir"` + test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" + } + } + then posix_mkdir=: + fi + rmdir "$tmpdir/a/b" "$tmpdir/a" "$tmpdir" + else + # Remove any dirs left behind by ancient mkdir implementations. + rmdir ./$mkdir_mode ./-p ./-- "$tmpdir" 2>/dev/null + fi + trap '' 0;; + esac + + if + $posix_mkdir && ( + umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" + ) + then : + else + + # mkdir does not conform to POSIX, + # or it failed possibly due to a race condition. Create the + # directory the slow way, step by step, checking for races as we go. + + case $dstdir in + /*) prefix='/';; + [-=\(\)!]*) prefix='./';; + *) prefix='';; + esac + + oIFS=$IFS + IFS=/ + set -f + set fnord $dstdir + shift + set +f + IFS=$oIFS + + prefixes= + + for d + do + test X"$d" = X && continue + + prefix=$prefix$d + if test -d "$prefix"; then + prefixes= + else + if $posix_mkdir; then + (umask $mkdir_umask && + $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break + # Don't fail if two instances are running concurrently. + test -d "$prefix" || exit 1 + else + case $prefix in + *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; + *) qprefix=$prefix;; + esac + prefixes="$prefixes '$qprefix'" + fi + fi + prefix=$prefix/ + done + + if test -n "$prefixes"; then + # Don't fail if two instances are running concurrently. + (umask $mkdir_umask && + eval "\$doit_exec \$mkdirprog $prefixes") || + test -d "$dstdir" || exit 1 + obsolete_mkdir_used=true + fi + fi + fi + + if test -n "$dir_arg"; then + { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && + { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || + test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 + else + + # Make a couple of temp file names in the proper directory. + dsttmp=${dstdirslash}_inst.$$_ + rmtmp=${dstdirslash}_rm.$$_ + + # Trap to clean up those temp files at exit. + trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 + + # Copy the file name to the temp name. + (umask $cp_umask && + { test -z "$stripcmd" || { + # Create $dsttmp read-write so that cp doesn't create it read-only, + # which would cause strip to fail. + if test -z "$doit"; then + : >"$dsttmp" # No need to fork-exec 'touch'. + else + $doit touch "$dsttmp" + fi + } + } && + $doit_exec $cpprog "$src" "$dsttmp") && + + # and set any options; do chmod last to preserve setuid bits. + # + # If any of these fail, we abort the whole thing. If we want to + # ignore errors from any of these, just make sure not to ignore + # errors from the above "$doit $cpprog $src $dsttmp" command. + # + { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && + { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && + { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && + { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && + + # If -C, don't bother to copy if it wouldn't change the file. + if $copy_on_change && + old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && + new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && + set -f && + set X $old && old=:$2:$4:$5:$6 && + set X $new && new=:$2:$4:$5:$6 && + set +f && + test "$old" = "$new" && + $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 + then + rm -f "$dsttmp" + else + # If $backupsuffix is set, and the file being installed + # already exists, attempt a backup. Don't worry if it fails, + # e.g., if mv doesn't support -f. + if test -n "$backupsuffix" && test -f "$dst"; then + $doit $mvcmd -f "$dst" "$dst$backupsuffix" 2>/dev/null + fi + + # Rename the file to the real destination. + $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || + + # The rename failed, perhaps because mv can't rename something else + # to itself, or perhaps because mv is so ancient that it does not + # support -f. + { + # Now remove or move aside any old file at destination location. + # We try this two ways since rm can't unlink itself on some + # systems and the destination file might be busy for other + # reasons. In this case, the final cleanup might fail but the new + # file should still install successfully. + { + test ! -f "$dst" || + $doit $rmcmd "$dst" 2>/dev/null || + { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && + { $doit $rmcmd "$rmtmp" 2>/dev/null; :; } + } || + { echo "$0: cannot unlink or rename $dst" >&2 + (exit 1); exit 1 + } + } && + + # Now rename the file to the real destination. + $doit $mvcmd "$dsttmp" "$dst" + } + fi || exit 1 + + trap '' 0 + fi +done + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/cares/libcares.pc.cmake b/deps/cares/libcares.pc.cmake new file mode 100644 index 00000000000000..67fd301d0a57ad --- /dev/null +++ b/deps/cares/libcares.pc.cmake @@ -0,0 +1,20 @@ +#*************************************************************************** +# Project ___ __ _ _ __ ___ ___ +# / __|____ / _` | '__/ _ \/ __| +# | (_|_____| (_| | | | __/\__ \ +# \___| \__,_|_| \___||___/ +# +prefix=@CMAKE_INSTALL_PREFIX@ +exec_prefix=${prefix}/@CMAKE_INSTALL_BINDIR@ +libdir=${prefix}/@CMAKE_INSTALL_LIBDIR@ +includedir=${prefix}/@CMAKE_INSTALL_INCLUDEDIR@ + +Name: c-ares +URL: https://c-ares.org/ +Description: asynchronous DNS lookup library +Version: @CARES_VERSION@ +Requires: +Requires.private: +Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@ +Libs: -L${libdir} -lcares +Libs.private: @CARES_PRIVATE_LIBS@ diff --git a/deps/cares/libcares.pc.in b/deps/cares/libcares.pc.in new file mode 100644 index 00000000000000..e7ef5d250725b7 --- /dev/null +++ b/deps/cares/libcares.pc.in @@ -0,0 +1,20 @@ +#*************************************************************************** +# Project ___ __ _ _ __ ___ ___ +# / __|____ / _` | '__/ _ \/ __| +# | (_|_____| (_| | | | __/\__ \ +# \___| \__,_|_| \___||___/ +# +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ +includedir=@includedir@ + +Name: c-ares +URL: http://c-ares.org/ +Description: asynchronous DNS lookup library +Version: @VERSION@ +Requires: +Requires.private: +Cflags: -I${includedir} @CPPFLAG_CARES_STATICLIB@ +Libs: -L${libdir} -lcares +Libs.private: @CARES_PRIVATE_LIBS@ diff --git a/deps/cares/ltmain.sh b/deps/cares/ltmain.sh new file mode 100755 index 00000000000000..21e5e078472631 --- /dev/null +++ b/deps/cares/ltmain.sh @@ -0,0 +1,11251 @@ +#! /bin/sh +## DO NOT EDIT - This file generated from ./build-aux/ltmain.in +## by inline-source v2014-01-03.01 + +# libtool (GNU libtool) 2.4.6 +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit , 1996 + +# Copyright (C) 1996-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, +# if you distribute this file as part of a program or library that +# is built using GNU Libtool, you may include this file under the +# same distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + + +PROGRAM=libtool +PACKAGE=libtool +VERSION="2.4.6 Debian-2.4.6-15" +package_revision=2.4.6 + + +## ------ ## +## Usage. ## +## ------ ## + +# Run './libtool --help' for help with using this script from the +# command line. + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# After configure completes, it has a better idea of some of the +# shell tools we need than the defaults used by the functions shared +# with bootstrap, so set those here where they can still be over- +# ridden by the user, but otherwise take precedence. + +: ${AUTOCONF="autoconf"} +: ${AUTOMAKE="automake"} + + +## -------------------------- ## +## Source external libraries. ## +## -------------------------- ## + +# Much of our low-level functionality needs to be sourced from external +# libraries, which are installed to $pkgauxdir. + +# Set a version string for this script. +scriptversion=2015-01-20.17; # UTC + +# General shell script boiler plate, and helper functions. +# Written by Gary V. Vaughan, 2004 + +# Copyright (C) 2004-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. + +# As a special exception to the GNU General Public License, if you distribute +# this file as part of a program or library that is built using GNU Libtool, +# you may include this file under the same distribution terms that you use +# for the rest of that program. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNES FOR A PARTICULAR PURPOSE. See the GNU +# General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# Evaluate this file near the top of your script to gain access to +# the functions and variables defined here: +# +# . `echo "$0" | ${SED-sed} 's|[^/]*$||'`/build-aux/funclib.sh +# +# If you need to override any of the default environment variable +# settings, do that before evaluating this file. + + +## -------------------- ## +## Shell normalisation. ## +## -------------------- ## + +# Some shells need a little help to be as Bourne compatible as possible. +# Before doing anything else, make sure all that help has been provided! + +DUALCASE=1; export DUALCASE # for MKS sh +if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then : + emulate sh + NULLCMD=: + # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which + # is contrary to our usage. Disable this feature. + alias -g '${1+"$@"}'='"$@"' + setopt NO_GLOB_SUBST +else + case `(set -o) 2>/dev/null` in *posix*) set -o posix ;; esac +fi + +# NLS nuisances: We save the old values in case they are required later. +_G_user_locale= +_G_safe_locale= +for _G_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES +do + eval "if test set = \"\${$_G_var+set}\"; then + save_$_G_var=\$$_G_var + $_G_var=C + export $_G_var + _G_user_locale=\"$_G_var=\\\$save_\$_G_var; \$_G_user_locale\" + _G_safe_locale=\"$_G_var=C; \$_G_safe_locale\" + fi" +done + +# CDPATH. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +# Make sure IFS has a sensible default +sp=' ' +nl=' +' +IFS="$sp $nl" + +# There are apparently some retarded systems that use ';' as a PATH separator! +if test "${PATH_SEPARATOR+set}" != set; then + PATH_SEPARATOR=: + (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { + (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || + PATH_SEPARATOR=';' + } +fi + + + +## ------------------------- ## +## Locate command utilities. ## +## ------------------------- ## + + +# func_executable_p FILE +# ---------------------- +# Check that FILE is an executable regular file. +func_executable_p () +{ + test -f "$1" && test -x "$1" +} + + +# func_path_progs PROGS_LIST CHECK_FUNC [PATH] +# -------------------------------------------- +# Search for either a program that responds to --version with output +# containing "GNU", or else returned by CHECK_FUNC otherwise, by +# trying all the directories in PATH with each of the elements of +# PROGS_LIST. +# +# CHECK_FUNC should accept the path to a candidate program, and +# set $func_check_prog_result if it truncates its output less than +# $_G_path_prog_max characters. +func_path_progs () +{ + _G_progs_list=$1 + _G_check_func=$2 + _G_PATH=${3-"$PATH"} + + _G_path_prog_max=0 + _G_path_prog_found=false + _G_save_IFS=$IFS; IFS=${PATH_SEPARATOR-:} + for _G_dir in $_G_PATH; do + IFS=$_G_save_IFS + test -z "$_G_dir" && _G_dir=. + for _G_prog_name in $_G_progs_list; do + for _exeext in '' .EXE; do + _G_path_prog=$_G_dir/$_G_prog_name$_exeext + func_executable_p "$_G_path_prog" || continue + case `"$_G_path_prog" --version 2>&1` in + *GNU*) func_path_progs_result=$_G_path_prog _G_path_prog_found=: ;; + *) $_G_check_func $_G_path_prog + func_path_progs_result=$func_check_prog_result + ;; + esac + $_G_path_prog_found && break 3 + done + done + done + IFS=$_G_save_IFS + test -z "$func_path_progs_result" && { + echo "no acceptable sed could be found in \$PATH" >&2 + exit 1 + } +} + + +# We want to be able to use the functions in this file before configure +# has figured out where the best binaries are kept, which means we have +# to search for them ourselves - except when the results are already set +# where we skip the searches. + +# Unless the user overrides by setting SED, search the path for either GNU +# sed, or the sed that truncates its output the least. +test -z "$SED" && { + _G_sed_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ + for _G_i in 1 2 3 4 5 6 7; do + _G_sed_script=$_G_sed_script$nl$_G_sed_script + done + echo "$_G_sed_script" 2>/dev/null | sed 99q >conftest.sed + _G_sed_script= + + func_check_prog_sed () + { + _G_path_prog=$1 + + _G_count=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo '' >> conftest.nl + "$_G_path_prog" -f conftest.sed conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "sed gsed" func_check_prog_sed $PATH:/usr/xpg4/bin + rm -f conftest.sed + SED=$func_path_progs_result +} + + +# Unless the user overrides by setting GREP, search the path for either GNU +# grep, or the grep that truncates its output the least. +test -z "$GREP" && { + func_check_prog_grep () + { + _G_path_prog=$1 + + _G_count=0 + _G_path_prog_max=0 + printf 0123456789 >conftest.in + while : + do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo 'GREP' >> conftest.nl + "$_G_path_prog" -e 'GREP$' -e '-(cannot match)-' conftest.out 2>/dev/null || break + diff conftest.out conftest.nl >/dev/null 2>&1 || break + _G_count=`expr $_G_count + 1` + if test "$_G_count" -gt "$_G_path_prog_max"; then + # Best one so far, save it but keep looking for a better one + func_check_prog_result=$_G_path_prog + _G_path_prog_max=$_G_count + fi + # 10*(2^10) chars as input seems more than enough + test 10 -lt "$_G_count" && break + done + rm -f conftest.in conftest.tmp conftest.nl conftest.out + } + + func_path_progs "grep ggrep" func_check_prog_grep $PATH:/usr/xpg4/bin + GREP=$func_path_progs_result +} + + +## ------------------------------- ## +## User overridable command paths. ## +## ------------------------------- ## + +# All uppercase variable names are used for environment variables. These +# variables can be overridden by the user before calling a script that +# uses them if a suitable command of that name is not already available +# in the command search PATH. + +: ${CP="cp -f"} +: ${ECHO="printf %s\n"} +: ${EGREP="$GREP -E"} +: ${FGREP="$GREP -F"} +: ${LN_S="ln -s"} +: ${MAKE="make"} +: ${MKDIR="mkdir"} +: ${MV="mv -f"} +: ${RM="rm -f"} +: ${SHELL="${CONFIG_SHELL-/bin/sh}"} + + +## -------------------- ## +## Useful sed snippets. ## +## -------------------- ## + +sed_dirname='s|/[^/]*$||' +sed_basename='s|^.*/||' + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='s|\([`"$\\]\)|\\\1|g' + +# Same as above, but do not quote variable references. +sed_double_quote_subst='s/\(["`\\]\)/\\\1/g' + +# Sed substitution that turns a string into a regex matching for the +# string literally. +sed_make_literal_regex='s|[].[^$\\*\/]|\\&|g' + +# Sed substitution that converts a w32 file name or path +# that contains forward slashes, into one that contains +# (escaped) backslashes. A very naive implementation. +sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g' + +# Re-'\' parameter expansions in output of sed_double_quote_subst that +# were '\'-ed in input to the same. If an odd number of '\' preceded a +# '$' in input to sed_double_quote_subst, that '$' was protected from +# expansion. Since each input '\' is now two '\'s, look for any number +# of runs of four '\'s followed by two '\'s and then a '$'. '\' that '$'. +_G_bs='\\' +_G_bs2='\\\\' +_G_bs4='\\\\\\\\' +_G_dollar='\$' +sed_double_backslash="\ + s/$_G_bs4/&\\ +/g + s/^$_G_bs2$_G_dollar/$_G_bs&/ + s/\\([^$_G_bs]\\)$_G_bs2$_G_dollar/\\1$_G_bs2$_G_bs$_G_dollar/g + s/\n//g" + + +## ----------------- ## +## Global variables. ## +## ----------------- ## + +# Except for the global variables explicitly listed below, the following +# functions in the '^func_' namespace, and the '^require_' namespace +# variables initialised in the 'Resource management' section, sourcing +# this file will not pollute your global namespace with anything +# else. There's no portable way to scope variables in Bourne shell +# though, so actually running these functions will sometimes place +# results into a variable named after the function, and often use +# temporary variables in the '^_G_' namespace. If you are careful to +# avoid using those namespaces casually in your sourcing script, things +# should continue to work as you expect. And, of course, you can freely +# overwrite any of the functions or variables defined here before +# calling anything to customize them. + +EXIT_SUCCESS=0 +EXIT_FAILURE=1 +EXIT_MISMATCH=63 # $? = 63 is used to indicate version mismatch to missing. +EXIT_SKIP=77 # $? = 77 is used to indicate a skipped test to automake. + +# Allow overriding, eg assuming that you follow the convention of +# putting '$debug_cmd' at the start of all your functions, you can get +# bash to show function call trace with: +# +# debug_cmd='echo "${FUNCNAME[0]} $*" >&2' bash your-script-name +debug_cmd=${debug_cmd-":"} +exit_cmd=: + +# By convention, finish your script with: +# +# exit $exit_status +# +# so that you can set exit_status to non-zero if you want to indicate +# something went wrong during execution without actually bailing out at +# the point of failure. +exit_status=$EXIT_SUCCESS + +# Work around backward compatibility issue on IRIX 6.5. On IRIX 6.4+, sh +# is ksh but when the shell is invoked as "sh" and the current value of +# the _XPG environment variable is not equal to 1 (one), the special +# positional parameter $0, within a function call, is the name of the +# function. +progpath=$0 + +# The name of this program. +progname=`$ECHO "$progpath" |$SED "$sed_basename"` + +# Make sure we have an absolute progpath for reexecution: +case $progpath in + [\\/]*|[A-Za-z]:\\*) ;; + *[\\/]*) + progdir=`$ECHO "$progpath" |$SED "$sed_dirname"` + progdir=`cd "$progdir" && pwd` + progpath=$progdir/$progname + ;; + *) + _G_IFS=$IFS + IFS=${PATH_SEPARATOR-:} + for progdir in $PATH; do + IFS=$_G_IFS + test -x "$progdir/$progname" && break + done + IFS=$_G_IFS + test -n "$progdir" || progdir=`pwd` + progpath=$progdir/$progname + ;; +esac + + +## ----------------- ## +## Standard options. ## +## ----------------- ## + +# The following options affect the operation of the functions defined +# below, and should be set appropriately depending on run-time para- +# meters passed on the command line. + +opt_dry_run=false +opt_quiet=false +opt_verbose=false + +# Categories 'all' and 'none' are always available. Append any others +# you will pass as the first argument to func_warning from your own +# code. +warning_categories= + +# By default, display warnings according to 'opt_warning_types'. Set +# 'warning_func' to ':' to elide all warnings, or func_fatal_error to +# treat the next displayed warning as a fatal error. +warning_func=func_warn_and_continue + +# Set to 'all' to display all warnings, 'none' to suppress all +# warnings, or a space delimited list of some subset of +# 'warning_categories' to display only the listed warnings. +opt_warning_types=all + + +## -------------------- ## +## Resource management. ## +## -------------------- ## + +# This section contains definitions for functions that each ensure a +# particular resource (a file, or a non-empty configuration variable for +# example) is available, and if appropriate to extract default values +# from pertinent package files. Call them using their associated +# 'require_*' variable to ensure that they are executed, at most, once. +# +# It's entirely deliberate that calling these functions can set +# variables that don't obey the namespace limitations obeyed by the rest +# of this file, in order that that they be as useful as possible to +# callers. + + +# require_term_colors +# ------------------- +# Allow display of bold text on terminals that support it. +require_term_colors=func_require_term_colors +func_require_term_colors () +{ + $debug_cmd + + test -t 1 && { + # COLORTERM and USE_ANSI_COLORS environment variables take + # precedence, because most terminfo databases neglect to describe + # whether color sequences are supported. + test -n "${COLORTERM+set}" && : ${USE_ANSI_COLORS="1"} + + if test 1 = "$USE_ANSI_COLORS"; then + # Standard ANSI escape sequences + tc_reset='' + tc_bold=''; tc_standout='' + tc_red=''; tc_green='' + tc_blue=''; tc_cyan='' + else + # Otherwise trust the terminfo database after all. + test -n "`tput sgr0 2>/dev/null`" && { + tc_reset=`tput sgr0` + test -n "`tput bold 2>/dev/null`" && tc_bold=`tput bold` + tc_standout=$tc_bold + test -n "`tput smso 2>/dev/null`" && tc_standout=`tput smso` + test -n "`tput setaf 1 2>/dev/null`" && tc_red=`tput setaf 1` + test -n "`tput setaf 2 2>/dev/null`" && tc_green=`tput setaf 2` + test -n "`tput setaf 4 2>/dev/null`" && tc_blue=`tput setaf 4` + test -n "`tput setaf 5 2>/dev/null`" && tc_cyan=`tput setaf 5` + } + fi + } + + require_term_colors=: +} + + +## ----------------- ## +## Function library. ## +## ----------------- ## + +# This section contains a variety of useful functions to call in your +# scripts. Take note of the portable wrappers for features provided by +# some modern shells, which will fall back to slower equivalents on +# less featureful shells. + + +# func_append VAR VALUE +# --------------------- +# Append VALUE onto the existing contents of VAR. + + # We should try to minimise forks, especially on Windows where they are + # unreasonably slow, so skip the feature probes when bash or zsh are + # being used: + if test set = "${BASH_VERSION+set}${ZSH_VERSION+set}"; then + : ${_G_HAVE_ARITH_OP="yes"} + : ${_G_HAVE_XSI_OPS="yes"} + # The += operator was introduced in bash 3.1 + case $BASH_VERSION in + [12].* | 3.0 | 3.0*) ;; + *) + : ${_G_HAVE_PLUSEQ_OP="yes"} + ;; + esac + fi + + # _G_HAVE_PLUSEQ_OP + # Can be empty, in which case the shell is probed, "yes" if += is + # useable or anything else if it does not work. + test -z "$_G_HAVE_PLUSEQ_OP" \ + && (eval 'x=a; x+=" b"; test "a b" = "$x"') 2>/dev/null \ + && _G_HAVE_PLUSEQ_OP=yes + +if test yes = "$_G_HAVE_PLUSEQ_OP" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_append () + { + $debug_cmd + + eval "$1+=\$2" + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_append () + { + $debug_cmd + + eval "$1=\$$1\$2" + } +fi + + +# func_append_quoted VAR VALUE +# ---------------------------- +# Quote VALUE and append to the end of shell variable VAR, separated +# by a space. +if test yes = "$_G_HAVE_PLUSEQ_OP"; then + eval 'func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1+=\\ \$func_quote_for_eval_result" + }' +else + func_append_quoted () + { + $debug_cmd + + func_quote_for_eval "$2" + eval "$1=\$$1\\ \$func_quote_for_eval_result" + } +fi + + +# func_append_uniq VAR VALUE +# -------------------------- +# Append unique VALUE onto the existing contents of VAR, assuming +# entries are delimited by the first character of VALUE. For example: +# +# func_append_uniq options " --another-option option-argument" +# +# will only append to $options if " --another-option option-argument " +# is not already present somewhere in $options already (note spaces at +# each end implied by leading space in second argument). +func_append_uniq () +{ + $debug_cmd + + eval _G_current_value='`$ECHO $'$1'`' + _G_delim=`expr "$2" : '\(.\)'` + + case $_G_delim$_G_current_value$_G_delim in + *"$2$_G_delim"*) ;; + *) func_append "$@" ;; + esac +} + + +# func_arith TERM... +# ------------------ +# Set func_arith_result to the result of evaluating TERMs. + test -z "$_G_HAVE_ARITH_OP" \ + && (eval 'test 2 = $(( 1 + 1 ))') 2>/dev/null \ + && _G_HAVE_ARITH_OP=yes + +if test yes = "$_G_HAVE_ARITH_OP"; then + eval 'func_arith () + { + $debug_cmd + + func_arith_result=$(( $* )) + }' +else + func_arith () + { + $debug_cmd + + func_arith_result=`expr "$@"` + } +fi + + +# func_basename FILE +# ------------------ +# Set func_basename_result to FILE with everything up to and including +# the last / stripped. +if test yes = "$_G_HAVE_XSI_OPS"; then + # If this shell supports suffix pattern removal, then use it to avoid + # forking. Hide the definitions single quotes in case the shell chokes + # on unsupported syntax... + _b='func_basename_result=${1##*/}' + _d='case $1 in + */*) func_dirname_result=${1%/*}$2 ;; + * ) func_dirname_result=$3 ;; + esac' + +else + # ...otherwise fall back to using sed. + _b='func_basename_result=`$ECHO "$1" |$SED "$sed_basename"`' + _d='func_dirname_result=`$ECHO "$1" |$SED "$sed_dirname"` + if test "X$func_dirname_result" = "X$1"; then + func_dirname_result=$3 + else + func_append func_dirname_result "$2" + fi' +fi + +eval 'func_basename () +{ + $debug_cmd + + '"$_b"' +}' + + +# func_dirname FILE APPEND NONDIR_REPLACEMENT +# ------------------------------------------- +# Compute the dirname of FILE. If nonempty, add APPEND to the result, +# otherwise set result to NONDIR_REPLACEMENT. +eval 'func_dirname () +{ + $debug_cmd + + '"$_d"' +}' + + +# func_dirname_and_basename FILE APPEND NONDIR_REPLACEMENT +# -------------------------------------------------------- +# Perform func_basename and func_dirname in a single function +# call: +# dirname: Compute the dirname of FILE. If nonempty, +# add APPEND to the result, otherwise set result +# to NONDIR_REPLACEMENT. +# value returned in "$func_dirname_result" +# basename: Compute filename of FILE. +# value retuned in "$func_basename_result" +# For efficiency, we do not delegate to the functions above but instead +# duplicate the functionality here. +eval 'func_dirname_and_basename () +{ + $debug_cmd + + '"$_b"' + '"$_d"' +}' + + +# func_echo ARG... +# ---------------- +# Echo program name prefixed message. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_echo_all ARG... +# -------------------- +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + + +# func_echo_infix_1 INFIX ARG... +# ------------------------------ +# Echo program name, followed by INFIX on the first line, with any +# additional lines not showing INFIX. +func_echo_infix_1 () +{ + $debug_cmd + + $require_term_colors + + _G_infix=$1; shift + _G_indent=$_G_infix + _G_prefix="$progname: $_G_infix: " + _G_message=$* + + # Strip color escape sequences before counting printable length + for _G_tc in "$tc_reset" "$tc_bold" "$tc_standout" "$tc_red" "$tc_green" "$tc_blue" "$tc_cyan" + do + test -n "$_G_tc" && { + _G_esc_tc=`$ECHO "$_G_tc" | $SED "$sed_make_literal_regex"` + _G_indent=`$ECHO "$_G_indent" | $SED "s|$_G_esc_tc||g"` + } + done + _G_indent="$progname: "`echo "$_G_indent" | $SED 's|.| |g'`" " ## exclude from sc_prohibit_nested_quotes + + func_echo_infix_1_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_infix_1_IFS + $ECHO "$_G_prefix$tc_bold$_G_line$tc_reset" >&2 + _G_prefix=$_G_indent + done + IFS=$func_echo_infix_1_IFS +} + + +# func_error ARG... +# ----------------- +# Echo program name prefixed message to standard error. +func_error () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 " $tc_standout${tc_red}error$tc_reset" "$*" >&2 +} + + +# func_fatal_error ARG... +# ----------------------- +# Echo program name prefixed message to standard error, and exit. +func_fatal_error () +{ + $debug_cmd + + func_error "$*" + exit $EXIT_FAILURE +} + + +# func_grep EXPRESSION FILENAME +# ----------------------------- +# Check whether EXPRESSION matches any line of FILENAME, without output. +func_grep () +{ + $debug_cmd + + $GREP "$1" "$2" >/dev/null 2>&1 +} + + +# func_len STRING +# --------------- +# Set func_len_result to the length of STRING. STRING may not +# start with a hyphen. + test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_len () + { + $debug_cmd + + func_len_result=${#1} + }' +else + func_len () + { + $debug_cmd + + func_len_result=`expr "$1" : ".*" 2>/dev/null || echo $max_cmd_len` + } +fi + + +# func_mkdir_p DIRECTORY-PATH +# --------------------------- +# Make sure the entire path to DIRECTORY-PATH is available. +func_mkdir_p () +{ + $debug_cmd + + _G_directory_path=$1 + _G_dir_list= + + if test -n "$_G_directory_path" && test : != "$opt_dry_run"; then + + # Protect directory names starting with '-' + case $_G_directory_path in + -*) _G_directory_path=./$_G_directory_path ;; + esac + + # While some portion of DIR does not yet exist... + while test ! -d "$_G_directory_path"; do + # ...make a list in topmost first order. Use a colon delimited + # list incase some portion of path contains whitespace. + _G_dir_list=$_G_directory_path:$_G_dir_list + + # If the last portion added has no slash in it, the list is done + case $_G_directory_path in */*) ;; *) break ;; esac + + # ...otherwise throw away the child directory and loop + _G_directory_path=`$ECHO "$_G_directory_path" | $SED -e "$sed_dirname"` + done + _G_dir_list=`$ECHO "$_G_dir_list" | $SED 's|:*$||'` + + func_mkdir_p_IFS=$IFS; IFS=: + for _G_dir in $_G_dir_list; do + IFS=$func_mkdir_p_IFS + # mkdir can fail with a 'File exist' error if two processes + # try to create one of the directories concurrently. Don't + # stop in that case! + $MKDIR "$_G_dir" 2>/dev/null || : + done + IFS=$func_mkdir_p_IFS + + # Bail out if we (or some other process) failed to create a directory. + test -d "$_G_directory_path" || \ + func_fatal_error "Failed to create '$1'" + fi +} + + +# func_mktempdir [BASENAME] +# ------------------------- +# Make a temporary directory that won't clash with other running +# libtool processes, and avoids race conditions if possible. If +# given, BASENAME is the basename for that directory. +func_mktempdir () +{ + $debug_cmd + + _G_template=${TMPDIR-/tmp}/${1-$progname} + + if test : = "$opt_dry_run"; then + # Return a directory name, but don't create it in dry-run mode + _G_tmpdir=$_G_template-$$ + else + + # If mktemp works, use that first and foremost + _G_tmpdir=`mktemp -d "$_G_template-XXXXXXXX" 2>/dev/null` + + if test ! -d "$_G_tmpdir"; then + # Failing that, at least try and use $RANDOM to avoid a race + _G_tmpdir=$_G_template-${RANDOM-0}$$ + + func_mktempdir_umask=`umask` + umask 0077 + $MKDIR "$_G_tmpdir" + umask $func_mktempdir_umask + fi + + # If we're not in dry-run mode, bomb out on failure + test -d "$_G_tmpdir" || \ + func_fatal_error "cannot create temporary directory '$_G_tmpdir'" + fi + + $ECHO "$_G_tmpdir" +} + + +# func_normal_abspath PATH +# ------------------------ +# Remove doubled-up and trailing slashes, "." path components, +# and cancel out any ".." path components in PATH after making +# it an absolute path. +func_normal_abspath () +{ + $debug_cmd + + # These SED scripts presuppose an absolute path with a trailing slash. + _G_pathcar='s|^/\([^/]*\).*$|\1|' + _G_pathcdr='s|^/[^/]*||' + _G_removedotparts=':dotsl + s|/\./|/|g + t dotsl + s|/\.$|/|' + _G_collapseslashes='s|/\{1,\}|/|g' + _G_finalslash='s|/*$|/|' + + # Start from root dir and reassemble the path. + func_normal_abspath_result= + func_normal_abspath_tpath=$1 + func_normal_abspath_altnamespace= + case $func_normal_abspath_tpath in + "") + # Empty path, that just means $cwd. + func_stripname '' '/' "`pwd`" + func_normal_abspath_result=$func_stripname_result + return + ;; + # The next three entries are used to spot a run of precisely + # two leading slashes without using negated character classes; + # we take advantage of case's first-match behaviour. + ///*) + # Unusual form of absolute path, do nothing. + ;; + //*) + # Not necessarily an ordinary path; POSIX reserves leading '//' + # and for example Cygwin uses it to access remote file shares + # over CIFS/SMB, so we conserve a leading double slash if found. + func_normal_abspath_altnamespace=/ + ;; + /*) + # Absolute path, do nothing. + ;; + *) + # Relative path, prepend $cwd. + func_normal_abspath_tpath=`pwd`/$func_normal_abspath_tpath + ;; + esac + + # Cancel out all the simple stuff to save iterations. We also want + # the path to end with a slash for ease of parsing, so make sure + # there is one (and only one) here. + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_removedotparts" -e "$_G_collapseslashes" -e "$_G_finalslash"` + while :; do + # Processed it all yet? + if test / = "$func_normal_abspath_tpath"; then + # If we ascended to the root using ".." the result may be empty now. + if test -z "$func_normal_abspath_result"; then + func_normal_abspath_result=/ + fi + break + fi + func_normal_abspath_tcomponent=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcar"` + func_normal_abspath_tpath=`$ECHO "$func_normal_abspath_tpath" | $SED \ + -e "$_G_pathcdr"` + # Figure out what to do with it + case $func_normal_abspath_tcomponent in + "") + # Trailing empty path component, ignore it. + ;; + ..) + # Parent dir; strip last assembled component from result. + func_dirname "$func_normal_abspath_result" + func_normal_abspath_result=$func_dirname_result + ;; + *) + # Actual path component, append it. + func_append func_normal_abspath_result "/$func_normal_abspath_tcomponent" + ;; + esac + done + # Restore leading double-slash if one was found on entry. + func_normal_abspath_result=$func_normal_abspath_altnamespace$func_normal_abspath_result +} + + +# func_notquiet ARG... +# -------------------- +# Echo program name prefixed message only when not in quiet mode. +func_notquiet () +{ + $debug_cmd + + $opt_quiet || func_echo ${1+"$@"} + + # A bug in bash halts the script if the last line of a function + # fails when set -e is in force, so we need another command to + # work around that: + : +} + + +# func_relative_path SRCDIR DSTDIR +# -------------------------------- +# Set func_relative_path_result to the relative path from SRCDIR to DSTDIR. +func_relative_path () +{ + $debug_cmd + + func_relative_path_result= + func_normal_abspath "$1" + func_relative_path_tlibdir=$func_normal_abspath_result + func_normal_abspath "$2" + func_relative_path_tbindir=$func_normal_abspath_result + + # Ascend the tree starting from libdir + while :; do + # check if we have found a prefix of bindir + case $func_relative_path_tbindir in + $func_relative_path_tlibdir) + # found an exact match + func_relative_path_tcancelled= + break + ;; + $func_relative_path_tlibdir*) + # found a matching prefix + func_stripname "$func_relative_path_tlibdir" '' "$func_relative_path_tbindir" + func_relative_path_tcancelled=$func_stripname_result + if test -z "$func_relative_path_result"; then + func_relative_path_result=. + fi + break + ;; + *) + func_dirname $func_relative_path_tlibdir + func_relative_path_tlibdir=$func_dirname_result + if test -z "$func_relative_path_tlibdir"; then + # Have to descend all the way to the root! + func_relative_path_result=../$func_relative_path_result + func_relative_path_tcancelled=$func_relative_path_tbindir + break + fi + func_relative_path_result=../$func_relative_path_result + ;; + esac + done + + # Now calculate path; take care to avoid doubling-up slashes. + func_stripname '' '/' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + func_stripname '/' '/' "$func_relative_path_tcancelled" + if test -n "$func_stripname_result"; then + func_append func_relative_path_result "/$func_stripname_result" + fi + + # Normalisation. If bindir is libdir, return '.' else relative path. + if test -n "$func_relative_path_result"; then + func_stripname './' '' "$func_relative_path_result" + func_relative_path_result=$func_stripname_result + fi + + test -n "$func_relative_path_result" || func_relative_path_result=. + + : +} + + +# func_quote_for_eval ARG... +# -------------------------- +# Aesthetically quote ARGs to be evaled later. +# This function returns two values: +# i) func_quote_for_eval_result +# double-quoted, suitable for a subsequent eval +# ii) func_quote_for_eval_unquoted_result +# has all characters that are still active within double +# quotes backslashified. +func_quote_for_eval () +{ + $debug_cmd + + func_quote_for_eval_unquoted_result= + func_quote_for_eval_result= + while test 0 -lt $#; do + case $1 in + *[\\\`\"\$]*) + _G_unquoted_arg=`printf '%s\n' "$1" |$SED "$sed_quote_subst"` ;; + *) + _G_unquoted_arg=$1 ;; + esac + if test -n "$func_quote_for_eval_unquoted_result"; then + func_append func_quote_for_eval_unquoted_result " $_G_unquoted_arg" + else + func_append func_quote_for_eval_unquoted_result "$_G_unquoted_arg" + fi + + case $_G_unquoted_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting, command substitution and variable expansion + # for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_quoted_arg=\"$_G_unquoted_arg\" + ;; + *) + _G_quoted_arg=$_G_unquoted_arg + ;; + esac + + if test -n "$func_quote_for_eval_result"; then + func_append func_quote_for_eval_result " $_G_quoted_arg" + else + func_append func_quote_for_eval_result "$_G_quoted_arg" + fi + shift + done +} + + +# func_quote_for_expand ARG +# ------------------------- +# Aesthetically quote ARG to be evaled later; same as above, +# but do not quote variable references. +func_quote_for_expand () +{ + $debug_cmd + + case $1 in + *[\\\`\"]*) + _G_arg=`$ECHO "$1" | $SED \ + -e "$sed_double_quote_subst" -e "$sed_double_backslash"` ;; + *) + _G_arg=$1 ;; + esac + + case $_G_arg in + # Double-quote args containing shell metacharacters to delay + # word splitting and command substitution for a subsequent eval. + # Many Bourne shells cannot handle close brackets correctly + # in scan sets, so we specify it separately. + *[\[\~\#\^\&\*\(\)\{\}\|\;\<\>\?\'\ \ ]*|*]*|"") + _G_arg=\"$_G_arg\" + ;; + esac + + func_quote_for_expand_result=$_G_arg +} + + +# func_stripname PREFIX SUFFIX NAME +# --------------------------------- +# strip PREFIX and SUFFIX from NAME, and store in func_stripname_result. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_stripname () + { + $debug_cmd + + # pdksh 5.2.14 does not do ${X%$Y} correctly if both X and Y are + # positional parameters, so assign one to ordinary variable first. + func_stripname_result=$3 + func_stripname_result=${func_stripname_result#"$1"} + func_stripname_result=${func_stripname_result%"$2"} + }' +else + func_stripname () + { + $debug_cmd + + case $2 in + .*) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%\\\\$2\$%%"`;; + *) func_stripname_result=`$ECHO "$3" | $SED -e "s%^$1%%" -e "s%$2\$%%"`;; + esac + } +fi + + +# func_show_eval CMD [FAIL_EXP] +# ----------------------------- +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. +func_show_eval () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + func_quote_for_expand "$_G_cmd" + eval "func_notquiet $func_quote_for_expand_result" + + $opt_dry_run || { + eval "$_G_cmd" + _G_status=$? + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_show_eval_locale CMD [FAIL_EXP] +# ------------------------------------ +# Unless opt_quiet is true, then output CMD. Then, if opt_dryrun is +# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP +# is given, then evaluate it. Use the saved locale for evaluation. +func_show_eval_locale () +{ + $debug_cmd + + _G_cmd=$1 + _G_fail_exp=${2-':'} + + $opt_quiet || { + func_quote_for_expand "$_G_cmd" + eval "func_echo $func_quote_for_expand_result" + } + + $opt_dry_run || { + eval "$_G_user_locale + $_G_cmd" + _G_status=$? + eval "$_G_safe_locale" + if test 0 -ne "$_G_status"; then + eval "(exit $_G_status); $_G_fail_exp" + fi + } +} + + +# func_tr_sh +# ---------- +# Turn $1 into a string suitable for a shell variable name. +# Result is stored in $func_tr_sh_result. All characters +# not in the set a-zA-Z0-9_ are replaced with '_'. Further, +# if $1 begins with a digit, a '_' is prepended as well. +func_tr_sh () +{ + $debug_cmd + + case $1 in + [0-9]* | *[!a-zA-Z0-9_]*) + func_tr_sh_result=`$ECHO "$1" | $SED -e 's/^\([0-9]\)/_\1/' -e 's/[^a-zA-Z0-9_]/_/g'` + ;; + * ) + func_tr_sh_result=$1 + ;; + esac +} + + +# func_verbose ARG... +# ------------------- +# Echo program name prefixed message in verbose mode only. +func_verbose () +{ + $debug_cmd + + $opt_verbose && func_echo "$*" + + : +} + + +# func_warn_and_continue ARG... +# ----------------------------- +# Echo program name prefixed warning message to standard error. +func_warn_and_continue () +{ + $debug_cmd + + $require_term_colors + + func_echo_infix_1 "${tc_red}warning$tc_reset" "$*" >&2 +} + + +# func_warning CATEGORY ARG... +# ---------------------------- +# Echo program name prefixed warning message to standard error. Warning +# messages can be filtered according to CATEGORY, where this function +# elides messages where CATEGORY is not listed in the global variable +# 'opt_warning_types'. +func_warning () +{ + $debug_cmd + + # CATEGORY must be in the warning_categories list! + case " $warning_categories " in + *" $1 "*) ;; + *) func_internal_error "invalid warning category '$1'" ;; + esac + + _G_category=$1 + shift + + case " $opt_warning_types " in + *" $_G_category "*) $warning_func ${1+"$@"} ;; + esac +} + + +# func_sort_ver VER1 VER2 +# ----------------------- +# 'sort -V' is not generally available. +# Note this deviates from the version comparison in automake +# in that it treats 1.5 < 1.5.0, and treats 1.4.4a < 1.4-p3a +# but this should suffice as we won't be specifying old +# version formats or redundant trailing .0 in bootstrap.conf. +# If we did want full compatibility then we should probably +# use m4_version_compare from autoconf. +func_sort_ver () +{ + $debug_cmd + + printf '%s\n%s\n' "$1" "$2" \ + | sort -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n -k 6,6n -k 7,7n -k 8,8n -k 9,9n +} + +# func_lt_ver PREV CURR +# --------------------- +# Return true if PREV and CURR are in the correct order according to +# func_sort_ver, otherwise false. Use it like this: +# +# func_lt_ver "$prev_ver" "$proposed_ver" || func_fatal_error "..." +func_lt_ver () +{ + $debug_cmd + + test "x$1" = x`func_sort_ver "$1" "$2" | $SED 1q` +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: +#! /bin/sh + +# Set a version string for this script. +scriptversion=2015-10-07.11; # UTC + +# A portable, pluggable option parser for Bourne shell. +# Written by Gary V. Vaughan, 2010 + +# Copyright (C) 2010-2015 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# Please report bugs or propose patches to gary@gnu.org. + + +## ------ ## +## Usage. ## +## ------ ## + +# This file is a library for parsing options in your shell scripts along +# with assorted other useful supporting features that you can make use +# of too. +# +# For the simplest scripts you might need only: +# +# #!/bin/sh +# . relative/path/to/funclib.sh +# . relative/path/to/options-parser +# scriptversion=1.0 +# func_options ${1+"$@"} +# eval set dummy "$func_options_result"; shift +# ...rest of your script... +# +# In order for the '--version' option to work, you will need to have a +# suitably formatted comment like the one at the top of this file +# starting with '# Written by ' and ending with '# warranty; '. +# +# For '-h' and '--help' to work, you will also need a one line +# description of your script's purpose in a comment directly above the +# '# Written by ' line, like the one at the top of this file. +# +# The default options also support '--debug', which will turn on shell +# execution tracing (see the comment above debug_cmd below for another +# use), and '--verbose' and the func_verbose function to allow your script +# to display verbose messages only when your user has specified +# '--verbose'. +# +# After sourcing this file, you can plug processing for additional +# options by amending the variables from the 'Configuration' section +# below, and following the instructions in the 'Option parsing' +# section further down. + +## -------------- ## +## Configuration. ## +## -------------- ## + +# You should override these variables in your script after sourcing this +# file so that they reflect the customisations you have added to the +# option parser. + +# The usage line for option parsing errors and the start of '-h' and +# '--help' output messages. You can embed shell variables for delayed +# expansion at the time the message is displayed, but you will need to +# quote other shell meta-characters carefully to prevent them being +# expanded when the contents are evaled. +usage='$progpath [OPTION]...' + +# Short help message in response to '-h' and '--help'. Add to this or +# override it after sourcing this library to reflect the full set of +# options your script accepts. +usage_message="\ + --debug enable verbose shell tracing + -W, --warnings=CATEGORY + report the warnings falling in CATEGORY [all] + -v, --verbose verbosely report processing + --version print version information and exit + -h, --help print short or long help message and exit +" + +# Additional text appended to 'usage_message' in response to '--help'. +long_help_message=" +Warning categories include: + 'all' show all warnings + 'none' turn off all the warnings + 'error' warnings are treated as fatal errors" + +# Help message printed before fatal option parsing errors. +fatal_help="Try '\$progname --help' for more information." + + + +## ------------------------- ## +## Hook function management. ## +## ------------------------- ## + +# This section contains functions for adding, removing, and running hooks +# to the main code. A hook is just a named list of of function, that can +# be run in order later on. + +# func_hookable FUNC_NAME +# ----------------------- +# Declare that FUNC_NAME will run hooks added with +# 'func_add_hook FUNC_NAME ...'. +func_hookable () +{ + $debug_cmd + + func_append hookable_fns " $1" +} + + +# func_add_hook FUNC_NAME HOOK_FUNC +# --------------------------------- +# Request that FUNC_NAME call HOOK_FUNC before it returns. FUNC_NAME must +# first have been declared "hookable" by a call to 'func_hookable'. +func_add_hook () +{ + $debug_cmd + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not accept hook functions." ;; + esac + + eval func_append ${1}_hooks '" $2"' +} + + +# func_remove_hook FUNC_NAME HOOK_FUNC +# ------------------------------------ +# Remove HOOK_FUNC from the list of functions called by FUNC_NAME. +func_remove_hook () +{ + $debug_cmd + + eval ${1}_hooks='`$ECHO "\$'$1'_hooks" |$SED "s| '$2'||"`' +} + + +# func_run_hooks FUNC_NAME [ARG]... +# --------------------------------- +# Run all hook functions registered to FUNC_NAME. +# It is assumed that the list of hook functions contains nothing more +# than a whitespace-delimited list of legal shell function names, and +# no effort is wasted trying to catch shell meta-characters or preserve +# whitespace. +func_run_hooks () +{ + $debug_cmd + + _G_rc_run_hooks=false + + case " $hookable_fns " in + *" $1 "*) ;; + *) func_fatal_error "'$1' does not support hook funcions.n" ;; + esac + + eval _G_hook_fns=\$$1_hooks; shift + + for _G_hook in $_G_hook_fns; do + if eval $_G_hook '"$@"'; then + # store returned options list back into positional + # parameters for next 'cmd' execution. + eval _G_hook_result=\$${_G_hook}_result + eval set dummy "$_G_hook_result"; shift + _G_rc_run_hooks=: + fi + done + + $_G_rc_run_hooks && func_run_hooks_result=$_G_hook_result +} + + + +## --------------- ## +## Option parsing. ## +## --------------- ## + +# In order to add your own option parsing hooks, you must accept the +# full positional parameter list in your hook function, you may remove/edit +# any options that you action, and then pass back the remaining unprocessed +# options in '_result', escaped suitably for +# 'eval'. In this case you also must return $EXIT_SUCCESS to let the +# hook's caller know that it should pay attention to +# '_result'. Returning $EXIT_FAILURE signalizes that +# arguments are left untouched by the hook and therefore caller will ignore the +# result variable. +# +# Like this: +# +# my_options_prep () +# { +# $debug_cmd +# +# # Extend the existing usage message. +# usage_message=$usage_message' +# -s, --silent don'\''t print informational messages +# ' +# # No change in '$@' (ignored completely by this hook). There is +# # no need to do the equivalent (but slower) action: +# # func_quote_for_eval ${1+"$@"} +# # my_options_prep_result=$func_quote_for_eval_result +# false +# } +# func_add_hook func_options_prep my_options_prep +# +# +# my_silent_option () +# { +# $debug_cmd +# +# args_changed=false +# +# # Note that for efficiency, we parse as many options as we can +# # recognise in a loop before passing the remainder back to the +# # caller on the first unrecognised argument we encounter. +# while test $# -gt 0; do +# opt=$1; shift +# case $opt in +# --silent|-s) opt_silent=: +# args_changed=: +# ;; +# # Separate non-argument short options: +# -s*) func_split_short_opt "$_G_opt" +# set dummy "$func_split_short_opt_name" \ +# "-$func_split_short_opt_arg" ${1+"$@"} +# shift +# args_changed=: +# ;; +# *) # Make sure the first unrecognised option "$_G_opt" +# # is added back to "$@", we could need that later +# # if $args_changed is true. +# set dummy "$_G_opt" ${1+"$@"}; shift; break ;; +# esac +# done +# +# if $args_changed; then +# func_quote_for_eval ${1+"$@"} +# my_silent_option_result=$func_quote_for_eval_result +# fi +# +# $args_changed +# } +# func_add_hook func_parse_options my_silent_option +# +# +# my_option_validation () +# { +# $debug_cmd +# +# $opt_silent && $opt_verbose && func_fatal_help "\ +# '--silent' and '--verbose' options are mutually exclusive." +# +# false +# } +# func_add_hook func_validate_options my_option_validation +# +# You'll also need to manually amend $usage_message to reflect the extra +# options you parse. It's preferable to append if you can, so that +# multiple option parsing hooks can be added safely. + + +# func_options_finish [ARG]... +# ---------------------------- +# Finishing the option parse loop (call 'func_options' hooks ATM). +func_options_finish () +{ + $debug_cmd + + _G_func_options_finish_exit=false + if func_run_hooks func_options ${1+"$@"}; then + func_options_finish_result=$func_run_hooks_result + _G_func_options_finish_exit=: + fi + + $_G_func_options_finish_exit +} + + +# func_options [ARG]... +# --------------------- +# All the functions called inside func_options are hookable. See the +# individual implementations for details. +func_hookable func_options +func_options () +{ + $debug_cmd + + _G_rc_options=false + + for my_func in options_prep parse_options validate_options options_finish + do + if eval func_$my_func '${1+"$@"}'; then + eval _G_res_var='$'"func_${my_func}_result" + eval set dummy "$_G_res_var" ; shift + _G_rc_options=: + fi + done + + # Save modified positional parameters for caller. As a top-level + # options-parser function we always need to set the 'func_options_result' + # variable (regardless the $_G_rc_options value). + if $_G_rc_options; then + func_options_result=$_G_res_var + else + func_quote_for_eval ${1+"$@"} + func_options_result=$func_quote_for_eval_result + fi + + $_G_rc_options +} + + +# func_options_prep [ARG]... +# -------------------------- +# All initialisations required before starting the option parse loop. +# Note that when calling hook functions, we pass through the list of +# positional parameters. If a hook function modifies that list, and +# needs to propagate that back to rest of this script, then the complete +# modified list must be put in 'func_run_hooks_result' before +# returning $EXIT_SUCCESS (otherwise $EXIT_FAILURE is returned). +func_hookable func_options_prep +func_options_prep () +{ + $debug_cmd + + # Option defaults: + opt_verbose=false + opt_warning_types= + + _G_rc_options_prep=false + if func_run_hooks func_options_prep ${1+"$@"}; then + _G_rc_options_prep=: + # save modified positional parameters for caller + func_options_prep_result=$func_run_hooks_result + fi + + $_G_rc_options_prep +} + + +# func_parse_options [ARG]... +# --------------------------- +# The main option parsing loop. +func_hookable func_parse_options +func_parse_options () +{ + $debug_cmd + + func_parse_options_result= + + _G_rc_parse_options=false + # this just eases exit handling + while test $# -gt 0; do + # Defer to hook functions for initial option parsing, so they + # get priority in the event of reusing an option name. + if func_run_hooks func_parse_options ${1+"$@"}; then + eval set dummy "$func_run_hooks_result"; shift + _G_rc_parse_options=: + fi + + # Break out of the loop if we already parsed every option. + test $# -gt 0 || break + + _G_match_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --debug|-x) debug_cmd='set -x' + func_echo "enabling shell trace mode" + $debug_cmd + ;; + + --no-warnings|--no-warning|--no-warn) + set dummy --warnings none ${1+"$@"} + shift + ;; + + --warnings|--warning|-W) + if test $# = 0 && func_missing_arg $_G_opt; then + _G_rc_parse_options=: + break + fi + case " $warning_categories $1" in + *" $1 "*) + # trailing space prevents matching last $1 above + func_append_uniq opt_warning_types " $1" + ;; + *all) + opt_warning_types=$warning_categories + ;; + *none) + opt_warning_types=none + warning_func=: + ;; + *error) + opt_warning_types=$warning_categories + warning_func=func_fatal_error + ;; + *) + func_fatal_error \ + "unsupported warning category: '$1'" + ;; + esac + shift + ;; + + --verbose|-v) opt_verbose=: ;; + --version) func_version ;; + -\?|-h) func_usage ;; + --help) func_help ;; + + # Separate optargs to long options (plugins may need this): + --*=*) func_split_equals "$_G_opt" + set dummy "$func_split_equals_lhs" \ + "$func_split_equals_rhs" ${1+"$@"} + shift + ;; + + # Separate optargs to short options: + -W*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + # Separate non-argument short options: + -\?*|-h*|-v*|-x*) + func_split_short_opt "$_G_opt" + set dummy "$func_split_short_opt_name" \ + "-$func_split_short_opt_arg" ${1+"$@"} + shift + ;; + + --) _G_rc_parse_options=: ; break ;; + -*) func_fatal_help "unrecognised option: '$_G_opt'" ;; + *) set dummy "$_G_opt" ${1+"$@"}; shift + _G_match_parse_options=false + break + ;; + esac + + $_G_match_parse_options && _G_rc_parse_options=: + done + + + if $_G_rc_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + func_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_parse_options +} + + +# func_validate_options [ARG]... +# ------------------------------ +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +func_hookable func_validate_options +func_validate_options () +{ + $debug_cmd + + _G_rc_validate_options=false + + # Display all warnings if -W was not given. + test -n "$opt_warning_types" || opt_warning_types=" $warning_categories" + + if func_run_hooks func_validate_options ${1+"$@"}; then + # save modified positional parameters for caller + func_validate_options_result=$func_run_hooks_result + _G_rc_validate_options=: + fi + + # Bail if the options were screwed! + $exit_cmd $EXIT_FAILURE + + $_G_rc_validate_options +} + + + +## ----------------- ## +## Helper functions. ## +## ----------------- ## + +# This section contains the helper functions used by the rest of the +# hookable option parser framework in ascii-betical order. + + +# func_fatal_help ARG... +# ---------------------- +# Echo program name prefixed message to standard error, followed by +# a help hint, and exit. +func_fatal_help () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + eval \$ECHO \""$fatal_help"\" + func_error ${1+"$@"} + exit $EXIT_FAILURE +} + + +# func_help +# --------- +# Echo long help message to standard output and exit. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message" + exit 0 +} + + +# func_missing_arg ARGNAME +# ------------------------ +# Echo program name prefixed message to standard error and set global +# exit_cmd. +func_missing_arg () +{ + $debug_cmd + + func_error "Missing argument for '$1'." + exit_cmd=exit +} + + +# func_split_equals STRING +# ------------------------ +# Set func_split_equals_lhs and func_split_equals_rhs shell variables after +# splitting STRING at the '=' sign. +test -z "$_G_HAVE_XSI_OPS" \ + && (eval 'x=a/b/c; + test 5aa/bb/cc = "${#x}${x%%/*}${x%/*}${x#*/}${x##*/}"') 2>/dev/null \ + && _G_HAVE_XSI_OPS=yes + +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=${1%%=*} + func_split_equals_rhs=${1#*=} + test "x$func_split_equals_lhs" = "x$1" \ + && func_split_equals_rhs= + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_equals () + { + $debug_cmd + + func_split_equals_lhs=`expr "x$1" : 'x\([^=]*\)'` + func_split_equals_rhs= + test "x$func_split_equals_lhs" = "x$1" \ + || func_split_equals_rhs=`expr "x$1" : 'x[^=]*=\(.*\)$'` + } +fi #func_split_equals + + +# func_split_short_opt SHORTOPT +# ----------------------------- +# Set func_split_short_opt_name and func_split_short_opt_arg shell +# variables after splitting SHORTOPT after the 2nd character. +if test yes = "$_G_HAVE_XSI_OPS" +then + # This is an XSI compatible shell, allowing a faster implementation... + eval 'func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_arg=${1#??} + func_split_short_opt_name=${1%"$func_split_short_opt_arg"} + }' +else + # ...otherwise fall back to using expr, which is often a shell builtin. + func_split_short_opt () + { + $debug_cmd + + func_split_short_opt_name=`expr "x$1" : 'x-\(.\)'` + func_split_short_opt_arg=`expr "x$1" : 'x-.\(.*\)$'` + } +fi #func_split_short_opt + + +# func_usage +# ---------- +# Echo short help message to standard output and exit. +func_usage () +{ + $debug_cmd + + func_usage_message + $ECHO "Run '$progname --help |${PAGER-more}' for full usage" + exit 0 +} + + +# func_usage_message +# ------------------ +# Echo short help message to standard output. +func_usage_message () +{ + $debug_cmd + + eval \$ECHO \""Usage: $usage"\" + echo + $SED -n 's|^# || + /^Written by/{ + x;p;x + } + h + /^Written by/q' < "$progpath" + echo + eval \$ECHO \""$usage_message"\" +} + + +# func_version +# ------------ +# Echo version message to standard output and exit. +func_version () +{ + $debug_cmd + + printf '%s\n' "$progname $scriptversion" + $SED -n ' + /(C)/!b go + :more + /\./!{ + N + s|\n# | | + b more + } + :go + /^# Written by /,/# warranty; / { + s|^# || + s|^# *$|| + s|\((C)\)[ 0-9,-]*[ ,-]\([1-9][0-9]* \)|\1 \2| + p + } + /^# Written by / { + s|^# || + p + } + /^warranty; /q' < "$progpath" + + exit $? +} + + +# Local variables: +# mode: shell-script +# sh-indentation: 2 +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-pattern: "10/scriptversion=%:y-%02m-%02d.%02H; # UTC" +# time-stamp-time-zone: "UTC" +# End: + +# Set a version string. +scriptversion='(GNU libtool) 2.4.6' + + +# func_echo ARG... +# ---------------- +# Libtool also displays the current mode in messages, so override +# funclib.sh func_echo with this custom definition. +func_echo () +{ + $debug_cmd + + _G_message=$* + + func_echo_IFS=$IFS + IFS=$nl + for _G_line in $_G_message; do + IFS=$func_echo_IFS + $ECHO "$progname${opt_mode+: $opt_mode}: $_G_line" + done + IFS=$func_echo_IFS +} + + +# func_warning ARG... +# ------------------- +# Libtool warnings are not categorized, so override funclib.sh +# func_warning with this simpler definition. +func_warning () +{ + $debug_cmd + + $warning_func ${1+"$@"} +} + + +## ---------------- ## +## Options parsing. ## +## ---------------- ## + +# Hook in the functions to make sure our own options are parsed during +# the option parsing loop. + +usage='$progpath [OPTION]... [MODE-ARG]...' + +# Short help message in response to '-h'. +usage_message="Options: + --config show all configuration variables + --debug enable verbose shell tracing + -n, --dry-run display commands without modifying any files + --features display basic configuration information and exit + --mode=MODE use operation mode MODE + --no-warnings equivalent to '-Wnone' + --preserve-dup-deps don't remove duplicate dependency libraries + --quiet, --silent don't print informational messages + --tag=TAG use configuration variables from tag TAG + -v, --verbose print more informational messages than default + --version print version information + -W, --warnings=CATEGORY report the warnings falling in CATEGORY [all] + -h, --help, --help-all print short, long, or detailed help message +" + +# Additional text appended to 'usage_message' in response to '--help'. +func_help () +{ + $debug_cmd + + func_usage_message + $ECHO "$long_help_message + +MODE must be one of the following: + + clean remove files from the build directory + compile compile a source file into a libtool object + execute automatically set library path, then run a program + finish complete the installation of libtool libraries + install install libraries or executables + link create a library or an executable + uninstall remove libraries from an installed directory + +MODE-ARGS vary depending on the MODE. When passed as first option, +'--mode=MODE' may be abbreviated as 'MODE' or a unique abbreviation of that. +Try '$progname --help --mode=MODE' for a more detailed description of MODE. + +When reporting a bug, please describe a test case to reproduce it and +include the following information: + + host-triplet: $host + shell: $SHELL + compiler: $LTCC + compiler flags: $LTCFLAGS + linker: $LD (gnu? $with_gnu_ld) + version: $progname $scriptversion Debian-2.4.6-15 + automake: `($AUTOMAKE --version) 2>/dev/null |$SED 1q` + autoconf: `($AUTOCONF --version) 2>/dev/null |$SED 1q` + +Report bugs to . +GNU libtool home page: . +General help using GNU software: ." + exit 0 +} + + +# func_lo2o OBJECT-NAME +# --------------------- +# Transform OBJECT-NAME from a '.lo' suffix to the platform specific +# object suffix. + +lo2o=s/\\.lo\$/.$objext/ +o2lo=s/\\.$objext\$/.lo/ + +if test yes = "$_G_HAVE_XSI_OPS"; then + eval 'func_lo2o () + { + case $1 in + *.lo) func_lo2o_result=${1%.lo}.$objext ;; + * ) func_lo2o_result=$1 ;; + esac + }' + + # func_xform LIBOBJ-OR-SOURCE + # --------------------------- + # Transform LIBOBJ-OR-SOURCE from a '.o' or '.c' (or otherwise) + # suffix to a '.lo' libtool-object suffix. + eval 'func_xform () + { + func_xform_result=${1%.*}.lo + }' +else + # ...otherwise fall back to using sed. + func_lo2o () + { + func_lo2o_result=`$ECHO "$1" | $SED "$lo2o"` + } + + func_xform () + { + func_xform_result=`$ECHO "$1" | $SED 's|\.[^.]*$|.lo|'` + } +fi + + +# func_fatal_configuration ARG... +# ------------------------------- +# Echo program name prefixed message to standard error, followed by +# a configuration failure hint, and exit. +func_fatal_configuration () +{ + func__fatal_error ${1+"$@"} \ + "See the $PACKAGE documentation for more information." \ + "Fatal configuration error." +} + + +# func_config +# ----------- +# Display the configuration for all the tags in this script. +func_config () +{ + re_begincf='^# ### BEGIN LIBTOOL' + re_endcf='^# ### END LIBTOOL' + + # Default configuration. + $SED "1,/$re_begincf CONFIG/d;/$re_endcf CONFIG/,\$d" < "$progpath" + + # Now print the configurations for the tags. + for tagname in $taglist; do + $SED -n "/$re_begincf TAG CONFIG: $tagname\$/,/$re_endcf TAG CONFIG: $tagname\$/p" < "$progpath" + done + + exit $? +} + + +# func_features +# ------------- +# Display the features supported by this script. +func_features () +{ + echo "host: $host" + if test yes = "$build_libtool_libs"; then + echo "enable shared libraries" + else + echo "disable shared libraries" + fi + if test yes = "$build_old_libs"; then + echo "enable static libraries" + else + echo "disable static libraries" + fi + + exit $? +} + + +# func_enable_tag TAGNAME +# ----------------------- +# Verify that TAGNAME is valid, and either flag an error and exit, or +# enable the TAGNAME tag. We also add TAGNAME to the global $taglist +# variable here. +func_enable_tag () +{ + # Global variable: + tagname=$1 + + re_begincf="^# ### BEGIN LIBTOOL TAG CONFIG: $tagname\$" + re_endcf="^# ### END LIBTOOL TAG CONFIG: $tagname\$" + sed_extractcf=/$re_begincf/,/$re_endcf/p + + # Validate tagname. + case $tagname in + *[!-_A-Za-z0-9,/]*) + func_fatal_error "invalid tag name: $tagname" + ;; + esac + + # Don't test for the "default" C tag, as we know it's + # there but not specially marked. + case $tagname in + CC) ;; + *) + if $GREP "$re_begincf" "$progpath" >/dev/null 2>&1; then + taglist="$taglist $tagname" + + # Evaluate the configuration. Be careful to quote the path + # and the sed script, to avoid splitting on whitespace, but + # also don't use non-portable quotes within backquotes within + # quotes we have to do it in 2 steps: + extractedcf=`$SED -n -e "$sed_extractcf" < "$progpath"` + eval "$extractedcf" + else + func_error "ignoring unknown tag $tagname" + fi + ;; + esac +} + + +# func_check_version_match +# ------------------------ +# Ensure that we are using m4 macros, and libtool script from the same +# release of libtool. +func_check_version_match () +{ + if test "$package_revision" != "$macro_revision"; then + if test "$VERSION" != "$macro_version"; then + if test -z "$macro_version"; then + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from an older release. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, but the +$progname: definition of this LT_INIT comes from $PACKAGE $macro_version. +$progname: You should recreate aclocal.m4 with macros from $PACKAGE $VERSION +$progname: and run autoconf again. +_LT_EOF + fi + else + cat >&2 <<_LT_EOF +$progname: Version mismatch error. This is $PACKAGE $VERSION, revision $package_revision, +$progname: but the definition of this LT_INIT comes from revision $macro_revision. +$progname: You should recreate aclocal.m4 with macros from revision $package_revision +$progname: of $PACKAGE $VERSION and run autoconf again. +_LT_EOF + fi + + exit $EXIT_MISMATCH + fi +} + + +# libtool_options_prep [ARG]... +# ----------------------------- +# Preparation for options parsed by libtool. +libtool_options_prep () +{ + $debug_mode + + # Option defaults: + opt_config=false + opt_dlopen= + opt_dry_run=false + opt_help=false + opt_mode= + opt_preserve_dup_deps=false + opt_quiet=false + + nonopt= + preserve_args= + + _G_rc_lt_options_prep=: + + # Shorthand for --mode=foo, only valid as the first argument + case $1 in + clean|clea|cle|cl) + shift; set dummy --mode clean ${1+"$@"}; shift + ;; + compile|compil|compi|comp|com|co|c) + shift; set dummy --mode compile ${1+"$@"}; shift + ;; + execute|execut|execu|exec|exe|ex|e) + shift; set dummy --mode execute ${1+"$@"}; shift + ;; + finish|finis|fini|fin|fi|f) + shift; set dummy --mode finish ${1+"$@"}; shift + ;; + install|instal|insta|inst|ins|in|i) + shift; set dummy --mode install ${1+"$@"}; shift + ;; + link|lin|li|l) + shift; set dummy --mode link ${1+"$@"}; shift + ;; + uninstall|uninstal|uninsta|uninst|unins|unin|uni|un|u) + shift; set dummy --mode uninstall ${1+"$@"}; shift + ;; + *) + _G_rc_lt_options_prep=false + ;; + esac + + if $_G_rc_lt_options_prep; then + # Pass back the list of options. + func_quote_for_eval ${1+"$@"} + libtool_options_prep_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_options_prep +} +func_add_hook func_options_prep libtool_options_prep + + +# libtool_parse_options [ARG]... +# --------------------------------- +# Provide handling for libtool specific options. +libtool_parse_options () +{ + $debug_cmd + + _G_rc_lt_parse_options=false + + # Perform our own loop to consume as many options as possible in + # each iteration. + while test $# -gt 0; do + _G_match_lt_parse_options=: + _G_opt=$1 + shift + case $_G_opt in + --dry-run|--dryrun|-n) + opt_dry_run=: + ;; + + --config) func_config ;; + + --dlopen|-dlopen) + opt_dlopen="${opt_dlopen+$opt_dlopen +}$1" + shift + ;; + + --preserve-dup-deps) + opt_preserve_dup_deps=: ;; + + --features) func_features ;; + + --finish) set dummy --mode finish ${1+"$@"}; shift ;; + + --help) opt_help=: ;; + + --help-all) opt_help=': help-all' ;; + + --mode) test $# = 0 && func_missing_arg $_G_opt && break + opt_mode=$1 + case $1 in + # Valid mode arguments: + clean|compile|execute|finish|install|link|relink|uninstall) ;; + + # Catch anything else as an error + *) func_error "invalid argument for $_G_opt" + exit_cmd=exit + break + ;; + esac + shift + ;; + + --no-silent|--no-quiet) + opt_quiet=false + func_append preserve_args " $_G_opt" + ;; + + --no-warnings|--no-warning|--no-warn) + opt_warning=false + func_append preserve_args " $_G_opt" + ;; + + --no-verbose) + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --silent|--quiet) + opt_quiet=: + opt_verbose=false + func_append preserve_args " $_G_opt" + ;; + + --tag) test $# = 0 && func_missing_arg $_G_opt && break + opt_tag=$1 + func_append preserve_args " $_G_opt $1" + func_enable_tag "$1" + shift + ;; + + --verbose|-v) opt_quiet=false + opt_verbose=: + func_append preserve_args " $_G_opt" + ;; + + # An option not handled by this hook function: + *) set dummy "$_G_opt" ${1+"$@"} ; shift + _G_match_lt_parse_options=false + break + ;; + esac + $_G_match_lt_parse_options && _G_rc_lt_parse_options=: + done + + if $_G_rc_lt_parse_options; then + # save modified positional parameters for caller + func_quote_for_eval ${1+"$@"} + libtool_parse_options_result=$func_quote_for_eval_result + fi + + $_G_rc_lt_parse_options +} +func_add_hook func_parse_options libtool_parse_options + + + +# libtool_validate_options [ARG]... +# --------------------------------- +# Perform any sanity checks on option settings and/or unconsumed +# arguments. +libtool_validate_options () +{ + # save first non-option argument + if test 0 -lt $#; then + nonopt=$1 + shift + fi + + # preserve --debug + test : = "$debug_cmd" || func_append preserve_args " --debug" + + case $host in + # Solaris2 added to fix http://debbugs.gnu.org/cgi/bugreport.cgi?bug=16452 + # see also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59788 + *cygwin* | *mingw* | *pw32* | *cegcc* | *solaris2* | *os2*) + # don't eliminate duplications in $postdeps and $predeps + opt_duplicate_compiler_generated_deps=: + ;; + *) + opt_duplicate_compiler_generated_deps=$opt_preserve_dup_deps + ;; + esac + + $opt_help || { + # Sanity checks first: + func_check_version_match + + test yes != "$build_libtool_libs" \ + && test yes != "$build_old_libs" \ + && func_fatal_configuration "not configured to build any kind of library" + + # Darwin sucks + eval std_shrext=\"$shrext_cmds\" + + # Only execute mode is allowed to have -dlopen flags. + if test -n "$opt_dlopen" && test execute != "$opt_mode"; then + func_error "unrecognized option '-dlopen'" + $ECHO "$help" 1>&2 + exit $EXIT_FAILURE + fi + + # Change the help message to a mode-specific one. + generic_help=$help + help="Try '$progname --help --mode=$opt_mode' for more information." + } + + # Pass back the unparsed argument list + func_quote_for_eval ${1+"$@"} + libtool_validate_options_result=$func_quote_for_eval_result +} +func_add_hook func_validate_options libtool_validate_options + + +# Process options as early as possible so that --help and --version +# can return quickly. +func_options ${1+"$@"} +eval set dummy "$func_options_result"; shift + + + +## ----------- ## +## Main. ## +## ----------- ## + +magic='%%%MAGIC variable%%%' +magic_exe='%%%MAGIC EXE variable%%%' + +# Global variables. +extracted_archives= +extracted_serial=0 + +# If this variable is set in any of the actions, the command in it +# will be execed at the end. This prevents here-documents from being +# left over by shells. +exec_cmd= + + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +$1 +_LTECHO_EOF' +} + +# func_generated_by_libtool +# True iff stdin has been generated by Libtool. This function is only +# a basic sanity check; it will hardly flush out determined imposters. +func_generated_by_libtool_p () +{ + $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1 +} + +# func_lalib_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_lalib_p () +{ + test -f "$1" && + $SED -e 4q "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_lalib_unsafe_p file +# True iff FILE is a libtool '.la' library or '.lo' object file. +# This function implements the same check as func_lalib_p without +# resorting to external programs. To this end, it redirects stdin and +# closes it afterwards, without saving the original file descriptor. +# As a safety measure, use it only where a negative result would be +# fatal anyway. Works if 'file' does not exist. +func_lalib_unsafe_p () +{ + lalib_p=no + if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then + for lalib_p_l in 1 2 3 4 + do + read lalib_p_line + case $lalib_p_line in + \#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;; + esac + done + exec 0<&5 5<&- + fi + test yes = "$lalib_p" +} + +# func_ltwrapper_script_p file +# True iff FILE is a libtool wrapper script +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_script_p () +{ + test -f "$1" && + $lt_truncate_bin < "$1" 2>/dev/null | func_generated_by_libtool_p +} + +# func_ltwrapper_executable_p file +# True iff FILE is a libtool wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_executable_p () +{ + func_ltwrapper_exec_suffix= + case $1 in + *.exe) ;; + *) func_ltwrapper_exec_suffix=.exe ;; + esac + $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1 +} + +# func_ltwrapper_scriptname file +# Assumes file is an ltwrapper_executable +# uses $file to determine the appropriate filename for a +# temporary ltwrapper_script. +func_ltwrapper_scriptname () +{ + func_dirname_and_basename "$1" "" "." + func_stripname '' '.exe' "$func_basename_result" + func_ltwrapper_scriptname_result=$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper +} + +# func_ltwrapper_p file +# True iff FILE is a libtool wrapper script or wrapper executable +# This function is only a basic sanity check; it will hardly flush out +# determined imposters. +func_ltwrapper_p () +{ + func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1" +} + + +# func_execute_cmds commands fail_cmd +# Execute tilde-delimited COMMANDS. +# If FAIL_CMD is given, eval that upon failure. +# FAIL_CMD may read-access the current command in variable CMD! +func_execute_cmds () +{ + $debug_cmd + + save_ifs=$IFS; IFS='~' + for cmd in $1; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + func_show_eval "$cmd" "${2-:}" + done + IFS=$save_ifs +} + + +# func_source file +# Source FILE, adding directory component if necessary. +# Note that it is not necessary on cygwin/mingw to append a dot to +# FILE even if both FILE and FILE.exe exist: automatic-append-.exe +# behavior happens only for exec(3), not for open(2)! Also, sourcing +# 'FILE.' does not work on cygwin managed mounts. +func_source () +{ + $debug_cmd + + case $1 in + */* | *\\*) . "$1" ;; + *) . "./$1" ;; + esac +} + + +# func_resolve_sysroot PATH +# Replace a leading = in PATH with a sysroot. Store the result into +# func_resolve_sysroot_result +func_resolve_sysroot () +{ + func_resolve_sysroot_result=$1 + case $func_resolve_sysroot_result in + =*) + func_stripname '=' '' "$func_resolve_sysroot_result" + func_resolve_sysroot_result=$lt_sysroot$func_stripname_result + ;; + esac +} + +# func_replace_sysroot PATH +# If PATH begins with the sysroot, replace it with = and +# store the result into func_replace_sysroot_result. +func_replace_sysroot () +{ + case $lt_sysroot:$1 in + ?*:"$lt_sysroot"*) + func_stripname "$lt_sysroot" '' "$1" + func_replace_sysroot_result='='$func_stripname_result + ;; + *) + # Including no sysroot. + func_replace_sysroot_result=$1 + ;; + esac +} + +# func_infer_tag arg +# Infer tagged configuration to use if any are available and +# if one wasn't chosen via the "--tag" command line option. +# Only attempt this if the compiler in the base compile +# command doesn't match the default compiler. +# arg is usually of the form 'gcc ...' +func_infer_tag () +{ + $debug_cmd + + if test -n "$available_tags" && test -z "$tagname"; then + CC_quoted= + for arg in $CC; do + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case $@ in + # Blanks in the command may have been stripped by the calling shell, + # but not from the CC environment variable when configure was run. + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) ;; + # Blanks at the start of $base_compile will cause this to fail + # if we don't check for them as well. + *) + for z in $available_tags; do + if $GREP "^# ### BEGIN LIBTOOL TAG CONFIG: $z$" < "$progpath" > /dev/null; then + # Evaluate the configuration. + eval "`$SED -n -e '/^# ### BEGIN LIBTOOL TAG CONFIG: '$z'$/,/^# ### END LIBTOOL TAG CONFIG: '$z'$/p' < $progpath`" + CC_quoted= + for arg in $CC; do + # Double-quote args containing other shell metacharacters. + func_append_quoted CC_quoted "$arg" + done + CC_expanded=`func_echo_all $CC` + CC_quoted_expanded=`func_echo_all $CC_quoted` + case "$@ " in + " $CC "* | "$CC "* | " $CC_expanded "* | "$CC_expanded "* | \ + " $CC_quoted"* | "$CC_quoted "* | " $CC_quoted_expanded "* | "$CC_quoted_expanded "*) + # The compiler in the base compile command matches + # the one in the tagged configuration. + # Assume this is the tagged configuration we want. + tagname=$z + break + ;; + esac + fi + done + # If $tagname still isn't set, then no tagged configuration + # was found and let the user know that the "--tag" command + # line option must be used. + if test -z "$tagname"; then + func_echo "unable to infer tagged configuration" + func_fatal_error "specify a tag with '--tag'" +# else +# func_verbose "using $tagname tagged configuration" + fi + ;; + esac + fi +} + + + +# func_write_libtool_object output_name pic_name nonpic_name +# Create a libtool object file (analogous to a ".la" file), +# but don't create it if we're doing a dry run. +func_write_libtool_object () +{ + write_libobj=$1 + if test yes = "$build_libtool_libs"; then + write_lobj=\'$2\' + else + write_lobj=none + fi + + if test yes = "$build_old_libs"; then + write_oldobj=\'$3\' + else + write_oldobj=none + fi + + $opt_dry_run || { + cat >${write_libobj}T </dev/null` + if test "$?" -eq 0 && test -n "$func_convert_core_file_wine_to_w32_tmp"; then + func_convert_core_file_wine_to_w32_result=`$ECHO "$func_convert_core_file_wine_to_w32_tmp" | + $SED -e "$sed_naive_backslashify"` + else + func_convert_core_file_wine_to_w32_result= + fi + fi +} +# end: func_convert_core_file_wine_to_w32 + + +# func_convert_core_path_wine_to_w32 ARG +# Helper function used by path conversion functions when $build is *nix, and +# $host is mingw, cygwin, or some other w32 environment. Relies on a correctly +# configured wine environment available, with the winepath program in $build's +# $PATH. Assumes ARG has no leading or trailing path separator characters. +# +# ARG is path to be converted from $build format to win32. +# Result is available in $func_convert_core_path_wine_to_w32_result. +# Unconvertible file (directory) names in ARG are skipped; if no directory names +# are convertible, then the result may be empty. +func_convert_core_path_wine_to_w32 () +{ + $debug_cmd + + # unfortunately, winepath doesn't convert paths, only file names + func_convert_core_path_wine_to_w32_result= + if test -n "$1"; then + oldIFS=$IFS + IFS=: + for func_convert_core_path_wine_to_w32_f in $1; do + IFS=$oldIFS + func_convert_core_file_wine_to_w32 "$func_convert_core_path_wine_to_w32_f" + if test -n "$func_convert_core_file_wine_to_w32_result"; then + if test -z "$func_convert_core_path_wine_to_w32_result"; then + func_convert_core_path_wine_to_w32_result=$func_convert_core_file_wine_to_w32_result + else + func_append func_convert_core_path_wine_to_w32_result ";$func_convert_core_file_wine_to_w32_result" + fi + fi + done + IFS=$oldIFS + fi +} +# end: func_convert_core_path_wine_to_w32 + + +# func_cygpath ARGS... +# Wrapper around calling the cygpath program via LT_CYGPATH. This is used when +# when (1) $build is *nix and Cygwin is hosted via a wine environment; or (2) +# $build is MSYS and $host is Cygwin, or (3) $build is Cygwin. In case (1) or +# (2), returns the Cygwin file name or path in func_cygpath_result (input +# file name or path is assumed to be in w32 format, as previously converted +# from $build's *nix or MSYS format). In case (3), returns the w32 file name +# or path in func_cygpath_result (input file name or path is assumed to be in +# Cygwin format). Returns an empty string on error. +# +# ARGS are passed to cygpath, with the last one being the file name or path to +# be converted. +# +# Specify the absolute *nix (or w32) name to cygpath in the LT_CYGPATH +# environment variable; do not put it in $PATH. +func_cygpath () +{ + $debug_cmd + + if test -n "$LT_CYGPATH" && test -f "$LT_CYGPATH"; then + func_cygpath_result=`$LT_CYGPATH "$@" 2>/dev/null` + if test "$?" -ne 0; then + # on failure, ensure result is empty + func_cygpath_result= + fi + else + func_cygpath_result= + func_error "LT_CYGPATH is empty or specifies non-existent file: '$LT_CYGPATH'" + fi +} +#end: func_cygpath + + +# func_convert_core_msys_to_w32 ARG +# Convert file name or path ARG from MSYS format to w32 format. Return +# result in func_convert_core_msys_to_w32_result. +func_convert_core_msys_to_w32 () +{ + $debug_cmd + + # awkward: cmd appends spaces to result + func_convert_core_msys_to_w32_result=`( cmd //c echo "$1" ) 2>/dev/null | + $SED -e 's/[ ]*$//' -e "$sed_naive_backslashify"` +} +#end: func_convert_core_msys_to_w32 + + +# func_convert_file_check ARG1 ARG2 +# Verify that ARG1 (a file name in $build format) was converted to $host +# format in ARG2. Otherwise, emit an error message, but continue (resetting +# func_to_host_file_result to ARG1). +func_convert_file_check () +{ + $debug_cmd + + if test -z "$2" && test -n "$1"; then + func_error "Could not determine host file name corresponding to" + func_error " '$1'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback: + func_to_host_file_result=$1 + fi +} +# end func_convert_file_check + + +# func_convert_path_check FROM_PATHSEP TO_PATHSEP FROM_PATH TO_PATH +# Verify that FROM_PATH (a path in $build format) was converted to $host +# format in TO_PATH. Otherwise, emit an error message, but continue, resetting +# func_to_host_file_result to a simplistic fallback value (see below). +func_convert_path_check () +{ + $debug_cmd + + if test -z "$4" && test -n "$3"; then + func_error "Could not determine the host path corresponding to" + func_error " '$3'" + func_error "Continuing, but uninstalled executables may not work." + # Fallback. This is a deliberately simplistic "conversion" and + # should not be "improved". See libtool.info. + if test "x$1" != "x$2"; then + lt_replace_pathsep_chars="s|$1|$2|g" + func_to_host_path_result=`echo "$3" | + $SED -e "$lt_replace_pathsep_chars"` + else + func_to_host_path_result=$3 + fi + fi +} +# end func_convert_path_check + + +# func_convert_path_front_back_pathsep FRONTPAT BACKPAT REPL ORIG +# Modifies func_to_host_path_result by prepending REPL if ORIG matches FRONTPAT +# and appending REPL if ORIG matches BACKPAT. +func_convert_path_front_back_pathsep () +{ + $debug_cmd + + case $4 in + $1 ) func_to_host_path_result=$3$func_to_host_path_result + ;; + esac + case $4 in + $2 ) func_append func_to_host_path_result "$3" + ;; + esac +} +# end func_convert_path_front_back_pathsep + + +################################################## +# $build to $host FILE NAME CONVERSION FUNCTIONS # +################################################## +# invoked via '$to_host_file_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# Result will be available in $func_to_host_file_result. + + +# func_to_host_file ARG +# Converts the file name ARG from $build format to $host format. Return result +# in func_to_host_file_result. +func_to_host_file () +{ + $debug_cmd + + $to_host_file_cmd "$1" +} +# end func_to_host_file + + +# func_to_tool_file ARG LAZY +# converts the file name ARG from $build format to toolchain format. Return +# result in func_to_tool_file_result. If the conversion in use is listed +# in (the comma separated) LAZY, no conversion takes place. +func_to_tool_file () +{ + $debug_cmd + + case ,$2, in + *,"$to_tool_file_cmd",*) + func_to_tool_file_result=$1 + ;; + *) + $to_tool_file_cmd "$1" + func_to_tool_file_result=$func_to_host_file_result + ;; + esac +} +# end func_to_tool_file + + +# func_convert_file_noop ARG +# Copy ARG to func_to_host_file_result. +func_convert_file_noop () +{ + func_to_host_file_result=$1 +} +# end func_convert_file_noop + + +# func_convert_file_msys_to_w32 ARG +# Convert file name ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_file_result. +func_convert_file_msys_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_to_host_file_result=$func_convert_core_msys_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_w32 + + +# func_convert_file_cygwin_to_w32 ARG +# Convert file name ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_file_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # because $build is cygwin, we call "the" cygpath in $PATH; no need to use + # LT_CYGPATH in this case. + func_to_host_file_result=`cygpath -m "$1"` + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_cygwin_to_w32 + + +# func_convert_file_nix_to_w32 ARG +# Convert file name ARG from *nix to w32 format. Requires a wine environment +# and a working winepath. Returns result in func_to_host_file_result. +func_convert_file_nix_to_w32 () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_file_wine_to_w32 "$1" + func_to_host_file_result=$func_convert_core_file_wine_to_w32_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_w32 + + +# func_convert_file_msys_to_cygwin ARG +# Convert file name ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_file_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + func_convert_core_msys_to_w32 "$1" + func_cygpath -u "$func_convert_core_msys_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_msys_to_cygwin + + +# func_convert_file_nix_to_cygwin ARG +# Convert file name ARG from *nix to Cygwin format. Requires Cygwin installed +# in a wine environment, working winepath, and LT_CYGPATH set. Returns result +# in func_to_host_file_result. +func_convert_file_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_file_result=$1 + if test -n "$1"; then + # convert from *nix to w32, then use cygpath to convert from w32 to cygwin. + func_convert_core_file_wine_to_w32 "$1" + func_cygpath -u "$func_convert_core_file_wine_to_w32_result" + func_to_host_file_result=$func_cygpath_result + fi + func_convert_file_check "$1" "$func_to_host_file_result" +} +# end func_convert_file_nix_to_cygwin + + +############################################# +# $build to $host PATH CONVERSION FUNCTIONS # +############################################# +# invoked via '$to_host_path_cmd ARG' +# +# In each case, ARG is the path to be converted from $build to $host format. +# The result will be available in $func_to_host_path_result. +# +# Path separators are also converted from $build format to $host format. If +# ARG begins or ends with a path separator character, it is preserved (but +# converted to $host format) on output. +# +# All path conversion functions are named using the following convention: +# file name conversion function : func_convert_file_X_to_Y () +# path conversion function : func_convert_path_X_to_Y () +# where, for any given $build/$host combination the 'X_to_Y' value is the +# same. If conversion functions are added for new $build/$host combinations, +# the two new functions must follow this pattern, or func_init_to_host_path_cmd +# will break. + + +# func_init_to_host_path_cmd +# Ensures that function "pointer" variable $to_host_path_cmd is set to the +# appropriate value, based on the value of $to_host_file_cmd. +to_host_path_cmd= +func_init_to_host_path_cmd () +{ + $debug_cmd + + if test -z "$to_host_path_cmd"; then + func_stripname 'func_convert_file_' '' "$to_host_file_cmd" + to_host_path_cmd=func_convert_path_$func_stripname_result + fi +} + + +# func_to_host_path ARG +# Converts the path ARG from $build format to $host format. Return result +# in func_to_host_path_result. +func_to_host_path () +{ + $debug_cmd + + func_init_to_host_path_cmd + $to_host_path_cmd "$1" +} +# end func_to_host_path + + +# func_convert_path_noop ARG +# Copy ARG to func_to_host_path_result. +func_convert_path_noop () +{ + func_to_host_path_result=$1 +} +# end func_convert_path_noop + + +# func_convert_path_msys_to_w32 ARG +# Convert path ARG from (mingw) MSYS to (mingw) w32 format; automatic +# conversion to w32 is not available inside the cwrapper. Returns result in +# func_to_host_path_result. +func_convert_path_msys_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from ARG. MSYS + # behavior is inconsistent here; cygpath turns them into '.;' and ';.'; + # and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_msys_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_msys_to_w32 + + +# func_convert_path_cygwin_to_w32 ARG +# Convert path ARG from Cygwin to w32 format. Returns result in +# func_to_host_file_result. +func_convert_path_cygwin_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_to_host_path_result=`cygpath -m -p "$func_to_host_path_tmp1"` + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_cygwin_to_w32 + + +# func_convert_path_nix_to_w32 ARG +# Convert path ARG from *nix to w32 format. Requires a wine environment and +# a working winepath. Returns result in func_to_host_file_result. +func_convert_path_nix_to_w32 () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_to_host_path_result=$func_convert_core_path_wine_to_w32_result + func_convert_path_check : ";" \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" ";" "$1" + fi +} +# end func_convert_path_nix_to_w32 + + +# func_convert_path_msys_to_cygwin ARG +# Convert path ARG from MSYS to Cygwin format. Requires LT_CYGPATH set. +# Returns result in func_to_host_file_result. +func_convert_path_msys_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # See func_convert_path_msys_to_w32: + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_msys_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_msys_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_msys_to_cygwin + + +# func_convert_path_nix_to_cygwin ARG +# Convert path ARG from *nix to Cygwin format. Requires Cygwin installed in a +# a wine environment, working winepath, and LT_CYGPATH set. Returns result in +# func_to_host_file_result. +func_convert_path_nix_to_cygwin () +{ + $debug_cmd + + func_to_host_path_result=$1 + if test -n "$1"; then + # Remove leading and trailing path separator characters from + # ARG. msys behavior is inconsistent here, cygpath turns them + # into '.;' and ';.', and winepath ignores them completely. + func_stripname : : "$1" + func_to_host_path_tmp1=$func_stripname_result + func_convert_core_path_wine_to_w32 "$func_to_host_path_tmp1" + func_cygpath -u -p "$func_convert_core_path_wine_to_w32_result" + func_to_host_path_result=$func_cygpath_result + func_convert_path_check : : \ + "$func_to_host_path_tmp1" "$func_to_host_path_result" + func_convert_path_front_back_pathsep ":*" "*:" : "$1" + fi +} +# end func_convert_path_nix_to_cygwin + + +# func_dll_def_p FILE +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with _LT_DLL_DEF_P in libtool.m4 +func_dll_def_p () +{ + $debug_cmd + + func_dll_def_p_tmp=`$SED -n \ + -e 's/^[ ]*//' \ + -e '/^\(;.*\)*$/d' \ + -e 's/^\(EXPORTS\|LIBRARY\)\([ ].*\)*$/DEF/p' \ + -e q \ + "$1"` + test DEF = "$func_dll_def_p_tmp" +} + + +# func_mode_compile arg... +func_mode_compile () +{ + $debug_cmd + + # Get the compilation command and the source file. + base_compile= + srcfile=$nonopt # always keep a non-empty value in "srcfile" + suppress_opt=yes + suppress_output= + arg_mode=normal + libobj= + later= + pie_flag= + + for arg + do + case $arg_mode in + arg ) + # do not "continue". Instead, add this to base_compile + lastarg=$arg + arg_mode=normal + ;; + + target ) + libobj=$arg + arg_mode=normal + continue + ;; + + normal ) + # Accept any command-line options. + case $arg in + -o) + test -n "$libobj" && \ + func_fatal_error "you cannot specify '-o' more than once" + arg_mode=target + continue + ;; + + -pie | -fpie | -fPIE) + func_append pie_flag " $arg" + continue + ;; + + -shared | -static | -prefer-pic | -prefer-non-pic) + func_append later " $arg" + continue + ;; + + -no-suppress) + suppress_opt=no + continue + ;; + + -Xcompiler) + arg_mode=arg # the next one goes into the "base_compile" arg list + continue # The current "srcfile" will either be retained or + ;; # replaced later. I would guess that would be a bug. + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + lastarg= + save_ifs=$IFS; IFS=, + for arg in $args; do + IFS=$save_ifs + func_append_quoted lastarg "$arg" + done + IFS=$save_ifs + func_stripname ' ' '' "$lastarg" + lastarg=$func_stripname_result + + # Add the arguments to base_compile. + func_append base_compile " $lastarg" + continue + ;; + + *) + # Accept the current argument as the source file. + # The previous "srcfile" becomes the current argument. + # + lastarg=$srcfile + srcfile=$arg + ;; + esac # case $arg + ;; + esac # case $arg_mode + + # Aesthetically quote the previous argument. + func_append_quoted base_compile "$lastarg" + done # for arg + + case $arg_mode in + arg) + func_fatal_error "you must specify an argument for -Xcompile" + ;; + target) + func_fatal_error "you must specify a target with '-o'" + ;; + *) + # Get the name of the library object. + test -z "$libobj" && { + func_basename "$srcfile" + libobj=$func_basename_result + } + ;; + esac + + # Recognize several different file suffixes. + # If the user specifies -o file.o, it is replaced with file.lo + case $libobj in + *.[cCFSifmso] | \ + *.ada | *.adb | *.ads | *.asm | \ + *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \ + *.[fF][09]? | *.for | *.java | *.go | *.obj | *.sx | *.cu | *.cup) + func_xform "$libobj" + libobj=$func_xform_result + ;; + esac + + case $libobj in + *.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;; + *) + func_fatal_error "cannot determine name of library object from '$libobj'" + ;; + esac + + func_infer_tag $base_compile + + for arg in $later; do + case $arg in + -shared) + test yes = "$build_libtool_libs" \ + || func_fatal_configuration "cannot build a shared library" + build_old_libs=no + continue + ;; + + -static) + build_libtool_libs=no + build_old_libs=yes + continue + ;; + + -prefer-pic) + pic_mode=yes + continue + ;; + + -prefer-non-pic) + pic_mode=no + continue + ;; + esac + done + + func_quote_for_eval "$libobj" + test "X$libobj" != "X$func_quote_for_eval_result" \ + && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \ + && func_warning "libobj name '$libobj' may not contain shell special characters." + func_dirname_and_basename "$obj" "/" "" + objname=$func_basename_result + xdir=$func_dirname_result + lobj=$xdir$objdir/$objname + + test -z "$base_compile" && \ + func_fatal_help "you must specify a compilation command" + + # Delete any leftover library objects. + if test yes = "$build_old_libs"; then + removelist="$obj $lobj $libobj ${libobj}T" + else + removelist="$lobj $libobj ${libobj}T" + fi + + # On Cygwin there's no "real" PIC flag so we must build both object types + case $host_os in + cygwin* | mingw* | pw32* | os2* | cegcc*) + pic_mode=default + ;; + esac + if test no = "$pic_mode" && test pass_all != "$deplibs_check_method"; then + # non-PIC code in shared libraries is not supported + pic_mode=default + fi + + # Calculate the filename of the output object if compiler does + # not support -o with -c + if test no = "$compiler_c_o"; then + output_obj=`$ECHO "$srcfile" | $SED 's%^.*/%%; s%\.[^.]*$%%'`.$objext + lockfile=$output_obj.lock + else + output_obj= + need_locks=no + lockfile= + fi + + # Lock this critical section if it is needed + # We use this script file to make the link, it avoids creating a new file + if test yes = "$need_locks"; then + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + elif test warn = "$need_locks"; then + if test -f "$lockfile"; then + $ECHO "\ +*** ERROR, $lockfile exists and contains: +`cat $lockfile 2>/dev/null` + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + func_append removelist " $output_obj" + $ECHO "$srcfile" > "$lockfile" + fi + + $opt_dry_run || $RM $removelist + func_append removelist " $lockfile" + trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15 + + func_to_tool_file "$srcfile" func_convert_file_msys_to_w32 + srcfile=$func_to_tool_file_result + func_quote_for_eval "$srcfile" + qsrcfile=$func_quote_for_eval_result + + # Only build a PIC object if we are building libtool libraries. + if test yes = "$build_libtool_libs"; then + # Without this assignment, base_compile gets emptied. + fbsd_hideous_sh_bug=$base_compile + + if test no != "$pic_mode"; then + command="$base_compile $qsrcfile $pic_flag" + else + # Don't build PIC code + command="$base_compile $qsrcfile" + fi + + func_mkdir_p "$xdir$objdir" + + if test -z "$output_obj"; then + # Place PIC objects in $objdir + func_append command " -o $lobj" + fi + + func_show_eval_locale "$command" \ + 'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed, then go on to compile the next one + if test -n "$output_obj" && test "X$output_obj" != "X$lobj"; then + func_show_eval '$MV "$output_obj" "$lobj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + + # Allow error messages only from the first compilation. + if test yes = "$suppress_opt"; then + suppress_output=' >/dev/null 2>&1' + fi + fi + + # Only build a position-dependent object if we build old libraries. + if test yes = "$build_old_libs"; then + if test yes != "$pic_mode"; then + # Don't build PIC code + command="$base_compile $qsrcfile$pie_flag" + else + command="$base_compile $qsrcfile $pic_flag" + fi + if test yes = "$compiler_c_o"; then + func_append command " -o $obj" + fi + + # Suppress compiler output if we already did a PIC compilation. + func_append command "$suppress_output" + func_show_eval_locale "$command" \ + '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' + + if test warn = "$need_locks" && + test "X`cat $lockfile 2>/dev/null`" != "X$srcfile"; then + $ECHO "\ +*** ERROR, $lockfile contains: +`cat $lockfile 2>/dev/null` + +but it should contain: +$srcfile + +This indicates that another process is trying to use the same +temporary object file, and libtool could not work around it because +your compiler does not support '-c' and '-o' together. If you +repeat this compilation, it may succeed, by chance, but you had better +avoid parallel builds (make -j) in this platform, or get a better +compiler." + + $opt_dry_run || $RM $removelist + exit $EXIT_FAILURE + fi + + # Just move the object if needed + if test -n "$output_obj" && test "X$output_obj" != "X$obj"; then + func_show_eval '$MV "$output_obj" "$obj"' \ + 'error=$?; $opt_dry_run || $RM $removelist; exit $error' + fi + fi + + $opt_dry_run || { + func_write_libtool_object "$libobj" "$objdir/$objname" "$objname" + + # Unlock the critical section if it was locked + if test no != "$need_locks"; then + removelist=$lockfile + $RM "$lockfile" + fi + } + + exit $EXIT_SUCCESS +} + +$opt_help || { + test compile = "$opt_mode" && func_mode_compile ${1+"$@"} +} + +func_mode_help () +{ + # We need to display help for each of the modes. + case $opt_mode in + "") + # Generic help is extracted from the usage comments + # at the start of this file. + func_help + ;; + + clean) + $ECHO \ +"Usage: $progname [OPTION]... --mode=clean RM [RM-OPTION]... FILE... + +Remove files from the build directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, object or program, all the files associated +with it are deleted. Otherwise, only FILE itself is deleted using RM." + ;; + + compile) + $ECHO \ +"Usage: $progname [OPTION]... --mode=compile COMPILE-COMMAND... SOURCEFILE + +Compile a source file into a libtool library object. + +This mode accepts the following additional options: + + -o OUTPUT-FILE set the output file name to OUTPUT-FILE + -no-suppress do not suppress compiler output for multiple passes + -prefer-pic try to build PIC objects only + -prefer-non-pic try to build non-PIC objects only + -shared do not build a '.o' file suitable for static linking + -static only build a '.o' file suitable for static linking + -Wc,FLAG pass FLAG directly to the compiler + +COMPILE-COMMAND is a command to be used in creating a 'standard' object file +from the given SOURCEFILE. + +The output file name is determined by removing the directory component from +SOURCEFILE, then substituting the C source code suffix '.c' with the +library object suffix, '.lo'." + ;; + + execute) + $ECHO \ +"Usage: $progname [OPTION]... --mode=execute COMMAND [ARGS]... + +Automatically set library path, then run a program. + +This mode accepts the following additional options: + + -dlopen FILE add the directory containing FILE to the library path + +This mode sets the library path environment variable according to '-dlopen' +flags. + +If any of the ARGS are libtool executable wrappers, then they are translated +into their corresponding uninstalled binary, and any of their required library +directories are added to the library path. + +Then, COMMAND is executed, with ARGS as arguments." + ;; + + finish) + $ECHO \ +"Usage: $progname [OPTION]... --mode=finish [LIBDIR]... + +Complete the installation of libtool libraries. + +Each LIBDIR is a directory that contains libtool libraries. + +The commands that this mode executes may require superuser privileges. Use +the '--dry-run' option if you just want to see what would be executed." + ;; + + install) + $ECHO \ +"Usage: $progname [OPTION]... --mode=install INSTALL-COMMAND... + +Install executables or libraries. + +INSTALL-COMMAND is the installation command. The first component should be +either the 'install' or 'cp' program. + +The following components of INSTALL-COMMAND are treated specially: + + -inst-prefix-dir PREFIX-DIR Use PREFIX-DIR as a staging area for installation + +The rest of the components are interpreted as arguments to that command (only +BSD-compatible install options are recognized)." + ;; + + link) + $ECHO \ +"Usage: $progname [OPTION]... --mode=link LINK-COMMAND... + +Link object files or libraries together to form another library, or to +create an executable program. + +LINK-COMMAND is a command using the C compiler that you would use to create +a program from several object files. + +The following components of LINK-COMMAND are treated specially: + + -all-static do not do any dynamic linking at all + -avoid-version do not add a version suffix if possible + -bindir BINDIR specify path to binaries directory (for systems where + libraries must be found in the PATH setting at runtime) + -dlopen FILE '-dlpreopen' FILE if it cannot be dlopened at runtime + -dlpreopen FILE link in FILE and add its symbols to lt_preloaded_symbols + -export-dynamic allow symbols from OUTPUT-FILE to be resolved with dlsym(3) + -export-symbols SYMFILE + try to export only the symbols listed in SYMFILE + -export-symbols-regex REGEX + try to export only the symbols matching REGEX + -LLIBDIR search LIBDIR for required installed libraries + -lNAME OUTPUT-FILE requires the installed library libNAME + -module build a library that can dlopened + -no-fast-install disable the fast-install mode + -no-install link a not-installable executable + -no-undefined declare that a library does not refer to external symbols + -o OUTPUT-FILE create OUTPUT-FILE from the specified objects + -objectlist FILE use a list of object files found in FILE to specify objects + -os2dllname NAME force a short DLL name on OS/2 (no effect on other OSes) + -precious-files-regex REGEX + don't remove output files matching REGEX + -release RELEASE specify package release information + -rpath LIBDIR the created library will eventually be installed in LIBDIR + -R[ ]LIBDIR add LIBDIR to the runtime path of programs and libraries + -shared only do dynamic linking of libtool libraries + -shrext SUFFIX override the standard shared library file extension + -static do not do any dynamic linking of uninstalled libtool libraries + -static-libtool-libs + do not do any dynamic linking of libtool libraries + -version-info CURRENT[:REVISION[:AGE]] + specify library version info [each variable defaults to 0] + -weak LIBNAME declare that the target provides the LIBNAME interface + -Wc,FLAG + -Xcompiler FLAG pass linker-specific FLAG directly to the compiler + -Wl,FLAG + -Xlinker FLAG pass linker-specific FLAG directly to the linker + -XCClinker FLAG pass link-specific FLAG to the compiler driver (CC) + +All other options (arguments beginning with '-') are ignored. + +Every other argument is treated as a filename. Files ending in '.la' are +treated as uninstalled libtool libraries, other files are standard or library +object files. + +If the OUTPUT-FILE ends in '.la', then a libtool library is created, +only library objects ('.lo' files) may be specified, and '-rpath' is +required, except when creating a convenience library. + +If OUTPUT-FILE ends in '.a' or '.lib', then a standard library is created +using 'ar' and 'ranlib', or on Windows using 'lib'. + +If OUTPUT-FILE ends in '.lo' or '.$objext', then a reloadable object file +is created, otherwise an executable program is created." + ;; + + uninstall) + $ECHO \ +"Usage: $progname [OPTION]... --mode=uninstall RM [RM-OPTION]... FILE... + +Remove libraries from an installation directory. + +RM is the name of the program to use to delete files associated with each FILE +(typically '/bin/rm'). RM-OPTIONS are options (such as '-f') to be passed +to RM. + +If FILE is a libtool library, all the files associated with it are deleted. +Otherwise, only FILE itself is deleted using RM." + ;; + + *) + func_fatal_help "invalid operation mode '$opt_mode'" + ;; + esac + + echo + $ECHO "Try '$progname --help' for more information about other modes." +} + +# Now that we've collected a possible --mode arg, show help if necessary +if $opt_help; then + if test : = "$opt_help"; then + func_mode_help + else + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + func_mode_help + done + } | $SED -n '1p; 2,$s/^Usage:/ or: /p' + { + func_help noexit + for opt_mode in compile link execute install finish uninstall clean; do + echo + func_mode_help + done + } | + $SED '1d + /^When reporting/,/^Report/{ + H + d + } + $x + /information about other modes/d + /more detailed .*MODE/d + s/^Usage:.*--mode=\([^ ]*\) .*/Description of \1 mode:/' + fi + exit $? +fi + + +# func_mode_execute arg... +func_mode_execute () +{ + $debug_cmd + + # The first argument is the command name. + cmd=$nonopt + test -z "$cmd" && \ + func_fatal_help "you must specify a COMMAND" + + # Handle -dlopen flags immediately. + for file in $opt_dlopen; do + test -f "$file" \ + || func_fatal_help "'$file' is not a file" + + dir= + case $file in + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$lib' is not a valid libtool archive" + + # Read the libtool library. + dlname= + library_names= + func_source "$file" + + # Skip this library if it cannot be dlopened. + if test -z "$dlname"; then + # Warn if it was a shared library. + test -n "$library_names" && \ + func_warning "'$file' was not linked with '-export-dynamic'" + continue + fi + + func_dirname "$file" "" "." + dir=$func_dirname_result + + if test -f "$dir/$objdir/$dlname"; then + func_append dir "/$objdir" + else + if test ! -f "$dir/$dlname"; then + func_fatal_error "cannot find '$dlname' in '$dir' or '$dir/$objdir'" + fi + fi + ;; + + *.lo) + # Just add the directory containing the .lo file. + func_dirname "$file" "" "." + dir=$func_dirname_result + ;; + + *) + func_warning "'-dlopen' is ignored for non-libtool libraries and objects" + continue + ;; + esac + + # Get the absolute pathname. + absdir=`cd "$dir" && pwd` + test -n "$absdir" && dir=$absdir + + # Now add the directory to shlibpath_var. + if eval "test -z \"\$$shlibpath_var\""; then + eval "$shlibpath_var=\"\$dir\"" + else + eval "$shlibpath_var=\"\$dir:\$$shlibpath_var\"" + fi + done + + # This variable tells wrapper scripts just to set shlibpath_var + # rather than running their programs. + libtool_execute_magic=$magic + + # Check if any of the arguments is a wrapper script. + args= + for file + do + case $file in + -* | *.la | *.lo ) ;; + *) + # Do a test to see if this is really a libtool program. + if func_ltwrapper_script_p "$file"; then + func_source "$file" + # Transform arg to wrapped name. + file=$progdir/$program + elif func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + func_source "$func_ltwrapper_scriptname_result" + # Transform arg to wrapped name. + file=$progdir/$program + fi + ;; + esac + # Quote arguments (to preserve shell metacharacters). + func_append_quoted args "$file" + done + + if $opt_dry_run; then + # Display what would be done. + if test -n "$shlibpath_var"; then + eval "\$ECHO \"\$shlibpath_var=\$$shlibpath_var\"" + echo "export $shlibpath_var" + fi + $ECHO "$cmd$args" + exit $EXIT_SUCCESS + else + if test -n "$shlibpath_var"; then + # Export the shlibpath_var. + eval "export $shlibpath_var" + fi + + # Restore saved environment variables + for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES + do + eval "if test \"\${save_$lt_var+set}\" = set; then + $lt_var=\$save_$lt_var; export $lt_var + else + $lt_unset $lt_var + fi" + done + + # Now prepare to actually exec the command. + exec_cmd=\$cmd$args + fi +} + +test execute = "$opt_mode" && func_mode_execute ${1+"$@"} + + +# func_mode_finish arg... +func_mode_finish () +{ + $debug_cmd + + libs= + libdirs= + admincmds= + + for opt in "$nonopt" ${1+"$@"} + do + if test -d "$opt"; then + func_append libdirs " $opt" + + elif test -f "$opt"; then + if func_lalib_unsafe_p "$opt"; then + func_append libs " $opt" + else + func_warning "'$opt' is not a valid libtool archive" + fi + + else + func_fatal_error "invalid argument '$opt'" + fi + done + + if test -n "$libs"; then + if test -n "$lt_sysroot"; then + sysroot_regex=`$ECHO "$lt_sysroot" | $SED "$sed_make_literal_regex"` + sysroot_cmd="s/\([ ']\)$sysroot_regex/\1/g;" + else + sysroot_cmd= + fi + + # Remove sysroot references + if $opt_dry_run; then + for lib in $libs; do + echo "removing references to $lt_sysroot and '=' prefixes from $lib" + done + else + tmpdir=`func_mktempdir` + for lib in $libs; do + $SED -e "$sysroot_cmd s/\([ ']-[LR]\)=/\1/g; s/\([ ']\)=/\1/g" $lib \ + > $tmpdir/tmp-la + mv -f $tmpdir/tmp-la $lib + done + ${RM}r "$tmpdir" + fi + fi + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + for libdir in $libdirs; do + if test -n "$finish_cmds"; then + # Do each command in the finish commands. + func_execute_cmds "$finish_cmds" 'admincmds="$admincmds +'"$cmd"'"' + fi + if test -n "$finish_eval"; then + # Do the single finish_eval. + eval cmds=\"$finish_eval\" + $opt_dry_run || eval "$cmds" || func_append admincmds " + $cmds" + fi + done + fi + + # Exit here if they wanted silent mode. + $opt_quiet && exit $EXIT_SUCCESS + + if test -n "$finish_cmds$finish_eval" && test -n "$libdirs"; then + echo "----------------------------------------------------------------------" + echo "Libraries have been installed in:" + for libdir in $libdirs; do + $ECHO " $libdir" + done + echo + echo "If you ever happen to want to link against installed libraries" + echo "in a given directory, LIBDIR, you must either use libtool, and" + echo "specify the full pathname of the library, or use the '-LLIBDIR'" + echo "flag during linking and do at least one of the following:" + if test -n "$shlibpath_var"; then + echo " - add LIBDIR to the '$shlibpath_var' environment variable" + echo " during execution" + fi + if test -n "$runpath_var"; then + echo " - add LIBDIR to the '$runpath_var' environment variable" + echo " during linking" + fi + if test -n "$hardcode_libdir_flag_spec"; then + libdir=LIBDIR + eval flag=\"$hardcode_libdir_flag_spec\" + + $ECHO " - use the '$flag' linker flag" + fi + if test -n "$admincmds"; then + $ECHO " - have your system administrator run these commands:$admincmds" + fi + if test -f /etc/ld.so.conf; then + echo " - have your system administrator add LIBDIR to '/etc/ld.so.conf'" + fi + echo + + echo "See any operating system documentation about shared libraries for" + case $host in + solaris2.[6789]|solaris2.1[0-9]) + echo "more information, such as the ld(1), crle(1) and ld.so(8) manual" + echo "pages." + ;; + *) + echo "more information, such as the ld(1) and ld.so(8) manual pages." + ;; + esac + echo "----------------------------------------------------------------------" + fi + exit $EXIT_SUCCESS +} + +test finish = "$opt_mode" && func_mode_finish ${1+"$@"} + + +# func_mode_install arg... +func_mode_install () +{ + $debug_cmd + + # There may be an optional sh(1) argument at the beginning of + # install_prog (especially on Windows NT). + if test "$SHELL" = "$nonopt" || test /bin/sh = "$nonopt" || + # Allow the use of GNU shtool's install command. + case $nonopt in *shtool*) :;; *) false;; esac + then + # Aesthetically quote it. + func_quote_for_eval "$nonopt" + install_prog="$func_quote_for_eval_result " + arg=$1 + shift + else + install_prog= + arg=$nonopt + fi + + # The real first argument should be the name of the installation program. + # Aesthetically quote it. + func_quote_for_eval "$arg" + func_append install_prog "$func_quote_for_eval_result" + install_shared_prog=$install_prog + case " $install_prog " in + *[\\\ /]cp\ *) install_cp=: ;; + *) install_cp=false ;; + esac + + # We need to accept at least all the BSD install flags. + dest= + files= + opts= + prev= + install_type= + isdir=false + stripme= + no_mode=: + for arg + do + arg2= + if test -n "$dest"; then + func_append files " $dest" + dest=$arg + continue + fi + + case $arg in + -d) isdir=: ;; + -f) + if $install_cp; then :; else + prev=$arg + fi + ;; + -g | -m | -o) + prev=$arg + ;; + -s) + stripme=" -s" + continue + ;; + -*) + ;; + *) + # If the previous option needed an argument, then skip it. + if test -n "$prev"; then + if test X-m = "X$prev" && test -n "$install_override_mode"; then + arg2=$install_override_mode + no_mode=false + fi + prev= + else + dest=$arg + continue + fi + ;; + esac + + # Aesthetically quote the argument. + func_quote_for_eval "$arg" + func_append install_prog " $func_quote_for_eval_result" + if test -n "$arg2"; then + func_quote_for_eval "$arg2" + fi + func_append install_shared_prog " $func_quote_for_eval_result" + done + + test -z "$install_prog" && \ + func_fatal_help "you must specify an install program" + + test -n "$prev" && \ + func_fatal_help "the '$prev' option requires an argument" + + if test -n "$install_override_mode" && $no_mode; then + if $install_cp; then :; else + func_quote_for_eval "$install_override_mode" + func_append install_shared_prog " -m $func_quote_for_eval_result" + fi + fi + + if test -z "$files"; then + if test -z "$dest"; then + func_fatal_help "no file or destination specified" + else + func_fatal_help "you must specify a destination" + fi + fi + + # Strip any trailing slash from the destination. + func_stripname '' '/' "$dest" + dest=$func_stripname_result + + # Check to see that the destination is a directory. + test -d "$dest" && isdir=: + if $isdir; then + destdir=$dest + destname= + else + func_dirname_and_basename "$dest" "" "." + destdir=$func_dirname_result + destname=$func_basename_result + + # Not a directory, so check to see that there is only one file specified. + set dummy $files; shift + test "$#" -gt 1 && \ + func_fatal_help "'$dest' is not a directory" + fi + case $destdir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + for file in $files; do + case $file in + *.lo) ;; + *) + func_fatal_help "'$destdir' must be an absolute directory name" + ;; + esac + done + ;; + esac + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + staticlibs= + future_libdirs= + current_libdirs= + for file in $files; do + + # Do each installation. + case $file in + *.$libext) + # Do the static libraries later. + func_append staticlibs " $file" + ;; + + *.la) + func_resolve_sysroot "$file" + file=$func_resolve_sysroot_result + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$file" \ + || func_fatal_help "'$file' is not a valid libtool archive" + + library_names= + old_library= + relink_command= + func_source "$file" + + # Add the libdir to current_libdirs if it is the destination. + if test "X$destdir" = "X$libdir"; then + case "$current_libdirs " in + *" $libdir "*) ;; + *) func_append current_libdirs " $libdir" ;; + esac + else + # Note the libdir as a future libdir. + case "$future_libdirs " in + *" $libdir "*) ;; + *) func_append future_libdirs " $libdir" ;; + esac + fi + + func_dirname "$file" "/" "" + dir=$func_dirname_result + func_append dir "$objdir" + + if test -n "$relink_command"; then + # Determine the prefix the user has applied to our future dir. + inst_prefix_dir=`$ECHO "$destdir" | $SED -e "s%$libdir\$%%"` + + # Don't allow the user to place us outside of our expected + # location b/c this prevents finding dependent libraries that + # are installed to the same prefix. + # At present, this check doesn't affect windows .dll's that + # are installed into $libdir/../bin (currently, that works fine) + # but it's something to keep an eye on. + test "$inst_prefix_dir" = "$destdir" && \ + func_fatal_error "error: cannot install '$file' to a directory not ending in $libdir" + + if test -n "$inst_prefix_dir"; then + # Stick the inst_prefix_dir data into the link command. + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%-inst-prefix-dir $inst_prefix_dir%"` + else + relink_command=`$ECHO "$relink_command" | $SED "s%@inst_prefix_dir@%%"` + fi + + func_warning "relinking '$file'" + func_show_eval "$relink_command" \ + 'func_fatal_error "error: relink '\''$file'\'' with the above command before installing it"' + fi + + # See the names of the shared library. + set dummy $library_names; shift + if test -n "$1"; then + realname=$1 + shift + + srcname=$realname + test -n "$relink_command" && srcname=${realname}T + + # Install the shared library and build the symlinks. + func_show_eval "$install_shared_prog $dir/$srcname $destdir/$realname" \ + 'exit $?' + tstripme=$stripme + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + case $realname in + *.dll.a) + tstripme= + ;; + esac + ;; + os2*) + case $realname in + *_dll.a) + tstripme= + ;; + esac + ;; + esac + if test -n "$tstripme" && test -n "$striplib"; then + func_show_eval "$striplib $destdir/$realname" 'exit $?' + fi + + if test "$#" -gt 0; then + # Delete the old symlinks, and create new ones. + # Try 'ln -sf' first, because the 'ln' binary might depend on + # the symlink we replace! Solaris /bin/ln does not understand -f, + # so we also need to try rm && ln -s. + for linkname + do + test "$linkname" != "$realname" \ + && func_show_eval "(cd $destdir && { $LN_S -f $realname $linkname || { $RM $linkname && $LN_S $realname $linkname; }; })" + done + fi + + # Do each command in the postinstall commands. + lib=$destdir/$realname + func_execute_cmds "$postinstall_cmds" 'exit $?' + fi + + # Install the pseudo-library for information purposes. + func_basename "$file" + name=$func_basename_result + instname=$dir/${name}i + func_show_eval "$install_prog $instname $destdir/$name" 'exit $?' + + # Maybe install the static library, too. + test -n "$old_library" && func_append staticlibs " $dir/$old_library" + ;; + + *.lo) + # Install (i.e. copy) a libtool object. + + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # Deduce the name of the destination old-style object file. + case $destfile in + *.lo) + func_lo2o "$destfile" + staticdest=$func_lo2o_result + ;; + *.$objext) + staticdest=$destfile + destfile= + ;; + *) + func_fatal_help "cannot copy a libtool object to '$destfile'" + ;; + esac + + # Install the libtool object if requested. + test -n "$destfile" && \ + func_show_eval "$install_prog $file $destfile" 'exit $?' + + # Install the old object if enabled. + if test yes = "$build_old_libs"; then + # Deduce the name of the old-style object file. + func_lo2o "$file" + staticobj=$func_lo2o_result + func_show_eval "$install_prog \$staticobj \$staticdest" 'exit $?' + fi + exit $EXIT_SUCCESS + ;; + + *) + # Figure out destination file name, if it wasn't already specified. + if test -n "$destname"; then + destfile=$destdir/$destname + else + func_basename "$file" + destfile=$func_basename_result + destfile=$destdir/$destfile + fi + + # If the file is missing, and there is a .exe on the end, strip it + # because it is most likely a libtool script we actually want to + # install + stripped_ext= + case $file in + *.exe) + if test ! -f "$file"; then + func_stripname '' '.exe' "$file" + file=$func_stripname_result + stripped_ext=.exe + fi + ;; + esac + + # Do a test to see if this is really a libtool program. + case $host in + *cygwin* | *mingw*) + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + wrapper=$func_ltwrapper_scriptname_result + else + func_stripname '' '.exe' "$file" + wrapper=$func_stripname_result + fi + ;; + *) + wrapper=$file + ;; + esac + if func_ltwrapper_script_p "$wrapper"; then + notinst_deplibs= + relink_command= + + func_source "$wrapper" + + # Check the variables that should have been set. + test -z "$generated_by_libtool_version" && \ + func_fatal_error "invalid libtool wrapper script '$wrapper'" + + finalize=: + for lib in $notinst_deplibs; do + # Check to see that each library is installed. + libdir= + if test -f "$lib"; then + func_source "$lib" + fi + libfile=$libdir/`$ECHO "$lib" | $SED 's%^.*/%%g'` + if test -n "$libdir" && test ! -f "$libfile"; then + func_warning "'$lib' has not been installed in '$libdir'" + finalize=false + fi + done + + relink_command= + func_source "$wrapper" + + outputname= + if test no = "$fast_install" && test -n "$relink_command"; then + $opt_dry_run || { + if $finalize; then + tmpdir=`func_mktempdir` + func_basename "$file$stripped_ext" + file=$func_basename_result + outputname=$tmpdir/$file + # Replace the output file specification. + relink_command=`$ECHO "$relink_command" | $SED 's%@OUTPUT@%'"$outputname"'%g'` + + $opt_quiet || { + func_quote_for_expand "$relink_command" + eval "func_echo $func_quote_for_expand_result" + } + if eval "$relink_command"; then : + else + func_error "error: relink '$file' with the above command before installing it" + $opt_dry_run || ${RM}r "$tmpdir" + continue + fi + file=$outputname + else + func_warning "cannot relink '$file'" + fi + } + else + # Install the binary that we compiled earlier. + file=`$ECHO "$file$stripped_ext" | $SED "s%\([^/]*\)$%$objdir/\1%"` + fi + fi + + # remove .exe since cygwin /usr/bin/install will append another + # one anyway + case $install_prog,$host in + */usr/bin/install*,*cygwin*) + case $file:$destfile in + *.exe:*.exe) + # this is ok + ;; + *.exe:*) + destfile=$destfile.exe + ;; + *:*.exe) + func_stripname '' '.exe' "$destfile" + destfile=$func_stripname_result + ;; + esac + ;; + esac + func_show_eval "$install_prog\$stripme \$file \$destfile" 'exit $?' + $opt_dry_run || if test -n "$outputname"; then + ${RM}r "$tmpdir" + fi + ;; + esac + done + + for file in $staticlibs; do + func_basename "$file" + name=$func_basename_result + + # Set up the ranlib parameters. + oldlib=$destdir/$name + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + + func_show_eval "$install_prog \$file \$oldlib" 'exit $?' + + if test -n "$stripme" && test -n "$old_striplib"; then + func_show_eval "$old_striplib $tool_oldlib" 'exit $?' + fi + + # Do each command in the postinstall commands. + func_execute_cmds "$old_postinstall_cmds" 'exit $?' + done + + test -n "$future_libdirs" && \ + func_warning "remember to run '$progname --finish$future_libdirs'" + + if test -n "$current_libdirs"; then + # Maybe just do a dry run. + $opt_dry_run && current_libdirs=" -n$current_libdirs" + exec_cmd='$SHELL "$progpath" $preserve_args --finish$current_libdirs' + else + exit $EXIT_SUCCESS + fi +} + +test install = "$opt_mode" && func_mode_install ${1+"$@"} + + +# func_generate_dlsyms outputname originator pic_p +# Extract symbols from dlprefiles and create ${outputname}S.o with +# a dlpreopen symbol table. +func_generate_dlsyms () +{ + $debug_cmd + + my_outputname=$1 + my_originator=$2 + my_pic_p=${3-false} + my_prefix=`$ECHO "$my_originator" | $SED 's%[^a-zA-Z0-9]%_%g'` + my_dlsyms= + + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + if test -n "$NM" && test -n "$global_symbol_pipe"; then + my_dlsyms=${my_outputname}S.c + else + func_error "not configured to extract global symbols from dlpreopened files" + fi + fi + + if test -n "$my_dlsyms"; then + case $my_dlsyms in + "") ;; + *.c) + # Discover the nlist of each of the dlfiles. + nlist=$output_objdir/$my_outputname.nm + + func_show_eval "$RM $nlist ${nlist}S ${nlist}T" + + # Parse the name list into a source file. + func_verbose "creating $output_objdir/$my_dlsyms" + + $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\ +/* $my_dlsyms - symbol resolution table for '$my_outputname' dlsym emulation. */ +/* Generated by $PROGRAM (GNU $PACKAGE) $VERSION */ + +#ifdef __cplusplus +extern \"C\" { +#endif + +#if defined __GNUC__ && (((__GNUC__ == 4) && (__GNUC_MINOR__ >= 4)) || (__GNUC__ > 4)) +#pragma GCC diagnostic ignored \"-Wstrict-prototypes\" +#endif + +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT_DLSYM_CONST +#else +# define LT_DLSYM_CONST const +#endif + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* External symbol declarations for the compiler. */\ +" + + if test yes = "$dlself"; then + func_verbose "generating symbol list for '$output'" + + $opt_dry_run || echo ': @PROGRAM@ ' > "$nlist" + + # Add our own program objects to the symbol list. + progfiles=`$ECHO "$objs$old_deplibs" | $SP2NL | $SED "$lo2o" | $NL2SP` + for progfile in $progfiles; do + func_to_tool_file "$progfile" func_convert_file_msys_to_w32 + func_verbose "extracting global C symbols from '$func_to_tool_file_result'" + $opt_dry_run || eval "$NM $func_to_tool_file_result | $global_symbol_pipe >> '$nlist'" + done + + if test -n "$exclude_expsyms"; then + $opt_dry_run || { + eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + if test -n "$export_symbols_regex"; then + $opt_dry_run || { + eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + } + fi + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + export_symbols=$output_objdir/$outputname.exp + $opt_dry_run || { + $RM $export_symbols + eval "$SED -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"' + ;; + esac + } + else + $opt_dry_run || { + eval "$SED -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"' + eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T' + eval '$MV "$nlist"T "$nlist"' + case $host in + *cygwin* | *mingw* | *cegcc* ) + eval "echo EXPORTS "'> "$output_objdir/$outputname.def"' + eval 'cat "$nlist" >> "$output_objdir/$outputname.def"' + ;; + esac + } + fi + fi + + for dlprefile in $dlprefiles; do + func_verbose "extracting global C symbols from '$dlprefile'" + func_basename "$dlprefile" + name=$func_basename_result + case $host in + *cygwin* | *mingw* | *cegcc* ) + # if an import library, we need to obtain dlname + if func_win32_import_lib_p "$dlprefile"; then + func_tr_sh "$dlprefile" + eval "curr_lafile=\$libfile_$func_tr_sh_result" + dlprefile_dlbasename= + if test -n "$curr_lafile" && func_lalib_p "$curr_lafile"; then + # Use subshell, to avoid clobbering current variable values + dlprefile_dlname=`source "$curr_lafile" && echo "$dlname"` + if test -n "$dlprefile_dlname"; then + func_basename "$dlprefile_dlname" + dlprefile_dlbasename=$func_basename_result + else + # no lafile. user explicitly requested -dlpreopen . + $sharedlib_from_linklib_cmd "$dlprefile" + dlprefile_dlbasename=$sharedlib_from_linklib_result + fi + fi + $opt_dry_run || { + if test -n "$dlprefile_dlbasename"; then + eval '$ECHO ": $dlprefile_dlbasename" >> "$nlist"' + else + func_warning "Could not compute DLL name from $name" + eval '$ECHO ": $name " >> "$nlist"' + fi + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe | + $SED -e '/I __imp/d' -e 's/I __nm_/D /;s/_nm__//' >> '$nlist'" + } + else # not an import lib + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + fi + ;; + *) + $opt_dry_run || { + eval '$ECHO ": $name " >> "$nlist"' + func_to_tool_file "$dlprefile" func_convert_file_msys_to_w32 + eval "$NM \"$func_to_tool_file_result\" 2>/dev/null | $global_symbol_pipe >> '$nlist'" + } + ;; + esac + done + + $opt_dry_run || { + # Make sure we have at least an empty file. + test -f "$nlist" || : > "$nlist" + + if test -n "$exclude_expsyms"; then + $EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T + $MV "$nlist"T "$nlist" + fi + + # Try sorting and uniquifying the output. + if $GREP -v "^: " < "$nlist" | + if sort -k 3 /dev/null 2>&1; then + sort -k 3 + else + sort +2 + fi | + uniq > "$nlist"S; then + : + else + $GREP -v "^: " < "$nlist" > "$nlist"S + fi + + if test -f "$nlist"S; then + eval "$global_symbol_to_cdecl"' < "$nlist"S >> "$output_objdir/$my_dlsyms"' + else + echo '/* NONE */' >> "$output_objdir/$my_dlsyms" + fi + + func_show_eval '$RM "${nlist}I"' + if test -n "$global_symbol_to_import"; then + eval "$global_symbol_to_import"' < "$nlist"S > "$nlist"I' + fi + + echo >> "$output_objdir/$my_dlsyms" "\ + +/* The mapping between symbol names and symbols. */ +typedef struct { + const char *name; + void *address; +} lt_dlsymlist; +extern LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[];\ +" + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ +static void lt_syminit(void) +{ + LT_DLSYM_CONST lt_dlsymlist *symbol = lt_${my_prefix}_LTX_preloaded_symbols; + for (; symbol->name; ++symbol) + {" + $SED 's/.*/ if (STREQ (symbol->name, \"&\")) symbol->address = (void *) \&&;/' < "$nlist"I >> "$output_objdir/$my_dlsyms" + echo >> "$output_objdir/$my_dlsyms" "\ + } +}" + fi + echo >> "$output_objdir/$my_dlsyms" "\ +LT_DLSYM_CONST lt_dlsymlist +lt_${my_prefix}_LTX_preloaded_symbols[] = +{ {\"$my_originator\", (void *) 0}," + + if test -s "$nlist"I; then + echo >> "$output_objdir/$my_dlsyms" "\ + {\"@INIT@\", (void *) <_syminit}," + fi + + case $need_lib_prefix in + no) + eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + *) + eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms" + ;; + esac + echo >> "$output_objdir/$my_dlsyms" "\ + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt_${my_prefix}_LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif\ +" + } # !$opt_dry_run + + pic_flag_for_symtable= + case "$compile_command " in + *" -static "*) ;; + *) + case $host in + # compiling the symbol table file with pic_flag works around + # a FreeBSD bug that causes programs to crash when -lm is + # linked before any other PIC object. But we must not use + # pic_flag when linking with -static. The problem exists in + # FreeBSD 2.2.6 and is fixed in FreeBSD 3.1. + *-*-freebsd2.*|*-*-freebsd3.0*|*-*-freebsdelf3.0*) + pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;; + *-*-hpux*) + pic_flag_for_symtable=" $pic_flag" ;; + *) + $my_pic_p && pic_flag_for_symtable=" $pic_flag" + ;; + esac + ;; + esac + symtab_cflags= + for arg in $LTCFLAGS; do + case $arg in + -pie | -fpie | -fPIE) ;; + *) func_append symtab_cflags " $arg" ;; + esac + done + + # Now compile the dynamic symbol file. + func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?' + + # Clean up the generated files. + func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T" "${nlist}I"' + + # Transform the symbol file into the correct name. + symfileobj=$output_objdir/${my_outputname}S.$objext + case $host in + *cygwin* | *mingw* | *cegcc* ) + if test -f "$output_objdir/$my_outputname.def"; then + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"` + else + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + fi + ;; + *) + compile_command=`$ECHO "$compile_command" | $SED "s%@SYMFILE@%$symfileobj%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s%@SYMFILE@%$symfileobj%"` + ;; + esac + ;; + *) + func_fatal_error "unknown suffix for '$my_dlsyms'" + ;; + esac + else + # We keep going just in case the user didn't refer to + # lt_preloaded_symbols. The linker will fail if global_symbol_pipe + # really was required. + + # Nullify the symbol file. + compile_command=`$ECHO "$compile_command" | $SED "s% @SYMFILE@%%"` + finalize_command=`$ECHO "$finalize_command" | $SED "s% @SYMFILE@%%"` + fi +} + +# func_cygming_gnu_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is a GNU/binutils-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_gnu_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_gnu_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $EGREP ' (_head_[A-Za-z0-9_]+_[ad]l*|[A-Za-z0-9_]+_[ad]l*_iname)$'` + test -n "$func_cygming_gnu_implib_tmp" +} + +# func_cygming_ms_implib_p ARG +# This predicate returns with zero status (TRUE) if +# ARG is an MS-style import library. Returns +# with nonzero status (FALSE) otherwise. +func_cygming_ms_implib_p () +{ + $debug_cmd + + func_to_tool_file "$1" func_convert_file_msys_to_w32 + func_cygming_ms_implib_tmp=`$NM "$func_to_tool_file_result" | eval "$global_symbol_pipe" | $GREP '_NULL_IMPORT_DESCRIPTOR'` + test -n "$func_cygming_ms_implib_tmp" +} + +# func_win32_libid arg +# return the library type of file 'arg' +# +# Need a lot of goo to handle *both* DLLs and import libs +# Has to be a shell function in order to 'eat' the argument +# that is supplied when $file_magic_command is called. +# Despite the name, also deal with 64 bit binaries. +func_win32_libid () +{ + $debug_cmd + + win32_libid_type=unknown + win32_fileres=`file -L $1 2>/dev/null` + case $win32_fileres in + *ar\ archive\ import\ library*) # definitely import + win32_libid_type="x86 archive import" + ;; + *ar\ archive*) # could be an import, or static + # Keep the egrep pattern in sync with the one in _LT_CHECK_MAGIC_METHOD. + if eval $OBJDUMP -f $1 | $SED -e '10q' 2>/dev/null | + $EGREP 'file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' >/dev/null; then + case $nm_interface in + "MS dumpbin") + if func_cygming_ms_implib_p "$1" || + func_cygming_gnu_implib_p "$1" + then + win32_nmres=import + else + win32_nmres= + fi + ;; + *) + func_to_tool_file "$1" func_convert_file_msys_to_w32 + win32_nmres=`eval $NM -f posix -A \"$func_to_tool_file_result\" | + $SED -n -e ' + 1,100{ + / I /{ + s|.*|import| + p + q + } + }'` + ;; + esac + case $win32_nmres in + import*) win32_libid_type="x86 archive import";; + *) win32_libid_type="x86 archive static";; + esac + fi + ;; + *DLL*) + win32_libid_type="x86 DLL" + ;; + *executable*) # but shell scripts are "executable" too... + case $win32_fileres in + *MS\ Windows\ PE\ Intel*) + win32_libid_type="x86 DLL" + ;; + esac + ;; + esac + $ECHO "$win32_libid_type" +} + +# func_cygming_dll_for_implib ARG +# +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib () +{ + $debug_cmd + + sharedlib_from_linklib_result=`$DLLTOOL --identify-strict --identify "$1"` +} + +# func_cygming_dll_for_implib_fallback_core SECTION_NAME LIBNAMEs +# +# The is the core of a fallback implementation of a +# platform-specific function to extract the name of the +# DLL associated with the specified import library LIBNAME. +# +# SECTION_NAME is either .idata$6 or .idata$7, depending +# on the platform and compiler that created the implib. +# +# Echos the name of the DLL associated with the +# specified import library. +func_cygming_dll_for_implib_fallback_core () +{ + $debug_cmd + + match_literal=`$ECHO "$1" | $SED "$sed_make_literal_regex"` + $OBJDUMP -s --section "$1" "$2" 2>/dev/null | + $SED '/^Contents of section '"$match_literal"':/{ + # Place marker at beginning of archive member dllname section + s/.*/====MARK====/ + p + d + } + # These lines can sometimes be longer than 43 characters, but + # are always uninteresting + /:[ ]*file format pe[i]\{,1\}-/d + /^In archive [^:]*:/d + # Ensure marker is printed + /^====MARK====/p + # Remove all lines with less than 43 characters + /^.\{43\}/!d + # From remaining lines, remove first 43 characters + s/^.\{43\}//' | + $SED -n ' + # Join marker and all lines until next marker into a single line + /^====MARK====/ b para + H + $ b para + b + :para + x + s/\n//g + # Remove the marker + s/^====MARK====// + # Remove trailing dots and whitespace + s/[\. \t]*$// + # Print + /./p' | + # we now have a list, one entry per line, of the stringified + # contents of the appropriate section of all members of the + # archive that possess that section. Heuristic: eliminate + # all those that have a first or second character that is + # a '.' (that is, objdump's representation of an unprintable + # character.) This should work for all archives with less than + # 0x302f exports -- but will fail for DLLs whose name actually + # begins with a literal '.' or a single character followed by + # a '.'. + # + # Of those that remain, print the first one. + $SED -e '/^\./d;/^.\./d;q' +} + +# func_cygming_dll_for_implib_fallback ARG +# Platform-specific function to extract the +# name of the DLL associated with the specified +# import library ARG. +# +# This fallback implementation is for use when $DLLTOOL +# does not support the --identify-strict option. +# Invoked by eval'ing the libtool variable +# $sharedlib_from_linklib_cmd +# Result is available in the variable +# $sharedlib_from_linklib_result +func_cygming_dll_for_implib_fallback () +{ + $debug_cmd + + if func_cygming_gnu_implib_p "$1"; then + # binutils import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$7' "$1"` + elif func_cygming_ms_implib_p "$1"; then + # ms-generated import library + sharedlib_from_linklib_result=`func_cygming_dll_for_implib_fallback_core '.idata$6' "$1"` + else + # unknown + sharedlib_from_linklib_result= + fi +} + + +# func_extract_an_archive dir oldlib +func_extract_an_archive () +{ + $debug_cmd + + f_ex_an_ar_dir=$1; shift + f_ex_an_ar_oldlib=$1 + if test yes = "$lock_old_archive_extraction"; then + lockfile=$f_ex_an_ar_oldlib.lock + until $opt_dry_run || ln "$progpath" "$lockfile" 2>/dev/null; do + func_echo "Waiting for $lockfile to be removed" + sleep 2 + done + fi + func_show_eval "(cd \$f_ex_an_ar_dir && $AR x \"\$f_ex_an_ar_oldlib\")" \ + 'stat=$?; rm -f "$lockfile"; exit $stat' + if test yes = "$lock_old_archive_extraction"; then + $opt_dry_run || rm -f "$lockfile" + fi + if ($AR t "$f_ex_an_ar_oldlib" | sort | sort -uc >/dev/null 2>&1); then + : + else + func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib" + fi +} + + +# func_extract_archives gentop oldlib ... +func_extract_archives () +{ + $debug_cmd + + my_gentop=$1; shift + my_oldlibs=${1+"$@"} + my_oldobjs= + my_xlib= + my_xabs= + my_xdir= + + for my_xlib in $my_oldlibs; do + # Extract the objects. + case $my_xlib in + [\\/]* | [A-Za-z]:[\\/]*) my_xabs=$my_xlib ;; + *) my_xabs=`pwd`"/$my_xlib" ;; + esac + func_basename "$my_xlib" + my_xlib=$func_basename_result + my_xlib_u=$my_xlib + while :; do + case " $extracted_archives " in + *" $my_xlib_u "*) + func_arith $extracted_serial + 1 + extracted_serial=$func_arith_result + my_xlib_u=lt$extracted_serial-$my_xlib ;; + *) break ;; + esac + done + extracted_archives="$extracted_archives $my_xlib_u" + my_xdir=$my_gentop/$my_xlib_u + + func_mkdir_p "$my_xdir" + + case $host in + *-darwin*) + func_verbose "Extracting $my_xabs" + # Do not bother doing anything if just a dry run + $opt_dry_run || { + darwin_orig_dir=`pwd` + cd $my_xdir || exit $? + darwin_archive=$my_xabs + darwin_curdir=`pwd` + func_basename "$darwin_archive" + darwin_base_archive=$func_basename_result + darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true` + if test -n "$darwin_arches"; then + darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'` + darwin_arch= + func_verbose "$darwin_base_archive has multiple architectures $darwin_arches" + for darwin_arch in $darwin_arches; do + func_mkdir_p "unfat-$$/$darwin_base_archive-$darwin_arch" + $LIPO -thin $darwin_arch -output "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" "$darwin_archive" + cd "unfat-$$/$darwin_base_archive-$darwin_arch" + func_extract_an_archive "`pwd`" "$darwin_base_archive" + cd "$darwin_curdir" + $RM "unfat-$$/$darwin_base_archive-$darwin_arch/$darwin_base_archive" + done # $darwin_arches + ## Okay now we've a bunch of thin objects, gotta fatten them up :) + darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$sed_basename" | sort -u` + darwin_file= + darwin_files= + for darwin_file in $darwin_filelist; do + darwin_files=`find unfat-$$ -name $darwin_file -print | sort | $NL2SP` + $LIPO -create -output "$darwin_file" $darwin_files + done # $darwin_filelist + $RM -rf unfat-$$ + cd "$darwin_orig_dir" + else + cd $darwin_orig_dir + func_extract_an_archive "$my_xdir" "$my_xabs" + fi # $darwin_arches + } # !$opt_dry_run + ;; + *) + func_extract_an_archive "$my_xdir" "$my_xabs" + ;; + esac + my_oldobjs="$my_oldobjs "`find $my_xdir -name \*.$objext -print -o -name \*.lo -print | sort | $NL2SP` + done + + func_extract_archives_result=$my_oldobjs +} + + +# func_emit_wrapper [arg=no] +# +# Emit a libtool wrapper script on stdout. +# Don't directly open a file because we may want to +# incorporate the script contents within a cygwin/mingw +# wrapper executable. Must ONLY be called from within +# func_mode_link because it depends on a number of variables +# set therein. +# +# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR +# variable will take. If 'yes', then the emitted script +# will assume that the directory where it is stored is +# the $objdir directory. This is a cygwin/mingw-specific +# behavior. +func_emit_wrapper () +{ + func_emit_wrapper_arg1=${1-no} + + $ECHO "\ +#! $SHELL + +# $output - temporary wrapper script for $objdir/$outputname +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# The $output program cannot be directly executed until all the libtool +# libraries that it depends on are installed. +# +# This wrapper script should never be moved out of the build directory. +# If it is, it will not operate correctly. + +# Sed substitution that helps us do robust quoting. It backslashifies +# metacharacters that are still active within double-quoted strings. +sed_quote_subst='$sed_quote_subst' + +# Be Bourne compatible +if test -n \"\${ZSH_VERSION+set}\" && (emulate sh) >/dev/null 2>&1; then + emulate sh + NULLCMD=: + # Zsh 3.x and 4.x performs word splitting on \${1+\"\$@\"}, which + # is contrary to our usage. Disable this feature. + alias -g '\${1+\"\$@\"}'='\"\$@\"' + setopt NO_GLOB_SUBST +else + case \`(set -o) 2>/dev/null\` in *posix*) set -o posix;; esac +fi +BIN_SH=xpg4; export BIN_SH # for Tru64 +DUALCASE=1; export DUALCASE # for MKS sh + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +relink_command=\"$relink_command\" + +# This environment variable determines our operation mode. +if test \"\$libtool_install_magic\" = \"$magic\"; then + # install mode needs the following variables: + generated_by_libtool_version='$macro_version' + notinst_deplibs='$notinst_deplibs' +else + # When we are sourced in execute mode, \$file and \$ECHO are already set. + if test \"\$libtool_execute_magic\" != \"$magic\"; then + file=\"\$0\"" + + qECHO=`$ECHO "$ECHO" | $SED "$sed_quote_subst"` + $ECHO "\ + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$1 +_LTECHO_EOF' +} + ECHO=\"$qECHO\" + fi + +# Very basic option parsing. These options are (a) specific to +# the libtool wrapper, (b) are identical between the wrapper +# /script/ and the wrapper /executable/ that is used only on +# windows platforms, and (c) all begin with the string "--lt-" +# (application programs are unlikely to have options that match +# this pattern). +# +# There are only two supported options: --lt-debug and +# --lt-dump-script. There is, deliberately, no --lt-help. +# +# The first argument to this parsing function should be the +# script's $0 value, followed by "$@". +lt_option_debug= +func_parse_lt_options () +{ + lt_script_arg0=\$0 + shift + for lt_opt + do + case \"\$lt_opt\" in + --lt-debug) lt_option_debug=1 ;; + --lt-dump-script) + lt_dump_D=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%/[^/]*$%%'\` + test \"X\$lt_dump_D\" = \"X\$lt_script_arg0\" && lt_dump_D=. + lt_dump_F=\`\$ECHO \"X\$lt_script_arg0\" | $SED -e 's/^X//' -e 's%^.*/%%'\` + cat \"\$lt_dump_D/\$lt_dump_F\" + exit 0 + ;; + --lt-*) + \$ECHO \"Unrecognized --lt- option: '\$lt_opt'\" 1>&2 + exit 1 + ;; + esac + done + + # Print the debug banner immediately: + if test -n \"\$lt_option_debug\"; then + echo \"$outputname:$output:\$LINENO: libtool wrapper (GNU $PACKAGE) $VERSION\" 1>&2 + fi +} + +# Used when --lt-debug. Prints its arguments to stdout +# (redirection is the responsibility of the caller) +func_lt_dump_args () +{ + lt_dump_args_N=1; + for lt_arg + do + \$ECHO \"$outputname:$output:\$LINENO: newargv[\$lt_dump_args_N]: \$lt_arg\" + lt_dump_args_N=\`expr \$lt_dump_args_N + 1\` + done +} + +# Core function for launching the target application +func_exec_program_core () +{ +" + case $host in + # Backslashes separate directories on plain windows + *-*-mingw | *-*-os2* | *-cegcc*) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir\\\\\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir\\\\\$program\" \${1+\"\$@\"} +" + ;; + + *) + $ECHO "\ + if test -n \"\$lt_option_debug\"; then + \$ECHO \"$outputname:$output:\$LINENO: newargv[0]: \$progdir/\$program\" 1>&2 + func_lt_dump_args \${1+\"\$@\"} 1>&2 + fi + exec \"\$progdir/\$program\" \${1+\"\$@\"} +" + ;; + esac + $ECHO "\ + \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2 + exit 1 +} + +# A function to encapsulate launching the target application +# Strips options in the --lt-* namespace from \$@ and +# launches target application with the remaining arguments. +func_exec_program () +{ + case \" \$* \" in + *\\ --lt-*) + for lt_wr_arg + do + case \$lt_wr_arg in + --lt-*) ;; + *) set x \"\$@\" \"\$lt_wr_arg\"; shift;; + esac + shift + done ;; + esac + func_exec_program_core \${1+\"\$@\"} +} + + # Parse options + func_parse_lt_options \"\$0\" \${1+\"\$@\"} + + # Find the directory that this script lives in. + thisdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*$%%'\` + test \"x\$thisdir\" = \"x\$file\" && thisdir=. + + # Follow symbolic links until we get to the real thisdir. + file=\`ls -ld \"\$file\" | $SED -n 's/.*-> //p'\` + while test -n \"\$file\"; do + destdir=\`\$ECHO \"\$file\" | $SED 's%/[^/]*\$%%'\` + + # If there was a directory component, then change thisdir. + if test \"x\$destdir\" != \"x\$file\"; then + case \"\$destdir\" in + [\\\\/]* | [A-Za-z]:[\\\\/]*) thisdir=\"\$destdir\" ;; + *) thisdir=\"\$thisdir/\$destdir\" ;; + esac + fi + + file=\`\$ECHO \"\$file\" | $SED 's%^.*/%%'\` + file=\`ls -ld \"\$thisdir/\$file\" | $SED -n 's/.*-> //p'\` + done + + # Usually 'no', except on cygwin/mingw when embedded into + # the cwrapper. + WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_arg1 + if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then + # special case for '.' + if test \"\$thisdir\" = \".\"; then + thisdir=\`pwd\` + fi + # remove .libs from thisdir + case \"\$thisdir\" in + *[\\\\/]$objdir ) thisdir=\`\$ECHO \"\$thisdir\" | $SED 's%[\\\\/][^\\\\/]*$%%'\` ;; + $objdir ) thisdir=. ;; + esac + fi + + # Try to get the absolute directory name. + absdir=\`cd \"\$thisdir\" && pwd\` + test -n \"\$absdir\" && thisdir=\"\$absdir\" +" + + if test yes = "$fast_install"; then + $ECHO "\ + program=lt-'$outputname'$exeext + progdir=\"\$thisdir/$objdir\" + + if test ! -f \"\$progdir/\$program\" || + { file=\`ls -1dt \"\$progdir/\$program\" \"\$progdir/../\$program\" 2>/dev/null | $SED 1q\`; \\ + test \"X\$file\" != \"X\$progdir/\$program\"; }; then + + file=\"\$\$-\$program\" + + if test ! -d \"\$progdir\"; then + $MKDIR \"\$progdir\" + else + $RM \"\$progdir/\$file\" + fi" + + $ECHO "\ + + # relink executable if necessary + if test -n \"\$relink_command\"; then + if relink_command_output=\`eval \$relink_command 2>&1\`; then : + else + \$ECHO \"\$relink_command_output\" >&2 + $RM \"\$progdir/\$file\" + exit 1 + fi + fi + + $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null || + { $RM \"\$progdir/\$program\"; + $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; } + $RM \"\$progdir/\$file\" + fi" + else + $ECHO "\ + program='$outputname' + progdir=\"\$thisdir/$objdir\" +" + fi + + $ECHO "\ + + if test -f \"\$progdir/\$program\"; then" + + # fixup the dll searchpath if we need to. + # + # Fix the DLL searchpath if we need to. Do this before prepending + # to shlibpath, because on Windows, both are PATH and uninstalled + # libraries must come first. + if test -n "$dllsearchpath"; then + $ECHO "\ + # Add the dll search path components to the executable PATH + PATH=$dllsearchpath:\$PATH +" + fi + + # Export our shlibpath_var if we have one. + if test yes = "$shlibpath_overrides_runpath" && test -n "$shlibpath_var" && test -n "$temp_rpath"; then + $ECHO "\ + # Add our own library path to $shlibpath_var + $shlibpath_var=\"$temp_rpath\$$shlibpath_var\" + + # Some systems cannot cope with colon-terminated $shlibpath_var + # The second colon is a workaround for a bug in BeOS R4 sed + $shlibpath_var=\`\$ECHO \"\$$shlibpath_var\" | $SED 's/::*\$//'\` + + export $shlibpath_var +" + fi + + $ECHO "\ + if test \"\$libtool_execute_magic\" != \"$magic\"; then + # Run the actual program with our arguments. + func_exec_program \${1+\"\$@\"} + fi + else + # The program doesn't exist. + \$ECHO \"\$0: error: '\$progdir/\$program' does not exist\" 1>&2 + \$ECHO \"This script is just a wrapper for \$program.\" 1>&2 + \$ECHO \"See the $PACKAGE documentation for more information.\" 1>&2 + exit 1 + fi +fi\ +" +} + + +# func_emit_cwrapperexe_src +# emit the source code for a wrapper executable on stdout +# Must ONLY be called from within func_mode_link because +# it depends on a number of variable set therein. +func_emit_cwrapperexe_src () +{ + cat < +#include +#ifdef _MSC_VER +# include +# include +# include +#else +# include +# include +# ifdef __CYGWIN__ +# include +# endif +#endif +#include +#include +#include +#include +#include +#include +#include +#include + +#define STREQ(s1, s2) (strcmp ((s1), (s2)) == 0) + +/* declarations of non-ANSI functions */ +#if defined __MINGW32__ +# ifdef __STRICT_ANSI__ +int _putenv (const char *); +# endif +#elif defined __CYGWIN__ +# ifdef __STRICT_ANSI__ +char *realpath (const char *, char *); +int putenv (char *); +int setenv (const char *, const char *, int); +# endif +/* #elif defined other_platform || defined ... */ +#endif + +/* portability defines, excluding path handling macros */ +#if defined _MSC_VER +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +# define S_IXUSR _S_IEXEC +#elif defined __MINGW32__ +# define setmode _setmode +# define stat _stat +# define chmod _chmod +# define getcwd _getcwd +# define putenv _putenv +#elif defined __CYGWIN__ +# define HAVE_SETENV +# define FOPEN_WB "wb" +/* #elif defined other platforms ... */ +#endif + +#if defined PATH_MAX +# define LT_PATHMAX PATH_MAX +#elif defined MAXPATHLEN +# define LT_PATHMAX MAXPATHLEN +#else +# define LT_PATHMAX 1024 +#endif + +#ifndef S_IXOTH +# define S_IXOTH 0 +#endif +#ifndef S_IXGRP +# define S_IXGRP 0 +#endif + +/* path handling portability macros */ +#ifndef DIR_SEPARATOR +# define DIR_SEPARATOR '/' +# define PATH_SEPARATOR ':' +#endif + +#if defined _WIN32 || defined __MSDOS__ || defined __DJGPP__ || \ + defined __OS2__ +# define HAVE_DOS_BASED_FILE_SYSTEM +# define FOPEN_WB "wb" +# ifndef DIR_SEPARATOR_2 +# define DIR_SEPARATOR_2 '\\' +# endif +# ifndef PATH_SEPARATOR_2 +# define PATH_SEPARATOR_2 ';' +# endif +#endif + +#ifndef DIR_SEPARATOR_2 +# define IS_DIR_SEPARATOR(ch) ((ch) == DIR_SEPARATOR) +#else /* DIR_SEPARATOR_2 */ +# define IS_DIR_SEPARATOR(ch) \ + (((ch) == DIR_SEPARATOR) || ((ch) == DIR_SEPARATOR_2)) +#endif /* DIR_SEPARATOR_2 */ + +#ifndef PATH_SEPARATOR_2 +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR) +#else /* PATH_SEPARATOR_2 */ +# define IS_PATH_SEPARATOR(ch) ((ch) == PATH_SEPARATOR_2) +#endif /* PATH_SEPARATOR_2 */ + +#ifndef FOPEN_WB +# define FOPEN_WB "w" +#endif +#ifndef _O_BINARY +# define _O_BINARY 0 +#endif + +#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type))) +#define XFREE(stale) do { \ + if (stale) { free (stale); stale = 0; } \ +} while (0) + +#if defined LT_DEBUGWRAPPER +static int lt_debug = 1; +#else +static int lt_debug = 0; +#endif + +const char *program_name = "libtool-wrapper"; /* in case xstrdup fails */ + +void *xmalloc (size_t num); +char *xstrdup (const char *string); +const char *base_name (const char *name); +char *find_executable (const char *wrapper); +char *chase_symlinks (const char *pathspec); +int make_executable (const char *path); +int check_executable (const char *path); +char *strendzap (char *str, const char *pat); +void lt_debugprintf (const char *file, int line, const char *fmt, ...); +void lt_fatal (const char *file, int line, const char *message, ...); +static const char *nonnull (const char *s); +static const char *nonempty (const char *s); +void lt_setenv (const char *name, const char *value); +char *lt_extend_str (const char *orig_value, const char *add, int to_end); +void lt_update_exe_path (const char *name, const char *value); +void lt_update_lib_path (const char *name, const char *value); +char **prepare_spawn (char **argv); +void lt_dump_script (FILE *f); +EOF + + cat <= 0) + && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH))) + return 1; + else + return 0; +} + +int +make_executable (const char *path) +{ + int rval = 0; + struct stat st; + + lt_debugprintf (__FILE__, __LINE__, "(make_executable): %s\n", + nonempty (path)); + if ((!path) || (!*path)) + return 0; + + if (stat (path, &st) >= 0) + { + rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR); + } + return rval; +} + +/* Searches for the full path of the wrapper. Returns + newly allocated full path name if found, NULL otherwise + Does not chase symlinks, even on platforms that support them. +*/ +char * +find_executable (const char *wrapper) +{ + int has_slash = 0; + const char *p; + const char *p_next; + /* static buffer for getcwd */ + char tmp[LT_PATHMAX + 1]; + size_t tmp_len; + char *concat_name; + + lt_debugprintf (__FILE__, __LINE__, "(find_executable): %s\n", + nonempty (wrapper)); + + if ((wrapper == NULL) || (*wrapper == '\0')) + return NULL; + + /* Absolute path? */ +#if defined HAVE_DOS_BASED_FILE_SYSTEM + if (isalpha ((unsigned char) wrapper[0]) && wrapper[1] == ':') + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + else + { +#endif + if (IS_DIR_SEPARATOR (wrapper[0])) + { + concat_name = xstrdup (wrapper); + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } +#if defined HAVE_DOS_BASED_FILE_SYSTEM + } +#endif + + for (p = wrapper; *p; p++) + if (*p == '/') + { + has_slash = 1; + break; + } + if (!has_slash) + { + /* no slashes; search PATH */ + const char *path = getenv ("PATH"); + if (path != NULL) + { + for (p = path; *p; p = p_next) + { + const char *q; + size_t p_len; + for (q = p; *q; q++) + if (IS_PATH_SEPARATOR (*q)) + break; + p_len = (size_t) (q - p); + p_next = (*q == '\0' ? q : q + 1); + if (p_len == 0) + { + /* empty path: current directory */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = + XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + } + else + { + concat_name = + XMALLOC (char, p_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, p, p_len); + concat_name[p_len] = '/'; + strcpy (concat_name + p_len + 1, wrapper); + } + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + } + } + /* not found in PATH; assume curdir */ + } + /* Relative path | not found in path: prepend cwd */ + if (getcwd (tmp, LT_PATHMAX) == NULL) + lt_fatal (__FILE__, __LINE__, "getcwd failed: %s", + nonnull (strerror (errno))); + tmp_len = strlen (tmp); + concat_name = XMALLOC (char, tmp_len + 1 + strlen (wrapper) + 1); + memcpy (concat_name, tmp, tmp_len); + concat_name[tmp_len] = '/'; + strcpy (concat_name + tmp_len + 1, wrapper); + + if (check_executable (concat_name)) + return concat_name; + XFREE (concat_name); + return NULL; +} + +char * +chase_symlinks (const char *pathspec) +{ +#ifndef S_ISLNK + return xstrdup (pathspec); +#else + char buf[LT_PATHMAX]; + struct stat s; + char *tmp_pathspec = xstrdup (pathspec); + char *p; + int has_symlinks = 0; + while (strlen (tmp_pathspec) && !has_symlinks) + { + lt_debugprintf (__FILE__, __LINE__, + "checking path component for symlinks: %s\n", + tmp_pathspec); + if (lstat (tmp_pathspec, &s) == 0) + { + if (S_ISLNK (s.st_mode) != 0) + { + has_symlinks = 1; + break; + } + + /* search backwards for last DIR_SEPARATOR */ + p = tmp_pathspec + strlen (tmp_pathspec) - 1; + while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + p--; + if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p))) + { + /* no more DIR_SEPARATORS left */ + break; + } + *p = '\0'; + } + else + { + lt_fatal (__FILE__, __LINE__, + "error accessing file \"%s\": %s", + tmp_pathspec, nonnull (strerror (errno))); + } + } + XFREE (tmp_pathspec); + + if (!has_symlinks) + { + return xstrdup (pathspec); + } + + tmp_pathspec = realpath (pathspec, buf); + if (tmp_pathspec == 0) + { + lt_fatal (__FILE__, __LINE__, + "could not follow symlinks for %s", pathspec); + } + return xstrdup (tmp_pathspec); +#endif +} + +char * +strendzap (char *str, const char *pat) +{ + size_t len, patlen; + + assert (str != NULL); + assert (pat != NULL); + + len = strlen (str); + patlen = strlen (pat); + + if (patlen <= len) + { + str += len - patlen; + if (STREQ (str, pat)) + *str = '\0'; + } + return str; +} + +void +lt_debugprintf (const char *file, int line, const char *fmt, ...) +{ + va_list args; + if (lt_debug) + { + (void) fprintf (stderr, "%s:%s:%d: ", program_name, file, line); + va_start (args, fmt); + (void) vfprintf (stderr, fmt, args); + va_end (args); + } +} + +static void +lt_error_core (int exit_status, const char *file, + int line, const char *mode, + const char *message, va_list ap) +{ + fprintf (stderr, "%s:%s:%d: %s: ", program_name, file, line, mode); + vfprintf (stderr, message, ap); + fprintf (stderr, ".\n"); + + if (exit_status >= 0) + exit (exit_status); +} + +void +lt_fatal (const char *file, int line, const char *message, ...) +{ + va_list ap; + va_start (ap, message); + lt_error_core (EXIT_FAILURE, file, line, "FATAL", message, ap); + va_end (ap); +} + +static const char * +nonnull (const char *s) +{ + return s ? s : "(null)"; +} + +static const char * +nonempty (const char *s) +{ + return (s && !*s) ? "(empty)" : nonnull (s); +} + +void +lt_setenv (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_setenv) setting '%s' to '%s'\n", + nonnull (name), nonnull (value)); + { +#ifdef HAVE_SETENV + /* always make a copy, for consistency with !HAVE_SETENV */ + char *str = xstrdup (value); + setenv (name, str, 1); +#else + size_t len = strlen (name) + 1 + strlen (value) + 1; + char *str = XMALLOC (char, len); + sprintf (str, "%s=%s", name, value); + if (putenv (str) != EXIT_SUCCESS) + { + XFREE (str); + } +#endif + } +} + +char * +lt_extend_str (const char *orig_value, const char *add, int to_end) +{ + char *new_value; + if (orig_value && *orig_value) + { + size_t orig_value_len = strlen (orig_value); + size_t add_len = strlen (add); + new_value = XMALLOC (char, add_len + orig_value_len + 1); + if (to_end) + { + strcpy (new_value, orig_value); + strcpy (new_value + orig_value_len, add); + } + else + { + strcpy (new_value, add); + strcpy (new_value + add_len, orig_value); + } + } + else + { + new_value = xstrdup (add); + } + return new_value; +} + +void +lt_update_exe_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_exe_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + /* some systems can't cope with a ':'-terminated path #' */ + size_t len = strlen (new_value); + while ((len > 0) && IS_PATH_SEPARATOR (new_value[len-1])) + { + new_value[--len] = '\0'; + } + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +void +lt_update_lib_path (const char *name, const char *value) +{ + lt_debugprintf (__FILE__, __LINE__, + "(lt_update_lib_path) modifying '%s' by prepending '%s'\n", + nonnull (name), nonnull (value)); + + if (name && *name && value && *value) + { + char *new_value = lt_extend_str (getenv (name), value, 0); + lt_setenv (name, new_value); + XFREE (new_value); + } +} + +EOF + case $host_os in + mingw*) + cat <<"EOF" + +/* Prepares an argument vector before calling spawn(). + Note that spawn() does not by itself call the command interpreter + (getenv ("COMSPEC") != NULL ? getenv ("COMSPEC") : + ({ OSVERSIONINFO v; v.dwOSVersionInfoSize = sizeof(OSVERSIONINFO); + GetVersionEx(&v); + v.dwPlatformId == VER_PLATFORM_WIN32_NT; + }) ? "cmd.exe" : "command.com"). + Instead it simply concatenates the arguments, separated by ' ', and calls + CreateProcess(). We must quote the arguments since Win32 CreateProcess() + interprets characters like ' ', '\t', '\\', '"' (but not '<' and '>') in a + special way: + - Space and tab are interpreted as delimiters. They are not treated as + delimiters if they are surrounded by double quotes: "...". + - Unescaped double quotes are removed from the input. Their only effect is + that within double quotes, space and tab are treated like normal + characters. + - Backslashes not followed by double quotes are not special. + - But 2*n+1 backslashes followed by a double quote become + n backslashes followed by a double quote (n >= 0): + \" -> " + \\\" -> \" + \\\\\" -> \\" + */ +#define SHELL_SPECIAL_CHARS "\"\\ \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +#define SHELL_SPACE_CHARS " \001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037" +char ** +prepare_spawn (char **argv) +{ + size_t argc; + char **new_argv; + size_t i; + + /* Count number of arguments. */ + for (argc = 0; argv[argc] != NULL; argc++) + ; + + /* Allocate new argument vector. */ + new_argv = XMALLOC (char *, argc + 1); + + /* Put quoted arguments into the new argument vector. */ + for (i = 0; i < argc; i++) + { + const char *string = argv[i]; + + if (string[0] == '\0') + new_argv[i] = xstrdup ("\"\""); + else if (strpbrk (string, SHELL_SPECIAL_CHARS) != NULL) + { + int quote_around = (strpbrk (string, SHELL_SPACE_CHARS) != NULL); + size_t length; + unsigned int backslashes; + const char *s; + char *quoted_string; + char *p; + + length = 0; + backslashes = 0; + if (quote_around) + length++; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + length += backslashes + 1; + length++; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + length += backslashes + 1; + + quoted_string = XMALLOC (char, length + 1); + + p = quoted_string; + backslashes = 0; + if (quote_around) + *p++ = '"'; + for (s = string; *s != '\0'; s++) + { + char c = *s; + if (c == '"') + { + unsigned int j; + for (j = backslashes + 1; j > 0; j--) + *p++ = '\\'; + } + *p++ = c; + if (c == '\\') + backslashes++; + else + backslashes = 0; + } + if (quote_around) + { + unsigned int j; + for (j = backslashes; j > 0; j--) + *p++ = '\\'; + *p++ = '"'; + } + *p = '\0'; + + new_argv[i] = quoted_string; + } + else + new_argv[i] = (char *) string; + } + new_argv[argc] = NULL; + + return new_argv; +} +EOF + ;; + esac + + cat <<"EOF" +void lt_dump_script (FILE* f) +{ +EOF + func_emit_wrapper yes | + $SED -n -e ' +s/^\(.\{79\}\)\(..*\)/\1\ +\2/ +h +s/\([\\"]\)/\\\1/g +s/$/\\n/ +s/\([^\n]*\).*/ fputs ("\1", f);/p +g +D' + cat <<"EOF" +} +EOF +} +# end: func_emit_cwrapperexe_src + +# func_win32_import_lib_p ARG +# True if ARG is an import lib, as indicated by $file_magic_cmd +func_win32_import_lib_p () +{ + $debug_cmd + + case `eval $file_magic_cmd \"\$1\" 2>/dev/null | $SED -e 10q` in + *import*) : ;; + *) false ;; + esac +} + +# func_suncc_cstd_abi +# !!ONLY CALL THIS FOR SUN CC AFTER $compile_command IS FULLY EXPANDED!! +# Several compiler flags select an ABI that is incompatible with the +# Cstd library. Avoid specifying it if any are in CXXFLAGS. +func_suncc_cstd_abi () +{ + $debug_cmd + + case " $compile_command " in + *" -compat=g "*|*\ -std=c++[0-9][0-9]\ *|*" -library=stdcxx4 "*|*" -library=stlport4 "*) + suncc_use_cstd_abi=no + ;; + *) + suncc_use_cstd_abi=yes + ;; + esac +} + +# func_mode_link arg... +func_mode_link () +{ + $debug_cmd + + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + # It is impossible to link a dll without this setting, and + # we shouldn't force the makefile maintainer to figure out + # what system we are compiling for in order to pass an extra + # flag for every libtool invocation. + # allow_undefined=no + + # FIXME: Unfortunately, there are problems with the above when trying + # to make a dll that has undefined symbols, in which case not + # even a static library is built. For now, we need to specify + # -no-undefined on the libtool link line when we can be certain + # that all symbols are satisfied, otherwise we get a static library. + allow_undefined=yes + ;; + *) + allow_undefined=yes + ;; + esac + libtool_args=$nonopt + base_compile="$nonopt $@" + compile_command=$nonopt + finalize_command=$nonopt + + compile_rpath= + finalize_rpath= + compile_shlibpath= + finalize_shlibpath= + convenience= + old_convenience= + deplibs= + old_deplibs= + compiler_flags= + linker_flags= + dllsearchpath= + lib_search_path=`pwd` + inst_prefix_dir= + new_inherited_linker_flags= + + avoid_version=no + bindir= + dlfiles= + dlprefiles= + dlself=no + export_dynamic=no + export_symbols= + export_symbols_regex= + generated= + libobjs= + ltlibs= + module=no + no_install=no + objs= + os2dllname= + non_pic_objects= + precious_files_regex= + prefer_static_libs=no + preload=false + prev= + prevarg= + release= + rpath= + xrpath= + perm_rpath= + temp_rpath= + thread_safe=no + vinfo= + vinfo_number=no + weak_libs= + single_module=$wl-single_module + func_infer_tag $base_compile + + # We need to know -static, to get the right output filenames. + for arg + do + case $arg in + -shared) + test yes != "$build_libtool_libs" \ + && func_fatal_configuration "cannot build a shared library" + build_old_libs=no + break + ;; + -all-static | -static | -static-libtool-libs) + case $arg in + -all-static) + if test yes = "$build_libtool_libs" && test -z "$link_static_flag"; then + func_warning "complete static linking is impossible in this configuration" + fi + if test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + -static) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=built + ;; + -static-libtool-libs) + if test -z "$pic_flag" && test -n "$link_static_flag"; then + dlopen_self=$dlopen_self_static + fi + prefer_static_libs=yes + ;; + esac + build_libtool_libs=no + build_old_libs=yes + break + ;; + esac + done + + # See if our shared archives depend on static archives. + test -n "$old_archive_from_new_cmds" && build_old_libs=yes + + # Go through the arguments, transforming them on the way. + while test "$#" -gt 0; do + arg=$1 + shift + func_quote_for_eval "$arg" + qarg=$func_quote_for_eval_unquoted_result + func_append libtool_args " $func_quote_for_eval_result" + + # If the previous option needs an argument, assign it. + if test -n "$prev"; then + case $prev in + output) + func_append compile_command " @OUTPUT@" + func_append finalize_command " @OUTPUT@" + ;; + esac + + case $prev in + bindir) + bindir=$arg + prev= + continue + ;; + dlfiles|dlprefiles) + $preload || { + # Add the symbol object into the linking commands. + func_append compile_command " @SYMFILE@" + func_append finalize_command " @SYMFILE@" + preload=: + } + case $arg in + *.la | *.lo) ;; # We handle these cases below. + force) + if test no = "$dlself"; then + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + self) + if test dlprefiles = "$prev"; then + dlself=yes + elif test dlfiles = "$prev" && test yes != "$dlopen_self"; then + dlself=yes + else + dlself=needless + export_dynamic=yes + fi + prev= + continue + ;; + *) + if test dlfiles = "$prev"; then + func_append dlfiles " $arg" + else + func_append dlprefiles " $arg" + fi + prev= + continue + ;; + esac + ;; + expsyms) + export_symbols=$arg + test -f "$arg" \ + || func_fatal_error "symbol file '$arg' does not exist" + prev= + continue + ;; + expsyms_regex) + export_symbols_regex=$arg + prev= + continue + ;; + framework) + case $host in + *-*-darwin*) + case "$deplibs " in + *" $qarg.ltframework "*) ;; + *) func_append deplibs " $qarg.ltframework" # this is fixed later + ;; + esac + ;; + esac + prev= + continue + ;; + inst_prefix) + inst_prefix_dir=$arg + prev= + continue + ;; + mllvm) + # Clang does not use LLVM to link, so we can simply discard any + # '-mllvm $arg' options when doing the link step. + prev= + continue + ;; + objectlist) + if test -f "$arg"; then + save_arg=$arg + moreargs= + for fil in `cat "$save_arg"` + do +# func_append moreargs " $fil" + arg=$fil + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + if test none != "$pic_object"; then + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + fi + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + done + else + func_fatal_error "link input file '$arg' does not exist" + fi + arg=$save_arg + prev= + continue + ;; + os2dllname) + os2dllname=$arg + prev= + continue + ;; + precious_regex) + precious_files_regex=$arg + prev= + continue + ;; + release) + release=-$arg + prev= + continue + ;; + rpath | xrpath) + # We need an absolute path. + case $arg in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + if test rpath = "$prev"; then + case "$rpath " in + *" $arg "*) ;; + *) func_append rpath " $arg" ;; + esac + else + case "$xrpath " in + *" $arg "*) ;; + *) func_append xrpath " $arg" ;; + esac + fi + prev= + continue + ;; + shrext) + shrext_cmds=$arg + prev= + continue + ;; + weak) + func_append weak_libs " $arg" + prev= + continue + ;; + xcclinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xcompiler) + func_append compiler_flags " $qarg" + prev= + func_append compile_command " $qarg" + func_append finalize_command " $qarg" + continue + ;; + xlinker) + func_append linker_flags " $qarg" + func_append compiler_flags " $wl$qarg" + prev= + func_append compile_command " $wl$qarg" + func_append finalize_command " $wl$qarg" + continue + ;; + *) + eval "$prev=\"\$arg\"" + prev= + continue + ;; + esac + fi # test -n "$prev" + + prevarg=$arg + + case $arg in + -all-static) + if test -n "$link_static_flag"; then + # See comment for -static flag below, for more details. + func_append compile_command " $link_static_flag" + func_append finalize_command " $link_static_flag" + fi + continue + ;; + + -allow-undefined) + # FIXME: remove this flag sometime in the future. + func_fatal_error "'-allow-undefined' must not be used because it is the default" + ;; + + -avoid-version) + avoid_version=yes + continue + ;; + + -bindir) + prev=bindir + continue + ;; + + -dlopen) + prev=dlfiles + continue + ;; + + -dlpreopen) + prev=dlprefiles + continue + ;; + + -export-dynamic) + export_dynamic=yes + continue + ;; + + -export-symbols | -export-symbols-regex) + if test -n "$export_symbols" || test -n "$export_symbols_regex"; then + func_fatal_error "more than one -exported-symbols argument is not allowed" + fi + if test X-export-symbols = "X$arg"; then + prev=expsyms + else + prev=expsyms_regex + fi + continue + ;; + + -framework) + prev=framework + continue + ;; + + -inst-prefix-dir) + prev=inst_prefix + continue + ;; + + # The native IRIX linker understands -LANG:*, -LIST:* and -LNO:* + # so, if we see these flags be careful not to treat them like -L + -L[A-Z][A-Z]*:*) + case $with_gcc/$host in + no/*-*-irix* | /*-*-irix*) + func_append compile_command " $arg" + func_append finalize_command " $arg" + ;; + esac + continue + ;; + + -L*) + func_stripname "-L" '' "$arg" + if test -z "$func_stripname_result"; then + if test "$#" -gt 0; then + func_fatal_error "require no space between '-L' and '$1'" + else + func_fatal_error "need path for '-L' option" + fi + fi + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + *) + absdir=`cd "$dir" && pwd` + test -z "$absdir" && \ + func_fatal_error "cannot determine absolute directory name of '$dir'" + dir=$absdir + ;; + esac + case "$deplibs " in + *" -L$dir "* | *" $arg "*) + # Will only happen for absolute or sysroot arguments + ;; + *) + # Preserve sysroot, but never include relative directories + case $dir in + [\\/]* | [A-Za-z]:[\\/]* | =*) func_append deplibs " $arg" ;; + *) func_append deplibs " -L$dir" ;; + esac + func_append lib_search_path " $dir" + ;; + esac + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$dir" | $SED 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$dir:"*) ;; + ::) dllsearchpath=$dir;; + *) func_append dllsearchpath ":$dir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + continue + ;; + + -l*) + if test X-lc = "X$arg" || test X-lm = "X$arg"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc* | *-*-haiku*) + # These systems don't actually have a C or math library (as such) + continue + ;; + *-*-os2*) + # These systems don't actually have a C library (as such) + test X-lc = "X$arg" && continue + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc due to us having libc/libc_r. + test X-lc = "X$arg" && continue + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C and math libraries are in the System framework + func_append deplibs " System.ltframework" + continue + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + test X-lc = "X$arg" && continue + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + test X-lc = "X$arg" && continue + ;; + esac + elif test X-lc_r = "X$arg"; then + case $host in + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly* | *-*-bitrig*) + # Do not include libc_r directly, use -pthread flag. + continue + ;; + esac + fi + func_append deplibs " $arg" + continue + ;; + + -mllvm) + prev=mllvm + continue + ;; + + -module) + module=yes + continue + ;; + + # Tru64 UNIX uses -model [arg] to determine the layout of C++ + # classes, name mangling, and exception handling. + # Darwin uses the -arch flag to determine output architecture. + -model|-arch|-isysroot|--sysroot) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + prev=xcompiler + continue + ;; + + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + func_append compiler_flags " $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case "$new_inherited_linker_flags " in + *" $arg "*) ;; + * ) func_append new_inherited_linker_flags " $arg" ;; + esac + continue + ;; + + -multi_module) + single_module=$wl-multi_module + continue + ;; + + -no-fast-install) + fast_install=no + continue + ;; + + -no-install) + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*) + # The PATH hackery in wrapper scripts is required on Windows + # and Darwin in order for the loader to find any dlls it needs. + func_warning "'-no-install' is ignored for $host" + func_warning "assuming '-no-fast-install' instead" + fast_install=no + ;; + *) no_install=yes ;; + esac + continue + ;; + + -no-undefined) + allow_undefined=no + continue + ;; + + -objectlist) + prev=objectlist + continue + ;; + + -os2dllname) + prev=os2dllname + continue + ;; + + -o) prev=output ;; + + -precious-files-regex) + prev=precious_regex + continue + ;; + + -release) + prev=release + continue + ;; + + -rpath) + prev=rpath + continue + ;; + + -R) + prev=xrpath + continue + ;; + + -R*) + func_stripname '-R' '' "$arg" + dir=$func_stripname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) ;; + =*) + func_stripname '=' '' "$dir" + dir=$lt_sysroot$func_stripname_result + ;; + *) + func_fatal_error "only absolute run-paths are allowed" + ;; + esac + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + continue + ;; + + -shared) + # The effects of -shared are defined in a previous loop. + continue + ;; + + -shrext) + prev=shrext + continue + ;; + + -static | -static-libtool-libs) + # The effects of -static are defined in a previous loop. + # We used to do the same as -all-static on platforms that + # didn't have a PIC flag, but the assumption that the effects + # would be equivalent was wrong. It would break on at least + # Digital Unix and AIX. + continue + ;; + + -thread-safe) + thread_safe=yes + continue + ;; + + -version-info) + prev=vinfo + continue + ;; + + -version-number) + prev=vinfo + vinfo_number=yes + continue + ;; + + -weak) + prev=weak + continue + ;; + + -Wc,*) + func_stripname '-Wc,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $func_quote_for_eval_result" + func_append compiler_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Wl,*) + func_stripname '-Wl,' '' "$arg" + args=$func_stripname_result + arg= + save_ifs=$IFS; IFS=, + for flag in $args; do + IFS=$save_ifs + func_quote_for_eval "$flag" + func_append arg " $wl$func_quote_for_eval_result" + func_append compiler_flags " $wl$func_quote_for_eval_result" + func_append linker_flags " $func_quote_for_eval_result" + done + IFS=$save_ifs + func_stripname ' ' '' "$arg" + arg=$func_stripname_result + ;; + + -Xcompiler) + prev=xcompiler + continue + ;; + + -Xlinker) + prev=xlinker + continue + ;; + + -XCClinker) + prev=xcclinker + continue + ;; + + # -msg_* for osf cc + -msg_*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + # Flags to be passed through unchanged, with rationale: + # -64, -mips[0-9] enable 64-bit mode for the SGI compiler + # -r[0-9][0-9]* specify processor for the SGI compiler + # -xarch=*, -xtarget=* enable 64-bit mode for the Sun compiler + # +DA*, +DD* enable 64-bit mode for the HP compiler + # -q* compiler args for the IBM compiler + # -m*, -t[45]*, -txscale* architecture-specific flags for GCC + # -F/path path to uninstalled frameworks, gcc on darwin + # -p, -pg, --coverage, -fprofile-* profiling flags for GCC + # -fstack-protector* stack protector flags for GCC + # @file GCC response files + # -tp=* Portland pgcc target processor selection + # --sysroot=* for sysroot support + # -O*, -g*, -flto*, -fwhopr*, -fuse-linker-plugin GCC link-time optimization + # -specs=* GCC specs files + # -stdlib=* select c++ std lib with clang + # -fsanitize=* Clang/GCC memory and address sanitizer + # -fuse-ld=* Linker select flags for GCC + # -static-* direct GCC to link specific libraries statically + # -fcilkplus Cilk Plus language extension features for C/C++ + -64|-mips[0-9]|-r[0-9][0-9]*|-xarch=*|-xtarget=*|+DA*|+DD*|-q*|-m*| \ + -t[45]*|-txscale*|-p|-pg|--coverage|-fprofile-*|-F*|@*|-tp=*|--sysroot=*| \ + -O*|-g*|-flto*|-fwhopr*|-fuse-linker-plugin|-fstack-protector*|-stdlib=*| \ + -specs=*|-fsanitize=*|-fuse-ld=*|-static-*|-fcilkplus) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + func_append compile_command " $arg" + func_append finalize_command " $arg" + func_append compiler_flags " $arg" + continue + ;; + + -Z*) + if test os2 = "`expr $host : '.*\(os2\)'`"; then + # OS/2 uses -Zxxx to specify OS/2-specific options + compiler_flags="$compiler_flags $arg" + func_append compile_command " $arg" + func_append finalize_command " $arg" + case $arg in + -Zlinker | -Zstack) + prev=xcompiler + ;; + esac + continue + else + # Otherwise treat like 'Some other compiler flag' below + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + fi + ;; + + # Some other compiler flag. + -* | +*) + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + + *.$objext) + # A standard object. + func_append objs " $arg" + ;; + + *.lo) + # A libtool-controlled object. + + # Check to see that this really is a libtool object. + if func_lalib_unsafe_p "$arg"; then + pic_object= + non_pic_object= + + # Read the .lo file + func_source "$arg" + + if test -z "$pic_object" || + test -z "$non_pic_object" || + test none = "$pic_object" && + test none = "$non_pic_object"; then + func_fatal_error "cannot find name of object for '$arg'" + fi + + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + test none = "$pic_object" || { + # Prepend the subdirectory the object is found in. + pic_object=$xdir$pic_object + + if test dlfiles = "$prev"; then + if test yes = "$build_libtool_libs" && test yes = "$dlopen_support"; then + func_append dlfiles " $pic_object" + prev= + continue + else + # If libtool objects are unsupported, then we need to preload. + prev=dlprefiles + fi + fi + + # CHECK ME: I think I busted this. -Ossama + if test dlprefiles = "$prev"; then + # Preload the old-style object. + func_append dlprefiles " $pic_object" + prev= + fi + + # A PIC object. + func_append libobjs " $pic_object" + arg=$pic_object + } + + # Non-PIC object. + if test none != "$non_pic_object"; then + # Prepend the subdirectory the object is found in. + non_pic_object=$xdir$non_pic_object + + # A standard non-PIC object + func_append non_pic_objects " $non_pic_object" + if test -z "$pic_object" || test none = "$pic_object"; then + arg=$non_pic_object + fi + else + # If the PIC object exists, use it instead. + # $xdir was prepended to $pic_object above. + non_pic_object=$pic_object + func_append non_pic_objects " $non_pic_object" + fi + else + # Only an error if not doing a dry-run. + if $opt_dry_run; then + # Extract subdirectory from the argument. + func_dirname "$arg" "/" "" + xdir=$func_dirname_result + + func_lo2o "$arg" + pic_object=$xdir$objdir/$func_lo2o_result + non_pic_object=$xdir$func_lo2o_result + func_append libobjs " $pic_object" + func_append non_pic_objects " $non_pic_object" + else + func_fatal_error "'$arg' is not a valid libtool object" + fi + fi + ;; + + *.$libext) + # An archive. + func_append deplibs " $arg" + func_append old_deplibs " $arg" + continue + ;; + + *.la) + # A libtool-controlled library. + + func_resolve_sysroot "$arg" + if test dlfiles = "$prev"; then + # This library was specified with -dlopen. + func_append dlfiles " $func_resolve_sysroot_result" + prev= + elif test dlprefiles = "$prev"; then + # The library was specified with -dlpreopen. + func_append dlprefiles " $func_resolve_sysroot_result" + prev= + else + func_append deplibs " $func_resolve_sysroot_result" + fi + continue + ;; + + # Some other compiler argument. + *) + # Unknown arguments in both finalize_command and compile_command need + # to be aesthetically quoted because they are evaled later. + func_quote_for_eval "$arg" + arg=$func_quote_for_eval_result + ;; + esac # arg + + # Now actually substitute the argument into the commands. + if test -n "$arg"; then + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + done # argument parsing loop + + test -n "$prev" && \ + func_fatal_help "the '$prevarg' option requires an argument" + + if test yes = "$export_dynamic" && test -n "$export_dynamic_flag_spec"; then + eval arg=\"$export_dynamic_flag_spec\" + func_append compile_command " $arg" + func_append finalize_command " $arg" + fi + + oldlibs= + # calculate the name of the file, without its directory + func_basename "$output" + outputname=$func_basename_result + libobjs_save=$libobjs + + if test -n "$shlibpath_var"; then + # get the directories listed in $shlibpath_var + eval shlib_search_path=\`\$ECHO \"\$$shlibpath_var\" \| \$SED \'s/:/ /g\'\` + else + shlib_search_path= + fi + eval sys_lib_search_path=\"$sys_lib_search_path_spec\" + eval sys_lib_dlsearch_path=\"$sys_lib_dlsearch_path_spec\" + + # Definition is injected by LT_CONFIG during libtool generation. + func_munge_path_list sys_lib_dlsearch_path "$LT_SYS_LIBRARY_PATH" + + func_dirname "$output" "/" "" + output_objdir=$func_dirname_result$objdir + func_to_tool_file "$output_objdir/" + tool_output_objdir=$func_to_tool_file_result + # Create the object directory. + func_mkdir_p "$output_objdir" + + # Determine the type of output + case $output in + "") + func_fatal_help "you must specify an output file" + ;; + *.$libext) linkmode=oldlib ;; + *.lo | *.$objext) linkmode=obj ;; + *.la) linkmode=lib ;; + *) linkmode=prog ;; # Anything else should be a program. + esac + + specialdeplibs= + + libs= + # Find all interdependent deplibs by searching for libraries + # that are linked more than once (e.g. -la -lb -la) + for deplib in $deplibs; do + if $opt_preserve_dup_deps; then + case "$libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append libs " $deplib" + done + + if test lib = "$linkmode"; then + libs="$predeps $libs $compiler_lib_search_path $postdeps" + + # Compute libraries that are listed more than once in $predeps + # $postdeps and mark them as special (i.e., whose duplicates are + # not to be eliminated). + pre_post_deps= + if $opt_duplicate_compiler_generated_deps; then + for pre_post_dep in $predeps $postdeps; do + case "$pre_post_deps " in + *" $pre_post_dep "*) func_append specialdeplibs " $pre_post_deps" ;; + esac + func_append pre_post_deps " $pre_post_dep" + done + fi + pre_post_deps= + fi + + deplibs= + newdependency_libs= + newlib_search_path= + need_relink=no # whether we're linking any uninstalled libtool libraries + notinst_deplibs= # not-installed libtool libraries + notinst_path= # paths that contain not-installed libtool libraries + + case $linkmode in + lib) + passes="conv dlpreopen link" + for file in $dlfiles $dlprefiles; do + case $file in + *.la) ;; + *) + func_fatal_help "libraries can '-dlopen' only libtool libraries: $file" + ;; + esac + done + ;; + prog) + compile_deplibs= + finalize_deplibs= + alldeplibs=false + newdlfiles= + newdlprefiles= + passes="conv scan dlopen dlpreopen link" + ;; + *) passes="conv" + ;; + esac + + for pass in $passes; do + # The preopen pass in lib mode reverses $deplibs; put it back here + # so that -L comes before libs that need it for instance... + if test lib,link = "$linkmode,$pass"; then + ## FIXME: Find the place where the list is rebuilt in the wrong + ## order, and fix it there properly + tmp_deplibs= + for deplib in $deplibs; do + tmp_deplibs="$deplib $tmp_deplibs" + done + deplibs=$tmp_deplibs + fi + + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass"; then + libs=$deplibs + deplibs= + fi + if test prog = "$linkmode"; then + case $pass in + dlopen) libs=$dlfiles ;; + dlpreopen) libs=$dlprefiles ;; + link) + libs="$deplibs %DEPLIBS%" + test "X$link_all_deplibs" != Xno && libs="$libs $dependency_libs" + ;; + esac + fi + if test lib,dlpreopen = "$linkmode,$pass"; then + # Collect and forward deplibs of preopened libtool libs + for lib in $dlprefiles; do + # Ignore non-libtool-libs + dependency_libs= + func_resolve_sysroot "$lib" + case $lib in + *.la) func_source "$func_resolve_sysroot_result" ;; + esac + + # Collect preopened libtool deplibs, except any this library + # has declared as weak libs + for deplib in $dependency_libs; do + func_basename "$deplib" + deplib_base=$func_basename_result + case " $weak_libs " in + *" $deplib_base "*) ;; + *) func_append deplibs " $deplib" ;; + esac + done + done + libs=$dlprefiles + fi + if test dlopen = "$pass"; then + # Collect dlpreopened libraries + save_deplibs=$deplibs + deplibs= + fi + + for deplib in $libs; do + lib= + found=false + case $deplib in + -mt|-mthreads|-kthread|-Kthread|-pthread|-pthreads|--thread-safe \ + |-threads|-fopenmp|-openmp|-mp|-xopenmp|-omp|-qsmp=*) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append compiler_flags " $deplib" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -l*) + if test lib != "$linkmode" && test prog != "$linkmode"; then + func_warning "'-l' is ignored for archives/objects" + continue + fi + func_stripname '-l' '' "$deplib" + name=$func_stripname_result + if test lib = "$linkmode"; then + searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path" + else + searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path" + fi + for searchdir in $searchdirs; do + for search_ext in .la $std_shrext .so .a; do + # Search the libtool library + lib=$searchdir/lib$name$search_ext + if test -f "$lib"; then + if test .la = "$search_ext"; then + found=: + else + found=false + fi + break 2 + fi + done + done + if $found; then + # deplib is a libtool library + # If $allow_libtool_libs_with_static_runtimes && $deplib is a stdlib, + # We need to do some special things here, and not later. + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $deplib "*) + if func_lalib_p "$lib"; then + library_names= + old_library= + func_source "$lib" + for l in $old_library $library_names; do + ll=$l + done + if test "X$ll" = "X$old_library"; then # only static version available + found=false + func_dirname "$lib" "" "." + ladir=$func_dirname_result + lib=$ladir/$old_library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + fi + ;; + *) ;; + esac + fi + else + # deplib doesn't seem to be a libtool library + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + test lib = "$linkmode" && newdependency_libs="$deplib $newdependency_libs" + fi + continue + fi + ;; # -l + *.ltframework) + if test prog,link = "$linkmode,$pass"; then + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + deplibs="$deplib $deplibs" + if test lib = "$linkmode"; then + case "$new_inherited_linker_flags " in + *" $deplib "*) ;; + * ) func_append new_inherited_linker_flags " $deplib" ;; + esac + fi + fi + continue + ;; + -L*) + case $linkmode in + lib) + deplibs="$deplib $deplibs" + test conv = "$pass" && continue + newdependency_libs="$deplib $newdependency_libs" + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + prog) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + if test scan = "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + *) + func_warning "'-L' is ignored for archives/objects" + ;; + esac # linkmode + continue + ;; # -L + -R*) + if test link = "$pass"; then + func_stripname '-R' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + dir=$func_resolve_sysroot_result + # Make sure the xrpath contains only unique directories. + case "$xrpath " in + *" $dir "*) ;; + *) func_append xrpath " $dir" ;; + esac + fi + deplibs="$deplib $deplibs" + continue + ;; + *.la) + func_resolve_sysroot "$deplib" + lib=$func_resolve_sysroot_result + ;; + *.$libext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + continue + fi + case $linkmode in + lib) + # Linking convenience modules into shared libraries is allowed, + # but linking other static libraries is non-portable. + case " $dlpreconveniencelibs " in + *" $deplib "*) ;; + *) + valid_a_lib=false + case $deplibs_check_method in + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + if eval "\$ECHO \"$deplib\"" 2>/dev/null | $SED 10q \ + | $EGREP "$match_pattern_regex" > /dev/null; then + valid_a_lib=: + fi + ;; + pass_all) + valid_a_lib=: + ;; + esac + if $valid_a_lib; then + echo + $ECHO "*** Warning: Linking the shared library $output against the" + $ECHO "*** static library $deplib is not portable!" + deplibs="$deplib $deplibs" + else + echo + $ECHO "*** Warning: Trying to link with static lib archive $deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because the file extensions .$libext of this argument makes me believe" + echo "*** that it is just a static archive that I should not use here." + fi + ;; + esac + continue + ;; + prog) + if test link != "$pass"; then + deplibs="$deplib $deplibs" + else + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + fi + continue + ;; + esac # linkmode + ;; # *.$libext + *.lo | *.$objext) + if test conv = "$pass"; then + deplibs="$deplib $deplibs" + elif test prog = "$linkmode"; then + if test dlpreopen = "$pass" || test yes != "$dlopen_support" || test no = "$build_libtool_libs"; then + # If there is no dlopen support or we're linking statically, + # we need to preload. + func_append newdlprefiles " $deplib" + compile_deplibs="$deplib $compile_deplibs" + finalize_deplibs="$deplib $finalize_deplibs" + else + func_append newdlfiles " $deplib" + fi + fi + continue + ;; + %DEPLIBS%) + alldeplibs=: + continue + ;; + esac # case $deplib + + $found || test -f "$lib" \ + || func_fatal_error "cannot find the library '$lib' or unhandled argument '$deplib'" + + # Check to see that this really is a libtool archive. + func_lalib_unsafe_p "$lib" \ + || func_fatal_error "'$lib' is not a valid libtool archive" + + func_dirname "$lib" "" "." + ladir=$func_dirname_result + + dlname= + dlopen= + dlpreopen= + libdir= + library_names= + old_library= + inherited_linker_flags= + # If the library was installed with an old release of libtool, + # it will not redefine variables installed, or shouldnotlink + installed=yes + shouldnotlink=no + avoidtemprpath= + + + # Read the .la file + func_source "$lib" + + # Convert "-framework foo" to "foo.ltframework" + if test -n "$inherited_linker_flags"; then + tmp_inherited_linker_flags=`$ECHO "$inherited_linker_flags" | $SED 's/-framework \([^ $]*\)/\1.ltframework/g'` + for tmp_inherited_linker_flag in $tmp_inherited_linker_flags; do + case " $new_inherited_linker_flags " in + *" $tmp_inherited_linker_flag "*) ;; + *) func_append new_inherited_linker_flags " $tmp_inherited_linker_flag";; + esac + done + fi + dependency_libs=`$ECHO " $dependency_libs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + if test lib,link = "$linkmode,$pass" || + test prog,scan = "$linkmode,$pass" || + { test prog != "$linkmode" && test lib != "$linkmode"; }; then + test -n "$dlopen" && func_append dlfiles " $dlopen" + test -n "$dlpreopen" && func_append dlprefiles " $dlpreopen" + fi + + if test conv = "$pass"; then + # Only check for convenience libraries + deplibs="$lib $deplibs" + if test -z "$libdir"; then + if test -z "$old_library"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + # It is a libtool convenience library, so add in its objects. + func_append convenience " $ladir/$objdir/$old_library" + func_append old_convenience " $ladir/$objdir/$old_library" + tmp_libs= + for deplib in $dependency_libs; do + deplibs="$deplib $deplibs" + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done + elif test prog != "$linkmode" && test lib != "$linkmode"; then + func_fatal_error "'$lib' is not a convenience library" + fi + continue + fi # $pass = conv + + + # Get the name of the library we link against. + linklib= + if test -n "$old_library" && + { test yes = "$prefer_static_libs" || + test built,no = "$prefer_static_libs,$installed"; }; then + linklib=$old_library + else + for l in $old_library $library_names; do + linklib=$l + done + fi + if test -z "$linklib"; then + func_fatal_error "cannot find name of link library for '$lib'" + fi + + # This library was specified with -dlopen. + if test dlopen = "$pass"; then + test -z "$libdir" \ + && func_fatal_error "cannot -dlopen a convenience library: '$lib'" + if test -z "$dlname" || + test yes != "$dlopen_support" || + test no = "$build_libtool_libs" + then + # If there is no dlname, no dlopen support or we're linking + # statically, we need to preload. We also need to preload any + # dependent libraries so libltdl's deplib preloader doesn't + # bomb out in the load deplibs phase. + func_append dlprefiles " $lib $dependency_libs" + else + func_append newdlfiles " $lib" + fi + continue + fi # $pass = dlopen + + # We need an absolute path. + case $ladir in + [\\/]* | [A-Za-z]:[\\/]*) abs_ladir=$ladir ;; + *) + abs_ladir=`cd "$ladir" && pwd` + if test -z "$abs_ladir"; then + func_warning "cannot determine absolute directory name of '$ladir'" + func_warning "passing it literally to the linker, although it might fail" + abs_ladir=$ladir + fi + ;; + esac + func_basename "$lib" + laname=$func_basename_result + + # Find the relevant object directory and library name. + if test yes = "$installed"; then + if test ! -f "$lt_sysroot$libdir/$linklib" && test -f "$abs_ladir/$linklib"; then + func_warning "library '$lib' was moved." + dir=$ladir + absdir=$abs_ladir + libdir=$abs_ladir + else + dir=$lt_sysroot$libdir + absdir=$lt_sysroot$libdir + fi + test yes = "$hardcode_automatic" && avoidtemprpath=yes + else + if test ! -f "$ladir/$objdir/$linklib" && test -f "$abs_ladir/$linklib"; then + dir=$ladir + absdir=$abs_ladir + # Remove this search path later + func_append notinst_path " $abs_ladir" + else + dir=$ladir/$objdir + absdir=$abs_ladir/$objdir + # Remove this search path later + func_append notinst_path " $abs_ladir" + fi + fi # $installed = yes + func_stripname 'lib' '.la' "$laname" + name=$func_stripname_result + + # This library was specified with -dlpreopen. + if test dlpreopen = "$pass"; then + if test -z "$libdir" && test prog = "$linkmode"; then + func_fatal_error "only libraries may -dlpreopen a convenience library: '$lib'" + fi + case $host in + # special handling for platforms with PE-DLLs. + *cygwin* | *mingw* | *cegcc* ) + # Linker will automatically link against shared library if both + # static and shared are present. Therefore, ensure we extract + # symbols from the import library if a shared library is present + # (otherwise, the dlopen module name will be incorrect). We do + # this by putting the import library name into $newdlprefiles. + # We recover the dlopen module name by 'saving' the la file + # name in a special purpose variable, and (later) extracting the + # dlname from the la file. + if test -n "$dlname"; then + func_tr_sh "$dir/$linklib" + eval "libfile_$func_tr_sh_result=\$abs_ladir/\$laname" + func_append newdlprefiles " $dir/$linklib" + else + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + fi + ;; + * ) + # Prefer using a static library (so that no silly _DYNAMIC symbols + # are required to link). + if test -n "$old_library"; then + func_append newdlprefiles " $dir/$old_library" + # Keep a list of preopened convenience libraries to check + # that they are being used correctly in the link pass. + test -z "$libdir" && \ + func_append dlpreconveniencelibs " $dir/$old_library" + # Otherwise, use the dlname, so that lt_dlopen finds it. + elif test -n "$dlname"; then + func_append newdlprefiles " $dir/$dlname" + else + func_append newdlprefiles " $dir/$linklib" + fi + ;; + esac + fi # $pass = dlpreopen + + if test -z "$libdir"; then + # Link the convenience library + if test lib = "$linkmode"; then + deplibs="$dir/$old_library $deplibs" + elif test prog,link = "$linkmode,$pass"; then + compile_deplibs="$dir/$old_library $compile_deplibs" + finalize_deplibs="$dir/$old_library $finalize_deplibs" + else + deplibs="$lib $deplibs" # used for prog,scan pass + fi + continue + fi + + + if test prog = "$linkmode" && test link != "$pass"; then + func_append newlib_search_path " $ladir" + deplibs="$lib $deplibs" + + linkalldeplibs=false + if test no != "$link_all_deplibs" || test -z "$library_names" || + test no = "$build_libtool_libs"; then + linkalldeplibs=: + fi + + tmp_libs= + for deplib in $dependency_libs; do + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result" + func_append newlib_search_path " $func_resolve_sysroot_result" + ;; + esac + # Need to link against all dependency_libs? + if $linkalldeplibs; then + deplibs="$deplib $deplibs" + else + # Need to hardcode shared library paths + # or/and link against static libraries + newdependency_libs="$deplib $newdependency_libs" + fi + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $deplib "*) func_append specialdeplibs " $deplib" ;; + esac + fi + func_append tmp_libs " $deplib" + done # for deplib + continue + fi # $linkmode = prog... + + if test prog,link = "$linkmode,$pass"; then + if test -n "$library_names" && + { { test no = "$prefer_static_libs" || + test built,yes = "$prefer_static_libs,$installed"; } || + test -z "$old_library"; }; then + # We need to hardcode the library path + if test -n "$shlibpath_var" && test -z "$avoidtemprpath"; then + # Make sure the rpath contains only unique directories. + case $temp_rpath: in + *"$absdir:"*) ;; + *) func_append temp_rpath "$absdir:" ;; + esac + fi + + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi # $linkmode,$pass = prog,link... + + if $alldeplibs && + { test pass_all = "$deplibs_check_method" || + { test yes = "$build_libtool_libs" && + test -n "$library_names"; }; }; then + # We only need to search for static libraries + continue + fi + fi + + link_static=no # Whether the deplib will be linked statically + use_static_libs=$prefer_static_libs + if test built = "$use_static_libs" && test yes = "$installed"; then + use_static_libs=no + fi + if test -n "$library_names" && + { test no = "$use_static_libs" || test -z "$old_library"; }; then + case $host in + *cygwin* | *mingw* | *cegcc* | *os2*) + # No point in relinking DLLs because paths are not encoded + func_append notinst_deplibs " $lib" + need_relink=no + ;; + *) + if test no = "$installed"; then + func_append notinst_deplibs " $lib" + need_relink=yes + fi + ;; + esac + # This is a shared library + + # Warn about portability, can't link against -module's on some + # systems (darwin). Don't bleat about dlopened modules though! + dlopenmodule= + for dlpremoduletest in $dlprefiles; do + if test "X$dlpremoduletest" = "X$lib"; then + dlopenmodule=$dlpremoduletest + break + fi + done + if test -z "$dlopenmodule" && test yes = "$shouldnotlink" && test link = "$pass"; then + echo + if test prog = "$linkmode"; then + $ECHO "*** Warning: Linking the executable $output against the loadable module" + else + $ECHO "*** Warning: Linking the shared library $output against the loadable module" + fi + $ECHO "*** $linklib is not portable!" + fi + if test lib = "$linkmode" && + test yes = "$hardcode_into_libs"; then + # Hardcode the library path. + # Skip directories that are in the system default run-time + # search path. + case " $sys_lib_dlsearch_path " in + *" $absdir "*) ;; + *) + case "$compile_rpath " in + *" $absdir "*) ;; + *) func_append compile_rpath " $absdir" ;; + esac + ;; + esac + case " $sys_lib_dlsearch_path " in + *" $libdir "*) ;; + *) + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + ;; + esac + fi + + if test -n "$old_archive_from_expsyms_cmds"; then + # figure out the soname + set dummy $library_names + shift + realname=$1 + shift + libname=`eval "\\$ECHO \"$libname_spec\""` + # use dlname if we got it. it's perfectly good, no? + if test -n "$dlname"; then + soname=$dlname + elif test -n "$soname_spec"; then + # bleh windows + case $host in + *cygwin* | mingw* | *cegcc* | *os2*) + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + esac + eval soname=\"$soname_spec\" + else + soname=$realname + fi + + # Make a new name for the extract_expsyms_cmds to use + soroot=$soname + func_basename "$soroot" + soname=$func_basename_result + func_stripname 'lib' '.dll' "$soname" + newlib=libimp-$func_stripname_result.a + + # If the library has no export list, then create one now + if test -f "$output_objdir/$soname-def"; then : + else + func_verbose "extracting exported symbol list from '$soname'" + func_execute_cmds "$extract_expsyms_cmds" 'exit $?' + fi + + # Create $newlib + if test -f "$output_objdir/$newlib"; then :; else + func_verbose "generating import library for '$soname'" + func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?' + fi + # make sure the library variables are pointing to the new library + dir=$output_objdir + linklib=$newlib + fi # test -n "$old_archive_from_expsyms_cmds" + + if test prog = "$linkmode" || test relink != "$opt_mode"; then + add_shlibpath= + add_dir= + add= + lib_linked=yes + case $hardcode_action in + immediate | unsupported) + if test no = "$hardcode_direct"; then + add=$dir/$linklib + case $host in + *-*-sco3.2v5.0.[024]*) add_dir=-L$dir ;; + *-*-sysv4*uw2*) add_dir=-L$dir ;; + *-*-sysv5OpenUNIX* | *-*-sysv5UnixWare7.[01].[10]* | \ + *-*-unixware7*) add_dir=-L$dir ;; + *-*-darwin* ) + # if the lib is a (non-dlopened) module then we cannot + # link against it, someone is ignoring the earlier warnings + if /usr/bin/file -L $add 2> /dev/null | + $GREP ": [^:]* bundle" >/dev/null; then + if test "X$dlopenmodule" != "X$lib"; then + $ECHO "*** Warning: lib $linklib is a module, not a shared library" + if test -z "$old_library"; then + echo + echo "*** And there doesn't seem to be a static archive available" + echo "*** The link will probably fail, sorry" + else + add=$dir/$old_library + fi + elif test -n "$old_library"; then + add=$dir/$old_library + fi + fi + esac + elif test no = "$hardcode_minus_L"; then + case $host in + *-*-sunos*) add_shlibpath=$dir ;; + esac + add_dir=-L$dir + add=-l$name + elif test no = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + relink) + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$dir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$absdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + add_shlibpath=$dir + add=-l$name + else + lib_linked=no + fi + ;; + *) lib_linked=no ;; + esac + + if test yes != "$lib_linked"; then + func_fatal_configuration "unsupported hardcode properties" + fi + + if test -n "$add_shlibpath"; then + case :$compile_shlibpath: in + *":$add_shlibpath:"*) ;; + *) func_append compile_shlibpath "$add_shlibpath:" ;; + esac + fi + if test prog = "$linkmode"; then + test -n "$add_dir" && compile_deplibs="$add_dir $compile_deplibs" + test -n "$add" && compile_deplibs="$add $compile_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + if test yes != "$hardcode_direct" && + test yes != "$hardcode_minus_L" && + test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + fi + fi + fi + + if test prog = "$linkmode" || test relink = "$opt_mode"; then + add_shlibpath= + add_dir= + add= + # Finalize command for both is simple: just hardcode it. + if test yes = "$hardcode_direct" && + test no = "$hardcode_direct_absolute"; then + add=$libdir/$linklib + elif test yes = "$hardcode_minus_L"; then + add_dir=-L$libdir + add=-l$name + elif test yes = "$hardcode_shlibpath_var"; then + case :$finalize_shlibpath: in + *":$libdir:"*) ;; + *) func_append finalize_shlibpath "$libdir:" ;; + esac + add=-l$name + elif test yes = "$hardcode_automatic"; then + if test -n "$inst_prefix_dir" && + test -f "$inst_prefix_dir$libdir/$linklib"; then + add=$inst_prefix_dir$libdir/$linklib + else + add=$libdir/$linklib + fi + else + # We cannot seem to hardcode it, guess we'll fake it. + add_dir=-L$libdir + # Try looking first in the location we're being installed to. + if test -n "$inst_prefix_dir"; then + case $libdir in + [\\/]*) + func_append add_dir " -L$inst_prefix_dir$libdir" + ;; + esac + fi + add=-l$name + fi + + if test prog = "$linkmode"; then + test -n "$add_dir" && finalize_deplibs="$add_dir $finalize_deplibs" + test -n "$add" && finalize_deplibs="$add $finalize_deplibs" + else + test -n "$add_dir" && deplibs="$add_dir $deplibs" + test -n "$add" && deplibs="$add $deplibs" + fi + fi + elif test prog = "$linkmode"; then + # Here we assume that one of hardcode_direct or hardcode_minus_L + # is not unsupported. This is valid on all known static and + # shared platforms. + if test unsupported != "$hardcode_direct"; then + test -n "$old_library" && linklib=$old_library + compile_deplibs="$dir/$linklib $compile_deplibs" + finalize_deplibs="$dir/$linklib $finalize_deplibs" + else + compile_deplibs="-l$name -L$dir $compile_deplibs" + finalize_deplibs="-l$name -L$dir $finalize_deplibs" + fi + elif test yes = "$build_libtool_libs"; then + # Not a shared library + if test pass_all != "$deplibs_check_method"; then + # We're trying link a shared library against a static one + # but the system doesn't support it. + + # Just print a warning and add the library to dependency_libs so + # that the program can be linked against the static library. + echo + $ECHO "*** Warning: This system cannot link to static lib archive $lib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have." + if test yes = "$module"; then + echo "*** But as you try to build a module library, libtool will still create " + echo "*** a static module, that should work as long as the dlopening application" + echo "*** is linked with the -dlopen flag to resolve symbols at runtime." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + else + deplibs="$dir/$old_library $deplibs" + link_static=yes + fi + fi # link shared/static library? + + if test lib = "$linkmode"; then + if test -n "$dependency_libs" && + { test yes != "$hardcode_into_libs" || + test yes = "$build_old_libs" || + test yes = "$link_static"; }; then + # Extract -R from dependency_libs + temp_deplibs= + for libdir in $dependency_libs; do + case $libdir in + -R*) func_stripname '-R' '' "$libdir" + temp_xrpath=$func_stripname_result + case " $xrpath " in + *" $temp_xrpath "*) ;; + *) func_append xrpath " $temp_xrpath";; + esac;; + *) func_append temp_deplibs " $libdir";; + esac + done + dependency_libs=$temp_deplibs + fi + + func_append newlib_search_path " $absdir" + # Link against this library + test no = "$link_static" && newdependency_libs="$abs_ladir/$laname $newdependency_libs" + # ... and its dependency_libs + tmp_libs= + for deplib in $dependency_libs; do + newdependency_libs="$deplib $newdependency_libs" + case $deplib in + -L*) func_stripname '-L' '' "$deplib" + func_resolve_sysroot "$func_stripname_result";; + *) func_resolve_sysroot "$deplib" ;; + esac + if $opt_preserve_dup_deps; then + case "$tmp_libs " in + *" $func_resolve_sysroot_result "*) + func_append specialdeplibs " $func_resolve_sysroot_result" ;; + esac + fi + func_append tmp_libs " $func_resolve_sysroot_result" + done + + if test no != "$link_all_deplibs"; then + # Add the search paths of all dependency libraries + for deplib in $dependency_libs; do + path= + case $deplib in + -L*) path=$deplib ;; + *.la) + func_resolve_sysroot "$deplib" + deplib=$func_resolve_sysroot_result + func_dirname "$deplib" "" "." + dir=$func_dirname_result + # We need an absolute path. + case $dir in + [\\/]* | [A-Za-z]:[\\/]*) absdir=$dir ;; + *) + absdir=`cd "$dir" && pwd` + if test -z "$absdir"; then + func_warning "cannot determine absolute directory name of '$dir'" + absdir=$dir + fi + ;; + esac + if $GREP "^installed=no" $deplib > /dev/null; then + case $host in + *-*-darwin*) + depdepl= + eval deplibrary_names=`$SED -n -e 's/^library_names=\(.*\)$/\1/p' $deplib` + if test -n "$deplibrary_names"; then + for tmp in $deplibrary_names; do + depdepl=$tmp + done + if test -f "$absdir/$objdir/$depdepl"; then + depdepl=$absdir/$objdir/$depdepl + darwin_install_name=`$OTOOL -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + if test -z "$darwin_install_name"; then + darwin_install_name=`$OTOOL64 -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'` + fi + func_append compiler_flags " $wl-dylib_file $wl$darwin_install_name:$depdepl" + func_append linker_flags " -dylib_file $darwin_install_name:$depdepl" + path= + fi + fi + ;; + *) + path=-L$absdir/$objdir + ;; + esac + else + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $deplib` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + test "$absdir" != "$libdir" && \ + func_warning "'$deplib' seems to be moved" + + path=-L$absdir + fi + ;; + esac + case " $deplibs " in + *" $path "*) ;; + *) deplibs="$path $deplibs" ;; + esac + done + fi # link_all_deplibs != no + fi # linkmode = lib + done # for deplib in $libs + if test link = "$pass"; then + if test prog = "$linkmode"; then + compile_deplibs="$new_inherited_linker_flags $compile_deplibs" + finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs" + else + compiler_flags="$compiler_flags "`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + fi + fi + dependency_libs=$newdependency_libs + if test dlpreopen = "$pass"; then + # Link the dlpreopened libraries before other libraries + for deplib in $save_deplibs; do + deplibs="$deplib $deplibs" + done + fi + if test dlopen != "$pass"; then + test conv = "$pass" || { + # Make sure lib_search_path contains only unique directories. + lib_search_path= + for dir in $newlib_search_path; do + case "$lib_search_path " in + *" $dir "*) ;; + *) func_append lib_search_path " $dir" ;; + esac + done + newlib_search_path= + } + + if test prog,link = "$linkmode,$pass"; then + vars="compile_deplibs finalize_deplibs" + else + vars=deplibs + fi + for var in $vars dependency_libs; do + # Add libraries to $var in reverse order + eval tmp_libs=\"\$$var\" + new_libs= + for deplib in $tmp_libs; do + # FIXME: Pedantically, this is the right thing to do, so + # that some nasty dependency loop isn't accidentally + # broken: + #new_libs="$deplib $new_libs" + # Pragmatically, this seems to cause very few problems in + # practice: + case $deplib in + -L*) new_libs="$deplib $new_libs" ;; + -R*) ;; + *) + # And here is the reason: when a library appears more + # than once as an explicit dependence of a library, or + # is implicitly linked in more than once by the + # compiler, it is considered special, and multiple + # occurrences thereof are not removed. Compare this + # with having the same library being listed as a + # dependency of multiple other libraries: in this case, + # we know (pedantically, we assume) the library does not + # need to be listed more than once, so we keep only the + # last copy. This is not always right, but it is rare + # enough that we require users that really mean to play + # such unportable linking tricks to link the library + # using -Wl,-lname, so that libtool does not consider it + # for duplicate removal. + case " $specialdeplibs " in + *" $deplib "*) new_libs="$deplib $new_libs" ;; + *) + case " $new_libs " in + *" $deplib "*) ;; + *) new_libs="$deplib $new_libs" ;; + esac + ;; + esac + ;; + esac + done + tmp_libs= + for deplib in $new_libs; do + case $deplib in + -L*) + case " $tmp_libs " in + *" $deplib "*) ;; + *) func_append tmp_libs " $deplib" ;; + esac + ;; + *) func_append tmp_libs " $deplib" ;; + esac + done + eval $var=\"$tmp_libs\" + done # for var + fi + + # Add Sun CC postdeps if required: + test CXX = "$tagname" && { + case $host_os in + linux*) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C++ 5.9 + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + + solaris*) + func_cc_basename "$CC" + case $func_cc_basename_result in + CC* | sunCC*) + func_suncc_cstd_abi + + if test no != "$suncc_use_cstd_abi"; then + func_append postdeps ' -library=Cstd -library=Crun' + fi + ;; + esac + ;; + esac + } + + # Last step: remove runtime libs from dependency_libs + # (they stay in deplibs) + tmp_libs= + for i in $dependency_libs; do + case " $predeps $postdeps $compiler_lib_search_path " in + *" $i "*) + i= + ;; + esac + if test -n "$i"; then + func_append tmp_libs " $i" + fi + done + dependency_libs=$tmp_libs + done # for pass + if test prog = "$linkmode"; then + dlfiles=$newdlfiles + fi + if test prog = "$linkmode" || test lib = "$linkmode"; then + dlprefiles=$newdlprefiles + fi + + case $linkmode in + oldlib) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for archives" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for archives" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for archives" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for archives" + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for archives" + + test -n "$release" && \ + func_warning "'-release' is ignored for archives" + + test -n "$export_symbols$export_symbols_regex" && \ + func_warning "'-export-symbols' is ignored for archives" + + # Now set the variables for building old libraries. + build_libtool_libs=no + oldlibs=$output + func_append objs "$old_deplibs" + ;; + + lib) + # Make sure we only generate libraries of the form 'libNAME.la'. + case $outputname in + lib*) + func_stripname 'lib' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + ;; + *) + test no = "$module" \ + && func_fatal_help "libtool library '$output' must begin with 'lib'" + + if test no != "$need_lib_prefix"; then + # Add the "lib" prefix for modules if required + func_stripname '' '.la' "$outputname" + name=$func_stripname_result + eval shared_ext=\"$shrext_cmds\" + eval libname=\"$libname_spec\" + else + func_stripname '' '.la' "$outputname" + libname=$func_stripname_result + fi + ;; + esac + + if test -n "$objs"; then + if test pass_all != "$deplibs_check_method"; then + func_fatal_error "cannot build libtool library '$output' from non-libtool objects on this host:$objs" + else + echo + $ECHO "*** Warning: Linking the shared library $output against the non-libtool" + $ECHO "*** objects $objs is not portable!" + func_append libobjs " $objs" + fi + fi + + test no = "$dlself" \ + || func_warning "'-dlopen self' is ignored for libtool libraries" + + set dummy $rpath + shift + test 1 -lt "$#" \ + && func_warning "ignoring multiple '-rpath's for a libtool library" + + install_libdir=$1 + + oldlibs= + if test -z "$rpath"; then + if test yes = "$build_libtool_libs"; then + # Building a libtool convenience library. + # Some compilers have problems with a '.al' extension so + # convenience libraries should have the same extension an + # archive normally would. + oldlibs="$output_objdir/$libname.$libext $oldlibs" + build_libtool_libs=convenience + build_old_libs=yes + fi + + test -n "$vinfo" && \ + func_warning "'-version-info/-version-number' is ignored for convenience libraries" + + test -n "$release" && \ + func_warning "'-release' is ignored for convenience libraries" + else + + # Parse the version information argument. + save_ifs=$IFS; IFS=: + set dummy $vinfo 0 0 0 + shift + IFS=$save_ifs + + test -n "$7" && \ + func_fatal_help "too many parameters to '-version-info'" + + # convert absolute version numbers to libtool ages + # this retains compatibility with .la files and attempts + # to make the code below a bit more comprehensible + + case $vinfo_number in + yes) + number_major=$1 + number_minor=$2 + number_revision=$3 + # + # There are really only two kinds -- those that + # use the current revision as the major version + # and those that subtract age and use age as + # a minor version. But, then there is irix + # that has an extra 1 added just for fun + # + case $version_type in + # correct linux to gnu/linux during the next big refactor + darwin|freebsd-elf|linux|osf|windows|none) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_revision + ;; + freebsd-aout|qnx|sunos) + current=$number_major + revision=$number_minor + age=0 + ;; + irix|nonstopux) + func_arith $number_major + $number_minor + current=$func_arith_result + age=$number_minor + revision=$number_minor + lt_irix_increment=no + ;; + *) + func_fatal_configuration "$modename: unknown library version type '$version_type'" + ;; + esac + ;; + no) + current=$1 + revision=$2 + age=$3 + ;; + esac + + # Check that each of the things are valid numbers. + case $current in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "CURRENT '$current' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $revision in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "REVISION '$revision' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + case $age in + 0|[1-9]|[1-9][0-9]|[1-9][0-9][0-9]|[1-9][0-9][0-9][0-9]|[1-9][0-9][0-9][0-9][0-9]) ;; + *) + func_error "AGE '$age' must be a nonnegative integer" + func_fatal_error "'$vinfo' is not valid version information" + ;; + esac + + if test "$age" -gt "$current"; then + func_error "AGE '$age' is greater than the current interface number '$current'" + func_fatal_error "'$vinfo' is not valid version information" + fi + + # Calculate the version variables. + major= + versuffix= + verstring= + case $version_type in + none) ;; + + darwin) + # Like Linux, but with the current version available in + # verstring for coding it into the library header + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + # Darwin ld doesn't like 0 for these options... + func_arith $current + 1 + minor_current=$func_arith_result + xlcverstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + # On Darwin other compilers + case $CC in + nagfor*) + verstring="$wl-compatibility_version $wl$minor_current $wl-current_version $wl$minor_current.$revision" + ;; + *) + verstring="-compatibility_version $minor_current -current_version $minor_current.$revision" + ;; + esac + ;; + + freebsd-aout) + major=.$current + versuffix=.$current.$revision + ;; + + freebsd-elf) + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + irix | nonstopux) + if test no = "$lt_irix_increment"; then + func_arith $current - $age + else + func_arith $current - $age + 1 + fi + major=$func_arith_result + + case $version_type in + nonstopux) verstring_prefix=nonstopux ;; + *) verstring_prefix=sgi ;; + esac + verstring=$verstring_prefix$major.$revision + + # Add in all the interfaces that we are compatible with. + loop=$revision + while test 0 -ne "$loop"; do + func_arith $revision - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring_prefix$major.$iface:$verstring + done + + # Before this point, $major must not contain '.'. + major=.$major + versuffix=$major.$revision + ;; + + linux) # correct to gnu/linux during the next big refactor + func_arith $current - $age + major=.$func_arith_result + versuffix=$major.$age.$revision + ;; + + osf) + func_arith $current - $age + major=.$func_arith_result + versuffix=.$current.$age.$revision + verstring=$current.$age.$revision + + # Add in all the interfaces that we are compatible with. + loop=$age + while test 0 -ne "$loop"; do + func_arith $current - $loop + iface=$func_arith_result + func_arith $loop - 1 + loop=$func_arith_result + verstring=$verstring:$iface.0 + done + + # Make executables depend on our current version. + func_append verstring ":$current.0" + ;; + + qnx) + major=.$current + versuffix=.$current + ;; + + sco) + major=.$current + versuffix=.$current + ;; + + sunos) + major=.$current + versuffix=.$current.$revision + ;; + + windows) + # Use '-' rather than '.', since we only want one + # extension on DOS 8.3 file systems. + func_arith $current - $age + major=$func_arith_result + versuffix=-$major + ;; + + *) + func_fatal_configuration "unknown library version type '$version_type'" + ;; + esac + + # Clear the version info if we defaulted, and they specified a release. + if test -z "$vinfo" && test -n "$release"; then + major= + case $version_type in + darwin) + # we can't check for "0.0" in archive_cmds due to quoting + # problems, so we reset it completely + verstring= + ;; + *) + verstring=0.0 + ;; + esac + if test no = "$need_version"; then + versuffix= + else + versuffix=.0.0 + fi + fi + + # Remove version info from name if versioning should be avoided + if test yes,no = "$avoid_version,$need_version"; then + major= + versuffix= + verstring= + fi + + # Check to see if the archive will have undefined symbols. + if test yes = "$allow_undefined"; then + if test unsupported = "$allow_undefined_flag"; then + if test yes = "$build_old_libs"; then + func_warning "undefined symbols not allowed in $host shared libraries; building static only" + build_libtool_libs=no + else + func_fatal_error "can't build $host shared library unless -no-undefined is specified" + fi + fi + else + # Don't allow undefined symbols. + allow_undefined_flag=$no_undefined_flag + fi + + fi + + func_generate_dlsyms "$libname" "$libname" : + func_append libobjs " $symfileobj" + test " " = "$libobjs" && libobjs= + + if test relink != "$opt_mode"; then + # Remove our outputs, but don't remove object files since they + # may have been created when compiling PIC objects. + removelist= + tempremovelist=`$ECHO "$output_objdir/*"` + for p in $tempremovelist; do + case $p in + *.$objext | *.gcno) + ;; + $output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/$libname$release.*) + if test -n "$precious_files_regex"; then + if $ECHO "$p" | $EGREP -e "$precious_files_regex" >/dev/null 2>&1 + then + continue + fi + fi + func_append removelist " $p" + ;; + *) ;; + esac + done + test -n "$removelist" && \ + func_show_eval "${RM}r \$removelist" + fi + + # Now set the variables for building old libraries. + if test yes = "$build_old_libs" && test convenience != "$build_libtool_libs"; then + func_append oldlibs " $output_objdir/$libname.$libext" + + # Transform .lo files to .o files. + oldobjs="$objs "`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; $lo2o" | $NL2SP` + fi + + # Eliminate all temporary directories. + #for path in $notinst_path; do + # lib_search_path=`$ECHO "$lib_search_path " | $SED "s% $path % %g"` + # deplibs=`$ECHO "$deplibs " | $SED "s% -L$path % %g"` + # dependency_libs=`$ECHO "$dependency_libs " | $SED "s% -L$path % %g"` + #done + + if test -n "$xrpath"; then + # If the user specified any rpath flags, then add them. + temp_xrpath= + for libdir in $xrpath; do + func_replace_sysroot "$libdir" + func_append temp_xrpath " -R$func_replace_sysroot_result" + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + if test yes != "$hardcode_into_libs" || test yes = "$build_old_libs"; then + dependency_libs="$temp_xrpath $dependency_libs" + fi + fi + + # Make sure dlfiles contains only unique files that won't be dlpreopened + old_dlfiles=$dlfiles + dlfiles= + for lib in $old_dlfiles; do + case " $dlprefiles $dlfiles " in + *" $lib "*) ;; + *) func_append dlfiles " $lib" ;; + esac + done + + # Make sure dlprefiles contains only unique files + old_dlprefiles=$dlprefiles + dlprefiles= + for lib in $old_dlprefiles; do + case "$dlprefiles " in + *" $lib "*) ;; + *) func_append dlprefiles " $lib" ;; + esac + done + + if test yes = "$build_libtool_libs"; then + if test -n "$rpath"; then + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc* | *-*-haiku*) + # these systems don't actually have a c library (as such)! + ;; + *-*-rhapsody* | *-*-darwin1.[012]) + # Rhapsody C library is in the System framework + func_append deplibs " System.ltframework" + ;; + *-*-netbsd*) + # Don't link with libc until the a.out ld.so is fixed. + ;; + *-*-openbsd* | *-*-freebsd* | *-*-dragonfly*) + # Do not include libc due to us having libc/libc_r. + ;; + *-*-sco3.2v5* | *-*-sco5v6*) + # Causes problems with __ctype + ;; + *-*-sysv4.2uw2* | *-*-sysv5* | *-*-unixware* | *-*-OpenUNIX*) + # Compiler inserts libc in the correct place for threads to work + ;; + *) + # Add libc to deplibs on all other systems if necessary. + if test yes = "$build_libtool_need_lc"; then + func_append deplibs " -lc" + fi + ;; + esac + fi + + # Transform deplibs into only deplibs that can be linked in shared. + name_save=$name + libname_save=$libname + release_save=$release + versuffix_save=$versuffix + major_save=$major + # I'm not sure if I'm treating the release correctly. I think + # release should show up in the -l (ie -lgmp5) so we don't want to + # add it in twice. Is that correct? + release= + versuffix= + major= + newdeplibs= + droppeddeps=no + case $deplibs_check_method in + pass_all) + # Don't check for shared/static. Everything works. + # This might be a little naive. We might want to check + # whether the library exists or not. But this is on + # osf3 & osf4 and I'm not really sure... Just + # implementing what was already the behavior. + newdeplibs=$deplibs + ;; + test_compile) + # This code stresses the "libraries are programs" paradigm to its + # limits. Maybe even breaks it. We compile a program, linking it + # against the deplibs as a proxy for the library. Then we can check + # whether they linked in statically or dynamically with ldd. + $opt_dry_run || $RM conftest.c + cat > conftest.c </dev/null` + $nocaseglob + else + potential_libs=`ls $i/$libnameglob[.-]* 2>/dev/null` + fi + for potent_lib in $potential_libs; do + # Follow soft links. + if ls -lLd "$potent_lib" 2>/dev/null | + $GREP " -> " >/dev/null; then + continue + fi + # The statement above tries to avoid entering an + # endless loop below, in case of cyclic links. + # We might still enter an endless loop, since a link + # loop can be closed while we follow links, + # but so what? + potlib=$potent_lib + while test -h "$potlib" 2>/dev/null; do + potliblink=`ls -ld $potlib | $SED 's/.* -> //'` + case $potliblink in + [\\/]* | [A-Za-z]:[\\/]*) potlib=$potliblink;; + *) potlib=`$ECHO "$potlib" | $SED 's|[^/]*$||'`"$potliblink";; + esac + done + if eval $file_magic_cmd \"\$potlib\" 2>/dev/null | + $SED -e 10q | + $EGREP "$file_magic_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for file magic test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a file magic. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + match_pattern*) + set dummy $deplibs_check_method; shift + match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"` + for a_deplib in $deplibs; do + case $a_deplib in + -l*) + func_stripname -l '' "$a_deplib" + name=$func_stripname_result + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + case " $predeps $postdeps " in + *" $a_deplib "*) + func_append newdeplibs " $a_deplib" + a_deplib= + ;; + esac + fi + if test -n "$a_deplib"; then + libname=`eval "\\$ECHO \"$libname_spec\""` + for i in $lib_search_path $sys_lib_search_path $shlib_search_path; do + potential_libs=`ls $i/$libname[.-]* 2>/dev/null` + for potent_lib in $potential_libs; do + potlib=$potent_lib # see symlink-check above in file_magic test + if eval "\$ECHO \"$potent_lib\"" 2>/dev/null | $SED 10q | \ + $EGREP "$match_pattern_regex" > /dev/null; then + func_append newdeplibs " $a_deplib" + a_deplib= + break 2 + fi + done + done + fi + if test -n "$a_deplib"; then + droppeddeps=yes + echo + $ECHO "*** Warning: linker path does not have real file for library $a_deplib." + echo "*** I have the capability to make that library automatically link in when" + echo "*** you link to this library. But I can only do this if you have a" + echo "*** shared version of the library, which you do not appear to have" + echo "*** because I did check the linker path looking for a file starting" + if test -z "$potlib"; then + $ECHO "*** with $libname but no candidates were found. (...for regex pattern test)" + else + $ECHO "*** with $libname and none of the candidates passed a file format test" + $ECHO "*** using a regex pattern. Last file checked: $potlib" + fi + fi + ;; + *) + # Add a -L argument. + func_append newdeplibs " $a_deplib" + ;; + esac + done # Gone through all deplibs. + ;; + none | unknown | *) + newdeplibs= + tmp_deplibs=`$ECHO " $deplibs" | $SED 's/ -lc$//; s/ -[LR][^ ]*//g'` + if test yes = "$allow_libtool_libs_with_static_runtimes"; then + for i in $predeps $postdeps; do + # can't use Xsed below, because $i might contain '/' + tmp_deplibs=`$ECHO " $tmp_deplibs" | $SED "s|$i||"` + done + fi + case $tmp_deplibs in + *[!\ \ ]*) + echo + if test none = "$deplibs_check_method"; then + echo "*** Warning: inter-library dependencies are not supported in this platform." + else + echo "*** Warning: inter-library dependencies are not known to be supported." + fi + echo "*** All declared inter-library dependencies are being dropped." + droppeddeps=yes + ;; + esac + ;; + esac + versuffix=$versuffix_save + major=$major_save + release=$release_save + libname=$libname_save + name=$name_save + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library with the System framework + newdeplibs=`$ECHO " $newdeplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + if test yes = "$droppeddeps"; then + if test yes = "$module"; then + echo + echo "*** Warning: libtool could not satisfy all declared inter-library" + $ECHO "*** dependencies of module $libname. Therefore, libtool will create" + echo "*** a static module, that should work as long as the dlopening" + echo "*** application is linked with the -dlopen flag." + if test -z "$global_symbol_pipe"; then + echo + echo "*** However, this would only work if libtool was able to extract symbol" + echo "*** lists from a program, using 'nm' or equivalent, but libtool could" + echo "*** not find such a program. So, this module is probably useless." + echo "*** 'nm' from GNU binutils and a full rebuild may help." + fi + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + else + echo "*** The inter-library dependencies that have been dropped here will be" + echo "*** automatically added whenever a program is linked with this library" + echo "*** or is declared to -dlopen it." + + if test no = "$allow_undefined"; then + echo + echo "*** Since this library must not contain undefined symbols," + echo "*** because either the platform does not support them or" + echo "*** it was explicitly requested with -no-undefined," + echo "*** libtool will only create a static version of it." + if test no = "$build_old_libs"; then + oldlibs=$output_objdir/$libname.$libext + build_libtool_libs=module + build_old_libs=yes + else + build_libtool_libs=no + fi + fi + fi + fi + # Done checking deplibs! + deplibs=$newdeplibs + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + case $host in + *-*-darwin*) + newdeplibs=`$ECHO " $newdeplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + new_inherited_linker_flags=`$ECHO " $new_inherited_linker_flags" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + deplibs=`$ECHO " $deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + deplibs=$new_libs + + # All the library-specific variables (install_libdir is set above). + library_names= + old_library= + dlname= + + # Test again, we may have decided not to build it any more + if test yes = "$build_libtool_libs"; then + # Remove $wl instances when linking with ld. + # FIXME: should test the right _cmds variable. + case $archive_cmds in + *\$LD\ *) wl= ;; + esac + if test yes = "$hardcode_into_libs"; then + # Hardcode the library paths + hardcode_libdirs= + dep_rpath= + rpath=$finalize_rpath + test relink = "$opt_mode" || rpath=$compile_rpath$rpath + for libdir in $rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + func_replace_sysroot "$libdir" + libdir=$func_replace_sysroot_result + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append dep_rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval "dep_rpath=\"$hardcode_libdir_flag_spec\"" + fi + if test -n "$runpath_var" && test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + eval "$runpath_var='$rpath\$$runpath_var'; export $runpath_var" + fi + test -n "$dep_rpath" && deplibs="$dep_rpath $deplibs" + fi + + shlibpath=$finalize_shlibpath + test relink = "$opt_mode" || shlibpath=$compile_shlibpath$shlibpath + if test -n "$shlibpath"; then + eval "$shlibpath_var='$shlibpath\$$shlibpath_var'; export $shlibpath_var" + fi + + # Get the real and link names of the library. + eval shared_ext=\"$shrext_cmds\" + eval library_names=\"$library_names_spec\" + set dummy $library_names + shift + realname=$1 + shift + + if test -n "$soname_spec"; then + eval soname=\"$soname_spec\" + else + soname=$realname + fi + if test -z "$dlname"; then + dlname=$soname + fi + + lib=$output_objdir/$realname + linknames= + for link + do + func_append linknames " $link" + done + + # Use standard objects if they are pic + test -z "$pic_flag" && libobjs=`$ECHO "$libobjs" | $SP2NL | $SED "$lo2o" | $NL2SP` + test "X$libobjs" = "X " && libobjs= + + delfiles= + if test -n "$export_symbols" && test -n "$include_expsyms"; then + $opt_dry_run || cp "$export_symbols" "$output_objdir/$libname.uexp" + export_symbols=$output_objdir/$libname.uexp + func_append delfiles " $export_symbols" + fi + + orig_export_symbols= + case $host_os in + cygwin* | mingw* | cegcc*) + if test -n "$export_symbols" && test -z "$export_symbols_regex"; then + # exporting using user supplied symfile + func_dll_def_p "$export_symbols" || { + # and it's NOT already a .def file. Must figure out + # which of the given symbols are data symbols and tag + # them as such. So, trigger use of export_symbols_cmds. + # export_symbols gets reassigned inside the "prepare + # the list of exported symbols" if statement, so the + # include_expsyms logic still works. + orig_export_symbols=$export_symbols + export_symbols= + always_export_symbols=yes + } + fi + ;; + esac + + # Prepare the list of exported symbols + if test -z "$export_symbols"; then + if test yes = "$always_export_symbols" || test -n "$export_symbols_regex"; then + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + cmds=$export_symbols_cmds + save_ifs=$IFS; IFS='~' + for cmd1 in $cmds; do + IFS=$save_ifs + # Take the normal branch if the nm_file_list_spec branch + # doesn't work or if tool conversion is not needed. + case $nm_file_list_spec~$to_tool_file_cmd in + *~func_convert_file_noop | *~func_convert_file_msys_to_w32 | ~*) + try_normal_branch=yes + eval cmd=\"$cmd1\" + func_len " $cmd" + len=$func_len_result + ;; + *) + try_normal_branch=no + ;; + esac + if test yes = "$try_normal_branch" \ + && { test "$len" -lt "$max_cmd_len" \ + || test "$max_cmd_len" -le -1; } + then + func_show_eval "$cmd" 'exit $?' + skipped_export=false + elif test -n "$nm_file_list_spec"; then + func_basename "$output" + output_la=$func_basename_result + save_libobjs=$libobjs + save_output=$output + output=$output_objdir/$output_la.nm + func_to_tool_file "$output" + libobjs=$nm_file_list_spec$func_to_tool_file_result + func_append delfiles " $output" + func_verbose "creating $NM input file list: $output" + for obj in $save_libobjs; do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > "$output" + eval cmd=\"$cmd1\" + func_show_eval "$cmd" 'exit $?' + output=$save_output + libobjs=$save_libobjs + skipped_export=false + else + # The command line is too long to execute in one step. + func_verbose "using reloadable object file for export list..." + skipped_export=: + # Break out early, otherwise skipped_export may be + # set to false by a later but shorter cmd. + break + fi + done + IFS=$save_ifs + if test -n "$export_symbols_regex" && test : != "$skipped_export"; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + fi + + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test : != "$skipped_export" && test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + + tmp_deplibs= + for test_deplib in $deplibs; do + case " $convenience " in + *" $test_deplib "*) ;; + *) + func_append tmp_deplibs " $test_deplib" + ;; + esac + done + deplibs=$tmp_deplibs + + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec" && + test yes = "$compiler_needs_object" && + test -z "$libobjs"; then + # extract the archives, so we have objects to list. + # TODO: could optimize this to just extract one archive. + whole_archive_flag_spec= + fi + if test -n "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + else + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + fi + + if test yes = "$thread_safe" && test -n "$thread_safe_flag_spec"; then + eval flag=\"$thread_safe_flag_spec\" + func_append linker_flags " $flag" + fi + + # Make a backup of the uninstalled library when relinking + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}U && $MV $realname ${realname}U)' || exit $? + fi + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + eval test_cmds=\"$module_expsym_cmds\" + cmds=$module_expsym_cmds + else + eval test_cmds=\"$module_cmds\" + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + eval test_cmds=\"$archive_expsym_cmds\" + cmds=$archive_expsym_cmds + else + eval test_cmds=\"$archive_cmds\" + cmds=$archive_cmds + fi + fi + + if test : != "$skipped_export" && + func_len " $test_cmds" && + len=$func_len_result && + test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + : + else + # The command line is too long to link in one step, link piecewise + # or, if using GNU ld and skipped_export is not :, use a linker + # script. + + # Save the value of $output and $libobjs because we want to + # use them later. If we have whole_archive_flag_spec, we + # want to use save_libobjs as it was before + # whole_archive_flag_spec was expanded, because we can't + # assume the linker understands whole_archive_flag_spec. + # This may have to be revisited, in case too many + # convenience libraries get linked in and end up exceeding + # the spec. + if test -z "$convenience" || test -z "$whole_archive_flag_spec"; then + save_libobjs=$libobjs + fi + save_output=$output + func_basename "$output" + output_la=$func_basename_result + + # Clear the reloadable object creation command queue and + # initialize k to one. + test_cmds= + concat_cmds= + objlist= + last_robj= + k=1 + + if test -n "$save_libobjs" && test : != "$skipped_export" && test yes = "$with_gnu_ld"; then + output=$output_objdir/$output_la.lnkscript + func_verbose "creating GNU ld script: $output" + echo 'INPUT (' > $output + for obj in $save_libobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + echo ')' >> $output + func_append delfiles " $output" + func_to_tool_file "$output" + output=$func_to_tool_file_result + elif test -n "$save_libobjs" && test : != "$skipped_export" && test -n "$file_list_spec"; then + output=$output_objdir/$output_la.lnk + func_verbose "creating linker input file list: $output" + : > $output + set x $save_libobjs + shift + firstobj= + if test yes = "$compiler_needs_object"; then + firstobj="$1 " + shift + fi + for obj + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" >> $output + done + func_append delfiles " $output" + func_to_tool_file "$output" + output=$firstobj\"$file_list_spec$func_to_tool_file_result\" + else + if test -n "$save_libobjs"; then + func_verbose "creating reloadable object files..." + output=$output_objdir/$output_la-$k.$objext + eval test_cmds=\"$reload_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + + # Loop over the list of objects to be linked. + for obj in $save_libobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + if test -z "$objlist" || + test "$len" -lt "$max_cmd_len"; then + func_append objlist " $obj" + else + # The command $test_cmds is almost too long, add a + # command to the queue. + if test 1 -eq "$k"; then + # The first file doesn't have a previous command to add. + reload_objs=$objlist + eval concat_cmds=\"$reload_cmds\" + else + # All subsequent reloadable object files will link in + # the last one created. + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds~$reload_cmds~\$RM $last_robj\" + fi + last_robj=$output_objdir/$output_la-$k.$objext + func_arith $k + 1 + k=$func_arith_result + output=$output_objdir/$output_la-$k.$objext + objlist=" $obj" + func_len " $last_robj" + func_arith $len0 + $func_len_result + len=$func_arith_result + fi + done + # Handle the remaining objects by creating one last + # reloadable object file. All subsequent reloadable object + # files will link in the last one created. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + reload_objs="$objlist $last_robj" + eval concat_cmds=\"\$concat_cmds$reload_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + func_append delfiles " $output" + + else + output= + fi + + ${skipped_export-false} && { + func_verbose "generating symbol list for '$libname.la'" + export_symbols=$output_objdir/$libname.exp + $opt_dry_run || $RM $export_symbols + libobjs=$output + # Append the command to create the export file. + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\" + if test -n "$last_robj"; then + eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\" + fi + } + + test -n "$save_libobjs" && + func_verbose "creating a temporary reloadable object file: $output" + + # Loop through the commands generated above and execute them. + save_ifs=$IFS; IFS='~' + for cmd in $concat_cmds; do + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + if test -n "$export_symbols_regex" && ${skipped_export-false}; then + func_show_eval '$EGREP -e "$export_symbols_regex" "$export_symbols" > "${export_symbols}T"' + func_show_eval '$MV "${export_symbols}T" "$export_symbols"' + fi + fi + + ${skipped_export-false} && { + if test -n "$export_symbols" && test -n "$include_expsyms"; then + tmp_export_symbols=$export_symbols + test -n "$orig_export_symbols" && tmp_export_symbols=$orig_export_symbols + $opt_dry_run || eval '$ECHO "$include_expsyms" | $SP2NL >> "$tmp_export_symbols"' + fi + + if test -n "$orig_export_symbols"; then + # The given exports_symbols file has to be filtered, so filter it. + func_verbose "filter symbol list for '$libname.la' to tag DATA exports" + # FIXME: $output_objdir/$libname.filter potentially contains lots of + # 's' commands, which not all seds can handle. GNU sed should be fine + # though. Also, the filter scales superlinearly with the number of + # global variables. join(1) would be nice here, but unfortunately + # isn't a blessed tool. + $opt_dry_run || $SED -e '/[ ,]DATA/!d;s,\(.*\)\([ \,].*\),s|^\1$|\1\2|,' < $export_symbols > $output_objdir/$libname.filter + func_append delfiles " $export_symbols $output_objdir/$libname.filter" + export_symbols=$output_objdir/$libname.def + $opt_dry_run || $SED -f $output_objdir/$libname.filter < $orig_export_symbols > $export_symbols + fi + } + + libobjs=$output + # Restore the value of output. + output=$save_output + + if test -n "$convenience" && test -n "$whole_archive_flag_spec"; then + eval libobjs=\"\$libobjs $whole_archive_flag_spec\" + test "X$libobjs" = "X " && libobjs= + fi + # Expand the library linking commands again to reset the + # value of $libobjs for piecewise linking. + + # Do each of the archive commands. + if test yes = "$module" && test -n "$module_cmds"; then + if test -n "$export_symbols" && test -n "$module_expsym_cmds"; then + cmds=$module_expsym_cmds + else + cmds=$module_cmds + fi + else + if test -n "$export_symbols" && test -n "$archive_expsym_cmds"; then + cmds=$archive_expsym_cmds + else + cmds=$archive_cmds + fi + fi + fi + + if test -n "$delfiles"; then + # Append the command to remove temporary files to $cmds. + eval cmds=\"\$cmds~\$RM $delfiles\" + fi + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append libobjs " $func_extract_archives_result" + test "X$libobjs" = "X " && libobjs= + fi + + save_ifs=$IFS; IFS='~' + for cmd in $cmds; do + IFS=$sp$nl + eval cmd=\"$cmd\" + IFS=$save_ifs + $opt_quiet || { + func_quote_for_expand "$cmd" + eval "func_echo $func_quote_for_expand_result" + } + $opt_dry_run || eval "$cmd" || { + lt_exit=$? + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + ( cd "$output_objdir" && \ + $RM "${realname}T" && \ + $MV "${realname}U" "$realname" ) + fi + + exit $lt_exit + } + done + IFS=$save_ifs + + # Restore the uninstalled library and exit + if test relink = "$opt_mode"; then + $opt_dry_run || eval '(cd $output_objdir && $RM ${realname}T && $MV $realname ${realname}T && $MV ${realname}U $realname)' || exit $? + + if test -n "$convenience"; then + if test -z "$whole_archive_flag_spec"; then + func_show_eval '${RM}r "$gentop"' + fi + fi + + exit $EXIT_SUCCESS + fi + + # Create links to the real library. + for linkname in $linknames; do + if test "$realname" != "$linkname"; then + func_show_eval '(cd "$output_objdir" && $RM "$linkname" && $LN_S "$realname" "$linkname")' 'exit $?' + fi + done + + # If -module or -export-dynamic was specified, set the dlname. + if test yes = "$module" || test yes = "$export_dynamic"; then + # On all known operating systems, these are identical. + dlname=$soname + fi + fi + ;; + + obj) + if test -n "$dlfiles$dlprefiles" || test no != "$dlself"; then + func_warning "'-dlopen' is ignored for objects" + fi + + case " $deplibs" in + *\ -l* | *\ -L*) + func_warning "'-l' and '-L' are ignored for objects" ;; + esac + + test -n "$rpath" && \ + func_warning "'-rpath' is ignored for objects" + + test -n "$xrpath" && \ + func_warning "'-R' is ignored for objects" + + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for objects" + + test -n "$release" && \ + func_warning "'-release' is ignored for objects" + + case $output in + *.lo) + test -n "$objs$old_deplibs" && \ + func_fatal_error "cannot build library object '$output' from non-libtool objects" + + libobj=$output + func_lo2o "$libobj" + obj=$func_lo2o_result + ;; + *) + libobj= + obj=$output + ;; + esac + + # Delete the old objects. + $opt_dry_run || $RM $obj $libobj + + # Objects from convenience libraries. This assumes + # single-version convenience libraries. Whenever we create + # different ones for PIC/non-PIC, this we'll have to duplicate + # the extraction. + reload_conv_objs= + gentop= + # if reload_cmds runs $LD directly, get rid of -Wl from + # whole_archive_flag_spec and hope we can get by with turning comma + # into space. + case $reload_cmds in + *\$LD[\ \$]*) wl= ;; + esac + if test -n "$convenience"; then + if test -n "$whole_archive_flag_spec"; then + eval tmp_whole_archive_flags=\"$whole_archive_flag_spec\" + test -n "$wl" || tmp_whole_archive_flags=`$ECHO "$tmp_whole_archive_flags" | $SED 's|,| |g'` + reload_conv_objs=$reload_objs\ $tmp_whole_archive_flags + else + gentop=$output_objdir/${obj}x + func_append generated " $gentop" + + func_extract_archives $gentop $convenience + reload_conv_objs="$reload_objs $func_extract_archives_result" + fi + fi + + # If we're not building shared, we need to use non_pic_objs + test yes = "$build_libtool_libs" || libobjs=$non_pic_objects + + # Create the old-style object. + reload_objs=$objs$old_deplibs' '`$ECHO "$libobjs" | $SP2NL | $SED "/\.$libext$/d; /\.lib$/d; $lo2o" | $NL2SP`' '$reload_conv_objs + + output=$obj + func_execute_cmds "$reload_cmds" 'exit $?' + + # Exit if we aren't doing a library object file. + if test -z "$libobj"; then + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + fi + + test yes = "$build_libtool_libs" || { + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + # Create an invalid libtool object if no PIC, so that we don't + # accidentally link it into a program. + # $show "echo timestamp > $libobj" + # $opt_dry_run || eval "echo timestamp > $libobj" || exit $? + exit $EXIT_SUCCESS + } + + if test -n "$pic_flag" || test default != "$pic_mode"; then + # Only do commands if we really have different PIC objects. + reload_objs="$libobjs $reload_conv_objs" + output=$libobj + func_execute_cmds "$reload_cmds" 'exit $?' + fi + + if test -n "$gentop"; then + func_show_eval '${RM}r "$gentop"' + fi + + exit $EXIT_SUCCESS + ;; + + prog) + case $host in + *cygwin*) func_stripname '' '.exe' "$output" + output=$func_stripname_result.exe;; + esac + test -n "$vinfo" && \ + func_warning "'-version-info' is ignored for programs" + + test -n "$release" && \ + func_warning "'-release' is ignored for programs" + + $preload \ + && test unknown,unknown,unknown = "$dlopen_support,$dlopen_self,$dlopen_self_static" \ + && func_warning "'LT_INIT([dlopen])' not used. Assuming no dlopen support." + + case $host in + *-*-rhapsody* | *-*-darwin1.[012]) + # On Rhapsody replace the C library is the System framework + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's/ -lc / System.ltframework /'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's/ -lc / System.ltframework /'` + ;; + esac + + case $host in + *-*-darwin*) + # Don't allow lazy linking, it breaks C++ global constructors + # But is supposedly fixed on 10.4 or later (yay!). + if test CXX = "$tagname"; then + case ${MACOSX_DEPLOYMENT_TARGET-10.0} in + 10.[0123]) + func_append compile_command " $wl-bind_at_load" + func_append finalize_command " $wl-bind_at_load" + ;; + esac + fi + # Time to change all our "foo.ltframework" stuff back to "-framework foo" + compile_deplibs=`$ECHO " $compile_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + finalize_deplibs=`$ECHO " $finalize_deplibs" | $SED 's% \([^ $]*\).ltframework% -framework \1%g'` + ;; + esac + + + # move library search paths that coincide with paths to not yet + # installed libraries to the beginning of the library search list + new_libs= + for path in $notinst_path; do + case " $new_libs " in + *" -L$path/$objdir "*) ;; + *) + case " $compile_deplibs " in + *" -L$path/$objdir "*) + func_append new_libs " -L$path/$objdir" ;; + esac + ;; + esac + done + for deplib in $compile_deplibs; do + case $deplib in + -L*) + case " $new_libs " in + *" $deplib "*) ;; + *) func_append new_libs " $deplib" ;; + esac + ;; + *) func_append new_libs " $deplib" ;; + esac + done + compile_deplibs=$new_libs + + + func_append compile_command " $compile_deplibs" + func_append finalize_command " $finalize_deplibs" + + if test -n "$rpath$xrpath"; then + # If the user specified any rpath flags, then add them. + for libdir in $rpath $xrpath; do + # This is the magic to use -rpath. + case "$finalize_rpath " in + *" $libdir "*) ;; + *) func_append finalize_rpath " $libdir" ;; + esac + done + fi + + # Now hardcode the library paths + rpath= + hardcode_libdirs= + for libdir in $compile_rpath $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$perm_rpath " in + *" $libdir "*) ;; + *) func_append perm_rpath " $libdir" ;; + esac + fi + case $host in + *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*) + testbindir=`$ECHO "$libdir" | $SED -e 's*/lib$*/bin*'` + case :$dllsearchpath: in + *":$libdir:"*) ;; + ::) dllsearchpath=$libdir;; + *) func_append dllsearchpath ":$libdir";; + esac + case :$dllsearchpath: in + *":$testbindir:"*) ;; + ::) dllsearchpath=$testbindir;; + *) func_append dllsearchpath ":$testbindir";; + esac + ;; + esac + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + compile_rpath=$rpath + + rpath= + hardcode_libdirs= + for libdir in $finalize_rpath; do + if test -n "$hardcode_libdir_flag_spec"; then + if test -n "$hardcode_libdir_separator"; then + if test -z "$hardcode_libdirs"; then + hardcode_libdirs=$libdir + else + # Just accumulate the unique libdirs. + case $hardcode_libdir_separator$hardcode_libdirs$hardcode_libdir_separator in + *"$hardcode_libdir_separator$libdir$hardcode_libdir_separator"*) + ;; + *) + func_append hardcode_libdirs "$hardcode_libdir_separator$libdir" + ;; + esac + fi + else + eval flag=\"$hardcode_libdir_flag_spec\" + func_append rpath " $flag" + fi + elif test -n "$runpath_var"; then + case "$finalize_perm_rpath " in + *" $libdir "*) ;; + *) func_append finalize_perm_rpath " $libdir" ;; + esac + fi + done + # Substitute the hardcoded libdirs into the rpath. + if test -n "$hardcode_libdir_separator" && + test -n "$hardcode_libdirs"; then + libdir=$hardcode_libdirs + eval rpath=\" $hardcode_libdir_flag_spec\" + fi + finalize_rpath=$rpath + + if test -n "$libobjs" && test yes = "$build_old_libs"; then + # Transform all the library objects into standard objects. + compile_command=`$ECHO "$compile_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + finalize_command=`$ECHO "$finalize_command" | $SP2NL | $SED "$lo2o" | $NL2SP` + fi + + func_generate_dlsyms "$outputname" "@PROGRAM@" false + + # template prelinking step + if test -n "$prelink_cmds"; then + func_execute_cmds "$prelink_cmds" 'exit $?' + fi + + wrappers_required=: + case $host in + *cegcc* | *mingw32ce*) + # Disable wrappers for cegcc and mingw32ce hosts, we are cross compiling anyway. + wrappers_required=false + ;; + *cygwin* | *mingw* ) + test yes = "$build_libtool_libs" || wrappers_required=false + ;; + *) + if test no = "$need_relink" || test yes != "$build_libtool_libs"; then + wrappers_required=false + fi + ;; + esac + $wrappers_required || { + # Replace the output file specification. + compile_command=`$ECHO "$compile_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + link_command=$compile_command$compile_rpath + + # We have no uninstalled library dependencies, so finalize right now. + exit_status=0 + func_show_eval "$link_command" 'exit_status=$?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Delete the generated files. + if test -f "$output_objdir/${outputname}S.$objext"; then + func_show_eval '$RM "$output_objdir/${outputname}S.$objext"' + fi + + exit $exit_status + } + + if test -n "$compile_shlibpath$finalize_shlibpath"; then + compile_command="$shlibpath_var=\"$compile_shlibpath$finalize_shlibpath\$$shlibpath_var\" $compile_command" + fi + if test -n "$finalize_shlibpath"; then + finalize_command="$shlibpath_var=\"$finalize_shlibpath\$$shlibpath_var\" $finalize_command" + fi + + compile_var= + finalize_var= + if test -n "$runpath_var"; then + if test -n "$perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $perm_rpath; do + func_append rpath "$dir:" + done + compile_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + if test -n "$finalize_perm_rpath"; then + # We should set the runpath_var. + rpath= + for dir in $finalize_perm_rpath; do + func_append rpath "$dir:" + done + finalize_var="$runpath_var=\"$rpath\$$runpath_var\" " + fi + fi + + if test yes = "$no_install"; then + # We don't need to create a wrapper script. + link_command=$compile_var$compile_command$compile_rpath + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output"'%g'` + # Delete the old output file. + $opt_dry_run || $RM $output + # Link the executable and exit + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + exit $EXIT_SUCCESS + fi + + case $hardcode_action,$fast_install in + relink,*) + # Fast installation is not supported + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + + func_warning "this platform does not like uninstalled shared libraries" + func_warning "'$output' will be relinked during installation" + ;; + *,yes) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command=`$ECHO "$compile_var$compile_command$compile_rpath" | $SED 's%@OUTPUT@%\$progdir/\$file%g'` + ;; + *,no) + link_command=$compile_var$compile_command$compile_rpath + relink_command=$finalize_var$finalize_command$finalize_rpath + ;; + *,needless) + link_command=$finalize_var$compile_command$finalize_rpath + relink_command= + ;; + esac + + # Replace the output file specification. + link_command=`$ECHO "$link_command" | $SED 's%@OUTPUT@%'"$output_objdir/$outputname"'%g'` + + # Delete the old output files. + $opt_dry_run || $RM $output $output_objdir/$outputname $output_objdir/lt-$outputname + + func_show_eval "$link_command" 'exit $?' + + if test -n "$postlink_cmds"; then + func_to_tool_file "$output_objdir/$outputname" + postlink_cmds=`func_echo_all "$postlink_cmds" | $SED -e 's%@OUTPUT@%'"$output_objdir/$outputname"'%g' -e 's%@TOOL_OUTPUT@%'"$func_to_tool_file_result"'%g'` + func_execute_cmds "$postlink_cmds" 'exit $?' + fi + + # Now create the wrapper script. + func_verbose "creating $output" + + # Quote the relink command for shipping. + if test -n "$relink_command"; then + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + relink_command="(cd `pwd`; $relink_command)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + fi + + # Only actually do things if not in dry run mode. + $opt_dry_run || { + # win32 will think the script is a binary if it has + # a .exe suffix, so we strip it off here. + case $output in + *.exe) func_stripname '' '.exe' "$output" + output=$func_stripname_result ;; + esac + # test for cygwin because mv fails w/o .exe extensions + case $host in + *cygwin*) + exeext=.exe + func_stripname '' '.exe' "$outputname" + outputname=$func_stripname_result ;; + *) exeext= ;; + esac + case $host in + *cygwin* | *mingw* ) + func_dirname_and_basename "$output" "" "." + output_name=$func_basename_result + output_path=$func_dirname_result + cwrappersource=$output_path/$objdir/lt-$output_name.c + cwrapper=$output_path/$output_name.exe + $RM $cwrappersource $cwrapper + trap "$RM $cwrappersource $cwrapper; exit $EXIT_FAILURE" 1 2 15 + + func_emit_cwrapperexe_src > $cwrappersource + + # The wrapper executable is built using the $host compiler, + # because it contains $host paths and files. If cross- + # compiling, it, like the target executable, must be + # executed on the $host or under an emulation environment. + $opt_dry_run || { + $LTCC $LTCFLAGS -o $cwrapper $cwrappersource + $STRIP $cwrapper + } + + # Now, create the wrapper script for func_source use: + func_ltwrapper_scriptname $cwrapper + $RM $func_ltwrapper_scriptname_result + trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15 + $opt_dry_run || { + # note: this script will not be executed, so do not chmod. + if test "x$build" = "x$host"; then + $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result + else + func_emit_wrapper no > $func_ltwrapper_scriptname_result + fi + } + ;; + * ) + $RM $output + trap "$RM $output; exit $EXIT_FAILURE" 1 2 15 + + func_emit_wrapper no > $output + chmod +x $output + ;; + esac + } + exit $EXIT_SUCCESS + ;; + esac + + # See if we need to build an old-fashioned archive. + for oldlib in $oldlibs; do + + case $build_libtool_libs in + convenience) + oldobjs="$libobjs_save $symfileobj" + addlibs=$convenience + build_libtool_libs=no + ;; + module) + oldobjs=$libobjs_save + addlibs=$old_convenience + build_libtool_libs=no + ;; + *) + oldobjs="$old_deplibs $non_pic_objects" + $preload && test -f "$symfileobj" \ + && func_append oldobjs " $symfileobj" + addlibs=$old_convenience + ;; + esac + + if test -n "$addlibs"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $addlibs + func_append oldobjs " $func_extract_archives_result" + fi + + # Do each command in the archive commands. + if test -n "$old_archive_from_new_cmds" && test yes = "$build_libtool_libs"; then + cmds=$old_archive_from_new_cmds + else + + # Add any objects from preloaded convenience libraries + if test -n "$dlprefiles"; then + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + + func_extract_archives $gentop $dlprefiles + func_append oldobjs " $func_extract_archives_result" + fi + + # POSIX demands no paths to be encoded in archives. We have + # to avoid creating archives with duplicate basenames if we + # might have to extract them afterwards, e.g., when creating a + # static archive out of a convenience library, or when linking + # the entirety of a libtool archive into another (currently + # not supported by libtool). + if (for obj in $oldobjs + do + func_basename "$obj" + $ECHO "$func_basename_result" + done | sort | sort -uc >/dev/null 2>&1); then + : + else + echo "copying selected object files to avoid basename conflicts..." + gentop=$output_objdir/${outputname}x + func_append generated " $gentop" + func_mkdir_p "$gentop" + save_oldobjs=$oldobjs + oldobjs= + counter=1 + for obj in $save_oldobjs + do + func_basename "$obj" + objbase=$func_basename_result + case " $oldobjs " in + " ") oldobjs=$obj ;; + *[\ /]"$objbase "*) + while :; do + # Make sure we don't pick an alternate name that also + # overlaps. + newobj=lt$counter-$objbase + func_arith $counter + 1 + counter=$func_arith_result + case " $oldobjs " in + *[\ /]"$newobj "*) ;; + *) if test ! -f "$gentop/$newobj"; then break; fi ;; + esac + done + func_show_eval "ln $obj $gentop/$newobj || cp $obj $gentop/$newobj" + func_append oldobjs " $gentop/$newobj" + ;; + *) func_append oldobjs " $obj" ;; + esac + done + fi + func_to_tool_file "$oldlib" func_convert_file_msys_to_w32 + tool_oldlib=$func_to_tool_file_result + eval cmds=\"$old_archive_cmds\" + + func_len " $cmds" + len=$func_len_result + if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then + cmds=$old_archive_cmds + elif test -n "$archiver_list_spec"; then + func_verbose "using command file archive linking..." + for obj in $oldobjs + do + func_to_tool_file "$obj" + $ECHO "$func_to_tool_file_result" + done > $output_objdir/$libname.libcmd + func_to_tool_file "$output_objdir/$libname.libcmd" + oldobjs=" $archiver_list_spec$func_to_tool_file_result" + cmds=$old_archive_cmds + else + # the command line is too long to link in one step, link in parts + func_verbose "using piecewise archive linking..." + save_RANLIB=$RANLIB + RANLIB=: + objlist= + concat_cmds= + save_oldobjs=$oldobjs + oldobjs= + # Is there a better way of finding the last object in the list? + for obj in $save_oldobjs + do + last_oldobj=$obj + done + eval test_cmds=\"$old_archive_cmds\" + func_len " $test_cmds" + len0=$func_len_result + len=$len0 + for obj in $save_oldobjs + do + func_len " $obj" + func_arith $len + $func_len_result + len=$func_arith_result + func_append objlist " $obj" + if test "$len" -lt "$max_cmd_len"; then + : + else + # the above command should be used before it gets too long + oldobjs=$objlist + if test "$obj" = "$last_oldobj"; then + RANLIB=$save_RANLIB + fi + test -z "$concat_cmds" || concat_cmds=$concat_cmds~ + eval concat_cmds=\"\$concat_cmds$old_archive_cmds\" + objlist= + len=$len0 + fi + done + RANLIB=$save_RANLIB + oldobjs=$objlist + if test -z "$oldobjs"; then + eval cmds=\"\$concat_cmds\" + else + eval cmds=\"\$concat_cmds~\$old_archive_cmds\" + fi + fi + fi + func_execute_cmds "$cmds" 'exit $?' + done + + test -n "$generated" && \ + func_show_eval "${RM}r$generated" + + # Now create the libtool archive. + case $output in + *.la) + old_library= + test yes = "$build_old_libs" && old_library=$libname.$libext + func_verbose "creating $output" + + # Preserve any variables that may affect compiler behavior + for var in $variables_saved_for_relink; do + if eval test -z \"\${$var+set}\"; then + relink_command="{ test -z \"\${$var+set}\" || $lt_unset $var || { $var=; export $var; }; }; $relink_command" + elif eval var_value=\$$var; test -z "$var_value"; then + relink_command="$var=; export $var; $relink_command" + else + func_quote_for_eval "$var_value" + relink_command="$var=$func_quote_for_eval_result; export $var; $relink_command" + fi + done + # Quote the link command for shipping. + relink_command="(cd `pwd`; $SHELL \"$progpath\" $preserve_args --mode=relink $libtool_args @inst_prefix_dir@)" + relink_command=`$ECHO "$relink_command" | $SED "$sed_quote_subst"` + if test yes = "$hardcode_automatic"; then + relink_command= + fi + + # Only create the output if not a dry run. + $opt_dry_run || { + for installed in no yes; do + if test yes = "$installed"; then + if test -z "$install_libdir"; then + break + fi + output=$output_objdir/${outputname}i + # Replace all uninstalled libtool libraries with the installed ones + newdependency_libs= + for deplib in $dependency_libs; do + case $deplib in + *.la) + func_basename "$deplib" + name=$func_basename_result + func_resolve_sysroot "$deplib" + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $func_resolve_sysroot_result` + test -z "$libdir" && \ + func_fatal_error "'$deplib' is not a valid libtool archive" + func_append newdependency_libs " ${lt_sysroot:+=}$libdir/$name" + ;; + -L*) + func_stripname -L '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -L$func_replace_sysroot_result" + ;; + -R*) + func_stripname -R '' "$deplib" + func_replace_sysroot "$func_stripname_result" + func_append newdependency_libs " -R$func_replace_sysroot_result" + ;; + *) func_append newdependency_libs " $deplib" ;; + esac + done + dependency_libs=$newdependency_libs + newdlfiles= + + for lib in $dlfiles; do + case $lib in + *.la) + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlfiles " ${lt_sysroot:+=}$libdir/$name" + ;; + *) func_append newdlfiles " $lib" ;; + esac + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + *.la) + # Only pass preopened files to the pseudo-archive (for + # eventual linking with the app. that links it) if we + # didn't already link the preopened objects directly into + # the library: + func_basename "$lib" + name=$func_basename_result + eval libdir=`$SED -n -e 's/^libdir=\(.*\)$/\1/p' $lib` + test -z "$libdir" && \ + func_fatal_error "'$lib' is not a valid libtool archive" + func_append newdlprefiles " ${lt_sysroot:+=}$libdir/$name" + ;; + esac + done + dlprefiles=$newdlprefiles + else + newdlfiles= + for lib in $dlfiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlfiles " $abs" + done + dlfiles=$newdlfiles + newdlprefiles= + for lib in $dlprefiles; do + case $lib in + [\\/]* | [A-Za-z]:[\\/]*) abs=$lib ;; + *) abs=`pwd`"/$lib" ;; + esac + func_append newdlprefiles " $abs" + done + dlprefiles=$newdlprefiles + fi + $RM $output + # place dlname in correct position for cygwin + # In fact, it would be nice if we could use this code for all target + # systems that can't hard-code library paths into their executables + # and that have no shared library path variable independent of PATH, + # but it turns out we can't easily determine that from inspecting + # libtool variables, so we have to hard-code the OSs to which it + # applies here; at the moment, that means platforms that use the PE + # object format with DLL files. See the long comment at the top of + # tests/bindir.at for full details. + tdlname=$dlname + case $host,$output,$installed,$module,$dlname in + *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) + # If a -bindir argument was supplied, place the dll there. + if test -n "$bindir"; then + func_relative_path "$install_libdir" "$bindir" + tdlname=$func_relative_path_result/$dlname + else + # Otherwise fall back on heuristic. + tdlname=../bin/$dlname + fi + ;; + esac + $ECHO > $output "\ +# $outputname - a libtool library file +# Generated by $PROGRAM (GNU $PACKAGE) $VERSION +# +# Please DO NOT delete this file! +# It is necessary for linking the library. + +# The name that we can dlopen(3). +dlname='$tdlname' + +# Names of this library. +library_names='$library_names' + +# The name of the static archive. +old_library='$old_library' + +# Linker flags that cannot go in dependency_libs. +inherited_linker_flags='$new_inherited_linker_flags' + +# Libraries that this one depends upon. +dependency_libs='$dependency_libs' + +# Names of additional weak libraries provided by this library +weak_library_names='$weak_libs' + +# Version information for $libname. +current=$current +age=$age +revision=$revision + +# Is this an already installed library? +installed=$installed + +# Should we warn about portability when linking against -modules? +shouldnotlink=$module + +# Files to dlopen/dlpreopen +dlopen='$dlfiles' +dlpreopen='$dlprefiles' + +# Directory that this library needs to be installed in: +libdir='$install_libdir'" + if test no,yes = "$installed,$need_relink"; then + $ECHO >> $output "\ +relink_command=\"$relink_command\"" + fi + done + } + + # Do a symbolic link so that the libtool archive can be found in + # LD_LIBRARY_PATH before the program is installed. + func_show_eval '( cd "$output_objdir" && $RM "$outputname" && $LN_S "../$outputname" "$outputname" )' 'exit $?' + ;; + esac + exit $EXIT_SUCCESS +} + +if test link = "$opt_mode" || test relink = "$opt_mode"; then + func_mode_link ${1+"$@"} +fi + + +# func_mode_uninstall arg... +func_mode_uninstall () +{ + $debug_cmd + + RM=$nonopt + files= + rmforce=false + exit_status=0 + + # This variable tells wrapper scripts just to set variables rather + # than running their programs. + libtool_install_magic=$magic + + for arg + do + case $arg in + -f) func_append RM " $arg"; rmforce=: ;; + -*) func_append RM " $arg" ;; + *) func_append files " $arg" ;; + esac + done + + test -z "$RM" && \ + func_fatal_help "you must specify an RM program" + + rmdirs= + + for file in $files; do + func_dirname "$file" "" "." + dir=$func_dirname_result + if test . = "$dir"; then + odir=$objdir + else + odir=$dir/$objdir + fi + func_basename "$file" + name=$func_basename_result + test uninstall = "$opt_mode" && odir=$dir + + # Remember odir for removal later, being careful to avoid duplicates + if test clean = "$opt_mode"; then + case " $rmdirs " in + *" $odir "*) ;; + *) func_append rmdirs " $odir" ;; + esac + fi + + # Don't error if the file doesn't exist and rm -f was used. + if { test -L "$file"; } >/dev/null 2>&1 || + { test -h "$file"; } >/dev/null 2>&1 || + test -f "$file"; then + : + elif test -d "$file"; then + exit_status=1 + continue + elif $rmforce; then + continue + fi + + rmfiles=$file + + case $name in + *.la) + # Possibly a libtool archive, so verify it. + if func_lalib_p "$file"; then + func_source $dir/$name + + # Delete the libtool libraries and symlinks. + for n in $library_names; do + func_append rmfiles " $odir/$n" + done + test -n "$old_library" && func_append rmfiles " $odir/$old_library" + + case $opt_mode in + clean) + case " $library_names " in + *" $dlname "*) ;; + *) test -n "$dlname" && func_append rmfiles " $odir/$dlname" ;; + esac + test -n "$libdir" && func_append rmfiles " $odir/$name $odir/${name}i" + ;; + uninstall) + if test -n "$library_names"; then + # Do each command in the postuninstall commands. + func_execute_cmds "$postuninstall_cmds" '$rmforce || exit_status=1' + fi + + if test -n "$old_library"; then + # Do each command in the old_postuninstall commands. + func_execute_cmds "$old_postuninstall_cmds" '$rmforce || exit_status=1' + fi + # FIXME: should reinstall the best remaining shared library. + ;; + esac + fi + ;; + + *.lo) + # Possibly a libtool object, so verify it. + if func_lalib_p "$file"; then + + # Read the .lo file + func_source $dir/$name + + # Add PIC object to the list of files to remove. + if test -n "$pic_object" && test none != "$pic_object"; then + func_append rmfiles " $dir/$pic_object" + fi + + # Add non-PIC object to the list of files to remove. + if test -n "$non_pic_object" && test none != "$non_pic_object"; then + func_append rmfiles " $dir/$non_pic_object" + fi + fi + ;; + + *) + if test clean = "$opt_mode"; then + noexename=$name + case $file in + *.exe) + func_stripname '' '.exe' "$file" + file=$func_stripname_result + func_stripname '' '.exe' "$name" + noexename=$func_stripname_result + # $file with .exe has already been added to rmfiles, + # add $file without .exe + func_append rmfiles " $file" + ;; + esac + # Do a test to see if this is a libtool program. + if func_ltwrapper_p "$file"; then + if func_ltwrapper_executable_p "$file"; then + func_ltwrapper_scriptname "$file" + relink_command= + func_source $func_ltwrapper_scriptname_result + func_append rmfiles " $func_ltwrapper_scriptname_result" + else + relink_command= + func_source $dir/$noexename + fi + + # note $name still contains .exe if it was in $file originally + # as does the version of $file that was added into $rmfiles + func_append rmfiles " $odir/$name $odir/${name}S.$objext" + if test yes = "$fast_install" && test -n "$relink_command"; then + func_append rmfiles " $odir/lt-$name" + fi + if test "X$noexename" != "X$name"; then + func_append rmfiles " $odir/lt-$noexename.c" + fi + fi + fi + ;; + esac + func_show_eval "$RM $rmfiles" 'exit_status=1' + done + + # Try to remove the $objdir's in the directories where we deleted files + for dir in $rmdirs; do + if test -d "$dir"; then + func_show_eval "rmdir $dir >/dev/null 2>&1" + fi + done + + exit $exit_status +} + +if test uninstall = "$opt_mode" || test clean = "$opt_mode"; then + func_mode_uninstall ${1+"$@"} +fi + +test -z "$opt_mode" && { + help=$generic_help + func_fatal_help "you must specify a MODE" +} + +test -z "$exec_cmd" && \ + func_fatal_help "invalid operation mode '$opt_mode'" + +if test -n "$exec_cmd"; then + eval exec "$exec_cmd" + exit $EXIT_FAILURE +fi + +exit $exit_status + + +# The TAGs below are defined such that we never get into a situation +# where we disable both kinds of libraries. Given conflicting +# choices, we go for a static library, that is the most portable, +# since we can't tell whether shared libraries were disabled because +# the user asked for that or because the platform doesn't support +# them. This is particularly important on AIX, because we don't +# support having both static and shared libraries enabled at the same +# time on that platform, so we default to a shared-only configuration. +# If a disable-shared tag is given, we'll fallback to a static-only +# configuration. But we'll never go from static-only to shared-only. + +# ### BEGIN LIBTOOL TAG CONFIG: disable-shared +build_libtool_libs=no +build_old_libs=yes +# ### END LIBTOOL TAG CONFIG: disable-shared + +# ### BEGIN LIBTOOL TAG CONFIG: disable-static +build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac` +# ### END LIBTOOL TAG CONFIG: disable-static + +# Local Variables: +# mode:shell-script +# sh-indentation:2 +# End: diff --git a/deps/cares/m4/ax_ac_append_to_file.m4 b/deps/cares/m4/ax_ac_append_to_file.m4 new file mode 100644 index 00000000000000..242b3d52006952 --- /dev/null +++ b/deps/cares/m4/ax_ac_append_to_file.m4 @@ -0,0 +1,32 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_ac_append_to_file.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_AC_APPEND_TO_FILE([FILE],[DATA]) +# +# DESCRIPTION +# +# Appends the specified data to the specified Autoconf is run. If you want +# to append to a file when configure is run use AX_APPEND_TO_FILE instead. +# +# LICENSE +# +# Copyright (c) 2009 Allan Caffee +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 10 + +AC_DEFUN([AX_AC_APPEND_TO_FILE],[ +AC_REQUIRE([AX_FILE_ESCAPES]) +m4_esyscmd( +AX_FILE_ESCAPES +[ +printf "%s" "$2" >> "$1" +]) +]) diff --git a/deps/cares/m4/ax_ac_print_to_file.m4 b/deps/cares/m4/ax_ac_print_to_file.m4 new file mode 100644 index 00000000000000..642dfc15113751 --- /dev/null +++ b/deps/cares/m4/ax_ac_print_to_file.m4 @@ -0,0 +1,32 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_ac_print_to_file.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_AC_PRINT_TO_FILE([FILE],[DATA]) +# +# DESCRIPTION +# +# Writes the specified data to the specified file when Autoconf is run. If +# you want to print to a file when configure is run use AX_PRINT_TO_FILE +# instead. +# +# LICENSE +# +# Copyright (c) 2009 Allan Caffee +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 10 + +AC_DEFUN([AX_AC_PRINT_TO_FILE],[ +m4_esyscmd( +AC_REQUIRE([AX_FILE_ESCAPES]) +[ +printf "%s" "$2" > "$1" +]) +]) diff --git a/deps/cares/m4/ax_add_am_macro_static.m4 b/deps/cares/m4/ax_add_am_macro_static.m4 new file mode 100644 index 00000000000000..6442d24b7c54a7 --- /dev/null +++ b/deps/cares/m4/ax_add_am_macro_static.m4 @@ -0,0 +1,28 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_add_am_macro_static.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_ADD_AM_MACRO_STATIC([RULE]) +# +# DESCRIPTION +# +# Adds the specified rule to $AMINCLUDE. +# +# LICENSE +# +# Copyright (c) 2009 Tom Howard +# Copyright (c) 2009 Allan Caffee +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +AC_DEFUN([AX_ADD_AM_MACRO_STATIC],[ + AC_REQUIRE([AX_AM_MACROS_STATIC]) + AX_AC_APPEND_TO_FILE(AMINCLUDE_STATIC,[$1]) +]) diff --git a/deps/cares/m4/ax_am_macros_static.m4 b/deps/cares/m4/ax_am_macros_static.m4 new file mode 100644 index 00000000000000..f4cee8c8908541 --- /dev/null +++ b/deps/cares/m4/ax_am_macros_static.m4 @@ -0,0 +1,38 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_am_macros_static.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_AM_MACROS_STATIC +# +# DESCRIPTION +# +# Adds support for macros that create Automake rules. You must manually +# add the following line +# +# include $(top_srcdir)/aminclude_static.am +# +# to your Makefile.am files. +# +# LICENSE +# +# Copyright (c) 2009 Tom Howard +# Copyright (c) 2009 Allan Caffee +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 11 + +AC_DEFUN([AMINCLUDE_STATIC],[aminclude_static.am]) + +AC_DEFUN([AX_AM_MACROS_STATIC], +[ +AX_AC_PRINT_TO_FILE(AMINCLUDE_STATIC,[ +# ]AMINCLUDE_STATIC[ generated automatically by Autoconf +# from AX_AM_MACROS_STATIC on ]m4_esyscmd([LC_ALL=C date])[ +]) +]) diff --git a/deps/cares/m4/ax_check_gnu_make.m4 b/deps/cares/m4/ax_check_gnu_make.m4 new file mode 100644 index 00000000000000..785dc96daf151c --- /dev/null +++ b/deps/cares/m4/ax_check_gnu_make.m4 @@ -0,0 +1,95 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_check_gnu_make.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CHECK_GNU_MAKE([run-if-true],[run-if-false]) +# +# DESCRIPTION +# +# This macro searches for a GNU version of make. If a match is found: +# +# * The makefile variable `ifGNUmake' is set to the empty string, otherwise +# it is set to "#". This is useful for including a special features in a +# Makefile, which cannot be handled by other versions of make. +# * The makefile variable `ifnGNUmake' is set to #, otherwise +# it is set to the empty string. This is useful for including a special +# features in a Makefile, which can be handled +# by other versions of make or to specify else like clause. +# * The variable `_cv_gnu_make_command` is set to the command to invoke +# GNU make if it exists, the empty string otherwise. +# * The variable `ax_cv_gnu_make_command` is set to the command to invoke +# GNU make by copying `_cv_gnu_make_command`, otherwise it is unset. +# * If GNU Make is found, its version is extracted from the output of +# `make --version` as the last field of a record of space-separated +# columns and saved into the variable `ax_check_gnu_make_version`. +# * Additionally if GNU Make is found, run shell code run-if-true +# else run shell code run-if-false. +# +# Here is an example of its use: +# +# Makefile.in might contain: +# +# # A failsafe way of putting a dependency rule into a makefile +# $(DEPEND): +# $(CC) -MM $(srcdir)/*.c > $(DEPEND) +# +# @ifGNUmake@ ifeq ($(DEPEND),$(wildcard $(DEPEND))) +# @ifGNUmake@ include $(DEPEND) +# @ifGNUmake@ else +# fallback code +# @ifGNUmake@ endif +# +# Then configure.in would normally contain: +# +# AX_CHECK_GNU_MAKE() +# AC_OUTPUT(Makefile) +# +# Then perhaps to cause gnu make to override any other make, we could do +# something like this (note that GNU make always looks for GNUmakefile +# first): +# +# if ! test x$_cv_gnu_make_command = x ; then +# mv Makefile GNUmakefile +# echo .DEFAULT: > Makefile ; +# echo \ $_cv_gnu_make_command \$@ >> Makefile; +# fi +# +# Then, if any (well almost any) other make is called, and GNU make also +# exists, then the other make wraps the GNU make. +# +# LICENSE +# +# Copyright (c) 2008 John Darrington +# Copyright (c) 2015 Enrico M. Crisostomo +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 12 + +AC_DEFUN([AX_CHECK_GNU_MAKE],dnl + [AC_PROG_AWK + AC_CACHE_CHECK([for GNU make],[_cv_gnu_make_command],[dnl + _cv_gnu_make_command="" ; +dnl Search all the common names for GNU make + for a in "$MAKE" make gmake gnumake ; do + if test -z "$a" ; then continue ; fi ; + if "$a" --version 2> /dev/null | grep GNU 2>&1 > /dev/null ; then + _cv_gnu_make_command=$a ; + AX_CHECK_GNU_MAKE_HEADLINE=$("$a" --version 2> /dev/null | grep "GNU Make") + ax_check_gnu_make_version=$(echo ${AX_CHECK_GNU_MAKE_HEADLINE} | ${AWK} -F " " '{ print $(NF); }') + break ; + fi + done ;]) +dnl If there was a GNU version, then set @ifGNUmake@ to the empty string, '#' otherwise + AS_VAR_IF([_cv_gnu_make_command], [""], [AS_VAR_SET([ifGNUmake], ["#"])], [AS_VAR_SET([ifGNUmake], [""])]) + AS_VAR_IF([_cv_gnu_make_command], [""], [AS_VAR_SET([ifnGNUmake], [""])], [AS_VAR_SET([ifnGNUmake], ["#"])]) + AS_VAR_IF([_cv_gnu_make_command], [""], [AS_UNSET(ax_cv_gnu_make_command)], [AS_VAR_SET([ax_cv_gnu_make_command], [${_cv_gnu_make_command}])]) + AS_VAR_IF([_cv_gnu_make_command], [""],[$2],[$1]) + AC_SUBST([ifGNUmake]) + AC_SUBST([ifnGNUmake]) +]) diff --git a/deps/cares/m4/ax_check_user_namespace.m4 b/deps/cares/m4/ax_check_user_namespace.m4 new file mode 100644 index 00000000000000..27ba69821cb7e3 --- /dev/null +++ b/deps/cares/m4/ax_check_user_namespace.m4 @@ -0,0 +1,54 @@ +# -*- Autoconf -*- + +# SYNOPSIS +# +# AX_CHECK_USER_NAMESPACE +# +# DESCRIPTION +# +# This macro checks whether the local system supports Linux user namespaces. +# If so, it calls AC_DEFINE(HAVE_USER_NAMESPACE). + +AC_DEFUN([AX_CHECK_USER_NAMESPACE],[dnl + AC_CACHE_CHECK([whether user namespaces are supported], + ax_cv_user_namespace,[ + AC_LANG_PUSH([C]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include + +int userfn(void *d) { + usleep(100000); /* synchronize by sleep */ + return (getuid() != 0); +} +char userst[1024*1024]; +int main() { + char buffer[1024]; + int rc, status, fd; + pid_t child = clone(userfn, userst + 1024*1024, CLONE_NEWUSER|SIGCHLD, 0); + if (child < 0) return 1; + + sprintf(buffer, "/proc/%d/uid_map", child); + fd = open(buffer, O_CREAT|O_WRONLY|O_TRUNC, 0755); + sprintf(buffer, "0 %d 1\n", getuid()); + write(fd, buffer, strlen(buffer)); + close(fd); + + rc = waitpid(child, &status, 0); + if (rc <= 0) return 1; + if (!WIFEXITED(status)) return 1; + return WEXITSTATUS(status); +} + ]])],[ax_cv_user_namespace=yes],[ax_cv_user_namespace=no],[ax_cv_user_namespace=no]) + AC_LANG_POP([C]) + ]) + if test "$ax_cv_user_namespace" = yes; then + AC_DEFINE([HAVE_USER_NAMESPACE],[1],[Whether user namespaces are available]) + fi +]) # AX_CHECK_USER_NAMESPACE diff --git a/deps/cares/m4/ax_check_uts_namespace.m4 b/deps/cares/m4/ax_check_uts_namespace.m4 new file mode 100644 index 00000000000000..cf7b145c30e471 --- /dev/null +++ b/deps/cares/m4/ax_check_uts_namespace.m4 @@ -0,0 +1,76 @@ +# -*- Autoconf -*- + +# SYNOPSIS +# +# AX_CHECK_UTS_NAMESPACE +# +# DESCRIPTION +# +# This macro checks whether the local system supports Linux UTS namespaces. +# Also requires user namespaces to be available, so that non-root users +# can enter the namespace. +# If so, it calls AC_DEFINE(HAVE_UTS_NAMESPACE). + +AC_DEFUN([AX_CHECK_UTS_NAMESPACE],[dnl + AC_CACHE_CHECK([whether UTS namespaces are supported], + ax_cv_uts_namespace,[ + AC_LANG_PUSH([C]) + AC_RUN_IFELSE([AC_LANG_SOURCE([[ +#define _GNU_SOURCE +#include +#include +#include +#include +#include +#include +#include +#include + +int utsfn(void *d) { + char buffer[1024]; + const char *name = "autoconftest"; + int rc = sethostname(name, strlen(name)); + if (rc != 0) return 1; + gethostname(buffer, 1024); + return (strcmp(buffer, name) != 0); +} + +char st2[1024*1024]; +int fn(void *d) { + pid_t child; + int rc, status; + usleep(100000); /* synchronize by sleep */ + if (getuid() != 0) return 1; + child = clone(utsfn, st2 + 1024*1024, CLONE_NEWUTS|SIGCHLD, 0); + if (child < 0) return 1; + rc = waitpid(child, &status, 0); + if (rc <= 0) return 1; + if (!WIFEXITED(status)) return 1; + return WEXITSTATUS(status); +} +char st[1024*1024]; +int main() { + char buffer[1024]; + int rc, status, fd; + pid_t child = clone(fn, st + 1024*1024, CLONE_NEWUSER|SIGCHLD, 0); + if (child < 0) return 1; + + sprintf(buffer, "/proc/%d/uid_map", child); + fd = open(buffer, O_CREAT|O_WRONLY|O_TRUNC, 0755); + sprintf(buffer, "0 %d 1\n", getuid()); + write(fd, buffer, strlen(buffer)); + close(fd); + + rc = waitpid(child, &status, 0); + if (rc <= 0) return 1; + if (!WIFEXITED(status)) return 1; + return WEXITSTATUS(status); +} +]]) + ],[ax_cv_uts_namespace=yes],[ax_cv_uts_namespace=no],[ax_cv_uts_namespace=no]) + AC_LANG_POP([C]) + ]) + if test "$ax_cv_uts_namespace" = yes; then + AC_DEFINE([HAVE_UTS_NAMESPACE],[1],[Whether UTS namespaces are available]) + fi +]) # AX_CHECK_UTS_NAMESPACE diff --git a/deps/cares/m4/ax_code_coverage.m4 b/deps/cares/m4/ax_code_coverage.m4 new file mode 100644 index 00000000000000..ad4063305ebcdd --- /dev/null +++ b/deps/cares/m4/ax_code_coverage.m4 @@ -0,0 +1,272 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_code_coverage.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_CODE_COVERAGE() +# +# DESCRIPTION +# +# Defines CODE_COVERAGE_CPPFLAGS, CODE_COVERAGE_CFLAGS, +# CODE_COVERAGE_CXXFLAGS and CODE_COVERAGE_LIBS which should be included +# in the CPPFLAGS, CFLAGS CXXFLAGS and LIBS/LIBADD variables of every +# build target (program or library) which should be built with code +# coverage support. Also add rules using AX_ADD_AM_MACRO_STATIC; and +# $enable_code_coverage which can be used in subsequent configure output. +# CODE_COVERAGE_ENABLED is defined and substituted, and corresponds to the +# value of the --enable-code-coverage option, which defaults to being +# disabled. +# +# Test also for gcov program and create GCOV variable that could be +# substituted. +# +# Note that all optimization flags in CFLAGS must be disabled when code +# coverage is enabled. +# +# Usage example: +# +# configure.ac: +# +# AX_CODE_COVERAGE +# +# Makefile.am: +# +# include $(top_srcdir)/aminclude_static.am +# +# my_program_LIBS = ... $(CODE_COVERAGE_LIBS) ... +# my_program_CPPFLAGS = ... $(CODE_COVERAGE_CPPFLAGS) ... +# my_program_CFLAGS = ... $(CODE_COVERAGE_CFLAGS) ... +# my_program_CXXFLAGS = ... $(CODE_COVERAGE_CXXFLAGS) ... +# +# clean-local: code-coverage-clean +# distclean-local: code-coverage-dist-clean +# +# This results in a "check-code-coverage" rule being added to any +# Makefile.am which do "include $(top_srcdir)/aminclude_static.am" +# (assuming the module has been configured with --enable-code-coverage). +# Running `make check-code-coverage` in that directory will run the +# module's test suite (`make check`) and build a code coverage report +# detailing the code which was touched, then print the URI for the report. +# +# This code was derived from Makefile.decl in GLib, originally licensed +# under LGPLv2.1+. +# +# LICENSE +# +# Copyright (c) 2012, 2016 Philip Withnall +# Copyright (c) 2012 Xan Lopez +# Copyright (c) 2012 Christian Persch +# Copyright (c) 2012 Paolo Borelli +# Copyright (c) 2012 Dan Winship +# Copyright (c) 2015,2018 Bastien ROUCARIES +# +# This library is free software; you can redistribute it and/or modify it +# under the terms of the GNU Lesser General Public License as published by +# the Free Software Foundation; either version 2.1 of the License, or (at +# your option) any later version. +# +# This library is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser +# General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public License +# along with this program. If not, see . + +#serial 34 + +m4_define(_AX_CODE_COVERAGE_RULES,[ +AX_ADD_AM_MACRO_STATIC([ +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# Multiple directories may be specified, separated by whitespace. +# (Default: \$(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# \$(PACKAGE_NAME)-\$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# \$(PACKAGE_NAME)-\$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage, +# set to 0 to disable it and leave empty to stay with the default. +# (Default: empty) +# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov +# instances. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) +# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov +# instances. (Default: $CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov +# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the +# collecting lcov instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov +# instance. (Default: $CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering +# lcov instance. (Default: empty) +# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov +# instance. (Default: $CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the +# genhtml instance. (Default: based on $CODE_COVERAGE_BRANCH_COVERAGE) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: $CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the \$(PACKAGE_NAME) and +# \$(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. +# Optional variables +# run only on top dir +if CODE_COVERAGE_ENABLED + ifeq (\$(abs_builddir), \$(abs_top_builddir)) +CODE_COVERAGE_DIRECTORY ?= \$(top_builddir) +CODE_COVERAGE_OUTPUT_FILE ?= \$(PACKAGE_NAME)-\$(PACKAGE_VERSION)-coverage.info +CODE_COVERAGE_OUTPUT_DIRECTORY ?= \$(PACKAGE_NAME)-\$(PACKAGE_VERSION)-coverage + +CODE_COVERAGE_BRANCH_COVERAGE ?= +CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= \$(if \$(CODE_COVERAGE_BRANCH_COVERAGE),\ +--rc lcov_branch_coverage=\$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_LCOV_SHOPTS ?= \$(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool \"\$(GCOV)\" +CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= \$(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +CODE_COVERAGE_LCOV_OPTIONS ?= \$(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?= +CODE_COVERAGE_LCOV_RMOPTS ?= \$(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=\ +\$(if \$(CODE_COVERAGE_BRANCH_COVERAGE),\ +--rc genhtml_branch_coverage=\$(CODE_COVERAGE_BRANCH_COVERAGE)) +CODE_COVERAGE_GENHTML_OPTIONS ?= \$(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +CODE_COVERAGE_IGNORE_PATTERN ?= + +GITIGNOREFILES := \$(GITIGNOREFILES) \$(CODE_COVERAGE_OUTPUT_FILE) \$(CODE_COVERAGE_OUTPUT_DIRECTORY) +code_coverage_v_lcov_cap = \$(code_coverage_v_lcov_cap_\$(V)) +code_coverage_v_lcov_cap_ = \$(code_coverage_v_lcov_cap_\$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_cap_0 = @echo \" LCOV --capture\" \$(CODE_COVERAGE_OUTPUT_FILE); +code_coverage_v_lcov_ign = \$(code_coverage_v_lcov_ign_\$(V)) +code_coverage_v_lcov_ign_ = \$(code_coverage_v_lcov_ign_\$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_lcov_ign_0 = @echo \" LCOV --remove /tmp/*\" \$(CODE_COVERAGE_IGNORE_PATTERN); +code_coverage_v_genhtml = \$(code_coverage_v_genhtml_\$(V)) +code_coverage_v_genhtml_ = \$(code_coverage_v_genhtml_\$(AM_DEFAULT_VERBOSITY)) +code_coverage_v_genhtml_0 = @echo \" GEN \" \"\$(CODE_COVERAGE_OUTPUT_DIRECTORY)\"; +code_coverage_quiet = \$(code_coverage_quiet_\$(V)) +code_coverage_quiet_ = \$(code_coverage_quiet_\$(AM_DEFAULT_VERBOSITY)) +code_coverage_quiet_0 = --quiet + +# sanitizes the test-name: replaces with underscores: dashes and dots +code_coverage_sanitize = \$(subst -,_,\$(subst .,_,\$(1))) + +# Use recursive makes in order to ignore errors during check +check-code-coverage: + -\$(AM_V_at)\$(MAKE) \$(AM_MAKEFLAGS) -k check + \$(AM_V_at)\$(MAKE) \$(AM_MAKEFLAGS) code-coverage-capture + +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook + \$(code_coverage_v_lcov_cap)\$(LCOV) \$(code_coverage_quiet) \$(addprefix --directory ,\$(CODE_COVERAGE_DIRECTORY)) --capture --output-file \"\$(CODE_COVERAGE_OUTPUT_FILE).tmp\" --test-name \"\$(call code_coverage_sanitize,\$(PACKAGE_NAME)-\$(PACKAGE_VERSION))\" --no-checksum --compat-libtool \$(CODE_COVERAGE_LCOV_SHOPTS) \$(CODE_COVERAGE_LCOV_OPTIONS) + \$(code_coverage_v_lcov_ign)\$(LCOV) \$(code_coverage_quiet) \$(addprefix --directory ,\$(CODE_COVERAGE_DIRECTORY)) --remove \"\$(CODE_COVERAGE_OUTPUT_FILE).tmp\" \"/tmp/*\" \$(CODE_COVERAGE_IGNORE_PATTERN) --output-file \"\$(CODE_COVERAGE_OUTPUT_FILE)\" \$(CODE_COVERAGE_LCOV_SHOPTS) \$(CODE_COVERAGE_LCOV_RMOPTS) + -@rm -f \"\$(CODE_COVERAGE_OUTPUT_FILE).tmp\" + \$(code_coverage_v_genhtml)LANG=C \$(GENHTML) \$(code_coverage_quiet) \$(addprefix --prefix ,\$(CODE_COVERAGE_DIRECTORY)) --output-directory \"\$(CODE_COVERAGE_OUTPUT_DIRECTORY)\" --title \"\$(PACKAGE_NAME)-\$(PACKAGE_VERSION) Code Coverage\" --legend --show-details \"\$(CODE_COVERAGE_OUTPUT_FILE)\" \$(CODE_COVERAGE_GENHTML_OPTIONS) + @echo \"file://\$(abs_builddir)/\$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html\" + +code-coverage-clean: + -\$(LCOV) --directory \$(top_builddir) -z + -rm -rf \"\$(CODE_COVERAGE_OUTPUT_FILE)\" \"\$(CODE_COVERAGE_OUTPUT_FILE).tmp\" \"\$(CODE_COVERAGE_OUTPUT_DIRECTORY)\" + -find . \\( -name \"*.gcda\" -o -name \"*.gcno\" -o -name \"*.gcov\" \\) -delete + +code-coverage-dist-clean: + +A][M_DISTCHECK_CONFIGURE_FLAGS := \$(A][M_DISTCHECK_CONFIGURE_FLAGS) --disable-code-coverage + else # ifneq (\$(abs_builddir), \$(abs_top_builddir)) +check-code-coverage: + +code-coverage-capture: code-coverage-capture-hook + +code-coverage-clean: + +code-coverage-dist-clean: + endif # ifeq (\$(abs_builddir), \$(abs_top_builddir)) +else #! CODE_COVERAGE_ENABLED +# Use recursive makes in order to ignore errors during check +check-code-coverage: + @echo \"Need to reconfigure with --enable-code-coverage\" +# Capture code coverage data +code-coverage-capture: code-coverage-capture-hook + @echo \"Need to reconfigure with --enable-code-coverage\" + +code-coverage-clean: + +code-coverage-dist-clean: + +endif #CODE_COVERAGE_ENABLED +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: + +.PHONY: check-code-coverage code-coverage-capture code-coverage-dist-clean code-coverage-clean code-coverage-capture-hook +]) +]) + +AC_DEFUN([_AX_CODE_COVERAGE_ENABLED],[ + AX_CHECK_GNU_MAKE([],AC_MSG_ERROR([not using GNU make that is needed for coverage])) + AC_REQUIRE([AX_ADD_AM_MACRO_STATIC]) + # check for gcov + AC_CHECK_TOOL([GCOV], + [$_AX_CODE_COVERAGE_GCOV_PROG_WITH], + [:]) + AS_IF([test "X$GCOV" = "X:"], + AC_MSG_ERROR([gcov is needed to do coverage])) + AC_SUBST([GCOV]) + + dnl Check if gcc is being used + AS_IF([ test "$GCC" = "no" ], [ + AC_MSG_ERROR([not compiling with gcc, which is required for gcov code coverage]) + ]) + + AC_CHECK_PROG([LCOV], [lcov], [lcov]) + AC_CHECK_PROG([GENHTML], [genhtml], [genhtml]) + + AS_IF([ test x"$LCOV" = x ], [ + AC_MSG_ERROR([To enable code coverage reporting you must have lcov installed]) + ]) + + AS_IF([ test x"$GENHTML" = x ], [ + AC_MSG_ERROR([Could not find genhtml from the lcov package]) + ]) + + dnl Build the code coverage flags + dnl Define CODE_COVERAGE_LDFLAGS for backwards compatibility + CODE_COVERAGE_CPPFLAGS="-DNDEBUG" + CODE_COVERAGE_CFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_CXXFLAGS="-O0 -g -fprofile-arcs -ftest-coverage" + CODE_COVERAGE_LIBS="-lgcov" + + AC_SUBST([CODE_COVERAGE_CPPFLAGS]) + AC_SUBST([CODE_COVERAGE_CFLAGS]) + AC_SUBST([CODE_COVERAGE_CXXFLAGS]) + AC_SUBST([CODE_COVERAGE_LIBS]) +]) + +AC_DEFUN([AX_CODE_COVERAGE],[ + dnl Check for --enable-code-coverage + + # allow to override gcov location + AC_ARG_WITH([gcov], + [AS_HELP_STRING([--with-gcov[=GCOV]], [use given GCOV for coverage (GCOV=gcov).])], + [_AX_CODE_COVERAGE_GCOV_PROG_WITH=$with_gcov], + [_AX_CODE_COVERAGE_GCOV_PROG_WITH=gcov]) + + AC_MSG_CHECKING([whether to build with code coverage support]) + AC_ARG_ENABLE([code-coverage], + AS_HELP_STRING([--enable-code-coverage], + [Whether to enable code coverage support]),, + enable_code_coverage=no) + + AM_CONDITIONAL([CODE_COVERAGE_ENABLED], [test "x$enable_code_coverage" = xyes]) + AC_SUBST([CODE_COVERAGE_ENABLED], [$enable_code_coverage]) + AC_MSG_RESULT($enable_code_coverage) + + AS_IF([ test "x$enable_code_coverage" = xyes ], [ + _AX_CODE_COVERAGE_ENABLED + ]) + + _AX_CODE_COVERAGE_RULES +]) diff --git a/deps/cares/m4/ax_cxx_compile_stdcxx_11.m4 b/deps/cares/m4/ax_cxx_compile_stdcxx_11.m4 new file mode 100644 index 00000000000000..229de309169c8a --- /dev/null +++ b/deps/cares/m4/ax_cxx_compile_stdcxx_11.m4 @@ -0,0 +1,163 @@ +# ============================================================================ +# http://www.gnu.org/software/autoconf-archive/ax_cxx_compile_stdcxx_11.html +# ============================================================================ +# +# SYNOPSIS +# +# AX_CXX_COMPILE_STDCXX_11([ext|noext],[mandatory|optional]) +# +# DESCRIPTION +# +# Check for baseline language coverage in the compiler for the C++11 +# standard; if necessary, add switches to CXXFLAGS to enable support. +# +# The first argument, if specified, indicates whether you insist on an +# extended mode (e.g. -std=gnu++11) or a strict conformance mode (e.g. +# -std=c++11). If neither is specified, you get whatever works, with +# preference for an extended mode. +# +# The second argument, if specified 'mandatory' or if left unspecified, +# indicates that baseline C++11 support is required and that the macro +# should error out if no mode with that support is found. If specified +# 'optional', then configuration proceeds regardless, after defining +# HAVE_CXX11 if and only if a supporting mode is found. +# +# LICENSE +# +# Copyright (c) 2008 Benjamin Kosnik +# Copyright (c) 2012 Zack Weinberg +# Copyright (c) 2013 Roy Stogner +# Copyright (c) 2014, 2015 Google Inc.; contributed by Alexey Sokolov +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 9 + +m4_define([_AX_CXX_COMPILE_STDCXX_11_testbody], [[ + template + struct check + { + static_assert(sizeof(int) <= sizeof(T), "not big enough"); + }; + + struct Base { + virtual void f() {} + }; + struct Child : public Base { + virtual void f() override {} + }; + + typedef check> right_angle_brackets; + + int a; + decltype(a) b; + + typedef check check_type; + check_type c; + check_type&& cr = static_cast(c); + + auto d = a; + auto l = [](){}; + + // http://stackoverflow.com/questions/13728184/template-aliases-and-sfinae + // Clang 3.1 fails with headers of libstd++ 4.8.3 when using std::function because of this + namespace test_template_alias_sfinae { + struct foo {}; + + template + using member = typename T::member_type; + + template + void func(...) {} + + template + void func(member*) {} + + void test(); + + void test() { + func(0); + } + } +]]) + +AC_DEFUN([AX_CXX_COMPILE_STDCXX_11], [dnl + m4_if([$1], [], [], + [$1], [ext], [], + [$1], [noext], [], + [m4_fatal([invalid argument `$1' to AX_CXX_COMPILE_STDCXX_11])])dnl + m4_if([$2], [], [ax_cxx_compile_cxx11_required=true], + [$2], [mandatory], [ax_cxx_compile_cxx11_required=true], + [$2], [optional], [ax_cxx_compile_cxx11_required=false], + [m4_fatal([invalid second argument `$2' to AX_CXX_COMPILE_STDCXX_11])]) + AC_LANG_PUSH([C++])dnl + ac_success=no + AC_CACHE_CHECK(whether $CXX supports C++11 features by default, + ax_cv_cxx_compile_cxx11, + [AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], + [ax_cv_cxx_compile_cxx11=yes], + [ax_cv_cxx_compile_cxx11=no])]) + if test x$ax_cv_cxx_compile_cxx11 = xyes; then + ac_success=yes + fi + + m4_if([$1], [noext], [], [dnl + if test x$ac_success = xno; then + for switch in -std=gnu++11 -std=gnu++0x; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, + $cachevar, + [ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXXFLAGS="$ac_save_CXXFLAGS"]) + if eval test x\$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi]) + + m4_if([$1], [ext], [], [dnl + if test x$ac_success = xno; then + for switch in -std=c++11 -std=c++0x; do + cachevar=AS_TR_SH([ax_cv_cxx_compile_cxx11_$switch]) + AC_CACHE_CHECK(whether $CXX supports C++11 features with $switch, + $cachevar, + [ac_save_CXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS $switch" + AC_COMPILE_IFELSE([AC_LANG_SOURCE([_AX_CXX_COMPILE_STDCXX_11_testbody])], + [eval $cachevar=yes], + [eval $cachevar=no]) + CXXFLAGS="$ac_save_CXXFLAGS"]) + if eval test x\$$cachevar = xyes; then + CXXFLAGS="$CXXFLAGS $switch" + ac_success=yes + break + fi + done + fi]) + AC_LANG_POP([C++]) + if test x$ax_cxx_compile_cxx11_required = xtrue; then + if test x$ac_success = xno; then + AC_MSG_ERROR([*** A compiler with support for C++11 language features is required.]) + fi + else + if test x$ac_success = xno; then + HAVE_CXX11=0 + AC_MSG_NOTICE([No compiler with C++11 support was found]) + else + HAVE_CXX11=1 + AC_DEFINE(HAVE_CXX11,1, + [define if the compiler supports basic C++11 syntax]) + fi + + AC_SUBST(HAVE_CXX11) + fi +]) diff --git a/deps/cares/m4/ax_file_escapes.m4 b/deps/cares/m4/ax_file_escapes.m4 new file mode 100644 index 00000000000000..a86fdc326ba01c --- /dev/null +++ b/deps/cares/m4/ax_file_escapes.m4 @@ -0,0 +1,30 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_file_escapes.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_FILE_ESCAPES +# +# DESCRIPTION +# +# Writes the specified data to the specified file. +# +# LICENSE +# +# Copyright (c) 2008 Tom Howard +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 8 + +AC_DEFUN([AX_FILE_ESCAPES],[ +AX_DOLLAR="\$" +AX_SRB="\\135" +AX_SLB="\\133" +AX_BS="\\\\" +AX_DQ="\"" +]) diff --git a/deps/cares/m4/ax_pthread.m4 b/deps/cares/m4/ax_pthread.m4 new file mode 100644 index 00000000000000..d383ad5c6d6a50 --- /dev/null +++ b/deps/cares/m4/ax_pthread.m4 @@ -0,0 +1,332 @@ +# =========================================================================== +# http://www.gnu.org/software/autoconf-archive/ax_pthread.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_PTHREAD([ACTION-IF-FOUND[, ACTION-IF-NOT-FOUND]]) +# +# DESCRIPTION +# +# This macro figures out how to build C programs using POSIX threads. It +# sets the PTHREAD_LIBS output variable to the threads library and linker +# flags, and the PTHREAD_CFLAGS output variable to any special C compiler +# flags that are needed. (The user can also force certain compiler +# flags/libs to be tested by setting these environment variables.) +# +# Also sets PTHREAD_CC to any special C compiler that is needed for +# multi-threaded programs (defaults to the value of CC otherwise). (This +# is necessary on AIX to use the special cc_r compiler alias.) +# +# NOTE: You are assumed to not only compile your program with these flags, +# but also link it with them as well. e.g. you should link with +# $PTHREAD_CC $CFLAGS $PTHREAD_CFLAGS $LDFLAGS ... $PTHREAD_LIBS $LIBS +# +# If you are only building threads programs, you may wish to use these +# variables in your default LIBS, CFLAGS, and CC: +# +# LIBS="$PTHREAD_LIBS $LIBS" +# CFLAGS="$CFLAGS $PTHREAD_CFLAGS" +# CC="$PTHREAD_CC" +# +# In addition, if the PTHREAD_CREATE_JOINABLE thread-attribute constant +# has a nonstandard name, defines PTHREAD_CREATE_JOINABLE to that name +# (e.g. PTHREAD_CREATE_UNDETACHED on AIX). +# +# Also HAVE_PTHREAD_PRIO_INHERIT is defined if pthread is found and the +# PTHREAD_PRIO_INHERIT symbol is defined when compiling with +# PTHREAD_CFLAGS. +# +# ACTION-IF-FOUND is a list of shell commands to run if a threads library +# is found, and ACTION-IF-NOT-FOUND is a list of commands to run it if it +# is not found. If ACTION-IF-FOUND is not specified, the default action +# will define HAVE_PTHREAD. +# +# Please let the authors know if this macro fails on any platform, or if +# you have any other suggestions or comments. This macro was based on work +# by SGJ on autoconf scripts for FFTW (http://www.fftw.org/) (with help +# from M. Frigo), as well as ac_pthread and hb_pthread macros posted by +# Alejandro Forero Cuervo to the autoconf macro repository. We are also +# grateful for the helpful feedback of numerous users. +# +# Updated for Autoconf 2.68 by Daniel Richard G. +# +# LICENSE +# +# Copyright (c) 2008 Steven G. Johnson +# Copyright (c) 2011 Daniel Richard G. +# +# This program is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by the +# Free Software Foundation, either version 3 of the License, or (at your +# option) any later version. +# +# This program is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General +# Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program. If not, see . +# +# As a special exception, the respective Autoconf Macro's copyright owner +# gives unlimited permission to copy, distribute and modify the configure +# scripts that are the output of Autoconf when processing the Macro. You +# need not follow the terms of the GNU General Public License when using +# or distributing such scripts, even though portions of the text of the +# Macro appear in them. The GNU General Public License (GPL) does govern +# all other use of the material that constitutes the Autoconf Macro. +# +# This special exception to the GPL applies to versions of the Autoconf +# Macro released by the Autoconf Archive. When you make and distribute a +# modified version of the Autoconf Macro, you may extend this special +# exception to the GPL to apply to your modified version as well. + +#serial 21 + +AU_ALIAS([ACX_PTHREAD], [AX_PTHREAD]) +AC_DEFUN([AX_PTHREAD], [ +AC_REQUIRE([AC_CANONICAL_HOST]) +AC_LANG_PUSH([C]) +ax_pthread_ok=no + +# We used to check for pthread.h first, but this fails if pthread.h +# requires special compiler flags (e.g. on True64 or Sequent). +# It gets checked for in the link test anyway. + +# First of all, check if the user has set any of the PTHREAD_LIBS, +# etcetera environment variables, and if threads linking works using +# them: +if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + AC_MSG_CHECKING([for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS]) + AC_TRY_LINK_FUNC([pthread_join], [ax_pthread_ok=yes]) + AC_MSG_RESULT([$ax_pthread_ok]) + if test x"$ax_pthread_ok" = xno; then + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" + fi + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" +fi + +# We must check for the threads library under a number of different +# names; the ordering is very important because some systems +# (e.g. DEC) have both -lpthread and -lpthreads, where one of the +# libraries is broken (non-POSIX). + +# Create a list of thread flags to try. Items starting with a "-" are +# C compiler flags, and other items are library names, except for "none" +# which indicates that we try without any flags at all, and "pthread-config" +# which is a program returning the flags for the Pth emulation library. + +ax_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config" + +# The ordering *is* (sometimes) important. Some notes on the +# individual items follow: + +# pthreads: AIX (must check this before -lpthread) +# none: in case threads are in libc; should be tried before -Kthread and +# other compiler flags to prevent continual compiler warnings +# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h) +# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able) +# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread) +# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads) +# -pthreads: Solaris/gcc +# -mthreads: Mingw32/gcc, Lynx/gcc +# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it +# doesn't hurt to check since this sometimes defines pthreads too; +# also defines -D_REENTRANT) +# ... -mt is also the pthreads flag for HP/aCC +# pthread: Linux, etcetera +# --thread-safe: KAI C++ +# pthread-config: use pthread-config program (for GNU Pth library) + +case ${host_os} in + solaris*) + + # On Solaris (at least, for some versions), libc contains stubbed + # (non-functional) versions of the pthreads routines, so link-based + # tests will erroneously succeed. (We need to link with -pthreads/-mt/ + # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather + # a function called by this macro, so we could check for that, but + # who knows whether they'll stub that too in a future libc.) So, + # we'll just look for -pthreads and -lpthread first: + + ax_pthread_flags="-pthreads pthread -mt -pthread $ax_pthread_flags" + ;; + + darwin*) + ax_pthread_flags="-pthread $ax_pthread_flags" + ;; +esac + +# Clang doesn't consider unrecognized options an error unless we specify +# -Werror. We throw in some extra Clang-specific options to ensure that +# this doesn't happen for GCC, which also accepts -Werror. + +AC_MSG_CHECKING([if compiler needs -Werror to reject unknown flags]) +save_CFLAGS="$CFLAGS" +ax_pthread_extra_flags="-Werror" +CFLAGS="$CFLAGS $ax_pthread_extra_flags -Wunknown-warning-option -Wsizeof-array-argument" +AC_COMPILE_IFELSE([AC_LANG_PROGRAM([int foo(void);],[foo()])], + [AC_MSG_RESULT([yes])], + [ax_pthread_extra_flags= + AC_MSG_RESULT([no])]) +CFLAGS="$save_CFLAGS" + +if test x"$ax_pthread_ok" = xno; then +for flag in $ax_pthread_flags; do + + case $flag in + none) + AC_MSG_CHECKING([whether pthreads work without any flags]) + ;; + + -*) + AC_MSG_CHECKING([whether pthreads work with $flag]) + PTHREAD_CFLAGS="$flag" + ;; + + pthread-config) + AC_CHECK_PROG([ax_pthread_config], [pthread-config], [yes], [no]) + if test x"$ax_pthread_config" = xno; then continue; fi + PTHREAD_CFLAGS="`pthread-config --cflags`" + PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`" + ;; + + *) + AC_MSG_CHECKING([for the pthreads library -l$flag]) + PTHREAD_LIBS="-l$flag" + ;; + esac + + save_LIBS="$LIBS" + save_CFLAGS="$CFLAGS" + LIBS="$PTHREAD_LIBS $LIBS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS $ax_pthread_extra_flags" + + # Check for various functions. We must include pthread.h, + # since some functions may be macros. (On the Sequent, we + # need a special flag -Kthread to make this header compile.) + # We check for pthread_join because it is in -lpthread on IRIX + # while pthread_create is in libc. We check for pthread_attr_init + # due to DEC craziness with -lpthreads. We check for + # pthread_cleanup_push because it is one of the few pthread + # functions on Solaris that doesn't have a non-functional libc stub. + # We try pthread_create on general principles. + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include + static void routine(void *a) { a = 0; } + static void *start_routine(void *a) { return a; }], + [pthread_t th; pthread_attr_t attr; + pthread_create(&th, 0, start_routine, 0); + pthread_join(th, 0); + pthread_attr_init(&attr); + pthread_cleanup_push(routine, 0); + pthread_cleanup_pop(0) /* ; */])], + [ax_pthread_ok=yes], + []) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + AC_MSG_RESULT([$ax_pthread_ok]) + if test "x$ax_pthread_ok" = xyes; then + break; + fi + + PTHREAD_LIBS="" + PTHREAD_CFLAGS="" +done +fi + +# Various other checks: +if test "x$ax_pthread_ok" = xyes; then + save_LIBS="$LIBS" + LIBS="$PTHREAD_LIBS $LIBS" + save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $PTHREAD_CFLAGS" + + # Detect AIX lossage: JOINABLE attribute is called UNDETACHED. + AC_MSG_CHECKING([for joinable pthread attribute]) + attr_name=unknown + for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do + AC_LINK_IFELSE([AC_LANG_PROGRAM([#include ], + [int attr = $attr; return attr /* ; */])], + [attr_name=$attr; break], + []) + done + AC_MSG_RESULT([$attr_name]) + if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then + AC_DEFINE_UNQUOTED([PTHREAD_CREATE_JOINABLE], [$attr_name], + [Define to necessary symbol if this constant + uses a non-standard name on your system.]) + fi + + AC_MSG_CHECKING([if more special flags are required for pthreads]) + flag=no + case ${host_os} in + aix* | freebsd* | darwin*) flag="-D_THREAD_SAFE";; + osf* | hpux*) flag="-D_REENTRANT";; + solaris*) + if test "$GCC" = "yes"; then + flag="-D_REENTRANT" + else + # TODO: What about Clang on Solaris? + flag="-mt -D_REENTRANT" + fi + ;; + esac + AC_MSG_RESULT([$flag]) + if test "x$flag" != xno; then + PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS" + fi + + AC_CACHE_CHECK([for PTHREAD_PRIO_INHERIT], + [ax_cv_PTHREAD_PRIO_INHERIT], [ + AC_LINK_IFELSE([AC_LANG_PROGRAM([[#include ]], + [[int i = PTHREAD_PRIO_INHERIT;]])], + [ax_cv_PTHREAD_PRIO_INHERIT=yes], + [ax_cv_PTHREAD_PRIO_INHERIT=no]) + ]) + AS_IF([test "x$ax_cv_PTHREAD_PRIO_INHERIT" = "xyes"], + [AC_DEFINE([HAVE_PTHREAD_PRIO_INHERIT], [1], [Have PTHREAD_PRIO_INHERIT.])]) + + LIBS="$save_LIBS" + CFLAGS="$save_CFLAGS" + + # More AIX lossage: compile with *_r variant + if test "x$GCC" != xyes; then + case $host_os in + aix*) + AS_CASE(["x/$CC"], + [x*/c89|x*/c89_128|x*/c99|x*/c99_128|x*/cc|x*/cc128|x*/xlc|x*/xlc_v6|x*/xlc128|x*/xlc128_v6], + [#handle absolute path differently from PATH based program lookup + AS_CASE(["x$CC"], + [x/*], + [AS_IF([AS_EXECUTABLE_P([${CC}_r])],[PTHREAD_CC="${CC}_r"])], + [AC_CHECK_PROGS([PTHREAD_CC],[${CC}_r],[$CC])])]) + ;; + esac + fi +fi + +test -n "$PTHREAD_CC" || PTHREAD_CC="$CC" + +AC_SUBST([PTHREAD_LIBS]) +AC_SUBST([PTHREAD_CFLAGS]) +AC_SUBST([PTHREAD_CC]) + +# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND: +if test x"$ax_pthread_ok" = xyes; then + ifelse([$1],,[AC_DEFINE([HAVE_PTHREAD],[1],[Define if you have POSIX threads libraries and header files.])],[$1]) + : +else + ax_pthread_ok=no + $2 +fi +AC_LANG_POP +])dnl AX_PTHREAD diff --git a/deps/cares/m4/ax_require_defined.m4 b/deps/cares/m4/ax_require_defined.m4 new file mode 100644 index 00000000000000..17c3eab7dafde6 --- /dev/null +++ b/deps/cares/m4/ax_require_defined.m4 @@ -0,0 +1,37 @@ +# =========================================================================== +# https://www.gnu.org/software/autoconf-archive/ax_require_defined.html +# =========================================================================== +# +# SYNOPSIS +# +# AX_REQUIRE_DEFINED(MACRO) +# +# DESCRIPTION +# +# AX_REQUIRE_DEFINED is a simple helper for making sure other macros have +# been defined and thus are available for use. This avoids random issues +# where a macro isn't expanded. Instead the configure script emits a +# non-fatal: +# +# ./configure: line 1673: AX_CFLAGS_WARN_ALL: command not found +# +# It's like AC_REQUIRE except it doesn't expand the required macro. +# +# Here's an example: +# +# AX_REQUIRE_DEFINED([AX_CHECK_LINK_FLAG]) +# +# LICENSE +# +# Copyright (c) 2014 Mike Frysinger +# +# Copying and distribution of this file, with or without modification, are +# permitted in any medium without royalty provided the copyright notice +# and this notice are preserved. This file is offered as-is, without any +# warranty. + +#serial 2 + +AC_DEFUN([AX_REQUIRE_DEFINED], [dnl + m4_ifndef([$1], [m4_fatal([macro ]$1[ is not defined; is a m4 file missing?])]) +])dnl AX_REQUIRE_DEFINED diff --git a/deps/cares/m4/cares-compilers.m4 b/deps/cares/m4/cares-compilers.m4 new file mode 100644 index 00000000000000..5ae6b90b328055 --- /dev/null +++ b/deps/cares/m4/cares-compilers.m4 @@ -0,0 +1,1496 @@ +#*************************************************************************** +# +# Copyright (C) 2009 - 2021 by Daniel Stenberg et al +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, provided +# that the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +#*************************************************************************** + +# File version for 'aclocal' use. Keep it a single number. +# serial 75 + + +dnl CARES_CHECK_COMPILER +dnl ------------------------------------------------- +dnl Verify if the C compiler being used is known. + +AC_DEFUN([CARES_CHECK_COMPILER], [ + # + compiler_id="unknown" + compiler_num="0" + # + flags_dbg_all="unknown" + flags_dbg_yes="unknown" + flags_dbg_off="unknown" + flags_opt_all="unknown" + flags_opt_yes="unknown" + flags_opt_off="unknown" + # + flags_prefer_cppflags="no" + # + CARES_CHECK_COMPILER_DEC_C + CARES_CHECK_COMPILER_HPUX_C + CARES_CHECK_COMPILER_IBM_C + CARES_CHECK_COMPILER_INTEL_C + CARES_CHECK_COMPILER_CLANG + CARES_CHECK_COMPILER_GNU_C + CARES_CHECK_COMPILER_LCC + CARES_CHECK_COMPILER_SGI_MIPSPRO_C + CARES_CHECK_COMPILER_SGI_MIPS_C + CARES_CHECK_COMPILER_SUNPRO_C + CARES_CHECK_COMPILER_TINY_C + CARES_CHECK_COMPILER_WATCOM_C + # + if test "$compiler_id" = "unknown"; then + cat <<_EOF 1>&2 +*** +*** Warning: This configure script does not have information about the +*** compiler you are using, relative to the flags required to enable or +*** disable generation of debug info, optimization options or warnings. +*** +*** Whatever settings are present in CFLAGS will be used for this run. +*** +*** If you wish to help the c-ares project to better support your compiler +*** you can report this and the required info on the c-ares development +*** mailing list: http://lists.haxx.se/listinfo/c-ares/ +*** +_EOF + fi +]) + + +dnl CARES_CHECK_COMPILER_CLANG +dnl ------------------------------------------------- +dnl Verify if compiler being used is clang. + +AC_DEFUN([CARES_CHECK_COMPILER_CLANG], [ + AC_BEFORE([$0],[CARES_CHECK_COMPILER_GNU_C])dnl + AC_MSG_CHECKING([if compiler is clang]) + CURL_CHECK_DEF([__clang__], [], [silent]) + if test "$curl_cv_have_def___clang__" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="CLANG" + clangver=`$CC -dumpversion` + clangvhi=`echo $clangver | cut -d . -f1` + clangvlo=`echo $clangver | cut -d . -f2` + compiler_num=`(expr $clangvhi "*" 100 + $clangvlo) 2>/dev/null` + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_all="$flags_dbg_all -ggdb" + flags_dbg_all="$flags_dbg_all -gstabs" + flags_dbg_all="$flags_dbg_all -gstabs+" + flags_dbg_all="$flags_dbg_all -gcoff" + flags_dbg_all="$flags_dbg_all -gxcoff" + flags_dbg_all="$flags_dbg_all -gdwarf-2" + flags_dbg_all="$flags_dbg_all -gvms" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -Os -O3 -O4" + flags_opt_yes="-Os" + flags_opt_off="-O0" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_DEC_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is DEC C. + +AC_DEFUN([CARES_CHECK_COMPILER_DEC_C], [ + AC_MSG_CHECKING([if compiler is DEC/Compaq/HP C]) + CURL_CHECK_DEF([__DECC], [], [silent]) + CURL_CHECK_DEF([__DECC_VER], [], [silent]) + if test "$curl_cv_have_def___DECC" = "yes" && + test "$curl_cv_have_def___DECC_VER" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="DEC_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g2" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -O4" + flags_opt_yes="-O1" + flags_opt_off="-O0" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_GNU_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is GNU C. + +AC_DEFUN([CARES_CHECK_COMPILER_GNU_C], [ + AC_REQUIRE([CARES_CHECK_COMPILER_INTEL_C])dnl + AC_REQUIRE([CARES_CHECK_COMPILER_CLANG])dnl + AC_MSG_CHECKING([if compiler is GNU C]) + CURL_CHECK_DEF([__GNUC__], [], [silent]) + if test "$curl_cv_have_def___GNUC__" = "yes" && + test "$compiler_id" = "unknown"; then + AC_MSG_RESULT([yes]) + compiler_id="GNU_C" + gccver=`$CC -dumpversion` + gccvhi=`echo $gccver | cut -d . -f1` + gccvlo=`echo $gccver | cut -d . -f2` + compiler_num=`(expr $gccvhi "*" 100 + $gccvlo) 2>/dev/null` + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_all="$flags_dbg_all -ggdb" + flags_dbg_all="$flags_dbg_all -gstabs" + flags_dbg_all="$flags_dbg_all -gstabs+" + flags_dbg_all="$flags_dbg_all -gcoff" + flags_dbg_all="$flags_dbg_all -gxcoff" + flags_dbg_all="$flags_dbg_all -gdwarf-2" + flags_dbg_all="$flags_dbg_all -gvms" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" + flags_opt_yes="-O2" + flags_opt_off="-O0" + CURL_CHECK_DEF([_WIN32], [], [silent]) + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_HPUX_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is HP-UX C. + +AC_DEFUN([CARES_CHECK_COMPILER_HPUX_C], [ + AC_MSG_CHECKING([if compiler is HP-UX C]) + CURL_CHECK_DEF([__HP_cc], [], [silent]) + if test "$curl_cv_have_def___HP_cc" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="HP_UX_C" + flags_dbg_all="-g -s" + flags_dbg_yes="-g" + flags_dbg_off="-s" + flags_opt_all="-O +O0 +O1 +O2 +O3 +O4" + flags_opt_yes="+O2" + flags_opt_off="+O0" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_IBM_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is IBM C. + +AC_DEFUN([CARES_CHECK_COMPILER_IBM_C], [ + AC_MSG_CHECKING([if compiler is IBM C]) + CURL_CHECK_DEF([__IBMC__], [], [silent]) + if test "$curl_cv_have_def___IBMC__" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="IBM_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="-O -O0 -O1 -O2 -O3 -O4 -O5" + flags_opt_all="$flags_opt_all -qnooptimize" + flags_opt_all="$flags_opt_all -qoptimize=0" + flags_opt_all="$flags_opt_all -qoptimize=1" + flags_opt_all="$flags_opt_all -qoptimize=2" + flags_opt_all="$flags_opt_all -qoptimize=3" + flags_opt_all="$flags_opt_all -qoptimize=4" + flags_opt_all="$flags_opt_all -qoptimize=5" + flags_opt_yes="-O2" + flags_opt_off="-qnooptimize" + flags_prefer_cppflags="yes" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_INTEL_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is Intel C. + +AC_DEFUN([CARES_CHECK_COMPILER_INTEL_C], [ + AC_BEFORE([$0],[CARES_CHECK_COMPILER_GNU_C])dnl + AC_MSG_CHECKING([if compiler is Intel C]) + CURL_CHECK_DEF([__INTEL_COMPILER], [], [silent]) + if test "$curl_cv_have_def___INTEL_COMPILER" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_num="$curl_cv_def___INTEL_COMPILER" + CURL_CHECK_DEF([__unix__], [], [silent]) + if test "$curl_cv_have_def___unix__" = "yes"; then + compiler_id="INTEL_UNIX_C" + flags_dbg_all="-g -g0" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Os" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + compiler_id="INTEL_WINDOWS_C" + flags_dbg_all="/ZI /Zi /zI /zi /ZD /Zd /zD /zd /Z7 /z7 /Oy /Oy-" + flags_dbg_all="$flags_dbg_all /debug" + flags_dbg_all="$flags_dbg_all /debug:none" + flags_dbg_all="$flags_dbg_all /debug:minimal" + flags_dbg_all="$flags_dbg_all /debug:partial" + flags_dbg_all="$flags_dbg_all /debug:full" + flags_dbg_all="$flags_dbg_all /debug:semantic_stepping" + flags_dbg_all="$flags_dbg_all /debug:extended" + flags_dbg_yes="/Zi /Oy-" + flags_dbg_off="/debug:none /Oy-" + flags_opt_all="/O /O0 /O1 /O2 /O3 /Od /Og /Og- /Oi /Oi-" + flags_opt_yes="/O2" + flags_opt_off="/Od" + fi + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_LCC +dnl ------------------------------------------------- +dnl Verify if compiler being used is LCC. + +AC_DEFUN([CARES_CHECK_COMPILER_LCC], [ + AC_MSG_CHECKING([if compiler is LCC]) + CURL_CHECK_DEF([__LCC__], [], [silent]) + if test "$curl_cv_have_def___LCC__" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="LCC" + flags_dbg_all="-g" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_SGI_MIPS_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is SGI MIPS C. + +AC_DEFUN([CARES_CHECK_COMPILER_SGI_MIPS_C], [ + AC_REQUIRE([CARES_CHECK_COMPILER_SGI_MIPSPRO_C])dnl + AC_MSG_CHECKING([if compiler is SGI MIPS C]) + CURL_CHECK_DEF([__GNUC__], [], [silent]) + CURL_CHECK_DEF([__sgi], [], [silent]) + if test "$curl_cv_have_def___GNUC__" = "no" && + test "$curl_cv_have_def___sgi" = "yes" && + test "$compiler_id" = "unknown"; then + AC_MSG_RESULT([yes]) + compiler_id="SGI_MIPS_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_SGI_MIPSPRO_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is SGI MIPSpro C. + +AC_DEFUN([CARES_CHECK_COMPILER_SGI_MIPSPRO_C], [ + AC_BEFORE([$0],[CARES_CHECK_COMPILER_SGI_MIPS_C])dnl + AC_MSG_CHECKING([if compiler is SGI MIPSpro C]) + CURL_CHECK_DEF([__GNUC__], [], [silent]) + CURL_CHECK_DEF([_COMPILER_VERSION], [], [silent]) + CURL_CHECK_DEF([_SGI_COMPILER_VERSION], [], [silent]) + if test "$curl_cv_have_def___GNUC__" = "no" && + (test "$curl_cv_have_def__SGI_COMPILER_VERSION" = "yes" || + test "$curl_cv_have_def__COMPILER_VERSION" = "yes"); then + AC_MSG_RESULT([yes]) + compiler_id="SGI_MIPSPRO_C" + flags_dbg_all="-g -g0 -g1 -g2 -g3" + flags_dbg_yes="-g" + flags_dbg_off="-g0" + flags_opt_all="-O -O0 -O1 -O2 -O3 -Ofast" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_SUNPRO_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is SunPro C. + +AC_DEFUN([CARES_CHECK_COMPILER_SUNPRO_C], [ + AC_MSG_CHECKING([if compiler is SunPro C]) + CURL_CHECK_DEF([__SUNPRO_C], [], [silent]) + if test "$curl_cv_have_def___SUNPRO_C" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="SUNPRO_C" + flags_dbg_all="-g -s" + flags_dbg_yes="-g" + flags_dbg_off="-s" + flags_opt_all="-O -xO -xO1 -xO2 -xO3 -xO4 -xO5" + flags_opt_yes="-xO2" + flags_opt_off="" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_TINY_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is Tiny C. + +AC_DEFUN([CARES_CHECK_COMPILER_TINY_C], [ + AC_MSG_CHECKING([if compiler is Tiny C]) + CURL_CHECK_DEF([__TINYC__], [], [silent]) + if test "$curl_cv_have_def___TINYC__" = "yes"; then + AC_MSG_RESULT([yes]) + compiler_id="TINY_C" + flags_dbg_all="-g -b" + flags_dbg_yes="-g" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_WATCOM_C +dnl ------------------------------------------------- +dnl Verify if compiler being used is Watcom C. + +AC_DEFUN([CARES_CHECK_COMPILER_WATCOM_C], [ + AC_MSG_CHECKING([if compiler is Watcom C]) + CURL_CHECK_DEF([__WATCOMC__], [], [silent]) + if test "$curl_cv_have_def___WATCOMC__" = "yes"; then + AC_MSG_RESULT([yes]) + CURL_CHECK_DEF([__UNIX__], [], [silent]) + if test "$curl_cv_have_def___UNIX__" = "yes"; then + compiler_id="WATCOM_UNIX_C" + flags_dbg_all="-g1 -g1+ -g2 -g3" + flags_dbg_yes="-g2" + flags_dbg_off="" + flags_opt_all="-O0 -O1 -O2 -O3" + flags_opt_yes="-O2" + flags_opt_off="-O0" + else + compiler_id="WATCOM_WINDOWS_C" + flags_dbg_all="" + flags_dbg_yes="" + flags_dbg_off="" + flags_opt_all="" + flags_opt_yes="" + flags_opt_off="" + fi + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CONVERT_INCLUDE_TO_ISYSTEM +dnl ------------------------------------------------- +dnl Changes standard include paths present in CFLAGS +dnl and CPPFLAGS into isystem include paths. This is +dnl done to prevent GNUC from generating warnings on +dnl headers from these locations, although on ancient +dnl GNUC versions these warnings are not silenced. + +AC_DEFUN([CARES_CONVERT_INCLUDE_TO_ISYSTEM], [ + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + if test "$compiler_id" = "GNU_C" || + test "$compiler_id" = "CLANG"; then + tmp_has_include="no" + tmp_chg_FLAGS="$CFLAGS" + for word1 in $tmp_chg_FLAGS; do + case "$word1" in + -I*) + tmp_has_include="yes" + ;; + esac + done + if test "$tmp_has_include" = "yes"; then + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` + CFLAGS="$tmp_chg_FLAGS" + squeeze CFLAGS + fi + tmp_has_include="no" + tmp_chg_FLAGS="$CPPFLAGS" + for word1 in $tmp_chg_FLAGS; do + case "$word1" in + -I*) + tmp_has_include="yes" + ;; + esac + done + if test "$tmp_has_include" = "yes"; then + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/^-I/ -isystem /g'` + tmp_chg_FLAGS=`echo "$tmp_chg_FLAGS" | "$SED" 's/ -I/ -isystem /g'` + CPPFLAGS="$tmp_chg_FLAGS" + squeeze CPPFLAGS + fi + fi +]) + + +dnl CARES_COMPILER_WORKS_IFELSE ([ACTION-IF-WORKS], [ACTION-IF-NOT-WORKS]) +dnl ------------------------------------------------- +dnl Verify if the C compiler seems to work with the +dnl settings that are 'active' at the time the test +dnl is performed. + +AC_DEFUN([CARES_COMPILER_WORKS_IFELSE], [ + dnl compilation capability verification + tmp_compiler_works="unknown" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + int i = 1; + return i; + ]]) + ],[ + tmp_compiler_works="yes" + ],[ + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/cc-fail: /' conftest.err >&6 + echo " " >&6 + ]) + dnl linking capability verification + if test "$tmp_compiler_works" = "yes"; then + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + int i = 1; + return i; + ]]) + ],[ + tmp_compiler_works="yes" + ],[ + tmp_compiler_works="no" + echo " " >&6 + sed 's/^/link-fail: /' conftest.err >&6 + echo " " >&6 + ]) + fi + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$tmp_compiler_works" = "yes"; then + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ +# ifdef __STDC__ +# include +# endif + ]],[[ + int i = 0; + exit(i); + ]]) + ],[ + tmp_compiler_works="yes" + ],[ + tmp_compiler_works="no" + echo " " >&6 + echo "run-fail: test program exited with status $ac_status" >&6 + echo " " >&6 + ]) + fi + dnl branch upon test result + if test "$tmp_compiler_works" = "yes"; then + ifelse($1,,:,[$1]) + ifelse($2,,,[else + $2]) + fi +]) + + +dnl CARES_SET_COMPILER_BASIC_OPTS +dnl ------------------------------------------------- +dnl Sets compiler specific options/flags which do not +dnl depend on configure's debug, optimize or warnings +dnl options. + +AC_DEFUN([CARES_SET_COMPILER_BASIC_OPTS], [ + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + # + if test "$compiler_id" != "unknown"; then + # + if test "$compiler_id" = "GNU_C" || + test "$compiler_id" = "CLANG"; then + CARES_CONVERT_INCLUDE_TO_ISYSTEM + fi + # + tmp_save_CPPFLAGS="$CPPFLAGS" + tmp_save_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="" + tmp_CFLAGS="" + # + case "$compiler_id" in + # + CLANG) + # + dnl Disable warnings for unused arguments, otherwise clang will + dnl warn about compile-time arguments used during link-time, like + dnl -O and -g and -pedantic. + tmp_CFLAGS="$tmp_CFLAGS -Qunused-arguments" + ;; + # + DEC_C) + # + dnl Select strict ANSI C compiler mode + tmp_CFLAGS="$tmp_CFLAGS -std1" + dnl Turn off optimizer ANSI C aliasing rules + tmp_CFLAGS="$tmp_CFLAGS -noansi_alias" + dnl Generate warnings for missing function prototypes + tmp_CFLAGS="$tmp_CFLAGS -warnprotos" + dnl Change some warnings into fatal errors + tmp_CFLAGS="$tmp_CFLAGS -msg_fatal toofewargs,toomanyargs" + ;; + # + GNU_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + HP_UX_C) + # + dnl Disallow run-time dereferencing of null pointers + tmp_CFLAGS="$tmp_CFLAGS -z" + dnl Disable some remarks + dnl #4227: padding struct with n bytes to align member + dnl #4255: padding size of struct with n bytes to alignment boundary + tmp_CFLAGS="$tmp_CFLAGS +W 4227,4255" + ;; + # + IBM_C) + # + dnl Ensure that compiler optimizations are always thread-safe. + tmp_CPPFLAGS="$tmp_CPPFLAGS -qthreaded" + dnl Disable type based strict aliasing optimizations, using worst + dnl case aliasing assumptions when compiling. Type based aliasing + dnl would restrict the lvalues that could be safely used to access + dnl a data object. + tmp_CPPFLAGS="$tmp_CPPFLAGS -qnoansialias" + dnl Force compiler to stop after the compilation phase, without + dnl generating an object code file when compilation has errors. + tmp_CPPFLAGS="$tmp_CPPFLAGS -qhalt=e" + ;; + # + INTEL_UNIX_C) + # + dnl On unix this compiler uses gcc's header files, so + dnl we select ANSI C89 dialect plus GNU extensions. + tmp_CFLAGS="$tmp_CFLAGS -std=gnu89" + dnl Change some warnings into errors + dnl #140: too many arguments in function call + dnl #147: declaration is incompatible with 'previous one' + dnl #165: too few arguments in function call + dnl #266: function declared implicitly + tmp_CPPFLAGS="$tmp_CPPFLAGS -we 140,147,165,266" + dnl Disable some remarks + dnl #279: controlling expression is constant + dnl #981: operands are evaluated in unspecified order + dnl #1469: "cc" clobber ignored + tmp_CPPFLAGS="$tmp_CPPFLAGS -wd 279,981,1469" + ;; + # + INTEL_WINDOWS_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + LCC) + # + dnl Disallow run-time dereferencing of null pointers + tmp_CFLAGS="$tmp_CFLAGS -n" + ;; + # + SGI_MIPS_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + SGI_MIPSPRO_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + SUNPRO_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + TINY_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + WATCOM_UNIX_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + WATCOM_WINDOWS_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + esac + # + squeeze tmp_CPPFLAGS + squeeze tmp_CFLAGS + # + if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then + AC_MSG_CHECKING([if compiler accepts some basic options]) + CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CPPFLAGS + squeeze CFLAGS + CARES_COMPILER_WORKS_IFELSE([ + AC_MSG_RESULT([yes]) + AC_MSG_NOTICE([compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_WARN([compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS]) + dnl restore initial settings + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + ]) + fi + # + fi +]) + + +dnl CARES_SET_COMPILER_DEBUG_OPTS +dnl ------------------------------------------------- +dnl Sets compiler specific options/flags which depend +dnl on configure's debug option. + +AC_DEFUN([CARES_SET_COMPILER_DEBUG_OPTS], [ + AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CFLAGS="$CFLAGS" + tmp_save_CPPFLAGS="$CPPFLAGS" + # + tmp_options="" + tmp_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="$CPPFLAGS" + CARES_VAR_STRIP([tmp_CFLAGS],[$flags_dbg_all]) + CARES_VAR_STRIP([tmp_CPPFLAGS],[$flags_dbg_all]) + # + if test "$want_debug" = "yes"; then + AC_MSG_CHECKING([if compiler accepts debug enabling options]) + tmp_options="$flags_dbg_yes" + fi + if test "$want_debug" = "no"; then + AC_MSG_CHECKING([if compiler accepts debug disabling options]) + tmp_options="$flags_dbg_off" + fi + # + if test "$flags_prefer_cppflags" = "yes"; then + CPPFLAGS="$tmp_CPPFLAGS $tmp_options" + CFLAGS="$tmp_CFLAGS" + else + CPPFLAGS="$tmp_CPPFLAGS" + CFLAGS="$tmp_CFLAGS $tmp_options" + fi + squeeze CPPFLAGS + squeeze CFLAGS + CARES_COMPILER_WORKS_IFELSE([ + AC_MSG_RESULT([yes]) + AC_MSG_NOTICE([compiler options added: $tmp_options]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_WARN([compiler options rejected: $tmp_options]) + dnl restore initial settings + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + ]) + # + fi +]) + + +dnl CARES_SET_COMPILER_OPTIMIZE_OPTS +dnl ------------------------------------------------- +dnl Sets compiler specific options/flags which depend +dnl on configure's optimize option. + +AC_DEFUN([CARES_SET_COMPILER_OPTIMIZE_OPTS], [ + AC_REQUIRE([CARES_CHECK_OPTION_OPTIMIZE])dnl + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CFLAGS="$CFLAGS" + tmp_save_CPPFLAGS="$CPPFLAGS" + # + tmp_options="" + tmp_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="$CPPFLAGS" + honor_optimize_option="yes" + # + dnl If optimization request setting has not been explicitly specified, + dnl it has been derived from the debug setting and initially assumed. + dnl This initially assumed optimizer setting will finally be ignored + dnl if CFLAGS or CPPFLAGS already hold optimizer flags. This implies + dnl that an initially assumed optimizer setting might not be honored. + # + if test "$want_optimize" = "assume_no" || + test "$want_optimize" = "assume_yes"; then + AC_MSG_CHECKING([if compiler optimizer assumed setting might be used]) + CARES_VAR_MATCH_IFELSE([tmp_CFLAGS],[$flags_opt_all],[ + honor_optimize_option="no" + ]) + CARES_VAR_MATCH_IFELSE([tmp_CPPFLAGS],[$flags_opt_all],[ + honor_optimize_option="no" + ]) + AC_MSG_RESULT([$honor_optimize_option]) + if test "$honor_optimize_option" = "yes"; then + if test "$want_optimize" = "assume_yes"; then + want_optimize="yes" + fi + if test "$want_optimize" = "assume_no"; then + want_optimize="no" + fi + fi + fi + # + if test "$honor_optimize_option" = "yes"; then + CARES_VAR_STRIP([tmp_CFLAGS],[$flags_opt_all]) + CARES_VAR_STRIP([tmp_CPPFLAGS],[$flags_opt_all]) + if test "$want_optimize" = "yes"; then + AC_MSG_CHECKING([if compiler accepts optimizer enabling options]) + tmp_options="$flags_opt_yes" + fi + if test "$want_optimize" = "no"; then + AC_MSG_CHECKING([if compiler accepts optimizer disabling options]) + tmp_options="$flags_opt_off" + fi + if test "$flags_prefer_cppflags" = "yes"; then + CPPFLAGS="$tmp_CPPFLAGS $tmp_options" + CFLAGS="$tmp_CFLAGS" + else + CPPFLAGS="$tmp_CPPFLAGS" + CFLAGS="$tmp_CFLAGS $tmp_options" + fi + squeeze CPPFLAGS + squeeze CFLAGS + CARES_COMPILER_WORKS_IFELSE([ + AC_MSG_RESULT([yes]) + AC_MSG_NOTICE([compiler options added: $tmp_options]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_WARN([compiler options rejected: $tmp_options]) + dnl restore initial settings + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + ]) + fi + # + fi +]) + + +dnl CARES_SET_COMPILER_WARNING_OPTS +dnl ------------------------------------------------- +dnl Sets compiler options/flags which depend on +dnl configure's warnings given option. + +AC_DEFUN([CARES_SET_COMPILER_WARNING_OPTS], [ + AC_REQUIRE([CARES_CHECK_OPTION_WARNINGS])dnl + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + # + if test "$compiler_id" != "unknown"; then + # + tmp_save_CPPFLAGS="$CPPFLAGS" + tmp_save_CFLAGS="$CFLAGS" + tmp_CPPFLAGS="" + tmp_CFLAGS="" + # + case "$compiler_id" in + # + CLANG) + # + if test "$want_warnings" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -pedantic" + tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" + tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" + tmp_CFLAGS="$tmp_CFLAGS -Wshadow" + tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" + tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" + tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" + tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" + tmp_CFLAGS="$tmp_CFLAGS -Wundef" + tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" + tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" + tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" + tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" + tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" + tmp_CFLAGS="$tmp_CFLAGS -Wshorten-64-to-32" + # + dnl Only clang 1.1 or later + if test "$compiler_num" -ge "101"; then + tmp_CFLAGS="$tmp_CFLAGS -Wunused" + fi + fi + ;; + # + DEC_C) + # + if test "$want_warnings" = "yes"; then + dnl Select a higher warning level than default level2 + tmp_CFLAGS="$tmp_CFLAGS -msg_enable level3" + fi + ;; + # + GNU_C) + # + if test "$want_warnings" = "yes"; then + # + dnl Do not enable -pedantic when cross-compiling with a gcc older + dnl than 3.0, to avoid warnings from third party system headers. + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -pedantic" + fi + # + dnl Set of options we believe *ALL* gcc versions support: + tmp_CFLAGS="$tmp_CFLAGS -Wall -W" + # + dnl Only gcc 1.4 or later + if test "$compiler_num" -ge "104"; then + tmp_CFLAGS="$tmp_CFLAGS -Wpointer-arith -Wwrite-strings" + dnl If not cross-compiling with a gcc older than 3.0 + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wunused -Wshadow" + fi + fi + # + dnl Only gcc 2.7 or later + if test "$compiler_num" -ge "207"; then + tmp_CFLAGS="$tmp_CFLAGS -Winline -Wnested-externs" + dnl If not cross-compiling with a gcc older than 3.0 + if test "x$cross_compiling" != "xyes" || + test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-prototypes" + fi + fi + # + dnl Only gcc 2.95 or later + if test "$compiler_num" -ge "295"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-long-long" + fi + # + dnl Only gcc 2.96 or later + if test "$compiler_num" -ge "296"; then + tmp_CFLAGS="$tmp_CFLAGS -Wfloat-equal" + tmp_CFLAGS="$tmp_CFLAGS -Wno-multichar -Wsign-compare" + dnl -Wundef used only if gcc is 2.96 or later since we get + dnl lots of "`_POSIX_C_SOURCE' is not defined" in system + dnl headers with gcc 2.95.4 on FreeBSD 4.9 + tmp_CFLAGS="$tmp_CFLAGS -Wundef" + fi + # + dnl Only gcc 2.97 or later + if test "$compiler_num" -ge "297"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-format-nonliteral" + fi + # + dnl Only gcc 3.0 or later + if test "$compiler_num" -ge "300"; then + dnl -Wunreachable-code seems totally unreliable on my gcc 3.3.2 on + dnl on i686-Linux as it gives us heaps with false positives. + dnl Also, on gcc 4.0.X it is totally unbearable and complains all + dnl over making it unusable for generic purposes. Let's not use it. + tmp_CFLAGS="$tmp_CFLAGS" + fi + # + dnl Only gcc 3.3 or later + if test "$compiler_num" -ge "303"; then + tmp_CFLAGS="$tmp_CFLAGS -Wendif-labels -Wstrict-prototypes" + fi + # + dnl Only gcc 3.4 or later + if test "$compiler_num" -ge "304"; then + tmp_CFLAGS="$tmp_CFLAGS -Wdeclaration-after-statement" + fi + # + dnl Only gcc 4.0 or later + if test "$compiler_num" -ge "400"; then + tmp_CFLAGS="$tmp_CFLAGS -Wstrict-aliasing=3" + fi + # + dnl Only gcc 4.2 or later + if test "$compiler_num" -ge "402"; then + tmp_CFLAGS="$tmp_CFLAGS -Wcast-align" + fi + # + dnl Only gcc 4.3 or later + if test "$compiler_num" -ge "403"; then + tmp_CFLAGS="$tmp_CFLAGS -Wtype-limits -Wold-style-declaration" + tmp_CFLAGS="$tmp_CFLAGS -Wmissing-parameter-type -Wempty-body" + tmp_CFLAGS="$tmp_CFLAGS -Wclobbered -Wignored-qualifiers" + tmp_CFLAGS="$tmp_CFLAGS -Wconversion -Wno-sign-conversion -Wvla" + fi + # + dnl Only gcc 4.5 or later + if test "$compiler_num" -ge "405"; then + dnl Only windows targets + if test "$curl_cv_have_def__WIN32" = "yes"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-pedantic-ms-format" + fi + fi + # + fi + # + dnl Do not issue warnings for code in system include paths. + if test "$compiler_num" -ge "300"; then + tmp_CFLAGS="$tmp_CFLAGS -Wno-system-headers" + else + dnl When cross-compiling with a gcc older than 3.0, disable + dnl some warnings triggered on third party system headers. + if test "x$cross_compiling" = "xyes"; then + if test "$compiler_num" -ge "104"; then + dnl gcc 1.4 or later + tmp_CFLAGS="$tmp_CFLAGS -Wno-unused -Wno-shadow" + fi + if test "$compiler_num" -ge "207"; then + dnl gcc 2.7 or later + tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-declarations" + tmp_CFLAGS="$tmp_CFLAGS -Wno-missing-prototypes" + fi + fi + fi + ;; + # + HP_UX_C) + # + if test "$want_warnings" = "yes"; then + dnl Issue all warnings + tmp_CFLAGS="$tmp_CFLAGS +w1" + fi + ;; + # + IBM_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + INTEL_UNIX_C) + # + if test "$want_warnings" = "yes"; then + if test "$compiler_num" -gt "600"; then + dnl Show errors, warnings, and remarks + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wall -w2" + dnl Perform extra compile-time code checking + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcheck" + dnl Warn on nested comments + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wcomment" + dnl Show warnings relative to deprecated features + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wdeprecated" + dnl Enable warnings for missing prototypes + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wmissing-prototypes" + dnl Enable warnings for 64-bit portability issues + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wp64" + dnl Enable warnings for questionable pointer arithmetic + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wpointer-arith" + dnl Check for function return typw issues + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wreturn-type" + dnl Warn on variable declarations hiding a previous one + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wshadow" + dnl Warn when a variable is used before initialized + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wuninitialized" + dnl Warn if a declared function is not used + tmp_CPPFLAGS="$tmp_CPPFLAGS -Wunused-function" + fi + fi + dnl Disable using EBP register in optimizations + tmp_CFLAGS="$tmp_CFLAGS -fno-omit-frame-pointer" + dnl Disable use of ANSI C aliasing rules in optimizations + tmp_CFLAGS="$tmp_CFLAGS -fno-strict-aliasing" + dnl Value-safe optimizations on floating-point data + tmp_CFLAGS="$tmp_CFLAGS -fp-model precise" + dnl Only icc 10.0 or later + if test "$compiler_num" -ge "1000"; then + dnl Disable vectorizer diagnostic information + tmp_CFLAGS="$tmp_CFLAGS -vec-report0" + fi + ;; + # + INTEL_WINDOWS_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + LCC) + # + if test "$want_warnings" = "yes"; then + dnl Highest warning level is double -A, next is single -A. + dnl Due to the big number of warnings these trigger on third + dnl party header files it is impractical for us to use any of + dnl them here. If you want them simply define it in CPPFLAGS. + tmp_CFLAGS="$tmp_CFLAGS" + fi + ;; + # + SGI_MIPS_C) + # + if test "$want_warnings" = "yes"; then + dnl Perform stricter semantic and lint-like checks + tmp_CFLAGS="$tmp_CFLAGS -fullwarn" + fi + ;; + # + SGI_MIPSPRO_C) + # + if test "$want_warnings" = "yes"; then + dnl Perform stricter semantic and lint-like checks + tmp_CFLAGS="$tmp_CFLAGS -fullwarn" + dnl Disable some remarks + dnl #1209: controlling expression is constant + tmp_CFLAGS="$tmp_CFLAGS -woff 1209" + fi + ;; + # + SUNPRO_C) + # + if test "$want_warnings" = "yes"; then + dnl Perform stricter semantic and lint-like checks + tmp_CFLAGS="$tmp_CFLAGS -v" + fi + ;; + # + TINY_C) + # + if test "$want_warnings" = "yes"; then + dnl Activate all warnings + tmp_CFLAGS="$tmp_CFLAGS -Wall" + dnl Make string constants be of type const char * + tmp_CFLAGS="$tmp_CFLAGS -Wwrite-strings" + dnl Warn use of unsupported GCC features ignored by TCC + tmp_CFLAGS="$tmp_CFLAGS -Wunsupported" + fi + ;; + # + WATCOM_UNIX_C) + # + if test "$want_warnings" = "yes"; then + dnl Issue all warnings + tmp_CFLAGS="$tmp_CFLAGS -Wall -Wextra" + fi + ;; + # + WATCOM_WINDOWS_C) + # + dnl Placeholder + tmp_CFLAGS="$tmp_CFLAGS" + ;; + # + esac + # + squeeze tmp_CPPFLAGS + squeeze tmp_CFLAGS + # + if test ! -z "$tmp_CFLAGS" || test ! -z "$tmp_CPPFLAGS"; then + AC_MSG_CHECKING([if compiler accepts strict warning options]) + CPPFLAGS="$tmp_save_CPPFLAGS $tmp_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CPPFLAGS + squeeze CFLAGS + CARES_COMPILER_WORKS_IFELSE([ + AC_MSG_RESULT([yes]) + AC_MSG_NOTICE([compiler options added: $tmp_CFLAGS $tmp_CPPFLAGS]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_WARN([compiler options rejected: $tmp_CFLAGS $tmp_CPPFLAGS]) + dnl restore initial settings + CPPFLAGS="$tmp_save_CPPFLAGS" + CFLAGS="$tmp_save_CFLAGS" + ]) + fi + # + fi +]) + + +dnl CARES_SHFUNC_SQUEEZE +dnl ------------------------------------------------- +dnl Declares a shell function squeeze() which removes +dnl redundant whitespace out of a shell variable. + +AC_DEFUN([CARES_SHFUNC_SQUEEZE], [ +squeeze() { + _sqz_result="" + eval _sqz_input=\[$][$]1 + for _sqz_token in $_sqz_input; do + if test -z "$_sqz_result"; then + _sqz_result="$_sqz_token" + else + _sqz_result="$_sqz_result $_sqz_token" + fi + done + eval [$]1=\$_sqz_result + return 0 +} +]) + + +dnl CARES_CHECK_COMPILER_HALT_ON_ERROR +dnl ------------------------------------------------- +dnl Verifies if the compiler actually halts after the +dnl compilation phase without generating any object +dnl code file, when the source compiles with errors. + +AC_DEFUN([CARES_CHECK_COMPILER_HALT_ON_ERROR], [ + AC_MSG_CHECKING([if compiler halts on compilation errors]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ + force compilation error + ]]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([compiler does not halt on compilation errors.]) + ],[ + AC_MSG_RESULT([yes]) + ]) +]) + + +dnl CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE +dnl ------------------------------------------------- +dnl Verifies if the compiler actually halts after the +dnl compilation phase without generating any object +dnl code file, when the source code tries to define a +dnl type for a constant array with negative dimension. + +AC_DEFUN([CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE], [ + AC_REQUIRE([CARES_CHECK_COMPILER_HALT_ON_ERROR])dnl + AC_MSG_CHECKING([if compiler halts on negative sized arrays]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + typedef char bad_t[sizeof(char) == sizeof(int) ? -1 : -1 ]; + ]],[[ + bad_t dummy; + ]]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([compiler does not halt on negative sized arrays.]) + ],[ + AC_MSG_RESULT([yes]) + ]) +]) + + +dnl CARES_CHECK_COMPILER_STRUCT_MEMBER_SIZE +dnl ------------------------------------------------- +dnl Verifies if the compiler is capable of handling the +dnl size of a struct member, struct which is a function +dnl result, as a compilation-time condition inside the +dnl type definition of a constant array. + +AC_DEFUN([CARES_CHECK_COMPILER_STRUCT_MEMBER_SIZE], [ + AC_REQUIRE([CARES_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE])dnl + AC_MSG_CHECKING([if compiler struct member size checking works]) + tst_compiler_check_one_works="unknown" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + struct mystruct { + int mi; + char mc; + struct mystruct *next; + }; + struct mystruct myfunc(); + typedef char good_t1[sizeof(myfunc().mi) == sizeof(int) ? 1 : -1 ]; + typedef char good_t2[sizeof(myfunc().mc) == sizeof(char) ? 1 : -1 ]; + ]],[[ + good_t1 dummy1; + good_t2 dummy2; + ]]) + ],[ + tst_compiler_check_one_works="yes" + ],[ + tst_compiler_check_one_works="no" + sed 's/^/cc-src: /' conftest.$ac_ext >&6 + sed 's/^/cc-err: /' conftest.err >&6 + ]) + tst_compiler_check_two_works="unknown" + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + struct mystruct { + int mi; + char mc; + struct mystruct *next; + }; + struct mystruct myfunc(); + typedef char bad_t1[sizeof(myfunc().mi) != sizeof(int) ? 1 : -1 ]; + typedef char bad_t2[sizeof(myfunc().mc) != sizeof(char) ? 1 : -1 ]; + ]],[[ + bad_t1 dummy1; + bad_t2 dummy2; + ]]) + ],[ + tst_compiler_check_two_works="no" + ],[ + tst_compiler_check_two_works="yes" + ]) + if test "$tst_compiler_check_one_works" = "yes" && + test "$tst_compiler_check_two_works" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + AC_MSG_ERROR([compiler fails struct member size checking.]) + fi +]) + + +dnl CARES_CHECK_COMPILER_SYMBOL_HIDING +dnl ------------------------------------------------- +dnl Verify if compiler supports hiding library internal symbols, setting +dnl shell variable supports_symbol_hiding value as appropriate, as well as +dnl variables symbol_hiding_CFLAGS and symbol_hiding_EXTERN when supported. + +AC_DEFUN([CARES_CHECK_COMPILER_SYMBOL_HIDING], [ + AC_REQUIRE([CARES_CHECK_COMPILER])dnl + AC_BEFORE([$0],[CARES_CONFIGURE_SYMBOL_HIDING])dnl + AC_MSG_CHECKING([if compiler supports hiding library internal symbols]) + supports_symbol_hiding="no" + symbol_hiding_CFLAGS="" + symbol_hiding_EXTERN="" + tmp_CFLAGS="" + tmp_EXTERN="" + case "$compiler_id" in + CLANG) + dnl All versions of clang support -fvisibility= + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + ;; + GNU_C) + dnl Only gcc 3.4 or later + if test "$compiler_num" -ge "304"; then + if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + fi + fi + ;; + INTEL_UNIX_C) + dnl Only icc 9.0 or later + if test "$compiler_num" -ge "900"; then + if $CC --help --verbose 2>&1 | grep fvisibility= > /dev/null ; then + tmp_save_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fvisibility=hidden" + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ +# include + ]],[[ + printf("icc fvisibility bug test"); + ]]) + ],[ + tmp_EXTERN="__attribute__ ((__visibility__ (\"default\")))" + tmp_CFLAGS="-fvisibility=hidden" + supports_symbol_hiding="yes" + ]) + CFLAGS="$tmp_save_CFLAGS" + fi + fi + ;; + SUNPRO_C) + if $CC 2>&1 | grep flags >/dev/null && $CC -flags | grep xldscope= >/dev/null ; then + tmp_EXTERN="__global" + tmp_CFLAGS="-xldscope=hidden" + supports_symbol_hiding="yes" + fi + ;; + esac + if test "$supports_symbol_hiding" = "yes"; then + tmp_save_CFLAGS="$CFLAGS" + CFLAGS="$tmp_save_CFLAGS $tmp_CFLAGS" + squeeze CFLAGS + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $tmp_EXTERN char *dummy(char *buff); + char *dummy(char *buff) + { + if(buff) + return ++buff; + else + return buff; + } + ]],[[ + char b[16]; + char *r = dummy(&b[0]); + if(r) + return (int)*r; + ]]) + ],[ + supports_symbol_hiding="yes" + if test -f conftest.err; then + grep 'visibility' conftest.err >/dev/null + if test "$?" -eq "0"; then + supports_symbol_hiding="no" + fi + fi + ],[ + supports_symbol_hiding="no" + echo " " >&6 + sed 's/^/cc-src: /' conftest.$ac_ext >&6 + sed 's/^/cc-err: /' conftest.err >&6 + echo " " >&6 + ]) + CFLAGS="$tmp_save_CFLAGS" + fi + if test "$supports_symbol_hiding" = "yes"; then + AC_MSG_RESULT([yes]) + symbol_hiding_CFLAGS="$tmp_CFLAGS" + symbol_hiding_EXTERN="$tmp_EXTERN" + else + AC_MSG_RESULT([no]) + fi +]) + + +dnl CARES_CHECK_COMPILER_PROTOTYPE_MISMATCH +dnl ------------------------------------------------- +dnl Verifies if the compiler actually halts after the +dnl compilation phase without generating any object +dnl code file, when the source code tries to redefine +dnl a prototype which does not match previous one. + +AC_DEFUN([CARES_CHECK_COMPILER_PROTOTYPE_MISMATCH], [ + AC_REQUIRE([CARES_CHECK_COMPILER_HALT_ON_ERROR])dnl + AC_MSG_CHECKING([if compiler halts on function prototype mismatch]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +# include + int rand(int n); + int rand(int n) + { + if(n) + return ++n; + else + return n; + } + ]],[[ + int i[2]; + int j = rand(i[0]); + if(j) + return j; + ]]) + ],[ + AC_MSG_RESULT([no]) + AC_MSG_ERROR([compiler does not halt on function prototype mismatch.]) + ],[ + AC_MSG_RESULT([yes]) + ]) +]) + + +dnl CARES_VAR_MATCH (VARNAME, VALUE) +dnl ------------------------------------------------- +dnl Verifies if shell variable VARNAME contains VALUE. +dnl Contents of variable VARNAME and VALUE are handled +dnl as whitespace separated lists of words. If at least +dnl one word of VALUE is present in VARNAME the match +dnl is considered positive, otherwise false. + +AC_DEFUN([CARES_VAR_MATCH], [ + ac_var_match_word="no" + for word1 in $[$1]; do + for word2 in [$2]; do + if test "$word1" = "$word2"; then + ac_var_match_word="yes" + fi + done + done +]) + + +dnl CARES_VAR_MATCH_IFELSE (VARNAME, VALUE, +dnl [ACTION-IF-MATCH], [ACTION-IF-NOT-MATCH]) +dnl ------------------------------------------------- +dnl This performs a CURL_VAR_MATCH check and executes +dnl first branch if the match is positive, otherwise +dnl the second branch is executed. + +AC_DEFUN([CARES_VAR_MATCH_IFELSE], [ + CARES_VAR_MATCH([$1],[$2]) + if test "$ac_var_match_word" = "yes"; then + ifelse($3,,:,[$3]) + ifelse($4,,,[else + $4]) + fi +]) + + +dnl CARES_VAR_STRIP (VARNAME, VALUE) +dnl ------------------------------------------------- +dnl Contents of variable VARNAME and VALUE are handled +dnl as whitespace separated lists of words. Each word +dnl from VALUE is removed from VARNAME when present. + +AC_DEFUN([CARES_VAR_STRIP], [ + AC_REQUIRE([CARES_SHFUNC_SQUEEZE])dnl + ac_var_stripped="" + for word1 in $[$1]; do + ac_var_strip_word="no" + for word2 in [$2]; do + if test "$word1" = "$word2"; then + ac_var_strip_word="yes" + fi + done + if test "$ac_var_strip_word" = "no"; then + ac_var_stripped="$ac_var_stripped $word1" + fi + done + dnl squeeze whitespace out of result + [$1]="$ac_var_stripped" + squeeze [$1] +]) + diff --git a/deps/cares/m4/cares-confopts.m4 b/deps/cares/m4/cares-confopts.m4 new file mode 100644 index 00000000000000..78af64bffe1b99 --- /dev/null +++ b/deps/cares/m4/cares-confopts.m4 @@ -0,0 +1,356 @@ +#*************************************************************************** +# +# Copyright (C) 2008 - 2013 by Daniel Stenberg et al +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, provided +# that the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +#*************************************************************************** + +# File version for 'aclocal' use. Keep it a single number. +# serial 11 + + +dnl CARES_CHECK_OPTION_DEBUG +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-debug or --disable-debug, and set shell +dnl variable want_debug value as appropriate. + +AC_DEFUN([CARES_CHECK_OPTION_DEBUG], [ + AC_BEFORE([$0],[CARES_CHECK_OPTION_WARNINGS])dnl + AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl + AC_MSG_CHECKING([whether to enable debug build options]) + OPT_DEBUG_BUILD="default" + AC_ARG_ENABLE(debug, +AS_HELP_STRING([--enable-debug],[Enable debug build options]) +AS_HELP_STRING([--disable-debug],[Disable debug build options]), + OPT_DEBUG_BUILD=$enableval) + case "$OPT_DEBUG_BUILD" in + no) + dnl --disable-debug option used + want_debug="no" + ;; + default) + dnl configure option not specified + want_debug="no" + ;; + *) + dnl --enable-debug option used + want_debug="yes" + ;; + esac + AC_MSG_RESULT([$want_debug]) +]) + + +dnl CARES_CHECK_OPTION_NONBLOCKING +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-nonblocking or --disable-nonblocking, and +dnl set shell variable want_nonblocking as appropriate. + +AC_DEFUN([CARES_CHECK_OPTION_NONBLOCKING], [ + AC_BEFORE([$0],[CARES_CHECK_NONBLOCKING_SOCKET])dnl + AC_MSG_CHECKING([whether to enable non-blocking communications]) + OPT_NONBLOCKING="default" + AC_ARG_ENABLE(nonblocking, +AS_HELP_STRING([--enable-nonblocking],[Enable non-blocking communications]) +AS_HELP_STRING([--disable-nonblocking],[Disable non-blocking communications]), + OPT_NONBLOCKING=$enableval) + case "$OPT_NONBLOCKING" in + no) + dnl --disable-nonblocking option used + want_nonblocking="no" + ;; + default) + dnl configure option not specified + want_nonblocking="yes" + ;; + *) + dnl --enable-nonblocking option used + want_nonblocking="yes" + ;; + esac + AC_MSG_RESULT([$want_nonblocking]) +]) + + +dnl CARES_CHECK_OPTION_OPTIMIZE +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-optimize or --disable-optimize, and set +dnl shell variable want_optimize value as appropriate. + +AC_DEFUN([CARES_CHECK_OPTION_OPTIMIZE], [ + AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl + AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl + AC_MSG_CHECKING([whether to enable compiler optimizer]) + OPT_COMPILER_OPTIMIZE="default" + AC_ARG_ENABLE(optimize, +AS_HELP_STRING([--enable-optimize(=OPT)],[Enable compiler optimizations (default=-O2)]) +AS_HELP_STRING([--disable-optimize],[Disable compiler optimizations]), + OPT_COMPILER_OPTIMIZE=$enableval) + case "$OPT_COMPILER_OPTIMIZE" in + no) + dnl --disable-optimize option used. We will handle this as + dnl a request to disable compiler optimizations if possible. + dnl If the compiler is known CFLAGS and CPPFLAGS will be + dnl overridden, otherwise this can not be honored. + want_optimize="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure's optimize option not specified. Initially we will + dnl handle this as a a request contrary to configure's setting + dnl for --enable-debug. IOW, initially, for debug-enabled builds + dnl this will be handled as a request to disable optimizations if + dnl possible, and for debug-disabled builds this will be handled + dnl initially as a request to enable optimizations if possible. + dnl Finally, if the compiler is known and CFLAGS and CPPFLAGS do + dnl not have any optimizer flag the request will be honored, in + dnl any other case the request can not be honored. + dnl IOW, existing optimizer flags defined in CFLAGS or CPPFLAGS + dnl will always take precedence over any initial assumption. + if test "$want_debug" = "yes"; then + want_optimize="assume_no" + AC_MSG_RESULT([not specified (assuming no)]) + else + want_optimize="assume_yes" + AC_MSG_RESULT([not specified (assuming yes)]) + fi + ;; + *) + dnl --enable-optimize option used. We will handle this as + dnl a request to enable compiler optimizations if possible. + dnl If the compiler is known CFLAGS and CPPFLAGS will be + dnl overridden, otherwise this can not be honored. + want_optimize="yes" + AC_MSG_RESULT([yes]) + ;; + esac +]) + + +dnl CARES_CHECK_OPTION_SYMBOL_HIDING +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-symbol-hiding or --disable-symbol-hiding, +dnl setting shell variable want_symbol_hiding value. + +AC_DEFUN([CARES_CHECK_OPTION_SYMBOL_HIDING], [ + AC_BEFORE([$0],[CARES_CHECK_COMPILER_SYMBOL_HIDING])dnl + AC_MSG_CHECKING([whether to enable hiding of library internal symbols]) + OPT_SYMBOL_HIDING="default" + AC_ARG_ENABLE(symbol-hiding, +AS_HELP_STRING([--enable-symbol-hiding],[Enable hiding of library internal symbols]) +AS_HELP_STRING([--disable-symbol-hiding],[Disable hiding of library internal symbols]), + OPT_SYMBOL_HIDING=$enableval) + case "$OPT_SYMBOL_HIDING" in + no) + dnl --disable-symbol-hiding option used. + dnl This is an indication to not attempt hiding of library internal + dnl symbols. Default symbol visibility will be used, which normally + dnl exposes all library internal symbols. + want_symbol_hiding="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure's symbol-hiding option not specified. + dnl Handle this as if --enable-symbol-hiding option was given. + want_symbol_hiding="yes" + AC_MSG_RESULT([yes]) + ;; + *) + dnl --enable-symbol-hiding option used. + dnl This is an indication to attempt hiding of library internal + dnl symbols. This is only supported on some compilers/linkers. + want_symbol_hiding="yes" + AC_MSG_RESULT([yes]) + ;; + esac +]) + + +dnl CARES_CHECK_OPTION_EXPOSE_STATICS +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-expose-statics or --disable-expose-statics, +dnl setting shell variable want_expose_statics value. + +AC_DEFUN([CARES_CHECK_OPTION_EXPOSE_STATICS], [ + AC_MSG_CHECKING([whether to expose internal static functions for testing]) + OPT_EXPOSE_STATICS="default" + AC_ARG_ENABLE(expose-statics, +AS_HELP_STRING([--enable-expose-statics],[Enable exposure of internal static functions for testing]) +AS_HELP_STRING([--disable-expose-statics],[Disable exposure of internal static functions for testing]), + OPT_EXPOSE_STATICS=$enableval) + case "$OPT_EXPOSE_STATICS" in + no) + dnl --disable-expose-statics option used. + want_expose_statics="no" + AC_MSG_RESULT([no]) + ;; + default) + dnl configure's expose-statics option not specified. + dnl Handle this as if --disable-expose-statics option was given. + want_expose_statics="no" + AC_MSG_RESULT([no]) + ;; + *) + dnl --enable-expose-statics option used. + want_expose_statics="yes" + AC_MSG_RESULT([yes]) + ;; + esac + if test "$want_expose_statics" = "yes"; then + AC_DEFINE_UNQUOTED(CARES_EXPOSE_STATICS, 1, + [Defined for build that exposes internal static functions for testing.]) + fi +]) + + +dnl CARES_CHECK_OPTION_WARNINGS +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-warnings or --disable-warnings, and set +dnl shell variable want_warnings as appropriate. + +AC_DEFUN([CARES_CHECK_OPTION_WARNINGS], [ + AC_REQUIRE([CARES_CHECK_OPTION_DEBUG])dnl + AC_BEFORE([$0],[CARES_CHECK_OPTION_WERROR])dnl + AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl + AC_MSG_CHECKING([whether to enable strict compiler warnings]) + OPT_COMPILER_WARNINGS="default" + AC_ARG_ENABLE(warnings, +AS_HELP_STRING([--enable-warnings],[Enable strict compiler warnings]) +AS_HELP_STRING([--disable-warnings],[Disable strict compiler warnings]), + OPT_COMPILER_WARNINGS=$enableval) + case "$OPT_COMPILER_WARNINGS" in + no) + dnl --disable-warnings option used + want_warnings="no" + ;; + default) + dnl configure option not specified, so + dnl use same setting as --enable-debug + want_warnings="$want_debug" + ;; + *) + dnl --enable-warnings option used + want_warnings="yes" + ;; + esac + AC_MSG_RESULT([$want_warnings]) +]) + +dnl CARES_CHECK_OPTION_WERROR +dnl ------------------------------------------------- +dnl Verify if configure has been invoked with option +dnl --enable-werror or --disable-werror, and set +dnl shell variable want_werror as appropriate. + +AC_DEFUN([CARES_CHECK_OPTION_WERROR], [ + AC_BEFORE([$0],[CARES_CHECK_COMPILER])dnl + AC_MSG_CHECKING([whether to enable compiler warnings as errors]) + OPT_COMPILER_WERROR="default" + AC_ARG_ENABLE(werror, +AS_HELP_STRING([--enable-werror],[Enable compiler warnings as errors]) +AS_HELP_STRING([--disable-werror],[Disable compiler warnings as errors]), + OPT_COMPILER_WERROR=$enableval) + case "$OPT_COMPILER_WERROR" in + no) + dnl --disable-werror option used + want_werror="no" + ;; + default) + dnl configure option not specified + want_werror="no" + ;; + *) + dnl --enable-werror option used + want_werror="yes" + ;; + esac + AC_MSG_RESULT([$want_werror]) +]) + + +dnl CARES_CHECK_NONBLOCKING_SOCKET +dnl ------------------------------------------------- +dnl Check for how to set a socket into non-blocking state. + +AC_DEFUN([CARES_CHECK_NONBLOCKING_SOCKET], [ + AC_REQUIRE([CARES_CHECK_OPTION_NONBLOCKING])dnl + AC_REQUIRE([CARES_CHECK_FUNC_FCNTL])dnl + AC_REQUIRE([CARES_CHECK_FUNC_IOCTL])dnl + AC_REQUIRE([CARES_CHECK_FUNC_IOCTLSOCKET])dnl + AC_REQUIRE([CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL])dnl + AC_REQUIRE([CARES_CHECK_FUNC_SETSOCKOPT])dnl + # + tst_method="unknown" + if test "$want_nonblocking" = "yes"; then + AC_MSG_CHECKING([how to set a socket into non-blocking mode]) + if test "x$ac_cv_func_fcntl_o_nonblock" = "xyes"; then + tst_method="fcntl O_NONBLOCK" + elif test "x$ac_cv_func_ioctl_fionbio" = "xyes"; then + tst_method="ioctl FIONBIO" + elif test "x$ac_cv_func_ioctlsocket_fionbio" = "xyes"; then + tst_method="ioctlsocket FIONBIO" + elif test "x$ac_cv_func_ioctlsocket_camel_fionbio" = "xyes"; then + tst_method="IoctlSocket FIONBIO" + elif test "x$ac_cv_func_setsockopt_so_nonblock" = "xyes"; then + tst_method="setsockopt SO_NONBLOCK" + fi + AC_MSG_RESULT([$tst_method]) + if test "$tst_method" = "unknown"; then + AC_MSG_WARN([cannot determine non-blocking socket method.]) + fi + fi + if test "$tst_method" = "unknown"; then + AC_DEFINE_UNQUOTED(USE_BLOCKING_SOCKETS, 1, + [Define to disable non-blocking sockets.]) + AC_MSG_WARN([non-blocking sockets disabled.]) + fi +]) + + +dnl CARES_CONFIGURE_SYMBOL_HIDING +dnl ------------------------------------------------- +dnl Depending on --enable-symbol-hiding or --disable-symbol-hiding +dnl configure option, and compiler capability to actually honor such +dnl option, this will modify compiler flags as appropriate and also +dnl provide needed definitions for configuration and Makefile.am files. +dnl This macro should not be used until all compilation tests have +dnl been done to prevent interferences on other tests. + +AC_DEFUN([CARES_CONFIGURE_SYMBOL_HIDING], [ + AC_MSG_CHECKING([whether hiding of library internal symbols will actually happen]) + CFLAG_CARES_SYMBOL_HIDING="" + doing_symbol_hiding="no" + if test x"$ac_cv_native_windows" != "xyes" && + test "$want_symbol_hiding" = "yes" && + test "$supports_symbol_hiding" = "yes"; then + doing_symbol_hiding="yes" + CFLAG_CARES_SYMBOL_HIDING="$symbol_hiding_CFLAGS" + AC_DEFINE_UNQUOTED(CARES_SYMBOL_SCOPE_EXTERN, $symbol_hiding_EXTERN, + [Definition to make a library symbol externally visible.]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + AM_CONDITIONAL(DOING_CARES_SYMBOL_HIDING, test x$doing_symbol_hiding = xyes) + AC_SUBST(CFLAG_CARES_SYMBOL_HIDING) + if test "$doing_symbol_hiding" = "yes"; then + AC_DEFINE_UNQUOTED(CARES_SYMBOL_HIDING, 1, + [Defined for build with symbol hiding.]) + fi +]) + diff --git a/deps/cares/m4/cares-functions.m4 b/deps/cares/m4/cares-functions.m4 new file mode 100644 index 00000000000000..0f3992c7f08054 --- /dev/null +++ b/deps/cares/m4/cares-functions.m4 @@ -0,0 +1,3755 @@ +#*************************************************************************** +# +# Copyright (C) 2008 - 2012 by Daniel Stenberg et al +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, provided +# that the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +#*************************************************************************** + +# File version for 'aclocal' use. Keep it a single number. +# serial 46 + + +dnl CARES_INCLUDES_ARPA_INET +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when arpa/inet.h is to be included. + +AC_DEFUN([CARES_INCLUDES_ARPA_INET], [ +cares_includes_arpa_inet="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h sys/socket.h netinet/in.h arpa/inet.h, + [], [], [$cares_includes_arpa_inet]) +]) + + +dnl CARES_INCLUDES_FCNTL +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when fcntl.h is to be included. + +AC_DEFUN([CARES_INCLUDES_FCNTL], [ +cares_includes_fcntl="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_FCNTL_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h unistd.h fcntl.h, + [], [], [$cares_includes_fcntl]) +]) + + +dnl CARES_INCLUDES_NETDB +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when netdb.h is to be included. + +AC_DEFUN([CARES_INCLUDES_NETDB], [ +cares_includes_netdb="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h netdb.h, + [], [], [$cares_includes_netdb]) +]) + + +dnl CARES_INCLUDES_SOCKET +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when socket.h is to be included. + +AC_DEFUN([CARES_INCLUDES_SOCKET], [ +cares_includes_socket="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SOCKET_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h socket.h, + [], [], [$cares_includes_socket]) +]) + + +dnl CARES_INCLUDES_STDLIB +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when stdlib.h is to be included. + +AC_DEFUN([CARES_INCLUDES_STDLIB], [ +cares_includes_stdlib="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_STDLIB_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h stdlib.h, + [], [], [$cares_includes_stdlib]) +]) + + +dnl CARES_INCLUDES_STRING +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when string(s).h is to be included. + +AC_DEFUN([CARES_INCLUDES_STRING], [ +cares_includes_string="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_STRING_H +# include +#endif +#ifdef HAVE_STRINGS_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h string.h strings.h, + [], [], [$cares_includes_string]) +]) + + +dnl CARES_INCLUDES_STROPTS +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when stropts.h is to be included. + +AC_DEFUN([CARES_INCLUDES_STROPTS], [ +cares_includes_stropts="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +#ifdef HAVE_SYS_IOCTL_H +# include +#endif +#ifdef HAVE_STROPTS_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h unistd.h sys/socket.h sys/ioctl.h stropts.h, + [], [], [$cares_includes_stropts]) +]) + + +dnl CARES_INCLUDES_SYS_SOCKET +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when sys/socket.h is to be included. + +AC_DEFUN([CARES_INCLUDES_SYS_SOCKET], [ +cares_includes_sys_socket="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_SOCKET_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h sys/socket.h, + [], [], [$cares_includes_sys_socket]) +]) + + +dnl CARES_INCLUDES_SYS_TYPES +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when sys/types.h is to be included. + +AC_DEFUN([CARES_INCLUDES_SYS_TYPES], [ +cares_includes_sys_types="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h, + [], [], [$cares_includes_sys_types]) +]) + + +dnl CARES_INCLUDES_SYS_UIO +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when sys/uio.h is to be included. + +AC_DEFUN([CARES_INCLUDES_SYS_UIO], [ +cares_includes_sys_uio="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_SYS_UIO_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h sys/uio.h, + [], [], [$cares_includes_sys_uio]) +]) + + +dnl CARES_INCLUDES_UNISTD +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when unistd.h is to be included. + +AC_DEFUN([CARES_INCLUDES_UNISTD], [ +cares_includes_unistd="\ +/* includes start */ +#ifdef HAVE_SYS_TYPES_H +# include +#endif +#ifdef HAVE_UNISTD_H +# include +#endif +/* includes end */" + AC_CHECK_HEADERS( + sys/types.h unistd.h, + [], [], [$cares_includes_unistd]) +]) + + +dnl CARES_INCLUDES_WINSOCK2 +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when winsock(2).h is to be included. + +AC_DEFUN([CARES_INCLUDES_WINSOCK2], [ +cares_includes_winsock2="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# else +# ifdef HAVE_WINSOCK_H +# include +# endif +# endif +#endif +/* includes end */" + CURL_CHECK_HEADER_WINDOWS + CURL_CHECK_HEADER_WINSOCK + CURL_CHECK_HEADER_WINSOCK2 +]) + + +dnl CARES_INCLUDES_WS2TCPIP +dnl ------------------------------------------------- +dnl Set up variable with list of headers that must be +dnl included when ws2tcpip.h is to be included. + +AC_DEFUN([CARES_INCLUDES_WS2TCPIP], [ +cares_includes_ws2tcpip="\ +/* includes start */ +#ifdef HAVE_WINDOWS_H +# ifndef WIN32_LEAN_AND_MEAN +# define WIN32_LEAN_AND_MEAN +# endif +# include +# ifdef HAVE_WINSOCK2_H +# include +# ifdef HAVE_WS2TCPIP_H +# include +# endif +# endif +#endif +/* includes end */" + CURL_CHECK_HEADER_WINDOWS + CURL_CHECK_HEADER_WINSOCK2 + CURL_CHECK_HEADER_WS2TCPIP +]) + + +dnl CARES_PREPROCESS_CALLCONV +dnl ------------------------------------------------- +dnl Set up variable with a preprocessor block which +dnl defines function calling convention. + +AC_DEFUN([CARES_PREPROCESS_CALLCONV], [ +cares_preprocess_callconv="\ +/* preprocess start */ +#ifdef HAVE_WINDOWS_H +# define FUNCALLCONV __stdcall +#else +# define FUNCALLCONV +#endif +/* preprocess end */" +]) + + +dnl CARES_CHECK_FUNC_CLOSESOCKET +dnl ------------------------------------------------- +dnl Verify if closesocket is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_closesocket, then +dnl HAVE_CLOSESOCKET will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_CLOSESOCKET], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl + # + tst_links_closesocket="unknown" + tst_proto_closesocket="unknown" + tst_compi_closesocket="unknown" + tst_allow_closesocket="unknown" + # + AC_MSG_CHECKING([if closesocket can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_socket + ]],[[ + if(0 != closesocket(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_closesocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_closesocket="no" + ]) + # + if test "$tst_links_closesocket" = "yes"; then + AC_MSG_CHECKING([if closesocket is prototyped]) + AC_EGREP_CPP([closesocket],[ + $cares_includes_winsock2 + $cares_includes_socket + ],[ + AC_MSG_RESULT([yes]) + tst_proto_closesocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_closesocket="no" + ]) + fi + # + if test "$tst_proto_closesocket" = "yes"; then + AC_MSG_CHECKING([if closesocket is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_socket + ]],[[ + if(0 != closesocket(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_closesocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_closesocket="no" + ]) + fi + # + if test "$tst_compi_closesocket" = "yes"; then + AC_MSG_CHECKING([if closesocket usage allowed]) + if test "x$cares_disallow_closesocket" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_closesocket="yes" + else + AC_MSG_RESULT([no]) + tst_allow_closesocket="no" + fi + fi + # + AC_MSG_CHECKING([if closesocket might be used]) + if test "$tst_links_closesocket" = "yes" && + test "$tst_proto_closesocket" = "yes" && + test "$tst_compi_closesocket" = "yes" && + test "$tst_allow_closesocket" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET, 1, + [Define to 1 if you have the closesocket function.]) + ac_cv_func_closesocket="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_closesocket="no" + fi +]) + + +dnl CARES_CHECK_FUNC_CLOSESOCKET_CAMEL +dnl ------------------------------------------------- +dnl Verify if CloseSocket is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_closesocket_camel, +dnl then HAVE_CLOSESOCKET_CAMEL will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_CLOSESOCKET_CAMEL], [ + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + # + tst_links_closesocket_camel="unknown" + tst_proto_closesocket_camel="unknown" + tst_compi_closesocket_camel="unknown" + tst_allow_closesocket_camel="unknown" + # + AC_MSG_CHECKING([if CloseSocket can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_socket + ]],[[ + if(0 != CloseSocket(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_closesocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_closesocket_camel="no" + ]) + # + if test "$tst_links_closesocket_camel" = "yes"; then + AC_MSG_CHECKING([if CloseSocket is prototyped]) + AC_EGREP_CPP([CloseSocket],[ + $cares_includes_sys_socket + ],[ + AC_MSG_RESULT([yes]) + tst_proto_closesocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_closesocket_camel="no" + ]) + fi + # + if test "$tst_proto_closesocket_camel" = "yes"; then + AC_MSG_CHECKING([if CloseSocket is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_socket + ]],[[ + if(0 != CloseSocket(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_closesocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_closesocket_camel="no" + ]) + fi + # + if test "$tst_compi_closesocket_camel" = "yes"; then + AC_MSG_CHECKING([if CloseSocket usage allowed]) + if test "x$cares_disallow_closesocket_camel" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_closesocket_camel="yes" + else + AC_MSG_RESULT([no]) + tst_allow_closesocket_camel="no" + fi + fi + # + AC_MSG_CHECKING([if CloseSocket might be used]) + if test "$tst_links_closesocket_camel" = "yes" && + test "$tst_proto_closesocket_camel" = "yes" && + test "$tst_compi_closesocket_camel" = "yes" && + test "$tst_allow_closesocket_camel" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_CLOSESOCKET_CAMEL, 1, + [Define to 1 if you have the CloseSocket camel case function.]) + ac_cv_func_closesocket_camel="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_closesocket_camel="no" + fi +]) + + +dnl CARES_CHECK_FUNC_CONNECT +dnl ------------------------------------------------- +dnl Verify if connect is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_connect, then +dnl HAVE_CONNECT will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_CONNECT], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl + # + tst_links_connect="unknown" + tst_proto_connect="unknown" + tst_compi_connect="unknown" + tst_allow_connect="unknown" + # + AC_MSG_CHECKING([if connect can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ]],[[ + if(0 != connect(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_connect="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_connect="no" + ]) + # + if test "$tst_links_connect" = "yes"; then + AC_MSG_CHECKING([if connect is prototyped]) + AC_EGREP_CPP([connect],[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ],[ + AC_MSG_RESULT([yes]) + tst_proto_connect="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_connect="no" + ]) + fi + # + if test "$tst_proto_connect" = "yes"; then + AC_MSG_CHECKING([if connect is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ]],[[ + if(0 != connect(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_connect="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_connect="no" + ]) + fi + # + if test "$tst_compi_connect" = "yes"; then + AC_MSG_CHECKING([if connect usage allowed]) + if test "x$cares_disallow_connect" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_connect="yes" + else + AC_MSG_RESULT([no]) + tst_allow_connect="no" + fi + fi + # + AC_MSG_CHECKING([if connect might be used]) + if test "$tst_links_connect" = "yes" && + test "$tst_proto_connect" = "yes" && + test "$tst_compi_connect" = "yes" && + test "$tst_allow_connect" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_CONNECT, 1, + [Define to 1 if you have the connect function.]) + ac_cv_func_connect="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_connect="no" + fi +]) + + +dnl CARES_CHECK_FUNC_FCNTL +dnl ------------------------------------------------- +dnl Verify if fcntl is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_fcntl, then +dnl HAVE_FCNTL will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_FCNTL], [ + AC_REQUIRE([CARES_INCLUDES_FCNTL])dnl + # + tst_links_fcntl="unknown" + tst_proto_fcntl="unknown" + tst_compi_fcntl="unknown" + tst_allow_fcntl="unknown" + # + AC_MSG_CHECKING([if fcntl can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([fcntl]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_fcntl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_fcntl="no" + ]) + # + if test "$tst_links_fcntl" = "yes"; then + AC_MSG_CHECKING([if fcntl is prototyped]) + AC_EGREP_CPP([fcntl],[ + $cares_includes_fcntl + ],[ + AC_MSG_RESULT([yes]) + tst_proto_fcntl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_fcntl="no" + ]) + fi + # + if test "$tst_proto_fcntl" = "yes"; then + AC_MSG_CHECKING([if fcntl is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_fcntl + ]],[[ + if(0 != fcntl(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fcntl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fcntl="no" + ]) + fi + # + if test "$tst_compi_fcntl" = "yes"; then + AC_MSG_CHECKING([if fcntl usage allowed]) + if test "x$cares_disallow_fcntl" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_fcntl="yes" + else + AC_MSG_RESULT([no]) + tst_allow_fcntl="no" + fi + fi + # + AC_MSG_CHECKING([if fcntl might be used]) + if test "$tst_links_fcntl" = "yes" && + test "$tst_proto_fcntl" = "yes" && + test "$tst_compi_fcntl" = "yes" && + test "$tst_allow_fcntl" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FCNTL, 1, + [Define to 1 if you have the fcntl function.]) + ac_cv_func_fcntl="yes" + CARES_CHECK_FUNC_FCNTL_O_NONBLOCK + else + AC_MSG_RESULT([no]) + ac_cv_func_fcntl="no" + fi +]) + + +dnl CARES_CHECK_FUNC_FCNTL_O_NONBLOCK +dnl ------------------------------------------------- +dnl Verify if fcntl with status flag O_NONBLOCK is +dnl available, can be compiled, and seems to work. If +dnl all of these are true, then HAVE_FCNTL_O_NONBLOCK +dnl will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_FCNTL_O_NONBLOCK], [ + # + tst_compi_fcntl_o_nonblock="unknown" + tst_allow_fcntl_o_nonblock="unknown" + # + case $host_os in + sunos4* | aix3* | beos*) + dnl O_NONBLOCK does not work on these platforms + cares_disallow_fcntl_o_nonblock="yes" + ;; + esac + # + if test "$ac_cv_func_fcntl" = "yes"; then + AC_MSG_CHECKING([if fcntl O_NONBLOCK is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_fcntl + ]],[[ + int flags = 0; + if(0 != fcntl(0, F_SETFL, flags | O_NONBLOCK)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_fcntl_o_nonblock="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_fcntl_o_nonblock="no" + ]) + fi + # + if test "$tst_compi_fcntl_o_nonblock" = "yes"; then + AC_MSG_CHECKING([if fcntl O_NONBLOCK usage allowed]) + if test "x$cares_disallow_fcntl_o_nonblock" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_fcntl_o_nonblock="yes" + else + AC_MSG_RESULT([no]) + tst_allow_fcntl_o_nonblock="no" + fi + fi + # + AC_MSG_CHECKING([if fcntl O_NONBLOCK might be used]) + if test "$tst_compi_fcntl_o_nonblock" = "yes" && + test "$tst_allow_fcntl_o_nonblock" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FCNTL_O_NONBLOCK, 1, + [Define to 1 if you have a working fcntl O_NONBLOCK function.]) + ac_cv_func_fcntl_o_nonblock="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_fcntl_o_nonblock="no" + fi +]) + + +dnl CARES_CHECK_FUNC_FREEADDRINFO +dnl ------------------------------------------------- +dnl Verify if freeaddrinfo is available, prototyped, +dnl and can be compiled. If all of these are true, +dnl and usage has not been previously disallowed with +dnl shell variable cares_disallow_freeaddrinfo, then +dnl HAVE_FREEADDRINFO will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_FREEADDRINFO], [ + AC_REQUIRE([CARES_INCLUDES_WS2TCPIP])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + # + tst_links_freeaddrinfo="unknown" + tst_proto_freeaddrinfo="unknown" + tst_compi_freeaddrinfo="unknown" + tst_allow_freeaddrinfo="unknown" + # + AC_MSG_CHECKING([if freeaddrinfo can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + freeaddrinfo(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_freeaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_freeaddrinfo="no" + ]) + # + if test "$tst_links_freeaddrinfo" = "yes"; then + AC_MSG_CHECKING([if freeaddrinfo is prototyped]) + AC_EGREP_CPP([freeaddrinfo],[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_freeaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_freeaddrinfo="no" + ]) + fi + # + if test "$tst_proto_freeaddrinfo" = "yes"; then + AC_MSG_CHECKING([if freeaddrinfo is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + freeaddrinfo(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_freeaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_freeaddrinfo="no" + ]) + fi + # + if test "$tst_compi_freeaddrinfo" = "yes"; then + AC_MSG_CHECKING([if freeaddrinfo usage allowed]) + if test "x$cares_disallow_freeaddrinfo" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_freeaddrinfo="yes" + else + AC_MSG_RESULT([no]) + tst_allow_freeaddrinfo="no" + fi + fi + # + AC_MSG_CHECKING([if freeaddrinfo might be used]) + if test "$tst_links_freeaddrinfo" = "yes" && + test "$tst_proto_freeaddrinfo" = "yes" && + test "$tst_compi_freeaddrinfo" = "yes" && + test "$tst_allow_freeaddrinfo" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_FREEADDRINFO, 1, + [Define to 1 if you have the freeaddrinfo function.]) + ac_cv_func_freeaddrinfo="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_freeaddrinfo="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETADDRINFO +dnl ------------------------------------------------- +dnl Verify if getaddrinfo is available, prototyped, can +dnl be compiled and seems to work. If all of these are +dnl true, and usage has not been previously disallowed +dnl with shell variable cares_disallow_getaddrinfo, then +dnl HAVE_GETADDRINFO will be defined. Additionally when +dnl HAVE_GETADDRINFO gets defined this will also attempt +dnl to find out if getaddrinfo happens to be threadsafe, +dnl defining HAVE_GETADDRINFO_THREADSAFE when true. + +AC_DEFUN([CARES_CHECK_FUNC_GETADDRINFO], [ + AC_REQUIRE([CARES_INCLUDES_WS2TCPIP])dnl + AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + AC_REQUIRE([CURL_CHECK_NATIVE_WINDOWS])dnl + # + tst_links_getaddrinfo="unknown" + tst_proto_getaddrinfo="unknown" + tst_compi_getaddrinfo="unknown" + tst_works_getaddrinfo="unknown" + tst_allow_getaddrinfo="unknown" + tst_tsafe_getaddrinfo="unknown" + # + AC_MSG_CHECKING([if getaddrinfo can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + if(0 != getaddrinfo(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getaddrinfo="no" + ]) + # + if test "$tst_links_getaddrinfo" = "yes"; then + AC_MSG_CHECKING([if getaddrinfo is prototyped]) + AC_EGREP_CPP([getaddrinfo],[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getaddrinfo="no" + ]) + fi + # + if test "$tst_proto_getaddrinfo" = "yes"; then + AC_MSG_CHECKING([if getaddrinfo is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + if(0 != getaddrinfo(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getaddrinfo="no" + ]) + fi + # + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_getaddrinfo" = "yes"; then + AC_MSG_CHECKING([if getaddrinfo seems to work]) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_ws2tcpip + $cares_includes_stdlib + $cares_includes_string + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + struct addrinfo hints; + struct addrinfo *ai = 0; + int error; + + memset(&hints, 0, sizeof(hints)); + hints.ai_flags = AI_NUMERICHOST; + hints.ai_family = AF_UNSPEC; + hints.ai_socktype = SOCK_STREAM; + error = getaddrinfo("127.0.0.1", 0, &hints, &ai); + if(error || !ai) + exit(1); /* fail */ + else + exit(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_works_getaddrinfo="yes" + ],[ + AC_MSG_RESULT([no]) + tst_works_getaddrinfo="no" + ]) + fi + # + if test "$tst_compi_getaddrinfo" = "yes" && + test "$tst_works_getaddrinfo" != "no"; then + AC_MSG_CHECKING([if getaddrinfo usage allowed]) + if test "x$cares_disallow_getaddrinfo" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getaddrinfo="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getaddrinfo="no" + fi + fi + # + AC_MSG_CHECKING([if getaddrinfo might be used]) + if test "$tst_links_getaddrinfo" = "yes" && + test "$tst_proto_getaddrinfo" = "yes" && + test "$tst_compi_getaddrinfo" = "yes" && + test "$tst_allow_getaddrinfo" = "yes" && + test "$tst_works_getaddrinfo" != "no"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO, 1, + [Define to 1 if you have a working getaddrinfo function.]) + ac_cv_func_getaddrinfo="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getaddrinfo="no" + ac_cv_func_getaddrinfo_threadsafe="no" + fi + # + if test "$ac_cv_func_getaddrinfo" = "yes"; then + AC_MSG_CHECKING([if getaddrinfo is threadsafe]) + case $host_os in + aix[[1234]].* | aix5.[[01]].*) + dnl aix 5.1 and older + tst_tsafe_getaddrinfo="no" + ;; + aix*) + dnl aix 5.2 and newer + tst_tsafe_getaddrinfo="yes" + ;; + darwin[[12345]].*) + dnl darwin 5.0 and mac os x 10.1.X and older + tst_tsafe_getaddrinfo="no" + ;; + darwin*) + dnl darwin 6.0 and mac os x 10.2.X and newer + tst_tsafe_getaddrinfo="yes" + ;; + freebsd[[1234]].* | freebsd5.[[1234]]*) + dnl freebsd 5.4 and older + tst_tsafe_getaddrinfo="no" + ;; + freebsd*) + dnl freebsd 5.5 and newer + tst_tsafe_getaddrinfo="yes" + ;; + hpux[[123456789]].* | hpux10.* | hpux11.0* | hpux11.10*) + dnl hpux 11.10 and older + tst_tsafe_getaddrinfo="no" + ;; + hpux*) + dnl hpux 11.11 and newer + tst_tsafe_getaddrinfo="yes" + ;; + netbsd[[123]].*) + dnl netbsd 3.X and older + tst_tsafe_getaddrinfo="no" + ;; + netbsd*) + dnl netbsd 4.X and newer + tst_tsafe_getaddrinfo="yes" + ;; + *bsd*) + dnl All other bsd's + tst_tsafe_getaddrinfo="no" + ;; + solaris2*) + dnl solaris which have it + tst_tsafe_getaddrinfo="yes" + ;; + esac + if test "$tst_tsafe_getaddrinfo" = "unknown" && + test "$ac_cv_native_windows" = "yes"; then + tst_tsafe_getaddrinfo="yes" + fi + if test "$tst_tsafe_getaddrinfo" = "unknown"; then + CURL_CHECK_DEF_CC([h_errno], [ + $cares_includes_sys_socket + $cares_includes_netdb + ], [silent]) + if test "$curl_cv_have_def_h_errno" = "yes"; then + tst_h_errno_macro="yes" + else + tst_h_errno_macro="no" + fi + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_socket + $cares_includes_netdb + ]],[[ + h_errno = 2; + if(0 != h_errno) + return 1; + ]]) + ],[ + tst_h_errno_modifiable_lvalue="yes" + ],[ + tst_h_errno_modifiable_lvalue="no" + ]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ +#if defined(_POSIX_C_SOURCE) && (_POSIX_C_SOURCE >= 200809L) + return 0; +#elif defined(_XOPEN_SOURCE) && (_XOPEN_SOURCE >= 700) + return 0; +#else + force compilation error +#endif + ]]) + ],[ + tst_h_errno_sbs_issue_7="yes" + ],[ + tst_h_errno_sbs_issue_7="no" + ]) + if test "$tst_h_errno_macro" = "no" && + test "$tst_h_errno_modifiable_lvalue" = "no" && + test "$tst_h_errno_sbs_issue_7" = "no"; then + tst_tsafe_getaddrinfo="no" + else + tst_tsafe_getaddrinfo="yes" + fi + fi + AC_MSG_RESULT([$tst_tsafe_getaddrinfo]) + if test "$tst_tsafe_getaddrinfo" = "yes"; then + AC_DEFINE_UNQUOTED(HAVE_GETADDRINFO_THREADSAFE, 1, + [Define to 1 if the getaddrinfo function is threadsafe.]) + ac_cv_func_getaddrinfo_threadsafe="yes" + else + ac_cv_func_getaddrinfo_threadsafe="no" + fi + fi +]) + + +dnl CARES_CHECK_FUNC_GETENV +dnl ------------------------------------------------- +dnl Verify if getenv is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_getenv, then +dnl HAVE_GETENV will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETENV], [ + AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl + # + tst_links_getenv="unknown" + tst_proto_getenv="unknown" + tst_compi_getenv="unknown" + tst_allow_getenv="unknown" + # + AC_MSG_CHECKING([if getenv can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getenv]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getenv="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getenv="no" + ]) + # + if test "$tst_links_getenv" = "yes"; then + AC_MSG_CHECKING([if getenv is prototyped]) + AC_EGREP_CPP([getenv],[ + $cares_includes_stdlib + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getenv="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getenv="no" + ]) + fi + # + if test "$tst_proto_getenv" = "yes"; then + AC_MSG_CHECKING([if getenv is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stdlib + ]],[[ + if(0 != getenv(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getenv="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getenv="no" + ]) + fi + # + if test "$tst_compi_getenv" = "yes"; then + AC_MSG_CHECKING([if getenv usage allowed]) + if test "x$cares_disallow_getenv" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getenv="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getenv="no" + fi + fi + # + AC_MSG_CHECKING([if getenv might be used]) + if test "$tst_links_getenv" = "yes" && + test "$tst_proto_getenv" = "yes" && + test "$tst_compi_getenv" = "yes" && + test "$tst_allow_getenv" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETENV, 1, + [Define to 1 if you have the getenv function.]) + ac_cv_func_getenv="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getenv="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETHOSTBYADDR +dnl ------------------------------------------------- +dnl Verify if gethostbyaddr is available, prototyped, +dnl and can be compiled. If all of these are true, +dnl and usage has not been previously disallowed with +dnl shell variable cares_disallow_gethostbyaddr, then +dnl HAVE_GETHOSTBYADDR will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETHOSTBYADDR], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + # + tst_links_gethostbyaddr="unknown" + tst_proto_gethostbyaddr="unknown" + tst_compi_gethostbyaddr="unknown" + tst_allow_gethostbyaddr="unknown" + # + AC_MSG_CHECKING([if gethostbyaddr can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_netdb + ]],[[ + if(0 != gethostbyaddr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_gethostbyaddr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_gethostbyaddr="no" + ]) + # + if test "$tst_links_gethostbyaddr" = "yes"; then + AC_MSG_CHECKING([if gethostbyaddr is prototyped]) + AC_EGREP_CPP([gethostbyaddr],[ + $cares_includes_winsock2 + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_gethostbyaddr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_gethostbyaddr="no" + ]) + fi + # + if test "$tst_proto_gethostbyaddr" = "yes"; then + AC_MSG_CHECKING([if gethostbyaddr is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_netdb + ]],[[ + if(0 != gethostbyaddr(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_gethostbyaddr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_gethostbyaddr="no" + ]) + fi + # + if test "$tst_compi_gethostbyaddr" = "yes"; then + AC_MSG_CHECKING([if gethostbyaddr usage allowed]) + if test "x$cares_disallow_gethostbyaddr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_gethostbyaddr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_gethostbyaddr="no" + fi + fi + # + AC_MSG_CHECKING([if gethostbyaddr might be used]) + if test "$tst_links_gethostbyaddr" = "yes" && + test "$tst_proto_gethostbyaddr" = "yes" && + test "$tst_compi_gethostbyaddr" = "yes" && + test "$tst_allow_gethostbyaddr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYADDR, 1, + [Define to 1 if you have the gethostbyaddr function.]) + ac_cv_func_gethostbyaddr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_gethostbyaddr="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETHOSTBYNAME +dnl ------------------------------------------------- +dnl Verify if gethostbyname is available, prototyped, +dnl and can be compiled. If all of these are true, +dnl and usage has not been previously disallowed with +dnl shell variable cares_disallow_gethostbyname, then +dnl HAVE_GETHOSTBYNAME will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETHOSTBYNAME], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + # + tst_links_gethostbyname="unknown" + tst_proto_gethostbyname="unknown" + tst_compi_gethostbyname="unknown" + tst_allow_gethostbyname="unknown" + # + AC_MSG_CHECKING([if gethostbyname can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_netdb + ]],[[ + if(0 != gethostbyname(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_gethostbyname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_gethostbyname="no" + ]) + # + if test "$tst_links_gethostbyname" = "yes"; then + AC_MSG_CHECKING([if gethostbyname is prototyped]) + AC_EGREP_CPP([gethostbyname],[ + $cares_includes_winsock2 + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_gethostbyname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_gethostbyname="no" + ]) + fi + # + if test "$tst_proto_gethostbyname" = "yes"; then + AC_MSG_CHECKING([if gethostbyname is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_netdb + ]],[[ + if(0 != gethostbyname(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_gethostbyname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_gethostbyname="no" + ]) + fi + # + if test "$tst_compi_gethostbyname" = "yes"; then + AC_MSG_CHECKING([if gethostbyname usage allowed]) + if test "x$cares_disallow_gethostbyname" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_gethostbyname="yes" + else + AC_MSG_RESULT([no]) + tst_allow_gethostbyname="no" + fi + fi + # + AC_MSG_CHECKING([if gethostbyname might be used]) + if test "$tst_links_gethostbyname" = "yes" && + test "$tst_proto_gethostbyname" = "yes" && + test "$tst_compi_gethostbyname" = "yes" && + test "$tst_allow_gethostbyname" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETHOSTBYNAME, 1, + [Define to 1 if you have the gethostbyname function.]) + ac_cv_func_gethostbyname="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_gethostbyname="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETHOSTNAME +dnl ------------------------------------------------- +dnl Verify if gethostname is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_gethostname, then +dnl HAVE_GETHOSTNAME will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETHOSTNAME], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_UNISTD])dnl + AC_REQUIRE([CARES_PREPROCESS_CALLCONV])dnl + # + tst_links_gethostname="unknown" + tst_proto_gethostname="unknown" + tst_compi_gethostname="unknown" + tst_allow_gethostname="unknown" + # + AC_MSG_CHECKING([if gethostname can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_unistd + ]],[[ + if(0 != gethostname(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_gethostname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_gethostname="no" + ]) + # + if test "$tst_links_gethostname" = "yes"; then + AC_MSG_CHECKING([if gethostname is prototyped]) + AC_EGREP_CPP([gethostname],[ + $cares_includes_winsock2 + $cares_includes_unistd + ],[ + AC_MSG_RESULT([yes]) + tst_proto_gethostname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_gethostname="no" + ]) + fi + # + if test "$tst_proto_gethostname" = "yes"; then + AC_MSG_CHECKING([if gethostname is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_unistd + ]],[[ + if(0 != gethostname(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_gethostname="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_gethostname="no" + ]) + fi + # + if test "$tst_compi_gethostname" = "yes"; then + AC_MSG_CHECKING([for gethostname arg 2 data type]) + tst_gethostname_type_arg2="unknown" + for tst_arg1 in 'char *' 'unsigned char *' 'void *'; do + for tst_arg2 in 'int' 'unsigned int' 'size_t'; do + if test "$tst_gethostname_type_arg2" = "unknown"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_unistd + $cares_preprocess_callconv + extern int FUNCALLCONV gethostname($tst_arg1, $tst_arg2); + ]],[[ + if(0 != gethostname(0, 0)) + return 1; + ]]) + ],[ + tst_gethostname_type_arg2="$tst_arg2" + ]) + fi + done + done + AC_MSG_RESULT([$tst_gethostname_type_arg2]) + if test "$tst_gethostname_type_arg2" != "unknown"; then + AC_DEFINE_UNQUOTED(GETHOSTNAME_TYPE_ARG2, $tst_gethostname_type_arg2, + [Define to the type of arg 2 for gethostname.]) + fi + fi + # + if test "$tst_compi_gethostname" = "yes"; then + AC_MSG_CHECKING([if gethostname usage allowed]) + if test "x$cares_disallow_gethostname" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_gethostname="yes" + else + AC_MSG_RESULT([no]) + tst_allow_gethostname="no" + fi + fi + # + AC_MSG_CHECKING([if gethostname might be used]) + if test "$tst_links_gethostname" = "yes" && + test "$tst_proto_gethostname" = "yes" && + test "$tst_compi_gethostname" = "yes" && + test "$tst_allow_gethostname" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETHOSTNAME, 1, + [Define to 1 if you have the gethostname function.]) + ac_cv_func_gethostname="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_gethostname="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETSERVBYPORT_R +dnl ------------------------------------------------- +dnl Verify if getservbyport_r is available, prototyped, +dnl and can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_getservbyport_r, then +dnl HAVE_GETSERVBYPORT_R will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETSERVBYPORT_R], [ + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + # + tst_links_getservbyport_r="unknown" + tst_proto_getservbyport_r="unknown" + tst_compi_getservbyport_r="unknown" + tst_allow_getservbyport_r="unknown" + tst_nargs_getservbyport_r="unknown" + # + AC_MSG_CHECKING([if getservbyport_r can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getservbyport_r]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getservbyport_r="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getservbyport_r="no" + ]) + # + if test "$tst_links_getservbyport_r" = "yes"; then + AC_MSG_CHECKING([if getservbyport_r is prototyped]) + AC_EGREP_CPP([getservbyport_r],[ + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getservbyport_r="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getservbyport_r="no" + ]) + fi + # + if test "$tst_proto_getservbyport_r" = "yes"; then + if test "$tst_nargs_getservbyport_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyport_r takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyport_r(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyport_r="no" + ]) + fi + if test "$tst_nargs_getservbyport_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyport_r takes 5 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyport_r(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="5" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyport_r="no" + ]) + fi + if test "$tst_nargs_getservbyport_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyport_r takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyport_r(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyport_r="yes" + tst_nargs_getservbyport_r="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyport_r="no" + ]) + fi + AC_MSG_CHECKING([if getservbyport_r is compilable]) + if test "$tst_compi_getservbyport_r" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_getservbyport_r" = "yes"; then + AC_MSG_CHECKING([if getservbyport_r usage allowed]) + if test "x$cares_disallow_getservbyport_r" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getservbyport_r="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getservbyport_r="no" + fi + fi + # + AC_MSG_CHECKING([if getservbyport_r might be used]) + if test "$tst_links_getservbyport_r" = "yes" && + test "$tst_proto_getservbyport_r" = "yes" && + test "$tst_compi_getservbyport_r" = "yes" && + test "$tst_allow_getservbyport_r" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETSERVBYPORT_R, 1, + [Define to 1 if you have the getservbyport_r function.]) + AC_DEFINE_UNQUOTED(GETSERVBYPORT_R_ARGS, $tst_nargs_getservbyport_r, + [Specifies the number of arguments to getservbyport_r]) + if test "$tst_nargs_getservbyport_r" -eq "4"; then + AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, sizeof(struct servent_data), + [Specifies the size of the buffer to pass to getservbyport_r]) + else + AC_DEFINE(GETSERVBYPORT_R_BUFSIZE, 4096, + [Specifies the size of the buffer to pass to getservbyport_r]) + fi + ac_cv_func_getservbyport_r="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getservbyport_r="no" + fi +]) + + +dnl CARES_CHECK_FUNC_GETSERVBYNAME_R +dnl ------------------------------------------------- +dnl Verify if getservbyname_r is available, prototyped, +dnl and can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_getservbyname_r, then +dnl HAVE_GETSERVBYNAME_R will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_GETSERVBYNAME_R], [ + AC_REQUIRE([CARES_INCLUDES_NETDB])dnl + # + tst_links_getservbyname_r="unknown" + tst_proto_getservbyname_r="unknown" + tst_compi_getservbyname_r="unknown" + tst_allow_getservbyname_r="unknown" + tst_nargs_getservbyname_r="unknown" + # + AC_MSG_CHECKING([if getservbyname_r can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getservbyname_r]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_getservbyname_r="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_getservbyname_r="no" + ]) + # + if test "$tst_links_getservbyname_r" = "yes"; then + AC_MSG_CHECKING([if getservbyname_r is prototyped]) + AC_EGREP_CPP([getservbyname_r],[ + $cares_includes_netdb + ],[ + AC_MSG_RESULT([yes]) + tst_proto_getservbyname_r="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_getservbyname_r="no" + ]) + fi + # + if test "$tst_proto_getservbyname_r" = "yes"; then + if test "$tst_nargs_getservbyname_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyname_r takes 4 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyname_r(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyname_r="yes" + tst_nargs_getservbyname_r="4" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyname_r="no" + ]) + fi + if test "$tst_nargs_getservbyname_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyname_r takes 5 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyname_r(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyname_r="yes" + tst_nargs_getservbyname_r="5" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyname_r="no" + ]) + fi + if test "$tst_nargs_getservbyname_r" = "unknown"; then + AC_MSG_CHECKING([if getservbyname_r takes 6 args.]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_netdb + ]],[[ + if(0 != getservbyname_r(0, 0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_getservbyname_r="yes" + tst_nargs_getservbyname_r="6" + ],[ + AC_MSG_RESULT([no]) + tst_compi_getservbyname_r="no" + ]) + fi + AC_MSG_CHECKING([if getservbyname_r is compilable]) + if test "$tst_compi_getservbyname_r" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + if test "$tst_compi_getservbyname_r" = "yes"; then + AC_MSG_CHECKING([if getservbyname_r usage allowed]) + if test "x$cares_disallow_getservbyname_r" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_getservbyname_r="yes" + else + AC_MSG_RESULT([no]) + tst_allow_getservbyname_r="no" + fi + fi + # + AC_MSG_CHECKING([if getservbyname_r might be used]) + if test "$tst_links_getservbyname_r" = "yes" && + test "$tst_proto_getservbyname_r" = "yes" && + test "$tst_compi_getservbyname_r" = "yes" && + test "$tst_allow_getservbyname_r" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_GETSERVBYNAME_R, 1, + [Define to 1 if you have the getservbyname_r function.]) + AC_DEFINE_UNQUOTED(GETSERVBYNAME_R_ARGS, $tst_nargs_getservbyname_r, + [Specifies the number of arguments to getservbyname_r]) + if test "$tst_nargs_getservbyname_r" -eq "4"; then + AC_DEFINE(GETSERVBYNAME_R_BUFSIZE, sizeof(struct servent_data), + [Specifies the size of the buffer to pass to getservbyname_r]) + else + AC_DEFINE(GETSERVBYNAME_R_BUFSIZE, 4096, + [Specifies the size of the buffer to pass to getservbyname_r]) + fi + ac_cv_func_getservbyname_r="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_getservbyname_r="no" + fi +]) + + +dnl CARES_CHECK_FUNC_INET_NET_PTON +dnl ------------------------------------------------- +dnl Verify if inet_net_pton is available, prototyped, can +dnl be compiled and seems to work. If all of these are +dnl true, and usage has not been previously disallowed +dnl with shell variable cares_disallow_inet_net_pton, then +dnl HAVE_INET_NET_PTON will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_INET_NET_PTON], [ + AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl + AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_inet_net_pton="unknown" + tst_proto_inet_net_pton="unknown" + tst_compi_inet_net_pton="unknown" + tst_works_inet_net_pton="unknown" + tst_allow_inet_net_pton="unknown" + # + AC_MSG_CHECKING([if inet_net_pton can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([inet_net_pton]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_inet_net_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_inet_net_pton="no" + ]) + # + if test "$tst_links_inet_net_pton" = "yes"; then + AC_MSG_CHECKING([if inet_net_pton is prototyped]) + AC_EGREP_CPP([inet_net_pton],[ + $cares_includes_arpa_inet + ],[ + AC_MSG_RESULT([yes]) + tst_proto_inet_net_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_inet_net_pton="no" + ]) + fi + # + if test "$tst_proto_inet_net_pton" = "yes"; then + AC_MSG_CHECKING([if inet_net_pton is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_arpa_inet + ]],[[ + if(0 != inet_net_pton(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_inet_net_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_inet_net_pton="no" + ]) + fi + # + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_net_pton" = "yes"; then + AC_MSG_CHECKING([if inet_net_pton seems to work]) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + ]],[[ + unsigned char ipv6a[16+1]; + unsigned char ipv4a[4+1]; + const char *ipv6net1 = "fe80::214:4fff:fe0b:76c8"; + const char *ipv6net2 = "::fffe:7f00:1"; + const char *ipv6net3 = "7f20:1::/64"; + const char *ipv6net4 = "7f20:1::/2147483649"; + const char *ipv4net1 = "192.168.100.1"; + const char *ipv4net2 = "192.168.100/32"; + const char *ipv4net3 = "192.168.100.1/2147483649"; + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(32 != inet_net_pton(AF_INET, ipv4net1, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0x00] != 0xc0) || + (ipv4a[0x01] != 0xa8) || + (ipv4a[0x02] != 0x64) || + (ipv4a[0x03] != 0x01) || + (ipv4a[0x04] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(32 != inet_net_pton(AF_INET, ipv4net2, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0x00] != 0xc0) || + (ipv4a[0x01] != 0xa8) || + (ipv4a[0x02] != 0x64) || + (ipv4a[0x03] != 0x00) || + (ipv4a[0x04] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(-1 != inet_net_pton(AF_INET, ipv4net3, ipv4a, 4)) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(128 != inet_net_pton(AF_INET6, ipv6net1, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x00] != 0xfe) || + (ipv6a[0x01] != 0x80) || + (ipv6a[0x08] != 0x02) || + (ipv6a[0x09] != 0x14) || + (ipv6a[0x0a] != 0x4f) || + (ipv6a[0x0b] != 0xff) || + (ipv6a[0x0c] != 0xfe) || + (ipv6a[0x0d] != 0x0b) || + (ipv6a[0x0e] != 0x76) || + (ipv6a[0x0f] != 0xc8) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x02] != 0x0) || + (ipv6a[0x03] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 0, sizeof(ipv6a)); + ipv6a[0x10] = 0x01; + if(128 != inet_net_pton(AF_INET6, ipv6net2, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x0a] != 0xff) || + (ipv6a[0x0b] != 0xfe) || + (ipv6a[0x0c] != 0x7f) || + (ipv6a[0x0f] != 0x01) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0x00] != 0x0) || + (ipv6a[0x01] != 0x0) || + (ipv6a[0x02] != 0x0) || + (ipv6a[0x03] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) || + (ipv6a[0x08] != 0x0) || + (ipv6a[0x09] != 0x0) || + (ipv6a[0x0d] != 0x0) || + (ipv6a[0x0e] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(64 != inet_net_pton(AF_INET6, ipv6net3, ipv6a, 16)) + exit(1); /* fail */ + if( (ipv6a[0x00] != 0x7f) || + (ipv6a[0x01] != 0x20) || + (ipv6a[0x03] != 0x01) || + (ipv6a[0x08] != 0x01) || + (ipv6a[0x09] != 0x01) || + (ipv6a[0x0a] != 0x01) || + (ipv6a[0x0b] != 0x01) || + (ipv6a[0x0c] != 0x01) || + (ipv6a[0x0d] != 0x01) || + (ipv6a[0x0e] != 0x01) || + (ipv6a[0x0f] != 0x01) || + (ipv6a[0x10] != 0x01) ) + exit(1); /* fail */ + if( (ipv6a[0x02] != 0x0) || + (ipv6a[0x04] != 0x0) || + (ipv6a[0x05] != 0x0) || + (ipv6a[0x06] != 0x0) || + (ipv6a[0x07] != 0x0) || + (ipv6a[0x07] != 0x0) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(-1 != inet_net_pton(AF_INET6, ipv6net4, ipv6a, 16)) + exit(1); /* fail */ + /* - */ + exit(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_works_inet_net_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_works_inet_net_pton="no" + ]) + fi + # + if test "$tst_compi_inet_net_pton" = "yes" && + test "$tst_works_inet_net_pton" != "no"; then + AC_MSG_CHECKING([if inet_net_pton usage allowed]) + if test "x$cares_disallow_inet_net_pton" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_inet_net_pton="yes" + else + AC_MSG_RESULT([no]) + tst_allow_inet_net_pton="no" + fi + fi + # + AC_MSG_CHECKING([if inet_net_pton might be used]) + if test "$tst_links_inet_net_pton" = "yes" && + test "$tst_proto_inet_net_pton" = "yes" && + test "$tst_compi_inet_net_pton" = "yes" && + test "$tst_allow_inet_net_pton" = "yes" && + test "$tst_works_inet_net_pton" != "no"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_INET_NET_PTON, 1, + [Define to 1 if you have a IPv6 capable working inet_net_pton function.]) + ac_cv_func_inet_net_pton="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_inet_net_pton="no" + fi +]) + + +dnl CARES_CHECK_FUNC_INET_NTOP +dnl ------------------------------------------------- +dnl Verify if inet_ntop is available, prototyped, can +dnl be compiled and seems to work. If all of these are +dnl true, and usage has not been previously disallowed +dnl with shell variable cares_disallow_inet_ntop, then +dnl HAVE_INET_NTOP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_INET_NTOP], [ + AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl + AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_inet_ntop="unknown" + tst_proto_inet_ntop="unknown" + tst_compi_inet_ntop="unknown" + tst_works_inet_ntop="unknown" + tst_allow_inet_ntop="unknown" + # + AC_MSG_CHECKING([if inet_ntop can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([inet_ntop]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_inet_ntop="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_inet_ntop="no" + ]) + # + if test "$tst_links_inet_ntop" = "yes"; then + AC_MSG_CHECKING([if inet_ntop is prototyped]) + AC_EGREP_CPP([inet_ntop],[ + $cares_includes_arpa_inet + ],[ + AC_MSG_RESULT([yes]) + tst_proto_inet_ntop="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_inet_ntop="no" + ]) + fi + # + if test "$tst_proto_inet_ntop" = "yes"; then + AC_MSG_CHECKING([if inet_ntop is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_arpa_inet + ]],[[ + if(0 != inet_ntop(0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_inet_ntop="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_inet_ntop="no" + ]) + fi + # + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_ntop" = "yes"; then + AC_MSG_CHECKING([if inet_ntop seems to work]) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + ]],[[ + char ipv6res[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")]; + char ipv4res[sizeof "255.255.255.255"]; + unsigned char ipv6a[26]; + unsigned char ipv4a[5]; + char *ipv6ptr = 0; + char *ipv4ptr = 0; + /* - */ + ipv4res[0] = '\0'; + ipv4a[0] = 0xc0; + ipv4a[1] = 0xa8; + ipv4a[2] = 0x64; + ipv4a[3] = 0x01; + ipv4a[4] = 0x01; + /* - */ + ipv4ptr = inet_ntop(AF_INET, ipv4a, ipv4res, sizeof(ipv4res)); + if(!ipv4ptr) + exit(1); /* fail */ + if(ipv4ptr != ipv4res) + exit(1); /* fail */ + if(!ipv4ptr[0]) + exit(1); /* fail */ + if(memcmp(ipv4res, "192.168.100.1", 13) != 0) + exit(1); /* fail */ + /* - */ + ipv6res[0] = '\0'; + memset(ipv6a, 0, sizeof(ipv6a)); + ipv6a[0] = 0xfe; + ipv6a[1] = 0x80; + ipv6a[8] = 0x02; + ipv6a[9] = 0x14; + ipv6a[10] = 0x4f; + ipv6a[11] = 0xff; + ipv6a[12] = 0xfe; + ipv6a[13] = 0x0b; + ipv6a[14] = 0x76; + ipv6a[15] = 0xc8; + ipv6a[25] = 0x01; + /* - */ + ipv6ptr = inet_ntop(AF_INET6, ipv6a, ipv6res, sizeof(ipv6res)); + if(!ipv6ptr) + exit(1); /* fail */ + if(ipv6ptr != ipv6res) + exit(1); /* fail */ + if(!ipv6ptr[0]) + exit(1); /* fail */ + if(memcmp(ipv6res, "fe80::214:4fff:fe0b:76c8", 24) != 0) + exit(1); /* fail */ + /* - */ + exit(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_works_inet_ntop="yes" + ],[ + AC_MSG_RESULT([no]) + tst_works_inet_ntop="no" + ]) + fi + # + if test "$tst_compi_inet_ntop" = "yes" && + test "$tst_works_inet_ntop" != "no"; then + AC_MSG_CHECKING([if inet_ntop usage allowed]) + if test "x$cares_disallow_inet_ntop" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_inet_ntop="yes" + else + AC_MSG_RESULT([no]) + tst_allow_inet_ntop="no" + fi + fi + # + AC_MSG_CHECKING([if inet_ntop might be used]) + if test "$tst_links_inet_ntop" = "yes" && + test "$tst_proto_inet_ntop" = "yes" && + test "$tst_compi_inet_ntop" = "yes" && + test "$tst_allow_inet_ntop" = "yes" && + test "$tst_works_inet_ntop" != "no"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_INET_NTOP, 1, + [Define to 1 if you have a IPv6 capable working inet_ntop function.]) + ac_cv_func_inet_ntop="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_inet_ntop="no" + fi +]) + + +dnl CARES_CHECK_FUNC_INET_PTON +dnl ------------------------------------------------- +dnl Verify if inet_pton is available, prototyped, can +dnl be compiled and seems to work. If all of these are +dnl true, and usage has not been previously disallowed +dnl with shell variable cares_disallow_inet_pton, then +dnl HAVE_INET_PTON will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_INET_PTON], [ + AC_REQUIRE([CARES_INCLUDES_STDLIB])dnl + AC_REQUIRE([CARES_INCLUDES_ARPA_INET])dnl + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_inet_pton="unknown" + tst_proto_inet_pton="unknown" + tst_compi_inet_pton="unknown" + tst_works_inet_pton="unknown" + tst_allow_inet_pton="unknown" + # + AC_MSG_CHECKING([if inet_pton can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([inet_pton]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_inet_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_inet_pton="no" + ]) + # + if test "$tst_links_inet_pton" = "yes"; then + AC_MSG_CHECKING([if inet_pton is prototyped]) + AC_EGREP_CPP([inet_pton],[ + $cares_includes_arpa_inet + ],[ + AC_MSG_RESULT([yes]) + tst_proto_inet_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_inet_pton="no" + ]) + fi + # + if test "$tst_proto_inet_pton" = "yes"; then + AC_MSG_CHECKING([if inet_pton is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_arpa_inet + ]],[[ + if(0 != inet_pton(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_inet_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_inet_pton="no" + ]) + fi + # + dnl only do runtime verification when not cross-compiling + if test "x$cross_compiling" != "xyes" && + test "$tst_compi_inet_pton" = "yes"; then + AC_MSG_CHECKING([if inet_pton seems to work]) + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stdlib + $cares_includes_arpa_inet + $cares_includes_string + ]],[[ + unsigned char ipv6a[16+1]; + unsigned char ipv4a[4+1]; + const char *ipv6src = "fe80::214:4fff:fe0b:76c8"; + const char *ipv4src = "192.168.100.1"; + /* - */ + memset(ipv4a, 1, sizeof(ipv4a)); + if(1 != inet_pton(AF_INET, ipv4src, ipv4a)) + exit(1); /* fail */ + /* - */ + if( (ipv4a[0] != 0xc0) || + (ipv4a[1] != 0xa8) || + (ipv4a[2] != 0x64) || + (ipv4a[3] != 0x01) || + (ipv4a[4] != 0x01) ) + exit(1); /* fail */ + /* - */ + memset(ipv6a, 1, sizeof(ipv6a)); + if(1 != inet_pton(AF_INET6, ipv6src, ipv6a)) + exit(1); /* fail */ + /* - */ + if( (ipv6a[0] != 0xfe) || + (ipv6a[1] != 0x80) || + (ipv6a[8] != 0x02) || + (ipv6a[9] != 0x14) || + (ipv6a[10] != 0x4f) || + (ipv6a[11] != 0xff) || + (ipv6a[12] != 0xfe) || + (ipv6a[13] != 0x0b) || + (ipv6a[14] != 0x76) || + (ipv6a[15] != 0xc8) || + (ipv6a[16] != 0x01) ) + exit(1); /* fail */ + /* - */ + if( (ipv6a[2] != 0x0) || + (ipv6a[3] != 0x0) || + (ipv6a[4] != 0x0) || + (ipv6a[5] != 0x0) || + (ipv6a[6] != 0x0) || + (ipv6a[7] != 0x0) ) + exit(1); /* fail */ + /* - */ + exit(0); + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_works_inet_pton="yes" + ],[ + AC_MSG_RESULT([no]) + tst_works_inet_pton="no" + ]) + fi + # + if test "$tst_compi_inet_pton" = "yes" && + test "$tst_works_inet_pton" != "no"; then + AC_MSG_CHECKING([if inet_pton usage allowed]) + if test "x$cares_disallow_inet_pton" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_inet_pton="yes" + else + AC_MSG_RESULT([no]) + tst_allow_inet_pton="no" + fi + fi + # + AC_MSG_CHECKING([if inet_pton might be used]) + if test "$tst_links_inet_pton" = "yes" && + test "$tst_proto_inet_pton" = "yes" && + test "$tst_compi_inet_pton" = "yes" && + test "$tst_allow_inet_pton" = "yes" && + test "$tst_works_inet_pton" != "no"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_INET_PTON, 1, + [Define to 1 if you have a IPv6 capable working inet_pton function.]) + ac_cv_func_inet_pton="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_inet_pton="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTL +dnl ------------------------------------------------- +dnl Verify if ioctl is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_ioctl, then +dnl HAVE_IOCTL will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTL], [ + AC_REQUIRE([CARES_INCLUDES_STROPTS])dnl + # + tst_links_ioctl="unknown" + tst_proto_ioctl="unknown" + tst_compi_ioctl="unknown" + tst_allow_ioctl="unknown" + # + AC_MSG_CHECKING([if ioctl can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([ioctl]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_ioctl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_ioctl="no" + ]) + # + if test "$tst_links_ioctl" = "yes"; then + AC_MSG_CHECKING([if ioctl is prototyped]) + AC_EGREP_CPP([ioctl],[ + $cares_includes_stropts + ],[ + AC_MSG_RESULT([yes]) + tst_proto_ioctl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_ioctl="no" + ]) + fi + # + if test "$tst_proto_ioctl" = "yes"; then + AC_MSG_CHECKING([if ioctl is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stropts + ]],[[ + if(0 != ioctl(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctl="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctl="no" + ]) + fi + # + if test "$tst_compi_ioctl" = "yes"; then + AC_MSG_CHECKING([if ioctl usage allowed]) + if test "x$cares_disallow_ioctl" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctl="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctl="no" + fi + fi + # + AC_MSG_CHECKING([if ioctl might be used]) + if test "$tst_links_ioctl" = "yes" && + test "$tst_proto_ioctl" = "yes" && + test "$tst_compi_ioctl" = "yes" && + test "$tst_allow_ioctl" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTL, 1, + [Define to 1 if you have the ioctl function.]) + ac_cv_func_ioctl="yes" + CARES_CHECK_FUNC_IOCTL_FIONBIO + CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctl="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTL_FIONBIO +dnl ------------------------------------------------- +dnl Verify if ioctl with the FIONBIO command is +dnl available, can be compiled, and seems to work. If +dnl all of these are true, then HAVE_IOCTL_FIONBIO +dnl will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTL_FIONBIO], [ + # + tst_compi_ioctl_fionbio="unknown" + tst_allow_ioctl_fionbio="unknown" + # + if test "$ac_cv_func_ioctl" = "yes"; then + AC_MSG_CHECKING([if ioctl FIONBIO is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stropts + ]],[[ + int flags = 0; + if(0 != ioctl(0, FIONBIO, &flags)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctl_fionbio="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctl_fionbio="no" + ]) + fi + # + if test "$tst_compi_ioctl_fionbio" = "yes"; then + AC_MSG_CHECKING([if ioctl FIONBIO usage allowed]) + if test "x$cares_disallow_ioctl_fionbio" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctl_fionbio="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctl_fionbio="no" + fi + fi + # + AC_MSG_CHECKING([if ioctl FIONBIO might be used]) + if test "$tst_compi_ioctl_fionbio" = "yes" && + test "$tst_allow_ioctl_fionbio" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTL_FIONBIO, 1, + [Define to 1 if you have a working ioctl FIONBIO function.]) + ac_cv_func_ioctl_fionbio="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctl_fionbio="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR +dnl ------------------------------------------------- +dnl Verify if ioctl with the SIOCGIFADDR command is available, +dnl struct ifreq is defined, they can be compiled, and seem to +dnl work. If all of these are true, then HAVE_IOCTL_SIOCGIFADDR +dnl will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTL_SIOCGIFADDR], [ + # + tst_compi_ioctl_siocgifaddr="unknown" + tst_allow_ioctl_siocgifaddr="unknown" + # + if test "$ac_cv_func_ioctl" = "yes"; then + AC_MSG_CHECKING([if ioctl SIOCGIFADDR is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stropts + #include + ]],[[ + struct ifreq ifr; + if(0 != ioctl(0, SIOCGIFADDR, &ifr)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctl_siocgifaddr="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctl_siocgifaddr="no" + ]) + fi + # + if test "$tst_compi_ioctl_siocgifaddr" = "yes"; then + AC_MSG_CHECKING([if ioctl SIOCGIFADDR usage allowed]) + if test "x$cares_disallow_ioctl_siocgifaddr" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctl_siocgifaddr="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctl_siocgifaddr="no" + fi + fi + # + AC_MSG_CHECKING([if ioctl SIOCGIFADDR might be used]) + if test "$tst_compi_ioctl_siocgifaddr" = "yes" && + test "$tst_allow_ioctl_siocgifaddr" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTL_SIOCGIFADDR, 1, + [Define to 1 if you have a working ioctl SIOCGIFADDR function.]) + ac_cv_func_ioctl_siocgifaddr="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctl_siocgifaddr="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTLSOCKET +dnl ------------------------------------------------- +dnl Verify if ioctlsocket is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_ioctlsocket, then +dnl HAVE_IOCTLSOCKET will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + # + tst_links_ioctlsocket="unknown" + tst_proto_ioctlsocket="unknown" + tst_compi_ioctlsocket="unknown" + tst_allow_ioctlsocket="unknown" + # + AC_MSG_CHECKING([if ioctlsocket can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + ]],[[ + if(0 != ioctlsocket(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_ioctlsocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_ioctlsocket="no" + ]) + # + if test "$tst_links_ioctlsocket" = "yes"; then + AC_MSG_CHECKING([if ioctlsocket is prototyped]) + AC_EGREP_CPP([ioctlsocket],[ + $cares_includes_winsock2 + ],[ + AC_MSG_RESULT([yes]) + tst_proto_ioctlsocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_ioctlsocket="no" + ]) + fi + # + if test "$tst_proto_ioctlsocket" = "yes"; then + AC_MSG_CHECKING([if ioctlsocket is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + ]],[[ + if(0 != ioctlsocket(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctlsocket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctlsocket="no" + ]) + fi + # + if test "$tst_compi_ioctlsocket" = "yes"; then + AC_MSG_CHECKING([if ioctlsocket usage allowed]) + if test "x$cares_disallow_ioctlsocket" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctlsocket="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctlsocket="no" + fi + fi + # + AC_MSG_CHECKING([if ioctlsocket might be used]) + if test "$tst_links_ioctlsocket" = "yes" && + test "$tst_proto_ioctlsocket" = "yes" && + test "$tst_compi_ioctlsocket" = "yes" && + test "$tst_allow_ioctlsocket" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET, 1, + [Define to 1 if you have the ioctlsocket function.]) + ac_cv_func_ioctlsocket="yes" + CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctlsocket="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO +dnl ------------------------------------------------- +dnl Verify if ioctlsocket with the FIONBIO command is +dnl available, can be compiled, and seems to work. If +dnl all of these are true, then HAVE_IOCTLSOCKET_FIONBIO +dnl will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_FIONBIO], [ + # + tst_compi_ioctlsocket_fionbio="unknown" + tst_allow_ioctlsocket_fionbio="unknown" + # + if test "$ac_cv_func_ioctlsocket" = "yes"; then + AC_MSG_CHECKING([if ioctlsocket FIONBIO is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + ]],[[ + int flags = 0; + if(0 != ioctlsocket(0, FIONBIO, &flags)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctlsocket_fionbio="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctlsocket_fionbio="no" + ]) + fi + # + if test "$tst_compi_ioctlsocket_fionbio" = "yes"; then + AC_MSG_CHECKING([if ioctlsocket FIONBIO usage allowed]) + if test "x$cares_disallow_ioctlsocket_fionbio" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctlsocket_fionbio="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctlsocket_fionbio="no" + fi + fi + # + AC_MSG_CHECKING([if ioctlsocket FIONBIO might be used]) + if test "$tst_compi_ioctlsocket_fionbio" = "yes" && + test "$tst_allow_ioctlsocket_fionbio" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_FIONBIO, 1, + [Define to 1 if you have a working ioctlsocket FIONBIO function.]) + ac_cv_func_ioctlsocket_fionbio="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctlsocket_fionbio="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL +dnl ------------------------------------------------- +dnl Verify if IoctlSocket is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_ioctlsocket_camel, +dnl then HAVE_IOCTLSOCKET_CAMEL will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL], [ + AC_REQUIRE([CARES_INCLUDES_STROPTS])dnl + # + tst_links_ioctlsocket_camel="unknown" + tst_proto_ioctlsocket_camel="unknown" + tst_compi_ioctlsocket_camel="unknown" + tst_allow_ioctlsocket_camel="unknown" + # + AC_MSG_CHECKING([if IoctlSocket can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([IoctlSocket]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_ioctlsocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_ioctlsocket_camel="no" + ]) + # + if test "$tst_links_ioctlsocket_camel" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket is prototyped]) + AC_EGREP_CPP([IoctlSocket],[ + $cares_includes_stropts + ],[ + AC_MSG_RESULT([yes]) + tst_proto_ioctlsocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_ioctlsocket_camel="no" + ]) + fi + # + if test "$tst_proto_ioctlsocket_camel" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stropts + ]],[[ + if(0 != IoctlSocket(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctlsocket_camel="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctlsocket_camel="no" + ]) + fi + # + if test "$tst_compi_ioctlsocket_camel" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket usage allowed]) + if test "x$cares_disallow_ioctlsocket_camel" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctlsocket_camel="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctlsocket_camel="no" + fi + fi + # + AC_MSG_CHECKING([if IoctlSocket might be used]) + if test "$tst_links_ioctlsocket_camel" = "yes" && + test "$tst_proto_ioctlsocket_camel" = "yes" && + test "$tst_compi_ioctlsocket_camel" = "yes" && + test "$tst_allow_ioctlsocket_camel" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL, 1, + [Define to 1 if you have the IoctlSocket camel case function.]) + ac_cv_func_ioctlsocket_camel="yes" + CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctlsocket_camel="no" + fi +]) + + +dnl CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO +dnl ------------------------------------------------- +dnl Verify if IoctlSocket with FIONBIO command is available, +dnl can be compiled, and seems to work. If all of these are +dnl true, then HAVE_IOCTLSOCKET_CAMEL_FIONBIO will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_IOCTLSOCKET_CAMEL_FIONBIO], [ + # + tst_compi_ioctlsocket_camel_fionbio="unknown" + tst_allow_ioctlsocket_camel_fionbio="unknown" + # + if test "$ac_cv_func_ioctlsocket_camel" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket FIONBIO is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_stropts + ]],[[ + long flags = 0; + if(0 != ioctlsocket(0, FIONBIO, &flags)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_ioctlsocket_camel_fionbio="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_ioctlsocket_camel_fionbio="no" + ]) + fi + # + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes"; then + AC_MSG_CHECKING([if IoctlSocket FIONBIO usage allowed]) + if test "x$cares_disallow_ioctlsocket_camel_fionbio" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_ioctlsocket_camel_fionbio="yes" + else + AC_MSG_RESULT([no]) + tst_allow_ioctlsocket_camel_fionbio="no" + fi + fi + # + AC_MSG_CHECKING([if IoctlSocket FIONBIO might be used]) + if test "$tst_compi_ioctlsocket_camel_fionbio" = "yes" && + test "$tst_allow_ioctlsocket_camel_fionbio" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_IOCTLSOCKET_CAMEL_FIONBIO, 1, + [Define to 1 if you have a working IoctlSocket camel case FIONBIO function.]) + ac_cv_func_ioctlsocket_camel_fionbio="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_ioctlsocket_camel_fionbio="no" + fi +]) + + +dnl CARES_CHECK_FUNC_SETSOCKOPT +dnl ------------------------------------------------- +dnl Verify if setsockopt is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_setsockopt, then +dnl HAVE_SETSOCKOPT will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_SETSOCKOPT], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + # + tst_links_setsockopt="unknown" + tst_proto_setsockopt="unknown" + tst_compi_setsockopt="unknown" + tst_allow_setsockopt="unknown" + # + AC_MSG_CHECKING([if setsockopt can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + ]],[[ + if(0 != setsockopt(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_setsockopt="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_setsockopt="no" + ]) + # + if test "$tst_links_setsockopt" = "yes"; then + AC_MSG_CHECKING([if setsockopt is prototyped]) + AC_EGREP_CPP([setsockopt],[ + $cares_includes_winsock2 + $cares_includes_sys_socket + ],[ + AC_MSG_RESULT([yes]) + tst_proto_setsockopt="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_setsockopt="no" + ]) + fi + # + if test "$tst_proto_setsockopt" = "yes"; then + AC_MSG_CHECKING([if setsockopt is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + ]],[[ + if(0 != setsockopt(0, 0, 0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_setsockopt="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_setsockopt="no" + ]) + fi + # + if test "$tst_compi_setsockopt" = "yes"; then + AC_MSG_CHECKING([if setsockopt usage allowed]) + if test "x$cares_disallow_setsockopt" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_setsockopt="yes" + else + AC_MSG_RESULT([no]) + tst_allow_setsockopt="no" + fi + fi + # + AC_MSG_CHECKING([if setsockopt might be used]) + if test "$tst_links_setsockopt" = "yes" && + test "$tst_proto_setsockopt" = "yes" && + test "$tst_compi_setsockopt" = "yes" && + test "$tst_allow_setsockopt" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_SETSOCKOPT, 1, + [Define to 1 if you have the setsockopt function.]) + ac_cv_func_setsockopt="yes" + CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK + else + AC_MSG_RESULT([no]) + ac_cv_func_setsockopt="no" + fi +]) + + +dnl CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK +dnl ------------------------------------------------- +dnl Verify if setsockopt with the SO_NONBLOCK command is +dnl available, can be compiled, and seems to work. If +dnl all of these are true, then HAVE_SETSOCKOPT_SO_NONBLOCK +dnl will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_SETSOCKOPT_SO_NONBLOCK], [ + # + tst_compi_setsockopt_so_nonblock="unknown" + tst_allow_setsockopt_so_nonblock="unknown" + # + if test "$ac_cv_func_setsockopt" = "yes"; then + AC_MSG_CHECKING([if setsockopt SO_NONBLOCK is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + ]],[[ + if(0 != setsockopt(0, SOL_SOCKET, SO_NONBLOCK, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_setsockopt_so_nonblock="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_setsockopt_so_nonblock="no" + ]) + fi + # + if test "$tst_compi_setsockopt_so_nonblock" = "yes"; then + AC_MSG_CHECKING([if setsockopt SO_NONBLOCK usage allowed]) + if test "x$cares_disallow_setsockopt_so_nonblock" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_setsockopt_so_nonblock="yes" + else + AC_MSG_RESULT([no]) + tst_allow_setsockopt_so_nonblock="no" + fi + fi + # + AC_MSG_CHECKING([if setsockopt SO_NONBLOCK might be used]) + if test "$tst_compi_setsockopt_so_nonblock" = "yes" && + test "$tst_allow_setsockopt_so_nonblock" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_SETSOCKOPT_SO_NONBLOCK, 1, + [Define to 1 if you have a working setsockopt SO_NONBLOCK function.]) + ac_cv_func_setsockopt_so_nonblock="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_setsockopt_so_nonblock="no" + fi +]) + + +dnl CARES_CHECK_FUNC_SOCKET +dnl ------------------------------------------------- +dnl Verify if socket is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_socket, then +dnl HAVE_SOCKET will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_SOCKET], [ + AC_REQUIRE([CARES_INCLUDES_WINSOCK2])dnl + AC_REQUIRE([CARES_INCLUDES_SYS_SOCKET])dnl + AC_REQUIRE([CARES_INCLUDES_SOCKET])dnl + # + tst_links_socket="unknown" + tst_proto_socket="unknown" + tst_compi_socket="unknown" + tst_allow_socket="unknown" + # + AC_MSG_CHECKING([if socket can be linked]) + AC_LINK_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ]],[[ + if(0 != socket(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_socket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_socket="no" + ]) + # + if test "$tst_links_socket" = "yes"; then + AC_MSG_CHECKING([if socket is prototyped]) + AC_EGREP_CPP([socket],[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ],[ + AC_MSG_RESULT([yes]) + tst_proto_socket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_socket="no" + ]) + fi + # + if test "$tst_proto_socket" = "yes"; then + AC_MSG_CHECKING([if socket is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_winsock2 + $cares_includes_sys_socket + $cares_includes_socket + ]],[[ + if(0 != socket(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_socket="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_socket="no" + ]) + fi + # + if test "$tst_compi_socket" = "yes"; then + AC_MSG_CHECKING([if socket usage allowed]) + if test "x$cares_disallow_socket" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_socket="yes" + else + AC_MSG_RESULT([no]) + tst_allow_socket="no" + fi + fi + # + AC_MSG_CHECKING([if socket might be used]) + if test "$tst_links_socket" = "yes" && + test "$tst_proto_socket" = "yes" && + test "$tst_compi_socket" = "yes" && + test "$tst_allow_socket" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_SOCKET, 1, + [Define to 1 if you have the socket function.]) + ac_cv_func_socket="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_socket="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRCASECMP +dnl ------------------------------------------------- +dnl Verify if strcasecmp is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strcasecmp, then +dnl HAVE_STRCASECMP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRCASECMP], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strcasecmp="unknown" + tst_proto_strcasecmp="unknown" + tst_compi_strcasecmp="unknown" + tst_allow_strcasecmp="unknown" + # + AC_MSG_CHECKING([if strcasecmp can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strcasecmp]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strcasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strcasecmp="no" + ]) + # + if test "$tst_links_strcasecmp" = "yes"; then + AC_MSG_CHECKING([if strcasecmp is prototyped]) + AC_EGREP_CPP([strcasecmp],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strcasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strcasecmp="no" + ]) + fi + # + if test "$tst_proto_strcasecmp" = "yes"; then + AC_MSG_CHECKING([if strcasecmp is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strcasecmp(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strcasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strcasecmp="no" + ]) + fi + # + if test "$tst_compi_strcasecmp" = "yes"; then + AC_MSG_CHECKING([if strcasecmp usage allowed]) + if test "x$cares_disallow_strcasecmp" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strcasecmp="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strcasecmp="no" + fi + fi + # + AC_MSG_CHECKING([if strcasecmp might be used]) + if test "$tst_links_strcasecmp" = "yes" && + test "$tst_proto_strcasecmp" = "yes" && + test "$tst_compi_strcasecmp" = "yes" && + test "$tst_allow_strcasecmp" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRCASECMP, 1, + [Define to 1 if you have the strcasecmp function.]) + ac_cv_func_strcasecmp="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strcasecmp="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRCMPI +dnl ------------------------------------------------- +dnl Verify if strcmpi is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strcmpi, then +dnl HAVE_STRCMPI will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRCMPI], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strcmpi="unknown" + tst_proto_strcmpi="unknown" + tst_compi_strcmpi="unknown" + tst_allow_strcmpi="unknown" + # + AC_MSG_CHECKING([if strcmpi can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strcmpi]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strcmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strcmpi="no" + ]) + # + if test "$tst_links_strcmpi" = "yes"; then + AC_MSG_CHECKING([if strcmpi is prototyped]) + AC_EGREP_CPP([strcmpi],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strcmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strcmpi="no" + ]) + fi + # + if test "$tst_proto_strcmpi" = "yes"; then + AC_MSG_CHECKING([if strcmpi is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strcmpi(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strcmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strcmpi="no" + ]) + fi + # + if test "$tst_compi_strcmpi" = "yes"; then + AC_MSG_CHECKING([if strcmpi usage allowed]) + if test "x$cares_disallow_strcmpi" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strcmpi="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strcmpi="no" + fi + fi + # + AC_MSG_CHECKING([if strcmpi might be used]) + if test "$tst_links_strcmpi" = "yes" && + test "$tst_proto_strcmpi" = "yes" && + test "$tst_compi_strcmpi" = "yes" && + test "$tst_allow_strcmpi" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRCMPI, 1, + [Define to 1 if you have the strcmpi function.]) + ac_cv_func_strcmpi="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strcmpi="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRDUP +dnl ------------------------------------------------- +dnl Verify if strdup is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strdup, then +dnl HAVE_STRDUP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRDUP], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strdup="unknown" + tst_proto_strdup="unknown" + tst_compi_strdup="unknown" + tst_allow_strdup="unknown" + # + AC_MSG_CHECKING([if strdup can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strdup]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strdup="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strdup="no" + ]) + # + if test "$tst_links_strdup" = "yes"; then + AC_MSG_CHECKING([if strdup is prototyped]) + AC_EGREP_CPP([strdup],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strdup="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strdup="no" + ]) + fi + # + if test "$tst_proto_strdup" = "yes"; then + AC_MSG_CHECKING([if strdup is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strdup(0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strdup="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strdup="no" + ]) + fi + # + if test "$tst_compi_strdup" = "yes"; then + AC_MSG_CHECKING([if strdup usage allowed]) + if test "x$cares_disallow_strdup" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strdup="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strdup="no" + fi + fi + # + AC_MSG_CHECKING([if strdup might be used]) + if test "$tst_links_strdup" = "yes" && + test "$tst_proto_strdup" = "yes" && + test "$tst_compi_strdup" = "yes" && + test "$tst_allow_strdup" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRDUP, 1, + [Define to 1 if you have the strdup function.]) + ac_cv_func_strdup="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strdup="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRICMP +dnl ------------------------------------------------- +dnl Verify if stricmp is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_stricmp, then +dnl HAVE_STRICMP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRICMP], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_stricmp="unknown" + tst_proto_stricmp="unknown" + tst_compi_stricmp="unknown" + tst_allow_stricmp="unknown" + # + AC_MSG_CHECKING([if stricmp can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([stricmp]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_stricmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_stricmp="no" + ]) + # + if test "$tst_links_stricmp" = "yes"; then + AC_MSG_CHECKING([if stricmp is prototyped]) + AC_EGREP_CPP([stricmp],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_stricmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_stricmp="no" + ]) + fi + # + if test "$tst_proto_stricmp" = "yes"; then + AC_MSG_CHECKING([if stricmp is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != stricmp(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_stricmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_stricmp="no" + ]) + fi + # + if test "$tst_compi_stricmp" = "yes"; then + AC_MSG_CHECKING([if stricmp usage allowed]) + if test "x$cares_disallow_stricmp" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_stricmp="yes" + else + AC_MSG_RESULT([no]) + tst_allow_stricmp="no" + fi + fi + # + AC_MSG_CHECKING([if stricmp might be used]) + if test "$tst_links_stricmp" = "yes" && + test "$tst_proto_stricmp" = "yes" && + test "$tst_compi_stricmp" = "yes" && + test "$tst_allow_stricmp" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRICMP, 1, + [Define to 1 if you have the stricmp function.]) + ac_cv_func_stricmp="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_stricmp="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRNCASECMP +dnl ------------------------------------------------- +dnl Verify if strncasecmp is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strncasecmp, then +dnl HAVE_STRNCASECMP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRNCASECMP], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strncasecmp="unknown" + tst_proto_strncasecmp="unknown" + tst_compi_strncasecmp="unknown" + tst_allow_strncasecmp="unknown" + # + AC_MSG_CHECKING([if strncasecmp can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strncasecmp]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strncasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strncasecmp="no" + ]) + # + if test "$tst_links_strncasecmp" = "yes"; then + AC_MSG_CHECKING([if strncasecmp is prototyped]) + AC_EGREP_CPP([strncasecmp],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strncasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strncasecmp="no" + ]) + fi + # + if test "$tst_proto_strncasecmp" = "yes"; then + AC_MSG_CHECKING([if strncasecmp is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strncasecmp(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strncasecmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strncasecmp="no" + ]) + fi + # + if test "$tst_compi_strncasecmp" = "yes"; then + AC_MSG_CHECKING([if strncasecmp usage allowed]) + if test "x$cares_disallow_strncasecmp" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strncasecmp="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strncasecmp="no" + fi + fi + # + AC_MSG_CHECKING([if strncasecmp might be used]) + if test "$tst_links_strncasecmp" = "yes" && + test "$tst_proto_strncasecmp" = "yes" && + test "$tst_compi_strncasecmp" = "yes" && + test "$tst_allow_strncasecmp" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRNCASECMP, 1, + [Define to 1 if you have the strncasecmp function.]) + ac_cv_func_strncasecmp="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strncasecmp="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRNCMPI +dnl ------------------------------------------------- +dnl Verify if strncmpi is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strncmpi, then +dnl HAVE_STRNCMPI will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRNCMPI], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strncmpi="unknown" + tst_proto_strncmpi="unknown" + tst_compi_strncmpi="unknown" + tst_allow_strncmpi="unknown" + # + AC_MSG_CHECKING([if strncmpi can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strncmpi]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strncmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strncmpi="no" + ]) + # + if test "$tst_links_strncmpi" = "yes"; then + AC_MSG_CHECKING([if strncmpi is prototyped]) + AC_EGREP_CPP([strncmpi],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strncmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strncmpi="no" + ]) + fi + # + if test "$tst_proto_strncmpi" = "yes"; then + AC_MSG_CHECKING([if strncmpi is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strncmpi(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strncmpi="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strncmpi="no" + ]) + fi + # + if test "$tst_compi_strncmpi" = "yes"; then + AC_MSG_CHECKING([if strncmpi usage allowed]) + if test "x$cares_disallow_strncmpi" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strncmpi="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strncmpi="no" + fi + fi + # + AC_MSG_CHECKING([if strncmpi might be used]) + if test "$tst_links_strncmpi" = "yes" && + test "$tst_proto_strncmpi" = "yes" && + test "$tst_compi_strncmpi" = "yes" && + test "$tst_allow_strncmpi" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRNCMPI, 1, + [Define to 1 if you have the strncmpi function.]) + ac_cv_func_strncmpi="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strncmpi="no" + fi +]) + + +dnl CARES_CHECK_FUNC_STRNICMP +dnl ------------------------------------------------- +dnl Verify if strnicmp is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_strnicmp, then +dnl HAVE_STRNICMP will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_STRNICMP], [ + AC_REQUIRE([CARES_INCLUDES_STRING])dnl + # + tst_links_strnicmp="unknown" + tst_proto_strnicmp="unknown" + tst_compi_strnicmp="unknown" + tst_allow_strnicmp="unknown" + # + AC_MSG_CHECKING([if strnicmp can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strnicmp]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_strnicmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_strnicmp="no" + ]) + # + if test "$tst_links_strnicmp" = "yes"; then + AC_MSG_CHECKING([if strnicmp is prototyped]) + AC_EGREP_CPP([strnicmp],[ + $cares_includes_string + ],[ + AC_MSG_RESULT([yes]) + tst_proto_strnicmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_strnicmp="no" + ]) + fi + # + if test "$tst_proto_strnicmp" = "yes"; then + AC_MSG_CHECKING([if strnicmp is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_string + ]],[[ + if(0 != strnicmp(0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_strnicmp="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_strnicmp="no" + ]) + fi + # + if test "$tst_compi_strnicmp" = "yes"; then + AC_MSG_CHECKING([if strnicmp usage allowed]) + if test "x$cares_disallow_strnicmp" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_strnicmp="yes" + else + AC_MSG_RESULT([no]) + tst_allow_strnicmp="no" + fi + fi + # + AC_MSG_CHECKING([if strnicmp might be used]) + if test "$tst_links_strnicmp" = "yes" && + test "$tst_proto_strnicmp" = "yes" && + test "$tst_compi_strnicmp" = "yes" && + test "$tst_allow_strnicmp" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_STRNICMP, 1, + [Define to 1 if you have the strnicmp function.]) + ac_cv_func_strnicmp="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_strnicmp="no" + fi +]) + + +dnl CARES_CHECK_FUNC_WRITEV +dnl ------------------------------------------------- +dnl Verify if writev is available, prototyped, and +dnl can be compiled. If all of these are true, and +dnl usage has not been previously disallowed with +dnl shell variable cares_disallow_writev, then +dnl HAVE_WRITEV will be defined. + +AC_DEFUN([CARES_CHECK_FUNC_WRITEV], [ + AC_REQUIRE([CARES_INCLUDES_SYS_UIO])dnl + # + tst_links_writev="unknown" + tst_proto_writev="unknown" + tst_compi_writev="unknown" + tst_allow_writev="unknown" + # + AC_MSG_CHECKING([if writev can be linked]) + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([writev]) + ],[ + AC_MSG_RESULT([yes]) + tst_links_writev="yes" + ],[ + AC_MSG_RESULT([no]) + tst_links_writev="no" + ]) + # + if test "$tst_links_writev" = "yes"; then + AC_MSG_CHECKING([if writev is prototyped]) + AC_EGREP_CPP([writev],[ + $cares_includes_sys_uio + ],[ + AC_MSG_RESULT([yes]) + tst_proto_writev="yes" + ],[ + AC_MSG_RESULT([no]) + tst_proto_writev="no" + ]) + fi + # + if test "$tst_proto_writev" = "yes"; then + AC_MSG_CHECKING([if writev is compilable]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + $cares_includes_sys_uio + ]],[[ + if(0 != writev(0, 0, 0)) + return 1; + ]]) + ],[ + AC_MSG_RESULT([yes]) + tst_compi_writev="yes" + ],[ + AC_MSG_RESULT([no]) + tst_compi_writev="no" + ]) + fi + # + if test "$tst_compi_writev" = "yes"; then + AC_MSG_CHECKING([if writev usage allowed]) + if test "x$cares_disallow_writev" != "xyes"; then + AC_MSG_RESULT([yes]) + tst_allow_writev="yes" + else + AC_MSG_RESULT([no]) + tst_allow_writev="no" + fi + fi + # + AC_MSG_CHECKING([if writev might be used]) + if test "$tst_links_writev" = "yes" && + test "$tst_proto_writev" = "yes" && + test "$tst_compi_writev" = "yes" && + test "$tst_allow_writev" = "yes"; then + AC_MSG_RESULT([yes]) + AC_DEFINE_UNQUOTED(HAVE_WRITEV, 1, + [Define to 1 if you have the writev function.]) + ac_cv_func_writev="yes" + else + AC_MSG_RESULT([no]) + ac_cv_func_writev="no" + fi +]) diff --git a/deps/cares/m4/cares-reentrant.m4 b/deps/cares/m4/cares-reentrant.m4 new file mode 100644 index 00000000000000..052326b3c0e425 --- /dev/null +++ b/deps/cares/m4/cares-reentrant.m4 @@ -0,0 +1,611 @@ +#*************************************************************************** +# $Id$ +# +# Copyright (C) 2008 - 2009 by Daniel Stenberg et al +# +# Permission to use, copy, modify, and distribute this software and its +# documentation for any purpose and without fee is hereby granted, provided +# that the above copyright notice appear in all copies and that both that +# copyright notice and this permission notice appear in supporting +# documentation, and that the name of M.I.T. not be used in advertising or +# publicity pertaining to distribution of the software without specific, +# written prior permission. M.I.T. makes no representations about the +# suitability of this software for any purpose. It is provided "as is" +# without express or implied warranty. +# +#*************************************************************************** + +# File version for 'aclocal' use. Keep it a single number. +# serial 6 + +dnl Note 1 +dnl ------ +dnl None of the CARES_CHECK_NEED_REENTRANT_* macros shall use HAVE_FOO_H to +dnl conditionally include header files. These macros are used early in the +dnl configure process much before header file availability is known. + + +dnl CARES_CHECK_NEED_REENTRANT_ERRNO +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes errno available as a preprocessor macro. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_ERRNO], [ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ + if(0 != errno) + return 1; + ]]) + ],[ + tmp_errno="yes" + ],[ + tmp_errno="no" + ]) + if test "$tmp_errno" = "yes"; then + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#include + ]],[[ +#ifdef errno + int dummy=1; +#else + force compilation error +#endif + ]]) + ],[ + tmp_errno="errno_macro_defined" + ],[ + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ +#define _REENTRANT +#include + ]],[[ +#ifdef errno + int dummy=1; +#else + force compilation error +#endif + ]]) + ],[ + tmp_errno="errno_macro_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_GMTIME_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function gmtime_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_GMTIME_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([gmtime_r]) + ],[ + tmp_gmtime_r="yes" + ],[ + tmp_gmtime_r="no" + ]) + if test "$tmp_gmtime_r" = "yes"; then + AC_EGREP_CPP([gmtime_r],[ +#include +#include + ],[ + tmp_gmtime_r="proto_declared" + ],[ + AC_EGREP_CPP([gmtime_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_gmtime_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_LOCALTIME_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function localtime_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_LOCALTIME_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([localtime_r]) + ],[ + tmp_localtime_r="yes" + ],[ + tmp_localtime_r="no" + ]) + if test "$tmp_localtime_r" = "yes"; then + AC_EGREP_CPP([localtime_r],[ +#include +#include + ],[ + tmp_localtime_r="proto_declared" + ],[ + AC_EGREP_CPP([localtime_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_localtime_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_STRERROR_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function strerror_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_STRERROR_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strerror_r]) + ],[ + tmp_strerror_r="yes" + ],[ + tmp_strerror_r="no" + ]) + if test "$tmp_strerror_r" = "yes"; then + AC_EGREP_CPP([strerror_r],[ +#include +#include + ],[ + tmp_strerror_r="proto_declared" + ],[ + AC_EGREP_CPP([strerror_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_strerror_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_STRTOK_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function strtok_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_STRTOK_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([strtok_r]) + ],[ + tmp_strtok_r="yes" + ],[ + tmp_strtok_r="no" + ]) + if test "$tmp_strtok_r" = "yes"; then + AC_EGREP_CPP([strtok_r],[ +#include +#include + ],[ + tmp_strtok_r="proto_declared" + ],[ + AC_EGREP_CPP([strtok_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_strtok_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_INET_NTOA_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function inet_ntoa_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_INET_NTOA_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([inet_ntoa_r]) + ],[ + tmp_inet_ntoa_r="yes" + ],[ + tmp_inet_ntoa_r="no" + ]) + if test "$tmp_inet_ntoa_r" = "yes"; then + AC_EGREP_CPP([inet_ntoa_r],[ +#include +#include +#include +#include + ],[ + tmp_inet_ntoa_r="proto_declared" + ],[ + AC_EGREP_CPP([inet_ntoa_r],[ +#define _REENTRANT +#include +#include +#include +#include + ],[ + tmp_inet_ntoa_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function gethostbyaddr_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([gethostbyaddr_r]) + ],[ + tmp_gethostbyaddr_r="yes" + ],[ + tmp_gethostbyaddr_r="no" + ]) + if test "$tmp_gethostbyaddr_r" = "yes"; then + AC_EGREP_CPP([gethostbyaddr_r],[ +#include +#include + ],[ + tmp_gethostbyaddr_r="proto_declared" + ],[ + AC_EGREP_CPP([gethostbyaddr_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_gethostbyaddr_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function gethostbyname_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([gethostbyname_r]) + ],[ + tmp_gethostbyname_r="yes" + ],[ + tmp_gethostbyname_r="no" + ]) + if test "$tmp_gethostbyname_r" = "yes"; then + AC_EGREP_CPP([gethostbyname_r],[ +#include +#include + ],[ + tmp_gethostbyname_r="proto_declared" + ],[ + AC_EGREP_CPP([gethostbyname_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_gethostbyname_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function getprotobyname_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getprotobyname_r]) + ],[ + tmp_getprotobyname_r="yes" + ],[ + tmp_getprotobyname_r="no" + ]) + if test "$tmp_getprotobyname_r" = "yes"; then + AC_EGREP_CPP([getprotobyname_r],[ +#include +#include + ],[ + tmp_getprotobyname_r="proto_declared" + ],[ + AC_EGREP_CPP([getprotobyname_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_getprotobyname_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_GETSERVBYPORT_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes function getservbyport_r compiler visible. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_GETSERVBYPORT_R], [ + AC_LINK_IFELSE([ + AC_LANG_FUNC_LINK_TRY([getservbyport_r]) + ],[ + tmp_getservbyport_r="yes" + ],[ + tmp_getservbyport_r="no" + ]) + if test "$tmp_getservbyport_r" = "yes"; then + AC_EGREP_CPP([getservbyport_r],[ +#include +#include + ],[ + tmp_getservbyport_r="proto_declared" + ],[ + AC_EGREP_CPP([getservbyport_r],[ +#define _REENTRANT +#include +#include + ],[ + tmp_getservbyport_r="proto_needs_reentrant" + tmp_need_reentrant="yes" + ]) + ]) + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_FUNCTIONS_R +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl makes several _r functions compiler visible. +dnl Internal macro for CARES_CONFIGURE_REENTRANT. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_FUNCTIONS_R], [ + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_GMTIME_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_LOCALTIME_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_STRERROR_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_STRTOK_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_INET_NTOA_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_GETHOSTBYADDR_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_GETHOSTBYNAME_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_GETPROTOBYNAME_R + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_GETSERVBYPORT_R + fi +]) + + +dnl CARES_CHECK_NEED_REENTRANT_SYSTEM +dnl ------------------------------------------------- +dnl Checks if the preprocessor _REENTRANT definition +dnl must be unconditionally done for this platform. +dnl Internal macro for CARES_CONFIGURE_REENTRANT. + +AC_DEFUN([CARES_CHECK_NEED_REENTRANT_SYSTEM], [ + case $host_os in + solaris*) + tmp_need_reentrant="yes" + ;; + *) + tmp_need_reentrant="no" + ;; + esac +]) + + +dnl CARES_CHECK_NEED_THREAD_SAFE_SYSTEM +dnl ------------------------------------------------- +dnl Checks if the preprocessor _THREAD_SAFE definition +dnl must be unconditionally done for this platform. +dnl Internal macro for CARES_CONFIGURE_THREAD_SAFE. + +AC_DEFUN([CARES_CHECK_NEED_THREAD_SAFE_SYSTEM], [ + case $host_os in + aix[[123]].* | aix4.[[012]].*) + dnl aix 4.2 and older + tmp_need_thread_safe="no" + ;; + aix*) + dnl AIX 4.3 and newer + tmp_need_thread_safe="yes" + ;; + *) + tmp_need_thread_safe="no" + ;; + esac +]) + + +dnl CARES_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT +dnl ------------------------------------------------- +dnl This macro ensures that configuration tests done +dnl after this will execute with preprocessor symbol +dnl _REENTRANT defined. This macro also ensures that +dnl the generated config file defines NEED_REENTRANT +dnl and that in turn setup.h will define _REENTRANT. +dnl Internal macro for CARES_CONFIGURE_REENTRANT. + +AC_DEFUN([CARES_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT], [ +AC_DEFINE(NEED_REENTRANT, 1, + [Define to 1 if _REENTRANT preprocessor symbol must be defined.]) +cat >>confdefs.h <<_EOF +#ifndef _REENTRANT +# define _REENTRANT +#endif +_EOF +]) + + +dnl CARES_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE +dnl ------------------------------------------------- +dnl This macro ensures that configuration tests done +dnl after this will execute with preprocessor symbol +dnl _THREAD_SAFE defined. This macro also ensures that +dnl the generated config file defines NEED_THREAD_SAFE +dnl and that in turn setup.h will define _THREAD_SAFE. +dnl Internal macro for CARES_CONFIGURE_THREAD_SAFE. + +AC_DEFUN([CARES_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE], [ +AC_DEFINE(NEED_THREAD_SAFE, 1, + [Define to 1 if _THREAD_SAFE preprocessor symbol must be defined.]) +cat >>confdefs.h <<_EOF +#ifndef _THREAD_SAFE +# define _THREAD_SAFE +#endif +_EOF +]) + + +dnl CARES_CONFIGURE_REENTRANT +dnl ------------------------------------------------- +dnl This first checks if the preprocessor _REENTRANT +dnl symbol is already defined. If it isn't currently +dnl defined a set of checks are performed to verify +dnl if its definition is required to make visible to +dnl the compiler a set of *_r functions. Finally, if +dnl _REENTRANT is already defined or needed it takes +dnl care of making adjustments necessary to ensure +dnl that it is defined equally for further configure +dnl tests and generated config file. + +AC_DEFUN([CARES_CONFIGURE_REENTRANT], [ + AC_PREREQ([2.50])dnl + # + AC_MSG_CHECKING([if _REENTRANT is already defined]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ +#ifdef _REENTRANT + int dummy=1; +#else + force compilation error +#endif + ]]) + ],[ + AC_MSG_RESULT([yes]) + tmp_reentrant_initially_defined="yes" + ],[ + AC_MSG_RESULT([no]) + tmp_reentrant_initially_defined="no" + ]) + # + if test "$tmp_reentrant_initially_defined" = "no"; then + AC_MSG_CHECKING([if _REENTRANT is actually needed]) + CARES_CHECK_NEED_REENTRANT_SYSTEM + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_ERRNO + fi + if test "$tmp_need_reentrant" = "no"; then + CARES_CHECK_NEED_REENTRANT_FUNCTIONS_R + fi + if test "$tmp_need_reentrant" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + AC_MSG_CHECKING([if _REENTRANT is onwards defined]) + if test "$tmp_reentrant_initially_defined" = "yes" || + test "$tmp_need_reentrant" = "yes"; then + CARES_CONFIGURE_FROM_NOW_ON_WITH_REENTRANT + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + # +]) + + +dnl CARES_CONFIGURE_THREAD_SAFE +dnl ------------------------------------------------- +dnl This first checks if the preprocessor _THREAD_SAFE +dnl symbol is already defined. If it isn't currently +dnl defined a set of checks are performed to verify +dnl if its definition is required. Finally, if +dnl _THREAD_SAFE is already defined or needed it takes +dnl care of making adjustments necessary to ensure +dnl that it is defined equally for further configure +dnl tests and generated config file. + +AC_DEFUN([CARES_CONFIGURE_THREAD_SAFE], [ + AC_PREREQ([2.50])dnl + # + AC_MSG_CHECKING([if _THREAD_SAFE is already defined]) + AC_COMPILE_IFELSE([ + AC_LANG_PROGRAM([[ + ]],[[ +#ifdef _THREAD_SAFE + int dummy=1; +#else + force compilation error +#endif + ]]) + ],[ + AC_MSG_RESULT([yes]) + tmp_thread_safe_initially_defined="yes" + ],[ + AC_MSG_RESULT([no]) + tmp_thread_safe_initially_defined="no" + ]) + # + if test "$tmp_thread_safe_initially_defined" = "no"; then + AC_MSG_CHECKING([if _THREAD_SAFE is actually needed]) + CARES_CHECK_NEED_THREAD_SAFE_SYSTEM + if test "$tmp_need_thread_safe" = "yes"; then + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + fi + # + AC_MSG_CHECKING([if _THREAD_SAFE is onwards defined]) + if test "$tmp_thread_safe_initially_defined" = "yes" || + test "$tmp_need_thread_safe" = "yes"; then + CARES_CONFIGURE_FROM_NOW_ON_WITH_THREAD_SAFE + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + # +]) diff --git a/deps/cares/m4/libtool.m4 b/deps/cares/m4/libtool.m4 new file mode 100644 index 00000000000000..c4c02946dece79 --- /dev/null +++ b/deps/cares/m4/libtool.m4 @@ -0,0 +1,8394 @@ +# libtool.m4 - Configure libtool for the host system. -*-Autoconf-*- +# +# Copyright (C) 1996-2001, 2003-2015 Free Software Foundation, Inc. +# Written by Gordon Matzigkeit, 1996 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +m4_define([_LT_COPYING], [dnl +# Copyright (C) 2014 Free Software Foundation, Inc. +# This is free software; see the source for copying conditions. There is NO +# warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + +# GNU Libtool is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of of the License, or +# (at your option) any later version. +# +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program or library that is built +# using GNU Libtool, you may include this file under the same +# distribution terms that you use for the rest of that program. +# +# GNU Libtool is distributed in the hope that it will be useful, but +# WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +]) + +# serial 58 LT_INIT + + +# LT_PREREQ(VERSION) +# ------------------ +# Complain and exit if this libtool version is less that VERSION. +m4_defun([LT_PREREQ], +[m4_if(m4_version_compare(m4_defn([LT_PACKAGE_VERSION]), [$1]), -1, + [m4_default([$3], + [m4_fatal([Libtool version $1 or higher is required], + 63)])], + [$2])]) + + +# _LT_CHECK_BUILDDIR +# ------------------ +# Complain if the absolute build directory name contains unusual characters +m4_defun([_LT_CHECK_BUILDDIR], +[case `pwd` in + *\ * | *\ *) + AC_MSG_WARN([Libtool does not cope well with whitespace in `pwd`]) ;; +esac +]) + + +# LT_INIT([OPTIONS]) +# ------------------ +AC_DEFUN([LT_INIT], +[AC_PREREQ([2.62])dnl We use AC_PATH_PROGS_FEATURE_CHECK +AC_REQUIRE([AC_CONFIG_AUX_DIR_DEFAULT])dnl +AC_BEFORE([$0], [LT_LANG])dnl +AC_BEFORE([$0], [LT_OUTPUT])dnl +AC_BEFORE([$0], [LTDL_INIT])dnl +m4_require([_LT_CHECK_BUILDDIR])dnl + +dnl Autoconf doesn't catch unexpanded LT_ macros by default: +m4_pattern_forbid([^_?LT_[A-Z_]+$])dnl +m4_pattern_allow([^(_LT_EOF|LT_DLGLOBAL|LT_DLLAZY_OR_NOW|LT_MULTI_MODULE)$])dnl +dnl aclocal doesn't pull ltoptions.m4, ltsugar.m4, or ltversion.m4 +dnl unless we require an AC_DEFUNed macro: +AC_REQUIRE([LTOPTIONS_VERSION])dnl +AC_REQUIRE([LTSUGAR_VERSION])dnl +AC_REQUIRE([LTVERSION_VERSION])dnl +AC_REQUIRE([LTOBSOLETE_VERSION])dnl +m4_require([_LT_PROG_LTMAIN])dnl + +_LT_SHELL_INIT([SHELL=${CONFIG_SHELL-/bin/sh}]) + +dnl Parse OPTIONS +_LT_SET_OPTIONS([$0], [$1]) + +# This can be used to rebuild libtool when needed +LIBTOOL_DEPS=$ltmain + +# Always use our own libtool. +LIBTOOL='$(SHELL) $(top_builddir)/libtool' +AC_SUBST(LIBTOOL)dnl + +_LT_SETUP + +# Only expand once: +m4_define([LT_INIT]) +])# LT_INIT + +# Old names: +AU_ALIAS([AC_PROG_LIBTOOL], [LT_INIT]) +AU_ALIAS([AM_PROG_LIBTOOL], [LT_INIT]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PROG_LIBTOOL], []) +dnl AC_DEFUN([AM_PROG_LIBTOOL], []) + + +# _LT_PREPARE_CC_BASENAME +# ----------------------- +m4_defun([_LT_PREPARE_CC_BASENAME], [ +# Calculate cc_basename. Skip known compiler wrappers and cross-prefix. +func_cc_basename () +{ + for cc_temp in @S|@*""; do + case $cc_temp in + compile | *[[\\/]]compile | ccache | *[[\\/]]ccache ) ;; + distcc | *[[\\/]]distcc | purify | *[[\\/]]purify ) ;; + \-*) ;; + *) break;; + esac + done + func_cc_basename_result=`$ECHO "$cc_temp" | $SED "s%.*/%%; s%^$host_alias-%%"` +} +])# _LT_PREPARE_CC_BASENAME + + +# _LT_CC_BASENAME(CC) +# ------------------- +# It would be clearer to call AC_REQUIREs from _LT_PREPARE_CC_BASENAME, +# but that macro is also expanded into generated libtool script, which +# arranges for $SED and $ECHO to be set by different means. +m4_defun([_LT_CC_BASENAME], +[m4_require([_LT_PREPARE_CC_BASENAME])dnl +AC_REQUIRE([_LT_DECL_SED])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl +func_cc_basename $1 +cc_basename=$func_cc_basename_result +]) + + +# _LT_FILEUTILS_DEFAULTS +# ---------------------- +# It is okay to use these file commands and assume they have been set +# sensibly after 'm4_require([_LT_FILEUTILS_DEFAULTS])'. +m4_defun([_LT_FILEUTILS_DEFAULTS], +[: ${CP="cp -f"} +: ${MV="mv -f"} +: ${RM="rm -f"} +])# _LT_FILEUTILS_DEFAULTS + + +# _LT_SETUP +# --------- +m4_defun([_LT_SETUP], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_REQUIRE([_LT_PREPARE_SED_QUOTE_VARS])dnl +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH])dnl + +_LT_DECL([], [PATH_SEPARATOR], [1], [The PATH separator for the build system])dnl +dnl +_LT_DECL([], [host_alias], [0], [The host system])dnl +_LT_DECL([], [host], [0])dnl +_LT_DECL([], [host_os], [0])dnl +dnl +_LT_DECL([], [build_alias], [0], [The build system])dnl +_LT_DECL([], [build], [0])dnl +_LT_DECL([], [build_os], [0])dnl +dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +dnl +AC_REQUIRE([AC_PROG_LN_S])dnl +test -z "$LN_S" && LN_S="ln -s" +_LT_DECL([], [LN_S], [1], [Whether we need soft or hard links])dnl +dnl +AC_REQUIRE([LT_CMD_MAX_LEN])dnl +_LT_DECL([objext], [ac_objext], [0], [Object file suffix (normally "o")])dnl +_LT_DECL([], [exeext], [0], [Executable file suffix (normally "")])dnl +dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PATH_CONVERSION_FUNCTIONS])dnl +m4_require([_LT_CMD_RELOAD])dnl +m4_require([_LT_CHECK_MAGIC_METHOD])dnl +m4_require([_LT_CHECK_SHAREDLIB_FROM_LINKLIB])dnl +m4_require([_LT_CMD_OLD_ARCHIVE])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_WITH_SYSROOT])dnl +m4_require([_LT_CMD_TRUNCATE])dnl + +_LT_CONFIG_LIBTOOL_INIT([ +# See if we are running on zsh, and set the options that allow our +# commands through without removal of \ escapes INIT. +if test -n "\${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi +]) +if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST +fi + +_LT_CHECK_OBJDIR + +m4_require([_LT_TAG_COMPILER])dnl + +case $host_os in +aix3*) + # AIX sometimes has problems with the GCC collect2 program. For some + # reason, if we set the COLLECT_NAMES environment variable, the problems + # vanish in a puff of smoke. + if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES + fi + ;; +esac + +# Global variables: +ofile=libtool +can_build_shared=yes + +# All known linkers require a '.a' archive for static linking (except MSVC, +# which needs '.lib'). +libext=a + +with_gnu_ld=$lt_cv_prog_gnu_ld + +old_CC=$CC +old_CFLAGS=$CFLAGS + +# Set sane defaults for various variables +test -z "$CC" && CC=cc +test -z "$LTCC" && LTCC=$CC +test -z "$LTCFLAGS" && LTCFLAGS=$CFLAGS +test -z "$LD" && LD=ld +test -z "$ac_objext" && ac_objext=o + +_LT_CC_BASENAME([$compiler]) + +# Only perform the check for file, if the check method requires it +test -z "$MAGIC_CMD" && MAGIC_CMD=file +case $deplibs_check_method in +file_magic*) + if test "$file_magic_cmd" = '$MAGIC_CMD'; then + _LT_PATH_MAGIC + fi + ;; +esac + +# Use C for the default configuration in the libtool script +LT_SUPPORTED_TAG([CC]) +_LT_LANG_C_CONFIG +_LT_LANG_DEFAULT_CONFIG +_LT_CONFIG_COMMANDS +])# _LT_SETUP + + +# _LT_PREPARE_SED_QUOTE_VARS +# -------------------------- +# Define a few sed substitution that help us do robust quoting. +m4_defun([_LT_PREPARE_SED_QUOTE_VARS], +[# Backslashify metacharacters that are still active within +# double-quoted strings. +sed_quote_subst='s/\([["`$\\]]\)/\\\1/g' + +# Same as above, but do not quote variable references. +double_quote_subst='s/\([["`\\]]\)/\\\1/g' + +# Sed substitution to delay expansion of an escaped shell variable in a +# double_quote_subst'ed string. +delay_variable_subst='s/\\\\\\\\\\\$/\\\\\\$/g' + +# Sed substitution to delay expansion of an escaped single quote. +delay_single_quote_subst='s/'\''/'\'\\\\\\\'\''/g' + +# Sed substitution to avoid accidental globbing in evaled expressions +no_glob_subst='s/\*/\\\*/g' +]) + +# _LT_PROG_LTMAIN +# --------------- +# Note that this code is called both from 'configure', and 'config.status' +# now that we use AC_CONFIG_COMMANDS to generate libtool. Notably, +# 'config.status' has no value for ac_aux_dir unless we are using Automake, +# so we pass a copy along to make sure it has a sensible value anyway. +m4_defun([_LT_PROG_LTMAIN], +[m4_ifdef([AC_REQUIRE_AUX_FILE], [AC_REQUIRE_AUX_FILE([ltmain.sh])])dnl +_LT_CONFIG_LIBTOOL_INIT([ac_aux_dir='$ac_aux_dir']) +ltmain=$ac_aux_dir/ltmain.sh +])# _LT_PROG_LTMAIN + + +## ------------------------------------- ## +## Accumulate code for creating libtool. ## +## ------------------------------------- ## + +# So that we can recreate a full libtool script including additional +# tags, we accumulate the chunks of code to send to AC_CONFIG_COMMANDS +# in macros and then make a single call at the end using the 'libtool' +# label. + + +# _LT_CONFIG_LIBTOOL_INIT([INIT-COMMANDS]) +# ---------------------------------------- +# Register INIT-COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL_INIT], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_INIT], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_INIT]) + + +# _LT_CONFIG_LIBTOOL([COMMANDS]) +# ------------------------------ +# Register COMMANDS to be passed to AC_CONFIG_COMMANDS later. +m4_define([_LT_CONFIG_LIBTOOL], +[m4_ifval([$1], + [m4_append([_LT_OUTPUT_LIBTOOL_COMMANDS], + [$1 +])])]) + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS]) + + +# _LT_CONFIG_SAVE_COMMANDS([COMMANDS], [INIT_COMMANDS]) +# ----------------------------------------------------- +m4_defun([_LT_CONFIG_SAVE_COMMANDS], +[_LT_CONFIG_LIBTOOL([$1]) +_LT_CONFIG_LIBTOOL_INIT([$2]) +]) + + +# _LT_FORMAT_COMMENT([COMMENT]) +# ----------------------------- +# Add leading comment marks to the start of each line, and a trailing +# full-stop to the whole comment if one is not present already. +m4_define([_LT_FORMAT_COMMENT], +[m4_ifval([$1], [ +m4_bpatsubst([m4_bpatsubst([$1], [^ *], [# ])], + [['`$\]], [\\\&])]m4_bmatch([$1], [[!?.]$], [], [.]) +)]) + + + +## ------------------------ ## +## FIXME: Eliminate VARNAME ## +## ------------------------ ## + + +# _LT_DECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION], [IS-TAGGED?]) +# ------------------------------------------------------------------- +# CONFIGNAME is the name given to the value in the libtool script. +# VARNAME is the (base) name used in the configure script. +# VALUE may be 0, 1 or 2 for a computed quote escaped value based on +# VARNAME. Any other value will be used directly. +m4_define([_LT_DECL], +[lt_if_append_uniq([lt_decl_varnames], [$2], [, ], + [lt_dict_add_subkey([lt_decl_dict], [$2], [libtool_name], + [m4_ifval([$1], [$1], [$2])]) + lt_dict_add_subkey([lt_decl_dict], [$2], [value], [$3]) + m4_ifval([$4], + [lt_dict_add_subkey([lt_decl_dict], [$2], [description], [$4])]) + lt_dict_add_subkey([lt_decl_dict], [$2], + [tagged?], [m4_ifval([$5], [yes], [no])])]) +]) + + +# _LT_TAGDECL([CONFIGNAME], VARNAME, VALUE, [DESCRIPTION]) +# -------------------------------------------------------- +m4_define([_LT_TAGDECL], [_LT_DECL([$1], [$2], [$3], [$4], [yes])]) + + +# lt_decl_tag_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_tag_varnames], +[_lt_decl_filter([tagged?], [yes], $@)]) + + +# _lt_decl_filter(SUBKEY, VALUE, [SEPARATOR], [VARNAME1..]) +# --------------------------------------------------------- +m4_define([_lt_decl_filter], +[m4_case([$#], + [0], [m4_fatal([$0: too few arguments: $#])], + [1], [m4_fatal([$0: too few arguments: $#: $1])], + [2], [lt_dict_filter([lt_decl_dict], [$1], [$2], [], lt_decl_varnames)], + [3], [lt_dict_filter([lt_decl_dict], [$1], [$2], [$3], lt_decl_varnames)], + [lt_dict_filter([lt_decl_dict], $@)])[]dnl +]) + + +# lt_decl_quote_varnames([SEPARATOR], [VARNAME1...]) +# -------------------------------------------------- +m4_define([lt_decl_quote_varnames], +[_lt_decl_filter([value], [1], $@)]) + + +# lt_decl_dquote_varnames([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_dquote_varnames], +[_lt_decl_filter([value], [2], $@)]) + + +# lt_decl_varnames_tagged([SEPARATOR], [VARNAME1...]) +# --------------------------------------------------- +m4_define([lt_decl_varnames_tagged], +[m4_assert([$# <= 2])dnl +_$0(m4_quote(m4_default([$1], [[, ]])), + m4_ifval([$2], [[$2]], [m4_dquote(lt_decl_tag_varnames)]), + m4_split(m4_normalize(m4_quote(_LT_TAGS)), [ ]))]) +m4_define([_lt_decl_varnames_tagged], +[m4_ifval([$3], [lt_combine([$1], [$2], [_], $3)])]) + + +# lt_decl_all_varnames([SEPARATOR], [VARNAME1...]) +# ------------------------------------------------ +m4_define([lt_decl_all_varnames], +[_$0(m4_quote(m4_default([$1], [[, ]])), + m4_if([$2], [], + m4_quote(lt_decl_varnames), + m4_quote(m4_shift($@))))[]dnl +]) +m4_define([_lt_decl_all_varnames], +[lt_join($@, lt_decl_varnames_tagged([$1], + lt_decl_tag_varnames([[, ]], m4_shift($@))))dnl +]) + + +# _LT_CONFIG_STATUS_DECLARE([VARNAME]) +# ------------------------------------ +# Quote a variable value, and forward it to 'config.status' so that its +# declaration there will have the same value as in 'configure'. VARNAME +# must have a single quote delimited value for this to work. +m4_define([_LT_CONFIG_STATUS_DECLARE], +[$1='`$ECHO "$][$1" | $SED "$delay_single_quote_subst"`']) + + +# _LT_CONFIG_STATUS_DECLARATIONS +# ------------------------------ +# We delimit libtool config variables with single quotes, so when +# we write them to config.status, we have to be sure to quote all +# embedded single quotes properly. In configure, this macro expands +# each variable declared with _LT_DECL (and _LT_TAGDECL) into: +# +# ='`$ECHO "$" | $SED "$delay_single_quote_subst"`' +m4_defun([_LT_CONFIG_STATUS_DECLARATIONS], +[m4_foreach([_lt_var], m4_quote(lt_decl_all_varnames), + [m4_n([_LT_CONFIG_STATUS_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAGS +# ---------------- +# Output comment and list of tags supported by the script +m4_defun([_LT_LIBTOOL_TAGS], +[_LT_FORMAT_COMMENT([The names of the tagged configurations supported by this script])dnl +available_tags='_LT_TAGS'dnl +]) + + +# _LT_LIBTOOL_DECLARE(VARNAME, [TAG]) +# ----------------------------------- +# Extract the dictionary values for VARNAME (optionally with TAG) and +# expand to a commented shell variable setting: +# +# # Some comment about what VAR is for. +# visible_name=$lt_internal_name +m4_define([_LT_LIBTOOL_DECLARE], +[_LT_FORMAT_COMMENT(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], + [description])))[]dnl +m4_pushdef([_libtool_name], + m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [libtool_name])))[]dnl +m4_case(m4_quote(lt_dict_fetch([lt_decl_dict], [$1], [value])), + [0], [_libtool_name=[$]$1], + [1], [_libtool_name=$lt_[]$1], + [2], [_libtool_name=$lt_[]$1], + [_libtool_name=lt_dict_fetch([lt_decl_dict], [$1], [value])])[]dnl +m4_ifval([$2], [_$2])[]m4_popdef([_libtool_name])[]dnl +]) + + +# _LT_LIBTOOL_CONFIG_VARS +# ----------------------- +# Produce commented declarations of non-tagged libtool config variables +# suitable for insertion in the LIBTOOL CONFIG section of the 'libtool' +# script. Tagged libtool config variables (even for the LIBTOOL CONFIG +# section) are produced by _LT_LIBTOOL_TAG_VARS. +m4_defun([_LT_LIBTOOL_CONFIG_VARS], +[m4_foreach([_lt_var], + m4_quote(_lt_decl_filter([tagged?], [no], [], lt_decl_varnames)), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var)])])]) + + +# _LT_LIBTOOL_TAG_VARS(TAG) +# ------------------------- +m4_define([_LT_LIBTOOL_TAG_VARS], +[m4_foreach([_lt_var], m4_quote(lt_decl_tag_varnames), + [m4_n([_LT_LIBTOOL_DECLARE(_lt_var, [$1])])])]) + + +# _LT_TAGVAR(VARNAME, [TAGNAME]) +# ------------------------------ +m4_define([_LT_TAGVAR], [m4_ifval([$2], [$1_$2], [$1])]) + + +# _LT_CONFIG_COMMANDS +# ------------------- +# Send accumulated output to $CONFIG_STATUS. Thanks to the lists of +# variables for single and double quote escaping we saved from calls +# to _LT_DECL, we can put quote escaped variables declarations +# into 'config.status', and then the shell code to quote escape them in +# for loops in 'config.status'. Finally, any additional code accumulated +# from calls to _LT_CONFIG_LIBTOOL_INIT is expanded. +m4_defun([_LT_CONFIG_COMMANDS], +[AC_PROVIDE_IFELSE([LT_OUTPUT], + dnl If the libtool generation code has been placed in $CONFIG_LT, + dnl instead of duplicating it all over again into config.status, + dnl then we will have config.status run $CONFIG_LT later, so it + dnl needs to know what name is stored there: + [AC_CONFIG_COMMANDS([libtool], + [$SHELL $CONFIG_LT || AS_EXIT(1)], [CONFIG_LT='$CONFIG_LT'])], + dnl If the libtool generation code is destined for config.status, + dnl expand the accumulated commands and init code now: + [AC_CONFIG_COMMANDS([libtool], + [_LT_OUTPUT_LIBTOOL_COMMANDS], [_LT_OUTPUT_LIBTOOL_COMMANDS_INIT])]) +])#_LT_CONFIG_COMMANDS + + +# Initialize. +m4_define([_LT_OUTPUT_LIBTOOL_COMMANDS_INIT], +[ + +# The HP-UX ksh and POSIX shell print the target directory to stdout +# if CDPATH is set. +(unset CDPATH) >/dev/null 2>&1 && unset CDPATH + +sed_quote_subst='$sed_quote_subst' +double_quote_subst='$double_quote_subst' +delay_variable_subst='$delay_variable_subst' +_LT_CONFIG_STATUS_DECLARATIONS +LTCC='$LTCC' +LTCFLAGS='$LTCFLAGS' +compiler='$compiler_DEFAULT' + +# A function that is used when there is no print builtin or printf. +func_fallback_echo () +{ + eval 'cat <<_LTECHO_EOF +\$[]1 +_LTECHO_EOF' +} + +# Quote evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_quote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED \\"\\\$sed_quote_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +# Double-quote double-evaled strings. +for var in lt_decl_all_varnames([[ \ +]], lt_decl_dquote_varnames); do + case \`eval \\\\\$ECHO \\\\""\\\\\$\$var"\\\\"\` in + *[[\\\\\\\`\\"\\\$]]*) + eval "lt_\$var=\\\\\\"\\\`\\\$ECHO \\"\\\$\$var\\" | \\\$SED -e \\"\\\$double_quote_subst\\" -e \\"\\\$sed_quote_subst\\" -e \\"\\\$delay_variable_subst\\"\\\`\\\\\\"" ## exclude from sc_prohibit_nested_quotes + ;; + *) + eval "lt_\$var=\\\\\\"\\\$\$var\\\\\\"" + ;; + esac +done + +_LT_OUTPUT_LIBTOOL_INIT +]) + +# _LT_GENERATED_FILE_INIT(FILE, [COMMENT]) +# ------------------------------------ +# Generate a child script FILE with all initialization necessary to +# reuse the environment learned by the parent script, and make the +# file executable. If COMMENT is supplied, it is inserted after the +# '#!' sequence but before initialization text begins. After this +# macro, additional text can be appended to FILE to form the body of +# the child script. The macro ends with non-zero status if the +# file could not be fully written (such as if the disk is full). +m4_ifdef([AS_INIT_GENERATED], +[m4_defun([_LT_GENERATED_FILE_INIT],[AS_INIT_GENERATED($@)])], +[m4_defun([_LT_GENERATED_FILE_INIT], +[m4_require([AS_PREPARE])]dnl +[m4_pushdef([AS_MESSAGE_LOG_FD])]dnl +[lt_write_fail=0 +cat >$1 <<_ASEOF || lt_write_fail=1 +#! $SHELL +# Generated by $as_me. +$2 +SHELL=\${CONFIG_SHELL-$SHELL} +export SHELL +_ASEOF +cat >>$1 <<\_ASEOF || lt_write_fail=1 +AS_SHELL_SANITIZE +_AS_PREPARE +exec AS_MESSAGE_FD>&1 +_ASEOF +test 0 = "$lt_write_fail" && chmod +x $1[]dnl +m4_popdef([AS_MESSAGE_LOG_FD])])])# _LT_GENERATED_FILE_INIT + +# LT_OUTPUT +# --------- +# This macro allows early generation of the libtool script (before +# AC_OUTPUT is called), incase it is used in configure for compilation +# tests. +AC_DEFUN([LT_OUTPUT], +[: ${CONFIG_LT=./config.lt} +AC_MSG_NOTICE([creating $CONFIG_LT]) +_LT_GENERATED_FILE_INIT(["$CONFIG_LT"], +[# Run this file to recreate a libtool stub with the current configuration.]) + +cat >>"$CONFIG_LT" <<\_LTEOF +lt_cl_silent=false +exec AS_MESSAGE_LOG_FD>>config.log +{ + echo + AS_BOX([Running $as_me.]) +} >&AS_MESSAGE_LOG_FD + +lt_cl_help="\ +'$as_me' creates a local libtool stub from the current configuration, +for use in further configure time tests before the real libtool is +generated. + +Usage: $[0] [[OPTIONS]] + + -h, --help print this help, then exit + -V, --version print version number, then exit + -q, --quiet do not print progress messages + -d, --debug don't remove temporary files + +Report bugs to ." + +lt_cl_version="\ +m4_ifset([AC_PACKAGE_NAME], [AC_PACKAGE_NAME ])config.lt[]dnl +m4_ifset([AC_PACKAGE_VERSION], [ AC_PACKAGE_VERSION]) +configured by $[0], generated by m4_PACKAGE_STRING. + +Copyright (C) 2011 Free Software Foundation, Inc. +This config.lt script is free software; the Free Software Foundation +gives unlimited permision to copy, distribute and modify it." + +while test 0 != $[#] +do + case $[1] in + --version | --v* | -V ) + echo "$lt_cl_version"; exit 0 ;; + --help | --h* | -h ) + echo "$lt_cl_help"; exit 0 ;; + --debug | --d* | -d ) + debug=: ;; + --quiet | --q* | --silent | --s* | -q ) + lt_cl_silent=: ;; + + -*) AC_MSG_ERROR([unrecognized option: $[1] +Try '$[0] --help' for more information.]) ;; + + *) AC_MSG_ERROR([unrecognized argument: $[1] +Try '$[0] --help' for more information.]) ;; + esac + shift +done + +if $lt_cl_silent; then + exec AS_MESSAGE_FD>/dev/null +fi +_LTEOF + +cat >>"$CONFIG_LT" <<_LTEOF +_LT_OUTPUT_LIBTOOL_COMMANDS_INIT +_LTEOF + +cat >>"$CONFIG_LT" <<\_LTEOF +AC_MSG_NOTICE([creating $ofile]) +_LT_OUTPUT_LIBTOOL_COMMANDS +AS_EXIT(0) +_LTEOF +chmod +x "$CONFIG_LT" + +# configure is writing to config.log, but config.lt does its own redirection, +# appending to config.log, which fails on DOS, as config.log is still kept +# open by configure. Here we exec the FD to /dev/null, effectively closing +# config.log, so it can be properly (re)opened and appended to by config.lt. +lt_cl_success=: +test yes = "$silent" && + lt_config_lt_args="$lt_config_lt_args --quiet" +exec AS_MESSAGE_LOG_FD>/dev/null +$SHELL "$CONFIG_LT" $lt_config_lt_args || lt_cl_success=false +exec AS_MESSAGE_LOG_FD>>config.log +$lt_cl_success || AS_EXIT(1) +])# LT_OUTPUT + + +# _LT_CONFIG(TAG) +# --------------- +# If TAG is the built-in tag, create an initial libtool script with a +# default configuration from the untagged config vars. Otherwise add code +# to config.status for appending the configuration named by TAG from the +# matching tagged config vars. +m4_defun([_LT_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_CONFIG_SAVE_COMMANDS([ + m4_define([_LT_TAG], m4_if([$1], [], [C], [$1]))dnl + m4_if(_LT_TAG, [C], [ + # See if we are running on zsh, and set the options that allow our + # commands through without removal of \ escapes. + if test -n "${ZSH_VERSION+set}"; then + setopt NO_GLOB_SUBST + fi + + cfgfile=${ofile}T + trap "$RM \"$cfgfile\"; exit 1" 1 2 15 + $RM "$cfgfile" + + cat <<_LT_EOF >> "$cfgfile" +#! $SHELL +# Generated automatically by $as_me ($PACKAGE) $VERSION +# NOTE: Changes made to this file will be lost: look at ltmain.sh. + +# Provide generalized library-building support services. +# Written by Gordon Matzigkeit, 1996 + +_LT_COPYING +_LT_LIBTOOL_TAGS + +# Configured defaults for sys_lib_dlsearch_path munging. +: \${LT_SYS_LIBRARY_PATH="$configure_time_lt_sys_library_path"} + +# ### BEGIN LIBTOOL CONFIG +_LT_LIBTOOL_CONFIG_VARS +_LT_LIBTOOL_TAG_VARS +# ### END LIBTOOL CONFIG + +_LT_EOF + + cat <<'_LT_EOF' >> "$cfgfile" + +# ### BEGIN FUNCTIONS SHARED WITH CONFIGURE + +_LT_PREPARE_MUNGE_PATH_LIST +_LT_PREPARE_CC_BASENAME + +# ### END FUNCTIONS SHARED WITH CONFIGURE + +_LT_EOF + + case $host_os in + aix3*) + cat <<\_LT_EOF >> "$cfgfile" +# AIX sometimes has problems with the GCC collect2 program. For some +# reason, if we set the COLLECT_NAMES environment variable, the problems +# vanish in a puff of smoke. +if test set != "${COLLECT_NAMES+set}"; then + COLLECT_NAMES= + export COLLECT_NAMES +fi +_LT_EOF + ;; + esac + + _LT_PROG_LTMAIN + + # We use sed instead of cat because bash on DJGPP gets confused if + # if finds mixed CR/LF and LF-only lines. Since sed operates in + # text mode, it properly converts lines to CR/LF. This bash problem + # is reportedly fixed, but why not run on old versions too? + sed '$q' "$ltmain" >> "$cfgfile" \ + || (rm -f "$cfgfile"; exit 1) + + mv -f "$cfgfile" "$ofile" || + (rm -f "$ofile" && cp "$cfgfile" "$ofile" && rm -f "$cfgfile") + chmod +x "$ofile" +], +[cat <<_LT_EOF >> "$ofile" + +dnl Unfortunately we have to use $1 here, since _LT_TAG is not expanded +dnl in a comment (ie after a #). +# ### BEGIN LIBTOOL TAG CONFIG: $1 +_LT_LIBTOOL_TAG_VARS(_LT_TAG) +# ### END LIBTOOL TAG CONFIG: $1 +_LT_EOF +])dnl /m4_if +], +[m4_if([$1], [], [ + PACKAGE='$PACKAGE' + VERSION='$VERSION' + RM='$RM' + ofile='$ofile'], []) +])dnl /_LT_CONFIG_SAVE_COMMANDS +])# _LT_CONFIG + + +# LT_SUPPORTED_TAG(TAG) +# --------------------- +# Trace this macro to discover what tags are supported by the libtool +# --tag option, using: +# autoconf --trace 'LT_SUPPORTED_TAG:$1' +AC_DEFUN([LT_SUPPORTED_TAG], []) + + +# C support is built-in for now +m4_define([_LT_LANG_C_enabled], []) +m4_define([_LT_TAGS], []) + + +# LT_LANG(LANG) +# ------------- +# Enable libtool support for the given language if not already enabled. +AC_DEFUN([LT_LANG], +[AC_BEFORE([$0], [LT_OUTPUT])dnl +m4_case([$1], + [C], [_LT_LANG(C)], + [C++], [_LT_LANG(CXX)], + [Go], [_LT_LANG(GO)], + [Java], [_LT_LANG(GCJ)], + [Fortran 77], [_LT_LANG(F77)], + [Fortran], [_LT_LANG(FC)], + [Windows Resource], [_LT_LANG(RC)], + [m4_ifdef([_LT_LANG_]$1[_CONFIG], + [_LT_LANG($1)], + [m4_fatal([$0: unsupported language: "$1"])])])dnl +])# LT_LANG + + +# _LT_LANG(LANGNAME) +# ------------------ +m4_defun([_LT_LANG], +[m4_ifdef([_LT_LANG_]$1[_enabled], [], + [LT_SUPPORTED_TAG([$1])dnl + m4_append([_LT_TAGS], [$1 ])dnl + m4_define([_LT_LANG_]$1[_enabled], [])dnl + _LT_LANG_$1_CONFIG($1)])dnl +])# _LT_LANG + + +m4_ifndef([AC_PROG_GO], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_GO. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ +m4_defun([AC_PROG_GO], +[AC_LANG_PUSH(Go)dnl +AC_ARG_VAR([GOC], [Go compiler command])dnl +AC_ARG_VAR([GOFLAGS], [Go compiler flags])dnl +_AC_ARG_VAR_LDFLAGS()dnl +AC_CHECK_TOOL(GOC, gccgo) +if test -z "$GOC"; then + if test -n "$ac_tool_prefix"; then + AC_CHECK_PROG(GOC, [${ac_tool_prefix}gccgo], [${ac_tool_prefix}gccgo]) + fi +fi +if test -z "$GOC"; then + AC_CHECK_PROG(GOC, gccgo, gccgo, false) +fi +])#m4_defun +])#m4_ifndef + + +# _LT_LANG_DEFAULT_CONFIG +# ----------------------- +m4_defun([_LT_LANG_DEFAULT_CONFIG], +[AC_PROVIDE_IFELSE([AC_PROG_CXX], + [LT_LANG(CXX)], + [m4_define([AC_PROG_CXX], defn([AC_PROG_CXX])[LT_LANG(CXX)])]) + +AC_PROVIDE_IFELSE([AC_PROG_F77], + [LT_LANG(F77)], + [m4_define([AC_PROG_F77], defn([AC_PROG_F77])[LT_LANG(F77)])]) + +AC_PROVIDE_IFELSE([AC_PROG_FC], + [LT_LANG(FC)], + [m4_define([AC_PROG_FC], defn([AC_PROG_FC])[LT_LANG(FC)])]) + +dnl The call to [A][M_PROG_GCJ] is quoted like that to stop aclocal +dnl pulling things in needlessly. +AC_PROVIDE_IFELSE([AC_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([A][M_PROG_GCJ], + [LT_LANG(GCJ)], + [AC_PROVIDE_IFELSE([LT_PROG_GCJ], + [LT_LANG(GCJ)], + [m4_ifdef([AC_PROG_GCJ], + [m4_define([AC_PROG_GCJ], defn([AC_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([A][M_PROG_GCJ], + [m4_define([A][M_PROG_GCJ], defn([A][M_PROG_GCJ])[LT_LANG(GCJ)])]) + m4_ifdef([LT_PROG_GCJ], + [m4_define([LT_PROG_GCJ], defn([LT_PROG_GCJ])[LT_LANG(GCJ)])])])])]) + +AC_PROVIDE_IFELSE([AC_PROG_GO], + [LT_LANG(GO)], + [m4_define([AC_PROG_GO], defn([AC_PROG_GO])[LT_LANG(GO)])]) + +AC_PROVIDE_IFELSE([LT_PROG_RC], + [LT_LANG(RC)], + [m4_define([LT_PROG_RC], defn([LT_PROG_RC])[LT_LANG(RC)])]) +])# _LT_LANG_DEFAULT_CONFIG + +# Obsolete macros: +AU_DEFUN([AC_LIBTOOL_CXX], [LT_LANG(C++)]) +AU_DEFUN([AC_LIBTOOL_F77], [LT_LANG(Fortran 77)]) +AU_DEFUN([AC_LIBTOOL_FC], [LT_LANG(Fortran)]) +AU_DEFUN([AC_LIBTOOL_GCJ], [LT_LANG(Java)]) +AU_DEFUN([AC_LIBTOOL_RC], [LT_LANG(Windows Resource)]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_CXX], []) +dnl AC_DEFUN([AC_LIBTOOL_F77], []) +dnl AC_DEFUN([AC_LIBTOOL_FC], []) +dnl AC_DEFUN([AC_LIBTOOL_GCJ], []) +dnl AC_DEFUN([AC_LIBTOOL_RC], []) + + +# _LT_TAG_COMPILER +# ---------------- +m4_defun([_LT_TAG_COMPILER], +[AC_REQUIRE([AC_PROG_CC])dnl + +_LT_DECL([LTCC], [CC], [1], [A C compiler])dnl +_LT_DECL([LTCFLAGS], [CFLAGS], [1], [LTCC compiler flags])dnl +_LT_TAGDECL([CC], [compiler], [1], [A language specific compiler])dnl +_LT_TAGDECL([with_gcc], [GCC], [0], [Is the compiler the GNU compiler?])dnl + +# If no C compiler was specified, use CC. +LTCC=${LTCC-"$CC"} + +# If no C compiler flags were specified, use CFLAGS. +LTCFLAGS=${LTCFLAGS-"$CFLAGS"} + +# Allow CC to be a program name with arguments. +compiler=$CC +])# _LT_TAG_COMPILER + + +# _LT_COMPILER_BOILERPLATE +# ------------------------ +# Check for compiler boilerplate output or warnings with +# the simple compiler test code. +m4_defun([_LT_COMPILER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_compile_test_code" >conftest.$ac_ext +eval "$ac_compile" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_compiler_boilerplate=`cat conftest.err` +$RM conftest* +])# _LT_COMPILER_BOILERPLATE + + +# _LT_LINKER_BOILERPLATE +# ---------------------- +# Check for linker boilerplate output or warnings with +# the simple link test code. +m4_defun([_LT_LINKER_BOILERPLATE], +[m4_require([_LT_DECL_SED])dnl +ac_outfile=conftest.$ac_objext +echo "$lt_simple_link_test_code" >conftest.$ac_ext +eval "$ac_link" 2>&1 >/dev/null | $SED '/^$/d; /^ *+/d' >conftest.err +_lt_linker_boilerplate=`cat conftest.err` +$RM -r conftest* +])# _LT_LINKER_BOILERPLATE + +# _LT_REQUIRED_DARWIN_CHECKS +# ------------------------- +m4_defun_once([_LT_REQUIRED_DARWIN_CHECKS],[ + case $host_os in + rhapsody* | darwin*) + AC_CHECK_TOOL([DSYMUTIL], [dsymutil], [:]) + AC_CHECK_TOOL([NMEDIT], [nmedit], [:]) + AC_CHECK_TOOL([LIPO], [lipo], [:]) + AC_CHECK_TOOL([OTOOL], [otool], [:]) + AC_CHECK_TOOL([OTOOL64], [otool64], [:]) + _LT_DECL([], [DSYMUTIL], [1], + [Tool to manipulate archived DWARF debug symbol files on Mac OS X]) + _LT_DECL([], [NMEDIT], [1], + [Tool to change global to local symbols on Mac OS X]) + _LT_DECL([], [LIPO], [1], + [Tool to manipulate fat objects and archives on Mac OS X]) + _LT_DECL([], [OTOOL], [1], + [ldd/readelf like tool for Mach-O binaries on Mac OS X]) + _LT_DECL([], [OTOOL64], [1], + [ldd/readelf like tool for 64 bit Mach-O binaries on Mac OS X 10.4]) + + AC_CACHE_CHECK([for -single_module linker flag],[lt_cv_apple_cc_single_mod], + [lt_cv_apple_cc_single_mod=no + if test -z "$LT_MULTI_MODULE"; then + # By default we will add the -single_module flag. You can override + # by either setting the environment variable LT_MULTI_MODULE + # non-empty at configure time, or by adding -multi_module to the + # link flags. + rm -rf libconftest.dylib* + echo "int foo(void){return 1;}" > conftest.c + echo "$LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ +-dynamiclib -Wl,-single_module conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o libconftest.dylib \ + -dynamiclib -Wl,-single_module conftest.c 2>conftest.err + _lt_result=$? + # If there is a non-empty error log, and "single_module" + # appears in it, assume the flag caused a linker warning + if test -s conftest.err && $GREP single_module conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + # Otherwise, if the output was created with a 0 exit code from + # the compiler, it worked. + elif test -f libconftest.dylib && test 0 = "$_lt_result"; then + lt_cv_apple_cc_single_mod=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -rf libconftest.dylib* + rm -f conftest.* + fi]) + + AC_CACHE_CHECK([for -exported_symbols_list linker flag], + [lt_cv_ld_exported_symbols_list], + [lt_cv_ld_exported_symbols_list=no + save_LDFLAGS=$LDFLAGS + echo "_main" > conftest.sym + LDFLAGS="$LDFLAGS -Wl,-exported_symbols_list,conftest.sym" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [lt_cv_ld_exported_symbols_list=yes], + [lt_cv_ld_exported_symbols_list=no]) + LDFLAGS=$save_LDFLAGS + ]) + + AC_CACHE_CHECK([for -force_load linker flag],[lt_cv_ld_force_load], + [lt_cv_ld_force_load=no + cat > conftest.c << _LT_EOF +int forced_loaded() { return 2;} +_LT_EOF + echo "$LTCC $LTCFLAGS -c -o conftest.o conftest.c" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS -c -o conftest.o conftest.c 2>&AS_MESSAGE_LOG_FD + echo "$AR cr libconftest.a conftest.o" >&AS_MESSAGE_LOG_FD + $AR cr libconftest.a conftest.o 2>&AS_MESSAGE_LOG_FD + echo "$RANLIB libconftest.a" >&AS_MESSAGE_LOG_FD + $RANLIB libconftest.a 2>&AS_MESSAGE_LOG_FD + cat > conftest.c << _LT_EOF +int main() { return 0;} +_LT_EOF + echo "$LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a" >&AS_MESSAGE_LOG_FD + $LTCC $LTCFLAGS $LDFLAGS -o conftest conftest.c -Wl,-force_load,./libconftest.a 2>conftest.err + _lt_result=$? + if test -s conftest.err && $GREP force_load conftest.err; then + cat conftest.err >&AS_MESSAGE_LOG_FD + elif test -f conftest && test 0 = "$_lt_result" && $GREP forced_load conftest >/dev/null 2>&1; then + lt_cv_ld_force_load=yes + else + cat conftest.err >&AS_MESSAGE_LOG_FD + fi + rm -f conftest.err libconftest.a conftest conftest.c + rm -rf conftest.dSYM + ]) + case $host_os in + rhapsody* | darwin1.[[012]]) + _lt_dar_allow_undefined='$wl-undefined ${wl}suppress' ;; + darwin1.*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + darwin*) # darwin 5.x on + # if running on 10.5 or later, the deployment target defaults + # to the OS version, if on x86, and 10.4, the deployment + # target defaults to 10.4. Don't you love it? + case ${MACOSX_DEPLOYMENT_TARGET-10.0},$host in + 10.0,*86*-darwin8*|10.0,*-darwin[[912]]*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + 10.[[012]][[,.]]*) + _lt_dar_allow_undefined='$wl-flat_namespace $wl-undefined ${wl}suppress' ;; + 10.*|11.*) + _lt_dar_allow_undefined='$wl-undefined ${wl}dynamic_lookup' ;; + esac + ;; + esac + if test yes = "$lt_cv_apple_cc_single_mod"; then + _lt_dar_single_mod='$single_module' + fi + if test yes = "$lt_cv_ld_exported_symbols_list"; then + _lt_dar_export_syms=' $wl-exported_symbols_list,$output_objdir/$libname-symbols.expsym' + else + _lt_dar_export_syms='~$NMEDIT -s $output_objdir/$libname-symbols.expsym $lib' + fi + if test : != "$DSYMUTIL" && test no = "$lt_cv_ld_force_load"; then + _lt_dsymutil='~$DSYMUTIL $lib || :' + else + _lt_dsymutil= + fi + ;; + esac +]) + + +# _LT_DARWIN_LINKER_FEATURES([TAG]) +# --------------------------------- +# Checks for linker and compiler features on darwin +m4_defun([_LT_DARWIN_LINKER_FEATURES], +[ + m4_require([_LT_REQUIRED_DARWIN_CHECKS]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_automatic, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + if test yes = "$lt_cv_ld_force_load"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience $wl-force_load,$conv\"; done; func_echo_all \"$new_convenience\"`' + m4_case([$1], [F77], [_LT_TAGVAR(compiler_needs_object, $1)=yes], + [FC], [_LT_TAGVAR(compiler_needs_object, $1)=yes]) + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='' + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=$_lt_dar_allow_undefined + case $cc_basename in + ifort*|nagfor*) _lt_dar_can_shared=yes ;; + *) _lt_dar_can_shared=$GCC ;; + esac + if test yes = "$_lt_dar_can_shared"; then + output_verbose_link_cmd=func_echo_all + _LT_TAGVAR(archive_cmds, $1)="\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dsymutil" + _LT_TAGVAR(module_cmds, $1)="\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$libobjs \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring $_lt_dar_single_mod$_lt_dar_export_syms$_lt_dsymutil" + _LT_TAGVAR(module_expsym_cmds, $1)="sed -e 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC \$allow_undefined_flag -o \$lib -bundle \$libobjs \$deplibs \$compiler_flags$_lt_dar_export_syms$_lt_dsymutil" + m4_if([$1], [CXX], +[ if test yes != "$lt_cv_apple_cc_single_mod"; then + _LT_TAGVAR(archive_cmds, $1)="\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dsymutil" + _LT_TAGVAR(archive_expsym_cmds, $1)="sed 's|^|_|' < \$export_symbols > \$output_objdir/\$libname-symbols.expsym~\$CC -r -keep_private_externs -nostdlib -o \$lib-master.o \$libobjs~\$CC -dynamiclib \$allow_undefined_flag -o \$lib \$lib-master.o \$deplibs \$compiler_flags -install_name \$rpath/\$soname \$verstring$_lt_dar_export_syms$_lt_dsymutil" + fi +],[]) + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi +]) + +# _LT_SYS_MODULE_PATH_AIX([TAGNAME]) +# ---------------------------------- +# Links a minimal program and checks the executable +# for the system default hardcoded library path. In most cases, +# this is /usr/lib:/lib, but when the MPI compilers are used +# the location of the communication and MPI libs are included too. +# If we don't find anything, use the default library path according +# to the aix ld manual. +# Store the results from the different compilers for each TAGNAME. +# Allow to override them for all tags through lt_cv_aix_libpath. +m4_defun([_LT_SYS_MODULE_PATH_AIX], +[m4_require([_LT_DECL_SED])dnl +if test set = "${lt_cv_aix_libpath+set}"; then + aix_libpath=$lt_cv_aix_libpath +else + AC_CACHE_VAL([_LT_TAGVAR([lt_cv_aix_libpath_], [$1])], + [AC_LINK_IFELSE([AC_LANG_PROGRAM],[ + lt_aix_libpath_sed='[ + /Import File Strings/,/^$/ { + /^0/ { + s/^0 *\([^ ]*\) *$/\1/ + p + } + }]' + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -H conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + # Check for a 64-bit object if we didn't find anything. + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=`dump -HX64 conftest$ac_exeext 2>/dev/null | $SED -n -e "$lt_aix_libpath_sed"` + fi],[]) + if test -z "$_LT_TAGVAR([lt_cv_aix_libpath_], [$1])"; then + _LT_TAGVAR([lt_cv_aix_libpath_], [$1])=/usr/lib:/lib + fi + ]) + aix_libpath=$_LT_TAGVAR([lt_cv_aix_libpath_], [$1]) +fi +])# _LT_SYS_MODULE_PATH_AIX + + +# _LT_SHELL_INIT(ARG) +# ------------------- +m4_define([_LT_SHELL_INIT], +[m4_divert_text([M4SH-INIT], [$1 +])])# _LT_SHELL_INIT + + + +# _LT_PROG_ECHO_BACKSLASH +# ----------------------- +# Find how we can fake an echo command that does not interpret backslash. +# In particular, with Autoconf 2.60 or later we add some code to the start +# of the generated configure script that will find a shell with a builtin +# printf (that we can use as an echo command). +m4_defun([_LT_PROG_ECHO_BACKSLASH], +[ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO +ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + +AC_MSG_CHECKING([how to print strings]) +# Test print first, because it will be a builtin if present. +if test "X`( print -r -- -n ) 2>/dev/null`" = X-n && \ + test "X`print -r -- $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='print -r --' +elif test "X`printf %s $ECHO 2>/dev/null`" = "X$ECHO"; then + ECHO='printf %s\n' +else + # Use this function as a fallback that always works. + func_fallback_echo () + { + eval 'cat <<_LTECHO_EOF +$[]1 +_LTECHO_EOF' + } + ECHO='func_fallback_echo' +fi + +# func_echo_all arg... +# Invoke $ECHO with all args, space-separated. +func_echo_all () +{ + $ECHO "$*" +} + +case $ECHO in + printf*) AC_MSG_RESULT([printf]) ;; + print*) AC_MSG_RESULT([print -r]) ;; + *) AC_MSG_RESULT([cat]) ;; +esac + +m4_ifdef([_AS_DETECT_SUGGESTED], +[_AS_DETECT_SUGGESTED([ + test -n "${ZSH_VERSION+set}${BASH_VERSION+set}" || ( + ECHO='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO + ECHO=$ECHO$ECHO$ECHO$ECHO$ECHO$ECHO + PATH=/empty FPATH=/empty; export PATH FPATH + test "X`printf %s $ECHO`" = "X$ECHO" \ + || test "X`print -r -- $ECHO`" = "X$ECHO" )])]) + +_LT_DECL([], [SHELL], [1], [Shell to use when invoking shell scripts]) +_LT_DECL([], [ECHO], [1], [An echo program that protects backslashes]) +])# _LT_PROG_ECHO_BACKSLASH + + +# _LT_WITH_SYSROOT +# ---------------- +AC_DEFUN([_LT_WITH_SYSROOT], +[AC_MSG_CHECKING([for sysroot]) +AC_ARG_WITH([sysroot], +[AS_HELP_STRING([--with-sysroot@<:@=DIR@:>@], + [Search for dependent libraries within DIR (or the compiler's sysroot + if not specified).])], +[], [with_sysroot=no]) + +dnl lt_sysroot will always be passed unquoted. We quote it here +dnl in case the user passed a directory name. +lt_sysroot= +case $with_sysroot in #( + yes) + if test yes = "$GCC"; then + lt_sysroot=`$CC --print-sysroot 2>/dev/null` + fi + ;; #( + /*) + lt_sysroot=`echo "$with_sysroot" | sed -e "$sed_quote_subst"` + ;; #( + no|'') + ;; #( + *) + AC_MSG_RESULT([$with_sysroot]) + AC_MSG_ERROR([The sysroot must be an absolute path.]) + ;; +esac + + AC_MSG_RESULT([${lt_sysroot:-no}]) +_LT_DECL([], [lt_sysroot], [0], [The root where to search for ]dnl +[dependent libraries, and where our libraries should be installed.])]) + +# _LT_ENABLE_LOCK +# --------------- +m4_defun([_LT_ENABLE_LOCK], +[AC_ARG_ENABLE([libtool-lock], + [AS_HELP_STRING([--disable-libtool-lock], + [avoid locking (might break parallel builds)])]) +test no = "$enable_libtool_lock" || enable_libtool_lock=yes + +# Some flags need to be propagated to the compiler or linker for good +# libtool support. +case $host in +ia64-*-hpux*) + # Find out what ABI is being produced by ac_compile, and set mode + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *ELF-32*) + HPUX_IA64_MODE=32 + ;; + *ELF-64*) + HPUX_IA64_MODE=64 + ;; + esac + fi + rm -rf conftest* + ;; +*-*-irix6*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + if test yes = "$lt_cv_prog_gnu_ld"; then + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -melf32bsmip" + ;; + *N32*) + LD="${LD-ld} -melf32bmipn32" + ;; + *64-bit*) + LD="${LD-ld} -melf64bmip" + ;; + esac + else + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + LD="${LD-ld} -32" + ;; + *N32*) + LD="${LD-ld} -n32" + ;; + *64-bit*) + LD="${LD-ld} -64" + ;; + esac + fi + fi + rm -rf conftest* + ;; + +mips64*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo '[#]line '$LINENO' "configure"' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + emul=elf + case `/usr/bin/file conftest.$ac_objext` in + *32-bit*) + emul="${emul}32" + ;; + *64-bit*) + emul="${emul}64" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *MSB*) + emul="${emul}btsmip" + ;; + *LSB*) + emul="${emul}ltsmip" + ;; + esac + case `/usr/bin/file conftest.$ac_objext` in + *N32*) + emul="${emul}n32" + ;; + esac + LD="${LD-ld} -m $emul" + fi + rm -rf conftest* + ;; + +x86_64-*kfreebsd*-gnu|x86_64-*linux*|powerpc*-*linux*| \ +s390*-*linux*|s390*-*tpf*|sparc*-*linux*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. Note that the listed cases only cover the + # situations where additional linker options are needed (such as when + # doing 32-bit compilation for a host where ld defaults to 64-bit, or + # vice versa); the common cases where no linker options are needed do + # not appear in the list. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *32-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_i386_fbsd" + ;; + x86_64-*linux*) + case `/usr/bin/file conftest.o` in + *x86-64*) + LD="${LD-ld} -m elf32_x86_64" + ;; + *) + LD="${LD-ld} -m elf_i386" + ;; + esac + ;; + powerpc64le-*linux*) + LD="${LD-ld} -m elf32lppclinux" + ;; + powerpc64-*linux*) + LD="${LD-ld} -m elf32ppclinux" + ;; + s390x-*linux*) + LD="${LD-ld} -m elf_s390" + ;; + sparc64-*linux*) + LD="${LD-ld} -m elf32_sparc" + ;; + esac + ;; + *64-bit*) + case $host in + x86_64-*kfreebsd*-gnu) + LD="${LD-ld} -m elf_x86_64_fbsd" + ;; + x86_64-*linux*) + LD="${LD-ld} -m elf_x86_64" + ;; + powerpcle-*linux*) + LD="${LD-ld} -m elf64lppc" + ;; + powerpc-*linux*) + LD="${LD-ld} -m elf64ppc" + ;; + s390*-*linux*|s390*-*tpf*) + LD="${LD-ld} -m elf64_s390" + ;; + sparc*-*linux*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; + +*-*-sco3.2v5*) + # On SCO OpenServer 5, we need -belf to get full-featured binaries. + SAVE_CFLAGS=$CFLAGS + CFLAGS="$CFLAGS -belf" + AC_CACHE_CHECK([whether the C compiler needs -belf], lt_cv_cc_needs_belf, + [AC_LANG_PUSH(C) + AC_LINK_IFELSE([AC_LANG_PROGRAM([[]],[[]])],[lt_cv_cc_needs_belf=yes],[lt_cv_cc_needs_belf=no]) + AC_LANG_POP]) + if test yes != "$lt_cv_cc_needs_belf"; then + # this is probably gcc 2.8.0, egcs 1.0 or newer; no need for -belf + CFLAGS=$SAVE_CFLAGS + fi + ;; +*-*solaris*) + # Find out what ABI is being produced by ac_compile, and set linker + # options accordingly. + echo 'int i;' > conftest.$ac_ext + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.o` in + *64-bit*) + case $lt_cv_prog_gnu_ld in + yes*) + case $host in + i?86-*-solaris*|x86_64-*-solaris*) + LD="${LD-ld} -m elf_x86_64" + ;; + sparc*-*-solaris*) + LD="${LD-ld} -m elf64_sparc" + ;; + esac + # GNU ld 2.21 introduced _sol2 emulations. Use them if available. + if ${LD-ld} -V | grep _sol2 >/dev/null 2>&1; then + LD=${LD-ld}_sol2 + fi + ;; + *) + if ${LD-ld} -64 -r -o conftest2.o conftest.o >/dev/null 2>&1; then + LD="${LD-ld} -64" + fi + ;; + esac + ;; + esac + fi + rm -rf conftest* + ;; +esac + +need_locks=$enable_libtool_lock +])# _LT_ENABLE_LOCK + + +# _LT_PROG_AR +# ----------- +m4_defun([_LT_PROG_AR], +[AC_CHECK_TOOLS(AR, [ar], false) +: ${AR=ar} +: ${AR_FLAGS=cr} +_LT_DECL([], [AR], [1], [The archiver]) +_LT_DECL([], [AR_FLAGS], [1], [Flags to create an archive]) + +AC_CACHE_CHECK([for archiver @FILE support], [lt_cv_ar_at_file], + [lt_cv_ar_at_file=no + AC_COMPILE_IFELSE([AC_LANG_PROGRAM], + [echo conftest.$ac_objext > conftest.lst + lt_ar_try='$AR $AR_FLAGS libconftest.a @conftest.lst >&AS_MESSAGE_LOG_FD' + AC_TRY_EVAL([lt_ar_try]) + if test 0 -eq "$ac_status"; then + # Ensure the archiver fails upon bogus file names. + rm -f conftest.$ac_objext libconftest.a + AC_TRY_EVAL([lt_ar_try]) + if test 0 -ne "$ac_status"; then + lt_cv_ar_at_file=@ + fi + fi + rm -f conftest.* libconftest.a + ]) + ]) + +if test no = "$lt_cv_ar_at_file"; then + archiver_list_spec= +else + archiver_list_spec=$lt_cv_ar_at_file +fi +_LT_DECL([], [archiver_list_spec], [1], + [How to feed a file listing to the archiver]) +])# _LT_PROG_AR + + +# _LT_CMD_OLD_ARCHIVE +# ------------------- +m4_defun([_LT_CMD_OLD_ARCHIVE], +[_LT_PROG_AR + +AC_CHECK_TOOL(STRIP, strip, :) +test -z "$STRIP" && STRIP=: +_LT_DECL([], [STRIP], [1], [A symbol stripping program]) + +AC_CHECK_TOOL(RANLIB, ranlib, :) +test -z "$RANLIB" && RANLIB=: +_LT_DECL([], [RANLIB], [1], + [Commands used to install an old-style archive]) + +# Determine commands to create old-style static archives. +old_archive_cmds='$AR $AR_FLAGS $oldlib$oldobjs' +old_postinstall_cmds='chmod 644 $oldlib' +old_postuninstall_cmds= + +if test -n "$RANLIB"; then + case $host_os in + bitrig* | openbsd*) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB -t \$tool_oldlib" + ;; + *) + old_postinstall_cmds="$old_postinstall_cmds~\$RANLIB \$tool_oldlib" + ;; + esac + old_archive_cmds="$old_archive_cmds~\$RANLIB \$tool_oldlib" +fi + +case $host_os in + darwin*) + lock_old_archive_extraction=yes ;; + *) + lock_old_archive_extraction=no ;; +esac +_LT_DECL([], [old_postinstall_cmds], [2]) +_LT_DECL([], [old_postuninstall_cmds], [2]) +_LT_TAGDECL([], [old_archive_cmds], [2], + [Commands used to build an old-style archive]) +_LT_DECL([], [lock_old_archive_extraction], [0], + [Whether to use a lock for old archive extraction]) +])# _LT_CMD_OLD_ARCHIVE + + +# _LT_COMPILER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [OUTPUT-FILE], [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------------------- +# Check whether the given compiler option works +AC_DEFUN([_LT_COMPILER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + m4_if([$4], , [ac_outfile=conftest.$ac_objext], [ac_outfile=$4]) + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + lt_compiler_flag="$3" ## exclude from sc_useless_quotes_in_assignment + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + # The option is referenced via a variable to avoid confusing sed. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>conftest.err) + ac_status=$? + cat conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s "$ac_outfile"; then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings other than the usual output. + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' >conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if test ! -s conftest.er2 || diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + fi + $RM conftest* +]) + +if test yes = "[$]$2"; then + m4_if([$5], , :, [$5]) +else + m4_if([$6], , :, [$6]) +fi +])# _LT_COMPILER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_COMPILER_OPTION], [_LT_COMPILER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_COMPILER_OPTION], []) + + +# _LT_LINKER_OPTION(MESSAGE, VARIABLE-NAME, FLAGS, +# [ACTION-SUCCESS], [ACTION-FAILURE]) +# ---------------------------------------------------- +# Check whether the given linker option works +AC_DEFUN([_LT_LINKER_OPTION], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_SED])dnl +AC_CACHE_CHECK([$1], [$2], + [$2=no + save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS $3" + echo "$lt_simple_link_test_code" > conftest.$ac_ext + if (eval $ac_link 2>conftest.err) && test -s conftest$ac_exeext; then + # The linker can only warn and ignore the option if not recognized + # So say no if there are warnings + if test -s conftest.err; then + # Append any errors to the config.log. + cat conftest.err 1>&AS_MESSAGE_LOG_FD + $ECHO "$_lt_linker_boilerplate" | $SED '/^$/d' > conftest.exp + $SED '/^$/d; /^ *+/d' conftest.err >conftest.er2 + if diff conftest.exp conftest.er2 >/dev/null; then + $2=yes + fi + else + $2=yes + fi + fi + $RM -r conftest* + LDFLAGS=$save_LDFLAGS +]) + +if test yes = "[$]$2"; then + m4_if([$4], , :, [$4]) +else + m4_if([$5], , :, [$5]) +fi +])# _LT_LINKER_OPTION + +# Old name: +AU_ALIAS([AC_LIBTOOL_LINKER_OPTION], [_LT_LINKER_OPTION]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_LINKER_OPTION], []) + + +# LT_CMD_MAX_LEN +#--------------- +AC_DEFUN([LT_CMD_MAX_LEN], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +# find the maximum length of command line arguments +AC_MSG_CHECKING([the maximum length of command line arguments]) +AC_CACHE_VAL([lt_cv_sys_max_cmd_len], [dnl + i=0 + teststring=ABCD + + case $build_os in + msdosdjgpp*) + # On DJGPP, this test can blow up pretty badly due to problems in libc + # (any single argument exceeding 2000 bytes causes a buffer overrun + # during glob expansion). Even if it were fixed, the result of this + # check would be larger than it should be. + lt_cv_sys_max_cmd_len=12288; # 12K is about right + ;; + + gnu*) + # Under GNU Hurd, this test is not required because there is + # no limit to the length of command line arguments. + # Libtool will interpret -1 as no limit whatsoever + lt_cv_sys_max_cmd_len=-1; + ;; + + cygwin* | mingw* | cegcc*) + # On Win9x/ME, this test blows up -- it succeeds, but takes + # about 5 minutes as the teststring grows exponentially. + # Worse, since 9x/ME are not pre-emptively multitasking, + # you end up with a "frozen" computer, even though with patience + # the test eventually succeeds (with a max line length of 256k). + # Instead, let's just punt: use the minimum linelength reported by + # all of the supported platforms: 8192 (on NT/2K/XP). + lt_cv_sys_max_cmd_len=8192; + ;; + + mint*) + # On MiNT this can take a long time and run out of memory. + lt_cv_sys_max_cmd_len=8192; + ;; + + amigaos*) + # On AmigaOS with pdksh, this test takes hours, literally. + # So we just punt and use a minimum line length of 8192. + lt_cv_sys_max_cmd_len=8192; + ;; + + bitrig* | darwin* | dragonfly* | freebsd* | netbsd* | openbsd*) + # This has been around since 386BSD, at least. Likely further. + if test -x /sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/sbin/sysctl -n kern.argmax` + elif test -x /usr/sbin/sysctl; then + lt_cv_sys_max_cmd_len=`/usr/sbin/sysctl -n kern.argmax` + else + lt_cv_sys_max_cmd_len=65536 # usable default for all BSDs + fi + # And add a safety zone + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + ;; + + interix*) + # We know the value 262144 and hardcode it with a safety zone (like BSD) + lt_cv_sys_max_cmd_len=196608 + ;; + + os2*) + # The test takes a long time on OS/2. + lt_cv_sys_max_cmd_len=8192 + ;; + + osf*) + # Dr. Hans Ekkehard Plesser reports seeing a kernel panic running configure + # due to this test when exec_disable_arg_limit is 1 on Tru64. It is not + # nice to cause kernel panics so lets avoid the loop below. + # First set a reasonable default. + lt_cv_sys_max_cmd_len=16384 + # + if test -x /sbin/sysconfig; then + case `/sbin/sysconfig -q proc exec_disable_arg_limit` in + *1*) lt_cv_sys_max_cmd_len=-1 ;; + esac + fi + ;; + sco3.2v5*) + lt_cv_sys_max_cmd_len=102400 + ;; + sysv5* | sco5v6* | sysv4.2uw2*) + kargmax=`grep ARG_MAX /etc/conf/cf.d/stune 2>/dev/null` + if test -n "$kargmax"; then + lt_cv_sys_max_cmd_len=`echo $kargmax | sed 's/.*[[ ]]//'` + else + lt_cv_sys_max_cmd_len=32768 + fi + ;; + *) + lt_cv_sys_max_cmd_len=`(getconf ARG_MAX) 2> /dev/null` + if test -n "$lt_cv_sys_max_cmd_len" && \ + test undefined != "$lt_cv_sys_max_cmd_len"; then + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 4` + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \* 3` + else + # Make teststring a little bigger before we do anything with it. + # a 1K string should be a reasonable start. + for i in 1 2 3 4 5 6 7 8; do + teststring=$teststring$teststring + done + SHELL=${SHELL-${CONFIG_SHELL-/bin/sh}} + # If test is not a shell built-in, we'll probably end up computing a + # maximum length that is only half of the actual maximum length, but + # we can't tell. + while { test X`env echo "$teststring$teststring" 2>/dev/null` \ + = "X$teststring$teststring"; } >/dev/null 2>&1 && + test 17 != "$i" # 1/2 MB should be enough + do + i=`expr $i + 1` + teststring=$teststring$teststring + done + # Only check the string length outside the loop. + lt_cv_sys_max_cmd_len=`expr "X$teststring" : ".*" 2>&1` + teststring= + # Add a significant safety factor because C++ compilers can tack on + # massive amounts of additional arguments before passing them to the + # linker. It appears as though 1/2 is a usable value. + lt_cv_sys_max_cmd_len=`expr $lt_cv_sys_max_cmd_len \/ 2` + fi + ;; + esac +]) +if test -n "$lt_cv_sys_max_cmd_len"; then + AC_MSG_RESULT($lt_cv_sys_max_cmd_len) +else + AC_MSG_RESULT(none) +fi +max_cmd_len=$lt_cv_sys_max_cmd_len +_LT_DECL([], [max_cmd_len], [0], + [What is the maximum length of a command?]) +])# LT_CMD_MAX_LEN + +# Old name: +AU_ALIAS([AC_LIBTOOL_SYS_MAX_CMD_LEN], [LT_CMD_MAX_LEN]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_SYS_MAX_CMD_LEN], []) + + +# _LT_HEADER_DLFCN +# ---------------- +m4_defun([_LT_HEADER_DLFCN], +[AC_CHECK_HEADERS([dlfcn.h], [], [], [AC_INCLUDES_DEFAULT])dnl +])# _LT_HEADER_DLFCN + + +# _LT_TRY_DLOPEN_SELF (ACTION-IF-TRUE, ACTION-IF-TRUE-W-USCORE, +# ACTION-IF-FALSE, ACTION-IF-CROSS-COMPILING) +# ---------------------------------------------------------------- +m4_defun([_LT_TRY_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes = "$cross_compiling"; then : + [$4] +else + lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 + lt_status=$lt_dlunknown + cat > conftest.$ac_ext <<_LT_EOF +[#line $LINENO "configure" +#include "confdefs.h" + +#if HAVE_DLFCN_H +#include +#endif + +#include + +#ifdef RTLD_GLOBAL +# define LT_DLGLOBAL RTLD_GLOBAL +#else +# ifdef DL_GLOBAL +# define LT_DLGLOBAL DL_GLOBAL +# else +# define LT_DLGLOBAL 0 +# endif +#endif + +/* We may have to define LT_DLLAZY_OR_NOW in the command line if we + find out it does not work in some platform. */ +#ifndef LT_DLLAZY_OR_NOW +# ifdef RTLD_LAZY +# define LT_DLLAZY_OR_NOW RTLD_LAZY +# else +# ifdef DL_LAZY +# define LT_DLLAZY_OR_NOW DL_LAZY +# else +# ifdef RTLD_NOW +# define LT_DLLAZY_OR_NOW RTLD_NOW +# else +# ifdef DL_NOW +# define LT_DLLAZY_OR_NOW DL_NOW +# else +# define LT_DLLAZY_OR_NOW 0 +# endif +# endif +# endif +# endif +#endif + +/* When -fvisibility=hidden is used, assume the code has been annotated + correspondingly for the symbols needed. */ +#if defined __GNUC__ && (((__GNUC__ == 3) && (__GNUC_MINOR__ >= 3)) || (__GNUC__ > 3)) +int fnord () __attribute__((visibility("default"))); +#endif + +int fnord () { return 42; } +int main () +{ + void *self = dlopen (0, LT_DLGLOBAL|LT_DLLAZY_OR_NOW); + int status = $lt_dlunknown; + + if (self) + { + if (dlsym (self,"fnord")) status = $lt_dlno_uscore; + else + { + if (dlsym( self,"_fnord")) status = $lt_dlneed_uscore; + else puts (dlerror ()); + } + /* dlclose (self); */ + } + else + puts (dlerror ()); + + return status; +}] +_LT_EOF + if AC_TRY_EVAL(ac_link) && test -s "conftest$ac_exeext" 2>/dev/null; then + (./conftest; exit; ) >&AS_MESSAGE_LOG_FD 2>/dev/null + lt_status=$? + case x$lt_status in + x$lt_dlno_uscore) $1 ;; + x$lt_dlneed_uscore) $2 ;; + x$lt_dlunknown|x*) $3 ;; + esac + else : + # compilation failed + $3 + fi +fi +rm -fr conftest* +])# _LT_TRY_DLOPEN_SELF + + +# LT_SYS_DLOPEN_SELF +# ------------------ +AC_DEFUN([LT_SYS_DLOPEN_SELF], +[m4_require([_LT_HEADER_DLFCN])dnl +if test yes != "$enable_dlopen"; then + enable_dlopen=unknown + enable_dlopen_self=unknown + enable_dlopen_self_static=unknown +else + lt_cv_dlopen=no + lt_cv_dlopen_libs= + + case $host_os in + beos*) + lt_cv_dlopen=load_add_on + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ;; + + mingw* | pw32* | cegcc*) + lt_cv_dlopen=LoadLibrary + lt_cv_dlopen_libs= + ;; + + cygwin*) + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + ;; + + darwin*) + # if libdl is installed we need to link against it + AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl],[ + lt_cv_dlopen=dyld + lt_cv_dlopen_libs= + lt_cv_dlopen_self=yes + ]) + ;; + + tpf*) + # Don't try to run any link tests for TPF. We know it's impossible + # because TPF is a cross-compiler, and we know how we open DSOs. + lt_cv_dlopen=dlopen + lt_cv_dlopen_libs= + lt_cv_dlopen_self=no + ;; + + *) + AC_CHECK_FUNC([shl_load], + [lt_cv_dlopen=shl_load], + [AC_CHECK_LIB([dld], [shl_load], + [lt_cv_dlopen=shl_load lt_cv_dlopen_libs=-ldld], + [AC_CHECK_FUNC([dlopen], + [lt_cv_dlopen=dlopen], + [AC_CHECK_LIB([dl], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-ldl], + [AC_CHECK_LIB([svld], [dlopen], + [lt_cv_dlopen=dlopen lt_cv_dlopen_libs=-lsvld], + [AC_CHECK_LIB([dld], [dld_link], + [lt_cv_dlopen=dld_link lt_cv_dlopen_libs=-ldld]) + ]) + ]) + ]) + ]) + ]) + ;; + esac + + if test no = "$lt_cv_dlopen"; then + enable_dlopen=no + else + enable_dlopen=yes + fi + + case $lt_cv_dlopen in + dlopen) + save_CPPFLAGS=$CPPFLAGS + test yes = "$ac_cv_header_dlfcn_h" && CPPFLAGS="$CPPFLAGS -DHAVE_DLFCN_H" + + save_LDFLAGS=$LDFLAGS + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $export_dynamic_flag_spec\" + + save_LIBS=$LIBS + LIBS="$lt_cv_dlopen_libs $LIBS" + + AC_CACHE_CHECK([whether a program can dlopen itself], + lt_cv_dlopen_self, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self=yes, lt_cv_dlopen_self=yes, + lt_cv_dlopen_self=no, lt_cv_dlopen_self=cross) + ]) + + if test yes = "$lt_cv_dlopen_self"; then + wl=$lt_prog_compiler_wl eval LDFLAGS=\"\$LDFLAGS $lt_prog_compiler_static\" + AC_CACHE_CHECK([whether a statically linked program can dlopen itself], + lt_cv_dlopen_self_static, [dnl + _LT_TRY_DLOPEN_SELF( + lt_cv_dlopen_self_static=yes, lt_cv_dlopen_self_static=yes, + lt_cv_dlopen_self_static=no, lt_cv_dlopen_self_static=cross) + ]) + fi + + CPPFLAGS=$save_CPPFLAGS + LDFLAGS=$save_LDFLAGS + LIBS=$save_LIBS + ;; + esac + + case $lt_cv_dlopen_self in + yes|no) enable_dlopen_self=$lt_cv_dlopen_self ;; + *) enable_dlopen_self=unknown ;; + esac + + case $lt_cv_dlopen_self_static in + yes|no) enable_dlopen_self_static=$lt_cv_dlopen_self_static ;; + *) enable_dlopen_self_static=unknown ;; + esac +fi +_LT_DECL([dlopen_support], [enable_dlopen], [0], + [Whether dlopen is supported]) +_LT_DECL([dlopen_self], [enable_dlopen_self], [0], + [Whether dlopen of programs is supported]) +_LT_DECL([dlopen_self_static], [enable_dlopen_self_static], [0], + [Whether dlopen of statically linked programs is supported]) +])# LT_SYS_DLOPEN_SELF + +# Old name: +AU_ALIAS([AC_LIBTOOL_DLOPEN_SELF], [LT_SYS_DLOPEN_SELF]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN_SELF], []) + + +# _LT_COMPILER_C_O([TAGNAME]) +# --------------------------- +# Check to see if options -c and -o are simultaneously supported by compiler. +# This macro does not hard code the compiler like AC_PROG_CC_C_O. +m4_defun([_LT_COMPILER_C_O], +[m4_require([_LT_DECL_SED])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_CACHE_CHECK([if $compiler supports -c -o file.$ac_objext], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=no + $RM -r conftest 2>/dev/null + mkdir conftest + cd conftest + mkdir out + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + lt_compiler_flag="-o out/conftest2.$ac_objext" + # Insert the option either (1) after the last *FLAGS variable, or + # (2) before a word containing "conftest.", or (3) at the end. + # Note that $ac_compile itself does not contain backslashes and begins + # with a dollar sign (not a hyphen), so the echo should work correctly. + lt_compile=`echo "$ac_compile" | $SED \ + -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ + -e 's: [[^ ]]*conftest\.: $lt_compiler_flag&:; t' \ + -e 's:$: $lt_compiler_flag:'` + (eval echo "\"\$as_me:$LINENO: $lt_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$lt_compile" 2>out/conftest.err) + ac_status=$? + cat out/conftest.err >&AS_MESSAGE_LOG_FD + echo "$as_me:$LINENO: \$? = $ac_status" >&AS_MESSAGE_LOG_FD + if (exit $ac_status) && test -s out/conftest2.$ac_objext + then + # The compiler can only warn and ignore the option if not recognized + # So say no if there are warnings + $ECHO "$_lt_compiler_boilerplate" | $SED '/^$/d' > out/conftest.exp + $SED '/^$/d; /^ *+/d' out/conftest.err >out/conftest.er2 + if test ! -s out/conftest.er2 || diff out/conftest.exp out/conftest.er2 >/dev/null; then + _LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + fi + fi + chmod u+w . 2>&AS_MESSAGE_LOG_FD + $RM conftest* + # SGI C++ compiler will create directory out/ii_files/ for + # template instantiation + test -d out/ii_files && $RM out/ii_files/* && rmdir out/ii_files + $RM out/* && rmdir out + cd .. + $RM -r conftest + $RM conftest* +]) +_LT_TAGDECL([compiler_c_o], [lt_cv_prog_compiler_c_o], [1], + [Does compiler simultaneously support -c and -o options?]) +])# _LT_COMPILER_C_O + + +# _LT_COMPILER_FILE_LOCKS([TAGNAME]) +# ---------------------------------- +# Check to see if we can do hard links to lock some files if needed +m4_defun([_LT_COMPILER_FILE_LOCKS], +[m4_require([_LT_ENABLE_LOCK])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +_LT_COMPILER_C_O([$1]) + +hard_links=nottested +if test no = "$_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)" && test no != "$need_locks"; then + # do not overwrite the value of need_locks provided by the user + AC_MSG_CHECKING([if we can lock with hard links]) + hard_links=yes + $RM conftest* + ln conftest.a conftest.b 2>/dev/null && hard_links=no + touch conftest.a + ln conftest.a conftest.b 2>&5 || hard_links=no + ln conftest.a conftest.b 2>/dev/null && hard_links=no + AC_MSG_RESULT([$hard_links]) + if test no = "$hard_links"; then + AC_MSG_WARN(['$CC' does not support '-c -o', so 'make -j' may be unsafe]) + need_locks=warn + fi +else + need_locks=no +fi +_LT_DECL([], [need_locks], [1], [Must we lock files when doing compilation?]) +])# _LT_COMPILER_FILE_LOCKS + + +# _LT_CHECK_OBJDIR +# ---------------- +m4_defun([_LT_CHECK_OBJDIR], +[AC_CACHE_CHECK([for objdir], [lt_cv_objdir], +[rm -f .libs 2>/dev/null +mkdir .libs 2>/dev/null +if test -d .libs; then + lt_cv_objdir=.libs +else + # MS-DOS does not allow filenames that begin with a dot. + lt_cv_objdir=_libs +fi +rmdir .libs 2>/dev/null]) +objdir=$lt_cv_objdir +_LT_DECL([], [objdir], [0], + [The name of the directory that contains temporary libtool files])dnl +m4_pattern_allow([LT_OBJDIR])dnl +AC_DEFINE_UNQUOTED([LT_OBJDIR], "$lt_cv_objdir/", + [Define to the sub-directory where libtool stores uninstalled libraries.]) +])# _LT_CHECK_OBJDIR + + +# _LT_LINKER_HARDCODE_LIBPATH([TAGNAME]) +# -------------------------------------- +# Check hardcoding attributes. +m4_defun([_LT_LINKER_HARDCODE_LIBPATH], +[AC_MSG_CHECKING([how to hardcode library paths into programs]) +_LT_TAGVAR(hardcode_action, $1)= +if test -n "$_LT_TAGVAR(hardcode_libdir_flag_spec, $1)" || + test -n "$_LT_TAGVAR(runpath_var, $1)" || + test yes = "$_LT_TAGVAR(hardcode_automatic, $1)"; then + + # We can hardcode non-existent directories. + if test no != "$_LT_TAGVAR(hardcode_direct, $1)" && + # If the only mechanism to avoid hardcoding is shlibpath_var, we + # have to relink, otherwise we might link with an installed library + # when we should be linking with a yet-to-be-installed one + ## test no != "$_LT_TAGVAR(hardcode_shlibpath_var, $1)" && + test no != "$_LT_TAGVAR(hardcode_minus_L, $1)"; then + # Linking always hardcodes the temporary library directory. + _LT_TAGVAR(hardcode_action, $1)=relink + else + # We can link without hardcoding, and we can hardcode nonexisting dirs. + _LT_TAGVAR(hardcode_action, $1)=immediate + fi +else + # We cannot hardcode anything, or else we can only hardcode existing + # directories. + _LT_TAGVAR(hardcode_action, $1)=unsupported +fi +AC_MSG_RESULT([$_LT_TAGVAR(hardcode_action, $1)]) + +if test relink = "$_LT_TAGVAR(hardcode_action, $1)" || + test yes = "$_LT_TAGVAR(inherit_rpath, $1)"; then + # Fast installation is not supported + enable_fast_install=no +elif test yes = "$shlibpath_overrides_runpath" || + test no = "$enable_shared"; then + # Fast installation is not necessary + enable_fast_install=needless +fi +_LT_TAGDECL([], [hardcode_action], [0], + [How to hardcode a shared library path into an executable]) +])# _LT_LINKER_HARDCODE_LIBPATH + + +# _LT_CMD_STRIPLIB +# ---------------- +m4_defun([_LT_CMD_STRIPLIB], +[m4_require([_LT_DECL_EGREP]) +striplib= +old_striplib= +AC_MSG_CHECKING([whether stripping libraries is possible]) +if test -n "$STRIP" && $STRIP -V 2>&1 | $GREP "GNU strip" >/dev/null; then + test -z "$old_striplib" && old_striplib="$STRIP --strip-debug" + test -z "$striplib" && striplib="$STRIP --strip-unneeded" + AC_MSG_RESULT([yes]) +else +# FIXME - insert some real tests, host_os isn't really good enough + case $host_os in + darwin*) + if test -n "$STRIP"; then + striplib="$STRIP -x" + old_striplib="$STRIP -S" + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ;; + *) + AC_MSG_RESULT([no]) + ;; + esac +fi +_LT_DECL([], [old_striplib], [1], [Commands to strip libraries]) +_LT_DECL([], [striplib], [1]) +])# _LT_CMD_STRIPLIB + + +# _LT_PREPARE_MUNGE_PATH_LIST +# --------------------------- +# Make sure func_munge_path_list() is defined correctly. +m4_defun([_LT_PREPARE_MUNGE_PATH_LIST], +[[# func_munge_path_list VARIABLE PATH +# ----------------------------------- +# VARIABLE is name of variable containing _space_ separated list of +# directories to be munged by the contents of PATH, which is string +# having a format: +# "DIR[:DIR]:" +# string "DIR[ DIR]" will be prepended to VARIABLE +# ":DIR[:DIR]" +# string "DIR[ DIR]" will be appended to VARIABLE +# "DIRP[:DIRP]::[DIRA:]DIRA" +# string "DIRP[ DIRP]" will be prepended to VARIABLE and string +# "DIRA[ DIRA]" will be appended to VARIABLE +# "DIR[:DIR]" +# VARIABLE will be replaced by "DIR[ DIR]" +func_munge_path_list () +{ + case x@S|@2 in + x) + ;; + *:) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'` \@S|@@S|@1\" + ;; + x:*) + eval @S|@1=\"\@S|@@S|@1 `$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + *::*) + eval @S|@1=\"\@S|@@S|@1\ `$ECHO @S|@2 | $SED -e 's/.*:://' -e 's/:/ /g'`\" + eval @S|@1=\"`$ECHO @S|@2 | $SED -e 's/::.*//' -e 's/:/ /g'`\ \@S|@@S|@1\" + ;; + *) + eval @S|@1=\"`$ECHO @S|@2 | $SED 's/:/ /g'`\" + ;; + esac +} +]])# _LT_PREPARE_PATH_LIST + + +# _LT_SYS_DYNAMIC_LINKER([TAG]) +# ----------------------------- +# PORTME Fill in your ld.so characteristics +m4_defun([_LT_SYS_DYNAMIC_LINKER], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_OBJDUMP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CHECK_SHELL_FEATURES])dnl +m4_require([_LT_PREPARE_MUNGE_PATH_LIST])dnl +AC_MSG_CHECKING([dynamic linker characteristics]) +m4_if([$1], + [], [ +if test yes = "$GCC"; then + case $host_os in + darwin*) lt_awk_arg='/^libraries:/,/LR/' ;; + *) lt_awk_arg='/^libraries:/' ;; + esac + case $host_os in + mingw* | cegcc*) lt_sed_strip_eq='s|=\([[A-Za-z]]:\)|\1|g' ;; + *) lt_sed_strip_eq='s|=/|/|g' ;; + esac + lt_search_path_spec=`$CC -print-search-dirs | awk $lt_awk_arg | $SED -e "s/^libraries://" -e $lt_sed_strip_eq` + case $lt_search_path_spec in + *\;*) + # if the path contains ";" then we assume it to be the separator + # otherwise default to the standard path separator (i.e. ":") - it is + # assumed that no part of a normal pathname contains ";" but that should + # okay in the real world where ";" in dirpaths is itself problematic. + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED 's/;/ /g'` + ;; + *) + lt_search_path_spec=`$ECHO "$lt_search_path_spec" | $SED "s/$PATH_SEPARATOR/ /g"` + ;; + esac + # Ok, now we have the path, separated by spaces, we can step through it + # and add multilib dir if necessary... + lt_tmp_lt_search_path_spec= + lt_multi_os_dir=/`$CC $CPPFLAGS $CFLAGS $LDFLAGS -print-multi-os-directory 2>/dev/null` + # ...but if some path component already ends with the multilib dir we assume + # that all is fine and trust -print-search-dirs as is (GCC 4.2? or newer). + case "$lt_multi_os_dir; $lt_search_path_spec " in + "/; "* | "/.; "* | "/./; "* | *"$lt_multi_os_dir "* | *"$lt_multi_os_dir/ "*) + lt_multi_os_dir= + ;; + esac + for lt_sys_path in $lt_search_path_spec; do + if test -d "$lt_sys_path$lt_multi_os_dir"; then + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path$lt_multi_os_dir" + elif test -n "$lt_multi_os_dir"; then + test -d "$lt_sys_path" && \ + lt_tmp_lt_search_path_spec="$lt_tmp_lt_search_path_spec $lt_sys_path" + fi + done + lt_search_path_spec=`$ECHO "$lt_tmp_lt_search_path_spec" | awk ' +BEGIN {RS = " "; FS = "/|\n";} { + lt_foo = ""; + lt_count = 0; + for (lt_i = NF; lt_i > 0; lt_i--) { + if ($lt_i != "" && $lt_i != ".") { + if ($lt_i == "..") { + lt_count++; + } else { + if (lt_count == 0) { + lt_foo = "/" $lt_i lt_foo; + } else { + lt_count--; + } + } + } + } + if (lt_foo != "") { lt_freq[[lt_foo]]++; } + if (lt_freq[[lt_foo]] == 1) { print lt_foo; } +}'` + # AWK program above erroneously prepends '/' to C:/dos/paths + # for these hosts. + case $host_os in + mingw* | cegcc*) lt_search_path_spec=`$ECHO "$lt_search_path_spec" |\ + $SED 's|/\([[A-Za-z]]:\)|\1|g'` ;; + esac + sys_lib_search_path_spec=`$ECHO "$lt_search_path_spec" | $lt_NL2SP` +else + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" +fi]) +library_names_spec= +libname_spec='lib$name' +soname_spec= +shrext_cmds=.so +postinstall_cmds= +postuninstall_cmds= +finish_cmds= +finish_eval= +shlibpath_var= +shlibpath_overrides_runpath=unknown +version_type=none +dynamic_linker="$host_os ld.so" +sys_lib_dlsearch_path_spec="/lib /usr/lib" +need_lib_prefix=unknown +hardcode_into_libs=no + +# when you set need_version to no, make sure it does not cause -set_version +# flags to be left without arguments +need_version=unknown + +AC_ARG_VAR([LT_SYS_LIBRARY_PATH], +[User-defined run-time library search path.]) + +case $host_os in +aix3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname.a' + shlibpath_var=LIBPATH + + # AIX 3 has no versioning support, so we append a major version to the name. + soname_spec='$libname$release$shared_ext$major' + ;; + +aix[[4-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + hardcode_into_libs=yes + if test ia64 = "$host_cpu"; then + # AIX 5 supports IA64 + library_names_spec='$libname$release$shared_ext$major $libname$release$shared_ext$versuffix $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + else + # With GCC up to 2.95.x, collect2 would create an import file + # for dependence libraries. The import file would start with + # the line '#! .'. This would cause the generated library to + # depend on '.', always an invalid library. This was fixed in + # development snapshots of GCC prior to 3.0. + case $host_os in + aix4 | aix4.[[01]] | aix4.[[01]].*) + if { echo '#if __GNUC__ > 2 || (__GNUC__ == 2 && __GNUC_MINOR__ >= 97)' + echo ' yes ' + echo '#endif'; } | $CC -E - | $GREP yes > /dev/null; then + : + else + can_build_shared=no + fi + ;; + esac + # Using Import Files as archive members, it is possible to support + # filename-based versioning of shared library archives on AIX. While + # this would work for both with and without runtime linking, it will + # prevent static linking of such archives. So we do filename-based + # shared library versioning with .so extension only, which is used + # when both runtime linking and shared linking is enabled. + # Unfortunately, runtime linking may impact performance, so we do + # not want this to be the default eventually. Also, we use the + # versioned .so libs for executables only if there is the -brtl + # linker flag in LDFLAGS as well, or --with-aix-soname=svr4 only. + # To allow for filename-based versioning support, we need to create + # libNAME.so.V as an archive file, containing: + # *) an Import File, referring to the versioned filename of the + # archive as well as the shared archive member, telling the + # bitwidth (32 or 64) of that shared object, and providing the + # list of exported symbols of that shared object, eventually + # decorated with the 'weak' keyword + # *) the shared object with the F_LOADONLY flag set, to really avoid + # it being seen by the linker. + # At run time we better use the real file rather than another symlink, + # but for link time we create the symlink libNAME.so -> libNAME.so.V + + case $with_aix_soname,$aix_use_runtimelinking in + # AIX (on Power*) has no versioning support, so currently we cannot hardcode correct + # soname into executable. Probably we can add versioning support to + # collect2, so additional links can be useful in future. + aix,yes) # traditional libtool + dynamic_linker='AIX unversionable lib.so' + # If using run time linking (on AIX 4.2 or later) use lib.so + # instead of lib.a to let people know that these are not + # typical AIX shared libraries. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + aix,no) # traditional AIX only + dynamic_linker='AIX lib.a[(]lib.so.V[)]' + # We preserve .a as extension for shared libraries through AIX4.2 + # and later when we are not doing run time linking. + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + ;; + svr4,*) # full svr4 only + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,yes) # both, prefer svr4 + dynamic_linker="AIX lib.so.V[(]$shared_archive_member_spec.o[)], lib.a[(]lib.so.V[)]" + library_names_spec='$libname$release$shared_ext$major $libname$shared_ext' + # unpreferred sharedlib libNAME.a needs extra handling + postinstall_cmds='test -n "$linkname" || linkname="$realname"~func_stripname "" ".so" "$linkname"~$install_shared_prog "$dir/$func_stripname_result.$libext" "$destdir/$func_stripname_result.$libext"~test -z "$tstripme" || test -z "$striplib" || $striplib "$destdir/$func_stripname_result.$libext"' + postuninstall_cmds='for n in $library_names $old_library; do :; done~func_stripname "" ".so" "$n"~test "$func_stripname_result" = "$n" || func_append rmfiles " $odir/$func_stripname_result.$libext"' + # We do not specify a path in Import Files, so LIBPATH fires. + shlibpath_overrides_runpath=yes + ;; + *,no) # both, prefer aix + dynamic_linker="AIX lib.a[(]lib.so.V[)], lib.so.V[(]$shared_archive_member_spec.o[)]" + library_names_spec='$libname$release.a $libname.a' + soname_spec='$libname$release$shared_ext$major' + # unpreferred sharedlib libNAME.so.V and symlink libNAME.so need extra handling + postinstall_cmds='test -z "$dlname" || $install_shared_prog $dir/$dlname $destdir/$dlname~test -z "$tstripme" || test -z "$striplib" || $striplib $destdir/$dlname~test -n "$linkname" || linkname=$realname~func_stripname "" ".a" "$linkname"~(cd "$destdir" && $LN_S -f $dlname $func_stripname_result.so)' + postuninstall_cmds='test -z "$dlname" || func_append rmfiles " $odir/$dlname"~for n in $old_library $library_names; do :; done~func_stripname "" ".a" "$n"~func_append rmfiles " $odir/$func_stripname_result.so"' + ;; + esac + shlibpath_var=LIBPATH + fi + ;; + +amigaos*) + case $host_cpu in + powerpc) + # Since July 2007 AmigaOS4 officially supports .so libraries. + # When compiling the executable, add -use-dynld -Lsobjs: to the compileline. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + ;; + m68k) + library_names_spec='$libname.ixlibrary $libname.a' + # Create ${libname}_ixlibrary.a entries in /sys/libs. + finish_eval='for lib in `ls $libdir/*.ixlibrary 2>/dev/null`; do libname=`func_echo_all "$lib" | $SED '\''s%^.*/\([[^/]]*\)\.ixlibrary$%\1%'\''`; $RM /sys/libs/${libname}_ixlibrary.a; $show "cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a"; cd /sys/libs && $LN_S $lib ${libname}_ixlibrary.a || exit 1; done' + ;; + esac + ;; + +beos*) + library_names_spec='$libname$shared_ext' + dynamic_linker="$host_os ld.so" + shlibpath_var=LIBRARY_PATH + ;; + +bsdi[[45]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/shlib /usr/lib /usr/X11/lib /usr/contrib/lib /lib /usr/local/lib" + sys_lib_dlsearch_path_spec="/shlib /usr/lib /usr/local/lib" + # the default ld.so.conf also contains /usr/contrib/lib and + # /usr/X11R6/lib (/usr/X11 is a link to /usr/X11R6), but let us allow + # libtool to hard-code these into programs + ;; + +cygwin* | mingw* | pw32* | cegcc*) + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + + case $GCC,$cc_basename in + yes,*) + # gcc + library_names_spec='$libname.dll.a' + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + + case $host_os in + cygwin*) + # Cygwin DLLs use 'cyg' prefix rather than 'lib' + soname_spec='`echo $libname | sed -e 's/^lib/cyg/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/lib/w32api"]) + ;; + mingw* | cegcc*) + # MinGW DLLs use traditional 'lib' prefix + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + pw32*) + # pw32 DLLs use 'pw' prefix rather than 'lib' + library_names_spec='`echo $libname | sed -e 's/^lib/pw/'``echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + ;; + esac + dynamic_linker='Win32 ld.exe' + ;; + + *,cl*) + # Native MSVC + libname_spec='$name' + soname_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext' + library_names_spec='$libname.dll.lib' + + case $build_os in + mingw*) + sys_lib_search_path_spec= + lt_save_ifs=$IFS + IFS=';' + for lt_path in $LIB + do + IFS=$lt_save_ifs + # Let DOS variable expansion print the short 8.3 style file name. + lt_path=`cd "$lt_path" 2>/dev/null && cmd //C "for %i in (".") do @echo %~si"` + sys_lib_search_path_spec="$sys_lib_search_path_spec $lt_path" + done + IFS=$lt_save_ifs + # Convert to MSYS style. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | sed -e 's|\\\\|/|g' -e 's| \\([[a-zA-Z]]\\):| /\\1|g' -e 's|^ ||'` + ;; + cygwin*) + # Convert to unix form, then to dos form, then back to unix form + # but this time dos style (no spaces!) so that the unix form looks + # like /cygdrive/c/PROGRA~1:/cygdr... + sys_lib_search_path_spec=`cygpath --path --unix "$LIB"` + sys_lib_search_path_spec=`cygpath --path --dos "$sys_lib_search_path_spec" 2>/dev/null` + sys_lib_search_path_spec=`cygpath --path --unix "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + ;; + *) + sys_lib_search_path_spec=$LIB + if $ECHO "$sys_lib_search_path_spec" | [$GREP ';[c-zC-Z]:/' >/dev/null]; then + # It is most probably a Windows format PATH. + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e 's/;/ /g'` + else + sys_lib_search_path_spec=`$ECHO "$sys_lib_search_path_spec" | $SED -e "s/$PATH_SEPARATOR/ /g"` + fi + # FIXME: find the short name or the path components, as spaces are + # common. (e.g. "Program Files" -> "PROGRA~1") + ;; + esac + + # DLL is installed to $(libdir)/../bin by postinstall_cmds + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; echo \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; echo \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + shlibpath_overrides_runpath=yes + dynamic_linker='Win32 link.exe' + ;; + + *) + # Assume MSVC wrapper + library_names_spec='$libname`echo $release | $SED -e 's/[[.]]/-/g'`$versuffix$shared_ext $libname.lib' + dynamic_linker='Win32 ld.exe' + ;; + esac + # FIXME: first we should search . and the directory the executable is in + shlibpath_var=PATH + ;; + +darwin* | rhapsody*) + dynamic_linker="$host_os dyld" + version_type=darwin + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$major$shared_ext $libname$shared_ext' + soname_spec='$libname$release$major$shared_ext' + shlibpath_overrides_runpath=yes + shlibpath_var=DYLD_LIBRARY_PATH + shrext_cmds='`test .$module = .yes && echo .so || echo .dylib`' +m4_if([$1], [],[ + sys_lib_search_path_spec="$sys_lib_search_path_spec /usr/local/lib"]) + sys_lib_dlsearch_path_spec='/usr/local/lib /lib /usr/lib' + ;; + +dgux*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +freebsd* | dragonfly*) + # DragonFly does not have aout. When/if they implement a new + # versioning mechanism, adjust this. + if test -x /usr/bin/objformat; then + objformat=`/usr/bin/objformat` + else + case $host_os in + freebsd[[23]].*) objformat=aout ;; + *) objformat=elf ;; + esac + fi + version_type=freebsd-$objformat + case $version_type in + freebsd-elf*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + need_version=no + need_lib_prefix=no + ;; + freebsd-*) + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + need_version=yes + ;; + esac + shlibpath_var=LD_LIBRARY_PATH + case $host_os in + freebsd2.*) + shlibpath_overrides_runpath=yes + ;; + freebsd3.[[01]]* | freebsdelf3.[[01]]*) + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + freebsd3.[[2-9]]* | freebsdelf3.[[2-9]]* | \ + freebsd4.[[0-5]] | freebsdelf4.[[0-5]] | freebsd4.1.1 | freebsdelf4.1.1) + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + *) # from 4.6 on, and DragonFly + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + esac + ;; + +haiku*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + dynamic_linker="$host_os runtime_loader" + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LIBRARY_PATH + shlibpath_overrides_runpath=no + sys_lib_dlsearch_path_spec='/boot/home/config/lib /boot/common/lib /boot/system/lib' + hardcode_into_libs=yes + ;; + +hpux9* | hpux10* | hpux11*) + # Give a soname corresponding to the major version so that dld.sl refuses to + # link against other versions. + version_type=sunos + need_lib_prefix=no + need_version=no + case $host_cpu in + ia64*) + shrext_cmds='.so' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.so" + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + if test 32 = "$HPUX_IA64_MODE"; then + sys_lib_search_path_spec="/usr/lib/hpux32 /usr/local/lib/hpux32 /usr/local/lib" + sys_lib_dlsearch_path_spec=/usr/lib/hpux32 + else + sys_lib_search_path_spec="/usr/lib/hpux64 /usr/local/lib/hpux64" + sys_lib_dlsearch_path_spec=/usr/lib/hpux64 + fi + ;; + hppa*64*) + shrext_cmds='.sl' + hardcode_into_libs=yes + dynamic_linker="$host_os dld.sl" + shlibpath_var=LD_LIBRARY_PATH # How should we handle SHLIB_PATH + shlibpath_overrides_runpath=yes # Unless +noenvvar is specified. + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + sys_lib_search_path_spec="/usr/lib/pa20_64 /usr/ccs/lib/pa20_64" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + *) + shrext_cmds='.sl' + dynamic_linker="$host_os dld.sl" + shlibpath_var=SHLIB_PATH + shlibpath_overrides_runpath=no # +s is required to enable SHLIB_PATH + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + ;; + esac + # HP-UX runs *really* slowly unless shared libraries are mode 555, ... + postinstall_cmds='chmod 555 $lib' + # or fails outright, so override atomically: + install_override_mode=555 + ;; + +interix[[3-9]]*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='Interix 3.x ld.so.1 (PE, like ELF)' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +irix5* | irix6* | nonstopux*) + case $host_os in + nonstopux*) version_type=nonstopux ;; + *) + if test yes = "$lt_cv_prog_gnu_ld"; then + version_type=linux # correct to gnu/linux during the next big refactor + else + version_type=irix + fi ;; + esac + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$release$shared_ext $libname$shared_ext' + case $host_os in + irix5* | nonstopux*) + libsuff= shlibsuff= + ;; + *) + case $LD in # libtool.m4 will add one of these switches to LD + *-32|*"-32 "|*-melf32bsmip|*"-melf32bsmip ") + libsuff= shlibsuff= libmagic=32-bit;; + *-n32|*"-n32 "|*-melf32bmipn32|*"-melf32bmipn32 ") + libsuff=32 shlibsuff=N32 libmagic=N32;; + *-64|*"-64 "|*-melf64bmip|*"-melf64bmip ") + libsuff=64 shlibsuff=64 libmagic=64-bit;; + *) libsuff= shlibsuff= libmagic=never-match;; + esac + ;; + esac + shlibpath_var=LD_LIBRARY${shlibsuff}_PATH + shlibpath_overrides_runpath=no + sys_lib_search_path_spec="/usr/lib$libsuff /lib$libsuff /usr/local/lib$libsuff" + sys_lib_dlsearch_path_spec="/usr/lib$libsuff /lib$libsuff" + hardcode_into_libs=yes + ;; + +# No shared lib support for Linux oldld, aout, or coff. +linux*oldld* | linux*aout* | linux*coff*) + dynamic_linker=no + ;; + +linux*android*) + version_type=none # Android doesn't support versioned libraries. + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext' + soname_spec='$libname$release$shared_ext' + finish_cmds= + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + dynamic_linker='Android linker' + # Don't embed -rpath directories since the linker doesn't support them. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -n $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + + # Some binutils ld are patched to set DT_RUNPATH + AC_CACHE_VAL([lt_cv_shlibpath_overrides_runpath], + [lt_cv_shlibpath_overrides_runpath=no + save_LDFLAGS=$LDFLAGS + save_libdir=$libdir + eval "libdir=/foo; wl=\"$_LT_TAGVAR(lt_prog_compiler_wl, $1)\"; \ + LDFLAGS=\"\$LDFLAGS $_LT_TAGVAR(hardcode_libdir_flag_spec, $1)\"" + AC_LINK_IFELSE([AC_LANG_PROGRAM([],[])], + [AS_IF([ ($OBJDUMP -p conftest$ac_exeext) 2>/dev/null | grep "RUNPATH.*$libdir" >/dev/null], + [lt_cv_shlibpath_overrides_runpath=yes])]) + LDFLAGS=$save_LDFLAGS + libdir=$save_libdir + ]) + shlibpath_overrides_runpath=$lt_cv_shlibpath_overrides_runpath + + # This implies no fast_install, which is unacceptable. + # Some rework will be needed to allow for fast_install + # before this can be enabled. + hardcode_into_libs=yes + + # Ideally, we could use ldconfig to report *all* directores which are + # searched for libraries, however this is still not possible. Aside from not + # being certain /sbin/ldconfig is available, command + # 'ldconfig -N -X -v | grep ^/' on 64bit Fedora does not report /usr/lib64, + # even though it is searched at run-time. Try to do the best guess by + # appending ld.so.conf contents (and includes) to the search path. + if test -f /etc/ld.so.conf; then + lt_ld_extra=`awk '/^include / { system(sprintf("cd /etc; cat %s 2>/dev/null", \[$]2)); skip = 1; } { if (!skip) print \[$]0; skip = 0; }' < /etc/ld.so.conf | $SED -e 's/#.*//;/^[ ]*hwcap[ ]/d;s/[:, ]/ /g;s/=[^=]*$//;s/=[^= ]* / /g;s/"//g;/^$/d' | tr '\n' ' '` + sys_lib_dlsearch_path_spec="/lib /usr/lib $lt_ld_extra" + fi + + # We used to test for /lib/ld.so.1 and disable shared libraries on + # powerpc, because MkLinux only supported shared libraries with the + # GNU dynamic linker. Since this was broken with cross compilers, + # most powerpc-linux boxes support dynamic linking these days and + # people can always --disable-shared, the test was removed, and we + # assume the GNU/Linux dynamic linker is in use. + dynamic_linker='GNU/Linux ld.so' + ;; + +netbsdelf*-gnu) + version_type=linux + need_lib_prefix=no + need_version=no + library_names_spec='${libname}${release}${shared_ext}$versuffix ${libname}${release}${shared_ext}$major ${libname}${shared_ext}' + soname_spec='${libname}${release}${shared_ext}$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='NetBSD ld.elf_so' + ;; + +netbsd*) + version_type=sunos + need_lib_prefix=no + need_version=no + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + dynamic_linker='NetBSD (a.out) ld.so' + else + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + dynamic_linker='NetBSD ld.elf_so' + fi + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + ;; + +newsos6) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +*nto* | *qnx*) + version_type=qnx + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + dynamic_linker='ldqnx.so' + ;; + +openbsd* | bitrig*) + version_type=sunos + sys_lib_dlsearch_path_spec=/usr/lib + need_lib_prefix=no + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + need_version=no + else + need_version=yes + fi + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/sbin" ldconfig -m $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + ;; + +os2*) + libname_spec='$name' + version_type=windows + shrext_cmds=.dll + need_version=no + need_lib_prefix=no + # OS/2 can only load a DLL with a base name of 8 characters or less. + soname_spec='`test -n "$os2dllname" && libname="$os2dllname"; + v=$($ECHO $release$versuffix | tr -d .-); + n=$($ECHO $libname | cut -b -$((8 - ${#v})) | tr . _); + $ECHO $n$v`$shared_ext' + library_names_spec='${libname}_dll.$libext' + dynamic_linker='OS/2 ld.exe' + shlibpath_var=BEGINLIBPATH + sys_lib_search_path_spec="/lib /usr/lib /usr/local/lib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + postinstall_cmds='base_file=`basename \$file`~ + dlpath=`$SHELL 2>&1 -c '\''. $dir/'\''\$base_file'\''i; $ECHO \$dlname'\''`~ + dldir=$destdir/`dirname \$dlpath`~ + test -d \$dldir || mkdir -p \$dldir~ + $install_prog $dir/$dlname \$dldir/$dlname~ + chmod a+x \$dldir/$dlname~ + if test -n '\''$stripme'\'' && test -n '\''$striplib'\''; then + eval '\''$striplib \$dldir/$dlname'\'' || exit \$?; + fi' + postuninstall_cmds='dldll=`$SHELL 2>&1 -c '\''. $file; $ECHO \$dlname'\''`~ + dlpath=$dir/\$dldll~ + $RM \$dlpath' + ;; + +osf3* | osf4* | osf5*) + version_type=osf + need_lib_prefix=no + need_version=no + soname_spec='$libname$release$shared_ext$major' + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + sys_lib_search_path_spec="/usr/shlib /usr/ccs/lib /usr/lib/cmplrs/cc /usr/lib /usr/local/lib /var/shlib" + sys_lib_dlsearch_path_spec=$sys_lib_search_path_spec + ;; + +rdos*) + dynamic_linker=no + ;; + +solaris*) + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + # ldd complains unless libraries are executable + postinstall_cmds='chmod +x $lib' + ;; + +sunos4*) + version_type=sunos + library_names_spec='$libname$release$shared_ext$versuffix $libname$shared_ext$versuffix' + finish_cmds='PATH="\$PATH:/usr/etc" ldconfig $libdir' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + if test yes = "$with_gnu_ld"; then + need_lib_prefix=no + fi + need_version=yes + ;; + +sysv4 | sysv4.3*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + case $host_vendor in + sni) + shlibpath_overrides_runpath=no + need_lib_prefix=no + runpath_var=LD_RUN_PATH + ;; + siemens) + need_lib_prefix=no + ;; + motorola) + need_lib_prefix=no + need_version=no + shlibpath_overrides_runpath=no + sys_lib_search_path_spec='/lib /usr/lib /usr/ccs/lib' + ;; + esac + ;; + +sysv4*MP*) + if test -d /usr/nec; then + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$shared_ext.$versuffix $libname$shared_ext.$major $libname$shared_ext' + soname_spec='$libname$shared_ext.$major' + shlibpath_var=LD_LIBRARY_PATH + fi + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + version_type=sco + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=yes + hardcode_into_libs=yes + if test yes = "$with_gnu_ld"; then + sys_lib_search_path_spec='/usr/local/lib /usr/gnu/lib /usr/ccs/lib /usr/lib /lib' + else + sys_lib_search_path_spec='/usr/ccs/lib /usr/lib' + case $host_os in + sco3.2v5*) + sys_lib_search_path_spec="$sys_lib_search_path_spec /lib" + ;; + esac + fi + sys_lib_dlsearch_path_spec='/usr/lib' + ;; + +tpf*) + # TPF is a cross-target only. Preferred cross-host = GNU/Linux. + version_type=linux # correct to gnu/linux during the next big refactor + need_lib_prefix=no + need_version=no + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + shlibpath_var=LD_LIBRARY_PATH + shlibpath_overrides_runpath=no + hardcode_into_libs=yes + ;; + +uts4*) + version_type=linux # correct to gnu/linux during the next big refactor + library_names_spec='$libname$release$shared_ext$versuffix $libname$release$shared_ext$major $libname$shared_ext' + soname_spec='$libname$release$shared_ext$major' + shlibpath_var=LD_LIBRARY_PATH + ;; + +*) + dynamic_linker=no + ;; +esac +AC_MSG_RESULT([$dynamic_linker]) +test no = "$dynamic_linker" && can_build_shared=no + +variables_saved_for_relink="PATH $shlibpath_var $runpath_var" +if test yes = "$GCC"; then + variables_saved_for_relink="$variables_saved_for_relink GCC_EXEC_PREFIX COMPILER_PATH LIBRARY_PATH" +fi + +if test set = "${lt_cv_sys_lib_search_path_spec+set}"; then + sys_lib_search_path_spec=$lt_cv_sys_lib_search_path_spec +fi + +if test set = "${lt_cv_sys_lib_dlsearch_path_spec+set}"; then + sys_lib_dlsearch_path_spec=$lt_cv_sys_lib_dlsearch_path_spec +fi + +# remember unaugmented sys_lib_dlsearch_path content for libtool script decls... +configure_time_dlsearch_path=$sys_lib_dlsearch_path_spec + +# ... but it needs LT_SYS_LIBRARY_PATH munging for other configure-time code +func_munge_path_list sys_lib_dlsearch_path_spec "$LT_SYS_LIBRARY_PATH" + +# to be used as default LT_SYS_LIBRARY_PATH value in generated libtool +configure_time_lt_sys_library_path=$LT_SYS_LIBRARY_PATH + +_LT_DECL([], [variables_saved_for_relink], [1], + [Variables whose values should be saved in libtool wrapper scripts and + restored at link time]) +_LT_DECL([], [need_lib_prefix], [0], + [Do we need the "lib" prefix for modules?]) +_LT_DECL([], [need_version], [0], [Do we need a version for libraries?]) +_LT_DECL([], [version_type], [0], [Library versioning type]) +_LT_DECL([], [runpath_var], [0], [Shared library runtime path variable]) +_LT_DECL([], [shlibpath_var], [0],[Shared library path variable]) +_LT_DECL([], [shlibpath_overrides_runpath], [0], + [Is shlibpath searched before the hard-coded library search path?]) +_LT_DECL([], [libname_spec], [1], [Format of library name prefix]) +_LT_DECL([], [library_names_spec], [1], + [[List of archive names. First name is the real one, the rest are links. + The last name is the one that the linker finds with -lNAME]]) +_LT_DECL([], [soname_spec], [1], + [[The coded name of the library, if different from the real name]]) +_LT_DECL([], [install_override_mode], [1], + [Permission mode override for installation of shared libraries]) +_LT_DECL([], [postinstall_cmds], [2], + [Command to use after installation of a shared archive]) +_LT_DECL([], [postuninstall_cmds], [2], + [Command to use after uninstallation of a shared archive]) +_LT_DECL([], [finish_cmds], [2], + [Commands used to finish a libtool library installation in a directory]) +_LT_DECL([], [finish_eval], [1], + [[As "finish_cmds", except a single script fragment to be evaled but + not shown]]) +_LT_DECL([], [hardcode_into_libs], [0], + [Whether we should hardcode library paths into libraries]) +_LT_DECL([], [sys_lib_search_path_spec], [2], + [Compile-time system search path for libraries]) +_LT_DECL([sys_lib_dlsearch_path_spec], [configure_time_dlsearch_path], [2], + [Detected run-time system search path for libraries]) +_LT_DECL([], [configure_time_lt_sys_library_path], [2], + [Explicit LT_SYS_LIBRARY_PATH set during ./configure time]) +])# _LT_SYS_DYNAMIC_LINKER + + +# _LT_PATH_TOOL_PREFIX(TOOL) +# -------------------------- +# find a file program that can recognize shared library +AC_DEFUN([_LT_PATH_TOOL_PREFIX], +[m4_require([_LT_DECL_EGREP])dnl +AC_MSG_CHECKING([for $1]) +AC_CACHE_VAL(lt_cv_path_MAGIC_CMD, +[case $MAGIC_CMD in +[[\\/*] | ?:[\\/]*]) + lt_cv_path_MAGIC_CMD=$MAGIC_CMD # Let the user override the test with a path. + ;; +*) + lt_save_MAGIC_CMD=$MAGIC_CMD + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR +dnl $ac_dummy forces splitting on constant user-supplied paths. +dnl POSIX.2 word splitting is done only on the output of word expansions, +dnl not every word. This closes a longstanding sh security hole. + ac_dummy="m4_if([$2], , $PATH, [$2])" + for ac_dir in $ac_dummy; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$1"; then + lt_cv_path_MAGIC_CMD=$ac_dir/"$1" + if test -n "$file_magic_test_file"; then + case $deplibs_check_method in + "file_magic "*) + file_magic_regex=`expr "$deplibs_check_method" : "file_magic \(.*\)"` + MAGIC_CMD=$lt_cv_path_MAGIC_CMD + if eval $file_magic_cmd \$file_magic_test_file 2> /dev/null | + $EGREP "$file_magic_regex" > /dev/null; then + : + else + cat <<_LT_EOF 1>&2 + +*** Warning: the command libtool uses to detect shared libraries, +*** $file_magic_cmd, produces output that libtool cannot recognize. +*** The result is that libtool may fail to recognize shared libraries +*** as such. This will affect the creation of libtool libraries that +*** depend on shared libraries, but programs linked with such libtool +*** libraries will work regardless of this problem. Nevertheless, you +*** may want to report the problem to your system manager and/or to +*** bug-libtool@gnu.org + +_LT_EOF + fi ;; + esac + fi + break + fi + done + IFS=$lt_save_ifs + MAGIC_CMD=$lt_save_MAGIC_CMD + ;; +esac]) +MAGIC_CMD=$lt_cv_path_MAGIC_CMD +if test -n "$MAGIC_CMD"; then + AC_MSG_RESULT($MAGIC_CMD) +else + AC_MSG_RESULT(no) +fi +_LT_DECL([], [MAGIC_CMD], [0], + [Used to examine libraries when file_magic_cmd begins with "file"])dnl +])# _LT_PATH_TOOL_PREFIX + +# Old name: +AU_ALIAS([AC_PATH_TOOL_PREFIX], [_LT_PATH_TOOL_PREFIX]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_PATH_TOOL_PREFIX], []) + + +# _LT_PATH_MAGIC +# -------------- +# find a file program that can recognize a shared library +m4_defun([_LT_PATH_MAGIC], +[_LT_PATH_TOOL_PREFIX(${ac_tool_prefix}file, /usr/bin$PATH_SEPARATOR$PATH) +if test -z "$lt_cv_path_MAGIC_CMD"; then + if test -n "$ac_tool_prefix"; then + _LT_PATH_TOOL_PREFIX(file, /usr/bin$PATH_SEPARATOR$PATH) + else + MAGIC_CMD=: + fi +fi +])# _LT_PATH_MAGIC + + +# LT_PATH_LD +# ---------- +# find the pathname to the GNU or non-GNU linker +AC_DEFUN([LT_PATH_LD], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PROG_ECHO_BACKSLASH])dnl + +AC_ARG_WITH([gnu-ld], + [AS_HELP_STRING([--with-gnu-ld], + [assume the C compiler uses GNU ld @<:@default=no@:>@])], + [test no = "$withval" || with_gnu_ld=yes], + [with_gnu_ld=no])dnl + +ac_prog=ld +if test yes = "$GCC"; then + # Check if gcc -print-prog-name=ld gives a path. + AC_MSG_CHECKING([for ld used by $CC]) + case $host in + *-*-mingw*) + # gcc leaves a trailing carriage return, which upsets mingw + ac_prog=`($CC -print-prog-name=ld) 2>&5 | tr -d '\015'` ;; + *) + ac_prog=`($CC -print-prog-name=ld) 2>&5` ;; + esac + case $ac_prog in + # Accept absolute paths. + [[\\/]]* | ?:[[\\/]]*) + re_direlt='/[[^/]][[^/]]*/\.\./' + # Canonicalize the pathname of ld + ac_prog=`$ECHO "$ac_prog"| $SED 's%\\\\%/%g'` + while $ECHO "$ac_prog" | $GREP "$re_direlt" > /dev/null 2>&1; do + ac_prog=`$ECHO $ac_prog| $SED "s%$re_direlt%/%"` + done + test -z "$LD" && LD=$ac_prog + ;; + "") + # If it fails, then pretend we aren't using GCC. + ac_prog=ld + ;; + *) + # If it is relative, then search for the first ld in PATH. + with_gnu_ld=unknown + ;; + esac +elif test yes = "$with_gnu_ld"; then + AC_MSG_CHECKING([for GNU ld]) +else + AC_MSG_CHECKING([for non-GNU ld]) +fi +AC_CACHE_VAL(lt_cv_path_LD, +[if test -z "$LD"; then + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + if test -f "$ac_dir/$ac_prog" || test -f "$ac_dir/$ac_prog$ac_exeext"; then + lt_cv_path_LD=$ac_dir/$ac_prog + # Check to see if the program is GNU ld. I'd rather use --version, + # but apparently some variants of GNU ld only accept -v. + # Break only if it was the GNU/non-GNU ld that we prefer. + case `"$lt_cv_path_LD" -v 2>&1 &1 conftest.i +cat conftest.i conftest.i >conftest2.i +: ${lt_DD:=$DD} +AC_PATH_PROGS_FEATURE_CHECK([lt_DD], [dd], +[if "$ac_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && ac_cv_path_lt_DD="$ac_path_lt_DD" ac_path_lt_DD_found=: +fi]) +rm -f conftest.i conftest2.i conftest.out]) +])# _LT_PATH_DD + + +# _LT_CMD_TRUNCATE +# ---------------- +# find command to truncate a binary pipe +m4_defun([_LT_CMD_TRUNCATE], +[m4_require([_LT_PATH_DD]) +AC_CACHE_CHECK([how to truncate binary pipes], [lt_cv_truncate_bin], +[printf 0123456789abcdef0123456789abcdef >conftest.i +cat conftest.i conftest.i >conftest2.i +lt_cv_truncate_bin= +if "$ac_cv_path_lt_DD" bs=32 count=1 conftest.out 2>/dev/null; then + cmp -s conftest.i conftest.out \ + && lt_cv_truncate_bin="$ac_cv_path_lt_DD bs=4096 count=1" +fi +rm -f conftest.i conftest2.i conftest.out +test -z "$lt_cv_truncate_bin" && lt_cv_truncate_bin="$SED -e 4q"]) +_LT_DECL([lt_truncate_bin], [lt_cv_truncate_bin], [1], + [Command to truncate a binary pipe]) +])# _LT_CMD_TRUNCATE + + +# _LT_CHECK_MAGIC_METHOD +# ---------------------- +# how to check for library dependencies +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_MAGIC_METHOD], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +AC_CACHE_CHECK([how to recognize dependent libraries], +lt_cv_deplibs_check_method, +[lt_cv_file_magic_cmd='$MAGIC_CMD' +lt_cv_file_magic_test_file= +lt_cv_deplibs_check_method='unknown' +# Need to set the preceding variable on all platforms that support +# interlibrary dependencies. +# 'none' -- dependencies not supported. +# 'unknown' -- same as none, but documents that we really don't know. +# 'pass_all' -- all dependencies passed with no checks. +# 'test_compile' -- check by making test program. +# 'file_magic [[regex]]' -- check by looking for files in library path +# that responds to the $file_magic_cmd with a given extended regex. +# If you have 'file' or equivalent on your system and you're not sure +# whether 'pass_all' will *always* work, you probably want this one. + +case $host_os in +aix[[4-9]]*) + lt_cv_deplibs_check_method=pass_all + ;; + +beos*) + lt_cv_deplibs_check_method=pass_all + ;; + +bsdi[[45]]*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib)' + lt_cv_file_magic_cmd='/usr/bin/file -L' + lt_cv_file_magic_test_file=/shlib/libc.so + ;; + +cygwin*) + # func_win32_libid is a shell function defined in ltmain.sh + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + ;; + +mingw* | pw32*) + # Base MSYS/MinGW do not provide the 'file' command needed by + # func_win32_libid shell function, so use a weaker test based on 'objdump', + # unless we find 'file', for example because we are cross-compiling. + if ( file / ) >/dev/null 2>&1; then + lt_cv_deplibs_check_method='file_magic ^x86 archive import|^x86 DLL' + lt_cv_file_magic_cmd='func_win32_libid' + else + # Keep this pattern in sync with the one in func_win32_libid. + lt_cv_deplibs_check_method='file_magic file format (pei*-i386(.*architecture: i386)?|pe-arm-wince|pe-x86-64)' + lt_cv_file_magic_cmd='$OBJDUMP -f' + fi + ;; + +cegcc*) + # use the weaker test based on 'objdump'. See mingw*. + lt_cv_deplibs_check_method='file_magic file format pe-arm-.*little(.*architecture: arm)?' + lt_cv_file_magic_cmd='$OBJDUMP -f' + ;; + +darwin* | rhapsody*) + lt_cv_deplibs_check_method=pass_all + ;; + +freebsd* | dragonfly*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + case $host_cpu in + i*86 ) + # Not sure whether the presence of OpenBSD here was a mistake. + # Let's accept both of them until this is cleared up. + lt_cv_deplibs_check_method='file_magic (FreeBSD|OpenBSD|DragonFly)/i[[3-9]]86 (compact )?demand paged shared library' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so.*` + ;; + esac + else + lt_cv_deplibs_check_method=pass_all + fi + ;; + +haiku*) + lt_cv_deplibs_check_method=pass_all + ;; + +hpux10.20* | hpux11*) + lt_cv_file_magic_cmd=/usr/bin/file + case $host_cpu in + ia64*) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|ELF-[[0-9]][[0-9]]) shared object file - IA64' + lt_cv_file_magic_test_file=/usr/lib/hpux32/libc.so + ;; + hppa*64*) + [lt_cv_deplibs_check_method='file_magic (s[0-9][0-9][0-9]|ELF[ -][0-9][0-9])(-bit)?( [LM]SB)? shared object( file)?[, -]* PA-RISC [0-9]\.[0-9]'] + lt_cv_file_magic_test_file=/usr/lib/pa20_64/libc.sl + ;; + *) + lt_cv_deplibs_check_method='file_magic (s[[0-9]][[0-9]][[0-9]]|PA-RISC[[0-9]]\.[[0-9]]) shared library' + lt_cv_file_magic_test_file=/usr/lib/libc.sl + ;; + esac + ;; + +interix[[3-9]]*) + # PIC code is broken on Interix 3.x, that's why |\.a not |_pic\.a here + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|\.a)$' + ;; + +irix5* | irix6* | nonstopux*) + case $LD in + *-32|*"-32 ") libmagic=32-bit;; + *-n32|*"-n32 ") libmagic=N32;; + *-64|*"-64 ") libmagic=64-bit;; + *) libmagic=never-match;; + esac + lt_cv_deplibs_check_method=pass_all + ;; + +# This must be glibc/ELF. +linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + lt_cv_deplibs_check_method=pass_all + ;; + +netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ > /dev/null; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so|_pic\.a)$' + fi + ;; + +newos6*) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (executable|dynamic lib)' + lt_cv_file_magic_cmd=/usr/bin/file + lt_cv_file_magic_test_file=/usr/lib/libnls.so + ;; + +*nto* | *qnx*) + lt_cv_deplibs_check_method=pass_all + ;; + +openbsd* | bitrig*) + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|\.so|_pic\.a)$' + else + lt_cv_deplibs_check_method='match_pattern /lib[[^/]]+(\.so\.[[0-9]]+\.[[0-9]]+|_pic\.a)$' + fi + ;; + +osf3* | osf4* | osf5*) + lt_cv_deplibs_check_method=pass_all + ;; + +rdos*) + lt_cv_deplibs_check_method=pass_all + ;; + +solaris*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX* | sysv4*uw2*) + lt_cv_deplibs_check_method=pass_all + ;; + +sysv4 | sysv4.3*) + case $host_vendor in + motorola) + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[ML]]SB (shared object|dynamic lib) M[[0-9]][[0-9]]* Version [[0-9]]' + lt_cv_file_magic_test_file=`echo /usr/lib/libc.so*` + ;; + ncr) + lt_cv_deplibs_check_method=pass_all + ;; + sequent) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method='file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB (shared object|dynamic lib )' + ;; + sni) + lt_cv_file_magic_cmd='/bin/file' + lt_cv_deplibs_check_method="file_magic ELF [[0-9]][[0-9]]*-bit [[LM]]SB dynamic lib" + lt_cv_file_magic_test_file=/lib/libc.so + ;; + siemens) + lt_cv_deplibs_check_method=pass_all + ;; + pc) + lt_cv_deplibs_check_method=pass_all + ;; + esac + ;; + +tpf*) + lt_cv_deplibs_check_method=pass_all + ;; +os2*) + lt_cv_deplibs_check_method=pass_all + ;; +esac +]) + +file_magic_glob= +want_nocaseglob=no +if test "$build" = "$host"; then + case $host_os in + mingw* | pw32*) + if ( shopt | grep nocaseglob ) >/dev/null 2>&1; then + want_nocaseglob=yes + else + file_magic_glob=`echo aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ | $SED -e "s/\(..\)/s\/[[\1]]\/[[\1]]\/g;/g"` + fi + ;; + esac +fi + +file_magic_cmd=$lt_cv_file_magic_cmd +deplibs_check_method=$lt_cv_deplibs_check_method +test -z "$deplibs_check_method" && deplibs_check_method=unknown + +_LT_DECL([], [deplibs_check_method], [1], + [Method to check whether dependent libraries are shared objects]) +_LT_DECL([], [file_magic_cmd], [1], + [Command to use when deplibs_check_method = "file_magic"]) +_LT_DECL([], [file_magic_glob], [1], + [How to find potential files when deplibs_check_method = "file_magic"]) +_LT_DECL([], [want_nocaseglob], [1], + [Find potential files using nocaseglob when deplibs_check_method = "file_magic"]) +])# _LT_CHECK_MAGIC_METHOD + + +# LT_PATH_NM +# ---------- +# find the pathname to a BSD- or MS-compatible name lister +AC_DEFUN([LT_PATH_NM], +[AC_REQUIRE([AC_PROG_CC])dnl +AC_CACHE_CHECK([for BSD- or MS-compatible name lister (nm)], lt_cv_path_NM, +[if test -n "$NM"; then + # Let the user override the test. + lt_cv_path_NM=$NM +else + lt_nm_to_check=${ac_tool_prefix}nm + if test -n "$ac_tool_prefix" && test "$build" = "$host"; then + lt_nm_to_check="$lt_nm_to_check nm" + fi + for lt_tmp_nm in $lt_nm_to_check; do + lt_save_ifs=$IFS; IFS=$PATH_SEPARATOR + for ac_dir in $PATH /usr/ccs/bin/elf /usr/ccs/bin /usr/ucb /bin; do + IFS=$lt_save_ifs + test -z "$ac_dir" && ac_dir=. + tmp_nm=$ac_dir/$lt_tmp_nm + if test -f "$tmp_nm" || test -f "$tmp_nm$ac_exeext"; then + # Check to see if the nm accepts a BSD-compat flag. + # Adding the 'sed 1q' prevents false positives on HP-UX, which says: + # nm: unknown option "B" ignored + # Tru64's nm complains that /dev/null is an invalid object file + # MSYS converts /dev/null to NUL, MinGW nm treats NUL as empty + case $build_os in + mingw*) lt_bad_file=conftest.nm/nofile ;; + *) lt_bad_file=/dev/null ;; + esac + case `"$tmp_nm" -B $lt_bad_file 2>&1 | sed '1q'` in + *$lt_bad_file* | *'Invalid file or object type'*) + lt_cv_path_NM="$tmp_nm -B" + break 2 + ;; + *) + case `"$tmp_nm" -p /dev/null 2>&1 | sed '1q'` in + */dev/null*) + lt_cv_path_NM="$tmp_nm -p" + break 2 + ;; + *) + lt_cv_path_NM=${lt_cv_path_NM="$tmp_nm"} # keep the first match, but + continue # so that we can try to find one that supports BSD flags + ;; + esac + ;; + esac + fi + done + IFS=$lt_save_ifs + done + : ${lt_cv_path_NM=no} +fi]) +if test no != "$lt_cv_path_NM"; then + NM=$lt_cv_path_NM +else + # Didn't find any BSD compatible name lister, look for dumpbin. + if test -n "$DUMPBIN"; then : + # Let the user override the test. + else + AC_CHECK_TOOLS(DUMPBIN, [dumpbin "link -dump"], :) + case `$DUMPBIN -symbols -headers /dev/null 2>&1 | sed '1q'` in + *COFF*) + DUMPBIN="$DUMPBIN -symbols -headers" + ;; + *) + DUMPBIN=: + ;; + esac + fi + AC_SUBST([DUMPBIN]) + if test : != "$DUMPBIN"; then + NM=$DUMPBIN + fi +fi +test -z "$NM" && NM=nm +AC_SUBST([NM]) +_LT_DECL([], [NM], [1], [A BSD- or MS-compatible name lister])dnl + +AC_CACHE_CHECK([the name lister ($NM) interface], [lt_cv_nm_interface], + [lt_cv_nm_interface="BSD nm" + echo "int some_variable = 0;" > conftest.$ac_ext + (eval echo "\"\$as_me:$LINENO: $ac_compile\"" >&AS_MESSAGE_LOG_FD) + (eval "$ac_compile" 2>conftest.err) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: $NM \\\"conftest.$ac_objext\\\"\"" >&AS_MESSAGE_LOG_FD) + (eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out) + cat conftest.err >&AS_MESSAGE_LOG_FD + (eval echo "\"\$as_me:$LINENO: output\"" >&AS_MESSAGE_LOG_FD) + cat conftest.out >&AS_MESSAGE_LOG_FD + if $GREP 'External.*some_variable' conftest.out > /dev/null; then + lt_cv_nm_interface="MS dumpbin" + fi + rm -f conftest*]) +])# LT_PATH_NM + +# Old names: +AU_ALIAS([AM_PROG_NM], [LT_PATH_NM]) +AU_ALIAS([AC_PROG_NM], [LT_PATH_NM]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_PROG_NM], []) +dnl AC_DEFUN([AC_PROG_NM], []) + +# _LT_CHECK_SHAREDLIB_FROM_LINKLIB +# -------------------------------- +# how to determine the name of the shared library +# associated with a specific link library. +# -- PORTME fill in with the dynamic library characteristics +m4_defun([_LT_CHECK_SHAREDLIB_FROM_LINKLIB], +[m4_require([_LT_DECL_EGREP]) +m4_require([_LT_DECL_OBJDUMP]) +m4_require([_LT_DECL_DLLTOOL]) +AC_CACHE_CHECK([how to associate runtime and link libraries], +lt_cv_sharedlib_from_linklib_cmd, +[lt_cv_sharedlib_from_linklib_cmd='unknown' + +case $host_os in +cygwin* | mingw* | pw32* | cegcc*) + # two different shell functions defined in ltmain.sh; + # decide which one to use based on capabilities of $DLLTOOL + case `$DLLTOOL --help 2>&1` in + *--identify-strict*) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib + ;; + *) + lt_cv_sharedlib_from_linklib_cmd=func_cygming_dll_for_implib_fallback + ;; + esac + ;; +*) + # fallback: assume linklib IS sharedlib + lt_cv_sharedlib_from_linklib_cmd=$ECHO + ;; +esac +]) +sharedlib_from_linklib_cmd=$lt_cv_sharedlib_from_linklib_cmd +test -z "$sharedlib_from_linklib_cmd" && sharedlib_from_linklib_cmd=$ECHO + +_LT_DECL([], [sharedlib_from_linklib_cmd], [1], + [Command to associate shared and link libraries]) +])# _LT_CHECK_SHAREDLIB_FROM_LINKLIB + + +# _LT_PATH_MANIFEST_TOOL +# ---------------------- +# locate the manifest tool +m4_defun([_LT_PATH_MANIFEST_TOOL], +[AC_CHECK_TOOL(MANIFEST_TOOL, mt, :) +test -z "$MANIFEST_TOOL" && MANIFEST_TOOL=mt +AC_CACHE_CHECK([if $MANIFEST_TOOL is a manifest tool], [lt_cv_path_mainfest_tool], + [lt_cv_path_mainfest_tool=no + echo "$as_me:$LINENO: $MANIFEST_TOOL '-?'" >&AS_MESSAGE_LOG_FD + $MANIFEST_TOOL '-?' 2>conftest.err > conftest.out + cat conftest.err >&AS_MESSAGE_LOG_FD + if $GREP 'Manifest Tool' conftest.out > /dev/null; then + lt_cv_path_mainfest_tool=yes + fi + rm -f conftest*]) +if test yes != "$lt_cv_path_mainfest_tool"; then + MANIFEST_TOOL=: +fi +_LT_DECL([], [MANIFEST_TOOL], [1], [Manifest tool])dnl +])# _LT_PATH_MANIFEST_TOOL + + +# _LT_DLL_DEF_P([FILE]) +# --------------------- +# True iff FILE is a Windows DLL '.def' file. +# Keep in sync with func_dll_def_p in the libtool script +AC_DEFUN([_LT_DLL_DEF_P], +[dnl + test DEF = "`$SED -n dnl + -e '\''s/^[[ ]]*//'\'' dnl Strip leading whitespace + -e '\''/^\(;.*\)*$/d'\'' dnl Delete empty lines and comments + -e '\''s/^\(EXPORTS\|LIBRARY\)\([[ ]].*\)*$/DEF/p'\'' dnl + -e q dnl Only consider the first "real" line + $1`" dnl +])# _LT_DLL_DEF_P + + +# LT_LIB_M +# -------- +# check for math library +AC_DEFUN([LT_LIB_M], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +LIBM= +case $host in +*-*-beos* | *-*-cegcc* | *-*-cygwin* | *-*-haiku* | *-*-pw32* | *-*-darwin*) + # These system don't have libm, or don't need it + ;; +*-ncr-sysv4.3*) + AC_CHECK_LIB(mw, _mwvalidcheckl, LIBM=-lmw) + AC_CHECK_LIB(m, cos, LIBM="$LIBM -lm") + ;; +*) + AC_CHECK_LIB(m, cos, LIBM=-lm) + ;; +esac +AC_SUBST([LIBM]) +])# LT_LIB_M + +# Old name: +AU_ALIAS([AC_CHECK_LIBM], [LT_LIB_M]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_CHECK_LIBM], []) + + +# _LT_COMPILER_NO_RTTI([TAGNAME]) +# ------------------------------- +m4_defun([_LT_COMPILER_NO_RTTI], +[m4_require([_LT_TAG_COMPILER])dnl + +_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + +if test yes = "$GCC"; then + case $cc_basename in + nvcc*) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -Xcompiler -fno-builtin' ;; + *) + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' ;; + esac + + _LT_COMPILER_OPTION([if $compiler supports -fno-rtti -fno-exceptions], + lt_cv_prog_compiler_rtti_exceptions, + [-fno-rtti -fno-exceptions], [], + [_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)="$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1) -fno-rtti -fno-exceptions"]) +fi +_LT_TAGDECL([no_builtin_flag], [lt_prog_compiler_no_builtin_flag], [1], + [Compiler flag to turn off builtin functions]) +])# _LT_COMPILER_NO_RTTI + + +# _LT_CMD_GLOBAL_SYMBOLS +# ---------------------- +m4_defun([_LT_CMD_GLOBAL_SYMBOLS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +AC_REQUIRE([AC_PROG_AWK])dnl +AC_REQUIRE([LT_PATH_NM])dnl +AC_REQUIRE([LT_PATH_LD])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_TAG_COMPILER])dnl + +# Check for command to grab the raw symbol name followed by C symbol from nm. +AC_MSG_CHECKING([command to parse $NM output from $compiler object]) +AC_CACHE_VAL([lt_cv_sys_global_symbol_pipe], +[ +# These are sane defaults that work on at least a few old systems. +# [They come from Ultrix. What could be older than Ultrix?!! ;)] + +# Character class describing NM global symbol codes. +symcode='[[BCDEGRST]]' + +# Regexp to match symbols that can be accessed directly from C. +sympat='\([[_A-Za-z]][[_A-Za-z0-9]]*\)' + +# Define system-specific variables. +case $host_os in +aix*) + symcode='[[BCDT]]' + ;; +cygwin* | mingw* | pw32* | cegcc*) + symcode='[[ABCDGISTW]]' + ;; +hpux*) + if test ia64 = "$host_cpu"; then + symcode='[[ABCDEGRST]]' + fi + ;; +irix* | nonstopux*) + symcode='[[BCDEGRST]]' + ;; +osf*) + symcode='[[BCDEGQRST]]' + ;; +solaris*) + symcode='[[BDRT]]' + ;; +sco3.2v5*) + symcode='[[DT]]' + ;; +sysv4.2uw2*) + symcode='[[DT]]' + ;; +sysv5* | sco5v6* | unixware* | OpenUNIX*) + symcode='[[ABDT]]' + ;; +sysv4) + symcode='[[DFNSTU]]' + ;; +esac + +# If we're using GNU nm, then use its standard symbol codes. +case `$NM -V 2>&1` in +*GNU* | *'with BFD'*) + symcode='[[ABCDGIRSTW]]' ;; +esac + +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Gets list of data symbols to import. + lt_cv_sys_global_symbol_to_import="sed -n -e 's/^I .* \(.*\)$/\1/p'" + # Adjust the below global symbol transforms to fixup imported variables. + lt_cdecl_hook=" -e 's/^I .* \(.*\)$/extern __declspec(dllimport) char \1;/p'" + lt_c_name_hook=" -e 's/^I .* \(.*\)$/ {\"\1\", (void *) 0},/p'" + lt_c_name_lib_hook="\ + -e 's/^I .* \(lib.*\)$/ {\"\1\", (void *) 0},/p'\ + -e 's/^I .* \(.*\)$/ {\"lib\1\", (void *) 0},/p'" +else + # Disable hooks by default. + lt_cv_sys_global_symbol_to_import= + lt_cdecl_hook= + lt_c_name_hook= + lt_c_name_lib_hook= +fi + +# Transform an extracted symbol line into a proper C declaration. +# Some systems (esp. on ia64) link data and code symbols differently, +# so use this general approach. +lt_cv_sys_global_symbol_to_cdecl="sed -n"\ +$lt_cdecl_hook\ +" -e 's/^T .* \(.*\)$/extern int \1();/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/extern char \1;/p'" + +# Transform an extracted symbol line into symbol name and symbol address +lt_cv_sys_global_symbol_to_c_name_address="sed -n"\ +$lt_c_name_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/p'" + +# Transform an extracted symbol line into symbol name with lib prefix and +# symbol address. +lt_cv_sys_global_symbol_to_c_name_address_lib_prefix="sed -n"\ +$lt_c_name_lib_hook\ +" -e 's/^: \(.*\) .*$/ {\"\1\", (void *) 0},/p'"\ +" -e 's/^$symcode$symcode* .* \(lib.*\)$/ {\"\1\", (void *) \&\1},/p'"\ +" -e 's/^$symcode$symcode* .* \(.*\)$/ {\"lib\1\", (void *) \&\1},/p'" + +# Handle CRLF in mingw tool chain +opt_cr= +case $build_os in +mingw*) + opt_cr=`$ECHO 'x\{0,1\}' | tr x '\015'` # option cr in regexp + ;; +esac + +# Try without a prefix underscore, then with it. +for ac_symprfx in "" "_"; do + + # Transform symcode, sympat, and symprfx into a raw symbol and a C symbol. + symxfrm="\\1 $ac_symprfx\\2 \\2" + + # Write the raw and C identifiers. + if test "$lt_cv_nm_interface" = "MS dumpbin"; then + # Fake it for dumpbin and say T for any non-static function, + # D for any global variable and I for any imported variable. + # Also find C++ and __fastcall symbols from MSVC++, + # which start with @ or ?. + lt_cv_sys_global_symbol_pipe="$AWK ['"\ +" {last_section=section; section=\$ 3};"\ +" /^COFF SYMBOL TABLE/{for(i in hide) delete hide[i]};"\ +" /Section length .*#relocs.*(pick any)/{hide[last_section]=1};"\ +" /^ *Symbol name *: /{split(\$ 0,sn,\":\"); si=substr(sn[2],2)};"\ +" /^ *Type *: code/{print \"T\",si,substr(si,length(prfx))};"\ +" /^ *Type *: data/{print \"I\",si,substr(si,length(prfx))};"\ +" \$ 0!~/External *\|/{next};"\ +" / 0+ UNDEF /{next}; / UNDEF \([^|]\)*()/{next};"\ +" {if(hide[section]) next};"\ +" {f=\"D\"}; \$ 0~/\(\).*\|/{f=\"T\"};"\ +" {split(\$ 0,a,/\||\r/); split(a[2],s)};"\ +" s[1]~/^[@?]/{print f,s[1],s[1]; next};"\ +" s[1]~prfx {split(s[1],t,\"@\"); print f,t[1],substr(t[1],length(prfx))}"\ +" ' prfx=^$ac_symprfx]" + else + lt_cv_sys_global_symbol_pipe="sed -n -e 's/^.*[[ ]]\($symcode$symcode*\)[[ ]][[ ]]*$ac_symprfx$sympat$opt_cr$/$symxfrm/p'" + fi + lt_cv_sys_global_symbol_pipe="$lt_cv_sys_global_symbol_pipe | sed '/ __gnu_lto/d'" + + # Check to see that the pipe works correctly. + pipe_works=no + + rm -f conftest* + cat > conftest.$ac_ext <<_LT_EOF +#ifdef __cplusplus +extern "C" { +#endif +char nm_test_var; +void nm_test_func(void); +void nm_test_func(void){} +#ifdef __cplusplus +} +#endif +int main(){nm_test_var='a';nm_test_func();return(0);} +_LT_EOF + + if AC_TRY_EVAL(ac_compile); then + # Now try to grab the symbols. + nlist=conftest.nm + $ECHO "$as_me:$LINENO: $NM conftest.$ac_objext | $lt_cv_sys_global_symbol_pipe > $nlist" >&AS_MESSAGE_LOG_FD + if eval "$NM" conftest.$ac_objext \| "$lt_cv_sys_global_symbol_pipe" \> $nlist 2>&AS_MESSAGE_LOG_FD && test -s "$nlist"; then + # Try sorting and uniquifying the output. + if sort "$nlist" | uniq > "$nlist"T; then + mv -f "$nlist"T "$nlist" + else + rm -f "$nlist"T + fi + + # Make sure that we snagged all the symbols we need. + if $GREP ' nm_test_var$' "$nlist" >/dev/null; then + if $GREP ' nm_test_func$' "$nlist" >/dev/null; then + cat <<_LT_EOF > conftest.$ac_ext +/* Keep this code in sync between libtool.m4, ltmain, lt_system.h, and tests. */ +#if defined _WIN32 || defined __CYGWIN__ || defined _WIN32_WCE +/* DATA imports from DLLs on WIN32 can't be const, because runtime + relocations are performed -- see ld's documentation on pseudo-relocs. */ +# define LT@&t@_DLSYM_CONST +#elif defined __osf__ +/* This system does not cope well with relocations in const data. */ +# define LT@&t@_DLSYM_CONST +#else +# define LT@&t@_DLSYM_CONST const +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +_LT_EOF + # Now generate the symbol file. + eval "$lt_cv_sys_global_symbol_to_cdecl"' < "$nlist" | $GREP -v main >> conftest.$ac_ext' + + cat <<_LT_EOF >> conftest.$ac_ext + +/* The mapping between symbol names and symbols. */ +LT@&t@_DLSYM_CONST struct { + const char *name; + void *address; +} +lt__PROGRAM__LTX_preloaded_symbols[[]] = +{ + { "@PROGRAM@", (void *) 0 }, +_LT_EOF + $SED "s/^$symcode$symcode* .* \(.*\)$/ {\"\1\", (void *) \&\1},/" < "$nlist" | $GREP -v main >> conftest.$ac_ext + cat <<\_LT_EOF >> conftest.$ac_ext + {0, (void *) 0} +}; + +/* This works around a problem in FreeBSD linker */ +#ifdef FREEBSD_WORKAROUND +static const void *lt_preloaded_setup() { + return lt__PROGRAM__LTX_preloaded_symbols; +} +#endif + +#ifdef __cplusplus +} +#endif +_LT_EOF + # Now try linking the two files. + mv conftest.$ac_objext conftstm.$ac_objext + lt_globsym_save_LIBS=$LIBS + lt_globsym_save_CFLAGS=$CFLAGS + LIBS=conftstm.$ac_objext + CFLAGS="$CFLAGS$_LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)" + if AC_TRY_EVAL(ac_link) && test -s conftest$ac_exeext; then + pipe_works=yes + fi + LIBS=$lt_globsym_save_LIBS + CFLAGS=$lt_globsym_save_CFLAGS + else + echo "cannot find nm_test_func in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot find nm_test_var in $nlist" >&AS_MESSAGE_LOG_FD + fi + else + echo "cannot run $lt_cv_sys_global_symbol_pipe" >&AS_MESSAGE_LOG_FD + fi + else + echo "$progname: failed program was:" >&AS_MESSAGE_LOG_FD + cat conftest.$ac_ext >&5 + fi + rm -rf conftest* conftst* + + # Do not use the global_symbol_pipe unless it works. + if test yes = "$pipe_works"; then + break + else + lt_cv_sys_global_symbol_pipe= + fi +done +]) +if test -z "$lt_cv_sys_global_symbol_pipe"; then + lt_cv_sys_global_symbol_to_cdecl= +fi +if test -z "$lt_cv_sys_global_symbol_pipe$lt_cv_sys_global_symbol_to_cdecl"; then + AC_MSG_RESULT(failed) +else + AC_MSG_RESULT(ok) +fi + +# Response file support. +if test "$lt_cv_nm_interface" = "MS dumpbin"; then + nm_file_list_spec='@' +elif $NM --help 2>/dev/null | grep '[[@]]FILE' >/dev/null; then + nm_file_list_spec='@' +fi + +_LT_DECL([global_symbol_pipe], [lt_cv_sys_global_symbol_pipe], [1], + [Take the output of nm and produce a listing of raw symbols and C names]) +_LT_DECL([global_symbol_to_cdecl], [lt_cv_sys_global_symbol_to_cdecl], [1], + [Transform the output of nm in a proper C declaration]) +_LT_DECL([global_symbol_to_import], [lt_cv_sys_global_symbol_to_import], [1], + [Transform the output of nm into a list of symbols to manually relocate]) +_LT_DECL([global_symbol_to_c_name_address], + [lt_cv_sys_global_symbol_to_c_name_address], [1], + [Transform the output of nm in a C name address pair]) +_LT_DECL([global_symbol_to_c_name_address_lib_prefix], + [lt_cv_sys_global_symbol_to_c_name_address_lib_prefix], [1], + [Transform the output of nm in a C name address pair when lib prefix is needed]) +_LT_DECL([nm_interface], [lt_cv_nm_interface], [1], + [The name lister interface]) +_LT_DECL([], [nm_file_list_spec], [1], + [Specify filename containing input files for $NM]) +]) # _LT_CMD_GLOBAL_SYMBOLS + + +# _LT_COMPILER_PIC([TAGNAME]) +# --------------------------- +m4_defun([_LT_COMPILER_PIC], +[m4_require([_LT_TAG_COMPILER])dnl +_LT_TAGVAR(lt_prog_compiler_wl, $1)= +_LT_TAGVAR(lt_prog_compiler_pic, $1)= +_LT_TAGVAR(lt_prog_compiler_static, $1)= + +m4_if([$1], [CXX], [ + # C++ specific cases for pic, static, wl, etc. + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + *djgpp*) + # DJGPP does not support shared libraries at all + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + else + case $host_os in + aix[[4-9]]*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + chorus*) + case $cc_basename in + cxch68*) + # Green Hills C++ Compiler + # _LT_TAGVAR(lt_prog_compiler_static, $1)="--no_auto_instantiation -u __main -u __premain -u _abort -r $COOL_DIR/lib/libOrb.a $MVME_DIR/lib/CC/libC.a $MVME_DIR/lib/classix/libcx.s.a" + ;; + esac + ;; + mingw* | cygwin* | os2* | pw32* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + ;; + dgux*) + case $cc_basename in + ec++*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + ghcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + freebsd* | dragonfly*) + # FreeBSD uses GNU C++ + ;; + hpux9* | hpux10* | hpux11*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + fi + ;; + aCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + ;; + *) + ;; + esac + ;; + interix*) + # This is c89, which is MS Visual C++ (no shared libs) + # Anyone wants to do a port? + ;; + irix5* | irix6* | nonstopux*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + # CC pic flag -KPIC is the default. + ;; + *) + ;; + esac + ;; + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # KAI C++ Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + ecpc* ) + # old Intel C++ for x86_64, which still supported -KPIC. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + icpc* ) + # Intel C++, used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + cxx*) + # Compaq C++ + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xlc* | xlC* | bgxl[[cC]]* | mpixl[[cC]]*) + # IBM XL 8.0, 9.0 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + esac + ;; + esac + ;; + lynxos*) + ;; + m88k*) + ;; + mvs*) + case $cc_basename in + cxx*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-W c,exportall' + ;; + *) + ;; + esac + ;; + netbsd* | netbsdelf*-gnu) + ;; + *qnx* | *nto*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='--backend -Wl,' + ;; + RCC*) + # Rational C++ 2.4.1 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + cxx*) + # Digital/Compaq C++ + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # Make sure the PIC flag is empty. It appears that all Alpha + # Linux and Compaq Tru64 Unix objects are PIC. + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + *) + ;; + esac + ;; + psos*) + ;; + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + ;; + *) + ;; + esac + ;; + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + lcc*) + # Lucid + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + ;; + *) + ;; + esac + ;; + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + case $cc_basename in + CC*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + ;; + *) + ;; + esac + ;; + vxworks*) + ;; + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +], +[ + if test yes = "$GCC"; then + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + + case $host_os in + aix*) + # All AIX code is PIC. + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + m68k) + # FIXME: we need at least 68020 code to build shared libraries, but + # adding the '-m68020' flag to GCC prevents building anything better, + # like '-m68040'. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-m68020 -resident32 -malways-restore-a4' + ;; + esac + ;; + + beos* | irix5* | irix6* | nonstopux* | osf3* | osf4* | osf5*) + # PIC is the default for these OSes. + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + # Although the cygwin gcc ignores -fPIC, still need this for old-style + # (--disable-auto-import) libraries + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + ;; + + haiku*) + # PIC is the default for Haiku. + # The "-static" flag exists, but is broken. + _LT_TAGVAR(lt_prog_compiler_static, $1)= + ;; + + hpux*) + # PIC is the default for 64-bit PA HP-UX, but not for 32-bit + # PA HP-UX. On IA64 HP-UX, PIC is the default but the pic flag + # sets the default TLS model and affects inlining. + case $host_cpu in + hppa*64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + ;; + + interix[[3-9]]*) + # Interix 3.x gcc -fpic/-fPIC options generate broken code. + # Instead, we relocate shared libraries at runtime. + ;; + + msdosdjgpp*) + # Just because we use GCC doesn't mean we suddenly get shared libraries + # on systems that don't support them. + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + enable_shared=no + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)=-Kconform_pic + fi + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + ;; + esac + + case $cc_basename in + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Xlinker ' + if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)="-Xcompiler $_LT_TAGVAR(lt_prog_compiler_pic, $1)" + fi + ;; + esac + else + # PORTME Check for flag to pass linker flags through the system compiler. + case $host_os in + aix*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + if test ia64 = "$host_cpu"; then + # AIX 5 now supports IA64 processor + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + else + _LT_TAGVAR(lt_prog_compiler_static, $1)='-bnso -bI:/lib/syscalls.exp' + fi + ;; + + darwin* | rhapsody*) + # PIC is the default on this platform + # Common symbols not allowed in MH_DYLIB files + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fno-common' + case $cc_basename in + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + + mingw* | cygwin* | pw32* | os2* | cegcc*) + # This hack is so that the source file can tell whether it is being + # built for inclusion in a dll (and should export symbols for example). + m4_if([$1], [GCJ], [], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)='-DDLL_EXPORT']) + case $host_os in + os2*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-static' + ;; + esac + ;; + + hpux9* | hpux10* | hpux11*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC is the default for IA64 HP-UX and 64-bit HP-UX, but + # not for PA HP-UX. + case $host_cpu in + hppa*64*|ia64*) + # +Z the default + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='+Z' + ;; + esac + # Is there a better lt_prog_compiler_static that works with the bundled CC? + _LT_TAGVAR(lt_prog_compiler_static, $1)='$wl-a ${wl}archive' + ;; + + irix5* | irix6* | nonstopux*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # PIC (with -KPIC) is the default. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + # old Intel for x86_64, which still supported -KPIC. + ecc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # flang / f18. f95 an alias for gfortran or flang on Debian + flang* | f18* | f95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # icc used to be incompatible with GCC. + # ICC 10 doesn't accept -KPIC any more. + icc* | ifort*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + # Lahey Fortran 8.1. + lf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='--shared' + _LT_TAGVAR(lt_prog_compiler_static, $1)='--static' + ;; + nagfor*) + # NAG Fortran compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,-Wl,,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + pgcc* | pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group compilers (*not* the Pentium gcc compiler, + # which looks to be a dead project) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + ccc*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All Alpha code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + xl* | bgxl* | bgf* | mpixl*) + # IBM XL C 8.0/Fortran 10.1, 11.1 on PPC and BlueGene + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-qpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-qstaticlink' + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ Ceres\ Fortran* | *Sun*Fortran*\ [[1-7]].* | *Sun*Fortran*\ 8.[[0-3]]*) + # Sun Fortran 8.3 passes all unrecognized flags to the linker + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='' + ;; + *Sun\ F* | *Sun*Fortran*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + ;; + *Sun\ C*) + # Sun C 5.9 + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + ;; + *Intel*\ [[CF]]*Compiler*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-static' + ;; + *Portland\ Group*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fpic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + esac + ;; + esac + ;; + + newsos6) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *nto* | *qnx*) + # QNX uses GNU C++, but need to define -shared option too, otherwise + # it will coredump. + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-fPIC -shared' + ;; + + osf3* | osf4* | osf5*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + # All OSF/1 code is PIC. + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + rdos*) + _LT_TAGVAR(lt_prog_compiler_static, $1)='-non_shared' + ;; + + solaris*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + case $cc_basename in + f77* | f90* | f95* | sunf77* | sunf90* | sunf95*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ';; + *) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,';; + esac + ;; + + sunos4*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Qoption ld ' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-PIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4 | sysv4.2uw2* | sysv4.3*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-Kconform_pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + fi + ;; + + sysv5* | unixware* | sco3.2v5* | sco5v6* | OpenUNIX*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-KPIC' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + unicos*) + _LT_TAGVAR(lt_prog_compiler_wl, $1)='-Wl,' + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + + uts4*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)='-pic' + _LT_TAGVAR(lt_prog_compiler_static, $1)='-Bstatic' + ;; + + *) + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no + ;; + esac + fi +]) +case $host_os in + # For platforms that do not support PIC, -DPIC is meaningless: + *djgpp*) + _LT_TAGVAR(lt_prog_compiler_pic, $1)= + ;; + *) + _LT_TAGVAR(lt_prog_compiler_pic, $1)="$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])" + ;; +esac + +AC_CACHE_CHECK([for $compiler option to produce PIC], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)], + [_LT_TAGVAR(lt_cv_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_prog_compiler_pic, $1)]) +_LT_TAGVAR(lt_prog_compiler_pic, $1)=$_LT_TAGVAR(lt_cv_prog_compiler_pic, $1) + +# +# Check to make sure the PIC flag actually works. +# +if test -n "$_LT_TAGVAR(lt_prog_compiler_pic, $1)"; then + _LT_COMPILER_OPTION([if $compiler PIC flag $_LT_TAGVAR(lt_prog_compiler_pic, $1) works], + [_LT_TAGVAR(lt_cv_prog_compiler_pic_works, $1)], + [$_LT_TAGVAR(lt_prog_compiler_pic, $1)@&t@m4_if([$1],[],[ -DPIC],[m4_if([$1],[CXX],[ -DPIC],[])])], [], + [case $_LT_TAGVAR(lt_prog_compiler_pic, $1) in + "" | " "*) ;; + *) _LT_TAGVAR(lt_prog_compiler_pic, $1)=" $_LT_TAGVAR(lt_prog_compiler_pic, $1)" ;; + esac], + [_LT_TAGVAR(lt_prog_compiler_pic, $1)= + _LT_TAGVAR(lt_prog_compiler_can_build_shared, $1)=no]) +fi +_LT_TAGDECL([pic_flag], [lt_prog_compiler_pic], [1], + [Additional compiler flags for building library objects]) + +_LT_TAGDECL([wl], [lt_prog_compiler_wl], [1], + [How to pass a linker flag through the compiler]) +# +# Check to make sure the static flag actually works. +# +wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) eval lt_tmp_static_flag=\"$_LT_TAGVAR(lt_prog_compiler_static, $1)\" +_LT_LINKER_OPTION([if $compiler static flag $lt_tmp_static_flag works], + _LT_TAGVAR(lt_cv_prog_compiler_static_works, $1), + $lt_tmp_static_flag, + [], + [_LT_TAGVAR(lt_prog_compiler_static, $1)=]) +_LT_TAGDECL([link_static_flag], [lt_prog_compiler_static], [1], + [Compiler flag to prevent dynamic linking]) +])# _LT_COMPILER_PIC + + +# _LT_LINKER_SHLIBS([TAGNAME]) +# ---------------------------- +# See if the linker supports building shared libraries. +m4_defun([_LT_LINKER_SHLIBS], +[AC_REQUIRE([LT_PATH_LD])dnl +AC_REQUIRE([LT_PATH_NM])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_DECL_SED])dnl +m4_require([_LT_CMD_GLOBAL_SYMBOLS])dnl +m4_require([_LT_TAG_COMPILER])dnl +AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) +m4_if([$1], [CXX], [ + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + case $host_os in + aix[[4-9]]*) + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + ;; + pw32*) + _LT_TAGVAR(export_symbols_cmds, $1)=$ltdll_cmds + ;; + cygwin* | mingw* | cegcc*) + case $cc_basename in + cl*) + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + ;; + esac + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + *) + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + ;; + esac +], [ + runpath_var= + _LT_TAGVAR(allow_undefined_flag, $1)= + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(archive_cmds, $1)= + _LT_TAGVAR(archive_expsym_cmds, $1)= + _LT_TAGVAR(compiler_needs_object, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED '\''s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(hardcode_automatic, $1)=no + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(hardcode_libdir_separator, $1)= + _LT_TAGVAR(hardcode_minus_L, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported + _LT_TAGVAR(inherit_rpath, $1)=no + _LT_TAGVAR(link_all_deplibs, $1)=unknown + _LT_TAGVAR(module_cmds, $1)= + _LT_TAGVAR(module_expsym_cmds, $1)= + _LT_TAGVAR(old_archive_from_new_cmds, $1)= + _LT_TAGVAR(old_archive_from_expsyms_cmds, $1)= + _LT_TAGVAR(thread_safe_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + # include_expsyms should be a list of space-separated symbols to be *always* + # included in the symbol list + _LT_TAGVAR(include_expsyms, $1)= + # exclude_expsyms can be an extended regexp of symbols to exclude + # it will be wrapped by ' (' and ')$', so one must not match beginning or + # end of line. Example: 'a|bc|.*d.*' will exclude the symbols 'a' and 'bc', + # as well as any symbol that contains 'd'. + _LT_TAGVAR(exclude_expsyms, $1)=['_GLOBAL_OFFSET_TABLE_|_GLOBAL__F[ID]_.*'] + # Although _GLOBAL_OFFSET_TABLE_ is a valid symbol C name, most a.out + # platforms (ab)use it in PIC code, but their linkers get confused if + # the symbol is explicitly referenced. Since portable code cannot + # rely on this symbol name, it's probably fine to never include it in + # preloaded symbol tables. + # Exclude shared library initialization/finalization symbols. +dnl Note also adjust exclude_expsyms for C++ above. + extract_expsyms_cmds= + + case $host_os in + cygwin* | mingw* | pw32* | cegcc*) + # FIXME: the MSVC++ port hasn't been tested in a loooong time + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + if test yes != "$GCC"; then + with_gnu_ld=no + fi + ;; + interix*) + # we just hope/assume this is gcc and not c89 (= MSVC++) + with_gnu_ld=yes + ;; + openbsd* | bitrig*) + with_gnu_ld=no + ;; + linux* | k*bsd*-gnu | gnu*) + _LT_TAGVAR(link_all_deplibs, $1)=no + ;; + esac + + _LT_TAGVAR(ld_shlibs, $1)=yes + + # On some targets, GNU ld is compatible enough with the native linker + # that we're better off using the native interface for both. + lt_use_gnu_ld_interface=no + if test yes = "$with_gnu_ld"; then + case $host_os in + aix*) + # The AIX port of GNU ld has always aspired to compatibility + # with the native linker. However, as the warning in the GNU ld + # block says, versions before 2.19.5* couldn't really create working + # shared libraries, regardless of the interface used. + case `$LD -v 2>&1` in + *\ \(GNU\ Binutils\)\ 2.19.5*) ;; + *\ \(GNU\ Binutils\)\ 2.[[2-9]]*) ;; + *\ \(GNU\ Binutils\)\ [[3-9]]*) ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + ;; + *) + lt_use_gnu_ld_interface=yes + ;; + esac + fi + + if test yes = "$lt_use_gnu_ld_interface"; then + # If archive_cmds runs LD, not CC, wlarc should be empty + wlarc='$wl' + + # Set some defaults for GNU ld with shared library support. These + # are reset later if shared libraries are not supported. Putting them + # here allows them to be overridden if necessary. + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + # ancient GNU ld didn't support --whole-archive et. al. + if $LD --help 2>&1 | $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + supports_anon_versioning=no + case `$LD -v | $SED -e 's/([^)]\+)\s\+//' 2>&1` in + *GNU\ gold*) supports_anon_versioning=yes ;; + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.10.*) ;; # catch versions < 2.11 + *\ 2.11.93.0.2\ *) supports_anon_versioning=yes ;; # RH7.3 ... + *\ 2.11.92.0.12\ *) supports_anon_versioning=yes ;; # Mandrake 8.2 ... + *\ 2.11.*) ;; # other 2.11 versions + *) supports_anon_versioning=yes ;; + esac + + # See if GNU ld supports shared libraries. + case $host_os in + aix[[3-9]]*) + # On AIX/PPC, the GNU linker is very broken + if test ia64 != "$host_cpu"; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: the GNU linker, at least up to release 2.19, is reported +*** to be unable to reliably create shared libraries on AIX. +*** Therefore, libtool is disabling shared libraries support. If you +*** really care for shared libraries, you may want to install binutils +*** 2.20 or above, or modify your PATH so that a non-GNU linker is found. +*** You will then need to restart the configuration process. + +_LT_EOF + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1 DATA/;s/^.*[[ ]]__nm__\([[^ ]]*\)[[ ]][[^ ]]*/\1 DATA/;/^I[[ ]]/d;/^[[AITW]][[ ]]/s/.* //'\'' | sort | uniq > $export_symbols' + _LT_TAGVAR(exclude_expsyms, $1)=['[_]+GLOBAL_OFFSET_TABLE_|[_]+GLOBAL__[FID]_.*|[_]+head_[A-Za-z0-9_]+_dll|[A-Za-z0-9_]+_dll_iname'] + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared $output_objdir/$soname.def $libobjs $deplibs $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + + gnu* | linux* | tpf* | k*bsd*-gnu | kopensolaris*-gnu) + tmp_diet=no + if test linux-dietlibc = "$host_os"; then + case $cc_basename in + diet\ *) tmp_diet=yes;; # linux-dietlibc with static linking (!diet-dyn) + esac + fi + if $LD --help 2>&1 | $EGREP ': supported targets:.* elf' > /dev/null \ + && test no = "$tmp_diet" + then + tmp_addflag=' $pic_flag' + tmp_sharedflag='-shared' + case $cc_basename,$host_cpu in + pgcc*) # Portland Group C compiler + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag' + ;; + pgf77* | pgf90* | pgf95* | pgfortran*) + # Portland Group f77 and f90 compilers + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + tmp_addflag=' $pic_flag -Mnomain' ;; + ecc*,ia64* | icc*,ia64*) # Intel C compiler on ia64 + tmp_addflag=' -i_dynamic' ;; + efc*,ia64* | ifort*,ia64*) # Intel Fortran compiler on ia64 + tmp_addflag=' -i_dynamic -nofor_main' ;; + ifc* | ifort*) # Intel Fortran compiler + tmp_addflag=' -nofor_main' ;; + lf95*) # Lahey Fortran 8.1 + _LT_TAGVAR(whole_archive_flag_spec, $1)= + tmp_sharedflag='--shared' ;; + nagfor*) # NAGFOR 5.3 + tmp_sharedflag='-Wl,-shared' ;; + xl[[cC]]* | bgxl[[cC]]* | mpixl[[cC]]*) # IBM XL C 8.0 on PPC (deal with xlf below) + tmp_sharedflag='-qmkshrobj' + tmp_addflag= ;; + nvcc*) # Cuda Compiler Driver 2.2 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + ;; + esac + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) # Sun C 5.9 + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + tmp_sharedflag='-G' ;; + *Sun\ F*) # Sun Fortran 8.3 + tmp_sharedflag='-G' ;; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC '"$tmp_sharedflag""$tmp_addflag"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + + case $cc_basename in + tcc*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-rdynamic' + ;; + xlf* | bgf* | bgxlf* | mpixlf*) + # IBM XL Fortran 10.1 on PPC cannot create shared libs itself + _LT_TAGVAR(whole_archive_flag_spec, $1)='--whole-archive$convenience --no-whole-archive' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$LD -shared $libobjs $deplibs $linker_flags -soname $soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $LD -shared $libobjs $deplibs $linker_flags -soname $soname -version-script $output_objdir/$libname.ver -o $lib' + fi + ;; + esac + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable $libobjs $deplibs $linker_flags -o $lib' + wlarc= + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + fi + ;; + + solaris*) + if $LD -v 2>&1 | $GREP 'BFD 2\.8' > /dev/null; then + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: The releases 2.8.* of the GNU linker cannot reliably +*** create shared libraries on Solaris systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.9.1 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + elif $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + sysv5* | sco3.2v5* | sco5v6* | unixware* | OpenUNIX*) + case `$LD -v 2>&1` in + *\ [[01]].* | *\ 2.[[0-9]].* | *\ 2.1[[0-5]].*) + _LT_TAGVAR(ld_shlibs, $1)=no + cat <<_LT_EOF 1>&2 + +*** Warning: Releases of the GNU linker prior to 2.16.91.0.3 cannot +*** reliably create shared libraries on SCO systems. Therefore, libtool +*** is disabling shared libraries support. We urge you to upgrade GNU +*** binutils to release 2.16.91.0.3 or newer. Another option is to modify +*** your PATH or compiler configuration so that the native linker is +*** used, and then restart. + +_LT_EOF + ;; + *) + # For security reasons, it is highly recommended that you always + # use absolute paths for naming shared libraries, and exclude the + # DT_RUNPATH tag from executables and libraries. But doing so + # requires that you compile everything twice, which is a pain. + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + sunos4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bshareable -o $lib $libobjs $deplibs $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + + if test no = "$_LT_TAGVAR(ld_shlibs, $1)"; then + runpath_var= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)= + _LT_TAGVAR(export_dynamic_flag_spec, $1)= + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + # PORTME fill in a description of your system's linker (not GNU ld) + case $host_os in + aix3*) + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$LD -o $output_objdir/$soname $libobjs $deplibs $linker_flags -bE:$export_symbols -T512 -H512 -bM:SRE~$AR $AR_FLAGS $lib $output_objdir/$soname' + # Note: this linker hardcodes the directories in LIBPATH if there + # are no directories specified by -L. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + if test yes = "$GCC" && test -z "$lt_prog_compiler_static"; then + # Neither direct hardcoding nor static linking is supported with a + # broken collect2. + _LT_TAGVAR(hardcode_direct, $1)=unsupported + fi + ;; + + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + # If we're using GNU nm, then we don't want the "-C" option. + # -C means demangle to GNU nm, but means don't demangle to AIX nm. + # Without the "-l" option, or with the "-B" option, AIX nm treats + # weak defined symbols like other global defined symbols, whereas + # GNU nm marks them as "W". + # While the 'weak' keyword is ignored in the Export File, we need + # it in the Import File for the 'aix-soname' feature, so we have + # to replace the "-B" option with "-P" for AIX nm. + if $NM -V 2>&1 | $GREP 'GNU' > /dev/null; then + _LT_TAGVAR(export_symbols_cmds, $1)='$NM -Bpg $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W")) && ([substr](\$ 3,1,1) != ".")) { if (\$ 2 == "W") { print \$ 3 " weak" } else { print \$ 3 } } }'\'' | sort -u > $export_symbols' + else + _LT_TAGVAR(export_symbols_cmds, $1)='`func_echo_all $NM | $SED -e '\''s/B\([[^B]]*\)$/P\1/'\''` -PCpgl $libobjs $convenience | awk '\''{ if (((\$ 2 == "T") || (\$ 2 == "D") || (\$ 2 == "B") || (\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) && ([substr](\$ 1,1,1) != ".")) { if ((\$ 2 == "W") || (\$ 2 == "V") || (\$ 2 == "Z")) { print \$ 1 " weak" } else { print \$ 1 } } }'\'' | sort -u > $export_symbols' + fi + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + if (test x-brtl = "x$ld_flag" || test x-Wl,-brtl = "x$ld_flag"); then + aix_use_runtimelinking=yes + break + fi + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # traditional, no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GCC"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + ;; + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag="$shared_flag "'$wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(allow_undefined_flag, $1)='-berok' + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared libraries. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + amigaos*) + case $host_cpu in + powerpc) + # see comment about AmigaOS4 .so support + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='' + ;; + m68k) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/a2ixlibrary.data~$ECHO "#define NAME $libname" > $output_objdir/a2ixlibrary.data~$ECHO "#define LIBRARY_ID 1" >> $output_objdir/a2ixlibrary.data~$ECHO "#define VERSION $major" >> $output_objdir/a2ixlibrary.data~$ECHO "#define REVISION $revision" >> $output_objdir/a2ixlibrary.data~$AR $AR_FLAGS $lib $libobjs~$RANLIB $lib~(cd $output_objdir && a2ixlibrary -32)' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + ;; + + bsdi[[45]]*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)=-rdynamic + ;; + + cygwin* | mingw* | pw32* | cegcc*) + # When not using gcc, we currently assume that we are using + # Microsoft Visual C++. + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + case $cc_basename in + cl*) + # Native MSVC + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + _LT_TAGVAR(exclude_expsyms, $1)='_NULL_IMPORT_DESCRIPTOR|_IMPORT_DESCRIPTOR_.*' + _LT_TAGVAR(export_symbols_cmds, $1)='$NM $libobjs $convenience | $global_symbol_pipe | $SED -e '\''/^[[BCDGRS]][[ ]]/s/.*[[ ]]\([[^ ]]*\)/\1,DATA/'\'' | $SED -e '\''/^[[AITW]][[ ]]/s/.*[[ ]]//'\'' | sort | uniq > $export_symbols' + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # Assume MSVC wrapper + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $lib $libobjs $compiler_flags `func_echo_all "$deplibs" | $SED '\''s/ -lc$//'\''` -link -dll~linknames=' + # The linker will automatically build a .lib file if we build a DLL. + _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + # FIXME: Should let the user specify the lib program. + _LT_TAGVAR(old_archive_cmds, $1)='lib -OUT:$oldlib$oldobjs$old_deplibs' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + esac + ;; + + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + dgux*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 2.2.[012] allows us to include c++rt0.o to get C++ constructor + # support. Future versions do this automatically, but an explicit c++rt0.o + # does not break anything, and helps significantly (at the cost of a little + # extra space). + freebsd2.2*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags /usr/lib/c++rt0.o' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # Unfortunately, older versions of FreeBSD 2 do not have this feature. + freebsd2.*) + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + # FreeBSD 3 and greater uses gcc -shared to do shared libraries. + freebsd* | dragonfly*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + hpux9*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $libobjs $deplibs $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$LD -b +b $install_libdir -o $output_objdir/$soname $libobjs $deplibs $linker_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + + hpux10*) + if test yes,no = "$GCC,$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags' + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + fi + ;; + + hpux11*) + if test yes,no = "$GCC,$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + else + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + m4_if($1, [], [ + # Older versions of the 11.00 compiler do not understand -b yet + # (HP92453-01 A.11.01.20 doesn't, HP92453-01 B.11.X.35175-35176.GP does) + _LT_LINKER_OPTION([if $CC understands -b], + _LT_TAGVAR(lt_cv_prog_compiler__b, $1), [-b], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags'], + [_LT_TAGVAR(archive_cmds, $1)='$LD -b +h $soname +b $install_libdir -o $lib $libobjs $deplibs $linker_flags'])], + [_LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $libobjs $deplibs $compiler_flags']) + ;; + esac + fi + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + + # hardcode_minus_L: Not really in the search PATH, + # but as the default location of the library. + _LT_TAGVAR(hardcode_minus_L, $1)=yes + ;; + esac + fi + ;; + + irix5* | irix6* | nonstopux*) + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + # Try to use the -exported_symbol ld option, if it does not + # work, assume that -exports_file does not work either and + # implicitly export all symbols. + # This should be the same for all languages, so no per-tag cache variable. + AC_CACHE_CHECK([whether the $host_os linker accepts -exported_symbol], + [lt_cv_irix_exported_symbol], + [save_LDFLAGS=$LDFLAGS + LDFLAGS="$LDFLAGS -shared $wl-exported_symbol ${wl}foo $wl-update_registry $wl/dev/null" + AC_LINK_IFELSE( + [AC_LANG_SOURCE( + [AC_LANG_CASE([C], [[int foo (void) { return 0; }]], + [C++], [[int foo (void) { return 0; }]], + [Fortran 77], [[ + subroutine foo + end]], + [Fortran], [[ + subroutine foo + end]])])], + [lt_cv_irix_exported_symbol=yes], + [lt_cv_irix_exported_symbol=no]) + LDFLAGS=$save_LDFLAGS]) + if test yes = "$lt_cv_irix_exported_symbol"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations $wl-exports_file $wl$export_symbols -o $lib' + fi + _LT_TAGVAR(link_all_deplibs, $1)=no + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -exports_file $export_symbols -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + linux*) + case $cc_basename in + tcc*) + # Fabrice Bellard et al's Tiny C Compiler + _LT_TAGVAR(ld_shlibs, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + netbsd* | netbsdelf*-gnu) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $libobjs $deplibs $linker_flags' # a.out + else + _LT_TAGVAR(archive_cmds, $1)='$LD -shared -o $lib $libobjs $deplibs $linker_flags' # ELF + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + newsos6) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *nto* | *qnx*) + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + if test -z "`echo __ELF__ | $CC -E - | $GREP __ELF__`"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags $wl-retain-symbols-file,$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + fi + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + osf3*) + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + osf4* | osf5*) # as osf3* with the addition of -msym flag + if test yes = "$GCC"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $pic_flag $libobjs $deplibs $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + else + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $libobjs $deplibs $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done; printf "%s\\n" "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $wl-input $wl$lib.exp $compiler_flags $libobjs $deplibs -soname $soname `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~$RM $lib.exp' + + # Both c and cxx compiler support -rpath directly + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)='no' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + ;; + + solaris*) + _LT_TAGVAR(no_undefined_flag, $1)=' -z defs' + if test yes = "$GCC"; then + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $wl-z ${wl}text $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag $wl-z ${wl}text $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + else + case `$CC -V 2>&1` in + *"Compilers 5.0"*) + wlarc='' + _LT_TAGVAR(archive_cmds, $1)='$LD -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $LD -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $linker_flags~$RM $lib.exp' + ;; + *) + wlarc='$wl' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h $soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag -M $lib.exp -h $soname -o $lib $libobjs $deplibs $compiler_flags~$RM $lib.exp' + ;; + esac + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. GCC discards it without '$wl', + # but is careful enough not to reorder. + # Supported since Solaris 2.6 (maybe 2.5.1?) + if test yes = "$GCC"; then + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + fi + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + sunos4*) + if test sequent = "$host_vendor"; then + # Use $CC to link under sequent, because it throws in some extra .o + # files that make .init and .fini sections work. + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h $soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$LD -assert pure-text -Bstatic -o $lib $libobjs $deplibs $linker_flags' + fi + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4) + case $host_vendor in + sni) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=yes # is this really true??? + ;; + siemens) + ## LD is ld it makes a PLAMLIB + ## CC just makes a GrossModule. + _LT_TAGVAR(archive_cmds, $1)='$LD -G -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(reload_cmds, $1)='$CC -r -o $output$reload_objs' + _LT_TAGVAR(hardcode_direct, $1)=no + ;; + motorola) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_direct, $1)=no #Motorola manual says yes, but my tests say they lie + ;; + esac + runpath_var='LD_RUN_PATH' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + sysv4.3*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(export_dynamic_flag_spec, $1)='-Bexport' + ;; + + sysv4*MP*) + if test -d /usr/nec; then + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var=LD_RUN_PATH + hardcode_runpath_var=yes + _LT_TAGVAR(ld_shlibs, $1)=yes + fi + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + if test yes = "$GCC"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + fi + ;; + + uts4*) + _LT_TAGVAR(archive_cmds, $1)='$LD -G -h $soname -o $lib $libobjs $deplibs $linker_flags' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + + *) + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + if test sni = "$host_vendor"; then + case $host in + sysv4 | sysv4.2uw2* | sysv4.3* | sysv5*) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Blargedynsym' + ;; + esac + fi + fi +]) +AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) +test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + +_LT_TAGVAR(with_gnu_ld, $1)=$with_gnu_ld + +_LT_DECL([], [libext], [0], [Old archive suffix (normally "a")])dnl +_LT_DECL([], [shrext_cmds], [1], [Shared library suffix (normally ".so")])dnl +_LT_DECL([], [extract_expsyms_cmds], [2], + [The commands to extract the exported symbol list from a shared archive]) + +# +# Do we need to explicitly link libc? +# +case "x$_LT_TAGVAR(archive_cmds_need_lc, $1)" in +x|xyes) + # Assume -lc should be added + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + + if test yes,yes = "$GCC,$enable_shared"; then + case $_LT_TAGVAR(archive_cmds, $1) in + *'~'*) + # FIXME: we may have to deal with multi-command sequences. + ;; + '$CC '*) + # Test whether the compiler implicitly links with -lc since on some + # systems, -lgcc has to come before -lc. If gcc already passes -lc + # to ld, don't add -lc before -lgcc. + AC_CACHE_CHECK([whether -lc should be explicitly linked in], + [lt_cv_]_LT_TAGVAR(archive_cmds_need_lc, $1), + [$RM conftest* + echo "$lt_simple_compile_test_code" > conftest.$ac_ext + + if AC_TRY_EVAL(ac_compile) 2>conftest.err; then + soname=conftest + lib=conftest + libobjs=conftest.$ac_objext + deplibs= + wl=$_LT_TAGVAR(lt_prog_compiler_wl, $1) + pic_flag=$_LT_TAGVAR(lt_prog_compiler_pic, $1) + compiler_flags=-v + linker_flags=-v + verstring= + output_objdir=. + libname=conftest + lt_save_allow_undefined_flag=$_LT_TAGVAR(allow_undefined_flag, $1) + _LT_TAGVAR(allow_undefined_flag, $1)= + if AC_TRY_EVAL(_LT_TAGVAR(archive_cmds, $1) 2\>\&1 \| $GREP \" -lc \" \>/dev/null 2\>\&1) + then + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=no + else + lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1)=yes + fi + _LT_TAGVAR(allow_undefined_flag, $1)=$lt_save_allow_undefined_flag + else + cat conftest.err 1>&5 + fi + $RM conftest* + ]) + _LT_TAGVAR(archive_cmds_need_lc, $1)=$lt_cv_[]_LT_TAGVAR(archive_cmds_need_lc, $1) + ;; + esac + fi + ;; +esac + +_LT_TAGDECL([build_libtool_need_lc], [archive_cmds_need_lc], [0], + [Whether or not to add -lc for building shared libraries]) +_LT_TAGDECL([allow_libtool_libs_with_static_runtimes], + [enable_shared_with_static_runtimes], [0], + [Whether or not to disallow shared libs when runtime libs are static]) +_LT_TAGDECL([], [export_dynamic_flag_spec], [1], + [Compiler flag to allow reflexive dlopens]) +_LT_TAGDECL([], [whole_archive_flag_spec], [1], + [Compiler flag to generate shared objects directly from archives]) +_LT_TAGDECL([], [compiler_needs_object], [1], + [Whether the compiler copes with passing no objects directly]) +_LT_TAGDECL([], [old_archive_from_new_cmds], [2], + [Create an old-style archive from a shared archive]) +_LT_TAGDECL([], [old_archive_from_expsyms_cmds], [2], + [Create a temporary old-style archive to link instead of a shared archive]) +_LT_TAGDECL([], [archive_cmds], [2], [Commands used to build a shared archive]) +_LT_TAGDECL([], [archive_expsym_cmds], [2]) +_LT_TAGDECL([], [module_cmds], [2], + [Commands used to build a loadable module if different from building + a shared archive.]) +_LT_TAGDECL([], [module_expsym_cmds], [2]) +_LT_TAGDECL([], [with_gnu_ld], [1], + [Whether we are building with GNU ld or not]) +_LT_TAGDECL([], [allow_undefined_flag], [1], + [Flag that allows shared libraries with undefined symbols to be built]) +_LT_TAGDECL([], [no_undefined_flag], [1], + [Flag that enforces no undefined symbols]) +_LT_TAGDECL([], [hardcode_libdir_flag_spec], [1], + [Flag to hardcode $libdir into a binary during linking. + This must work even if $libdir does not exist]) +_LT_TAGDECL([], [hardcode_libdir_separator], [1], + [Whether we need a single "-rpath" flag with a separated argument]) +_LT_TAGDECL([], [hardcode_direct], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary]) +_LT_TAGDECL([], [hardcode_direct_absolute], [0], + [Set to "yes" if using DIR/libNAME$shared_ext during linking hardcodes + DIR into the resulting binary and the resulting library dependency is + "absolute", i.e impossible to change by setting $shlibpath_var if the + library is relocated]) +_LT_TAGDECL([], [hardcode_minus_L], [0], + [Set to "yes" if using the -LDIR flag during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_shlibpath_var], [0], + [Set to "yes" if using SHLIBPATH_VAR=DIR during linking hardcodes DIR + into the resulting binary]) +_LT_TAGDECL([], [hardcode_automatic], [0], + [Set to "yes" if building a shared library automatically hardcodes DIR + into the library and all subsequent libraries and executables linked + against it]) +_LT_TAGDECL([], [inherit_rpath], [0], + [Set to yes if linker adds runtime paths of dependent libraries + to runtime path list]) +_LT_TAGDECL([], [link_all_deplibs], [0], + [Whether libtool must link a program against all its dependency libraries]) +_LT_TAGDECL([], [always_export_symbols], [0], + [Set to "yes" if exported symbols are required]) +_LT_TAGDECL([], [export_symbols_cmds], [2], + [The commands to list exported symbols]) +_LT_TAGDECL([], [exclude_expsyms], [1], + [Symbols that should not be listed in the preloaded symbols]) +_LT_TAGDECL([], [include_expsyms], [1], + [Symbols that must always be exported]) +_LT_TAGDECL([], [prelink_cmds], [2], + [Commands necessary for linking programs (against libraries) with templates]) +_LT_TAGDECL([], [postlink_cmds], [2], + [Commands necessary for finishing linking programs]) +_LT_TAGDECL([], [file_list_spec], [1], + [Specify filename containing input files]) +dnl FIXME: Not yet implemented +dnl _LT_TAGDECL([], [thread_safe_flag_spec], [1], +dnl [Compiler flag to generate thread safe objects]) +])# _LT_LINKER_SHLIBS + + +# _LT_LANG_C_CONFIG([TAG]) +# ------------------------ +# Ensure that the configuration variables for a C compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_C_CONFIG], +[m4_require([_LT_DECL_EGREP])dnl +lt_save_CC=$CC +AC_LANG_PUSH(C) + +# Source file extension for C test sources. +ac_ext=c + +# Object file extension for compiled C test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="int some_variable = 0;" + +# Code to be used in simple link tests +lt_simple_link_test_code='int main(){return(0);}' + +_LT_TAG_COMPILER +# Save the default compiler, since it gets overwritten when the other +# tags are being tested, and _LT_TAGVAR(compiler, []) is a NOP. +compiler_DEFAULT=$CC + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + LT_SYS_DLOPEN_SELF + _LT_CMD_STRIPLIB + + # Report what library types will actually be built + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_CONFIG($1) +fi +AC_LANG_POP +CC=$lt_save_CC +])# _LT_LANG_C_CONFIG + + +# _LT_LANG_CXX_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a C++ compiler are suitably +# defined. These variables are subsequently used by _LT_CONFIG to write +# the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_CXX_CONFIG], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +m4_require([_LT_DECL_EGREP])dnl +m4_require([_LT_PATH_MANIFEST_TOOL])dnl +if test -n "$CXX" && ( test no != "$CXX" && + ( (test g++ = "$CXX" && `g++ -v >/dev/null 2>&1` ) || + (test g++ != "$CXX"))); then + AC_PROG_CXXCPP +else + _lt_caught_CXX_error=yes +fi + +AC_LANG_PUSH(C++) +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(compiler_needs_object, $1)=no +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_shlibpath_var, $1)=unsupported +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for C++ test sources. +ac_ext=cpp + +# Object file extension for compiled C++ test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the CXX compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_caught_CXX_error"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="int some_variable = 0;" + + # Code to be used in simple link tests + lt_simple_link_test_code='int main(int, char *[[]]) { return(0); }' + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_CFLAGS=$CFLAGS + lt_save_LD=$LD + lt_save_GCC=$GCC + GCC=$GXX + lt_save_with_gnu_ld=$with_gnu_ld + lt_save_path_LD=$lt_cv_path_LD + if test -n "${lt_cv_prog_gnu_ldcxx+set}"; then + lt_cv_prog_gnu_ld=$lt_cv_prog_gnu_ldcxx + else + $as_unset lt_cv_prog_gnu_ld + fi + if test -n "${lt_cv_path_LDCXX+set}"; then + lt_cv_path_LD=$lt_cv_path_LDCXX + else + $as_unset lt_cv_path_LD + fi + test -z "${LDCXX+set}" || LD=$LDCXX + CC=${CXX-"c++"} + CFLAGS=$CXXFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + # We don't want -fno-exception when compiling C++ code, so set the + # no_builtin_flag separately + if test yes = "$GXX"; then + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)=' -fno-builtin' + else + _LT_TAGVAR(lt_prog_compiler_no_builtin_flag, $1)= + fi + + if test yes = "$GXX"; then + # Set up default GNU C++ configuration + + LT_PATH_LD + + # Check if GNU C++ uses GNU ld as the underlying linker, since the + # archiving commands below assume that GNU ld is being used. + if test yes = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC $pic_flag -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # If archive_cmds runs LD, not CC, wlarc should be empty + # XXX I think wlarc can be eliminated in ltcf-cxx, but I need to + # investigate it a little bit more. (MM) + wlarc='$wl' + + # ancient GNU ld didn't support --whole-archive et. al. + if eval "`$CC -print-prog-name=ld` --help 2>&1" | + $GREP 'no-whole-archive' > /dev/null; then + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + else + _LT_TAGVAR(whole_archive_flag_spec, $1)= + fi + else + with_gnu_ld=no + wlarc= + + # A generic and very simple default shared library creation + # command for GNU C++ for the case where it uses the native + # linker, instead of GNU ld. If possible, this setting should + # overridden to take advantage of the native linker features on + # the platform it is being used on. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + fi + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + GXX=no + with_gnu_ld=no + wlarc= + fi + + # PORTME: fill in a description of your system's C++ link characteristics + AC_MSG_CHECKING([whether the $compiler linker ($LD) supports shared libraries]) + _LT_TAGVAR(ld_shlibs, $1)=yes + case $host_os in + aix3*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aix[[4-9]]*) + if test ia64 = "$host_cpu"; then + # On IA64, the linker does run time linking by default, so we don't + # have to do anything special. + aix_use_runtimelinking=no + exp_sym_flag='-Bexport' + no_entry_flag= + else + aix_use_runtimelinking=no + + # Test if we are trying to use run time linking or normal + # AIX style linking. If -brtl is somewhere in LDFLAGS, we + # have runtime linking enabled, and use it for executables. + # For shared libraries, we enable/disable runtime linking + # depending on the kind of the shared library created - + # when "with_aix_soname,aix_use_runtimelinking" is: + # "aix,no" lib.a(lib.so.V) shared, rtl:no, for executables + # "aix,yes" lib.so shared, rtl:yes, for executables + # lib.a static archive + # "both,no" lib.so.V(shr.o) shared, rtl:yes + # lib.a(lib.so.V) shared, rtl:no, for executables + # "both,yes" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a(lib.so.V) shared, rtl:no + # "svr4,*" lib.so.V(shr.o) shared, rtl:yes, for executables + # lib.a static archive + case $host_os in aix4.[[23]]|aix4.[[23]].*|aix[[5-9]]*) + for ld_flag in $LDFLAGS; do + case $ld_flag in + *-brtl*) + aix_use_runtimelinking=yes + break + ;; + esac + done + if test svr4,no = "$with_aix_soname,$aix_use_runtimelinking"; then + # With aix-soname=svr4, we create the lib.so.V shared archives only, + # so we don't have lib.a shared libs to link our executables. + # We have to force runtime linking in this case. + aix_use_runtimelinking=yes + LDFLAGS="$LDFLAGS -Wl,-brtl" + fi + ;; + esac + + exp_sym_flag='-bexport' + no_entry_flag='-bnoentry' + fi + + # When large executables or shared objects are built, AIX ld can + # have problems creating the table of contents. If linking a library + # or program results in "error TOC overflow" add -mminimal-toc to + # CXXFLAGS/CFLAGS for g++/gcc. In the cases where that is not + # enough to fix the problem, add -Wl,-bbigtoc to LDFLAGS. + + _LT_TAGVAR(archive_cmds, $1)='' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='$wl-f,' + case $with_aix_soname,$aix_use_runtimelinking in + aix,*) ;; # no import file + svr4,* | *,yes) # use import file + # The Import File defines what to hardcode. + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=no + ;; + esac + + if test yes = "$GXX"; then + case $host_os in aix4.[[012]]|aix4.[[012]].*) + # We only want to do this on AIX 4.2 and lower, the check + # below for broken collect2 doesn't work under 4.3+ + collect2name=`$CC -print-prog-name=collect2` + if test -f "$collect2name" && + strings "$collect2name" | $GREP resolve_lib_name >/dev/null + then + # We have reworked collect2 + : + else + # We have old collect2 + _LT_TAGVAR(hardcode_direct, $1)=unsupported + # It fails to find uninstalled libraries when the uninstalled + # path is not listed in the libpath. Setting hardcode_minus_L + # to unsupported forces relinking + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)= + fi + esac + shared_flag='-shared' + if test yes = "$aix_use_runtimelinking"; then + shared_flag=$shared_flag' $wl-G' + fi + # Need to ensure runtime linking is disabled for the traditional + # shared library, or the linker may eventually find shared libraries + # /with/ Import File - we do not want to mix them. + shared_flag_aix='-shared' + shared_flag_svr4='-shared $wl-G' + else + # not using gcc + if test ia64 = "$host_cpu"; then + # VisualAge C++, Version 5.5 for AIX 5L for IA-64, Beta 3 Release + # chokes on -Wl,-G. The following line is correct: + shared_flag='-G' + else + if test yes = "$aix_use_runtimelinking"; then + shared_flag='$wl-G' + else + shared_flag='$wl-bM:SRE' + fi + shared_flag_aix='$wl-bM:SRE' + shared_flag_svr4='$wl-G' + fi + fi + + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-bexpall' + # It seems that -bexpall does not export symbols beginning with + # underscore (_), so it is better to generate a list of symbols to + # export. + _LT_TAGVAR(always_export_symbols, $1)=yes + if test aix,yes = "$with_aix_soname,$aix_use_runtimelinking"; then + # Warning - without using the other runtime loading flags (-brtl), + # -berok will link without error, but may produce a broken library. + # The "-G" linker flag allows undefined symbols. + _LT_TAGVAR(no_undefined_flag, $1)='-bernotok' + # Determine the default libpath from the value encoded in an empty + # executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $deplibs $wl'$no_entry_flag' $compiler_flags `if test -n "$allow_undefined_flag"; then func_echo_all "$wl$allow_undefined_flag"; else :; fi` $wl'$exp_sym_flag:\$export_symbols' '$shared_flag + else + if test ia64 = "$host_cpu"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $libdir:/usr/lib:/lib' + _LT_TAGVAR(allow_undefined_flag, $1)="-z nodefs" + _LT_TAGVAR(archive_expsym_cmds, $1)="\$CC $shared_flag"' -o $output_objdir/$soname $libobjs $deplibs '"\$wl$no_entry_flag"' $compiler_flags $wl$allow_undefined_flag '"\$wl$exp_sym_flag:\$export_symbols" + else + # Determine the default libpath from the value encoded in an + # empty executable. + _LT_SYS_MODULE_PATH_AIX([$1]) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-blibpath:$libdir:'"$aix_libpath" + # Warning - without using the other run time loading flags, + # -berok will link without error, but may produce a broken library. + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-bernotok' + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-berok' + if test yes = "$with_gnu_ld"; then + # We only use this code for GNU lds that support --whole-archive. + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + else + # Exported symbols can be pulled into shared objects from archives + _LT_TAGVAR(whole_archive_flag_spec, $1)='$convenience' + fi + _LT_TAGVAR(archive_cmds_need_lc, $1)=yes + _LT_TAGVAR(archive_expsym_cmds, $1)='$RM -r $output_objdir/$realname.d~$MKDIR $output_objdir/$realname.d' + # -brtl affects multiple linker settings, -berok does not and is overridden later + compiler_flags_filtered='`func_echo_all "$compiler_flags " | $SED -e "s%-brtl\\([[, ]]\\)%-berok\\1%g"`' + if test svr4 != "$with_aix_soname"; then + # This is similar to how AIX traditionally builds its shared + # libraries. Need -bnortl late, we may have -brtl in LDFLAGS. + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_aix' -o $output_objdir/$realname.d/$soname $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$AR $AR_FLAGS $output_objdir/$libname$release.a $output_objdir/$realname.d/$soname' + fi + if test aix != "$with_aix_soname"; then + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$CC '$shared_flag_svr4' -o $output_objdir/$realname.d/$shared_archive_member_spec.o $libobjs $deplibs $wl-bnoentry '$compiler_flags_filtered'$wl-bE:$export_symbols$allow_undefined_flag~$STRIP -e $output_objdir/$realname.d/$shared_archive_member_spec.o~( func_echo_all "#! $soname($shared_archive_member_spec.o)"; if test shr_64 = "$shared_archive_member_spec"; then func_echo_all "# 64"; else func_echo_all "# 32"; fi; cat $export_symbols ) > $output_objdir/$realname.d/$shared_archive_member_spec.imp~$AR $AR_FLAGS $output_objdir/$soname $output_objdir/$realname.d/$shared_archive_member_spec.o $output_objdir/$realname.d/$shared_archive_member_spec.imp' + else + # used by -dlpreopen to get the symbols + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$MV $output_objdir/$realname.d/$soname $output_objdir' + fi + _LT_TAGVAR(archive_expsym_cmds, $1)="$_LT_TAGVAR(archive_expsym_cmds, $1)"'~$RM -r $output_objdir/$realname.d' + fi + fi + ;; + + beos*) + if $LD --help 2>&1 | $GREP ': supported targets:.* elf' > /dev/null; then + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + # Joseph Beckenbach says some releases of gcc + # support --undefined. This deserves some investigation. FIXME + _LT_TAGVAR(archive_cmds, $1)='$CC -nostart $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + chorus*) + case $cc_basename in + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + cygwin* | mingw* | pw32* | cegcc*) + case $GXX,$cc_basename in + ,cl* | no,cl*) + # Native MSVC + # hardcode_libdir_flag_spec is actually meaningless, as there is + # no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)=' ' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=yes + _LT_TAGVAR(file_list_spec, $1)='@' + # Tell ltmain to make .lib files, not .a files. + libext=lib + # Tell ltmain to make .dll files, not .so files. + shrext_cmds=.dll + # FIXME: Setting linknames here is a bad hack. + _LT_TAGVAR(archive_cmds, $1)='$CC -o $output_objdir/$soname $libobjs $compiler_flags $deplibs -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~linknames=' + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp "$export_symbols" "$output_objdir/$soname.def"; + echo "$tool_output_objdir$soname.def" > "$output_objdir/$soname.exp"; + else + $SED -e '\''s/^/-link -EXPORT:/'\'' < $export_symbols > $output_objdir/$soname.exp; + fi~ + $CC -o $tool_output_objdir$soname $libobjs $compiler_flags $deplibs "@$tool_output_objdir$soname.exp" -Wl,-DLL,-IMPLIB:"$tool_output_objdir$libname.dll.lib"~ + linknames=' + # The linker will not automatically build a static lib if we build a DLL. + # _LT_TAGVAR(old_archive_from_new_cmds, $1)='true' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + # Don't use ranlib + _LT_TAGVAR(old_postinstall_cmds, $1)='chmod 644 $oldlib' + _LT_TAGVAR(postlink_cmds, $1)='lt_outputfile="@OUTPUT@"~ + lt_tool_outputfile="@TOOL_OUTPUT@"~ + case $lt_outputfile in + *.exe|*.EXE) ;; + *) + lt_outputfile=$lt_outputfile.exe + lt_tool_outputfile=$lt_tool_outputfile.exe + ;; + esac~ + func_to_tool_file "$lt_outputfile"~ + if test : != "$MANIFEST_TOOL" && test -f "$lt_outputfile.manifest"; then + $MANIFEST_TOOL -manifest "$lt_tool_outputfile.manifest" -outputresource:"$lt_tool_outputfile" || exit 1; + $RM "$lt_outputfile.manifest"; + fi' + ;; + *) + # g++ + # _LT_TAGVAR(hardcode_libdir_flag_spec, $1) is actually meaningless, + # as there is no search path for DLLs. + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-all-symbols' + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + _LT_TAGVAR(always_export_symbols, $1)=no + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + + if $LD --help 2>&1 | $GREP 'auto-import' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + # If the export-symbols file already is a .def file, use it as + # is; otherwise, prepend EXPORTS... + _LT_TAGVAR(archive_expsym_cmds, $1)='if _LT_DLL_DEF_P([$export_symbols]); then + cp $export_symbols $output_objdir/$soname.def; + else + echo EXPORTS > $output_objdir/$soname.def; + cat $export_symbols >> $output_objdir/$soname.def; + fi~ + $CC -shared -nostdlib $output_objdir/$soname.def $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $output_objdir/$soname $wl--enable-auto-image-base -Xlinker --out-implib -Xlinker $lib' + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + darwin* | rhapsody*) + _LT_DARWIN_LINKER_FEATURES($1) + ;; + + os2*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-L$libdir' + _LT_TAGVAR(hardcode_minus_L, $1)=yes + _LT_TAGVAR(allow_undefined_flag, $1)=unsupported + shrext_cmds=.dll + _LT_TAGVAR(archive_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + emxexp $libobjs | $SED /"_DLL_InitTerm"/d >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(archive_expsym_cmds, $1)='$ECHO "LIBRARY ${soname%$shared_ext} INITINSTANCE TERMINSTANCE" > $output_objdir/$libname.def~ + $ECHO "DESCRIPTION \"$libname\"" >> $output_objdir/$libname.def~ + $ECHO "DATA MULTIPLE NONSHARED" >> $output_objdir/$libname.def~ + $ECHO EXPORTS >> $output_objdir/$libname.def~ + prefix_cmds="$SED"~ + if test EXPORTS = "`$SED 1q $export_symbols`"; then + prefix_cmds="$prefix_cmds -e 1d"; + fi~ + prefix_cmds="$prefix_cmds -e \"s/^\(.*\)$/_\1/g\""~ + cat $export_symbols | $prefix_cmds >> $output_objdir/$libname.def~ + $CC -Zdll -Zcrtdll -o $output_objdir/$soname $libobjs $deplibs $compiler_flags $output_objdir/$libname.def~ + emximp -o $lib $output_objdir/$libname.def' + _LT_TAGVAR(old_archive_From_new_cmds, $1)='emximp -o $output_objdir/${libname}_dll.a $output_objdir/$libname.def' + _LT_TAGVAR(enable_shared_with_static_runtimes, $1)=yes + ;; + + dgux*) + case $cc_basename in + ec++*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + ghcx*) + # Green Hills C++ Compiler + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + freebsd2.*) + # C++ shared libraries reported to be fairly broken before + # switch to ELF + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + freebsd-elf*) + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + ;; + + freebsd* | dragonfly*) + # FreeBSD 3 and later use GNU C++ and GNU ld with standard ELF + # conventions + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + haiku*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + + hpux9*) + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -b $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $EGREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + _LT_TAGVAR(archive_cmds, $1)='$RM $output_objdir/$soname~$CC -shared -nostdlib $pic_flag $wl+b $wl$install_libdir -o $output_objdir/$soname $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~test "x$output_objdir/$soname" = "x$lib" || mv $output_objdir/$soname $lib' + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + hpux10*|hpux11*) + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl+b $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + case $host_cpu in + hppa*64*|ia64*) + ;; + *) + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + ;; + esac + fi + case $host_cpu in + hppa*64*|ia64*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + ;; + *) + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(hardcode_minus_L, $1)=yes # Not in the search PATH, + # but as the default + # location of the library. + ;; + esac + + case $cc_basename in + CC*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + aCC*) + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -b $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`($CC -b $CFLAGS -v conftest.$objext 2>&1) | $GREP " \-L"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + case $host_cpu in + hppa*64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib -fPIC $wl+h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + ia64*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+nodefaultrpath -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $pic_flag $wl+h $wl$soname $wl+b $wl$install_libdir -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + ;; + esac + fi + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + interix[[3-9]]*) + _LT_TAGVAR(hardcode_direct, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + # Hack: On Interix 3.x, we cannot compile PIC because of a broken gcc. + # Instead, shared libraries are loaded at an image base (0x10000000 by + # default) and relocated if they conflict, which is a slow very memory + # consuming and fragmenting process. To avoid this, we pick a random, + # 256 KiB-aligned image base between 0x50000000 and 0x6FFC0000 at link + # time. Moving up from 0x10000000 also allows more sbrk(2) space. + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='sed "s|^|_|" $export_symbols >$output_objdir/$soname.expsym~$CC -shared $pic_flag $libobjs $deplibs $compiler_flags $wl-h,$soname $wl--retain-symbols-file,$output_objdir/$soname.expsym $wl--image-base,`expr ${RANDOM-$$} % 4096 / 2 \* 262144 + 1342177280` -o $lib' + ;; + irix5* | irix6*) + case $cc_basename in + CC*) + # SGI C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -all -multigot $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + + # Archives containing C++ object files must be created using + # "CC -ar", where "CC" is the IRIX C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -ar -WR,-u -o $oldlib $oldobjs' + ;; + *) + if test yes = "$GXX"; then + if test no = "$with_gnu_ld"; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + else + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` -o $lib' + fi + fi + _LT_TAGVAR(link_all_deplibs, $1)=yes + ;; + esac + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + _LT_TAGVAR(inherit_rpath, $1)=yes + ;; + + linux* | k*bsd*-gnu | kopensolaris*-gnu | gnu*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo $lib | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib $wl-retain-symbols-file,$export_symbols; mv \$templib $lib' + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 | $GREP "ld"`; rm -f libconftest$shared_ext; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + + # Archives containing C++ object files must be created using + # "CC -Bstatic", where "CC" is the KAI C++ compiler. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' + ;; + icpc* | ecpc* ) + # Intel C++ + with_gnu_ld=yes + # version 8.0 and above of icpc choke on multiply defined symbols + # if we add $predep_objects and $postdep_objects, however 7.1 and + # earlier do not add the objects themselves. + case `$CC -V 2>&1` in + *"Version 7."*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 8.0 or newer + tmp_idyn= + case $host_cpu in + ia64*) tmp_idyn=' -i_dynamic';; + esac + _LT_TAGVAR(archive_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared'"$tmp_idyn"' $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive$convenience $wl--no-whole-archive' + ;; + pgCC* | pgcpp*) + # Portland Group C++ compiler + case `$CC -V` in + *pgCC\ [[1-5]].* | *pgcpp\ [[1-5]].*) + _LT_TAGVAR(prelink_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $objs $libobjs $compile_deplibs~ + compile_command="$compile_command `find $tpldir -name \*.o | sort | $NL2SP`"' + _LT_TAGVAR(old_archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $oldobjs$old_deplibs~ + $AR $AR_FLAGS $oldlib$oldobjs$old_deplibs `find $tpldir -name \*.o | sort | $NL2SP`~ + $RANLIB $oldlib' + _LT_TAGVAR(archive_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='tpldir=Template.dir~ + rm -rf $tpldir~ + $CC --prelink_objects --instantiation_dir $tpldir $predep_objects $libobjs $deplibs $convenience $postdep_objects~ + $CC -shared $pic_flag $predep_objects $libobjs $deplibs `find $tpldir -name \*.o | sort | $NL2SP` $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + *) # Version 6 and above use weak symbols + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname $wl-retain-symbols-file $wl$export_symbols -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl--rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`for conv in $convenience\"\"; do test -n \"$conv\" && new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + ;; + cxx*) + # Compaq C++ + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname -o $lib $wl-retain-symbols-file $wl$export_symbols' + + runpath_var=LD_RUN_PATH + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld .*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "X$list" | $Xsed' + ;; + xl* | mpixl* | bgxl*) + # IBM XL 8.0 on PPC, with GNU ld + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl--export-dynamic' + _LT_TAGVAR(archive_cmds, $1)='$CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname -o $lib' + if test yes = "$supports_anon_versioning"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $output_objdir/$libname.ver~ + cat $export_symbols | sed -e "s/\(.*\)/\1;/" >> $output_objdir/$libname.ver~ + echo "local: *; };" >> $output_objdir/$libname.ver~ + $CC -qmkshrobj $libobjs $deplibs $compiler_flags $wl-soname $wl$soname $wl-version-script $wl$output_objdir/$libname.ver -o $lib' + fi + ;; + *) + case `$CC -V 2>&1 | sed 5q` in + *Sun\ C*) + # Sun C++ 5.9 + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file $wl$export_symbols' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl--whole-archive`new_convenience=; for conv in $convenience\"\"; do test -z \"$conv\" || new_convenience=\"$new_convenience,$conv\"; done; func_echo_all \"$new_convenience\"` $wl--no-whole-archive' + _LT_TAGVAR(compiler_needs_object, $1)=yes + + # Not sure whether something based on + # $CC $CFLAGS -v conftest.$objext -o libconftest$shared_ext 2>&1 + # would be better. + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + esac + ;; + esac + ;; + + lynxos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + m88k*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + mvs*) + case $cc_basename in + cxx*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + netbsd*) + if echo __ELF__ | $CC -E - | $GREP __ELF__ >/dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$LD -Bshareable -o $lib $predep_objects $libobjs $deplibs $postdep_objects $linker_flags' + wlarc= + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + fi + # Workaround some broken pre-1.5 toolchains + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP conftest.$objext | $SED -e "s:-lgcc -lc -lgcc::"' + ;; + + *nto* | *qnx*) + _LT_TAGVAR(ld_shlibs, $1)=yes + ;; + + openbsd* | bitrig*) + if test -f /usr/libexec/ld.so; then + _LT_TAGVAR(hardcode_direct, $1)=yes + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_direct_absolute, $1)=yes + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + if test -z "`echo __ELF__ | $CC -E - | grep __ELF__`"; then + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $pic_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-retain-symbols-file,$export_symbols -o $lib' + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-E' + _LT_TAGVAR(whole_archive_flag_spec, $1)=$wlarc'--whole-archive$convenience '$wlarc'--no-whole-archive' + fi + output_verbose_link_cmd=func_echo_all + else + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + + osf3* | osf4* | osf5*) + case $cc_basename in + KCC*) + # Kuck and Associates, Inc. (KAI) C++ Compiler + + # KCC will only create a shared library if the output file + # ends with ".so" (or ".sl" for HP-UX), so rename the library + # to its proper name (with version) after linking. + _LT_TAGVAR(archive_cmds, $1)='tempext=`echo $shared_ext | $SED -e '\''s/\([[^()0-9A-Za-z{}]]\)/\\\\\1/g'\''`; templib=`echo "$lib" | $SED -e "s/\$tempext\..*/.so/"`; $CC $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags --soname $soname -o \$templib; mv \$templib $lib' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Archives containing C++ object files must be created using + # the KAI C++ compiler. + case $host in + osf3*) _LT_TAGVAR(old_archive_cmds, $1)='$CC -Bstatic -o $oldlib $oldobjs' ;; + *) _LT_TAGVAR(old_archive_cmds, $1)='$CC -o $oldlib $oldobjs' ;; + esac + ;; + RCC*) + # Rational C++ 2.4.1 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + cxx*) + case $host in + osf3*) + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $soname `test -n "$verstring" && func_echo_all "$wl-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + ;; + *) + _LT_TAGVAR(allow_undefined_flag, $1)=' -expect_unresolved \*' + _LT_TAGVAR(archive_cmds, $1)='$CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname `test -n "$verstring" && func_echo_all "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='for i in `cat $export_symbols`; do printf "%s %s\\n" -exported_symbol "\$i" >> $lib.exp; done~ + echo "-hidden">> $lib.exp~ + $CC -shared$allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags -msym -soname $soname $wl-input $wl$lib.exp `test -n "$verstring" && $ECHO "-set_version $verstring"` -update_registry $output_objdir/so_locations -o $lib~ + $RM $lib.exp' + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-rpath $libdir' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + # + # There doesn't appear to be a way to prevent this compiler from + # explicitly linking system object files so we need to strip them + # from the output so that they don't get included in the library + # dependencies. + output_verbose_link_cmd='templist=`$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP "ld" | $GREP -v "ld:"`; templist=`func_echo_all "$templist" | $SED "s/\(^.*ld.*\)\( .*ld.*$\)/\1/"`; list= ; for z in $templist; do case $z in conftest.$objext) list="$list $z";; *.$objext);; *) list="$list $z";;esac; done; func_echo_all "$list"' + ;; + *) + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(allow_undefined_flag, $1)=' $wl-expect_unresolved $wl\*' + case $host in + osf3*) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $allow_undefined_flag $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-msym $wl-soname $wl$soname `test -n "$verstring" && func_echo_all "$wl-set_version $wl$verstring"` $wl-update_registry $wl$output_objdir/so_locations -o $lib' + ;; + esac + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-rpath $wl$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=: + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + + else + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + fi + ;; + esac + ;; + + psos*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + sunos4*) + case $cc_basename in + CC*) + # Sun C++ 4.x + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + lcc*) + # Lucid + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + solaris*) + case $cc_basename in + CC* | sunCC*) + # Sun C++ 4.2, 5.x and Centerline C++ + _LT_TAGVAR(archive_cmds_need_lc,$1)=yes + _LT_TAGVAR(no_undefined_flag, $1)=' -zdefs' + _LT_TAGVAR(archive_cmds, $1)='$CC -G$allow_undefined_flag -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G$allow_undefined_flag $wl-M $wl$lib.exp -h$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='-R$libdir' + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + # The compiler driver will combine and reorder linker options, + # but understands '-z linker_flag'. + # Supported since Solaris 2.6 (maybe 2.5.1?) + _LT_TAGVAR(whole_archive_flag_spec, $1)='-z allextract$convenience -z defaultextract' + ;; + esac + _LT_TAGVAR(link_all_deplibs, $1)=yes + + output_verbose_link_cmd='func_echo_all' + + # Archives containing C++ object files must be created using + # "CC -xar", where "CC" is the Sun C++ compiler. This is + # necessary to make sure instantiated templates are included + # in the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC -xar -o $oldlib $oldobjs' + ;; + gcx*) + # Green Hills C++ Compiler + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + + # The C++ compiler must be used to create the archive. + _LT_TAGVAR(old_archive_cmds, $1)='$CC $LDFLAGS -archive -o $oldlib $oldobjs' + ;; + *) + # GNU C++ compiler with Solaris linker + if test yes,no = "$GXX,$with_gnu_ld"; then + _LT_TAGVAR(no_undefined_flag, $1)=' $wl-z ${wl}defs' + if $CC --version | $GREP -v '^2\.7' > /dev/null; then + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $pic_flag -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -shared $pic_flag -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -shared $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + else + # g++ 2.7 appears to require '-G' NOT '-shared' on this + # platform. + _LT_TAGVAR(archive_cmds, $1)='$CC -G -nostdlib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags $wl-h $wl$soname -o $lib' + _LT_TAGVAR(archive_expsym_cmds, $1)='echo "{ global:" > $lib.exp~cat $export_symbols | $SED -e "s/\(.*\)/\1;/" >> $lib.exp~echo "local: *; };" >> $lib.exp~ + $CC -G -nostdlib $wl-M $wl$lib.exp $wl-h $wl$soname -o $lib $predep_objects $libobjs $deplibs $postdep_objects $compiler_flags~$RM $lib.exp' + + # Commands to make compiler produce verbose output that lists + # what "hidden" libraries, object files and flags are used when + # linking a shared library. + output_verbose_link_cmd='$CC -G $CFLAGS -v conftest.$objext 2>&1 | $GREP -v "^Configured with:" | $GREP " \-L"' + fi + + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R $wl$libdir' + case $host_os in + solaris2.[[0-5]] | solaris2.[[0-5]].*) ;; + *) + _LT_TAGVAR(whole_archive_flag_spec, $1)='$wl-z ${wl}allextract$convenience $wl-z ${wl}defaultextract' + ;; + esac + fi + ;; + esac + ;; + + sysv4*uw2* | sysv5OpenUNIX* | sysv5UnixWare7.[[01]].[[10]]* | unixware7* | sco3.2v5.0.[[024]]*) + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + sysv5* | sco3.2v5* | sco5v6*) + # Note: We CANNOT use -z defs as we might desire, because we do not + # link with -lc, and that would cause any symbols used from libc to + # always be unresolved, which means just about no library would + # ever link correctly. If we're not using GNU ld we use -z text + # though, which does catch some bad symbols but isn't as heavy-handed + # as -z defs. + _LT_TAGVAR(no_undefined_flag, $1)='$wl-z,text' + _LT_TAGVAR(allow_undefined_flag, $1)='$wl-z,nodefs' + _LT_TAGVAR(archive_cmds_need_lc, $1)=no + _LT_TAGVAR(hardcode_shlibpath_var, $1)=no + _LT_TAGVAR(hardcode_libdir_flag_spec, $1)='$wl-R,$libdir' + _LT_TAGVAR(hardcode_libdir_separator, $1)=':' + _LT_TAGVAR(link_all_deplibs, $1)=yes + _LT_TAGVAR(export_dynamic_flag_spec, $1)='$wl-Bexport' + runpath_var='LD_RUN_PATH' + + case $cc_basename in + CC*) + _LT_TAGVAR(archive_cmds, $1)='$CC -G $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -G $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(old_archive_cmds, $1)='$CC -Tprelink_objects $oldobjs~ + '"$_LT_TAGVAR(old_archive_cmds, $1)" + _LT_TAGVAR(reload_cmds, $1)='$CC -Tprelink_objects $reload_objs~ + '"$_LT_TAGVAR(reload_cmds, $1)" + ;; + *) + _LT_TAGVAR(archive_cmds, $1)='$CC -shared $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + _LT_TAGVAR(archive_expsym_cmds, $1)='$CC -shared $wl-Bexport:$export_symbols $wl-h,$soname -o $lib $libobjs $deplibs $compiler_flags' + ;; + esac + ;; + + tandem*) + case $cc_basename in + NCC*) + # NonStop-UX NCC 3.20 + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + ;; + + vxworks*) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + + *) + # FIXME: insert proper C++ library support + _LT_TAGVAR(ld_shlibs, $1)=no + ;; + esac + + AC_MSG_RESULT([$_LT_TAGVAR(ld_shlibs, $1)]) + test no = "$_LT_TAGVAR(ld_shlibs, $1)" && can_build_shared=no + + _LT_TAGVAR(GCC, $1)=$GXX + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS + LDCXX=$LD + LD=$lt_save_LD + GCC=$lt_save_GCC + with_gnu_ld=$lt_save_with_gnu_ld + lt_cv_path_LDCXX=$lt_cv_path_LD + lt_cv_path_LD=$lt_save_path_LD + lt_cv_prog_gnu_ldcxx=$lt_cv_prog_gnu_ld + lt_cv_prog_gnu_ld=$lt_save_with_gnu_ld +fi # test yes != "$_lt_caught_CXX_error" + +AC_LANG_POP +])# _LT_LANG_CXX_CONFIG + + +# _LT_FUNC_STRIPNAME_CNF +# ---------------------- +# func_stripname_cnf prefix suffix name +# strip PREFIX and SUFFIX off of NAME. +# PREFIX and SUFFIX must not contain globbing or regex special +# characters, hashes, percent signs, but SUFFIX may contain a leading +# dot (in which case that matches only a dot). +# +# This function is identical to the (non-XSI) version of func_stripname, +# except this one can be used by m4 code that may be executed by configure, +# rather than the libtool script. +m4_defun([_LT_FUNC_STRIPNAME_CNF],[dnl +AC_REQUIRE([_LT_DECL_SED]) +AC_REQUIRE([_LT_PROG_ECHO_BACKSLASH]) +func_stripname_cnf () +{ + case @S|@2 in + .*) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%\\\\@S|@2\$%%"`;; + *) func_stripname_result=`$ECHO "@S|@3" | $SED "s%^@S|@1%%; s%@S|@2\$%%"`;; + esac +} # func_stripname_cnf +])# _LT_FUNC_STRIPNAME_CNF + + +# _LT_SYS_HIDDEN_LIBDEPS([TAGNAME]) +# --------------------------------- +# Figure out "hidden" library dependencies from verbose +# compiler output when linking a shared library. +# Parse the compiler output and extract the necessary +# objects, libraries and library flags. +m4_defun([_LT_SYS_HIDDEN_LIBDEPS], +[m4_require([_LT_FILEUTILS_DEFAULTS])dnl +AC_REQUIRE([_LT_FUNC_STRIPNAME_CNF])dnl +# Dependencies to place before and after the object being linked: +_LT_TAGVAR(predep_objects, $1)= +_LT_TAGVAR(postdep_objects, $1)= +_LT_TAGVAR(predeps, $1)= +_LT_TAGVAR(postdeps, $1)= +_LT_TAGVAR(compiler_lib_search_path, $1)= + +dnl we can't use the lt_simple_compile_test_code here, +dnl because it contains code intended for an executable, +dnl not a library. It's possible we should let each +dnl tag define a new lt_????_link_test_code variable, +dnl but it's only used here... +m4_if([$1], [], [cat > conftest.$ac_ext <<_LT_EOF +int a; +void foo (void) { a = 0; } +_LT_EOF +], [$1], [CXX], [cat > conftest.$ac_ext <<_LT_EOF +class Foo +{ +public: + Foo (void) { a = 0; } +private: + int a; +}; +_LT_EOF +], [$1], [F77], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer*4 a + a=0 + return + end +_LT_EOF +], [$1], [FC], [cat > conftest.$ac_ext <<_LT_EOF + subroutine foo + implicit none + integer a + a=0 + return + end +_LT_EOF +], [$1], [GCJ], [cat > conftest.$ac_ext <<_LT_EOF +public class foo { + private int a; + public void bar (void) { + a = 0; + } +}; +_LT_EOF +], [$1], [GO], [cat > conftest.$ac_ext <<_LT_EOF +package foo +func foo() { +} +_LT_EOF +]) + +_lt_libdeps_save_CFLAGS=$CFLAGS +case "$CC $CFLAGS " in #( +*\ -flto*\ *) CFLAGS="$CFLAGS -fno-lto" ;; +*\ -fwhopr*\ *) CFLAGS="$CFLAGS -fno-whopr" ;; +*\ -fuse-linker-plugin*\ *) CFLAGS="$CFLAGS -fno-use-linker-plugin" ;; +esac + +dnl Parse the compiler output and extract the necessary +dnl objects, libraries and library flags. +if AC_TRY_EVAL(ac_compile); then + # Parse the compiler output and extract the necessary + # objects, libraries and library flags. + + # Sentinel used to keep track of whether or not we are before + # the conftest object file. + pre_test_object_deps_done=no + + for p in `eval "$output_verbose_link_cmd"`; do + case $prev$p in + + -L* | -R* | -l*) + # Some compilers place space between "-{L,R}" and the path. + # Remove the space. + if test x-L = "$p" || + test x-R = "$p"; then + prev=$p + continue + fi + + # Expand the sysroot to ease extracting the directories later. + if test -z "$prev"; then + case $p in + -L*) func_stripname_cnf '-L' '' "$p"; prev=-L; p=$func_stripname_result ;; + -R*) func_stripname_cnf '-R' '' "$p"; prev=-R; p=$func_stripname_result ;; + -l*) func_stripname_cnf '-l' '' "$p"; prev=-l; p=$func_stripname_result ;; + esac + fi + case $p in + =*) func_stripname_cnf '=' '' "$p"; p=$lt_sysroot$func_stripname_result ;; + esac + if test no = "$pre_test_object_deps_done"; then + case $prev in + -L | -R) + # Internal compiler library paths should come after those + # provided the user. The postdeps already come after the + # user supplied libs so there is no need to process them. + if test -z "$_LT_TAGVAR(compiler_lib_search_path, $1)"; then + _LT_TAGVAR(compiler_lib_search_path, $1)=$prev$p + else + _LT_TAGVAR(compiler_lib_search_path, $1)="${_LT_TAGVAR(compiler_lib_search_path, $1)} $prev$p" + fi + ;; + # The "-l" case would never come before the object being + # linked, so don't bother handling this case. + esac + else + if test -z "$_LT_TAGVAR(postdeps, $1)"; then + _LT_TAGVAR(postdeps, $1)=$prev$p + else + _LT_TAGVAR(postdeps, $1)="${_LT_TAGVAR(postdeps, $1)} $prev$p" + fi + fi + prev= + ;; + + *.lto.$objext) ;; # Ignore GCC LTO objects + *.$objext) + # This assumes that the test object file only shows up + # once in the compiler output. + if test "$p" = "conftest.$objext"; then + pre_test_object_deps_done=yes + continue + fi + + if test no = "$pre_test_object_deps_done"; then + if test -z "$_LT_TAGVAR(predep_objects, $1)"; then + _LT_TAGVAR(predep_objects, $1)=$p + else + _LT_TAGVAR(predep_objects, $1)="$_LT_TAGVAR(predep_objects, $1) $p" + fi + else + if test -z "$_LT_TAGVAR(postdep_objects, $1)"; then + _LT_TAGVAR(postdep_objects, $1)=$p + else + _LT_TAGVAR(postdep_objects, $1)="$_LT_TAGVAR(postdep_objects, $1) $p" + fi + fi + ;; + + *) ;; # Ignore the rest. + + esac + done + + # Clean up. + rm -f a.out a.exe +else + echo "libtool.m4: error: problem compiling $1 test program" +fi + +$RM -f confest.$objext +CFLAGS=$_lt_libdeps_save_CFLAGS + +# PORTME: override above test on systems where it is broken +m4_if([$1], [CXX], +[case $host_os in +interix[[3-9]]*) + # Interix 3.5 installs completely hosed .la files for C++, so rather than + # hack all around it, let's just trust "g++" to DTRT. + _LT_TAGVAR(predep_objects,$1)= + _LT_TAGVAR(postdep_objects,$1)= + _LT_TAGVAR(postdeps,$1)= + ;; +esac +]) + +case " $_LT_TAGVAR(postdeps, $1) " in +*" -lc "*) _LT_TAGVAR(archive_cmds_need_lc, $1)=no ;; +esac + _LT_TAGVAR(compiler_lib_search_dirs, $1)= +if test -n "${_LT_TAGVAR(compiler_lib_search_path, $1)}"; then + _LT_TAGVAR(compiler_lib_search_dirs, $1)=`echo " ${_LT_TAGVAR(compiler_lib_search_path, $1)}" | $SED -e 's! -L! !g' -e 's!^ !!'` +fi +_LT_TAGDECL([], [compiler_lib_search_dirs], [1], + [The directories searched by this compiler when creating a shared library]) +_LT_TAGDECL([], [predep_objects], [1], + [Dependencies to place before and after the objects being linked to + create a shared library]) +_LT_TAGDECL([], [postdep_objects], [1]) +_LT_TAGDECL([], [predeps], [1]) +_LT_TAGDECL([], [postdeps], [1]) +_LT_TAGDECL([], [compiler_lib_search_path], [1], + [The library search path used internally by the compiler when linking + a shared library]) +])# _LT_SYS_HIDDEN_LIBDEPS + + +# _LT_LANG_F77_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for a Fortran 77 compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_F77_CONFIG], +[AC_LANG_PUSH(Fortran 77) +if test -z "$F77" || test no = "$F77"; then + _lt_disable_F77=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for f77 test sources. +ac_ext=f + +# Object file extension for compiled f77 test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the F77 compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_F77"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${F77-"f77"} + CFLAGS=$FFLAGS + compiler=$CC + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + GCC=$G77 + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$G77 + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_F77" + +AC_LANG_POP +])# _LT_LANG_F77_CONFIG + + +# _LT_LANG_FC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for a Fortran compiler are +# suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_FC_CONFIG], +[AC_LANG_PUSH(Fortran) + +if test -z "$FC" || test no = "$FC"; then + _lt_disable_FC=yes +fi + +_LT_TAGVAR(archive_cmds_need_lc, $1)=no +_LT_TAGVAR(allow_undefined_flag, $1)= +_LT_TAGVAR(always_export_symbols, $1)=no +_LT_TAGVAR(archive_expsym_cmds, $1)= +_LT_TAGVAR(export_dynamic_flag_spec, $1)= +_LT_TAGVAR(hardcode_direct, $1)=no +_LT_TAGVAR(hardcode_direct_absolute, $1)=no +_LT_TAGVAR(hardcode_libdir_flag_spec, $1)= +_LT_TAGVAR(hardcode_libdir_separator, $1)= +_LT_TAGVAR(hardcode_minus_L, $1)=no +_LT_TAGVAR(hardcode_automatic, $1)=no +_LT_TAGVAR(inherit_rpath, $1)=no +_LT_TAGVAR(module_cmds, $1)= +_LT_TAGVAR(module_expsym_cmds, $1)= +_LT_TAGVAR(link_all_deplibs, $1)=unknown +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds +_LT_TAGVAR(no_undefined_flag, $1)= +_LT_TAGVAR(whole_archive_flag_spec, $1)= +_LT_TAGVAR(enable_shared_with_static_runtimes, $1)=no + +# Source file extension for fc test sources. +ac_ext=${ac_fc_srcext-f} + +# Object file extension for compiled fc test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# No sense in running all these tests if we already determined that +# the FC compiler isn't working. Some variables (like enable_shared) +# are currently assumed to apply to all compilers on this platform, +# and will be corrupted by setting them based on a non-working compiler. +if test yes != "$_lt_disable_FC"; then + # Code to be used in simple compile tests + lt_simple_compile_test_code="\ + subroutine t + return + end +" + + # Code to be used in simple link tests + lt_simple_link_test_code="\ + program t + end +" + + # ltmain only uses $CC for tagged configurations so make sure $CC is set. + _LT_TAG_COMPILER + + # save warnings/boilerplate of simple test code + _LT_COMPILER_BOILERPLATE + _LT_LINKER_BOILERPLATE + + # Allow CC to be a program name with arguments. + lt_save_CC=$CC + lt_save_GCC=$GCC + lt_save_CFLAGS=$CFLAGS + CC=${FC-"f95"} + CFLAGS=$FCFLAGS + compiler=$CC + GCC=$ac_cv_fc_compiler_gnu + + _LT_TAGVAR(compiler, $1)=$CC + _LT_CC_BASENAME([$compiler]) + + if test -n "$compiler"; then + AC_MSG_CHECKING([if libtool supports shared libraries]) + AC_MSG_RESULT([$can_build_shared]) + + AC_MSG_CHECKING([whether to build shared libraries]) + test no = "$can_build_shared" && enable_shared=no + + # On AIX, shared libraries and static libraries use the same namespace, and + # are all built from PIC. + case $host_os in + aix3*) + test yes = "$enable_shared" && enable_static=no + if test -n "$RANLIB"; then + archive_cmds="$archive_cmds~\$RANLIB \$lib" + postinstall_cmds='$RANLIB $lib' + fi + ;; + aix[[4-9]]*) + if test ia64 != "$host_cpu"; then + case $enable_shared,$with_aix_soname,$aix_use_runtimelinking in + yes,aix,yes) ;; # shared object as lib.so file only + yes,svr4,*) ;; # shared object as lib.so archive member only + yes,*) enable_static=no ;; # shared object in lib.a archive as well + esac + fi + ;; + esac + AC_MSG_RESULT([$enable_shared]) + + AC_MSG_CHECKING([whether to build static libraries]) + # Make sure either enable_shared or enable_static is yes. + test yes = "$enable_shared" || enable_static=yes + AC_MSG_RESULT([$enable_static]) + + _LT_TAGVAR(GCC, $1)=$ac_cv_fc_compiler_gnu + _LT_TAGVAR(LD, $1)=$LD + + ## CAVEAT EMPTOR: + ## There is no encapsulation within the following macros, do not change + ## the running order or otherwise move them around unless you know exactly + ## what you are doing... + _LT_SYS_HIDDEN_LIBDEPS($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_SYS_DYNAMIC_LINKER($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) + fi # test -n "$compiler" + + GCC=$lt_save_GCC + CC=$lt_save_CC + CFLAGS=$lt_save_CFLAGS +fi # test yes != "$_lt_disable_FC" + +AC_LANG_POP +])# _LT_LANG_FC_CONFIG + + +# _LT_LANG_GCJ_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Java Compiler compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GCJ_CONFIG], +[AC_REQUIRE([LT_PROG_GCJ])dnl +AC_LANG_SAVE + +# Source file extension for Java test sources. +ac_ext=java + +# Object file extension for compiled Java test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="class foo {}" + +# Code to be used in simple link tests +lt_simple_link_test_code='public class conftest { public static void main(String[[]] argv) {}; }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GCJ-"gcj"} +CFLAGS=$GCJFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# GCJ did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GCJ_CONFIG + + +# _LT_LANG_GO_CONFIG([TAG]) +# -------------------------- +# Ensure that the configuration variables for the GNU Go compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_GO_CONFIG], +[AC_REQUIRE([LT_PROG_GO])dnl +AC_LANG_SAVE + +# Source file extension for Go test sources. +ac_ext=go + +# Object file extension for compiled Go test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code="package main; func main() { }" + +# Code to be used in simple link tests +lt_simple_link_test_code='package main; func main() { }' + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC=yes +CC=${GOC-"gccgo"} +CFLAGS=$GOFLAGS +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_TAGVAR(LD, $1)=$LD +_LT_CC_BASENAME([$compiler]) + +# Go did not exist at the time GCC didn't implicitly link libc in. +_LT_TAGVAR(archive_cmds_need_lc, $1)=no + +_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds +_LT_TAGVAR(reload_flag, $1)=$reload_flag +_LT_TAGVAR(reload_cmds, $1)=$reload_cmds + +## CAVEAT EMPTOR: +## There is no encapsulation within the following macros, do not change +## the running order or otherwise move them around unless you know exactly +## what you are doing... +if test -n "$compiler"; then + _LT_COMPILER_NO_RTTI($1) + _LT_COMPILER_PIC($1) + _LT_COMPILER_C_O($1) + _LT_COMPILER_FILE_LOCKS($1) + _LT_LINKER_SHLIBS($1) + _LT_LINKER_HARDCODE_LIBPATH($1) + + _LT_CONFIG($1) +fi + +AC_LANG_RESTORE + +GCC=$lt_save_GCC +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_GO_CONFIG + + +# _LT_LANG_RC_CONFIG([TAG]) +# ------------------------- +# Ensure that the configuration variables for the Windows resource compiler +# are suitably defined. These variables are subsequently used by _LT_CONFIG +# to write the compiler configuration to 'libtool'. +m4_defun([_LT_LANG_RC_CONFIG], +[AC_REQUIRE([LT_PROG_RC])dnl +AC_LANG_SAVE + +# Source file extension for RC test sources. +ac_ext=rc + +# Object file extension for compiled RC test sources. +objext=o +_LT_TAGVAR(objext, $1)=$objext + +# Code to be used in simple compile tests +lt_simple_compile_test_code='sample MENU { MENUITEM "&Soup", 100, CHECKED }' + +# Code to be used in simple link tests +lt_simple_link_test_code=$lt_simple_compile_test_code + +# ltmain only uses $CC for tagged configurations so make sure $CC is set. +_LT_TAG_COMPILER + +# save warnings/boilerplate of simple test code +_LT_COMPILER_BOILERPLATE +_LT_LINKER_BOILERPLATE + +# Allow CC to be a program name with arguments. +lt_save_CC=$CC +lt_save_CFLAGS=$CFLAGS +lt_save_GCC=$GCC +GCC= +CC=${RC-"windres"} +CFLAGS= +compiler=$CC +_LT_TAGVAR(compiler, $1)=$CC +_LT_CC_BASENAME([$compiler]) +_LT_TAGVAR(lt_cv_prog_compiler_c_o, $1)=yes + +if test -n "$compiler"; then + : + _LT_CONFIG($1) +fi + +GCC=$lt_save_GCC +AC_LANG_RESTORE +CC=$lt_save_CC +CFLAGS=$lt_save_CFLAGS +])# _LT_LANG_RC_CONFIG + + +# LT_PROG_GCJ +# ----------- +AC_DEFUN([LT_PROG_GCJ], +[m4_ifdef([AC_PROG_GCJ], [AC_PROG_GCJ], + [m4_ifdef([A][M_PROG_GCJ], [A][M_PROG_GCJ], + [AC_CHECK_TOOL(GCJ, gcj,) + test set = "${GCJFLAGS+set}" || GCJFLAGS="-g -O2" + AC_SUBST(GCJFLAGS)])])[]dnl +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_GCJ], [LT_PROG_GCJ]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_GCJ], []) + + +# LT_PROG_GO +# ---------- +AC_DEFUN([LT_PROG_GO], +[AC_CHECK_TOOL(GOC, gccgo,) +]) + + +# LT_PROG_RC +# ---------- +AC_DEFUN([LT_PROG_RC], +[AC_CHECK_TOOL(RC, windres,) +]) + +# Old name: +AU_ALIAS([LT_AC_PROG_RC], [LT_PROG_RC]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_RC], []) + + +# _LT_DECL_EGREP +# -------------- +# If we don't have a new enough Autoconf to choose the best grep +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_EGREP], +[AC_REQUIRE([AC_PROG_EGREP])dnl +AC_REQUIRE([AC_PROG_FGREP])dnl +test -z "$GREP" && GREP=grep +_LT_DECL([], [GREP], [1], [A grep program that handles long lines]) +_LT_DECL([], [EGREP], [1], [An ERE matcher]) +_LT_DECL([], [FGREP], [1], [A literal string matcher]) +dnl Non-bleeding-edge autoconf doesn't subst GREP, so do it here too +AC_SUBST([GREP]) +]) + + +# _LT_DECL_OBJDUMP +# -------------- +# If we don't have a new enough Autoconf to choose the best objdump +# available, choose the one first in the user's PATH. +m4_defun([_LT_DECL_OBJDUMP], +[AC_CHECK_TOOL(OBJDUMP, objdump, false) +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [An object symbol dumper]) +AC_SUBST([OBJDUMP]) +]) + +# _LT_DECL_DLLTOOL +# ---------------- +# Ensure DLLTOOL variable is set. +m4_defun([_LT_DECL_DLLTOOL], +[AC_CHECK_TOOL(DLLTOOL, dlltool, false) +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program]) +AC_SUBST([DLLTOOL]) +]) + +# _LT_DECL_SED +# ------------ +# Check for a fully-functional sed program, that truncates +# as few characters as possible. Prefer GNU sed if found. +m4_defun([_LT_DECL_SED], +[AC_PROG_SED +test -z "$SED" && SED=sed +Xsed="$SED -e 1s/^X//" +_LT_DECL([], [SED], [1], [A sed program that does not truncate output]) +_LT_DECL([], [Xsed], ["\$SED -e 1s/^X//"], + [Sed that helps us avoid accidentally triggering echo(1) options like -n]) +])# _LT_DECL_SED + +m4_ifndef([AC_PROG_SED], [ +############################################################ +# NOTE: This macro has been submitted for inclusion into # +# GNU Autoconf as AC_PROG_SED. When it is available in # +# a released version of Autoconf we should remove this # +# macro and use it instead. # +############################################################ + +m4_defun([AC_PROG_SED], +[AC_MSG_CHECKING([for a sed that does not truncate output]) +AC_CACHE_VAL(lt_cv_path_SED, +[# Loop through the user's path and test for sed and gsed. +# Then use that list of sed's as ones to test for truncation. +as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for lt_ac_prog in sed gsed; do + for ac_exec_ext in '' $ac_executable_extensions; do + if $as_executable_p "$as_dir/$lt_ac_prog$ac_exec_ext"; then + lt_ac_sed_list="$lt_ac_sed_list $as_dir/$lt_ac_prog$ac_exec_ext" + fi + done + done +done +IFS=$as_save_IFS +lt_ac_max=0 +lt_ac_count=0 +# Add /usr/xpg4/bin/sed as it is typically found on Solaris +# along with /bin/sed that truncates output. +for lt_ac_sed in $lt_ac_sed_list /usr/xpg4/bin/sed; do + test ! -f "$lt_ac_sed" && continue + cat /dev/null > conftest.in + lt_ac_count=0 + echo $ECHO_N "0123456789$ECHO_C" >conftest.in + # Check for GNU sed and select it if it is found. + if "$lt_ac_sed" --version 2>&1 < /dev/null | grep 'GNU' > /dev/null; then + lt_cv_path_SED=$lt_ac_sed + break + fi + while true; do + cat conftest.in conftest.in >conftest.tmp + mv conftest.tmp conftest.in + cp conftest.in conftest.nl + echo >>conftest.nl + $lt_ac_sed -e 's/a$//' < conftest.nl >conftest.out || break + cmp -s conftest.out conftest.nl || break + # 10000 chars as input seems more than enough + test 10 -lt "$lt_ac_count" && break + lt_ac_count=`expr $lt_ac_count + 1` + if test "$lt_ac_count" -gt "$lt_ac_max"; then + lt_ac_max=$lt_ac_count + lt_cv_path_SED=$lt_ac_sed + fi + done +done +]) +SED=$lt_cv_path_SED +AC_SUBST([SED]) +AC_MSG_RESULT([$SED]) +])#AC_PROG_SED +])#m4_ifndef + +# Old name: +AU_ALIAS([LT_AC_PROG_SED], [AC_PROG_SED]) +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([LT_AC_PROG_SED], []) + + +# _LT_CHECK_SHELL_FEATURES +# ------------------------ +# Find out whether the shell is Bourne or XSI compatible, +# or has some other useful features. +m4_defun([_LT_CHECK_SHELL_FEATURES], +[if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then + lt_unset=unset +else + lt_unset=false +fi +_LT_DECL([], [lt_unset], [0], [whether the shell understands "unset"])dnl + +# test EBCDIC or ASCII +case `echo X|tr X '\101'` in + A) # ASCII based system + # \n is not interpreted correctly by Solaris 8 /usr/ucb/tr + lt_SP2NL='tr \040 \012' + lt_NL2SP='tr \015\012 \040\040' + ;; + *) # EBCDIC based system + lt_SP2NL='tr \100 \n' + lt_NL2SP='tr \r\n \100\100' + ;; +esac +_LT_DECL([SP2NL], [lt_SP2NL], [1], [turn spaces into newlines])dnl +_LT_DECL([NL2SP], [lt_NL2SP], [1], [turn newlines into spaces])dnl +])# _LT_CHECK_SHELL_FEATURES + + +# _LT_PATH_CONVERSION_FUNCTIONS +# ----------------------------- +# Determine what file name conversion functions should be used by +# func_to_host_file (and, implicitly, by func_to_host_path). These are needed +# for certain cross-compile configurations and native mingw. +m4_defun([_LT_PATH_CONVERSION_FUNCTIONS], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_CANONICAL_BUILD])dnl +AC_MSG_CHECKING([how to convert $build file names to $host format]) +AC_CACHE_VAL(lt_cv_to_host_file_cmd, +[case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_w32 + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_cygwin_to_w32 + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_w32 + ;; + esac + ;; + *-*-cygwin* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_host_file_cmd=func_convert_file_msys_to_cygwin + ;; + *-*-cygwin* ) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; + * ) # otherwise, assume *nix + lt_cv_to_host_file_cmd=func_convert_file_nix_to_cygwin + ;; + esac + ;; + * ) # unhandled hosts (and "normal" native builds) + lt_cv_to_host_file_cmd=func_convert_file_noop + ;; +esac +]) +to_host_file_cmd=$lt_cv_to_host_file_cmd +AC_MSG_RESULT([$lt_cv_to_host_file_cmd]) +_LT_DECL([to_host_file_cmd], [lt_cv_to_host_file_cmd], + [0], [convert $build file names to $host format])dnl + +AC_MSG_CHECKING([how to convert $build file names to toolchain format]) +AC_CACHE_VAL(lt_cv_to_tool_file_cmd, +[#assume ordinary cross tools, or native build. +lt_cv_to_tool_file_cmd=func_convert_file_noop +case $host in + *-*-mingw* ) + case $build in + *-*-mingw* ) # actually msys + lt_cv_to_tool_file_cmd=func_convert_file_msys_to_w32 + ;; + esac + ;; +esac +]) +to_tool_file_cmd=$lt_cv_to_tool_file_cmd +AC_MSG_RESULT([$lt_cv_to_tool_file_cmd]) +_LT_DECL([to_tool_file_cmd], [lt_cv_to_tool_file_cmd], + [0], [convert $build files to toolchain format])dnl +])# _LT_PATH_CONVERSION_FUNCTIONS diff --git a/deps/cares/m4/ltoptions.m4 b/deps/cares/m4/ltoptions.m4 new file mode 100644 index 00000000000000..94b082976667c0 --- /dev/null +++ b/deps/cares/m4/ltoptions.m4 @@ -0,0 +1,437 @@ +# Helper functions for option handling. -*- Autoconf -*- +# +# Copyright (C) 2004-2005, 2007-2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 8 ltoptions.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])]) + + +# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME) +# ------------------------------------------ +m4_define([_LT_MANGLE_OPTION], +[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])]) + + +# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME) +# --------------------------------------- +# Set option OPTION-NAME for macro MACRO-NAME, and if there is a +# matching handler defined, dispatch to it. Other OPTION-NAMEs are +# saved as a flag. +m4_define([_LT_SET_OPTION], +[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl +m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]), + _LT_MANGLE_DEFUN([$1], [$2]), + [m4_warning([Unknown $1 option '$2'])])[]dnl +]) + + +# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET]) +# ------------------------------------------------------------ +# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. +m4_define([_LT_IF_OPTION], +[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])]) + + +# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET) +# ------------------------------------------------------- +# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME +# are set. +m4_define([_LT_UNLESS_OPTIONS], +[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option), + [m4_define([$0_found])])])[]dnl +m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3 +])[]dnl +]) + + +# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST) +# ---------------------------------------- +# OPTION-LIST is a space-separated list of Libtool options associated +# with MACRO-NAME. If any OPTION has a matching handler declared with +# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about +# the unknown option and exit. +m4_defun([_LT_SET_OPTIONS], +[# Set options +m4_foreach([_LT_Option], m4_split(m4_normalize([$2])), + [_LT_SET_OPTION([$1], _LT_Option)]) + +m4_if([$1],[LT_INIT],[ + dnl + dnl Simply set some default values (i.e off) if boolean options were not + dnl specified: + _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no + ]) + _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no + ]) + dnl + dnl If no reference was made to various pairs of opposing options, then + dnl we run the default mode handler for the pair. For example, if neither + dnl 'shared' nor 'disable-shared' was passed, we enable building of shared + dnl archives by default: + _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED]) + _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC]) + _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install], + [_LT_ENABLE_FAST_INSTALL]) + _LT_UNLESS_OPTIONS([LT_INIT], [aix-soname=aix aix-soname=both aix-soname=svr4], + [_LT_WITH_AIX_SONAME([aix])]) + ]) +])# _LT_SET_OPTIONS + + +## --------------------------------- ## +## Macros to handle LT_INIT options. ## +## --------------------------------- ## + +# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME) +# ----------------------------------------- +m4_define([_LT_MANGLE_DEFUN], +[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])]) + + +# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE) +# ----------------------------------------------- +m4_define([LT_OPTION_DEFINE], +[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl +])# LT_OPTION_DEFINE + + +# dlopen +# ------ +LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes +]) + +AU_DEFUN([AC_LIBTOOL_DLOPEN], +[_LT_SET_OPTION([LT_INIT], [dlopen]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'dlopen' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], []) + + +# win32-dll +# --------- +# Declare package support for building win32 dll's. +LT_OPTION_DEFINE([LT_INIT], [win32-dll], +[enable_win32_dll=yes + +case $host in +*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-cegcc*) + AC_CHECK_TOOL(AS, as, false) + AC_CHECK_TOOL(DLLTOOL, dlltool, false) + AC_CHECK_TOOL(OBJDUMP, objdump, false) + ;; +esac + +test -z "$AS" && AS=as +_LT_DECL([], [AS], [1], [Assembler program])dnl + +test -z "$DLLTOOL" && DLLTOOL=dlltool +_LT_DECL([], [DLLTOOL], [1], [DLL creation program])dnl + +test -z "$OBJDUMP" && OBJDUMP=objdump +_LT_DECL([], [OBJDUMP], [1], [Object dumper program])dnl +])# win32-dll + +AU_DEFUN([AC_LIBTOOL_WIN32_DLL], +[AC_REQUIRE([AC_CANONICAL_HOST])dnl +_LT_SET_OPTION([LT_INIT], [win32-dll]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'win32-dll' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], []) + + +# _LT_ENABLE_SHARED([DEFAULT]) +# ---------------------------- +# implement the --enable-shared flag, and supports the 'shared' and +# 'disable-shared' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_SHARED], +[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([shared], + [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@], + [build shared libraries @<:@default=]_LT_ENABLE_SHARED_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_shared=yes ;; + no) enable_shared=no ;; + *) + enable_shared=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_shared=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_shared=]_LT_ENABLE_SHARED_DEFAULT) + + _LT_DECL([build_libtool_libs], [enable_shared], [0], + [Whether or not to build shared libraries]) +])# _LT_ENABLE_SHARED + +LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared]) +]) + +AC_DEFUN([AC_DISABLE_SHARED], +[_LT_SET_OPTION([LT_INIT], [disable-shared]) +]) + +AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)]) +AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_SHARED], []) +dnl AC_DEFUN([AM_DISABLE_SHARED], []) + + + +# _LT_ENABLE_STATIC([DEFAULT]) +# ---------------------------- +# implement the --enable-static flag, and support the 'static' and +# 'disable-static' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_STATIC], +[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([static], + [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@], + [build static libraries @<:@default=]_LT_ENABLE_STATIC_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_static=yes ;; + no) enable_static=no ;; + *) + enable_static=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_static=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_static=]_LT_ENABLE_STATIC_DEFAULT) + + _LT_DECL([build_old_libs], [enable_static], [0], + [Whether or not to build static libraries]) +])# _LT_ENABLE_STATIC + +LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])]) + +# Old names: +AC_DEFUN([AC_ENABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static]) +]) + +AC_DEFUN([AC_DISABLE_STATIC], +[_LT_SET_OPTION([LT_INIT], [disable-static]) +]) + +AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)]) +AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AM_ENABLE_STATIC], []) +dnl AC_DEFUN([AM_DISABLE_STATIC], []) + + + +# _LT_ENABLE_FAST_INSTALL([DEFAULT]) +# ---------------------------------- +# implement the --enable-fast-install flag, and support the 'fast-install' +# and 'disable-fast-install' LT_INIT options. +# DEFAULT is either 'yes' or 'no'. If omitted, it defaults to 'yes'. +m4_define([_LT_ENABLE_FAST_INSTALL], +[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl +AC_ARG_ENABLE([fast-install], + [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@], + [optimize for fast installation @<:@default=]_LT_ENABLE_FAST_INSTALL_DEFAULT[@:>@])], + [p=${PACKAGE-default} + case $enableval in + yes) enable_fast_install=yes ;; + no) enable_fast_install=no ;; + *) + enable_fast_install=no + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for pkg in $enableval; do + IFS=$lt_save_ifs + if test "X$pkg" = "X$p"; then + enable_fast_install=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [enable_fast_install=]_LT_ENABLE_FAST_INSTALL_DEFAULT) + +_LT_DECL([fast_install], [enable_fast_install], [0], + [Whether or not to optimize for fast installation])dnl +])# _LT_ENABLE_FAST_INSTALL + +LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])]) +LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])]) + +# Old names: +AU_DEFUN([AC_ENABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'fast-install' option into LT_INIT's first parameter.]) +]) + +AU_DEFUN([AC_DISABLE_FAST_INSTALL], +[_LT_SET_OPTION([LT_INIT], [disable-fast-install]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you put +the 'disable-fast-install' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], []) +dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], []) + + +# _LT_WITH_AIX_SONAME([DEFAULT]) +# ---------------------------------- +# implement the --with-aix-soname flag, and support the `aix-soname=aix' +# and `aix-soname=both' and `aix-soname=svr4' LT_INIT options. DEFAULT +# is either `aix', `both' or `svr4'. If omitted, it defaults to `aix'. +m4_define([_LT_WITH_AIX_SONAME], +[m4_define([_LT_WITH_AIX_SONAME_DEFAULT], [m4_if($1, svr4, svr4, m4_if($1, both, both, aix))])dnl +shared_archive_member_spec= +case $host,$enable_shared in +power*-*-aix[[5-9]]*,yes) + AC_MSG_CHECKING([which variant of shared library versioning to provide]) + AC_ARG_WITH([aix-soname], + [AS_HELP_STRING([--with-aix-soname=aix|svr4|both], + [shared library versioning (aka "SONAME") variant to provide on AIX, @<:@default=]_LT_WITH_AIX_SONAME_DEFAULT[@:>@.])], + [case $withval in + aix|svr4|both) + ;; + *) + AC_MSG_ERROR([Unknown argument to --with-aix-soname]) + ;; + esac + lt_cv_with_aix_soname=$with_aix_soname], + [AC_CACHE_VAL([lt_cv_with_aix_soname], + [lt_cv_with_aix_soname=]_LT_WITH_AIX_SONAME_DEFAULT) + with_aix_soname=$lt_cv_with_aix_soname]) + AC_MSG_RESULT([$with_aix_soname]) + if test aix != "$with_aix_soname"; then + # For the AIX way of multilib, we name the shared archive member + # based on the bitwidth used, traditionally 'shr.o' or 'shr_64.o', + # and 'shr.imp' or 'shr_64.imp', respectively, for the Import File. + # Even when GNU compilers ignore OBJECT_MODE but need '-maix64' flag, + # the AIX toolchain works better with OBJECT_MODE set (default 32). + if test 64 = "${OBJECT_MODE-32}"; then + shared_archive_member_spec=shr_64 + else + shared_archive_member_spec=shr + fi + fi + ;; +*) + with_aix_soname=aix + ;; +esac + +_LT_DECL([], [shared_archive_member_spec], [0], + [Shared archive member basename, for filename based shared library versioning on AIX])dnl +])# _LT_WITH_AIX_SONAME + +LT_OPTION_DEFINE([LT_INIT], [aix-soname=aix], [_LT_WITH_AIX_SONAME([aix])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=both], [_LT_WITH_AIX_SONAME([both])]) +LT_OPTION_DEFINE([LT_INIT], [aix-soname=svr4], [_LT_WITH_AIX_SONAME([svr4])]) + + +# _LT_WITH_PIC([MODE]) +# -------------------- +# implement the --with-pic flag, and support the 'pic-only' and 'no-pic' +# LT_INIT options. +# MODE is either 'yes' or 'no'. If omitted, it defaults to 'both'. +m4_define([_LT_WITH_PIC], +[AC_ARG_WITH([pic], + [AS_HELP_STRING([--with-pic@<:@=PKGS@:>@], + [try to use only PIC/non-PIC objects @<:@default=use both@:>@])], + [lt_p=${PACKAGE-default} + case $withval in + yes|no) pic_mode=$withval ;; + *) + pic_mode=default + # Look at the argument we got. We use all the common list separators. + lt_save_ifs=$IFS; IFS=$IFS$PATH_SEPARATOR, + for lt_pkg in $withval; do + IFS=$lt_save_ifs + if test "X$lt_pkg" = "X$lt_p"; then + pic_mode=yes + fi + done + IFS=$lt_save_ifs + ;; + esac], + [pic_mode=m4_default([$1], [default])]) + +_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl +])# _LT_WITH_PIC + +LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])]) +LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])]) + +# Old name: +AU_DEFUN([AC_LIBTOOL_PICMODE], +[_LT_SET_OPTION([LT_INIT], [pic-only]) +AC_DIAGNOSE([obsolete], +[$0: Remove this warning and the call to _LT_SET_OPTION when you +put the 'pic-only' option into LT_INIT's first parameter.]) +]) + +dnl aclocal-1.4 backwards compatibility: +dnl AC_DEFUN([AC_LIBTOOL_PICMODE], []) + +## ----------------- ## +## LTDL_INIT Options ## +## ----------------- ## + +m4_define([_LTDL_MODE], []) +LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive], + [m4_define([_LTDL_MODE], [nonrecursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [recursive], + [m4_define([_LTDL_MODE], [recursive])]) +LT_OPTION_DEFINE([LTDL_INIT], [subproject], + [m4_define([_LTDL_MODE], [subproject])]) + +m4_define([_LTDL_TYPE], []) +LT_OPTION_DEFINE([LTDL_INIT], [installable], + [m4_define([_LTDL_TYPE], [installable])]) +LT_OPTION_DEFINE([LTDL_INIT], [convenience], + [m4_define([_LTDL_TYPE], [convenience])]) diff --git a/deps/cares/m4/ltsugar.m4 b/deps/cares/m4/ltsugar.m4 new file mode 100644 index 00000000000000..48bc9344a4d661 --- /dev/null +++ b/deps/cares/m4/ltsugar.m4 @@ -0,0 +1,124 @@ +# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007-2008, 2011-2015 Free Software +# Foundation, Inc. +# Written by Gary V. Vaughan, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 6 ltsugar.m4 + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])]) + + +# lt_join(SEP, ARG1, [ARG2...]) +# ----------------------------- +# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their +# associated separator. +# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier +# versions in m4sugar had bugs. +m4_define([lt_join], +[m4_if([$#], [1], [], + [$#], [2], [[$2]], + [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])]) +m4_define([_lt_join], +[m4_if([$#$2], [2], [], + [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])]) + + +# lt_car(LIST) +# lt_cdr(LIST) +# ------------ +# Manipulate m4 lists. +# These macros are necessary as long as will still need to support +# Autoconf-2.59, which quotes differently. +m4_define([lt_car], [[$1]]) +m4_define([lt_cdr], +[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])], + [$#], 1, [], + [m4_dquote(m4_shift($@))])]) +m4_define([lt_unquote], $1) + + +# lt_append(MACRO-NAME, STRING, [SEPARATOR]) +# ------------------------------------------ +# Redefine MACRO-NAME to hold its former content plus 'SEPARATOR''STRING'. +# Note that neither SEPARATOR nor STRING are expanded; they are appended +# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked). +# No SEPARATOR is output if MACRO-NAME was previously undefined (different +# than defined and empty). +# +# This macro is needed until we can rely on Autoconf 2.62, since earlier +# versions of m4sugar mistakenly expanded SEPARATOR but not STRING. +m4_define([lt_append], +[m4_define([$1], + m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])]) + + + +# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...]) +# ---------------------------------------------------------- +# Produce a SEP delimited list of all paired combinations of elements of +# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list +# has the form PREFIXmINFIXSUFFIXn. +# Needed until we can rely on m4_combine added in Autoconf 2.62. +m4_define([lt_combine], +[m4_if(m4_eval([$# > 3]), [1], + [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl +[[m4_foreach([_Lt_prefix], [$2], + [m4_foreach([_Lt_suffix], + ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[, + [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])]) + + +# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ]) +# ----------------------------------------------------------------------- +# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited +# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ. +m4_define([lt_if_append_uniq], +[m4_ifdef([$1], + [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1], + [lt_append([$1], [$2], [$3])$4], + [$5])], + [lt_append([$1], [$2], [$3])$4])]) + + +# lt_dict_add(DICT, KEY, VALUE) +# ----------------------------- +m4_define([lt_dict_add], +[m4_define([$1($2)], [$3])]) + + +# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE) +# -------------------------------------------- +m4_define([lt_dict_add_subkey], +[m4_define([$1($2:$3)], [$4])]) + + +# lt_dict_fetch(DICT, KEY, [SUBKEY]) +# ---------------------------------- +m4_define([lt_dict_fetch], +[m4_ifval([$3], + m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]), + m4_ifdef([$1($2)], [m4_defn([$1($2)])]))]) + + +# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE]) +# ----------------------------------------------------------------- +m4_define([lt_if_dict_fetch], +[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4], + [$5], + [$6])]) + + +# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...]) +# -------------------------------------------------------------- +m4_define([lt_dict_filter], +[m4_if([$5], [], [], + [lt_join(m4_quote(m4_default([$4], [[, ]])), + lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]), + [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl +]) diff --git a/deps/cares/m4/ltversion.m4 b/deps/cares/m4/ltversion.m4 new file mode 100644 index 00000000000000..fa04b52a3bf868 --- /dev/null +++ b/deps/cares/m4/ltversion.m4 @@ -0,0 +1,23 @@ +# ltversion.m4 -- version numbers -*- Autoconf -*- +# +# Copyright (C) 2004, 2011-2015 Free Software Foundation, Inc. +# Written by Scott James Remnant, 2004 +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# @configure_input@ + +# serial 4179 ltversion.m4 +# This file is part of GNU Libtool + +m4_define([LT_PACKAGE_VERSION], [2.4.6]) +m4_define([LT_PACKAGE_REVISION], [2.4.6]) + +AC_DEFUN([LTVERSION_VERSION], +[macro_version='2.4.6' +macro_revision='2.4.6' +_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?]) +_LT_DECL(, macro_revision, 0) +]) diff --git a/deps/cares/m4/lt~obsolete.m4 b/deps/cares/m4/lt~obsolete.m4 new file mode 100644 index 00000000000000..c6b26f88f6c3c1 --- /dev/null +++ b/deps/cares/m4/lt~obsolete.m4 @@ -0,0 +1,99 @@ +# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*- +# +# Copyright (C) 2004-2005, 2007, 2009, 2011-2015 Free Software +# Foundation, Inc. +# Written by Scott James Remnant, 2004. +# +# This file is free software; the Free Software Foundation gives +# unlimited permission to copy and/or distribute it, with or without +# modifications, as long as this notice is preserved. + +# serial 5 lt~obsolete.m4 + +# These exist entirely to fool aclocal when bootstrapping libtool. +# +# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN), +# which have later been changed to m4_define as they aren't part of the +# exported API, or moved to Autoconf or Automake where they belong. +# +# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN +# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us +# using a macro with the same name in our local m4/libtool.m4 it'll +# pull the old libtool.m4 in (it doesn't see our shiny new m4_define +# and doesn't know about Autoconf macros at all.) +# +# So we provide this file, which has a silly filename so it's always +# included after everything else. This provides aclocal with the +# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything +# because those macros already exist, or will be overwritten later. +# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6. +# +# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here. +# Yes, that means every name once taken will need to remain here until +# we give up compatibility with versions before 1.7, at which point +# we need to keep only those names which we still refer to. + +# This is to help aclocal find these macros, as it can't see m4_define. +AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])]) + +m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])]) +m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])]) +m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])]) +m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])]) +m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])]) +m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])]) +m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])]) +m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])]) +m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])]) +m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])]) +m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])]) +m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])]) +m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])]) +m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])]) +m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])]) +m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])]) +m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])]) +m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])]) +m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])]) +m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])]) +m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])]) +m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])]) +m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])]) +m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])]) +m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])]) +m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])]) +m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])]) +m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])]) +m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])]) +m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])]) +m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])]) +m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])]) +m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])]) +m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])]) +m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])]) +m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])]) +m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])]) +m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])]) +m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])]) +m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])]) +m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])]) +m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])]) +m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])]) +m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])]) +m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])]) +m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])]) +m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])]) +m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])]) +m4_ifndef([_LT_REQUIRED_DARWIN_CHECKS], [AC_DEFUN([_LT_REQUIRED_DARWIN_CHECKS])]) +m4_ifndef([_LT_AC_PROG_CXXCPP], [AC_DEFUN([_LT_AC_PROG_CXXCPP])]) +m4_ifndef([_LT_PREPARE_SED_QUOTE_VARS], [AC_DEFUN([_LT_PREPARE_SED_QUOTE_VARS])]) +m4_ifndef([_LT_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_PROG_ECHO_BACKSLASH])]) +m4_ifndef([_LT_PROG_F77], [AC_DEFUN([_LT_PROG_F77])]) +m4_ifndef([_LT_PROG_FC], [AC_DEFUN([_LT_PROG_FC])]) +m4_ifndef([_LT_PROG_CXX], [AC_DEFUN([_LT_PROG_CXX])]) diff --git a/deps/cares/m4/xc-am-iface.m4 b/deps/cares/m4/xc-am-iface.m4 new file mode 100644 index 00000000000000..1571c211fb4e54 --- /dev/null +++ b/deps/cares/m4/xc-am-iface.m4 @@ -0,0 +1,253 @@ +#--------------------------------------------------------------------------- +# +# xc-am-iface.m4 +# +# Copyright (c) 2013 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl _XC_AUTOMAKE_BODY +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl This macro performs embedding of automake initialization +dnl code into configure script. When automake version 1.14 or +dnl newer is used at configure script generation time, this +dnl results in 'subdir-objects' automake option being used. +dnl When using automake versions older than 1.14 this option +dnl is not used when generating configure script. +dnl +dnl Existence of automake _AM_PROG_CC_C_O m4 private macro +dnl is used to differentiate automake version 1.14 from older +dnl ones which lack this macro. + +m4_define([_XC_AUTOMAKE_BODY], +[dnl +## --------------------------------------- ## +## Start of automake initialization code ## +## --------------------------------------- ## +m4_ifdef([_AM_PROG_CC_C_O], +[ +AM_INIT_AUTOMAKE([subdir-objects]) +],[ +AM_INIT_AUTOMAKE +])dnl +## ------------------------------------- ## +## End of automake initialization code ## +## ------------------------------------- ## +dnl +m4_define([$0], [])[]dnl +]) + + +dnl XC_AUTOMAKE +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl This macro embeds automake machinery into configure +dnl script regardless of automake version used in order +dnl to generate configure script. +dnl +dnl When using automake version 1.14 or newer, automake +dnl initialization option 'subdir-objects' is used to +dnl generate the configure script, otherwise this option +dnl is not used. + +AC_DEFUN([XC_AUTOMAKE], +[dnl +AC_PREREQ([2.50])dnl +dnl +AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl +dnl +_XC_AUTOMAKE_BODY +dnl +m4_ifdef([AM_INIT_AUTOMAKE], + [m4_undefine([AM_INIT_AUTOMAKE])])dnl +dnl +m4_define([$0], [])[]dnl +]) + + +dnl _XC_AMEND_DISTCLEAN_BODY ([LIST-OF-SUBDIRS]) +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl This macro performs shell code embedding into +dnl configure script in order to modify distclean +dnl and maintainer-clean targets of makefiles which +dnl are located in given list of subdirs. +dnl +dnl See XC_AMEND_DISTCLEAN comments for details. + +m4_define([_XC_AMEND_DISTCLEAN_BODY], +[dnl +## ---------------------------------- ## +## Start of distclean amending code ## +## ---------------------------------- ## + +for xc_subdir in [$1] +do + +if test ! -f "$xc_subdir/Makefile"; then + echo "$xc_msg_err $xc_subdir/Makefile file not found. $xc_msg_abrt" >&2 + exit 1 +fi + +# Fetch dependency tracking file list from Makefile include lines. + +xc_inc_lines=`grep '^include .*(DEPDIR)' "$xc_subdir/Makefile" 2>/dev/null` +xc_cnt_words=`echo "$xc_inc_lines" | wc -w | tr -d "$xc_space$xc_tab"` + +# --disable-dependency-tracking might have been used, consequently +# there is nothing to amend without a dependency tracking file list. + +if test $xc_cnt_words -gt 0; then + +AC_MSG_NOTICE([amending $xc_subdir/Makefile]) + +# Build Makefile specific patch hunk. + +xc_p="$xc_subdir/xc_patch.tmp" + +xc_rm_depfiles=`echo "$xc_inc_lines" \ + | $SED 's%include% -rm -f%' 2>/dev/null` + +xc_dep_subdirs=`echo "$xc_inc_lines" \ + | $SED 's%include[[ ]][[ ]]*%%' 2>/dev/null \ + | $SED 's%(DEPDIR)/.*%(DEPDIR)%' 2>/dev/null \ + | sort | uniq` + +echo "$xc_rm_depfiles" >$xc_p + +for xc_dep_dir in $xc_dep_subdirs; do + echo "${xc_tab}@xm_dep_cnt=\`ls $xc_dep_dir | wc -l 2>/dev/null\`; \\" >>$xc_p + echo "${xc_tab}if test \$\$xm_dep_cnt -eq 0 && test -d $xc_dep_dir; then \\" >>$xc_p + echo "${xc_tab} rm -rf $xc_dep_dir; \\" >>$xc_p + echo "${xc_tab}fi" >>$xc_p +done + +# Build Makefile patching sed scripts. + +xc_s1="$xc_subdir/xc_script_1.tmp" +xc_s2="$xc_subdir/xc_script_2.tmp" +xc_s3="$xc_subdir/xc_script_3.tmp" + +cat >$xc_s1 <<\_EOT +/^distclean[[ ]]*:/,/^[[^ ]][[^ ]]*:/{ + s/^.*(DEPDIR)/___xc_depdir_line___/ +} +/^maintainer-clean[[ ]]*:/,/^[[^ ]][[^ ]]*:/{ + s/^.*(DEPDIR)/___xc_depdir_line___/ +} +_EOT + +cat >$xc_s2 <<\_EOT +/___xc_depdir_line___$/{ + N + /___xc_depdir_line___$/D +} +_EOT + +cat >$xc_s3 <<_EOT +/^___xc_depdir_line___/{ + r $xc_p + d +} +_EOT + +# Apply patch to Makefile and cleanup. + +$SED -f "$xc_s1" "$xc_subdir/Makefile" >"$xc_subdir/Makefile.tmp1" +$SED -f "$xc_s2" "$xc_subdir/Makefile.tmp1" >"$xc_subdir/Makefile.tmp2" +$SED -f "$xc_s3" "$xc_subdir/Makefile.tmp2" >"$xc_subdir/Makefile.tmp3" + +if test -f "$xc_subdir/Makefile.tmp3"; then + mv -f "$xc_subdir/Makefile.tmp3" "$xc_subdir/Makefile" +fi + +test -f "$xc_subdir/Makefile.tmp1" && rm -f "$xc_subdir/Makefile.tmp1" +test -f "$xc_subdir/Makefile.tmp2" && rm -f "$xc_subdir/Makefile.tmp2" +test -f "$xc_subdir/Makefile.tmp3" && rm -f "$xc_subdir/Makefile.tmp3" + +test -f "$xc_p" && rm -f "$xc_p" +test -f "$xc_s1" && rm -f "$xc_s1" +test -f "$xc_s2" && rm -f "$xc_s2" +test -f "$xc_s3" && rm -f "$xc_s3" + +fi + +done + +## -------------------------------- ## +## End of distclean amending code ## +## -------------------------------- ## +dnl +m4_define([$0], [])[]dnl +]) + + +dnl XC_AMEND_DISTCLEAN ([LIST-OF-SUBDIRS]) +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl This macro embeds shell code into configure script +dnl that amends, at configure runtime, the distclean +dnl and maintainer-clean targets of Makefiles located +dnl in all subdirs given in the mandatory white-space +dnl separated list argument. +dnl +dnl Embedding only takes place when using automake 1.14 +dnl or newer, otherwise amending code is not included +dnl in generated configure script. +dnl +dnl distclean and maintainer-clean targets are modified +dnl to avoid unconditional removal of dependency subdirs +dnl which triggers distclean and maintainer-clean errors +dnl when using automake 'subdir-objects' option along +dnl with per-target objects and source files existing in +dnl multiple subdirs used for different build targets. +dnl +dnl New behavior first removes each dependency tracking +dnl file independently, and only removes each dependency +dnl subdir when it finds out that it no longer holds any +dnl dependency tracking file. +dnl +dnl When configure option --disable-dependency-tracking +dnl is used no amending takes place given that there are +dnl no dependency tracking files. + +AC_DEFUN([XC_AMEND_DISTCLEAN], +[dnl +AC_PREREQ([2.50])dnl +dnl +m4_ifdef([_AC_OUTPUT_MAIN_LOOP], + [m4_provide_if([_AC_OUTPUT_MAIN_LOOP], [], + [m4_fatal([call to AC_OUTPUT needed before $0])])])dnl +dnl +m4_if([$#], [1], [], [m4_fatal([$0: wrong number of arguments])])dnl +m4_if([$1], [], [m4_fatal([$0: missing argument])])dnl +dnl +AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl +dnl +m4_ifdef([_AM_PROG_CC_C_O], +[ +_XC_AMEND_DISTCLEAN_BODY([$1]) +])dnl +m4_define([$0], [])[]dnl +]) + diff --git a/deps/cares/m4/xc-cc-check.m4 b/deps/cares/m4/xc-cc-check.m4 new file mode 100644 index 00000000000000..777decf2983d11 --- /dev/null +++ b/deps/cares/m4/xc-cc-check.m4 @@ -0,0 +1,96 @@ +#--------------------------------------------------------------------------- +# +# xc-cc-check.m4 +# +# Copyright (c) 2013 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl _XC_PROG_CC_PREAMBLE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC_PREAMBLE], [ + xc_prog_cc_prev_IFS=$IFS + xc_prog_cc_prev_LIBS=$LIBS + xc_prog_cc_prev_CFLAGS=$CFLAGS + xc_prog_cc_prev_LDFLAGS=$LDFLAGS + xc_prog_cc_prev_CPPFLAGS=$CPPFLAGS +]) + + +dnl _XC_PROG_CC_POSTLUDE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC_POSTLUDE], [ + IFS=$xc_prog_cc_prev_IFS + LIBS=$xc_prog_cc_prev_LIBS + CFLAGS=$xc_prog_cc_prev_CFLAGS + LDFLAGS=$xc_prog_cc_prev_LDFLAGS + CPPFLAGS=$xc_prog_cc_prev_CPPFLAGS + AC_SUBST([CC])dnl + AC_SUBST([CPP])dnl + AC_SUBST([LIBS])dnl + AC_SUBST([CFLAGS])dnl + AC_SUBST([LDFLAGS])dnl + AC_SUBST([CPPFLAGS])dnl +]) + + +dnl _XC_PROG_CC +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_PROG_CC], [ + AC_REQUIRE([_XC_PROG_CC_PREAMBLE])dnl + AC_REQUIRE([XC_CHECK_BUILD_FLAGS])dnl + AC_REQUIRE([AC_PROG_INSTALL])dnl + AC_REQUIRE([AC_PROG_CC])dnl + AC_REQUIRE([AM_PROG_CC_C_O])dnl + AC_REQUIRE([AC_PROG_CPP])dnl + AC_REQUIRE([_XC_PROG_CC_POSTLUDE])dnl +]) + + +dnl XC_CHECK_PROG_CC +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl Checks for C compiler and C preprocessor programs, +dnl while doing some previous sanity validation on user +dnl provided LIBS, LDFLAGS, CPPFLAGS and CFLAGS values +dnl that must succeed in order to continue execution. +dnl +dnl This sets variables CC and CPP, while preventing +dnl LIBS, LDFLAGS, CFLAGS, CPPFLAGS and IFS from being +dnl unexpectedly changed by underlying macros. + +AC_DEFUN([XC_CHECK_PROG_CC], [ + AC_PREREQ([2.50])dnl + AC_BEFORE([$0],[_XC_PROG_CC_PREAMBLE])dnl + AC_BEFORE([$0],[AC_PROG_INSTALL])dnl + AC_BEFORE([$0],[AC_PROG_CC])dnl + AC_BEFORE([$0],[AM_PROG_CC_C_O])dnl + AC_BEFORE([$0],[AC_PROG_CPP])dnl + AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl + AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl + AC_BEFORE([$0],[_XC_PROG_CC_POSTLUDE])dnl + AC_REQUIRE([_XC_PROG_CC])dnl +]) + diff --git a/deps/cares/m4/xc-lt-iface.m4 b/deps/cares/m4/xc-lt-iface.m4 new file mode 100644 index 00000000000000..0b90d5f25f0252 --- /dev/null +++ b/deps/cares/m4/xc-lt-iface.m4 @@ -0,0 +1,465 @@ +#--------------------------------------------------------------------------- +# +# xc-lt-iface.m4 +# +# Copyright (c) 2013 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl _XC_LIBTOOL_PREAMBLE +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks some configure script options related with +dnl libtool and customizes its default behavior before +dnl libtool code is actually used in script. + +m4_define([_XC_LIBTOOL_PREAMBLE], +[dnl +# ------------------------------------ # +# Determine libtool default behavior # +# ------------------------------------ # + +# +# Default behavior is to enable shared and static libraries on systems +# where libtool knows how to build both library versions, and does not +# require separate configuration and build runs for each flavor. +# + +xc_lt_want_enable_shared='yes' +xc_lt_want_enable_static='yes' + +# +# User may have disabled shared or static libraries. +# +case "x$enable_shared" in @%:@ ( + xno) + xc_lt_want_enable_shared='no' + ;; +esac +case "x$enable_static" in @%:@ ( + xno) + xc_lt_want_enable_static='no' + ;; +esac +if test "x$xc_lt_want_enable_shared" = 'xno' && + test "x$xc_lt_want_enable_static" = 'xno'; then + AC_MSG_ERROR([can not disable shared and static libraries simultaneously]) +fi + +# +# Default behavior on systems that require independent configuration +# and build runs for shared and static is to enable shared libraries +# and disable static ones. On these systems option '--disable-shared' +# must be used in order to build a proper static library. +# + +if test "x$xc_lt_want_enable_shared" = 'xyes' && + test "x$xc_lt_want_enable_static" = 'xyes'; then + case $host_os in @%:@ ( + mingw* | pw32* | cegcc* | os2* | aix*) + xc_lt_want_enable_static='no' + ;; + esac +fi + +# +# Make libtool aware of current shared and static library preferences +# taking in account that, depending on host characteristics, libtool +# may modify these option preferences later in this configure script. +# + +enable_shared=$xc_lt_want_enable_shared +enable_static=$xc_lt_want_enable_static + +# +# Default behavior is to build PIC objects for shared libraries and +# non-PIC objects for static libraries. +# + +xc_lt_want_with_pic='default' + +# +# User may have specified PIC preference. +# + +case "x$with_pic" in @%:@ (( + xno) + xc_lt_want_with_pic='no' + ;; + xyes) + xc_lt_want_with_pic='yes' + ;; +esac + +# +# Default behavior on some systems where building a shared library out +# of non-PIC compiled objects will fail with following linker error +# "relocation R_X86_64_32 can not be used when making a shared object" +# is to build PIC objects even for static libraries. This behavior may +# be overriden using 'configure --disable-shared --without-pic'. +# + +if test "x$xc_lt_want_with_pic" = 'xdefault'; then + case $host_cpu in @%:@ ( + x86_64 | amd64 | ia64) + case $host_os in @%:@ ( + linux* | freebsd*) + xc_lt_want_with_pic='yes' + ;; + esac + ;; + esac +fi + +# +# Make libtool aware of current PIC preference taking in account that, +# depending on host characteristics, libtool may modify PIC default +# behavior to fit host system idiosyncrasies later in this script. +# + +with_pic=$xc_lt_want_with_pic +dnl +m4_define([$0],[])dnl +]) + + +dnl _XC_LIBTOOL_BODY +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl This macro performs embedding of libtool code into +dnl configure script, regardless of libtool version in +dnl use when generating configure script. + +m4_define([_XC_LIBTOOL_BODY], +[dnl +## ----------------------- ## +## Start of libtool code ## +## ----------------------- ## +m4_ifdef([LT_INIT], +[dnl +LT_INIT([win32-dll]) +],[dnl +AC_LIBTOOL_WIN32_DLL +AC_PROG_LIBTOOL +])dnl +## --------------------- ## +## End of libtool code ## +## --------------------- ## +dnl +m4_define([$0], [])[]dnl +]) + + +dnl _XC_CHECK_LT_BUILD_LIBRARIES +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks wether libtool shared and static libraries +dnl are finally built depending on user input, default +dnl behavior and knowledge that libtool has about host +dnl characteristics. +dnl Results stored in following shell variables: +dnl xc_lt_build_shared +dnl xc_lt_build_static + +m4_define([_XC_CHECK_LT_BUILD_LIBRARIES], +[dnl +# +# Verify if finally libtool shared libraries will be built +# + +case "x$enable_shared" in @%:@ (( + xyes | xno) + xc_lt_build_shared=$enable_shared + ;; + *) + AC_MSG_ERROR([unexpected libtool enable_shared value: $enable_shared]) + ;; +esac + +# +# Verify if finally libtool static libraries will be built +# + +case "x$enable_static" in @%:@ (( + xyes | xno) + xc_lt_build_static=$enable_static + ;; + *) + AC_MSG_ERROR([unexpected libtool enable_static value: $enable_static]) + ;; +esac +dnl +m4_define([$0],[])dnl +]) + + +dnl _XC_CHECK_LT_SHLIB_USE_VERSION_INFO +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks if the -version-info linker flag must be +dnl provided when building libtool shared libraries. +dnl Result stored in xc_lt_shlib_use_version_info. + +m4_define([_XC_CHECK_LT_SHLIB_USE_VERSION_INFO], +[dnl +# +# Verify if libtool shared libraries should be linked using flag -version-info +# + +AC_MSG_CHECKING([whether to build shared libraries with -version-info]) +xc_lt_shlib_use_version_info='yes' +if test "x$version_type" = 'xnone'; then + xc_lt_shlib_use_version_info='no' +fi +case $host_os in @%:@ ( + amigaos*) + xc_lt_shlib_use_version_info='yes' + ;; +esac +AC_MSG_RESULT([$xc_lt_shlib_use_version_info]) +dnl +m4_define([$0], [])[]dnl +]) + + +dnl _XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks if the -no-undefined linker flag must be +dnl provided when building libtool shared libraries. +dnl Result stored in xc_lt_shlib_use_no_undefined. + +m4_define([_XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED], +[dnl +# +# Verify if libtool shared libraries should be linked using flag -no-undefined +# + +AC_MSG_CHECKING([whether to build shared libraries with -no-undefined]) +xc_lt_shlib_use_no_undefined='no' +if test "x$allow_undefined" = 'xno'; then + xc_lt_shlib_use_no_undefined='yes' +elif test "x$allow_undefined_flag" = 'xunsupported'; then + xc_lt_shlib_use_no_undefined='yes' +fi +case $host_os in @%:@ ( + cygwin* | mingw* | pw32* | cegcc* | os2* | aix*) + xc_lt_shlib_use_no_undefined='yes' + ;; +esac +AC_MSG_RESULT([$xc_lt_shlib_use_no_undefined]) +dnl +m4_define([$0], [])[]dnl +]) + + +dnl _XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks if the -mimpure-text linker flag must be +dnl provided when building libtool shared libraries. +dnl Result stored in xc_lt_shlib_use_mimpure_text. + +m4_define([_XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT], +[dnl +# +# Verify if libtool shared libraries should be linked using flag -mimpure-text +# + +AC_MSG_CHECKING([whether to build shared libraries with -mimpure-text]) +xc_lt_shlib_use_mimpure_text='no' +case $host_os in @%:@ ( + solaris2*) + if test "x$GCC" = 'xyes'; then + xc_lt_shlib_use_mimpure_text='yes' + fi + ;; +esac +AC_MSG_RESULT([$xc_lt_shlib_use_mimpure_text]) +dnl +m4_define([$0], [])[]dnl +]) + + +dnl _XC_CHECK_LT_BUILD_WITH_PIC +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks wether libtool shared and static libraries +dnl would be built with PIC depending on user input, +dnl default behavior and knowledge that libtool has +dnl about host characteristics. +dnl Results stored in following shell variables: +dnl xc_lt_build_shared_with_pic +dnl xc_lt_build_static_with_pic + +m4_define([_XC_CHECK_LT_BUILD_WITH_PIC], +[dnl +# +# Find out wether libtool libraries would be built wit PIC +# + +case "x$pic_mode" in @%:@ (((( + xdefault) + xc_lt_build_shared_with_pic='yes' + xc_lt_build_static_with_pic='no' + ;; + xyes) + xc_lt_build_shared_with_pic='yes' + xc_lt_build_static_with_pic='yes' + ;; + xno) + xc_lt_build_shared_with_pic='no' + xc_lt_build_static_with_pic='no' + ;; + *) + xc_lt_build_shared_with_pic='unknown' + xc_lt_build_static_with_pic='unknown' + AC_MSG_WARN([unexpected libtool pic_mode value: $pic_mode]) + ;; +esac +AC_MSG_CHECKING([whether to build shared libraries with PIC]) +AC_MSG_RESULT([$xc_lt_build_shared_with_pic]) +AC_MSG_CHECKING([whether to build static libraries with PIC]) +AC_MSG_RESULT([$xc_lt_build_static_with_pic]) +dnl +m4_define([$0],[])dnl +]) + + +dnl _XC_CHECK_LT_BUILD_SINGLE_VERSION +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Checks wether a libtool shared or static library +dnl is finally built exclusively without the other. +dnl Results stored in following shell variables: +dnl xc_lt_build_shared_only +dnl xc_lt_build_static_only + +m4_define([_XC_CHECK_LT_BUILD_SINGLE_VERSION], +[dnl +# +# Verify if libtool shared libraries will be built while static not built +# + +AC_MSG_CHECKING([whether to build shared libraries only]) +if test "$xc_lt_build_shared" = 'yes' && + test "$xc_lt_build_static" = 'no'; then + xc_lt_build_shared_only='yes' +else + xc_lt_build_shared_only='no' +fi +AC_MSG_RESULT([$xc_lt_build_shared_only]) + +# +# Verify if libtool static libraries will be built while shared not built +# + +AC_MSG_CHECKING([whether to build static libraries only]) +if test "$xc_lt_build_static" = 'yes' && + test "$xc_lt_build_shared" = 'no'; then + xc_lt_build_static_only='yes' +else + xc_lt_build_static_only='no' +fi +AC_MSG_RESULT([$xc_lt_build_static_only]) +dnl +m4_define([$0],[])dnl +]) + + +dnl _XC_LIBTOOL_POSTLUDE +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Performs several checks related with libtool that +dnl can not be done unless libtool code has already +dnl been executed. See individual check descriptions +dnl for further info. + +m4_define([_XC_LIBTOOL_POSTLUDE], +[dnl +_XC_CHECK_LT_BUILD_LIBRARIES +_XC_CHECK_LT_SHLIB_USE_VERSION_INFO +_XC_CHECK_LT_SHLIB_USE_NO_UNDEFINED +_XC_CHECK_LT_SHLIB_USE_MIMPURE_TEXT +_XC_CHECK_LT_BUILD_WITH_PIC +_XC_CHECK_LT_BUILD_SINGLE_VERSION +dnl +m4_define([$0],[])dnl +]) + + +dnl XC_LIBTOOL +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl This macro embeds libtool machinery into configure +dnl script, regardless of libtool version, and performs +dnl several additional checks whose results can be used +dnl later on. +dnl +dnl Usage of this macro ensures that generated configure +dnl script uses equivalent logic irrespective of autoconf +dnl or libtool version being used to generate configure +dnl script. +dnl +dnl Results stored in following shell variables: +dnl xc_lt_build_shared +dnl xc_lt_build_static +dnl xc_lt_shlib_use_version_info +dnl xc_lt_shlib_use_no_undefined +dnl xc_lt_shlib_use_mimpure_text +dnl xc_lt_build_shared_with_pic +dnl xc_lt_build_static_with_pic +dnl xc_lt_build_shared_only +dnl xc_lt_build_static_only + +AC_DEFUN([XC_LIBTOOL], +[dnl +AC_PREREQ([2.50])dnl +dnl +AC_BEFORE([$0],[LT_INIT])dnl +AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl +AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl +dnl +AC_REQUIRE([XC_CHECK_PATH_SEPARATOR])dnl +AC_REQUIRE([AC_CANONICAL_HOST])dnl +AC_REQUIRE([AC_PROG_CC])dnl +dnl +_XC_LIBTOOL_PREAMBLE +_XC_LIBTOOL_BODY +_XC_LIBTOOL_POSTLUDE +dnl +m4_ifdef([AC_LIBTOOL_WIN32_DLL], + [m4_undefine([AC_LIBTOOL_WIN32_DLL])])dnl +m4_ifdef([AC_PROG_LIBTOOL], + [m4_undefine([AC_PROG_LIBTOOL])])dnl +m4_ifdef([LT_INIT], + [m4_undefine([LT_INIT])])dnl +dnl +m4_define([$0],[])dnl +]) + diff --git a/deps/cares/m4/xc-translit.m4 b/deps/cares/m4/xc-translit.m4 new file mode 100644 index 00000000000000..1918f1684084eb --- /dev/null +++ b/deps/cares/m4/xc-translit.m4 @@ -0,0 +1,164 @@ +#--------------------------------------------------------------------------- +# +# xc-translit.m4 +# +# Copyright (c) 2011 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# File version for 'aclocal' use. Keep it a single number. +# serial 2 + + +dnl XC_SH_TR_SH (expression) +dnl ------------------------------------------------- +dnl Shell execution time transliteration of 'expression' +dnl argument, where all non-alfanumeric characters are +dnl converted to the underscore '_' character. +dnl Normal shell expansion and substitution takes place +dnl for given 'expression' at shell execution time before +dnl transliteration is applied to it. + +AC_DEFUN([XC_SH_TR_SH], +[`echo "$1" | sed 's/[[^a-zA-Z0-9_]]/_/g'`]) + + +dnl XC_SH_TR_SH_EX (expression, [extra]) +dnl ------------------------------------------------- +dnl Like XC_SH_TR_SH but transliterating characters +dnl given in 'extra' argument to lowercase 'p'. For +dnl example [*+], [*], and [+] are valid 'extra' args. + +AC_DEFUN([XC_SH_TR_SH_EX], +[ifelse([$2], [], + [XC_SH_TR_SH([$1])], + [`echo "$1" | sed 's/[[$2]]/p/g' | sed 's/[[^a-zA-Z0-9_]]/_/g'`])]) + + +dnl XC_M4_TR_SH (expression) +dnl ------------------------------------------------- +dnl m4 execution time transliteration of 'expression' +dnl argument, where all non-alfanumeric characters are +dnl converted to the underscore '_' character. + +AC_DEFUN([XC_M4_TR_SH], +[patsubst(XC_QPATSUBST(XC_QUOTE($1), + [[^a-zA-Z0-9_]], [_]), + [\(_\(.*\)_\)], [\2])]) + + +dnl XC_M4_TR_SH_EX (expression, [extra]) +dnl ------------------------------------------------- +dnl Like XC_M4_TR_SH but transliterating characters +dnl given in 'extra' argument to lowercase 'p'. For +dnl example [*+], [*], and [+] are valid 'extra' args. + +AC_DEFUN([XC_M4_TR_SH_EX], +[ifelse([$2], [], + [XC_M4_TR_SH([$1])], + [patsubst(XC_QPATSUBST(XC_QPATSUBST(XC_QUOTE($1), + [[$2]], + [p]), + [[^a-zA-Z0-9_]], [_]), + [\(_\(.*\)_\)], [\2])])]) + + +dnl XC_SH_TR_CPP (expression) +dnl ------------------------------------------------- +dnl Shell execution time transliteration of 'expression' +dnl argument, where all non-alfanumeric characters are +dnl converted to the underscore '_' character and alnum +dnl characters are converted to uppercase. +dnl Normal shell expansion and substitution takes place +dnl for given 'expression' at shell execution time before +dnl transliteration is applied to it. + +AC_DEFUN([XC_SH_TR_CPP], +[`echo "$1" | dnl +sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | dnl +sed 's/[[^A-Z0-9_]]/_/g'`]) + + +dnl XC_SH_TR_CPP_EX (expression, [extra]) +dnl ------------------------------------------------- +dnl Like XC_SH_TR_CPP but transliterating characters +dnl given in 'extra' argument to uppercase 'P'. For +dnl example [*+], [*], and [+] are valid 'extra' args. + +AC_DEFUN([XC_SH_TR_CPP_EX], +[ifelse([$2], [], + [XC_SH_TR_CPP([$1])], + [`echo "$1" | dnl +sed 's/[[$2]]/P/g' | dnl +sed 'y/abcdefghijklmnopqrstuvwxyz/ABCDEFGHIJKLMNOPQRSTUVWXYZ/' | dnl +sed 's/[[^A-Z0-9_]]/_/g'`])]) + + +dnl XC_M4_TR_CPP (expression) +dnl ------------------------------------------------- +dnl m4 execution time transliteration of 'expression' +dnl argument, where all non-alfanumeric characters are +dnl converted to the underscore '_' character and alnum +dnl characters are converted to uppercase. + +AC_DEFUN([XC_M4_TR_CPP], +[patsubst(XC_QPATSUBST(XC_QTRANSLIT(XC_QUOTE($1), + [abcdefghijklmnopqrstuvwxyz], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ]), + [[^A-Z0-9_]], [_]), + [\(_\(.*\)_\)], [\2])]) + + +dnl XC_M4_TR_CPP_EX (expression, [extra]) +dnl ------------------------------------------------- +dnl Like XC_M4_TR_CPP but transliterating characters +dnl given in 'extra' argument to uppercase 'P'. For +dnl example [*+], [*], and [+] are valid 'extra' args. + +AC_DEFUN([XC_M4_TR_CPP_EX], +[ifelse([$2], [], + [XC_M4_TR_CPP([$1])], + [patsubst(XC_QPATSUBST(XC_QTRANSLIT(XC_QPATSUBST(XC_QUOTE($1), + [[$2]], + [P]), + [abcdefghijklmnopqrstuvwxyz], + [ABCDEFGHIJKLMNOPQRSTUVWXYZ]), + [[^A-Z0-9_]], [_]), + [\(_\(.*\)_\)], [\2])])]) + + +dnl XC_QUOTE (expression) +dnl ------------------------------------------------- +dnl Expands to quoted result of 'expression' expansion. + +AC_DEFUN([XC_QUOTE], +[[$@]]) + + +dnl XC_QPATSUBST (string, regexp[, repl]) +dnl ------------------------------------------------- +dnl Expands to quoted result of 'patsubst' expansion. + +AC_DEFUN([XC_QPATSUBST], +[XC_QUOTE(patsubst([$1], [$2], [$3]))]) + + +dnl XC_QTRANSLIT (string, chars, repl) +dnl ------------------------------------------------- +dnl Expands to quoted result of 'translit' expansion. + +AC_DEFUN([XC_QTRANSLIT], +[XC_QUOTE(translit([$1], [$2], [$3]))]) + diff --git a/deps/cares/m4/xc-val-flgs.m4 b/deps/cares/m4/xc-val-flgs.m4 new file mode 100644 index 00000000000000..81d1eac9e3bee4 --- /dev/null +++ b/deps/cares/m4/xc-val-flgs.m4 @@ -0,0 +1,243 @@ +#--------------------------------------------------------------------------- +# +# xc-val-flgs.m4 +# +# Copyright (c) 2013 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl _XC_CHECK_VAR_LIBS +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CHECK_VAR_LIBS], [ + xc_bad_var_libs=no + for xc_word in $LIBS; do + case "$xc_word" in + -l* | --library=*) + : + ;; + *) + xc_bad_var_libs=yes + ;; + esac + done + if test $xc_bad_var_libs = yes; then + AC_MSG_NOTICE([using LIBS: $LIBS]) + AC_MSG_NOTICE([LIBS error: LIBS may only be used to specify libraries (-lname).]) + fi +]) + + +dnl _XC_CHECK_VAR_LDFLAGS +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CHECK_VAR_LDFLAGS], [ + xc_bad_var_ldflags=no + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_ldflags=yes + ;; + -U*) + xc_bad_var_ldflags=yes + ;; + -I*) + xc_bad_var_ldflags=yes + ;; + -l* | --library=*) + xc_bad_var_ldflags=yes + ;; + esac + done + if test $xc_bad_var_ldflags = yes; then + AC_MSG_NOTICE([using LDFLAGS: $LDFLAGS]) + xc_bad_var_msg="LDFLAGS error: LDFLAGS may only be used to specify linker flags, not" + for xc_word in $LDFLAGS; do + case "$xc_word" in + -D*) + AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word]) + ;; + -U*) + AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word]) + ;; + -I*) + AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word]) + ;; + -l* | --library=*) + AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word]) + ;; + esac + done + fi +]) + + +dnl _XC_CHECK_VAR_CPPFLAGS +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CHECK_VAR_CPPFLAGS], [ + xc_bad_var_cppflags=no + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + xc_bad_var_cppflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cppflags=yes + ;; + -l* | --library=*) + xc_bad_var_cppflags=yes + ;; + esac + done + if test $xc_bad_var_cppflags = yes; then + AC_MSG_NOTICE([using CPPFLAGS: $CPPFLAGS]) + xc_bad_var_msg="CPPFLAGS error: CPPFLAGS may only be used to specify C preprocessor flags, not" + for xc_word in $CPPFLAGS; do + case "$xc_word" in + -rpath*) + AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word]) + ;; + -L* | --library-path=*) + AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word]) + ;; + -l* | --library=*) + AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word]) + ;; + esac + done + fi +]) + + +dnl _XC_CHECK_VAR_CFLAGS +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CHECK_VAR_CFLAGS], [ + xc_bad_var_cflags=no + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + xc_bad_var_cflags=yes + ;; + -U*) + xc_bad_var_cflags=yes + ;; + -I*) + xc_bad_var_cflags=yes + ;; + -rpath*) + xc_bad_var_cflags=yes + ;; + -L* | --library-path=*) + xc_bad_var_cflags=yes + ;; + -l* | --library=*) + xc_bad_var_cflags=yes + ;; + esac + done + if test $xc_bad_var_cflags = yes; then + AC_MSG_NOTICE([using CFLAGS: $CFLAGS]) + xc_bad_var_msg="CFLAGS error: CFLAGS may only be used to specify C compiler flags, not" + for xc_word in $CFLAGS; do + case "$xc_word" in + -D*) + AC_MSG_NOTICE([$xc_bad_var_msg macro definitions. Use CPPFLAGS for: $xc_word]) + ;; + -U*) + AC_MSG_NOTICE([$xc_bad_var_msg macro suppressions. Use CPPFLAGS for: $xc_word]) + ;; + -I*) + AC_MSG_NOTICE([$xc_bad_var_msg include directories. Use CPPFLAGS for: $xc_word]) + ;; + -rpath*) + AC_MSG_NOTICE([$xc_bad_var_msg library runtime directories. Use LDFLAGS for: $xc_word]) + ;; + -L* | --library-path=*) + AC_MSG_NOTICE([$xc_bad_var_msg library directories. Use LDFLAGS for: $xc_word]) + ;; + -l* | --library=*) + AC_MSG_NOTICE([$xc_bad_var_msg libraries. Use LIBS for: $xc_word]) + ;; + esac + done + fi +]) + + +dnl XC_CHECK_USER_FLAGS +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl Performs some sanity checks for LIBS, LDFLAGS, +dnl CPPFLAGS and CFLAGS values that the user might +dnl have set. When checks fails, user is noticed +dnl about errors detected in all of them and script +dnl execution is halted. +dnl +dnl Intended to be used early in configure script. + +AC_DEFUN([XC_CHECK_USER_FLAGS], [ + AC_PREREQ([2.50])dnl + AC_BEFORE([$0],[XC_CHECK_PROG_CC])dnl + dnl check order below matters + _XC_CHECK_VAR_LIBS + _XC_CHECK_VAR_LDFLAGS + _XC_CHECK_VAR_CPPFLAGS + _XC_CHECK_VAR_CFLAGS + if test $xc_bad_var_libs = yes || + test $xc_bad_var_cflags = yes || + test $xc_bad_var_ldflags = yes || + test $xc_bad_var_cppflags = yes; then + AC_MSG_ERROR([Can not continue. Fix errors mentioned immediately above this line.]) + fi +]) + + +dnl XC_CHECK_BUILD_FLAGS +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl Performs some sanity checks for LIBS, LDFLAGS, +dnl CPPFLAGS and CFLAGS values that the configure +dnl script might have set. When checks fails, user +dnl is noticed about errors detected in all of them +dnl but script continues execution. +dnl +dnl Intended to be used very late in configure script. + +AC_DEFUN([XC_CHECK_BUILD_FLAGS], [ + AC_PREREQ([2.50])dnl + dnl check order below matters + _XC_CHECK_VAR_LIBS + _XC_CHECK_VAR_LDFLAGS + _XC_CHECK_VAR_CPPFLAGS + _XC_CHECK_VAR_CFLAGS + if test $xc_bad_var_libs = yes || + test $xc_bad_var_cflags = yes || + test $xc_bad_var_ldflags = yes || + test $xc_bad_var_cppflags = yes; then + AC_MSG_WARN([Continuing even with errors mentioned immediately above this line.]) + fi +]) + diff --git a/deps/cares/m4/zz40-xc-ovr.m4 b/deps/cares/m4/zz40-xc-ovr.m4 new file mode 100644 index 00000000000000..0e3b1cba61e1cf --- /dev/null +++ b/deps/cares/m4/zz40-xc-ovr.m4 @@ -0,0 +1,668 @@ +#--------------------------------------------------------------------------- +# +# zz40-xc-ovr.m4 +# +# Copyright (c) 2013 Daniel Stenberg +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +# +#--------------------------------------------------------------------------- + +# serial 1 + + +dnl The funny name of this file is intentional in order to make it +dnl sort alphabetically after any libtool, autoconf or automake +dnl provided .m4 macro file that might get copied into this same +dnl subdirectory. This allows that macro (re)definitions from this +dnl file may override those provided in other files. + + +dnl Version macros +dnl ------------------------------------------------- +dnl Public macros. + +m4_define([XC_CONFIGURE_PREAMBLE_VER_MAJOR],[1])dnl +m4_define([XC_CONFIGURE_PREAMBLE_VER_MINOR],[0])dnl + + +dnl _XC_CFG_PRE_PREAMBLE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CFG_PRE_PREAMBLE], +[ +## -------------------------------- ## +@%:@@%:@ [XC_CONFIGURE_PREAMBLE] ver: []dnl +XC_CONFIGURE_PREAMBLE_VER_MAJOR.[]dnl +XC_CONFIGURE_PREAMBLE_VER_MINOR ## +## -------------------------------- ## + +xc_configure_preamble_ver_major='XC_CONFIGURE_PREAMBLE_VER_MAJOR' +xc_configure_preamble_ver_minor='XC_CONFIGURE_PREAMBLE_VER_MINOR' + +# +# Set IFS to space, tab and newline. +# + +xc_space=' ' +xc_tab=' ' +xc_newline=' +' +IFS="$xc_space$xc_tab$xc_newline" + +# +# Set internationalization behavior variables. +# + +LANG='C' +LC_ALL='C' +LANGUAGE='C' +export LANG +export LC_ALL +export LANGUAGE + +# +# Some useful variables. +# + +xc_msg_warn='configure: WARNING:' +xc_msg_abrt='Can not continue.' +xc_msg_err='configure: error:' +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_CMD_ECHO +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'echo' command +dnl is available, otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO], +[dnl +AC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl +# +# Verify that 'echo' command is available, otherwise abort. +# + +xc_tst_str='unknown' +(`echo "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + # Try built-in echo, and fail. + echo "$xc_msg_err 'echo' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_CMD_TEST +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'test' command +dnl is available, otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_TEST], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl +# +# Verify that 'test' command is available, otherwise abort. +# + +xc_tst_str='unknown' +(`test -n "$xc_tst_str" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'test' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_VAR_PATH +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'PATH' variable +dnl is set, otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_VAR_PATH], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl +# +# Verify that 'PATH' variable is set, otherwise abort. +# + +xc_tst_str='unknown' +(`test -n "$PATH" >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'PATH' variable not set. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_CMD_EXPR +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'expr' command +dnl is available, otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +# +# Verify that 'expr' command is available, otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`expr "$xc_tst_str" : '.*' 2>/dev/null` +case "x$xc_tst_str" in @%:@ (( + x7) + : + ;; + *) + echo "$xc_msg_err 'expr' command not found. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_UTIL_SED +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'sed' utility +dnl is found within 'PATH', otherwise aborts execution. +dnl +dnl This 'sed' is required in order to allow configure +dnl script bootstrapping itself. No fancy testing for a +dnl proper 'sed' this early, that should be done later. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_SED], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +# +# Verify that 'sed' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | sed -e 's:unknown:success:' 2>/dev/null` +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'sed' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_UTIL_GREP +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'grep' utility +dnl is found within 'PATH', otherwise aborts execution. +dnl +dnl This 'grep' is required in order to allow configure +dnl script bootstrapping itself. No fancy testing for a +dnl proper 'grep' this early, that should be done later. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +# +# Verify that 'grep' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +(`echo "$xc_tst_str" 2>/dev/null \ + | grep 'unknown' >/dev/null 2>&1`) && xc_tst_str='success' +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'grep' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_UTIL_TR +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'tr' utility +dnl is found within 'PATH', otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_TR], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +# +# Verify that 'tr' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str="${xc_tab}98s7u6c5c4e3s2s10" +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | tr -d "0123456789$xc_tab" 2>/dev/null` +case "x$xc_tst_str" in @%:@ (( + xsuccess) + : + ;; + *) + echo "$xc_msg_err 'tr' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_UTIL_WC +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'wc' utility +dnl is found within 'PATH', otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_WC], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl +# +# Verify that 'wc' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown unknown unknown unknown' +xc_tst_str=`echo "$xc_tst_str" 2>/dev/null \ + | wc -w 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null` +case "x$xc_tst_str" in @%:@ (( + x4) + : + ;; + *) + echo "$xc_msg_err 'wc' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_BASIC_CHK_UTIL_CAT +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that verifies that 'cat' utility +dnl is found within 'PATH', otherwise aborts execution. + +AC_DEFUN([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl +# +# Verify that 'cat' utility is found within 'PATH', otherwise abort. +# + +xc_tst_str='unknown' +xc_tst_str=`cat <<_EOT 2>/dev/null \ + | wc -l 2>/dev/null | tr -d "$xc_space$xc_tab" 2>/dev/null +unknown +unknown +unknown +_EOT` +case "x$xc_tst_str" in @%:@ (( + x3) + : + ;; + *) + echo "$xc_msg_err 'cat' utility not found in 'PATH'. $xc_msg_abrt" >&2 + exit 1 + ;; +esac +]) + + +dnl _XC_CFG_PRE_CHECK_PATH_SEPARATOR +dnl ------------------------------------------------- +dnl Private macro. +dnl +dnl Emits shell code that computes the path separator +dnl and stores the result in 'PATH_SEPARATOR', unless +dnl the user has already set it with a non-empty value. +dnl +dnl This path separator is the symbol used to separate +dnl or diferentiate paths inside the 'PATH' environment +dnl variable. +dnl +dnl Non-empty user provided 'PATH_SEPARATOR' always +dnl overrides the auto-detected one. + +AC_DEFUN([_XC_CFG_PRE_CHECK_PATH_SEPARATOR], +[dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl +# +# Auto-detect and set 'PATH_SEPARATOR', unless it is already non-empty set. +# + +# Directory count in 'PATH' when using a colon separator. +xc_tst_dirs_col='x' +xc_tst_prev_IFS=$IFS; IFS=':' +for xc_tst_dir in $PATH; do + IFS=$xc_tst_prev_IFS + xc_tst_dirs_col="x$xc_tst_dirs_col" +done +IFS=$xc_tst_prev_IFS +xc_tst_dirs_col=`expr "$xc_tst_dirs_col" : '.*'` + +# Directory count in 'PATH' when using a semicolon separator. +xc_tst_dirs_sem='x' +xc_tst_prev_IFS=$IFS; IFS=';' +for xc_tst_dir in $PATH; do + IFS=$xc_tst_prev_IFS + xc_tst_dirs_sem="x$xc_tst_dirs_sem" +done +IFS=$xc_tst_prev_IFS +xc_tst_dirs_sem=`expr "$xc_tst_dirs_sem" : '.*'` + +if test $xc_tst_dirs_sem -eq $xc_tst_dirs_col; then + # When both counting methods give the same result we do not want to + # chose one over the other, and consider auto-detection not possible. + if test -z "$PATH_SEPARATOR"; then + # Stop dead until user provides 'PATH_SEPARATOR' definition. + echo "$xc_msg_err 'PATH_SEPARATOR' variable not set. $xc_msg_abrt" >&2 + exit 1 + fi +else + # Separator with the greater directory count is the auto-detected one. + if test $xc_tst_dirs_sem -gt $xc_tst_dirs_col; then + xc_tst_auto_separator=';' + else + xc_tst_auto_separator=':' + fi + if test -z "$PATH_SEPARATOR"; then + # Simply use the auto-detected one when not already set. + PATH_SEPARATOR=$xc_tst_auto_separator + elif test "x$PATH_SEPARATOR" != "x$xc_tst_auto_separator"; then + echo "$xc_msg_warn 'PATH_SEPARATOR' does not match auto-detected one." >&2 + fi +fi +xc_PATH_SEPARATOR=$PATH_SEPARATOR +AC_SUBST([PATH_SEPARATOR])dnl +]) + + +dnl _XC_CFG_PRE_POSTLUDE +dnl ------------------------------------------------- +dnl Private macro. + +AC_DEFUN([_XC_CFG_PRE_POSTLUDE], +[dnl +AC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl +AC_REQUIRE([_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl +dnl +xc_configure_preamble_result='yes' +]) + + +dnl XC_CONFIGURE_PREAMBLE +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl This macro emits shell code which does some +dnl very basic checks related with the availability +dnl of some commands and utilities needed to allow +dnl configure script bootstrapping itself when using +dnl these to figure out other settings. Also emits +dnl code that performs PATH_SEPARATOR auto-detection +dnl and sets its value unless it is already set with +dnl a non-empty value. +dnl +dnl These basic checks are intended to be placed and +dnl executed as early as possible in the resulting +dnl configure script, and as such these must be pure +dnl and portable shell code. +dnl +dnl This macro may be used directly, or indirectly +dnl when using other macros that AC_REQUIRE it such +dnl as XC_CHECK_PATH_SEPARATOR. +dnl +dnl Currently the mechanism used to ensure that this +dnl macro expands early enough in generated configure +dnl script is making it override autoconf and libtool +dnl PATH_SEPARATOR check. + +AC_DEFUN([XC_CONFIGURE_PREAMBLE], +[dnl +AC_PREREQ([2.50])dnl +dnl +AC_BEFORE([$0],[_XC_CFG_PRE_PREAMBLE])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl +AC_BEFORE([$0],[_XC_CFG_PRE_POSTLUDE])dnl +dnl +AC_BEFORE([$0],[AC_CHECK_TOOL])dnl +AC_BEFORE([$0],[AC_CHECK_PROG])dnl +AC_BEFORE([$0],[AC_CHECK_TOOLS])dnl +AC_BEFORE([$0],[AC_CHECK_PROGS])dnl +dnl +AC_BEFORE([$0],[AC_PATH_TOOL])dnl +AC_BEFORE([$0],[AC_PATH_PROG])dnl +AC_BEFORE([$0],[AC_PATH_PROGS])dnl +dnl +AC_BEFORE([$0],[AC_PROG_SED])dnl +AC_BEFORE([$0],[AC_PROG_GREP])dnl +AC_BEFORE([$0],[AC_PROG_LN_S])dnl +AC_BEFORE([$0],[AC_PROG_MKDIR_P])dnl +AC_BEFORE([$0],[AC_PROG_INSTALL])dnl +AC_BEFORE([$0],[AC_PROG_MAKE_SET])dnl +AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl +dnl +AC_BEFORE([$0],[LT_INIT])dnl +AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl +AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl +dnl +AC_REQUIRE([_XC_CFG_PRE_PREAMBLE])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_ECHO])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_TEST])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_VAR_PATH])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_CMD_EXPR])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_SED])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_GREP])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_TR])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_WC])dnl +AC_REQUIRE([_XC_CFG_PRE_BASIC_CHK_UTIL_CAT])dnl +AC_REQUIRE([_XC_CFG_PRE_CHECK_PATH_SEPARATOR])dnl +AC_REQUIRE([_XC_CFG_PRE_POSTLUDE])dnl +dnl +m4_pattern_forbid([^_*XC])dnl +m4_define([$0],[])dnl +]) + + +dnl Override autoconf and libtool PATH_SEPARATOR check +dnl ------------------------------------------------- +dnl Macros overriding. +dnl +dnl This is done to ensure that the same check is +dnl used across different autoconf versions and to +dnl allow expansion of XC_CONFIGURE_PREAMBLE macro +dnl early enough in the generated configure script. + +dnl +dnl Override when using autoconf 2.53 and newer. +dnl + +m4_ifdef([_AS_PATH_SEPARATOR_PREPARE], +[dnl +m4_undefine([_AS_PATH_SEPARATOR_PREPARE])dnl +m4_defun([_AS_PATH_SEPARATOR_PREPARE], +[dnl +AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl +m4_define([$0],[])dnl +])dnl +]) + +dnl +dnl Override when using autoconf 2.50 to 2.52 +dnl + +m4_ifdef([_AC_INIT_PREPARE_FS_SEPARATORS], +[dnl +m4_undefine([_AC_INIT_PREPARE_FS_SEPARATORS])dnl +m4_defun([_AC_INIT_PREPARE_FS_SEPARATORS], +[dnl +AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl +ac_path_separator=$PATH_SEPARATOR +m4_define([$0],[])dnl +])dnl +]) + +dnl +dnl Override when using libtool 1.4.2 +dnl + +m4_ifdef([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], +[dnl +m4_undefine([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR])dnl +m4_defun([_LT_AC_LIBTOOL_SYS_PATH_SEPARATOR], +[dnl +AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl +lt_cv_sys_path_separator=$PATH_SEPARATOR +m4_define([$0],[])dnl +])dnl +]) + + +dnl XC_CHECK_PATH_SEPARATOR +dnl ------------------------------------------------- +dnl Public macro. +dnl +dnl Usage of this macro ensures that generated configure +dnl script uses the same PATH_SEPARATOR check irrespective +dnl of autoconf or libtool version being used to generate +dnl configure script. +dnl +dnl Emits shell code that computes the path separator +dnl and stores the result in 'PATH_SEPARATOR', unless +dnl the user has already set it with a non-empty value. +dnl +dnl This path separator is the symbol used to separate +dnl or diferentiate paths inside the 'PATH' environment +dnl variable. +dnl +dnl Non-empty user provided 'PATH_SEPARATOR' always +dnl overrides the auto-detected one. +dnl +dnl Strictly speaking the check is done in two steps. The +dnl first, which does the actual check, takes place in +dnl XC_CONFIGURE_PREAMBLE macro and happens very early in +dnl generated configure script. The second one shows and +dnl logs the result of the check into config.log at a later +dnl configure stage. Placement of this second stage in +dnl generated configure script will be done where first +dnl direct or indirect usage of this macro happens. + +AC_DEFUN([XC_CHECK_PATH_SEPARATOR], +[dnl +AC_PREREQ([2.50])dnl +dnl +AC_BEFORE([$0],[AC_CHECK_TOOL])dnl +AC_BEFORE([$0],[AC_CHECK_PROG])dnl +AC_BEFORE([$0],[AC_CHECK_TOOLS])dnl +AC_BEFORE([$0],[AC_CHECK_PROGS])dnl +dnl +AC_BEFORE([$0],[AC_PATH_TOOL])dnl +AC_BEFORE([$0],[AC_PATH_PROG])dnl +AC_BEFORE([$0],[AC_PATH_PROGS])dnl +dnl +AC_BEFORE([$0],[AC_PROG_SED])dnl +AC_BEFORE([$0],[AC_PROG_GREP])dnl +AC_BEFORE([$0],[AC_PROG_LN_S])dnl +AC_BEFORE([$0],[AC_PROG_MKDIR_P])dnl +AC_BEFORE([$0],[AC_PROG_INSTALL])dnl +AC_BEFORE([$0],[AC_PROG_MAKE_SET])dnl +AC_BEFORE([$0],[AC_PROG_LIBTOOL])dnl +dnl +AC_BEFORE([$0],[LT_INIT])dnl +AC_BEFORE([$0],[AM_INIT_AUTOMAKE])dnl +AC_BEFORE([$0],[AC_LIBTOOL_WIN32_DLL])dnl +dnl +AC_REQUIRE([XC_CONFIGURE_PREAMBLE])dnl +dnl +# +# Check that 'XC_CONFIGURE_PREAMBLE' has already run. +# + +if test -z "$xc_configure_preamble_result"; then + AC_MSG_ERROR([xc_configure_preamble_result not set (internal problem)]) +fi + +# +# Check that 'PATH_SEPARATOR' has already been set. +# + +if test -z "$xc_PATH_SEPARATOR"; then + AC_MSG_ERROR([xc_PATH_SEPARATOR not set (internal problem)]) +fi +if test -z "$PATH_SEPARATOR"; then + AC_MSG_ERROR([PATH_SEPARATOR not set (internal or config.site problem)]) +fi +AC_MSG_CHECKING([for path separator]) +AC_MSG_RESULT([$PATH_SEPARATOR]) +if test "x$PATH_SEPARATOR" != "x$xc_PATH_SEPARATOR"; then + AC_MSG_CHECKING([for initial path separator]) + AC_MSG_RESULT([$xc_PATH_SEPARATOR]) + AC_MSG_ERROR([path separator mismatch (internal or config.site problem)]) +fi +dnl +m4_pattern_forbid([^_*XC])dnl +m4_define([$0],[])dnl +]) + diff --git a/deps/cares/maketgz b/deps/cares/maketgz new file mode 100755 index 00000000000000..ec1ecea540afb8 --- /dev/null +++ b/deps/cares/maketgz @@ -0,0 +1,69 @@ +#!/usr/bin/env perl + +$version = $ARGV[0]; + +if($version eq "") { + print "Enter version number!\n"; + exit; +} + +if(!-f "include/ares.h") { + print "run this script in the ares source root dir\n"; + exit; +} + +my ($major, $minor, $patch)=split(/\./, $version); + +$major += 0; +$minor += 0; +$patch += 0; + +open(VER, "include/ares_version.h.dist"); +while() { + $_ =~ s/^\#define ARES_VERSION_MAJOR .*/\#define ARES_VERSION_MAJOR $major/; + $_ =~ s/^\#define ARES_VERSION_MINOR .*/\#define ARES_VERSION_MINOR $minor/; + $_ =~ s/^\#define ARES_VERSION_PATCH .*/\#define ARES_VERSION_PATCH $patch/; + $_ =~ s/^\#define ARES_VERSION_STR .*/\#define ARES_VERSION_STR \"$version\"/; + + print NEWV $_; +} +close(VER); +close(NEWV); +print "include/ares_version.h.dist created\n"; + +if(!-f "configure") { + print "running buildconf\n"; + `./buildconf`; +} +print "adding $version in the configure.ac file\n"; +`sed -e 's/AC_INIT.*/AC_INIT([c-ares], [$version],/' < configure.ac > configure.ac.dist`; + +print "adding $version in the CMakeLists.txt file\n"; +`sed -e 's/SET.*CARES_VERSION.*/SET (CARES_VERSION "$version")/' < CMakeLists.txt > CMakeLists.txt.dist && rm -f CMakeLists.txt && mv CMakeLists.txt.dist CMakeLists.txt`; + +# now make a new configure script with this +print "makes a new configure script\n"; +`autoconf configure.ac.dist >configure`; + +# now run this new configure to get a fine makefile +print "running configure\n"; +`./configure`; + +print "produce CHANGES\n"; +`git log --pretty=fuller --no-color --date=short --decorate=full -1000 | ./git2changes.pl > CHANGES.dist`; + +# now make the actual tarball +print "running make dist\n"; +`make dist VERSION=$version`; + +# remove temporay sourced man pages +`make -s clean-sourced-manpages`; + +print "removing temporary configure.ac file\n"; +`rm configure.ac.dist`; +print "removing temporary ares_version.h file\n"; +`rm include/ares_version.h.dist`; + +print "NOTE: now tag this release!\n"; diff --git a/deps/cares/missing b/deps/cares/missing new file mode 100755 index 00000000000000..1fe1611f18514b --- /dev/null +++ b/deps/cares/missing @@ -0,0 +1,215 @@ +#! /bin/sh +# Common wrapper for a few potentially missing GNU programs. + +scriptversion=2018-03-07.03; # UTC + +# Copyright (C) 1996-2021 Free Software Foundation, Inc. +# Originally written by Fran,cois Pinard , 1996. + +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2, or (at your option) +# any later version. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. + +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . + +# As a special exception to the GNU General Public License, if you +# distribute this file as part of a program that contains a +# configuration script generated by Autoconf, you may include it under +# the same distribution terms that you use for the rest of that program. + +if test $# -eq 0; then + echo 1>&2 "Try '$0 --help' for more information" + exit 1 +fi + +case $1 in + + --is-lightweight) + # Used by our autoconf macros to check whether the available missing + # script is modern enough. + exit 0 + ;; + + --run) + # Back-compat with the calling convention used by older automake. + shift + ;; + + -h|--h|--he|--hel|--help) + echo "\ +$0 [OPTION]... PROGRAM [ARGUMENT]... + +Run 'PROGRAM [ARGUMENT]...', returning a proper advice when this fails due +to PROGRAM being missing or too old. + +Options: + -h, --help display this help and exit + -v, --version output version information and exit + +Supported PROGRAM values: + aclocal autoconf autoheader autom4te automake makeinfo + bison yacc flex lex help2man + +Version suffixes to PROGRAM as well as the prefixes 'gnu-', 'gnu', and +'g' are ignored when checking the name. + +Send bug reports to ." + exit $? + ;; + + -v|--v|--ve|--ver|--vers|--versi|--versio|--version) + echo "missing $scriptversion (GNU Automake)" + exit $? + ;; + + -*) + echo 1>&2 "$0: unknown '$1' option" + echo 1>&2 "Try '$0 --help' for more information" + exit 1 + ;; + +esac + +# Run the given program, remember its exit status. +"$@"; st=$? + +# If it succeeded, we are done. +test $st -eq 0 && exit 0 + +# Also exit now if we it failed (or wasn't found), and '--version' was +# passed; such an option is passed most likely to detect whether the +# program is present and works. +case $2 in --version|--help) exit $st;; esac + +# Exit code 63 means version mismatch. This often happens when the user +# tries to use an ancient version of a tool on a file that requires a +# minimum version. +if test $st -eq 63; then + msg="probably too old" +elif test $st -eq 127; then + # Program was missing. + msg="missing on your system" +else + # Program was found and executed, but failed. Give up. + exit $st +fi + +perl_URL=https://www.perl.org/ +flex_URL=https://github.com/westes/flex +gnu_software_URL=https://www.gnu.org/software + +program_details () +{ + case $1 in + aclocal|automake) + echo "The '$1' program is part of the GNU Automake package:" + echo "<$gnu_software_URL/automake>" + echo "It also requires GNU Autoconf, GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/autoconf>" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + autoconf|autom4te|autoheader) + echo "The '$1' program is part of the GNU Autoconf package:" + echo "<$gnu_software_URL/autoconf/>" + echo "It also requires GNU m4 and Perl in order to run:" + echo "<$gnu_software_URL/m4/>" + echo "<$perl_URL>" + ;; + esac +} + +give_advice () +{ + # Normalize program name to check for. + normalized_program=`echo "$1" | sed ' + s/^gnu-//; t + s/^gnu//; t + s/^g//; t'` + + printf '%s\n' "'$1' is $msg." + + configure_deps="'configure.ac' or m4 files included by 'configure.ac'" + case $normalized_program in + autoconf*) + echo "You should only need it if you modified 'configure.ac'," + echo "or m4 files included by it." + program_details 'autoconf' + ;; + autoheader*) + echo "You should only need it if you modified 'acconfig.h' or" + echo "$configure_deps." + program_details 'autoheader' + ;; + automake*) + echo "You should only need it if you modified 'Makefile.am' or" + echo "$configure_deps." + program_details 'automake' + ;; + aclocal*) + echo "You should only need it if you modified 'acinclude.m4' or" + echo "$configure_deps." + program_details 'aclocal' + ;; + autom4te*) + echo "You might have modified some maintainer files that require" + echo "the 'autom4te' program to be rebuilt." + program_details 'autom4te' + ;; + bison*|yacc*) + echo "You should only need it if you modified a '.y' file." + echo "You may want to install the GNU Bison package:" + echo "<$gnu_software_URL/bison/>" + ;; + lex*|flex*) + echo "You should only need it if you modified a '.l' file." + echo "You may want to install the Fast Lexical Analyzer package:" + echo "<$flex_URL>" + ;; + help2man*) + echo "You should only need it if you modified a dependency" \ + "of a man page." + echo "You may want to install the GNU Help2man package:" + echo "<$gnu_software_URL/help2man/>" + ;; + makeinfo*) + echo "You should only need it if you modified a '.texi' file, or" + echo "any other file indirectly affecting the aspect of the manual." + echo "You might want to install the Texinfo package:" + echo "<$gnu_software_URL/texinfo/>" + echo "The spurious makeinfo call might also be the consequence of" + echo "using a buggy 'make' (AIX, DU, IRIX), in which case you might" + echo "want to install GNU make:" + echo "<$gnu_software_URL/make/>" + ;; + *) + echo "You might have modified some files without having the proper" + echo "tools for further handling them. Check the 'README' file, it" + echo "often tells you about the needed prerequisites for installing" + echo "this package. You may also peek at any GNU archive site, in" + echo "case some other package contains this missing '$1' program." + ;; + esac +} + +give_advice "$1" | sed -e '1s/^/WARNING: /' \ + -e '2,$s/^/ /' >&2 + +# Propagate the correct exit status (expected to be 127 for a program +# not found, 63 for a program that failed due to version mismatch). +exit $st + +# Local variables: +# eval: (add-hook 'before-save-hook 'time-stamp) +# time-stamp-start: "scriptversion=" +# time-stamp-format: "%:y-%02m-%02d.%02H" +# time-stamp-time-zone: "UTC0" +# time-stamp-end: "; # UTC" +# End: diff --git a/deps/cares/msvc_ver.inc b/deps/cares/msvc_ver.inc new file mode 100644 index 00000000000000..595cbdf1dea747 --- /dev/null +++ b/deps/cares/msvc_ver.inc @@ -0,0 +1,24 @@ +# ----------------------------------------------- +# Detect NMAKE version deducing old MSVC versions +# ----------------------------------------------- + +!IFNDEF _NMAKE_VER +! MESSAGE Macro _NMAKE_VER not defined. +! MESSAGE Use MSVC's NMAKE to process this makefile. +! ERROR See previous message. +!ENDIF + +!IF "$(_NMAKE_VER)" == "6.00.8168.0" +CC_VERS_NUM = 60 +!ELSEIF "$(_NMAKE_VER)" == "6.00.9782.0" +CC_VERS_NUM = 60 +!ELSEIF "$(_NMAKE_VER)" == "7.00.8882" +CC_VERS_NUM = 70 +!ELSEIF "$(_NMAKE_VER)" == "7.00.9466" +CC_VERS_NUM = 70 +!ELSEIF "$(_NMAKE_VER)" == "7.00.9955" +CC_VERS_NUM = 70 +!ELSE +# Pick an arbitrary bigger number for all later versions +CC_VERS_NUM = 199 +!ENDIF diff --git a/deps/cares/src/CMakeLists.txt b/deps/cares/src/CMakeLists.txt new file mode 100644 index 00000000000000..6750c1780f6231 --- /dev/null +++ b/deps/cares/src/CMakeLists.txt @@ -0,0 +1,2 @@ +ADD_SUBDIRECTORY (lib) +ADD_SUBDIRECTORY (tools) diff --git a/deps/cares/src/Makefile.am b/deps/cares/src/Makefile.am new file mode 100644 index 00000000000000..2e97e422f73adf --- /dev/null +++ b/deps/cares/src/Makefile.am @@ -0,0 +1,2 @@ +EXTRA_DIST=CMakeLists.txt +SUBDIRS=lib tools diff --git a/deps/cares/src/Makefile.in b/deps/cares/src/Makefile.in new file mode 100644 index 00000000000000..999e965d9ea055 --- /dev/null +++ b/deps/cares/src/Makefile.in @@ -0,0 +1,666 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +subdir = src +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h \ + $(top_builddir)/include/ares_build.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +SOURCES = +DIST_SOURCES = +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +DIST_SUBDIRS = $(SUBDIRS) +am__DIST_COMMON = $(srcdir)/Makefile.in +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +EXTRA_DIST = CMakeLists.txt +SUBDIRS = lib tools +all: all-recursive + +.SUFFIXES: +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile +installdirs: installdirs-recursive +installdirs-am: +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libtool mostlyclean-am + +distclean: distclean-recursive + -rm -f Makefile +distclean-am: clean-am distclean-generic distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-generic mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: + +.MAKE: $(am__recursive_targets) install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am check \ + check-am clean clean-generic clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-generic distclean-libtool \ + distclean-tags distdir dvi dvi-am html html-am info info-am \ + install install-am install-data install-data-am install-dvi \ + install-dvi-am install-exec install-exec-am install-html \ + install-html-am install-info install-info-am install-man \ + install-pdf install-pdf-am install-ps install-ps-am \ + install-strip installcheck installcheck-am installdirs \ + installdirs-am maintainer-clean maintainer-clean-generic \ + mostlyclean mostlyclean-generic mostlyclean-libtool pdf pdf-am \ + ps ps-am tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/src/lib/CMakeLists.txt b/deps/cares/src/lib/CMakeLists.txt new file mode 100644 index 00000000000000..7d37be21ace797 --- /dev/null +++ b/deps/cares/src/lib/CMakeLists.txt @@ -0,0 +1,115 @@ + +# Transform Makefile.inc +transform_makefile_inc("Makefile.inc" "${PROJECT_BINARY_DIR}/src/lib/Makefile.inc.cmake") +include(${PROJECT_BINARY_DIR}/src/lib/Makefile.inc.cmake) + +# Write ares_config.h configuration file. This is used only for the build. +CONFIGURE_FILE (ares_config.h.cmake ${PROJECT_BINARY_DIR}/ares_config.h) + +# Build the dynamic/shared library +IF (CARES_SHARED) + ADD_LIBRARY (${PROJECT_NAME} SHARED ${CSOURCES}) + + # Convert CARES_LIB_VERSIONINFO libtool version format into VERSION and SOVERSION + # Convert from ":" separated into CMake list format using ";" + STRING (REPLACE ":" ";" CARES_LIB_VERSIONINFO ${CARES_LIB_VERSIONINFO}) + LIST (GET CARES_LIB_VERSIONINFO 0 CARES_LIB_VERSION_CURRENT) + LIST (GET CARES_LIB_VERSIONINFO 1 CARES_LIB_VERSION_REVISION) + LIST (GET CARES_LIB_VERSIONINFO 2 CARES_LIB_VERSION_AGE) + MATH (EXPR CARES_LIB_VERSION_MAJOR "${CARES_LIB_VERSION_CURRENT} - ${CARES_LIB_VERSION_AGE}") + SET (CARES_LIB_VERSION_MINOR "${CARES_LIB_VERSION_AGE}") + SET (CARES_LIB_VERSION_RELEASE "${CARES_LIB_VERSION_REVISION}") + + SET_TARGET_PROPERTIES (${PROJECT_NAME} PROPERTIES + EXPORT_NAME cares + OUTPUT_NAME cares + COMPILE_PDB_NAME cares + COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + SOVERSION ${CARES_LIB_VERSION_MAJOR} + VERSION "${CARES_LIB_VERSION_MAJOR}.${CARES_LIB_VERSION_MINOR}.${CARES_LIB_VERSION_RELEASE}" + ) + + TARGET_INCLUDE_DIRECTORIES (${PROJECT_NAME} + PUBLIC "$" + "$" + "$" + "$" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" + ) + + TARGET_COMPILE_DEFINITIONS (${PROJECT_NAME} PRIVATE HAVE_CONFIG_H=1 CARES_BUILDING_LIBRARY) + + TARGET_LINK_LIBRARIES (${PROJECT_NAME} PUBLIC ${CARES_DEPENDENT_LIBS}) + + IF (CARES_INSTALL) + INSTALL (TARGETS ${PROJECT_NAME} + EXPORT ${PROJECT_NAME}-targets + COMPONENT Library + ${TARGETS_INST_DEST} + ) + INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cares.pdb + DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT Library + OPTIONAL + ) + ENDIF () + SET (STATIC_SUFFIX "_static") + + # For chain building: add alias targets that look like import libs that would be returned by find_package(c-ares). + ADD_LIBRARY (${PROJECT_NAME}::cares_shared ALIAS ${PROJECT_NAME}) + ADD_LIBRARY (${PROJECT_NAME}::cares ALIAS ${PROJECT_NAME}) +ENDIF () + +# Build the static library +IF (CARES_STATIC) + SET (LIBNAME ${PROJECT_NAME}${STATIC_SUFFIX}) + + ADD_LIBRARY (${LIBNAME} STATIC ${CSOURCES}) + + SET_TARGET_PROPERTIES (${LIBNAME} PROPERTIES + EXPORT_NAME cares${STATIC_SUFFIX} + OUTPUT_NAME cares${STATIC_SUFFIX} + COMPILE_PDB_NAME cares${STATIC_SUFFIX} + COMPILE_PDB_OUTPUT_DIRECTORY ${CMAKE_RUNTIME_OUTPUT_DIRECTORY} + ) + + IF (CARES_STATIC_PIC) + SET_TARGET_PROPERTIES (${LIBNAME} PROPERTIES POSITION_INDEPENDENT_CODE True) + ENDIF () + + TARGET_INCLUDE_DIRECTORIES (${LIBNAME} + PUBLIC "$" + "$" + "$" + "$" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" + ) + + TARGET_COMPILE_DEFINITIONS (${LIBNAME} + PUBLIC CARES_STATICLIB + PRIVATE HAVE_CONFIG_H=1 + ) + + TARGET_LINK_LIBRARIES (${LIBNAME} PUBLIC ${CARES_DEPENDENT_LIBS}) + IF (CARES_INSTALL) + INSTALL (TARGETS ${LIBNAME} EXPORT ${PROJECT_NAME}-targets COMPONENT Devel + ${TARGETS_INST_DEST} + ) + INSTALL(FILES ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/cares${STATIC_SUFFIX}.pdb + DESTINATION ${CMAKE_INSTALL_BINDIR} + COMPONENT Library + OPTIONAL + ) + ENDIF () + + # For chain building: add alias targets that look like import libs that would be returned by find_package(c-ares). + ADD_LIBRARY (${PROJECT_NAME}::cares_static ALIAS ${LIBNAME}) + IF (NOT TARGET ${PROJECT_NAME}::cares) + # Only use static for the generic alias if shared lib wasn't built. + ADD_LIBRARY (${PROJECT_NAME}::cares ALIAS ${LIBNAME}) + ENDIF () +ENDIF () + + + + diff --git a/deps/cares/src/lib/Makefile.am b/deps/cares/src/lib/Makefile.am new file mode 100644 index 00000000000000..4813621ce23992 --- /dev/null +++ b/deps/cares/src/lib/Makefile.am @@ -0,0 +1,74 @@ +AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install + +# Specify our include paths here, and do it relative to $(top_srcdir) and +# $(top_builddir), to ensure that these paths which belong to the library +# being currently built and tested are searched before the library which +# might possibly already be installed in the system. + +AM_CPPFLAGS = -I$(top_builddir)/include \ + -I$(top_builddir)/src/lib \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src/lib + +lib_LTLIBRARIES = libcares.la + +man_MANS = $(MANPAGES) + +# adig and ahost are just sample programs and thus not mentioned with the +# regular sources and headers +EXTRA_DIST = Makefile.inc config-win32.h CMakeLists.txt \ + ares_config.h.in ares_config.h.cmake cares.rc \ + $(CSOURCES) $(HHEADERS) config-dos.h + +DISTCLEANFILES = ares_config.h + +DIST_SUBDIRS = + +AM_LDFLAGS = + +libcares_la_LDFLAGS_EXTRA = + +if CARES_LT_SHLIB_USE_VERSION_INFO +libcares_la_LDFLAGS_EXTRA += -version-info @CARES_VERSION_INFO@ +endif + +if CARES_LT_SHLIB_USE_NO_UNDEFINED +libcares_la_LDFLAGS_EXTRA += -no-undefined +endif + +if CARES_LT_SHLIB_USE_MIMPURE_TEXT +libcares_la_LDFLAGS_EXTRA += -mimpure-text +endif + +libcares_la_LDFLAGS = $(AM_LDFLAGS) $(libcares_la_LDFLAGS_EXTRA) + +# Add -Werror if defined +CFLAGS += @CARES_CFLAG_EXTRAS@ + +if USE_CPPFLAG_CARES_STATICLIB +AM_CPPFLAGS += $(CPPFLAG_CARES_STATICLIB) +endif + +libcares_la_CFLAGS_EXTRA = + +libcares_la_CPPFLAGS_EXTRA = -DCARES_BUILDING_LIBRARY + +if DOING_CARES_SYMBOL_HIDING +libcares_la_CFLAGS_EXTRA += $(CFLAG_CARES_SYMBOL_HIDING) +libcares_la_CPPFLAGS_EXTRA += -DCARES_SYMBOL_HIDING +endif + +include $(top_srcdir)/aminclude_static.am +libcares_la_LIBS = $(CODE_COVERAGE_LIBS) +libcares_la_CFLAGS_EXTRA += $(CODE_COVERAGE_CFLAGS) +libcares_la_CPPFLAGS_EXTRA += $(CODE_COVERAGE_CPPFLAGS) + +libcares_la_CFLAGS = $(AM_CFLAGS) $(libcares_la_CFLAGS_EXTRA) + +libcares_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcares_la_CPPFLAGS_EXTRA) + +# Makefile.inc provides the CSOURCES and HHEADERS defines +include Makefile.inc + +libcares_la_SOURCES = $(CSOURCES) $(HHEADERS) diff --git a/deps/cares/src/lib/Makefile.in b/deps/cares/src/lib/Makefile.in new file mode 100644 index 00000000000000..6b42bb85bfc422 --- /dev/null +++ b/deps/cares/src/lib/Makefile.in @@ -0,0 +1,1764 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +# aminclude_static.am generated automatically by Autoconf +# from AX_AM_MACROS_STATIC on Wed Oct 27 08:01:08 CEST 2021 + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +@CARES_LT_SHLIB_USE_VERSION_INFO_TRUE@am__append_1 = -version-info @CARES_VERSION_INFO@ +@CARES_LT_SHLIB_USE_NO_UNDEFINED_TRUE@am__append_2 = -no-undefined +@CARES_LT_SHLIB_USE_MIMPURE_TEXT_TRUE@am__append_3 = -mimpure-text +@USE_CPPFLAG_CARES_STATICLIB_TRUE@am__append_4 = $(CPPFLAG_CARES_STATICLIB) +@DOING_CARES_SYMBOL_HIDING_TRUE@am__append_5 = $(CFLAG_CARES_SYMBOL_HIDING) +@DOING_CARES_SYMBOL_HIDING_TRUE@am__append_6 = -DCARES_SYMBOL_HIDING +subdir = src/lib +SUBDIRS = +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = ares_config.h $(top_builddir)/include/ares_build.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; +am__vpath_adj = case $$p in \ + $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \ + *) f=$$p;; \ + esac; +am__strip_dir = f=`echo $$p | sed -e 's|^.*/||'`; +am__install_max = 40 +am__nobase_strip_setup = \ + srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*|]/\\\\&/g'` +am__nobase_strip = \ + for p in $$list; do echo "$$p"; done | sed -e "s|$$srcdirstrip/||" +am__nobase_list = $(am__nobase_strip_setup); \ + for p in $$list; do echo "$$p $$p"; done | \ + sed "s| $$srcdirstrip/| |;"' / .*\//!s/ .*/ ./; s,\( .*\)/[^/]*$$,\1,' | \ + $(AWK) 'BEGIN { files["."] = "" } { files[$$2] = files[$$2] " " $$1; \ + if (++n[$$2] == $(am__install_max)) \ + { print $$2, files[$$2]; n[$$2] = 0; files[$$2] = "" } } \ + END { for (dir in files) print dir, files[dir] }' +am__base_list = \ + sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \ + sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g' +am__uninstall_files_from_dir = { \ + test -z "$$files" \ + || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \ + || { echo " ( cd '$$dir' && rm -f" $$files ")"; \ + $(am__cd) "$$dir" && rm -f $$files; }; \ + } +am__installdirs = "$(DESTDIR)$(libdir)" +LTLIBRARIES = $(lib_LTLIBRARIES) +libcares_la_LIBADD = +am__objects_1 = libcares_la-ares__addrinfo2hostent.lo \ + libcares_la-ares__addrinfo_localhost.lo \ + libcares_la-ares__close_sockets.lo \ + libcares_la-ares__get_hostent.lo \ + libcares_la-ares__parse_into_addrinfo.lo \ + libcares_la-ares__readaddrinfo.lo \ + libcares_la-ares__sortaddrinfo.lo \ + libcares_la-ares__read_line.lo libcares_la-ares__timeval.lo \ + libcares_la-ares_android.lo libcares_la-ares_cancel.lo \ + libcares_la-ares_data.lo libcares_la-ares_destroy.lo \ + libcares_la-ares_expand_name.lo \ + libcares_la-ares_expand_string.lo libcares_la-ares_fds.lo \ + libcares_la-ares_free_hostent.lo \ + libcares_la-ares_free_string.lo \ + libcares_la-ares_freeaddrinfo.lo \ + libcares_la-ares_getaddrinfo.lo libcares_la-ares_getenv.lo \ + libcares_la-ares_gethostbyaddr.lo \ + libcares_la-ares_gethostbyname.lo \ + libcares_la-ares_getnameinfo.lo libcares_la-ares_getsock.lo \ + libcares_la-ares_init.lo libcares_la-ares_library_init.lo \ + libcares_la-ares_llist.lo libcares_la-ares_mkquery.lo \ + libcares_la-ares_create_query.lo libcares_la-ares_nowarn.lo \ + libcares_la-ares_options.lo libcares_la-ares_parse_a_reply.lo \ + libcares_la-ares_parse_aaaa_reply.lo \ + libcares_la-ares_parse_caa_reply.lo \ + libcares_la-ares_parse_mx_reply.lo \ + libcares_la-ares_parse_naptr_reply.lo \ + libcares_la-ares_parse_ns_reply.lo \ + libcares_la-ares_parse_ptr_reply.lo \ + libcares_la-ares_parse_soa_reply.lo \ + libcares_la-ares_parse_srv_reply.lo \ + libcares_la-ares_parse_txt_reply.lo \ + libcares_la-ares_parse_uri_reply.lo \ + libcares_la-ares_platform.lo libcares_la-ares_process.lo \ + libcares_la-ares_query.lo libcares_la-ares_search.lo \ + libcares_la-ares_send.lo libcares_la-ares_strcasecmp.lo \ + libcares_la-ares_strdup.lo libcares_la-ares_strerror.lo \ + libcares_la-ares_strsplit.lo libcares_la-ares_timeout.lo \ + libcares_la-ares_version.lo libcares_la-ares_writev.lo \ + libcares_la-bitncmp.lo libcares_la-inet_net_pton.lo \ + libcares_la-inet_ntop.lo libcares_la-windows_port.lo +am__objects_2 = +am_libcares_la_OBJECTS = $(am__objects_1) $(am__objects_2) +libcares_la_OBJECTS = $(am_libcares_la_OBJECTS) +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +libcares_la_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(libcares_la_CFLAGS) \ + $(CFLAGS) $(libcares_la_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = \ + ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo \ + ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo \ + ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo \ + ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo \ + ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares__read_line.Plo \ + ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares__timeval.Plo \ + ./$(DEPDIR)/libcares_la-ares_android.Plo \ + ./$(DEPDIR)/libcares_la-ares_cancel.Plo \ + ./$(DEPDIR)/libcares_la-ares_create_query.Plo \ + ./$(DEPDIR)/libcares_la-ares_data.Plo \ + ./$(DEPDIR)/libcares_la-ares_destroy.Plo \ + ./$(DEPDIR)/libcares_la-ares_expand_name.Plo \ + ./$(DEPDIR)/libcares_la-ares_expand_string.Plo \ + ./$(DEPDIR)/libcares_la-ares_fds.Plo \ + ./$(DEPDIR)/libcares_la-ares_free_hostent.Plo \ + ./$(DEPDIR)/libcares_la-ares_free_string.Plo \ + ./$(DEPDIR)/libcares_la-ares_freeaddrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares_getaddrinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares_getenv.Plo \ + ./$(DEPDIR)/libcares_la-ares_gethostbyaddr.Plo \ + ./$(DEPDIR)/libcares_la-ares_gethostbyname.Plo \ + ./$(DEPDIR)/libcares_la-ares_getnameinfo.Plo \ + ./$(DEPDIR)/libcares_la-ares_getsock.Plo \ + ./$(DEPDIR)/libcares_la-ares_init.Plo \ + ./$(DEPDIR)/libcares_la-ares_library_init.Plo \ + ./$(DEPDIR)/libcares_la-ares_llist.Plo \ + ./$(DEPDIR)/libcares_la-ares_mkquery.Plo \ + ./$(DEPDIR)/libcares_la-ares_nowarn.Plo \ + ./$(DEPDIR)/libcares_la-ares_options.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_a_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_caa_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_mx_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_naptr_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_ns_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_ptr_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_soa_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_srv_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_txt_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_parse_uri_reply.Plo \ + ./$(DEPDIR)/libcares_la-ares_platform.Plo \ + ./$(DEPDIR)/libcares_la-ares_process.Plo \ + ./$(DEPDIR)/libcares_la-ares_query.Plo \ + ./$(DEPDIR)/libcares_la-ares_search.Plo \ + ./$(DEPDIR)/libcares_la-ares_send.Plo \ + ./$(DEPDIR)/libcares_la-ares_strcasecmp.Plo \ + ./$(DEPDIR)/libcares_la-ares_strdup.Plo \ + ./$(DEPDIR)/libcares_la-ares_strerror.Plo \ + ./$(DEPDIR)/libcares_la-ares_strsplit.Plo \ + ./$(DEPDIR)/libcares_la-ares_timeout.Plo \ + ./$(DEPDIR)/libcares_la-ares_version.Plo \ + ./$(DEPDIR)/libcares_la-ares_writev.Plo \ + ./$(DEPDIR)/libcares_la-bitncmp.Plo \ + ./$(DEPDIR)/libcares_la-inet_net_pton.Plo \ + ./$(DEPDIR)/libcares_la-inet_ntop.Plo \ + ./$(DEPDIR)/libcares_la-windows_port.Plo +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(libcares_la_SOURCES) +DIST_SOURCES = $(libcares_la_SOURCES) +RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \ + ctags-recursive dvi-recursive html-recursive info-recursive \ + install-data-recursive install-dvi-recursive \ + install-exec-recursive install-html-recursive \ + install-info-recursive install-pdf-recursive \ + install-ps-recursive install-recursive installcheck-recursive \ + installdirs-recursive pdf-recursive ps-recursive \ + tags-recursive uninstall-recursive +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ + distclean-recursive maintainer-clean-recursive +am__recursive_targets = \ + $(RECURSIVE_TARGETS) \ + $(RECURSIVE_CLEAN_TARGETS) \ + $(am__extra_recursive_targets) +AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \ + distdir distdir-am +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) \ + ares_config.h.in +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc \ + $(srcdir)/ares_config.h.in $(top_srcdir)/aminclude_static.am \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +am__relativize = \ + dir0=`pwd`; \ + sed_first='s,^\([^/]*\)/.*$$,\1,'; \ + sed_rest='s,^[^/]*/*,,'; \ + sed_last='s,^.*/\([^/]*\)$$,\1,'; \ + sed_butlast='s,/*[^/]*$$,,'; \ + while test -n "$$dir1"; do \ + first=`echo "$$dir1" | sed -e "$$sed_first"`; \ + if test "$$first" != "."; then \ + if test "$$first" = ".."; then \ + dir2=`echo "$$dir0" | sed -e "$$sed_last"`/"$$dir2"; \ + dir0=`echo "$$dir0" | sed -e "$$sed_butlast"`; \ + else \ + first2=`echo "$$dir2" | sed -e "$$sed_first"`; \ + if test "$$first2" = "$$first"; then \ + dir2=`echo "$$dir2" | sed -e "$$sed_rest"`; \ + else \ + dir2="../$$dir2"; \ + fi; \ + dir0="$$dir0"/"$$first"; \ + fi; \ + fi; \ + dir1=`echo "$$dir1" | sed -e "$$sed_rest"`; \ + done; \ + reldir="$$dir2" +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ + +# Add -Werror if defined +CFLAGS = @CFLAGS@ @CARES_CFLAG_EXTRAS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 +ACLOCAL_AMFLAGS = -I m4 --install + +# Specify our include paths here, and do it relative to $(top_srcdir) and +# $(top_builddir), to ensure that these paths which belong to the library +# being currently built and tested are searched before the library which +# might possibly already be installed in the system. +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_builddir)/src/lib \ + -I$(top_srcdir)/include -I$(top_srcdir)/src/lib \ + $(am__append_4) +lib_LTLIBRARIES = libcares.la +man_MANS = $(MANPAGES) + +# adig and ahost are just sample programs and thus not mentioned with the +# regular sources and headers +EXTRA_DIST = Makefile.inc config-win32.h CMakeLists.txt \ + ares_config.h.in ares_config.h.cmake cares.rc \ + $(CSOURCES) $(HHEADERS) config-dos.h + +DISTCLEANFILES = ares_config.h +DIST_SUBDIRS = +AM_LDFLAGS = +libcares_la_LDFLAGS_EXTRA = $(am__append_1) $(am__append_2) \ + $(am__append_3) +libcares_la_LDFLAGS = $(AM_LDFLAGS) $(libcares_la_LDFLAGS_EXTRA) +libcares_la_CFLAGS_EXTRA = $(am__append_5) $(CODE_COVERAGE_CFLAGS) +libcares_la_CPPFLAGS_EXTRA = -DCARES_BUILDING_LIBRARY $(am__append_6) \ + $(CODE_COVERAGE_CPPFLAGS) +@CODE_COVERAGE_ENABLED_TRUE@GITIGNOREFILES := $(GITIGNOREFILES) $(CODE_COVERAGE_OUTPUT_FILE) $(CODE_COVERAGE_OUTPUT_DIRECTORY) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_cap = $(code_coverage_v_lcov_cap_$(V)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_cap_ = $(code_coverage_v_lcov_cap_$(AM_DEFAULT_VERBOSITY)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_cap_0 = @echo " LCOV --capture" $(CODE_COVERAGE_OUTPUT_FILE); +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_ign = $(code_coverage_v_lcov_ign_$(V)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_ign_ = $(code_coverage_v_lcov_ign_$(AM_DEFAULT_VERBOSITY)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_lcov_ign_0 = @echo " LCOV --remove /tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN); +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_genhtml = $(code_coverage_v_genhtml_$(V)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_genhtml_ = $(code_coverage_v_genhtml_$(AM_DEFAULT_VERBOSITY)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_v_genhtml_0 = @echo " GEN " "$(CODE_COVERAGE_OUTPUT_DIRECTORY)"; +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_quiet = $(code_coverage_quiet_$(V)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_quiet_ = $(code_coverage_quiet_$(AM_DEFAULT_VERBOSITY)) +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_quiet_0 = --quiet + +# sanitizes the test-name: replaces with underscores: dashes and dots +@CODE_COVERAGE_ENABLED_TRUE@code_coverage_sanitize = $(subst -,_,$(subst .,_,$(1))) +@CODE_COVERAGE_ENABLED_TRUE@AM_DISTCHECK_CONFIGURE_FLAGS := $(AM_DISTCHECK_CONFIGURE_FLAGS) --disable-code-coverage +libcares_la_LIBS = $(CODE_COVERAGE_LIBS) +libcares_la_CFLAGS = $(AM_CFLAGS) $(libcares_la_CFLAGS_EXTRA) +libcares_la_CPPFLAGS = $(AM_CPPFLAGS) $(libcares_la_CPPFLAGS_EXTRA) +CSOURCES = ares__addrinfo2hostent.c \ + ares__addrinfo_localhost.c \ + ares__close_sockets.c \ + ares__get_hostent.c \ + ares__parse_into_addrinfo.c \ + ares__readaddrinfo.c \ + ares__sortaddrinfo.c \ + ares__read_line.c \ + ares__timeval.c \ + ares_android.c \ + ares_cancel.c \ + ares_data.c \ + ares_destroy.c \ + ares_expand_name.c \ + ares_expand_string.c \ + ares_fds.c \ + ares_free_hostent.c \ + ares_free_string.c \ + ares_freeaddrinfo.c \ + ares_getaddrinfo.c \ + ares_getenv.c \ + ares_gethostbyaddr.c \ + ares_gethostbyname.c \ + ares_getnameinfo.c \ + ares_getsock.c \ + ares_init.c \ + ares_library_init.c \ + ares_llist.c \ + ares_mkquery.c \ + ares_create_query.c \ + ares_nowarn.c \ + ares_options.c \ + ares_parse_a_reply.c \ + ares_parse_aaaa_reply.c \ + ares_parse_caa_reply.c \ + ares_parse_mx_reply.c \ + ares_parse_naptr_reply.c \ + ares_parse_ns_reply.c \ + ares_parse_ptr_reply.c \ + ares_parse_soa_reply.c \ + ares_parse_srv_reply.c \ + ares_parse_txt_reply.c \ + ares_parse_uri_reply.c \ + ares_platform.c \ + ares_process.c \ + ares_query.c \ + ares_search.c \ + ares_send.c \ + ares_strcasecmp.c \ + ares_strdup.c \ + ares_strerror.c \ + ares_strsplit.c \ + ares_timeout.c \ + ares_version.c \ + ares_writev.c \ + bitncmp.c \ + inet_net_pton.c \ + inet_ntop.c \ + windows_port.c + +HHEADERS = ares_android.h \ + ares_data.h \ + ares_getenv.h \ + ares_inet_net_pton.h \ + ares_iphlpapi.h \ + ares_ipv6.h \ + ares_library_init.h \ + ares_llist.h \ + ares_nowarn.h \ + ares_platform.h \ + ares_private.h \ + ares_strcasecmp.h \ + ares_strdup.h \ + ares_strsplit.h \ + ares_writev.h \ + bitncmp.h \ + ares_setup.h \ + setup_once.h + + +# Makefile.inc provides the CSOURCES and HHEADERS defines +libcares_la_SOURCES = $(CSOURCES) $(HHEADERS) +all: ares_config.h + $(MAKE) $(AM_MAKEFLAGS) all-recursive + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(top_srcdir)/aminclude_static.am $(srcdir)/Makefile.inc $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/lib/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/lib/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(top_srcdir)/aminclude_static.am $(srcdir)/Makefile.inc $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +ares_config.h: stamp-h1 + @test -f $@ || rm -f stamp-h1 + @test -f $@ || $(MAKE) $(AM_MAKEFLAGS) stamp-h1 + +stamp-h1: $(srcdir)/ares_config.h.in $(top_builddir)/config.status + @rm -f stamp-h1 + cd $(top_builddir) && $(SHELL) ./config.status src/lib/ares_config.h +$(srcdir)/ares_config.h.in: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + ($(am__cd) $(top_srcdir) && $(AUTOHEADER)) + rm -f stamp-h1 + touch $@ + +distclean-hdr: + -rm -f ares_config.h stamp-h1 + +install-libLTLIBRARIES: $(lib_LTLIBRARIES) + @$(NORMAL_INSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + list2=; for p in $$list; do \ + if test -f $$p; then \ + list2="$$list2 $$p"; \ + else :; fi; \ + done; \ + test -z "$$list2" || { \ + echo " $(MKDIR_P) '$(DESTDIR)$(libdir)'"; \ + $(MKDIR_P) "$(DESTDIR)$(libdir)" || exit 1; \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 '$(DESTDIR)$(libdir)'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=install $(INSTALL) $(INSTALL_STRIP_FLAG) $$list2 "$(DESTDIR)$(libdir)"; \ + } + +uninstall-libLTLIBRARIES: + @$(NORMAL_UNINSTALL) + @list='$(lib_LTLIBRARIES)'; test -n "$(libdir)" || list=; \ + for p in $$list; do \ + $(am__strip_dir) \ + echo " $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f '$(DESTDIR)$(libdir)/$$f'"; \ + $(LIBTOOL) $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=uninstall rm -f "$(DESTDIR)$(libdir)/$$f"; \ + done + +clean-libLTLIBRARIES: + -test -z "$(lib_LTLIBRARIES)" || rm -f $(lib_LTLIBRARIES) + @list='$(lib_LTLIBRARIES)'; \ + locs=`for p in $$list; do echo $$p; done | \ + sed 's|^[^/]*$$|.|; s|/[^/]*$$||; s|$$|/so_locations|' | \ + sort -u`; \ + test -z "$$locs" || { \ + echo rm -f $${locs}; \ + rm -f $${locs}; \ + } + +libcares.la: $(libcares_la_OBJECTS) $(libcares_la_DEPENDENCIES) $(EXTRA_libcares_la_DEPENDENCIES) + $(AM_V_CCLD)$(libcares_la_LINK) -rpath $(libdir) $(libcares_la_OBJECTS) $(libcares_la_LIBADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__close_sockets.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__get_hostent.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__read_line.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares__timeval.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_android.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_cancel.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_create_query.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_data.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_destroy.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_expand_name.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_expand_string.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_fds.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_free_hostent.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_free_string.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_freeaddrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_getaddrinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_getenv.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_gethostbyaddr.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_gethostbyname.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_getnameinfo.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_getsock.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_init.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_library_init.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_llist.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_mkquery.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_nowarn.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_options.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_a_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_caa_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_mx_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_naptr_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_ns_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_ptr_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_soa_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_srv_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_txt_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_parse_uri_reply.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_platform.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_process.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_query.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_search.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_send.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_strcasecmp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_strdup.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_strerror.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_strsplit.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_timeout.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_version.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-ares_writev.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-bitncmp.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-inet_net_pton.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-inet_ntop.Plo@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libcares_la-windows_port.Plo@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +libcares_la-ares__addrinfo2hostent.lo: ares__addrinfo2hostent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__addrinfo2hostent.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__addrinfo2hostent.Tpo -c -o libcares_la-ares__addrinfo2hostent.lo `test -f 'ares__addrinfo2hostent.c' || echo '$(srcdir)/'`ares__addrinfo2hostent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__addrinfo2hostent.Tpo $(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__addrinfo2hostent.c' object='libcares_la-ares__addrinfo2hostent.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__addrinfo2hostent.lo `test -f 'ares__addrinfo2hostent.c' || echo '$(srcdir)/'`ares__addrinfo2hostent.c + +libcares_la-ares__addrinfo_localhost.lo: ares__addrinfo_localhost.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__addrinfo_localhost.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__addrinfo_localhost.Tpo -c -o libcares_la-ares__addrinfo_localhost.lo `test -f 'ares__addrinfo_localhost.c' || echo '$(srcdir)/'`ares__addrinfo_localhost.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__addrinfo_localhost.Tpo $(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__addrinfo_localhost.c' object='libcares_la-ares__addrinfo_localhost.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__addrinfo_localhost.lo `test -f 'ares__addrinfo_localhost.c' || echo '$(srcdir)/'`ares__addrinfo_localhost.c + +libcares_la-ares__close_sockets.lo: ares__close_sockets.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__close_sockets.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__close_sockets.Tpo -c -o libcares_la-ares__close_sockets.lo `test -f 'ares__close_sockets.c' || echo '$(srcdir)/'`ares__close_sockets.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__close_sockets.Tpo $(DEPDIR)/libcares_la-ares__close_sockets.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__close_sockets.c' object='libcares_la-ares__close_sockets.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__close_sockets.lo `test -f 'ares__close_sockets.c' || echo '$(srcdir)/'`ares__close_sockets.c + +libcares_la-ares__get_hostent.lo: ares__get_hostent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__get_hostent.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__get_hostent.Tpo -c -o libcares_la-ares__get_hostent.lo `test -f 'ares__get_hostent.c' || echo '$(srcdir)/'`ares__get_hostent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__get_hostent.Tpo $(DEPDIR)/libcares_la-ares__get_hostent.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__get_hostent.c' object='libcares_la-ares__get_hostent.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__get_hostent.lo `test -f 'ares__get_hostent.c' || echo '$(srcdir)/'`ares__get_hostent.c + +libcares_la-ares__parse_into_addrinfo.lo: ares__parse_into_addrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__parse_into_addrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Tpo -c -o libcares_la-ares__parse_into_addrinfo.lo `test -f 'ares__parse_into_addrinfo.c' || echo '$(srcdir)/'`ares__parse_into_addrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Tpo $(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__parse_into_addrinfo.c' object='libcares_la-ares__parse_into_addrinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__parse_into_addrinfo.lo `test -f 'ares__parse_into_addrinfo.c' || echo '$(srcdir)/'`ares__parse_into_addrinfo.c + +libcares_la-ares__readaddrinfo.lo: ares__readaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__readaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__readaddrinfo.Tpo -c -o libcares_la-ares__readaddrinfo.lo `test -f 'ares__readaddrinfo.c' || echo '$(srcdir)/'`ares__readaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__readaddrinfo.Tpo $(DEPDIR)/libcares_la-ares__readaddrinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__readaddrinfo.c' object='libcares_la-ares__readaddrinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__readaddrinfo.lo `test -f 'ares__readaddrinfo.c' || echo '$(srcdir)/'`ares__readaddrinfo.c + +libcares_la-ares__sortaddrinfo.lo: ares__sortaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__sortaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__sortaddrinfo.Tpo -c -o libcares_la-ares__sortaddrinfo.lo `test -f 'ares__sortaddrinfo.c' || echo '$(srcdir)/'`ares__sortaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__sortaddrinfo.Tpo $(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__sortaddrinfo.c' object='libcares_la-ares__sortaddrinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__sortaddrinfo.lo `test -f 'ares__sortaddrinfo.c' || echo '$(srcdir)/'`ares__sortaddrinfo.c + +libcares_la-ares__read_line.lo: ares__read_line.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__read_line.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__read_line.Tpo -c -o libcares_la-ares__read_line.lo `test -f 'ares__read_line.c' || echo '$(srcdir)/'`ares__read_line.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__read_line.Tpo $(DEPDIR)/libcares_la-ares__read_line.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__read_line.c' object='libcares_la-ares__read_line.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__read_line.lo `test -f 'ares__read_line.c' || echo '$(srcdir)/'`ares__read_line.c + +libcares_la-ares__timeval.lo: ares__timeval.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares__timeval.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares__timeval.Tpo -c -o libcares_la-ares__timeval.lo `test -f 'ares__timeval.c' || echo '$(srcdir)/'`ares__timeval.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares__timeval.Tpo $(DEPDIR)/libcares_la-ares__timeval.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares__timeval.c' object='libcares_la-ares__timeval.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares__timeval.lo `test -f 'ares__timeval.c' || echo '$(srcdir)/'`ares__timeval.c + +libcares_la-ares_android.lo: ares_android.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_android.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_android.Tpo -c -o libcares_la-ares_android.lo `test -f 'ares_android.c' || echo '$(srcdir)/'`ares_android.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_android.Tpo $(DEPDIR)/libcares_la-ares_android.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_android.c' object='libcares_la-ares_android.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_android.lo `test -f 'ares_android.c' || echo '$(srcdir)/'`ares_android.c + +libcares_la-ares_cancel.lo: ares_cancel.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_cancel.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_cancel.Tpo -c -o libcares_la-ares_cancel.lo `test -f 'ares_cancel.c' || echo '$(srcdir)/'`ares_cancel.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_cancel.Tpo $(DEPDIR)/libcares_la-ares_cancel.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_cancel.c' object='libcares_la-ares_cancel.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_cancel.lo `test -f 'ares_cancel.c' || echo '$(srcdir)/'`ares_cancel.c + +libcares_la-ares_data.lo: ares_data.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_data.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_data.Tpo -c -o libcares_la-ares_data.lo `test -f 'ares_data.c' || echo '$(srcdir)/'`ares_data.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_data.Tpo $(DEPDIR)/libcares_la-ares_data.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_data.c' object='libcares_la-ares_data.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_data.lo `test -f 'ares_data.c' || echo '$(srcdir)/'`ares_data.c + +libcares_la-ares_destroy.lo: ares_destroy.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_destroy.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_destroy.Tpo -c -o libcares_la-ares_destroy.lo `test -f 'ares_destroy.c' || echo '$(srcdir)/'`ares_destroy.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_destroy.Tpo $(DEPDIR)/libcares_la-ares_destroy.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_destroy.c' object='libcares_la-ares_destroy.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_destroy.lo `test -f 'ares_destroy.c' || echo '$(srcdir)/'`ares_destroy.c + +libcares_la-ares_expand_name.lo: ares_expand_name.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_expand_name.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_expand_name.Tpo -c -o libcares_la-ares_expand_name.lo `test -f 'ares_expand_name.c' || echo '$(srcdir)/'`ares_expand_name.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_expand_name.Tpo $(DEPDIR)/libcares_la-ares_expand_name.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_expand_name.c' object='libcares_la-ares_expand_name.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_expand_name.lo `test -f 'ares_expand_name.c' || echo '$(srcdir)/'`ares_expand_name.c + +libcares_la-ares_expand_string.lo: ares_expand_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_expand_string.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_expand_string.Tpo -c -o libcares_la-ares_expand_string.lo `test -f 'ares_expand_string.c' || echo '$(srcdir)/'`ares_expand_string.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_expand_string.Tpo $(DEPDIR)/libcares_la-ares_expand_string.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_expand_string.c' object='libcares_la-ares_expand_string.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_expand_string.lo `test -f 'ares_expand_string.c' || echo '$(srcdir)/'`ares_expand_string.c + +libcares_la-ares_fds.lo: ares_fds.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_fds.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_fds.Tpo -c -o libcares_la-ares_fds.lo `test -f 'ares_fds.c' || echo '$(srcdir)/'`ares_fds.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_fds.Tpo $(DEPDIR)/libcares_la-ares_fds.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_fds.c' object='libcares_la-ares_fds.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_fds.lo `test -f 'ares_fds.c' || echo '$(srcdir)/'`ares_fds.c + +libcares_la-ares_free_hostent.lo: ares_free_hostent.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_free_hostent.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_free_hostent.Tpo -c -o libcares_la-ares_free_hostent.lo `test -f 'ares_free_hostent.c' || echo '$(srcdir)/'`ares_free_hostent.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_free_hostent.Tpo $(DEPDIR)/libcares_la-ares_free_hostent.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_free_hostent.c' object='libcares_la-ares_free_hostent.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_free_hostent.lo `test -f 'ares_free_hostent.c' || echo '$(srcdir)/'`ares_free_hostent.c + +libcares_la-ares_free_string.lo: ares_free_string.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_free_string.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_free_string.Tpo -c -o libcares_la-ares_free_string.lo `test -f 'ares_free_string.c' || echo '$(srcdir)/'`ares_free_string.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_free_string.Tpo $(DEPDIR)/libcares_la-ares_free_string.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_free_string.c' object='libcares_la-ares_free_string.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_free_string.lo `test -f 'ares_free_string.c' || echo '$(srcdir)/'`ares_free_string.c + +libcares_la-ares_freeaddrinfo.lo: ares_freeaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_freeaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_freeaddrinfo.Tpo -c -o libcares_la-ares_freeaddrinfo.lo `test -f 'ares_freeaddrinfo.c' || echo '$(srcdir)/'`ares_freeaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_freeaddrinfo.Tpo $(DEPDIR)/libcares_la-ares_freeaddrinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_freeaddrinfo.c' object='libcares_la-ares_freeaddrinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_freeaddrinfo.lo `test -f 'ares_freeaddrinfo.c' || echo '$(srcdir)/'`ares_freeaddrinfo.c + +libcares_la-ares_getaddrinfo.lo: ares_getaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_getaddrinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_getaddrinfo.Tpo -c -o libcares_la-ares_getaddrinfo.lo `test -f 'ares_getaddrinfo.c' || echo '$(srcdir)/'`ares_getaddrinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_getaddrinfo.Tpo $(DEPDIR)/libcares_la-ares_getaddrinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getaddrinfo.c' object='libcares_la-ares_getaddrinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_getaddrinfo.lo `test -f 'ares_getaddrinfo.c' || echo '$(srcdir)/'`ares_getaddrinfo.c + +libcares_la-ares_getenv.lo: ares_getenv.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_getenv.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_getenv.Tpo -c -o libcares_la-ares_getenv.lo `test -f 'ares_getenv.c' || echo '$(srcdir)/'`ares_getenv.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_getenv.Tpo $(DEPDIR)/libcares_la-ares_getenv.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getenv.c' object='libcares_la-ares_getenv.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_getenv.lo `test -f 'ares_getenv.c' || echo '$(srcdir)/'`ares_getenv.c + +libcares_la-ares_gethostbyaddr.lo: ares_gethostbyaddr.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_gethostbyaddr.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_gethostbyaddr.Tpo -c -o libcares_la-ares_gethostbyaddr.lo `test -f 'ares_gethostbyaddr.c' || echo '$(srcdir)/'`ares_gethostbyaddr.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_gethostbyaddr.Tpo $(DEPDIR)/libcares_la-ares_gethostbyaddr.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_gethostbyaddr.c' object='libcares_la-ares_gethostbyaddr.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_gethostbyaddr.lo `test -f 'ares_gethostbyaddr.c' || echo '$(srcdir)/'`ares_gethostbyaddr.c + +libcares_la-ares_gethostbyname.lo: ares_gethostbyname.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_gethostbyname.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_gethostbyname.Tpo -c -o libcares_la-ares_gethostbyname.lo `test -f 'ares_gethostbyname.c' || echo '$(srcdir)/'`ares_gethostbyname.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_gethostbyname.Tpo $(DEPDIR)/libcares_la-ares_gethostbyname.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_gethostbyname.c' object='libcares_la-ares_gethostbyname.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_gethostbyname.lo `test -f 'ares_gethostbyname.c' || echo '$(srcdir)/'`ares_gethostbyname.c + +libcares_la-ares_getnameinfo.lo: ares_getnameinfo.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_getnameinfo.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_getnameinfo.Tpo -c -o libcares_la-ares_getnameinfo.lo `test -f 'ares_getnameinfo.c' || echo '$(srcdir)/'`ares_getnameinfo.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_getnameinfo.Tpo $(DEPDIR)/libcares_la-ares_getnameinfo.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getnameinfo.c' object='libcares_la-ares_getnameinfo.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_getnameinfo.lo `test -f 'ares_getnameinfo.c' || echo '$(srcdir)/'`ares_getnameinfo.c + +libcares_la-ares_getsock.lo: ares_getsock.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_getsock.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_getsock.Tpo -c -o libcares_la-ares_getsock.lo `test -f 'ares_getsock.c' || echo '$(srcdir)/'`ares_getsock.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_getsock.Tpo $(DEPDIR)/libcares_la-ares_getsock.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getsock.c' object='libcares_la-ares_getsock.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_getsock.lo `test -f 'ares_getsock.c' || echo '$(srcdir)/'`ares_getsock.c + +libcares_la-ares_init.lo: ares_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_init.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_init.Tpo -c -o libcares_la-ares_init.lo `test -f 'ares_init.c' || echo '$(srcdir)/'`ares_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_init.Tpo $(DEPDIR)/libcares_la-ares_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_init.c' object='libcares_la-ares_init.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_init.lo `test -f 'ares_init.c' || echo '$(srcdir)/'`ares_init.c + +libcares_la-ares_library_init.lo: ares_library_init.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_library_init.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_library_init.Tpo -c -o libcares_la-ares_library_init.lo `test -f 'ares_library_init.c' || echo '$(srcdir)/'`ares_library_init.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_library_init.Tpo $(DEPDIR)/libcares_la-ares_library_init.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_library_init.c' object='libcares_la-ares_library_init.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_library_init.lo `test -f 'ares_library_init.c' || echo '$(srcdir)/'`ares_library_init.c + +libcares_la-ares_llist.lo: ares_llist.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_llist.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_llist.Tpo -c -o libcares_la-ares_llist.lo `test -f 'ares_llist.c' || echo '$(srcdir)/'`ares_llist.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_llist.Tpo $(DEPDIR)/libcares_la-ares_llist.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_llist.c' object='libcares_la-ares_llist.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_llist.lo `test -f 'ares_llist.c' || echo '$(srcdir)/'`ares_llist.c + +libcares_la-ares_mkquery.lo: ares_mkquery.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_mkquery.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_mkquery.Tpo -c -o libcares_la-ares_mkquery.lo `test -f 'ares_mkquery.c' || echo '$(srcdir)/'`ares_mkquery.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_mkquery.Tpo $(DEPDIR)/libcares_la-ares_mkquery.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_mkquery.c' object='libcares_la-ares_mkquery.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_mkquery.lo `test -f 'ares_mkquery.c' || echo '$(srcdir)/'`ares_mkquery.c + +libcares_la-ares_create_query.lo: ares_create_query.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_create_query.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_create_query.Tpo -c -o libcares_la-ares_create_query.lo `test -f 'ares_create_query.c' || echo '$(srcdir)/'`ares_create_query.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_create_query.Tpo $(DEPDIR)/libcares_la-ares_create_query.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_create_query.c' object='libcares_la-ares_create_query.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_create_query.lo `test -f 'ares_create_query.c' || echo '$(srcdir)/'`ares_create_query.c + +libcares_la-ares_nowarn.lo: ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_nowarn.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_nowarn.Tpo -c -o libcares_la-ares_nowarn.lo `test -f 'ares_nowarn.c' || echo '$(srcdir)/'`ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_nowarn.Tpo $(DEPDIR)/libcares_la-ares_nowarn.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_nowarn.c' object='libcares_la-ares_nowarn.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_nowarn.lo `test -f 'ares_nowarn.c' || echo '$(srcdir)/'`ares_nowarn.c + +libcares_la-ares_options.lo: ares_options.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_options.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_options.Tpo -c -o libcares_la-ares_options.lo `test -f 'ares_options.c' || echo '$(srcdir)/'`ares_options.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_options.Tpo $(DEPDIR)/libcares_la-ares_options.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_options.c' object='libcares_la-ares_options.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_options.lo `test -f 'ares_options.c' || echo '$(srcdir)/'`ares_options.c + +libcares_la-ares_parse_a_reply.lo: ares_parse_a_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_a_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_a_reply.Tpo -c -o libcares_la-ares_parse_a_reply.lo `test -f 'ares_parse_a_reply.c' || echo '$(srcdir)/'`ares_parse_a_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_a_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_a_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_a_reply.c' object='libcares_la-ares_parse_a_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_a_reply.lo `test -f 'ares_parse_a_reply.c' || echo '$(srcdir)/'`ares_parse_a_reply.c + +libcares_la-ares_parse_aaaa_reply.lo: ares_parse_aaaa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_aaaa_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Tpo -c -o libcares_la-ares_parse_aaaa_reply.lo `test -f 'ares_parse_aaaa_reply.c' || echo '$(srcdir)/'`ares_parse_aaaa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_aaaa_reply.c' object='libcares_la-ares_parse_aaaa_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_aaaa_reply.lo `test -f 'ares_parse_aaaa_reply.c' || echo '$(srcdir)/'`ares_parse_aaaa_reply.c + +libcares_la-ares_parse_caa_reply.lo: ares_parse_caa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_caa_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_caa_reply.Tpo -c -o libcares_la-ares_parse_caa_reply.lo `test -f 'ares_parse_caa_reply.c' || echo '$(srcdir)/'`ares_parse_caa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_caa_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_caa_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_caa_reply.c' object='libcares_la-ares_parse_caa_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_caa_reply.lo `test -f 'ares_parse_caa_reply.c' || echo '$(srcdir)/'`ares_parse_caa_reply.c + +libcares_la-ares_parse_mx_reply.lo: ares_parse_mx_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_mx_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_mx_reply.Tpo -c -o libcares_la-ares_parse_mx_reply.lo `test -f 'ares_parse_mx_reply.c' || echo '$(srcdir)/'`ares_parse_mx_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_mx_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_mx_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_mx_reply.c' object='libcares_la-ares_parse_mx_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_mx_reply.lo `test -f 'ares_parse_mx_reply.c' || echo '$(srcdir)/'`ares_parse_mx_reply.c + +libcares_la-ares_parse_naptr_reply.lo: ares_parse_naptr_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_naptr_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_naptr_reply.Tpo -c -o libcares_la-ares_parse_naptr_reply.lo `test -f 'ares_parse_naptr_reply.c' || echo '$(srcdir)/'`ares_parse_naptr_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_naptr_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_naptr_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_naptr_reply.c' object='libcares_la-ares_parse_naptr_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_naptr_reply.lo `test -f 'ares_parse_naptr_reply.c' || echo '$(srcdir)/'`ares_parse_naptr_reply.c + +libcares_la-ares_parse_ns_reply.lo: ares_parse_ns_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_ns_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_ns_reply.Tpo -c -o libcares_la-ares_parse_ns_reply.lo `test -f 'ares_parse_ns_reply.c' || echo '$(srcdir)/'`ares_parse_ns_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_ns_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_ns_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_ns_reply.c' object='libcares_la-ares_parse_ns_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_ns_reply.lo `test -f 'ares_parse_ns_reply.c' || echo '$(srcdir)/'`ares_parse_ns_reply.c + +libcares_la-ares_parse_ptr_reply.lo: ares_parse_ptr_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_ptr_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_ptr_reply.Tpo -c -o libcares_la-ares_parse_ptr_reply.lo `test -f 'ares_parse_ptr_reply.c' || echo '$(srcdir)/'`ares_parse_ptr_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_ptr_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_ptr_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_ptr_reply.c' object='libcares_la-ares_parse_ptr_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_ptr_reply.lo `test -f 'ares_parse_ptr_reply.c' || echo '$(srcdir)/'`ares_parse_ptr_reply.c + +libcares_la-ares_parse_soa_reply.lo: ares_parse_soa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_soa_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_soa_reply.Tpo -c -o libcares_la-ares_parse_soa_reply.lo `test -f 'ares_parse_soa_reply.c' || echo '$(srcdir)/'`ares_parse_soa_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_soa_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_soa_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_soa_reply.c' object='libcares_la-ares_parse_soa_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_soa_reply.lo `test -f 'ares_parse_soa_reply.c' || echo '$(srcdir)/'`ares_parse_soa_reply.c + +libcares_la-ares_parse_srv_reply.lo: ares_parse_srv_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_srv_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_srv_reply.Tpo -c -o libcares_la-ares_parse_srv_reply.lo `test -f 'ares_parse_srv_reply.c' || echo '$(srcdir)/'`ares_parse_srv_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_srv_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_srv_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_srv_reply.c' object='libcares_la-ares_parse_srv_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_srv_reply.lo `test -f 'ares_parse_srv_reply.c' || echo '$(srcdir)/'`ares_parse_srv_reply.c + +libcares_la-ares_parse_txt_reply.lo: ares_parse_txt_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_txt_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_txt_reply.Tpo -c -o libcares_la-ares_parse_txt_reply.lo `test -f 'ares_parse_txt_reply.c' || echo '$(srcdir)/'`ares_parse_txt_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_txt_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_txt_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_txt_reply.c' object='libcares_la-ares_parse_txt_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_txt_reply.lo `test -f 'ares_parse_txt_reply.c' || echo '$(srcdir)/'`ares_parse_txt_reply.c + +libcares_la-ares_parse_uri_reply.lo: ares_parse_uri_reply.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_parse_uri_reply.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_parse_uri_reply.Tpo -c -o libcares_la-ares_parse_uri_reply.lo `test -f 'ares_parse_uri_reply.c' || echo '$(srcdir)/'`ares_parse_uri_reply.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_parse_uri_reply.Tpo $(DEPDIR)/libcares_la-ares_parse_uri_reply.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_parse_uri_reply.c' object='libcares_la-ares_parse_uri_reply.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_parse_uri_reply.lo `test -f 'ares_parse_uri_reply.c' || echo '$(srcdir)/'`ares_parse_uri_reply.c + +libcares_la-ares_platform.lo: ares_platform.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_platform.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_platform.Tpo -c -o libcares_la-ares_platform.lo `test -f 'ares_platform.c' || echo '$(srcdir)/'`ares_platform.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_platform.Tpo $(DEPDIR)/libcares_la-ares_platform.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_platform.c' object='libcares_la-ares_platform.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_platform.lo `test -f 'ares_platform.c' || echo '$(srcdir)/'`ares_platform.c + +libcares_la-ares_process.lo: ares_process.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_process.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_process.Tpo -c -o libcares_la-ares_process.lo `test -f 'ares_process.c' || echo '$(srcdir)/'`ares_process.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_process.Tpo $(DEPDIR)/libcares_la-ares_process.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_process.c' object='libcares_la-ares_process.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_process.lo `test -f 'ares_process.c' || echo '$(srcdir)/'`ares_process.c + +libcares_la-ares_query.lo: ares_query.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_query.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_query.Tpo -c -o libcares_la-ares_query.lo `test -f 'ares_query.c' || echo '$(srcdir)/'`ares_query.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_query.Tpo $(DEPDIR)/libcares_la-ares_query.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_query.c' object='libcares_la-ares_query.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_query.lo `test -f 'ares_query.c' || echo '$(srcdir)/'`ares_query.c + +libcares_la-ares_search.lo: ares_search.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_search.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_search.Tpo -c -o libcares_la-ares_search.lo `test -f 'ares_search.c' || echo '$(srcdir)/'`ares_search.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_search.Tpo $(DEPDIR)/libcares_la-ares_search.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_search.c' object='libcares_la-ares_search.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_search.lo `test -f 'ares_search.c' || echo '$(srcdir)/'`ares_search.c + +libcares_la-ares_send.lo: ares_send.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_send.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_send.Tpo -c -o libcares_la-ares_send.lo `test -f 'ares_send.c' || echo '$(srcdir)/'`ares_send.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_send.Tpo $(DEPDIR)/libcares_la-ares_send.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_send.c' object='libcares_la-ares_send.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_send.lo `test -f 'ares_send.c' || echo '$(srcdir)/'`ares_send.c + +libcares_la-ares_strcasecmp.lo: ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_strcasecmp.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_strcasecmp.Tpo -c -o libcares_la-ares_strcasecmp.lo `test -f 'ares_strcasecmp.c' || echo '$(srcdir)/'`ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_strcasecmp.Tpo $(DEPDIR)/libcares_la-ares_strcasecmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_strcasecmp.c' object='libcares_la-ares_strcasecmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_strcasecmp.lo `test -f 'ares_strcasecmp.c' || echo '$(srcdir)/'`ares_strcasecmp.c + +libcares_la-ares_strdup.lo: ares_strdup.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_strdup.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_strdup.Tpo -c -o libcares_la-ares_strdup.lo `test -f 'ares_strdup.c' || echo '$(srcdir)/'`ares_strdup.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_strdup.Tpo $(DEPDIR)/libcares_la-ares_strdup.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_strdup.c' object='libcares_la-ares_strdup.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_strdup.lo `test -f 'ares_strdup.c' || echo '$(srcdir)/'`ares_strdup.c + +libcares_la-ares_strerror.lo: ares_strerror.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_strerror.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_strerror.Tpo -c -o libcares_la-ares_strerror.lo `test -f 'ares_strerror.c' || echo '$(srcdir)/'`ares_strerror.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_strerror.Tpo $(DEPDIR)/libcares_la-ares_strerror.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_strerror.c' object='libcares_la-ares_strerror.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_strerror.lo `test -f 'ares_strerror.c' || echo '$(srcdir)/'`ares_strerror.c + +libcares_la-ares_strsplit.lo: ares_strsplit.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_strsplit.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_strsplit.Tpo -c -o libcares_la-ares_strsplit.lo `test -f 'ares_strsplit.c' || echo '$(srcdir)/'`ares_strsplit.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_strsplit.Tpo $(DEPDIR)/libcares_la-ares_strsplit.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_strsplit.c' object='libcares_la-ares_strsplit.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_strsplit.lo `test -f 'ares_strsplit.c' || echo '$(srcdir)/'`ares_strsplit.c + +libcares_la-ares_timeout.lo: ares_timeout.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_timeout.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_timeout.Tpo -c -o libcares_la-ares_timeout.lo `test -f 'ares_timeout.c' || echo '$(srcdir)/'`ares_timeout.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_timeout.Tpo $(DEPDIR)/libcares_la-ares_timeout.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_timeout.c' object='libcares_la-ares_timeout.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_timeout.lo `test -f 'ares_timeout.c' || echo '$(srcdir)/'`ares_timeout.c + +libcares_la-ares_version.lo: ares_version.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_version.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_version.Tpo -c -o libcares_la-ares_version.lo `test -f 'ares_version.c' || echo '$(srcdir)/'`ares_version.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_version.Tpo $(DEPDIR)/libcares_la-ares_version.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_version.c' object='libcares_la-ares_version.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_version.lo `test -f 'ares_version.c' || echo '$(srcdir)/'`ares_version.c + +libcares_la-ares_writev.lo: ares_writev.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-ares_writev.lo -MD -MP -MF $(DEPDIR)/libcares_la-ares_writev.Tpo -c -o libcares_la-ares_writev.lo `test -f 'ares_writev.c' || echo '$(srcdir)/'`ares_writev.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-ares_writev.Tpo $(DEPDIR)/libcares_la-ares_writev.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_writev.c' object='libcares_la-ares_writev.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-ares_writev.lo `test -f 'ares_writev.c' || echo '$(srcdir)/'`ares_writev.c + +libcares_la-bitncmp.lo: bitncmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-bitncmp.lo -MD -MP -MF $(DEPDIR)/libcares_la-bitncmp.Tpo -c -o libcares_la-bitncmp.lo `test -f 'bitncmp.c' || echo '$(srcdir)/'`bitncmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-bitncmp.Tpo $(DEPDIR)/libcares_la-bitncmp.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='bitncmp.c' object='libcares_la-bitncmp.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-bitncmp.lo `test -f 'bitncmp.c' || echo '$(srcdir)/'`bitncmp.c + +libcares_la-inet_net_pton.lo: inet_net_pton.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-inet_net_pton.lo -MD -MP -MF $(DEPDIR)/libcares_la-inet_net_pton.Tpo -c -o libcares_la-inet_net_pton.lo `test -f 'inet_net_pton.c' || echo '$(srcdir)/'`inet_net_pton.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-inet_net_pton.Tpo $(DEPDIR)/libcares_la-inet_net_pton.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inet_net_pton.c' object='libcares_la-inet_net_pton.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-inet_net_pton.lo `test -f 'inet_net_pton.c' || echo '$(srcdir)/'`inet_net_pton.c + +libcares_la-inet_ntop.lo: inet_ntop.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-inet_ntop.lo -MD -MP -MF $(DEPDIR)/libcares_la-inet_ntop.Tpo -c -o libcares_la-inet_ntop.lo `test -f 'inet_ntop.c' || echo '$(srcdir)/'`inet_ntop.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-inet_ntop.Tpo $(DEPDIR)/libcares_la-inet_ntop.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='inet_ntop.c' object='libcares_la-inet_ntop.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-inet_ntop.lo `test -f 'inet_ntop.c' || echo '$(srcdir)/'`inet_ntop.c + +libcares_la-windows_port.lo: windows_port.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -MT libcares_la-windows_port.lo -MD -MP -MF $(DEPDIR)/libcares_la-windows_port.Tpo -c -o libcares_la-windows_port.lo `test -f 'windows_port.c' || echo '$(srcdir)/'`windows_port.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/libcares_la-windows_port.Tpo $(DEPDIR)/libcares_la-windows_port.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='windows_port.c' object='libcares_la-windows_port.lo' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libcares_la_CPPFLAGS) $(CPPFLAGS) $(libcares_la_CFLAGS) $(CFLAGS) -c -o libcares_la-windows_port.lo `test -f 'windows_port.c' || echo '$(srcdir)/'`windows_port.c + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +# This directory's subdirectories are mostly independent; you can cd +# into them and run 'make' without going through this Makefile. +# To change the values of 'make' variables: instead of editing Makefiles, +# (1) if the variable is set in 'config.status', edit 'config.status' +# (which will cause the Makefiles to be regenerated when you run 'make'); +# (2) otherwise, pass the desired values on the 'make' command line. +$(am__recursive_targets): + @fail=; \ + if $(am__make_keepgoing); then \ + failcom='fail=yes'; \ + else \ + failcom='exit 1'; \ + fi; \ + dot_seen=no; \ + target=`echo $@ | sed s/-recursive//`; \ + case "$@" in \ + distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \ + *) list='$(SUBDIRS)' ;; \ + esac; \ + for subdir in $$list; do \ + echo "Making $$target in $$subdir"; \ + if test "$$subdir" = "."; then \ + dot_seen=yes; \ + local_target="$$target-am"; \ + else \ + local_target="$$target"; \ + fi; \ + ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \ + || eval $$failcom; \ + done; \ + if test "$$dot_seen" = "no"; then \ + $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \ + fi; test -z "$$fail" + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-recursive +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \ + include_option=--etags-include; \ + empty_fix=.; \ + else \ + include_option=--include; \ + empty_fix=; \ + fi; \ + list='$(SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + test ! -f $$subdir/TAGS || \ + set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \ + fi; \ + done; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-recursive + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-recursive + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done + @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \ + if test "$$subdir" = .; then :; else \ + $(am__make_dryrun) \ + || test -d "$(distdir)/$$subdir" \ + || $(MKDIR_P) "$(distdir)/$$subdir" \ + || exit 1; \ + dir1=$$subdir; dir2="$(distdir)/$$subdir"; \ + $(am__relativize); \ + new_distdir=$$reldir; \ + dir1=$$subdir; dir2="$(top_distdir)"; \ + $(am__relativize); \ + new_top_distdir=$$reldir; \ + echo " (cd $$subdir && $(MAKE) $(AM_MAKEFLAGS) top_distdir="$$new_top_distdir" distdir="$$new_distdir" \\"; \ + echo " am__remove_distdir=: am__skip_length_check=: am__skip_mode_fix=: distdir)"; \ + ($(am__cd) $$subdir && \ + $(MAKE) $(AM_MAKEFLAGS) \ + top_distdir="$$new_top_distdir" \ + distdir="$$new_distdir" \ + am__remove_distdir=: \ + am__skip_length_check=: \ + am__skip_mode_fix=: \ + distdir) \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-recursive +all-am: Makefile $(LTLIBRARIES) ares_config.h +installdirs: installdirs-recursive +installdirs-am: + for dir in "$(DESTDIR)$(libdir)"; do \ + test -z "$$dir" || $(MKDIR_P) "$$dir"; \ + done +install: install-recursive +install-exec: install-exec-recursive +install-data: install-data-recursive +uninstall: uninstall-recursive + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-recursive +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -test -z "$(DISTCLEANFILES)" || rm -f $(DISTCLEANFILES) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-recursive + +clean-am: clean-generic clean-libLTLIBRARIES clean-libtool \ + mostlyclean-am + +distclean: distclean-recursive + -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__read_line.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__timeval.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_android.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_cancel.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_create_query.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_data.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_destroy.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_expand_name.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_expand_string.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_fds.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_free_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_free_string.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_freeaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getenv.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_gethostbyaddr.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_gethostbyname.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getnameinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getsock.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_init.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_library_init.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_llist.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_mkquery.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_nowarn.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_options.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_a_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_caa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_mx_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_naptr_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_ns_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_ptr_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_soa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_srv_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_txt_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_uri_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_platform.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_process.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_query.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_search.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_send.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strcasecmp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strdup.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strerror.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strsplit.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_timeout.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_version.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_writev.Plo + -rm -f ./$(DEPDIR)/libcares_la-bitncmp.Plo + -rm -f ./$(DEPDIR)/libcares_la-inet_net_pton.Plo + -rm -f ./$(DEPDIR)/libcares_la-inet_ntop.Plo + -rm -f ./$(DEPDIR)/libcares_la-windows_port.Plo + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-hdr distclean-tags + +dvi: dvi-recursive + +dvi-am: + +html: html-recursive + +html-am: + +info: info-recursive + +info-am: + +install-data-am: + +install-dvi: install-dvi-recursive + +install-dvi-am: + +install-exec-am: install-libLTLIBRARIES + +install-html: install-html-recursive + +install-html-am: + +install-info: install-info-recursive + +install-info-am: + +install-man: + +install-pdf: install-pdf-recursive + +install-pdf-am: + +install-ps: install-ps-recursive + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-recursive + -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo2hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__addrinfo_localhost.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__close_sockets.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__get_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__parse_into_addrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__read_line.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__readaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__sortaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares__timeval.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_android.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_cancel.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_create_query.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_data.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_destroy.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_expand_name.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_expand_string.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_fds.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_free_hostent.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_free_string.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_freeaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getaddrinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getenv.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_gethostbyaddr.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_gethostbyname.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getnameinfo.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_getsock.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_init.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_library_init.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_llist.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_mkquery.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_nowarn.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_options.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_a_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_aaaa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_caa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_mx_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_naptr_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_ns_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_ptr_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_soa_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_srv_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_txt_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_parse_uri_reply.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_platform.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_process.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_query.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_search.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_send.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strcasecmp.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strdup.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strerror.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_strsplit.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_timeout.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_version.Plo + -rm -f ./$(DEPDIR)/libcares_la-ares_writev.Plo + -rm -f ./$(DEPDIR)/libcares_la-bitncmp.Plo + -rm -f ./$(DEPDIR)/libcares_la-inet_net_pton.Plo + -rm -f ./$(DEPDIR)/libcares_la-inet_ntop.Plo + -rm -f ./$(DEPDIR)/libcares_la-windows_port.Plo + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-recursive + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-recursive + +pdf-am: + +ps: ps-recursive + +ps-am: + +uninstall-am: uninstall-libLTLIBRARIES + +.MAKE: $(am__recursive_targets) all install-am install-strip + +.PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \ + am--depfiles check check-am clean clean-generic \ + clean-libLTLIBRARIES clean-libtool cscopelist-am ctags \ + ctags-am distclean distclean-compile distclean-generic \ + distclean-hdr distclean-libtool distclean-tags distdir dvi \ + dvi-am html html-am info info-am install install-am \ + install-data install-data-am install-dvi install-dvi-am \ + install-exec install-exec-am install-html install-html-am \ + install-info install-info-am install-libLTLIBRARIES \ + install-man install-pdf install-pdf-am install-ps \ + install-ps-am install-strip installcheck installcheck-am \ + installdirs installdirs-am maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am uninstall-libLTLIBRARIES + +.PRECIOUS: Makefile + + +# Code coverage +# +# Optional: +# - CODE_COVERAGE_DIRECTORY: Top-level directory for code coverage reporting. +# Multiple directories may be specified, separated by whitespace. +# (Default: $(top_builddir)) +# - CODE_COVERAGE_OUTPUT_FILE: Filename and path for the .info file generated +# by lcov for code coverage. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info) +# - CODE_COVERAGE_OUTPUT_DIRECTORY: Directory for generated code coverage +# reports to be created. (Default: +# $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage) +# - CODE_COVERAGE_BRANCH_COVERAGE: Set to 1 to enforce branch coverage, +# set to 0 to disable it and leave empty to stay with the default. +# (Default: empty) +# - CODE_COVERAGE_LCOV_SHOPTS_DEFAULT: Extra options shared between both lcov +# instances. (Default: based on ) +# - CODE_COVERAGE_LCOV_SHOPTS: Extra options to shared between both lcov +# instances. (Default: ) +# - CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH: --gcov-tool pathtogcov +# - CODE_COVERAGE_LCOV_OPTIONS_DEFAULT: Extra options to pass to the +# collecting lcov instance. (Default: ) +# - CODE_COVERAGE_LCOV_OPTIONS: Extra options to pass to the collecting lcov +# instance. (Default: ) +# - CODE_COVERAGE_LCOV_RMOPTS_DEFAULT: Extra options to pass to the filtering +# lcov instance. (Default: empty) +# - CODE_COVERAGE_LCOV_RMOPTS: Extra options to pass to the filtering lcov +# instance. (Default: ) +# - CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT: Extra options to pass to the +# genhtml instance. (Default: based on ) +# - CODE_COVERAGE_GENHTML_OPTIONS: Extra options to pass to the genhtml +# instance. (Default: ) +# - CODE_COVERAGE_IGNORE_PATTERN: Extra glob pattern of files to ignore +# +# The generated report will be titled using the $(PACKAGE_NAME) and +# $(PACKAGE_VERSION). In order to add the current git hash to the title, +# use the git-version-gen script, available online. +# Optional variables +# run only on top dir +@CODE_COVERAGE_ENABLED_TRUE@ ifeq ($(abs_builddir), $(abs_top_builddir)) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_DIRECTORY ?= $(top_builddir) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_OUTPUT_FILE ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage.info +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_OUTPUT_DIRECTORY ?= $(PACKAGE_NAME)-$(PACKAGE_VERSION)-coverage + +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_BRANCH_COVERAGE ?= +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_SHOPTS_DEFAULT ?= $(if $(CODE_COVERAGE_BRANCH_COVERAGE),--rc lcov_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_SHOPTS ?= $(CODE_COVERAGE_LCOV_SHOPTS_DEFAULT) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH ?= --gcov-tool "$(GCOV)" +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_OPTIONS_DEFAULT ?= $(CODE_COVERAGE_LCOV_OPTIONS_GCOVPATH) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_OPTIONS ?= $(CODE_COVERAGE_LCOV_OPTIONS_DEFAULT) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_RMOPTS_DEFAULT ?= +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_LCOV_RMOPTS ?= $(CODE_COVERAGE_LCOV_RMOPTS_DEFAULT) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT ?=$(if $(CODE_COVERAGE_BRANCH_COVERAGE),--rc genhtml_branch_coverage=$(CODE_COVERAGE_BRANCH_COVERAGE)) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_GENHTML_OPTIONS ?= $(CODE_COVERAGE_GENHTML_OPTIONS_DEFAULT) +@CODE_COVERAGE_ENABLED_TRUE@CODE_COVERAGE_IGNORE_PATTERN ?= + +# Use recursive makes in order to ignore errors during check +@CODE_COVERAGE_ENABLED_TRUE@check-code-coverage: +@CODE_COVERAGE_ENABLED_TRUE@ -$(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -k check +@CODE_COVERAGE_ENABLED_TRUE@ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) code-coverage-capture + +# Capture code coverage data +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-capture: code-coverage-capture-hook +@CODE_COVERAGE_ENABLED_TRUE@ $(code_coverage_v_lcov_cap)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --capture --output-file "$(CODE_COVERAGE_OUTPUT_FILE).tmp" --test-name "$(call code_coverage_sanitize,$(PACKAGE_NAME)-$(PACKAGE_VERSION))" --no-checksum --compat-libtool $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_OPTIONS) +@CODE_COVERAGE_ENABLED_TRUE@ $(code_coverage_v_lcov_ign)$(LCOV) $(code_coverage_quiet) $(addprefix --directory ,$(CODE_COVERAGE_DIRECTORY)) --remove "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "/tmp/*" $(CODE_COVERAGE_IGNORE_PATTERN) --output-file "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_LCOV_SHOPTS) $(CODE_COVERAGE_LCOV_RMOPTS) +@CODE_COVERAGE_ENABLED_TRUE@ -@rm -f "$(CODE_COVERAGE_OUTPUT_FILE).tmp" +@CODE_COVERAGE_ENABLED_TRUE@ $(code_coverage_v_genhtml)LANG=C $(GENHTML) $(code_coverage_quiet) $(addprefix --prefix ,$(CODE_COVERAGE_DIRECTORY)) --output-directory "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" --title "$(PACKAGE_NAME)-$(PACKAGE_VERSION) Code Coverage" --legend --show-details "$(CODE_COVERAGE_OUTPUT_FILE)" $(CODE_COVERAGE_GENHTML_OPTIONS) +@CODE_COVERAGE_ENABLED_TRUE@ @echo "file://$(abs_builddir)/$(CODE_COVERAGE_OUTPUT_DIRECTORY)/index.html" + +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-clean: +@CODE_COVERAGE_ENABLED_TRUE@ -$(LCOV) --directory $(top_builddir) -z +@CODE_COVERAGE_ENABLED_TRUE@ -rm -rf "$(CODE_COVERAGE_OUTPUT_FILE)" "$(CODE_COVERAGE_OUTPUT_FILE).tmp" "$(CODE_COVERAGE_OUTPUT_DIRECTORY)" +@CODE_COVERAGE_ENABLED_TRUE@ -find . \( -name "*.gcda" -o -name "*.gcno" -o -name "*.gcov" \) -delete + +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-dist-clean: +@CODE_COVERAGE_ENABLED_TRUE@ else # ifneq ($(abs_builddir), $(abs_top_builddir)) +@CODE_COVERAGE_ENABLED_TRUE@check-code-coverage: + +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-capture: code-coverage-capture-hook + +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-clean: + +@CODE_COVERAGE_ENABLED_TRUE@code-coverage-dist-clean: +@CODE_COVERAGE_ENABLED_TRUE@ endif # ifeq ($(abs_builddir), $(abs_top_builddir)) +# Use recursive makes in order to ignore errors during check +@CODE_COVERAGE_ENABLED_FALSE@check-code-coverage: +@CODE_COVERAGE_ENABLED_FALSE@ @echo "Need to reconfigure with --enable-code-coverage" +# Capture code coverage data +@CODE_COVERAGE_ENABLED_FALSE@code-coverage-capture: code-coverage-capture-hook +@CODE_COVERAGE_ENABLED_FALSE@ @echo "Need to reconfigure with --enable-code-coverage" + +@CODE_COVERAGE_ENABLED_FALSE@code-coverage-clean: + +@CODE_COVERAGE_ENABLED_FALSE@code-coverage-dist-clean: + +# Hook rule executed before code-coverage-capture, overridable by the user +code-coverage-capture-hook: + +.PHONY: check-code-coverage code-coverage-capture code-coverage-dist-clean code-coverage-clean code-coverage-capture-hook + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/src/lib/Makefile.inc b/deps/cares/src/lib/Makefile.inc new file mode 100644 index 00000000000000..a3b060c289ce7c --- /dev/null +++ b/deps/cares/src/lib/Makefile.inc @@ -0,0 +1,81 @@ + +CSOURCES = ares__addrinfo2hostent.c \ + ares__addrinfo_localhost.c \ + ares__close_sockets.c \ + ares__get_hostent.c \ + ares__parse_into_addrinfo.c \ + ares__readaddrinfo.c \ + ares__sortaddrinfo.c \ + ares__read_line.c \ + ares__timeval.c \ + ares_android.c \ + ares_cancel.c \ + ares_data.c \ + ares_destroy.c \ + ares_expand_name.c \ + ares_expand_string.c \ + ares_fds.c \ + ares_free_hostent.c \ + ares_free_string.c \ + ares_freeaddrinfo.c \ + ares_getaddrinfo.c \ + ares_getenv.c \ + ares_gethostbyaddr.c \ + ares_gethostbyname.c \ + ares_getnameinfo.c \ + ares_getsock.c \ + ares_init.c \ + ares_library_init.c \ + ares_llist.c \ + ares_mkquery.c \ + ares_create_query.c \ + ares_nowarn.c \ + ares_options.c \ + ares_parse_a_reply.c \ + ares_parse_aaaa_reply.c \ + ares_parse_caa_reply.c \ + ares_parse_mx_reply.c \ + ares_parse_naptr_reply.c \ + ares_parse_ns_reply.c \ + ares_parse_ptr_reply.c \ + ares_parse_soa_reply.c \ + ares_parse_srv_reply.c \ + ares_parse_txt_reply.c \ + ares_parse_uri_reply.c \ + ares_platform.c \ + ares_process.c \ + ares_query.c \ + ares_search.c \ + ares_send.c \ + ares_strcasecmp.c \ + ares_strdup.c \ + ares_strerror.c \ + ares_strsplit.c \ + ares_timeout.c \ + ares_version.c \ + ares_writev.c \ + bitncmp.c \ + inet_net_pton.c \ + inet_ntop.c \ + windows_port.c + +HHEADERS = ares_android.h \ + ares_data.h \ + ares_getenv.h \ + ares_inet_net_pton.h \ + ares_iphlpapi.h \ + ares_ipv6.h \ + ares_library_init.h \ + ares_llist.h \ + ares_nowarn.h \ + ares_platform.h \ + ares_private.h \ + ares_strcasecmp.h \ + ares_strdup.h \ + ares_strsplit.h \ + ares_writev.h \ + bitncmp.h \ + ares_setup.h \ + setup_once.h + + diff --git a/deps/cares/src/lib/ares__addrinfo2hostent.c b/deps/cares/src/lib/ares__addrinfo2hostent.c new file mode 100644 index 00000000000000..efb145cd11bcaf --- /dev/null +++ b/deps/cares/src/lib/ares__addrinfo2hostent.c @@ -0,0 +1,266 @@ +/* Copyright 1998 by the Massachusetts Institute of Technology. + * Copyright 2005 Dominick Meglio + * Copyright (C) 2019 by Andrew Selivanov + * Copyright (C) 2021 by Brad House + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif + +#include "ares_nameser.h" + +#ifdef HAVE_STRINGS_H +# include +#endif + +#ifdef HAVE_LIMITS_H +# include +#endif + +#include "ares.h" +#include "ares_dns.h" +#include "ares_inet_net_pton.h" +#include "ares_private.h" + +int ares__addrinfo2hostent(const struct ares_addrinfo *ai, int family, + struct hostent **host) +{ + struct ares_addrinfo_node *next; + struct ares_addrinfo_cname *next_cname; + char **aliases = NULL; + char *addrs = NULL; + int naliases = 0, naddrs = 0, alias = 0, i; + + if (ai == NULL || host == NULL) + return ARES_EBADQUERY; + + *host = ares_malloc(sizeof(**host)); + if (!(*host)) + { + goto enomem; + } + memset(*host, 0, sizeof(**host)); + + /* Use the first node of the response as the family, since hostent can only + * represent one family. We assume getaddrinfo() returned a sorted list if + * the user requested AF_UNSPEC. */ + if (family == AF_UNSPEC && ai->nodes) + family = ai->nodes->ai_family; + + next = ai->nodes; + while (next) + { + if(next->ai_family == family) + { + ++naddrs; + } + next = next->ai_next; + } + + next_cname = ai->cnames; + while (next_cname) + { + if(next_cname->alias) + ++naliases; + next_cname = next_cname->next; + } + + aliases = ares_malloc((naliases + 1) * sizeof(char *)); + if (!aliases) + { + goto enomem; + } + (*host)->h_aliases = aliases; + memset(aliases, 0, (naliases + 1) * sizeof(char *)); + + if (naliases) + { + next_cname = ai->cnames; + while (next_cname) + { + if(next_cname->alias) { + aliases[alias] = ares_strdup(next_cname->alias); + if (!aliases[alias]) { + goto enomem; + } + alias++; + } + next_cname = next_cname->next; + } + } + + + (*host)->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *)); + if (!(*host)->h_addr_list) + { + goto enomem; + } + + memset((*host)->h_addr_list, 0, (naddrs + 1) * sizeof(char *)); + + if (ai->cnames) + { + (*host)->h_name = ares_strdup(ai->cnames->name); + if ((*host)->h_name == NULL && ai->cnames->name) + { + goto enomem; + } + } + else + { + (*host)->h_name = ares_strdup(ai->name); + if ((*host)->h_name == NULL && ai->name) + { + goto enomem; + } + } + + (*host)->h_addrtype = family; + (*host)->h_length = (family == AF_INET)? + sizeof(struct in_addr):sizeof(struct ares_in6_addr); + + if (naddrs) + { + addrs = ares_malloc(naddrs * (*host)->h_length); + if (!addrs) + { + goto enomem; + } + + i = 0; + next = ai->nodes; + while (next) + { + if(next->ai_family == family) + { + (*host)->h_addr_list[i] = addrs + (i * (*host)->h_length); + if (family == AF_INET6) + { + memcpy((*host)->h_addr_list[i], + &(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr), + (*host)->h_length); + } + else + { + memcpy((*host)->h_addr_list[i], + &(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr), + (*host)->h_length); + } + ++i; + } + next = next->ai_next; + } + + if (i == 0) + { + ares_free(addrs); + } + } + + if (naddrs == 0 && naliases == 0) + { + ares_free_hostent(*host); + *host = NULL; + return ARES_ENODATA; + } + + return ARES_SUCCESS; + +enomem: + ares_free_hostent(*host); + *host = NULL; + return ARES_ENOMEM; +} + + +int ares__addrinfo2addrttl(const struct ares_addrinfo *ai, int family, + int req_naddrttls, struct ares_addrttl *addrttls, + struct ares_addr6ttl *addr6ttls, int *naddrttls) +{ + struct ares_addrinfo_node *next; + struct ares_addrinfo_cname *next_cname; + int cname_ttl = INT_MAX; + + if (family != AF_INET && family != AF_INET6) + return ARES_EBADQUERY; + + if (ai == NULL || naddrttls == NULL) + return ARES_EBADQUERY; + + if (family == AF_INET && addrttls == NULL) + return ARES_EBADQUERY; + + if (family == AF_INET6 && addr6ttls == NULL) + return ARES_EBADQUERY; + + if (req_naddrttls == 0) + return ARES_EBADQUERY; + + *naddrttls = 0; + + next_cname = ai->cnames; + while (next_cname) + { + if(next_cname->ttl < cname_ttl) + cname_ttl = next_cname->ttl; + next_cname = next_cname->next; + } + + next = ai->nodes; + while (next) + { + if(next->ai_family == family) + { + if (*naddrttls < req_naddrttls) + { + if (family == AF_INET6) + { + if(next->ai_ttl > cname_ttl) + addr6ttls[*naddrttls].ttl = cname_ttl; + else + addr6ttls[*naddrttls].ttl = next->ai_ttl; + + memcpy(&addr6ttls[*naddrttls].ip6addr, + &(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr), + sizeof(struct ares_in6_addr)); + } + else + { + if(next->ai_ttl > cname_ttl) + addrttls[*naddrttls].ttl = cname_ttl; + else + addrttls[*naddrttls].ttl = next->ai_ttl; + memcpy(&addrttls[*naddrttls].ipaddr, + &(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr), + sizeof(struct in_addr)); + } + (*naddrttls)++; + } + } + next = next->ai_next; + } + + return ARES_SUCCESS; +} + diff --git a/deps/cares/src/lib/ares__addrinfo_localhost.c b/deps/cares/src/lib/ares__addrinfo_localhost.c new file mode 100644 index 00000000000000..7940ecdae7df3d --- /dev/null +++ b/deps/cares/src/lib/ares__addrinfo_localhost.c @@ -0,0 +1,240 @@ +/* Copyright (C) 2021 + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif + +#if defined(_WIN32) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 +#include +#include +#endif + +#include "ares.h" +#include "ares_inet_net_pton.h" +#include "ares_nowarn.h" +#include "ares_private.h" + +int ares_append_ai_node(int aftype, + unsigned short port, + int ttl, + const void *adata, + struct ares_addrinfo_node **nodes) +{ + struct ares_addrinfo_node *node; + + node = ares__append_addrinfo_node(nodes); + if (!node) + { + return ARES_ENOMEM; + } + + memset(node, 0, sizeof(*node)); + + if (aftype == AF_INET) + { + struct sockaddr_in *sin = ares_malloc(sizeof(*sin)); + if (!sin) + { + return ARES_ENOMEM; + } + + memset(sin, 0, sizeof(*sin)); + memcpy(&sin->sin_addr.s_addr, adata, sizeof(sin->sin_addr.s_addr)); + sin->sin_family = AF_INET; + sin->sin_port = htons(port); + + node->ai_addr = (struct sockaddr *)sin; + node->ai_family = AF_INET; + node->ai_addrlen = sizeof(*sin); + node->ai_addr = (struct sockaddr *)sin; + node->ai_ttl = ttl; + } + + if (aftype == AF_INET6) + { + struct sockaddr_in6 *sin6 = ares_malloc(sizeof(*sin6)); + if (!sin6) + { + return ARES_ENOMEM; + } + + memset(sin6, 0, sizeof(*sin6)); + memcpy(&sin6->sin6_addr.s6_addr, adata, sizeof(sin6->sin6_addr.s6_addr)); + sin6->sin6_family = AF_INET6; + sin6->sin6_port = htons(port); + + node->ai_addr = (struct sockaddr *)sin6; + node->ai_family = AF_INET6; + node->ai_addrlen = sizeof(*sin6); + node->ai_addr = (struct sockaddr *)sin6; + node->ai_ttl = ttl; + } + + return ARES_SUCCESS; +} + + +static int ares__default_loopback_addrs(int aftype, + unsigned short port, + struct ares_addrinfo_node **nodes) +{ + int status = ARES_SUCCESS; + + if (aftype == AF_UNSPEC || aftype == AF_INET6) + { + struct ares_in6_addr addr6; + ares_inet_pton(AF_INET6, "::1", &addr6); + status = ares_append_ai_node(AF_INET6, port, 0, &addr6, nodes); + if (status != ARES_SUCCESS) + { + return status; + } + } + + if (aftype == AF_UNSPEC || aftype == AF_INET) + { + struct in_addr addr4; + ares_inet_pton(AF_INET, "127.0.0.1", &addr4); + status = ares_append_ai_node(AF_INET, port, 0, &addr4, nodes); + if (status != ARES_SUCCESS) + { + return status; + } + } + + return status; +} + + +static int ares__system_loopback_addrs(int aftype, + unsigned short port, + struct ares_addrinfo_node **nodes) +{ +#if defined(_WIN32) && defined(_WIN32_WINNT) && _WIN32_WINNT >= 0x0600 + PMIB_UNICASTIPADDRESS_TABLE table; + unsigned int i; + int status; + + *nodes = NULL; + + if (GetUnicastIpAddressTable(aftype, &table) != NO_ERROR) + return ARES_ENOTFOUND; + + for (i=0; iNumEntries; i++) + { + if (table->Table[i].InterfaceLuid.Info.IfType != + IF_TYPE_SOFTWARE_LOOPBACK) + { + continue; + } + + if (table->Table[i].Address.si_family == AF_INET) + { + status = ares_append_ai_node(table->Table[i].Address.si_family, port, 0, + &table->Table[i].Address.Ipv4.sin_addr, + nodes); + } + else if (table->Table[i].Address.si_family == AF_INET6) + { + status = ares_append_ai_node(table->Table[i].Address.si_family, port, 0, + &table->Table[i].Address.Ipv6.sin6_addr, + nodes); + } + else + { + /* Ignore any others */ + continue; + } + + if (status != ARES_SUCCESS) + { + goto fail; + } + } + + if (*nodes == NULL) + status = ARES_ENOTFOUND; + +fail: + FreeMibTable(table); + + if (status != ARES_SUCCESS) + { + ares__freeaddrinfo_nodes(*nodes); + *nodes = NULL; + } + + return status; + +#else + (void)aftype; + (void)port; + (void)nodes; + /* Not supported on any other OS at this time */ + return ARES_ENOTFOUND; +#endif +} + + +int ares__addrinfo_localhost(const char *name, + unsigned short port, + const struct ares_addrinfo_hints *hints, + struct ares_addrinfo *ai) +{ + struct ares_addrinfo_node *nodes = NULL; + int result; + + /* Validate family */ + switch (hints->ai_family) { + case AF_INET: + case AF_INET6: + case AF_UNSPEC: + break; + default: + return ARES_EBADFAMILY; + } + + ai->name = ares_strdup(name); + if(!ai->name) + { + goto enomem; + } + + result = ares__system_loopback_addrs(hints->ai_family, port, &nodes); + + if (result == ARES_ENOTFOUND) + { + result = ares__default_loopback_addrs(hints->ai_family, port, &nodes); + } + + ares__addrinfo_cat_nodes(&ai->nodes, nodes); + + return result; + +enomem: + ares__freeaddrinfo_nodes(nodes); + ares_free(ai->name); + ai->name = NULL; + return ARES_ENOMEM; +} diff --git a/deps/cares/src/lib/ares__parse_into_addrinfo.c b/deps/cares/src/lib/ares__parse_into_addrinfo.c index 7550abab4a40a8..4393f04b961270 100644 --- a/deps/cares/src/lib/ares__parse_into_addrinfo.c +++ b/deps/cares/src/lib/ares__parse_into_addrinfo.c @@ -39,23 +39,20 @@ #include "ares_dns.h" #include "ares_private.h" -int ares__parse_into_addrinfo2(const unsigned char *abuf, - int alen, - char **question_hostname, - struct ares_addrinfo *ai) +int ares__parse_into_addrinfo(const unsigned char *abuf, + int alen, int cname_only_is_enodata, + unsigned short port, + struct ares_addrinfo *ai) { unsigned int qdcount, ancount; int status, i, rr_type, rr_class, rr_len, rr_ttl; int got_a = 0, got_aaaa = 0, got_cname = 0; long len; const unsigned char *aptr; + char *question_hostname = NULL; char *hostname, *rr_name = NULL, *rr_data; struct ares_addrinfo_cname *cname, *cnames = NULL; - struct ares_addrinfo_node *node, *nodes = NULL; - struct sockaddr_in *sin; - struct sockaddr_in6 *sin6; - - *question_hostname = NULL; + struct ares_addrinfo_node *nodes = NULL; /* Give up if abuf doesn't have room for a header. */ if (alen < HFIXEDSZ) @@ -70,15 +67,16 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf, /* Expand the name from the question, and skip past the question. */ aptr = abuf + HFIXEDSZ; - status = ares__expand_name_for_response(aptr, abuf, alen, question_hostname, &len, 0); + status = ares__expand_name_for_response(aptr, abuf, alen, &question_hostname, &len, 0); if (status != ARES_SUCCESS) return status; if (aptr + len + QFIXEDSZ > abuf + alen) { - return ARES_EBADRESP; + status = ARES_EBADRESP; + goto failed_stat; } - hostname = *question_hostname; + hostname = question_hostname; aptr += len + QFIXEDSZ; @@ -121,30 +119,9 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf, goto failed_stat; } /* LCOV_EXCL_STOP */ - node = ares__append_addrinfo_node(&nodes); - if (!node) - { - status = ARES_ENOMEM; - goto failed_stat; - } - - sin = ares_malloc(sizeof(struct sockaddr_in)); - if (!sin) - { - status = ARES_ENOMEM; - goto failed_stat; - } - memset(sin, 0, sizeof(struct sockaddr_in)); - memcpy(&sin->sin_addr.s_addr, aptr, sizeof(struct in_addr)); - sin->sin_family = AF_INET; - - node->ai_addr = (struct sockaddr *)sin; - node->ai_family = AF_INET; - node->ai_addrlen = sizeof(struct sockaddr_in); - - node->ai_ttl = rr_ttl; - - status = ARES_SUCCESS; + status = ares_append_ai_node(AF_INET, port, rr_ttl, aptr, &nodes); + if (status != ARES_SUCCESS) + goto failed_stat; } else if (rr_class == C_IN && rr_type == T_AAAA && rr_len == sizeof(struct ares_in6_addr) @@ -157,31 +134,9 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf, goto failed_stat; } /* LCOV_EXCL_STOP */ - node = ares__append_addrinfo_node(&nodes); - if (!node) - { - status = ARES_ENOMEM; - goto failed_stat; - } - - sin6 = ares_malloc(sizeof(struct sockaddr_in6)); - if (!sin6) - { - status = ARES_ENOMEM; - goto failed_stat; - } - - memset(sin6, 0, sizeof(struct sockaddr_in6)); - memcpy(&sin6->sin6_addr.s6_addr, aptr, sizeof(struct ares_in6_addr)); - sin6->sin6_family = AF_INET6; - - node->ai_addr = (struct sockaddr *)sin6; - node->ai_family = AF_INET6; - node->ai_addrlen = sizeof(struct sockaddr_in6); - - node->ai_ttl = rr_ttl; - - status = ARES_SUCCESS; + status = ares_append_ai_node(AF_INET6, port, rr_ttl, aptr, &nodes); + if (status != ARES_SUCCESS) + goto failed_stat; } if (rr_class == C_IN && rr_type == T_CNAME) @@ -208,10 +163,13 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf, cname->ttl = rr_ttl; cname->alias = rr_name; cname->name = rr_data; + rr_name = NULL; } else { + /* rr_name is only saved for cname */ ares_free(rr_name); + rr_name = NULL; } @@ -225,36 +183,47 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf, if (status == ARES_SUCCESS) { - ares__addrinfo_cat_nodes(&ai->nodes, nodes); - if (got_cname) + if (!got_a && !got_aaaa) { - ares__addrinfo_cat_cnames(&ai->cnames, cnames); - return status; + if (!got_cname || (got_cname && cname_only_is_enodata)) + { + status = ARES_ENODATA; + goto failed_stat; + } + } + + /* save the question hostname as ai->name */ + if (ai->name == NULL || strcasecmp(ai->name, question_hostname) != 0) + { + ares_free(ai->name); + ai->name = ares_strdup(question_hostname); + if (!ai->name) + { + status = ARES_ENOMEM; + goto failed_stat; + } } - else if (got_a == 0 && got_aaaa == 0) + + if (got_a || got_aaaa) + { + ares__addrinfo_cat_nodes(&ai->nodes, nodes); + nodes = NULL; + } + + if (got_cname) { - /* the check for naliases to be zero is to make sure CNAME responses - don't get caught here */ - status = ARES_ENODATA; + ares__addrinfo_cat_cnames(&ai->cnames, cnames); + cnames = NULL; } } + ares_free(question_hostname); return status; failed_stat: + ares_free(question_hostname); ares_free(rr_name); ares__freeaddrinfo_cnames(cnames); ares__freeaddrinfo_nodes(nodes); return status; } - -int ares__parse_into_addrinfo(const unsigned char *abuf, - int alen, - struct ares_addrinfo *ai) -{ - int status; - char *question_hostname; - status = ares__parse_into_addrinfo2(abuf, alen, &question_hostname, ai); - ares_free(question_hostname); - return status; -} diff --git a/deps/cares/src/lib/ares__readaddrinfo.c b/deps/cares/src/lib/ares__readaddrinfo.c index 2b5bb40c3dd017..673de87722b37d 100644 --- a/deps/cares/src/lib/ares__readaddrinfo.c +++ b/deps/cares/src/lib/ares__readaddrinfo.c @@ -42,11 +42,10 @@ int ares__readaddrinfo(FILE *fp, char *txtaddr, *txthost, *txtalias; char *aliases[MAX_ALIASES]; unsigned int i, alias_count; - int status; + int status = ARES_SUCCESS; size_t linesize; - ares_sockaddr addr; struct ares_addrinfo_cname *cname = NULL, *cnames = NULL; - struct ares_addrinfo_node *node = NULL, *nodes = NULL; + struct ares_addrinfo_node *nodes = NULL; int match_with_alias, match_with_canonical; int want_cname = hints->ai_flags & ARES_AI_CANONNAME; @@ -60,6 +59,12 @@ int ares__readaddrinfo(FILE *fp, return ARES_EBADFAMILY; } + ai->name = ares_strdup(name); + if(!ai->name) + { + status = ARES_ENOMEM; + goto fail; + } while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS) { @@ -163,57 +168,36 @@ int ares__readaddrinfo(FILE *fp, continue; } - /* Zero-out 'addr' struct, as there are members that we may not set, especially - * for ipv6. We don't want garbage data */ - memset(&addr, 0, sizeof(addr)); - /* * Convert address string to network address for the requested families. * Actual address family possible values are AF_INET and AF_INET6 only. */ if ((hints->ai_family == AF_INET) || (hints->ai_family == AF_UNSPEC)) { - addr.sa4.sin_port = htons(port); - if (ares_inet_pton(AF_INET, txtaddr, &addr.sa4.sin_addr) > 0) + struct in_addr addr4; + if (ares_inet_pton(AF_INET, txtaddr, &addr4) == 1) { - node = ares__append_addrinfo_node(&nodes); - if(!node) - { - goto enomem; - } - - node->ai_family = addr.sa.sa_family = AF_INET; - node->ai_addrlen = sizeof(addr.sa4); - node->ai_addr = ares_malloc(sizeof(addr.sa4)); - if (!node->ai_addr) + status = ares_append_ai_node(AF_INET, port, 0, &addr4, &nodes); + if (status != ARES_SUCCESS) { - goto enomem; + goto fail; } - memcpy(node->ai_addr, &addr.sa4, sizeof(addr.sa4)); } } if ((hints->ai_family == AF_INET6) || (hints->ai_family == AF_UNSPEC)) { - addr.sa6.sin6_port = htons(port); - if (ares_inet_pton(AF_INET6, txtaddr, &addr.sa6.sin6_addr) > 0) + struct ares_in6_addr addr6; + if (ares_inet_pton(AF_INET6, txtaddr, &addr6) == 1) { - node = ares__append_addrinfo_node(&nodes); - if (!node) + status = ares_append_ai_node(AF_INET6, port, 0, &addr6, &nodes); + if (status != ARES_SUCCESS) { - goto enomem; + goto fail; } - - node->ai_family = addr.sa.sa_family = AF_INET6; - node->ai_addrlen = sizeof(addr.sa6); - node->ai_addr = ares_malloc(sizeof(addr.sa6)); - if (!node->ai_addr) - { - goto enomem; - } - memcpy(node->ai_addr, &addr.sa6, sizeof(addr.sa6)); } } - if (!node) + + if (status != ARES_SUCCESS) /* Ignore line if invalid address string for the requested family. */ continue; @@ -224,7 +208,8 @@ int ares__readaddrinfo(FILE *fp, cname = ares__append_addrinfo_cname(&cnames); if (!cname) { - goto enomem; + status = ARES_ENOMEM; + goto fail; } cname->alias = ares_strdup(aliases[i]); cname->name = ares_strdup(txthost); @@ -235,7 +220,8 @@ int ares__readaddrinfo(FILE *fp, cname = ares__append_addrinfo_cname(&cnames); if (!cname) { - goto enomem; + status = ARES_ENOMEM; + goto fail; } cname->name = ares_strdup(txthost); } @@ -245,20 +231,21 @@ int ares__readaddrinfo(FILE *fp, /* Last read failed. */ if (status == ARES_ENOMEM) { - goto enomem; + goto fail; } /* Free line buffer. */ ares_free(line); - ares__addrinfo_cat_cnames(&ai->cnames, cnames); ares__addrinfo_cat_nodes(&ai->nodes, nodes); - return node ? ARES_SUCCESS : ARES_ENOTFOUND; + return nodes ? ARES_SUCCESS : ARES_ENOTFOUND; -enomem: +fail: ares_free(line); ares__freeaddrinfo_cnames(cnames); ares__freeaddrinfo_nodes(nodes); - return ARES_ENOMEM; + ares_free(ai->name); + ai->name = NULL; + return status; } diff --git a/deps/cares/src/lib/ares__sortaddrinfo.c b/deps/cares/src/lib/ares__sortaddrinfo.c index 6e56cc902304ca..3f050cad00fbdd 100644 --- a/deps/cares/src/lib/ares__sortaddrinfo.c +++ b/deps/cares/src/lib/ares__sortaddrinfo.c @@ -301,11 +301,15 @@ static int rfc6724_compare(const void *ptr1, const void *ptr2) } /* Rule 2: Prefer matching scope. */ - scope_src1 = get_scope(&a1->src_addr.sa); + scope_src1 = ARES_IPV6_ADDR_SCOPE_NODELOCAL; + if (a1->has_src_addr) + scope_src1 = get_scope(&a1->src_addr.sa); scope_dst1 = get_scope(a1->ai->ai_addr); scope_match1 = (scope_src1 == scope_dst1); - scope_src2 = get_scope(&a2->src_addr.sa); + scope_src2 = ARES_IPV6_ADDR_SCOPE_NODELOCAL; + if (a2->has_src_addr) + scope_src2 = get_scope(&a2->src_addr.sa); scope_dst2 = get_scope(a2->ai->ai_addr); scope_match2 = (scope_src2 == scope_dst2); @@ -319,11 +323,15 @@ static int rfc6724_compare(const void *ptr1, const void *ptr2) /* Rule 4: Prefer home addresses. */ /* Rule 5: Prefer matching label. */ - label_src1 = get_label(&a1->src_addr.sa); + label_src1 = 1; + if (a1->has_src_addr) + label_src1 = get_label(&a1->src_addr.sa); label_dst1 = get_label(a1->ai->ai_addr); label_match1 = (label_src1 == label_dst1); - label_src2 = get_label(&a2->src_addr.sa); + label_src2 = 1; + if (a2->has_src_addr) + label_src2 = get_label(&a2->src_addr.sa); label_dst2 = get_label(a2->ai->ai_addr); label_match2 = (label_src2 == label_dst2); diff --git a/deps/cares/src/lib/ares_config.h.cmake b/deps/cares/src/lib/ares_config.h.cmake new file mode 100644 index 00000000000000..fddb7853514bbe --- /dev/null +++ b/deps/cares/src/lib/ares_config.h.cmake @@ -0,0 +1,432 @@ +/* Generated from ares_config.h.cmake */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* define this if ares is built for a big endian system */ +#undef ARES_BIG_ENDIAN + +/* when building as static part of libcurl */ +#undef BUILDING_LIBCURL + +/* Defined for build that exposes internal static functions for testing. */ +#undef CARES_EXPOSE_STATICS + +/* Defined for build with symbol hiding. */ +#undef CARES_SYMBOL_HIDING + +/* Definition to make a library symbol externally visible. */ +#undef CARES_SYMBOL_SCOPE_EXTERN + +/* Use resolver library to configure cares */ +#cmakedefine CARES_USE_LIBRESOLV + +/* if a /etc/inet dir is being used */ +#undef ETC_INET + +/* Define to the type of arg 2 for gethostname. */ +#define GETHOSTNAME_TYPE_ARG2 @GETHOSTNAME_TYPE_ARG2@ + +/* Define to the type qualifier of arg 1 for getnameinfo. */ +#define GETNAMEINFO_QUAL_ARG1 @GETNAMEINFO_QUAL_ARG1@ + +/* Define to the type of arg 1 for getnameinfo. */ +#define GETNAMEINFO_TYPE_ARG1 @GETNAMEINFO_TYPE_ARG1@ + +/* Define to the type of arg 2 for getnameinfo. */ +#define GETNAMEINFO_TYPE_ARG2 @GETNAMEINFO_TYPE_ARG2@ + +/* Define to the type of args 4 and 6 for getnameinfo. */ +#define GETNAMEINFO_TYPE_ARG46 @GETNAMEINFO_TYPE_ARG46@ + +/* Define to the type of arg 7 for getnameinfo. */ +#define GETNAMEINFO_TYPE_ARG7 @GETNAMEINFO_TYPE_ARG7@ + +/* Specifies the number of arguments to getservbyport_r */ +#define GETSERVBYPORT_R_ARGS @GETSERVBYPORT_R_ARGS@ + +/* Specifies the number of arguments to getservbyname_r */ +#define GETSERVBYNAME_R_ARGS @GETSERVBYNAME_R_ARGS@ + +/* Define to 1 if you have AF_INET6. */ +#cmakedefine HAVE_AF_INET6 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_INET_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_NAMESER_COMPAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ARPA_NAMESER_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ASSERT_H + +/* Define to 1 if you have the `bitncmp' function. */ +#cmakedefine HAVE_BITNCMP + +/* Define to 1 if bool is an available type. */ +#cmakedefine HAVE_BOOL_T + +/* Define to 1 if you have the clock_gettime function and monotonic timer. */ +#cmakedefine HAVE_CLOCK_GETTIME_MONOTONIC + +/* Define to 1 if you have the closesocket function. */ +#cmakedefine HAVE_CLOSESOCKET + +/* Define to 1 if you have the CloseSocket camel case function. */ +#cmakedefine HAVE_CLOSESOCKET_CAMEL + +/* Define to 1 if you have the connect function. */ +#cmakedefine HAVE_CONNECT + +/* define if the compiler supports basic C++11 syntax */ +#cmakedefine HAVE_CXX11 + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_ERRNO_H + +/* Define to 1 if you have the fcntl function. */ +#cmakedefine HAVE_FCNTL + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_FCNTL_H + +/* Define to 1 if you have a working fcntl O_NONBLOCK function. */ +#cmakedefine HAVE_FCNTL_O_NONBLOCK + +/* Define to 1 if you have the freeaddrinfo function. */ +#cmakedefine HAVE_FREEADDRINFO + +/* Define to 1 if you have a working getaddrinfo function. */ +#cmakedefine HAVE_GETADDRINFO + +/* Define to 1 if the getaddrinfo function is threadsafe. */ +#cmakedefine HAVE_GETADDRINFO_THREADSAFE + +/* Define to 1 if you have the getenv function. */ +#cmakedefine HAVE_GETENV + +/* Define to 1 if you have the gethostbyaddr function. */ +#cmakedefine HAVE_GETHOSTBYADDR + +/* Define to 1 if you have the gethostbyname function. */ +#cmakedefine HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the gethostname function. */ +#cmakedefine HAVE_GETHOSTNAME + +/* Define to 1 if you have the getnameinfo function. */ +#cmakedefine HAVE_GETNAMEINFO + +/* Define to 1 if you have the getservbyport_r function. */ +#cmakedefine HAVE_GETSERVBYPORT_R + +/* Define to 1 if you have the getservbyname_r function. */ +#cmakedefine HAVE_GETSERVBYNAME_R + +/* Define to 1 if you have the `gettimeofday' function. */ +#cmakedefine HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the `if_indextoname' function. */ +#cmakedefine HAVE_IF_INDEXTONAME + +/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */ +#cmakedefine HAVE_INET_NET_PTON + +/* Define to 1 if you have a IPv6 capable working inet_ntop function. */ +#cmakedefine HAVE_INET_NTOP + +/* Define to 1 if you have a IPv6 capable working inet_pton function. */ +#cmakedefine HAVE_INET_PTON + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_INTTYPES_H + +/* Define to 1 if you have the ioctl function. */ +#cmakedefine HAVE_IOCTL + +/* Define to 1 if you have the ioctlsocket function. */ +#cmakedefine HAVE_IOCTLSOCKET + +/* Define to 1 if you have the IoctlSocket camel case function. */ +#cmakedefine HAVE_IOCTLSOCKET_CAMEL + +/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function. + */ +#cmakedefine HAVE_IOCTLSOCKET_CAMEL_FIONBIO + +/* Define to 1 if you have a working ioctlsocket FIONBIO function. */ +#cmakedefine HAVE_IOCTLSOCKET_FIONBIO + +/* Define to 1 if you have a working ioctl FIONBIO function. */ +#cmakedefine HAVE_IOCTL_FIONBIO + +/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */ +#cmakedefine HAVE_IOCTL_SIOCGIFADDR + +/* Define to 1 if you have the `resolve' library (-lresolve). */ +#cmakedefine HAVE_LIBRESOLV + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_LIMITS_H + +/* if your compiler supports LL */ +#cmakedefine HAVE_LL + +/* Define to 1 if the compiler supports the 'long long' data type. */ +#cmakedefine HAVE_LONGLONG + +/* Define to 1 if you have the malloc.h header file. */ +#cmakedefine HAVE_MALLOC_H + +/* Define to 1 if you have the memory.h header file. */ +#cmakedefine HAVE_MEMORY_H + +/* Define to 1 if you have the MSG_NOSIGNAL flag. */ +#cmakedefine HAVE_MSG_NOSIGNAL + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NETINET_TCP_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_NET_IF_H + +/* Define to 1 if you have PF_INET6. */ +#cmakedefine HAVE_PF_INET6 + +/* Define to 1 if you have the recv function. */ +#cmakedefine HAVE_RECV + +/* Define to 1 if you have the recvfrom function. */ +#cmakedefine HAVE_RECVFROM + +/* Define to 1 if you have the send function. */ +#cmakedefine HAVE_SEND + +/* Define to 1 if you have the setsockopt function. */ +#cmakedefine HAVE_SETSOCKOPT + +/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */ +#cmakedefine HAVE_SETSOCKOPT_SO_NONBLOCK + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SIGNAL_H + +/* Define to 1 if sig_atomic_t is an available typedef. */ +#cmakedefine HAVE_SIG_ATOMIC_T + +/* Define to 1 if sig_atomic_t is already defined as volatile. */ +#cmakedefine HAVE_SIG_ATOMIC_T_VOLATILE + +/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */ +#cmakedefine HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID + +/* Define to 1 if you have the socket function. */ +#cmakedefine HAVE_SOCKET + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SOCKET_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STDLIB_H + +/* Define to 1 if you have the strcasecmp function. */ +#cmakedefine HAVE_STRCASECMP + +/* Define to 1 if you have the strcmpi function. */ +#cmakedefine HAVE_STRCMPI + +/* Define to 1 if you have the strdup function. */ +#cmakedefine HAVE_STRDUP + +/* Define to 1 if you have the stricmp function. */ +#cmakedefine HAVE_STRICMP + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STRING_H + +/* Define to 1 if you have the strncasecmp function. */ +#cmakedefine HAVE_STRNCASECMP + +/* Define to 1 if you have the strncmpi function. */ +#cmakedefine HAVE_STRNCMPI + +/* Define to 1 if you have the strnicmp function. */ +#cmakedefine HAVE_STRNICMP + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_STROPTS_H + +/* Define to 1 if you have struct addrinfo. */ +#cmakedefine HAVE_STRUCT_ADDRINFO + +/* Define to 1 if you have struct in6_addr. */ +#cmakedefine HAVE_STRUCT_IN6_ADDR + +/* Define to 1 if you have struct sockaddr_in6. */ +#cmakedefine HAVE_STRUCT_SOCKADDR_IN6 + +/* if struct sockaddr_storage is defined */ +#cmakedefine HAVE_STRUCT_SOCKADDR_STORAGE + +/* Define to 1 if you have the timeval struct. */ +#cmakedefine HAVE_STRUCT_TIMEVAL + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_SYS_UIO_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_TIME_H + +/* Define to 1 if you have the header file. */ +#cmakedefine HAVE_UNISTD_H + +/* Define to 1 if you have the windows.h header file. */ +#cmakedefine HAVE_WINDOWS_H + +/* Define to 1 if you have the winsock2.h header file. */ +#cmakedefine HAVE_WINSOCK2_H + +/* Define to 1 if you have the winsock.h header file. */ +#cmakedefine HAVE_WINSOCK_H + +/* Define to 1 if you have the writev function. */ +#cmakedefine HAVE_WRITEV + +/* Define to 1 if you have the ws2tcpip.h header file. */ +#cmakedefine HAVE_WS2TCPIP_H + +/* Define to 1 if you have the __system_property_get function */ +#cmakedefine HAVE___SYSTEM_PROPERTY_GET + +/* Define to 1 if you need the malloc.h header file even with stdlib.h */ +#cmakedefine NEED_MALLOC_H + +/* Define to 1 if you need the memory.h header file even with stdlib.h */ +#cmakedefine NEED_MEMORY_H + +/* a suitable file/device to read random data from */ +#cmakedefine CARES_RANDOM_FILE "@CARES_RANDOM_FILE@" + +/* Define to the type qualifier pointed by arg 5 for recvfrom. */ +#define RECVFROM_QUAL_ARG5 @RECVFROM_QUAL_ARG5@ + +/* Define to the type of arg 1 for recvfrom. */ +#define RECVFROM_TYPE_ARG1 @RECVFROM_TYPE_ARG1@ + +/* Define to the type pointed by arg 2 for recvfrom. */ +#define RECVFROM_TYPE_ARG2 @RECVFROM_TYPE_ARG2@ + +/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */ +#cmakedefine01 RECVFROM_TYPE_ARG2_IS_VOID + +/* Define to the type of arg 3 for recvfrom. */ +#define RECVFROM_TYPE_ARG3 @RECVFROM_TYPE_ARG3@ + +/* Define to the type of arg 4 for recvfrom. */ +#define RECVFROM_TYPE_ARG4 @RECVFROM_TYPE_ARG4@ + +/* Define to the type pointed by arg 5 for recvfrom. */ +#define RECVFROM_TYPE_ARG5 @RECVFROM_TYPE_ARG5@ + +/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */ +#cmakedefine01 RECVFROM_TYPE_ARG5_IS_VOID + +/* Define to the type pointed by arg 6 for recvfrom. */ +#define RECVFROM_TYPE_ARG6 @RECVFROM_TYPE_ARG6@ + +/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */ +#cmakedefine01 RECVFROM_TYPE_ARG6_IS_VOID + +/* Define to the function return type for recvfrom. */ +#define RECVFROM_TYPE_RETV @RECVFROM_TYPE_RETV@ + +/* Define to the type of arg 1 for recv. */ +#define RECV_TYPE_ARG1 @RECV_TYPE_ARG1@ + +/* Define to the type of arg 2 for recv. */ +#define RECV_TYPE_ARG2 @RECV_TYPE_ARG2@ + +/* Define to the type of arg 3 for recv. */ +#define RECV_TYPE_ARG3 @RECV_TYPE_ARG3@ + +/* Define to the type of arg 4 for recv. */ +#define RECV_TYPE_ARG4 @RECV_TYPE_ARG4@ + +/* Define to the function return type for recv. */ +#define RECV_TYPE_RETV @RECV_TYPE_RETV@ + +/* Define as the return type of signal handlers (`int' or `void'). */ +#define RETSIGTYPE @RETSIGTYPE@ + +/* Define to the type qualifier of arg 2 for send. */ +#define SEND_QUAL_ARG2 @SEND_QUAL_ARG2@ + +/* Define to the type of arg 1 for send. */ +#define SEND_TYPE_ARG1 @SEND_TYPE_ARG1@ + +/* Define to the type of arg 2 for send. */ +#define SEND_TYPE_ARG2 @SEND_TYPE_ARG2@ + +/* Define to the type of arg 3 for send. */ +#define SEND_TYPE_ARG3 @SEND_TYPE_ARG3@ + +/* Define to the type of arg 4 for send. */ +#define SEND_TYPE_ARG4 @SEND_TYPE_ARG4@ + +/* Define to the function return type for send. */ +#define SEND_TYPE_RETV @SEND_TYPE_RETV@ + +/* Define to 1 if you can safely include both and . */ +#cmakedefine TIME_WITH_SYS_TIME + +/* Define to disable non-blocking sockets. */ +#undef USE_BLOCKING_SOCKETS + +/* Define to avoid automatic inclusion of winsock.h */ +#undef WIN32_LEAN_AND_MEAN + +/* Type to use in place of in_addr_t when system does not provide it. */ +#undef in_addr_t + diff --git a/deps/cares/src/lib/ares_config.h.in b/deps/cares/src/lib/ares_config.h.in new file mode 100644 index 00000000000000..b260c08fe62bd7 --- /dev/null +++ b/deps/cares/src/lib/ares_config.h.in @@ -0,0 +1,502 @@ +/* src/lib/ares_config.h.in. Generated from configure.ac by autoheader. */ + +/* Define if building universal (internal helper macro) */ +#undef AC_APPLE_UNIVERSAL_BUILD + +/* define this if ares is built for a big endian system */ +#undef ARES_BIG_ENDIAN + +/* Defined for build that exposes internal static functions for testing. */ +#undef CARES_EXPOSE_STATICS + +/* a suitable file/device to read random data from */ +#undef CARES_RANDOM_FILE + +/* Defined for build with symbol hiding. */ +#undef CARES_SYMBOL_HIDING + +/* Definition to make a library symbol externally visible. */ +#undef CARES_SYMBOL_SCOPE_EXTERN + +/* the signed version of size_t */ +#undef CARES_TYPEOF_ARES_SSIZE_T + +/* Use resolver library to configure cares */ +#undef CARES_USE_LIBRESOLV + +/* if a /etc/inet dir is being used */ +#undef ETC_INET + +/* Define to the type of arg 2 for gethostname. */ +#undef GETHOSTNAME_TYPE_ARG2 + +/* Define to the type qualifier of arg 1 for getnameinfo. */ +#undef GETNAMEINFO_QUAL_ARG1 + +/* Define to the type of arg 1 for getnameinfo. */ +#undef GETNAMEINFO_TYPE_ARG1 + +/* Define to the type of arg 2 for getnameinfo. */ +#undef GETNAMEINFO_TYPE_ARG2 + +/* Define to the type of args 4 and 6 for getnameinfo. */ +#undef GETNAMEINFO_TYPE_ARG46 + +/* Define to the type of arg 7 for getnameinfo. */ +#undef GETNAMEINFO_TYPE_ARG7 + +/* Specifies the number of arguments to getservbyport_r */ +#undef GETSERVBYPORT_R_ARGS + +/* Specifies the size of the buffer to pass to getservbyport_r */ +#undef GETSERVBYPORT_R_BUFSIZE + +/* Define to 1 if you have AF_INET6. */ +#undef HAVE_AF_INET6 + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_INET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_NAMESER_COMPAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ARPA_NAMESER_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ASSERT_H + +/* Define to 1 if you have the `bitncmp' function. */ +#undef HAVE_BITNCMP + +/* Define to 1 if bool is an available type. */ +#undef HAVE_BOOL_T + +/* Define to 1 if you have the clock_gettime function and monotonic timer. */ +#undef HAVE_CLOCK_GETTIME_MONOTONIC + +/* Define to 1 if you have the closesocket function. */ +#undef HAVE_CLOSESOCKET + +/* Define to 1 if you have the CloseSocket camel case function. */ +#undef HAVE_CLOSESOCKET_CAMEL + +/* Define to 1 if you have the connect function. */ +#undef HAVE_CONNECT + +/* define if the compiler supports basic C++11 syntax */ +#undef HAVE_CXX11 + +/* Define to 1 if you have the header file. */ +#undef HAVE_DLFCN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_ERRNO_H + +/* Define to 1 if you have the fcntl function. */ +#undef HAVE_FCNTL + +/* Define to 1 if you have the header file. */ +#undef HAVE_FCNTL_H + +/* Define to 1 if you have a working fcntl O_NONBLOCK function. */ +#undef HAVE_FCNTL_O_NONBLOCK + +/* Define to 1 if you have the freeaddrinfo function. */ +#undef HAVE_FREEADDRINFO + +/* Define to 1 if you have a working getaddrinfo function. */ +#undef HAVE_GETADDRINFO + +/* Define to 1 if the getaddrinfo function is threadsafe. */ +#undef HAVE_GETADDRINFO_THREADSAFE + +/* Define to 1 if you have the getenv function. */ +#undef HAVE_GETENV + +/* Define to 1 if you have the gethostbyaddr function. */ +#undef HAVE_GETHOSTBYADDR + +/* Define to 1 if you have the gethostbyname function. */ +#undef HAVE_GETHOSTBYNAME + +/* Define to 1 if you have the gethostname function. */ +#undef HAVE_GETHOSTNAME + +/* Define to 1 if you have the getnameinfo function. */ +#undef HAVE_GETNAMEINFO + +/* Define to 1 if you have the getservbyport_r function. */ +#undef HAVE_GETSERVBYPORT_R + +/* Define to 1 if you have the `gettimeofday' function. */ +#undef HAVE_GETTIMEOFDAY + +/* Define to 1 if you have the `if_indextoname' function. */ +#undef HAVE_IF_INDEXTONAME + +/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */ +#undef HAVE_INET_NET_PTON + +/* Define to 1 if you have a IPv6 capable working inet_ntop function. */ +#undef HAVE_INET_NTOP + +/* Define to 1 if you have a IPv6 capable working inet_pton function. */ +#undef HAVE_INET_PTON + +/* Define to 1 if you have the header file. */ +#undef HAVE_INTTYPES_H + +/* Define to 1 if you have the ioctl function. */ +#undef HAVE_IOCTL + +/* Define to 1 if you have the ioctlsocket function. */ +#undef HAVE_IOCTLSOCKET + +/* Define to 1 if you have the IoctlSocket camel case function. */ +#undef HAVE_IOCTLSOCKET_CAMEL + +/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function. + */ +#undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO + +/* Define to 1 if you have a working ioctlsocket FIONBIO function. */ +#undef HAVE_IOCTLSOCKET_FIONBIO + +/* Define to 1 if you have a working ioctl FIONBIO function. */ +#undef HAVE_IOCTL_FIONBIO + +/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */ +#undef HAVE_IOCTL_SIOCGIFADDR + +/* Define to 1 if you have the `resolve' library (-lresolve). */ +#undef HAVE_LIBRESOLVE + +/* Define to 1 if you have the header file. */ +#undef HAVE_LIMITS_H + +/* if your compiler supports LL */ +#undef HAVE_LL + +/* Define to 1 if the compiler supports the 'long long' data type. */ +#undef HAVE_LONGLONG + +/* Define to 1 if you have the malloc.h header file. */ +#undef HAVE_MALLOC_H + +/* Define to 1 if you have the memory.h header file. */ +#undef HAVE_MEMORY_H + +/* Define to 1 if you have the MSG_NOSIGNAL flag. */ +#undef HAVE_MSG_NOSIGNAL + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETDB_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_IN_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NETINET_TCP_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_NET_IF_H + +/* Define to 1 if you have PF_INET6. */ +#undef HAVE_PF_INET6 + +/* Define to 1 if you have the recv function. */ +#undef HAVE_RECV + +/* Define to 1 if you have the recvfrom function. */ +#undef HAVE_RECVFROM + +/* Define to 1 if you have the send function. */ +#undef HAVE_SEND + +/* Define to 1 if you have the setsockopt function. */ +#undef HAVE_SETSOCKOPT + +/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */ +#undef HAVE_SETSOCKOPT_SO_NONBLOCK + +/* Define to 1 if you have the header file. */ +#undef HAVE_SIGNAL_H + +/* Define to 1 if sig_atomic_t is an available typedef. */ +#undef HAVE_SIG_ATOMIC_T + +/* Define to 1 if sig_atomic_t is already defined as volatile. */ +#undef HAVE_SIG_ATOMIC_T_VOLATILE + +/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */ +#undef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID + +/* Define to 1 if you have the socket function. */ +#undef HAVE_SOCKET + +/* Define to 1 if you have the header file. */ +#undef HAVE_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDBOOL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDINT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STDLIB_H + +/* Define to 1 if you have the strcasecmp function. */ +#undef HAVE_STRCASECMP + +/* Define to 1 if you have the strcmpi function. */ +#undef HAVE_STRCMPI + +/* Define to 1 if you have the strdup function. */ +#undef HAVE_STRDUP + +/* Define to 1 if you have the stricmp function. */ +#undef HAVE_STRICMP + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRINGS_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_STRING_H + +/* Define to 1 if you have the strncasecmp function. */ +#undef HAVE_STRNCASECMP + +/* Define to 1 if you have the strncmpi function. */ +#undef HAVE_STRNCMPI + +/* Define to 1 if you have the strnicmp function. */ +#undef HAVE_STRNICMP + +/* Define to 1 if you have the header file. */ +#undef HAVE_STROPTS_H + +/* Define to 1 if you have struct addrinfo. */ +#undef HAVE_STRUCT_ADDRINFO + +/* Define to 1 if you have struct in6_addr. */ +#undef HAVE_STRUCT_IN6_ADDR + +/* Define to 1 if you have struct sockaddr_in6. */ +#undef HAVE_STRUCT_SOCKADDR_IN6 + +/* if struct sockaddr_storage is defined */ +#undef HAVE_STRUCT_SOCKADDR_STORAGE + +/* Define to 1 if you have the timeval struct. */ +#undef HAVE_STRUCT_TIMEVAL + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_IOCTL_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_PARAM_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SELECT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_SOCKET_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_STAT_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_TYPES_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_SYS_UIO_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_TIME_H + +/* Define to 1 if you have the header file. */ +#undef HAVE_UNISTD_H + +/* Define to 1 if you have the windows.h header file. */ +#undef HAVE_WINDOWS_H + +/* Define to 1 if you have the winsock2.h header file. */ +#undef HAVE_WINSOCK2_H + +/* Define to 1 if you have the winsock.h header file. */ +#undef HAVE_WINSOCK_H + +/* Define to 1 if you have the writev function. */ +#undef HAVE_WRITEV + +/* Define to 1 if you have the ws2tcpip.h header file. */ +#undef HAVE_WS2TCPIP_H + +/* Define if __system_property_get exists. */ +#undef HAVE___SYSTEM_PROPERTY_GET + +/* Define to the sub-directory where libtool stores uninstalled libraries. */ +#undef LT_OBJDIR + +/* Define to 1 if you need the malloc.h header file even with stdlib.h */ +#undef NEED_MALLOC_H + +/* Define to 1 if you need the memory.h header file even with stdlib.h */ +#undef NEED_MEMORY_H + +/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */ +#undef NEED_REENTRANT + +/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */ +#undef NEED_THREAD_SAFE + +/* cpu-machine-OS */ +#undef OS + +/* Name of package */ +#undef PACKAGE + +/* Define to the address where bug reports for this package should be sent. */ +#undef PACKAGE_BUGREPORT + +/* Define to the full name of this package. */ +#undef PACKAGE_NAME + +/* Define to the full name and version of this package. */ +#undef PACKAGE_STRING + +/* Define to the one symbol short name of this package. */ +#undef PACKAGE_TARNAME + +/* Define to the home page for this package. */ +#undef PACKAGE_URL + +/* Define to the version of this package. */ +#undef PACKAGE_VERSION + +/* Define to the type qualifier pointed by arg 5 for recvfrom. */ +#undef RECVFROM_QUAL_ARG5 + +/* Define to the type of arg 1 for recvfrom. */ +#undef RECVFROM_TYPE_ARG1 + +/* Define to the type pointed by arg 2 for recvfrom. */ +#undef RECVFROM_TYPE_ARG2 + +/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */ +#undef RECVFROM_TYPE_ARG2_IS_VOID + +/* Define to the type of arg 3 for recvfrom. */ +#undef RECVFROM_TYPE_ARG3 + +/* Define to the type of arg 4 for recvfrom. */ +#undef RECVFROM_TYPE_ARG4 + +/* Define to the type pointed by arg 5 for recvfrom. */ +#undef RECVFROM_TYPE_ARG5 + +/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */ +#undef RECVFROM_TYPE_ARG5_IS_VOID + +/* Define to the type pointed by arg 6 for recvfrom. */ +#undef RECVFROM_TYPE_ARG6 + +/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */ +#undef RECVFROM_TYPE_ARG6_IS_VOID + +/* Define to the function return type for recvfrom. */ +#undef RECVFROM_TYPE_RETV + +/* Define to the type of arg 1 for recv. */ +#undef RECV_TYPE_ARG1 + +/* Define to the type of arg 2 for recv. */ +#undef RECV_TYPE_ARG2 + +/* Define to the type of arg 3 for recv. */ +#undef RECV_TYPE_ARG3 + +/* Define to the type of arg 4 for recv. */ +#undef RECV_TYPE_ARG4 + +/* Define to the function return type for recv. */ +#undef RECV_TYPE_RETV + +/* Define as the return type of signal handlers (`int' or `void'). */ +#undef RETSIGTYPE + +/* Define to the type qualifier of arg 2 for send. */ +#undef SEND_QUAL_ARG2 + +/* Define to the type of arg 1 for send. */ +#undef SEND_TYPE_ARG1 + +/* Define to the type of arg 2 for send. */ +#undef SEND_TYPE_ARG2 + +/* Define to the type of arg 3 for send. */ +#undef SEND_TYPE_ARG3 + +/* Define to the type of arg 4 for send. */ +#undef SEND_TYPE_ARG4 + +/* Define to the function return type for send. */ +#undef SEND_TYPE_RETV + +/* Define to 1 if all of the C90 standard headers exist (not just the ones + required in a freestanding environment). This macro is provided for + backward compatibility; new code need not use it. */ +#undef STDC_HEADERS + +/* Define to 1 if you can safely include both and . This + macro is obsolete. */ +#undef TIME_WITH_SYS_TIME + +/* Define to disable non-blocking sockets. */ +#undef USE_BLOCKING_SOCKETS + +/* Version number of package */ +#undef VERSION + +/* Define to avoid automatic inclusion of winsock.h */ +#undef WIN32_LEAN_AND_MEAN + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#if defined AC_APPLE_UNIVERSAL_BUILD +# if defined __BIG_ENDIAN__ +# define WORDS_BIGENDIAN 1 +# endif +#else +# ifndef WORDS_BIGENDIAN +# undef WORDS_BIGENDIAN +# endif +#endif + +/* Define to 1 if OS is AIX. */ +#ifndef _ALL_SOURCE +# undef _ALL_SOURCE +#endif + +/* Number of bits in a file offset, on hosts where this is settable. */ +#undef _FILE_OFFSET_BITS + +/* Define for large files, on AIX-style hosts. */ +#undef _LARGE_FILES + +/* Define to empty if `const' does not conform to ANSI C. */ +#undef const + +/* Type to use in place of in_addr_t when system does not provide it. */ +#undef in_addr_t + +/* Define to `unsigned int' if does not define. */ +#undef size_t diff --git a/deps/cares/src/lib/ares_data.c b/deps/cares/src/lib/ares_data.c index aa925b8b511b2e..69dff06689ae24 100644 --- a/deps/cares/src/lib/ares_data.c +++ b/deps/cares/src/lib/ares_data.c @@ -77,6 +77,14 @@ void ares_free_data(void *dataptr) ares_free(ptr->data.srv_reply.host); break; + case ARES_DATATYPE_URI_REPLY: + + if (ptr->data.uri_reply.next) + next_data = ptr->data.uri_reply.next; + if (ptr->data.uri_reply.uri) + ares_free(ptr->data.uri_reply.uri); + break; + case ARES_DATATYPE_TXT_REPLY: case ARES_DATATYPE_TXT_EXT: @@ -174,6 +182,14 @@ void *ares_malloc_data(ares_datatype type) ptr->data.srv_reply.port = 0; break; + case ARES_DATATYPE_URI_REPLY: + ptr->data.uri_reply.next = NULL; + ptr->data.uri_reply.priority = 0; + ptr->data.uri_reply.weight = 0; + ptr->data.uri_reply.uri = NULL; + ptr->data.uri_reply.ttl = 0; + break; + case ARES_DATATYPE_TXT_EXT: ptr->data.txt_ext.record_start = 0; /* FALLTHROUGH */ diff --git a/deps/cares/src/lib/ares_data.h b/deps/cares/src/lib/ares_data.h index b0182fd6907499..6b9dd9f8f74359 100644 --- a/deps/cares/src/lib/ares_data.h +++ b/deps/cares/src/lib/ares_data.h @@ -23,6 +23,7 @@ typedef enum { ARES_DATATYPE_MX_REPLY, /* struct ares_mx_reply - introduced in 1.7.2 */ ARES_DATATYPE_NAPTR_REPLY,/* struct ares_naptr_reply - introduced in 1.7.6 */ ARES_DATATYPE_SOA_REPLY, /* struct ares_soa_reply - introduced in 1.9.0 */ + ARES_DATATYPE_URI_REPLY, /* struct ares_uri_reply */ #if 0 ARES_DATATYPE_ADDR6TTL, /* struct ares_addrttl */ ARES_DATATYPE_ADDRTTL, /* struct ares_addr6ttl */ @@ -67,6 +68,7 @@ struct ares_data { struct ares_naptr_reply naptr_reply; struct ares_soa_reply soa_reply; struct ares_caa_reply caa_reply; + struct ares_uri_reply uri_reply; } data; }; diff --git a/deps/cares/src/lib/ares_expand_name.c b/deps/cares/src/lib/ares_expand_name.c index a62c982e045255..fcd88a2a42eb42 100644 --- a/deps/cares/src/lib/ares_expand_name.c +++ b/deps/cares/src/lib/ares_expand_name.c @@ -59,10 +59,19 @@ static int ares__isprint(int ch) return 0; } -/* Character set allowed by hostnames */ +/* Character set allowed by hostnames. This is to include the normal + * domain name character set plus: + * - underscores which are used in SRV records. + * - Forward slashes such as are used for classless in-addr.arpa + * delegation (CNAMEs) + * While RFC 2181 section 11 does state not to do validation, + * that applies to servers, not clients. Vulnerabilities have been + * reported when this validation is not performed. Security is more + * important than edge-case compatibility (which is probably invalid + * anyhow). */ static int is_hostnamech(int ch) { - /* [A-Za-z0-9-.] + /* [A-Za-z0-9-._/] * Don't use isalnum() as it is locale-specific */ if (ch >= 'A' && ch <= 'Z') @@ -71,7 +80,7 @@ static int is_hostnamech(int ch) return 1; if (ch >= '0' && ch <= '9') return 1; - if (ch == '-' || ch == '.') + if (ch == '-' || ch == '.' || ch == '_' || ch == '/') return 1; return 0; diff --git a/deps/cares/src/lib/ares_freeaddrinfo.c b/deps/cares/src/lib/ares_freeaddrinfo.c index d8891bbf8a5cd0..ab871363d510b0 100644 --- a/deps/cares/src/lib/ares_freeaddrinfo.c +++ b/deps/cares/src/lib/ares_freeaddrinfo.c @@ -55,5 +55,6 @@ void ares_freeaddrinfo(struct ares_addrinfo *ai) return; ares__freeaddrinfo_cnames(ai->cnames); ares__freeaddrinfo_nodes(ai->nodes); + ares_free(ai->name); ares_free(ai); } diff --git a/deps/cares/src/lib/ares_getaddrinfo.c b/deps/cares/src/lib/ares_getaddrinfo.c index db17a6708680c8..0a0225a59ec442 100644 --- a/deps/cares/src/lib/ares_getaddrinfo.c +++ b/deps/cares/src/lib/ares_getaddrinfo.c @@ -72,6 +72,7 @@ struct host_query struct ares_addrinfo *ai; /* store results between lookups */ int remaining; /* number of DNS answers waiting for */ int next_domain; /* next search domain to try */ + int nodata_cnt; /* Track nodata responses to possibly override final result */ }; static const struct ares_addrinfo_hints default_hints = { @@ -101,13 +102,15 @@ static const struct ares_addrinfo_node empty_addrinfo_node = { static const struct ares_addrinfo empty_addrinfo = { NULL, /* cnames */ - NULL /* nodes */ + NULL, /* nodes */ + NULL /* name */ }; /* forward declarations */ static void host_callback(void *arg, int status, int timeouts, unsigned char *abuf, int alen); static int as_is_first(const struct host_query *hquery); +static int as_is_only(const struct host_query* hquery); static int next_dns_lookup(struct host_query *hquery); struct ares_addrinfo_cname *ares__malloc_addrinfo_cname() @@ -281,9 +284,7 @@ static int fake_addrinfo(const char *name, void *arg) { struct ares_addrinfo_cname *cname; - struct ares_addrinfo_node *node; - ares_sockaddr addr; - size_t addrlen; + int status = ARES_SUCCESS; int result = 0; int family = hints->ai_family; if (family == AF_INET || family == AF_INET6 || family == AF_UNSPEC) @@ -304,62 +305,45 @@ static int fake_addrinfo(const char *name, } } - memset(&addr, 0, sizeof(addr)); - /* if we don't have 3 dots, it is illegal * (although inet_pton doesn't think so). */ if (numdots != 3 || !valid) result = 0; else - result = - (ares_inet_pton(AF_INET, name, &addr.sa4.sin_addr) < 1 ? 0 : 1); - - if (result) { - family = addr.sa.sa_family = AF_INET; - addr.sa4.sin_port = htons(port); - addrlen = sizeof(addr.sa4); + struct in_addr addr4; + result = ares_inet_pton(AF_INET, name, &addr4) < 1 ? 0 : 1; + if (result) + { + status = ares_append_ai_node(AF_INET, port, 0, &addr4, &ai->nodes); + if (status != ARES_SUCCESS) + { + callback(arg, status, 0, NULL); + return 1; + } + } } } if (family == AF_INET6 || family == AF_UNSPEC) { - result = - (ares_inet_pton(AF_INET6, name, &addr.sa6.sin6_addr) < 1 ? 0 : 1); - addr.sa6.sin6_family = AF_INET6; - addr.sa6.sin6_port = htons(port); - addrlen = sizeof(addr.sa6); + struct ares_in6_addr addr6; + result = ares_inet_pton(AF_INET6, name, &addr6) < 1 ? 0 : 1; + if (result) + { + status = ares_append_ai_node(AF_INET6, port, 0, &addr6, &ai->nodes); + if (status != ARES_SUCCESS) + { + callback(arg, status, 0, NULL); + return 1; + } + } } if (!result) return 0; - node = ares__malloc_addrinfo_node(); - if (!node) - { - ares_freeaddrinfo(ai); - callback(arg, ARES_ENOMEM, 0, NULL); - return 1; - } - - ai->nodes = node; - - node->ai_addr = ares_malloc(addrlen); - if (!node->ai_addr) - { - ares_freeaddrinfo(ai); - callback(arg, ARES_ENOMEM, 0, NULL); - return 1; - } - - node->ai_addrlen = (unsigned int)addrlen; - node->ai_family = addr.sa.sa_family; - if (addr.sa.sa_family == AF_INET) - memcpy(node->ai_addr, &addr.sa4, sizeof(addr.sa4)); - else - memcpy(node->ai_addr, &addr.sa6, sizeof(addr.sa6)); - if (hints->ai_flags & ARES_AI_CANONNAME) { cname = ares__append_addrinfo_cname(&ai->cnames); @@ -380,8 +364,8 @@ static int fake_addrinfo(const char *name, } } - node->ai_socktype = hints->ai_socktype; - node->ai_protocol = hints->ai_protocol; + ai->nodes->ai_socktype = hints->ai_socktype; + ai->nodes->ai_protocol = hints->ai_protocol; callback(arg, ARES_SUCCESS, 0, ai); return 1; @@ -400,19 +384,11 @@ static void end_hquery(struct host_query *hquery, int status) hquery->ai->nodes = sentinel.ai_next; } next = hquery->ai->nodes; - /* Set port into each address (resolved separately). */ + while (next) { next->ai_socktype = hquery->hints.ai_socktype; next->ai_protocol = hquery->hints.ai_protocol; - if (next->ai_family == AF_INET) - { - (CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr))->sin_port = htons(hquery->port); - } - else - { - (CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr))->sin6_port = htons(hquery->port); - } next = next->ai_next; } } @@ -500,6 +476,16 @@ static int file_lookup(struct host_query *hquery) } status = ares__readaddrinfo(fp, hquery->name, hquery->port, &hquery->hints, hquery->ai); fclose(fp); + + /* RFC6761 section 6.3 #3 states that "Name resolution APIs and libraries + * SHOULD recognize localhost names as special and SHOULD always return the + * IP loopback address for address queries" */ + if (status == ARES_ENOTFOUND && strcmp(hquery->name, "localhost") == 0) + { + return ares__addrinfo_localhost(hquery->name, hquery->port, + &hquery->hints, hquery->ai); + } + return status; } @@ -508,9 +494,16 @@ static void next_lookup(struct host_query *hquery, int status) switch (*hquery->remaining_lookups) { case 'b': - /* DNS lookup */ - if (next_dns_lookup(hquery)) - break; + /* RFC6761 section 6.3 #3 says "Name resolution APIs SHOULD NOT send + * queries for localhost names to their configured caching DNS + * server(s)." */ + if (strcmp(hquery->name, "localhost") != 0) + { + /* DNS lookup */ + if (next_dns_lookup(hquery)) + break; + } + hquery->remaining_lookups++; next_lookup(hquery, status); break; @@ -542,12 +535,12 @@ static void host_callback(void *arg, int status, int timeouts, if (status == ARES_SUCCESS) { - addinfostatus = ares__parse_into_addrinfo(abuf, alen, hquery->ai); + addinfostatus = ares__parse_into_addrinfo(abuf, alen, 1, hquery->port, hquery->ai); } if (!hquery->remaining) { - if (addinfostatus != ARES_SUCCESS) + if (addinfostatus != ARES_SUCCESS && addinfostatus != ARES_ENODATA) { /* error in parsing result e.g. no memory */ end_hquery(hquery, addinfostatus); @@ -557,9 +550,12 @@ static void host_callback(void *arg, int status, int timeouts, /* at least one query ended with ARES_SUCCESS */ end_hquery(hquery, ARES_SUCCESS); } - else if (status == ARES_ENOTFOUND) + else if (status == ARES_ENOTFOUND || status == ARES_ENODATA || + addinfostatus == ARES_ENODATA) { - next_lookup(hquery, status); + if (status == ARES_ENODATA || addinfostatus == ARES_ENODATA) + hquery->nodata_cnt++; + next_lookup(hquery, hquery->nodata_cnt?ARES_ENODATA:status); } else if (status == ARES_EDESTRUCTION) { @@ -586,6 +582,8 @@ void ares_getaddrinfo(ares_channel channel, unsigned short port = 0; int family; struct ares_addrinfo *ai; + char *alias_name = NULL; + int status; if (!hints) { @@ -610,6 +608,17 @@ void ares_getaddrinfo(ares_channel channel, return; } + /* perform HOSTALIAS resolution (technically this function does some other + * things we are going to ignore) */ + status = ares__single_domain(channel, name, &alias_name); + if (status != ARES_SUCCESS) { + callback(arg, status, 0, NULL); + return; + } + + if (alias_name) + name = alias_name; + if (service) { if (hints->ai_flags & ARES_AI_NUMERICSERV) @@ -617,6 +626,7 @@ void ares_getaddrinfo(ares_channel channel, port = (unsigned short)strtoul(service, NULL, 0); if (!port) { + ares_free(alias_name); callback(arg, ARES_ESERVICE, 0, NULL); return; } @@ -629,6 +639,7 @@ void ares_getaddrinfo(ares_channel channel, port = (unsigned short)strtoul(service, NULL, 0); if (!port) { + ares_free(alias_name); callback(arg, ARES_ESERVICE, 0, NULL); return; } @@ -639,12 +650,14 @@ void ares_getaddrinfo(ares_channel channel, ai = ares__malloc_addrinfo(); if (!ai) { + ares_free(alias_name); callback(arg, ARES_ENOMEM, 0, NULL); return; } if (fake_addrinfo(name, port, hints, ai, callback, arg)) { + ares_free(alias_name); return; } @@ -652,12 +665,14 @@ void ares_getaddrinfo(ares_channel channel, hquery = ares_malloc(sizeof(struct host_query)); if (!hquery) { + ares_free(alias_name); ares_freeaddrinfo(ai); callback(arg, ARES_ENOMEM, 0, NULL); return; } hquery->name = ares_strdup(name); + ares_free(alias_name); if (!hquery->name) { ares_free(hquery); @@ -677,6 +692,7 @@ void ares_getaddrinfo(ares_channel channel, hquery->ai = ai; hquery->next_domain = -1; hquery->remaining = 0; + hquery->nodata_cnt = 0; /* Start performing lookups according to channel->lookups. */ next_lookup(hquery, ARES_ECONNREFUSED /* initial error code */); @@ -707,7 +723,7 @@ static int next_dns_lookup(struct host_query *hquery) hquery->next_domain++; } - if (!s && hquery->next_domain < hquery->channel->ndomains) + if (!s && hquery->next_domain < hquery->channel->ndomains && !as_is_only(hquery)) { status = ares__cat_domain( hquery->name, @@ -755,7 +771,7 @@ static int as_is_first(const struct host_query* hquery) { char* p; int ndots = 0; - size_t nname = strlen(hquery->name); + size_t nname = hquery->name?strlen(hquery->name):0; for (p = hquery->name; *p; p++) { if (*p == '.') @@ -770,3 +786,12 @@ static int as_is_first(const struct host_query* hquery) } return ndots >= hquery->channel->ndots; } + +static int as_is_only(const struct host_query* hquery) +{ + size_t nname = hquery->name?strlen(hquery->name):0; + if (nname && hquery->name[nname-1] == '.') + return 1; + return 0; +} + diff --git a/deps/cares/src/lib/ares_gethostbyname.c b/deps/cares/src/lib/ares_gethostbyname.c index e09363632ee5ee..8c71cc67f3c75a 100644 --- a/deps/cares/src/lib/ares_gethostbyname.c +++ b/deps/cares/src/lib/ares_gethostbyname.c @@ -1,4 +1,3 @@ - /* Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology. * * Permission to use, copy, modify, and distribute this @@ -39,30 +38,6 @@ #include "ares_nowarn.h" #include "ares_private.h" -#ifdef WATT32 -#undef WIN32 -#endif - -struct host_query { - /* Arguments passed to ares_gethostbyname() */ - ares_channel channel; - char *name; - ares_host_callback callback; - void *arg; - int sent_family; /* this family is what was is being used */ - int want_family; /* this family is what is asked for in the API */ - const char *remaining_lookups; - int timeouts; -}; - -static void next_lookup(struct host_query *hquery, int status_code); -static void host_callback(void *arg, int status, int timeouts, - unsigned char *abuf, int alen); -static void end_hquery(struct host_query *hquery, int status, - struct hostent *host); -static int fake_hostent(const char *name, int family, - ares_host_callback callback, void *arg); -static int file_lookup(const char *name, int family, struct hostent **host); static void sort_addresses(struct hostent *host, const struct apattern *sortlist, int nsort); static void sort6_addresses(struct hostent *host, @@ -72,252 +47,182 @@ static int get_address_index(const struct in_addr *addr, static int get6_address_index(const struct ares_in6_addr *addr, const struct apattern *sortlist, int nsort); -void ares_gethostbyname(ares_channel channel, const char *name, int family, - ares_host_callback callback, void *arg) +struct host_query { + ares_host_callback callback; + void *arg; + ares_channel channel; +}; + +static void ares_gethostbyname_callback(void *arg, int status, int timeouts, + struct ares_addrinfo *result) { - struct host_query *hquery; - - /* Right now we only know how to look up Internet addresses - and unspec - means try both basically. */ - switch (family) { - case AF_INET: - case AF_INET6: - case AF_UNSPEC: - break; - default: - callback(arg, ARES_ENOTIMP, 0, NULL); - return; - } + struct hostent *hostent = NULL; + struct host_query *ghbn_arg = arg; - /* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */ - if (ares__is_onion_domain(name)) + if (status == ARES_SUCCESS) { - callback(arg, ARES_ENOTFOUND, 0, NULL); - return; + status = ares__addrinfo2hostent(result, AF_UNSPEC, &hostent); + } + + /* addrinfo2hostent will only return ENODATA if there are no addresses _and_ + * no cname/aliases. However, gethostbyname will return ENODATA even if there + * is cname/alias data */ + if (status == ARES_SUCCESS && hostent && + (!hostent->h_addr_list || !hostent->h_addr_list[0])) + { + status = ARES_ENODATA; + } + + if (status == ARES_SUCCESS && ghbn_arg->channel->nsort && hostent) + { + if (hostent->h_addrtype == AF_INET6) + sort6_addresses(hostent, ghbn_arg->channel->sortlist, + ghbn_arg->channel->nsort); + if (hostent->h_addrtype == AF_INET) + sort_addresses(hostent, ghbn_arg->channel->sortlist, + ghbn_arg->channel->nsort); } - if (fake_hostent(name, family, callback, arg)) + ghbn_arg->callback(ghbn_arg->arg, status, timeouts, hostent); + + ares_freeaddrinfo(result); + ares_free(ghbn_arg); + ares_free_hostent(hostent); +} + +void ares_gethostbyname(ares_channel channel, const char *name, int family, + ares_host_callback callback, void *arg) +{ + const struct ares_addrinfo_hints hints = { ARES_AI_CANONNAME, family, 0, 0 }; + struct host_query *ghbn_arg; + + if (!callback) return; - /* Allocate and fill in the host query structure. */ - hquery = ares_malloc(sizeof(struct host_query)); - if (!hquery) + ghbn_arg = ares_malloc(sizeof(*ghbn_arg)); + if (!ghbn_arg) { callback(arg, ARES_ENOMEM, 0, NULL); return; } - hquery->channel = channel; - hquery->name = ares_strdup(name); - hquery->want_family = family; - hquery->sent_family = -1; /* nothing is sent yet */ - if (!hquery->name) { - ares_free(hquery); - callback(arg, ARES_ENOMEM, 0, NULL); - return; - } - hquery->callback = callback; - hquery->arg = arg; - hquery->remaining_lookups = channel->lookups; - hquery->timeouts = 0; - /* Start performing lookups according to channel->lookups. */ - next_lookup(hquery, ARES_ECONNREFUSED /* initial error code */); + ghbn_arg->callback=callback; + ghbn_arg->arg=arg; + ghbn_arg->channel=channel; + + ares_getaddrinfo(channel, name, NULL, &hints, ares_gethostbyname_callback, + ghbn_arg); } -static void next_lookup(struct host_query *hquery, int status_code) + +static void sort_addresses(struct hostent *host, + const struct apattern *sortlist, int nsort) { - const char *p; - struct hostent *host; - int status = status_code; + struct in_addr a1, a2; + int i1, i2, ind1, ind2; - for (p = hquery->remaining_lookups; *p; p++) + /* This is a simple insertion sort, not optimized at all. i1 walks + * through the address list, with the loop invariant that everything + * to the left of i1 is sorted. In the loop body, the value at i1 is moved + * back through the list (via i2) until it is in sorted order. + */ + for (i1 = 0; host->h_addr_list[i1]; i1++) { - switch (*p) + memcpy(&a1, host->h_addr_list[i1], sizeof(struct in_addr)); + ind1 = get_address_index(&a1, sortlist, nsort); + for (i2 = i1 - 1; i2 >= 0; i2--) { - case 'b': - /* DNS lookup */ - hquery->remaining_lookups = p + 1; - if ((hquery->want_family == AF_INET6) || - (hquery->want_family == AF_UNSPEC)) { - /* if inet6 or unspec, start out with AAAA */ - hquery->sent_family = AF_INET6; - ares_search(hquery->channel, hquery->name, C_IN, T_AAAA, - host_callback, hquery); - } - else { - hquery->sent_family = AF_INET; - ares_search(hquery->channel, hquery->name, C_IN, T_A, - host_callback, hquery); - } - return; - - case 'f': - /* Host file lookup */ - status = file_lookup(hquery->name, hquery->want_family, &host); - - /* this status check below previously checked for !ARES_ENOTFOUND, - but we should not assume that this single error code is the one - that can occur, as that is in fact no longer the case */ - if (status == ARES_SUCCESS) - { - end_hquery(hquery, status, host); - return; - } - status = status_code; /* Use original status code */ - break; + memcpy(&a2, host->h_addr_list[i2], sizeof(struct in_addr)); + ind2 = get_address_index(&a2, sortlist, nsort); + if (ind2 <= ind1) + break; + memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct in_addr)); } + memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct in_addr)); } - end_hquery(hquery, status, NULL); } -static void host_callback(void *arg, int status, int timeouts, - unsigned char *abuf, int alen) +/* Find the first entry in sortlist which matches addr. Return nsort + * if none of them match. + */ +static int get_address_index(const struct in_addr *addr, + const struct apattern *sortlist, + int nsort) { - struct host_query *hquery = (struct host_query *) arg; - ares_channel channel = hquery->channel; - struct hostent *host = NULL; + int i; - hquery->timeouts += timeouts; - if (status == ARES_SUCCESS) + for (i = 0; i < nsort; i++) { - if (hquery->sent_family == AF_INET) + if (sortlist[i].family != AF_INET) + continue; + if (sortlist[i].type == PATTERN_MASK) { - status = ares_parse_a_reply(abuf, alen, &host, NULL, NULL); - if (host && channel->nsort) - sort_addresses(host, channel->sortlist, channel->nsort); + if ((addr->s_addr & sortlist[i].mask.addr4.s_addr) + == sortlist[i].addrV4.s_addr) + break; } - else if (hquery->sent_family == AF_INET6) + else { - status = ares_parse_aaaa_reply(abuf, alen, &host, NULL, NULL); - if ((status == ARES_ENODATA || status == ARES_EBADRESP || - (status == ARES_SUCCESS && host && host->h_addr_list[0] == NULL)) && - hquery->want_family == AF_UNSPEC) { - /* The query returned something but either there were no AAAA - records (e.g. just CNAME) or the response was malformed. Try - looking up A instead. */ - if (host) - ares_free_hostent(host); - hquery->sent_family = AF_INET; - ares_search(hquery->channel, hquery->name, C_IN, T_A, - host_callback, hquery); - return; - } - if (host && channel->nsort) - sort6_addresses(host, channel->sortlist, channel->nsort); + if (!ares__bitncmp(&addr->s_addr, &sortlist[i].addrV4.s_addr, + sortlist[i].mask.bits)) + break; } - if (status == ARES_SUCCESS && host && host->h_addr_list[0] == NULL) - { - /* The query returned something but had no A/AAAA record - (even after potentially retrying AAAA with A) - so we should treat this as an error */ - status = ARES_ENODATA; - } - end_hquery(hquery, status, host); - } - else if ((status == ARES_ENODATA || status == ARES_EBADRESP || - status == ARES_ETIMEOUT) && (hquery->sent_family == AF_INET6 && - hquery->want_family == AF_UNSPEC)) - { - /* The AAAA query yielded no useful result. Now look up an A instead. */ - hquery->sent_family = AF_INET; - ares_search(hquery->channel, hquery->name, C_IN, T_A, host_callback, - hquery); } - else if (status == ARES_EDESTRUCTION) - end_hquery(hquery, status, NULL); - else - next_lookup(hquery, status); + return i; } -static void end_hquery(struct host_query *hquery, int status, - struct hostent *host) +static void sort6_addresses(struct hostent *host, + const struct apattern *sortlist, int nsort) { - hquery->callback(hquery->arg, status, hquery->timeouts, host); - if (host) - ares_free_hostent(host); - ares_free(hquery->name); - ares_free(hquery); -} + struct ares_in6_addr a1, a2; + int i1, i2, ind1, ind2; -/* If the name looks like an IP address, fake up a host entry, end the - * query immediately, and return true. Otherwise return false. - */ -static int fake_hostent(const char *name, int family, - ares_host_callback callback, void *arg) -{ - struct hostent hostent; - char *aliases[1] = { NULL }; - char *addrs[2]; - int result = 0; - struct in_addr in; - struct ares_in6_addr in6; - - if (family == AF_INET || family == AF_UNSPEC) + /* This is a simple insertion sort, not optimized at all. i1 walks + * through the address list, with the loop invariant that everything + * to the left of i1 is sorted. In the loop body, the value at i1 is moved + * back through the list (via i2) until it is in sorted order. + */ + for (i1 = 0; host->h_addr_list[i1]; i1++) { - /* It only looks like an IP address if it's all numbers and dots. */ - int numdots = 0, valid = 1; - const char *p; - for (p = name; *p; p++) + memcpy(&a1, host->h_addr_list[i1], sizeof(struct ares_in6_addr)); + ind1 = get6_address_index(&a1, sortlist, nsort); + for (i2 = i1 - 1; i2 >= 0; i2--) { - if (!ISDIGIT(*p) && *p != '.') { - valid = 0; + memcpy(&a2, host->h_addr_list[i2], sizeof(struct ares_in6_addr)); + ind2 = get6_address_index(&a2, sortlist, nsort); + if (ind2 <= ind1) break; - } else if (*p == '.') { - numdots++; - } + memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct ares_in6_addr)); } - - /* if we don't have 3 dots, it is illegal - * (although inet_pton doesn't think so). - */ - if (numdots != 3 || !valid) { - result = 0; - } else { - result = (ares_inet_pton(AF_INET, name, &in) < 1 ? 0 : 1); - } - - /* - * Set address family in case of failure, - * as we will try to convert it later afterwards - */ - family = result ? AF_INET : AF_INET6; + memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct ares_in6_addr)); } - if (family == AF_INET6) - result = (ares_inet_pton(AF_INET6, name, &in6) < 1 ? 0 : 1); +} - if (!result) - return 0; +/* Find the first entry in sortlist which matches addr. Return nsort + * if none of them match. + */ +static int get6_address_index(const struct ares_in6_addr *addr, + const struct apattern *sortlist, + int nsort) +{ + int i; - if (family == AF_INET) - { - hostent.h_length = (int)sizeof(struct in_addr); - addrs[0] = (char *)∈ - } - else if (family == AF_INET6) - { - hostent.h_length = (int)sizeof(struct ares_in6_addr); - addrs[0] = (char *)&in6; - } - /* Duplicate the name, to avoid a constness violation. */ - hostent.h_name = ares_strdup(name); - if (!hostent.h_name) + for (i = 0; i < nsort; i++) { - callback(arg, ARES_ENOMEM, 0, NULL); - return 1; + if (sortlist[i].family != AF_INET6) + continue; + if (!ares__bitncmp(addr, &sortlist[i].addrV6, sortlist[i].mask.bits)) + break; } + return i; +} - /* Fill in the rest of the host structure and terminate the query. */ - addrs[1] = NULL; - hostent.h_aliases = aliases; - hostent.h_addrtype = aresx_sitoss(family); - hostent.h_addr_list = addrs; - callback(arg, ARES_SUCCESS, 0, &hostent); - ares_free((char *)(hostent.h_name)); - return 1; -} -/* This is an API method */ +static int file_lookup(const char *name, int family, struct hostent **host); + +/* I really have no idea why this is exposed as a public function, but since + * it is, we can't kill this legacy function. */ int ares_gethostbyname_file(ares_channel channel, const char *name, int family, struct hostent **host) { @@ -431,104 +336,3 @@ static int file_lookup(const char *name, int family, struct hostent **host) return status; } -static void sort_addresses(struct hostent *host, - const struct apattern *sortlist, int nsort) -{ - struct in_addr a1, a2; - int i1, i2, ind1, ind2; - - /* This is a simple insertion sort, not optimized at all. i1 walks - * through the address list, with the loop invariant that everything - * to the left of i1 is sorted. In the loop body, the value at i1 is moved - * back through the list (via i2) until it is in sorted order. - */ - for (i1 = 0; host->h_addr_list[i1]; i1++) - { - memcpy(&a1, host->h_addr_list[i1], sizeof(struct in_addr)); - ind1 = get_address_index(&a1, sortlist, nsort); - for (i2 = i1 - 1; i2 >= 0; i2--) - { - memcpy(&a2, host->h_addr_list[i2], sizeof(struct in_addr)); - ind2 = get_address_index(&a2, sortlist, nsort); - if (ind2 <= ind1) - break; - memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct in_addr)); - } - memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct in_addr)); - } -} - -/* Find the first entry in sortlist which matches addr. Return nsort - * if none of them match. - */ -static int get_address_index(const struct in_addr *addr, - const struct apattern *sortlist, - int nsort) -{ - int i; - - for (i = 0; i < nsort; i++) - { - if (sortlist[i].family != AF_INET) - continue; - if (sortlist[i].type == PATTERN_MASK) - { - if ((addr->s_addr & sortlist[i].mask.addr4.s_addr) - == sortlist[i].addrV4.s_addr) - break; - } - else - { - if (!ares__bitncmp(&addr->s_addr, &sortlist[i].addrV4.s_addr, - sortlist[i].mask.bits)) - break; - } - } - return i; -} - -static void sort6_addresses(struct hostent *host, - const struct apattern *sortlist, int nsort) -{ - struct ares_in6_addr a1, a2; - int i1, i2, ind1, ind2; - - /* This is a simple insertion sort, not optimized at all. i1 walks - * through the address list, with the loop invariant that everything - * to the left of i1 is sorted. In the loop body, the value at i1 is moved - * back through the list (via i2) until it is in sorted order. - */ - for (i1 = 0; host->h_addr_list[i1]; i1++) - { - memcpy(&a1, host->h_addr_list[i1], sizeof(struct ares_in6_addr)); - ind1 = get6_address_index(&a1, sortlist, nsort); - for (i2 = i1 - 1; i2 >= 0; i2--) - { - memcpy(&a2, host->h_addr_list[i2], sizeof(struct ares_in6_addr)); - ind2 = get6_address_index(&a2, sortlist, nsort); - if (ind2 <= ind1) - break; - memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct ares_in6_addr)); - } - memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct ares_in6_addr)); - } -} - -/* Find the first entry in sortlist which matches addr. Return nsort - * if none of them match. - */ -static int get6_address_index(const struct ares_in6_addr *addr, - const struct apattern *sortlist, - int nsort) -{ - int i; - - for (i = 0; i < nsort; i++) - { - if (sortlist[i].family != AF_INET6) - continue; - if (!ares__bitncmp(addr, &sortlist[i].addrV6, sortlist[i].mask.bits)) - break; - } - return i; -} diff --git a/deps/cares/src/lib/ares_init.c b/deps/cares/src/lib/ares_init.c index 0917dce2fe3f8b..de5d86c9aee843 100644 --- a/deps/cares/src/lib/ares_init.c +++ b/deps/cares/src/lib/ares_init.c @@ -1470,7 +1470,7 @@ static int init_by_resolv_conf(ares_channel channel) struct __res_state *res = 0; int count4, count6; __STATEEXTIPV6 *v6; - struct server_state *pserver + struct server_state *pserver; if (0 == res) { int rc = res_init(); while (rc == -1 && h_errno == TRY_AGAIN) { diff --git a/deps/cares/src/lib/ares_parse_a_reply.c b/deps/cares/src/lib/ares_parse_a_reply.c index b08ac8760ff9e0..ee903c7510e122 100644 --- a/deps/cares/src/lib/ares_parse_a_reply.c +++ b/deps/cares/src/lib/ares_parse_a_reply.c @@ -42,168 +42,49 @@ #include "ares_private.h" int ares_parse_a_reply(const unsigned char *abuf, int alen, - struct hostent **host, - struct ares_addrttl *addrttls, int *naddrttls) + struct hostent **host, struct ares_addrttl *addrttls, + int *naddrttls) { struct ares_addrinfo ai; - struct ares_addrinfo_node *next; - struct ares_addrinfo_cname *next_cname; - char **aliases = NULL; char *question_hostname = NULL; - struct hostent *hostent = NULL; - struct in_addr *addrs = NULL; - int naliases = 0, naddrs = 0, alias = 0, i; - int cname_ttl = INT_MAX; int status; + int req_naddrttls = 0; - memset(&ai, 0, sizeof(ai)); - - status = ares__parse_into_addrinfo2(abuf, alen, &question_hostname, &ai); - if (status != ARES_SUCCESS) - { - ares_free(question_hostname); - - if (naddrttls) - { - *naddrttls = 0; - } - - return status; - } - - hostent = ares_malloc(sizeof(struct hostent)); - if (!hostent) - { - goto enomem; - } - - next = ai.nodes; - while (next) - { - if (next->ai_family == AF_INET) - { - ++naddrs; - } - next = next->ai_next; - } - - next_cname = ai.cnames; - while (next_cname) - { - if(next_cname->alias) - ++naliases; - next_cname = next_cname->next; - } - - aliases = ares_malloc((naliases + 1) * sizeof(char *)); - if (!aliases) - { - goto enomem; - } - - if (naliases) - { - next_cname = ai.cnames; - while (next_cname) - { - if(next_cname->alias) - aliases[alias++] = ares_strdup(next_cname->alias); - if(next_cname->ttl < cname_ttl) - cname_ttl = next_cname->ttl; - next_cname = next_cname->next; - } - } - - aliases[alias] = NULL; - - hostent->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *)); - if (!hostent->h_addr_list) + if (naddrttls) { - goto enomem; + req_naddrttls = *naddrttls; + *naddrttls = 0; } - for (i = 0; i < naddrs + 1; ++i) - { - hostent->h_addr_list[i] = NULL; - } + memset(&ai, 0, sizeof(ai)); - if (ai.cnames) + status = ares__parse_into_addrinfo(abuf, alen, 0, 0, &ai); + if (status != ARES_SUCCESS && status != ARES_ENODATA) { - hostent->h_name = ares_strdup(ai.cnames->name); - ares_free(question_hostname); + goto fail; } - else - { - hostent->h_name = question_hostname; - } - - hostent->h_aliases = aliases; - hostent->h_addrtype = AF_INET; - hostent->h_length = sizeof(struct in_addr); - if (naddrs) + if (host != NULL) { - addrs = ares_malloc(naddrs * sizeof(struct in_addr)); - if (!addrs) - { - goto enomem; - } - - i = 0; - next = ai.nodes; - while (next) + status = ares__addrinfo2hostent(&ai, AF_INET, host); + if (status != ARES_SUCCESS && status != ARES_ENODATA) { - if (next->ai_family == AF_INET) - { - hostent->h_addr_list[i] = (char *)&addrs[i]; - memcpy(hostent->h_addr_list[i], - &(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr), - sizeof(struct in_addr)); - if (naddrttls && i < *naddrttls) - { - if (next->ai_ttl > cname_ttl) - addrttls[i].ttl = cname_ttl; - else - addrttls[i].ttl = next->ai_ttl; - - memcpy(&addrttls[i].ipaddr, - &(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr), - sizeof(struct in_addr)); - } - ++i; - } - next = next->ai_next; - } - if (i == 0) - { - ares_free(addrs); + goto fail; } } - if (host) - { - *host = hostent; - } - else - { - ares_free_hostent(hostent); - } + if (addrttls != NULL && req_naddrttls) + { + ares__addrinfo2addrttl(&ai, AF_INET, req_naddrttls, addrttls, + NULL, naddrttls); + } - if (naddrttls) - { - /* Truncated to at most *naddrttls entries */ - *naddrttls = (naddrs > *naddrttls)?*naddrttls:naddrs; - } - - ares__freeaddrinfo_cnames(ai.cnames); - ares__freeaddrinfo_nodes(ai.nodes); - return ARES_SUCCESS; -enomem: - ares_free(aliases); - ares_free(hostent); +fail: ares__freeaddrinfo_cnames(ai.cnames); ares__freeaddrinfo_nodes(ai.nodes); + ares_free(ai.name); ares_free(question_hostname); - return ARES_ENOMEM; + + return status; } diff --git a/deps/cares/src/lib/ares_parse_aaaa_reply.c b/deps/cares/src/lib/ares_parse_aaaa_reply.c index 6f4744a8dc494a..091065d31761a4 100644 --- a/deps/cares/src/lib/ares_parse_aaaa_reply.c +++ b/deps/cares/src/lib/ares_parse_aaaa_reply.c @@ -48,165 +48,45 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int alen, int *naddrttls) { struct ares_addrinfo ai; - struct ares_addrinfo_node *next; - struct ares_addrinfo_cname *next_cname; - char **aliases = NULL; char *question_hostname = NULL; - struct hostent *hostent = NULL; - struct ares_in6_addr *addrs = NULL; - int naliases = 0, naddrs = 0, alias = 0, i; - int cname_ttl = INT_MAX; int status; + int req_naddrttls = 0; - memset(&ai, 0, sizeof(ai)); - - status = ares__parse_into_addrinfo2(abuf, alen, &question_hostname, &ai); - if (status != ARES_SUCCESS) - { - ares_free(question_hostname); - - if (naddrttls) - { - *naddrttls = 0; - } - - return status; - } - - hostent = ares_malloc(sizeof(struct hostent)); - if (!hostent) - { - goto enomem; - } - - next = ai.nodes; - while (next) - { - if(next->ai_family == AF_INET6) - { - ++naddrs; - } - next = next->ai_next; - } - - next_cname = ai.cnames; - while (next_cname) - { - if(next_cname->alias) - ++naliases; - next_cname = next_cname->next; - } - - aliases = ares_malloc((naliases + 1) * sizeof(char *)); - if (!aliases) - { - goto enomem; - } - - if (naliases) - { - next_cname = ai.cnames; - while (next_cname) - { - if(next_cname->alias) - aliases[alias++] = ares_strdup(next_cname->alias); - if(next_cname->ttl < cname_ttl) - cname_ttl = next_cname->ttl; - next_cname = next_cname->next; - } - } - - aliases[alias] = NULL; - - hostent->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *)); - if (!hostent->h_addr_list) + if (naddrttls) { - goto enomem; + req_naddrttls = *naddrttls; + *naddrttls = 0; } - for (i = 0; i < naddrs + 1; ++i) - { - hostent->h_addr_list[i] = NULL; - } + memset(&ai, 0, sizeof(ai)); - if (ai.cnames) - { - hostent->h_name = ares_strdup(ai.cnames->name); - ares_free(question_hostname); - } - else + status = ares__parse_into_addrinfo(abuf, alen, 0, 0, &ai); + if (status != ARES_SUCCESS && status != ARES_ENODATA) { - hostent->h_name = question_hostname; + goto fail; } - hostent->h_aliases = aliases; - hostent->h_addrtype = AF_INET6; - hostent->h_length = sizeof(struct ares_in6_addr); - - if (naddrs) + if (host != NULL) { - addrs = ares_malloc(naddrs * sizeof(struct ares_in6_addr)); - if (!addrs) - { - goto enomem; - } - - i = 0; - next = ai.nodes; - while (next) - { - if(next->ai_family == AF_INET6) - { - hostent->h_addr_list[i] = (char*)&addrs[i]; - memcpy(hostent->h_addr_list[i], - &(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr), - sizeof(struct ares_in6_addr)); - if (naddrttls && i < *naddrttls) - { - if(next->ai_ttl > cname_ttl) - addrttls[i].ttl = cname_ttl; - else - addrttls[i].ttl = next->ai_ttl; - - memcpy(&addrttls[i].ip6addr, - &(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr), - sizeof(struct ares_in6_addr)); - } - ++i; - } - next = next->ai_next; - } - - if (i == 0) + status = ares__addrinfo2hostent(&ai, AF_INET6, host); + if (status != ARES_SUCCESS && status != ARES_ENODATA) { - ares_free(addrs); + goto fail; } } - if (host) - { - *host = hostent; - } - else - { - ares_free_hostent(hostent); - } + if (addrttls != NULL && req_naddrttls) + { + ares__addrinfo2addrttl(&ai, AF_INET6, req_naddrttls, NULL, + addrttls, naddrttls); + } - if (naddrttls) - { - /* Truncated to at most *naddrttls entries */ - *naddrttls = (naddrs > *naddrttls)?*naddrttls:naddrs; - } - - ares__freeaddrinfo_cnames(ai.cnames); - ares__freeaddrinfo_nodes(ai.nodes); - return ARES_SUCCESS; - -enomem: - ares_free(aliases); - ares_free(hostent); +fail: ares__freeaddrinfo_cnames(ai.cnames); ares__freeaddrinfo_nodes(ai.nodes); ares_free(question_hostname); - return ARES_ENOMEM; + ares_free(ai.name); + + return status; } + diff --git a/deps/cares/src/lib/ares_parse_uri_reply.c b/deps/cares/src/lib/ares_parse_uri_reply.c new file mode 100644 index 00000000000000..d79b5c4d85ce5b --- /dev/null +++ b/deps/cares/src/lib/ares_parse_uri_reply.c @@ -0,0 +1,184 @@ + +/* Copyright 1998 by the Massachusetts Institute of Technology. + * Copyright (C) 2009 by Jakub Hrozek + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif + +#include "ares_nameser.h" + +#include "ares.h" +#include "ares_dns.h" +#include "ares_data.h" +#include "ares_private.h" + +/* AIX portability check */ +#ifndef T_URI +# define T_URI 256 /* uri selection */ +#endif + +int +ares_parse_uri_reply (const unsigned char *abuf, int alen, + struct ares_uri_reply **uri_out) +{ + unsigned int qdcount, ancount, i; + const unsigned char *aptr, *vptr; + int status, rr_type, rr_class, rr_len, rr_ttl; + long len; + char *uri_str = NULL, *rr_name = NULL; + struct ares_uri_reply *uri_head = NULL; + struct ares_uri_reply *uri_last = NULL; + struct ares_uri_reply *uri_curr; + + /* Set *uri_out to NULL for all failure cases. */ + *uri_out = NULL; + + /* Give up if abuf doesn't have room for a header. */ + if (alen < HFIXEDSZ){ + return ARES_EBADRESP; + } + + /* Fetch the question and answer count from the header. */ + qdcount = DNS_HEADER_QDCOUNT (abuf); + ancount = DNS_HEADER_ANCOUNT (abuf); + if (qdcount != 1) { + return ARES_EBADRESP; + } + if (ancount == 0) { + return ARES_ENODATA; + } + /* Expand the name from the question, and skip past the question. */ + aptr = abuf + HFIXEDSZ; + + status = ares_expand_name (aptr, abuf, alen, &uri_str, &len); + if (status != ARES_SUCCESS){ + return status; + } + if (aptr + len + QFIXEDSZ > abuf + alen) + { + ares_free (uri_str); + return ARES_EBADRESP; + } + aptr += len + QFIXEDSZ; + + /* Examine each answer resource record (RR) in turn. */ + for (i = 0; i < ancount; i++) + { + /* Decode the RR up to the data field. */ + status = ares_expand_name (aptr, abuf, alen, &rr_name, &len); + if (status != ARES_SUCCESS) + { + break; + } + aptr += len; + if (aptr + RRFIXEDSZ > abuf + alen) + { + status = ARES_EBADRESP; + break; + } + + rr_type = DNS_RR_TYPE (aptr); + rr_class = DNS_RR_CLASS (aptr); + rr_ttl = DNS_RR_TTL(aptr); + rr_len = DNS_RR_LEN (aptr); + aptr += RRFIXEDSZ; + + if (aptr + rr_len > abuf + alen) + { + status = ARES_EBADRESP; + break; + } + + /* Check if we are really looking at a URI record */ + if (rr_class == C_IN && rr_type == T_URI) + { + /* parse the URI record itself */ + if (rr_len < 5) + { + status = ARES_EBADRESP; + break; + } + /* Allocate storage for this URI answer appending it to the list */ + uri_curr = ares_malloc_data(ARES_DATATYPE_URI_REPLY); + if (!uri_curr) + { + status = ARES_ENOMEM; + break; + } + if (uri_last) + { + uri_last->next = uri_curr; + } + else + { + uri_head = uri_curr; + } + uri_last = uri_curr; + + vptr = aptr; + uri_curr->priority = DNS__16BIT(vptr); + vptr += sizeof(unsigned short); + uri_curr->weight = DNS__16BIT(vptr); + vptr += sizeof(unsigned short); + uri_curr->uri = (char *)ares_malloc(rr_len-3); + if (!uri_curr->uri) + { + status = ARES_ENOMEM; + break; + } + uri_curr->uri = strncpy(uri_curr->uri, (const char *)vptr, rr_len-4); + uri_curr->uri[rr_len-4]='\0'; + uri_curr->ttl = rr_ttl; + + if (status != ARES_SUCCESS) + break; + } + + /* Don't lose memory in the next iteration */ + ares_free (rr_name); + rr_name = NULL; + + /* Move on to the next record */ + aptr += rr_len; + } + + if (uri_str) + ares_free (uri_str); + if (rr_name) + ares_free (rr_name); + + /* clean up on error */ + if (status != ARES_SUCCESS) + { + if (uri_head) + ares_free_data (uri_head); + return status; + } + + /* everything looks fine, return the data */ + *uri_out = uri_head; + + return ARES_SUCCESS; +} diff --git a/deps/cares/src/lib/ares_private.h b/deps/cares/src/lib/ares_private.h index 09f65062f0228a..60d69e08b79d5c 100644 --- a/deps/cares/src/lib/ares_private.h +++ b/deps/cares/src/lib/ares_private.h @@ -85,6 +85,11 @@ W32_FUNC const char *_w32_GetHostsFile (void); #define PATH_HOSTS "InetDBase:Hosts" +#elif defined(__HAIKU__) + +#define PATH_RESOLV_CONF "/system/settings/network/resolv.conf" +#define PATH_HOSTS "/system/settings/network/hosts" + #else #define PATH_RESOLV_CONF "/etc/resolv.conf" @@ -387,17 +392,26 @@ void ares__freeaddrinfo_cnames(struct ares_addrinfo_cname *ai_cname); struct ares_addrinfo_cname *ares__append_addrinfo_cname(struct ares_addrinfo_cname **ai_cname); +int ares_append_ai_node(int aftype, unsigned short port, int ttl, + const void *adata, + struct ares_addrinfo_node **nodes); + void ares__addrinfo_cat_cnames(struct ares_addrinfo_cname **head, struct ares_addrinfo_cname *tail); int ares__parse_into_addrinfo(const unsigned char *abuf, - int alen, + int alen, int cname_only_is_enodata, + unsigned short port, struct ares_addrinfo *ai); -int ares__parse_into_addrinfo2(const unsigned char *abuf, - int alen, - char **question_hostname, - struct ares_addrinfo *ai); +int ares__addrinfo2hostent(const struct ares_addrinfo *ai, int family, + struct hostent **host); +int ares__addrinfo2addrttl(const struct ares_addrinfo *ai, int family, + int req_naddrttls, struct ares_addrttl *addrttls, + struct ares_addr6ttl *addr6ttls, int *naddrttls); +int ares__addrinfo_localhost(const char *name, unsigned short port, + const struct ares_addrinfo_hints *hints, + struct ares_addrinfo *ai); #if 0 /* Not used */ long ares__tvdiff(struct timeval t1, struct timeval t2); diff --git a/deps/cares/src/lib/ares_strdup.c b/deps/cares/src/lib/ares_strdup.c index 0c3dcffc30d6e6..39fc8692e75ea0 100644 --- a/deps/cares/src/lib/ares_strdup.c +++ b/deps/cares/src/lib/ares_strdup.c @@ -22,28 +22,21 @@ char *ares_strdup(const char *s1) { -#ifdef HAVE_STRDUP - if (ares_malloc == malloc) - return strdup(s1); - else -#endif - { - size_t sz; - char * s2; + size_t sz; + char * s2; - if(s1) { - sz = strlen(s1); - if(sz < (size_t)-1) { - sz++; - if(sz < ((size_t)-1) / sizeof(char)) { - s2 = ares_malloc(sz * sizeof(char)); - if(s2) { - memcpy(s2, s1, sz * sizeof(char)); - return s2; - } + if(s1) { + sz = strlen(s1); + if(sz < (size_t)-1) { + sz++; + if(sz < ((size_t)-1)) { + s2 = ares_malloc(sz); + if(s2) { + memcpy(s2, s1, sz); + return s2; } } } - return (char *)NULL; } + return (char *)NULL; } diff --git a/deps/cares/src/lib/cares.rc b/deps/cares/src/lib/cares.rc new file mode 100644 index 00000000000000..6360834deafd86 --- /dev/null +++ b/deps/cares/src/lib/cares.rc @@ -0,0 +1,65 @@ + +/* Copyright (C) 2009-2021 by Daniel Stenberg + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include +#include "../../include/ares_version.h" + +LANGUAGE 0x09,0x01 + +#define RC_VERSION ARES_VERSION_MAJOR, ARES_VERSION_MINOR, ARES_VERSION_PATCH, 0 + +VS_VERSION_INFO VERSIONINFO + FILEVERSION RC_VERSION + PRODUCTVERSION RC_VERSION + FILEFLAGSMASK 0x3fL +#if defined(DEBUGBUILD) || defined(_DEBUG) + FILEFLAGS 1 +#else + FILEFLAGS 0 +#endif + FILEOS VOS__WINDOWS32 + FILETYPE VFT_DLL + FILESUBTYPE 0x0L + +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "The c-ares library, https://c-ares.org/\0" +#if defined(DEBUGBUILD) || defined(_DEBUG) + VALUE "FileDescription", "c-ares Debug Shared Library\0" + VALUE "FileVersion", ARES_VERSION_STR "\0" + VALUE "InternalName", "c-ares\0" + VALUE "OriginalFilename", "caresd.dll\0" +#else + VALUE "FileDescription", "c-ares Shared Library\0" + VALUE "FileVersion", ARES_VERSION_STR "\0" + VALUE "InternalName", "c-ares\0" + VALUE "OriginalFilename", "cares.dll\0" +#endif + VALUE "ProductName", "The c-ares library\0" + VALUE "ProductVersion", ARES_VERSION_STR "\0" + VALUE "LegalCopyright", "� " ARES_COPYRIGHT "\0" + VALUE "License", "https://c-ares.org/license.html\0" + END + END + + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END diff --git a/deps/cares/src/lib/config-dos.h b/deps/cares/src/lib/config-dos.h new file mode 100644 index 00000000000000..b241d69a5c6660 --- /dev/null +++ b/deps/cares/src/lib/config-dos.h @@ -0,0 +1,115 @@ +#ifndef HEADER_CONFIG_DOS_H +#define HEADER_CONFIG_DOS_H + + +/* ================================================================ */ +/* ares/config-dos.h - Hand crafted config file for DOS */ +/* ================================================================ */ + +#define PACKAGE "c-ares" + +#define HAVE_ERRNO_H 1 +#define HAVE_GETENV 1 +#define HAVE_GETTIMEOFDAY 1 +#define HAVE_IOCTLSOCKET 1 +#define HAVE_IOCTLSOCKET_FIONBIO 1 +#define HAVE_LIMITS_H 1 +#define HAVE_NET_IF_H 1 +#define HAVE_RECV 1 +#define HAVE_RECVFROM 1 +#define HAVE_SEND 1 +#define HAVE_STRDUP 1 +#define HAVE_STRICMP 1 +#define HAVE_STRUCT_IN6_ADDR 1 +#define HAVE_STRUCT_TIMEVAL 1 +#define HAVE_SYS_IOCTL_H 1 +#define HAVE_SYS_SOCKET_H 1 +#define HAVE_SYS_STAT_H 1 +#define HAVE_SYS_TYPES_H 1 +#define HAVE_TIME_H 1 +#define HAVE_UNISTD_H 1 +#define HAVE_WRITEV 1 + +#define NEED_MALLOC_H 1 + +#define RETSIGTYPE void +#define TIME_WITH_SYS_TIME 1 + +/* Qualifiers for send(), recv(), recvfrom() and getnameinfo(). */ + +#define SEND_TYPE_ARG1 int +#define SEND_QUAL_ARG2 const +#define SEND_TYPE_ARG2 void * +#define SEND_TYPE_ARG3 int +#define SEND_TYPE_ARG4 int +#define SEND_TYPE_RETV int + +#define RECV_TYPE_ARG1 int +#define RECV_TYPE_ARG2 void * +#define RECV_TYPE_ARG3 int +#define RECV_TYPE_ARG4 int +#define RECV_TYPE_RETV int + +#define RECVFROM_TYPE_ARG1 int +#define RECVFROM_TYPE_ARG2 void +#define RECVFROM_TYPE_ARG3 int +#define RECVFROM_TYPE_ARG4 int +#define RECVFROM_TYPE_ARG5 struct sockaddr +#define RECVFROM_TYPE_ARG6 int +#define RECVFROM_TYPE_RETV int +#define RECVFROM_TYPE_ARG2_IS_VOID 1 + +#define BSD + +/* Target HAVE_x section */ + +#if defined(DJGPP) + #undef _SSIZE_T + #include /* For 'ssize_t' */ + + #define HAVE_STRCASECMP 1 + #define HAVE_STRNCASECMP 1 + #define HAVE_SYS_TIME_H 1 + #define HAVE_VARIADIC_MACROS_GCC 1 + + /* Because djgpp <= 2.03 doesn't have snprintf() etc. */ + #if (DJGPP_MINOR < 4) + #define _MPRINTF_REPLACE + #endif + +#elif defined(__WATCOMC__) + #define HAVE_STRCASECMP 1 + +#elif defined(__HIGHC__) + #define HAVE_SYS_TIME_H 1 + #define strerror(e) strerror_s_((e)) +#endif + +#ifdef WATT32 + #define HAVE_AF_INET6 1 + #define HAVE_ARPA_INET_H 1 + #define HAVE_ARPA_NAMESER_H 1 + #define HAVE_CLOSE_S 1 + #define HAVE_GETHOSTNAME 1 + #define HAVE_NETDB_H 1 + #define HAVE_NETINET_IN_H 1 + #define HAVE_NETINET_TCP_H 1 + #define HAVE_PF_INET6 1 + #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1 + #define HAVE_STRUCT_ADDRINFO 1 + #define HAVE_STRUCT_IN6_ADDR 1 + #define HAVE_STRUCT_SOCKADDR_IN6 1 + #define HAVE_SYS_SOCKET_H 1 + #define HAVE_SYS_UIO_H 1 + #define NS_INADDRSZ 4 + #define HAVE_STRUCT_SOCKADDR_IN6 1 + + #define HAVE_GETSERVBYPORT_R 1 + #define GETSERVBYPORT_R_ARGS 5 +#endif + +#undef word +#undef byte + +#endif /* HEADER_CONFIG_DOS_H */ + diff --git a/deps/cares/src/tools/CMakeLists.txt b/deps/cares/src/tools/CMakeLists.txt new file mode 100644 index 00000000000000..0c44216fcc4efb --- /dev/null +++ b/deps/cares/src/tools/CMakeLists.txt @@ -0,0 +1,55 @@ +IF (CARES_BUILD_TOOLS) + # Transform Makefile.inc + transform_makefile_inc("Makefile.inc" "${PROJECT_BINARY_DIR}/src/tools/Makefile.inc.cmake") + include(${PROJECT_BINARY_DIR}/src/tools/Makefile.inc.cmake) + + # Build ahost + ADD_EXECUTABLE (ahost ahost.c ${SAMPLESOURCES}) + TARGET_INCLUDE_DIRECTORIES (ahost + PUBLIC "$" + "$" + "$" + "$" + "$" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" + ) + TARGET_COMPILE_DEFINITIONS (ahost PRIVATE HAVE_CONFIG_H=1) + TARGET_LINK_LIBRARIES (ahost PRIVATE ${PROJECT_NAME}) + IF (CARES_INSTALL) + INSTALL (TARGETS ahost COMPONENT Tools ${TARGETS_INST_DEST}) + ENDIF () + + + # Build adig + ADD_EXECUTABLE (adig adig.c ${SAMPLESOURCES}) + TARGET_INCLUDE_DIRECTORIES (adig + PUBLIC "$" + "$" + "$" + "$" + "$" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" + ) + TARGET_COMPILE_DEFINITIONS (adig PRIVATE HAVE_CONFIG_H=1) + TARGET_LINK_LIBRARIES (adig PRIVATE ${PROJECT_NAME}) + IF (CARES_INSTALL) + INSTALL (TARGETS adig COMPONENT Tools ${TARGETS_INST_DEST}) + ENDIF () + + + # Build acountry + ADD_EXECUTABLE (acountry acountry.c ${SAMPLESOURCES}) + TARGET_INCLUDE_DIRECTORIES (acountry + PUBLIC "$" + "$" + "$" + "$" + "$" + PRIVATE "${CMAKE_CURRENT_SOURCE_DIR}" + ) + TARGET_COMPILE_DEFINITIONS (acountry PRIVATE HAVE_CONFIG_H=1) + TARGET_LINK_LIBRARIES (acountry PRIVATE ${PROJECT_NAME}) + IF (CARES_INSTALL) + INSTALL (TARGETS acountry COMPONENT Tools ${TARGETS_INST_DEST}) + ENDIF () +ENDIF () diff --git a/deps/cares/src/tools/Makefile.am b/deps/cares/src/tools/Makefile.am new file mode 100644 index 00000000000000..c503723cad3cdf --- /dev/null +++ b/deps/cares/src/tools/Makefile.am @@ -0,0 +1,36 @@ +AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 +PROGS = ahost adig acountry + +EXTRA_DIST = CMakeLists.txt Makefile.inc + +noinst_PROGRAMS =$(PROGS) + +# Specify our include paths here, and do it relative to $(top_srcdir) and +# $(top_builddir), to ensure that these paths which belong to the library +# being currently built and tested are searched before the library which +# might possibly already be installed in the system. + +AM_CPPFLAGS = -I$(top_builddir)/include \ + -I$(top_builddir)/src/lib \ + -I$(top_srcdir)/include \ + -I$(top_srcdir)/src/lib + +if USE_CPPFLAG_CARES_STATICLIB +AM_CPPFLAGS += $(CPPFLAG_CARES_STATICLIB) +endif + +include Makefile.inc + +LDADD = $(top_builddir)/src/lib/libcares.la + +ahost_SOURCES = ahost.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +ahost_CFLAGS = $(AM_CFLAGS) +ahost_CPPFLAGS = $(AM_CPPFLAGS) + +adig_SOURCES = adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +adig_CFLAGS = $(AM_CFLAGS) +adig_CPPFLAGS = $(AM_CPPFLAGS) + +acountry_SOURCES = acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +acountry_CFLAGS = $(AM_CFLAGS) +acountry_CPPFLAGS = $(AM_CPPFLAGS) diff --git a/deps/cares/src/tools/Makefile.in b/deps/cares/src/tools/Makefile.in new file mode 100644 index 00000000000000..e665ac984b4c54 --- /dev/null +++ b/deps/cares/src/tools/Makefile.in @@ -0,0 +1,944 @@ +# Makefile.in generated by automake 1.16.5 from Makefile.am. +# @configure_input@ + +# Copyright (C) 1994-2021 Free Software Foundation, Inc. + +# This Makefile.in is free software; the Free Software Foundation +# gives unlimited permission to copy and/or distribute it, +# with or without modifications, as long as this notice is preserved. + +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY, to the extent permitted by law; without +# even the implied warranty of MERCHANTABILITY or FITNESS FOR A +# PARTICULAR PURPOSE. + +@SET_MAKE@ + +VPATH = @srcdir@ +am__is_gnu_make = { \ + if test -z '$(MAKELEVEL)'; then \ + false; \ + elif test -n '$(MAKE_HOST)'; then \ + true; \ + elif test -n '$(MAKE_VERSION)' && test -n '$(CURDIR)'; then \ + true; \ + else \ + false; \ + fi; \ +} +am__make_running_with_option = \ + case $${target_option-} in \ + ?) ;; \ + *) echo "am__make_running_with_option: internal error: invalid" \ + "target option '$${target_option-}' specified" >&2; \ + exit 1;; \ + esac; \ + has_opt=no; \ + sane_makeflags=$$MAKEFLAGS; \ + if $(am__is_gnu_make); then \ + sane_makeflags=$$MFLAGS; \ + else \ + case $$MAKEFLAGS in \ + *\\[\ \ ]*) \ + bs=\\; \ + sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \ + | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \ + esac; \ + fi; \ + skip_next=no; \ + strip_trailopt () \ + { \ + flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \ + }; \ + for flg in $$sane_makeflags; do \ + test $$skip_next = yes && { skip_next=no; continue; }; \ + case $$flg in \ + *=*|--*) continue;; \ + -*I) strip_trailopt 'I'; skip_next=yes;; \ + -*I?*) strip_trailopt 'I';; \ + -*O) strip_trailopt 'O'; skip_next=yes;; \ + -*O?*) strip_trailopt 'O';; \ + -*l) strip_trailopt 'l'; skip_next=yes;; \ + -*l?*) strip_trailopt 'l';; \ + -[dEDm]) skip_next=yes;; \ + -[JT]) skip_next=yes;; \ + esac; \ + case $$flg in \ + *$$target_option*) has_opt=yes; break;; \ + esac; \ + done; \ + test $$has_opt = yes +am__make_dryrun = (target_option=n; $(am__make_running_with_option)) +am__make_keepgoing = (target_option=k; $(am__make_running_with_option)) +pkgdatadir = $(datadir)/@PACKAGE@ +pkgincludedir = $(includedir)/@PACKAGE@ +pkglibdir = $(libdir)/@PACKAGE@ +pkglibexecdir = $(libexecdir)/@PACKAGE@ +am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd +install_sh_DATA = $(install_sh) -c -m 644 +install_sh_PROGRAM = $(install_sh) -c +install_sh_SCRIPT = $(install_sh) -c +INSTALL_HEADER = $(INSTALL_DATA) +transform = $(program_transform_name) +NORMAL_INSTALL = : +PRE_INSTALL = : +POST_INSTALL = : +NORMAL_UNINSTALL = : +PRE_UNINSTALL = : +POST_UNINSTALL = : +build_triplet = @build@ +host_triplet = @host@ +noinst_PROGRAMS = $(am__EXEEXT_1) +@USE_CPPFLAG_CARES_STATICLIB_TRUE@am__append_1 = $(CPPFLAG_CARES_STATICLIB) +subdir = src/tools +ACLOCAL_M4 = $(top_srcdir)/aclocal.m4 +am__aclocal_m4_deps = $(top_srcdir)/m4/ax_ac_append_to_file.m4 \ + $(top_srcdir)/m4/ax_ac_print_to_file.m4 \ + $(top_srcdir)/m4/ax_add_am_macro_static.m4 \ + $(top_srcdir)/m4/ax_am_macros_static.m4 \ + $(top_srcdir)/m4/ax_check_gnu_make.m4 \ + $(top_srcdir)/m4/ax_code_coverage.m4 \ + $(top_srcdir)/m4/ax_cxx_compile_stdcxx_11.m4 \ + $(top_srcdir)/m4/ax_file_escapes.m4 \ + $(top_srcdir)/m4/ax_require_defined.m4 \ + $(top_srcdir)/m4/cares-compilers.m4 \ + $(top_srcdir)/m4/cares-confopts.m4 \ + $(top_srcdir)/m4/cares-functions.m4 \ + $(top_srcdir)/m4/cares-reentrant.m4 \ + $(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \ + $(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \ + $(top_srcdir)/m4/lt~obsolete.m4 \ + $(top_srcdir)/m4/xc-am-iface.m4 \ + $(top_srcdir)/m4/xc-cc-check.m4 \ + $(top_srcdir)/m4/xc-lt-iface.m4 \ + $(top_srcdir)/m4/xc-translit.m4 \ + $(top_srcdir)/m4/xc-val-flgs.m4 \ + $(top_srcdir)/m4/zz40-xc-ovr.m4 $(top_srcdir)/acinclude.m4 \ + $(top_srcdir)/configure.ac +am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \ + $(ACLOCAL_M4) +DIST_COMMON = $(srcdir)/Makefile.am $(am__DIST_COMMON) +mkinstalldirs = $(install_sh) -d +CONFIG_HEADER = $(top_builddir)/src/lib/ares_config.h \ + $(top_builddir)/include/ares_build.h +CONFIG_CLEAN_FILES = +CONFIG_CLEAN_VPATH_FILES = +am__EXEEXT_1 = ahost$(EXEEXT) adig$(EXEEXT) acountry$(EXEEXT) +PROGRAMS = $(noinst_PROGRAMS) +am__dirstamp = $(am__leading_dot)dirstamp +am__objects_1 = acountry-ares_getopt.$(OBJEXT) \ + ../lib/acountry-ares_nowarn.$(OBJEXT) \ + ../lib/acountry-ares_strcasecmp.$(OBJEXT) +am__objects_2 = +am_acountry_OBJECTS = acountry-acountry.$(OBJEXT) $(am__objects_1) \ + $(am__objects_2) +acountry_OBJECTS = $(am_acountry_OBJECTS) +acountry_LDADD = $(LDADD) +acountry_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la +AM_V_lt = $(am__v_lt_@AM_V@) +am__v_lt_ = $(am__v_lt_@AM_DEFAULT_V@) +am__v_lt_0 = --silent +am__v_lt_1 = +acountry_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(acountry_CFLAGS) \ + $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am__objects_3 = adig-ares_getopt.$(OBJEXT) \ + ../lib/adig-ares_nowarn.$(OBJEXT) \ + ../lib/adig-ares_strcasecmp.$(OBJEXT) +am_adig_OBJECTS = adig-adig.$(OBJEXT) $(am__objects_3) \ + $(am__objects_2) +adig_OBJECTS = $(am_adig_OBJECTS) +adig_LDADD = $(LDADD) +adig_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la +adig_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(adig_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +am__objects_4 = ahost-ares_getopt.$(OBJEXT) \ + ../lib/ahost-ares_nowarn.$(OBJEXT) \ + ../lib/ahost-ares_strcasecmp.$(OBJEXT) +am_ahost_OBJECTS = ahost-ahost.$(OBJEXT) $(am__objects_4) \ + $(am__objects_2) +ahost_OBJECTS = $(am_ahost_OBJECTS) +ahost_LDADD = $(LDADD) +ahost_DEPENDENCIES = $(top_builddir)/src/lib/libcares.la +ahost_LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(ahost_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_P = $(am__v_P_@AM_V@) +am__v_P_ = $(am__v_P_@AM_DEFAULT_V@) +am__v_P_0 = false +am__v_P_1 = : +AM_V_GEN = $(am__v_GEN_@AM_V@) +am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@) +am__v_GEN_0 = @echo " GEN " $@; +am__v_GEN_1 = +AM_V_at = $(am__v_at_@AM_V@) +am__v_at_ = $(am__v_at_@AM_DEFAULT_V@) +am__v_at_0 = @ +am__v_at_1 = +DEFAULT_INCLUDES = +depcomp = $(SHELL) $(top_srcdir)/depcomp +am__maybe_remake_depfiles = depfiles +am__depfiles_remade = ../lib/$(DEPDIR)/acountry-ares_nowarn.Po \ + ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po \ + ../lib/$(DEPDIR)/adig-ares_nowarn.Po \ + ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po \ + ../lib/$(DEPDIR)/ahost-ares_nowarn.Po \ + ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po \ + ./$(DEPDIR)/acountry-acountry.Po \ + ./$(DEPDIR)/acountry-ares_getopt.Po ./$(DEPDIR)/adig-adig.Po \ + ./$(DEPDIR)/adig-ares_getopt.Po ./$(DEPDIR)/ahost-ahost.Po \ + ./$(DEPDIR)/ahost-ares_getopt.Po +am__mv = mv -f +COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \ + $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS) +LTCOMPILE = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=compile $(CC) $(DEFS) \ + $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \ + $(AM_CFLAGS) $(CFLAGS) +AM_V_CC = $(am__v_CC_@AM_V@) +am__v_CC_ = $(am__v_CC_@AM_DEFAULT_V@) +am__v_CC_0 = @echo " CC " $@; +am__v_CC_1 = +CCLD = $(CC) +LINK = $(LIBTOOL) $(AM_V_lt) --tag=CC $(AM_LIBTOOLFLAGS) \ + $(LIBTOOLFLAGS) --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \ + $(AM_LDFLAGS) $(LDFLAGS) -o $@ +AM_V_CCLD = $(am__v_CCLD_@AM_V@) +am__v_CCLD_ = $(am__v_CCLD_@AM_DEFAULT_V@) +am__v_CCLD_0 = @echo " CCLD " $@; +am__v_CCLD_1 = +SOURCES = $(acountry_SOURCES) $(adig_SOURCES) $(ahost_SOURCES) +DIST_SOURCES = $(acountry_SOURCES) $(adig_SOURCES) $(ahost_SOURCES) +am__can_run_installinfo = \ + case $$AM_UPDATE_INFO_DIR in \ + n|no|NO) false;; \ + *) (install-info --version) >/dev/null 2>&1;; \ + esac +am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP) +# Read a list of newline-separated strings from the standard input, +# and print each of them once, without duplicates. Input order is +# *not* preserved. +am__uniquify_input = $(AWK) '\ + BEGIN { nonempty = 0; } \ + { items[$$0] = 1; nonempty = 1; } \ + END { if (nonempty) { for (i in items) print i; }; } \ +' +# Make sure the list of sources is unique. This is necessary because, +# e.g., the same source file might be shared among _SOURCES variables +# for different programs/libraries. +am__define_uniq_tagged_files = \ + list='$(am__tagged_files)'; \ + unique=`for i in $$list; do \ + if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \ + done | $(am__uniquify_input)` +am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.inc \ + $(top_srcdir)/depcomp +DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST) +ACLOCAL = @ACLOCAL@ +AMTAR = @AMTAR@ +AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@ +AR = @AR@ +AS = @AS@ +AUTOCONF = @AUTOCONF@ +AUTOHEADER = @AUTOHEADER@ +AUTOMAKE = @AUTOMAKE@ +AWK = @AWK@ +BUILD_SUBDIRS = @BUILD_SUBDIRS@ +CARES_CFLAG_EXTRAS = @CARES_CFLAG_EXTRAS@ +CARES_PRIVATE_LIBS = @CARES_PRIVATE_LIBS@ +CARES_RANDOM_FILE = @CARES_RANDOM_FILE@ +CARES_VERSION_INFO = @CARES_VERSION_INFO@ +CC = @CC@ +CCDEPMODE = @CCDEPMODE@ +CFLAGS = @CFLAGS@ +CFLAG_CARES_SYMBOL_HIDING = @CFLAG_CARES_SYMBOL_HIDING@ +CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@ +CODE_COVERAGE_CPPFLAGS = @CODE_COVERAGE_CPPFLAGS@ +CODE_COVERAGE_CXXFLAGS = @CODE_COVERAGE_CXXFLAGS@ +CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@ +CODE_COVERAGE_LIBS = @CODE_COVERAGE_LIBS@ +CPP = @CPP@ +CPPFLAGS = @CPPFLAGS@ +CPPFLAG_CARES_STATICLIB = @CPPFLAG_CARES_STATICLIB@ +CSCOPE = @CSCOPE@ +CTAGS = @CTAGS@ +CXX = @CXX@ +CXXCPP = @CXXCPP@ +CXXDEPMODE = @CXXDEPMODE@ +CXXFLAGS = @CXXFLAGS@ +CYGPATH_W = @CYGPATH_W@ +DEFS = @DEFS@ +DEPDIR = @DEPDIR@ +DLLTOOL = @DLLTOOL@ +DSYMUTIL = @DSYMUTIL@ +DUMPBIN = @DUMPBIN@ +ECHO_C = @ECHO_C@ +ECHO_N = @ECHO_N@ +ECHO_T = @ECHO_T@ +EGREP = @EGREP@ +ETAGS = @ETAGS@ +EXEEXT = @EXEEXT@ +FGREP = @FGREP@ +GCOV = @GCOV@ +GENHTML = @GENHTML@ +GREP = @GREP@ +HAVE_CXX11 = @HAVE_CXX11@ +INSTALL = @INSTALL@ +INSTALL_DATA = @INSTALL_DATA@ +INSTALL_PROGRAM = @INSTALL_PROGRAM@ +INSTALL_SCRIPT = @INSTALL_SCRIPT@ +INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ +LCOV = @LCOV@ +LD = @LD@ +LDFLAGS = @LDFLAGS@ +LIBOBJS = @LIBOBJS@ +LIBS = @LIBS@ +LIBTOOL = @LIBTOOL@ +LIPO = @LIPO@ +LN_S = @LN_S@ +LTLIBOBJS = @LTLIBOBJS@ +LT_SYS_LIBRARY_PATH = @LT_SYS_LIBRARY_PATH@ +MAINT = @MAINT@ +MAKEINFO = @MAKEINFO@ +MANIFEST_TOOL = @MANIFEST_TOOL@ +MKDIR_P = @MKDIR_P@ +NM = @NM@ +NMEDIT = @NMEDIT@ +OBJDUMP = @OBJDUMP@ +OBJEXT = @OBJEXT@ +OTOOL = @OTOOL@ +OTOOL64 = @OTOOL64@ +PACKAGE = @PACKAGE@ +PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ +PACKAGE_NAME = @PACKAGE_NAME@ +PACKAGE_STRING = @PACKAGE_STRING@ +PACKAGE_TARNAME = @PACKAGE_TARNAME@ +PACKAGE_URL = @PACKAGE_URL@ +PACKAGE_VERSION = @PACKAGE_VERSION@ +PATH_SEPARATOR = @PATH_SEPARATOR@ +RANLIB = @RANLIB@ +SED = @SED@ +SET_MAKE = @SET_MAKE@ +SHELL = @SHELL@ +STRIP = @STRIP@ +VERSION = @VERSION@ +abs_builddir = @abs_builddir@ +abs_srcdir = @abs_srcdir@ +abs_top_builddir = @abs_top_builddir@ +abs_top_srcdir = @abs_top_srcdir@ +ac_ct_AR = @ac_ct_AR@ +ac_ct_CC = @ac_ct_CC@ +ac_ct_CXX = @ac_ct_CXX@ +ac_ct_DUMPBIN = @ac_ct_DUMPBIN@ +am__include = @am__include@ +am__leading_dot = @am__leading_dot@ +am__quote = @am__quote@ +am__tar = @am__tar@ +am__untar = @am__untar@ +bindir = @bindir@ +build = @build@ +build_alias = @build_alias@ +build_cpu = @build_cpu@ +build_os = @build_os@ +build_vendor = @build_vendor@ +builddir = @builddir@ +datadir = @datadir@ +datarootdir = @datarootdir@ +docdir = @docdir@ +dvidir = @dvidir@ +exec_prefix = @exec_prefix@ +host = @host@ +host_alias = @host_alias@ +host_cpu = @host_cpu@ +host_os = @host_os@ +host_vendor = @host_vendor@ +htmldir = @htmldir@ +ifGNUmake = @ifGNUmake@ +ifnGNUmake = @ifnGNUmake@ +includedir = @includedir@ +infodir = @infodir@ +install_sh = @install_sh@ +libdir = @libdir@ +libexecdir = @libexecdir@ +localedir = @localedir@ +localstatedir = @localstatedir@ +mandir = @mandir@ +mkdir_p = @mkdir_p@ +oldincludedir = @oldincludedir@ +pdfdir = @pdfdir@ +prefix = @prefix@ +program_transform_name = @program_transform_name@ +psdir = @psdir@ +runstatedir = @runstatedir@ +sbindir = @sbindir@ +sharedstatedir = @sharedstatedir@ +srcdir = @srcdir@ +subdirs = @subdirs@ +sysconfdir = @sysconfdir@ +target_alias = @target_alias@ +top_build_prefix = @top_build_prefix@ +top_builddir = @top_builddir@ +top_srcdir = @top_srcdir@ +AUTOMAKE_OPTIONS = foreign subdir-objects nostdinc 1.9.6 +PROGS = ahost adig acountry +EXTRA_DIST = CMakeLists.txt Makefile.inc + +# Specify our include paths here, and do it relative to $(top_srcdir) and +# $(top_builddir), to ensure that these paths which belong to the library +# being currently built and tested are searched before the library which +# might possibly already be installed in the system. +AM_CPPFLAGS = -I$(top_builddir)/include -I$(top_builddir)/src/lib \ + -I$(top_srcdir)/include -I$(top_srcdir)/src/lib \ + $(am__append_1) +SAMPLESOURCES = ares_getopt.c \ + ../lib/ares_nowarn.c \ + ../lib/ares_strcasecmp.c + +SAMPLEHEADERS = ares_getopt.h \ + ../lib/ares_nowarn.h \ + ../lib/ares_strcasecmp.h + +LDADD = $(top_builddir)/src/lib/libcares.la +ahost_SOURCES = ahost.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +ahost_CFLAGS = $(AM_CFLAGS) +ahost_CPPFLAGS = $(AM_CPPFLAGS) +adig_SOURCES = adig.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +adig_CFLAGS = $(AM_CFLAGS) +adig_CPPFLAGS = $(AM_CPPFLAGS) +acountry_SOURCES = acountry.c $(SAMPLESOURCES) $(SAMPLEHEADERS) +acountry_CFLAGS = $(AM_CFLAGS) +acountry_CPPFLAGS = $(AM_CPPFLAGS) +all: all-am + +.SUFFIXES: +.SUFFIXES: .c .lo .o .obj +$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(srcdir)/Makefile.inc $(am__configure_deps) + @for dep in $?; do \ + case '$(am__configure_deps)' in \ + *$$dep*) \ + ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \ + && { if test -f $@; then exit 0; else break; fi; }; \ + exit 1;; \ + esac; \ + done; \ + echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/tools/Makefile'; \ + $(am__cd) $(top_srcdir) && \ + $(AUTOMAKE) --foreign src/tools/Makefile +Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status + @case '$?' in \ + *config.status*) \ + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \ + *) \ + echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles)'; \ + cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__maybe_remake_depfiles);; \ + esac; +$(srcdir)/Makefile.inc $(am__empty): + +$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh + +$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps) + cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh +$(am__aclocal_m4_deps): + +clean-noinstPROGRAMS: + @list='$(noinst_PROGRAMS)'; test -n "$$list" || exit 0; \ + echo " rm -f" $$list; \ + rm -f $$list || exit $$?; \ + test -n "$(EXEEXT)" || exit 0; \ + list=`for p in $$list; do echo "$$p"; done | sed 's/$(EXEEXT)$$//'`; \ + echo " rm -f" $$list; \ + rm -f $$list +../lib/$(am__dirstamp): + @$(MKDIR_P) ../lib + @: > ../lib/$(am__dirstamp) +../lib/$(DEPDIR)/$(am__dirstamp): + @$(MKDIR_P) ../lib/$(DEPDIR) + @: > ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/acountry-ares_nowarn.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/acountry-ares_strcasecmp.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) + +acountry$(EXEEXT): $(acountry_OBJECTS) $(acountry_DEPENDENCIES) $(EXTRA_acountry_DEPENDENCIES) + @rm -f acountry$(EXEEXT) + $(AM_V_CCLD)$(acountry_LINK) $(acountry_OBJECTS) $(acountry_LDADD) $(LIBS) +../lib/adig-ares_nowarn.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/adig-ares_strcasecmp.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) + +adig$(EXEEXT): $(adig_OBJECTS) $(adig_DEPENDENCIES) $(EXTRA_adig_DEPENDENCIES) + @rm -f adig$(EXEEXT) + $(AM_V_CCLD)$(adig_LINK) $(adig_OBJECTS) $(adig_LDADD) $(LIBS) +../lib/ahost-ares_nowarn.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) +../lib/ahost-ares_strcasecmp.$(OBJEXT): ../lib/$(am__dirstamp) \ + ../lib/$(DEPDIR)/$(am__dirstamp) + +ahost$(EXEEXT): $(ahost_OBJECTS) $(ahost_DEPENDENCIES) $(EXTRA_ahost_DEPENDENCIES) + @rm -f ahost$(EXEEXT) + $(AM_V_CCLD)$(ahost_LINK) $(ahost_OBJECTS) $(ahost_LDADD) $(LIBS) + +mostlyclean-compile: + -rm -f *.$(OBJEXT) + -rm -f ../lib/*.$(OBJEXT) + +distclean-compile: + -rm -f *.tab.c + +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/acountry-ares_nowarn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/adig-ares_nowarn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/adig-ares_strcasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/ahost-ares_nowarn.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acountry-acountry.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/acountry-ares_getopt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adig-adig.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/adig-ares_getopt.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ahost-ahost.Po@am__quote@ # am--include-marker +@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/ahost-ares_getopt.Po@am__quote@ # am--include-marker + +$(am__depfiles_remade): + @$(MKDIR_P) $(@D) + @echo '# dummy' >$@-t && $(am__mv) $@-t $@ + +am--depfiles: $(am__depfiles_remade) + +.c.o: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.o$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ $< + +.c.obj: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.obj$$||'`;\ +@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ `$(CYGPATH_W) '$<'` &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(COMPILE) -c -o $@ `$(CYGPATH_W) '$<'` + +.c.lo: +@am__fastdepCC_TRUE@ $(AM_V_CC)depbase=`echo $@ | sed 's|[^/]*$$|$(DEPDIR)/&|;s|\.lo$$||'`;\ +@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $$depbase.Tpo -c -o $@ $< &&\ +@am__fastdepCC_TRUE@ $(am__mv) $$depbase.Tpo $$depbase.Plo +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(LTCOMPILE) -c -o $@ $< + +acountry-acountry.o: acountry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-acountry.o -MD -MP -MF $(DEPDIR)/acountry-acountry.Tpo -c -o acountry-acountry.o `test -f 'acountry.c' || echo '$(srcdir)/'`acountry.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-acountry.Tpo $(DEPDIR)/acountry-acountry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acountry.c' object='acountry-acountry.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-acountry.o `test -f 'acountry.c' || echo '$(srcdir)/'`acountry.c + +acountry-acountry.obj: acountry.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-acountry.obj -MD -MP -MF $(DEPDIR)/acountry-acountry.Tpo -c -o acountry-acountry.obj `if test -f 'acountry.c'; then $(CYGPATH_W) 'acountry.c'; else $(CYGPATH_W) '$(srcdir)/acountry.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-acountry.Tpo $(DEPDIR)/acountry-acountry.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='acountry.c' object='acountry-acountry.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-acountry.obj `if test -f 'acountry.c'; then $(CYGPATH_W) 'acountry.c'; else $(CYGPATH_W) '$(srcdir)/acountry.c'; fi` + +acountry-ares_getopt.o: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-ares_getopt.o -MD -MP -MF $(DEPDIR)/acountry-ares_getopt.Tpo -c -o acountry-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-ares_getopt.Tpo $(DEPDIR)/acountry-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='acountry-ares_getopt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c + +acountry-ares_getopt.obj: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT acountry-ares_getopt.obj -MD -MP -MF $(DEPDIR)/acountry-ares_getopt.Tpo -c -o acountry-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/acountry-ares_getopt.Tpo $(DEPDIR)/acountry-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='acountry-ares_getopt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o acountry-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` + +../lib/acountry-ares_nowarn.o: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_nowarn.o -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo -c -o ../lib/acountry-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo ../lib/$(DEPDIR)/acountry-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/acountry-ares_nowarn.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c + +../lib/acountry-ares_nowarn.obj: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_nowarn.obj -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo -c -o ../lib/acountry-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_nowarn.Tpo ../lib/$(DEPDIR)/acountry-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/acountry-ares_nowarn.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` + +../lib/acountry-ares_strcasecmp.o: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_strcasecmp.o -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo -c -o ../lib/acountry-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/acountry-ares_strcasecmp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c + +../lib/acountry-ares_strcasecmp.obj: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -MT ../lib/acountry-ares_strcasecmp.obj -MD -MP -MF ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo -c -o ../lib/acountry-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/acountry-ares_strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(acountry_CPPFLAGS) $(CPPFLAGS) $(acountry_CFLAGS) $(CFLAGS) -c -o ../lib/acountry-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` + +adig-adig.o: adig.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT adig-adig.o -MD -MP -MF $(DEPDIR)/adig-adig.Tpo -c -o adig-adig.o `test -f 'adig.c' || echo '$(srcdir)/'`adig.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adig-adig.Tpo $(DEPDIR)/adig-adig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='adig.c' object='adig-adig.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o adig-adig.o `test -f 'adig.c' || echo '$(srcdir)/'`adig.c + +adig-adig.obj: adig.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT adig-adig.obj -MD -MP -MF $(DEPDIR)/adig-adig.Tpo -c -o adig-adig.obj `if test -f 'adig.c'; then $(CYGPATH_W) 'adig.c'; else $(CYGPATH_W) '$(srcdir)/adig.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adig-adig.Tpo $(DEPDIR)/adig-adig.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='adig.c' object='adig-adig.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o adig-adig.obj `if test -f 'adig.c'; then $(CYGPATH_W) 'adig.c'; else $(CYGPATH_W) '$(srcdir)/adig.c'; fi` + +adig-ares_getopt.o: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT adig-ares_getopt.o -MD -MP -MF $(DEPDIR)/adig-ares_getopt.Tpo -c -o adig-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adig-ares_getopt.Tpo $(DEPDIR)/adig-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='adig-ares_getopt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o adig-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c + +adig-ares_getopt.obj: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT adig-ares_getopt.obj -MD -MP -MF $(DEPDIR)/adig-ares_getopt.Tpo -c -o adig-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/adig-ares_getopt.Tpo $(DEPDIR)/adig-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='adig-ares_getopt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o adig-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` + +../lib/adig-ares_nowarn.o: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT ../lib/adig-ares_nowarn.o -MD -MP -MF ../lib/$(DEPDIR)/adig-ares_nowarn.Tpo -c -o ../lib/adig-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/adig-ares_nowarn.Tpo ../lib/$(DEPDIR)/adig-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/adig-ares_nowarn.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o ../lib/adig-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c + +../lib/adig-ares_nowarn.obj: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT ../lib/adig-ares_nowarn.obj -MD -MP -MF ../lib/$(DEPDIR)/adig-ares_nowarn.Tpo -c -o ../lib/adig-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/adig-ares_nowarn.Tpo ../lib/$(DEPDIR)/adig-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/adig-ares_nowarn.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o ../lib/adig-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` + +../lib/adig-ares_strcasecmp.o: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT ../lib/adig-ares_strcasecmp.o -MD -MP -MF ../lib/$(DEPDIR)/adig-ares_strcasecmp.Tpo -c -o ../lib/adig-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/adig-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/adig-ares_strcasecmp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o ../lib/adig-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c + +../lib/adig-ares_strcasecmp.obj: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -MT ../lib/adig-ares_strcasecmp.obj -MD -MP -MF ../lib/$(DEPDIR)/adig-ares_strcasecmp.Tpo -c -o ../lib/adig-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/adig-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/adig-ares_strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(adig_CPPFLAGS) $(CPPFLAGS) $(adig_CFLAGS) $(CFLAGS) -c -o ../lib/adig-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` + +ahost-ahost.o: ahost.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ahost-ahost.o -MD -MP -MF $(DEPDIR)/ahost-ahost.Tpo -c -o ahost-ahost.o `test -f 'ahost.c' || echo '$(srcdir)/'`ahost.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ahost-ahost.Tpo $(DEPDIR)/ahost-ahost.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ahost.c' object='ahost-ahost.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ahost-ahost.o `test -f 'ahost.c' || echo '$(srcdir)/'`ahost.c + +ahost-ahost.obj: ahost.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ahost-ahost.obj -MD -MP -MF $(DEPDIR)/ahost-ahost.Tpo -c -o ahost-ahost.obj `if test -f 'ahost.c'; then $(CYGPATH_W) 'ahost.c'; else $(CYGPATH_W) '$(srcdir)/ahost.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ahost-ahost.Tpo $(DEPDIR)/ahost-ahost.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ahost.c' object='ahost-ahost.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ahost-ahost.obj `if test -f 'ahost.c'; then $(CYGPATH_W) 'ahost.c'; else $(CYGPATH_W) '$(srcdir)/ahost.c'; fi` + +ahost-ares_getopt.o: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ahost-ares_getopt.o -MD -MP -MF $(DEPDIR)/ahost-ares_getopt.Tpo -c -o ahost-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ahost-ares_getopt.Tpo $(DEPDIR)/ahost-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='ahost-ares_getopt.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ahost-ares_getopt.o `test -f 'ares_getopt.c' || echo '$(srcdir)/'`ares_getopt.c + +ahost-ares_getopt.obj: ares_getopt.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ahost-ares_getopt.obj -MD -MP -MF $(DEPDIR)/ahost-ares_getopt.Tpo -c -o ahost-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) $(DEPDIR)/ahost-ares_getopt.Tpo $(DEPDIR)/ahost-ares_getopt.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='ares_getopt.c' object='ahost-ares_getopt.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ahost-ares_getopt.obj `if test -f 'ares_getopt.c'; then $(CYGPATH_W) 'ares_getopt.c'; else $(CYGPATH_W) '$(srcdir)/ares_getopt.c'; fi` + +../lib/ahost-ares_nowarn.o: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ../lib/ahost-ares_nowarn.o -MD -MP -MF ../lib/$(DEPDIR)/ahost-ares_nowarn.Tpo -c -o ../lib/ahost-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/ahost-ares_nowarn.Tpo ../lib/$(DEPDIR)/ahost-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/ahost-ares_nowarn.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ../lib/ahost-ares_nowarn.o `test -f '../lib/ares_nowarn.c' || echo '$(srcdir)/'`../lib/ares_nowarn.c + +../lib/ahost-ares_nowarn.obj: ../lib/ares_nowarn.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ../lib/ahost-ares_nowarn.obj -MD -MP -MF ../lib/$(DEPDIR)/ahost-ares_nowarn.Tpo -c -o ../lib/ahost-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/ahost-ares_nowarn.Tpo ../lib/$(DEPDIR)/ahost-ares_nowarn.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_nowarn.c' object='../lib/ahost-ares_nowarn.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ../lib/ahost-ares_nowarn.obj `if test -f '../lib/ares_nowarn.c'; then $(CYGPATH_W) '../lib/ares_nowarn.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_nowarn.c'; fi` + +../lib/ahost-ares_strcasecmp.o: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ../lib/ahost-ares_strcasecmp.o -MD -MP -MF ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Tpo -c -o ../lib/ahost-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/ahost-ares_strcasecmp.o' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ../lib/ahost-ares_strcasecmp.o `test -f '../lib/ares_strcasecmp.c' || echo '$(srcdir)/'`../lib/ares_strcasecmp.c + +../lib/ahost-ares_strcasecmp.obj: ../lib/ares_strcasecmp.c +@am__fastdepCC_TRUE@ $(AM_V_CC)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -MT ../lib/ahost-ares_strcasecmp.obj -MD -MP -MF ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Tpo -c -o ../lib/ahost-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` +@am__fastdepCC_TRUE@ $(AM_V_at)$(am__mv) ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Tpo ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po +@AMDEP_TRUE@@am__fastdepCC_FALSE@ $(AM_V_CC)source='../lib/ares_strcasecmp.c' object='../lib/ahost-ares_strcasecmp.obj' libtool=no @AMDEPBACKSLASH@ +@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@ +@am__fastdepCC_FALSE@ $(AM_V_CC@am__nodep@)$(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(ahost_CPPFLAGS) $(CPPFLAGS) $(ahost_CFLAGS) $(CFLAGS) -c -o ../lib/ahost-ares_strcasecmp.obj `if test -f '../lib/ares_strcasecmp.c'; then $(CYGPATH_W) '../lib/ares_strcasecmp.c'; else $(CYGPATH_W) '$(srcdir)/../lib/ares_strcasecmp.c'; fi` + +mostlyclean-libtool: + -rm -f *.lo + +clean-libtool: + -rm -rf .libs _libs + +ID: $(am__tagged_files) + $(am__define_uniq_tagged_files); mkid -fID $$unique +tags: tags-am +TAGS: tags + +tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + set x; \ + here=`pwd`; \ + $(am__define_uniq_tagged_files); \ + shift; \ + if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \ + test -n "$$unique" || unique=$$empty_fix; \ + if test $$# -gt 0; then \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + "$$@" $$unique; \ + else \ + $(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \ + $$unique; \ + fi; \ + fi +ctags: ctags-am + +CTAGS: ctags +ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files) + $(am__define_uniq_tagged_files); \ + test -z "$(CTAGS_ARGS)$$unique" \ + || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \ + $$unique + +GTAGS: + here=`$(am__cd) $(top_builddir) && pwd` \ + && $(am__cd) $(top_srcdir) \ + && gtags -i $(GTAGS_ARGS) "$$here" +cscopelist: cscopelist-am + +cscopelist-am: $(am__tagged_files) + list='$(am__tagged_files)'; \ + case "$(srcdir)" in \ + [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \ + *) sdir=$(subdir)/$(srcdir) ;; \ + esac; \ + for i in $$list; do \ + if test -f "$$i"; then \ + echo "$(subdir)/$$i"; \ + else \ + echo "$$sdir/$$i"; \ + fi; \ + done >> $(top_builddir)/cscope.files + +distclean-tags: + -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags +distdir: $(BUILT_SOURCES) + $(MAKE) $(AM_MAKEFLAGS) distdir-am + +distdir-am: $(DISTFILES) + @srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \ + list='$(DISTFILES)'; \ + dist_files=`for file in $$list; do echo $$file; done | \ + sed -e "s|^$$srcdirstrip/||;t" \ + -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \ + case $$dist_files in \ + */*) $(MKDIR_P) `echo "$$dist_files" | \ + sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \ + sort -u` ;; \ + esac; \ + for file in $$dist_files; do \ + if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \ + if test -d $$d/$$file; then \ + dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \ + if test -d "$(distdir)/$$file"; then \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \ + cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \ + find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \ + fi; \ + cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \ + else \ + test -f "$(distdir)/$$file" \ + || cp -p $$d/$$file "$(distdir)/$$file" \ + || exit 1; \ + fi; \ + done +check-am: all-am +check: check-am +all-am: Makefile $(PROGRAMS) +installdirs: +install: install-am +install-exec: install-exec-am +install-data: install-data-am +uninstall: uninstall-am + +install-am: all-am + @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am + +installcheck: installcheck-am +install-strip: + if test -z '$(STRIP)'; then \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + install; \ + else \ + $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \ + install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \ + "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \ + fi +mostlyclean-generic: + +clean-generic: + +distclean-generic: + -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES) + -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES) + -rm -f ../lib/$(DEPDIR)/$(am__dirstamp) + -rm -f ../lib/$(am__dirstamp) + +maintainer-clean-generic: + @echo "This command is intended for maintainers to use" + @echo "it deletes files that may require special tools to rebuild." +clean: clean-am + +clean-am: clean-generic clean-libtool clean-noinstPROGRAMS \ + mostlyclean-am + +distclean: distclean-am + -rm -f ../lib/$(DEPDIR)/acountry-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po + -rm -f ../lib/$(DEPDIR)/ahost-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po + -rm -f ./$(DEPDIR)/acountry-acountry.Po + -rm -f ./$(DEPDIR)/acountry-ares_getopt.Po + -rm -f ./$(DEPDIR)/adig-adig.Po + -rm -f ./$(DEPDIR)/adig-ares_getopt.Po + -rm -f ./$(DEPDIR)/ahost-ahost.Po + -rm -f ./$(DEPDIR)/ahost-ares_getopt.Po + -rm -f Makefile +distclean-am: clean-am distclean-compile distclean-generic \ + distclean-tags + +dvi: dvi-am + +dvi-am: + +html: html-am + +html-am: + +info: info-am + +info-am: + +install-data-am: + +install-dvi: install-dvi-am + +install-dvi-am: + +install-exec-am: + +install-html: install-html-am + +install-html-am: + +install-info: install-info-am + +install-info-am: + +install-man: + +install-pdf: install-pdf-am + +install-pdf-am: + +install-ps: install-ps-am + +install-ps-am: + +installcheck-am: + +maintainer-clean: maintainer-clean-am + -rm -f ../lib/$(DEPDIR)/acountry-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/acountry-ares_strcasecmp.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/adig-ares_strcasecmp.Po + -rm -f ../lib/$(DEPDIR)/ahost-ares_nowarn.Po + -rm -f ../lib/$(DEPDIR)/ahost-ares_strcasecmp.Po + -rm -f ./$(DEPDIR)/acountry-acountry.Po + -rm -f ./$(DEPDIR)/acountry-ares_getopt.Po + -rm -f ./$(DEPDIR)/adig-adig.Po + -rm -f ./$(DEPDIR)/adig-ares_getopt.Po + -rm -f ./$(DEPDIR)/ahost-ahost.Po + -rm -f ./$(DEPDIR)/ahost-ares_getopt.Po + -rm -f Makefile +maintainer-clean-am: distclean-am maintainer-clean-generic + +mostlyclean: mostlyclean-am + +mostlyclean-am: mostlyclean-compile mostlyclean-generic \ + mostlyclean-libtool + +pdf: pdf-am + +pdf-am: + +ps: ps-am + +ps-am: + +uninstall-am: + +.MAKE: install-am install-strip + +.PHONY: CTAGS GTAGS TAGS all all-am am--depfiles check check-am clean \ + clean-generic clean-libtool clean-noinstPROGRAMS cscopelist-am \ + ctags ctags-am distclean distclean-compile distclean-generic \ + distclean-libtool distclean-tags distdir dvi dvi-am html \ + html-am info info-am install install-am install-data \ + install-data-am install-dvi install-dvi-am install-exec \ + install-exec-am install-html install-html-am install-info \ + install-info-am install-man install-pdf install-pdf-am \ + install-ps install-ps-am install-strip installcheck \ + installcheck-am installdirs maintainer-clean \ + maintainer-clean-generic mostlyclean mostlyclean-compile \ + mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \ + tags tags-am uninstall uninstall-am + +.PRECIOUS: Makefile + + +# Tell versions [3.59,3.63) of GNU make to not export all variables. +# Otherwise a system limit (for SysV at least) may be exceeded. +.NOEXPORT: diff --git a/deps/cares/src/tools/Makefile.inc b/deps/cares/src/tools/Makefile.inc new file mode 100644 index 00000000000000..7aea8e5f259eea --- /dev/null +++ b/deps/cares/src/tools/Makefile.inc @@ -0,0 +1,7 @@ +SAMPLESOURCES = ares_getopt.c \ + ../lib/ares_nowarn.c \ + ../lib/ares_strcasecmp.c + +SAMPLEHEADERS = ares_getopt.h \ + ../lib/ares_nowarn.h \ + ../lib/ares_strcasecmp.h diff --git a/deps/cares/src/tools/acountry.c b/deps/cares/src/tools/acountry.c new file mode 100644 index 00000000000000..a86d7cb0a39a56 --- /dev/null +++ b/deps/cares/src/tools/acountry.c @@ -0,0 +1,652 @@ +/* + * + * IP-address/hostname to country converter. + * + * Problem; you want to know where IP a.b.c.d is located. + * + * Use ares_gethostbyname ("d.c.b.a.zz.countries.nerd.dk") + * and get the CNAME (host->h_name). Result will be: + * CNAME = zz.countries.nerd.dk with address 127.0.x.y (ver 1) or + * CNAME = .zz.countries.nerd.dk with address 127.0.x.y (ver 2) + * + * The 2 letter country code is in and the ISO-3166 country + * number is in x.y (number = x*256 + y). Version 2 of the protocol is missing + * the number. + * + * Ref: http://countries.nerd.dk/more.html + * + * Written by G. Vanem 2006, 2007 + * + * NB! This program may not be big-endian aware. + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#ifdef HAVE_STRINGS_H +#include +#endif + +#if defined(WIN32) && !defined(WATT32) + #include +#else + #include + #include + #include +#endif + +#include "ares.h" +#include "ares_getopt.h" +#include "ares_nowarn.h" + +#ifndef HAVE_STRDUP +# include "ares_strdup.h" +# define strdup(ptr) ares_strdup(ptr) +#endif + +#ifndef HAVE_STRCASECMP +# include "ares_strcasecmp.h" +# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2) +#endif + +#ifndef HAVE_STRNCASECMP +# include "ares_strcasecmp.h" +# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n) +#endif + +#ifndef INADDR_NONE +#define INADDR_NONE 0xffffffff +#endif + +/* By using a double cast, we can get rid of the bogus warning of + * warning: cast from 'const struct sockaddr *' to 'const struct sockaddr_in6 *' increases required alignment from 1 to 4 [-Wcast-align] + */ +#define CARES_INADDR_CAST(type, var) ((type)((void *)var)) + +static const char *usage = "acountry [-?hdv] {host|addr} ...\n"; +static const char nerd_fmt[] = "%u.%u.%u.%u.zz.countries.nerd.dk"; +static const char *nerd_ver1 = nerd_fmt + 14; /* .countries.nerd.dk */ +static const char *nerd_ver2 = nerd_fmt + 11; /* .zz.countries.nerd.dk */ +static int verbose = 0; + +#define TRACE(fmt) do { \ + if (verbose > 0) \ + printf fmt ; \ + } WHILE_FALSE + +static void wait_ares(ares_channel channel); +static void callback(void *arg, int status, int timeouts, struct hostent *host); +static void callback2(void *arg, int status, int timeouts, struct hostent *host); +static void find_country_from_cname(const char *cname, struct in_addr addr); +static void print_help_info_acountry(void); + +static void Abort(const char *fmt, ...) +{ + va_list args; + va_start(args, fmt); + vfprintf(stderr, fmt, args); + va_end(args); + exit(1); +} + +int main(int argc, char **argv) +{ + ares_channel channel; + int ch, status; + +#if defined(WIN32) && !defined(WATT32) + WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); + WSADATA wsaData; + WSAStartup(wVersionRequested, &wsaData); +#endif + + status = ares_library_init(ARES_LIB_INIT_ALL); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status)); + return 1; + } + + while ((ch = ares_getopt(argc, argv, "dvh?")) != -1) + switch (ch) + { + case 'd': +#ifdef WATT32 + dbug_init(); +#endif + break; + case 'v': + verbose++; + break; + case 'h': + print_help_info_acountry(); + break; + case '?': + print_help_info_acountry(); + break; + default: + Abort(usage); + } + + argc -= optind; + argv += optind; + if (argc < 1) + Abort(usage); + + status = ares_init(&channel); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_init: %s\n", ares_strerror(status)); + return 1; + } + + /* Initiate the queries, one per command-line argument. */ + for ( ; *argv; argv++) + { + struct in_addr addr; + char buf[100]; + + /* If this fails, assume '*argv' is a host-name that + * must be resolved first + */ + if (ares_inet_pton(AF_INET, *argv, &addr) != 1) + { + ares_gethostbyname(channel, *argv, AF_INET, callback2, &addr); + wait_ares(channel); + if (addr.s_addr == INADDR_NONE) + { + printf("Failed to lookup %s\n", *argv); + continue; + } + } + + sprintf(buf, nerd_fmt, + (unsigned int)(addr.s_addr >> 24), + (unsigned int)((addr.s_addr >> 16) & 255), + (unsigned int)((addr.s_addr >> 8) & 255), + (unsigned int)(addr.s_addr & 255)); + TRACE(("Looking up %s...", buf)); + fflush(stdout); + ares_gethostbyname(channel, buf, AF_INET, callback, buf); + } + + wait_ares(channel); + ares_destroy(channel); + + ares_library_cleanup(); + +#if defined(WIN32) && !defined(WATT32) + WSACleanup(); +#endif + + return 0; +} + +/* + * Wait for the queries to complete. + */ +static void wait_ares(ares_channel channel) +{ + for (;;) + { + struct timeval *tvp, tv; + fd_set read_fds, write_fds; + int nfds; + + FD_ZERO(&read_fds); + FD_ZERO(&write_fds); + nfds = ares_fds(channel, &read_fds, &write_fds); + if (nfds == 0) + break; + tvp = ares_timeout(channel, NULL, &tv); + nfds = select(nfds, &read_fds, &write_fds, NULL, tvp); + if (nfds < 0) + continue; + ares_process(channel, &read_fds, &write_fds); + } +} + +/* + * This is the callback used when we have the IP-address of interest. + * Extract the CNAME and figure out the country-code from it. + */ +static void callback(void *arg, int status, int timeouts, struct hostent *host) +{ + const char *name = (const char*)arg; + const char *cname; + char buf[20]; + + (void)timeouts; + + if (!host || status != ARES_SUCCESS) + { + printf("Failed to lookup %s: %s\n", name, ares_strerror(status)); + return; + } + + TRACE(("\nFound address %s, name %s\n", + ares_inet_ntop(AF_INET,(const char*)host->h_addr,buf,sizeof(buf)), + host->h_name)); + + cname = host->h_name; /* CNAME gets put here */ + if (!cname) + printf("Failed to get CNAME for %s\n", name); + else + find_country_from_cname(cname, *(CARES_INADDR_CAST(struct in_addr *, host->h_addr))); +} + +/* + * This is the callback used to obtain the IP-address of the host of interest. + */ +static void callback2(void *arg, int status, int timeouts, struct hostent *host) +{ + struct in_addr *addr = (struct in_addr*) arg; + + (void)timeouts; + if (!host || status != ARES_SUCCESS) + memset(addr, INADDR_NONE, sizeof(*addr)); + else + memcpy(addr, host->h_addr, sizeof(*addr)); +} + +struct search_list { + int country_number; /* ISO-3166 country number */ + char short_name[3]; /* A2 short country code */ + const char *long_name; /* normal country name */ + }; + +static const struct search_list *list_lookup(int number, const struct search_list *list, int num) +{ + while (num > 0 && list->long_name) + { + if (list->country_number == number) + return (list); + num--; + list++; + } + return (NULL); +} + +/* + * Ref: https://en.wikipedia.org/wiki/ISO_3166-1 + */ +static const struct search_list country_list[] = { + { 4, "af", "Afghanistan" }, + { 248, "ax", "Åland Island" }, + { 8, "al", "Albania" }, + { 12, "dz", "Algeria" }, + { 16, "as", "American Samoa" }, + { 20, "ad", "Andorra" }, + { 24, "ao", "Angola" }, + { 660, "ai", "Anguilla" }, + { 10, "aq", "Antarctica" }, + { 28, "ag", "Antigua & Barbuda" }, + { 32, "ar", "Argentina" }, + { 51, "am", "Armenia" }, + { 533, "aw", "Aruba" }, + { 36, "au", "Australia" }, + { 40, "at", "Austria" }, + { 31, "az", "Azerbaijan" }, + { 44, "bs", "Bahamas" }, + { 48, "bh", "Bahrain" }, + { 50, "bd", "Bangladesh" }, + { 52, "bb", "Barbados" }, + { 112, "by", "Belarus" }, + { 56, "be", "Belgium" }, + { 84, "bz", "Belize" }, + { 204, "bj", "Benin" }, + { 60, "bm", "Bermuda" }, + { 64, "bt", "Bhutan" }, + { 68, "bo", "Bolivia" }, + { 535, "bq", "Bonaire, Sint Eustatius and Saba" }, /* Formerly 'Bonaire' / 'Netherlands Antilles' */ + { 70, "ba", "Bosnia & Herzegovina" }, + { 72, "bw", "Botswana" }, + { 74, "bv", "Bouvet Island" }, + { 76, "br", "Brazil" }, + { 86, "io", "British Indian Ocean Territory" }, + { 96, "bn", "Brunei Darussalam" }, + { 100, "bg", "Bulgaria" }, + { 854, "bf", "Burkina Faso" }, + { 108, "bi", "Burundi" }, + { 116, "kh", "Cambodia" }, + { 120, "cm", "Cameroon" }, + { 124, "ca", "Canada" }, + { 132, "cv", "Cape Verde" }, + { 136, "ky", "Cayman Islands" }, + { 140, "cf", "Central African Republic" }, + { 148, "td", "Chad" }, + { 152, "cl", "Chile" }, + { 156, "cn", "China" }, + { 162, "cx", "Christmas Island" }, + { 166, "cc", "Cocos Islands" }, + { 170, "co", "Colombia" }, + { 174, "km", "Comoros" }, + { 178, "cg", "Congo" }, + { 180, "cd", "Congo" }, + { 184, "ck", "Cook Islands" }, + { 188, "cr", "Costa Rica" }, + { 384, "ci", "Cote d'Ivoire" }, + { 191, "hr", "Croatia" }, + { 192, "cu", "Cuba" }, + { 531, "cw", "Curaçao" }, + { 196, "cy", "Cyprus" }, + { 203, "cz", "Czech Republic" }, + { 208, "dk", "Denmark" }, + { 262, "dj", "Djibouti" }, + { 212, "dm", "Dominica" }, + { 214, "do", "Dominican Republic" }, + { 218, "ec", "Ecuador" }, + { 818, "eg", "Egypt" }, + { 222, "sv", "El Salvador" }, + { 226, "gq", "Equatorial Guinea" }, + { 232, "er", "Eritrea" }, + { 233, "ee", "Estonia" }, + { 748, "sz", "Eswatini" }, /* Formerly Swaziland */ + { 231, "et", "Ethiopia" }, + { 65281, "eu", "European Union" }, /* 127.0.255.1 */ + { 238, "fk", "Falkland Islands" }, + { 234, "fo", "Faroe Islands" }, + { 242, "fj", "Fiji" }, + { 246, "fi", "Finland" }, + { 250, "fr", "France" }, + { 249, "fx", "France, Metropolitan" }, + { 254, "gf", "French Guiana" }, + { 258, "pf", "French Polynesia" }, + { 260, "tf", "French Southern Territories" }, + { 266, "ga", "Gabon" }, + { 270, "gm", "Gambia" }, + { 268, "ge", "Georgia" }, + { 276, "de", "Germany" }, + { 288, "gh", "Ghana" }, + { 292, "gi", "Gibraltar" }, + { 300, "gr", "Greece" }, + { 304, "gl", "Greenland" }, + { 308, "gd", "Grenada" }, + { 312, "gp", "Guadeloupe" }, + { 316, "gu", "Guam" }, + { 320, "gt", "Guatemala" }, + { 831, "gg", "Guernsey" }, + { 324, "gn", "Guinea" }, + { 624, "gw", "Guinea-Bissau" }, + { 328, "gy", "Guyana" }, + { 332, "ht", "Haiti" }, + { 334, "hm", "Heard & Mc Donald Islands" }, + { 336, "va", "Holy See" }, /* Vatican City */ + { 340, "hn", "Honduras" }, + { 344, "hk", "Hong kong" }, + { 348, "hu", "Hungary" }, + { 352, "is", "Iceland" }, + { 356, "in", "India" }, + { 360, "id", "Indonesia" }, + { 364, "ir", "Iran" }, + { 368, "iq", "Iraq" }, + { 372, "ie", "Ireland" }, + { 833, "im", "Isle of Man" }, + { 376, "il", "Israel" }, + { 380, "it", "Italy" }, + { 388, "jm", "Jamaica" }, + { 392, "jp", "Japan" }, + { 832, "je", "Jersey" }, + { 400, "jo", "Jordan" }, + { 398, "kz", "Kazakhstan" }, + { 404, "ke", "Kenya" }, + { 296, "ki", "Kiribati" }, + { 408, "kp", "Korea (north)" }, + { 410, "kr", "Korea (south)" }, + { 0, "xk", "Kosovo" }, /* https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2 */ + { 414, "kw", "Kuwait" }, + { 417, "kg", "Kyrgyzstan" }, + { 418, "la", "Laos" }, + { 428, "lv", "Latvia" }, + { 422, "lb", "Lebanon" }, + { 426, "ls", "Lesotho" }, + { 430, "lr", "Liberia" }, + { 434, "ly", "Libya" }, + { 438, "li", "Liechtenstein" }, + { 440, "lt", "Lithuania" }, + { 442, "lu", "Luxembourg" }, + { 446, "mo", "Macao" }, + { 450, "mg", "Madagascar" }, + { 454, "mw", "Malawi" }, + { 458, "my", "Malaysia" }, + { 462, "mv", "Maldives" }, + { 466, "ml", "Mali" }, + { 470, "mt", "Malta" }, + { 584, "mh", "Marshall Islands" }, + { 474, "mq", "Martinique" }, + { 478, "mr", "Mauritania" }, + { 480, "mu", "Mauritius" }, + { 175, "yt", "Mayotte" }, + { 484, "mx", "Mexico" }, + { 583, "fm", "Micronesia" }, + { 498, "md", "Moldova" }, + { 492, "mc", "Monaco" }, + { 496, "mn", "Mongolia" }, + { 499, "me", "Montenegro" }, + { 500, "ms", "Montserrat" }, + { 504, "ma", "Morocco" }, + { 508, "mz", "Mozambique" }, + { 104, "mm", "Myanmar" }, + { 516, "na", "Namibia" }, + { 520, "nr", "Nauru" }, + { 524, "np", "Nepal" }, + { 528, "nl", "Netherlands" }, + { 540, "nc", "New Caledonia" }, + { 554, "nz", "New Zealand" }, + { 558, "ni", "Nicaragua" }, + { 562, "ne", "Niger" }, + { 566, "ng", "Nigeria" }, + { 570, "nu", "Niue" }, + { 574, "nf", "Norfolk Island" }, + { 807, "mk", "North Macedonia" }, /* 'Macedonia' until February 2019 */ + { 580, "mp", "Northern Mariana Islands" }, + { 578, "no", "Norway" }, + { 512, "om", "Oman" }, + { 586, "pk", "Pakistan" }, + { 585, "pw", "Palau" }, + { 275, "ps", "Palestinian Territory" }, + { 591, "pa", "Panama" }, + { 598, "pg", "Papua New Guinea" }, + { 600, "py", "Paraguay" }, + { 604, "pe", "Peru" }, + { 608, "ph", "Philippines" }, + { 612, "pn", "Pitcairn" }, + { 616, "pl", "Poland" }, + { 620, "pt", "Portugal" }, + { 630, "pr", "Puerto Rico" }, + { 634, "qa", "Qatar" }, + { 638, "re", "Reunion" }, + { 642, "ro", "Romania" }, + { 643, "ru", "Russian Federation" }, + { 646, "rw", "Rwanda" }, + { 0, "bl", "Saint Barthélemy" }, /* https://en.wikipedia.org/wiki/ISO_3166-2:BL */ + { 659, "kn", "Saint Kitts & Nevis" }, + { 662, "lc", "Saint Lucia" }, + { 663, "mf", "Saint Martin" }, + { 670, "vc", "Saint Vincent" }, + { 882, "ws", "Samoa" }, + { 674, "sm", "San Marino" }, + { 678, "st", "Sao Tome & Principe" }, + { 682, "sa", "Saudi Arabia" }, + { 686, "sn", "Senegal" }, + { 688, "rs", "Serbia" }, + { 690, "sc", "Seychelles" }, + { 694, "sl", "Sierra Leone" }, + { 702, "sg", "Singapore" }, + { 534, "sx", "Sint Maarten" }, + { 703, "sk", "Slovakia" }, + { 705, "si", "Slovenia" }, + { 90, "sb", "Solomon Islands" }, + { 706, "so", "Somalia" }, + { 710, "za", "South Africa" }, + { 239, "gs", "South Georgia & South Sandwich Is." }, + { 728, "ss", "South Sudan" }, + { 724, "es", "Spain" }, + { 144, "lk", "Sri Lanka" }, + { 654, "sh", "St. Helena" }, + { 666, "pm", "St. Pierre & Miquelon" }, + { 736, "sd", "Sudan" }, + { 740, "sr", "Suriname" }, + { 744, "sj", "Svalbard & Jan Mayen Islands" }, + { 752, "se", "Sweden" }, + { 756, "ch", "Switzerland" }, + { 760, "sy", "Syrian Arab Republic" }, + { 158, "tw", "Taiwan" }, + { 762, "tj", "Tajikistan" }, + { 834, "tz", "Tanzania" }, + { 764, "th", "Thailand" }, + { 626, "tl", "Timor-Leste" }, + { 768, "tg", "Togo" }, + { 772, "tk", "Tokelau" }, + { 776, "to", "Tonga" }, + { 780, "tt", "Trinidad & Tobago" }, + { 788, "tn", "Tunisia" }, + { 792, "tr", "Turkey" }, + { 795, "tm", "Turkmenistan" }, + { 796, "tc", "Turks & Caicos Islands" }, + { 798, "tv", "Tuvalu" }, + { 800, "ug", "Uganda" }, + { 804, "ua", "Ukraine" }, + { 784, "ae", "United Arab Emirates" }, + { 826, "gb", "United Kingdom" }, + { 840, "us", "United States" }, + { 581, "um", "United States Minor Outlying Islands" }, + { 858, "uy", "Uruguay" }, + { 860, "uz", "Uzbekistan" }, + { 548, "vu", "Vanuatu" }, + { 862, "ve", "Venezuela" }, + { 704, "vn", "Vietnam" }, + { 92, "vg", "Virgin Islands (British)" }, + { 850, "vi", "Virgin Islands (US)" }, + { 876, "wf", "Wallis & Futuna Islands" }, + { 732, "eh", "Western Sahara" }, + { 887, "ye", "Yemen" }, + { 894, "zm", "Zambia" }, + { 716, "zw", "Zimbabwe" } + }; + +/* + * Check if start of 'str' is simply an IPv4 address. + */ +#define BYTE_OK(x) ((x) >= 0 && (x) <= 255) + +static int is_addr(char *str, char **end) +{ + int a0, a1, a2, a3, num, rc = 0, length = 0; + + num = sscanf(str,"%3d.%3d.%3d.%3d%n",&a0,&a1,&a2,&a3,&length); + if( (num == 4) && + BYTE_OK(a0) && BYTE_OK(a1) && BYTE_OK(a2) && BYTE_OK(a3) && + length >= (3+4)) + { + rc = 1; + *end = str + length; + } + return rc; +} + +/* + * Find the country-code and name from the CNAME. E.g.: + * version 1: CNAME = zzno.countries.nerd.dk with address 127.0.2.66 + * yields ccode_A" = "no" and cnumber 578 (2.66). + * version 2: CNAME = .zz.countries.nerd.dk with address 127.0.2.66 + * yields cnumber 578 (2.66). ccode_A is ""; + */ +static void find_country_from_cname(const char *cname, struct in_addr addr) +{ + const struct search_list *country; + char ccode_A2[3], *ccopy, *dot_4; + int cnumber, z0, z1, ver_1, ver_2; + unsigned long ip; + + ip = ntohl(addr.s_addr); + z0 = TOLOWER(cname[0]); + z1 = TOLOWER(cname[1]); + ccopy = strdup(cname); + dot_4 = NULL; + + ver_1 = (z0 == 'z' && z1 == 'z' && !strcasecmp(cname+4,nerd_ver1)); + ver_2 = (is_addr(ccopy,&dot_4) && !strcasecmp(dot_4,nerd_ver2)); + + if (ver_1) + { + const char *dot = strchr(cname, '.'); + if (dot != cname+4) + { + printf("Unexpected CNAME %s (ver_1)\n", cname); + free(ccopy); + return; + } + } + else if (ver_2) + { + z0 = TOLOWER(dot_4[1]); + z1 = TOLOWER(dot_4[2]); + if (z0 != 'z' && z1 != 'z') + { + printf("Unexpected CNAME %s (ver_2)\n", cname); + free(ccopy); + return; + } + } + else + { + printf("Unexpected CNAME %s (ver?)\n", cname); + free(ccopy); + return; + } + + if (ver_1) + { + ccode_A2[0] = (char)TOLOWER(cname[2]); + ccode_A2[1] = (char)TOLOWER(cname[3]); + ccode_A2[2] = '\0'; + } + else + ccode_A2[0] = '\0'; + + cnumber = ip & 0xFFFF; + + TRACE(("Found country-code `%s', number %d\n", + ver_1 ? ccode_A2 : "", cnumber)); + + country = list_lookup(cnumber, country_list, + sizeof(country_list) / sizeof(country_list[0])); + if (!country) + printf("Name for country-number %d not found.\n", cnumber); + else + { + if (ver_1) + { + if ((country->short_name[0] != ccode_A2[0]) || + (country->short_name[1] != ccode_A2[1]) || + (country->short_name[2] != ccode_A2[2])) + printf("short-name mismatch; %s vs %s\n", + country->short_name, ccode_A2); + } + printf("%s (%s), number %d.\n", + country->long_name, country->short_name, cnumber); + } + free(ccopy); +} + +/* Information from the man page. Formatting taken from man -h */ +static void print_help_info_acountry(void) { + printf("acountry, version %s \n\n", ARES_VERSION_STR); + printf("usage: acountry [-hdv] {host|addr} ...\n\n" + " d : Print some extra debugging output.\n" + " h : Display this help and exit.\n" + " v : Be more verbose. Print extra information.\n\n"); + exit(0); +} diff --git a/deps/cares/src/tools/adig.c b/deps/cares/src/tools/adig.c new file mode 100644 index 00000000000000..412ad467b5525b --- /dev/null +++ b/deps/cares/src/tools/adig.c @@ -0,0 +1,983 @@ +/* Copyright 1998 by the Massachusetts Institute of Technology. + * + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#ifdef HAVE_NETINET_IN_H +# include +#endif +#ifdef HAVE_ARPA_INET_H +# include +#endif +#ifdef HAVE_NETDB_H +# include +#endif + +#include "ares_nameser.h" + +#ifdef HAVE_STRINGS_H +# include +#endif + +#include "ares.h" +#include "ares_dns.h" +#include "ares_getopt.h" +#include "ares_nowarn.h" + +#ifndef HAVE_STRDUP +# include "ares_strdup.h" +# define strdup(ptr) ares_strdup(ptr) +#endif + +#ifndef HAVE_STRCASECMP +# include "ares_strcasecmp.h" +# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2) +#endif + +#ifndef HAVE_STRNCASECMP +# include "ares_strcasecmp.h" +# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n) +#endif + +#ifdef WATT32 +#undef WIN32 /* Redefined in MingW headers */ +#endif + + +struct nv { + const char *name; + int value; +}; + +static const struct nv flags[] = { + { "usevc", ARES_FLAG_USEVC }, + { "primary", ARES_FLAG_PRIMARY }, + { "igntc", ARES_FLAG_IGNTC }, + { "norecurse", ARES_FLAG_NORECURSE }, + { "stayopen", ARES_FLAG_STAYOPEN }, + { "noaliases", ARES_FLAG_NOALIASES } +}; +static const int nflags = sizeof(flags) / sizeof(flags[0]); + +static const struct nv classes[] = { + { "IN", C_IN }, + { "CHAOS", C_CHAOS }, + { "HS", C_HS }, + { "ANY", C_ANY } +}; +static const int nclasses = sizeof(classes) / sizeof(classes[0]); + +static const struct nv types[] = { + { "A", T_A }, + { "NS", T_NS }, + { "MD", T_MD }, + { "MF", T_MF }, + { "CNAME", T_CNAME }, + { "SOA", T_SOA }, + { "MB", T_MB }, + { "MG", T_MG }, + { "MR", T_MR }, + { "NULL", T_NULL }, + { "WKS", T_WKS }, + { "PTR", T_PTR }, + { "HINFO", T_HINFO }, + { "MINFO", T_MINFO }, + { "MX", T_MX }, + { "TXT", T_TXT }, + { "RP", T_RP }, + { "AFSDB", T_AFSDB }, + { "X25", T_X25 }, + { "ISDN", T_ISDN }, + { "RT", T_RT }, + { "NSAP", T_NSAP }, + { "NSAP_PTR", T_NSAP_PTR }, + { "SIG", T_SIG }, + { "KEY", T_KEY }, + { "PX", T_PX }, + { "GPOS", T_GPOS }, + { "AAAA", T_AAAA }, + { "LOC", T_LOC }, + { "SRV", T_SRV }, + { "AXFR", T_AXFR }, + { "MAILB", T_MAILB }, + { "MAILA", T_MAILA }, + { "NAPTR", T_NAPTR }, + { "DS", T_DS }, + { "SSHFP", T_SSHFP }, + { "RRSIG", T_RRSIG }, + { "NSEC", T_NSEC }, + { "DNSKEY", T_DNSKEY }, + { "CAA", T_CAA }, + { "URI", T_URI }, + { "ANY", T_ANY } +}; +static const int ntypes = sizeof(types) / sizeof(types[0]); + +static const char *opcodes[] = { + "QUERY", "IQUERY", "STATUS", "(reserved)", "NOTIFY", + "(unknown)", "(unknown)", "(unknown)", "(unknown)", + "UPDATEA", "UPDATED", "UPDATEDA", "UPDATEM", "UPDATEMA", + "ZONEINIT", "ZONEREF" +}; + +static const char *rcodes[] = { + "NOERROR", "FORMERR", "SERVFAIL", "NXDOMAIN", "NOTIMP", "REFUSED", + "(unknown)", "(unknown)", "(unknown)", "(unknown)", "(unknown)", + "(unknown)", "(unknown)", "(unknown)", "(unknown)", "NOCHANGE" +}; + +static void callback(void *arg, int status, int timeouts, + unsigned char *abuf, int alen); +static const unsigned char *display_question(const unsigned char *aptr, + const unsigned char *abuf, + int alen); +static const unsigned char *display_rr(const unsigned char *aptr, + const unsigned char *abuf, int alen); +static int convert_query (char **name, int use_bitstring); +static const char *type_name(int type); +static const char *class_name(int dnsclass); +static void usage(void); +static void destroy_addr_list(struct ares_addr_node *head); +static void append_addr_list(struct ares_addr_node **head, + struct ares_addr_node *node); +static void print_help_info_adig(void); + +int main(int argc, char **argv) +{ + ares_channel channel; + int c, i, optmask = ARES_OPT_FLAGS, dnsclass = C_IN, type = T_A; + int status, nfds, count; + int use_ptr_helper = 0; + struct ares_options options; + struct hostent *hostent; + fd_set read_fds, write_fds; + struct timeval *tvp, tv; + struct ares_addr_node *srvr, *servers = NULL; + +#ifdef USE_WINSOCK + WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); + WSADATA wsaData; + WSAStartup(wVersionRequested, &wsaData); +#endif + + status = ares_library_init(ARES_LIB_INIT_ALL); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status)); + return 1; + } + + options.flags = ARES_FLAG_NOCHECKRESP; + options.servers = NULL; + options.nservers = 0; + while ((c = ares_getopt(argc, argv, "dh?f:s:c:t:T:U:x")) != -1) + { + switch (c) + { + case 'd': +#ifdef WATT32 + dbug_init(); +#endif + break; + case 'h': + print_help_info_adig(); + break; + case '?': + print_help_info_adig(); + break; + case 'f': + /* Add a flag. */ + for (i = 0; i < nflags; i++) + { + if (strcmp(flags[i].name, optarg) == 0) + break; + } + if (i < nflags) + options.flags |= flags[i].value; + else + usage(); + break; + + case 's': + /* User-specified name servers override default ones. */ + srvr = malloc(sizeof(struct ares_addr_node)); + if (!srvr) + { + fprintf(stderr, "Out of memory!\n"); + destroy_addr_list(servers); + return 1; + } + append_addr_list(&servers, srvr); + if (ares_inet_pton(AF_INET, optarg, &srvr->addr.addr4) > 0) + srvr->family = AF_INET; + else if (ares_inet_pton(AF_INET6, optarg, &srvr->addr.addr6) > 0) + srvr->family = AF_INET6; + else + { + hostent = gethostbyname(optarg); + if (!hostent) + { + fprintf(stderr, "adig: server %s not found.\n", optarg); + destroy_addr_list(servers); + return 1; + } + switch (hostent->h_addrtype) + { + case AF_INET: + srvr->family = AF_INET; + memcpy(&srvr->addr.addr4, hostent->h_addr, + sizeof(srvr->addr.addr4)); + break; + case AF_INET6: + srvr->family = AF_INET6; + memcpy(&srvr->addr.addr6, hostent->h_addr, + sizeof(srvr->addr.addr6)); + break; + default: + fprintf(stderr, + "adig: server %s unsupported address family.\n", optarg); + destroy_addr_list(servers); + return 1; + } + } + /* Notice that calling ares_init_options() without servers in the + * options struct and with ARES_OPT_SERVERS set simultaneously in + * the options mask, results in an initialization with no servers. + * When alternative name servers have been specified these are set + * later calling ares_set_servers() overriding any existing server + * configuration. To prevent initial configuration with default + * servers that will be discarded later, ARES_OPT_SERVERS is set. + * If this flag is not set here the result shall be the same but + * ares_init_options() will do needless work. */ + optmask |= ARES_OPT_SERVERS; + break; + + case 'c': + /* Set the query class. */ + for (i = 0; i < nclasses; i++) + { + if (strcasecmp(classes[i].name, optarg) == 0) + break; + } + if (i < nclasses) + dnsclass = classes[i].value; + else + usage(); + break; + + case 't': + /* Set the query type. */ + for (i = 0; i < ntypes; i++) + { + if (strcasecmp(types[i].name, optarg) == 0) + break; + } + if (i < ntypes) + type = types[i].value; + else + usage(); + break; + + case 'T': + /* Set the TCP port number. */ + if (!ISDIGIT(*optarg)) + usage(); + options.tcp_port = (unsigned short)strtol(optarg, NULL, 0); + optmask |= ARES_OPT_TCP_PORT; + break; + + case 'U': + /* Set the UDP port number. */ + if (!ISDIGIT(*optarg)) + usage(); + options.udp_port = (unsigned short)strtol(optarg, NULL, 0); + optmask |= ARES_OPT_UDP_PORT; + break; + + case 'x': + use_ptr_helper++; + break; + } + } + argc -= optind; + argv += optind; + if (argc == 0) + usage(); + + status = ares_init_options(&channel, &options, optmask); + + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_init_options: %s\n", + ares_strerror(status)); + return 1; + } + + if(servers) + { + status = ares_set_servers(channel, servers); + destroy_addr_list(servers); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_init_options: %s\n", + ares_strerror(status)); + return 1; + } + } + + /* Initiate the queries, one per command-line argument. If there is + * only one query to do, supply NULL as the callback argument; + * otherwise, supply the query name as an argument so we can + * distinguish responses for the user when printing them out. + */ + for (i = 1; *argv; i++, argv++) + { + char *query = *argv; + + if (type == T_PTR && dnsclass == C_IN && use_ptr_helper) + if (!convert_query (&query, use_ptr_helper >= 2)) + continue; + + ares_query(channel, query, dnsclass, type, callback, i < argc-1 ? (void*)query : NULL); + } + + /* Wait for all queries to complete. */ + for (;;) + { + FD_ZERO(&read_fds); + FD_ZERO(&write_fds); + nfds = ares_fds(channel, &read_fds, &write_fds); + if (nfds == 0) + break; + tvp = ares_timeout(channel, NULL, &tv); + count = select(nfds, &read_fds, &write_fds, NULL, tvp); + if (count < 0 && (status = SOCKERRNO) != EINVAL) + { + printf("select fail: %d", status); + return 1; + } + ares_process(channel, &read_fds, &write_fds); + } + + ares_destroy(channel); + + ares_library_cleanup(); + +#ifdef USE_WINSOCK + WSACleanup(); +#endif + + return 0; +} + +static void callback(void *arg, int status, int timeouts, + unsigned char *abuf, int alen) +{ + char *name = (char *) arg; + int id, qr, opcode, aa, tc, rd, ra, rcode; + unsigned int qdcount, ancount, nscount, arcount, i; + const unsigned char *aptr; + + (void) timeouts; + + /* Display the query name if given. */ + if (name) + printf("Answer for query %s:\n", name); + + /* Display an error message if there was an error, but only stop if + * we actually didn't get an answer buffer. + */ + if (status != ARES_SUCCESS) + { + printf("%s\n", ares_strerror(status)); + if (!abuf) + return; + } + + /* Won't happen, but check anyway, for safety. */ + if (alen < HFIXEDSZ) + return; + + /* Parse the answer header. */ + id = DNS_HEADER_QID(abuf); + qr = DNS_HEADER_QR(abuf); + opcode = DNS_HEADER_OPCODE(abuf); + aa = DNS_HEADER_AA(abuf); + tc = DNS_HEADER_TC(abuf); + rd = DNS_HEADER_RD(abuf); + ra = DNS_HEADER_RA(abuf); + rcode = DNS_HEADER_RCODE(abuf); + qdcount = DNS_HEADER_QDCOUNT(abuf); + ancount = DNS_HEADER_ANCOUNT(abuf); + nscount = DNS_HEADER_NSCOUNT(abuf); + arcount = DNS_HEADER_ARCOUNT(abuf); + + /* Display the answer header. */ + printf("id: %d\n", id); + printf("flags: %s%s%s%s%s\n", + qr ? "qr " : "", + aa ? "aa " : "", + tc ? "tc " : "", + rd ? "rd " : "", + ra ? "ra " : ""); + printf("opcode: %s\n", opcodes[opcode]); + printf("rcode: %s\n", rcodes[rcode]); + + /* Display the questions. */ + printf("Questions:\n"); + aptr = abuf + HFIXEDSZ; + for (i = 0; i < qdcount; i++) + { + aptr = display_question(aptr, abuf, alen); + if (aptr == NULL) + return; + } + + /* Display the answers. */ + printf("Answers:\n"); + for (i = 0; i < ancount; i++) + { + aptr = display_rr(aptr, abuf, alen); + if (aptr == NULL) + return; + } + + /* Display the NS records. */ + printf("NS records:\n"); + for (i = 0; i < nscount; i++) + { + aptr = display_rr(aptr, abuf, alen); + if (aptr == NULL) + return; + } + + /* Display the additional records. */ + printf("Additional records:\n"); + for (i = 0; i < arcount; i++) + { + aptr = display_rr(aptr, abuf, alen); + if (aptr == NULL) + return; + } +} + +static const unsigned char *display_question(const unsigned char *aptr, + const unsigned char *abuf, + int alen) +{ + char *name; + int type, dnsclass, status; + long len; + + /* Parse the question name. */ + status = ares_expand_name(aptr, abuf, alen, &name, &len); + if (status != ARES_SUCCESS) + return NULL; + aptr += len; + + /* Make sure there's enough data after the name for the fixed part + * of the question. + */ + if (aptr + QFIXEDSZ > abuf + alen) + { + ares_free_string(name); + return NULL; + } + + /* Parse the question type and class. */ + type = DNS_QUESTION_TYPE(aptr); + dnsclass = DNS_QUESTION_CLASS(aptr); + aptr += QFIXEDSZ; + + /* Display the question, in a format sort of similar to how we will + * display RRs. + */ + printf("\t%-15s.\t", name); + if (dnsclass != C_IN) + printf("\t%s", class_name(dnsclass)); + printf("\t%s\n", type_name(type)); + ares_free_string(name); + return aptr; +} + +static const unsigned char *display_rr(const unsigned char *aptr, + const unsigned char *abuf, int alen) +{ + const unsigned char *p; + int type, dnsclass, ttl, dlen, status, i; + long len; + int vlen; + char addr[46]; + union { + unsigned char * as_uchar; + char * as_char; + } name; + + /* Parse the RR name. */ + status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + aptr += len; + + /* Make sure there is enough data after the RR name for the fixed + * part of the RR. + */ + if (aptr + RRFIXEDSZ > abuf + alen) + { + ares_free_string(name.as_char); + return NULL; + } + + /* Parse the fixed part of the RR, and advance to the RR data + * field. */ + type = DNS_RR_TYPE(aptr); + dnsclass = DNS_RR_CLASS(aptr); + ttl = DNS_RR_TTL(aptr); + dlen = DNS_RR_LEN(aptr); + aptr += RRFIXEDSZ; + if (aptr + dlen > abuf + alen) + { + ares_free_string(name.as_char); + return NULL; + } + + /* Display the RR name, class, and type. */ + printf("\t%-15s.\t%d", name.as_char, ttl); + if (dnsclass != C_IN) + printf("\t%s", class_name(dnsclass)); + printf("\t%s", type_name(type)); + ares_free_string(name.as_char); + + /* Display the RR data. Don't touch aptr. */ + switch (type) + { + case T_CNAME: + case T_MB: + case T_MD: + case T_MF: + case T_MG: + case T_MR: + case T_NS: + case T_PTR: + /* For these types, the RR data is just a domain name. */ + status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.", name.as_char); + ares_free_string(name.as_char); + break; + + case T_HINFO: + /* The RR data is two length-counted character strings. */ + p = aptr; + len = *p; + if (p + len + 1 > aptr + dlen) + return NULL; + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); + p += len; + len = *p; + if (p + len + 1 > aptr + dlen) + return NULL; + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); + break; + + case T_MINFO: + /* The RR data is two domain names. */ + p = aptr; + status = ares_expand_name(p, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.", name.as_char); + ares_free_string(name.as_char); + p += len; + status = ares_expand_name(p, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.", name.as_char); + ares_free_string(name.as_char); + break; + + case T_MX: + /* The RR data is two bytes giving a preference ordering, and + * then a domain name. + */ + if (dlen < 2) + return NULL; + printf("\t%d", (int)DNS__16BIT(aptr)); + status = ares_expand_name(aptr + 2, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.", name.as_char); + ares_free_string(name.as_char); + break; + + case T_SOA: + /* The RR data is two domain names and then five four-byte + * numbers giving the serial number and some timeouts. + */ + p = aptr; + status = ares_expand_name(p, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.\n", name.as_char); + ares_free_string(name.as_char); + p += len; + status = ares_expand_name(p, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t\t\t\t\t\t%s.\n", name.as_char); + ares_free_string(name.as_char); + p += len; + if (p + 20 > aptr + dlen) + return NULL; + printf("\t\t\t\t\t\t( %u %u %u %u %u )", + DNS__32BIT(p), DNS__32BIT(p+4), + DNS__32BIT(p+8), DNS__32BIT(p+12), + DNS__32BIT(p+16)); + break; + + case T_TXT: + /* The RR data is one or more length-counted character + * strings. */ + p = aptr; + while (p < aptr + dlen) + { + len = *p; + if (p + len + 1 > aptr + dlen) + return NULL; + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s", name.as_char); + ares_free_string(name.as_char); + p += len; + } + break; + + case T_CAA: + + p = aptr; + + /* Flags */ + printf(" %u", (int)*p); + p += 1; + + /* Remainder of record */ + vlen = (int)dlen - ((char)*p) - 2; + + /* The Property identifier, one of: + - "issue", + - "iodef", or + - "issuewild" */ + status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len); + if (status != ARES_SUCCESS) + return NULL; + printf(" %s", name.as_char); + ares_free_string(name.as_char); + p += len; + + if (p + vlen > abuf + alen) + return NULL; + + /* A sequence of octets representing the Property Value */ + printf(" %.*s", vlen, p); + break; + + case T_A: + /* The RR data is a four-byte Internet address. */ + if (dlen != 4) + return NULL; + printf("\t%s", ares_inet_ntop(AF_INET,aptr,addr,sizeof(addr))); + break; + + case T_AAAA: + /* The RR data is a 16-byte IPv6 address. */ + if (dlen != 16) + return NULL; + printf("\t%s", ares_inet_ntop(AF_INET6,aptr,addr,sizeof(addr))); + break; + + case T_WKS: + /* Not implemented yet */ + break; + + case T_SRV: + /* The RR data is three two-byte numbers representing the + * priority, weight, and port, followed by a domain name. + */ + + printf("\t%d", (int)DNS__16BIT(aptr)); + printf(" %d", (int)DNS__16BIT(aptr + 2)); + printf(" %d", (int)DNS__16BIT(aptr + 4)); + + status = ares_expand_name(aptr + 6, abuf, alen, &name.as_char, &len); + if (status != ARES_SUCCESS) + return NULL; + printf("\t%s.", name.as_char); + ares_free_string(name.as_char); + break; + + case T_URI: + /* The RR data is two two-byte numbers representing the + * priority and weight, followed by a target. + */ + + printf("\t%d ", (int)DNS__16BIT(aptr)); + printf("%d \t\t", (int)DNS__16BIT(aptr+2)); + p = aptr +4; + for (i=0; i "d.c.b.a".in-addr.arpa" for an IPv4 address. + * "a.b.c....x.y.z" -> "z.y.x....c.d.e.IP6.ARPA" for an IPv6 address. + * + * An example from 'dig -x PTR 2001:470:1:1b9::31': + * + * QUESTION SECTION: + * 1.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.b.1.0.1.0.0.0.0.7.4.0.1.0.0.2.IP6.ARPA. IN PTR + * + * ANSWER SECTION: + * 1.3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.9.b.1.0.1.0.0.0.0.7.4.0.1.0.0.2.IP6.ARPA. 254148 IN PTR ipv6.cybernode.com. + * + * If 'use_bitstring == 1', try to use the more compact RFC-2673 bitstring format. + * Thus the above 'dig' query should become: + * [x13000000000000009b10100007401002].IP6.ARPA. IN PTR + */ +static int convert_query (char **name_p, int use_bitstring) +{ +#ifndef MAX_IP6_RR +#define MAX_IP6_RR (16*sizeof(".x.x") + sizeof(".IP6.ARPA") + 1) +#endif + +#ifdef HAVE_INET_PTON + #define ACCEPTED_RETVAL4 1 + #define ACCEPTED_RETVAL6 1 +#else + #define ACCEPTED_RETVAL4 32 + #define ACCEPTED_RETVAL6 128 +#endif + + static char new_name [MAX_IP6_RR]; + static const char hex_chars[] = "0123456789ABCDEF"; + + union { + struct in_addr addr4; + struct ares_in6_addr addr6; + } addr; + + if (ares_inet_pton (AF_INET, *name_p, &addr.addr4) == 1) + { + unsigned long laddr = ntohl(addr.addr4.s_addr); + unsigned long a1 = (laddr >> 24UL) & 0xFFUL; + unsigned long a2 = (laddr >> 16UL) & 0xFFUL; + unsigned long a3 = (laddr >> 8UL) & 0xFFUL; + unsigned long a4 = laddr & 0xFFUL; + + snprintf(new_name, sizeof(new_name), "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1); + *name_p = new_name; + return (1); + } + + if (ares_inet_pton(AF_INET6, *name_p, &addr.addr6) == 1) + { + char *c = new_name; + const unsigned char *ip = (const unsigned char*) &addr.addr6; + int max_i = (int)sizeof(addr.addr6) - 1; + int i, hi, lo; + + /* Use the more compact RFC-2673 notation? + * Currently doesn't work or unsupported by the DNS-servers I've tested against. + */ + if (use_bitstring) + { + *c++ = '\\'; + *c++ = '['; + *c++ = 'x'; + for (i = max_i; i >= 0; i--) + { + hi = ip[i] >> 4; + lo = ip[i] & 15; + *c++ = hex_chars [lo]; + *c++ = hex_chars [hi]; + } + strcpy (c, "].IP6.ARPA"); + } + else + { + for (i = max_i; i >= 0; i--) + { + hi = ip[i] >> 4; + lo = ip[i] & 15; + *c++ = hex_chars [lo]; + *c++ = '.'; + *c++ = hex_chars [hi]; + *c++ = '.'; + } + strcpy (c, "IP6.ARPA"); + } + *name_p = new_name; + return (1); + } + printf("Address %s was not legal for this query.\n", *name_p); + return (0); +} + +static const char *type_name(int type) +{ + int i; + + for (i = 0; i < ntypes; i++) + { + if (types[i].value == type) + return types[i].name; + } + return "(unknown)"; +} + +static const char *class_name(int dnsclass) +{ + int i; + + for (i = 0; i < nclasses; i++) + { + if (classes[i].value == dnsclass) + return classes[i].name; + } + return "(unknown)"; +} + +static void usage(void) +{ + fprintf(stderr, "usage: adig [-h] [-d] [-f flag] [-s server] [-c class] " + "[-t type] [-T|U port] [-x|-xx] name ...\n"); + exit(1); +} + +static void destroy_addr_list(struct ares_addr_node *head) +{ + while(head) + { + struct ares_addr_node *detached = head; + head = head->next; + free(detached); + } +} + +static void append_addr_list(struct ares_addr_node **head, + struct ares_addr_node *node) +{ + struct ares_addr_node *last; + node->next = NULL; + if(*head) + { + last = *head; + while(last->next) + last = last->next; + last->next = node; + } + else + *head = node; +} + + +/* Information from the man page. Formatting taken from man -h */ +static void print_help_info_adig(void) { + printf("adig, version %s \n\n", ARES_VERSION_STR); + printf("usage: adig [-h] [-d] [-f flag] [-s server] [-c class] [-t type] [-T|U port] [-x | -xx] name ...\n\n" + " d : Print some extra debugging output.\n" + " f : Add a flag. Possible values for flag are igntc, noaliases, norecurse, primary, stayopen, usevc.\n" + " h : Display this help and exit.\n\n" + " T port : Use specified TCP port to connect to DNS server.\n" + " U port : Use specified UDP port to connect to DNS server.\n" + " c class : Set the query class. Possible values for class are NY, CHAOS, HS, IN (default).\n" + " s server : Connect to specified DNS server, instead of the system's default one(s).\n" + " t type : Query records of specified type. \n" + " Possible values for type are A \n" + " (default), AAAA, AFSDB, ANY,\n" + " AXFR, CNAME, GPOS, HINFO, ISDN,\n" + " KEY, LOC, MAILA, MAILB, MB, MD,\n" + " MF, MG, MINFO, MR, MX, NAPTR, NS,\n" + " NSAP, NSAP_PTR, NULL, PTR, PX, RP,\n" + " RT, SIG, SOA, SRV, TXT, URI, WKS, X25\n\n" + " -x : For a '-t PTR a.b.c.d' lookup, query for 'd.c.b.a.in-addr.arpa.'\n" + " -xx : As above, but for IPv6, compact the format into a bitstring like\n" + " '[xabcdef00000000000000000000000000].IP6.ARPA.'\n"); + exit(0); +} diff --git a/deps/cares/src/tools/ahost.c b/deps/cares/src/tools/ahost.c new file mode 100644 index 00000000000000..77ca7cd091ef43 --- /dev/null +++ b/deps/cares/src/tools/ahost.c @@ -0,0 +1,231 @@ +/* Copyright 1998 by the Massachusetts Institute of Technology. + * + * + * Permission to use, copy, modify, and distribute this + * software and its documentation for any purpose and without + * fee is hereby granted, provided that the above copyright + * notice appear in all copies and that both that copyright + * notice and this permission notice appear in supporting + * documentation, and that the name of M.I.T. not be used in + * advertising or publicity pertaining to distribution of the + * software without specific, written prior permission. + * M.I.T. makes no representations about the suitability of + * this software for any purpose. It is provided "as is" + * without express or implied warranty. + */ + +#include "ares_setup.h" + +#if !defined(WIN32) || defined(WATT32) +#include +#include +#include +#endif + +#ifdef HAVE_STRINGS_H +#include +#endif + +#include "ares.h" +#include "ares_dns.h" +#include "ares_getopt.h" +#include "ares_ipv6.h" +#include "ares_nowarn.h" + +#ifndef HAVE_STRDUP +# include "ares_strdup.h" +# define strdup(ptr) ares_strdup(ptr) +#endif + +#ifndef HAVE_STRCASECMP +# include "ares_strcasecmp.h" +# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2) +#endif + +#ifndef HAVE_STRNCASECMP +# include "ares_strcasecmp.h" +# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n) +#endif + +static void callback(void *arg, int status, int timeouts, struct hostent *host); +static void usage(void); +static void print_help_info_ahost(void); + +int main(int argc, char **argv) +{ + struct ares_options options; + int optmask = 0; + ares_channel channel; + int status, nfds, c, addr_family = AF_INET; + fd_set read_fds, write_fds; + struct timeval *tvp, tv; + struct in_addr addr4; + struct ares_in6_addr addr6; + +#ifdef USE_WINSOCK + WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK); + WSADATA wsaData; + WSAStartup(wVersionRequested, &wsaData); +#endif + + memset(&options, 0, sizeof(options)); + + status = ares_library_init(ARES_LIB_INIT_ALL); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status)); + return 1; + } + + while ((c = ares_getopt(argc,argv,"dt:h?s:")) != -1) + { + switch (c) + { + case 'd': +#ifdef WATT32 + dbug_init(); +#endif + break; + case 's': + optmask |= ARES_OPT_DOMAINS; + options.ndomains++; + options.domains = (char **)realloc(options.domains, + options.ndomains * sizeof(char *)); + options.domains[options.ndomains - 1] = strdup(optarg); + break; + case 't': + if (!strcasecmp(optarg,"a")) + addr_family = AF_INET; + else if (!strcasecmp(optarg,"aaaa")) + addr_family = AF_INET6; + else if (!strcasecmp(optarg,"u")) + addr_family = AF_UNSPEC; + else + usage(); + break; + case 'h': + print_help_info_ahost(); + break; + case '?': + print_help_info_ahost(); + break; + default: + usage(); + break; + } + } + + argc -= optind; + argv += optind; + if (argc < 1) + usage(); + + status = ares_init_options(&channel, &options, optmask); + if (status != ARES_SUCCESS) + { + fprintf(stderr, "ares_init: %s\n", ares_strerror(status)); + return 1; + } + + /* Initiate the queries, one per command-line argument. */ + for ( ; *argv; argv++) + { + if (ares_inet_pton(AF_INET, *argv, &addr4) == 1) + { + ares_gethostbyaddr(channel, &addr4, sizeof(addr4), AF_INET, callback, + *argv); + } + else if (ares_inet_pton(AF_INET6, *argv, &addr6) == 1) + { + ares_gethostbyaddr(channel, &addr6, sizeof(addr6), AF_INET6, callback, + *argv); + } + else + { + ares_gethostbyname(channel, *argv, addr_family, callback, *argv); + } + } + + /* Wait for all queries to complete. */ + for (;;) + { + int res; + FD_ZERO(&read_fds); + FD_ZERO(&write_fds); + nfds = ares_fds(channel, &read_fds, &write_fds); + if (nfds == 0) + break; + tvp = ares_timeout(channel, NULL, &tv); + res = select(nfds, &read_fds, &write_fds, NULL, tvp); + if (-1 == res) + break; + ares_process(channel, &read_fds, &write_fds); + } + + ares_destroy(channel); + + ares_library_cleanup(); + +#ifdef USE_WINSOCK + WSACleanup(); +#endif + + return 0; +} + +static void callback(void *arg, int status, int timeouts, struct hostent *host) +{ + char **p; + + (void)timeouts; + + if (status != ARES_SUCCESS) + { + fprintf(stderr, "%s: %s\n", (char *) arg, ares_strerror(status)); + return; + } + + for (p = host->h_addr_list; *p; p++) + { + char addr_buf[46] = "??"; + + ares_inet_ntop(host->h_addrtype, *p, addr_buf, sizeof(addr_buf)); + printf("%-32s\t%s", host->h_name, addr_buf); +#if 0 + if (host->h_aliases[0]) + { + int i; + + printf (", Aliases: "); + for (i = 0; host->h_aliases[i]; i++) + printf("%s ", host->h_aliases[i]); + } +#endif + puts(""); + } +} + +static void usage(void) +{ + fprintf(stderr, "usage: ahost [-h] [-d] [-s {domain}] [-t {a|aaaa|u}] {host|addr} ...\n"); + exit(1); +} + +/* Information from the man page. Formatting taken from man -h */ +static void print_help_info_ahost(void) { + printf("ahost, version %s \n\n", ARES_VERSION_STR); + printf("usage: ahost [-h] [-d] [-s {domain}] [-t {a|aaaa|u}] {host|addr} ...\n\n" + " d : Print some extra debugging output.\n" + " h : Display this help and exit.\n\n" + " s domain : Specify the domain to search instead of \n" + " using the default values from \n" + " /etc/resolv.conf. This option only has an \n" + " effect on platforms that use /etc/resolv.conf\n" + " for DNS configuration; it has no effect on other\n" + " platforms (such as Win32 or Android).\n" + " t type : If type is \"a\", print the A record (default).\n" + " If type is \"aaaa\", print the AAAA record. If\n" + " type is \"u\", look for either AAAA or A record\n" + " (in that order).\n\n"); + exit(0); +} diff --git a/deps/icu-small/LICENSE b/deps/icu-small/LICENSE index 5d664a083b986f..970ae074cbf555 100644 --- a/deps/icu-small/LICENSE +++ b/deps/icu-small/LICENSE @@ -281,31 +281,29 @@ property of their respective owners. 3. Lao Word Break Dictionary Data (laodict.txt) - # Copyright (c) 2013 International Business Machines Corporation - # and others. All Rights Reserved. + # Copyright (C) 2016 and later: Unicode, Inc. and others. + # License & terms of use: http://www.unicode.org/copyright.html + # Copyright (c) 2015 International Business Machines Corporation + # and others. All Rights Reserved. # - # Project: https://github.com/veer66/lao-dictionary - # Dictionary: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary.txt - # License: https://github.com/veer66/lao-dictionary/blob/master/Lao-Dictionary-LICENSE.txt - # (copied below) + # Project: https://github.com/rober42539/lao-dictionary + # Dictionary: https://github.com/rober42539/lao-dictionary/laodict.txt + # License: https://github.com/rober42539/lao-dictionary/LICENSE.txt + # (copied below) # - # This file is derived from the above dictionary, with slight - # modifications. + # This file is derived from the above dictionary version of Nov 22, 2020 # ---------------------------------------------------------------------- # Copyright (C) 2013 Brian Eugene Wilson, Robert Martin Campbell. # All rights reserved. # # Redistribution and use in source and binary forms, with or without - # modification, - # are permitted provided that the following conditions are met: - # - # - # Redistributions of source code must retain the above copyright notice, this - # list of conditions and the following disclaimer. Redistributions in - # binary form must reproduce the above copyright notice, this list of - # conditions and the following disclaimer in the documentation and/or - # other materials provided with the distribution. + # modification, are permitted provided that the following conditions are met: # + # Redistributions of source code must retain the above copyright notice, this + # list of conditions and the following disclaimer. Redistributions in binary + # form must reproduce the above copyright notice, this list of conditions and + # the following disclaimer in the documentation and/or other materials + # provided with the distribution. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT diff --git a/deps/icu-small/README-FULL-ICU.txt b/deps/icu-small/README-FULL-ICU.txt index 2af8c5faf34727..a6afcf4952945e 100644 --- a/deps/icu-small/README-FULL-ICU.txt +++ b/deps/icu-small/README-FULL-ICU.txt @@ -1,8 +1,9 @@ ICU sources - auto generated by shrink-icu-src.py This directory contains the ICU subset used by --with-intl=full-icu -It is a strict subset of ICU 69 source files with the following exception(s): -* deps/icu-small/source/data/in/icudt69l.dat.bz2 : compressed data file +It is a strict subset of ICU 70 source files with the following exception(s): +* deps/icu-small/source/data/in/icudt70l.dat.bz2 : compressed data file To rebuild this directory, see ../../tools/icu/README.md + diff --git a/deps/icu-small/source/.clang-format b/deps/icu-small/source/.clang-format index 06bd4885a10a21..83cbf646a43de1 100644 --- a/deps/icu-small/source/.clang-format +++ b/deps/icu-small/source/.clang-format @@ -6,6 +6,6 @@ Language: Cpp BasedOnStyle: LLVM IndentWidth: 4 ColumnLimit: 105 -AllowShortBlocksOnASingleLine: false -AllowShortIfStatementsOnASingleLine: true +AllowShortBlocksOnASingleLine: false +AllowShortIfStatementsOnASingleLine: true ... diff --git a/deps/icu-small/source/common/BUILD b/deps/icu-small/source/common/BUILD new file mode 100644 index 00000000000000..e385d3b243faeb --- /dev/null +++ b/deps/icu-small/source/common/BUILD @@ -0,0 +1,1213 @@ +# © 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html + +# This file defines Bazel targets for a subset of ICU4C "common" library header and source files. +# The configuration of dependencies among targets is strongly assisted by the +# file in depstest that maintains such information, at +# icu4c/source/test/depstest/dependencies.txt . + +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +package( + default_visibility = ["//visibility:public"], +) + +# When compiling code in the `common` dir, the constant +# `U_COMMON_IMPLEMENTATION` needs to be defined. See +# https://unicode-org.github.io/icu/userguide/howtouseicu#c-with-your-own-build-system . + +# If linker errors occur, then this may be a sign that the dependencies were +# not specified correctly. Use dependencies.txt in depstest for assistance. See +# https://stackoverflow.com/q/66111709/2077918 . + +cc_library( + name = "headers", + hdrs = glob([ + "unicode/*.h", # public + "*.h", # internal + ], + # Instead of using these checked-in files, our Bazel build process + # regenerates them and then uses the new versions. + # Same list of .h files as in icu4c/source/data/unidata/clean.sh. + exclude = ["norm2_nfc_data.h", "propname_data.h", "*_props_data.h"], + ), + # We need to add includes in order to preserve existing source files' + # include directives that use traditional paths, not paths relative to + # Bazel workspace: + # https://stackoverflow.com/a/65635893/2077918 + includes = ["."], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "platform", + srcs = [ + "cmemory.cpp", + "uobject.cpp", + "cstring.cpp", + "cwchar.cpp", + "uinvchar.cpp", + "charstr.cpp", + "unistr.cpp", + "appendable.cpp", + "stringpiece.cpp", + "ustrtrns.cpp", + "ustring.cpp", + "ustrfmt.cpp", + "utf_impl.cpp", + "putil.cpp", + "ucln_cmn.cpp", + "udataswp.cpp", + "umath.cpp", + "umutex.cpp", + "sharedobject.cpp", + "utrace.cpp", + ], + deps = [ + ":headers", + # omit other deps b/c they are sys symbols + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], + linkopts = ["-ldl"], +) + +cc_library( + name = "utrie", + srcs = ["utrie.cpp"], + deps = [":platform"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "utrie2", + srcs = ["utrie2.cpp"], + deps = [":platform"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "utrie2_builder", + srcs = ["utrie2_builder.cpp"], + deps = [ + ":utrie", + ":utrie2", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucptrie", + srcs = ["ucptrie.cpp"], + deps = [":platform"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "umutablecptrie", + srcs = ["umutablecptrie.cpp"], + deps = [":ucptrie"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "bytestrie", + srcs = ["bytestrie.cpp"], + deps = [":platform"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "bytestriebuilder", + srcs = ["bytestriebuilder.cpp"], + deps = [ + ":bytestrie", + ":stringtriebuilder", + ":sort", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "stringtriebuilder", + srcs = ["stringtriebuilder.cpp"], + deps = [ + ":uhash", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uhash", + hdrs = [ + "uhash.h", + ], + srcs = [ + "uhash.cpp", + ], + deps = [ + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "errorcode", + hdrs = [ + ], + srcs = [ + "errorcode.cpp", + ], + includes = ["."], + deps = [ + ":platform", + ":utypes", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "utypes", + srcs = [ + "utypes.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uniset", + srcs = [ + "uniset.cpp", + "unifilt.cpp", + "unisetspan.cpp", + "bmpset.cpp", + "util.cpp", + "unifunct.cpp", + "usetiter.cpp", + ], + includes = ["."], + deps = [ + ":patternprops", + ":uvector", + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "patternprops", + srcs = [ + "patternprops.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "propsvec", + srcs = [ + "propsvec.cpp", + ], + includes = ["."], + deps = [ + ":sort", + ":utrie2_builder", + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "propname", + srcs = [ + "propname.cpp", + "propname_data.h", + ], + includes = ["."], + deps = [ + ":bytestrie", + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +# Note: The cc_library target names "uvector32" and "uvector64" match the +# dependencies.txt group names, but the filenames are "uvectr32.*"/"uvectr64.*". +cc_library( + name = "uvector32", + srcs = [ + "uvectr32.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uvector64", + srcs = [ + "uvectr64.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "sort", + srcs = [ + "uarrsort.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uvector", + srcs = [ + "uvector.cpp", + ], + includes = ["."], + deps = [ + ":platform", + ":sort", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "breakiterator", + srcs = [ + "brkiter.cpp", + "brkeng.cpp", + "dictbe.cpp", + "dictionarydata.cpp", + "filteredbrk.cpp", + "lstmbe.cpp", + "rbbi.cpp", + "rbbi_cache.cpp", + "rbbidata.cpp", + "rbbinode.cpp", + "rbbirb.cpp", + "rbbiscan.cpp", + "rbbisetb.cpp", + "rbbistbl.cpp", + "rbbitblb.cpp", + "ubrk.cpp", + ], + includes = ["."], + deps = [ + ":bytestrie", + ":headers", + ":normlzr", + ":resourcebundle", + ":schriter", + ":service_registration", + ":ucharstrie", + ":ucharstriebuilder", + ":uhash", + ":uniset_core", + ":uniset_props", + ":ustack", + ":utext", + ":utrie2_builder", + ":uvector32", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "bytesinkutil", + srcs = [ + "bytesinkutil.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":bytestream", + ":edits", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "bytestream", + srcs = [ + "bytestream.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "canonical_iterator", + srcs = [ + "caniter.cpp", + ], + deps = [ + ":normalizer2", + ":usetiter", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "characterproperties", + srcs = [ + "characterproperties.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":emojiprops", + ":ucptrie", + ":umutablecptrie", + ":uniset_core", + ":uprops", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "chariter", + srcs = [ + "chariter.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "edits", + srcs = [ + "edits.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":icu_utility", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "filterednormalizer2", + srcs = [ + "filterednormalizer2.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":normalizer2", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "hashtable", + srcs = [ + "uhash_us.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uhash", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "icu_utility", + srcs = [ + "util.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":patternprops", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "loadednormalizer2", + srcs = [ + "loadednormalizer2impl.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":normalizer2", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "locale_display_names", + srcs = [ + "locdispnames.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":locresdata", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "locresdata", + srcs = [ + "locresdata.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":resourcebundle", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "normlzr", + srcs = [ + "normlzr.cpp", + ], + includes = ["."], + deps = [ + ":filterednormalizer2", + ":headers", + ":schriter", + ":uniset_props", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "parsepos", + srcs = [ + "parsepos.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "resourcebundle", + srcs = [ + "localebuilder.cpp", + "locavailable.cpp", + "locbased.cpp", + "locid.cpp", + "loclikely.cpp", + "locmap.cpp", + "resbund.cpp", + "resource.cpp", + "uloc.cpp", + "uloc_tag.cpp", + "uloc_keytype.cpp", + "uresbund.cpp", + "uresdata.cpp", + "wintz.cpp", + ], + includes = ["."], + deps = [ + ":bytesinkutil", + ":errorcode", + ":headers", + ":propname", + ":sort", + ":stringenumeration", + ":ucol_swp", + ":udata", + ":uhash", + ":uscript_props", + ":uvector", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "schriter", + srcs = [ + "schriter.cpp", + "uchriter.cpp", + ], + includes = ["."], + deps = [ + ":chariter", + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "service_registration", + srcs = [ + "locutil.cpp", + "serv.cpp", + "servlk.cpp", + "servlkf.cpp", + "servls.cpp", + "servnotf.cpp", + "servrbf.cpp", + "servslkf.cpp", + ], + includes = ["."], + deps = [ + ":hashtable", + ":headers", + ":locale_display_names", + ":resourcebundle", + ":uvector", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "stringenumeration", + srcs = [ + "uenum.cpp", + "ustrenum.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ubidi_props", + srcs = [ + "ubidi_props.cpp", + "ubidi_props_data.h", + ], + includes = ["."], + deps = [ + ":headers", + ":utrie2", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucase", + srcs = [ + "ucase.cpp", + "ucase_props_data.h", + ], + includes = ["."], + deps = [ + ":headers", + ":utrie2", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uchar", + srcs = [ + "uchar.cpp", + "uchar_props_data.h", + ], + includes = ["."], + deps = [ + ":headers", + ":utrie2", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "emojiprops", + srcs = [ + "emojiprops.cpp", + "emojiprops.h", + ], + includes = ["."], + deps = [ + ":headers", + ":ucharstrie", + ":ucharstrieiterator", + ":ucptrie", + ":udata", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucharstrie", + srcs = [ + "ucharstrie.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucharstriebuilder", + srcs = [ + "ucharstriebuilder.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":sort", + ":stringtriebuilder", + ":ucharstrie", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucharstrieiterator", + srcs = [ + "ucharstrieiterator.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":ucharstrie", + ":uvector32", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ucol_swp", + srcs = [ + "ucol_swp.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":utrie_swap", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "udata", + srcs = [ + "restrace.cpp", + "ucmndata.cpp", + "udata.cpp", + "udatamem.cpp", + "umapfile.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":icu_utility", + ":platform", + ":uhash", + "//icu4c/source/stubdata", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uiter", + srcs = [ + "uiter.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ulist", + srcs = [ + "ulist.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "unames", + srcs = [ + "unames.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uchar", + ":udata", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "unifiedcache", + srcs = [ + "unifiedcache.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ":uhash", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uniset_core", + srcs = [ + "bmpset.cpp", + "unifilt.cpp", + "unifunct.cpp", + "uniset.cpp", + "unisetspan.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":icu_utility", + ":patternprops", + ":uvector", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uniset_closure", + srcs = [ + "uniset_closure.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uniset_core", + ":unistr_case_locale", + ":unistr_titlecase_brkiter", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uniset_props", + srcs = [ + "uniset_props.cpp", + "ruleiter.cpp", + ], + includes = ["."], + deps = [ + ":characterproperties", + ":headers", + ":parsepos", + ":propname", + ":resourcebundle", + ":unames", + ":uniset_core", + ":unistr_case", + ":uprops", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "unistr_case", + srcs = [ + "unistr_case.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":ustring_case", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "unistr_case_locale", + srcs = [ + "unistr_case_locale.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":unistr_case", + ":ustring_case_locale", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "unistr_titlecase_brkiter", + srcs = [ + "unistr_titlecase_brkiter.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":ustr_titlecase_brkiter", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uprops", + srcs = [ + "uprops.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":emojiprops", + ":loadednormalizer2", + ":normalizer2", + ":ubidi_props", + ":ucase", + ":uchar", + ":unistr_case", + ":ustring_case", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uscript_props", + srcs = [ + "uscript_props.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uset", + srcs = [ + "uset.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ":uniset_core", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "uset_props", + srcs = [ + "uset_props.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uniset_closure", + ":uniset_core", + ":uniset_props", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "usetiter", + srcs = [ + "usetiter.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":platform", + ":uniset_core", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ustack", + srcs = [ + "ustack.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uvector", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ustr_titlecase_brkiter", + srcs = [ + "ustr_titlecase_brkiter.cpp", + ], + includes = ["."], + deps = [ + ":breakiterator", + ":headers", + ":ucase", + ":ustring_case_locale", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ustring_case", + srcs = [ + "ustrcase.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":ucase", + ":uchar", + ":edits", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "ustring_case_locale", + srcs = [ + "ustrcase_locale.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":resourcebundle", + ":ustring_case", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "utext", + srcs = [ + "utext.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":ucase", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +cc_library( + name = "utrie_swap", + srcs = [ + "utrie_swap.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":udata", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) + +# This target depends on a header file that contains NFC/NFD normalization data. +# This header file is generated by a script (generate.sh) that invokes the gennorm2 binary. +# See the Unicode update change log (changes.txt). +cc_library( + name = "normalizer2", + srcs = [ + "norm2_nfc_data.h", # generated by gennorm2 + "normalizer2.cpp", + "normalizer2impl.cpp", + ], + includes = ["."], + hdrs = [ + "normalizer2impl.h", + ], + deps = [ + ":headers", + ], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) diff --git a/deps/icu-small/source/common/brkeng.cpp b/deps/icu-small/source/common/brkeng.cpp index 68c74f2359c4a1..52e9c53621dca2 100644 --- a/deps/icu-small/source/common/brkeng.cpp +++ b/deps/icu-small/source/common/brkeng.cpp @@ -25,6 +25,7 @@ #include "brkeng.h" #include "cmemory.h" #include "dictbe.h" +#include "lstmbe.h" #include "charstr.h" #include "dictionarydata.h" #include "mutex.h" @@ -77,8 +78,10 @@ int32_t UnhandledEngine::findBreaks( UText *text, int32_t /* startPos */, int32_t endPos, - UVector32 &/*foundBreaks*/ ) const { - UChar32 c = utext_current32(text); + UVector32 &/*foundBreaks*/, + UErrorCode &status) const { + if (U_FAILURE(status)) return 0; + UChar32 c = utext_current32(text); while((int32_t)utext_getNativeIndex(text) < endPos && fHandled->contains(c)) { utext_next32(text); // TODO: recast loop to work with post-increment operations. c = utext_current32(text); @@ -132,14 +135,13 @@ ICULanguageBreakFactory::getEngineFor(UChar32 c) { static UMutex gBreakEngineMutex; Mutex m(&gBreakEngineMutex); - if (fEngines == NULL) { - UStack *engines = new UStack(_deleteEngine, NULL, status); - if (U_FAILURE(status) || engines == NULL) { + if (fEngines == nullptr) { + LocalPointer engines(new UStack(_deleteEngine, nullptr, status), status); + if (U_FAILURE(status) ) { // Note: no way to return error code to caller. - delete engines; - return NULL; + return nullptr; } - fEngines = engines; + fEngines = engines.orphan(); } else { int32_t i = fEngines->size(); while (--i >= 0) { @@ -149,13 +151,13 @@ ICULanguageBreakFactory::getEngineFor(UChar32 c) { } } } - + // We didn't find an engine. Create one. lbe = loadEngineFor(c); - if (lbe != NULL) { + if (lbe != nullptr) { fEngines->push((void *)lbe, status); } - return lbe; + return U_SUCCESS(status) ? lbe : nullptr; } const LanguageBreakEngine * @@ -163,9 +165,26 @@ ICULanguageBreakFactory::loadEngineFor(UChar32 c) { UErrorCode status = U_ZERO_ERROR; UScriptCode code = uscript_getScript(c, &status); if (U_SUCCESS(status)) { + const LanguageBreakEngine *engine = nullptr; + // Try to use LSTM first + const LSTMData *data = CreateLSTMDataForScript(code, status); + if (U_SUCCESS(status)) { + if (data != nullptr) { + engine = CreateLSTMBreakEngine(code, data, status); + if (U_SUCCESS(status) && engine != nullptr) { + return engine; + } + if (engine != nullptr) { + delete engine; + engine = nullptr; + } else { + DeleteLSTMData(data); + } + } + } + status = U_ZERO_ERROR; // fallback to dictionary based DictionaryMatcher *m = loadDictionaryMatcherFor(code); if (m != NULL) { - const LanguageBreakEngine *engine = NULL; switch(code) { case USCRIPT_THAI: engine = new ThaiBreakEngine(m, status); @@ -224,7 +243,7 @@ ICULanguageBreakFactory::loadEngineFor(UChar32 c) { } DictionaryMatcher * -ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) { +ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) { UErrorCode status = U_ZERO_ERROR; // open root from brkitr tree. UResourceBundle *b = ures_open(U_ICUDATA_BRKITR, "", &status); @@ -265,7 +284,7 @@ ICULanguageBreakFactory::loadDictionaryMatcherFor(UScriptCode script) { m = new UCharsDictionaryMatcher(characters, file); } if (m == NULL) { - // no matcher exists to take ownership - either we are an invalid + // no matcher exists to take ownership - either we are an invalid // type or memory allocation failed udata_close(file); } diff --git a/deps/icu-small/source/common/brkeng.h b/deps/icu-small/source/common/brkeng.h index 155433b89a86ac..6843f1cc953511 100644 --- a/deps/icu-small/source/common/brkeng.h +++ b/deps/icu-small/source/common/brkeng.h @@ -68,12 +68,14 @@ class LanguageBreakEngine : public UMemory { * @param startPos The start of the run within the supplied text. * @param endPos The end of the run within the supplied text. * @param foundBreaks A Vector of int32_t to receive the breaks. + * @param status Information on any errors encountered. * @return The number of breaks found. */ virtual int32_t findBreaks( UText *text, int32_t startPos, int32_t endPos, - UVector32 &foundBreaks ) const = 0; + UVector32 &foundBreaks, + UErrorCode &status) const = 0; }; @@ -174,7 +176,7 @@ class UnhandledEngine : public LanguageBreakEngine { * @return true if this engine handles the particular character and break * type. */ - virtual UBool handles(UChar32 c) const; + virtual UBool handles(UChar32 c) const override; /** *

Find any breaks within a run in the supplied text.

@@ -185,12 +187,14 @@ class UnhandledEngine : public LanguageBreakEngine { * @param startPos The start of the run within the supplied text. * @param endPos The end of the run within the supplied text. * @param foundBreaks An allocated C array of the breaks found, if any + * @param status Information on any errors encountered. * @return The number of breaks found. */ virtual int32_t findBreaks( UText *text, int32_t startPos, int32_t endPos, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode &status) const override; /** *

Tell the engine to handle a particular character and break type.

@@ -243,7 +247,7 @@ class ICULanguageBreakFactory : public LanguageBreakFactory { * sought. * @return A LanguageBreakEngine with the desired characteristics, or 0. */ - virtual const LanguageBreakEngine *getEngineFor(UChar32 c); + virtual const LanguageBreakEngine *getEngineFor(UChar32 c) override; protected: /** diff --git a/deps/icu-small/source/common/brkiter.cpp b/deps/icu-small/source/common/brkiter.cpp index 7b8bff4b921c78..8b228acf2c384c 100644 --- a/deps/icu-small/source/common/brkiter.cpp +++ b/deps/icu-small/source/common/brkiter.cpp @@ -120,7 +120,7 @@ BreakIterator::buildInstance(const Locale& loc, const char *type, UErrorCode &st // If there is a result, set the valid locale and actual locale, and the kind if (U_SUCCESS(status) && result != NULL) { U_LOCALE_BASED(locBased, *(BreakIterator*)result); - locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), + locBased.setLocaleIDs(ures_getLocaleByType(b, ULOC_VALID_LOCALE, &status), actualLocale.data()); } @@ -234,7 +234,7 @@ class ICUBreakIteratorFactory : public ICUResourceBundleFactory { public: virtual ~ICUBreakIteratorFactory(); protected: - virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /*service*/, UErrorCode& status) const { + virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /*service*/, UErrorCode& status) const override { return BreakIterator::makeInstance(loc, kind, status); } }; @@ -254,11 +254,11 @@ class ICUBreakIteratorService : public ICULocaleService { virtual ~ICUBreakIteratorService(); - virtual UObject* cloneInstance(UObject* instance) const { + virtual UObject* cloneInstance(UObject* instance) const override { return ((BreakIterator*)instance)->clone(); } - virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const { + virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const override { LocaleKey& lkey = (LocaleKey&)key; int32_t kind = lkey.kind(); Locale loc; @@ -266,7 +266,7 @@ class ICUBreakIteratorService : public ICULocaleService { return BreakIterator::makeInstance(loc, kind, status); } - virtual UBool isDefault() const { + virtual UBool isDefault() const override { return countFactories() == 1; } }; @@ -300,7 +300,7 @@ static UBool U_CALLCONV breakiterator_cleanup(void) { U_CDECL_END U_NAMESPACE_BEGIN -static void U_CALLCONV +static void U_CALLCONV initService(void) { gService = new ICUBreakIteratorService(); ucln_common_registerCleanup(UCLN_COMMON_BREAKITERATOR, breakiterator_cleanup); diff --git a/deps/icu-small/source/common/bytestriebuilder.cpp b/deps/icu-small/source/common/bytestriebuilder.cpp index 28256f272a74a3..82dad42ca5fb1c 100644 --- a/deps/icu-small/source/common/bytestriebuilder.cpp +++ b/deps/icu-small/source/common/bytestriebuilder.cpp @@ -343,13 +343,13 @@ BytesTrieBuilder::BTLinearMatchNode::BTLinearMatchNode(const char *bytes, int32_ static_cast(hash)*37u + static_cast(ustr_hashCharsN(bytes, len))); } -UBool +bool BytesTrieBuilder::BTLinearMatchNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!LinearMatchNode::operator==(other)) { - return FALSE; + return false; } const BTLinearMatchNode &o=(const BTLinearMatchNode &)other; return 0==uprv_memcmp(s, o.s, length); diff --git a/deps/icu-small/source/common/caniter.cpp b/deps/icu-small/source/common/caniter.cpp index d57c64247fc591..a2083afde3cdb1 100644 --- a/deps/icu-small/source/common/caniter.cpp +++ b/deps/icu-small/source/common/caniter.cpp @@ -208,12 +208,12 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st goto CleanPartialInitialization; } - // i should initialy be the number of code units at the + // i should initially be the number of code units at the // start of the string i = U16_LENGTH(source.char32At(0)); - //int32_t i = 1; + // int32_t i = 1; // find the segments - // This code iterates through the source string and + // This code iterates through the source string and // extracts segments that end up on a codepoint that // doesn't start any decompositions. (Analysis is done // on the NFD form - see above). @@ -241,7 +241,7 @@ void CanonicalIterator::setSource(const UnicodeString &newSource, UErrorCode &st for (i = 0; i < current_length; i++) { current[i] = 0; } - // for each segment, get all the combinations that can produce + // for each segment, get all the combinations that can produce // it after NFD normalization for (i = 0; i < pieces_length; ++i) { //if (PROGRESS) printf("SEGMENT\n"); @@ -316,7 +316,7 @@ void U_EXPORT2 CanonicalIterator::permute(UnicodeString &source, UBool skipZeros if(U_FAILURE(status)) { return; } - // The upper remove is destructive. The question is do we have to make a copy, or we don't care about the contents + // The upper remove is destructive. The question is do we have to make a copy, or we don't care about the contents // of source at this point. // prefix this character to all of them @@ -493,9 +493,9 @@ Hashtable *CanonicalIterator::getEquivalents2(Hashtable *fillinResult, const UCh } /** - * See if the decomposition of cp2 is at segment starting at segmentPos - * (with canonical rearrangment!) - * If so, take the remainder, and return the equivalents + * See if the decomposition of cp2 is at segment starting at segmentPos + * (with canonical rearrangement!) + * If so, take the remainder, and return the equivalents */ Hashtable *CanonicalIterator::extract(Hashtable *fillinResult, UChar32 comp, const UChar *segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) { //Hashtable *CanonicalIterator::extract(UChar32 comp, const UnicodeString &segment, int32_t segLen, int32_t segmentPos, UErrorCode &status) { diff --git a/deps/icu-small/source/common/characterproperties.cpp b/deps/icu-small/source/common/characterproperties.cpp index 7b50a4e2051b97..a84996b47c3b89 100644 --- a/deps/icu-small/source/common/characterproperties.cpp +++ b/deps/icu-small/source/common/characterproperties.cpp @@ -14,6 +14,7 @@ #include "unicode/uscript.h" #include "unicode/uset.h" #include "cmemory.h" +#include "emojiprops.h" #include "mutex.h" #include "normalizer2impl.h" #include "uassert.h" @@ -170,6 +171,13 @@ void U_CALLCONV initInclusion(UPropertySource src, UErrorCode &errorCode) { case UPROPS_SRC_VO: uprops_addPropertyStarts((UPropertySource)src, &sa, &errorCode); break; + case UPROPS_SRC_EMOJI: { + const icu::EmojiProps *ep = icu::EmojiProps::getSingleton(errorCode); + if (U_SUCCESS(errorCode)) { + ep->addPropertyStarts(&sa, errorCode); + } + break; + } default: errorCode = U_INTERNAL_PROGRAM_ERROR; break; @@ -268,6 +276,26 @@ UnicodeSet *makeSet(UProperty property, UErrorCode &errorCode) { errorCode = U_MEMORY_ALLOCATION_ERROR; return nullptr; } + if (UCHAR_BASIC_EMOJI <= property && property <= UCHAR_RGI_EMOJI) { + // property of strings + const icu::EmojiProps *ep = icu::EmojiProps::getSingleton(errorCode); + if (U_FAILURE(errorCode)) { return nullptr; } + USetAdder sa = { + (USet *)set.getAlias(), + _set_add, + _set_addRange, + _set_addString, + nullptr, // don't need remove() + nullptr // don't need removeRange() + }; + ep->addStrings(&sa, property, errorCode); + if (property != UCHAR_BASIC_EMOJI && property != UCHAR_RGI_EMOJI) { + // property of _only_ strings + set->freeze(); + return set.orphan(); + } + } + const UnicodeSet *inclusions = icu::CharacterProperties::getInclusionsForProperty(property, errorCode); if (U_FAILURE(errorCode)) { return nullptr; } diff --git a/deps/icu-small/source/common/cmemory.cpp b/deps/icu-small/source/common/cmemory.cpp index 0b7e432c4dee46..663c1411e4cb3b 100644 --- a/deps/icu-small/source/common/cmemory.cpp +++ b/deps/icu-small/source/common/cmemory.cpp @@ -38,7 +38,7 @@ static UMemFreeFn *pFree; #if U_DEBUG && defined(UPRV_MALLOC_COUNT) #include static int n=0; -static long b=0; +static long b=0; #endif U_CAPI void * U_EXPORT2 diff --git a/deps/icu-small/source/common/cmemory.h b/deps/icu-small/source/common/cmemory.h index a925f3df637378..f03b7dcce6b9ab 100644 --- a/deps/icu-small/source/common/cmemory.h +++ b/deps/icu-small/source/common/cmemory.h @@ -150,7 +150,7 @@ uprv_calloc(size_t num, size_t size) U_MALLOC_ATTR U_ALLOC_SIZE_ATTR2(1,2); * Clears any user heap functions from u_setMemoryFunctions() * Does NOT deallocate any remaining allocated memory. */ -U_CFUNC UBool +U_CFUNC UBool cmemory_cleanup(void); /** diff --git a/deps/icu-small/source/common/common.rc b/deps/icu-small/source/common/common.rc index 5c723a27c52820..020abacc0d81fe 100644 --- a/deps/icu-small/source/common/common.rc +++ b/deps/icu-small/source/common/common.rc @@ -18,7 +18,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// +// LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(1252) @@ -29,17 +29,17 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "msvcres.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include \0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -107,3 +107,4 @@ END ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED + diff --git a/deps/icu-small/source/common/cstr.cpp b/deps/icu-small/source/common/cstr.cpp index 0114434329ad7e..24654f8fc22897 100644 --- a/deps/icu-small/source/common/cstr.cpp +++ b/deps/icu-small/source/common/cstr.cpp @@ -30,7 +30,7 @@ CStr::CStr(const UnicodeString &in) { } #else // No conversion available. Convert any invariant characters; substitute '?' for the rest. - // Note: can't just call u_UCharsToChars() or CharString.appendInvariantChars() on the + // Note: can't just call u_UCharsToChars() or CharString.appendInvariantChars() on the // whole string because they require that the entire input be invariant. char buf[2]; for (int i=0; i=2 && radix<=16); uval = (uint32_t) v; if(v<0 && radix == 10) { /* Only in base 10 do we conside numbers to be signed. */ - uval = (uint32_t)(-v); + uval = (uint32_t)(-v); buffer[length++] = '-'; } - + tbx = sizeof(tbuf)-1; tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */ do { @@ -177,7 +177,7 @@ T_CString_integerToString(char* buffer, int32_t v, int32_t radix) tbuf[--tbx] = (char)(T_CString_itosOffset(digit)); uval = uval / radix; } while (uval != 0); - + /* copy converted number into user buffer */ uprv_strcpy(buffer+length, tbuf+tbx); length += sizeof(tbuf) - tbx -1; @@ -199,15 +199,15 @@ T_CString_int64ToString(char* buffer, int64_t v, uint32_t radix) uint8_t digit; int32_t length = 0; uint64_t uval; - + U_ASSERT(radix>=2 && radix<=16); uval = (uint64_t) v; if(v<0 && radix == 10) { /* Only in base 10 do we conside numbers to be signed. */ - uval = (uint64_t)(-v); + uval = (uint64_t)(-v); buffer[length++] = '-'; } - + tbx = sizeof(tbuf)-1; tbuf[tbx] = 0; /* We are generating the digits backwards. Null term the end. */ do { @@ -215,7 +215,7 @@ T_CString_int64ToString(char* buffer, int64_t v, uint32_t radix) tbuf[--tbx] = (char)(T_CString_itosOffset(digit)); uval = uval / radix; } while (uval != 0); - + /* copy converted number into user buffer */ uprv_strcpy(buffer+length, tbuf+tbx); length += sizeof(tbuf) - tbx -1; @@ -331,7 +331,7 @@ uprv_strndup(const char *src, int32_t n) { dup = uprv_strdup(src); } else { dup = (char*)uprv_malloc(n+1); - if (dup) { + if (dup) { uprv_memcpy(dup, src, n); dup[n] = 0; } diff --git a/deps/icu-small/source/common/cwchar.cpp b/deps/icu-small/source/common/cwchar.cpp index 4fd531114e8df8..20c7d71e0f0769 100644 --- a/deps/icu-small/source/common/cwchar.cpp +++ b/deps/icu-small/source/common/cwchar.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ****************************************************************************** * * Copyright (C) 2001, International Business Machines @@ -52,3 +52,4 @@ U_CAPI size_t uprv_wcslen(const wchar_t *src) { } #endif + diff --git a/deps/icu-small/source/common/cwchar.h b/deps/icu-small/source/common/cwchar.h index 939eb599d69f8f..8fd041a1b9c568 100644 --- a/deps/icu-small/source/common/cwchar.h +++ b/deps/icu-small/source/common/cwchar.h @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ****************************************************************************** * * Copyright (C) 2001, International Business Machines @@ -42,11 +42,11 @@ # define uprv_wcscat wcscat # define uprv_wcslen wcslen #else -U_CAPI wchar_t* U_EXPORT2 +U_CAPI wchar_t* U_EXPORT2 uprv_wcscpy(wchar_t *dst, const wchar_t *src); -U_CAPI wchar_t* U_EXPORT2 +U_CAPI wchar_t* U_EXPORT2 uprv_wcscat(wchar_t *dst, const wchar_t *src); -U_CAPI size_t U_EXPORT2 +U_CAPI size_t U_EXPORT2 uprv_wcslen(const wchar_t *src); #endif diff --git a/deps/icu-small/source/common/dictbe.cpp b/deps/icu-small/source/common/dictbe.cpp index 88533cedcecc83..4d158e3226db28 100644 --- a/deps/icu-small/source/common/dictbe.cpp +++ b/deps/icu-small/source/common/dictbe.cpp @@ -47,7 +47,9 @@ int32_t DictionaryBreakEngine::findBreaks( UText *text, int32_t startPos, int32_t endPos, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status) const { + if (U_FAILURE(status)) return 0; (void)startPos; // TODO: remove this param? int32_t result = 0; @@ -66,9 +68,9 @@ DictionaryBreakEngine::findBreaks( UText *text, } rangeStart = start; rangeEnd = current; - result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks); + result = divideUpDictionaryRange(text, rangeStart, rangeEnd, foundBreaks, status); utext_setNativeIndex(text, current); - + return result; } @@ -106,24 +108,24 @@ class PossibleWord { public: PossibleWord() : count(0), prefix(0), offset(-1), mark(0), current(0) {} ~PossibleWord() {} - + // Fill the list of candidates if needed, select the longest, and return the number found int32_t candidates( UText *text, DictionaryMatcher *dict, int32_t rangeEnd ); - + // Select the currently marked candidate, point after it in the text, and invalidate self int32_t acceptMarked( UText *text ); - + // Back up from the current candidate to the next shorter one; return TRUE if that exists // and point the text after it UBool backUp( UText *text ); - + // Return the longest prefix this candidate location shares with a dictionary word // Return value is in code points. int32_t longestPrefix() { return prefix; } - + // Mark the current candidate as the one we like void markCurrent() { mark = current; } - + // Get length in code points of the marked word. int32_t markedCPLength() { return cpLengths[mark]; } }; @@ -179,7 +181,7 @@ static const int32_t THAI_ROOT_COMBINE_THRESHOLD = 3; // dictionary word, with a preceding word static const int32_t THAI_PREFIX_COMBINE_THRESHOLD = 3; -// Ellision character +// Elision character static const int32_t THAI_PAIYANNOI = 0x0E2F; // Repeat character @@ -227,7 +229,9 @@ int32_t ThaiBreakEngine::divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status) const { + if (U_FAILURE(status)) return 0; utext_setNativeIndex(text, rangeStart); utext_moveIndex32(text, THAI_MIN_WORD_SPAN); if (utext_getNativeIndex(text) >= rangeEnd) { @@ -240,18 +244,17 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, int32_t cpWordLength = 0; // Word Length in Code Points. int32_t cuWordLength = 0; // Word length in code units (UText native indexing) int32_t current; - UErrorCode status = U_ZERO_ERROR; PossibleWord words[THAI_LOOKAHEAD]; - + utext_setNativeIndex(text, rangeStart); - + while (U_SUCCESS(status) && (current = (int32_t)utext_getNativeIndex(text)) < rangeEnd) { cpWordLength = 0; cuWordLength = 0; // Look for candidate words at the current position int32_t candidates = words[wordsFound%THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd); - + // If we found exactly one, use that if (candidates == 1) { cuWordLength = words[wordsFound % THAI_LOOKAHEAD].acceptMarked(text); @@ -268,12 +271,12 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, if (words[(wordsFound + 1) % THAI_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) > 0) { // Followed by another dictionary word; mark first word as a good candidate words[wordsFound%THAI_LOOKAHEAD].markCurrent(); - + // If we're already at the end of the range, we're done if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { goto foundBest; } - + // See if any of the possible second words is followed by a third word do { // If we find a third word, stop right away @@ -292,13 +295,13 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, cpWordLength = words[wordsFound % THAI_LOOKAHEAD].markedCPLength(); wordsFound += 1; } - + // We come here after having either found a word or not. We look ahead to the // next word. If it's not a dictionary word, we will combine it with the word we // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. - + UChar32 uc = 0; if ((int32_t)utext_getNativeIndex(text) < rangeEnd && cpWordLength < THAI_ROOT_COMBINE_THRESHOLD) { // if it is a dictionary word, do nothing. If it isn't, then if there is @@ -334,12 +337,12 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, } } } - + // Bump the word count if there wasn't already one if (cuWordLength <= 0) { wordsFound += 1; } - + // Update the length with the passed-over characters cuWordLength += chars; } @@ -348,14 +351,14 @@ ThaiBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, current+cuWordLength); } } - + // Never stop before a combining mark. int32_t currPos; while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; } - + // Look ahead for possible suffixes if a dictionary word does not follow. // We do this in code rather than using a rule so that the heuristic // resynch continues to function. For example, one of the suffix characters @@ -465,7 +468,9 @@ int32_t LaoBreakEngine::divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status) const { + if (U_FAILURE(status)) return 0; if ((rangeEnd - rangeStart) < LAO_MIN_WORD_SPAN) { return 0; // Not enough characters for two words } @@ -474,7 +479,6 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, int32_t cpWordLength = 0; int32_t cuWordLength = 0; int32_t current; - UErrorCode status = U_ZERO_ERROR; PossibleWord words[LAO_LOOKAHEAD]; utext_setNativeIndex(text, rangeStart); @@ -485,7 +489,7 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, // Look for candidate words at the current position int32_t candidates = words[wordsFound%LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd); - + // If we found exactly one, use that if (candidates == 1) { cuWordLength = words[wordsFound % LAO_LOOKAHEAD].acceptMarked(text); @@ -502,12 +506,12 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, if (words[(wordsFound + 1) % LAO_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) > 0) { // Followed by another dictionary word; mark first word as a good candidate words[wordsFound%LAO_LOOKAHEAD].markCurrent(); - + // If we're already at the end of the range, we're done if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { goto foundBest; } - + // See if any of the possible second words is followed by a third word do { // If we find a third word, stop right away @@ -525,9 +529,9 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, cpWordLength = words[wordsFound % LAO_LOOKAHEAD].markedCPLength(); wordsFound += 1; } - + // We come here after having either found a word or not. We look ahead to the - // next word. If it's not a dictionary word, we will combine it withe the word we + // next word. If it's not a dictionary word, we will combine it with the word we // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. @@ -563,12 +567,12 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, } } } - + // Bump the word count if there wasn't already one if (cuWordLength <= 0) { wordsFound += 1; } - + // Update the length with the passed-over characters cuWordLength += chars; } @@ -577,14 +581,14 @@ LaoBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, current + cuWordLength); } } - + // Never stop before a combining mark. int32_t currPos; while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; } - + // Look ahead for possible suffixes if a dictionary word does not follow. // We do this in code rather than using a rule so that the heuristic // resynch continues to function. For example, one of the suffix characters @@ -657,7 +661,9 @@ int32_t BurmeseBreakEngine::divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status ) const { + if (U_FAILURE(status)) return 0; if ((rangeEnd - rangeStart) < BURMESE_MIN_WORD_SPAN) { return 0; // Not enough characters for two words } @@ -666,7 +672,6 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, int32_t cpWordLength = 0; int32_t cuWordLength = 0; int32_t current; - UErrorCode status = U_ZERO_ERROR; PossibleWord words[BURMESE_LOOKAHEAD]; utext_setNativeIndex(text, rangeStart); @@ -677,7 +682,7 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, // Look for candidate words at the current position int32_t candidates = words[wordsFound%BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd); - + // If we found exactly one, use that if (candidates == 1) { cuWordLength = words[wordsFound % BURMESE_LOOKAHEAD].acceptMarked(text); @@ -694,12 +699,12 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, if (words[(wordsFound + 1) % BURMESE_LOOKAHEAD].candidates(text, fDictionary, rangeEnd) > 0) { // Followed by another dictionary word; mark first word as a good candidate words[wordsFound%BURMESE_LOOKAHEAD].markCurrent(); - + // If we're already at the end of the range, we're done if ((int32_t)utext_getNativeIndex(text) >= rangeEnd) { goto foundBest; } - + // See if any of the possible second words is followed by a third word do { // If we find a third word, stop right away @@ -717,9 +722,9 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, cpWordLength = words[wordsFound % BURMESE_LOOKAHEAD].markedCPLength(); wordsFound += 1; } - + // We come here after having either found a word or not. We look ahead to the - // next word. If it's not a dictionary word, we will combine it withe the word we + // next word. If it's not a dictionary word, we will combine it with the word we // just found (if there is one), but only if the preceding word does not exceed // the threshold. // The text iterator should now be positioned at the end of the word we found. @@ -755,12 +760,12 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, } } } - + // Bump the word count if there wasn't already one if (cuWordLength <= 0) { wordsFound += 1; } - + // Update the length with the passed-over characters cuWordLength += chars; } @@ -769,14 +774,14 @@ BurmeseBreakEngine::divideUpDictionaryRange( UText *text, utext_setNativeIndex(text, current + cuWordLength); } } - + // Never stop before a combining mark. int32_t currPos; while ((currPos = (int32_t)utext_getNativeIndex(text)) < rangeEnd && fMarkSet.contains(utext_current32(text))) { utext_next32(text); cuWordLength += (int32_t)utext_getNativeIndex(text) - currPos; } - + // Look ahead for possible suffixes if a dictionary word does not follow. // We do this in code rather than using a rule so that the heuristic // resynch continues to function. For example, one of the suffix characters @@ -861,7 +866,9 @@ int32_t KhmerBreakEngine::divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status ) const { + if (U_FAILURE(status)) return 0; if ((rangeEnd - rangeStart) < KHMER_MIN_WORD_SPAN) { return 0; // Not enough characters for two words } @@ -870,7 +877,6 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, int32_t cpWordLength = 0; int32_t cuWordLength = 0; int32_t current; - UErrorCode status = U_ZERO_ERROR; PossibleWord words[KHMER_LOOKAHEAD]; utext_setNativeIndex(text, rangeStart); @@ -1024,7 +1030,7 @@ KhmerBreakEngine::divideUpDictionaryRange( UText *text, foundBreaks.push((current+cuWordLength), status); } } - + // Don't return a break for the end of the dictionary range if there is one there. if (foundBreaks.peeki() >= rangeEnd) { (void) foundBreaks.popi(); @@ -1098,7 +1104,7 @@ static inline int32_t utext_i32_flag(int32_t bitIndex) { return (int32_t)1 << bitIndex; } - + /* * @param text A UText representing the text * @param rangeStart The start of the range of dictionary characters @@ -1106,11 +1112,13 @@ static inline int32_t utext_i32_flag(int32_t bitIndex) { * @param foundBreaks vector to receive the break positions * @return The number of breaks found */ -int32_t +int32_t CjkBreakEngine::divideUpDictionaryRange( UText *inText, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const { + UVector32 &foundBreaks, + UErrorCode& status) const { + if (U_FAILURE(status)) return 0; if (rangeStart >= rangeEnd) { return 0; } @@ -1122,9 +1130,6 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, // If NULL then mapping is 1:1 LocalPointer inputMap; - UErrorCode status = U_ZERO_ERROR; - - // if UText has the input string as one contiguous UTF-16 chunk if ((inText->providerProperties & utext_i32_flag(UTEXT_PROVIDER_STABLE_CHUNKS)) && inText->chunkNativeStart <= rangeStart && @@ -1169,7 +1174,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, if (U_FAILURE(status)) { return 0; } - + UnicodeString fragment; UnicodeString normalizedFragment; for (int32_t srcI = 0; srcI < inString.length();) { // Once per normalization chunk @@ -1238,7 +1243,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, } } } - + // bestSnlp[i] is the snlp of the best segmentation of the first i // code points in the range to be matched. UVector32 bestSnlp(numCodePts + 1, status); @@ -1248,7 +1253,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, } - // prev[i] is the index of the last CJK code point in the previous word in + // prev[i] is the index of the last CJK code point in the previous word in // the best segmentation of the first i characters. UVector32 prev(numCodePts + 1, status); for(int32_t i = 0; i <= numCodePts; i++){ @@ -1283,8 +1288,8 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, // Note: lengths is filled with code point lengths // The NULL parameter is the ignored code unit lengths. - // if there are no single character matches found in the dictionary - // starting with this character, treat character as a 1-character word + // if there are no single character matches found in the dictionary + // starting with this character, treat character as a 1-character word // with the highest value possible, i.e. the least likely to occur. // Exclude Korean characters from this treatment, as they should be left // together by default. @@ -1357,7 +1362,7 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, numBreaks++; } - // Now that we're done, convert positions in t_boundary[] (indices in + // Now that we're done, convert positions in t_boundary[] (indices in // the normalized input string) back to indices in the original input UText // while reversing t_boundary and pushing values to foundBreaks. int32_t prevCPPos = -1; @@ -1391,3 +1396,4 @@ CjkBreakEngine::divideUpDictionaryRange( UText *inText, U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ + diff --git a/deps/icu-small/source/common/dictbe.h b/deps/icu-small/source/common/dictbe.h index 246c1dc6935fbd..4e70ed38171e44 100644 --- a/deps/icu-small/source/common/dictbe.h +++ b/deps/icu-small/source/common/dictbe.h @@ -62,7 +62,7 @@ class DictionaryBreakEngine : public LanguageBreakEngine { * @return true if this engine handles the particular character and break * type. */ - virtual UBool handles(UChar32 c) const; + virtual UBool handles(UChar32 c) const override; /** *

Find any breaks within a run in the supplied text.

@@ -73,12 +73,14 @@ class DictionaryBreakEngine : public LanguageBreakEngine { * @param startPos The start of the run within the supplied text. * @param endPos The end of the run within the supplied text. * @param foundBreaks vector of int32_t to receive the break positions + * @param status Information on any errors encountered. * @return The number of breaks found. */ virtual int32_t findBreaks( UText *text, int32_t startPos, int32_t endPos, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status ) const override; protected: @@ -96,12 +98,14 @@ class DictionaryBreakEngine : public LanguageBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const = 0; + UVector32 &foundBreaks, + UErrorCode& status) const = 0; }; @@ -153,12 +157,14 @@ class ThaiBreakEngine : public DictionaryBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status) const override; }; @@ -209,12 +215,14 @@ class LaoBreakEngine : public DictionaryBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status) const override; }; @@ -265,12 +273,14 @@ class BurmeseBreakEngine : public DictionaryBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status) const override; }; @@ -321,12 +331,14 @@ class KhmerBreakEngine : public DictionaryBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status) const override; }; @@ -385,12 +397,14 @@ class CjkBreakEngine : public DictionaryBreakEngine { * @param rangeStart The start of the range of dictionary characters * @param rangeEnd The end of the range of dictionary characters * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. * @return The number of breaks found */ virtual int32_t divideUpDictionaryRange( UText *text, int32_t rangeStart, int32_t rangeEnd, - UVector32 &foundBreaks ) const; + UVector32 &foundBreaks, + UErrorCode& status) const override; }; diff --git a/deps/icu-small/source/common/dictionarydata.cpp b/deps/icu-small/source/common/dictionarydata.cpp index 0efa5874931a07..6e2dbee5b618be 100644 --- a/deps/icu-small/source/common/dictionarydata.cpp +++ b/deps/icu-small/source/common/dictionarydata.cpp @@ -30,7 +30,7 @@ const int32_t DictionaryData::TRANSFORM_NONE = 0; const int32_t DictionaryData::TRANSFORM_TYPE_OFFSET = 0x1000000; const int32_t DictionaryData::TRANSFORM_TYPE_MASK = 0x7f000000; const int32_t DictionaryData::TRANSFORM_OFFSET_MASK = 0x1fffff; - + DictionaryMatcher::~DictionaryMatcher() { } @@ -172,10 +172,10 @@ udict_swap(const UDataSwapper *ds, const void *inData, int32_t length, headerSize = udata_swapDataHeader(ds, inData, length, outData, pErrorCode); if (pErrorCode == NULL || U_FAILURE(*pErrorCode)) return 0; pInfo = (const UDataInfo *)((const char *)inData + 4); - if (!(pInfo->dataFormat[0] == 0x44 && - pInfo->dataFormat[1] == 0x69 && - pInfo->dataFormat[2] == 0x63 && - pInfo->dataFormat[3] == 0x74 && + if (!(pInfo->dataFormat[0] == 0x44 && + pInfo->dataFormat[1] == 0x69 && + pInfo->dataFormat[2] == 0x63 && + pInfo->dataFormat[3] == 0x74 && pInfo->formatVersion[0] == 1)) { udata_printError(ds, "udict_swap(): data format %02x.%02x.%02x.%02x (format version %02x) is not recognized as dictionary data\n", pInfo->dataFormat[0], pInfo->dataFormat[1], pInfo->dataFormat[2], pInfo->dataFormat[3], pInfo->formatVersion[0]); diff --git a/deps/icu-small/source/common/dictionarydata.h b/deps/icu-small/source/common/dictionarydata.h index d86c6dfdbbc71b..e75716f54b9fe1 100644 --- a/deps/icu-small/source/common/dictionarydata.h +++ b/deps/icu-small/source/common/dictionarydata.h @@ -62,7 +62,7 @@ class U_COMMON_API DictionaryData : public UMemory { /** * Wrapper class around generic dictionaries, implementing matches(). * getType() should return a TRIE_TYPE_??? constant from DictionaryData. - * + * * All implementations of this interface must be thread-safe if they are to be used inside of the * dictionary-based break iteration code. */ @@ -107,8 +107,8 @@ class U_COMMON_API UCharsDictionaryMatcher : public DictionaryMatcher { virtual ~UCharsDictionaryMatcher(); virtual int32_t matches(UText *text, int32_t maxLength, int32_t limit, int32_t *lengths, int32_t *cpLengths, int32_t *values, - int32_t *prefix) const; - virtual int32_t getType() const; + int32_t *prefix) const override; + virtual int32_t getType() const override; private: const UChar *characters; UDataMemory *file; @@ -125,8 +125,8 @@ class U_COMMON_API BytesDictionaryMatcher : public DictionaryMatcher { virtual ~BytesDictionaryMatcher(); virtual int32_t matches(UText *text, int32_t maxLength, int32_t limit, int32_t *lengths, int32_t *cpLengths, int32_t *values, - int32_t *prefix) const; - virtual int32_t getType() const; + int32_t *prefix) const override; + virtual int32_t getType() const override; private: UChar32 transform(UChar32 c) const; @@ -159,7 +159,7 @@ udict_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *out * Constants are defined in the DictionaryData class. * * For the data structure of BytesTrie & UCharsTrie see - * http://site.icu-project.org/design/struct/tries + * https://icu.unicode.org/design/struct/tries * and the bytestrie.h and ucharstrie.h header files. * * int32_t indexes[indexesLength]; -- indexesLength=indexes[IX_STRING_TRIE_OFFSET]/4; diff --git a/deps/icu-small/source/common/dtintrv.cpp b/deps/icu-small/source/common/dtintrv.cpp index dee637e62c07d4..011ad8136f3bdb 100644 --- a/deps/icu-small/source/common/dtintrv.cpp +++ b/deps/icu-small/source/common/dtintrv.cpp @@ -5,7 +5,7 @@ * others. All Rights Reserved. ******************************************************************************* * -* File DTINTRV.CPP +* File DTINTRV.CPP * ******************************************************************************* */ @@ -34,7 +34,7 @@ DateInterval::~DateInterval(){} DateInterval::DateInterval(const DateInterval& other) : UObject(other) { *this = other; -} +} DateInterval& @@ -47,16 +47,17 @@ DateInterval::operator=(const DateInterval& other) { } -DateInterval* +DateInterval* DateInterval::clone() const { return new DateInterval(*this); } -UBool -DateInterval::operator==(const DateInterval& other) const { +bool +DateInterval::operator==(const DateInterval& other) const { return ( fromDate == other.fromDate && toDate == other.toDate ); } U_NAMESPACE_END + diff --git a/deps/icu-small/source/common/emojiprops.cpp b/deps/icu-small/source/common/emojiprops.cpp new file mode 100644 index 00000000000000..2a05e8602d3c0c --- /dev/null +++ b/deps/icu-small/source/common/emojiprops.cpp @@ -0,0 +1,220 @@ +// © 2021 and later: Unicode, Inc. and others. +// License & terms of use: https://www.unicode.org/copyright.html + +// emojiprops.cpp +// created: 2021sep04 Markus W. Scherer + +#include "unicode/utypes.h" +#include "unicode/uchar.h" +#include "unicode/ucharstrie.h" +#include "unicode/ucptrie.h" +#include "unicode/udata.h" +#include "unicode/ustringtrie.h" +#include "unicode/utf16.h" +#include "emojiprops.h" +#include "ucln.h" +#include "ucln_cmn.h" +#include "umutex.h" +#include "uset_imp.h" + +U_NAMESPACE_BEGIN + +namespace { + +EmojiProps *singleton = nullptr; +icu::UInitOnce emojiInitOnce = U_INITONCE_INITIALIZER; + +UBool U_CALLCONV emojiprops_cleanup() { + delete singleton; + singleton = nullptr; + emojiInitOnce.reset(); + return true; +} + +void U_CALLCONV initSingleton(UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return; } + singleton = new EmojiProps(errorCode); + if (singleton == nullptr) { + errorCode = U_MEMORY_ALLOCATION_ERROR; + } else if (U_FAILURE(errorCode)) { + delete singleton; + singleton = nullptr; + } + ucln_common_registerCleanup(UCLN_COMMON_EMOJIPROPS, emojiprops_cleanup); +} + +// TODO: turn this into a shared helper function +// Requires the major version to match, and then requires at least the minor version. +UBool udata_isAcceptableMajorMinor( + const UDataInfo &info, const UChar *dataFormat, uint8_t major, uint8_t minor) { + return + info.size >= 20 && + info.isBigEndian == U_IS_BIG_ENDIAN && + info.charsetFamily == U_CHARSET_FAMILY && + info.dataFormat[0] == dataFormat[0] && + info.dataFormat[1] == dataFormat[1] && + info.dataFormat[2] == dataFormat[2] && + info.dataFormat[3] == dataFormat[3] && + info.formatVersion[0] == major && + info.formatVersion[1] >= minor; +} + +} // namespace + +EmojiProps::~EmojiProps() { + udata_close(memory); + ucptrie_close(cpTrie); +} + +const EmojiProps * +EmojiProps::getSingleton(UErrorCode &errorCode) { + if (U_FAILURE(errorCode)) { return nullptr; } + umtx_initOnce(emojiInitOnce, &initSingleton, errorCode); + return singleton; +} + +UBool U_CALLCONV +EmojiProps::isAcceptable(void * /*context*/, const char * /*type*/, const char * /*name*/, + const UDataInfo *pInfo) { + return udata_isAcceptableMajorMinor(*pInfo, u"Emoj", 1, 0); +} + +void +EmojiProps::load(UErrorCode &errorCode) { + memory = udata_openChoice(nullptr, "icu", "uemoji", isAcceptable, this, &errorCode); + if (U_FAILURE(errorCode)) { return; } + const uint8_t *inBytes = (const uint8_t *)udata_getMemory(memory); + const int32_t *inIndexes = (const int32_t *)inBytes; + int32_t indexesLength = inIndexes[IX_CPTRIE_OFFSET] / 4; + if (indexesLength <= IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET) { + errorCode = U_INVALID_FORMAT_ERROR; // Not enough indexes. + return; + } + + int32_t i = IX_CPTRIE_OFFSET; + int32_t offset = inIndexes[i++]; + int32_t nextOffset = inIndexes[i]; + cpTrie = ucptrie_openFromBinary(UCPTRIE_TYPE_FAST, UCPTRIE_VALUE_BITS_8, + inBytes + offset, nextOffset - offset, nullptr, &errorCode); + if (U_FAILURE(errorCode)) { + return; + } + + for (i = IX_BASIC_EMOJI_TRIE_OFFSET; i <= IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET; ++i) { + offset = inIndexes[i]; + nextOffset = inIndexes[i + 1]; + // Set/leave nullptr if there is no UCharsTrie. + const UChar *p = nextOffset > offset ? (const UChar *)(inBytes + offset) : nullptr; + stringTries[getStringTrieIndex(i)] = p; + } +} + +void +EmojiProps::addPropertyStarts(const USetAdder *sa, UErrorCode & /*errorCode*/) const { + // Add the start code point of each same-value range of the trie. + UChar32 start = 0, end; + uint32_t value; + while ((end = ucptrie_getRange(cpTrie, start, UCPMAP_RANGE_NORMAL, 0, + nullptr, nullptr, &value)) >= 0) { + sa->add(sa->set, start); + start = end + 1; + } +} + +UBool +EmojiProps::hasBinaryProperty(UChar32 c, UProperty which) { + UErrorCode errorCode = U_ZERO_ERROR; + const EmojiProps *ep = getSingleton(errorCode); + return U_SUCCESS(errorCode) && ep->hasBinaryPropertyImpl(c, which); +} + +UBool +EmojiProps::hasBinaryPropertyImpl(UChar32 c, UProperty which) const { + if (which < UCHAR_EMOJI || UCHAR_RGI_EMOJI < which) { + return false; + } + // Note: UCHAR_REGIONAL_INDICATOR is a single, hardcoded range implemented elsewhere. + static constexpr int8_t bitFlags[] = { + BIT_EMOJI, // UCHAR_EMOJI=57 + BIT_EMOJI_PRESENTATION, // UCHAR_EMOJI_PRESENTATION=58 + BIT_EMOJI_MODIFIER, // UCHAR_EMOJI_MODIFIER=59 + BIT_EMOJI_MODIFIER_BASE, // UCHAR_EMOJI_MODIFIER_BASE=60 + BIT_EMOJI_COMPONENT, // UCHAR_EMOJI_COMPONENT=61 + -1, // UCHAR_REGIONAL_INDICATOR=62 + -1, // UCHAR_PREPENDED_CONCATENATION_MARK=63 + BIT_EXTENDED_PICTOGRAPHIC, // UCHAR_EXTENDED_PICTOGRAPHIC=64 + BIT_BASIC_EMOJI, // UCHAR_BASIC_EMOJI=65 + -1, // UCHAR_EMOJI_KEYCAP_SEQUENCE=66 + -1, // UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE=67 + -1, // UCHAR_RGI_EMOJI_FLAG_SEQUENCE=68 + -1, // UCHAR_RGI_EMOJI_TAG_SEQUENCE=69 + -1, // UCHAR_RGI_EMOJI_ZWJ_SEQUENCE=70 + BIT_BASIC_EMOJI, // UCHAR_RGI_EMOJI=71 + }; + int32_t bit = bitFlags[which - UCHAR_EMOJI]; + if (bit < 0) { + return false; // not a property that we support in this function + } + uint8_t bits = UCPTRIE_FAST_GET(cpTrie, UCPTRIE_8, c); + return (bits >> bit) & 1; +} + +UBool +EmojiProps::hasBinaryProperty(const UChar *s, int32_t length, UProperty which) { + UErrorCode errorCode = U_ZERO_ERROR; + const EmojiProps *ep = getSingleton(errorCode); + return U_SUCCESS(errorCode) && ep->hasBinaryPropertyImpl(s, length, which); +} + +UBool +EmojiProps::hasBinaryPropertyImpl(const UChar *s, int32_t length, UProperty which) const { + if (s == nullptr && length != 0) { return false; } + if (length <= 0 && (length == 0 || *s == 0)) { return false; } // empty string + // The caller should have delegated single code points to hasBinaryProperty(c, which). + if (which < UCHAR_BASIC_EMOJI || UCHAR_RGI_EMOJI < which) { + return false; + } + UProperty firstProp = which, lastProp = which; + if (which == UCHAR_RGI_EMOJI) { + // RGI_Emoji is the union of the other emoji properties of strings. + firstProp = UCHAR_BASIC_EMOJI; + lastProp = UCHAR_RGI_EMOJI_ZWJ_SEQUENCE; + } + for (int32_t prop = firstProp; prop <= lastProp; ++prop) { + const UChar *trieUChars = stringTries[prop - UCHAR_BASIC_EMOJI]; + if (trieUChars != nullptr) { + UCharsTrie trie(trieUChars); + UStringTrieResult result = trie.next(s, length); + if (USTRINGTRIE_HAS_VALUE(result)) { + return true; + } + } + } + return false; +} + +void +EmojiProps::addStrings(const USetAdder *sa, UProperty which, UErrorCode &errorCode) const { + if (U_FAILURE(errorCode)) { return; } + if (which < UCHAR_BASIC_EMOJI || UCHAR_RGI_EMOJI < which) { + return; + } + UProperty firstProp = which, lastProp = which; + if (which == UCHAR_RGI_EMOJI) { + // RGI_Emoji is the union of the other emoji properties of strings. + firstProp = UCHAR_BASIC_EMOJI; + lastProp = UCHAR_RGI_EMOJI_ZWJ_SEQUENCE; + } + for (int32_t prop = firstProp; prop <= lastProp; ++prop) { + const UChar *trieUChars = stringTries[prop - UCHAR_BASIC_EMOJI]; + if (trieUChars != nullptr) { + UCharsTrie::Iterator iter(trieUChars, 0, errorCode); + while (iter.next(errorCode)) { + const UnicodeString &s = iter.getString(); + sa->addString(sa->set, s.getBuffer(), s.length()); + } + } + } +} + +U_NAMESPACE_END diff --git a/deps/icu-small/source/common/emojiprops.h b/deps/icu-small/source/common/emojiprops.h new file mode 100644 index 00000000000000..457847c303ab1a --- /dev/null +++ b/deps/icu-small/source/common/emojiprops.h @@ -0,0 +1,90 @@ +// © 2021 and later: Unicode, Inc. and others. +// License & terms of use: https://www.unicode.org/copyright.html + +// emojiprops.h +// created: 2021sep03 Markus W. Scherer + +#ifndef __EMOJIPROPS_H__ +#define __EMOJIPROPS_H__ + +#include "unicode/utypes.h" +#include "unicode/ucptrie.h" +#include "unicode/udata.h" +#include "unicode/uobject.h" +#include "uset_imp.h" + +U_NAMESPACE_BEGIN + +class EmojiProps : public UMemory { +public: + // @internal + EmojiProps(UErrorCode &errorCode) { load(errorCode); } + ~EmojiProps(); + + static const EmojiProps *getSingleton(UErrorCode &errorCode); + static UBool hasBinaryProperty(UChar32 c, UProperty which); + static UBool hasBinaryProperty(const UChar *s, int32_t length, UProperty which); + + void addPropertyStarts(const USetAdder *sa, UErrorCode &errorCode) const; + void addStrings(const USetAdder *sa, UProperty which, UErrorCode &errorCode) const; + + enum { + // Byte offsets from the start of the data, after the generic header, + // in ascending order. + // UCPTrie=CodePointTrie, follows the indexes + IX_CPTRIE_OFFSET, + IX_RESERVED1, + IX_RESERVED2, + IX_RESERVED3, + + // UCharsTrie=CharsTrie + IX_BASIC_EMOJI_TRIE_OFFSET, + IX_EMOJI_KEYCAP_SEQUENCE_TRIE_OFFSET, + IX_RGI_EMOJI_MODIFIER_SEQUENCE_TRIE_OFFSET, + IX_RGI_EMOJI_FLAG_SEQUENCE_TRIE_OFFSET, + IX_RGI_EMOJI_TAG_SEQUENCE_TRIE_OFFSET, + IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET, + IX_RESERVED10, + IX_RESERVED11, + IX_RESERVED12, + IX_TOTAL_SIZE, + + // Not initially byte offsets. + IX_RESERVED14, + IX_RESERVED15, + IX_COUNT // 16 + }; + + // Properties in the code point trie. + enum { + // https://www.unicode.org/reports/tr51/#Emoji_Properties + BIT_EMOJI, + BIT_EMOJI_PRESENTATION, + BIT_EMOJI_MODIFIER, + BIT_EMOJI_MODIFIER_BASE, + BIT_EMOJI_COMPONENT, + BIT_EXTENDED_PICTOGRAPHIC, + // https://www.unicode.org/reports/tr51/#Emoji_Sets + BIT_BASIC_EMOJI + }; + +private: + static UBool U_CALLCONV + isAcceptable(void *context, const char *type, const char *name, const UDataInfo *pInfo); + /** Input i: One of the IX_..._TRIE_OFFSET indexes into the data file indexes[] array. */ + static int32_t getStringTrieIndex(int32_t i) { + return i - IX_BASIC_EMOJI_TRIE_OFFSET; + } + + void load(UErrorCode &errorCode); + UBool hasBinaryPropertyImpl(UChar32 c, UProperty which) const; + UBool hasBinaryPropertyImpl(const UChar *s, int32_t length, UProperty which) const; + + UDataMemory *memory = nullptr; + UCPTrie *cpTrie = nullptr; + const UChar *stringTries[6] = { nullptr, nullptr, nullptr, nullptr, nullptr, nullptr }; +}; + +U_NAMESPACE_END + +#endif // __EMOJIPROPS_H__ diff --git a/deps/icu-small/source/common/filteredbrk.cpp b/deps/icu-small/source/common/filteredbrk.cpp index bc9c576223d70e..e4817367a5aa41 100644 --- a/deps/icu-small/source/common/filteredbrk.cpp +++ b/deps/icu-small/source/common/filteredbrk.cpp @@ -49,7 +49,7 @@ static void _fb_trace(const char *m, const UnicodeString *s, UBool b, int32_t d, /** * Used with sortedInsert() */ -static int8_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { +static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { const UnicodeString &a = *(const UnicodeString*)t1.pointer; const UnicodeString &b = *(const UnicodeString*)t2.pointer; return a.compare(b); @@ -90,7 +90,6 @@ class U_COMMON_API UStringSet : public UVector { } else { sortedInsert(str, compareUnicodeString, status); if(U_FAILURE(status)) { - delete str; return false; } return true; @@ -138,7 +137,7 @@ static const UChar kFULLSTOP = 0x002E; // '.' */ class SimpleFilteredSentenceBreakData : public UMemory { public: - SimpleFilteredSentenceBreakData(UCharsTrie *forwards, UCharsTrie *backwards ) + SimpleFilteredSentenceBreakData(UCharsTrie *forwards, UCharsTrie *backwards ) : fForwardsPartialTrie(forwards), fBackwardsTrie(backwards), refcount(1) { } SimpleFilteredSentenceBreakData *incr() { umtx_atomic_inc(&refcount); @@ -186,37 +185,37 @@ class SimpleFilteredSentenceBreakIterator : public BreakIterator { /* -- cloning and other subclass stuff -- */ virtual BreakIterator * createBufferClone(void * /*stackBuffer*/, int32_t &/*BufferSize*/, - UErrorCode &status) { + UErrorCode &status) override { // for now - always deep clone status = U_SAFECLONE_ALLOCATED_WARNING; return clone(); } - virtual SimpleFilteredSentenceBreakIterator* clone() const { return new SimpleFilteredSentenceBreakIterator(*this); } - virtual UClassID getDynamicClassID(void) const { return NULL; } - virtual UBool operator==(const BreakIterator& o) const { if(this==&o) return true; return false; } + virtual SimpleFilteredSentenceBreakIterator* clone() const override { return new SimpleFilteredSentenceBreakIterator(*this); } + virtual UClassID getDynamicClassID(void) const override { return NULL; } + virtual bool operator==(const BreakIterator& o) const override { if(this==&o) return true; return false; } /* -- text modifying -- */ - virtual void setText(UText *text, UErrorCode &status) { fDelegate->setText(text,status); } - virtual BreakIterator &refreshInputText(UText *input, UErrorCode &status) { fDelegate->refreshInputText(input,status); return *this; } - virtual void adoptText(CharacterIterator* it) { fDelegate->adoptText(it); } - virtual void setText(const UnicodeString &text) { fDelegate->setText(text); } + virtual void setText(UText *text, UErrorCode &status) override { fDelegate->setText(text,status); } + virtual BreakIterator &refreshInputText(UText *input, UErrorCode &status) override { fDelegate->refreshInputText(input,status); return *this; } + virtual void adoptText(CharacterIterator* it) override { fDelegate->adoptText(it); } + virtual void setText(const UnicodeString &text) override { fDelegate->setText(text); } /* -- other functions that are just delegated -- */ - virtual UText *getUText(UText *fillIn, UErrorCode &status) const { return fDelegate->getUText(fillIn,status); } - virtual CharacterIterator& getText(void) const { return fDelegate->getText(); } + virtual UText *getUText(UText *fillIn, UErrorCode &status) const override { return fDelegate->getUText(fillIn,status); } + virtual CharacterIterator& getText(void) const override { return fDelegate->getText(); } /* -- ITERATION -- */ - virtual int32_t first(void); - virtual int32_t preceding(int32_t offset); - virtual int32_t previous(void); - virtual UBool isBoundary(int32_t offset); - virtual int32_t current(void) const { return fDelegate->current(); } // we keep the delegate current, so this should be correct. + virtual int32_t first(void) override; + virtual int32_t preceding(int32_t offset) override; + virtual int32_t previous(void) override; + virtual UBool isBoundary(int32_t offset) override; + virtual int32_t current(void) const override { return fDelegate->current(); } // we keep the delegate current, so this should be correct. - virtual int32_t next(void); + virtual int32_t next(void) override; - virtual int32_t next(int32_t n); - virtual int32_t following(int32_t offset); - virtual int32_t last(void); + virtual int32_t next(int32_t n) override; + virtual int32_t following(int32_t offset) override; + virtual int32_t last(void) override; private: /** @@ -235,7 +234,7 @@ class SimpleFilteredSentenceBreakIterator : public BreakIterator { int32_t internalPrev(int32_t n); /** * set up the UText with the value of the fDelegate. - * Call this before calling breakExceptionAt. + * Call this before calling breakExceptionAt. * May be able to avoid excess calls */ void resetState(UErrorCode &status); @@ -388,7 +387,7 @@ SimpleFilteredSentenceBreakIterator::internalNext(int32_t n) { default: case kNoExceptionHere: return n; - } + } } return n; } @@ -417,7 +416,7 @@ SimpleFilteredSentenceBreakIterator::internalPrev(int32_t n) { default: case kNoExceptionHere: return n; - } + } } return n; } @@ -460,9 +459,9 @@ UBool SimpleFilteredSentenceBreakIterator::isBoundary(int32_t offset) { default: case kNoExceptionHere: return true; - } + } } - + int32_t SimpleFilteredSentenceBreakIterator::next(int32_t offset) { return internalNext(fDelegate->next(offset)); @@ -488,9 +487,9 @@ class U_COMMON_API SimpleFilteredBreakIteratorBuilder : public FilteredBreakIter virtual ~SimpleFilteredBreakIteratorBuilder(); SimpleFilteredBreakIteratorBuilder(const Locale &fromLocale, UErrorCode &status); SimpleFilteredBreakIteratorBuilder(UErrorCode &status); - virtual UBool suppressBreakAfter(const UnicodeString& exception, UErrorCode& status); - virtual UBool unsuppressBreakAfter(const UnicodeString& exception, UErrorCode& status); - virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status); + virtual UBool suppressBreakAfter(const UnicodeString& exception, UErrorCode& status) override; + virtual UBool unsuppressBreakAfter(const UnicodeString& exception, UErrorCode& status) override; + virtual BreakIterator *build(BreakIterator* adoptBreakIterator, UErrorCode& status) override; private: UStringSet fSet; }; @@ -499,7 +498,7 @@ SimpleFilteredBreakIteratorBuilder::~SimpleFilteredBreakIteratorBuilder() { } -SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(UErrorCode &status) +SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(UErrorCode &status) : fSet(status) { } @@ -510,16 +509,16 @@ SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(const Loc if(U_SUCCESS(status)) { UErrorCode subStatus = U_ZERO_ERROR; LocalUResourceBundlePointer b(ures_open(U_ICUDATA_BRKITR, fromLocale.getBaseName(), &subStatus)); - if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { - status = subStatus; // copy the failing status + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status #if FB_DEBUG fprintf(stderr, "open BUNDLE %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); #endif return; // leaves the builder empty, if you try to use it. } LocalUResourceBundlePointer exceptions(ures_getByKeyWithFallback(b.getAlias(), "exceptions", NULL, &subStatus)); - if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { - status = subStatus; // copy the failing status + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status #if FB_DEBUG fprintf(stderr, "open EXCEPTIONS %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); #endif @@ -533,9 +532,9 @@ SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(const Loc fprintf(stderr, "open SentenceBreak %s => %s, %s\n", fromLocale.getBaseName(), ures_getLocale(breaks.getAlias(), &subsub), u_errorName(subStatus)); } #endif - - if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { - status = subStatus; // copy the failing status + + if (U_FAILURE(subStatus) || (subStatus == U_USING_DEFAULT_WARNING) ) { + status = subStatus; // copy the failing status #if FB_DEBUG fprintf(stderr, "open %s : %s, %s\n", fromLocale.getBaseName(), "[exit]", u_errorName(status)); #endif @@ -543,7 +542,7 @@ SimpleFilteredBreakIteratorBuilder::SimpleFilteredBreakIteratorBuilder(const Loc } LocalUResourceBundlePointer strs; - subStatus = status; // Pick up inherited warning status now + subStatus = status; // Pick up inherited warning status now do { strs.adoptInstead(ures_getNextResource(breaks.getAlias(), strs.orphan(), &subStatus)); if(strs.isValid() && U_SUCCESS(subStatus)) { @@ -600,7 +599,7 @@ SimpleFilteredBreakIteratorBuilder::build(BreakIterator* adoptBreakIterator, UEr int32_t subCount = fSet.size(); UnicodeString *ustrs_ptr = newUnicodeStringArray(subCount); - + LocalArray ustrs(ustrs_ptr); LocalMemory partials; diff --git a/deps/icu-small/source/common/hash.h b/deps/icu-small/source/common/hash.h index 0b0f349999ce82..b927ddb3c365af 100644 --- a/deps/icu-small/source/common/hash.h +++ b/deps/icu-small/source/common/hash.h @@ -264,3 +264,4 @@ inline UBool Hashtable::equals(const Hashtable& that)const{ U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/common/icudataver.cpp b/deps/icu-small/source/common/icudataver.cpp index 6dd3ea1baee607..d31441137416be 100644 --- a/deps/icu-small/source/common/icudataver.cpp +++ b/deps/icu-small/source/common/icudataver.cpp @@ -16,11 +16,11 @@ U_CAPI void U_EXPORT2 u_getDataVersion(UVersionInfo dataVersionFillin, UErrorCode *status) { UResourceBundle *icudatares = NULL; - + if (U_FAILURE(*status)) { return; } - + if (dataVersionFillin != NULL) { icudatares = ures_openDirect(NULL, U_ICU_VERSION_BUNDLE , status); if (U_SUCCESS(*status)) { diff --git a/deps/icu-small/source/common/icuplug.cpp b/deps/icu-small/source/common/icuplug.cpp index 944df5465d0dd2..52a0deced6d332 100644 --- a/deps/icu-small/source/common/icuplug.cpp +++ b/deps/icu-small/source/common/icuplug.cpp @@ -45,7 +45,7 @@ using namespace icu; #endif /** - * Internal structure of an ICU plugin. + * Internal structure of an ICU plugin. */ struct UPlugData { @@ -75,21 +75,21 @@ struct UPlugData { * @param listSize the number of entries in the list * @param memberSize the size of one member * @param itemToRemove the item number of the member - * @return the new listsize + * @return the new listsize */ static int32_t uplug_removeEntryAt(void *list, int32_t listSize, int32_t memberSize, int32_t itemToRemove) { uint8_t *bytePtr = (uint8_t *)list; - + /* get rid of some bad cases first */ if(listSize<1) { return listSize; } - + /* is there anything to move? */ if(listSize > itemToRemove+1) { memmove(bytePtr+(itemToRemove*memberSize), bytePtr+((itemToRemove+1)*memberSize), memberSize); } - + return listSize-1; } @@ -98,13 +98,13 @@ static int32_t uplug_removeEntryAt(void *list, int32_t listSize, int32_t memberS #if U_ENABLE_DYLOAD /** - * Library management. Internal. + * Library management. Internal. * @internal */ struct UPlugLibrary; /** - * Library management. Internal. + * Library management. Internal. * @internal */ typedef struct UPlugLibrary { @@ -125,7 +125,7 @@ static int32_t libraryMax = UPLUG_LIBRARY_INITIAL_COUNT; */ static int32_t searchForLibraryName(const char *libName) { int32_t i; - + for(i=0;i=pastPlug) { return NULL; } else { @@ -284,9 +284,9 @@ static void uplug_callPlug(UPlugData *plug, UPlugReason reason, UErrorCode *stat static void uplug_unloadPlug(UPlugData *plug, UErrorCode *status) { - if(plug->awaitingLoad) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/ + if(plug->awaitingLoad) { /* shouldn't happen. Plugin hasn't been loaded yet.*/ *status = U_INTERNAL_PROGRAM_ERROR; - return; + return; } if(U_SUCCESS(plug->pluginStatus)) { /* Don't unload a plug which has a failing load status - means it didn't actually load. */ @@ -295,13 +295,13 @@ static void uplug_unloadPlug(UPlugData *plug, UErrorCode *status) { } static void uplug_queryPlug(UPlugData *plug, UErrorCode *status) { - if(!plug->awaitingLoad || !(plug->level == UPLUG_LEVEL_UNKNOWN) ) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/ + if(!plug->awaitingLoad || !(plug->level == UPLUG_LEVEL_UNKNOWN) ) { /* shouldn't happen. Plugin hasn't been loaded yet.*/ *status = U_INTERNAL_PROGRAM_ERROR; - return; + return; } plug->level = UPLUG_LEVEL_INVALID; uplug_callPlug(plug, UPLUG_REASON_QUERY, status); - if(U_SUCCESS(*status)) { + if(U_SUCCESS(*status)) { if(plug->level == UPLUG_LEVEL_INVALID) { plug->pluginStatus = U_PLUGIN_DIDNT_SET_LEVEL; plug->awaitingLoad = FALSE; @@ -317,7 +317,7 @@ static void uplug_loadPlug(UPlugData *plug, UErrorCode *status) { if(U_FAILURE(*status)) { return; } - if(!plug->awaitingLoad || (plug->level < UPLUG_LEVEL_LOW) ) { /* shouldn't happen. Plugin hasn'tbeen loaded yet.*/ + if(!plug->awaitingLoad || (plug->level < UPLUG_LEVEL_LOW) ) { /* shouldn't happen. Plugin hasn't been loaded yet.*/ *status = U_INTERNAL_PROGRAM_ERROR; return; } @@ -372,17 +372,17 @@ static UPlugData *uplug_allocatePlug(UPlugEntrypoint *entrypoint, const char *co } else { plug->config[0] = 0; } - + if(symName!=NULL) { uprv_strncpy(plug->sym, symName, UPLUG_NAME_MAX); } else { plug->sym[0] = 0; } - + plug->entrypoint = entrypoint; plug->lib = lib; uplug_queryPlug(plug, status); - + return plug; } @@ -421,7 +421,7 @@ uplug_removePlug(UPlugData *plug, UErrorCode *status) { UPlugData *cursor = NULL; UPlugData *plugToRemove = NULL; if(U_FAILURE(*status)) return; - + for(cursor=pluginList;cursor!=NULL;) { if(cursor==plug) { plugToRemove = plug; @@ -430,14 +430,14 @@ uplug_removePlug(UPlugData *plug, UErrorCode *status) { cursor = uplug_nextPlug(cursor); } } - + uplug_doUnloadPlug(plugToRemove, status); } -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uplug_setPlugNoUnload(UPlugData *data, UBool dontUnload) { data->dontUnload = dontUnload; @@ -508,10 +508,10 @@ uplug_getConfiguration(UPlugData *data) { } U_CAPI UPlugData* U_EXPORT2 -uplug_getPlugInternal(int32_t n) { +uplug_getPlugInternal(int32_t n) { if(n <0 || n >= pluginCount) { return NULL; - } else { + } else { return &(pluginList[n]); } } @@ -526,7 +526,7 @@ uplug_getPlugLoadStatus(UPlugData *plug) { /** - * Initialize a plugin fron an entrypoint and library - but don't load it. + * Initialize a plugin from an entrypoint and library - but don't load it. */ static UPlugData* uplug_initPlugFromEntrypointAndLibrary(UPlugEntrypoint *entrypoint, const char *config, void *lib, const char *sym, UErrorCode *status) { @@ -551,7 +551,7 @@ uplug_loadPlugFromEntrypoint(UPlugEntrypoint *entrypoint, const char *config, UE #if U_ENABLE_DYLOAD -static UPlugData* +static UPlugData* uplug_initErrorPlug(const char *libName, const char *sym, const char *config, const char *nameOrError, UErrorCode loadStatus, UErrorCode *status) { UPlugData *plug = uplug_allocateEmptyPlug(status); @@ -583,7 +583,7 @@ uplug_initErrorPlug(const char *libName, const char *sym, const char *config, co /** * Fetch a plugin from DLL, and then initialize it from a library- but don't load it. */ -static UPlugData* +static UPlugData* uplug_initPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status) { void *lib = NULL; UPlugData *plug = NULL; @@ -615,7 +615,7 @@ uplug_initPlugFromLibrary(const char *libName, const char *sym, const char *conf } U_CAPI UPlugData* U_EXPORT2 -uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status) { +uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status) { UPlugData *plug = NULL; if(U_FAILURE(*status)) { return NULL; } plug = uplug_initPlugFromLibrary(libName, sym, config, status); @@ -635,7 +635,7 @@ U_CAPI UPlugLevel U_EXPORT2 uplug_getCurrentLevel() { static UBool U_CALLCONV uplug_cleanup(void) { int32_t i; - + UPlugData *pluginToRemove; /* cleanup plugs */ for(i=0;iawaitingLoad = FALSE; - } + } } - } + } for(i=0;iawaitingLoad) { - if(pluginToLoad->level == UPLUG_LEVEL_INVALID) { + if(pluginToLoad->level == UPLUG_LEVEL_INVALID) { pluginToLoad->pluginStatus = U_PLUGIN_DIDNT_SET_LEVEL; } else if(pluginToLoad->level == UPLUG_LEVEL_UNKNOWN) { pluginToLoad->pluginStatus = U_INTERNAL_PROGRAM_ERROR; @@ -697,7 +697,7 @@ static void uplug_loadWaitingPlugs(UErrorCode *status) { pluginToLoad->awaitingLoad = FALSE; } } - + #if UPLUG_TRACE DBG((stderr, " Done Loading Plugs. Level: %d\n", (int32_t)uplug_getCurrentLevel())); #endif @@ -733,7 +733,7 @@ uplug_init(UErrorCode *status) { } if(U_FAILURE(*status)) return; -#if defined(DEFAULT_ICU_PLUGINS) +#if defined(DEFAULT_ICU_PLUGINS) if(plugin_dir.isEmpty()) { plugin_dir.append(DEFAULT_ICU_PLUGINS, -1, *status); } @@ -745,7 +745,7 @@ uplug_init(UErrorCode *status) { if(!plugin_dir.isEmpty()) { FILE *f; - + CharString pluginFile; #ifdef OS390BATCH /* There are potentially a lot of ways to implement a plugin directory on OS390/zOS */ @@ -778,8 +778,8 @@ uplug_init(UErrorCode *status) { #endif return; } - - /* plugin_file is not used for processing - it is only used + + /* plugin_file is not used for processing - it is only used so that uplug_getPluginFile() works (i.e. icuinfo) */ pluginFile.extract(plugin_file, sizeof(plugin_file), *status); @@ -787,7 +787,7 @@ uplug_init(UErrorCode *status) { #if UPLUG_TRACE DBG((stderr, "pluginfile= %s len %d/%d\n", plugin_file, (int)strlen(plugin_file), (int)sizeof(plugin_file))); #endif - + #ifdef __MVS__ if (iscics()) /* 12 Nov 2011 JAM */ { @@ -803,8 +803,8 @@ uplug_init(UErrorCode *status) { char linebuf[1024]; char *p, *libName=NULL, *symName=NULL, *config=NULL; int32_t line = 0; - - + + while(fgets(linebuf,1023,f)) { line++; @@ -830,7 +830,7 @@ uplug_init(UErrorCode *status) { while(*p&&!isspace((int)*p)) { p++; } - + if(*p) { /* has config */ *p=0; ++p; @@ -841,7 +841,7 @@ uplug_init(UErrorCode *status) { config = p; } } - + /* chop whitespace at the end of the config */ if(config!=NULL&&*config!=0) { p = config+strlen(config); @@ -849,9 +849,9 @@ uplug_init(UErrorCode *status) { *p=0; } } - + /* OK, we're good. */ - { + { UErrorCode subStatus = U_ZERO_ERROR; UPlugData *plug = uplug_initPlugFromLibrary(libName, symName, config, &subStatus); if(U_FAILURE(subStatus) && U_SUCCESS(*status)) { @@ -880,3 +880,5 @@ uplug_init(UErrorCode *status) { } #endif + + diff --git a/deps/icu-small/source/common/icuplugimp.h b/deps/icu-small/source/common/icuplugimp.h index 712fdb236fde35..9df309204e7a1d 100644 --- a/deps/icu-small/source/common/icuplugimp.h +++ b/deps/icu-small/source/common/icuplugimp.h @@ -9,7 +9,7 @@ ****************************************************************************** * * FILE NAME : icuplugimp.h -* +* * Internal functions for the ICU plugin system * * Date Name Description @@ -26,7 +26,7 @@ #if UCONFIG_ENABLE_PLUGINS /*========================*/ -/** @{ Library Manipulation +/** @{ Library Manipulation */ /** @@ -65,7 +65,7 @@ uplug_findLibrary(void *lib, UErrorCode *status); */ /** - * Initialize the plugins + * Initialize the plugins * @param status error result * @internal - Internal use only. */ @@ -75,12 +75,12 @@ uplug_init(UErrorCode *status); /** * Get raw plug N * @internal - Internal use only - */ + */ U_CAPI UPlugData* U_EXPORT2 uplug_getPlugInternal(int32_t n); /** - * Get the name of the plugin file. + * Get the name of the plugin file. * @internal - Internal use only. */ U_CAPI const char* U_EXPORT2 diff --git a/deps/icu-small/source/common/loadednormalizer2impl.cpp b/deps/icu-small/source/common/loadednormalizer2impl.cpp index e4b36f1055f15d..905fc1deccb974 100644 --- a/deps/icu-small/source/common/loadednormalizer2impl.cpp +++ b/deps/icu-small/source/common/loadednormalizer2impl.cpp @@ -157,7 +157,7 @@ static void U_CALLCONV initSingletons(const char *what, UErrorCode &errorCode) { } else if (uprv_strcmp(what, "nfkc_cf") == 0) { nfkc_cfSingleton = Norm2AllModes::createInstance(NULL, "nfkc_cf", errorCode); } else { - UPRV_UNREACHABLE; // Unknown singleton + UPRV_UNREACHABLE_EXIT; // Unknown singleton } ucln_common_registerCleanup(UCLN_COMMON_LOADED_NORMALIZER2, uprv_loaded_normalizer2_cleanup); } diff --git a/deps/icu-small/source/common/localebuilder.cpp b/deps/icu-small/source/common/localebuilder.cpp index 1dd8131e5895a5..a5f201e8475b5c 100644 --- a/deps/icu-small/source/common/localebuilder.cpp +++ b/deps/icu-small/source/common/localebuilder.cpp @@ -228,7 +228,7 @@ LocaleBuilder& LocaleBuilder::setExtension(char key, StringPiece value) return *this; } if (extensions_ == nullptr) { - extensions_ = new Locale(); + extensions_ = Locale::getRoot().clone(); if (extensions_ == nullptr) { status_ = U_MEMORY_ALLOCATION_ERROR; return *this; @@ -259,11 +259,11 @@ LocaleBuilder& LocaleBuilder::setUnicodeLocaleKeyword( return *this; } if (extensions_ == nullptr) { - extensions_ = new Locale(); - } - if (extensions_ == nullptr) { - status_ = U_MEMORY_ALLOCATION_ERROR; - return *this; + extensions_ = Locale::getRoot().clone(); + if (extensions_ == nullptr) { + status_ = U_MEMORY_ALLOCATION_ERROR; + return *this; + } } extensions_->setUnicodeKeywordValue(key, type, status_); return *this; @@ -280,7 +280,7 @@ LocaleBuilder& LocaleBuilder::addUnicodeLocaleAttribute( return *this; } if (extensions_ == nullptr) { - extensions_ = new Locale(); + extensions_ = Locale::getRoot().clone(); if (extensions_ == nullptr) { status_ = U_MEMORY_ALLOCATION_ERROR; return *this; @@ -415,7 +415,7 @@ void LocaleBuilder::copyExtensionsFrom(const Locale& src, UErrorCode& errorCode) return; } if (extensions_ == nullptr) { - extensions_ = new Locale(); + extensions_ = Locale::getRoot().clone(); if (extensions_ == nullptr) { status_ = U_MEMORY_ALLOCATION_ERROR; return; diff --git a/deps/icu-small/source/common/localematcher.cpp b/deps/icu-small/source/common/localematcher.cpp index 132aee290e81a8..3d178dfbaf1732 100644 --- a/deps/icu-small/source/common/localematcher.cpp +++ b/deps/icu-small/source/common/localematcher.cpp @@ -187,7 +187,7 @@ LocaleMatcher::Builder &LocaleMatcher::Builder::setSupportedLocalesFromListStrin for (int32_t i = 0; i < length; ++i) { Locale *locale = list.orphanLocaleAt(i); if (locale == nullptr) { continue; } - supportedLocales_->addElement(locale, errorCode_); + supportedLocales_->addElementX(locale, errorCode_); if (U_FAILURE(errorCode_)) { delete locale; break; @@ -207,7 +207,7 @@ LocaleMatcher::Builder &LocaleMatcher::Builder::setSupportedLocales(Locale::Iter errorCode_ = U_MEMORY_ALLOCATION_ERROR; break; } - supportedLocales_->addElement(clone, errorCode_); + supportedLocales_->addElementX(clone, errorCode_); if (U_FAILURE(errorCode_)) { delete clone; break; @@ -223,7 +223,7 @@ LocaleMatcher::Builder &LocaleMatcher::Builder::addSupportedLocale(const Locale errorCode_ = U_MEMORY_ALLOCATION_ERROR; return *this; } - supportedLocales_->addElement(clone, errorCode_); + supportedLocales_->addElementX(clone, errorCode_); if (U_FAILURE(errorCode_)) { delete clone; } diff --git a/deps/icu-small/source/common/localsvc.h b/deps/icu-small/source/common/localsvc.h index 0339a44dcd95ec..33640195135bd8 100644 --- a/deps/icu-small/source/common/localsvc.h +++ b/deps/icu-small/source/common/localsvc.h @@ -16,7 +16,7 @@ /** * Prototype for user-supplied service hook. This function is expected to return * a type of factory object specific to the requested service. - * + * * @param what service-specific string identifying the specific user hook * @param status error status * @return a service-specific hook, or NULL on failure. diff --git a/deps/icu-small/source/common/locavailable.cpp b/deps/icu-small/source/common/locavailable.cpp index ad9d2ca8c7bb53..e8ec512e370992 100644 --- a/deps/icu-small/source/common/locavailable.cpp +++ b/deps/icu-small/source/common/locavailable.cpp @@ -64,7 +64,7 @@ U_NAMESPACE_BEGIN void U_CALLCONV locale_available_init() { // This function is a friend of class Locale. // This function is only invoked via umtx_initOnce(). - + // for now, there is a hardcoded list, so just walk through that list and set it up. // Note: this function is a friend of class Locale. availableLocaleListCount = uloc_countAvailable(); diff --git a/deps/icu-small/source/common/locbased.h b/deps/icu-small/source/common/locbased.h index 9163bd11cfe65f..45738863b5ec96 100644 --- a/deps/icu-small/source/common/locbased.h +++ b/deps/icu-small/source/common/locbased.h @@ -88,7 +88,7 @@ class U_COMMON_API LocaleBased : public UMemory { private: char* valid; - + char* actual; }; diff --git a/deps/icu-small/source/common/locdispnames.cpp b/deps/icu-small/source/common/locdispnames.cpp index 3166c76bf5a7fd..c512a0164c22a0 100644 --- a/deps/icu-small/source/common/locdispnames.cpp +++ b/deps/icu-small/source/common/locdispnames.cpp @@ -298,7 +298,7 @@ static const char _kSeparator[] = "separator"; static int32_t _getStringOrCopyKey(const char *path, const char *locale, - const char *tableKey, + const char *tableKey, const char* subTableKey, const char *itemKey, const char *substitute, @@ -316,8 +316,9 @@ _getStringOrCopyKey(const char *path, const char *locale, /* see comment about closing rb near "return item;" in _res_getTableStringWithFallback() */ } } else { + bool isLanguageCode = (uprv_strncmp(tableKey, _kLanguages, 9) == 0); /* Language code should not be a number. If it is, set the error code. */ - if (!uprv_strncmp(tableKey, "Languages", 9) && uprv_strtol(itemKey, NULL, 10)) { + if (isLanguageCode && uprv_strtol(itemKey, NULL, 10)) { *pErrorCode = U_MISSING_RESOURCE_ERROR; } else { /* second-level item, use special fallback */ @@ -327,6 +328,17 @@ _getStringOrCopyKey(const char *path, const char *locale, itemKey, &length, pErrorCode); + if (U_FAILURE(*pErrorCode) && isLanguageCode && itemKey != nullptr) { + // convert itemKey locale code to canonical form and try again, ICU-20870 + *pErrorCode = U_ZERO_ERROR; + Locale canonKey = Locale::createCanonical(itemKey); + s=uloc_getTableStringWithFallback(path, locale, + tableKey, + subTableKey, + canonKey.getName(), + &length, + pErrorCode); + } } } @@ -496,7 +508,7 @@ uloc_getDisplayName(const char *locale, const UChar *pattern; int32_t patLen = 0; int32_t sub0Pos, sub1Pos; - + UChar formatOpenParen = 0x0028; // ( UChar formatReplaceOpenParen = 0x005B; // [ UChar formatCloseParen = 0x0029; // ) @@ -793,9 +805,9 @@ uloc_getDisplayKeyword(const char* keyword, /* pass itemKey=NULL to look for a top-level item */ return _getStringOrCopyKey(U_ICUDATA_LANG, displayLocale, - _kKeys, NULL, - keyword, - keyword, + _kKeys, NULL, + keyword, + keyword, dest, destCapacity, status); @@ -830,8 +842,8 @@ uloc_getDisplayKeywordValue( const char* locale, ulocimp_getKeywordValue(locale, keyword, sink, status); } - /* - * if the keyword is equal to currency .. then to get the display name + /* + * if the keyword is equal to currency .. then to get the display name * we need to do the fallback ourselves */ if(uprv_stricmp(keyword, _kCurrency)==0){ @@ -877,11 +889,11 @@ uloc_getDisplayKeywordValue( const char* locale, } } - + }else{ return _getStringOrCopyKey(U_ICUDATA_LANG, displayLocale, - _kTypes, keyword, + _kTypes, keyword, keywordValue.data(), keywordValue.data(), dest, destCapacity, diff --git a/deps/icu-small/source/common/locdspnm.cpp b/deps/icu-small/source/common/locdspnm.cpp index 43334f51964622..f73cedd72866a0 100644 --- a/deps/icu-small/source/common/locdspnm.cpp +++ b/deps/icu-small/source/common/locdspnm.cpp @@ -313,29 +313,29 @@ class LocaleDisplayNamesImpl : public LocaleDisplayNames { LocaleDisplayNamesImpl(const Locale& locale, UDisplayContext *contexts, int32_t length); virtual ~LocaleDisplayNamesImpl(); - virtual const Locale& getLocale() const; - virtual UDialectHandling getDialectHandling() const; - virtual UDisplayContext getContext(UDisplayContextType type) const; + virtual const Locale& getLocale() const override; + virtual UDialectHandling getDialectHandling() const override; + virtual UDisplayContext getContext(UDisplayContextType type) const override; virtual UnicodeString& localeDisplayName(const Locale& locale, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& localeDisplayName(const char* localeId, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& languageDisplayName(const char* lang, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& scriptDisplayName(const char* script, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& scriptDisplayName(UScriptCode scriptCode, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& regionDisplayName(const char* region, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& variantDisplayName(const char* variant, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& keyDisplayName(const char* key, - UnicodeString& result) const; + UnicodeString& result) const override; virtual UnicodeString& keyValueDisplayName(const char* key, const char* value, - UnicodeString& result) const; + UnicodeString& result) const override; private: UnicodeString& localeIdName(const char* localeId, UnicodeString& result, bool substitute) const; @@ -407,7 +407,7 @@ struct LocaleDisplayNamesImpl::CapitalizationContextSink : public ResourceSink { virtual ~CapitalizationContextSink(); virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { ResourceTable contexts = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } for (int i = 0; contexts.getKeyAndValue(i, key, value); ++i) { @@ -723,11 +723,25 @@ LocaleDisplayNamesImpl::localeIdName(const char* localeId, return result; } } - if (substitute) { - return langData.get("Languages", localeId, result); - } else { - return langData.getNoFallback("Languages", localeId, result); + langData.getNoFallback("Languages", localeId, result); + if (result.isBogus() && uprv_strchr(localeId, '_') == NULL) { + // Canonicalize lang and try again, ICU-20870 + // (only for language codes without script or region) + Locale canonLocale = Locale::createCanonical(localeId); + const char* canonLocId = canonLocale.getName(); + if (nameLength == UDISPCTX_LENGTH_SHORT) { + langData.getNoFallback("Languages%short", canonLocId, result); + if (!result.isBogus()) { + return result; + } + } + langData.getNoFallback("Languages", canonLocId, result); } + if (result.isBogus() && substitute) { + // use key, this is what langData.get (with fallback) falls back to. + result.setTo(UnicodeString(localeId, -1, US_INV)); // use key ( + } + return result; } UnicodeString& @@ -742,10 +756,22 @@ LocaleDisplayNamesImpl::languageDisplayName(const char* lang, return adjustForUsageAndContext(kCapContextUsageLanguage, result); } } - if (substitute == UDISPCTX_SUBSTITUTE) { - langData.get("Languages", lang, result); - } else { - langData.getNoFallback("Languages", lang, result); + langData.getNoFallback("Languages", lang, result); + if (result.isBogus()) { + // Canonicalize lang and try again, ICU-20870 + Locale canonLocale = Locale::createCanonical(lang); + const char* canonLocId = canonLocale.getName(); + if (nameLength == UDISPCTX_LENGTH_SHORT) { + langData.getNoFallback("Languages%short", canonLocId, result); + if (!result.isBogus()) { + return adjustForUsageAndContext(kCapContextUsageLanguage, result); + } + } + langData.getNoFallback("Languages", canonLocId, result); + } + if (result.isBogus() && substitute == UDISPCTX_SUBSTITUTE) { + // use key, this is what langData.get (with fallback) falls back to. + result.setTo(UnicodeString(lang, -1, US_INV)); // use key ( } return adjustForUsageAndContext(kCapContextUsageLanguage, result); } diff --git a/deps/icu-small/source/common/locid.cpp b/deps/icu-small/source/common/locid.cpp index 0d506293a99eca..e8859c7048b110 100644 --- a/deps/icu-small/source/common/locid.cpp +++ b/deps/icu-small/source/common/locid.cpp @@ -297,13 +297,12 @@ Locale::Locale( const char * newLanguage, else { UErrorCode status = U_ZERO_ERROR; - int32_t size = 0; int32_t lsize = 0; int32_t csize = 0; int32_t vsize = 0; int32_t ksize = 0; - // Calculate the size of the resulting string. + // Check the sizes of the input strings. // Language if ( newLanguage != NULL ) @@ -313,7 +312,6 @@ Locale::Locale( const char * newLanguage, setToBogus(); return; } - size = lsize; } CharString togo(newLanguage, lsize, status); // start with newLanguage @@ -326,7 +324,6 @@ Locale::Locale( const char * newLanguage, setToBogus(); return; } - size += csize; } // _Variant @@ -350,21 +347,6 @@ Locale::Locale( const char * newLanguage, } } - if( vsize > 0 ) - { - size += vsize; - } - - // Separator rules: - if ( vsize > 0 ) - { - size += 2; // at least: __v - } - else if ( csize > 0 ) - { - size += 1; // at least: _v - } - if ( newKeywords != NULL) { ksize = (int32_t)uprv_strlen(newKeywords); @@ -372,11 +354,9 @@ Locale::Locale( const char * newLanguage, setToBogus(); return; } - size += ksize + 1; } - // NOW we have the full locale string.. - // Now, copy it back. + // We've checked the input sizes, now build up the full locale string.. // newLanguage is already copied @@ -469,14 +449,18 @@ Locale& Locale::operator=(Locale&& other) U_NOEXCEPT { if ((baseName != fullName) && (baseName != fullNameBuffer)) uprv_free(baseName); if (fullName != fullNameBuffer) uprv_free(fullName); - if (other.fullName == other.fullNameBuffer) { + if (other.fullName == other.fullNameBuffer || other.baseName == other.fullNameBuffer) { uprv_strcpy(fullNameBuffer, other.fullNameBuffer); + } + if (other.fullName == other.fullNameBuffer) { fullName = fullNameBuffer; } else { fullName = other.fullName; } - if (other.baseName == other.fullName) { + if (other.baseName == other.fullNameBuffer) { + baseName = fullNameBuffer; + } else if (other.baseName == other.fullName) { baseName = fullName; } else { baseName = other.baseName; @@ -499,7 +483,7 @@ Locale::clone() const { return new Locale(*this); } -UBool +bool Locale::operator==( const Locale& other) const { return (uprv_strcmp(other.fullName, fullName) == 0); @@ -768,7 +752,7 @@ AliasDataBuilder::readLanguageAlias( alias, strings, types, replacementIndexes, length, #if U_DEBUG [](const char* type) { - // Assert the aliasFrom only contains the following possibilties + // Assert the aliasFrom only contains the following possibilities // language_REGION_variant // language_REGION // language_variant @@ -1227,7 +1211,7 @@ AliasReplacer::parseLanguageReplacement( status = U_MEMORY_ALLOCATION_ERROR; return; } - toBeFreed.addElement(str, status); + toBeFreed.addElementX(str, status); char* data = str->data(); replacedLanguage = (const char*) data; char* endOfField = uprv_strchr(data, '_'); @@ -1367,7 +1351,7 @@ AliasReplacer::replaceLanguage( } if (replacedExtensions != nullptr) { // DO NOTHING - // UTS35 does not specifiy what should we do if we have extensions in the + // UTS35 does not specify what should we do if we have extensions in the // replacement. Currently we know only the following 4 "BCP47 LegacyRules" have // extensions in them languageAlias: // i_default => en_x_i_default @@ -1441,7 +1425,7 @@ AliasReplacer::replaceTerritory(UVector& toBeFreed, UErrorCode& status) return false; } replacedRegion = item->data(); - toBeFreed.addElement(item.orphan(), status); + toBeFreed.addElementX(item.orphan(), status); } U_ASSERT(!same(region, replacedRegion)); region = replacedRegion; @@ -1567,6 +1551,7 @@ AliasReplacer::replaceTransformedExtensions( const char* tvalue = uprv_strchr(tkey, '-'); if (tvalue == nullptr) { status = U_ILLEGAL_ARGUMENT_ERROR; + return false; } const char* nextTKey = ultag_getTKeyStart(tvalue); if (nextTKey != nullptr) { @@ -1578,13 +1563,8 @@ AliasReplacer::replaceTransformedExtensions( } tkey = nextTKey; } while (tkey != nullptr); - tfields.sort([](UElement e1, UElement e2) -> int8_t { - // uprv_strcmp return int and in some platform, such as arm64-v8a, - // it may return positive values > 127 which cause the casted value - // of int8_t negative. - int res = uprv_strcmp( - (const char*)e1.pointer, (const char*)e2.pointer); - return (res == 0) ? 0 : ((res > 0) ? 1 : -1); + tfields.sort([](UElement e1, UElement e2) -> int32_t { + return uprv_strcmp((const char*)e1.pointer, (const char*)e2.pointer); }, status); for (int32_t i = 0; i < tfields.size(); i++) { if (output.length() > 0) { @@ -1592,8 +1572,11 @@ AliasReplacer::replaceTransformedExtensions( } const char* tfield = (const char*) tfields.elementAt(i); const char* tvalue = uprv_strchr(tfield, '-'); + if (tvalue == nullptr) { + status = U_ILLEGAL_ARGUMENT_ERROR; + return false; + } // Split the "tkey-tvalue" pair string so that we can canonicalize the tvalue. - U_ASSERT(tvalue != nullptr); *((char*)tvalue++) = '\0'; // NULL terminate tkey output.append(tfield, status).append('-', status); const char* bcpTValue = ulocimp_toBcpType(tfield, tvalue, nullptr, nullptr); @@ -1623,13 +1606,8 @@ AliasReplacer::outputToString( if (!notEmpty(script) && !notEmpty(region)) { out.append(SEP_CHAR, status); } - variants.sort([](UElement e1, UElement e2) -> int8_t { - // uprv_strcmp return int and in some platform, such as arm64-v8a, - // it may return positive values > 127 which cause the casted value - // of int8_t negative. - int res = uprv_strcmp( - (const char*)e1.pointer, (const char*)e2.pointer); - return (res == 0) ? 0 : ((res > 0) ? 1 : -1); + variants.sort([](UElement e1, UElement e2) -> int32_t { + return uprv_strcmp((const char*)e1.pointer, (const char*)e2.pointer); }, status); int32_t variantsStart = out.length(); for (int32_t i = 0; i < variants.size(); i++) { @@ -1681,21 +1659,16 @@ AliasReplacer::replace(const Locale& locale, CharString& out, UErrorCode& status while ((end = uprv_strchr(start, SEP_CHAR)) != nullptr && U_SUCCESS(status)) { *end = NULL_CHAR; // null terminate inside variantsBuff - variants.addElement(start, status); + variants.addElementX(start, status); start = end + 1; } - variants.addElement(start, status); + variants.addElementX(start, status); } if (U_FAILURE(status)) { return false; } // Sort the variants - variants.sort([](UElement e1, UElement e2) -> int8_t { - // uprv_strcmp return int and in some platform, such as arm64-v8a, - // it may return positive values > 127 which cause the casted value - // of int8_t negative. - int res = uprv_strcmp( - (const char*)e1.pointer, (const char*)e2.pointer); - return (res == 0) ? 0 : ((res > 0) ? 1 : -1); + variants.sort([](UElement e1, UElement e2) -> int32_t { + return uprv_strcmp((const char*)e1.pointer, (const char*)e2.pointer); }, status); // A changed count to assert when loop too many times. @@ -1737,7 +1710,7 @@ AliasReplacer::replace(const Locale& locale, CharString& out, UErrorCode& status } // while(1) if (U_FAILURE(status)) { return false; } - // Nothing changed and we know the order of the vaiants are not change + // Nothing changed and we know the order of the variants are not change // because we have no variant or only one. const char* extensionsStr = locale_getKeywordsStart(locale.getName()); if (changed == 0 && variants.size() <= 1 && extensionsStr == nullptr) { @@ -2445,7 +2418,7 @@ class KeywordEnumeration : public StringEnumeration { public: static UClassID U_EXPORT2 getStaticClassID(void) { return (UClassID)&fgClassID; } - virtual UClassID getDynamicClassID(void) const { return getStaticClassID(); } + virtual UClassID getDynamicClassID(void) const override { return getStaticClassID(); } public: KeywordEnumeration(const char *keys, int32_t keywordLen, int32_t currentIndex, UErrorCode &status) : keywords((char *)&fgClassID), current((char *)&fgClassID), length(0) { @@ -2469,13 +2442,13 @@ class KeywordEnumeration : public StringEnumeration { virtual ~KeywordEnumeration(); - virtual StringEnumeration * clone() const + virtual StringEnumeration * clone() const override { UErrorCode status = U_ZERO_ERROR; return new KeywordEnumeration(keywords, length, (int32_t)(current - keywords), status); } - virtual int32_t count(UErrorCode &/*status*/) const { + virtual int32_t count(UErrorCode &/*status*/) const override { char *kw = keywords; int32_t result = 0; while(*kw) { @@ -2485,7 +2458,7 @@ class KeywordEnumeration : public StringEnumeration { return result; } - virtual const char* next(int32_t* resultLength, UErrorCode& status) { + virtual const char* next(int32_t* resultLength, UErrorCode& status) override { const char* result; int32_t len; if(U_SUCCESS(status) && *current != 0) { @@ -2504,13 +2477,13 @@ class KeywordEnumeration : public StringEnumeration { return result; } - virtual const UnicodeString* snext(UErrorCode& status) { + virtual const UnicodeString* snext(UErrorCode& status) override { int32_t resultLength = 0; const char *s = next(&resultLength, status); return setChars(s, resultLength, status); } - virtual void reset(UErrorCode& /*status*/) { + virtual void reset(UErrorCode& /*status*/) override { current = keywords; } }; @@ -2528,18 +2501,18 @@ class UnicodeKeywordEnumeration : public KeywordEnumeration { using KeywordEnumeration::KeywordEnumeration; virtual ~UnicodeKeywordEnumeration(); - virtual const char* next(int32_t* resultLength, UErrorCode& status) { + virtual const char* next(int32_t* resultLength, UErrorCode& status) override { const char* legacy_key = KeywordEnumeration::next(nullptr, status); - if (U_SUCCESS(status) && legacy_key != nullptr) { + while (U_SUCCESS(status) && legacy_key != nullptr) { const char* key = uloc_toUnicodeLocaleKey(legacy_key); - if (key == nullptr) { - status = U_ILLEGAL_ARGUMENT_ERROR; - } else { + if (key != nullptr) { if (resultLength != nullptr) { *resultLength = static_cast(uprv_strlen(key)); } return key; } + // Not a Unicode keyword, could be a t, x or other, continue to look at the next one. + legacy_key = KeywordEnumeration::next(nullptr, status); } if (resultLength != nullptr) *resultLength = 0; return nullptr; @@ -2696,6 +2669,9 @@ Locale::setKeywordValue(const char* keywordName, const char* keywordValue, UErro if (fullName != fullNameBuffer) { // if full Name is already on the heap, need to free it. uprv_free(fullName); + if (baseName == fullName) { + baseName = newFullName; // baseName should not point to freed memory. + } } fullName = newFullName; status = U_ZERO_ERROR; diff --git a/deps/icu-small/source/common/loclikely.cpp b/deps/icu-small/source/common/loclikely.cpp index 6a34bb42cecf3f..d80096b588e714 100644 --- a/deps/icu-small/source/common/loclikely.cpp +++ b/deps/icu-small/source/common/loclikely.cpp @@ -115,7 +115,7 @@ findLikelySubtags(const char* localeID, * @param tag The tag to add. * @param tagLength The length of the tag. * @param buffer The output buffer. - * @param bufferLength The length of the output buffer. This is an input/ouput parameter. + * @param bufferLength The length of the output buffer. This is an input/output parameter. **/ static void U_CALLCONV appendTag( @@ -148,7 +148,7 @@ appendTag( * to be used when constructing the new tag. If the alternateTags parameter is NULL, or * it contains no language tag, the default tag for the unknown language is used. * - * If the length of the new string exceeds the capacity of the output buffer, + * If the length of the new string exceeds the capacity of the output buffer, * the function copies as many bytes to the output buffer as it can, and returns * the error U_BUFFER_OVERFLOW_ERROR. * @@ -366,7 +366,7 @@ createTagStringWithAlternates( * must be less than or equal to 0. If the lang parameter is an empty string, the * default value for an unknown language is written to the output buffer. * - * If the length of the new string exceeds the capacity of the output buffer, + * If the length of the new string exceeds the capacity of the output buffer, * the function copies as many bytes to the output buffer as it can, and returns * the error U_BUFFER_OVERFLOW_ERROR. * @@ -506,7 +506,7 @@ parseTagString( */ if (_isIDSeparator(*position)) { ++position; - } + } } subtagLength = ulocimp_getCountry(position, &position, *err).extract(region, *regionLength, *err); @@ -1181,13 +1181,13 @@ _uloc_minimizeSubtags(const char* localeID, } } -static UBool +static int32_t do_canonicalize(const char* localeID, char* buffer, int32_t bufferCapacity, UErrorCode* err) { - uloc_canonicalize( + int32_t canonicalizedSize = uloc_canonicalize( localeID, buffer, bufferCapacity, @@ -1195,16 +1195,14 @@ do_canonicalize(const char* localeID, if (*err == U_STRING_NOT_TERMINATED_WARNING || *err == U_BUFFER_OVERFLOW_ERROR) { - *err = U_ILLEGAL_ARGUMENT_ERROR; - - return FALSE; + return canonicalizedSize; } else if (U_FAILURE(*err)) { - return FALSE; + return -1; } else { - return TRUE; + return canonicalizedSize; } } @@ -1241,12 +1239,17 @@ static UBool _ulocimp_addLikelySubtags(const char* localeID, icu::ByteSink& sink, UErrorCode* status) { - char localeBuffer[ULOC_FULLNAME_CAPACITY]; - - if (do_canonicalize(localeID, localeBuffer, sizeof localeBuffer, status)) { - return _uloc_addLikelySubtags(localeBuffer, sink, status); + PreflightingLocaleIDBuffer localeBuffer; + do { + localeBuffer.requestedCapacity = do_canonicalize(localeID, localeBuffer.getBuffer(), + localeBuffer.getCapacity(), status); + } while (localeBuffer.needToTryAgain(status)); + + if (U_SUCCESS(*status)) { + return _uloc_addLikelySubtags(localeBuffer.getBuffer(), sink, status); + } else { + return FALSE; } - return FALSE; } U_CAPI void U_EXPORT2 @@ -1289,11 +1292,13 @@ U_CAPI void U_EXPORT2 ulocimp_minimizeSubtags(const char* localeID, icu::ByteSink& sink, UErrorCode* status) { - char localeBuffer[ULOC_FULLNAME_CAPACITY]; - - if (do_canonicalize(localeID, localeBuffer, sizeof localeBuffer, status)) { - _uloc_minimizeSubtags(localeBuffer, sink, status); - } + PreflightingLocaleIDBuffer localeBuffer; + do { + localeBuffer.requestedCapacity = do_canonicalize(localeID, localeBuffer.getBuffer(), + localeBuffer.getCapacity(), status); + } while (localeBuffer.needToTryAgain(status)); + + _uloc_minimizeSubtags(localeBuffer.getBuffer(), sink, status); } // Pairs of (language subtag, + or -) for finding out fast if common languages @@ -1407,3 +1412,4 @@ ulocimp_getRegionForSupplementalData(const char *localeID, UBool inferRegion, uprv_strncpy(region, rgBuf, regionCapacity); return u_terminateChars(region, regionCapacity, rgLen, status); } + diff --git a/deps/icu-small/source/common/locmap.cpp b/deps/icu-small/source/common/locmap.cpp index 515205222a65ac..29a5646385e793 100644 --- a/deps/icu-small/source/common/locmap.cpp +++ b/deps/icu-small/source/common/locmap.cpp @@ -20,7 +20,7 @@ * * Date Name Description * 3/11/97 aliu Fixed off-by-one bug in assignment operator. Added - * setId() method and safety check against + * setId() method and safety check against * MAX_ID_LENGTH. * 04/23/99 stephen Added C wrapper for convertToPosix. * 09/18/00 george Removed the memory leaks. @@ -118,7 +118,7 @@ static const ILcidPosixElement locmap_ ## id [] = // Keep static locale variables inside the function so that // it can be created properly during static init. // -// Note: This table should be updated periodically. Check the [MS-LCID] Windows Language Code Identifier +// Note: This table should be updated periodically. Check the [MS-LCID] Windows Language Code Identifier // (LCID) Reference defined at https://msdn.microsoft.com/en-us/library/cc233965.aspx // // Microsoft is moving away from LCID in favor of locale name as of Vista. This table needs to be @@ -132,7 +132,7 @@ static const ILcidPosixElement locmap_ ## id [] = //////////////////////////////////////////// */ -// TODO: For Windows ideally this table would be a list of exceptions rather than a complete list as +// TODO: For Windows ideally this table would be a list of exceptions rather than a complete list as // LocaleNameToLCID and LCIDToLocaleName provide 90% of these. ILCID_POSIX_ELEMENT_ARRAY(0x0436, af, af_ZA) @@ -524,7 +524,7 @@ ILCID_POSIX_SUBTABLE(nl) { /* The "no" locale split into nb and nn. By default in ICU, "no" is nb.*/ // TODO: Not all of these are needed on Windows, but I don't know how ICU treats preferred ones here. ILCID_POSIX_SUBTABLE(no) { - {0x14, "no"}, /* really nb_NO - actually Windows differentiates between neutral (no region) and specific (with region) */ + {0x14, "no"}, /* really nb_NO - actually Windows differentiates between neutral (no region) and specific (with region) */ {0x7c14, "nb"}, /* really nb */ {0x0414, "nb_NO"}, /* really nb_NO. Keep first in the 414 list. */ {0x0414, "no_NO"}, /* really nb_NO */ @@ -1273,7 +1273,7 @@ uprv_convertToLCID(const char *langID, const char* posixID, UErrorCode* status) mid = (high+low) >> 1; /*Finds median*/ - if (mid == oldmid) + if (mid == oldmid) break; compVal = uprv_strcmp(langID, gPosixIDmap[mid].regionMaps->posixID); diff --git a/deps/icu-small/source/common/locmap.h b/deps/icu-small/source/common/locmap.h index 492a9413628ffb..e669873a143bfd 100644 --- a/deps/icu-small/source/common/locmap.h +++ b/deps/icu-small/source/common/locmap.h @@ -9,7 +9,7 @@ ****************************************************************************** * * File locmap.h : Locale Mapping Classes -* +* * * Created by: Helena Shih * @@ -37,3 +37,4 @@ U_CAPI uint32_t uprv_convertToLCIDPlatform(const char* localeID, UErrorCode* sta U_CAPI uint32_t uprv_convertToLCID(const char* langID, const char* posixID, UErrorCode* status); #endif /* LOCMAP_H */ + diff --git a/deps/icu-small/source/common/locresdata.cpp b/deps/icu-small/source/common/locresdata.cpp index 69d744306417d5..d1d9a4729f107b 100644 --- a/deps/icu-small/source/common/locresdata.cpp +++ b/deps/icu-small/source/common/locresdata.cpp @@ -83,9 +83,9 @@ uloc_getTableStringWithFallback(const char *path, const char *locale, if(U_FAILURE(errorCode)){ *pErrorCode = errorCode; } - + break;*/ - + ures_getByKeyWithFallback(table.getAlias(), subTableKey, table.getAlias(), &errorCode); } if(U_SUCCESS(errorCode)){ @@ -112,8 +112,8 @@ uloc_getTableStringWithFallback(const char *path, const char *locale, break; } } - - if(U_FAILURE(errorCode)){ + + if(U_FAILURE(errorCode)){ /* still can't figure out ?.. try the fallback mechanism */ int32_t len = 0; @@ -126,9 +126,9 @@ uloc_getTableStringWithFallback(const char *path, const char *locale, *pErrorCode = errorCode; break; } - + u_UCharsToChars(fallbackLocale, explicitFallbackName, len); - + /* guard against recursive fallback */ if(uprv_strcmp(explicitFallbackName, locale)==0){ *pErrorCode = U_INTERNAL_PROGRAM_ERROR; @@ -207,7 +207,7 @@ uloc_getCharacterOrientation(const char* localeId, /** * Get the layout line orientation for the specified locale. - * + * * @param localeID locale name * @param status Error status * @return an enum indicating the layout orientation for lines. diff --git a/deps/icu-small/source/common/locutil.cpp b/deps/icu-small/source/common/locutil.cpp index 74745a37d6d47c..3d9d69ff7ed0e2 100644 --- a/deps/icu-small/source/common/locutil.cpp +++ b/deps/icu-small/source/common/locutil.cpp @@ -33,7 +33,7 @@ static icu::Hashtable * LocaleUtility_cache = NULL; */ /** - * Release all static memory held by Locale Utility. + * Release all static memory held by Locale Utility. */ U_CDECL_BEGIN static UBool U_CALLCONV service_cleanup(void) { @@ -271,3 +271,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/lsr.cpp b/deps/icu-small/source/common/lsr.cpp index b81808f2c4aae1..1f0b69ab0fd101 100644 --- a/deps/icu-small/source/common/lsr.cpp +++ b/deps/icu-small/source/common/lsr.cpp @@ -72,7 +72,7 @@ UBool LSR::isEquivalentTo(const LSR &other) const { (regionIndex > 0 || uprv_strcmp(region, other.region) == 0); } -UBool LSR::operator==(const LSR &other) const { +bool LSR::operator==(const LSR &other) const { return uprv_strcmp(language, other.language) == 0 && uprv_strcmp(script, other.script) == 0 && diff --git a/deps/icu-small/source/common/lsr.h b/deps/icu-small/source/common/lsr.h index a33f855245335e..af993c11d60916 100644 --- a/deps/icu-small/source/common/lsr.h +++ b/deps/icu-small/source/common/lsr.h @@ -65,9 +65,9 @@ struct LSR final : public UMemory { static int32_t indexForRegion(const char *region); UBool isEquivalentTo(const LSR &other) const; - UBool operator==(const LSR &other) const; + bool operator==(const LSR &other) const; - inline UBool operator!=(const LSR &other) const { + inline bool operator!=(const LSR &other) const { return !operator==(other); } diff --git a/deps/icu-small/source/common/lstmbe.cpp b/deps/icu-small/source/common/lstmbe.cpp new file mode 100644 index 00000000000000..3793abceb3fb1c --- /dev/null +++ b/deps/icu-small/source/common/lstmbe.cpp @@ -0,0 +1,855 @@ +// © 2021 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html + +#include +#include + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_BREAK_ITERATION + +#include "brkeng.h" +#include "charstr.h" +#include "cmemory.h" +#include "lstmbe.h" +#include "putilimp.h" +#include "uassert.h" +#include "ubrkimpl.h" +#include "uresimp.h" +#include "uvectr32.h" +#include "uvector.h" + +#include "unicode/brkiter.h" +#include "unicode/resbund.h" +#include "unicode/ubrk.h" +#include "unicode/uniset.h" +#include "unicode/ustring.h" +#include "unicode/utf.h" + +U_NAMESPACE_BEGIN + +// Uncomment the following #define to debug. +// #define LSTM_DEBUG 1 +// #define LSTM_VECTORIZER_DEBUG 1 + +/** + * Interface for reading 1D array. + */ +class ReadArray1D { +public: + virtual ~ReadArray1D(); + virtual int32_t d1() const = 0; + virtual float get(int32_t i) const = 0; + +#ifdef LSTM_DEBUG + void print() const { + printf("\n["); + for (int32_t i = 0; i < d1(); i++) { + printf("%0.8e ", get(i)); + if (i % 4 == 3) printf("\n"); + } + printf("]\n"); + } +#endif +}; + +ReadArray1D::~ReadArray1D() +{ +} + +/** + * Interface for reading 2D array. + */ +class ReadArray2D { +public: + virtual ~ReadArray2D(); + virtual int32_t d1() const = 0; + virtual int32_t d2() const = 0; + virtual float get(int32_t i, int32_t j) const = 0; +}; + +ReadArray2D::~ReadArray2D() +{ +} + +/** + * A class to index a float array as a 1D Array without owning the pointer or + * copy the data. + */ +class ConstArray1D : public ReadArray1D { +public: + ConstArray1D() : data_(nullptr), d1_(0) {} + + ConstArray1D(const float* data, int32_t d1) : data_(data), d1_(d1) {} + + virtual ~ConstArray1D(); + + // Init the object, the object does not own the data nor copy. + // It is designed to directly use data from memory mapped resources. + void init(const int32_t* data, int32_t d1) { + U_ASSERT(IEEE_754 == 1); + data_ = reinterpret_cast(data); + d1_ = d1; + } + + // ReadArray1D methods. + virtual int32_t d1() const override { return d1_; } + virtual float get(int32_t i) const override { + U_ASSERT(i < d1_); + return data_[i]; + } + +private: + const float* data_; + int32_t d1_; +}; + +ConstArray1D::~ConstArray1D() +{ +} + +/** + * A class to index a float array as a 2D Array without owning the pointer or + * copy the data. + */ +class ConstArray2D : public ReadArray2D { +public: + ConstArray2D() : data_(nullptr), d1_(0), d2_(0) {} + + ConstArray2D(const float* data, int32_t d1, int32_t d2) + : data_(data), d1_(d1), d2_(d2) {} + + virtual ~ConstArray2D(); + + // Init the object, the object does not own the data nor copy. + // It is designed to directly use data from memory mapped resources. + void init(const int32_t* data, int32_t d1, int32_t d2) { + U_ASSERT(IEEE_754 == 1); + data_ = reinterpret_cast(data); + d1_ = d1; + d2_ = d2; + } + + // ReadArray2D methods. + inline int32_t d1() const override { return d1_; } + inline int32_t d2() const override { return d2_; } + float get(int32_t i, int32_t j) const override { + U_ASSERT(i < d1_); + U_ASSERT(j < d2_); + return data_[i * d2_ + j]; + } + + // Expose the ith row as a ConstArray1D + inline ConstArray1D row(int32_t i) const { + U_ASSERT(i < d1_); + return ConstArray1D(data_ + i * d2_, d2_); + } + +private: + const float* data_; + int32_t d1_; + int32_t d2_; +}; + +ConstArray2D::~ConstArray2D() +{ +} + +/** + * A class to allocate data as a writable 1D array. + * This is the main class implement matrix operation. + */ +class Array1D : public ReadArray1D { +public: + Array1D() : memory_(nullptr), data_(nullptr), d1_(0) {} + Array1D(int32_t d1, UErrorCode &status) + : memory_(uprv_malloc(d1 * sizeof(float))), + data_((float*)memory_), d1_(d1) { + if (U_SUCCESS(status)) { + if (memory_ == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + clear(); + } + } + + virtual ~Array1D(); + + // A special constructor which does not own the memory but writeable + // as a slice of an array. + Array1D(float* data, int32_t d1) + : memory_(nullptr), data_(data), d1_(d1) {} + + // ReadArray1D methods. + virtual int32_t d1() const override { return d1_; } + virtual float get(int32_t i) const override { + U_ASSERT(i < d1_); + return data_[i]; + } + + // Return the index which point to the max data in the array. + inline int32_t maxIndex() const { + int32_t index = 0; + float max = data_[0]; + for (int32_t i = 1; i < d1_; i++) { + if (data_[i] > max) { + max = data_[i]; + index = i; + } + } + return index; + } + + // Slice part of the array to a new one. + inline Array1D slice(int32_t from, int32_t size) const { + U_ASSERT(from >= 0); + U_ASSERT(from < d1_); + U_ASSERT(from + size <= d1_); + return Array1D(data_ + from, size); + } + + // Add dot product of a 1D array and a 2D array into this one. + inline Array1D& addDotProduct(const ReadArray1D& a, const ReadArray2D& b) { + U_ASSERT(a.d1() == b.d1()); + U_ASSERT(b.d2() == d1()); + for (int32_t i = 0; i < d1(); i++) { + for (int32_t j = 0; j < a.d1(); j++) { + data_[i] += a.get(j) * b.get(j, i); + } + } + return *this; + } + + // Hadamard Product the values of another array of the same size into this one. + inline Array1D& hadamardProduct(const ReadArray1D& a) { + U_ASSERT(a.d1() == d1()); + for (int32_t i = 0; i < d1(); i++) { + data_[i] *= a.get(i); + } + return *this; + } + + // Add the Hadamard Product of two arrays of the same size into this one. + inline Array1D& addHadamardProduct(const ReadArray1D& a, const ReadArray1D& b) { + U_ASSERT(a.d1() == d1()); + U_ASSERT(b.d1() == d1()); + for (int32_t i = 0; i < d1(); i++) { + data_[i] += a.get(i) * b.get(i); + } + return *this; + } + + // Add the values of another array of the same size into this one. + inline Array1D& add(const ReadArray1D& a) { + U_ASSERT(a.d1() == d1()); + for (int32_t i = 0; i < d1(); i++) { + data_[i] += a.get(i); + } + return *this; + } + + // Assign the values of another array of the same size into this one. + inline Array1D& assign(const ReadArray1D& a) { + U_ASSERT(a.d1() == d1()); + for (int32_t i = 0; i < d1(); i++) { + data_[i] = a.get(i); + } + return *this; + } + + // Apply tanh to all the elements in the array. + inline Array1D& tanh() { + return tanh(*this); + } + + // Apply tanh of a and store into this array. + inline Array1D& tanh(const Array1D& a) { + U_ASSERT(a.d1() == d1()); + for (int32_t i = 0; i < d1_; i++) { + data_[i] = std::tanh(a.get(i)); + } + return *this; + } + + // Apply sigmoid to all the elements in the array. + inline Array1D& sigmoid() { + for (int32_t i = 0; i < d1_; i++) { + data_[i] = 1.0f/(1.0f + expf(-data_[i])); + } + return *this; + } + + inline Array1D& clear() { + uprv_memset(data_, 0, d1_ * sizeof(float)); + return *this; + } + +private: + void* memory_; + float* data_; + int32_t d1_; +}; + +Array1D::~Array1D() +{ + uprv_free(memory_); +} + +class Array2D : public ReadArray2D { +public: + Array2D() : memory_(nullptr), data_(nullptr), d1_(0), d2_(0) {} + Array2D(int32_t d1, int32_t d2, UErrorCode &status) + : memory_(uprv_malloc(d1 * d2 * sizeof(float))), + data_((float*)memory_), d1_(d1), d2_(d2) { + if (U_SUCCESS(status)) { + if (memory_ == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + clear(); + } + } + virtual ~Array2D(); + + // ReadArray2D methods. + virtual int32_t d1() const override { return d1_; } + virtual int32_t d2() const override { return d2_; } + virtual float get(int32_t i, int32_t j) const override { + U_ASSERT(i < d1_); + U_ASSERT(j < d2_); + return data_[i * d2_ + j]; + } + + inline Array1D row(int32_t i) const { + U_ASSERT(i < d1_); + return Array1D(data_ + i * d2_, d2_); + } + + inline Array2D& clear() { + uprv_memset(data_, 0, d1_ * d2_ * sizeof(float)); + return *this; + } + +private: + void* memory_; + float* data_; + int32_t d1_; + int32_t d2_; +}; + +Array2D::~Array2D() +{ + uprv_free(memory_); +} + +typedef enum { + BEGIN, + INSIDE, + END, + SINGLE +} LSTMClass; + +typedef enum { + UNKNOWN, + CODE_POINTS, + GRAPHEME_CLUSTER, +} EmbeddingType; + +struct LSTMData : public UMemory { + LSTMData(UResourceBundle* rb, UErrorCode &status); + ~LSTMData(); + UHashtable* fDict; + EmbeddingType fType; + const UChar* fName; + ConstArray2D fEmbedding; + ConstArray2D fForwardW; + ConstArray2D fForwardU; + ConstArray1D fForwardB; + ConstArray2D fBackwardW; + ConstArray2D fBackwardU; + ConstArray1D fBackwardB; + ConstArray2D fOutputW; + ConstArray1D fOutputB; + +private: + UResourceBundle* fBundle; +}; + +LSTMData::LSTMData(UResourceBundle* rb, UErrorCode &status) + : fDict(nullptr), fType(UNKNOWN), fName(nullptr), + fBundle(rb) +{ + if (U_FAILURE(status)) { + return; + } + if (IEEE_754 != 1) { + status = U_UNSUPPORTED_ERROR; + return; + } + LocalUResourceBundlePointer embeddings_res( + ures_getByKey(rb, "embeddings", nullptr, &status)); + int32_t embedding_size = ures_getInt(embeddings_res.getAlias(), &status); + LocalUResourceBundlePointer hunits_res( + ures_getByKey(rb, "hunits", nullptr, &status)); + if (U_FAILURE(status)) return; + int32_t hunits = ures_getInt(hunits_res.getAlias(), &status); + const UChar* type = ures_getStringByKey(rb, "type", nullptr, &status); + if (U_FAILURE(status)) return; + if (u_strCompare(type, -1, u"codepoints", -1, false) == 0) { + fType = CODE_POINTS; + } else if (u_strCompare(type, -1, u"graphclust", -1, false) == 0) { + fType = GRAPHEME_CLUSTER; + } + fName = ures_getStringByKey(rb, "model", nullptr, &status); + LocalUResourceBundlePointer dataRes(ures_getByKey(rb, "data", nullptr, &status)); + if (U_FAILURE(status)) return; + int32_t data_len = 0; + const int32_t* data = ures_getIntVector(dataRes.getAlias(), &data_len, &status); + fDict = uhash_open(uhash_hashUChars, uhash_compareUChars, nullptr, &status); + + StackUResourceBundle stackTempBundle; + ResourceDataValue value; + ures_getValueWithFallback(rb, "dict", stackTempBundle.getAlias(), value, status); + ResourceArray stringArray = value.getArray(status); + int32_t num_index = stringArray.getSize(); + if (U_FAILURE(status)) { return; } + + // put dict into hash + int32_t stringLength; + for (int32_t idx = 0; idx < num_index; idx++) { + stringArray.getValue(idx, value); + const UChar* str = value.getString(stringLength, status); + uhash_putiAllowZero(fDict, (void*)str, idx, &status); + if (U_FAILURE(status)) return; +#ifdef LSTM_VECTORIZER_DEBUG + printf("Assign ["); + while (*str != 0x0000) { + printf("U+%04x ", *str); + str++; + } + printf("] map to %d\n", idx-1); +#endif + } + int32_t mat1_size = (num_index + 1) * embedding_size; + int32_t mat2_size = embedding_size * 4 * hunits; + int32_t mat3_size = hunits * 4 * hunits; + int32_t mat4_size = 4 * hunits; + int32_t mat5_size = mat2_size; + int32_t mat6_size = mat3_size; + int32_t mat7_size = mat4_size; + int32_t mat8_size = 2 * hunits * 4; +#if U_DEBUG + int32_t mat9_size = 4; + U_ASSERT(data_len == mat1_size + mat2_size + mat3_size + mat4_size + mat5_size + + mat6_size + mat7_size + mat8_size + mat9_size); +#endif + + fEmbedding.init(data, (num_index + 1), embedding_size); + data += mat1_size; + fForwardW.init(data, embedding_size, 4 * hunits); + data += mat2_size; + fForwardU.init(data, hunits, 4 * hunits); + data += mat3_size; + fForwardB.init(data, 4 * hunits); + data += mat4_size; + fBackwardW.init(data, embedding_size, 4 * hunits); + data += mat5_size; + fBackwardU.init(data, hunits, 4 * hunits); + data += mat6_size; + fBackwardB.init(data, 4 * hunits); + data += mat7_size; + fOutputW.init(data, 2 * hunits, 4); + data += mat8_size; + fOutputB.init(data, 4); +} + +LSTMData::~LSTMData() { + uhash_close(fDict); + ures_close(fBundle); +} + +class Vectorizer : public UMemory { +public: + Vectorizer(UHashtable* dict) : fDict(dict) {} + virtual ~Vectorizer(); + virtual void vectorize(UText *text, int32_t startPos, int32_t endPos, + UVector32 &offsets, UVector32 &indices, + UErrorCode &status) const = 0; +protected: + int32_t stringToIndex(const UChar* str) const { + UBool found = false; + int32_t ret = uhash_getiAndFound(fDict, (const void*)str, &found); + if (!found) { + ret = fDict->count; + } +#ifdef LSTM_VECTORIZER_DEBUG + printf("["); + while (*str != 0x0000) { + printf("U+%04x ", *str); + str++; + } + printf("] map to %d\n", ret); +#endif + return ret; + } + +private: + UHashtable* fDict; +}; + +Vectorizer::~Vectorizer() +{ +} + +class CodePointsVectorizer : public Vectorizer { +public: + CodePointsVectorizer(UHashtable* dict) : Vectorizer(dict) {} + virtual ~CodePointsVectorizer(); + virtual void vectorize(UText *text, int32_t startPos, int32_t endPos, + UVector32 &offsets, UVector32 &indices, + UErrorCode &status) const override; +}; + +CodePointsVectorizer::~CodePointsVectorizer() +{ +} + +void CodePointsVectorizer::vectorize( + UText *text, int32_t startPos, int32_t endPos, + UVector32 &offsets, UVector32 &indices, UErrorCode &status) const +{ + if (offsets.ensureCapacity(endPos - startPos, status) && + indices.ensureCapacity(endPos - startPos, status)) { + if (U_FAILURE(status)) return; + utext_setNativeIndex(text, startPos); + int32_t current; + UChar str[2] = {0, 0}; + while (U_SUCCESS(status) && + (current = (int32_t)utext_getNativeIndex(text)) < endPos) { + // Since the LSTMBreakEngine is currently only accept chars in BMP, + // we can ignore the possibility of hitting supplementary code + // point. + str[0] = (UChar) utext_next32(text); + U_ASSERT(!U_IS_SURROGATE(str[0])); + offsets.addElement(current, status); + indices.addElement(stringToIndex(str), status); + } + } +} + +class GraphemeClusterVectorizer : public Vectorizer { +public: + GraphemeClusterVectorizer(UHashtable* dict) + : Vectorizer(dict) + { + } + virtual ~GraphemeClusterVectorizer(); + virtual void vectorize(UText *text, int32_t startPos, int32_t endPos, + UVector32 &offsets, UVector32 &indices, + UErrorCode &status) const override; +}; + +GraphemeClusterVectorizer::~GraphemeClusterVectorizer() +{ +} + +constexpr int32_t MAX_GRAPHEME_CLSTER_LENGTH = 10; + +void GraphemeClusterVectorizer::vectorize( + UText *text, int32_t startPos, int32_t endPos, + UVector32 &offsets, UVector32 &indices, UErrorCode &status) const +{ + if (U_FAILURE(status)) return; + if (!offsets.ensureCapacity(endPos - startPos, status) || + !indices.ensureCapacity(endPos - startPos, status)) { + return; + } + if (U_FAILURE(status)) return; + LocalPointer graphemeIter(BreakIterator::createCharacterInstance(Locale(), status)); + if (U_FAILURE(status)) return; + graphemeIter->setText(text, status); + if (U_FAILURE(status)) return; + + if (startPos != 0) { + graphemeIter->preceding(startPos); + } + int32_t last = startPos; + int32_t current = startPos; + UChar str[MAX_GRAPHEME_CLSTER_LENGTH]; + while ((current = graphemeIter->next()) != BreakIterator::DONE) { + if (current >= endPos) { + break; + } + if (current > startPos) { + utext_extract(text, last, current, str, MAX_GRAPHEME_CLSTER_LENGTH, &status); + if (U_FAILURE(status)) return; + offsets.addElement(last, status); + indices.addElement(stringToIndex(str), status); + if (U_FAILURE(status)) return; + } + last = current; + } + if (U_FAILURE(status) || last >= endPos) { + return; + } + utext_extract(text, last, endPos, str, MAX_GRAPHEME_CLSTER_LENGTH, &status); + if (U_SUCCESS(status)) { + offsets.addElement(last, status); + indices.addElement(stringToIndex(str), status); + } +} + +// Computing LSTM as stated in +// https://en.wikipedia.org/wiki/Long_short-term_memory#LSTM_with_a_forget_gate +// ifco is temp array allocate outside which does not need to be +// input/output value but could avoid unnecessary memory alloc/free if passing +// in. +void compute( + int32_t hunits, + const ReadArray2D& W, const ReadArray2D& U, const ReadArray1D& b, + const ReadArray1D& x, Array1D& h, Array1D& c, + Array1D& ifco) +{ + // ifco = x * W + h * U + b + ifco.assign(b) + .addDotProduct(x, W) + .addDotProduct(h, U); + + ifco.slice(0*hunits, hunits).sigmoid(); // i: sigmod + ifco.slice(1*hunits, hunits).sigmoid(); // f: sigmoid + ifco.slice(2*hunits, hunits).tanh(); // c_: tanh + ifco.slice(3*hunits, hunits).sigmoid(); // o: sigmod + + c.hadamardProduct(ifco.slice(hunits, hunits)) + .addHadamardProduct(ifco.slice(0, hunits), ifco.slice(2*hunits, hunits)); + + h.tanh(c) + .hadamardProduct(ifco.slice(3*hunits, hunits)); +} + +// Minimum word size +static const int32_t MIN_WORD = 2; + +// Minimum number of characters for two words +static const int32_t MIN_WORD_SPAN = MIN_WORD * 2; + +int32_t +LSTMBreakEngine::divideUpDictionaryRange( UText *text, + int32_t startPos, + int32_t endPos, + UVector32 &foundBreaks, + UErrorCode& status) const { + if (U_FAILURE(status)) return 0; + int32_t beginFoundBreakSize = foundBreaks.size(); + utext_setNativeIndex(text, startPos); + utext_moveIndex32(text, MIN_WORD_SPAN); + if (utext_getNativeIndex(text) >= endPos) { + return 0; // Not enough characters for two words + } + utext_setNativeIndex(text, startPos); + + UVector32 offsets(status); + UVector32 indices(status); + if (U_FAILURE(status)) return 0; + fVectorizer->vectorize(text, startPos, endPos, offsets, indices, status); + if (U_FAILURE(status)) return 0; + int32_t* offsetsBuf = offsets.getBuffer(); + int32_t* indicesBuf = indices.getBuffer(); + + int32_t input_seq_len = indices.size(); + int32_t hunits = fData->fForwardU.d1(); + + // ----- Begin of all the Array memory allocation needed for this function + // Allocate temp array used inside compute() + Array1D ifco(4 * hunits, status); + + Array1D c(hunits, status); + Array1D logp(4, status); + + // TODO: limit size of hBackward. If input_seq_len is too big, we could + // run out of memory. + // Backward LSTM + Array2D hBackward(input_seq_len, hunits, status); + + // Allocate fbRow and slice the internal array in two. + Array1D fbRow(2 * hunits, status); + + // ----- End of all the Array memory allocation needed for this function + if (U_FAILURE(status)) return 0; + + // To save the needed memory usage, the following is different from the + // Python or ICU4X implementation. We first perform the Backward LSTM + // and then merge the iteration of the forward LSTM and the output layer + // together because we only neetdto remember the h[t-1] for Forward LSTM. + for (int32_t i = input_seq_len - 1; i >= 0; i--) { + Array1D hRow = hBackward.row(i); + if (i != input_seq_len - 1) { + hRow.assign(hBackward.row(i+1)); + } +#ifdef LSTM_DEBUG + printf("hRow %d\n", i); + hRow.print(); + printf("indicesBuf[%d] = %d\n", i, indicesBuf[i]); + printf("fData->fEmbedding.row(indicesBuf[%d]):\n", i); + fData->fEmbedding.row(indicesBuf[i]).print(); +#endif // LSTM_DEBUG + compute(hunits, + fData->fBackwardW, fData->fBackwardU, fData->fBackwardB, + fData->fEmbedding.row(indicesBuf[i]), + hRow, c, ifco); + } + + + Array1D forwardRow = fbRow.slice(0, hunits); // point to first half of data in fbRow. + Array1D backwardRow = fbRow.slice(hunits, hunits); // point to second half of data n fbRow. + + // The following iteration merge the forward LSTM and the output layer + // together. + c.clear(); // reuse c since it is the same size. + for (int32_t i = 0; i < input_seq_len; i++) { +#ifdef LSTM_DEBUG + printf("forwardRow %d\n", i); + forwardRow.print(); +#endif // LSTM_DEBUG + // Forward LSTM + // Calculate the result into forwardRow, which point to the data in the first half + // of fbRow. + compute(hunits, + fData->fForwardW, fData->fForwardU, fData->fForwardB, + fData->fEmbedding.row(indicesBuf[i]), + forwardRow, c, ifco); + + // assign the data from hBackward.row(i) to second half of fbRowa. + backwardRow.assign(hBackward.row(i)); + + logp.assign(fData->fOutputB).addDotProduct(fbRow, fData->fOutputW); +#ifdef LSTM_DEBUG + printf("backwardRow %d\n", i); + backwardRow.print(); + printf("logp %d\n", i); + logp.print(); +#endif // LSTM_DEBUG + + // current = argmax(logp) + LSTMClass current = (LSTMClass)logp.maxIndex(); + // BIES logic. + if (current == BEGIN || current == SINGLE) { + if (i != 0) { + foundBreaks.addElement(offsetsBuf[i], status); + if (U_FAILURE(status)) return 0; + } + } + } + return foundBreaks.size() - beginFoundBreakSize; +} + +Vectorizer* createVectorizer(const LSTMData* data, UErrorCode &status) { + if (U_FAILURE(status)) { + return nullptr; + } + switch (data->fType) { + case CODE_POINTS: + return new CodePointsVectorizer(data->fDict); + break; + case GRAPHEME_CLUSTER: + return new GraphemeClusterVectorizer(data->fDict); + break; + default: + break; + } + UPRV_UNREACHABLE_EXIT; +} + +LSTMBreakEngine::LSTMBreakEngine(const LSTMData* data, const UnicodeSet& set, UErrorCode &status) + : DictionaryBreakEngine(), fData(data), fVectorizer(createVectorizer(fData, status)) +{ + if (U_FAILURE(status)) { + fData = nullptr; // If failure, we should not delete fData in destructor because the caller will do so. + return; + } + setCharacters(set); +} + +LSTMBreakEngine::~LSTMBreakEngine() { + delete fData; + delete fVectorizer; +} + +const UChar* LSTMBreakEngine::name() const { + return fData->fName; +} + +UnicodeString defaultLSTM(UScriptCode script, UErrorCode& status) { + // open root from brkitr tree. + UResourceBundle *b = ures_open(U_ICUDATA_BRKITR, "", &status); + b = ures_getByKeyWithFallback(b, "lstm", b, &status); + UnicodeString result = ures_getUnicodeStringByKey(b, uscript_getShortName(script), &status); + ures_close(b); + return result; +} + +U_CAPI const LSTMData* U_EXPORT2 CreateLSTMDataForScript(UScriptCode script, UErrorCode& status) +{ + if (script != USCRIPT_KHMER && script != USCRIPT_LAO && script != USCRIPT_MYANMAR && script != USCRIPT_THAI) { + return nullptr; + } + UnicodeString name = defaultLSTM(script, status); + if (U_FAILURE(status)) return nullptr; + CharString namebuf; + namebuf.appendInvariantChars(name, status).truncate(namebuf.lastIndexOf('.')); + + LocalUResourceBundlePointer rb( + ures_openDirect(U_ICUDATA_BRKITR, namebuf.data(), &status)); + if (U_FAILURE(status)) return nullptr; + + return CreateLSTMData(rb.orphan(), status); +} + +U_CAPI const LSTMData* U_EXPORT2 CreateLSTMData(UResourceBundle* rb, UErrorCode& status) +{ + return new LSTMData(rb, status); +} + +U_CAPI const LanguageBreakEngine* U_EXPORT2 +CreateLSTMBreakEngine(UScriptCode script, const LSTMData* data, UErrorCode& status) +{ + UnicodeString unicodeSetString; + switch(script) { + case USCRIPT_THAI: + unicodeSetString = UnicodeString(u"[[:Thai:]&[:LineBreak=SA:]]"); + break; + case USCRIPT_MYANMAR: + unicodeSetString = UnicodeString(u"[[:Mymr:]&[:LineBreak=SA:]]"); + break; + default: + delete data; + return nullptr; + } + UnicodeSet unicodeSet; + unicodeSet.applyPattern(unicodeSetString, status); + const LanguageBreakEngine* engine = new LSTMBreakEngine(data, unicodeSet, status); + if (U_FAILURE(status) || engine == nullptr) { + if (engine != nullptr) { + delete engine; + } else { + status = U_MEMORY_ALLOCATION_ERROR; + } + return nullptr; + } + return engine; +} + +U_CAPI void U_EXPORT2 DeleteLSTMData(const LSTMData* data) +{ + delete data; +} + +U_CAPI const UChar* U_EXPORT2 LSTMDataName(const LSTMData* data) +{ + return data->fName; +} + +U_NAMESPACE_END + +#endif /* #if !UCONFIG_NO_BREAK_ITERATION */ diff --git a/deps/icu-small/source/common/lstmbe.h b/deps/icu-small/source/common/lstmbe.h new file mode 100644 index 00000000000000..c3f7ecf81540dd --- /dev/null +++ b/deps/icu-small/source/common/lstmbe.h @@ -0,0 +1,87 @@ +// © 2021 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html + +#ifndef LSTMBE_H +#define LSTMBE_H + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_BREAK_ITERATION + +#include "unicode/uniset.h" +#include "unicode/ures.h" +#include "unicode/utext.h" +#include "unicode/utypes.h" + +#include "brkeng.h" +#include "dictbe.h" +#include "uvectr32.h" + +U_NAMESPACE_BEGIN + +class Vectorizer; +struct LSTMData; + +/******************************************************************* + * LSTMBreakEngine + */ + +/** + *

LSTMBreakEngine is a kind of DictionaryBreakEngine that uses a + * LSTM to determine language-specific breaks.

+ * + *

After it is constructed a LSTMBreakEngine may be shared between + * threads without synchronization.

+ */ +class LSTMBreakEngine : public DictionaryBreakEngine { +public: + /** + *

Constructor.

+ */ + LSTMBreakEngine(const LSTMData* data, const UnicodeSet& set, UErrorCode &status); + + /** + *

Virtual destructor.

+ */ + virtual ~LSTMBreakEngine(); + + virtual const UChar* name() const; + +protected: + /** + *

Divide up a range of known dictionary characters handled by this break engine.

+ * + * @param text A UText representing the text + * @param rangeStart The start of the range of dictionary characters + * @param rangeEnd The end of the range of dictionary characters + * @param foundBreaks Output of C array of int32_t break positions, or 0 + * @param status Information on any errors encountered. + * @return The number of breaks found + */ + virtual int32_t divideUpDictionaryRange(UText *text, + int32_t rangeStart, + int32_t rangeEnd, + UVector32 &foundBreaks, + UErrorCode& status) const override; +private: + const LSTMData* fData; + const Vectorizer* fVectorizer; +}; + +U_CAPI const LanguageBreakEngine* U_EXPORT2 CreateLSTMBreakEngine( + UScriptCode script, const LSTMData* data, UErrorCode& status); + +U_CAPI const LSTMData* U_EXPORT2 CreateLSTMData( + UResourceBundle* rb, UErrorCode& status); + +U_CAPI const LSTMData* U_EXPORT2 CreateLSTMDataForScript( + UScriptCode script, UErrorCode& status); + +U_CAPI void U_EXPORT2 DeleteLSTMData(const LSTMData* data); +U_CAPI const UChar* U_EXPORT2 LSTMDataName(const LSTMData* data); + +U_NAMESPACE_END + +#endif /* #if !UCONFIG_NO_BREAK_ITERATION */ + +#endif /* LSTMBE_H */ diff --git a/deps/icu-small/source/common/messagepattern.cpp b/deps/icu-small/source/common/messagepattern.cpp index 2f79780bd2c233..66fd2f4c93b295 100644 --- a/deps/icu-small/source/common/messagepattern.cpp +++ b/deps/icu-small/source/common/messagepattern.cpp @@ -309,10 +309,10 @@ MessagePattern::clear() { numericValuesLength=0; } -UBool +bool MessagePattern::operator==(const MessagePattern &other) const { if(this==&other) { - return TRUE; + return true; } return aposMode==other.aposMode && @@ -387,10 +387,10 @@ MessagePattern::getPluralOffset(int32_t pluralStart) const { // MessagePattern::Part ---------------------------------------------------- *** -UBool +bool MessagePattern::Part::operator==(const Part &other) const { if(this==&other) { - return TRUE; + return true; } return type==other.type && @@ -454,7 +454,7 @@ MessagePattern::parseMessage(int32_t index, int32_t msgStartLength, UChar c=msg.charAt(index++); if(c==u_apos) { if(index==msg.length()) { - // The apostrophe is the last character in the pattern. + // The apostrophe is the last character in the pattern. // Add a Part for auto-quoting. addPart(UMSGPAT_PART_TYPE_INSERT_CHAR, index, 0, u_apos, errorCode); // value=char to be inserted diff --git a/deps/icu-small/source/common/msvcres.h b/deps/icu-small/source/common/msvcres.h index d6581b27ebce51..d71b5ac922ab85 100644 --- a/deps/icu-small/source/common/msvcres.h +++ b/deps/icu-small/source/common/msvcres.h @@ -11,15 +11,15 @@ // /* -These are defined before unicode/uversion.h in order to prevent -STLPort's broken stddef.h from being used when rc.exe parses this file. +These are defined before unicode/uversion.h in order to prevent +STLPort's broken stddef.h from being used when rc.exe parses this file. */ #define _STLP_OUTERMOST_HEADER_ID 0 #define _STLP_WINCE 1 #include "unicode/uversion.h" -#define ICU_WEBSITE "http://icu-project.org" +#define ICU_WEBSITE "https://icu.unicode.org/" #define ICU_COMPANY "The ICU Project" #define ICU_PRODUCT_PREFIX "ICU" #define ICU_PRODUCT "International Components for Unicode" diff --git a/deps/icu-small/source/common/norm2_nfc_data.h b/deps/icu-small/source/common/norm2_nfc_data.h index 455cc0c42850ae..a774868981dbea 100644 --- a/deps/icu-small/source/common/norm2_nfc_data.h +++ b/deps/icu-small/source/common/norm2_nfc_data.h @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,31 +7,30 @@ // // machine-generated by: icu/source/tools/gennorm2/n2builder.cpp - #ifdef INCLUDED_FROM_NORMALIZER2_CPP static const UVersionInfo norm2_nfc_data_formatVersion={4,0,0,0}; -static const UVersionInfo norm2_nfc_data_dataVersion={0xd,0,0,0}; +static const UVersionInfo norm2_nfc_data_dataVersion={0xe,0,0,0}; static const int32_t norm2_nfc_data_indexes[Normalizer2Impl::IX_COUNT]={ -0x50,0x4bac,0x8814,0x8914,0x8914,0x8914,0x8914,0x8914,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c, +0x50,0x4c54,0x88bc,0x89bc,0x89bc,0x89bc,0x89bc,0x89bc,0xc0,0x300,0xae2,0x29e0,0x3c66,0xfc00,0x1288,0x3b9c, 0x3c34,0x3c66,0x300,0 }; -static const uint16_t norm2_nfc_data_trieIndex[1746]={ +static const uint16_t norm2_nfc_data_trieIndex[1748]={ 0,0x40,0x7b,0xbb,0xfb,0x13a,0x17a,0x1b2,0x1f2,0x226,0x254,0x226,0x294,0x2d4,0x313,0x353, 0x393,0x3d2,0x40f,0x44e,0x226,0x226,0x488,0x4c8,0x4f8,0x530,0x226,0x570,0x59f,0x5de,0x226,0x5f3, -0x631,0x65f,0x226,0x68c,0x6cc,0x709,0x729,0x768,0x7a7,0x7e4,0x803,0x840,0x729,0x879,0x8a7,0x8e6, -0x226,0x920,0x937,0x977,0x98e,0x9cd,0x226,0xa03,0xa23,0xa5e,0xa6a,0xaa5,0xacd,0xb0a,0xb4a,0xb84, -0xb9f,0x226,0xbda,0x226,0xc1a,0xc39,0xc6f,0xcac,0x226,0x226,0x226,0x226,0x226,0xccf,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xcfb,0x226,0x226,0xd30, -0x226,0x226,0xd4e,0x226,0xd78,0x226,0x226,0x226,0xdb4,0xdd4,0xe14,0xe53,0xe8e,0xece,0xf02,0xf2e, -0x808,0x226,0x226,0xf62,0x226,0x226,0x226,0xfa2,0xfe2,0x1022,0x1062,0x10a2,0x10e2,0x1122,0x1162,0x11a2, -0x11e2,0x226,0x226,0x1212,0x1243,0x226,0x1273,0x12a6,0x12e3,0x1322,0x1362,0x1398,0x13c6,0x226,0x226,0x226, +0x631,0x65f,0x687,0x6bd,0x6fd,0x73a,0x75a,0x799,0x7d8,0x815,0x834,0x871,0x75a,0x8aa,0x8d8,0x917, +0x834,0x951,0x968,0x9a8,0x9bf,0x9fe,0x226,0xa34,0xa54,0xa8f,0xa9b,0xad6,0xafe,0xb3b,0xb7b,0xbb5, +0xbd0,0x226,0xc0b,0x226,0xc4b,0xc6a,0xca0,0xcdd,0x226,0x226,0x226,0x226,0x226,0xd00,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xd2c,0x226,0x226,0xd61, +0x226,0x226,0xd7f,0x226,0xda9,0x226,0x226,0x226,0xde5,0xe05,0xe45,0xe84,0xebf,0xeff,0xf33,0xf5f, +0x839,0x226,0x226,0xf93,0x226,0x226,0x226,0xfd3,0x1013,0x1053,0x1093,0x10d3,0x1113,0x1153,0x1193,0x11d3, +0x1213,0x226,0x226,0x1243,0x1274,0x226,0x12a4,0x12d7,0x1314,0x1353,0x1393,0x13c9,0x13f7,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x13f1,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0xcbd,0x226,0x140e,0x226,0x144e,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x148e,0x14c8,0x1506,0x1546,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1422,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0xcee,0x226,0x143f,0x226,0x147f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x14bf,0x14f9,0x1537,0x1577,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, @@ -61,20 +59,20 @@ static const uint16_t norm2_nfc_data_trieIndex[1746]={ 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1585,0x15c3,0x15e3,0x226,0x226,0x226,0x226, -0x161d,0x226,0x226,0x1645,0x1677,0x16a5,0x80c,0x16b8,0x226,0x226,0x16c8,0x1708,0x226,0x226,0x226,0x1420, -0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750, -0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760, -0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754, -0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748, -0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758, -0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c, -0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c, -0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750, -0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760, -0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754, -0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x175c,0x1748,0x1750,0x1758,0x1760,0x174c,0x1754,0x1794,0x226, -0x17d4,0x180f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15b6,0x15f4,0x1614,0x226,0x226,0x226,0x226, +0x164e,0x226,0x226,0x1676,0x16a8,0x16d6,0x83d,0x16e9,0x226,0x226,0x16f9,0x1739,0x226,0x226,0x226,0x1451, +0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781, +0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791, +0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785, +0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779, +0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789, +0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d, +0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d, +0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781, +0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791, +0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785, +0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x178d,0x1779,0x1781,0x1789,0x1791,0x177d,0x1785,0x17c5,0x226, +0x1805,0x1840,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, @@ -82,57 +80,57 @@ static const uint16_t norm2_nfc_data_trieIndex[1746]={ 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x184f,0x188f,0x18cf,0x190f,0x194f,0x198f,0x19cf,0x1a0f,0x1a32,0x1a72,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1a92,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x655,0x664,0x67c,0x69b,0x6b0,0x6b0,0x6b0,0x6b4,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x1880,0x18c0,0x1900,0x1940,0x1980,0x19c0,0x1a00,0x1a40,0x1a63,0x1aa3,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac3,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x657,0x666,0x67e,0x69d,0x6b2,0x6b2,0x6b2,0x6b6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbda,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc0b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x40c, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ac5,0x226,0x226,0x1ad5,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0xdc6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1ae5,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x15d6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x1aef,0x54f,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7eb,0x226,0x226, -0x9ba,0x226,0x1aff,0x1b0c,0x1b18,0x226,0x226,0x226,0x226,0x414,0x226,0x1b23,0x1b33,0x226,0x226,0x226, -0x7e0,0x226,0x226,0x226,0x226,0x1b43,0x226,0x226,0x226,0x1b4e,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x1b55,0x226,0x226,0x226,0x226,0x1b60,0x1b6f,0x8f6,0x1b7d,0x412,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x1b8b,0x798,0x226,0x226,0x226,0x226,0x226,0x1b9b,0x1baa,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x8d6,0x1bb2,0x1bc2,0x226, -0x226,0x226,0x9ba,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bcc,0x226,0x226,0x226,0x226,0x226, -0x226,0x7e6,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bc9, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bdc, -0x7e0,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x84d,0x226,0x226,0x226,0x7ed,0x7ea, -0x226,0x226,0x226,0x226,0x7e8,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x9ba,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xbd4,0x226,0x226,0x226, -0x226,0x7ea,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x1bec,0x226,0x226,0x226,0xefb,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1af6,0x226,0x226,0x1b06,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0xdf7,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1b16,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1607,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x1b20,0x54f,0x226,0x226,0x1b30,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x81c,0x226,0x226, +0x1b40,0x226,0x1b50,0x1b5d,0x1b69,0x226,0x226,0x226,0x226,0x414,0x226,0x1b74,0x1b84,0x226,0x226,0x226, +0x811,0x226,0x226,0x226,0x226,0x1b94,0x226,0x226,0x226,0x1b9f,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x1ba6,0x226,0x226,0x226,0x226,0x1bb1,0x1bc0,0x927,0x1bce,0x412,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x1bdc,0x7c9,0x226,0x226,0x226,0x226,0x226,0x1bec,0x1bfb,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x907,0x1c03,0x1c13,0x226, +0x226,0x226,0x9eb,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1d,0x226,0x226,0x226,0x226,0x226, +0x226,0x817,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c1a, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c2d, +0x811,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x87e,0x226,0x226,0x226,0x81e,0x81b, +0x226,0x226,0x226,0x226,0x819,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x9eb,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0xc05,0x226,0x226,0x226, +0x226,0x81b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x1c3d,0x226,0x226,0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x1bfc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1bfe, +0x226,0x226,0x226,0x226,0x226,0x1c4d,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c4f, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x1c0d,0x1c1d,0x1c2b,0x1c38,0x226,0x1c44,0x1c52,0x1c62,0x226,0x226, -0x226,0x226,0xcea,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1c72,0x1c7a, -0x1c88,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0xefb,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x1c98,0x226,0x226,0x226,0x226,0x226,0x226,0x1ca4,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x1cb4,0x1cc4,0x1cd4,0x1ce4,0x1cf4,0x1d04,0x1d14,0x1d24,0x1d34,0x1d44,0x1d54, -0x1d64,0x1d74,0x1d84,0x1d94,0x1da4,0x1db4,0x1dc4,0x1dd4,0x1de4,0x1df4,0x1e04,0x1e14,0x1e24,0x1e34,0x1e44,0x1e54, -0x1e64,0x1e74,0x1e84,0x1e94,0x1ea4,0x1eb4,0x1ec4,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x1c5e,0x1c6e,0x1c7c,0x1c89,0x226,0x1c95,0x1ca3,0x1cb3,0x226,0x226, +0x226,0x226,0xd1b,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1cc3,0x1ccb, +0x1cd9,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0xf2c,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x7c9,0x226, +0x226,0x226,0x4fc,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x1ce9,0x226,0x226,0x226,0x226,0x226,0x226,0x1cf5,0x226,0x226,0x226,0x226, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x1d05,0x1d15,0x1d25,0x1d35,0x1d45,0x1d55,0x1d65,0x1d75,0x1d85, +0x1d95,0x1da5,0x1db5,0x1dc5,0x1dd5,0x1de5,0x1df5,0x1e05,0x1e15,0x1e25,0x1e35,0x1e45,0x1e55,0x1e65,0x1e75,0x1e85, +0x1e95,0x1ea5,0x1eb5,0x1ec5,0x1ed5,0x1ee5,0x1ef5,0x1f05,0x1f15,0x226,0x226,0x226,0x226,0x226,0x226,0x226, 0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x226, -0x226,0x226,0x226,0x226,0x226,0x408,0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489,0x4a6,0x4c2, -0x4df,0x4fc,0x51b,0x538,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x552,0xc4,0x566,0xc4,0xc4,0xc4,0xc4, +0x226,0x226,0x226,0x226,0x226,0x226,0x226,0x408,0x428,0xc4,0xc4,0xc4,0x448,0x457,0x46d,0x489, +0x4a6,0x4c2,0x4df,0x4fc,0x51b,0x538,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x552,0xc4,0x566,0xc4,0xc4, 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x586,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0x591,0x5ae,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5ce,0x5e2,0xc4,0xc4,0x5f5, +0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x586,0xc4,0xc4,0xc4, +0xc4,0xc4,0xc4,0xc4,0xc4,0x591,0x5ae,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0x5ce,0x5e4,0xc4, +0xc4,0x5f7,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, 0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4, -0x615,0x635 +0xc4,0xc4,0x617,0x637 }; -static const uint16_t norm2_nfc_data_trieData[7892]={ +static const uint16_t norm2_nfc_data_trieData[7974]={ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -238,401 +236,406 @@ static const uint16_t norm2_nfc_data_trieData[7892]={ 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffb8, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffb8, -0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a,0xffcc, -0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc, +0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8, +0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1, +0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xfe36,0xfe38,0xfe3a, +0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x864,0x1993,1,1,1,1,1,1,0x868,0x1999,1,0x86c, -0x199f,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1,1, -1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1,1, -1,0x29ec,0x29f2,0x29f8,0x29fe,0x2a04,0x2a0a,0x2a10,0x2a16,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x864,0x1993,1,1,1,1,1,1,0x868,0x1999,1, +0x86c,0x199f,1,1,1,1,1,1,1,0xfc0e,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xfe12,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,1, +1,1,0x29ec,0x29f2,0x29f8,0x29fe,0x2a04,0x2a0a,0x2a10,0x2a16,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,1,0x870, -1,1,1,0x19a5,0x19ab,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00, -1,1,1,1,0x2a1c,0x2a22,1,0x2a28,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xfe0e,1,0xfc00,1,1,1,1,1,1,1, +0x870,1,1,1,0x19a5,0x19ab,0xfe12,1,1,1,1,1,1,1,1,1, +0xfc00,1,1,1,1,0x2a1c,0x2a22,1,0x2a28,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0xffcc,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,0x2a2e,1,1,0x2a34,1,1, -1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1, -1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a3a,0x2a40,0x2a46, -1,1,0x2a4c,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x2a2e,1,1,0x2a34,1, +1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1, +1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,0x2a3a,0x2a40, +0x2a46,1,1,0x2a4c,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe0e, -1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x878,0x19b1,1,1,0x19b7,0x19bd,0xfe12,1,1,1,1,1,1,1,1,0xfc00, -0xfc00,1,1,1,1,0x2a52,0x2a58,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0x884,1,0x19c3,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0x878,0x19b1,1,1,0x19b7,0x19bd,0xfe12,1,1,1,1,1,1,1,1, +0xfc00,0xfc00,1,1,1,1,0x2a52,0x2a58,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890,1,1, -0x19c9,0x19cf,0x19d5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1,1, +1,1,1,1,1,1,1,1,1,1,0x884,1,0x19c3,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0x894,1,0x19db,1,1,1,1,0xfe12,1,1, -1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xfc00,1,1,1,1,1,1,0x888,0x890,1, +1,0x19c9,0x19cf,0x19d5,0xfe12,1,1,1,1,1,1,1,1,1,0xfc00,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x894,1,0x19db,1,1,1,1,0xfe12,1, +1,1,1,1,1,1,0xfea8,0xfcb6,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xfe0e,1,1,0x898,0x19e1,1,0xfc00,1,1,1,0x89c,0x19e7,0x19ed, -1,0xdca,0x19f5,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xfe0e,1,1,0x898,0x19e1,1,0xfc00,1,1,1,0x89c,0x19e7, +0x19ed,1,0xdca,0x19f5,1,0xfe12,1,1,1,1,1,1,1,0xfc00,0xfc00,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1,1, -1,1,1,0x8a8,0x8b0,1,1,0x19fd,0x1a03,0x1a09,0xfe12,1,1,1,1,1, -1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc12,1,1, -1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a0f,1,0xdd4, -0x1a17,0x1a1f,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,0xfc00,1,1, +1,1,1,1,0x8a8,0x8b0,1,1,0x19fd,0x1a03,0x1a09,0xfe12,1,1,1,1, +1,1,1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1,1, -1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfc12,1, +1,1,1,0xfc00,1,1,1,1,1,1,1,1,1,0x8b4,0x1a0f,1, +0xdd4,0x1a17,0x1a1f,0xfc00,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0xfece,0xfece,0xfe12,1, +1,1,1,1,1,1,1,0xfed6,0xfed6,0xfed6,0xfed6,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4,0xfef4,0xfef4, -0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1, +1,1,1,0xfeec,0xfeec,0xfe12,1,1,1,1,1,1,1,1,0xfef4,0xfef4, +0xfef4,0xfef4,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a5f,1,1, -1,1,1,1,1,1,1,0x2a65,1,1,1,1,0x2a6b,1,1,1, -1,0x2a71,1,1,1,1,0x2a77,1,1,1,1,1,1,1,1,1, -1,1,1,0x2a7d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c50,0xff08,0x3c58, -0x2a82,1,0x2a88,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c60,0xffcc,0xffcc,0xfe12,1, -0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a8f,1,1, -1,1,1,1,1,1,1,0x2a95,1,1,1,1,0x2a9b,1,1,1, -1,0x2aa1,1,1,1,1,0x2aa7,1,1,1,1,1,1,1,1,1, -1,1,1,0x2aad,1,1,1,1,1,1,0xffb8,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xffb8,0xffb8,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffb8,1,0xffb8,1,0xffb0,1,1,1,1,1,1,0x2a5f,1, +1,1,1,1,1,1,1,1,0x2a65,1,1,1,1,0x2a6b,1,1, +1,1,0x2a71,1,1,1,1,0x2a77,1,1,1,1,1,1,1,1, +1,1,1,1,0x2a7d,1,1,1,1,1,1,1,0xff02,0xff04,0x3c50,0xff08, +0x3c58,0x2a82,1,0x2a88,1,0xff04,0xff04,0xff04,0xff04,1,1,0xff04,0x3c60,0xffcc,0xffcc,0xfe12, +1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x2a8f,1, +1,1,1,1,1,1,1,1,0x2a95,1,1,1,1,0x2a9b,1,1, +1,1,0x2aa1,1,1,1,1,0x2aa7,1,1,1,1,1,1,1,1, +1,1,1,1,0x2aad,1,1,1,1,1,1,0xffb8,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x8c0,0x1a25,1,1,1,1,1,1,1,0xfc00,1,1, -1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1,1, -1,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,1,1,1, +1,1,1,1,1,0x8c0,0x1a25,1,1,1,1,1,1,1,0xfc00,1, +1,1,1,1,1,1,1,0xfe0e,1,0xfe12,0xfe12,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xffb8,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, -0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1, +1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, -0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,1, +1,1,1,1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, +0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00,0xfe00, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, +1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0xffc8,1,1,1,1,1,1,1,1, +0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,0xffcc,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xffc8,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,0xffbc,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc, -0xffcc,0xffb8,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,1,1,0xffb8,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, +0xffcc,0xffcc,0xffb8,1,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc, +0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x8c4,0x1a2b,0x8c8,0x1a31,0x8cc,0x1a37,0x8d0,0x1a3d,0x8d4,0x1a43,1,1,0x8d8, -0x1a49,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a4f,0x8e0,0x1a55,0x8e4,0x8e8,0x1a5b,0x1a61, -0x8ec,0x1a67,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x8c4,0x1a2b,0x8c8,0x1a31,0x8cc,0x1a37,0x8d0,0x1a3d,0x8d4,0x1a43,1,1, +0x8d8,0x1a49,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xfe0e,0xfc00,1,1,1,1,0x8dc,0x1a4f,0x8e0,0x1a55,0x8e4,0x8e8,0x1a5b, +0x1a61,0x8ec,0x1a67,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1,1, +1,1,1,1,1,1,1,1,1,1,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,0xfe12,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1,1, -0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8,0xffb8, -0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1,0xffb8, -1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1,1, -1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffd4, -0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0xfe0e,1,1,1,1,1,1,1,1,1,1, +1,0xfe12,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffcc,0xffcc,0xffcc,1,0xfe02,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffcc,0xffcc,0xffb8, +0xffb8,0xffb8,0xffb8,0xffcc,1,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,0xfe02,1,1,1,1, +0xffb8,1,1,1,1,1,1,0xffcc,1,1,1,0xffcc,0xffcc,1,1,1, +1,1,1,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffcc, +0xffd4,0xffac,0xffb8,0xff94,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,1,0xffcc,0xffd2,0xffb8, -0xffcc,0xffb8,0x1a6c,0x1a72,0x1a78,0x1a7e,0x1a85,0x1a8b,0x1a91,0x1a97,0x1a9f,0x1aa9,0x1ab0,0x1ab6,0x1abc,0x1ac2, -0x1ac8,0x1ace,0x1ad5,0x1adb,0x1ae0,0x1ae6,0x1aee,0x1af8,0x1b02,0x1b0c,0x1b14,0x1b1a,0x1b20,0x1b26,0x1b2f,0x1b39, -0x1b41,0x1b47,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b76,0x1b7d,0x1b83,0x1b88,0x1b8e,0x1b94,0x1b9a, -0x1ba2,0x1bac,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0x1bd2,0xdde,0xde8,0x1bda,0x1be4,0x1bec,0x1bf2,0x1bf8,0x1bfe, -0x1c04,0x1c0a,0x1c10,0x1c16,0x1c1d,0x1c23,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,0x1c52,0x1c5a,0x1c64, -0x1c6e,0x1c78,0x1c82,0x1c8c,0x1c96,0x1ca0,0x1ca9,0x1caf,0x1cb5,0x1cbb,0x1cc0,0x1cc6,0xdf2,0xdfc,0x1cce,0x1cd8, -0x1ce0,0x1ce6,0x1cec,0x1cf2,0xe06,0xe10,0x1cfa,0x1d04,0x1d0e,0x1d18,0x1d22,0x1d2c,0x1d34,0x1d3a,0x1d40,0x1d46, -0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d82,0x1d8a,0x1d94,0x1d9e,0x1da8,0x1db0,0x1db6, -0x1dbd,0x1dc3,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df2,0x1df9,0x1dff,0x1e05,0x1e0b,0x1e11,0x1e17, -0x1e1c,0x1e22,0x1e28,0x1e2e,0x1e35,0x1e3b,0x1e41,0x1e47,0x1e4c,0x1e52,0x1e58,0x1e5e,1,0x1e65,1,1, -1,1,0xe1a,0xe28,0x1e6a,0x1e70,0x1e78,0x1e82,0x1e8c,0x1e96,0x1ea0,0x1eaa,0x1eb4,0x1ebe,0x1ec8,0x1ed2, -0x1edc,0x1ee6,0x1ef0,0x1efa,0x1f04,0x1f0e,0x1f18,0x1f22,0x1f2c,0x1f36,0xe36,0xe40,0x1f3e,0x1f44,0x1f4a,0x1f50, -0x1f58,0x1f62,0x1f6c,0x1f76,0x1f80,0x1f8a,0x1f94,0x1f9e,0x1fa8,0x1fb2,0x1fba,0x1fc0,0x1fc6,0x1fcc,0xe4a,0xe54, -0x1fd2,0x1fd8,0x1fe0,0x1fea,0x1ff4,0x1ffe,0x2008,0x2012,0x201c,0x2026,0x2030,0x203a,0x2044,0x204e,0x2058,0x2062, -0x206c,0x2076,0x2080,0x208a,0x2094,0x209e,0x20a6,0x20ac,0x20b2,0x20b8,0x20c0,0x20ca,0x20d4,0x20de,0x20e8,0x20f2, -0x20fc,0x2106,0x2110,0x211a,0x2122,0x2128,0x212f,0x2135,0x213a,0x2140,0x2146,0x214c,1,1,1,1, -1,1,0xe5e,0xe74,0xe8c,0xe9a,0xea8,0xeb6,0xec4,0xed2,0xede,0xef4,0xf0c,0xf1a,0xf28,0xf36, -0xf44,0xf52,0xf5e,0xf6c,0x2155,0x215f,0x2169,0x2173,1,1,0xf7a,0xf88,0x217d,0x2187,0x2191,0x219b, -1,1,0xf96,0xfac,0xfc4,0xfd2,0xfe0,0xfee,0xffc,0x100a,0x1016,0x102c,0x1044,0x1052,0x1060,0x106e, -0x107c,0x108a,0x1096,0x10a8,0x21a5,0x21af,0x21b9,0x21c3,0x21cd,0x21d7,0x10ba,0x10cc,0x21e1,0x21eb,0x21f5,0x21ff, -0x2209,0x2213,0x10de,0x10ec,0x221d,0x2227,0x2231,0x223b,1,1,0x10fa,0x1108,0x2245,0x224f,0x2259,0x2263, -1,1,0x1116,0x1128,0x226d,0x2277,0x2281,0x228b,0x2295,0x229f,1,0x113a,1,0x22a9,1,0x22b3, -1,0x22bd,0x114c,0x1162,0x117a,0x1188,0x1196,0x11a4,0x11b2,0x11c0,0x11cc,0x11e2,0x11fa,0x1208,0x1216,0x1224, -0x1232,0x1240,0x124c,0x3b9e,0x22c5,0x3ba6,0x1256,0x3bae,0x22cb,0x3bb6,0x22d1,0x3bbe,0x22d7,0x3bc6,0x1260,0x3bce, -1,1,0x22de,0x22e8,0x22f7,0x2307,0x2317,0x2327,0x2337,0x2347,0x2352,0x235c,0x236b,0x237b,0x238b,0x239b, -0x23ab,0x23bb,0x23c6,0x23d0,0x23df,0x23ef,0x23ff,0x240f,0x241f,0x242f,0x243a,0x2444,0x2453,0x2463,0x2473,0x2483, -0x2493,0x24a3,0x24ae,0x24b8,0x24c7,0x24d7,0x24e7,0x24f7,0x2507,0x2517,0x2522,0x252c,0x253b,0x254b,0x255b,0x256b, -0x257b,0x258b,0x2595,0x259b,0x25a3,0x25aa,0x25b3,1,0x126a,0x25bd,0x25c5,0x25cb,0x25d1,0x3bd6,0x25d6,1, -0x2ab2,0x8f0,1,0x25dd,0x25e5,0x25ec,0x25f5,1,0x1274,0x25ff,0x2607,0x3bde,0x260d,0x3be6,0x2612,0x2619, -0x261f,0x2625,0x262b,0x2631,0x2639,0x3bf0,1,1,0x2641,0x2649,0x2651,0x2657,0x265d,0x3bfa,1,0x2663, -0x2669,0x266f,0x2675,0x267b,0x2683,0x3c04,0x268b,0x2691,0x2697,0x269f,0x26a7,0x26ad,0x26b3,0x3c0e,0x26b9,0x26bf, -0x3c16,0x2ab7,1,1,0x26c7,0x26ce,0x26d7,1,0x127e,0x26e1,0x26e9,0x3c1e,0x26ef,0x3c26,0x26f4,0x2abb, -0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,0xffcc,1, -1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,0xffb8,0xffb8, -0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0x2abe,1,1,1,0x2ac2,0x3c2e,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26fb,0x2701,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0x2707,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x270d,0x2713,0x2719,0x914,1,0x918,1,0x91c,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0x920,0x271f,1,1,1,0x924,0x2725,1,0x928,0x272b, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0x92c,0x2731,0x930,0x2737,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x934, -1,1,1,0x273d,1,0x938,0x2743,0x93c,1,0x2749,0x940,0x274f,1,1,1,0x944, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0x2755,0x948,0x275b,1,0x94c,0x950,1,1,1,1,1,1,1,0x2761, -0x2767,0x276d,0x2773,0x2779,0x954,0x958,0x277f,0x2785,0x95c,0x960,0x278b,0x2791,0x964,0x968,0x96c,0x970, -1,1,0x2797,0x279d,0x974,0x978,0x27a3,0x27a9,0x97c,0x980,0x27af,0x27b5,1,1,1,1, -1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27bb,0x27c1, -0x27c7,0x27cd,1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0x27d3,0x27d9,0x27df,0x27e5,1,1,1,1, -1,1,0x27eb,0x27f1,0x27f7,0x27fd,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x2ac7, -0x2acb,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0x2acf,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1,1, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffd0,0xffc8,0xffc8,0xffb8,0xffb4,0xffcc,0xffd2, +0xffb8,0xffcc,0xffb8,0x1a6c,0x1a72,0x1a78,0x1a7e,0x1a85,0x1a8b,0x1a91,0x1a97,0x1a9f,0x1aa9,0x1ab0,0x1ab6,0x1abc, +0x1ac2,0x1ac8,0x1ace,0x1ad5,0x1adb,0x1ae0,0x1ae6,0x1aee,0x1af8,0x1b02,0x1b0c,0x1b14,0x1b1a,0x1b20,0x1b26,0x1b2f, +0x1b39,0x1b41,0x1b47,0x1b4c,0x1b52,0x1b58,0x1b5e,0x1b64,0x1b6a,0x1b70,0x1b76,0x1b7d,0x1b83,0x1b88,0x1b8e,0x1b94, +0x1b9a,0x1ba2,0x1bac,0x1bb4,0x1bba,0x1bc0,0x1bc6,0x1bcc,0x1bd2,0xdde,0xde8,0x1bda,0x1be4,0x1bec,0x1bf2,0x1bf8, +0x1bfe,0x1c04,0x1c0a,0x1c10,0x1c16,0x1c1d,0x1c23,0x1c28,0x1c2e,0x1c34,0x1c3a,0x1c40,0x1c46,0x1c4c,0x1c52,0x1c5a, +0x1c64,0x1c6e,0x1c78,0x1c82,0x1c8c,0x1c96,0x1ca0,0x1ca9,0x1caf,0x1cb5,0x1cbb,0x1cc0,0x1cc6,0xdf2,0xdfc,0x1cce, +0x1cd8,0x1ce0,0x1ce6,0x1cec,0x1cf2,0xe06,0xe10,0x1cfa,0x1d04,0x1d0e,0x1d18,0x1d22,0x1d2c,0x1d34,0x1d3a,0x1d40, +0x1d46,0x1d4c,0x1d52,0x1d58,0x1d5e,0x1d64,0x1d6a,0x1d70,0x1d76,0x1d7c,0x1d82,0x1d8a,0x1d94,0x1d9e,0x1da8,0x1db0, +0x1db6,0x1dbd,0x1dc3,0x1dc8,0x1dce,0x1dd4,0x1dda,0x1de0,0x1de6,0x1dec,0x1df2,0x1df9,0x1dff,0x1e05,0x1e0b,0x1e11, +0x1e17,0x1e1c,0x1e22,0x1e28,0x1e2e,0x1e35,0x1e3b,0x1e41,0x1e47,0x1e4c,0x1e52,0x1e58,0x1e5e,1,0x1e65,1, +1,1,1,0xe1a,0xe28,0x1e6a,0x1e70,0x1e78,0x1e82,0x1e8c,0x1e96,0x1ea0,0x1eaa,0x1eb4,0x1ebe,0x1ec8, +0x1ed2,0x1edc,0x1ee6,0x1ef0,0x1efa,0x1f04,0x1f0e,0x1f18,0x1f22,0x1f2c,0x1f36,0xe36,0xe40,0x1f3e,0x1f44,0x1f4a, +0x1f50,0x1f58,0x1f62,0x1f6c,0x1f76,0x1f80,0x1f8a,0x1f94,0x1f9e,0x1fa8,0x1fb2,0x1fba,0x1fc0,0x1fc6,0x1fcc,0xe4a, +0xe54,0x1fd2,0x1fd8,0x1fe0,0x1fea,0x1ff4,0x1ffe,0x2008,0x2012,0x201c,0x2026,0x2030,0x203a,0x2044,0x204e,0x2058, +0x2062,0x206c,0x2076,0x2080,0x208a,0x2094,0x209e,0x20a6,0x20ac,0x20b2,0x20b8,0x20c0,0x20ca,0x20d4,0x20de,0x20e8, +0x20f2,0x20fc,0x2106,0x2110,0x211a,0x2122,0x2128,0x212f,0x2135,0x213a,0x2140,0x2146,0x214c,1,1,1, +1,1,1,0xe5e,0xe74,0xe8c,0xe9a,0xea8,0xeb6,0xec4,0xed2,0xede,0xef4,0xf0c,0xf1a,0xf28, +0xf36,0xf44,0xf52,0xf5e,0xf6c,0x2155,0x215f,0x2169,0x2173,1,1,0xf7a,0xf88,0x217d,0x2187,0x2191, +0x219b,1,1,0xf96,0xfac,0xfc4,0xfd2,0xfe0,0xfee,0xffc,0x100a,0x1016,0x102c,0x1044,0x1052,0x1060, +0x106e,0x107c,0x108a,0x1096,0x10a8,0x21a5,0x21af,0x21b9,0x21c3,0x21cd,0x21d7,0x10ba,0x10cc,0x21e1,0x21eb,0x21f5, +0x21ff,0x2209,0x2213,0x10de,0x10ec,0x221d,0x2227,0x2231,0x223b,1,1,0x10fa,0x1108,0x2245,0x224f,0x2259, +0x2263,1,1,0x1116,0x1128,0x226d,0x2277,0x2281,0x228b,0x2295,0x229f,1,0x113a,1,0x22a9,1, +0x22b3,1,0x22bd,0x114c,0x1162,0x117a,0x1188,0x1196,0x11a4,0x11b2,0x11c0,0x11cc,0x11e2,0x11fa,0x1208,0x1216, +0x1224,0x1232,0x1240,0x124c,0x3b9e,0x22c5,0x3ba6,0x1256,0x3bae,0x22cb,0x3bb6,0x22d1,0x3bbe,0x22d7,0x3bc6,0x1260, +0x3bce,1,1,0x22de,0x22e8,0x22f7,0x2307,0x2317,0x2327,0x2337,0x2347,0x2352,0x235c,0x236b,0x237b,0x238b, +0x239b,0x23ab,0x23bb,0x23c6,0x23d0,0x23df,0x23ef,0x23ff,0x240f,0x241f,0x242f,0x243a,0x2444,0x2453,0x2463,0x2473, +0x2483,0x2493,0x24a3,0x24ae,0x24b8,0x24c7,0x24d7,0x24e7,0x24f7,0x2507,0x2517,0x2522,0x252c,0x253b,0x254b,0x255b, +0x256b,0x257b,0x258b,0x2595,0x259b,0x25a3,0x25aa,0x25b3,1,0x126a,0x25bd,0x25c5,0x25cb,0x25d1,0x3bd6,0x25d6, +1,0x2ab2,0x8f0,1,0x25dd,0x25e5,0x25ec,0x25f5,1,0x1274,0x25ff,0x2607,0x3bde,0x260d,0x3be6,0x2612, +0x2619,0x261f,0x2625,0x262b,0x2631,0x2639,0x3bf0,1,1,0x2641,0x2649,0x2651,0x2657,0x265d,0x3bfa,1, +0x2663,0x2669,0x266f,0x2675,0x267b,0x2683,0x3c04,0x268b,0x2691,0x2697,0x269f,0x26a7,0x26ad,0x26b3,0x3c0e,0x26b9, +0x26bf,0x3c16,0x2ab7,1,1,0x26c7,0x26ce,0x26d7,1,0x127e,0x26e1,0x26e9,0x3c1e,0x26ef,0x3c26,0x26f4, +0x2abb,0x8fc,1,0xfa09,0xfa09,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffcc,0xffcc,0xfe02,0xfe02,0xffcc,0xffcc,0xffcc,0xffcc,0xfe02,0xfe02,0xfe02,0xffcc,0xffcc, +1,1,1,1,0xffcc,1,1,1,0xfe02,0xfe02,0xffcc,0xffb8,0xffcc,0xfe02,0xfe02,0xffb8, +0xffb8,0xffb8,0xffb8,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0x2abe,1,1,1,0x2ac2,0x3c2e, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x908,1,0x90c,1,0x910,1,1,1,1,1,0x26fb,0x2701, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,0x2707,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x270d,0x2713,0x2719,0x914,1,0x918,1,0x91c,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x920,0x271f,1,1,1,0x924,0x2725,1,0x928, +0x272b,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x92c,0x2731,0x930,0x2737,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0x934,1,1,1,0x273d,1,0x938,0x2743,0x93c,1,0x2749,0x940,0x274f,1,1,1, +0x944,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0x2755,0x948,0x275b,1,0x94c,0x950,1,1,1,1,1,1,1, +0x2761,0x2767,0x276d,0x2773,0x2779,0x954,0x958,0x277f,0x2785,0x95c,0x960,0x278b,0x2791,0x964,0x968,0x96c, +0x970,1,1,0x2797,0x279d,0x974,0x978,0x27a3,0x27a9,0x97c,0x980,0x27af,0x27b5,1,1,1, +1,1,1,1,0x984,0x988,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x98c,1,1,1,1,1,0x990,0x994,1,0x998,0x27bb, +0x27c1,0x27c7,0x27cd,1,1,0x99c,0x9a0,0x9a4,0x9a8,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0x27d3,0x27d9,0x27df,0x27e5,1,1,1, +1,1,1,0x27eb,0x27f1,0x27f7,0x27fd,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0x2ac7,0x2acb,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x2acf,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xffcc, 0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x9ac,1, -1,1,1,0x9b0,0x2803,0x9b4,0x2809,0x9b8,0x280f,0x9bc,0x2815,0x9c0,0x281b,0x9c4,0x2821,0x9c8, -0x2827,0x9cc,0x282d,0x9d0,0x2833,0x9d4,0x2839,0x9d8,0x283f,0x9dc,0x2845,1,0x9e0,0x284b,0x9e4,0x2851, -0x9e8,0x2857,1,1,1,1,1,0x9ec,0x285d,0x2863,0x9f4,0x2869,0x286f,0x9fc,0x2875,0x287b, -0xa04,0x2881,0x2887,0xa0c,0x288d,0x2893,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,0x2899,1,1,1,1,0xfc10, -0xfc10,1,1,0xa14,0x289f,1,1,1,1,1,1,1,0xa18,1,1,1, -1,0xa1c,0x28a5,0xa20,0x28ab,0xa24,0x28b1,0xa28,0x28b7,0xa2c,0x28bd,0xa30,0x28c3,0xa34,0x28c9,0xa38, -0x28cf,0xa3c,0x28d5,0xa40,0x28db,0xa44,0x28e1,0xa48,0x28e7,1,0xa4c,0x28ed,0xa50,0x28f3,0xa54,0x28f9, -1,1,1,1,1,0xa58,0x28ff,0x2905,0xa60,0x290b,0x2911,0xa68,0x2917,0x291d,0xa70,0x2923, -0x2929,0xa78,0x292f,0x2935,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x293b,1,1,0x2941,0x2947,0x294d, -0x2953,1,1,0xa90,0x2959,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xffb4,0xffc8,0xffd0,0xffbc,0xffc0,0xffc0,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x9ac, +1,1,1,1,0x9b0,0x2803,0x9b4,0x2809,0x9b8,0x280f,0x9bc,0x2815,0x9c0,0x281b,0x9c4,0x2821, +0x9c8,0x2827,0x9cc,0x282d,0x9d0,0x2833,0x9d4,0x2839,0x9d8,0x283f,0x9dc,0x2845,1,0x9e0,0x284b,0x9e4, +0x2851,0x9e8,0x2857,1,1,1,1,1,0x9ec,0x285d,0x2863,0x9f4,0x2869,0x286f,0x9fc,0x2875, +0x287b,0xa04,0x2881,0x2887,0xa0c,0x288d,0x2893,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x2899,1,1,1,1, +0xfc10,0xfc10,1,1,0xa14,0x289f,1,1,1,1,1,1,1,0xa18,1,1, +1,1,0xa1c,0x28a5,0xa20,0x28ab,0xa24,0x28b1,0xa28,0x28b7,0xa2c,0x28bd,0xa30,0x28c3,0xa34,0x28c9, +0xa38,0x28cf,0xa3c,0x28d5,0xa40,0x28db,0xa44,0x28e1,0xa48,0x28e7,1,0xa4c,0x28ed,0xa50,0x28f3,0xa54, +0x28f9,1,1,1,1,1,0xa58,0x28ff,0x2905,0xa60,0x290b,0x2911,0xa68,0x2917,0x291d,0xa70, +0x2923,0x2929,0xa78,0x292f,0x2935,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xa80,0xa84,0xa88,0xa8c,1,0x293b,1,1,0x2941,0x2947, +0x294d,0x2953,1,1,0xa90,0x2959,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1, +1,1,1,1,1,0xffcc,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1, +1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1,1, +1,1,1,1,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1,0xffcc, -0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffb8,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xfe12,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12,1, -1,1,1,1,1,1,1,1,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0xffcc,1,0xffcc,0xffcc,0xffb8,1,1, +0xffcc,0xffcc,1,1,1,1,1,0xffcc,0xffcc,1,0xffcc,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, +1,1,1,1,1,1,1,1,1,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, 0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, +0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, 0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289,0x1289, +0x1289,0xae2,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, +0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0xae2,0x1289,0x1289, 0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289, -0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0x3c66,1,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c66,0x3c66, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,1,0x3c66,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0x3b97,1,0x2ad5, -0x2ad9,0x2add,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d,0x2b11, -0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d,0x2b51, -0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d,0x2b91, -0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd,0x2bd1, -0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d,0x2c11, -0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2c31,0x2c35,0x2c39,0x2c3d,0x2b21,0x2c41,0x2c45,0x2c49,0x2c4d, -0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89,0x2c8d, -0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9,0x2ccd, -0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09,0x2d0d, -0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2d41,0x2d45,0x2d49,0x2d4d, -0x2c89,0x2d51,0x2d55,0x2d59,0x2d5d,0x2d61,0x2d65,0x2d69,0x2d6d,0x2c49,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81,0x2d85, -0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2db1,0x2db5,0x2db9,0x2dbd,0x2b21,0x2dc1, -0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd,0x2e01, -0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2e1d,0x2e21,0x2e25,0x2e29,0x2c51,0x2e2d,0x2e31,0x2e35,0x2e39,0x2e3d, -0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79,0x2e7d, -0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9,0x2ebd, -0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,0x2ee5,0x2ee9,0x2eed,0x2ef1,1,1,0x2ef5, -1,0x2ef9,1,1,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,0x2f15,0x2f19,0x2f1d,0x2f21,1,0x2f25, -1,0x2f29,1,1,0x2f2d,0x2f31,1,1,1,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49,0x2f4d, -0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89,0x2f8d, -0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9,0x2fcd, -0x2fd1,0x2fd5,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2d25,0x2fe9,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x2ffd,0x3001,0x3005, -0x3009,0x300d,0x3011,0x3015,0x3019,0x301d,0x2f2d,0x3021,0x3025,0x3029,0x302d,0x3031,0x3037,1,1,0x303b, -0x303f,0x3043,0x3047,0x304b,0x304f,0x3053,0x3057,0x2f65,0x305b,0x305f,0x3063,0x2ef5,0x3067,0x306b,0x306f,0x3073, -0x3077,0x307b,0x307f,0x3083,0x3087,0x308b,0x308f,0x3093,0x2f89,0x3097,0x2f8d,0x309b,0x309f,0x30a3,0x30a7,0x30ab, -0x2ef9,0x2b75,0x30af,0x30b3,0x30b7,0x2c8d,0x2de9,0x30bb,0x30bf,0x2fa9,0x30c3,0x2fad,0x30c7,0x30cb,0x30cf,0x2f01, -0x30d3,0x30d7,0x30db,0x30df,0x30e3,0x2f05,0x30e7,0x30eb,0x30ef,0x30f3,0x30f7,0x30fb,0x2fe5,0x30ff,0x3103,0x2d25, -0x3107,0x2ff5,0x310b,0x310f,0x3113,0x3117,0x311b,0x3009,0x311f,0x2f29,0x3123,0x300d,0x2c41,0x3127,0x3011,0x312b, -0x3019,0x312f,0x3133,0x3137,0x313b,0x313f,0x3021,0x2f19,0x3143,0x3025,0x3147,0x3029,0x314b,0x2af1,0x314f,0x3155, -0x315b,0x3161,0x3165,0x3169,0x316d,0x3173,0x3179,0x317f,0x3183,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3186, -0xfe34,0x318c,1,1,1,1,1,1,1,1,1,1,0x3192,0x3198,0x31a0,0x31aa, -0x31b2,0x31b8,0x31be,0x31c4,0x31ca,0x31d0,0x31d6,0x31dc,0x31e2,1,0x31e8,0x31ee,0x31f4,0x31fa,0x3200,1, -0x3206,1,0x320c,0x3212,1,0x3218,0x321e,1,0x3224,0x322a,0x3230,0x3236,0x323c,0x3242,0x3248,0x324e, -0x3254,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, -0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,0xffcc,0xfe02,0xffb8, -1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1, -1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8,1, -1,1,1,1,1,1,1,1,0xa94,0x295f,0xa9a,0x2969,1,1,1,1, -1,0xaa0,1,1,1,1,1,0x2973,1,1,1,1,1,1,1,1, -1,0xfe12,0xfc0e,1,1,1,1,1,1,1,0xfc00,1,1,1,1,1, -1,0x297d,0x2987,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,1,1,1,1,1, -1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xfe0e,1,1, -1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe12, -1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00,1, -1,1,1,1,1,1,0xab2,1,1,1,0x2991,0x299b,0xfe12,1,1,1, -1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xfe12,1,1, -1,0xfe0e,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1,1, -1,1,1,1,0xabe,0xfc00,0x29a5,0x29af,0xfc00,0x29b9,1,1,0xfe12,0xfe0e,1,1, -1,1,1,1,1,1,1,1,1,1,0xad0,0xad6,0x29c3,0x29cd,1,1, -1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,0xfc00,1,1,1, -1,0xadc,1,1,0x29d7,1,1,1,1,0xfe12,0xfe12,1,0xfe02,0xfe02,0xfe02,0xfe02, -0xfe02,1,1,1,1,1,1,1,1,1,1,1,0xfe0c,0xfe0c,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x325a,0x3264,0x3278,0x3290,0x32a8, -0x32c0,0x32d8,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1,1, -1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,0xffcc,0xffcc, -0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x32e6,0x32f0,0x3304, -0x331c,0x3334,0x334c,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc,0xffcc, -0xffcc,0xffcc,0xffcc,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1, -1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e,1, -1,1,1,1,0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51,0x3381, -0x3385,0x3389,0x2f55,0x338f,0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf,0x303f, -0x33c3,0x33c9,0x33cd,0x33d1,0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed,0x2c59, -0x33f1,0x2f61,0x33f5,0x33f9,0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421,0x3425, -0x3429,0x342d,0x3431,0x3435,0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459,0x345d, -0x2f69,0x3461,0x3465,0x3469,0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493,0x3497, -0x349b,0x349f,0x34a3,0x34a7,0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7,0x34d7, -0x34db,0x34e1,0x34e5,0x2c49,0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f,0x3513, -0x3519,0x351d,0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555,0x3559, -0x355d,0x3561,0x2b71,0x3565,0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591,0x3595, -0x3599,0x359d,0x35a1,0x35a5,0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7,0x2f89, -0x35cb,0x35cf,0x35d3,0x35d7,0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd,0x3601, -0x3605,0x3609,0x360d,0x3613,0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b,0x3641, -0x3645,0x3649,0x364d,0x2f99,0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671,0x3675, -0x3679,0x367d,0x3683,0x3687,0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad,0x36b1, -0x36b5,0x36bb,0x36bf,0x36c3,0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3,0x36f7, -0x36fd,0x3701,0x3705,0x3709,0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f,0x30bf, -0x3733,0x3737,0x373d,0x3741,0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d,0x3771, -0x3777,0x377b,0x3781,0x3785,0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5,0x37b9, -0x37bd,0x37bd,0x37c1,0x37c5,0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef,0x37f3, -0x37f9,0x37ff,0x3805,0x3809,0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d,0x3831, -0x3835,0x3839,0x383f,0x2bbd,0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861,0x3865, -0x3869,0x386f,0x386f,0x3875,0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5,0x38a9, -0x38af,0x38b3,0x38b7,0x38bb,0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5,0x38ef, -0x38f5,0x38fb,0x38ff,0x3905,0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939,0x3575, -0x393f,0x3943,0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975,0x3979, -0x397d,0x3981,0x3985,0x3001,0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7,0x39bb, -0x39c1,0x39c5,0x39cb,0x39cf,0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb,0x3113, -0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39,0x3a3d, -0x3a43,0x3a49,0x3a4d,0x3a51,0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b,0x3a7f, -0x3a83,0x3a87,0x3a8d,0x312f,0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf,0x3ac3, -0x3ac7,0x3acb,0x3ad1,0x3ad5,0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07,0x3b0b, -0x3b11,0x3b15,0x3147,0x3147,0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b,0x3b47, -0x3b4b,0x3b4f,0x3b53,0x3b57,0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b,0x3b8f, -0x3b93,0x3b97,1,1 +0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,0x1289,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0x3c66,1,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,0x3c66,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3c66, +0x3c66,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x3c66,1,1,1,1,0x3c66,1,1,1,0x3c66,1,0x3c66, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x3b97,1, +0x2ad5,0x2ad9,0x2add,0x2ae1,0x2ae5,0x2ae9,0x2aed,0x2af1,0x2af1,0x2af5,0x2af9,0x2afd,0x2b01,0x2b05,0x2b09,0x2b0d, +0x2b11,0x2b15,0x2b19,0x2b1d,0x2b21,0x2b25,0x2b29,0x2b2d,0x2b31,0x2b35,0x2b39,0x2b3d,0x2b41,0x2b45,0x2b49,0x2b4d, +0x2b51,0x2b55,0x2b59,0x2b5d,0x2b61,0x2b65,0x2b69,0x2b6d,0x2b71,0x2b75,0x2b79,0x2b7d,0x2b81,0x2b85,0x2b89,0x2b8d, +0x2b91,0x2b95,0x2b99,0x2b9d,0x2ba1,0x2ba5,0x2ba9,0x2bad,0x2bb1,0x2bb5,0x2bb9,0x2bbd,0x2bc1,0x2bc5,0x2bc9,0x2bcd, +0x2bd1,0x2bd5,0x2bd9,0x2bdd,0x2be1,0x2be5,0x2be9,0x2bed,0x2bf1,0x2bf5,0x2bf9,0x2bfd,0x2c01,0x2c05,0x2c09,0x2c0d, +0x2c11,0x2c15,0x2c19,0x2c1d,0x2c21,0x2c25,0x2c29,0x2c2d,0x2c31,0x2c35,0x2c39,0x2c3d,0x2b21,0x2c41,0x2c45,0x2c49, +0x2c4d,0x2c51,0x2c55,0x2c59,0x2c5d,0x2c61,0x2c65,0x2c69,0x2c6d,0x2c71,0x2c75,0x2c79,0x2c7d,0x2c81,0x2c85,0x2c89, +0x2c8d,0x2c91,0x2c95,0x2c99,0x2c9d,0x2ca1,0x2ca5,0x2ca9,0x2cad,0x2cb1,0x2cb5,0x2cb9,0x2cbd,0x2cc1,0x2cc5,0x2cc9, +0x2ccd,0x2cd1,0x2cd5,0x2cd9,0x2cdd,0x2ce1,0x2ce5,0x2ce9,0x2ced,0x2cf1,0x2cf5,0x2cf9,0x2cfd,0x2d01,0x2d05,0x2d09, +0x2d0d,0x2d11,0x2d15,0x2d19,0x2d1d,0x2d21,0x2d25,0x2d29,0x2d2d,0x2d31,0x2d35,0x2d39,0x2d3d,0x2d41,0x2d45,0x2d49, +0x2d4d,0x2c89,0x2d51,0x2d55,0x2d59,0x2d5d,0x2d61,0x2d65,0x2d69,0x2d6d,0x2c49,0x2d71,0x2d75,0x2d79,0x2d7d,0x2d81, +0x2d85,0x2d89,0x2d8d,0x2d91,0x2d95,0x2d99,0x2d9d,0x2da1,0x2da5,0x2da9,0x2dad,0x2db1,0x2db5,0x2db9,0x2dbd,0x2b21, +0x2dc1,0x2dc5,0x2dc9,0x2dcd,0x2dd1,0x2dd5,0x2dd9,0x2ddd,0x2de1,0x2de5,0x2de9,0x2ded,0x2df1,0x2df5,0x2df9,0x2dfd, +0x2e01,0x2e05,0x2e09,0x2e0d,0x2e11,0x2e15,0x2e19,0x2e1d,0x2e21,0x2e25,0x2e29,0x2c51,0x2e2d,0x2e31,0x2e35,0x2e39, +0x2e3d,0x2e41,0x2e45,0x2e49,0x2e4d,0x2e51,0x2e55,0x2e59,0x2e5d,0x2e61,0x2e65,0x2e69,0x2e6d,0x2e71,0x2e75,0x2e79, +0x2e7d,0x2e81,0x2e85,0x2e89,0x2e8d,0x2e91,0x2e95,0x2e99,0x2e9d,0x2ea1,0x2ea5,0x2ea9,0x2ead,0x2eb1,0x2eb5,0x2eb9, +0x2ebd,0x2ec1,0x2ec5,0x2ec9,0x2ecd,0x2ed1,0x2ed5,0x2ed9,0x2edd,0x2ee1,0x2ee5,0x2ee9,0x2eed,0x2ef1,1,1, +0x2ef5,1,0x2ef9,1,1,0x2efd,0x2f01,0x2f05,0x2f09,0x2f0d,0x2f11,0x2f15,0x2f19,0x2f1d,0x2f21,1, +0x2f25,1,0x2f29,1,1,0x2f2d,0x2f31,1,1,1,0x2f35,0x2f39,0x2f3d,0x2f41,0x2f45,0x2f49, +0x2f4d,0x2f51,0x2f55,0x2f59,0x2f5d,0x2f61,0x2f65,0x2f69,0x2f6d,0x2f71,0x2f75,0x2f79,0x2f7d,0x2f81,0x2f85,0x2f89, +0x2f8d,0x2f91,0x2f95,0x2f99,0x2f9d,0x2fa1,0x2fa5,0x2fa9,0x2fad,0x2fb1,0x2fb5,0x2fb9,0x2fbd,0x2fc1,0x2fc5,0x2fc9, +0x2fcd,0x2fd1,0x2fd5,0x2fd9,0x2fdd,0x2fe1,0x2fe5,0x2d25,0x2fe9,0x2fed,0x2ff1,0x2ff5,0x2ff9,0x2ffd,0x2ffd,0x3001, +0x3005,0x3009,0x300d,0x3011,0x3015,0x3019,0x301d,0x2f2d,0x3021,0x3025,0x3029,0x302d,0x3031,0x3037,1,1, +0x303b,0x303f,0x3043,0x3047,0x304b,0x304f,0x3053,0x3057,0x2f65,0x305b,0x305f,0x3063,0x2ef5,0x3067,0x306b,0x306f, +0x3073,0x3077,0x307b,0x307f,0x3083,0x3087,0x308b,0x308f,0x3093,0x2f89,0x3097,0x2f8d,0x309b,0x309f,0x30a3,0x30a7, +0x30ab,0x2ef9,0x2b75,0x30af,0x30b3,0x30b7,0x2c8d,0x2de9,0x30bb,0x30bf,0x2fa9,0x30c3,0x2fad,0x30c7,0x30cb,0x30cf, +0x2f01,0x30d3,0x30d7,0x30db,0x30df,0x30e3,0x2f05,0x30e7,0x30eb,0x30ef,0x30f3,0x30f7,0x30fb,0x2fe5,0x30ff,0x3103, +0x2d25,0x3107,0x2ff5,0x310b,0x310f,0x3113,0x3117,0x311b,0x3009,0x311f,0x2f29,0x3123,0x300d,0x2c41,0x3127,0x3011, +0x312b,0x3019,0x312f,0x3133,0x3137,0x313b,0x313f,0x3021,0x2f19,0x3143,0x3025,0x3147,0x3029,0x314b,0x2af1,0x314f, +0x3155,0x315b,0x3161,0x3165,0x3169,0x316d,0x3173,0x3179,0x317f,0x3183,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0x3186,0xfe34,0x318c,1,1,1,1,1,1,1,1,1,1,0x3192,0x3198,0x31a0, +0x31aa,0x31b2,0x31b8,0x31be,0x31c4,0x31ca,0x31d0,0x31d6,0x31dc,0x31e2,1,0x31e8,0x31ee,0x31f4,0x31fa,0x3200, +1,0x3206,1,0x320c,0x3212,1,0x3218,0x321e,1,0x3224,0x322a,0x3230,0x3236,0x323c,0x3242,0x3248, +0x324e,0x3254,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, +0xffb8,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffb8,1,0xffcc,1,1,1,1,1,1,1,1,0xffcc,0xfe02, +0xffb8,1,1,1,1,0xfe12,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,1,1, +1,1,1,1,1,1,0xffb8,0xffb8,0xffcc,0xffcc,0xffcc,0xffb8,0xffcc,0xffb8,0xffb8,0xffb8, +1,1,0xffcc,0xffb8,0xffcc,0xffb8,1,1,1,1,1,1,1,1,1,1, +0xfe12,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe12, +1,1,1,1,1,1,1,1,1,0xa94,0x295f,0xa9a,0x2969,1,1,1, +1,1,0xaa0,1,1,1,1,1,0x2973,1,1,1,1,1,1,1, +1,1,0xfe12,0xfc0e,1,1,1,1,1,1,1,0xfc00,1,1,1,1, +1,1,0x297d,0x2987,1,0xaa6,0xaac,0xfe12,0xfe12,1,1,1,1,1,1,1, +1,1,1,1,0xfe12,1,1,1,1,1,1,1,1,1,0xfe0e,1, +1,1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,0xfe0e, +0xfe12,1,1,1,1,1,1,1,1,1,1,1,0xfe0e,0xfe0e,1,0xfc00, +1,1,1,1,1,1,1,0xab2,1,1,1,0x2991,0x299b,0xfe12,1,1, +1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,0xfe12,1, +1,1,0xfe0e,1,1,1,1,1,1,1,1,1,0xfc00,1,1,1, +1,1,1,1,1,0xabe,0xfc00,0x29a5,0x29af,0xfc00,0x29b9,1,1,0xfe12,0xfe0e,1, +1,1,1,1,1,1,1,1,1,1,1,0xad0,0xad6,0x29c3,0x29cd,1, +1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xfe12,0xfe0e,1,1,1,1,1,1,1,1,0xfc00,1,1, +1,1,0xadc,1,1,0x29d7,1,1,1,1,0xfe12,0xfe12,1,0xfe02,0xfe02,0xfe02, +0xfe02,0xfe02,1,1,1,1,1,1,1,1,1,1,1,0xfe0c,0xfe0c,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,0xfe02,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,0x325a,0x3264,0x3278,0x3290, +0x32a8,0x32c0,0x32d8,0xffb0,0xffb0,0xfe02,0xfe02,0xfe02,1,1,1,0xffc4,0xffb0,0xffb0,0xffb0,1, +1,1,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,1,1,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffb8,0xffb8,1,1,1,1,1,1,1,1,1,1,0xffcc, +0xffcc,0xffcc,0xffcc,1,1,1,1,1,1,1,1,1,1,1,0x32e6,0x32f0, +0x3304,0x331c,0x3334,0x334c,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,1,0xffcc,0xffcc,1,0xffcc, +0xffcc,0xffcc,0xffcc,0xffcc,1,1,1,1,1,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8,0xffb8, +1,1,1,1,1,1,1,1,1,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xffcc,0xfe0e, +1,1,1,1,1,0x335b,0x335f,0x3363,0x3367,0x336d,0x2f4d,0x3371,0x3375,0x3379,0x337d,0x2f51, +0x3381,0x3385,0x3389,0x2f55,0x338f,0x3393,0x3397,0x339b,0x33a1,0x33a5,0x33a9,0x33ad,0x33b3,0x33b7,0x33bb,0x33bf, +0x303f,0x33c3,0x33c9,0x33cd,0x33d1,0x33d5,0x33d9,0x33dd,0x33e1,0x33e5,0x3053,0x2f59,0x2f5d,0x3057,0x33e9,0x33ed, +0x2c59,0x33f1,0x2f61,0x33f5,0x33f9,0x33fd,0x3401,0x3401,0x3401,0x3405,0x340b,0x340f,0x3413,0x3417,0x341d,0x3421, +0x3425,0x3429,0x342d,0x3431,0x3435,0x3439,0x343d,0x3441,0x3445,0x3449,0x344d,0x344d,0x305f,0x3451,0x3455,0x3459, +0x345d,0x2f69,0x3461,0x3465,0x3469,0x2ebd,0x346d,0x3471,0x3475,0x3479,0x347d,0x3481,0x3485,0x3489,0x348d,0x3493, +0x3497,0x349b,0x349f,0x34a3,0x34a7,0x34ab,0x34b1,0x34b7,0x34bb,0x34bf,0x34c3,0x34c7,0x34cb,0x34cf,0x34d3,0x34d7, +0x34d7,0x34db,0x34e1,0x34e5,0x2c49,0x34e9,0x34ed,0x34f3,0x34f7,0x34fb,0x34ff,0x3503,0x3507,0x2f7d,0x350b,0x350f, +0x3513,0x3519,0x351d,0x3523,0x3527,0x352b,0x352f,0x3533,0x3537,0x353b,0x353f,0x3543,0x3547,0x354b,0x354f,0x3555, +0x3559,0x355d,0x3561,0x2b71,0x3565,0x356b,0x356f,0x356f,0x3575,0x3579,0x3579,0x357d,0x3581,0x3587,0x358d,0x3591, +0x3595,0x3599,0x359d,0x35a1,0x35a5,0x35a9,0x35ad,0x35b1,0x2f81,0x35b5,0x35bb,0x35bf,0x35c3,0x308f,0x35c3,0x35c7, +0x2f89,0x35cb,0x35cf,0x35d3,0x35d7,0x2f8d,0x2b05,0x35db,0x35df,0x35e3,0x35e7,0x35eb,0x35ef,0x35f3,0x35f9,0x35fd, +0x3601,0x3605,0x3609,0x360d,0x3613,0x3617,0x361b,0x361f,0x3623,0x3627,0x362b,0x362f,0x3633,0x2f91,0x3637,0x363b, +0x3641,0x3645,0x3649,0x364d,0x2f99,0x3651,0x3655,0x3659,0x365d,0x3661,0x3665,0x3669,0x366d,0x2b75,0x30af,0x3671, +0x3675,0x3679,0x367d,0x3683,0x3687,0x368b,0x368f,0x2f9d,0x3693,0x3699,0x369d,0x36a1,0x3161,0x36a5,0x36a9,0x36ad, +0x36b1,0x36b5,0x36bb,0x36bf,0x36c3,0x36c7,0x36cd,0x36d1,0x36d5,0x36d9,0x2c8d,0x36dd,0x36e1,0x36e7,0x36ed,0x36f3, +0x36f7,0x36fd,0x3701,0x3705,0x3709,0x370d,0x2fa1,0x2de9,0x3711,0x3715,0x3719,0x371d,0x3723,0x3727,0x372b,0x372f, +0x30bf,0x3733,0x3737,0x373d,0x3741,0x3745,0x374b,0x3751,0x3755,0x30c3,0x3759,0x375d,0x3761,0x3765,0x3769,0x376d, +0x3771,0x3777,0x377b,0x3781,0x3785,0x378b,0x30cb,0x378f,0x3793,0x3799,0x379d,0x37a1,0x37a7,0x37ad,0x37b1,0x37b5, +0x37b9,0x37bd,0x37bd,0x37c1,0x37c5,0x30d3,0x37c9,0x37cd,0x37d1,0x37d5,0x37d9,0x37df,0x37e3,0x2c55,0x37e9,0x37ef, +0x37f3,0x37f9,0x37ff,0x3805,0x3809,0x30eb,0x380d,0x3813,0x3819,0x381f,0x3825,0x3829,0x3829,0x30ef,0x3169,0x382d, +0x3831,0x3835,0x3839,0x383f,0x2bbd,0x30f7,0x3843,0x3847,0x2fcd,0x384d,0x3853,0x2f15,0x3859,0x385d,0x2fdd,0x3861, +0x3865,0x3869,0x386f,0x386f,0x3875,0x3879,0x387d,0x3883,0x3887,0x388b,0x388f,0x3895,0x3899,0x389d,0x38a1,0x38a5, +0x38a9,0x38af,0x38b3,0x38b7,0x38bb,0x38bf,0x38c3,0x38c7,0x38cd,0x38d3,0x38d7,0x38dd,0x38e1,0x38e7,0x38eb,0x2ff5, +0x38ef,0x38f5,0x38fb,0x38ff,0x3905,0x3909,0x390f,0x3913,0x3917,0x391b,0x391f,0x3923,0x3927,0x392d,0x3933,0x3939, +0x3575,0x393f,0x3943,0x3947,0x394b,0x394f,0x3953,0x3957,0x395b,0x395f,0x3963,0x3967,0x396b,0x2c9d,0x3971,0x3975, +0x3979,0x397d,0x3981,0x3985,0x3001,0x3989,0x398d,0x3991,0x3995,0x3999,0x399f,0x39a5,0x39ab,0x39af,0x39b3,0x39b7, +0x39bb,0x39c1,0x39c5,0x39cb,0x39cf,0x39d3,0x39d9,0x39df,0x39e3,0x2ba9,0x39e7,0x39eb,0x39ef,0x39f3,0x39f7,0x39fb, +0x3113,0x39ff,0x3a03,0x3a07,0x3a0b,0x3a0f,0x3a13,0x3a17,0x3a1b,0x3a1f,0x3a23,0x3a29,0x3a2d,0x3a31,0x3a35,0x3a39, +0x3a3d,0x3a43,0x3a49,0x3a4d,0x3a51,0x3127,0x312b,0x3a55,0x3a59,0x3a5f,0x3a63,0x3a67,0x3a6b,0x3a6f,0x3a75,0x3a7b, +0x3a7f,0x3a83,0x3a87,0x3a8d,0x312f,0x3a91,0x3a97,0x3a9d,0x3aa1,0x3aa5,0x3aa9,0x3aaf,0x3ab3,0x3ab7,0x3abb,0x3abf, +0x3ac3,0x3ac7,0x3acb,0x3ad1,0x3ad5,0x3ad9,0x3add,0x3ae3,0x3ae7,0x3aeb,0x3aef,0x3af3,0x3af9,0x3aff,0x3b03,0x3b07, +0x3b0b,0x3b11,0x3b15,0x3147,0x3147,0x3b1b,0x3b1f,0x3b25,0x3b29,0x3b2d,0x3b31,0x3b35,0x3b39,0x3b3d,0x3b41,0x314b, +0x3b47,0x3b4b,0x3b4f,0x3b53,0x3b57,0x3b5b,0x3b61,0x3b65,0x3b6b,0x3b71,0x3b77,0x3b7b,0x3b7f,0x3b83,0x3b87,0x3b8b, +0x3b8f,0x3b93,0x3b97,1,1,1 }; static const UCPTrie norm2_nfc_data_trie={ norm2_nfc_data_trieIndex, { norm2_nfc_data_trieData }, - 1746, 7892, + 1748, 7974, 0x2fc00, 0x30, 0, 0, 0, 0, @@ -1128,7 +1131,7 @@ static const uint16_t norm2_nfc_data_extraData[7732]={ }; static const uint8_t norm2_nfc_data_smallFCD[256]={ -0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0xc7,0xe6,0x66,0x46,0x64,0x46,0x66,0x5b, +0xc0,0xef,3,0x7f,0xdf,0x70,0xcf,0x87,0xd7,0xe6,0x66,0x46,0x66,0x46,0x66,0x5b, 0x12,0,0,4,0,0,0,0x43,0x20,2,0x69,0xae,0xc2,0xc0,0xff,0xff, 0xc0,0x72,0xbf,0,0,0,0,0,0,0,0x40,0,0x80,0x88,0,0, 0xfe,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, diff --git a/deps/icu-small/source/common/normalizer2.cpp b/deps/icu-small/source/common/normalizer2.cpp index ca5d3aba1a1874..6be7e0b21a2bf9 100644 --- a/deps/icu-small/source/common/normalizer2.cpp +++ b/deps/icu-small/source/common/normalizer2.cpp @@ -293,11 +293,11 @@ U_CDECL_BEGIN static UBool U_CALLCONV uprv_normalizer2_cleanup() { delete noopSingleton; noopSingleton = NULL; - noopInitOnce.reset(); + noopInitOnce.reset(); #if NORM2_HARDCODE_NFC_DATA delete nfcSingleton; nfcSingleton = NULL; - nfcInitOnce.reset(); + nfcInitOnce.reset(); #endif return TRUE; } diff --git a/deps/icu-small/source/common/normalizer2impl.cpp b/deps/icu-small/source/common/normalizer2impl.cpp index c0ad5c69f3e07d..5bfd49e8cb9e2a 100644 --- a/deps/icu-small/source/common/normalizer2impl.cpp +++ b/deps/icu-small/source/common/normalizer2impl.cpp @@ -86,7 +86,7 @@ UChar32 codePointFromValidUTF8(const uint8_t *cpStart, const uint8_t *cpLimit) { case 4: return ((c&7)<<18) | ((cpStart[1]&0x3f)<<12) | ((cpStart[2]&0x3f)<<6) | (cpStart[3]&0x3f); default: - UPRV_UNREACHABLE; // Should not occur. + UPRV_UNREACHABLE_EXIT; // Should not occur. } } @@ -2504,7 +2504,7 @@ void CanonIterData::addToStartSet(UChar32 origin, UChar32 decompLead, UErrorCode UChar32 firstOrigin=(UChar32)(canonValue&CANON_VALUE_MASK); canonValue=(canonValue&~CANON_VALUE_MASK)|CANON_HAS_SET|(uint32_t)canonStartSets.size(); umutablecptrie_set(mutableTrie, decompLead, canonValue, &errorCode); - canonStartSets.addElement(set, errorCode); + canonStartSets.addElementX(set, errorCode); if(firstOrigin!=0) { set->add(firstOrigin); } diff --git a/deps/icu-small/source/common/normalizer2impl.h b/deps/icu-small/source/common/normalizer2impl.h index bdb6767a925c90..7c85448b71bc05 100644 --- a/deps/icu-small/source/common/normalizer2impl.h +++ b/deps/icu-small/source/common/normalizer2impl.h @@ -241,7 +241,7 @@ class U_COMMON_API ReorderingBuffer : public UMemory { * Low-level implementation of the Unicode Normalization Algorithm. * For the data structure and details see the documentation at the end of * this normalizer2impl.h and in the design doc at - * http://site.icu-project.org/design/normalization/custom + * https://icu.unicode.org/design/normalization/custom */ class U_COMMON_API Normalizer2Impl : public UObject { public: @@ -806,7 +806,7 @@ unorm_getFCD16(UChar32 c); * Constants are defined as enum values of the Normalizer2Impl class. * * Many details of the data structures are described in the design doc - * which is at http://site.icu-project.org/design/normalization/custom + * which is at https://icu.unicode.org/design/normalization/custom * * int32_t indexes[indexesLength]; -- indexesLength=indexes[IX_NORM_TRIE_OFFSET]/4; * diff --git a/deps/icu-small/source/common/normlzr.cpp b/deps/icu-small/source/common/normlzr.cpp index 20b9f3df2ffccc..1f4fa151797b13 100644 --- a/deps/icu-small/source/common/normlzr.cpp +++ b/deps/icu-small/source/common/normlzr.cpp @@ -2,7 +2,7 @@ // License & terms of use: http://www.unicode.org/copyright.html /* ************************************************************************* - * COPYRIGHT: + * COPYRIGHT: * Copyright (c) 1996-2012, International Business Machines Corporation and * others. All Rights Reserved. ************************************************************************* @@ -94,7 +94,7 @@ Normalizer::~Normalizer() delete text; } -Normalizer* +Normalizer* Normalizer::clone() const { return new Normalizer(*this); @@ -107,8 +107,8 @@ int32_t Normalizer::hashCode() const { return text->hashCode() + fUMode + fOptions + buffer.hashCode() + bufferPos + currentIndex + nextIndex; } - -UBool Normalizer::operator==(const Normalizer& that) const + +bool Normalizer::operator==(const Normalizer& that) const { return this==&that || @@ -125,9 +125,9 @@ UBool Normalizer::operator==(const Normalizer& that) const //------------------------------------------------------------------------- void U_EXPORT2 -Normalizer::normalize(const UnicodeString& source, +Normalizer::normalize(const UnicodeString& source, UNormalizationMode mode, int32_t options, - UnicodeString& result, + UnicodeString& result, UErrorCode &status) { if(source.isBogus() || U_FAILURE(status)) { result.setToBogus(); @@ -160,17 +160,17 @@ Normalizer::normalize(const UnicodeString& source, } void U_EXPORT2 -Normalizer::compose(const UnicodeString& source, +Normalizer::compose(const UnicodeString& source, UBool compat, int32_t options, - UnicodeString& result, + UnicodeString& result, UErrorCode &status) { normalize(source, compat ? UNORM_NFKC : UNORM_NFC, options, result, status); } void U_EXPORT2 -Normalizer::decompose(const UnicodeString& source, +Normalizer::decompose(const UnicodeString& source, UBool compat, int32_t options, - UnicodeString& result, + UnicodeString& result, UErrorCode &status) { normalize(source, compat ? UNORM_NFKD : UNORM_NFD, options, result, status); } @@ -368,7 +368,7 @@ int32_t Normalizer::endIndex() const { //------------------------------------------------------------------------- void -Normalizer::setMode(UNormalizationMode newMode) +Normalizer::setMode(UNormalizationMode newMode) { fUMode = newMode; init(); @@ -381,8 +381,8 @@ Normalizer::getUMode() const } void -Normalizer::setOption(int32_t option, - UBool value) +Normalizer::setOption(int32_t option, + UBool value) { if (value) { fOptions |= option; @@ -403,7 +403,7 @@ Normalizer::getOption(int32_t option) const * The iteration position is set to the beginning of the input text. */ void -Normalizer::setText(const UnicodeString& newText, +Normalizer::setText(const UnicodeString& newText, UErrorCode &status) { if (U_FAILURE(status)) { @@ -424,8 +424,8 @@ Normalizer::setText(const UnicodeString& newText, * The iteration position is set to the beginning of the string. */ void -Normalizer::setText(const CharacterIterator& newText, - UErrorCode &status) +Normalizer::setText(const CharacterIterator& newText, + UErrorCode &status) { if (U_FAILURE(status)) { return; @@ -463,7 +463,7 @@ Normalizer::setText(ConstChar16Ptr newText, * @param result Receives a copy of the text under iteration. */ void -Normalizer::getText(UnicodeString& result) +Normalizer::getText(UnicodeString& result) { text->getText(result); } diff --git a/deps/icu-small/source/common/pluralmap.cpp b/deps/icu-small/source/common/pluralmap.cpp index a85dd1c979ffef..ec87f0198e19eb 100644 --- a/deps/icu-small/source/common/pluralmap.cpp +++ b/deps/icu-small/source/common/pluralmap.cpp @@ -29,7 +29,7 @@ PluralMapBase::Category PluralMapBase::toCategory(const UnicodeString &pluralForm) { CharString cCategory; UErrorCode status = U_ZERO_ERROR; - cCategory.appendInvariantChars(pluralForm, status); + cCategory.appendInvariantChars(pluralForm, status); return U_FAILURE(status) ? NONE : toCategory(cCategory.data()); } @@ -41,3 +41,4 @@ const char *PluralMapBase::getCategoryName(Category c) { U_NAMESPACE_END + diff --git a/deps/icu-small/source/common/pluralmap.h b/deps/icu-small/source/common/pluralmap.h index 2a14a07af1fcdf..4988fd2699f385 100644 --- a/deps/icu-small/source/common/pluralmap.h +++ b/deps/icu-small/source/common/pluralmap.h @@ -46,7 +46,7 @@ class U_COMMON_API PluralMapBase : public UMemory { /** * Converts a category name such as "zero", "one", "two", "few", "many" - * or "other" to a category enum. Returns NONE for urecongized + * or "other" to a category enum. Returns NONE for unrecognized * category name. */ static Category toCategory(const UnicodeString &categoryName); @@ -62,7 +62,7 @@ class U_COMMON_API PluralMapBase : public UMemory { * A Map of plural categories to values. It maintains ownership of the * values. * - * Type T is the value type. T must provide the followng: + * Type T is the value type. T must provide the following: * 1) Default constructor * 2) Copy constructor * 3) Assignment operator diff --git a/deps/icu-small/source/common/propname_data.h b/deps/icu-small/source/common/propname_data.h index 6f63e9cdd476ce..c98a0f790bdcc5 100644 --- a/deps/icu-small/source/common/propname_data.h +++ b/deps/icu-small/source/common/propname_data.h @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,105 +7,106 @@ // // machine-generated by: icu/tools/unicode/c/genprops/pnamesbuilder.cpp - #ifdef INCLUDED_FROM_PROPNAME_CPP U_NAMESPACE_BEGIN -const int32_t PropNameData::indexes[8]={0x20,0x15b8,0x5048,0xa69a,0xa69a,0xa69a,0x2f,0}; +const int32_t PropNameData::indexes[8]={0x20,0x163c,0x521b,0xab62,0xab62,0xab62,0x31,0}; -const int32_t PropNameData::valueMaps[1382]={ -6,0,0x41,0,0xe3,0x368,0xe3,0x37e,0xe3,0x393,0xe3,0x3a9,0xe3,0x3b4,0xe3,0x3d5, -0xe3,0x3e5,0xe3,0x3f4,0xe3,0x402,0xe3,0x426,0xe3,0x43d,0xe3,0x455,0xe3,0x46c,0xe3,0x47b, -0xe3,0x48a,0xe3,0x49b,0xe3,0x4a9,0xe3,0x4bb,0xe3,0x4d5,0xe3,0x4f0,0xe3,0x505,0xe3,0x522, -0xe3,0x533,0xe3,0x53e,0xe3,0x55d,0xe3,0x573,0xe3,0x584,0xe3,0x594,0xe3,0x5af,0xe3,0x5c8, -0xe3,0x5d9,0xe3,0x5f3,0xe3,0x606,0xe3,0x616,0xe3,0x630,0xe3,0x649,0xe3,0x660,0xe3,0x674, -0xe3,0x68a,0xe3,0x69e,0xe3,0x6b4,0xe3,0x6ce,0xe3,0x6e6,0xe3,0x702,0xe3,0x70a,0xe3,0x712, -0xe3,0x71a,0xe3,0x722,0xe3,0x72b,0xe3,0x738,0xe3,0x74b,0xe3,0x768,0xe3,0x785,0xe3,0x7a2, -0xe3,0x7c0,0xe3,0x7de,0xe3,0x802,0xe3,0x80f,0xe3,0x829,0xe3,0x83e,0xe3,0x859,0xe3,0x870, -0xe3,0x887,0xe3,0x8a9,0xe3,0x1000,0x1019,0x8c8,0x15f,0xae8,0x17a,0x2f11,0xe9,0x2f30,0x2b3,0x306e, -0x2c9,0x30c8,0x2d3,0x3325,0x2f5,0x3c20,0x35f,0x3c90,0x369,0x3f2a,0x398,0x3f68,0x3a0,0x4a5b,0x465,0x4ad9, -0x46f,0x4afe,0x475,0x4b18,0x47b,0x4b39,0x482,0x4b53,0xe9,0x4b78,0xe9,0x4b9e,0x489,0x4c48,0x49f,0x4cc1, -0x4b2,0x4d73,0x4cd,0x4daa,0x4d4,0x4f8a,0x4e8,0x540a,0x510,0x2000,0x2001,0x5469,0x518,0x3000,0x3001,0x54f5, -0,0x4000,0x400e,0x5507,0,0x5510,0,0x552a,0,0x553b,0,0x554c,0,0x5562,0,0x556b, -0,0x5588,0,0x55a6,0,0x55c4,0,0x55e2,0,0x55f8,0,0x560c,0,0x5622,0,0x7000, -0x7001,0x563b,0,0x7d6,0x12,0,1,0x12,0x20,0x7f4,0x4a,0,1,6,7,8, -9,0xa,0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18, -0x19,0x1a,0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b, -0x76,0x7a,0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4, -0xe6,0xe8,0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x5e,0x68,0x79,0x84,0x91,0x9e,0xab,0xb8, -0xc5,0xd2,0xdf,0xec,0xf9,0x106,0x113,0x120,0x12d,0x13a,0x147,0x154,0x161,0x16e,0x17b,0x188, -0x195,0x1a2,0x1af,0x1bc,0x1c9,0x1d6,0x1e3,0x1f0,0x1fd,0x20c,0x21b,0x22a,0x239,0x248,0x257,0x266, -0x275,0x28f,0x2a3,0x2b7,0x2d2,0x2e1,0x2ea,0x2fa,0x302,0x30b,0x31a,0x323,0x333,0x344,0x355,0x995, -1,0,0x17,0x8d7,0x8e8,0x8f9,0x90d,0x924,0x93c,0x94e,0x963,0x97a,0x98f,0x99f,0x9b1,0x9ce, -0x9ea,0x9fc,0xa19,0xa35,0xa51,0xa66,0xa7b,0xa95,0xab0,0xacb,0xb37,1,0,0x135,0xaf3,0xb00, -0xb13,0xb3b,0xb59,0xb77,0xb8f,0xbba,0xbe4,0xbfc,0xc0f,0xc22,0xc31,0xc40,0xc4f,0xc5e,0xc75,0xc86, -0xc99,0xcac,0xcb9,0xcc6,0xcd5,0xce6,0xcfb,0xd0c,0xd17,0xd20,0xd31,0xd42,0xd55,0xd67,0xd7a,0xd8d, -0xdcc,0xdd9,0xde6,0xdf3,0xe08,0xe38,0xe52,0xe73,0xe9e,0xec1,0xf1f,0xf46,0xf61,0xf70,0xf97,0xfbf, -0xfe2,0x1005,0x102f,0x1048,0x1067,0x108a,0x10ae,0x10c1,0x10db,0x1105,0x111d,0x1145,0x116e,0x1181,0x1194,0x11a7, -0x11ce,0x11dd,0x11fd,0x122b,0x1249,0x1277,0x1293,0x12ae,0x12c7,0x12e0,0x1301,0x1331,0x1350,0x1372,0x13a6,0x13d3, -0x1418,0x1439,0x1463,0x1484,0x14ad,0x14c0,0x14f3,0x150a,0x1519,0x152a,0x1555,0x156c,0x159d,0x15cb,0x160e,0x1619, -0x1652,0x1663,0x1674,0x1681,0x1694,0x16ce,0x16f2,0x1716,0x1750,0x1788,0x17b3,0x17cb,0x17f7,0x1823,0x1830,0x183f, -0x185c,0x187e,0x18ac,0x18cc,0x18f3,0x191a,0x1939,0x194c,0x195d,0x196e,0x1993,0x19b8,0x19df,0x1a13,0x1a40,0x1a5e, -0x1a71,0x1a8a,0x1ac3,0x1ad2,0x1af2,0x1b14,0x1b36,0x1b4d,0x1b64,0x1b91,0x1baa,0x1bc3,0x1bf4,0x1c1e,0x1c39,0x1c4c, -0x1c6b,0x1c74,0x1c87,0x1ca5,0x1cc3,0x1cd6,0x1ced,0x1d02,0x1d37,0x1d5b,0x1d70,0x1d7f,0x1d92,0x1db6,0x1dbf,0x1de3, -0x1dfa,0x1e0d,0x1e1c,0x1e27,0x1e48,0x1e60,0x1e6f,0x1e7e,0x1e8d,0x1ea4,0x1eb9,0x1ece,0x1f07,0x1f1a,0x1f36,0x1f41, -0x1f4e,0x1f7c,0x1fa0,0x1fc3,0x1fd6,0x1ff8,0x200b,0x2026,0x2049,0x206c,0x2091,0x20a2,0x20d1,0x20fe,0x2115,0x2130, -0x213f,0x216a,0x21a2,0x21dc,0x220a,0x221b,0x2228,0x224c,0x225b,0x2277,0x2291,0x22ae,0x22e6,0x22fb,0x2328,0x2347, -0x2375,0x2395,0x23c9,0x23d8,0x2402,0x2425,0x2450,0x245b,0x246c,0x2487,0x24ab,0x24b8,0x24cd,0x24f4,0x251f,0x2556, -0x2569,0x257a,0x25aa,0x25bb,0x25ca,0x25df,0x25fd,0x2610,0x2623,0x263a,0x2657,0x2662,0x266b,0x268d,0x26a2,0x26c7, -0x26de,0x2707,0x2722,0x2737,0x2750,0x2771,0x27a6,0x27b7,0x27e8,0x280c,0x281d,0x2836,0x2841,0x286e,0x2890,0x28be, -0x28f1,0x2900,0x2911,0x292e,0x2970,0x2997,0x29a4,0x29b9,0x29dd,0x2a03,0x2a3c,0x2a4d,0x2a71,0x2a7c,0x2a89,0x2a98, -0x2abd,0x2aeb,0x2b07,0x2b24,0x2b31,0x2b42,0x2b60,0x2b83,0x2ba0,0x2bad,0x2bcd,0x2bea,0x2c0b,0x2c34,0x2c45,0x2c64, -0x2c7d,0x2c96,0x2ca7,0x2cf0,0x2d01,0x2d1a,0x2d49,0x2d76,0x2d9b,0x2ddd,0x2df9,0x2e08,0x2e1f,0x2e4d,0x2e66,0x2e8f, -0x2ea9,0x2ee4,0x2f02,0x1e85,1,0,0x12,0x2f47,0x2f57,0x2f6a,0x2f7a,0x2f8a,0x2f99,0x2fa9,0x2fbb,0x2fce, -0x2fe0,0x2ff0,0x3000,0x300f,0x301e,0x302e,0x303b,0x304a,0x305e,0x1f43,1,0,6,0x3083,0x308e,0x309b, -0x30a8,0x30b5,0x30c0,0x1f87,1,0,0x1e,0x30dd,0x30ec,0x3101,0x3116,0x312b,0x313f,0x3150,0x3164,0x3177, -0x3188,0x31a1,0x31b3,0x31c4,0x31d8,0x31eb,0x3203,0x3215,0x3220,0x3230,0x323e,0x3253,0x3268,0x327e,0x3298,0x32ae, -0x32be,0x32d2,0x32e6,0x32f7,0x330f,0x21b2,1,0,0x66,0x3337,0x335a,0x3363,0x3370,0x337b,0x3384,0x338f, -0x3398,0x33b1,0x33b6,0x33bf,0x33dc,0x33e5,0x33f2,0x33fb,0x341f,0x3426,0x342f,0x3442,0x344d,0x3456,0x3461,0x347a, -0x3483,0x3492,0x349d,0x34a6,0x34b1,0x34ba,0x34c1,0x34ca,0x34d5,0x34de,0x34f7,0x3500,0x350d,0x3518,0x3529,0x3534, -0x3549,0x3560,0x3569,0x3572,0x358b,0x3596,0x359f,0x35a8,0x35bf,0x35dc,0x35e7,0x35f8,0x3603,0x360a,0x3617,0x3624, -0x3651,0x3666,0x366f,0x368a,0x36ad,0x36ce,0x36ef,0x3714,0x373b,0x375c,0x377f,0x37a0,0x37c7,0x37e8,0x380d,0x382c, -0x384b,0x386a,0x3887,0x38a8,0x38c9,0x38ec,0x3911,0x3930,0x394f,0x3970,0x3997,0x39bc,0x39db,0x39fc,0x3a1f,0x3a3a, -0x3a53,0x3a6e,0x3a87,0x3aa4,0x3abf,0x3adc,0x3afb,0x3b18,0x3b35,0x3b54,0x3b71,0x3b8c,0x3ba9,0x3bc6,0x3bf9,0x24f7, -1,0,6,0x3c31,0x3c40,0x3c50,0x3c60,0x3c70,0x3c81,0x2555,1,0,0x2b,0x3c9f,0x3cab,0x3cb9, -0x3cc8,0x3cd7,0x3ce7,0x3cf8,0x3d0c,0x3d21,0x3d37,0x3d4a,0x3d5e,0x3d6e,0x3d77,0x3d82,0x3d92,0x3dae,0x3dc0,0x3dce, -0x3ddd,0x3de9,0x3dfe,0x3e12,0x3e25,0x3e33,0x3e47,0x3e55,0x3e5f,0x3e71,0x3e7d,0x3e8b,0x3e9b,0x3ea2,0x3ea9,0x3eb0, -0x3eb7,0x3ebe,0x3ed4,0x3ef5,0x870,0x3f07,0x3f12,0x3f21,0x27ae,1,0,4,0x3f3b,0x3f46,0x3f52,0x3f5c, -0x27d4,1,0,0xc1,0x3f73,0x3f80,0x3f95,0x3fa2,0x3fb1,0x3fbf,0x3fce,0x3fdd,0x3fef,0x3ffe,0x400c,0x401d, -0x402c,0x403b,0x4048,0x4054,0x4063,0x4072,0x407c,0x4089,0x4096,0x40a5,0x40b3,0x40c2,0x40ce,0x40d8,0x40e4,0x40f4, -0x4104,0x4112,0x411e,0x412f,0x413b,0x4147,0x4155,0x4162,0x416e,0x417b,0xd0c,0x4188,0x4196,0x41b0,0x41b9,0x41c7, -0x41d5,0x41e1,0x41f0,0x41fe,0x420c,0x4218,0x4227,0x4235,0x4243,0x4250,0x425f,0x427a,0x4289,0x429a,0x42ab,0x42be, -0x42d0,0x42df,0x42f1,0x4300,0x430c,0x4317,0x1e1c,0x4324,0x432f,0x433a,0x4345,0x4350,0x436b,0x4376,0x4381,0x438c, -0x439f,0x43b3,0x43be,0x43cd,0x43dc,0x43e7,0x43f2,0x43ff,0x440e,0x441c,0x4427,0x4442,0x444c,0x445d,0x446e,0x447d, -0x448e,0x4499,0x44a4,0x44af,0x44ba,0x44c5,0x44d0,0x44db,0x44e5,0x44f0,0x4500,0x450b,0x4519,0x4526,0x4531,0x4540, -0x454d,0x455a,0x4569,0x4576,0x4587,0x4599,0x45a9,0x45b4,0x45c7,0x45de,0x45ec,0x45f9,0x4604,0x4611,0x4622,0x463e, -0x4654,0x465f,0x467c,0x468c,0x469b,0x46a6,0x46b1,0x1f36,0x46bd,0x46c8,0x46e0,0x46f0,0x46ff,0x470d,0x471b,0x4726, -0x4731,0x4745,0x475c,0x4774,0x4784,0x4794,0x47a4,0x47b6,0x47c1,0x47cc,0x47d6,0x47e2,0x47f0,0x4803,0x480f,0x481c, -0x4827,0x4843,0x4850,0x485e,0x4877,0x2836,0x4886,0x2657,0x4893,0x48a1,0x48b3,0x48c1,0x48cd,0x48dd,0x2a71,0x48eb, -0x48f7,0x4902,0x490d,0x4918,0x492c,0x493a,0x4951,0x495d,0x4971,0x497f,0x4991,0x49a7,0x49b5,0x49c7,0x49d5,0x49f2, -0x4a04,0x4a11,0x4a22,0x4a34,0x4a4e,0x31cc,1,0,6,0x4a75,0x4a88,0x4a98,0x4aa6,0x4ab7,0x4ac7,0x3228, -0x12,0,1,0x4af1,0x4af7,0x3235,0x12,0,1,0x4af1,0x4af7,0x3242,1,0,3,0x4af1, -0x4af7,0x4b30,0x3258,1,0,3,0x4af1,0x4af7,0x4b30,0x326e,1,0,0x12,0x4bba,0x4bc4,0x4bd0, -0x4bd7,0x4be2,0x4be7,0x4bee,0x4bf5,0x4bfe,0x4c03,0x4c08,0x4c18,0x870,0x3f07,0x4c24,0x3f12,0x4c34,0x3f21,0x3317, -1,0,0xf,0x4bba,0x4c5b,0x4c65,0x4c6f,0x4c7a,0x3ddd,0x4c84,0x4c90,0x4c98,0x4c9f,0x4ca9,0x4bd0,0x4bd7, -0x4be7,0x4cb3,0x339e,1,0,0x17,0x4bba,0x4cd0,0x4c6f,0x4cdc,0x4ce9,0x4cf7,0x3ddd,0x4d02,0x4bd0,0x4d13, -0x4be7,0x4d22,0x4d30,0x870,0x3ef5,0x4d3c,0x4d4d,0x3f07,0x4c24,0x3f12,0x4c34,0x3f21,0x4d5e,0x34bb,1,0, -3,0x4d91,0x4d99,0x4da1,0x34d4,1,0,0x10,0x4dca,0x4dd1,0x4de0,0x4e01,0x4e24,0x4e2f,0x4e4e,0x4e65, -0x4e72,0x4e7b,0x4e9a,0x4ecd,0x4ee8,0x4f17,0x4f34,0x4f59,0x356d,1,0,0x24,0x4fa8,0x4fb5,0x4fc8,0x4fd5, -0x5002,0x5027,0x503c,0x505b,0x507c,0x50a9,0x50e2,0x5105,0x5128,0x5155,0x518a,0x51b1,0x51da,0x5211,0x5240,0x5261, -0x5286,0x5295,0x52b8,0x52cf,0x52dc,0x52eb,0x5308,0x5321,0x5344,0x5369,0x5382,0x5397,0x53a6,0x53b7,0x53c4,0x53e5, -0x373d,1,0,4,0x5423,0x542e,0x5446,0x545e,0x3779,0x36,1,2,4,8,0xe,0x10, -0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000,0x10000, -0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000,0x30f80000, -0x30dd,0x30ec,0x3101,0x3116,0x5497,0x312b,0x313f,0x548d,0x3150,0x3164,0x3177,0x54a8,0x3188,0x31a1,0x31b3,0x54bf, -0x31c4,0x31d8,0x31eb,0x54e8,0x3203,0x3215,0x3220,0x3230,0x5484,0x323e,0x3253,0x3268,0x327e,0x3298,0x32ae,0x32be, -0x32d2,0x32e6,0x54de,0x32f7,0x330f,0x54c9 +const int32_t PropNameData::valueMaps[1415]={ +6,0,0x48,0,0xf1,0x368,0xf1,0x37e,0xf1,0x393,0xf1,0x3a9,0xf1,0x3b4,0xf1,0x3d5, +0xf1,0x3e5,0xf1,0x3f4,0xf1,0x402,0xf1,0x426,0xf1,0x43d,0xf1,0x455,0xf1,0x46c,0xf1,0x47b, +0xf1,0x48a,0xf1,0x49b,0xf1,0x4a9,0xf1,0x4bb,0xf1,0x4d5,0xf1,0x4f0,0xf1,0x505,0xf1,0x522, +0xf1,0x533,0xf1,0x53e,0xf1,0x55d,0xf1,0x573,0xf1,0x584,0xf1,0x594,0xf1,0x5af,0xf1,0x5c8, +0xf1,0x5d9,0xf1,0x5f3,0xf1,0x606,0xf1,0x616,0xf1,0x630,0xf1,0x649,0xf1,0x660,0xf1,0x674, +0xf1,0x68a,0xf1,0x69e,0xf1,0x6b4,0xf1,0x6ce,0xf1,0x6e6,0xf1,0x702,0xf1,0x70a,0xf1,0x712, +0xf1,0x71a,0xf1,0x722,0xf1,0x72b,0xf1,0x738,0xf1,0x74b,0xf1,0x768,0xf1,0x785,0xf1,0x7a2, +0xf1,0x7c0,0xf1,0x7de,0xf1,0x802,0xf1,0x80f,0xf1,0x829,0xf1,0x83e,0xf1,0x859,0xf1,0x870, +0xf1,0x887,0xf1,0x8a9,0xf1,0x8c8,0xf1,0x8e1,0xf1,0x90e,0xf1,0x947,0xf1,0x978,0xf1,0x9a7, +0xf1,0x9d6,0xf1,0x1000,0x1019,0x9eb,0x16d,0xc0b,0x188,0x3196,0xf7,0x31b5,0x2cd,0x32f3,0x2e3,0x334d, +0x2ed,0x35aa,0x30f,0x3ed5,0x37b,0x3f45,0x385,0x41df,0x3b4,0x421d,0x3bc,0x4d50,0x486,0x4dce,0x490,0x4df3, +0x496,0x4e0d,0x49c,0x4e2e,0x4a3,0x4e48,0xf7,0x4e6d,0xf7,0x4e93,0x4aa,0x4f3d,0x4c0,0x4fb6,0x4d3,0x5068, +0x4ee,0x509f,0x4f5,0x527f,0x509,0x56ff,0x531,0x2000,0x2001,0x575e,0x539,0x3000,0x3001,0x57ea,0,0x4000, +0x400e,0x57fc,0,0x5805,0,0x581f,0,0x5830,0,0x5841,0,0x5857,0,0x5860,0,0x587d, +0,0x589b,0,0x58b9,0,0x58d7,0,0x58ed,0,0x5901,0,0x5917,0,0x7000,0x7001,0x5930, +0,0x844,0x12,0,1,0x12,0x20,0x862,0x4a,0,1,6,7,8,9,0xa, +0xb,0xc,0xd,0xe,0xf,0x10,0x11,0x12,0x13,0x14,0x15,0x16,0x17,0x18,0x19,0x1a, +0x1b,0x1c,0x1d,0x1e,0x1f,0x20,0x21,0x22,0x23,0x24,0x54,0x5b,0x67,0x6b,0x76,0x7a, +0x81,0x82,0x84,0x85,0xc8,0xca,0xd6,0xd8,0xda,0xdc,0xde,0xe0,0xe2,0xe4,0xe6,0xe8, +0xe9,0xea,0xf0,0x2e,0x40,0x4c,0x5e,0x68,0x79,0x84,0x91,0x9e,0xab,0xb8,0xc5,0xd2, +0xdf,0xec,0xf9,0x106,0x113,0x120,0x12d,0x13a,0x147,0x154,0x161,0x16e,0x17b,0x188,0x195,0x1a2, +0x1af,0x1bc,0x1c9,0x1d6,0x1e3,0x1f0,0x1fd,0x20c,0x21b,0x22a,0x239,0x248,0x257,0x266,0x275,0x28f, +0x2a3,0x2b7,0x2d2,0x2e1,0x2ea,0x2fa,0x302,0x30b,0x31a,0x323,0x333,0x344,0x355,0xa03,1,0, +0x17,0x9fa,0xa0b,0xa1c,0xa30,0xa47,0xa5f,0xa71,0xa86,0xa9d,0xab2,0xac2,0xad4,0xaf1,0xb0d,0xb1f, +0xb3c,0xb58,0xb74,0xb89,0xb9e,0xbb8,0xbd3,0xbee,0xba5,1,0,0x141,0xc16,0xc23,0xc36,0xc5e, +0xc7c,0xc9a,0xcb2,0xcdd,0xd07,0xd1f,0xd32,0xd45,0xd54,0xd63,0xd72,0xd81,0xd98,0xda9,0xdbc,0xdcf, +0xddc,0xde9,0xdf8,0xe09,0xe1e,0xe2f,0xe3a,0xe43,0xe54,0xe65,0xe78,0xe8a,0xe9d,0xeb0,0xeef,0xefc, +0xf09,0xf16,0xf2b,0xf5b,0xf75,0xf96,0xfc1,0xfe4,0x1042,0x1069,0x1084,0x1093,0x10ba,0x10e2,0x1105,0x1128, +0x1152,0x116b,0x118a,0x11ad,0x11d1,0x11e4,0x11fe,0x1228,0x1240,0x1268,0x1291,0x12a4,0x12b7,0x12ca,0x12f1,0x1300, +0x1320,0x134e,0x136c,0x139a,0x13b6,0x13d1,0x13ea,0x1403,0x1424,0x1454,0x1473,0x1495,0x14c9,0x14f6,0x153b,0x155c, +0x1586,0x15a7,0x15d0,0x15e3,0x1616,0x162d,0x163c,0x164d,0x1678,0x168f,0x16c0,0x16ee,0x1731,0x173c,0x1775,0x1786, +0x1797,0x17a4,0x17b7,0x17f1,0x1815,0x1839,0x1873,0x18ab,0x18d6,0x18ee,0x191a,0x1946,0x1953,0x1962,0x197f,0x19a1, +0x19cf,0x19ef,0x1a16,0x1a3d,0x1a5c,0x1a6f,0x1a80,0x1a91,0x1ab6,0x1adb,0x1b02,0x1b36,0x1b63,0x1b81,0x1b94,0x1bad, +0x1be6,0x1bf5,0x1c15,0x1c37,0x1c59,0x1c70,0x1c87,0x1cb4,0x1ccd,0x1ce6,0x1d17,0x1d41,0x1d5c,0x1d6f,0x1d8e,0x1d97, +0x1daa,0x1dc8,0x1de6,0x1df9,0x1e10,0x1e25,0x1e5a,0x1e7e,0x1e93,0x1ea2,0x1eb5,0x1ed9,0x1ee2,0x1f06,0x1f1d,0x1f30, +0x1f3f,0x1f4a,0x1f6b,0x1f83,0x1f92,0x1fa1,0x1fb0,0x1fc7,0x1fdc,0x1ff1,0x202a,0x203d,0x2059,0x2064,0x2071,0x209f, +0x20c3,0x20e6,0x20f9,0x211b,0x212e,0x2149,0x216c,0x218f,0x21b4,0x21c5,0x21f4,0x2221,0x2238,0x2253,0x2262,0x228d, +0x22c5,0x22ff,0x232d,0x233e,0x234b,0x236f,0x237e,0x239a,0x23b4,0x23d1,0x2409,0x241e,0x244b,0x246a,0x2498,0x24b8, +0x24ec,0x24fb,0x2525,0x2548,0x2573,0x257e,0x258f,0x25aa,0x25ce,0x25db,0x25f0,0x2617,0x2642,0x2679,0x268c,0x269d, +0x26cd,0x26de,0x26ed,0x2702,0x2720,0x2733,0x2746,0x275d,0x277a,0x2785,0x278e,0x27b0,0x27c5,0x27ea,0x2801,0x282a, +0x2845,0x285a,0x2873,0x2894,0x28c9,0x28da,0x290b,0x292f,0x2940,0x2959,0x2964,0x2991,0x29b3,0x29e1,0x2a14,0x2a23, +0x2a34,0x2a51,0x2a93,0x2aba,0x2ac7,0x2adc,0x2b00,0x2b26,0x2b5f,0x2b70,0x2b94,0x2b9f,0x2bac,0x2bbb,0x2be0,0x2c0e, +0x2c2a,0x2c47,0x2c54,0x2c65,0x2c83,0x2ca6,0x2cc3,0x2cd0,0x2cf0,0x2d0d,0x2d2e,0x2d57,0x2d68,0x2d87,0x2da0,0x2db9, +0x2dca,0x2e13,0x2e24,0x2e3d,0x2e6c,0x2e99,0x2ebe,0x2f00,0x2f1c,0x2f2b,0x2f42,0x2f70,0x2f89,0x2fb2,0x2fcc,0x3007, +0x3025,0x3034,0x3054,0x306f,0x3093,0x30af,0x30cd,0x30eb,0x3102,0x3111,0x311c,0x3159,0x316c,0x1f6b,1,0, +0x12,0x31cc,0x31dc,0x31ef,0x31ff,0x320f,0x321e,0x322e,0x3240,0x3253,0x3265,0x3275,0x3285,0x3294,0x32a3,0x32b3, +0x32c0,0x32cf,0x32e3,0x2029,1,0,6,0x3308,0x3313,0x3320,0x332d,0x333a,0x3345,0x206d,1,0, +0x1e,0x3362,0x3371,0x3386,0x339b,0x33b0,0x33c4,0x33d5,0x33e9,0x33fc,0x340d,0x3426,0x3438,0x3449,0x345d,0x3470, +0x3488,0x349a,0x34a5,0x34b5,0x34c3,0x34d8,0x34ed,0x3503,0x351d,0x3533,0x3543,0x3557,0x356b,0x357c,0x3594,0x2298, +1,0,0x68,0x35bc,0x35df,0x35e8,0x35f5,0x3600,0x3609,0x3614,0x361d,0x3636,0x363b,0x3644,0x3661,0x366a, +0x3677,0x3680,0x36a4,0x36ab,0x36b4,0x36c7,0x36d2,0x36db,0x36e6,0x36ff,0x3708,0x3717,0x3722,0x372b,0x3736,0x373f, +0x3746,0x374f,0x375a,0x3763,0x377c,0x3785,0x3792,0x379d,0x37ae,0x37b9,0x37ce,0x37e5,0x37ee,0x37f7,0x3810,0x381b, +0x3824,0x382d,0x3844,0x3861,0x386c,0x387d,0x3888,0x388f,0x389c,0x38a9,0x38d6,0x38eb,0x38f4,0x390f,0x3932,0x3953, +0x3974,0x3999,0x39c0,0x39e1,0x3a04,0x3a25,0x3a4c,0x3a6d,0x3a92,0x3ab1,0x3ad0,0x3aef,0x3b0c,0x3b2d,0x3b4e,0x3b71, +0x3b96,0x3bb5,0x3bd4,0x3bf5,0x3c1c,0x3c41,0x3c60,0x3c81,0x3ca4,0x3cbf,0x3cd8,0x3cf3,0x3d0c,0x3d29,0x3d44,0x3d61, +0x3d80,0x3d9d,0x3dba,0x3dd9,0x3df6,0x3e11,0x3e2e,0x3e4b,0x3e7e,0x3ea5,0x3eb8,0x25fb,1,0,6,0x3ee6, +0x3ef5,0x3f05,0x3f15,0x3f25,0x3f36,0x2659,1,0,0x2b,0x3f54,0x3f60,0x3f6e,0x3f7d,0x3f8c,0x3f9c,0x3fad, +0x3fc1,0x3fd6,0x3fec,0x3fff,0x4013,0x4023,0x402c,0x4037,0x4047,0x4063,0x4075,0x4083,0x4092,0x409e,0x40b3,0x40c7, +0x40da,0x40e8,0x40fc,0x410a,0x4114,0x4126,0x4132,0x4140,0x4150,0x4157,0x415e,0x4165,0x416c,0x4173,0x4189,0x41aa, +0x870,0x41bc,0x41c7,0x41d6,0x28b2,1,0,4,0x41f0,0x41fb,0x4207,0x4211,0x28d8,1,0,0xc6, +0x4228,0x4235,0x424a,0x4257,0x4266,0x4274,0x4283,0x4292,0x42a4,0x42b3,0x42c1,0x42d2,0x42e1,0x42f0,0x42fd,0x4309, +0x4318,0x4327,0x4331,0x433e,0x434b,0x435a,0x4368,0x4377,0x4383,0x438d,0x4399,0x43a9,0x43b9,0x43c7,0x43d3,0x43e4, +0x43f0,0x43fc,0x440a,0x4417,0x4423,0x4430,0xe2f,0x443d,0x444b,0x4465,0x446e,0x447c,0x448a,0x4496,0x44a5,0x44b3, +0x44c1,0x44cd,0x44dc,0x44ea,0x44f8,0x4505,0x4514,0x452f,0x453e,0x454f,0x4560,0x4573,0x4585,0x4594,0x45a6,0x45b5, +0x45c1,0x45cc,0x1f3f,0x45d9,0x45e4,0x45ef,0x45fa,0x4605,0x4620,0x462b,0x4636,0x4641,0x4654,0x4668,0x4673,0x4682, +0x4691,0x469c,0x46a7,0x46b4,0x46c3,0x46d1,0x46dc,0x46f7,0x4701,0x4712,0x4723,0x4732,0x4743,0x474e,0x4759,0x4764, +0x476f,0x477a,0x4785,0x4790,0x479a,0x47a5,0x47b5,0x47c0,0x47ce,0x47db,0x47e6,0x47f5,0x4802,0x480f,0x481e,0x482b, +0x483c,0x484e,0x485e,0x4869,0x487c,0x4893,0x48a1,0x48ae,0x48b9,0x48c6,0x48d7,0x48f3,0x4909,0x4914,0x4931,0x4941, +0x4950,0x495b,0x4966,0x2059,0x4972,0x497d,0x4995,0x49a5,0x49b4,0x49c2,0x49d0,0x49db,0x49e6,0x49fa,0x4a11,0x4a29, +0x4a39,0x4a49,0x4a59,0x4a6b,0x4a76,0x4a81,0x4a8b,0x4a97,0x4aa5,0x4ab8,0x4ac4,0x4ad1,0x4adc,0x4af8,0x4b05,0x4b13, +0x4b2c,0x2959,0x4b3b,0x277a,0x4b48,0x4b56,0x4b68,0x4b76,0x4b82,0x4b92,0x2b94,0x4ba0,0x4bac,0x4bb7,0x4bc2,0x4bcd, +0x4be1,0x4bef,0x4c06,0x4c12,0x4c26,0x4c34,0x4c46,0x4c5c,0x4c6a,0x4c7c,0x4c8a,0x4ca7,0x4cb9,0x4cc6,0x4cd7,0x4ce9, +0x4d03,0x4d10,0x4d23,0x4d34,0x3111,0x4d41,0x331b,1,0,6,0x4d6a,0x4d7d,0x4d8d,0x4d9b,0x4dac,0x4dbc, +0x3377,0x12,0,1,0x4de6,0x4dec,0x3384,0x12,0,1,0x4de6,0x4dec,0x3391,1,0,3, +0x4de6,0x4dec,0x4e25,0x33a7,1,0,3,0x4de6,0x4dec,0x4e25,0x33bd,1,0,0x12,0x4eaf,0x4eb9, +0x4ec5,0x4ecc,0x4ed7,0x4edc,0x4ee3,0x4eea,0x4ef3,0x4ef8,0x4efd,0x4f0d,0x870,0x41bc,0x4f19,0x41c7,0x4f29,0x41d6, +0x3466,1,0,0xf,0x4eaf,0x4f50,0x4f5a,0x4f64,0x4f6f,0x4092,0x4f79,0x4f85,0x4f8d,0x4f94,0x4f9e,0x4ec5, +0x4ecc,0x4edc,0x4fa8,0x34ed,1,0,0x17,0x4eaf,0x4fc5,0x4f64,0x4fd1,0x4fde,0x4fec,0x4092,0x4ff7,0x4ec5, +0x5008,0x4edc,0x5017,0x5025,0x870,0x41aa,0x5031,0x5042,0x41bc,0x4f19,0x41c7,0x4f29,0x41d6,0x5053,0x360a,1, +0,3,0x5086,0x508e,0x5096,0x3623,1,0,0x10,0x50bf,0x50c6,0x50d5,0x50f6,0x5119,0x5124,0x5143, +0x515a,0x5167,0x5170,0x518f,0x51c2,0x51dd,0x520c,0x5229,0x524e,0x36bc,1,0,0x24,0x529d,0x52aa,0x52bd, +0x52ca,0x52f7,0x531c,0x5331,0x5350,0x5371,0x539e,0x53d7,0x53fa,0x541d,0x544a,0x547f,0x54a6,0x54cf,0x5506,0x5535, +0x5556,0x557b,0x558a,0x55ad,0x55c4,0x55d1,0x55e0,0x55fd,0x5616,0x5639,0x565e,0x5677,0x568c,0x569b,0x56ac,0x56b9, +0x56da,0x388c,1,0,4,0x5718,0x5723,0x573b,0x5753,0x38c8,0x36,1,2,4,8,0xe, +0x10,0x20,0x3e,0x40,0x80,0x100,0x1c0,0x200,0x400,0x800,0xe00,0x1000,0x2000,0x4000,0x7000,0x8000, +0x10000,0x20000,0x40000,0x78001,0x80000,0x100000,0x200000,0x400000,0x800000,0x1000000,0x2000000,0x4000000,0x8000000,0xf000000,0x10000000,0x20000000, +0x30f80000,0x3362,0x3371,0x3386,0x339b,0x578c,0x33b0,0x33c4,0x5782,0x33d5,0x33e9,0x33fc,0x579d,0x340d,0x3426,0x3438, +0x57b4,0x3449,0x345d,0x3470,0x57dd,0x3488,0x349a,0x34a5,0x34b5,0x5779,0x34c3,0x34d8,0x34ed,0x3503,0x351d,0x3533, +0x3543,0x3557,0x356b,0x57d3,0x357c,0x3594,0x57be }; -const uint8_t PropNameData::bytesTries[14992]={ -0,0x15,0x6d,0xc3,0x78,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78, +const uint8_t PropNameData::bytesTries[15327]={ +0,0x15,0x6d,0xc3,0xc7,0x73,0xc2,0x12,0x76,0x7a,0x76,0x6a,0x77,0xa2,0x52,0x78, 1,0x64,0x50,0x69,0x10,0x64,1,0x63,0x30,0x73,0x62,0x13,0x74,0x61,0x72,0x74, 0x63,0x60,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x61,0x13,0x69,0x67,0x69,0x74, 0x81,3,0x61,0x2e,0x65,0x4c,0x6f,0xc3,0x18,0x73,0x69,0x1e,0x72,0x69,0x61,0x74, @@ -139,184 +139,195 @@ const uint8_t PropNameData::bytesTries[14992]={ 0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x11,0xd8,0x40,0xa,0x11,0x63, 0x63,0xc3,0x11,0x11,0x72,0x6d,0x58,0x1e,0x69,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63, 0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,0x1d,0x74,0x6c,0x65,0x63,0x61,0x73,0x65, -0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0x70,0x6e,0x76,0x70,0xa2, -0xf1,0x71,0xa4,0x43,0x72,2,0x61,0x28,0x65,0x32,0x69,0x9d,0x14,0x64,0x69,0x63, -0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69,0x63,0x61, -0x74,0x6f,0x72,0x9d,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3, -9,0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63, -0x74,0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65, -0x72,0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12, -0x79,0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64, -0xa2,0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75, -0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74, -0x6d,1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68, -0x65,0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1, -0x63,0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13, -0x6e,0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69, -0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8, -0x40,5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61, -0x72,0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,0x2a,0x69,0x11,0x6e,0x74, -0x7f,0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,0x6e,0x63,0x61,0x74,0x65, -0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,0x10,0x74,2,0x73,0x2c, -0x74,0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73, -0x38,0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e, -0x74,0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74, -0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xf8, -0x69,0xc1,0x3c,0x69,0xa2,0x6f,0x6a,0xa4,9,0x6c,4,0x62,0xc3,8,0x63,0x8c, -0x65,0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c, -0x13,0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40, -4,0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65, -0x70,0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61, -0x64,0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69, -0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72, -0x65,0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x5b,0x73,1,0x63,0xd9,0x40, -3,0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80, -0x65,0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e, -0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41, -0x44,0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45, -0x3e,0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72, -0x61,0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3,0x17, -0x11,0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63, -0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69, -0x6f,0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63, -0xc3,0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63, -0x4a,0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13, -0x72,0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66, -0x86,0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68, -0x65,0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65, -0x74,0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b, -0x10,0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69, -0x74,0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63, -0xa2,0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69, -0x6e,0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30, -0x65,0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62, -0x72,0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73, -0x65,0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0, -0x1c,0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5, -0x13,0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0x90,0x62,0xa2,0xbe,0x63,0xa4, -0x30,0x64,0xa4,0xfd,0x65,5,0x6d,0x63,0x6d,0x6e,0x70,0xa2,0x59,0x78,0x10,0x74, -0x30,1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64, -0x24,0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63, -0xa1,0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,2,0x63,0x40,0x6d,0x50,0x70, -0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f,0x6d, -0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x96, -0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e,0x63, -0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e,0x77, -0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68,0x4a, -0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74,0x23, -0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68,0x61, -0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,4,0x63,0xc3,0, -0x69,0x3e,0x6c,0xa2,0x57,0x6d,0xa2,0x64,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3, -0x15,0x11,0x64,0x69,2,0x63,0x54,0x6d,0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64, -0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8,0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3, -0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73, -0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72,0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e, -0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40,1,0x10,0x64,0x27,2,0x61,0x32,0x6b, -0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9,0x40, -1,6,0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b, -0x36,0x6c,0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91, -0x18,0x61,0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e, -0x7e,0x74,0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12, -0x61,0x73,0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f, -0x6c,0x64,0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87, -0x1c,0x66,0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18, -0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33, -0x61,0x2e,0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3, -0x64,0x83,0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65, -0x65,0x15,0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72, -0x61,0x62,0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d, -0x62,0x69,0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3, -2,3,0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29, -2,0x63,0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d, -0x1d,0x6f,0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3, -3,0x15,0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65, -0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63, -0x72,0x69,0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11, -0x65,0x73,0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12, -0x72,0x75,0x65,0x23,0xb,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69, -0x24,0x72,0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c, -0x61,0x79,0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74, -0x6e,3,0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74, -0x72,0x65,0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18, -0x6e,0x61,0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74, -0xa3,0xe0,0x64,0x45,0x64,0x4e,0x68,0x88,0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a, -0x74,0x61,0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,2,0x61,0xa3, -0xea,0x62,0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65, -0x6c,0x6f,0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0x12,0x61,0x6e,0x72, -0x2c,0x15,0x65,0x61,0x64,0x69,0x6e,0x67,0x2d,0x61,0xa2,0x7b,0x62,0xa2,0xd4,0x63, -0x11,0x63,0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39, -0x10,0x31,0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39, -0x47,0x30,0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67, -0x37,0xa3,0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81, -0x3a,2,0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53, -0x36,0x55,0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f, -0x34,0x51,6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31, -0x5f,0x32,0x61,0x10,0x34,0xa3,0x54,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72, -0xa3,0xe8,0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1, -0x61,0x3e,0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3, -0xc8,0x13,0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8, -0xa2,0xd6,0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65, -0xa2,0xe6,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66, -0x74,0xa3,0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c, -0x6f,0x77,0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12, -0x65,0x66,0x74,0xa3,0xda,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48, -0x77,1,0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33, -0x22,1,0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74, -0x74,0x6f,0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65, -0x72,0x72,0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d, -0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74, -0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53, -0x70,2,0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69, -0x6f,0x6e,0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d, -0x14,0x6f,0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73, -0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f, -0x28,0x73,0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61, -0x72,0x6b,0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72, -0x61,0x6c,0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72, -2,0x65,0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68, -0x74,0x20,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65, -0x39,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61, -0x74,0x65,0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65, -0x61,0x6e,2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74, -0x6f,0x72,0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61, -0x74,0x6f,0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73, -0x74,0x72,0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62, -0x84,0x63,1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69, -0x63,1,0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74, -0x65,0x72,0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e, -0x65,0x75,0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc8,0xc8,0x74,0xc1,0xee,0x77, -0x6a,0x77,0x48,0x79,0x70,0x7a,0x1d,0x61,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,0x73, -0x71,0x75,0x61,0x72,0x65,0xa5,0x18,0x10,0x61,1,0x6e,0x36,0x72,0x16,0x61,0x6e, -0x67,0x63,0x69,0x74,0x69,0xa3,0xfc,0x12,0x63,0x68,0x6f,0xa5,0x2c,1,0x65,0x88, -0x69,2,0x6a,0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73, -0xa3,0x48,0x12,0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61, -0x6d,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61, -0x6c,0x73,0xa3,0x49,0x13,0x7a,0x69,0x64,0x69,0xa5,0x34,0x74,0xa2,0x59,0x75,0xa4, -0x35,0x76,2,0x61,0x36,0x65,0x7a,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d, +0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,0xa,0x6d,0xa2,0x76,0x6e,0xa2,0x78, +0x70,0xa4,0x3e,0x71,0xa4,0x90,0x72,3,0x61,0x2c,0x65,0x36,0x67,0x54,0x69,0x9d, +0x14,0x64,0x69,0x63,0x61,0x6c,0x55,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e, +0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x9d,0x15,0x69,0x65,0x6d,0x6f,0x6a,0x69,0xa2, +0x47,3,0x66,0x44,0x6d,0x5c,0x74,0x7c,0x7a,0x19,0x77,0x6a,0x73,0x65,0x71,0x75, +0x65,0x6e,0x63,0x65,0xa3,0x46,0x1a,0x6c,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e, +0x63,0x65,0xa3,0x44,0x1e,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,0x65,0x71,0x75, +0x65,0x6e,0x63,0x65,0xa3,0x43,0x19,0x61,0x67,0x73,0x65,0x71,0x75,0x65,0x6e,0x63, +0x65,0xa3,0x45,0x12,0x61,0x74,0x68,0x4f,6,0x6f,0x39,0x6f,0x32,0x74,0xc3,9, +0x75,0x54,0x76,0xd9,0x30,0,0x12,0x6e,0x63,0x68,0x1f,0x61,0x72,0x61,0x63,0x74, +0x65,0x72,0x63,0x6f,0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x51,0x14,0x6d,0x65,0x72, +0x69,0x63,1,0x74,0x32,0x76,0x13,0x61,0x6c,0x75,0x65,0xd9,0x30,0,0x12,0x79, +0x70,0x65,0xc3,9,0x61,0xa2,0x77,0x63,0xa2,0x82,0x66,2,0x63,0x98,0x64,0xa2, +0x53,0x6b,1,0x63,0x56,0x64,1,0x69,0x42,0x71,1,0x63,0xc3,0xd,0x75,0x17, +0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xd,0x13,0x6e,0x65,0x72,0x74,0x6d, +1,0x69,0x42,0x71,1,0x63,0xc3,0xf,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65, +0x63,0x6b,0xc3,0xf,0x13,0x6e,0x65,0x72,0x74,0x71,1,0x69,0x42,0x71,1,0x63, +0xc3,0xe,0x75,0x17,0x69,0x63,0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xe,0x13,0x6e, +0x65,0x72,0x74,0x6f,1,0x69,0x42,0x71,1,0x63,0xc3,0xc,0x75,0x17,0x69,0x63, +0x6b,0x63,0x68,0x65,0x63,0x6b,0xc3,0xc,0x13,0x6e,0x65,0x72,0x74,0x6b,0xd8,0x40, +5,1,0x31,0xd9,0x40,0xb,0x6d,0x10,0x65,0xd9,0x40,5,0x12,0x68,0x61,0x72, +0x51,2,0x61,0x6c,0x63,0xa2,0x4c,0x72,1,0x65,0x2a,0x69,0x11,0x6e,0x74,0x7f, +0x16,0x70,0x65,0x6e,0x64,0x65,0x64,0x63,0x1f,0x6f,0x6e,0x63,0x61,0x74,0x65,0x6e, +0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x9f,0x10,0x74,2,0x73,0x2c,0x74, +0x30,0x77,0x10,0x73,0x77,0x11,0x79,0x6e,0x75,0x12,0x65,0x72,0x6e,1,0x73,0x38, +0x77,0x18,0x68,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x77,0x14,0x79,0x6e,0x74, +0x61,0x78,0x75,0x10,0x6d,0x9f,1,0x6d,0x3c,0x75,0x1a,0x6f,0x74,0x61,0x74,0x69, +0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x53,0x12,0x61,0x72,0x6b,0x53,0x66,0xc1,0xf8,0x69, +0xc1,0x3c,0x69,0xa2,0x6f,0x6a,0xa4,9,0x6c,4,0x62,0xc3,8,0x63,0x8c,0x65, +0x98,0x69,0xa2,0x56,0x6f,2,0x65,0x4b,0x67,0x4c,0x77,0x11,0x65,0x72,0x4c,0x13, +0x63,0x61,0x73,0x65,0x4c,0x16,0x6d,0x61,0x70,0x70,0x69,0x6e,0x67,0xd9,0x40,4, +0x11,0x69,0x63,0x1f,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x65,0x78,0x63,0x65,0x70, +0x74,0x69,0x6f,0x6e,0x4b,0xd8,0x40,4,0x11,0x63,0x63,0xc3,0x10,0x18,0x61,0x64, +0x63,0x61,0x6e,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69,0x6e, +0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,0x10,0x16,0x6e,0x65,0x62,0x72,0x65, +0x61,0x6b,0xc3,8,2,0x64,0x4a,0x6e,0xa2,0x5b,0x73,1,0x63,0xd9,0x40,3, +0x6f,0x16,0x63,0x6f,0x6d,0x6d,0x65,0x6e,0x74,0xd9,0x40,3,2,0x63,0x80,0x65, +0x90,0x73,0x40,1,0x62,0x52,0x74,0x46,1,0x61,0x40,0x72,0x1c,0x69,0x6e,0x61, +0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x47,0x11,0x72,0x74,0x41,0x44, +0x1c,0x69,0x6e,0x61,0x72,0x79,0x6f,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x45,0x3e, +0x16,0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3f,0x10,0x6f,0x42,0x16,0x67,0x72,0x61, +0x70,0x68,0x69,0x63,0x43,2,0x64,0x2e,0x70,0x86,0x73,0x10,0x63,0xc3,0x17,0x11, +0x69,0x63,1,0x70,0x46,0x73,0x1e,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x63,0x61, +0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x17,0x10,0x6f,0x1f,0x73,0x69,0x74,0x69,0x6f, +0x6e,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc3,0x16,0x10,0x63,0xc3, +0x16,2,0x67,0xc3,6,0x6f,0x26,0x74,0xc3,7,0x11,0x69,0x6e,1,0x63,0x4a, +0x69,0x11,0x6e,0x67,1,0x67,0x2e,0x74,0x12,0x79,0x70,0x65,0xc3,7,0x13,0x72, +0x6f,0x75,0x70,0xc3,6,0x48,0x15,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x49,0x66,0x86, +0x67,0xa2,0x4a,0x68,3,0x61,0x36,0x65,0x58,0x73,0x68,0x79,0x13,0x70,0x68,0x65, +0x6e,0x3d,0x1f,0x6e,0x67,0x75,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x74, +0x79,0x70,0x65,0xc3,0xb,0x10,0x78,0x3a,0x14,0x64,0x69,0x67,0x69,0x74,0x3b,0x10, +0x74,0xc3,0xb,0x16,0x75,0x6c,0x6c,0x63,0x6f,0x6d,0x70,0x1f,0x6f,0x73,0x69,0x74, +0x69,0x6f,0x6e,0x65,0x78,0x63,0x6c,0x75,0x73,0x69,0x6f,0x6e,0x33,2,0x63,0xa2, +0x44,0x65,0xa2,0x4b,0x72,3,0x61,0x34,0x62,0x84,0x65,0x8a,0x6c,0x12,0x69,0x6e, +0x6b,0x39,0x11,0x70,0x68,0x7c,0x12,0x65,0x6d,0x65,3,0x62,0x5e,0x63,0x30,0x65, +0x48,0x6c,0x12,0x69,0x6e,0x6b,0x39,0x1a,0x6c,0x75,0x73,0x74,0x65,0x72,0x62,0x72, +0x65,0x61,0x6b,0xc3,0x12,0x14,0x78,0x74,0x65,0x6e,0x64,0x37,0x12,0x61,0x73,0x65, +0x35,0x11,0x78,0x74,0x37,0xc2,5,1,0x62,0xc3,0x12,0x6d,0xd9,0x20,0,0x1c, +0x6e,0x65,0x72,0x61,0x6c,0x63,0x61,0x74,0x65,0x67,0x6f,0x72,0x79,0xc2,5,0x13, +0x6d,0x61,0x73,0x6b,0xd9,0x20,0,0x61,0xa2,0xa2,0x62,0xa2,0xd0,0x63,0xa4,0x4f, +0x64,0xa6,0x1c,0x65,5,0x6d,0x75,0x6d,0x6e,0x70,0xa2,0x6b,0x78,0x10,0x74,0x30, +1,0x65,0x2c,0x70,0x12,0x69,0x63,0x74,0xa1,0x12,0x6e,0x64,0x65,1,0x64,0x24, +0x72,0x31,0x1b,0x70,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0xa1, +0x10,0x6f,1,0x64,0x97,0x6a,0x10,0x69,0x92,3,0x63,0x44,0x6b,0x54,0x6d,0x70, +0x70,0x1a,0x72,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x95,0x17,0x6f, +0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x9b,0x1c,0x65,0x79,0x63,0x61,0x70,0x73,0x65, +0x71,0x75,0x65,0x6e,0x63,0x65,0xa3,0x42,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72, +0x96,0x13,0x62,0x61,0x73,0x65,0x99,0x12,0x72,0x65,0x73,0x95,0x61,0x30,0x62,0x4e, +0x63,0x12,0x6f,0x6d,0x70,0x9b,0xc2,4,0x1b,0x73,0x74,0x61,0x73,0x69,0x61,0x6e, +0x77,0x69,0x64,0x74,0x68,0xc3,4,0x12,0x61,0x73,0x65,0x99,3,0x67,0x44,0x68, +0x4a,0x6c,0x4e,0x73,0x1a,0x63,0x69,0x69,0x68,0x65,0x78,0x64,0x69,0x67,0x69,0x74, +0x23,0x10,0x65,0xd9,0x40,0,0x11,0x65,0x78,0x23,1,0x6e,0x38,0x70,0x11,0x68, +0x61,0x20,0x14,0x62,0x65,0x74,0x69,0x63,0x21,0x11,0x75,0x6d,0x79,5,0x6c,0x22, +0x6c,0x36,0x6d,0x52,0x70,1,0x62,0xd9,0x40,0xd,0x74,0xc3,0x15,2,0x61,0x32, +0x6b,0xc3,1,0x6f,0x11,0x63,0x6b,0xc3,1,0x11,0x6e,0x6b,0x7b,0x10,0x67,0xd9, +0x40,1,0x61,0xa2,0x4f,0x63,0xc3,0,0x69,0x11,0x64,0x69,2,0x63,0x54,0x6d, +0x74,0x70,0x1b,0x61,0x69,0x72,0x65,0x64,0x62,0x72,0x61,0x63,0x6b,0x65,0x74,0xd8, +0x40,0xd,0x13,0x74,0x79,0x70,0x65,0xc3,0x15,0x24,1,0x6c,0x30,0x6f,0x14,0x6e, +0x74,0x72,0x6f,0x6c,0x25,0x12,0x61,0x73,0x73,0xc3,0,0x26,0x14,0x69,0x72,0x72, +0x6f,0x72,1,0x65,0x38,0x69,0x16,0x6e,0x67,0x67,0x6c,0x79,0x70,0x68,0xd9,0x40, +1,0x10,0x64,0x27,0x17,0x73,0x69,0x63,0x65,0x6d,0x6f,0x6a,0x69,0xa3,0x41,6, +0x68,0x7c,0x68,0x54,0x69,0x85,0x6f,0xa2,0x6f,0x77,4,0x63,0x30,0x6b,0x36,0x6c, +0x87,0x74,0x8b,0x75,0x89,1,0x66,0x8d,0x6d,0x8f,0x11,0x63,0x66,0x91,0x18,0x61, +0x6e,0x67,0x65,0x73,0x77,0x68,0x65,0x6e,4,0x63,0x44,0x6c,0x6c,0x6e,0x7e,0x74, +0x98,0x75,0x18,0x70,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x89,0x12,0x61,0x73, +0x65,1,0x66,0x30,0x6d,0x14,0x61,0x70,0x70,0x65,0x64,0x8f,0x14,0x6f,0x6c,0x64, +0x65,0x64,0x8d,0x18,0x6f,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x64,0x87,0x1c,0x66, +0x6b,0x63,0x63,0x61,0x73,0x65,0x66,0x6f,0x6c,0x64,0x65,0x64,0x91,0x18,0x69,0x74, +0x6c,0x65,0x63,0x61,0x73,0x65,0x64,0x8b,0x13,0x6d,0x70,0x65,0x78,0x33,0x61,0x2e, +0x63,0xa2,0x48,0x66,0xd9,0x40,2,1,0x6e,0x72,0x73,0x10,0x65,3,0x64,0x83, +0x66,0x3a,0x69,0x4a,0x73,0x17,0x65,0x6e,0x73,0x69,0x74,0x69,0x76,0x65,0x65,0x15, +0x6f,0x6c,0x64,0x69,0x6e,0x67,0xd9,0x40,2,0x17,0x67,0x6e,0x6f,0x72,0x61,0x62, +0x6c,0x65,0x85,0x13,0x6f,0x6e,0x69,0x63,0x1f,0x61,0x6c,0x63,0x6f,0x6d,0x62,0x69, +0x6e,0x69,0x6e,0x67,0x63,0x6c,0x61,0x73,0x73,0xc3,2,0x10,0x63,0xc3,2,3, +0x61,0x30,0x65,0x34,0x69,0xa2,0x41,0x74,0xc3,3,0x11,0x73,0x68,0x29,2,0x63, +0x3a,0x66,0x58,0x70,0x2c,0x16,0x72,0x65,0x63,0x61,0x74,0x65,0x64,0x2d,0x1d,0x6f, +0x6d,0x70,0x6f,0x73,0x69,0x74,0x69,0x6f,0x6e,0x74,0x79,0x70,0x65,0xc3,3,0x15, +0x61,0x75,0x6c,0x74,0x69,0x67,0x1f,0x6e,0x6f,0x72,0x61,0x62,0x6c,0x65,0x63,0x6f, +0x64,0x65,0x70,0x6f,0x69,0x6e,0x74,0x2b,0x2a,0x10,0x61,0x2e,0x15,0x63,0x72,0x69, +0x74,0x69,0x63,0x2f,3,0x66,0x34,0x6e,0x3e,0x74,0x42,0x79,0x22,0x11,0x65,0x73, +0x23,0x20,0x13,0x61,0x6c,0x73,0x65,0x21,0x20,0x10,0x6f,0x21,0x22,0x12,0x72,0x75, +0x65,0x23,0xb,0x6b,0x5b,0x6f,0x23,0x6f,0x3c,0x72,0x4c,0x76,1,0x69,0x24,0x72, +0x33,0x13,0x72,0x61,0x6d,0x61,0x33,0x10,0x76,0x22,0x14,0x65,0x72,0x6c,0x61,0x79, +0x23,0xa2,0xe2,0x13,0x69,0x67,0x68,0x74,0xa3,0xe2,0x6b,0x58,0x6c,0x74,0x6e,3, +0x6b,0x2f,0x6f,0x30,0x72,0x21,0x75,0x12,0x6b,0x74,0x61,0x2f,0x19,0x74,0x72,0x65, +0x6f,0x72,0x64,0x65,0x72,0x65,0x64,0x21,1,0x61,0x24,0x76,0x31,0x18,0x6e,0x61, +0x76,0x6f,0x69,0x63,0x69,0x6e,0x67,0x31,0xa2,0xe0,0x12,0x65,0x66,0x74,0xa3,0xe0, +0x64,0x45,0x64,0x4e,0x68,0x88,0x69,1,0x6f,0x26,0x73,0xa3,0xf0,0x1a,0x74,0x61, +0x73,0x75,0x62,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xf0,2,0x61,0xa3,0xea,0x62, +0xa3,0xe9,0x6f,0x13,0x75,0x62,0x6c,0x65,1,0x61,0x30,0x62,0x13,0x65,0x6c,0x6f, +0x77,0xa3,0xe9,0x13,0x62,0x6f,0x76,0x65,0xa3,0xea,0x12,0x61,0x6e,0x72,0x2c,0x15, +0x65,0x61,0x64,0x69,0x6e,0x67,0x2d,0x61,0xa2,0x7b,0x62,0xa2,0xd4,0x63,0x11,0x63, +0x63,4,0x31,0x3c,0x32,0xa2,0x42,0x33,0xa2,0x56,0x38,0xa2,0x64,0x39,0x10,0x31, +0xa3,0x5b,9,0x35,0xa,0x35,0x3f,0x36,0x41,0x37,0x43,0x38,0x45,0x39,0x47,0x30, +0x30,0x31,0x3c,0x32,0x42,0x33,0x4e,0x34,0x3d,0x34,1,0x33,0xa3,0x67,0x37,0xa3, +0x6b,0x36,0x10,0x38,0xa3,0x76,0x38,1,0x32,0xa3,0x7a,0x39,0xa3,0x81,0x3a,2, +0x30,0xa3,0x82,0x32,0xa3,0x84,0x33,0xa3,0x85,9,0x35,0xa,0x35,0x53,0x36,0x55, +0x37,0x57,0x38,0x59,0x39,0x5b,0x30,0x49,0x31,0x4b,0x32,0x4d,0x33,0x4f,0x34,0x51, +6,0x33,8,0x33,0x63,0x34,0x65,0x35,0x67,0x36,0x69,0x30,0x5d,0x31,0x5f,0x32, +0x61,0x10,0x34,0xa3,0x54,0xa2,0xe6,3,0x62,0xa0,0x6c,0xa3,0xe4,0x72,0xa3,0xe8, +0x74,2,0x61,0x74,0x62,0x7c,0x74,0x14,0x61,0x63,0x68,0x65,0x64,1,0x61,0x3e, +0x62,0x13,0x65,0x6c,0x6f,0x77,0xa2,0xca,0x13,0x6c,0x65,0x66,0x74,0xa3,0xc8,0x13, +0x62,0x6f,0x76,0x65,0xa2,0xd6,0x14,0x72,0x69,0x67,0x68,0x74,0xa3,0xd8,0xa2,0xd6, +0x10,0x72,0xa3,0xd8,0xa2,0xca,0x10,0x6c,0xa3,0xc8,0x12,0x6f,0x76,0x65,0xa2,0xe6, +1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xe8,0x12,0x65,0x66,0x74,0xa3, +0xe4,0xa2,0xdc,2,0x65,0x2c,0x6c,0xa3,0xda,0x72,0xa3,0xde,0x12,0x6c,0x6f,0x77, +0xa2,0xdc,1,0x6c,0x30,0x72,0x13,0x69,0x67,0x68,0x74,0xa3,0xde,0x12,0x65,0x66, +0x74,0xa3,0xda,0xb,0x6e,0xc0,0xca,0x72,0x5f,0x72,0x46,0x73,0xa2,0x48,0x77,1, +0x68,0x24,0x73,0x33,0x17,0x69,0x74,0x65,0x73,0x70,0x61,0x63,0x65,0x33,0x22,1, +0x69,0x30,0x6c,2,0x65,0x3d,0x69,0x4b,0x6f,0x3f,0x18,0x67,0x68,0x74,0x74,0x6f, +0x6c,0x65,0x66,0x74,0x22,2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72, +0x69,0x64,0x65,0x3f,0x17,0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x3d,0x15,0x73, +0x6f,0x6c,0x61,0x74,0x65,0x4b,0x30,0x1e,0x65,0x67,0x6d,0x65,0x6e,0x74,0x73,0x65, +0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x31,0x6e,0xa2,0x41,0x6f,0xa2,0x53,0x70,2, +0x61,0x66,0x64,0x86,0x6f,0x1b,0x70,0x64,0x69,0x72,0x65,0x63,0x74,0x69,0x6f,0x6e, +0x61,0x6c,1,0x66,0x32,0x69,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65,0x4d,0x14,0x6f, +0x72,0x6d,0x61,0x74,0x41,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0x2f,1,0x66,0x41,0x69,0x4d,1,0x6f,0x28,0x73, +0x10,0x6d,0x43,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b, +0x43,1,0x6e,0x35,0x74,0x19,0x68,0x65,0x72,0x6e,0x65,0x75,0x74,0x72,0x61,0x6c, +0x35,0x65,0x88,0x65,0x98,0x66,0xa2,0x6a,0x6c,0x20,1,0x65,0x30,0x72,2,0x65, +0x37,0x69,0x49,0x6f,0x39,0x18,0x66,0x74,0x74,0x6f,0x72,0x69,0x67,0x68,0x74,0x20, +2,0x65,0x38,0x69,0x48,0x6f,0x16,0x76,0x65,0x72,0x72,0x69,0x64,0x65,0x39,0x17, +0x6d,0x62,0x65,0x64,0x64,0x69,0x6e,0x67,0x37,0x15,0x73,0x6f,0x6c,0x61,0x74,0x65, +0x49,3,0x6e,0x25,0x73,0x27,0x74,0x29,0x75,0x15,0x72,0x6f,0x70,0x65,0x61,0x6e, +2,0x6e,0x3c,0x73,0x46,0x74,0x18,0x65,0x72,0x6d,0x69,0x6e,0x61,0x74,0x6f,0x72, +0x29,0x14,0x75,0x6d,0x62,0x65,0x72,0x25,0x17,0x65,0x70,0x61,0x72,0x61,0x74,0x6f, +0x72,0x27,1,0x69,0x28,0x73,0x10,0x69,0x47,0x1f,0x72,0x73,0x74,0x73,0x74,0x72, +0x6f,0x6e,0x67,0x69,0x73,0x6f,0x6c,0x61,0x74,0x65,0x47,0x61,0x4e,0x62,0x84,0x63, +1,0x6f,0x24,0x73,0x2d,0x1c,0x6d,0x6d,0x6f,0x6e,0x73,0x65,0x70,0x61,0x72,0x61, +0x74,0x6f,0x72,0x2d,2,0x6c,0x3b,0x6e,0x2b,0x72,0x13,0x61,0x62,0x69,0x63,1, +0x6c,0x30,0x6e,0x14,0x75,0x6d,0x62,0x65,0x72,0x2b,0x14,0x65,0x74,0x74,0x65,0x72, +0x3b,0x2e,1,0x6e,0x45,0x6f,0x1c,0x75,0x6e,0x64,0x61,0x72,0x79,0x6e,0x65,0x75, +0x74,0x72,0x61,0x6c,0x45,0,0x16,0x6d,0xc9,0x14,0x74,0xc2,0x30,0x77,0x89,0x77, +0x86,0x79,0xa2,0x46,0x7a,1,0x61,0x58,0x6e,0x1a,0x61,0x6d,0x65,0x6e,0x6e,0x79, +0x6d,0x75,0x73,0x69,0x63,0xa4,0x40,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69, +0x6f,0x6e,0xa5,0x40,0x1c,0x6e,0x61,0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61, +0x72,0x65,0xa5,0x18,0x10,0x61,1,0x6e,0x36,0x72,0x16,0x61,0x6e,0x67,0x63,0x69, +0x74,0x69,0xa3,0xfc,0x12,0x63,0x68,0x6f,0xa5,0x2c,1,0x65,0x88,0x69,2,0x6a, +0x3c,0x72,0x68,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x48,0x12, +0x69,0x6e,0x67,0xa2,0x74,0x1e,0x68,0x65,0x78,0x61,0x67,0x72,0x61,0x6d,0x73,0x79, +0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x74,0x16,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0xa3, +0x49,0x13,0x7a,0x69,0x64,0x69,0xa5,0x34,0x74,0xa2,0x65,0x75,0xa4,0x4f,0x76,3, +0x61,0x3c,0x65,0x80,0x69,0xa2,0x50,0x73,0xa2,0x6c,0x12,0x73,0x75,0x70,0xa3,0x7d, 1,0x69,0xa3,0x9f,0x72,0x1e,0x69,0x61,0x74,0x69,0x6f,0x6e,0x73,0x65,0x6c,0x65, 0x63,0x74,0x6f,0x72,0x73,0xa2,0x6c,0x19,0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65, 0x6e,0x74,0xa3,0x7d,1,0x64,0x3c,0x72,0x19,0x74,0x69,0x63,0x61,0x6c,0x66,0x6f, 0x72,0x6d,0x73,0xa3,0x91,0x14,0x69,0x63,0x65,0x78,0x74,0xa2,0xaf,0x16,0x65,0x6e, -0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,4,0x61,0x68,0x65,0xa2,0xad,0x68,0xa2,0xb0, -0x69,0xa2,0xb8,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74,0x61,0x6e,0x64,0x6d, -0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xcf,4,0x67, -0x7e,0x69,0xa2,0x41,0x6b,0xa2,0x6a,0x6d,0xa2,0x6c,0x6e,0x12,0x67,0x75,0x74,0xa4, -0x10,1,0x63,0x40,0x73,0x11,0x75,0x70,0xa4,0x33,0x16,0x70,0x6c,0x65,0x6d,0x65, -0x6e,0x74,0xa5,0x33,0x18,0x6f,0x6d,0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11, -2,0x61,0x2a,0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61, -0x6e,0x77,0x61,0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61, -0x6e,0x6a,0x69,0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3, -0x7c,0x10,0x65,0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3, -0xb7,0x11,0x72,0x69,0xa3,0xdc,0x11,0x69,0x6c,0x48,0x12,0x73,0x75,0x70,0xa4,0x2b, -0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x2b,0x13,0x6c,0x75,0x67,0x75,0x4b, -0x10,0x61,1,0x61,0x24,0x69,0x53,0x11,0x6e,0x61,0x3d,2,0x62,0x34,0x66,0x3c, -0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13,0x65,0x74,0x61,0x6e,0x57,0x14,0x69, -0x6e,0x61,0x67,0x68,0xa3,0x90,2,0x63,0x82,0x67,0x92,0x6e,0x1f,0x69,0x66,0x69, -0x65,0x64,0x63,0x61,0x6e,0x61,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69, -0x67,0x69,0x6e,0x61,0x6c,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17, -0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xad,0x11,0x61,0x73,0x62,0x12,0x65, -0x78,0x74,0xa3,0xad,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc3,0x4b, +0x73,0x69,0x6f,0x6e,0x73,0xa3,0xaf,0x15,0x74,0x68,0x6b,0x75,0x71,0x69,0xa5,0x3f, +5,0x69,0x3f,0x69,0x5a,0x6f,0x8c,0x72,0x1c,0x61,0x6e,0x73,0x70,0x6f,0x72,0x74, +0x61,0x6e,0x64,0x6d,0x61,0x70,0xa2,0xcf,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73, +0xa3,0xcf,2,0x62,0x34,0x66,0x3c,0x72,0x13,0x68,0x75,0x74,0x61,0xa3,0xfb,0x13, +0x65,0x74,0x61,0x6e,0x57,0x14,0x69,0x6e,0x61,0x67,0x68,0xa3,0x90,0x11,0x74,0x6f, +0xa5,0x3d,0x61,0x3e,0x65,0xa2,0xa0,0x68,0x10,0x61,1,0x61,0x24,0x69,0x53,0x11, +0x6e,0x61,0x3d,4,0x67,0x8e,0x69,0xa2,0x49,0x6b,0xa2,0x72,0x6d,0xa2,0x74,0x6e, +0x10,0x67,1,0x73,0x68,0x75,0x10,0x74,0xa4,0x10,1,0x63,0x40,0x73,0x11,0x75, +0x70,0xa4,0x33,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x33,0x18,0x6f,0x6d, +0x70,0x6f,0x6e,0x65,0x6e,0x74,0x73,0xa5,0x11,0x10,0x61,0xa5,0x3c,2,0x61,0x2a, +0x62,0x32,0x73,0xa3,0x60,0x12,0x6c,0x6f,0x67,0xa3,0x62,0x13,0x61,0x6e,0x77,0x61, +0xa3,0x65,3,0x6c,0x52,0x74,0x56,0x76,0x5e,0x78,0x16,0x75,0x61,0x6e,0x6a,0x69, +0x6e,0x67,0xa2,0x7c,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x7c,0x10,0x65, +0xa3,0x70,0x12,0x68,0x61,0x6d,0xa3,0xae,0x12,0x69,0x65,0x74,0xa3,0xb7,0x11,0x72, +0x69,0xa3,0xdc,0x11,0x69,0x6c,0x48,0x12,0x73,0x75,0x70,0xa4,0x2b,0x16,0x70,0x6c, +0x65,0x6d,0x65,0x6e,0x74,0xa5,0x2b,0x13,0x6c,0x75,0x67,0x75,0x4b,2,0x63,0x8c, +0x67,0xa2,0x41,0x6e,0x1f,0x69,0x66,0x69,0x65,0x64,0x63,0x61,0x6e,0x61,0x64,0x69, +0x61,0x6e,0x61,0x62,0x6f,0x1f,0x72,0x69,0x67,0x69,0x6e,0x61,0x6c,0x73,0x79,0x6c, +0x6c,0x61,0x62,0x69,0x63,0x73,0x62,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64, +0xa2,0xad,0x10,0x61,0xa5,0x3e,0x11,0x61,0x73,0x62,0x12,0x65,0x78,0x74,0xa2,0xad, +0x10,0x61,0xa5,0x3e,0x15,0x61,0x72,0x69,0x74,0x69,0x63,0xa3,0x78,0x70,0xc3,0x4b, 0x70,0xa6,0x61,0x72,0xa8,0x1d,0x73,7,0x6f,0xc1,0xbe,0x6f,0xa2,0x69,0x70,0xa2, 0x85,0x75,0xa2,0xa4,0x79,2,0x6c,0x50,0x6d,0x62,0x72,0x12,0x69,0x61,0x63,0x3a, 0x12,0x73,0x75,0x70,0xa4,0x17,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x17, @@ -369,683 +380,693 @@ const uint8_t PropNameData::bytesTries[14992]={ 0x73,0x74,0x6f,0x73,0xa2,0xa6,0x13,0x64,0x69,0x73,0x63,0xa3,0xa6,0x12,0x73,0x70, 0x61,0xa3,0x96,1,0x65,0x5c,0x75,1,0x6d,0x2a,0x6e,0x11,0x69,0x63,0x67,0x10, 0x69,0xa2,0xc0,0x1d,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f, -0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xe6,0x6e,0xa8, -0x19,0x6f,6,0x70,0x63,0x70,0x56,0x72,0x8a,0x73,0xa2,0x4c,0x74,0x10,0x74,0x1f, +0x6c,0x73,0xa3,0xc0,0x13,0x6a,0x61,0x6e,0x67,0xa3,0xa3,0x6d,0xa2,0xf0,0x6e,0xa8, +0x23,0x6f,6,0x70,0x63,0x70,0x56,0x72,0x8a,0x73,0xa2,0x4c,0x74,0x10,0x74,0x1f, 0x6f,0x6d,0x61,0x6e,0x73,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73, 0xa5,0x28,0x18,0x74,0x69,0x63,0x61,0x6c,0x63,0x68,0x61,0x72,0x1f,0x61,0x63,0x74, 0x65,0x72,0x72,0x65,0x63,0x6f,0x67,0x6e,0x69,0x74,0x69,0x6f,0x6e,0x85,1,0x69, 0x46,0x6e,0x1e,0x61,0x6d,0x65,0x6e,0x74,0x61,0x6c,0x64,0x69,0x6e,0x67,0x62,0x61, 0x74,0x73,0xa3,0xf2,0x11,0x79,0x61,0x47,1,0x61,0x30,0x6d,0x13,0x61,0x6e,0x79, -0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x63,0xa2,0x71,0x67,0xa2,0x71,0x6c,1, -0x63,0xa2,0x62,0x64,5,0x70,0x38,0x70,0x36,0x73,0x56,0x74,0x14,0x75,0x72,0x6b, -0x69,0x63,0xa3,0xbf,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61,0x6e,0xa3, -0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61, -0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5,0x22,0x68, -0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e, -0xa3,0xf0,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61, -0x6c,0x69,0x63,0xa3,0x58,0x13,0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12, -0x68,0x61,0x6d,0x65,6,0x6f,0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79, -0x14,0x61,0x6e,0x6d,0x61,0x72,0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62, -0xa3,0xee,0x65,0x13,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1, -0x64,0x52,0x6e,0x15,0x67,0x6f,0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4, -0xd,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13, -0x66,0x69,0x65,0x72,1,0x6c,0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74, -0x65,0x72,0x73,0xa3,0x8a,0x15,0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3, -0xed,1,0x6c,0x44,0x73,0x11,0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d, -0x62,0x6f,0x6c,0x73,0xa3,0x5c,0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b, -0x65,0xa4,0x4c,0x69,1,0x61,0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2, -0x71,0x73,0x36,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79, -0x6d,0x62,0x6f,0x6c,0x73,0x8f,0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c, -0x6c,0x61,0x6e,0x65,0x6f,0x75,0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63, -0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74, -0x69,0x63,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62, -0xa3,0x69,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61, -0x3c,0x70,0x19,0x69,0x63,0x74,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14, -0x72,0x72,0x6f,0x77,0x73,0xa3,0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44, -0x73,0x4e,0x74,0x62,0x79,0x19,0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73, -0xa5,0x20,0x13,0x63,0x68,0x65,0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f, -0x6e,0x64,0x69,0xa5,0x14,0x10,0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65, -0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3, -0x5d,0x16,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65, -0x72,0x61,0x74,0x6f,0x72,0x73,0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d, -0x65,0x72,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b, -0x7e,0x6c,0x88,0x6e,1,0x64,0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3, -0xea,0x12,0x61,0x69,0x63,0xa3,0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2, -0xaa,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9, -0x13,0x61,0x73,0x61,0x72,0xa5,0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3, -0x64,0x6c,0x65,0x7e,0x6e,0xa2,0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63, -0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15, -0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69, -0x6e,0xa5,0x21,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65, -0x78,0x74,0xa2,0xd5,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64, -0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b,0x56,0x6f, -0x5a,0x75,0x64,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63, -0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92,0x14,0x62, -0x6c,0x6f,0x63,0x6b,0x21,1,0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62, -0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1, -0x61,0xa5,0xe,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0xa3,0x8b,1,0x62,0x38,0x6e, -0x17,0x64,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa5,0x26,0x15,0x61,0x74,0x61,0x65, -0x61,0x6e,0xa3,0xef,0x67,0xc4,0x32,0x6a,0xc1,0xb9,0x6a,0xa2,0xd5,0x6b,0xa2,0xee, -0x6c,4,0x61,0x54,0x65,0xa2,0x61,0x69,0xa2,0x78,0x6f,0xa2,0xb7,0x79,1,0x63, -0x2e,0x64,0x12,0x69,0x61,0x6e,0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f, -0x55,0x74,0x11,0x69,0x6e,1,0x31,0x82,0x65,0x11,0x78,0x74,4,0x61,0x5c,0x62, -0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,4, -0x61,0x36,0x62,0x29,0x63,0xa3,0x94,0x64,0xa3,0x95,0x65,0xa3,0xe7,0x26,0x18,0x64, -0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73,0x75,0x70,0x24,0x16, -0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74,0x1d,0x74,0x65,0x72, -0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79,0x12,0x63,0x68,0x61, -0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73,0x10,0x75,0xa2,0xb0,0x12,0x73,0x75,0x70, -0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x31,0x11,0x62,0x75,0xa3, -0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69,0x38,0x73,0x17,0x79, -0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65,0x6f,0x67,0x72,0x61, -0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73, -0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0xb5, -0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62,0xa3,0xb9,1,0x61, -0xa2,0x43,0x68,4,0x61,0x40,0x69,0x50,0x6d,0x6e,0x6f,0x86,0x75,0x15,0x64,0x61, -0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74,0x68,0x69,0xa3,0x89, -0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa5, -0x30,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x71,0x12, -0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2,0x51,0x79,0x13,0x61, -0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3,0x61,0x34,0x62,0x76, -0x67,0x7c,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2, -0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11,0x78,0x74,1,0x61, -0xa5,0x13,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa5,0x13,0x11,0x75,0x6e,0xa3,0x42, -0x11,0x78,0x69,0x96,0x17,0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61, -0x6b,0x61,0x6e,0x61,0x9e,1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74, -0x69,0x63,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78, -0x74,0xa3,0x6b,0x67,0xa2,0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c,0x6d,0xa2,0x55, -0x6e,0xa2,0x62,0x70,0x13,0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f, -0x6e,0x73,0x2b,1,0x63,0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63, -1,0x64,0x56,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e, -0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65, -0x73,0x63,0x72,0x1f,0x69,0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63, -0x74,0x65,0x72,0x73,0x99,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d, -0x61,0x69,0x63,0xa3,0xba,1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69, -0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e, -0xa3,0xbd,0x13,0x6c,0x61,0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1,0x6e,0x3e,0x73, -0x1a,0x69,0x79,0x61,0x71,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,0x1e,0x19,0x75, -0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,0x74,0x6c,0xa2, -0x82,0x6f,0xa2,0x9a,0x72,0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e,0x72,0x14,0x6d, -0x75,0x6b,0x68,0x69,0x43,0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c, -0x61,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f,1,0x6d,0x6e, -0x72,0x13,0x67,0x69,0x61,0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x87, -0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b,0x14, -0x65,0x6e,0x64,0x65,0x64,0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61, -0x70,0x65,0x73,0x8c,0x12,0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64, -0xa3,0xe3,0x1e,0x65,0x72,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, -0x6f,0x6e,0x71,0x17,0x61,0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73, -0x75,0x70,0xa4,0xa,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74, -0x68,0x69,0x63,0xa3,0x59,1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38, -0x65,0x11,0x78,0x74,0x6e,0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63, -0x6f,0x70,0x74,0x69,0x63,0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2, -0x48,0x65,0xa2,0xdf,0x69,1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d, -0x10,0x68,1,0x70,0x3a,0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73, -0xa3,0x4b,1,0x72,0x3c,0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65, -0x73,0xa3,0x4c,0x11,0x69,0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72, -0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12, -0x72,0x61,0x6e,0xa5,2,0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64, -0x74,0x68,0x61,0x1f,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66, -0x6f,0x72,0x6d,0x73,0xa3,0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72, -0x6d,0x73,0xa3,0x57,0x13,0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67,0x34,0x69,0xa2, -0x45,0x75,0x12,0x6e,0x6f,0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c, -0x6a,0x5e,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f, -0x6d,0x70,0x61,0x74,0x69,0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3, -0x41,0x12,0x61,0x6d,0x6f,0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1, -0x61,0xa3,0xb4,0x62,0xa3,0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79, -0x61,0xa5,0x1d,0x13,0x62,0x72,0x65,0x77,0x37,0x61,0xa4,5,0x62,0xa6,0x45,0x63, -0xa8,0x1a,0x64,0xac,0xb8,0x65,5,0x6d,0xa2,0x6d,0x86,0x6e,0x96,0x74,0x15,0x68, -0x69,0x6f,0x70,0x69,0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16, -0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,1,0x61, -0xa3,0xc8,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,0x10,0x61,0xa3,0xc8,0x16,0x6f, -0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65,0x64,2, -0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63, -0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xc4,0x16, -0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75,0x70,0xa3, -0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e, -0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65,0x72,0x73, -0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x4a,0x67,0x76,0x6c, -1,0x62,0x30,0x79,0x13,0x6d,0x61,0x69,0x63,0xa5,0x25,0x13,0x61,0x73,0x61,0x6e, -0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69,0x63,0x63, -0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x1f,0x79,0x70,0x74,0x69,0x61, -0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,1,0x66,0x26,0x73,0xa3, -0xc2,0x1c,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c,0x73,0xa5, -0x24,7,0x6e,0xc0,0xe5,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xd8,0x76,0x14,0x65, -0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e,0x74,1, -0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72,0x65,0x65, -0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f,0x13,0x75, -0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e, -0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67, -0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x71,0x72,0x12,0x6f, -0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x66,0x70,0xa2,0x43, -0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x80, -0x11,0x78,0x74,1,0x61,0xa3,0xd2,0x65,0x14,0x6e,0x64,0x65,0x64,0x61,0xa3,0xd2, -0x12,0x61,0x74,0x68,0xa2,0xd3,0x18,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61, -0x1f,0x6c,0x70,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c, -0x73,0xa3,0xd3,1,0x66,0x42,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69, -0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65, -0x6e,0x69,0x61,0x6e,0x35,0x12,0x63,0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68, -0xa2,0x4d,0x6c,1,0x63,0x62,0x70,0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70, -1,0x66,0xa3,0x50,0x72,0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e, -0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50,0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2, -0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5, -7,0x1a,0x67,0x65,0x61,0x6e,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11, -0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71,0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79, -0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e,0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18, -0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16, -0x64,0x72,0x61,0x77,0x69,0x6e,0x67,0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12, -0x65,0x78,0x74,0xa2,0x43,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1, -0x68,0x40,0x69,0x12,0x6c,0x6c,0x65,0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e, -0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9,1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64, -0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52, -0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c, -0x34,0x6d,0x40,0x73,0x66,0x74,0x11,0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73, -0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2,0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70, -0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61, -0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61,0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c, -0x69,0x41,0x16,0x61,0x69,0x6b,0x73,0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x4c, -0x6f,0xa2,0x55,0x75,0xa4,0x10,0x79,1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69, -0x63,0x32,1,0x65,0x4c,0x73,0x11,0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d, -0x65,0x6e,0x74,0xa2,0x61,0x12,0x61,0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3,0x61, -0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61, -0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5,9,0x1c,0x72,0x69,0x6f,0x74,0x73,0x79,0x6c, -0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d,0x5a,0x6e,0xa2,0x95,0x70,0xa2, -0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f,0x64,0xa2,0x9a,0x17,0x6e,0x75, -0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62,0x3a,0x6d,0xa2,0x5f,0x70,0x15, -0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69,0x6e,0x69,0x6e,0x67,2,0x64, -0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66,0x6f,0x72,0x73,0x79,0x6d,0x62, -0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x6d, -0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6,0x41,0x73,0x18,0x75,0x70,0x70, -0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78,0x74,0x65,0x6e,0x64,0x65,0x64, -0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b,0x73,0xa3,0x52,0x11,0x6f,0x6e, -0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d, -0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69,0x63,0x74,0x75,0x72,0x65,0x73, -0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70,0x61,0x63,0x74,0x6e,0x75,0x6d, -0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72,0x1b,0x72,0x65,0x6e,0x63,0x79, -0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa2, -0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2,0x99,0x1d,0x61,0x6e,0x64,0x70, -0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa3,0x99,0x61,0xa2,0xe1,0x68, -0xa4,0xb,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x8c,0x65,0xa2,0x80,0x72,0xa2,0x98, -0x73,0xa2,0xaa,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65,0x64,0x69,0x64,0x65,0x6f,0x67, -0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78,0x74,0x65,0x6e,0x73,0x69,0x6f, -0x6e,6,0x64,0x6b,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e, -0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66,0x96,0x69,1,0x62,0x44,0x64, -0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x12,0x73,0x75,0x70,0xa3, -0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1,0x66,0x54,0x69,0x18,0x64,0x65, -0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19,0x73,0x75,0x70,0x70,0x6c,0x65, -0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d,0x73,0xa3,0x53,0x11,0x78,0x74, -6,0x64,0xc,0x64,0xa3,0xd1,0x65,0xa5,0,0x66,0xa5,0x12,0x67,0xa5,0x2e,0x61, -0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,0x61,0x64,0x69,0x63,0x61,0x6c,0x73, -0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x95,1,0x74,0x50, -0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63, -0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72,0x6f,0x6b,0x65,0x73,0xa3,0x82, -2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73,0x69,0x61,0x6e,0x61,0x6c,0x62, -0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64,0x69,0x61,0x6e,0x73,0x79,0x6c, -0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61,0x6e,0xa3,0xa8,2,0x61,0x3a, -0x65,0x4c,0x6f,0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa5,0x2d,1,0x6b,0x26, -0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,1,0x72,0x38,0x73,0x17,0x73,0x73,0x79, -0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,0x6f,0x6b,0x65,0x65,0x60,0x12,0x73,0x75, -0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xff,3,0x65,0x3e, -0x69,0x7e,0x6f,0xa2,0x69,0x75,0x15,0x70,0x6c,0x6f,0x79,0x61,0x6e,0xa3,0xe1,1, -0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72,0x69,0x3e,0x12,0x65,0x78,0x74, -0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3,0x13,0x65,0x72,0x65,0x74,0xa3, -0x5a,2,0x61,0x3a,0x6e,0x82,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa5, -0x2f,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c,0x73,0x2e,2,0x65,0x30,0x66, -0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74,0xa3,0xe0,0x18,0x6f,0x72,0x73, -0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x14,0x67,0x62,0x61,0x74,0x73,0x91,1,0x67, -0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74,0x69,0x6c,0x65,0x73,0xa3,0xab, -0x11,0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a,0x6e,0x48,0x73,0x7a,0x76,0xa2, -0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64,0x32,0x12,0x69,0x61,0x6c,0x33, -2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e,0x10,0x65,0x21,0x13,0x72,0x65, -0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77,0x35,2,0x6d,0x38,0x71,0x46, -0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f,1,0x61,0x24,0x6c,0x39,0x11, -0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72,0x65,0x3b,0x12,0x65,0x72,0x74, -0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65,0x92,0x66,0x96,0x69,1,0x6e, -0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65,0x64,0x31,0x11,0x69,0x74,0x2e, -0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48,0x6f,0x10,0x6d,0x24,0x12,0x70, -0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69,0x63,0x61,0x6c,0x23,0x13,0x72, -0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69,0x3a,0x6f,0x44,0x72,0x10,0x61, -0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e,0x28,0x11,0x61,0x6c,0x29,0x11, -0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e,0x6e,0x70,0x77,0x2a,0x12,0x69, -0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x26,0x17, -0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24,0x17,0x61,0x6c,0x66,0x77,0x69, -0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14,0x75,0x74,0x72,0x61,0x6c,0x21, -0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0,0xfb,0x73,0x6d,0x73,0x3a,0x74, -0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d,0x73,0x39,5,0x6f,0x28,0x6f, -0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x45,0x11,0x61,0x63, -1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x31,0x18,0x73,0x65,0x70, -0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b,0x55,0x6d,0x51,0x1d,0x69,0x74, -0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x27,1,0x6e,0x40, -0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x23, -0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21,0x6e,0x8a,0x6f,0xa2,0x47,0x70, -8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72,0x24,0x73,0x49,0x17,0x69,0x76, -0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63,0x4d,0x64,0x47,0x65,0x4b,0x1f, -0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72, -0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e, -0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74,0x12,0x68,0x65,0x72,3,0x6c, -0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x57,0x14,0x65,0x74, -0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72,0x37,0x19,0x75,0x6e,0x63,0x74, -0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88,0x69,0xa2,0x4b,0x6c,0xa2,0x5c, -0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d,0x6f,0x15,0x64,0x69,0x66,0x69, -0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0x55,0x14,0x65,0x74, -0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x51,1,0x69, -0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e,0x61,0x6c,0x70,0x75,0x6e,0x63, -0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x59,6,0x6d,0x18,0x6d, -0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65, -0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69,0x3c,0x6c,0x25,0x19,0x74,0x74, -0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a,0x6e,0x65,0x73,0x65,0x70,0x61, -0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2,0x60,0x65,0x1b,0x6e,0x63,0x6c, -0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f,6,0x6e,0x39,0x6e,0x46,0x6f, -0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f, -0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10,0x6e,1,0x6e,0x2c,0x74,0x12, -0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70,0x75,0x6e,0x63,0x74,0x75, -0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41,0x6c,0x1d,0x6f,0x73,0x65,0x70, -0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4b,2,0x61,0x30,0x65,0x4a, -0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61, -0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65, -0x72,0x33,0,0x12,0x6d,0xc2,0x3f,0x73,0xa1,0x73,0x4e,0x74,0xa2,0x56,0x77,0xa2, -0x72,0x79,0xa2,0x73,0x7a,1,0x61,0x2c,0x68,0x12,0x61,0x69,0x6e,0x8b,0x11,0x69, -0x6e,0x85,5,0x74,0x22,0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77, +0x61,0xa3,0x7a,0x11,0x67,0x65,0xa5,0xf,0x63,0xa2,0x7b,0x67,0xa2,0x7b,0x6c,1, +0x63,0xa2,0x6c,0x64,6,0x70,0x42,0x70,0x3a,0x73,0x5a,0x74,0x88,0x75,0x14,0x79, +0x67,0x68,0x75,0x72,0xa5,0x3b,0x11,0x65,0x72,1,0x6d,0x2e,0x73,0x12,0x69,0x61, +0x6e,0xa3,0x8c,0x11,0x69,0x63,0xa3,0xf1,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74, +0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xbb,0x13,0x64,0x69,0x61,0x6e,0xa5, +0x22,0x14,0x75,0x72,0x6b,0x69,0x63,0xa3,0xbf,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f, +0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0xf0,0x17,0x75,0x6e,0x67, +0x61,0x72,0x69,0x61,0x6e,0xa5,4,0x14,0x74,0x61,0x6c,0x69,0x63,0xa3,0x58,0x13, +0x68,0x69,0x6b,0x69,0xa3,0x9d,0x10,0x72,0x85,0x12,0x68,0x61,0x6d,0x65,6,0x6f, +0x86,0x6f,0x6c,0x72,0xa2,0x61,0x75,0xa2,0x62,0x79,0x14,0x61,0x6e,0x6d,0x61,0x72, +0x58,0x12,0x65,0x78,0x74,2,0x61,0xa3,0xb6,0x62,0xa3,0xee,0x65,0x13,0x6e,0x64, +0x65,0x64,1,0x61,0xa3,0xb6,0x62,0xa3,0xee,1,0x64,0x52,0x6e,0x15,0x67,0x6f, +0x6c,0x69,0x61,0x6e,0x6a,0x12,0x73,0x75,0x70,0xa4,0xd,0x16,0x70,0x6c,0x65,0x6d, +0x65,0x6e,0x74,0xa5,0xd,0x10,0x69,0xa2,0xec,0x13,0x66,0x69,0x65,0x72,1,0x6c, +0x3c,0x74,0x19,0x6f,0x6e,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x73,0xa3,0x8a,0x15, +0x65,0x74,0x74,0x65,0x72,0x73,0x2d,0x10,0x6f,0xa3,0xed,1,0x6c,0x44,0x73,0x11, +0x69,0x63,0xa2,0x5c,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5c, +0x13,0x74,0x61,0x6e,0x69,0xa5,3,0x61,0xa2,0x9b,0x65,0xa4,0x4c,0x69,1,0x61, +0xa2,0x8f,0x73,0x10,0x63,5,0x70,0x18,0x70,0xa2,0x71,0x73,0x36,0x74,0x17,0x65, +0x63,0x68,0x6e,0x69,0x63,0x61,0x6c,0x81,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x8f, +0x61,0xa2,0x66,0x65,0x46,0x6d,0x19,0x61,0x74,0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c, +0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x17,0x6c,0x6c,0x61,0x6e,0x65,0x6f,0x75, +0x73,2,0x6d,0x3a,0x73,0x6c,0x74,0x17,0x65,0x63,0x68,0x6e,0x69,0x63,0x61,0x6c, +0x81,0x11,0x61,0x74,0x1f,0x68,0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x73,0x79, +0x6d,0x62,0x6f,0x6c,0x73,1,0x61,0xa3,0x66,0x62,0xa3,0x69,0x15,0x79,0x6d,0x62, +0x6f,0x6c,0x73,0x8e,0x12,0x61,0x6e,0x64,1,0x61,0x3c,0x70,0x19,0x69,0x63,0x74, +0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa3,0xcd,0x14,0x72,0x72,0x6f,0x77,0x73,0xa3, +0x73,0x10,0x6f,0xa3,0xd8,7,0x72,0x6f,0x72,0x44,0x73,0x4e,0x74,0x62,0x79,0x19, +0x61,0x6e,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa5,0x20,0x13,0x63,0x68,0x65, +0x6e,0xa5,0xc,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa5,0x14,0x10, +0x68,2,0x61,0x3a,0x65,0x4a,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73, +0x7f,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0xa3,0x5d,0x16,0x6d,0x61,0x74,0x69, +0x63,0x61,0x6c,1,0x61,0x36,0x6f,0x17,0x70,0x65,0x72,0x61,0x74,0x6f,0x72,0x73, +0x7f,0x11,0x6c,0x70,0x1f,0x68,0x61,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x73,0x79, +0x6d,0x62,0x6f,0x6c,0x73,0xa3,0x5d,0x68,0x50,0x6b,0x7e,0x6c,0x88,0x6e,1,0x64, +0x34,0x69,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0xea,0x12,0x61,0x69,0x63,0xa3, +0xc6,1,0x61,0x3e,0x6a,0x12,0x6f,0x6e,0x67,0xa2,0xaa,0x14,0x74,0x69,0x6c,0x65, +0x73,0xa3,0xaa,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xe9,0x13,0x61,0x73,0x61,0x72,0xa5, +0x1f,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x4f,3,0x64,0x6c,0x65,0x7e,0x6e,0xa2, +0x47,0x72,0x14,0x6f,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72, +0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xd7,0x15,0x75,0x72,0x73,0x69,0x76,0x65, +0xa3,0xd6,0x17,0x65,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa5,0x21,0x17,0x74,0x65, +0x69,0x6d,0x61,0x79,0x65,0x6b,0xa2,0xb8,0x12,0x65,0x78,0x74,0xa2,0xd5,0x16,0x65, +0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0xd5,0x18,0x64,0x65,0x6b,0x69,0x6b,0x61,0x6b, +0x75,0x69,0xa3,0xeb,6,0x6b,0x3b,0x6b,0x56,0x6f,0x5a,0x75,0x64,0x79,0x11,0x69, +0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f, +0x6e,0x67,0xa5,0x27,0x10,0x6f,0xa3,0x92,0x14,0x62,0x6c,0x6f,0x63,0x6b,0x21,1, +0x6d,0x2c,0x73,0x11,0x68,0x75,0xa5,0x15,0x17,0x62,0x65,0x72,0x66,0x6f,0x72,0x6d, +0x73,0x7b,0x61,0x44,0x62,0x21,0x65,0x10,0x77,1,0x61,0xa5,0xe,0x74,0x14,0x61, +0x69,0x6c,0x75,0x65,0xa3,0x8b,1,0x62,0x38,0x6e,0x17,0x64,0x69,0x6e,0x61,0x67, +0x61,0x72,0x69,0xa5,0x26,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0xef,0x67,0xc4, +0x43,0x6a,0xc1,0xca,0x6a,0xa2,0xdf,0x6b,0xa2,0xf8,0x6c,4,0x61,0x54,0x65,0xa2, +0x6b,0x69,0xa2,0x82,0x6f,0xa2,0xc1,0x79,1,0x63,0x2e,0x64,0x12,0x69,0x61,0x6e, +0xa3,0xa9,0x12,0x69,0x61,0x6e,0xa3,0xa7,1,0x6f,0x55,0x74,0x11,0x69,0x6e,1, +0x31,0x96,0x65,0x11,0x78,0x74,6,0x64,0x21,0x64,0xa3,0x95,0x65,0x2c,0x66,0xa5, +0x39,0x67,0xa5,0x3a,0xa2,0xe7,0x13,0x6e,0x64,0x65,0x64,6,0x64,0xc,0x64,0xa3, +0x95,0x65,0xa3,0xe7,0x66,0xa5,0x39,0x67,0xa5,0x3a,0x61,0x2a,0x62,0x29,0x63,0xa3, +0x94,0x26,0x18,0x64,0x64,0x69,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x6d,0x24,0x12,0x73, +0x75,0x70,0x24,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0x25,1,0x70,0x42,0x74, +0x1d,0x74,0x65,0x72,0x6c,0x69,0x6b,0x65,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x79, +0x12,0x63,0x68,0x61,0xa3,0x9c,2,0x6d,0x4e,0x6e,0x54,0x73,0x10,0x75,0xa2,0xb0, +0x12,0x73,0x75,0x70,0xa4,0x31,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0x31, +0x11,0x62,0x75,0xa3,0x6f,0x12,0x65,0x61,0x72,1,0x61,0xa3,0xe8,0x62,1,0x69, +0x38,0x73,0x17,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x75,0x17,0x64,0x65, +0x6f,0x67,0x72,0x61,0x6d,0x73,0xa3,0x76,0x1a,0x77,0x73,0x75,0x72,0x72,0x6f,0x67, +0x61,0x74,0x65,0x73,0xa3,0x4d,0x10,0x61,1,0x6d,0x32,0x76,0x14,0x61,0x6e,0x65, +0x73,0x65,0xa3,0xb5,0x10,0x6f,0x5c,0x12,0x65,0x78,0x74,1,0x61,0xa3,0xb4,0x62, +0xa3,0xb9,1,0x61,0xa2,0x43,0x68,4,0x61,0x40,0x69,0x50,0x6d,0x6e,0x6f,0x86, +0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0xe6,0x16,0x72,0x6f,0x73,0x68,0x74, +0x68,0x69,0xa3,0x89,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72, +0x69,0x70,0x74,0xa5,0x30,0x11,0x65,0x72,0x68,0x16,0x73,0x79,0x6d,0x62,0x6f,0x6c, +0x73,0xa3,0x71,0x12,0x6a,0x6b,0x69,0xa3,0xe5,3,0x69,0x3a,0x6e,0x42,0x74,0xa2, +0x58,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0xa2,0x12,0x74,0x68,0x69,0xa3,0xc1,3, +0x61,0x34,0x62,0x84,0x67,0x8a,0x6e,0x12,0x61,0x64,0x61,0x4d,1,0x65,0x40,0x73, +0x11,0x75,0x70,0xa2,0xcb,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0xcb,0x11, +0x78,0x74,2,0x61,0xa5,0x13,0x62,0xa5,0x38,0x65,0x13,0x6e,0x64,0x65,0x64,1, +0x61,0xa5,0x13,0x62,0xa5,0x38,0x11,0x75,0x6e,0xa3,0x42,0x11,0x78,0x69,0x96,0x17, +0x72,0x61,0x64,0x69,0x63,0x61,0x6c,0x73,0x97,0x14,0x61,0x6b,0x61,0x6e,0x61,0x9e, +1,0x65,0x4c,0x70,0x10,0x68,0x1f,0x6f,0x6e,0x65,0x74,0x69,0x63,0x65,0x78,0x74, +0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0xa3,0x6b,0x11,0x78,0x74,0xa3,0x6b,0x67,0xa2, +0xb5,0x68,0xa4,0x84,0x69,3,0x64,0x4c,0x6d,0xa2,0x55,0x6e,0xa2,0x62,0x70,0x13, +0x61,0x65,0x78,0x74,0x2a,0x16,0x65,0x6e,0x73,0x69,0x6f,0x6e,0x73,0x2b,1,0x63, +0x99,0x65,0x17,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,1,0x64,0x56,0x73,0x15, +0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa4,0xb,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63, +0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xa5,0xb,0x13,0x65,0x73,0x63,0x72,0x1f,0x69, +0x70,0x74,0x69,0x6f,0x6e,0x63,0x68,0x61,0x72,0x61,0x63,0x74,0x65,0x72,0x73,0x99, +0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0xba, +1,0x64,0x62,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70, +0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0xbd,0x13,0x6c,0x61, +0x76,0x69,0xa3,0xbe,0x11,0x69,0x63,1,0x6e,0x3e,0x73,0x1a,0x69,0x79,0x61,0x71, +0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa5,0x1e,0x19,0x75,0x6d,0x62,0x65,0x72,0x66, +0x6f,0x72,0x6d,0x73,0xa3,0xb2,4,0x65,0x74,0x6c,0xa2,0x82,0x6f,0xa2,0x9a,0x72, +0xa2,0x9e,0x75,2,0x6a,0x34,0x6e,0x3e,0x72,0x14,0x6d,0x75,0x6b,0x68,0x69,0x43, +0x14,0x61,0x72,0x61,0x74,0x69,0x45,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64, +0x69,0xa5,0x1c,1,0x6e,0xa2,0x46,0x6f,1,0x6d,0x6e,0x72,0x13,0x67,0x69,0x61, +0x6e,0x5a,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x87,0x16,0x70,0x6c,0x65,0x6d, +0x65,0x6e,0x74,0xa3,0x87,0x11,0x78,0x74,0xa4,0x1b,0x14,0x65,0x6e,0x64,0x65,0x64, +0xa5,0x1b,0x1a,0x65,0x74,0x72,0x69,0x63,0x73,0x68,0x61,0x70,0x65,0x73,0x8c,0x12, +0x65,0x78,0x74,0xa2,0xe3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe3,0x1e,0x65,0x72, +0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x71,0x17,0x61, +0x67,0x6f,0x6c,0x69,0x74,0x69,0x63,0xa2,0x88,0x12,0x73,0x75,0x70,0xa4,0xa,0x16, +0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa5,0xa,0x13,0x74,0x68,0x69,0x63,0xa3,0x59, +1,0x61,0x5c,0x65,0x11,0x65,0x6b,0x30,1,0x61,0x38,0x65,0x11,0x78,0x74,0x6e, +0x14,0x65,0x6e,0x64,0x65,0x64,0x6f,0x17,0x6e,0x64,0x63,0x6f,0x70,0x74,0x69,0x63, +0x31,0x13,0x6e,0x74,0x68,0x61,0xa3,0xe4,2,0x61,0xa2,0x48,0x65,0xa2,0xdf,0x69, +1,0x67,0x30,0x72,0x14,0x61,0x67,0x61,0x6e,0x61,0x9d,0x10,0x68,1,0x70,0x3a, +0x73,0x18,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4b,1,0x72,0x3c, +0x75,0x19,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x73,0xa3,0x4c,0x11,0x69, +0x76,0x1f,0x61,0x74,0x65,0x75,0x73,0x65,0x73,0x75,0x72,0x72,0x6f,0x67,0x61,0x74, +0x65,0x73,0xa3,0x4c,2,0x6c,0x32,0x6e,0x9a,0x74,0x12,0x72,0x61,0x6e,0xa5,2, +0x10,0x66,2,0x61,0x58,0x6d,0x70,0x77,0x14,0x69,0x64,0x74,0x68,0x61,0x1f,0x6e, +0x64,0x66,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x66,0x6f,0x72,0x6d,0x73,0xa3, +0x57,0x1a,0x6e,0x64,0x66,0x75,0x6c,0x6c,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x57,0x13, +0x61,0x72,0x6b,0x73,0xa3,0x52,2,0x67,0x34,0x69,0xa2,0x45,0x75,0x12,0x6e,0x6f, +0x6f,0xa3,0x63,0x11,0x75,0x6c,0xa2,0x4a,2,0x63,0x3c,0x6a,0x5e,0x73,0x17,0x79, +0x6c,0x6c,0x61,0x62,0x6c,0x65,0x73,0xa3,0x4a,0x1f,0x6f,0x6d,0x70,0x61,0x74,0x69, +0x62,0x69,0x6c,0x69,0x74,0x79,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x12,0x61,0x6d,0x6f, +0x5c,0x17,0x65,0x78,0x74,0x65,0x6e,0x64,0x65,0x64,1,0x61,0xa3,0xb4,0x62,0xa3, +0xb9,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa5,0x1d,0x13,0x62, +0x72,0x65,0x77,0x37,0x61,0xa4,0xc,0x62,0xa6,0x53,0x63,0xa8,0x28,0x64,0xac,0xd3, +0x65,5,0x6d,0xa9,0x6d,0x94,0x6e,0xa2,0x41,0x74,0x15,0x68,0x69,0x6f,0x70,0x69, +0x63,0x5e,1,0x65,0x40,0x73,0x11,0x75,0x70,0xa2,0x86,0x16,0x70,0x6c,0x65,0x6d, +0x65,0x6e,0x74,0xa3,0x86,0x11,0x78,0x74,0xa2,0x85,2,0x61,0xa3,0xc8,0x62,0xa5, +0x37,0x65,0x13,0x6e,0x64,0x65,0x64,0xa2,0x85,1,0x61,0xa3,0xc8,0x62,0xa5,0x37, +0x16,0x6f,0x74,0x69,0x63,0x6f,0x6e,0x73,0xa3,0xce,0x15,0x63,0x6c,0x6f,0x73,0x65, +0x64,2,0x61,0x5a,0x63,0x9e,0x69,0x1c,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68, +0x69,0x63,0x73,0x75,0x70,0xa2,0xc4,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, +0xc4,0x16,0x6c,0x70,0x68,0x61,0x6e,0x75,0x6d,0x86,1,0x65,0x2c,0x73,0x11,0x75, +0x70,0xa3,0xc3,0x13,0x72,0x69,0x63,0x73,0x86,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d, +0x65,0x6e,0x74,0xa3,0xc3,0x11,0x6a,0x6b,0xa2,0x44,0x1f,0x6c,0x65,0x74,0x74,0x65, +0x72,0x73,0x61,0x6e,0x64,0x6d,0x6f,0x6e,0x74,0x68,0x73,0xa3,0x44,0x61,0x4a,0x67, +0x76,0x6c,1,0x62,0x30,0x79,0x13,0x6d,0x61,0x69,0x63,0xa5,0x25,0x13,0x61,0x73, +0x61,0x6e,0xa3,0xe2,0x13,0x72,0x6c,0x79,0x64,0x1f,0x79,0x6e,0x61,0x73,0x74,0x69, +0x63,0x63,0x75,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa5,1,0x1f,0x79,0x70,0x74, +0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,1,0x66,0x26, +0x73,0xa3,0xc2,0x1c,0x6f,0x72,0x6d,0x61,0x74,0x63,0x6f,0x6e,0x74,0x72,0x6f,0x6c, +0x73,0xa5,0x24,7,0x6e,0xc0,0xec,0x6e,0x3e,0x72,0xa2,0x5d,0x73,0xa2,0xdf,0x76, +0x14,0x65,0x73,0x74,0x61,0x6e,0xa3,0xbc,1,0x61,0x92,0x63,0x13,0x69,0x65,0x6e, +0x74,1,0x67,0x34,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xa5,0x13,0x72, +0x65,0x65,0x6b,1,0x6d,0x34,0x6e,0x15,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x7f, +0x13,0x75,0x73,0x69,0x63,0xa2,0x7e,0x19,0x61,0x6c,0x6e,0x6f,0x74,0x61,0x74,0x69, +0x6f,0x6e,0xa3,0x7e,0x10,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e,0x68,0x69,0x65,0x72, +0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0xfe,2,0x61,0x32,0x6d,0xa2,0x78,0x72, +0x12,0x6f,0x77,0x73,0x7d,0x12,0x62,0x69,0x63,0x38,3,0x65,0x4a,0x6d,0x74,0x70, +0xa2,0x4a,0x73,0x11,0x75,0x70,0xa2,0x80,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74, +0xa3,0x80,0x11,0x78,0x74,2,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x65,0x13,0x6e,0x64, +0x65,0x64,1,0x61,0xa3,0xd2,0x62,0xa5,0x35,0x12,0x61,0x74,0x68,0xa2,0xd3,0x18, +0x65,0x6d,0x61,0x74,0x69,0x63,0x61,0x6c,0x61,0x1f,0x6c,0x70,0x68,0x61,0x62,0x65, +0x74,0x69,0x63,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa3,0xd3,1,0x66,0x42,0x72, +0x1e,0x65,0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73, +1,0x61,0xa3,0x51,0x62,0xa3,0x55,0x14,0x65,0x6e,0x69,0x61,0x6e,0x35,0x12,0x63, +0x69,0x69,0x23,0x64,0x9e,0x65,0xa2,0x42,0x68,0xa2,0x4d,0x6c,1,0x63,0x62,0x70, +0x17,0x68,0x61,0x62,0x65,0x74,0x69,0x63,0x70,1,0x66,0xa3,0x50,0x72,0x1e,0x65, +0x73,0x65,0x6e,0x74,0x61,0x74,0x69,0x6f,0x6e,0x66,0x6f,0x72,0x6d,0x73,0xa3,0x50, +0x16,0x68,0x65,0x6d,0x69,0x63,0x61,0x6c,0xa2,0xd0,0x16,0x73,0x79,0x6d,0x62,0x6f, +0x6c,0x73,0xa3,0xd0,0x12,0x6c,0x61,0x6d,0xa5,7,0x1a,0x67,0x65,0x61,0x6e,0x6e, +0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0x77,0x11,0x6f,0x6d,0xa3,0xfd,7,0x6f,0x71, +0x6f,0x64,0x72,0xa2,0x41,0x75,0xa2,0x58,0x79,0x1b,0x7a,0x61,0x6e,0x74,0x69,0x6e, +0x65,0x6d,0x75,0x73,0x69,0x63,0xa2,0x5b,0x18,0x61,0x6c,0x73,0x79,0x6d,0x62,0x6f, +0x6c,0x73,0xa3,0x5b,1,0x70,0x34,0x78,0x16,0x64,0x72,0x61,0x77,0x69,0x6e,0x67, +0x89,0x14,0x6f,0x6d,0x6f,0x66,0x6f,0xa0,0x12,0x65,0x78,0x74,0xa2,0x43,0x14,0x65, +0x6e,0x64,0x65,0x64,0xa3,0x43,0x10,0x61,1,0x68,0x40,0x69,0x12,0x6c,0x6c,0x65, +0x92,0x17,0x70,0x61,0x74,0x74,0x65,0x72,0x6e,0x73,0x93,0x11,0x6d,0x69,0xa3,0xc9, +1,0x67,0x2c,0x68,0x11,0x69,0x64,0xa3,0x64,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3, +0x81,0x61,0x48,0x65,0xa2,0x4e,0x68,0xa2,0x52,0x6c,0x1a,0x6f,0x63,0x6b,0x65,0x6c, +0x65,0x6d,0x65,0x6e,0x74,0x73,0x8b,3,0x6c,0x34,0x6d,0x40,0x73,0x66,0x74,0x11, +0x61,0x6b,0xa3,0xc7,0x14,0x69,0x6e,0x65,0x73,0x65,0xa3,0x93,0x11,0x75,0x6d,0xa2, +0xb1,0x12,0x73,0x75,0x70,0xa2,0xca,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3, +0xca,1,0x69,0x30,0x73,0x13,0x61,0x76,0x61,0x68,0xa3,0xdd,0x15,0x63,0x6c,0x61, +0x74,0x69,0x6e,0x23,0x14,0x6e,0x67,0x61,0x6c,0x69,0x41,0x16,0x61,0x69,0x6b,0x73, +0x75,0x6b,0x69,0xa5,8,5,0x6f,0xc1,0x59,0x6f,0xa2,0x62,0x75,0xa4,0x1d,0x79, +1,0x70,0x9c,0x72,0x14,0x69,0x6c,0x6c,0x69,0x63,0x32,1,0x65,0x4c,0x73,0x11, +0x75,0x70,0xa2,0x61,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa2,0x61,0x12,0x61, +0x72,0x79,0xa3,0x61,0x11,0x78,0x74,3,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5, +9,0x65,0x13,0x6e,0x64,0x65,0x64,2,0x61,0xa3,0x9e,0x62,0xa3,0xa0,0x63,0xa5, +9,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa5,0x36, +0x1a,0x6f,0x74,0x73,0x79,0x6c,0x6c,0x61,0x62,0x61,0x72,0x79,0xa3,0x7b,3,0x6d, +0x5a,0x6e,0xa2,0x95,0x70,0xa2,0xa0,0x75,0x17,0x6e,0x74,0x69,0x6e,0x67,0x72,0x6f, +0x64,0xa2,0x9a,0x17,0x6e,0x75,0x6d,0x65,0x72,0x61,0x6c,0x73,0xa3,0x9a,2,0x62, +0x3a,0x6d,0xa2,0x5f,0x70,0x15,0x61,0x74,0x6a,0x61,0x6d,0x6f,0xa3,0x41,0x14,0x69, +0x6e,0x69,0x6e,0x67,2,0x64,0x46,0x68,0x9e,0x6d,0x1d,0x61,0x72,0x6b,0x73,0x66, +0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x1e,0x69,0x61,0x63,0x72,0x69, +0x74,0x69,0x63,0x61,0x6c,0x6d,0x61,0x72,0x6b,0x73,0x2e,2,0x65,0x40,0x66,0xa6, +0x41,0x73,0x18,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x83,0x16,0x78, +0x74,0x65,0x6e,0x64,0x65,0x64,0xa3,0xe0,0x17,0x61,0x6c,0x66,0x6d,0x61,0x72,0x6b, +0x73,0xa3,0x52,0x11,0x6f,0x6e,0x1f,0x69,0x6e,0x64,0x69,0x63,0x6e,0x75,0x6d,0x62, +0x65,0x72,0x66,0x6f,0x72,0x6d,0x73,0xa3,0xb2,0x1b,0x74,0x72,0x6f,0x6c,0x70,0x69, +0x63,0x74,0x75,0x72,0x65,0x73,0x83,0x12,0x74,0x69,0x63,0xa2,0x84,0x1b,0x65,0x70, +0x61,0x63,0x74,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa3,0xdf,1,0x6e,0x3e,0x72, +0x1b,0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x75,0x15,0x65, +0x69,0x66,0x6f,0x72,0x6d,0xa2,0x98,0x16,0x6e,0x75,0x6d,0x62,0x65,0x72,0x73,0xa2, +0x99,0x1d,0x61,0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0xa3,0x99,0x61,0xa2,0xe1,0x68,0xa4,0xb,0x6a,0x10,0x6b,0xa2,0x47,4,0x63,0x8c, +0x65,0xa2,0x80,0x72,0xa2,0x98,0x73,0xa2,0xaa,0x75,0x1f,0x6e,0x69,0x66,0x69,0x65, +0x64,0x69,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x47,0x18,0x65,0x78, +0x74,0x65,0x6e,0x73,0x69,0x6f,0x6e,6,0x64,0x6b,0x64,0xa3,0xd1,0x65,0xa5,0, +0x66,0xa5,0x12,0x67,0xa5,0x2e,0x14,0x6f,0x6d,0x70,0x61,0x74,0xa2,0x45,1,0x66, +0x96,0x69,1,0x62,0x44,0x64,0x17,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2, +0x4f,0x12,0x73,0x75,0x70,0xa3,0x5f,0x14,0x69,0x6c,0x69,0x74,0x79,0xa2,0x45,1, +0x66,0x54,0x69,0x18,0x64,0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x73,0xa2,0x4f,0x19, +0x73,0x75,0x70,0x70,0x6c,0x65,0x6d,0x65,0x6e,0x74,0xa3,0x5f,0x13,0x6f,0x72,0x6d, +0x73,0xa3,0x53,0x11,0x78,0x74,6,0x64,0xc,0x64,0xa3,0xd1,0x65,0xa5,0,0x66, +0xa5,0x12,0x67,0xa5,0x2e,0x61,0xa3,0x46,0x62,0xa3,0x5e,0x63,0xa3,0xc5,0x19,0x61, +0x64,0x69,0x63,0x61,0x6c,0x73,0x73,0x75,0x70,0x94,0x16,0x70,0x6c,0x65,0x6d,0x65, +0x6e,0x74,0x95,1,0x74,0x50,0x79,0x14,0x6d,0x62,0x6f,0x6c,0x73,0x9a,0x1d,0x61, +0x6e,0x64,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x9b,0x14,0x72, +0x6f,0x6b,0x65,0x73,0xa3,0x82,2,0x6e,0x48,0x72,0x64,0x75,0x1d,0x63,0x61,0x73, +0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0xde,0x1d,0x61,0x64, +0x69,0x61,0x6e,0x73,0x79,0x6c,0x6c,0x61,0x62,0x69,0x63,0x73,0x63,0x12,0x69,0x61, +0x6e,0xa3,0xa8,2,0x61,0x3a,0x65,0x4c,0x6f,0x16,0x72,0x61,0x73,0x6d,0x69,0x61, +0x6e,0xa5,0x2d,1,0x6b,0x26,0x6d,0xa3,0xa4,0x11,0x6d,0x61,0xa3,0xd4,1,0x72, +0x38,0x73,0x17,0x73,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0xa5,0x19,0x13,0x6f,0x6b, +0x65,0x65,0x60,0x12,0x73,0x75,0x70,0xa2,0xff,0x16,0x70,0x6c,0x65,0x6d,0x65,0x6e, +0x74,0xa3,0xff,3,0x65,0x3e,0x69,0x7e,0x6f,0xa2,0x69,0x75,0x15,0x70,0x6c,0x6f, +0x79,0x61,0x6e,0xa3,0xe1,1,0x73,0x50,0x76,0x16,0x61,0x6e,0x61,0x67,0x61,0x72, +0x69,0x3e,0x12,0x65,0x78,0x74,0xa2,0xb3,0x14,0x65,0x6e,0x64,0x65,0x64,0xa3,0xb3, +0x13,0x65,0x72,0x65,0x74,0xa3,0x5a,2,0x61,0x3a,0x6e,0x82,0x76,0x16,0x65,0x73, +0x61,0x6b,0x75,0x72,0x75,0xa5,0x2f,0x18,0x63,0x72,0x69,0x74,0x69,0x63,0x61,0x6c, +0x73,0x2e,2,0x65,0x30,0x66,0x36,0x73,0x11,0x75,0x70,0xa3,0x83,0x11,0x78,0x74, +0xa3,0xe0,0x18,0x6f,0x72,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x77,0x14,0x67,0x62, +0x61,0x74,0x73,0x91,1,0x67,0x3e,0x6d,0x12,0x69,0x6e,0x6f,0xa2,0xab,0x14,0x74, +0x69,0x6c,0x65,0x73,0xa3,0xab,0x11,0x72,0x61,0xa5,0x1a,8,0x6d,0x5f,0x6d,0x3a, +0x6e,0x48,0x73,0x7a,0x76,0xa2,0x4b,0x77,0x12,0x69,0x64,0x65,0x43,0x11,0x65,0x64, +0x32,0x12,0x69,0x61,0x6c,0x33,2,0x61,0x40,0x62,0x37,0x6f,1,0x62,0x28,0x6e, +0x10,0x65,0x21,0x13,0x72,0x65,0x61,0x6b,0x37,0x10,0x72,0x34,0x12,0x72,0x6f,0x77, +0x35,2,0x6d,0x38,0x71,0x46,0x75,1,0x62,0x3d,0x70,0x3e,0x11,0x65,0x72,0x3f, +1,0x61,0x24,0x6c,0x39,0x11,0x6c,0x6c,0x39,1,0x72,0x3b,0x75,0x12,0x61,0x72, +0x65,0x3b,0x12,0x65,0x72,0x74,0x40,0x13,0x69,0x63,0x61,0x6c,0x41,0x63,0x58,0x65, +0x92,0x66,0x96,0x69,1,0x6e,0x36,0x73,0x10,0x6f,0x30,0x14,0x6c,0x61,0x74,0x65, +0x64,0x31,0x11,0x69,0x74,0x2e,0x12,0x69,0x61,0x6c,0x2f,2,0x61,0x36,0x69,0x48, +0x6f,0x10,0x6d,0x24,0x12,0x70,0x61,0x74,0x25,0x10,0x6e,0x22,0x15,0x6f,0x6e,0x69, +0x63,0x61,0x6c,0x23,0x13,0x72,0x63,0x6c,0x65,0x27,0x11,0x6e,0x63,0x27,2,0x69, +0x3a,0x6f,0x44,0x72,0x10,0x61,0x2c,0x14,0x63,0x74,0x69,0x6f,0x6e,0x2d,0x10,0x6e, +0x28,0x11,0x61,0x6c,0x29,0x11,0x6e,0x74,0x2b,4,0x61,0x3a,0x66,0x4c,0x68,0x5e, +0x6e,0x70,0x77,0x2a,0x12,0x69,0x64,0x65,0x2b,0x22,0x17,0x6d,0x62,0x69,0x67,0x75, +0x6f,0x75,0x73,0x23,0x26,0x17,0x75,0x6c,0x6c,0x77,0x69,0x64,0x74,0x68,0x27,0x24, +0x17,0x61,0x6c,0x66,0x77,0x69,0x64,0x74,0x68,0x25,0x20,1,0x61,0x30,0x65,0x14, +0x75,0x74,0x72,0x61,0x6c,0x21,0x28,0x13,0x72,0x72,0x6f,0x77,0x29,0xd,0x6e,0xc0, +0xfb,0x73,0x6d,0x73,0x3a,0x74,0x98,0x75,0xa2,0x49,0x7a,2,0x6c,0x3b,0x70,0x3d, +0x73,0x39,5,0x6f,0x28,0x6f,0x57,0x70,0x34,0x75,0x16,0x72,0x72,0x6f,0x67,0x61, +0x74,0x65,0x45,0x11,0x61,0x63,1,0x65,0x32,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72, +0x6b,0x31,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x39,0x63,0x53,0x6b, +0x55,0x6d,0x51,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74, +0x65,0x72,0x27,1,0x6e,0x40,0x70,0x1c,0x70,0x65,0x72,0x63,0x61,0x73,0x65,0x6c, +0x65,0x74,0x74,0x65,0x72,0x23,0x17,0x61,0x73,0x73,0x69,0x67,0x6e,0x65,0x64,0x21, +0x6e,0x8a,0x6f,0xa2,0x47,0x70,8,0x66,0x14,0x66,0x5b,0x69,0x59,0x6f,0x4f,0x72, +0x24,0x73,0x49,0x17,0x69,0x76,0x61,0x74,0x65,0x75,0x73,0x65,0x43,0x61,0x2c,0x63, +0x4d,0x64,0x47,0x65,0x4b,0x1f,0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0x3d,2,0x64,0x33,0x6c,0x35,0x6f,0x36,0x1b,0x6e, +0x73,0x70,0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2d,1,0x70,0x7c,0x74, +0x12,0x68,0x65,0x72,3,0x6c,0x38,0x6e,0x42,0x70,0x4c,0x73,0x14,0x79,0x6d,0x62, +0x6f,0x6c,0x57,0x14,0x65,0x74,0x74,0x65,0x72,0x2b,0x14,0x75,0x6d,0x62,0x65,0x72, +0x37,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x1c,0x65,0x6e, +0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,0x66,0x9e,0x66,0x88, +0x69,0xa2,0x4b,0x6c,0xa2,0x5c,0x6d,4,0x61,0x60,0x63,0x31,0x65,0x2f,0x6e,0x2d, +0x6f,0x15,0x64,0x69,0x66,0x69,0x65,0x72,1,0x6c,0x30,0x73,0x14,0x79,0x6d,0x62, +0x6f,0x6c,0x55,0x14,0x65,0x74,0x74,0x65,0x72,0x29,0x17,0x74,0x68,0x73,0x79,0x6d, +0x62,0x6f,0x6c,0x51,1,0x69,0x2e,0x6f,0x13,0x72,0x6d,0x61,0x74,0x41,0x1d,0x6e, +0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x5b,0x10,0x6e, +0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f, +0x6e,0x59,6,0x6d,0x18,0x6d,0x29,0x6f,0x28,0x74,0x27,0x75,0x23,0x2a,0x1c,0x77, +0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x65,0x28,0x69, +0x3c,0x6c,0x25,0x19,0x74,0x74,0x65,0x72,0x6e,0x75,0x6d,0x62,0x65,0x72,0x35,0x1a, +0x6e,0x65,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0x3b,0x63,0x44,0x64,0xa2, +0x60,0x65,0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x2f, +6,0x6e,0x39,0x6e,0x46,0x6f,0x4e,0x73,0x45,0x75,0x1b,0x72,0x72,0x65,0x6e,0x63, +0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0x53,0x20,0x12,0x74,0x72,0x6c,0x3f,0x42,0x10, +0x6e,1,0x6e,0x2c,0x74,0x12,0x72,0x6f,0x6c,0x3f,0x1f,0x65,0x63,0x74,0x6f,0x72, +0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x4d,0x63,0x3f,0x66,0x41, +0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0x4b,2,0x61,0x30,0x65,0x4a,0x69,0x12,0x67,0x69,0x74,0x33,0x1c,0x73,0x68,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x47,0x1a,0x63,0x69,0x6d,0x61, +0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0x33,0,0x13,0x6e,0xc1,0xf,0x74,0x76,0x74, +0x4c,0x76,0x9a,0x77,0xa2,0x48,0x79,0xa2,0x49,0x7a,1,0x61,0x2c,0x68,0x12,0x61, +0x69,0x6e,0x8b,0x11,0x69,0x6e,0x85,2,0x61,0x36,0x65,0x3c,0x68,0x14,0x69,0x6e, +0x79,0x65,0x68,0xa3,0x66,1,0x68,0x71,0x77,0x73,1,0x68,0x28,0x74,0x10,0x68, +0x77,0x16,0x6d,0x61,0x72,0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d, +0x1a,0x65,0x72,0x74,0x69,0x63,0x61,0x6c,0x74,0x61,0x69,0x6c,0xa3,0x67,0x11,0x61, +0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11,0x68,0x65,0x83,0x10,0x68, +0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61,0x69,0x6c,0x7f,0x14,0x61, +0x72,0x72,0x65,0x65,0x7d,0x6e,0xa2,0x4c,0x70,0xa2,0x69,0x71,0xa2,0x69,0x72,0xa2, +0x6f,0x73,5,0x74,0x22,0x74,0x38,0x77,0x4c,0x79,0x16,0x72,0x69,0x61,0x63,0x77, 0x61,0x77,0x6f,0x18,0x72,0x61,0x69,0x67,0x68,0x74,0x77,0x61,0x77,0xa3,0x55,0x15, 0x61,0x73,0x68,0x6b,0x61,0x66,0x6d,0x61,0x2e,0x65,0x38,0x68,0x11,0x69,0x6e,0x6b, 0x10,0x64,0x62,0x11,0x68,0x65,0x65,1,0x65,0x2e,0x6d,0x13,0x6b,0x61,0x74,0x68, -0x69,0x10,0x6e,0x67,1,0x61,0x4e,0x65,1,0x68,0x28,0x74,0x10,0x68,0x77,0x16, -0x6d,0x61,0x72,0x62,0x75,0x74,0x61,0x74,0x13,0x67,0x6f,0x61,0x6c,0x3d,1,0x68, -0x71,0x77,0x73,0x11,0x61,0x77,0x79,1,0x65,0x32,0x75,0x11,0x64,0x68,0x80,0x11, -0x68,0x65,0x83,0x10,0x68,0x7a,1,0x62,0x34,0x77,0x16,0x69,0x74,0x68,0x74,0x61, -0x69,0x6c,0x7f,0x14,0x61,0x72,0x72,0x65,0x65,0x7d,0x6d,0x6c,0x6e,0xa4,0x6b,0x70, -0xa4,0x88,0x71,0xa4,0x88,0x72,1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79, -0x61,0x79,0x65,0x68,0x93,1,0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70, -0x65,0x61,2,0x61,0x2e,0x65,0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7, -0x6e,0x16,0x69,0x63,0x68,0x61,0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73, -0x3e,0x74,0x5c,0x77,0xa0,0x79,0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54, -0x10,0x61,1,0x64,0x2e,0x6d,0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3, -0x4b,3,0x61,0x38,0x65,0x3c,0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51, -0x10,0x77,0xa3,0x4d,1,0x6e,0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d, -0x65,0x64,0x68,0xa3,0x50,0x11,0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53, -0x6e,0x3a,0x6f,0x40,0x70,0x46,0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11, -0x75,0x6e,0xa3,0x46,0x11,0x6e,0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70, -0x68,0xa3,0x49,0x67,0x33,0x67,0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65, -0x6d,0xa3,0x45,0x13,0x69,0x6d,0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64, -0x72,0x65,0x64,0xa3,0x42,0x11,0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43, -0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12, -0x69,0x76,0x65,0x9f,1,0x6c,0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68, -0x95,0x12,0x65,0x74,0x68,0x99,1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68, -0x9d,0x13,0x6c,0x65,0x74,0x68,0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e, -0x2c,0x6e,0x34,0x72,0x5e,0x73,0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e, -0x6e,0x32,0x79,0x10,0x61,0xa3,0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e, -0x10,0x61,0xa3,0x5f,0x10,0x61,0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a, -0x42,0x6c,0x10,0x6c,1,0x61,0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61, -0xa3,0x59,0x10,0x61,0xa3,0x5a,0x11,0x65,0x6d,0x51,2,0x6f,0x2c,0x75,0x50,0x79, -0x10,0x61,0x91,1,0x6a,0x28,0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e, -0x67,0x67,0x72,0x6f,0x75,0x70,0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1, -0x66,0x5b,0x70,0x10,0x68,0x5d,0x66,0x9a,0x66,0x42,0x67,0x7a,0x68,0x8a,0x6b,0xa2, -0x75,0x6c,0x11,0x61,0x6d,0x4c,0x12,0x61,0x64,0x68,0x4f,2,0x61,0x3e,0x65,0x4a, -0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61,0x74,0x68,0x35,0x15,0x72,0x73, -0x69,0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,0x10,0x61,1,0x66,0x37,0x6d,0x11, -0x61,0x6c,0x39,1,0x61,0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40, -0x13,0x67,0x6f,0x61,0x6c,0x43,2,0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69, -0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65, -0x15,0x69,0x6e,0x6e,0x61,0x79,0x61,0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65, -0x68,0x67,0x6f,0x61,0x6c,0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74, -0x65,0x64,0x68,0x65,0x68,0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70, -0x68,0x89,0x61,0x2e,0x62,0x8a,0x64,0xa2,0x51,0x65,0x31,2,0x66,0x3c,0x69,0x70, -0x6c,1,0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25,0x14,0x72,0x69,0x63, -0x61,0x6e,2,0x66,0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3,0x58,0x11,0x65,0x68, -0xa3,0x56,0x12,0x6f,0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1,0x65,0x4a,0x75,0x10, -0x72,0x1f,0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68,0x62,0x61,0x72,0x72, -0x65,0x65,0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61,0x6c,0x2c,0x16,0x61, -0x74,0x68,0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c,0x72,0x3e,0x74,0x56, -0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x21,0x28,0x1a,0x69, -0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a,0x19,0x72,0x61,0x6e, -0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40,0x6a,0x56,0x6c,0x26, -0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27,0x24,0x19,0x75,0x61, -0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69,0x6e,0x63,0x61,0x75, -0x73,0x69,0x6e,0x67,0x23,0,0x13,0x6e,0xc0,0xd0,0x73,0x49,0x73,0x48,0x75,0x78, -0x77,0x84,0x78,0x9c,0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73,0x13,0x70,0x61,0x63, -0x65,0x59,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79,0x57,0x54,0x12,0x61, -0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53,0x15,0x6e,0x6b,0x6e, -0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a,0x6f,0x69,0x6e,0x65, -0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2,0x50,0x71,0xa2,0x6e, -0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64, -0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b,0x6f,0x46,0x73,0x45, -0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74,0x6c,0x69,0x6e,0x65, -0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10,0x70,0x48,0x1c,0x65, -0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0x49,1,0x6f,0x3e, -0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4d,0x4a, -0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x4b,0x10,0x75, -0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b,0x68,0x50,0x69,0x86, -0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61,0x74,0x6f,0x72,0x79, -0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65,0x34,0x6c,0x6d,0x79, -0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74, -0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18,0x65,0x6f,0x67,0x72, -0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11,0x65,0x70,1,0x61, -0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78,0x6e,0x75,0x6d,0x65, -0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1,0x66,0x43,0x69,0x15, -0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63,0xa2,0x55,0x65,0xa2, -0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,2,0x69,0x23,0x6c,0x34,0x6d,0x16, -0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68,0x61,0x62,0x65,0x74, -0x69,0x63,0x25,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d,0x72,0x12,0x65,0x61, -0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f,0x6c,0x73,0x57,0x13, -0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68,0x27,0x13,0x66,0x6f, -0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69,0x72,0x35,1,0x6d, -0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e,0x74,0x62,0x72,0x65, -0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c,0x6a,0x61,0x70,0x61, -0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b,1,0x62,0x3a,0x70, -0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51,0x18,0x69,0x6e,0x69, -0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a,0x6b,0x6c,0x30,0x13, -0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, -0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69,0x73,0x69,0x1b,0x72, -0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35,2,0x62,0x3e,0x6d, -0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f,0x6e,0x37,0x70,0x12, -0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x73,1,0x64, -0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69,0x63,0x27,0x11,0x6e, -0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25,0x22,0x14,0x63,0x69, -0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0x2a,0x74,0xc1,0x6d,0x77,0x96,0x77,0xa2, -0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,0x73,0x34,0x78,0x42,0x79, -0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3,0xae,0x6d,0xa3,0x81, -0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69,0x58,0x6d,0x11,0x74, -0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a,0x62,0x61,0x7a,0x61, -0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68,0x23,2,0x61,0x30, -0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,0x72,0x10,0x61,0xa2,0x92, -0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,0x68,0x6f,0xa3,0xbc,0x11, -0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3,0x65,0x11,0x65,0x6f, -0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,0x7a,0x69,0xa2,0xc0,0x11, -0x64,0x69,0xa3,0xc0,0x74,0x4a,0x75,0xa2,0xba,0x76,1,0x61,0x2c,0x69,0x11,0x73, -0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,5,0x67,0x36,0x67,0x68, -0x68,0x6c,0x69,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68,0xa2,0x9e,0x12,0x75,0x74, -0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61,0x6e,0x6f,0x14,0x69,0x6e, -0x61,0x67,0x68,0x99,0x11,0x6c,0x67,0x75,0x10,0x61,1,0x61,0x24,0x69,0x6d,0x6a, -0x11,0x6e,0x61,0x6b,0x61,0x30,0x65,0xa2,0x5b,0x66,0x11,0x6e,0x67,0x99,6,0x6c, -0x21,0x6c,0x32,0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75, -0x97,1,0x69,0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,0x11,0x75,0x74, -0xa3,0x9a,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10,0x69,0xa3,0x99,1, -0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c,0x6f,0x67,0x75,2, -0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10,0x65,0x89,0x12,0x68, -0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62,0x10,0x75,0x68,0x11, -0x67,0x75,0x69,1,0x67,0x32,0x6e,0x14,0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11, -0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63,0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72, -0xa2,0xe3,0x73,6,0x69,0x8a,0x69,0x72,0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1, -0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3,0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3, -0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94,0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69, -0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1,0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c, -0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68,0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72, -0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,2,0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2, -0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,1,0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12, -0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,0xa2,0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e, -0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71,0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71, -0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61,0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72, -0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64,0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87, -2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72,0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72, -0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3,0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3, -0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85,0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61, -1,0x63,0x2f,0x69,0x23,3,0x65,0x3e,0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1, -0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13,0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e, -0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10,0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e, -0xa2,0x83,0x6f,0xa2,0xf2,0x70,5,0x6c,0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61, -0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c,0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64, -0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61,0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e, -0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e,0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10, -0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3,0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b, -0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2,0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2, -0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3,0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f, -0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90,0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90, -0x11,0x72,0x6d,0xa3,0x59,6,0x6b,0x36,0x6b,0x56,0x73,0x6e,0x75,0x74,0x79,0x11, -0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70,0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d, -0x6f,0x6e,0x67,0xa3,0xba,1,0x67,0x2e,0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10, -0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96,0x12,0x73,0x68,0x75,0xa3,0x96,0x61,0x42, -0x62,0x80,0x65,0x10,0x77,1,0x61,0xa3,0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65, -0x97,2,0x62,0x2e,0x6e,0x3c,0x72,0x10,0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65, -0x61,0x6e,0xa3,0x8f,0x10,0x64,0xa2,0xbb,0x16,0x69,0x6e,0x61,0x67,0x61,0x72,0x69, -0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,3,0x67,0x5a,0x6c,0x6c,0x72,0xa2,0x93,0x73, -2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12,0x6e,0x79,0x61,0x85,0x11,0x67, -0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10, -0x6d,0x5b,1,0x63,0xa2,0x60,0x64,5,0x70,0x37,0x70,0x36,0x73,0x54,0x74,0x14, -0x75,0x72,0x6b,0x69,0x63,0xa3,0x58,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69, -0x61,0x6e,0x9b,0x11,0x69,0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74, -0x68,0x61,0x72,0x61,0x62,0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3, -0xb8,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72,0x61,0x62,0x69, -0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e,0xa3,0x4c,0x14, -0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12,0x69,0x6b,0x69, -0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79,0x61,0x5f,0x10, -0x68,0xa3,0x58,0x68,0xc3,0xd,0x6b,0xc2,0x24,0x6b,0xa4,0x17,0x6c,0xa4,0xb2,0x6d, -8,0x6f,0x46,0x6f,0x48,0x72,0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d, -0x10,0x72,0x59,0x13,0x6e,0x6d,0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10, -0x6e,0xa3,0x72,0x10,0x69,0xa3,0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e, -0x57,0x10,0x6f,0xa2,0x95,0x10,0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c, -0x74,0xa2,0xa4,0x12,0x61,0x6e,0x69,0xa3,0xa4,0x61,0x36,0x65,0xa2,0x67,0x69,0xa2, -0xbd,0x6c,0x11,0x79,0x6d,0x55,6,0x6e,0x38,0x6e,0x32,0x72,0x5c,0x73,0x6c,0x79, -0x10,0x61,0xa3,0x55,1,0x64,0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61, -0x6e,0xa3,0x79,0xa2,0x54,0x12,0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12, -0x68,0x65,0x6e,0xa3,0xa9,0x18,0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3, -0xaf,0x68,0x36,0x6b,0x4c,0x6c,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x61, -0x26,0x6a,0xa3,0xa0,0x13,0x6a,0x61,0x6e,0x69,0xa3,0xa0,0x10,0x61,0xa2,0xb4,0x12, -0x73,0x61,0x72,0xa3,0xb4,3,0x64,0x78,0x65,0x94,0x6e,0xa2,0x42,0x72,1,0x63, -0xa3,0x8d,0x6f,0xa2,0x56,0x13,0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69, -0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x56,0x15,0x75,0x72,0x73,0x69, -0x76,0x65,0xa3,0x8d,1,0x65,0x26,0x66,0xa3,0xb5,0x16,0x66,0x61,0x69,0x64,0x72, -0x69,0x6e,0xa3,0xb5,0x17,0x74,0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa3,0x73,0x10, -0x64,0xa2,0x8c,0x17,0x65,0x6b,0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61, -0x6f,0xa3,0x5c,6,0x6e,0x1a,0x6e,0x34,0x6f,0x38,0x70,0x3e,0x74,0x11,0x68,0x69, -0xa3,0x78,0x11,0x64,0x61,0x4b,0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a, -0x61,0x30,0x68,0x9a,0x69,0x11,0x74,0x73,0xa3,0xbf,4,0x69,0x3c,0x6c,0x44,0x6e, -0x48,0x74,0x56,0x79,0x13,0x61,0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3, -0x78,0x10,0x69,0xa3,0x4f,1,0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61, -0x6b,0x61,0x6e,0x61,0x4c,0x19,0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61, -0x8d,4,0x61,0x40,0x69,0x52,0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,0x77,0x61, -0x64,0x69,0xa3,0x91,0x10,0x72,0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,0x1d, -0x74,0x61,0x6e,0x73,0x6d,0x61,0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xbf, -1,0x65,0x24,0x72,0x4f,0x10,0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3, -0x9d,4,0x61,0x5c,0x65,0x90,0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64, -0x10,0x69,0xa2,0x6c,0x11,0x61,0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e, -0xa3,0x6b,2,0x6e,0x42,0x6f,0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69, -0x24,0x6e,0x53,0x10,0x6e,0x53,0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70, -0x63,0xa2,0x52,0x11,0x68,0x61,0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75, -0xa3,0x83,0x10,0x62,0x80,0x10,0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11, -0x61,0x72,1,0x61,0xa3,0x53,0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69, -0xa2,0x95,0x6a,2,0x61,0x30,0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d, -0x38,0x76,0x10,0x61,0xa2,0x4e,0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3, -0xad,0x11,0x61,0x6e,0xa3,0x69,6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,0x48,0x75, -0x11,0x6e,0x67,0xa3,0x4c,0x11,0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,0xa3,0x4b, -0x70,0xa3,0xba,0x11,0x6b,0x74,0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,0x61, -0x48,0x13,0x67,0x61,0x6e,0x61,0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11, -0x61,0x6e,0xa3,0xa2,0x42,6,0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a, -0x75,0x12,0x6e,0x6f,0x6f,0x77,0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,0x69, -0x72,0x6f,0x68,0x69,0x6e,0x67,0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,0x11, -0x62,0x72,0x46,0x11,0x65,0x77,0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c, -0x5d,0x1c,0x70,0x65,0x72,0x69,0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3, -0x74,2,0x64,0x66,0x68,0x6a,0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e, -0x61,0x6c,0x70,0x61,1,0x68,0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d, -0x13,0x6c,0x61,0x76,0x69,0xa3,0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74, -0x65,0x64,0x23,0x64,0xc1,0xd,0x64,0xa2,0x7a,0x65,0xa2,0xc1,0x67,4,0x65,0x82, -0x6c,0x9a,0x6f,0xa2,0x46,0x72,0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,0x72,1, -0x6d,0x24,0x75,0x41,0x13,0x75,0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13, -0x72,0x61,0x74,0x69,0x3f,0x18,0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3, -0xb3,0x10,0x6f,1,0x6b,0xa3,0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11, -0x61,0x67,0x90,0x15,0x6f,0x6c,0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10, -0x68,0x3a,0x11,0x69,0x63,0x3b,1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,0x61,0x32, -0x65,1,0x65,0x24,0x6b,0x3d,0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68, -0x61,0xa3,0x89,4,0x65,0x46,0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,0x70,0x6c, -0xa2,0x87,0x13,0x6f,0x79,0x61,0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34, -0x15,0x6e,0x61,0x67,0x61,0x72,0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,1,0x61, -0x36,0x76,0x16,0x65,0x73,0x61,0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,0xa3,0xbe, -0x11,0x67,0x72,0xa2,0xb2,0x10,0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a, -0x6c,0x72,0x74,0x11,0x68,0x69,0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2, -0x64,0xa3,0x45,0x68,0xa3,0x46,0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69, -0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,0x79,0x10, -0x6d,0xa2,0xb9,0x12,0x61,0x69,0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,0x73,0x61, -0x6e,0xa3,0x88,0x61,0xa2,0xb4,0x62,0xa4,0x19,0x63,6,0x6f,0x3d,0x6f,0x5a,0x70, -0x76,0x75,0x7a,0x79,1,0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44, -0x13,0x6c,0x6c,0x69,0x63,0x31,0x13,0x72,0x69,0x6f,0x74,0x7f,1,0x6d,0x30,0x70, -0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12,0x6d,0x6f,0x6e,0x21,0x11,0x72,0x74,0x7f, -0x16,0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,0x69, -0x11,0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,0x61, -0x73,0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d, -0xa3,0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x72, -0x69,0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68, -3,0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,0x73,0xa3,0xbd,1,0x6b,0x26,0x6d, -0xa3,0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d, -0x16,0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,0xbd,6,0x68,0x4a,0x68,0x48,0x6e, -0x4e,0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,0x61, -0x6e,0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61, -0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61, -0x3e,0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27, -0x10,0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,0x11,0x68,0x62,0xa3, -0x9f,0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b, -0xa3,0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,1,0x67,0x30,0x68, -1,0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f, -0x11,0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61, -1,0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3, -0x41,0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69, -0x6b,0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,0x73,0x54,0x74,1, -0x61,0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d, -0x10,0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,0x13,0x61,0x76,0x61, -0x68,0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,3,0x6c,0x42,0x6e, -0x90,0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25, -0x22,1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c, -0x61,0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x29,0x18,0x61, -0x64,0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,0x6f,0x1a,0x74,0x61, -0x70,0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,0x72,0x61,0x69,0x6c, -0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73, -0x23,0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10, -0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61, -0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11, -0x65,0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,0xb,0x72, -0x39,0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10,0x78,0x21,0x72, -0x28,0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61, -0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18, -0x61,0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a, -0x70,1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,0x28,1,0x66,0x2b, -0x76,0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,0x4c,0x65,0x64,0x67, -1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x41, -0x10,0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c, -0x23,2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,0x64,0x27,0x3a,1, -0x61,0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f, -0x64,0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60, -0x75,0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b, -1,0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d, -3,0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16, -0x6f,0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12, -0x70,0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d, -0x66,0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d, -0x23,1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13, -0x74,0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0,0x10, -0x6c,0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a, -0x4b,1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64, -0x69,0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c, -0x65,0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,0x73,0x70,0x61,0x63,0x65, -0x4d,0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,0x74,0x68,0x65,0x72, -0x21,1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10, -0x64,1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65, -0x74,0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d,0x65,0x72, -0x69,0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,0x66,0x40,0x67,0x4e, -0x68,0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f, -0x24,0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66, -0x74,0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,0x24,0x6c,0x3d,0x19, -0x62,0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,0x86,0x63,0x92,0x64, -0x94,0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15, -0x6e,0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,0x45,0x11,0x73,0x65, -0x42,0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47, -0x15,0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,0x6f,0x24,0x71,0x41, -0x18,0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,0x63,0x32,0x6e,0x3c, -0x6f,0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,0x65,0x25,0x20,0x12, -0x6f,0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a,0x72,0x5c,0x74,0x64,0x76,0x1d,0x69, -0x73,0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,0x66,0x74,0x3d,0x18,0x76, -0x65,0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,0x67,0x68,0x74,0x2f,0x11, -0x6f,0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,0x62,0x72,0x13,0x69,0x67, -0x68,0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x12,0x61,0x6e,0x64,1,0x6c, -0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,0x74,0x3f,0x12,0x65,0x66, -0x74,0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c, -0x6e,0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x12,0x61,0x6e,0x64,1, -0x6c,0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27,0x12,0x65,0x66,0x74,0x25,0x12,0x65, -0x66,0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa, -0x72,0x70,0x72,0x92,0x73,0xa2,0x46,0x74,0xa2,0x54,0x76,1,0x69,0x60,0x6f,0x12, -0x77,0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64, -0x65,0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x65,1,0x72, -0x2e,0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12,0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67, -0x69,0x73,0x74,0x65,0x72,0x73,0x68,0x69,0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c, -0x6c,0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f, -0x6e,0x65,1,0x6c,0x2c,0x6d,0x12,0x61,0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65, -0x72,0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18,0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65, -0x72,0x55,1,0x6f,0x4c,0x75,1,0x6b,0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15, -0x6a,0x6f,0x69,0x6e,0x65,0x72,0x53,0x11,0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69, -0x6e,0x65,0x72,0x4d,0x13,0x74,0x68,0x65,0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64, -0x6a,0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74, -0x65,0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72, -0x6b,0x45,0x1e,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b, -0x65,0x72,0x47,0x14,0x6f,0x69,0x6e,0x65,0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0, -0x63,1,0x61,0xa2,0xa2,0x6f,0x16,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8, -0x6b,0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c,0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68, -0x73,0x74,0x61,0x63,0x6b,0x65,0x72,0x43,0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14, -0x65,0x64,0x69,0x61,0x6c,0x37,1,0x6c,0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66, -0x13,0x69,0x78,0x65,0x64,0x3d,0x19,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68, -0x61,0x3b,0x18,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1, -0x62,0x3e,0x63,0x1b,0x63,0x65,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61, -0x41,0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64,0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69, -0x1e,0x6e,0x69,0x74,0x69,0x61,0x6c,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64, -0x33,0x12,0x65,0x61,0x64,0x2d,0x13,0x69,0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64, -0x6c,0x65,0x74,0x74,0x65,0x72,0x31,0x1d,0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69, -0x6f,0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16,0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23, -1,0x69,0x4a,0x72,0x10,0x61,0x1f,0x68,0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e, -0x67,0x6e,0x75,0x6d,0x62,0x65,0x72,0x27,0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38, -0x74,0x46,0x75,0x26,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74, -0x61,0x74,0x65,0x64,0x21,1,0x72,0x24,0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66, -0x6f,0x72,0x6d,0x65,0x64,1,0x72,0x32,0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74, -0x25,0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73, -0x4c,0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0, -0x70,0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f, -0xff,8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff, -0xf,0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61, -0x72,0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0, -0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0, -0,0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,0,0,0,0x16, -0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63, -0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70, -0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73, -0x73,0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30, -0xf8,0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0, -0,0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0, -0,0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76, -0x61,0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0, -0x64,0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f, -0x72,0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72, -0xd9,0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13, -0x6d,0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e, -0x67,0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80, -1,3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff, -8,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65, -0x72,0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80, -0,0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, -0xf9,0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d, -0xa4,0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64, -0x69,0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff, -4,0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16, -0x68,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0, -1,0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0, -0x10,0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74, -0x69,0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28, -0x74,0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74, -0x74,0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65, -0x72,0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65, -0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65, -0x1b,0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6, -0x80,1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72, -0x72,0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0, -0x22,0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1, -0x6e,0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72, -0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19, -0x62,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9, -0x80,0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74, -0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65, -0x74,0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7, -0,0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9, -0,0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0 +0x69,0x10,0x6e,0x67,2,0x6f,0x2c,0x75,0x50,0x79,0x10,0x61,0x91,1,0x6a,0x28, +0x6f,0x10,0x6e,0x55,0x1a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x67,0x72,0x6f,0x75,0x70, +0x21,0x10,0x6e,0x57,0x10,0x65,0x59,0x10,0x61,1,0x66,0x5b,0x70,0x10,0x68,0x5d, +1,0x65,0x38,0x6f,0x18,0x68,0x69,0x6e,0x67,0x79,0x61,0x79,0x65,0x68,0x93,1, +0x68,0x5f,0x76,0x16,0x65,0x72,0x73,0x65,0x64,0x70,0x65,0x61,0x67,0xc1,0xc7,0x67, +0xa4,0x52,0x68,0xa4,0x59,0x6b,0xa4,0x99,0x6c,0xa4,0xb2,0x6d,2,0x61,0x2e,0x65, +0xa4,0x3e,0x69,0x10,0x6d,0x53,1,0x6c,0xa2,0xe7,0x6e,0x16,0x69,0x63,0x68,0x61, +0x65,0x61,0x6e,0,0x12,0x6e,0x76,0x73,0x51,0x73,0x3e,0x74,0x5c,0x77,0xa0,0x79, +0xa2,0x42,0x7a,0x13,0x61,0x79,0x69,0x6e,0xa3,0x54,0x10,0x61,1,0x64,0x2e,0x6d, +0x12,0x65,0x6b,0x68,0xa3,0x4c,0x11,0x68,0x65,0xa3,0x4b,3,0x61,0x38,0x65,0x3c, +0x68,0x4a,0x77,0x13,0x65,0x6e,0x74,0x79,0xa3,0x51,0x10,0x77,0xa3,0x4d,1,0x6e, +0xa3,0x4e,0x74,0x10,0x68,0xa3,0x4f,0x14,0x61,0x6d,0x65,0x64,0x68,0xa3,0x50,0x11, +0x61,0x77,0xa3,0x52,0x12,0x6f,0x64,0x68,0xa3,0x53,0x6e,0x3a,0x6f,0x40,0x70,0x46, +0x71,0x4a,0x72,0x12,0x65,0x73,0x68,0xa3,0x4a,0x11,0x75,0x6e,0xa3,0x46,0x11,0x6e, +0x65,0xa3,0x47,0x10,0x65,0xa3,0x48,0x12,0x6f,0x70,0x68,0xa3,0x49,0x67,0x33,0x67, +0x38,0x68,0x40,0x6b,0x5e,0x6c,0x66,0x6d,0x11,0x65,0x6d,0xa3,0x45,0x13,0x69,0x6d, +0x65,0x6c,0xa1,1,0x65,0x32,0x75,0x14,0x6e,0x64,0x72,0x65,0x64,0xa3,0x42,0x11, +0x74,0x68,0xa3,0x41,0x12,0x61,0x70,0x68,0xa3,0x43,0x14,0x61,0x6d,0x65,0x64,0x68, +0xa3,0x44,0x61,0x34,0x62,0x4a,0x64,0x50,0x66,0x12,0x69,0x76,0x65,0x9f,1,0x6c, +0x2a,0x79,0x11,0x69,0x6e,0x97,0x12,0x65,0x70,0x68,0x95,0x12,0x65,0x74,0x68,0x99, +1,0x61,0x30,0x68,0x14,0x61,0x6d,0x65,0x64,0x68,0x9d,0x13,0x6c,0x65,0x74,0x68, +0x9b,0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,6,0x6e,0x2c,0x6e,0x34,0x72,0x5e,0x73, +0x62,0x74,0x11,0x74,0x61,0xa3,0x63,2,0x67,0x2e,0x6e,0x32,0x79,0x10,0x61,0xa3, +0x60,0x10,0x61,0xa3,0x5d,1,0x61,0xa3,0x5e,0x6e,0x10,0x61,0xa3,0x5f,0x10,0x61, +0xa3,0x61,0x11,0x73,0x61,0xa3,0x62,0x62,0x3c,0x6a,0x42,0x6c,0x10,0x6c,1,0x61, +0xa3,0x5b,0x6c,0x10,0x61,0xa3,0x5c,0x11,0x68,0x61,0xa3,0x59,0x10,0x61,0xa3,0x5a, +0x11,0x65,0x6d,0x51,0x10,0x61,1,0x66,0x37,0x6d,0x11,0x61,0x6c,0x39,1,0x61, +0x40,0x65,0x3e,1,0x68,0x28,0x74,0x10,0x68,0x45,0x40,0x13,0x67,0x6f,0x61,0x6c, +0x43,2,0x68,0x3b,0x6d,0x5c,0x6e,0x1a,0x69,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e, +0x67,0x79,0x61,1,0x6b,0x2a,0x70,0x10,0x61,0xa3,0x65,0x15,0x69,0x6e,0x6e,0x61, +0x79,0x61,0xa3,0x64,0x1a,0x7a,0x61,0x6f,0x6e,0x68,0x65,0x68,0x67,0x6f,0x61,0x6c, +0x3d,2,0x61,0x3a,0x68,0x44,0x6e,0x17,0x6f,0x74,0x74,0x65,0x64,0x68,0x65,0x68, +0x4b,1,0x66,0x47,0x70,0x10,0x68,0x49,0x12,0x61,0x70,0x68,0x89,0x11,0x61,0x6d, +0x4c,0x12,0x61,0x64,0x68,0x4f,0x61,0x6e,0x62,0xa2,0x54,0x64,0xa2,0x70,0x65,0x31, +0x66,2,0x61,0x3e,0x65,0x4a,0x69,0x19,0x6e,0x61,0x6c,0x73,0x65,0x6d,0x6b,0x61, +0x74,0x68,0x35,0x15,0x72,0x73,0x69,0x79,0x65,0x68,0x8f,0x86,0x10,0x68,0x33,2, +0x66,0x3c,0x69,0x70,0x6c,1,0x61,0x28,0x65,0x10,0x66,0x27,0x11,0x70,0x68,0x25, +0x14,0x72,0x69,0x63,0x61,0x6e,2,0x66,0x30,0x6e,0x36,0x71,0x11,0x61,0x66,0xa3, +0x58,0x11,0x65,0x68,0xa3,0x56,0x12,0x6f,0x6f,0x6e,0xa3,0x57,0x10,0x6e,0x23,1, +0x65,0x4a,0x75,0x10,0x72,0x1f,0x75,0x73,0x68,0x61,0x73,0x6b,0x69,0x79,0x65,0x68, +0x62,0x61,0x72,0x72,0x65,0x65,0x8d,1,0x68,0x29,0x74,0x10,0x68,0x2b,0x11,0x61, +0x6c,0x2c,0x16,0x61,0x74,0x68,0x72,0x69,0x73,0x68,0x2f,7,0x6e,0x2e,0x6e,0x2c, +0x72,0x3e,0x74,0x56,0x75,0x21,0x18,0x6f,0x6e,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67, +0x21,0x28,0x1a,0x69,0x67,0x68,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x29,0x2a, +0x19,0x72,0x61,0x6e,0x73,0x70,0x61,0x72,0x65,0x6e,0x74,0x2b,0x63,0x23,0x64,0x40, +0x6a,0x56,0x6c,0x26,0x19,0x65,0x66,0x74,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x27, +0x24,0x19,0x75,0x61,0x6c,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67,0x25,0x19,0x6f,0x69, +0x6e,0x63,0x61,0x75,0x73,0x69,0x6e,0x67,0x23,0,0x13,0x6e,0xc0,0xd0,0x73,0x49, +0x73,0x48,0x75,0x78,0x77,0x84,0x78,0x9c,0x7a,0x10,0x77,0x58,1,0x6a,0x75,0x73, +0x13,0x70,0x61,0x63,0x65,0x59,4,0x61,0x51,0x67,0x53,0x70,0x28,0x75,0x30,0x79, +0x57,0x54,0x12,0x61,0x63,0x65,0x55,0x16,0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0x53, +0x15,0x6e,0x6b,0x6e,0x6f,0x77,0x6e,0x21,1,0x6a,0x5d,0x6f,0x17,0x72,0x64,0x6a, +0x6f,0x69,0x6e,0x65,0x72,0x5d,0x10,0x78,0x21,0x6e,0x60,0x6f,0xa2,0x41,0x70,0xa2, +0x50,0x71,0xa2,0x6e,0x72,1,0x65,0x24,0x69,0x6f,0x1e,0x67,0x69,0x6f,0x6e,0x61, +0x6c,0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x6f,4,0x65,0x3e,0x6c,0x5b, +0x6f,0x46,0x73,0x45,0x75,0x46,0x14,0x6d,0x65,0x72,0x69,0x63,0x47,0x15,0x78,0x74, +0x6c,0x69,0x6e,0x65,0x5b,0x17,0x6e,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x45,0x10, +0x70,0x48,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e, +0x49,1,0x6f,0x3e,0x72,0x4c,0x1a,0x65,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72, +0x69,0x63,0x4d,0x4a,0x1b,0x73,0x74,0x66,0x69,0x78,0x6e,0x75,0x6d,0x65,0x72,0x69, +0x63,0x4b,0x10,0x75,0x4e,0x16,0x6f,0x74,0x61,0x74,0x69,0x6f,0x6e,0x4f,0x68,0x7b, +0x68,0x50,0x69,0x86,0x6a,0xa2,0x61,0x6c,0xa2,0x65,0x6d,0x1c,0x61,0x6e,0x64,0x61, +0x74,0x6f,0x72,0x79,0x62,0x72,0x65,0x61,0x6b,0x2d,4,0x32,0x5f,0x33,0x61,0x65, +0x34,0x6c,0x6d,0x79,0x3a,0x13,0x70,0x68,0x65,0x6e,0x3b,0x19,0x62,0x72,0x65,0x77, +0x6c,0x65,0x74,0x74,0x65,0x72,0x6d,2,0x64,0x28,0x6e,0x3c,0x73,0x41,0x3c,0x18, +0x65,0x6f,0x67,0x72,0x61,0x70,0x68,0x69,0x63,0x3d,0x3e,1,0x66,0x3e,0x73,0x11, +0x65,0x70,1,0x61,0x22,0x65,0x14,0x72,0x61,0x62,0x6c,0x65,0x3f,0x18,0x69,0x78, +0x6e,0x75,0x6d,0x65,0x72,0x69,0x63,0x41,2,0x6c,0x63,0x74,0x65,0x76,0x67,1, +0x66,0x43,0x69,0x15,0x6e,0x65,0x66,0x65,0x65,0x64,0x43,0x61,0x40,0x62,0x70,0x63, +0xa2,0x55,0x65,0xa2,0xdb,0x67,0x10,0x6c,0x38,0x11,0x75,0x65,0x39,2,0x69,0x23, +0x6c,0x34,0x6d,0x16,0x62,0x69,0x67,0x75,0x6f,0x75,0x73,0x23,0x24,0x17,0x70,0x68, +0x61,0x62,0x65,0x74,0x69,0x63,0x25,4,0x32,0x27,0x61,0x29,0x62,0x2b,0x6b,0x2d, +0x72,0x12,0x65,0x61,0x6b,2,0x61,0x36,0x62,0x3e,0x73,0x15,0x79,0x6d,0x62,0x6f, +0x6c,0x73,0x57,0x13,0x66,0x74,0x65,0x72,0x29,1,0x65,0x2a,0x6f,0x11,0x74,0x68, +0x27,0x13,0x66,0x6f,0x72,0x65,0x2b,7,0x6d,0x51,0x6d,0x33,0x6f,0x28,0x70,0x69, +0x72,0x35,1,0x6d,0x76,0x6e,1,0x64,0x3c,0x74,0x1a,0x69,0x6e,0x67,0x65,0x6e, +0x74,0x62,0x72,0x65,0x61,0x6b,0x2f,0x15,0x69,0x74,0x69,0x6f,0x6e,0x61,0x1f,0x6c, +0x6a,0x61,0x70,0x61,0x6e,0x65,0x73,0x65,0x73,0x74,0x61,0x72,0x74,0x65,0x72,0x6b, +1,0x62,0x3a,0x70,0x19,0x6c,0x65,0x78,0x63,0x6f,0x6e,0x74,0x65,0x78,0x74,0x51, +0x18,0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x33,0x61,0x6a,0x62,0x2f,0x6a, +0x6b,0x6c,0x30,0x13,0x6f,0x73,0x65,0x70,1,0x61,0x38,0x75,0x18,0x6e,0x63,0x74, +0x75,0x61,0x74,0x69,0x6f,0x6e,0x31,0x18,0x72,0x65,0x6e,0x74,0x68,0x65,0x73,0x69, +0x73,0x69,0x1b,0x72,0x72,0x69,0x61,0x67,0x65,0x72,0x65,0x74,0x75,0x72,0x6e,0x35, +2,0x62,0x3e,0x6d,0x46,0x78,0x36,0x18,0x63,0x6c,0x61,0x6d,0x61,0x74,0x69,0x6f, +0x6e,0x37,0x70,0x12,0x61,0x73,0x65,0x71,0x72,0x16,0x6f,0x64,0x69,0x66,0x69,0x65, +0x72,0x73,1,0x64,0x42,0x6e,1,0x6f,0x32,0x75,0x26,0x14,0x6d,0x65,0x72,0x69, +0x63,0x27,0x11,0x6e,0x65,0x21,1,0x65,0x2e,0x69,0x24,0x12,0x67,0x69,0x74,0x25, +0x22,0x14,0x63,0x69,0x6d,0x61,0x6c,0x23,0,0x18,0x6e,0xc4,0x60,0x74,0xc1,0x91, +0x77,0x96,0x77,0xa2,0x4c,0x78,0xa2,0x70,0x79,0xa2,0x7a,0x7a,6,0x73,0x1e,0x73, +0x34,0x78,0x42,0x79,0x48,0x7a,0x11,0x7a,0x7a,0xa3,0x67,0x10,0x79,1,0x65,0xa3, +0xae,0x6d,0xa3,0x81,0x11,0x78,0x78,0xa3,0x66,0x11,0x79,0x79,0x21,0x61,0x30,0x69, +0x58,0x6d,0x11,0x74,0x68,0xa3,0x80,0x10,0x6e,1,0x61,0x26,0x62,0xa3,0xb1,0x1a, +0x62,0x61,0x7a,0x61,0x72,0x73,0x71,0x75,0x61,0x72,0x65,0xa3,0xb1,0x11,0x6e,0x68, +0x23,2,0x61,0x30,0x63,0x5a,0x6f,0x11,0x6c,0x65,0xa3,0x9b,1,0x6e,0x3c,0x72, +0x10,0x61,0xa2,0x92,0x15,0x6e,0x67,0x63,0x69,0x74,0x69,0xa3,0x92,0x12,0x63,0x68, +0x6f,0xa3,0xbc,0x11,0x68,0x6f,0xa3,0xbc,1,0x70,0x2c,0x73,0x11,0x75,0x78,0xa3, +0x65,0x11,0x65,0x6f,0x9b,1,0x65,0x2c,0x69,0x72,0x11,0x69,0x69,0x73,0x11,0x7a, +0x69,0xa2,0xc0,0x11,0x64,0x69,0xa3,0xc0,0x74,0x66,0x75,0xa2,0xde,0x76,1,0x61, +0x48,0x69,1,0x73,0x38,0x74,0x10,0x68,0xa2,0xc5,0x13,0x6b,0x75,0x71,0x69,0xa3, +0xc5,0x10,0x70,0xa3,0x64,0x10,0x69,0xa2,0x63,0x10,0x69,0xa3,0x63,7,0x68,0x3e, +0x68,0x34,0x69,0x48,0x6e,0x86,0x6f,0x11,0x74,0x6f,0xa3,0xc4,0x10,0x61,1,0x61, +0x24,0x69,0x6d,0x6a,0x11,0x6e,0x61,0x6b,2,0x62,0x3a,0x66,0x4a,0x72,0x10,0x68, +0xa2,0x9e,0x12,0x75,0x74,0x61,0xa3,0x9e,1,0x65,0x24,0x74,0x6f,0x12,0x74,0x61, +0x6e,0x6f,0x14,0x69,0x6e,0x61,0x67,0x68,0x99,0x11,0x73,0x61,0xa3,0xc3,0x61,0x36, +0x65,0xa2,0x65,0x66,0xa2,0x71,0x67,0x11,0x6c,0x67,0x75,6,0x6c,0x28,0x6c,0x32, +0x6d,0x38,0x6e,0x44,0x76,0x10,0x74,0xa3,0x7f,1,0x65,0x89,0x75,0x97,1,0x69, +0x24,0x6c,0x67,0x10,0x6c,0x67,0x10,0x67,0xa2,0x9a,1,0x73,0x2a,0x75,0x10,0x74, +0xa3,0x9a,0x10,0x61,0xa3,0xc3,0x67,0x36,0x69,0x52,0x6b,0x10,0x72,0xa2,0x99,0x10, +0x69,0xa3,0x99,1,0x61,0x30,0x62,0x7a,0x13,0x61,0x6e,0x77,0x61,0x7b,0x12,0x6c, +0x6f,0x67,0x75,2,0x6c,0x32,0x74,0x34,0x76,0x12,0x69,0x65,0x74,0xa3,0x7f,0x10, +0x65,0x89,0x12,0x68,0x61,0x6d,0xa3,0x6a,1,0x6c,0x2a,0x6e,0x10,0x67,0xa3,0x62, +0x10,0x75,0x68,0x11,0x67,0x75,0x69,0x11,0x6e,0x67,0x99,1,0x67,0x32,0x6e,0x14, +0x6b,0x6e,0x6f,0x77,0x6e,0xa3,0x67,0x11,0x61,0x72,0x8a,0x13,0x69,0x74,0x69,0x63, +0x8b,0x71,0xc1,0x13,0x71,0xa2,0xde,0x72,0xa2,0xe3,0x73,6,0x69,0x8a,0x69,0x72, +0x6f,0xa2,0x4c,0x75,0xa2,0x75,0x79,1,0x6c,0x46,0x72,4,0x63,0x65,0x65,0xa3, +0x5f,0x69,0x2c,0x6a,0xa3,0x60,0x6e,0xa3,0x61,0x11,0x61,0x63,0x65,0x10,0x6f,0x94, +0x16,0x74,0x69,0x6e,0x61,0x67,0x72,0x69,0x95,2,0x64,0x3c,0x67,0x4c,0x6e,1, +0x64,0xa3,0x91,0x68,0x62,0x12,0x61,0x6c,0x61,0x63,0x10,0x64,0xa2,0xa6,0x12,0x68, +0x61,0x6d,0xa3,0xa6,0x17,0x6e,0x77,0x72,0x69,0x74,0x69,0x6e,0x67,0xa3,0x70,2, +0x67,0x3a,0x72,0x52,0x79,0x10,0x6f,0xa2,0xb0,0x12,0x6d,0x62,0x6f,0xa3,0xb0,1, +0x64,0x26,0x6f,0xa3,0xb8,0xa2,0xb7,0x12,0x69,0x61,0x6e,0xa3,0xb7,0x10,0x61,0xa2, +0x98,0x16,0x73,0x6f,0x6d,0x70,0x65,0x6e,0x67,0xa3,0x98,0x11,0x6e,0x64,0xa2,0x71, +0x14,0x61,0x6e,0x65,0x73,0x65,0xa3,0x71,0x61,0x5c,0x67,0xa2,0x43,0x68,1,0x61, +0x2a,0x72,0x10,0x64,0xa3,0x97,2,0x72,0x28,0x76,0x30,0x77,0x87,0x12,0x61,0x64, +0x61,0xa3,0x97,0x12,0x69,0x61,0x6e,0x87,2,0x6d,0x40,0x72,0x58,0x75,0x10,0x72, +0xa2,0x6f,0x15,0x61,0x73,0x68,0x74,0x72,0x61,0xa3,0x6f,1,0x61,0x26,0x72,0xa3, +0x7e,0x14,0x72,0x69,0x74,0x61,0x6e,0xa3,0x7e,1,0x61,0xa3,0x5e,0x62,0xa3,0x85, +0x11,0x6e,0x77,0xa3,0x70,0x11,0x61,0x61,1,0x63,0x2f,0x69,0x23,3,0x65,0x3e, +0x6a,0x48,0x6f,0x4e,0x75,0x10,0x6e,1,0x69,0x24,0x72,0x61,0x10,0x63,0x61,0x13, +0x6a,0x61,0x6e,0x67,0xa3,0x6e,0x11,0x6e,0x67,0xa3,0x6e,1,0x68,0x2a,0x72,0x10, +0x6f,0xa3,0x5d,0x10,0x67,0xa3,0xb6,0x6e,0xa2,0x83,0x6f,0xa2,0xf2,0x70,5,0x6c, +0x1e,0x6c,0x44,0x72,0x4a,0x73,0x1b,0x61,0x6c,0x74,0x65,0x72,0x70,0x61,0x68,0x6c, +0x61,0x76,0x69,0xa3,0x7b,0x11,0x72,0x64,0xa3,0x5c,0x11,0x74,0x69,0xa3,0x7d,0x61, +0x7c,0x65,0xa2,0x54,0x68,3,0x61,0x3e,0x6c,0x4e,0x6e,0x5e,0x6f,0x16,0x65,0x6e, +0x69,0x63,0x69,0x61,0x6e,0xa3,0x5b,0x10,0x67,0xa2,0x5a,0x12,0x73,0x70,0x61,0xa3, +0x5a,2,0x69,0xa3,0x7a,0x70,0xa3,0x7b,0x76,0xa3,0x7c,0x10,0x78,0xa3,0x5b,2, +0x68,0x3e,0x6c,0x50,0x75,0x10,0x63,0xa2,0xa5,0x14,0x69,0x6e,0x68,0x61,0x75,0xa3, +0xa5,0x17,0x61,0x77,0x68,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0x4b,0x10,0x6d,0xa2,0x90, +0x14,0x79,0x72,0x65,0x6e,0x65,0xa3,0x90,0x11,0x72,0x6d,0xa3,0x59,6,0x6b,0x36, +0x6b,0x56,0x73,0x6e,0x75,0x74,0x79,0x11,0x69,0x61,0x1f,0x6b,0x65,0x6e,0x67,0x70, +0x75,0x61,0x63,0x68,0x75,0x65,0x68,0x6d,0x6f,0x6e,0x67,0xa3,0xba,1,0x67,0x2e, +0x6f,0xa2,0x57,0x10,0x6f,0xa3,0x57,0x10,0x62,0xa3,0x84,0x11,0x68,0x75,0xa3,0x96, +0x12,0x73,0x68,0x75,0xa3,0x96,0x61,0x42,0x62,0x80,0x65,0x10,0x77,1,0x61,0xa3, +0xaa,0x74,0x14,0x61,0x69,0x6c,0x75,0x65,0x97,2,0x62,0x2e,0x6e,0x3c,0x72,0x10, +0x62,0xa3,0x8e,0x15,0x61,0x74,0x61,0x65,0x61,0x6e,0xa3,0x8f,0x10,0x64,0xa2,0xbb, +0x16,0x69,0x6e,0x61,0x67,0x61,0x72,0x69,0xa3,0xbb,0x11,0x61,0x74,0xa3,0x8f,4, +0x67,0x3c,0x6c,0x4e,0x72,0xa2,0x8e,0x73,0xa2,0x9c,0x75,0x11,0x67,0x72,0xa3,0xc2, +1,0x61,0x2a,0x68,0x11,0x61,0x6d,0x5b,0x10,0x6d,0x5b,1,0x63,0xa2,0x6a,0x64, +6,0x70,0x41,0x70,0x3a,0x73,0x58,0x74,0x86,0x75,0x14,0x79,0x67,0x68,0x75,0x72, +0xa3,0xc2,0x11,0x65,0x72,1,0x6d,0x2c,0x73,0x12,0x69,0x61,0x6e,0x9b,0x11,0x69, +0x63,0xa3,0x59,0x10,0x6f,1,0x67,0x3a,0x75,0x18,0x74,0x68,0x61,0x72,0x61,0x62, +0x69,0x61,0x6e,0xa3,0x85,0x13,0x64,0x69,0x61,0x6e,0xa3,0xb8,0x14,0x75,0x72,0x6b, +0x69,0x63,0xa3,0x58,0x68,0x42,0x69,0x54,0x6e,0x1a,0x6f,0x72,0x74,0x68,0x61,0x72, +0x61,0x62,0x69,0x61,0x6e,0xa3,0x8e,0x17,0x75,0x6e,0x67,0x61,0x72,0x69,0x61,0x6e, +0xa3,0x4c,0x14,0x74,0x61,0x6c,0x69,0x63,0x5d,1,0x68,0x26,0x6b,0xa3,0x6d,0x12, +0x69,0x6b,0x69,0xa3,0x6d,2,0x69,0x2c,0x6b,0x30,0x79,0x10,0x61,0x5f,0x11,0x79, +0x61,0x5f,0x10,0x68,0xa3,0x58,2,0x61,0x36,0x67,0x3c,0x6d,0x10,0x61,0x84,0x12, +0x6e,0x79,0x61,0x85,0x11,0x67,0x65,0xa3,0xab,0x10,0x65,0xa3,0xab,0x68,0xc3,0xd, +0x6b,0xc2,0x24,0x6b,0xa4,0x17,0x6c,0xa4,0xb2,0x6d,8,0x6f,0x46,0x6f,0x48,0x72, +0x74,0x74,0x80,0x75,0x86,0x79,1,0x61,0x28,0x6d,0x10,0x72,0x59,0x13,0x6e,0x6d, +0x61,0x72,0x59,2,0x64,0x2e,0x6e,0x32,0x6f,0x10,0x6e,0xa3,0x72,0x10,0x69,0xa3, +0xa3,0x10,0x67,0x56,0x14,0x6f,0x6c,0x69,0x61,0x6e,0x57,0x10,0x6f,0xa2,0x95,0x10, +0x6f,0xa3,0x95,0x11,0x65,0x69,0xa3,0x73,0x11,0x6c,0x74,0xa2,0xa4,0x12,0x61,0x6e, +0x69,0xa3,0xa4,0x61,0x36,0x65,0xa2,0x67,0x69,0xa2,0xbd,0x6c,0x11,0x79,0x6d,0x55, +6,0x6e,0x38,0x6e,0x32,0x72,0x5c,0x73,0x6c,0x79,0x10,0x61,0xa3,0x55,1,0x64, +0x38,0x69,0xa2,0x79,0x15,0x63,0x68,0x61,0x65,0x61,0x6e,0xa3,0x79,0xa2,0x54,0x12, +0x61,0x69,0x63,0xa3,0x54,0x10,0x63,0xa2,0xa9,0x12,0x68,0x65,0x6e,0xa3,0xa9,0x18, +0x61,0x72,0x61,0x6d,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xaf,0x68,0x36,0x6b,0x4c,0x6c, +0x15,0x61,0x79,0x61,0x6c,0x61,0x6d,0x55,1,0x61,0x26,0x6a,0xa3,0xa0,0x13,0x6a, +0x61,0x6e,0x69,0xa3,0xa0,0x10,0x61,0xa2,0xb4,0x12,0x73,0x61,0x72,0xa3,0xb4,3, +0x64,0x78,0x65,0x94,0x6e,0xa2,0x42,0x72,1,0x63,0xa3,0x8d,0x6f,0xa2,0x56,0x13, +0x69,0x74,0x69,0x63,1,0x63,0x3c,0x68,0x19,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79, +0x70,0x68,0x73,0xa3,0x56,0x15,0x75,0x72,0x73,0x69,0x76,0x65,0xa3,0x8d,1,0x65, +0x26,0x66,0xa3,0xb5,0x16,0x66,0x61,0x69,0x64,0x72,0x69,0x6e,0xa3,0xb5,0x17,0x74, +0x65,0x69,0x6d,0x61,0x79,0x65,0x6b,0xa3,0x73,0x10,0x64,0xa2,0x8c,0x17,0x65,0x6b, +0x69,0x6b,0x61,0x6b,0x75,0x69,0xa3,0x8c,0x11,0x61,0x6f,0xa3,0x5c,6,0x6e,0x1a, +0x6e,0x34,0x6f,0x38,0x70,0x3e,0x74,0x11,0x68,0x69,0xa3,0x78,0x11,0x64,0x61,0x4b, +0x11,0x72,0x65,0xa3,0x77,0x11,0x65,0x6c,0xa3,0x8a,0x61,0x30,0x68,0x9a,0x69,0x11, +0x74,0x73,0xa3,0xbf,4,0x69,0x3c,0x6c,0x44,0x6e,0x48,0x74,0x56,0x79,0x13,0x61, +0x68,0x6c,0x69,0xa3,0x4f,0x12,0x74,0x68,0x69,0xa3,0x78,0x10,0x69,0xa3,0x4f,1, +0x61,0x4d,0x6e,0x12,0x61,0x64,0x61,0x4b,0x14,0x61,0x6b,0x61,0x6e,0x61,0x4c,0x19, +0x6f,0x72,0x68,0x69,0x72,0x61,0x67,0x61,0x6e,0x61,0x8d,4,0x61,0x40,0x69,0x52, +0x6d,0x70,0x6f,0x7c,0x75,0x15,0x64,0x61,0x77,0x61,0x64,0x69,0xa3,0x91,0x10,0x72, +0x92,0x15,0x6f,0x73,0x68,0x74,0x68,0x69,0x93,0x1d,0x74,0x61,0x6e,0x73,0x6d,0x61, +0x6c,0x6c,0x73,0x63,0x72,0x69,0x70,0x74,0xa3,0xbf,1,0x65,0x24,0x72,0x4f,0x10, +0x72,0x4f,0x10,0x6a,0xa2,0x9d,0x11,0x6b,0x69,0xa3,0x9d,4,0x61,0x5c,0x65,0x90, +0x69,0xa0,0x6f,0xa2,0x5d,0x79,1,0x63,0x34,0x64,0x10,0x69,0xa2,0x6c,0x11,0x61, +0x6e,0xa3,0x6c,0x10,0x69,0xa2,0x6b,0x11,0x61,0x6e,0xa3,0x6b,2,0x6e,0x42,0x6f, +0x46,0x74,3,0x66,0xa3,0x50,0x67,0xa3,0x51,0x69,0x24,0x6e,0x53,0x10,0x6e,0x53, +0x10,0x61,0xa3,0x6a,0x50,0x10,0x6f,0x51,0x11,0x70,0x63,0xa2,0x52,0x11,0x68,0x61, +0xa3,0x52,2,0x6d,0x2e,0x6e,0x36,0x73,0x10,0x75,0xa3,0x83,0x10,0x62,0x80,0x10, +0x75,0x81,2,0x61,0xa3,0x53,0x62,0x83,0x65,0x11,0x61,0x72,1,0x61,0xa3,0x53, +0x62,0x83,0x11,0x6d,0x61,0xa3,0x8b,0x68,0x6e,0x69,0xa2,0x95,0x6a,2,0x61,0x30, +0x70,0x52,0x75,0x11,0x72,0x63,0xa3,0x94,1,0x6d,0x38,0x76,0x10,0x61,0xa2,0x4e, +0x13,0x6e,0x65,0x73,0x65,0xa3,0x4e,0x10,0x6f,0xa3,0xad,0x11,0x61,0x6e,0xa3,0x69, +6,0x6c,0x1e,0x6c,0x34,0x6d,0x3a,0x72,0x48,0x75,0x11,0x6e,0x67,0xa3,0x4c,0x11, +0x75,0x77,0xa3,0x9c,0x10,0x6e,1,0x67,0xa3,0x4b,0x70,0xa3,0xba,0x11,0x6b,0x74, +0x8d,0x61,0x3c,0x65,0xa2,0x43,0x69,0x11,0x72,0x61,0x48,0x13,0x67,0x61,0x6e,0x61, +0x49,1,0x6e,0x34,0x74,0x10,0x72,0xa2,0xa2,0x11,0x61,0x6e,0xa3,0xa2,0x42,6, +0x6f,0xe,0x6f,0x77,0x73,0xa3,0x49,0x74,0xa3,0x4a,0x75,0x12,0x6e,0x6f,0x6f,0x77, +0x62,0xa3,0xac,0x67,0x3e,0x69,0x42,0x19,0x66,0x69,0x72,0x6f,0x68,0x69,0x6e,0x67, +0x79,0x61,0xa3,0xb6,0x44,0x11,0x75,0x6c,0x45,0x11,0x62,0x72,0x46,0x11,0x65,0x77, +0x47,2,0x6d,0x2e,0x6e,0x4a,0x74,0x11,0x61,0x6c,0x5d,0x1c,0x70,0x65,0x72,0x69, +0x61,0x6c,0x61,0x72,0x61,0x6d,0x61,0x69,0x63,0xa3,0x74,2,0x64,0x66,0x68,0x6a, +0x73,0x1b,0x63,0x72,0x69,0x70,0x74,0x69,0x6f,0x6e,0x61,0x6c,0x70,0x61,1,0x68, +0x32,0x72,0x14,0x74,0x68,0x69,0x61,0x6e,0xa3,0x7d,0x13,0x6c,0x61,0x76,0x69,0xa3, +0x7a,0x10,0x73,0xa3,0x4d,0x15,0x65,0x72,0x69,0x74,0x65,0x64,0x23,0x64,0xc1,0xd, +0x64,0xa2,0x7a,0x65,0xa2,0xc1,0x67,4,0x65,0x82,0x6c,0x9a,0x6f,0xa2,0x46,0x72, +0xa2,0x55,0x75,2,0x6a,0x3c,0x6e,0x4e,0x72,1,0x6d,0x24,0x75,0x41,0x13,0x75, +0x6b,0x68,0x69,0x41,1,0x61,0x24,0x72,0x3f,0x13,0x72,0x61,0x74,0x69,0x3f,0x18, +0x6a,0x61,0x6c,0x61,0x67,0x6f,0x6e,0x64,0x69,0xa3,0xb3,0x10,0x6f,1,0x6b,0xa3, +0x48,0x72,0x38,0x13,0x67,0x69,0x61,0x6e,0x39,0x11,0x61,0x67,0x90,0x15,0x6f,0x6c, +0x69,0x74,0x69,0x63,0x91,1,0x6e,0x30,0x74,0x10,0x68,0x3a,0x11,0x69,0x63,0x3b, +1,0x67,0xa3,0xb3,0x6d,0xa3,0xaf,1,0x61,0x32,0x65,1,0x65,0x24,0x6b,0x3d, +0x10,0x6b,0x3d,0x10,0x6e,0xa2,0x89,0x12,0x74,0x68,0x61,0xa3,0x89,4,0x65,0x46, +0x69,0x6c,0x6f,0x8c,0x73,0x9a,0x75,0x11,0x70,0x6c,0xa2,0x87,0x13,0x6f,0x79,0x61, +0x6e,0xa3,0x87,1,0x73,0x38,0x76,0x10,0x61,0x34,0x15,0x6e,0x61,0x67,0x61,0x72, +0x69,0x35,0x13,0x65,0x72,0x65,0x74,0x33,1,0x61,0x36,0x76,0x16,0x65,0x73,0x61, +0x6b,0x75,0x72,0x75,0xa3,0xbe,0x10,0x6b,0xa3,0xbe,0x11,0x67,0x72,0xa2,0xb2,0x10, +0x61,0xa3,0xb2,0x11,0x72,0x74,0x33,2,0x67,0x3a,0x6c,0x72,0x74,0x11,0x68,0x69, +0x36,0x13,0x6f,0x70,0x69,0x63,0x37,0x10,0x79,2,0x64,0xa3,0x45,0x68,0xa3,0x46, +0x70,0xa2,0x47,0x1e,0x74,0x69,0x61,0x6e,0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79, +0x70,0x68,0x73,0xa3,0x47,1,0x62,0x36,0x79,0x10,0x6d,0xa2,0xb9,0x12,0x61,0x69, +0x63,0xa3,0xb9,0x10,0x61,0xa2,0x88,0x12,0x73,0x61,0x6e,0xa3,0x88,0x61,0xa2,0xc9, +0x62,0xa4,0x2e,0x63,6,0x6f,0x52,0x6f,0x76,0x70,0x92,0x75,0xa2,0x41,0x79,1, +0x70,0x3e,0x72,2,0x69,0x2a,0x6c,0x31,0x73,0xa3,0x44,0x13,0x6c,0x6c,0x69,0x63, +0x31,0x10,0x72,1,0x69,0x34,0x6f,0x15,0x6d,0x69,0x6e,0x6f,0x61,0x6e,0xa3,0xc1, +0x11,0x6f,0x74,0x7f,1,0x6d,0x30,0x70,0x10,0x74,0x2e,0x11,0x69,0x63,0x2f,0x12, +0x6d,0x6f,0x6e,0x21,1,0x6d,0x28,0x72,0x10,0x74,0x7f,0x10,0x6e,0xa3,0xc1,0x16, +0x6e,0x65,0x69,0x66,0x6f,0x72,0x6d,0xa3,0x65,0x61,0x32,0x68,0xa2,0x41,0x69,0x11, +0x72,0x74,0xa3,0x43,3,0x6b,0x4c,0x6e,0x50,0x72,0x76,0x75,0x1d,0x63,0x61,0x73, +0x69,0x61,0x6e,0x61,0x6c,0x62,0x61,0x6e,0x69,0x61,0x6e,0xa3,0x9f,0x10,0x6d,0xa3, +0x76,1,0x61,0x24,0x73,0x71,0x1d,0x64,0x69,0x61,0x6e,0x61,0x62,0x6f,0x72,0x69, +0x67,0x69,0x6e,0x61,0x6c,0x71,0x10,0x69,0xa2,0x68,0x11,0x61,0x6e,0xa3,0x68,3, +0x61,0x32,0x65,0x44,0x6f,0x52,0x72,0x10,0x73,0xa3,0xbd,1,0x6b,0x26,0x6d,0xa3, +0x42,0x11,0x6d,0x61,0xa3,0x76,0x10,0x72,0x2c,0x13,0x6f,0x6b,0x65,0x65,0x2d,0x16, +0x72,0x61,0x73,0x6d,0x69,0x61,0x6e,0xa3,0xbd,6,0x68,0x4a,0x68,0x48,0x6e,0x4e, +0x72,0x76,0x76,1,0x65,0x2a,0x73,0x10,0x74,0xa3,0x75,0x13,0x73,0x74,0x61,0x6e, +0xa3,0x75,0x11,0x6f,0x6d,0xa3,0xa1,0x11,0x61,0x74,0x1f,0x6f,0x6c,0x69,0x61,0x6e, +0x68,0x69,0x65,0x72,0x6f,0x67,0x6c,0x79,0x70,0x68,0x73,0xa3,0x9c,1,0x61,0x3e, +0x6d,2,0x65,0x2a,0x69,0xa3,0x74,0x6e,0x27,0x13,0x6e,0x69,0x61,0x6e,0x27,0x10, +0x62,0x24,0x11,0x69,0x63,0x25,0x64,0x30,0x66,0x44,0x67,0x11,0x68,0x62,0xa3,0x9f, +0x10,0x6c,1,0x61,0x26,0x6d,0xa3,0xa7,0x10,0x6d,0xa3,0xa7,0x11,0x61,0x6b,0xa3, +0x93,6,0x6c,0x3c,0x6c,0x52,0x6f,0x56,0x72,0x66,0x75,1,0x67,0x30,0x68,1, +0x64,0x79,0x69,0x10,0x64,0x79,0x10,0x69,0x8e,0x13,0x6e,0x65,0x73,0x65,0x8f,0x11, +0x69,0x73,0xa1,0x11,0x70,0x6f,0x2a,0x13,0x6d,0x6f,0x66,0x6f,0x2b,0x10,0x61,1, +0x68,0x2e,0x69,0x7c,0x12,0x6c,0x6c,0x65,0x7d,0xa2,0x41,0x11,0x6d,0x69,0xa3,0x41, +0x61,0x48,0x65,0x9c,0x68,1,0x61,0x2a,0x6b,0x10,0x73,0xa3,0xa8,0x15,0x69,0x6b, +0x73,0x75,0x6b,0x69,0xa3,0xa8,3,0x6c,0x3a,0x6d,0x48,0x73,0x54,0x74,1,0x61, +0x24,0x6b,0x9f,0x10,0x6b,0x9f,0x10,0x69,0x9c,0x13,0x6e,0x65,0x73,0x65,0x9d,0x10, +0x75,0xa2,0x82,0x10,0x6d,0xa3,0x82,0x10,0x73,0xa2,0x86,0x13,0x61,0x76,0x61,0x68, +0xa3,0x86,0x11,0x6e,0x67,0x28,0x12,0x61,0x6c,0x69,0x29,3,0x6c,0x42,0x6e,0x90, +0x74,0xa2,0x46,0x76,0x24,0x17,0x6f,0x77,0x65,0x6c,0x6a,0x61,0x6d,0x6f,0x25,0x22, +1,0x65,0x54,0x76,0x28,1,0x73,0x38,0x74,0x2a,0x17,0x73,0x79,0x6c,0x6c,0x61, +0x62,0x6c,0x65,0x2b,0x16,0x79,0x6c,0x6c,0x61,0x62,0x6c,0x65,0x29,0x18,0x61,0x64, +0x69,0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x23,1,0x61,0x21,0x6f,0x1a,0x74,0x61,0x70, +0x70,0x6c,0x69,0x63,0x61,0x62,0x6c,0x65,0x21,0x26,0x1a,0x72,0x61,0x69,0x6c,0x69, +0x6e,0x67,0x6a,0x61,0x6d,0x6f,0x27,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23, +0x20,0x10,0x6f,0x21,1,0x6e,0x2c,0x79,0x22,0x11,0x65,0x73,0x23,0x20,0x10,0x6f, +0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65,0x73,0x23,0x24,0x13,0x61,0x79, +0x62,0x65,0x25,0x20,0x10,0x6f,0x21,2,0x6d,0x30,0x6e,0x3a,0x79,0x22,0x11,0x65, +0x73,0x23,0x24,0x13,0x61,0x79,0x62,0x65,0x25,0x20,0x10,0x6f,0x21,0xb,0x72,0x39, +0x76,0xc,0x76,0x33,0x78,0x2a,0x7a,0x11,0x77,0x6a,0x43,0x10,0x78,0x21,0x72,0x28, +0x73,0x50,0x74,0x31,1,0x65,0x24,0x69,0x39,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c, +0x69,0x6e,0x64,0x69,0x63,0x61,0x74,0x6f,0x72,0x39,1,0x6d,0x35,0x70,0x18,0x61, +0x63,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0x35,0x6c,0x1f,0x6c,0x3c,0x6f,0x4a,0x70, +1,0x70,0x37,0x72,0x14,0x65,0x70,0x65,0x6e,0x64,0x37,0x28,1,0x66,0x2b,0x76, +0x2c,0x10,0x74,0x2f,0x13,0x74,0x68,0x65,0x72,0x21,0x63,0x4c,0x65,0x64,0x67,1, +0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74,0x65,0x72,0x7a,0x77,0x6a,0x41,0x10, +0x7a,0x41,2,0x6e,0x23,0x6f,0x24,0x72,0x25,0x14,0x6e,0x74,0x72,0x6f,0x6c,0x23, +2,0x62,0x34,0x6d,0x4e,0x78,0x26,0x13,0x74,0x65,0x6e,0x64,0x27,0x3a,1,0x61, +0x24,0x67,0x3d,0x11,0x73,0x65,0x3a,0x12,0x67,0x61,0x7a,0x3d,0x3e,0x16,0x6f,0x64, +0x69,0x66,0x69,0x65,0x72,0x3f,9,0x6e,0x4a,0x6e,0x34,0x6f,0x44,0x73,0x60,0x75, +0x94,0x78,0x10,0x78,0x21,0x10,0x75,0x2a,0x14,0x6d,0x65,0x72,0x69,0x63,0x2b,1, +0x6c,0x2c,0x74,0x12,0x68,0x65,0x72,0x21,0x14,0x65,0x74,0x74,0x65,0x72,0x2d,3, +0x63,0x36,0x65,0x46,0x70,0x31,0x74,0x32,0x12,0x65,0x72,0x6d,0x33,0x3c,0x16,0x6f, +0x6e,0x74,0x69,0x6e,0x75,0x65,0x3d,0x2e,0x10,0x70,0x2f,0x10,0x70,0x34,0x12,0x70, +0x65,0x72,0x35,0x61,0x46,0x63,0x52,0x65,0x64,0x66,0x72,0x6c,2,0x65,0x2d,0x66, +0x3b,0x6f,0x28,0x12,0x77,0x65,0x72,0x29,0x10,0x74,0x22,0x12,0x65,0x72,0x6d,0x23, +1,0x6c,0x24,0x72,0x37,0x24,0x12,0x6f,0x73,0x65,0x25,0x10,0x78,0x38,0x13,0x74, +0x65,0x6e,0x64,0x39,0x10,0x6f,0x26,0x13,0x72,0x6d,0x61,0x74,0x27,0,0x10,0x6c, +0x88,0x72,0x40,0x72,0x36,0x73,0x5e,0x77,0x7a,0x78,0x8a,0x7a,0x11,0x77,0x6a,0x4b, +1,0x65,0x24,0x69,0x3b,0x1e,0x67,0x69,0x6f,0x6e,0x61,0x6c,0x69,0x6e,0x64,0x69, +0x63,0x61,0x74,0x6f,0x72,0x3b,1,0x69,0x24,0x71,0x3f,0x18,0x6e,0x67,0x6c,0x65, +0x71,0x75,0x6f,0x74,0x65,0x3f,0x17,0x73,0x65,0x67,0x73,0x70,0x61,0x63,0x65,0x4d, +0x10,0x78,0x21,0x6c,0x36,0x6d,0x3c,0x6e,0x76,0x6f,0x13,0x74,0x68,0x65,0x72,0x21, +1,0x65,0x23,0x66,0x35,3,0x62,0x37,0x69,0x28,0x6c,0x29,0x6e,0x2b,0x10,0x64, +1,0x6c,0x34,0x6e,0x11,0x75,0x6d,0x2a,0x12,0x6c,0x65,0x74,0x37,0x14,0x65,0x74, +0x74,0x65,0x72,0x29,2,0x65,0x36,0x6c,0x39,0x75,0x2c,0x14,0x6d,0x65,0x72,0x69, +0x63,0x2d,0x14,0x77,0x6c,0x69,0x6e,0x65,0x39,0x66,0x3f,0x66,0x40,0x67,0x4e,0x68, +0x70,0x6b,0x10,0x61,0x26,0x15,0x74,0x61,0x6b,0x61,0x6e,0x61,0x27,0x10,0x6f,0x24, +0x13,0x72,0x6d,0x61,0x74,0x25,1,0x61,0x3a,0x6c,0x19,0x75,0x65,0x61,0x66,0x74, +0x65,0x72,0x7a,0x77,0x6a,0x49,0x10,0x7a,0x49,1,0x65,0x24,0x6c,0x3d,0x19,0x62, +0x72,0x65,0x77,0x6c,0x65,0x74,0x74,0x65,0x72,0x3d,0x61,0x86,0x63,0x92,0x64,0x94, +0x65,2,0x62,0x44,0x6d,0x5e,0x78,0x2e,0x13,0x74,0x65,0x6e,0x64,0x32,0x15,0x6e, +0x75,0x6d,0x6c,0x65,0x74,0x2f,0x42,1,0x61,0x24,0x67,0x45,0x11,0x73,0x65,0x42, +0x12,0x67,0x61,0x7a,0x45,0x46,0x16,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x47,0x15, +0x6c,0x65,0x74,0x74,0x65,0x72,0x23,0x10,0x72,0x31,1,0x6f,0x24,0x71,0x41,0x18, +0x75,0x62,0x6c,0x65,0x71,0x75,0x6f,0x74,0x65,0x41,2,0x63,0x32,0x6e,0x3c,0x6f, +0x22,0x12,0x70,0x65,0x6e,0x23,0x24,0x13,0x6c,0x6f,0x73,0x65,0x25,0x20,0x12,0x6f, +0x6e,0x65,0x21,6,0x6f,0x65,0x6f,0x4a,0x72,0x5c,0x74,0x64,0x76,0x1d,0x69,0x73, +0x75,0x61,0x6c,0x6f,0x72,0x64,0x65,0x72,0x6c,0x65,0x66,0x74,0x3d,0x18,0x76,0x65, +0x72,0x73,0x74,0x72,0x75,0x63,0x6b,0x2d,0x13,0x69,0x67,0x68,0x74,0x2f,0x11,0x6f, +0x70,0x30,0x12,0x61,0x6e,0x64,2,0x62,0x32,0x6c,0x62,0x72,0x13,0x69,0x67,0x68, +0x74,0x3b,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x32,0x12,0x61,0x6e,0x64,1,0x6c,0x2e, +0x72,0x13,0x69,0x67,0x68,0x74,0x35,0x12,0x65,0x66,0x74,0x3f,0x12,0x65,0x66,0x74, +0x36,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x39,0x62,0x2c,0x6c,0x5c,0x6e, +0x10,0x61,0x21,0x14,0x6f,0x74,0x74,0x6f,0x6d,0x22,0x12,0x61,0x6e,0x64,1,0x6c, +0x2e,0x72,0x13,0x69,0x67,0x68,0x74,0x27,0x12,0x65,0x66,0x74,0x25,0x12,0x65,0x66, +0x74,0x28,0x17,0x61,0x6e,0x64,0x72,0x69,0x67,0x68,0x74,0x2b,0xd,0x6e,0xaa,0x72, +0x70,0x72,0x92,0x73,0xa2,0x46,0x74,0xa2,0x54,0x76,1,0x69,0x60,0x6f,0x12,0x77, +0x65,0x6c,0x62,1,0x64,0x3a,0x69,0x19,0x6e,0x64,0x65,0x70,0x65,0x6e,0x64,0x65, +0x6e,0x74,0x67,0x17,0x65,0x70,0x65,0x6e,0x64,0x65,0x6e,0x74,0x65,1,0x72,0x2e, +0x73,0x13,0x61,0x72,0x67,0x61,0x61,0x12,0x61,0x6d,0x61,0x5f,0x1d,0x65,0x67,0x69, +0x73,0x74,0x65,0x72,0x73,0x68,0x69,0x66,0x74,0x65,0x72,0x57,0x1e,0x79,0x6c,0x6c, +0x61,0x62,0x6c,0x65,0x6d,0x6f,0x64,0x69,0x66,0x69,0x65,0x72,0x59,0x12,0x6f,0x6e, +0x65,1,0x6c,0x2c,0x6d,0x12,0x61,0x72,0x6b,0x5d,0x14,0x65,0x74,0x74,0x65,0x72, +0x5b,0x6e,0x3c,0x6f,0x7c,0x70,0x18,0x75,0x72,0x65,0x6b,0x69,0x6c,0x6c,0x65,0x72, +0x55,1,0x6f,0x4c,0x75,1,0x6b,0x3c,0x6d,0x12,0x62,0x65,0x72,0x50,0x15,0x6a, +0x6f,0x69,0x6e,0x65,0x72,0x53,0x11,0x74,0x61,0x4f,0x16,0x6e,0x6a,0x6f,0x69,0x6e, +0x65,0x72,0x4d,0x13,0x74,0x68,0x65,0x72,0x21,0x67,0x3e,0x67,0x4a,0x69,0x64,0x6a, +0x82,0x6d,0x1d,0x6f,0x64,0x69,0x66,0x79,0x69,0x6e,0x67,0x6c,0x65,0x74,0x74,0x65, +0x72,0x4b,0x1c,0x65,0x6d,0x69,0x6e,0x61,0x74,0x69,0x6f,0x6e,0x6d,0x61,0x72,0x6b, +0x45,0x1e,0x6e,0x76,0x69,0x73,0x69,0x62,0x6c,0x65,0x73,0x74,0x61,0x63,0x6b,0x65, +0x72,0x47,0x14,0x6f,0x69,0x6e,0x65,0x72,0x49,0x61,0xa2,0xba,0x62,0xa2,0xc0,0x63, +1,0x61,0xa2,0xa2,0x6f,0x16,0x6e,0x73,0x6f,0x6e,0x61,0x6e,0x74,0x2a,8,0x6b, +0x67,0x6b,0x48,0x6d,0x52,0x70,0x5c,0x73,0xa2,0x42,0x77,0x19,0x69,0x74,0x68,0x73, +0x74,0x61,0x63,0x6b,0x65,0x72,0x43,0x14,0x69,0x6c,0x6c,0x65,0x72,0x35,0x14,0x65, +0x64,0x69,0x61,0x6c,0x37,1,0x6c,0x52,0x72,0x10,0x65,1,0x63,0x2e,0x66,0x13, +0x69,0x78,0x65,0x64,0x3d,0x19,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61, +0x3b,0x18,0x61,0x63,0x65,0x68,0x6f,0x6c,0x64,0x65,0x72,0x39,0x10,0x75,1,0x62, +0x3e,0x63,0x1b,0x63,0x65,0x65,0x64,0x69,0x6e,0x67,0x72,0x65,0x70,0x68,0x61,0x41, +0x15,0x6a,0x6f,0x69,0x6e,0x65,0x64,0x3f,0x64,0x4c,0x66,0x52,0x68,0x5a,0x69,0x1e, +0x6e,0x69,0x74,0x69,0x61,0x6c,0x70,0x6f,0x73,0x74,0x66,0x69,0x78,0x65,0x64,0x33, +0x12,0x65,0x61,0x64,0x2d,0x13,0x69,0x6e,0x61,0x6c,0x2f,0x18,0x65,0x61,0x64,0x6c, +0x65,0x74,0x74,0x65,0x72,0x31,0x1d,0x6e,0x74,0x69,0x6c,0x6c,0x61,0x74,0x69,0x6f, +0x6e,0x6d,0x61,0x72,0x6b,0x29,0x16,0x76,0x61,0x67,0x72,0x61,0x68,0x61,0x23,1, +0x69,0x4a,0x72,0x10,0x61,0x1f,0x68,0x6d,0x69,0x6a,0x6f,0x69,0x6e,0x69,0x6e,0x67, +0x6e,0x75,0x6d,0x62,0x65,0x72,0x27,0x12,0x6e,0x64,0x75,0x25,2,0x72,0x38,0x74, +0x46,0x75,0x26,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x27,0x20,0x15,0x6f,0x74,0x61, +0x74,0x65,0x64,0x21,1,0x72,0x24,0x75,0x25,0x22,0x18,0x61,0x6e,0x73,0x66,0x6f, +0x72,0x6d,0x65,0x64,1,0x72,0x32,0x75,0x15,0x70,0x72,0x69,0x67,0x68,0x74,0x25, +0x15,0x6f,0x74,0x61,0x74,0x65,0x64,0x23,0xd,0x6e,0xc1,0x86,0x73,0xa8,0x73,0x4c, +0x74,0xa2,0x76,0x75,0xa2,0x83,0x7a,0xd8,0x70,0,2,0x6c,0xd9,0x20,0,0x70, +0xd9,0x40,0,0x73,0xc3,0,0xfe,0xf,0,0,0,7,0x6f,0x3c,0x6f,0xff, +8,0,0,0,0x70,0x3a,0x75,0x6e,0x79,0x13,0x6d,0x62,0x6f,0x6c,0xff,0xf, +0,0,0,0x11,0x61,0x63,1,0x65,0x34,0x69,0x15,0x6e,0x67,0x6d,0x61,0x72, +0x6b,0xa5,0,0x18,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xc3,0,0x16, +0x72,0x72,0x6f,0x67,0x61,0x74,0x65,0xe1,0,0,0x63,0xff,2,0,0,0, +0x65,0x38,0x6b,0xff,4,0,0,0,0x6d,0xff,1,0,0,0,0x16,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x70,0,0x1d,0x69,0x74,0x6c,0x65,0x63,0x61, +0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x31,1,0x6e,0x40,0x70,0x1c,0x70,0x65, +0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74,0x65,0x72,0x25,0x17,0x61,0x73,0x73, +0x69,0x67,0x6e,0x65,0x64,0x23,0x6e,0xa2,0x69,0x6f,0xa2,0x89,0x70,0xfe,0x30,0xf8, +0,0,9,0x69,0x33,0x69,0xff,0x10,0,0,0,0x6f,0xfd,0x80,0,0, +0x72,0x54,0x73,0xf9,0,0,0x75,0x12,0x6e,0x63,0x74,0xfe,0x30,0xf8,0,0, +0x15,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x30,0xf8,0,0,0x17,0x69,0x76,0x61, +0x74,0x65,0x75,0x73,0x65,0xdd,0,0,0x61,0x48,0x63,0xfd,0x40,0,0,0x64, +0xe9,0,0,0x65,0xfd,0x20,0,0,0x66,0xff,0x20,0,0,0,0x1f,0x72, +0x61,0x67,0x72,0x61,0x70,0x68,0x73,0x65,0x70,0x61,0x72,0x61,0x74,0x6f,0x72,0xd9, +0x40,0,0xbe,0,3,0x64,0xa7,0,0x6c,0xab,0,0x6f,0x30,0x75,0x13,0x6d, +0x62,0x65,0x72,0xbf,0,0xb2,0,0x1b,0x6e,0x73,0x70,0x61,0x63,0x69,0x6e,0x67, +0x6d,0x61,0x72,0x6b,0xa1,1,0x70,0x92,0x74,0x12,0x68,0x65,0x72,0xe6,0x80,1, +3,0x6c,0x40,0x6e,0x4a,0x70,0x56,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,8, +0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x61,0x14,0x75,0x6d,0x62,0x65,0x72, +0xb3,0,0x19,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x80,0, +0,0x1c,0x65,0x6e,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xf9, +0,0,0x66,0xc0,0xc4,0x66,0xa2,0x47,0x69,0xa2,0x64,0x6c,0xa2,0x79,0x6d,0xa4, +0xc0,4,0x61,0x6c,0x63,0xa5,0,0x65,0xa3,0x80,0x6e,0xa1,0x6f,0x15,0x64,0x69, +0x66,0x69,0x65,0x72,1,0x6c,0x38,0x73,0x14,0x79,0x6d,0x62,0x6f,0x6c,0xff,4, +0,0,0,0x14,0x65,0x74,0x74,0x65,0x72,0x41,1,0x72,0x3c,0x74,0x16,0x68, +0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,1,0,0,0,0x10,0x6b,0xa5,0xc0,1, +0x69,0x32,0x6f,0x13,0x72,0x6d,0x61,0x74,0xdb,0,0,0x1d,0x6e,0x61,0x6c,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xff,0x20,0,0,0,0x10, +0x6e,0x1f,0x69,0x74,0x69,0x61,0x6c,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69, +0x6f,0x6e,0xff,0x10,0,0,0,0x9c,7,0x6d,0x18,0x6d,0x41,0x6f,0x28,0x74, +0x31,0x75,0x25,0x60,0x1c,0x77,0x65,0x72,0x63,0x61,0x73,0x65,0x6c,0x65,0x74,0x74, +0x65,0x72,0x29,0x63,0x3d,0x65,0x28,0x69,0x42,0x6c,0x29,0x13,0x74,0x74,0x65,0x72, +0x9c,0x15,0x6e,0x75,0x6d,0x62,0x65,0x72,0xab,0,0x1a,0x6e,0x65,0x73,0x65,0x70, +0x61,0x72,0x61,0x74,0x6f,0x72,0xd9,0x20,0,0x63,0x46,0x64,0xa2,0x96,0x65,0x1b, +0x6e,0x63,0x6c,0x6f,0x73,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa3,0x80,0xe6,0x80, +1,7,0x6e,0x57,0x6e,0x52,0x6f,0x5e,0x73,0xe1,0,0,0x75,0x1b,0x72,0x72, +0x65,0x6e,0x63,0x79,0x73,0x79,0x6d,0x62,0x6f,0x6c,0xff,2,0,0,0,0x22, +0x12,0x74,0x72,0x6c,0xd9,0x80,0,0xdc,0,0,1,0x6d,0x62,0x6e,1,0x6e, +0x30,0x74,0x12,0x72,0x6f,0x6c,0xd9,0x80,0,0x1f,0x65,0x63,0x74,0x6f,0x72,0x70, +0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xfd,0x40,0,0,0x19,0x62, +0x69,0x6e,0x69,0x6e,0x67,0x6d,0x61,0x72,0x6b,0xa5,0xc0,0x61,0x58,0x63,0xd9,0x80, +0,0x66,0xdb,0,0,0x6c,0x1d,0x6f,0x73,0x65,0x70,0x75,0x6e,0x63,0x74,0x75, +0x61,0x74,0x69,0x6f,0x6e,0xfd,0x20,0,0,0x18,0x73,0x65,0x64,0x6c,0x65,0x74, +0x74,0x65,0x72,0x3d,2,0x61,0x32,0x65,0x50,0x69,0x12,0x67,0x69,0x74,0xa7,0, +0x1c,0x73,0x68,0x70,0x75,0x6e,0x63,0x74,0x75,0x61,0x74,0x69,0x6f,0x6e,0xe9,0, +0,0x1a,0x63,0x69,0x6d,0x61,0x6c,0x6e,0x75,0x6d,0x62,0x65,0x72,0xa7,0 }; -const char PropNameData::nameGroups[22098]={ +const char PropNameData::nameGroups[22855]={ 2,'A','l','p','h','a',0,'A','l','p','h','a','b','e','t','i','c',0, 4,'N',0,'N','o',0,'F',0,'F','a','l','s','e',0,4,'Y',0,'Y','e','s',0,'T',0,'T','r','u','e',0, 2,'N','R',0,'N','o','t','_','R','e','o','r','d','e','r','e','d',0, @@ -1138,8 +1159,18 @@ const char PropNameData::nameGroups[22098]={ 2,'R','I',0,'R','e','g','i','o','n','a','l','_','I','n','d','i','c','a','t','o','r',0, 2,'P','C','M',0,'P','r','e','p','e','n','d','e','d','_','C','o','n','c','a','t','e','n','a','t','i','o','n','_','M','a','r', 'k',0,2,'E','x','t','P','i','c','t',0,'E','x','t','e','n','d','e','d','_','P','i','c','t','o','g','r','a','p','h','i','c', -0,2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0, -2,'L',0,'L','e','f','t','_','T','o','_','R','i','g','h','t',0, +0,2,'B','a','s','i','c','_','E','m','o','j','i',0,'B','a','s','i','c','_','E','m','o','j','i',0, +2,'E','m','o','j','i','_','K','e','y','c','a','p','_','S','e','q','u','e','n','c','e',0,'E','m','o','j','i','_','K','e','y', +'c','a','p','_','S','e','q','u','e','n','c','e',0,2,'R','G','I','_','E','m','o','j','i','_','M','o','d','i','f','i','e','r', +'_','S','e','q','u','e','n','c','e',0,'R','G','I','_','E','m','o','j','i','_','M','o','d','i','f','i','e','r','_','S','e','q', +'u','e','n','c','e',0,2,'R','G','I','_','E','m','o','j','i','_','F','l','a','g','_','S','e','q','u','e','n','c','e',0, +'R','G','I','_','E','m','o','j','i','_','F','l','a','g','_','S','e','q','u','e','n','c','e',0, +2,'R','G','I','_','E','m','o','j','i','_','T','a','g','_','S','e','q','u','e','n','c','e',0, +'R','G','I','_','E','m','o','j','i','_','T','a','g','_','S','e','q','u','e','n','c','e',0, +2,'R','G','I','_','E','m','o','j','i','_','Z','W','J','_','S','e','q','u','e','n','c','e',0, +'R','G','I','_','E','m','o','j','i','_','Z','W','J','_','S','e','q','u','e','n','c','e',0, +2,'R','G','I','_','E','m','o','j','i',0,'R','G','I','_','E','m','o','j','i',0, +2,'b','c',0,'B','i','d','i','_','C','l','a','s','s',0,2,'L',0,'L','e','f','t','_','T','o','_','R','i','g','h','t',0, 2,'R',0,'R','i','g','h','t','_','T','o','_','L','e','f','t',0, 2,'E','N',0,'E','u','r','o','p','e','a','n','_','N','u','m','b','e','r',0, 2,'E','S',0,'E','u','r','o','p','e','a','n','_','S','e','p','a','r','a','t','o','r',0, @@ -1509,9 +1540,22 @@ const char PropNameData::nameGroups[22098]={ 'n','t',0,2,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g', 0,'S','y','m','b','o','l','s','_','F','o','r','_','L','e','g','a','c','y','_','C','o','m','p','u','t','i','n','g',0, 2,'T','a','n','g','u','t','_','S','u','p',0,'T','a','n','g','u','t','_','S','u','p','p','l','e','m','e','n','t',0, -2,'Y','e','z','i','d','i',0,'Y','e','z','i','d','i',0,2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o', -'m','b','i','n','i','n','g','_','C','l','a','s','s',0,2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_', -'T','y','p','e',0,3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0, +2,'Y','e','z','i','d','i',0,'Y','e','z','i','d','i',0,2,'A','r','a','b','i','c','_','E','x','t','_','B',0, +'A','r','a','b','i','c','_','E','x','t','e','n','d','e','d','_','B',0, +2,'C','y','p','r','o','_','M','i','n','o','a','n',0,'C','y','p','r','o','_','M','i','n','o','a','n',0, +2,'E','t','h','i','o','p','i','c','_','E','x','t','_','B',0,'E','t','h','i','o','p','i','c','_','E','x','t','e','n','d','e', +'d','_','B',0,2,'K','a','n','a','_','E','x','t','_','B',0,'K','a','n','a','_','E','x','t','e','n','d','e','d','_','B',0, +2,'L','a','t','i','n','_','E','x','t','_','F',0,'L','a','t','i','n','_','E','x','t','e','n','d','e','d','_','F',0, +2,'L','a','t','i','n','_','E','x','t','_','G',0,'L','a','t','i','n','_','E','x','t','e','n','d','e','d','_','G',0, +2,'O','l','d','_','U','y','g','h','u','r',0,'O','l','d','_','U','y','g','h','u','r',0, +2,'T','a','n','g','s','a',0,'T','a','n','g','s','a',0,2,'T','o','t','o',0,'T','o','t','o',0, +2,'U','C','A','S','_','E','x','t','_','A',0,'U','n','i','f','i','e','d','_','C','a','n','a','d','i','a','n','_','A','b','o', +'r','i','g','i','n','a','l','_','S','y','l','l','a','b','i','c','s','_','E','x','t','e','n','d','e','d','_','A',0, +2,'V','i','t','h','k','u','q','i',0,'V','i','t','h','k','u','q','i',0, +2,'Z','n','a','m','e','n','n','y','_','M','u','s','i','c',0,'Z','n','a','m','e','n','n','y','_','M','u','s','i','c','a','l', +'_','N','o','t','a','t','i','o','n',0,2,'c','c','c',0,'C','a','n','o','n','i','c','a','l','_','C','o','m','b','i','n','i', +'n','g','_','C','l','a','s','s',0,2,'d','t',0,'D','e','c','o','m','p','o','s','i','t','i','o','n','_','T','y','p','e',0, +3,'N','o','n','e',0,'N','o','n','e',0,'n','o','n','e',0, 3,'C','a','n',0,'C','a','n','o','n','i','c','a','l',0,'c','a','n',0, 3,'C','o','m',0,'C','o','m','p','a','t',0,'c','o','m',0, 3,'E','n','c',0,'C','i','r','c','l','e',0,'e','n','c',0, @@ -1644,7 +1688,9 @@ const char PropNameData::nameGroups[22098]={ 2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','K','i','n','n','a','_','Y','a',0, 'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','K','i','n','n','a','_','Y','a',0, 2,'H','a','n','i','f','i','_','R','o','h','i','n','g','y','a','_','P','a',0,'H','a','n','i','f','i','_','R','o','h','i','n', -'g','y','a','_','P','a',0,2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0, +'g','y','a','_','P','a',0,2,'T','h','i','n','_','Y','e','h',0,'T','h','i','n','_','Y','e','h',0, +2,'V','e','r','t','i','c','a','l','_','T','a','i','l',0,'V','e','r','t','i','c','a','l','_','T','a','i','l',0, +2,'j','t',0,'J','o','i','n','i','n','g','_','T','y','p','e',0, 2,'U',0,'N','o','n','_','J','o','i','n','i','n','g',0,2,'C',0,'J','o','i','n','_','C','a','u','s','i','n','g',0, 2,'D',0,'D','u','a','l','_','J','o','i','n','i','n','g',0, 2,'L',0,'L','e','f','t','_','J','o','i','n','i','n','g',0, @@ -1795,8 +1841,11 @@ const char PropNameData::nameGroups[22098]={ 2,'W','c','h','o',0,'W','a','n','c','h','o',0,2,'C','h','r','s',0,'C','h','o','r','a','s','m','i','a','n',0, 2,'D','i','a','k',0,'D','i','v','e','s','_','A','k','u','r','u',0, 2,'K','i','t','s',0,'K','h','i','t','a','n','_','S','m','a','l','l','_','S','c','r','i','p','t',0, -2,'Y','e','z','i',0,'Y','e','z','i','d','i',0,2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l', -'e','_','T','y','p','e',0,2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, +2,'Y','e','z','i',0,'Y','e','z','i','d','i',0,2,'C','p','m','n',0,'C','y','p','r','o','_','M','i','n','o','a','n',0, +2,'O','u','g','r',0,'O','l','d','_','U','y','g','h','u','r',0, +2,'T','n','s','a',0,'T','a','n','g','s','a',0,2,'V','i','t','h',0,'V','i','t','h','k','u','q','i',0, +2,'h','s','t',0,'H','a','n','g','u','l','_','S','y','l','l','a','b','l','e','_','T','y','p','e',0, +2,'N','A',0,'N','o','t','_','A','p','p','l','i','c','a','b','l','e',0, 2,'L',0,'L','e','a','d','i','n','g','_','J','a','m','o',0, 2,'V',0,'V','o','w','e','l','_','J','a','m','o',0,2,'T',0,'T','r','a','i','l','i','n','g','_','J','a','m','o',0, 2,'L','V',0,'L','V','_','S','y','l','l','a','b','l','e',0, diff --git a/deps/icu-small/source/common/punycode.cpp b/deps/icu-small/source/common/punycode.cpp index 94d32a66d7678d..4832938ff7eb51 100644 --- a/deps/icu-small/source/common/punycode.cpp +++ b/deps/icu-small/source/common/punycode.cpp @@ -468,7 +468,7 @@ u_strFromPunycode(const UChar *src, int32_t srcLength, } i+=digit*w; - /** RAM: comment out the old code for conformance with draft-ietf-idn-punycode-03.txt + /** RAM: comment out the old code for conformance with draft-ietf-idn-punycode-03.txt t=k-bias; if(tdefaultTZFileSize) { result = FALSE; } else { - /* Store the data from the files in seperate buffers and + /* Store the data from the files in separate buffers and * compare each byte to determine equality. */ if (tzInfo->defaultTZBuffer == NULL) { diff --git a/deps/icu-small/source/common/rbbi.cpp b/deps/icu-small/source/common/rbbi.cpp index b821ca44639369..f65177f232334d 100644 --- a/deps/icu-small/source/common/rbbi.cpp +++ b/deps/icu-small/source/common/rbbi.cpp @@ -262,7 +262,7 @@ RuleBasedBreakIterator::operator=(const RuleBasedBreakIterator& that) { fCharIter = &fSCharIter; if (that.fCharIter != NULL && that.fCharIter != &that.fSCharIter) { - // This is a little bit tricky - it will intially appear that + // This is a little bit tricky - it will initially appear that // this->fCharIter is adopted, even if that->fCharIter was // not adopted. That's ok. fCharIter = that.fCharIter->clone(); @@ -366,16 +366,16 @@ RuleBasedBreakIterator::clone() const { } /** - * Equality operator. Returns TRUE if both BreakIterators are of the + * Equality operator. Returns true if both BreakIterators are of the * same class, have the same behavior, and iterate over the same text. */ -UBool +bool RuleBasedBreakIterator::operator==(const BreakIterator& that) const { if (typeid(*this) != typeid(that)) { - return FALSE; + return false; } if (this == &that) { - return TRUE; + return true; } // The base class BreakIterator carries no state that participates in equality, @@ -388,21 +388,21 @@ RuleBasedBreakIterator::operator==(const BreakIterator& that) const { // The two break iterators are operating on different text, // or have a different iteration position. // Note that fText's position is always the same as the break iterator's position. - return FALSE; + return false; } if (!(fPosition == that2.fPosition && fRuleStatusIndex == that2.fRuleStatusIndex && fDone == that2.fDone)) { - return FALSE; + return false; } if (that2.fData == fData || (fData != NULL && that2.fData != NULL && *that2.fData == *fData)) { // The two break iterators are using the same rules. - return TRUE; + return true; } - return FALSE; + return false; } /** @@ -671,7 +671,7 @@ int32_t RuleBasedBreakIterator::preceding(int32_t offset) { } /** - * Returns true if the specfied position is a boundary position. As a side + * Returns true if the specified position is a boundary position. As a side * effect, leaves the iterator pointing to the first boundary position at * or after "offset". * @@ -1037,7 +1037,7 @@ int32_t RuleBasedBreakIterator::handleSafePrevious(int32_t fromPosition) { if (state == STOP_STATE) { // This is the normal exit from the lookup state machine. - // Transistion to state zero means we have found a safe point. + // Transition to state zero means we have found a safe point. break; } } @@ -1260,6 +1260,7 @@ RuleBasedBreakIterator::getLanguageBreakEngine(UChar32 c) { // first. fLanguageBreakEngines->insertElementAt(fUnhandledBreakEngine, 0, status); // If we can't insert it, or creation failed, get rid of it + U_ASSERT(!fLanguageBreakEngines->hasDeleter()); if (U_FAILURE(status)) { delete fUnhandledBreakEngine; fUnhandledBreakEngine = 0; diff --git a/deps/icu-small/source/common/rbbi_cache.cpp b/deps/icu-small/source/common/rbbi_cache.cpp index 44f19d86973d75..6bfe3feca495f6 100644 --- a/deps/icu-small/source/common/rbbi_cache.cpp +++ b/deps/icu-small/source/common/rbbi_cache.cpp @@ -74,7 +74,7 @@ UBool RuleBasedBreakIterator::DictionaryCache::following(int32_t fromPos, int32_ return TRUE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } @@ -114,7 +114,7 @@ UBool RuleBasedBreakIterator::DictionaryCache::preceding(int32_t fromPos, int32_ return TRUE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } void RuleBasedBreakIterator::DictionaryCache::populateDictionary(int32_t startPos, int32_t endPos, @@ -163,7 +163,7 @@ void RuleBasedBreakIterator::DictionaryCache::populateDictionary(int32_t startPo // Ask the language object if there are any breaks. It will add them to the cache and // leave the text pointer on the other side of its range, ready to search for the next one. if (lbe != NULL) { - foundBreakCount += lbe->findBreaks(text, rangeStart, rangeEnd, fBreaks); + foundBreakCount += lbe->findBreaks(text, rangeStart, rangeEnd, fBreaks, status); } // Reload the loop variables for the next go-round @@ -201,7 +201,7 @@ void RuleBasedBreakIterator::DictionaryCache::populateDictionary(int32_t startPo /* - * BreakCache implemetation + * BreakCache implementation */ RuleBasedBreakIterator::BreakCache::BreakCache(RuleBasedBreakIterator *bi, UErrorCode &status) : @@ -386,7 +386,7 @@ UBool RuleBasedBreakIterator::BreakCache::populateNear(int32_t position, UErrorC // Add following position(s) to the cache. while (fBoundaries[fEndBufIdx] < position) { if (!populateFollowing()) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } fBufIdx = fEndBufIdx; // Set iterator position to the end of the buffer. diff --git a/deps/icu-small/source/common/rbbi_cache.h b/deps/icu-small/source/common/rbbi_cache.h index 8c1fa86e7d1aa1..597312e85c4536 100644 --- a/deps/icu-small/source/common/rbbi_cache.h +++ b/deps/icu-small/source/common/rbbi_cache.h @@ -30,7 +30,7 @@ U_NAMESPACE_BEGIN * * The boundaries are stored in a simple ArrayList (vector), with the * assumption that they will be accessed sequentially. - */ + */ class RuleBasedBreakIterator::DictionaryCache: public UMemory { public: DictionaryCache(RuleBasedBreakIterator *bi, UErrorCode &status); @@ -55,7 +55,7 @@ class RuleBasedBreakIterator::DictionaryCache: public UMemory { RuleBasedBreakIterator *fBI; - + UVector32 fBreaks; // A vector containing the boundaries. int32_t fPositionInCache; // Index in fBreaks of last boundary returned by following() // or preceding(). Optimizes sequential access. diff --git a/deps/icu-small/source/common/rbbicst.pl b/deps/icu-small/source/common/rbbicst.pl index 29f575d7d09357..1a01386c7c101d 100755 --- a/deps/icu-small/source/common/rbbicst.pl +++ b/deps/icu-small/source/common/rbbicst.pl @@ -7,7 +7,7 @@ # and others. All rights reserved. #************************************************************************** # -# rbbicst Compile the RBBI rule paser state table data into initialized C data. +# rbbicst Compile the RBBI rule parser state table data into initialized C data. # Usage: # cd icu/source/common # perl rbbicst.pl < rbbirpt.txt > rbbirpt.h @@ -264,7 +264,7 @@ $n++; } print " \n"; - + # # Emit constants for char class names # @@ -272,8 +272,8 @@ print " static final short kRuleSet_$setName = $charClasses{$setName};\n"; } print "\n\n"; - - + + print " static class RBBIRuleTableElement { \n"; print " short fAction; \n"; print " short fCharClass; \n"; @@ -291,20 +291,20 @@ print " } \n"; print " }; \n"; print " \n"; - - + + print " static RBBIRuleTableElement[] gRuleParseStateTable = { \n "; - print " new RBBIRuleTableElement(doNOP, 0, 0,0, true, null ) // 0 \n"; #output the unused state 0. + print " new RBBIRuleTableElement(doNOP, 0, 0,0, true, null ) // 0 \n"; #output the unused state 0. for ($state=1; $state < $num_states; $state++) { print " , new RBBIRuleTableElement($state_func_name[$state],"; if ($state_literal_chars[$state] ne "") { $c = $state_literal_chars[$state]; - print("'$c', "); + print("'$c', "); }else { print " $charClasses{$state_char_class[$state]},"; } print " $states{$state_dest_state[$state]},"; - + # The push-state field is optional. If omitted, fill field with a zero, which flags # the state machine that there is no push state. if ($state_push_state[$state] eq "") { @@ -313,14 +313,14 @@ print " $states{$state_push_state[$state]},"; } print " $state_flag[$state], "; - + # if this is the first row of the table for this state, put out the state name. if ($stateNames[$state] ne "") { print " \"$stateNames[$state]\") "; } else { print " null ) "; } - + # Put out a comment showing the number (index) of this state row, print " // $state "; print "\n"; @@ -328,7 +328,7 @@ print " };\n"; print "}; \n"; - + } else { @@ -357,7 +357,7 @@ print "U_NAMESPACE_BEGIN\n"; # - # Emit the constants for indicies of Unicode Sets + # Emit the constants for indices of Unicode Sets # Define one constant for each of the character classes encountered. # At the same time, store the index corresponding to the set name back into hash. # @@ -382,7 +382,7 @@ print " rbbiLastAction};\n\n"; # - # Emit the struct definition for transtion table elements. + # Emit the struct definition for transition table elements. # print "//-------------------------------------------------------------------------------\n"; print "//\n"; @@ -454,3 +454,6 @@ print "U_NAMESPACE_END\n"; print "#endif\n"; } + + + diff --git a/deps/icu-small/source/common/rbbidata.cpp b/deps/icu-small/source/common/rbbidata.cpp index f78d9d06689178..6338ed3ed857d3 100644 --- a/deps/icu-small/source/common/rbbidata.cpp +++ b/deps/icu-small/source/common/rbbidata.cpp @@ -170,17 +170,17 @@ RBBIDataWrapper::~RBBIDataWrapper() { // should still be ==. // //----------------------------------------------------------------------------- -UBool RBBIDataWrapper::operator ==(const RBBIDataWrapper &other) const { +bool RBBIDataWrapper::operator ==(const RBBIDataWrapper &other) const { if (fHeader == other.fHeader) { - return TRUE; + return true; } if (fHeader->fLength != other.fHeader->fLength) { - return FALSE; + return false; } if (uprv_memcmp(fHeader, other.fHeader, fHeader->fLength) == 0) { - return TRUE; + return true; } - return FALSE; + return false; } int32_t RBBIDataWrapper::hashCode() { @@ -283,7 +283,7 @@ void RBBIDataWrapper::printData() { printTable("Forward State Transition Table", fForwardTable); printTable("Reverse State Transition Table", fReverseTable); - RBBIDebugPrintf("\nOrignal Rules source:\n"); + RBBIDebugPrintf("\nOriginal Rules source:\n"); for (int32_t c=0; fRuleSource[c] != 0; c++) { RBBIDebugPrintf("%c", fRuleSource[c]); } @@ -345,7 +345,7 @@ ubrk_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *outD // const uint8_t *inBytes =(const uint8_t *)inData+headerSize; RBBIDataHeader *rbbiDH = (RBBIDataHeader *)inBytes; - if (ds->readUInt32(rbbiDH->fMagic) != 0xb1a0 || + if (ds->readUInt32(rbbiDH->fMagic) != 0xb1a0 || !RBBIDataWrapper::isDataVersionAcceptable(rbbiDH->fFormatVersion) || ds->readUInt32(rbbiDH->fLength) < sizeof(RBBIDataHeader)) { udata_printError(ds, "ubrk_swap(): RBBI Data header is invalid.\n"); diff --git a/deps/icu-small/source/common/rbbidata.h b/deps/icu-small/source/common/rbbidata.h index 5d725deba4c262..1bc76d5e5dc95f 100644 --- a/deps/icu-small/source/common/rbbidata.h +++ b/deps/icu-small/source/common/rbbidata.h @@ -61,8 +61,8 @@ U_NAMESPACE_BEGIN // The current RBBI data format version. static const uint8_t RBBI_DATA_FORMAT_VERSION[] = {6, 0, 0, 0}; -/* - * The following structs map exactly onto the raw data from ICU common data file. +/* + * The following structs map exactly onto the raw data from ICU common data file. */ struct RBBIDataHeader { uint32_t fMagic; /* == 0xbla0 */ @@ -171,7 +171,7 @@ class RBBIDataWrapper : public UMemory { void init(const RBBIDataHeader *data, UErrorCode &status); RBBIDataWrapper *addReference(); void removeReference(); - UBool operator ==(const RBBIDataWrapper &other) const; + bool operator ==(const RBBIDataWrapper &other) const; int32_t hashCode(); const UnicodeString &getRuleSourceString() const; void printData(); @@ -184,7 +184,7 @@ class RBBIDataWrapper : public UMemory { const RBBIStateTable *fForwardTable; const RBBIStateTable *fReverseTable; const char *fRuleSource; - const int32_t *fRuleStatusTable; + const int32_t *fRuleStatusTable; /* number of int32_t values in the rule status table. Used to sanity check indexing */ int32_t fStatusMaxIdx; diff --git a/deps/icu-small/source/common/rbbinode.cpp b/deps/icu-small/source/common/rbbinode.cpp index 2181d81acad2f2..27bcd8f8feb849 100644 --- a/deps/icu-small/source/common/rbbinode.cpp +++ b/deps/icu-small/source/common/rbbinode.cpp @@ -266,6 +266,7 @@ void RBBINode::findNodes(UVector *dest, RBBINode::NodeType kind, UErrorCode &s if (U_FAILURE(status)) { return; } + U_ASSERT(!dest->hasDeleter()); if (fType == kind) { dest->addElement(this, status); } @@ -343,7 +344,7 @@ U_CFUNC void RBBI_DEBUG_printUnicodeString(const UnicodeString &s, int minWidth) void RBBINode::printNodeHeader() { RBBIDebugPrintf(" Address serial type LeftChild RightChild Parent position value\n"); } - + void RBBINode::printTree(const RBBINode *node, UBool printHeading) { if (printHeading) { printNodeHeader(); @@ -351,12 +352,12 @@ void RBBINode::printTree(const RBBINode *node, UBool printHeading) { printNode(node); if (node != NULL) { // Only dump the definition under a variable reference if asked to. - // Unconditinally dump children of all other node types. + // Unconditionally dump children of all other node types. if (node->fType != varRef) { if (node->fLeftChild != NULL) { printTree(node->fLeftChild, FALSE); } - + if (node->fRightChild != NULL) { printTree(node->fRightChild, FALSE); } diff --git a/deps/icu-small/source/common/rbbinode.h b/deps/icu-small/source/common/rbbinode.h index ef4e4ccac7f08e..4ed84d4e073fad 100644 --- a/deps/icu-small/source/common/rbbinode.h +++ b/deps/icu-small/source/common/rbbinode.h @@ -46,21 +46,21 @@ class RBBINode : public UMemory { opLParen }; - enum OpPrecedence { + enum OpPrecedence { precZero, precStart, precLParen, precOpOr, precOpCat }; - + NodeType fType; RBBINode *fParent; RBBINode *fLeftChild; RBBINode *fRightChild; UnicodeSet *fInputSet; // For uset nodes only. OpPrecedence fPrecedence; // For binary ops only. - + UnicodeString fText; // Text corresponding to this node. // May be lazily evaluated when (if) needed // for some node types. @@ -71,7 +71,7 @@ class RBBINode : public UMemory { int fLastPos; // Last position in the rule source string // of any text associated with this node. // If there's a right child, this will be the same - // as that child's last postion. + // as that child's last position. UBool fNullable; // See Aho. int32_t fVal; // For leafChar nodes, the value. @@ -94,7 +94,7 @@ class RBBINode : public UMemory { RBBINode(NodeType t); RBBINode(const RBBINode &other); ~RBBINode(); - + RBBINode *cloneTree(); RBBINode *flattenVariables(); void flattenSets(); @@ -108,7 +108,7 @@ class RBBINode : public UMemory { private: RBBINode &operator = (const RBBINode &other); // No defs. - UBool operator == (const RBBINode &other); // Private, so these functions won't accidently be used. + bool operator == (const RBBINode &other); // Private, so these functions won't accidentally be used. #ifdef RBBI_DEBUG public: @@ -117,10 +117,11 @@ class RBBINode : public UMemory { }; #ifdef RBBI_DEBUG -U_CFUNC void +U_CFUNC void RBBI_DEBUG_printUnicodeString(const UnicodeString &s, int minWidth=0); #endif U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/common/rbbirb.cpp b/deps/icu-small/source/common/rbbirb.cpp index 09c8d3de7e6687..e5c250dfe4056f 100644 --- a/deps/icu-small/source/common/rbbirb.cpp +++ b/deps/icu-small/source/common/rbbirb.cpp @@ -268,7 +268,7 @@ RBBIRuleBuilder::createRuleBasedBreakIterator( const UnicodeString &rules, if (U_FAILURE(status)) { delete This; This = NULL; - } + } else if(This == NULL) { // test for NULL status = U_MEMORY_ALLOCATION_ERROR; } diff --git a/deps/icu-small/source/common/rbbirb.h b/deps/icu-small/source/common/rbbirb.h index 37992daabb0b14..11dbf343ece41b 100644 --- a/deps/icu-small/source/common/rbbirb.h +++ b/deps/icu-small/source/common/rbbirb.h @@ -73,10 +73,10 @@ class RBBISymbolTable : public UMemory, public SymbolTable { public: // API inherited from class SymbolTable - virtual const UnicodeString* lookup(const UnicodeString& s) const; - virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const; + virtual const UnicodeString* lookup(const UnicodeString& s) const override; + virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const override; virtual UnicodeString parseReference(const UnicodeString& text, - ParsePosition& pos, int32_t limit) const; + ParsePosition& pos, int32_t limit) const override; // Additional Functions RBBISymbolTable(RBBIRuleScanner *, const UnicodeString &fRules, UErrorCode &status); @@ -91,7 +91,7 @@ class RBBISymbolTable : public UMemory, public SymbolTable { // A do-nothing inline function for non-debug builds. Member funcs can't be empty // or the call sites won't compile. int32_t fFakeField; - #define rbbiSymtablePrint() fFakeField=0; + #define rbbiSymtablePrint() fFakeField=0; #endif private: @@ -223,7 +223,7 @@ typedef std::pair IntPair; #define RBBIDebugPrintf printf #define RBBIDebugPuts puts #else -#undef RBBIDebugPrintf +#undef RBBIDebugPrintf #define RBBIDebugPuts(arg) #endif @@ -232,3 +232,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_BREAK_ITERATION */ #endif + + + diff --git a/deps/icu-small/source/common/rbbirpt.h b/deps/icu-small/source/common/rbbirpt.h index b94c4c25cbfb8c..586953c90c6fa4 100644 --- a/deps/icu-small/source/common/rbbirpt.h +++ b/deps/icu-small/source/common/rbbirpt.h @@ -8,8 +8,8 @@ // It is generated by the Perl script "rbbicst.pl" from // the rule parser state definitions file "rbbirpt.txt". // -// Copyright (C) 2002-2016 International Business Machines Corporation -// and others. All rights reserved. +// Copyright (C) 2002-2016 International Business Machines Corporation +// and others. All rights reserved. // //--------------------------------------------------------------------------------- #ifndef RBBIRPT_H @@ -81,107 +81,107 @@ struct RBBIRuleTableEl { static const struct RBBIRuleTableEl gRuleParseStateTable[] = { {doNOP, 0, 0, 0, TRUE} , {doExprStart, 254, 29, 9, FALSE} // 1 start - , {doNOP, 132, 1,0, TRUE} // 2 - , {doNoChain, 94 /* ^ */, 12, 9, TRUE} // 3 - , {doExprStart, 36 /* $ */, 88, 98, FALSE} // 4 - , {doNOP, 33 /* ! */, 19,0, TRUE} // 5 - , {doNOP, 59 /* ; */, 1,0, TRUE} // 6 - , {doNOP, 252, 0,0, FALSE} // 7 - , {doExprStart, 255, 29, 9, FALSE} // 8 + , {doNOP, 132, 1,0, TRUE} // 2 + , {doNoChain, 94 /* ^ */, 12, 9, TRUE} // 3 + , {doExprStart, 36 /* $ */, 88, 98, FALSE} // 4 + , {doNOP, 33 /* ! */, 19,0, TRUE} // 5 + , {doNOP, 59 /* ; */, 1,0, TRUE} // 6 + , {doNOP, 252, 0,0, FALSE} // 7 + , {doExprStart, 255, 29, 9, FALSE} // 8 , {doEndOfRule, 59 /* ; */, 1,0, TRUE} // 9 break-rule-end - , {doNOP, 132, 9,0, TRUE} // 10 - , {doRuleError, 255, 103,0, FALSE} // 11 + , {doNOP, 132, 9,0, TRUE} // 10 + , {doRuleError, 255, 103,0, FALSE} // 11 , {doExprStart, 254, 29,0, FALSE} // 12 start-after-caret - , {doNOP, 132, 12,0, TRUE} // 13 - , {doRuleError, 94 /* ^ */, 103,0, FALSE} // 14 - , {doExprStart, 36 /* $ */, 88, 37, FALSE} // 15 - , {doRuleError, 59 /* ; */, 103,0, FALSE} // 16 - , {doRuleError, 252, 103,0, FALSE} // 17 - , {doExprStart, 255, 29,0, FALSE} // 18 + , {doNOP, 132, 12,0, TRUE} // 13 + , {doRuleError, 94 /* ^ */, 103,0, FALSE} // 14 + , {doExprStart, 36 /* $ */, 88, 37, FALSE} // 15 + , {doRuleError, 59 /* ; */, 103,0, FALSE} // 16 + , {doRuleError, 252, 103,0, FALSE} // 17 + , {doExprStart, 255, 29,0, FALSE} // 18 , {doNOP, 33 /* ! */, 21,0, TRUE} // 19 rev-option - , {doReverseDir, 255, 28, 9, FALSE} // 20 + , {doReverseDir, 255, 28, 9, FALSE} // 20 , {doOptionStart, 130, 23,0, TRUE} // 21 option-scan1 - , {doRuleError, 255, 103,0, FALSE} // 22 + , {doRuleError, 255, 103,0, FALSE} // 22 , {doNOP, 129, 23,0, TRUE} // 23 option-scan2 - , {doOptionEnd, 255, 25,0, FALSE} // 24 + , {doOptionEnd, 255, 25,0, FALSE} // 24 , {doNOP, 59 /* ; */, 1,0, TRUE} // 25 option-scan3 - , {doNOP, 132, 25,0, TRUE} // 26 - , {doRuleError, 255, 103,0, FALSE} // 27 + , {doNOP, 132, 25,0, TRUE} // 26 + , {doRuleError, 255, 103,0, FALSE} // 27 , {doExprStart, 255, 29, 9, FALSE} // 28 reverse-rule , {doRuleChar, 254, 38,0, TRUE} // 29 term - , {doNOP, 132, 29,0, TRUE} // 30 - , {doRuleChar, 131, 38,0, TRUE} // 31 - , {doNOP, 91 /* [ */, 94, 38, FALSE} // 32 - , {doLParen, 40 /* ( */, 29, 38, TRUE} // 33 - , {doNOP, 36 /* $ */, 88, 37, FALSE} // 34 - , {doDotAny, 46 /* . */, 38,0, TRUE} // 35 - , {doRuleError, 255, 103,0, FALSE} // 36 + , {doNOP, 132, 29,0, TRUE} // 30 + , {doRuleChar, 131, 38,0, TRUE} // 31 + , {doNOP, 91 /* [ */, 94, 38, FALSE} // 32 + , {doLParen, 40 /* ( */, 29, 38, TRUE} // 33 + , {doNOP, 36 /* $ */, 88, 37, FALSE} // 34 + , {doDotAny, 46 /* . */, 38,0, TRUE} // 35 + , {doRuleError, 255, 103,0, FALSE} // 36 , {doCheckVarDef, 255, 38,0, FALSE} // 37 term-var-ref , {doNOP, 132, 38,0, TRUE} // 38 expr-mod - , {doUnaryOpStar, 42 /* * */, 43,0, TRUE} // 39 - , {doUnaryOpPlus, 43 /* + */, 43,0, TRUE} // 40 - , {doUnaryOpQuestion, 63 /* ? */, 43,0, TRUE} // 41 - , {doNOP, 255, 43,0, FALSE} // 42 + , {doUnaryOpStar, 42 /* * */, 43,0, TRUE} // 39 + , {doUnaryOpPlus, 43 /* + */, 43,0, TRUE} // 40 + , {doUnaryOpQuestion, 63 /* ? */, 43,0, TRUE} // 41 + , {doNOP, 255, 43,0, FALSE} // 42 , {doExprCatOperator, 254, 29,0, FALSE} // 43 expr-cont - , {doNOP, 132, 43,0, TRUE} // 44 - , {doExprCatOperator, 131, 29,0, FALSE} // 45 - , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 46 - , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 47 - , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 48 - , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 49 - , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 50 - , {doExprCatOperator, 123 /* { */, 67,0, TRUE} // 51 - , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 52 - , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 53 - , {doExprFinished, 255, 255,0, FALSE} // 54 + , {doNOP, 132, 43,0, TRUE} // 44 + , {doExprCatOperator, 131, 29,0, FALSE} // 45 + , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 46 + , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 47 + , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 48 + , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 49 + , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 50 + , {doExprCatOperator, 123 /* { */, 67,0, TRUE} // 51 + , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 52 + , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 53 + , {doExprFinished, 255, 255,0, FALSE} // 54 , {doSlash, 47 /* / */, 57,0, TRUE} // 55 look-ahead - , {doNOP, 255, 103,0, FALSE} // 56 + , {doNOP, 255, 103,0, FALSE} // 56 , {doExprCatOperator, 254, 29,0, FALSE} // 57 expr-cont-no-slash - , {doNOP, 132, 43,0, TRUE} // 58 - , {doExprCatOperator, 131, 29,0, FALSE} // 59 - , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 60 - , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 61 - , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 62 - , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 63 - , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 64 - , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 65 - , {doExprFinished, 255, 255,0, FALSE} // 66 + , {doNOP, 132, 43,0, TRUE} // 58 + , {doExprCatOperator, 131, 29,0, FALSE} // 59 + , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 60 + , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 61 + , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 62 + , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 63 + , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 64 + , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 65 + , {doExprFinished, 255, 255,0, FALSE} // 66 , {doNOP, 132, 67,0, TRUE} // 67 tag-open - , {doStartTagValue, 128, 70,0, FALSE} // 68 - , {doTagExpectedError, 255, 103,0, FALSE} // 69 + , {doStartTagValue, 128, 70,0, FALSE} // 68 + , {doTagExpectedError, 255, 103,0, FALSE} // 69 , {doNOP, 132, 74,0, TRUE} // 70 tag-value - , {doNOP, 125 /* } */, 74,0, FALSE} // 71 - , {doTagDigit, 128, 70,0, TRUE} // 72 - , {doTagExpectedError, 255, 103,0, FALSE} // 73 + , {doNOP, 125 /* } */, 74,0, FALSE} // 71 + , {doTagDigit, 128, 70,0, TRUE} // 72 + , {doTagExpectedError, 255, 103,0, FALSE} // 73 , {doNOP, 132, 74,0, TRUE} // 74 tag-close - , {doTagValue, 125 /* } */, 77,0, TRUE} // 75 - , {doTagExpectedError, 255, 103,0, FALSE} // 76 + , {doTagValue, 125 /* } */, 77,0, TRUE} // 75 + , {doTagExpectedError, 255, 103,0, FALSE} // 76 , {doExprCatOperator, 254, 29,0, FALSE} // 77 expr-cont-no-tag - , {doNOP, 132, 77,0, TRUE} // 78 - , {doExprCatOperator, 131, 29,0, FALSE} // 79 - , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 80 - , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 81 - , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 82 - , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 83 - , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 84 - , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 85 - , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 86 - , {doExprFinished, 255, 255,0, FALSE} // 87 + , {doNOP, 132, 77,0, TRUE} // 78 + , {doExprCatOperator, 131, 29,0, FALSE} // 79 + , {doExprCatOperator, 91 /* [ */, 29,0, FALSE} // 80 + , {doExprCatOperator, 40 /* ( */, 29,0, FALSE} // 81 + , {doExprCatOperator, 36 /* $ */, 29,0, FALSE} // 82 + , {doExprCatOperator, 46 /* . */, 29,0, FALSE} // 83 + , {doExprCatOperator, 47 /* / */, 55,0, FALSE} // 84 + , {doExprOrOperator, 124 /* | */, 29,0, TRUE} // 85 + , {doExprRParen, 41 /* ) */, 255,0, TRUE} // 86 + , {doExprFinished, 255, 255,0, FALSE} // 87 , {doStartVariableName, 36 /* $ */, 90,0, TRUE} // 88 scan-var-name - , {doNOP, 255, 103,0, FALSE} // 89 + , {doNOP, 255, 103,0, FALSE} // 89 , {doNOP, 130, 92,0, TRUE} // 90 scan-var-start - , {doVariableNameExpectedErr, 255, 103,0, FALSE} // 91 + , {doVariableNameExpectedErr, 255, 103,0, FALSE} // 91 , {doNOP, 129, 92,0, TRUE} // 92 scan-var-body - , {doEndVariableName, 255, 255,0, FALSE} // 93 + , {doEndVariableName, 255, 255,0, FALSE} // 93 , {doScanUnicodeSet, 91 /* [ */, 255,0, TRUE} // 94 scan-unicode-set - , {doScanUnicodeSet, 112 /* p */, 255,0, TRUE} // 95 - , {doScanUnicodeSet, 80 /* P */, 255,0, TRUE} // 96 - , {doNOP, 255, 103,0, FALSE} // 97 + , {doScanUnicodeSet, 112 /* p */, 255,0, TRUE} // 95 + , {doScanUnicodeSet, 80 /* P */, 255,0, TRUE} // 96 + , {doNOP, 255, 103,0, FALSE} // 97 , {doNOP, 132, 98,0, TRUE} // 98 assign-or-rule - , {doStartAssign, 61 /* = */, 29, 101, TRUE} // 99 - , {doNOP, 255, 37, 9, FALSE} // 100 + , {doStartAssign, 61 /* = */, 29, 101, TRUE} // 99 + , {doNOP, 255, 37, 9, FALSE} // 100 , {doEndAssign, 59 /* ; */, 1,0, TRUE} // 101 assign-end - , {doRuleErrorAssignExpr, 255, 103,0, FALSE} // 102 + , {doRuleErrorAssignExpr, 255, 103,0, FALSE} // 102 , {doExit, 255, 103,0, TRUE} // 103 errorDeath }; #ifdef RBBI_DEBUG diff --git a/deps/icu-small/source/common/rbbiscan.cpp b/deps/icu-small/source/common/rbbiscan.cpp index 7838475290b935..1304f7e37e6961 100644 --- a/deps/icu-small/source/common/rbbiscan.cpp +++ b/deps/icu-small/source/common/rbbiscan.cpp @@ -96,7 +96,7 @@ RBBIRuleScanner::RBBIRuleScanner(RBBIRuleBuilder *rb) fLineNum = 1; fCharNum = 0; fLastChar = 0; - + fStateTable = NULL; fStack[0] = 0; fStackPtr = 0; @@ -175,7 +175,7 @@ RBBIRuleScanner::~RBBIRuleScanner() { // Node Stack. // Normally has one entry, which is the entire parse tree for the rules. - // If errors occured, there may be additional subtrees left on the stack. + // If errors occurred, there may be additional subtrees left on the stack. while (fNodeStackPtr > 0) { delete fNodeStack[fNodeStackPtr]; fNodeStackPtr--; @@ -357,7 +357,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) thisRule->fRuleRoot = TRUE; // Flag if chaining into this rule is wanted. - // + // if (fRB->fChainRules && // If rule chaining is enabled globally via !!chain !fNoChainInRule) { // and no '^' chain-in inhibit was on this rule thisRule->fChainIn = TRUE; @@ -375,7 +375,7 @@ UBool RBBIRuleScanner::doParseActions(int32_t action) RBBINode **destRules = (fReverseRule? &fRB->fSafeRevTree : fRB->fDefaultTree); if (*destRules != NULL) { - // This is not the first rule encounted. + // This is not the first rule encountered. // OR previous stuff (from *destRules) // with the current rule expression (on the Node Stack) // with the resulting OR expression going to *destRules @@ -1116,7 +1116,7 @@ void RBBIRuleScanner::parse() { if (U_FAILURE(*fRB->fStatus)) { return; } - + // If there are no forward rules set an error. // if (fRB->fForwardTree == NULL) { @@ -1223,7 +1223,7 @@ void RBBIRuleScanner::scanSet() { // TODO: Get more accurate position of the error from UnicodeSet's return info. // UnicodeSet appears to not be reporting correctly at this time. #ifdef RBBI_DEBUG - RBBIDebugPrintf("UnicodeSet parse postion.ErrorIndex = %d\n", pos.getIndex()); + RBBIDebugPrintf("UnicodeSet parse position.ErrorIndex = %d\n", pos.getIndex()); #endif error(localStatus); delete uset; @@ -1244,7 +1244,7 @@ void RBBIRuleScanner::scanSet() { } - // Advance the RBBI parse postion over the UnicodeSet pattern. + // Advance the RBBI parse position over the UnicodeSet pattern. // Don't just set fScanIndex because the line/char positions maintained // for error reporting would be thrown off. i = pos.getIndex(); @@ -1267,7 +1267,7 @@ void RBBIRuleScanner::scanSet() { fRB->fRules.extractBetween(n->fFirstPos, n->fLastPos, n->fText); // findSetFor() serves several purposes here: // - Adopts storage for the UnicodeSet, will be responsible for deleting. - // - Mantains collection of all sets in use, needed later for establishing + // - Maintains collection of all sets in use, needed later for establishing // character categories for run time engine. // - Eliminates mulitiple instances of the same set. // - Creates a new uset node if necessary (if this isn't a duplicate.) diff --git a/deps/icu-small/source/common/rbbiscan.h b/deps/icu-small/source/common/rbbiscan.h index f3f26214022f56..33fdf033546374 100644 --- a/deps/icu-small/source/common/rbbiscan.h +++ b/deps/icu-small/source/common/rbbiscan.h @@ -34,7 +34,7 @@ class RBBISymbolTable; //-------------------------------------------------------------------------------- // // class RBBIRuleScanner does the lowest level, character-at-a-time -// scanning of break iterator rules. +// scanning of break iterator rules. // // The output of the scanner is parse trees for // the rule expressions and a list of all Unicode Sets @@ -144,7 +144,7 @@ class RBBIRuleScanner : public UMemory { UnicodeSet fRuleSets[10]; // Unicode Sets that are needed during // the scanning of RBBI rules. The - // indicies for these are assigned by the + // indices for these are assigned by the // perl script that builds the state tables. // See rbbirpt.h. diff --git a/deps/icu-small/source/common/rbbisetb.cpp b/deps/icu-small/source/common/rbbisetb.cpp index 2904a3280eaab2..29faeb8c456d72 100644 --- a/deps/icu-small/source/common/rbbisetb.cpp +++ b/deps/icu-small/source/common/rbbisetb.cpp @@ -436,7 +436,7 @@ UBool RBBISetBuilder::sawBOF() const { //------------------------------------------------------------------------ // // getFirstChar Given a runtime RBBI character category, find -// the first UChar32 that is in the set of chars +// the first UChar32 that is in the set of chars // in the category. //------------------------------------------------------------------------ UChar32 RBBISetBuilder::getFirstChar(int32_t category) const { diff --git a/deps/icu-small/source/common/rbbistbl.cpp b/deps/icu-small/source/common/rbbistbl.cpp index d90992290c3e63..627ec1827cd4f9 100644 --- a/deps/icu-small/source/common/rbbistbl.cpp +++ b/deps/icu-small/source/common/rbbistbl.cpp @@ -45,7 +45,7 @@ RBBISymbolTable::RBBISymbolTable(RBBIRuleScanner *rs, const UnicodeString &rules { fHashTable = NULL; fCachedSetLookup = NULL; - + fHashTable = uhash_open(uhash_hashUnicodeString, uhash_compareUnicodeString, NULL, &status); // uhash_open checks status if (U_FAILURE(status)) { @@ -63,7 +63,7 @@ RBBISymbolTable::~RBBISymbolTable() // -// RBBISymbolTable::lookup This function from the abstract symbol table inteface +// RBBISymbolTable::lookup This function from the abstract symbol table interface // looks up a variable name and returns a UnicodeString // containing the substitution text. // diff --git a/deps/icu-small/source/common/rbbitblb.cpp b/deps/icu-small/source/common/rbbitblb.cpp index 4bc8097886929e..a495f17a8783ae 100644 --- a/deps/icu-small/source/common/rbbitblb.cpp +++ b/deps/icu-small/source/common/rbbitblb.cpp @@ -79,7 +79,7 @@ void RBBITableBuilder::buildForwardTable() { // // Walk through the tree, replacing any references to $variables with a copy of the - // parse tree for the substition expression. + // parse tree for the substitution expression. // fTree = fTree->flattenVariables(); #ifdef RBBI_DEBUG @@ -90,11 +90,11 @@ void RBBITableBuilder::buildForwardTable() { #endif // - // If the rules contained any references to {bof} + // If the rules contained any references to {bof} // add a {bof} to the - // tree. Means that all matches must start out with the + // tree. Means that all matches must start out with the // {bof} fake character. - // + // if (fRB->fSetBuilder->sawBOF()) { RBBINode *bofTop = new RBBINode(RBBINode::opCat); RBBINode *bofLeaf = new RBBINode(RBBINode::leafChar); @@ -390,6 +390,7 @@ void RBBITableBuilder::addRuleRootNodes(UVector *dest, RBBINode *node) { if (node == NULL || U_FAILURE(*fStatus)) { return; } + U_ASSERT(!dest->hasDeleter()); if (node->fRuleRoot) { dest->addElement(node, *fStatus); // Note: rules cannot nest. If we found a rule start node, @@ -420,9 +421,9 @@ void RBBITableBuilder::calcChainedFollowPos(RBBINode *tree, RBBINode *endMarkNod } // Collect all leaf nodes that can start matches for rules - // with inbound chaining enabled, which is the union of the + // with inbound chaining enabled, which is the union of the // firstPosition sets from each of the rule root nodes. - + UVector ruleRootNodes(*fStatus); addRuleRootNodes(&ruleRootNodes, tree); @@ -530,7 +531,7 @@ void RBBITableBuilder::bofFixup() { // (excluding the fake bofNode) // We want the nodes that can start a match in the // part labeled "rest of tree" - // + // UVector *matchStartNodes = fTree->fLeftChild->fRightChild->fFirstPosSet; RBBINode *startNode; @@ -546,7 +547,7 @@ void RBBITableBuilder::bofFixup() { // explicitly written into a rule. // Add everything from the followPos set of this node to the // followPos set of the fake bofNode at the start of the tree. - // + // setAdd(bofNode->fFollowPos, startNode->fFollowPos); } } @@ -567,7 +568,7 @@ void RBBITableBuilder::buildStateTable() { } RBBIStateDescriptor *failState; // Set it to NULL to avoid uninitialized warning - RBBIStateDescriptor *initialState = NULL; + RBBIStateDescriptor *initialState = NULL; // // Add a dummy state 0 - the stop state. Not from Aho. int lastInputSymbol = fRB->fSetBuilder->getNumCharCategories() - 1; @@ -644,8 +645,8 @@ void RBBITableBuilder::buildStateTable() { if (U == NULL) { U = new UVector(*fStatus); if (U == NULL) { - *fStatus = U_MEMORY_ALLOCATION_ERROR; - goto ExitBuildSTdeleteall; + *fStatus = U_MEMORY_ALLOCATION_ERROR; + goto ExitBuildSTdeleteall; } } setAdd(U, p->fFollowPos); @@ -675,7 +676,7 @@ void RBBITableBuilder::buildStateTable() { { RBBIStateDescriptor *newState = new RBBIStateDescriptor(lastInputSymbol, fStatus); if (newState == NULL) { - *fStatus = U_MEMORY_ALLOCATION_ERROR; + *fStatus = U_MEMORY_ALLOCATION_ERROR; } if (U_FAILURE(*fStatus)) { goto ExitBuildSTdeleteall; @@ -694,7 +695,7 @@ void RBBITableBuilder::buildStateTable() { } } return; - // delete local pointers only if error occured. + // delete local pointers only if error occurred. ExitBuildSTdeleteall: delete initialState; delete failState; @@ -1042,6 +1043,8 @@ void RBBITableBuilder::sortedAdd(UVector **vector, int32_t val) { // //----------------------------------------------------------------------------- void RBBITableBuilder::setAdd(UVector *dest, UVector *source) { + U_ASSERT(!dest->hasDeleter()); + U_ASSERT(!source->hasDeleter()); int32_t destOriginalSize = dest->size(); int32_t sourceSize = source->size(); int32_t di = 0; @@ -1070,6 +1073,9 @@ void RBBITableBuilder::setAdd(UVector *dest, UVector *source) { (void) source->toArray(sourcePtr); dest->setSize(sourceSize+destOriginalSize, *fStatus); + if (U_FAILURE(*fStatus)) { + return; + } while (sourcePtr < sourceLim && destPtr < destLim) { if (*destPtr == *sourcePtr) { @@ -1431,7 +1437,7 @@ void RBBITableBuilder::exportTable(void *where) { void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) { // The safe table creation has three steps: - // 1. Identifiy pairs of character classes that are "safe." Safe means that boundaries + // 1. Identify pairs of character classes that are "safe." Safe means that boundaries // following the pair do not depend on context or state before the pair. To test // whether a pair is safe, run it through the main forward state table, starting // from each state. If the the final state is the same, no matter what the starting state, @@ -1445,7 +1451,7 @@ void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) { // the first of a pair. In each of these rows, the entry for the second character // of a safe pair is set to the stop state (0), indicating that a match was found. // All other table entries are set to the state corresponding the current input - // character, allowing that charcter to be the of a start following pair. + // character, allowing that character to be the of a start following pair. // // Because the safe rules are to be run in reverse, moving backwards in the text, // the first and second pair categories are swapped when building the table. @@ -1490,16 +1496,25 @@ void RBBITableBuilder::buildSafeReverseTable(UErrorCode &status) { // The table as a whole is UVector // Each row is represented by a UnicodeString, being used as a Vector. // Row 0 is the stop state. - // Row 1 is the start sate. + // Row 1 is the start state. // Row 2 and beyond are other states, initially one per char class, but // after initial construction, many of the states will be combined, compacting the table. // The String holds the nextState data only. The four leading fields of a row, fAccepting, // fLookAhead, etc. are not needed for the safe table, and are omitted at this stage of building. U_ASSERT(fSafeTable == nullptr); - fSafeTable = new UVector(uprv_deleteUObject, uhash_compareUnicodeString, numCharClasses + 2, status); + LocalPointer lpSafeTable( + new UVector(uprv_deleteUObject, uhash_compareUnicodeString, numCharClasses + 2, status), status); + if (U_FAILURE(status)) { + return; + } + fSafeTable = lpSafeTable.orphan(); for (int32_t row=0; rowaddElement(new UnicodeString(numCharClasses, 0, numCharClasses+4), status); + LocalPointer lpString(new UnicodeString(numCharClasses, 0, numCharClasses+4), status); + fSafeTable->adoptElement(lpString.orphan(), status); + } + if (U_FAILURE(status)) { + return; } // From the start state, each input char class transitions to the state for that input. diff --git a/deps/icu-small/source/common/rbbitblb.h b/deps/icu-small/source/common/rbbitblb.h index fe3db8d7bf1ae8..38607a819ac1ef 100644 --- a/deps/icu-small/source/common/rbbitblb.h +++ b/deps/icu-small/source/common/rbbitblb.h @@ -69,12 +69,12 @@ class RBBITableBuilder : public UMemory { bool findDuplCharClassFrom(IntPair *categories); /** Remove a column from the state table. Used when two character categories - * have been found equivalent, and merged together, to eliminate the uneeded table column. + * have been found equivalent, and merged together, to eliminate the unneeded table column. */ void removeColumn(int32_t column); /** - * Check for, and remove dupicate states (table rows). + * Check for, and remove duplicate states (table rows). * @return the number of states removed. */ int32_t removeDuplicateStates(); diff --git a/deps/icu-small/source/common/resbund.cpp b/deps/icu-small/source/common/resbund.cpp index 5ec7541b4db636..47c0fe1c6edd13 100644 --- a/deps/icu-small/source/common/resbund.cpp +++ b/deps/icu-small/source/common/resbund.cpp @@ -135,7 +135,7 @@ U_NAMESPACE_BEGIN * so forth, until the chain is exhausted or the tag is found. * * Thread-safety is implemented around caches, both the cache that - * stores all the resouce data, and the cache that stores flags + * stores all the resource data, and the cache that stores flags * indicating whether or not a file has been visited. These caches * delete their storage at static cleanup time, when the process * quits. @@ -206,7 +206,7 @@ ResourceBundle::ResourceBundle(UResourceBundle *res, UErrorCode& err) } } -ResourceBundle::ResourceBundle(const char* path, const Locale& locale, UErrorCode& err) +ResourceBundle::ResourceBundle(const char* path, const Locale& locale, UErrorCode& err) :UObject(), fLocale(NULL) { fResource = ures_open(path, locale.getName(), &err); diff --git a/deps/icu-small/source/common/resbund_cnv.cpp b/deps/icu-small/source/common/resbund_cnv.cpp index ae854fe739cd32..45c0b399bfff45 100644 --- a/deps/icu-small/source/common/resbund_cnv.cpp +++ b/deps/icu-small/source/common/resbund_cnv.cpp @@ -39,7 +39,7 @@ ResourceBundle::ResourceBundle( const UnicodeString& path, constructForLocale(path, Locale::getDefault(), error); } -void +void ResourceBundle::constructForLocale(const UnicodeString& path, const Locale& locale, UErrorCode& error) diff --git a/deps/icu-small/source/common/ruleiter.h b/deps/icu-small/source/common/ruleiter.h index f397f8bccd7817..09af1297842974 100644 --- a/deps/icu-small/source/common/ruleiter.h +++ b/deps/icu-small/source/common/ruleiter.h @@ -39,7 +39,7 @@ class RuleCharacterIterator : public UMemory { private: /** * Text being iterated. - */ + */ const UnicodeString& text; /** @@ -51,7 +51,7 @@ class RuleCharacterIterator : public UMemory { * Symbol table used to parse and dereference variables. May be 0. */ const SymbolTable* sym; - + /** * Current variable expansion, or 0 if none. */ @@ -94,7 +94,7 @@ class RuleCharacterIterator : public UMemory { * position. * @param text the text to be iterated * @param sym the symbol table, or null if there is none. If sym is null, - * then variables will not be deferenced, even if the PARSE_VARIABLES + * then variables will not be dereferenced, even if the PARSE_VARIABLES * option is set. * @param pos upon input, the index of the next character to return. If a * variable has been dereferenced, then pos will not increment as @@ -102,7 +102,7 @@ class RuleCharacterIterator : public UMemory { */ RuleCharacterIterator(const UnicodeString& text, const SymbolTable* sym, ParsePosition& pos); - + /** * Returns true if this iterator has no more characters to return. */ @@ -207,7 +207,7 @@ class RuleCharacterIterator : public UMemory { * representation of this object */ // UnicodeString& toString(UnicodeString& result) const; - + private: /** * Returns the current 32-bit code point without parsing escapes, parsing @@ -215,7 +215,7 @@ class RuleCharacterIterator : public UMemory { * @return the current 32-bit code point */ UChar32 _current() const; - + /** * Advances the position by the given amount. * @param count the number of 16-bit code units to advance past diff --git a/deps/icu-small/source/common/schriter.cpp b/deps/icu-small/source/common/schriter.cpp index 17b68aee9d923a..83b3db4ab0a945 100644 --- a/deps/icu-small/source/common/schriter.cpp +++ b/deps/icu-small/source/common/schriter.cpp @@ -79,10 +79,10 @@ StringCharacterIterator::operator=(const StringCharacterIterator& that) { return *this; } -UBool +bool StringCharacterIterator::operator==(const ForwardCharacterIterator& that) const { if (this == &that) { - return TRUE; + return true; } // do not call UCharCharacterIterator::operator==() @@ -90,7 +90,7 @@ StringCharacterIterator::operator==(const ForwardCharacterIterator& that) const // while we compare UnicodeString objects if (typeid(*this) != typeid(that)) { - return FALSE; + return false; } StringCharacterIterator& realThat = (StringCharacterIterator&)that; diff --git a/deps/icu-small/source/common/serv.cpp b/deps/icu-small/source/common/serv.cpp index 044864b859c7e8..0c54a4dce99225 100644 --- a/deps/icu-small/source/common/serv.cpp +++ b/deps/icu-small/source/common/serv.cpp @@ -8,6 +8,7 @@ */ #include "unicode/utypes.h" +#include "unicode/localpointer.h" #if !UCONFIG_NO_SERVICE @@ -26,60 +27,60 @@ U_NAMESPACE_BEGIN const UChar ICUServiceKey::PREFIX_DELIMITER = 0x002F; /* '/' */ -ICUServiceKey::ICUServiceKey(const UnicodeString& id) +ICUServiceKey::ICUServiceKey(const UnicodeString& id) : _id(id) { } -ICUServiceKey::~ICUServiceKey() +ICUServiceKey::~ICUServiceKey() { } -const UnicodeString& -ICUServiceKey::getID() const +const UnicodeString& +ICUServiceKey::getID() const { return _id; } -UnicodeString& -ICUServiceKey::canonicalID(UnicodeString& result) const +UnicodeString& +ICUServiceKey::canonicalID(UnicodeString& result) const { return result.append(_id); } -UnicodeString& -ICUServiceKey::currentID(UnicodeString& result) const +UnicodeString& +ICUServiceKey::currentID(UnicodeString& result) const { return canonicalID(result); } -UnicodeString& -ICUServiceKey::currentDescriptor(UnicodeString& result) const +UnicodeString& +ICUServiceKey::currentDescriptor(UnicodeString& result) const { prefix(result); result.append(PREFIX_DELIMITER); return currentID(result); } -UBool -ICUServiceKey::fallback() +UBool +ICUServiceKey::fallback() { return FALSE; } -UBool -ICUServiceKey::isFallbackOf(const UnicodeString& id) const +UBool +ICUServiceKey::isFallbackOf(const UnicodeString& id) const { return id == _id; } -UnicodeString& -ICUServiceKey::prefix(UnicodeString& result) const +UnicodeString& +ICUServiceKey::prefix(UnicodeString& result) const { return result; } -UnicodeString& -ICUServiceKey::parsePrefix(UnicodeString& result) +UnicodeString& +ICUServiceKey::parsePrefix(UnicodeString& result) { int32_t n = result.indexOf(PREFIX_DELIMITER); if (n < 0) { @@ -89,8 +90,8 @@ ICUServiceKey::parsePrefix(UnicodeString& result) return result; } -UnicodeString& -ICUServiceKey::parseSuffix(UnicodeString& result) +UnicodeString& +ICUServiceKey::parseSuffix(UnicodeString& result) { int32_t n = result.indexOf(PREFIX_DELIMITER); if (n >= 0) { @@ -100,8 +101,8 @@ ICUServiceKey::parseSuffix(UnicodeString& result) } #ifdef SERVICE_DEBUG -UnicodeString& -ICUServiceKey::debug(UnicodeString& result) const +UnicodeString& +ICUServiceKey::debug(UnicodeString& result) const { debugClass(result); result.append((UnicodeString)" id: "); @@ -109,8 +110,8 @@ ICUServiceKey::debug(UnicodeString& result) const return result; } -UnicodeString& -ICUServiceKey::debugClass(UnicodeString& result) const +UnicodeString& +ICUServiceKey::debugClass(UnicodeString& result) const { return result.append((UnicodeString)"ICUServiceKey"); } @@ -124,30 +125,30 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ICUServiceKey) ICUServiceFactory::~ICUServiceFactory() {} -SimpleFactory::SimpleFactory(UObject* instanceToAdopt, const UnicodeString& id, UBool visible) +SimpleFactory::SimpleFactory(UObject* instanceToAdopt, const UnicodeString& id, UBool visible) : _instance(instanceToAdopt), _id(id), _visible(visible) { } -SimpleFactory::~SimpleFactory() +SimpleFactory::~SimpleFactory() { delete _instance; } -UObject* -SimpleFactory::create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const +UObject* +SimpleFactory::create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const { if (U_SUCCESS(status)) { UnicodeString temp; if (_id == key.currentID(temp)) { - return service->cloneInstance(_instance); + return service->cloneInstance(_instance); } } return NULL; } -void -SimpleFactory::updateVisibleIDs(Hashtable& result, UErrorCode& status) const +void +SimpleFactory::updateVisibleIDs(Hashtable& result, UErrorCode& status) const { if (_visible) { result.put(_id, (void*)this, status); // cast away const @@ -156,8 +157,8 @@ SimpleFactory::updateVisibleIDs(Hashtable& result, UErrorCode& status) const } } -UnicodeString& -SimpleFactory::getDisplayName(const UnicodeString& id, const Locale& /* locale */, UnicodeString& result) const +UnicodeString& +SimpleFactory::getDisplayName(const UnicodeString& id, const Locale& /* locale */, UnicodeString& result) const { if (_visible && _id == id) { result = _id; @@ -168,8 +169,8 @@ SimpleFactory::getDisplayName(const UnicodeString& id, const Locale& /* locale * } #ifdef SERVICE_DEBUG -UnicodeString& -SimpleFactory::debug(UnicodeString& toAppendTo) const +UnicodeString& +SimpleFactory::debug(UnicodeString& toAppendTo) const { debugClass(toAppendTo); toAppendTo.append((UnicodeString)" id: "); @@ -179,8 +180,8 @@ SimpleFactory::debug(UnicodeString& toAppendTo) const return toAppendTo; } -UnicodeString& -SimpleFactory::debugClass(UnicodeString& toAppendTo) const +UnicodeString& +SimpleFactory::debugClass(UnicodeString& toAppendTo) const { return toAppendTo.append((UnicodeString)"SimpleFactory"); } @@ -217,14 +218,14 @@ class CacheEntry : public UMemory { delete service; } - CacheEntry(const UnicodeString& _actualDescriptor, UObject* _service) + CacheEntry(const UnicodeString& _actualDescriptor, UObject* _service) : refcount(1), actualDescriptor(_actualDescriptor), service(_service) { } /** * Instantiation creates an initial reference, so don't call this * unless you're creating a new pointer to this. Management of - * that pointer will have to know how to deal with refcounts. + * that pointer will have to know how to deal with refcounts. * Return true if the resource has not already been released. */ CacheEntry* ref() { @@ -237,7 +238,7 @@ class CacheEntry : public UMemory { * you're removing pointer to this somewhere. Management of that * pointer will have to know how to deal with refcounts. Once * the refcount drops to zero, the resource is released. Return - * false if the resouce has been released. + * false if the resource has been released. */ CacheEntry* unref() { if ((--refcount) == 0) { @@ -256,20 +257,13 @@ class CacheEntry : public UMemory { } }; -// UObjectDeleter for serviceCache +// Deleter for serviceCache U_CDECL_BEGIN static void U_CALLCONV cacheDeleter(void* obj) { U_NAMESPACE_USE ((CacheEntry*)obj)->unref(); } -/** -* Deleter for UObjects -*/ -static void U_CALLCONV -deleteUObject(void *obj) { - U_NAMESPACE_USE delete (UObject*) obj; -} U_CDECL_END /* @@ -281,8 +275,8 @@ class DNCache : public UMemory { Hashtable cache; const Locale locale; - DNCache(const Locale& _locale) - : cache(), locale(_locale) + DNCache(const Locale& _locale) + : cache(), locale(_locale) { // cache.setKeyDeleter(uprv_deleteUObject); } @@ -293,8 +287,8 @@ class DNCache : public UMemory { ****************************************************************** */ -StringPair* -StringPair::create(const UnicodeString& displayName, +StringPair* +StringPair::create(const UnicodeString& displayName, const UnicodeString& id, UErrorCode& status) { @@ -310,12 +304,12 @@ StringPair::create(const UnicodeString& displayName, return NULL; } -UBool +UBool StringPair::isBogus() const { return displayName.isBogus() || id.isBogus(); } -StringPair::StringPair(const UnicodeString& _displayName, +StringPair::StringPair(const UnicodeString& _displayName, const UnicodeString& _id) : displayName(_displayName) , id(_id) @@ -345,7 +339,7 @@ ICUService::ICUService() { } -ICUService::ICUService(const UnicodeString& newName) +ICUService::ICUService(const UnicodeString& newName) : name(newName) , timestamp(0) , factories(NULL) @@ -365,14 +359,14 @@ ICUService::~ICUService() } } -UObject* -ICUService::get(const UnicodeString& descriptor, UErrorCode& status) const +UObject* +ICUService::get(const UnicodeString& descriptor, UErrorCode& status) const { return get(descriptor, NULL, status); } -UObject* -ICUService::get(const UnicodeString& descriptor, UnicodeString* actualReturn, UErrorCode& status) const +UObject* +ICUService::get(const UnicodeString& descriptor, UnicodeString* actualReturn, UErrorCode& status) const { UObject* result = NULL; ICUServiceKey* key = createKey(&descriptor, status); @@ -383,8 +377,8 @@ ICUService::get(const UnicodeString& descriptor, UnicodeString* actualReturn, UE return result; } -UObject* -ICUService::getKey(ICUServiceKey& key, UErrorCode& status) const +UObject* +ICUService::getKey(ICUServiceKey& key, UErrorCode& status) const { return getKey(key, NULL, status); } @@ -392,8 +386,8 @@ ICUService::getKey(ICUServiceKey& key, UErrorCode& status) const // this is a vector that subclasses of ICUService can override to further customize the result object // before returning it. All other public get functions should call this one. -UObject* -ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, UErrorCode& status) const +UObject* +ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, UErrorCode& status) const { return getKey(key, actualReturn, NULL, status); } @@ -403,9 +397,9 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, UErrorCode& // reentrantly even without knowing the thread. class XMutex : public UMemory { public: - inline XMutex(UMutex *mutex, UBool reentering) + inline XMutex(UMutex *mutex, UBool reentering) : fMutex(mutex) - , fActive(!reentering) + , fActive(!reentering) { if (fActive) umtx_lock(fMutex); } @@ -418,15 +412,9 @@ class XMutex : public UMemory { UBool fActive; }; -struct UVectorDeleter { - UVector* _obj; - UVectorDeleter() : _obj(NULL) {} - ~UVectorDeleter() { delete _obj; } -}; - // called only by factories, treat as private -UObject* -ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUServiceFactory* factory, UErrorCode& status) const +UObject* +ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUServiceFactory* factory, UErrorCode& status) const { if (U_FAILURE(status)) { return NULL; @@ -440,10 +428,10 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer CacheEntry* result = NULL; { - // The factory list can't be modified until we're done, + // The factory list can't be modified until we're done, // otherwise we might update the cache with an invalid result. // The cache has to stay in synch with the factory list. - // ICU doesn't have monitors so we can't use rw locks, so + // ICU doesn't have monitors so we can't use rw locks, so // we single-thread everything using this service, for now. // if factory is not null, we're calling from within the mutex, @@ -454,6 +442,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer if (serviceCache == NULL) { ncthis->serviceCache = new Hashtable(status); if (ncthis->serviceCache == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; return NULL; } if (U_FAILURE(status)) { @@ -464,7 +453,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer } UnicodeString currentDescriptor; - UVectorDeleter cacheDescriptorList; + LocalPointer cacheDescriptorList; UBool putInCache = FALSE; int32_t startIndex = 0; @@ -495,48 +484,50 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer } // first test of cache failed, so we'll have to update - // the cache if we eventually succeed-- that is, if we're + // the cache if we eventually succeed-- that is, if we're // going to update the cache at all. putInCache = TRUE; int32_t index = startIndex; while (index < limit) { ICUServiceFactory* f = (ICUServiceFactory*)factories->elementAt(index++); - UObject* service = f->create(key, this, status); + LocalPointer service(f->create(key, this, status)); if (U_FAILURE(status)) { - delete service; return NULL; } - if (service != NULL) { - result = new CacheEntry(currentDescriptor, service); + if (service.isValid()) { + result = new CacheEntry(currentDescriptor, service.getAlias()); if (result == NULL) { - delete service; status = U_MEMORY_ALLOCATION_ERROR; return NULL; } + service.orphan(); // result now owns service. goto outerEnd; } } - // prepare to load the cache with all additional ids that + // prepare to load the cache with all additional ids that // will resolve to result, assuming we'll succeed. We // don't want to keep querying on an id that's going to // fallback to the one that succeeded, we want to hit the // cache the first time next goaround. - if (cacheDescriptorList._obj == NULL) { - cacheDescriptorList._obj = new UVector(uprv_deleteUObject, NULL, 5, status); + if (cacheDescriptorList.isNull()) { + cacheDescriptorList.adoptInsteadAndCheckErrorCode(new UVector(uprv_deleteUObject, NULL, 5, status), status); if (U_FAILURE(status)) { return NULL; } } - UnicodeString* idToCache = new UnicodeString(currentDescriptor); - if (idToCache == NULL || idToCache->isBogus()) { + + LocalPointer idToCache(new UnicodeString(currentDescriptor), status); + if (U_FAILURE(status)) { + return NULL; + } + if (idToCache->isBogus()) { status = U_MEMORY_ALLOCATION_ERROR; return NULL; } - - cacheDescriptorList._obj->addElement(idToCache, status); + cacheDescriptorList->adoptElement(idToCache.orphan(), status); if (U_FAILURE(status)) { return NULL; } @@ -550,9 +541,9 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer return NULL; } - if (cacheDescriptorList._obj != NULL) { - for (int32_t i = cacheDescriptorList._obj->size(); --i >= 0;) { - UnicodeString* desc = (UnicodeString*)cacheDescriptorList._obj->elementAt(i); + if (cacheDescriptorList.isValid()) { + for (int32_t i = cacheDescriptorList->size(); --i >= 0;) { + UnicodeString* desc = (UnicodeString*)cacheDescriptorList->elementAt(i); serviceCache->put(*desc, result, status); if (U_FAILURE(status)) { @@ -560,7 +551,7 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer } result->ref(); - cacheDescriptorList._obj->removeElementAt(i); + cacheDescriptorList->removeElementAt(i); } } } @@ -569,8 +560,8 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer // strip null prefix if (result->actualDescriptor.indexOf((UChar)0x2f) == 0) { // U+002f=slash (/) actualReturn->remove(); - actualReturn->append(result->actualDescriptor, - 1, + actualReturn->append(result->actualDescriptor, + 1, result->actualDescriptor.length() - 1); } else { *actualReturn = result->actualDescriptor; @@ -594,25 +585,26 @@ ICUService::getKey(ICUServiceKey& key, UnicodeString* actualReturn, const ICUSer return handleDefault(key, actualReturn, status); } -UObject* -ICUService::handleDefault(const ICUServiceKey& /* key */, UnicodeString* /* actualIDReturn */, UErrorCode& /* status */) const +UObject* +ICUService::handleDefault(const ICUServiceKey& /* key */, UnicodeString* /* actualIDReturn */, UErrorCode& /* status */) const { return NULL; } -UVector& +UVector& ICUService::getVisibleIDs(UVector& result, UErrorCode& status) const { return getVisibleIDs(result, NULL, status); } -UVector& -ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorCode& status) const +UVector& +ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorCode& status) const { result.removeAllElements(); if (U_FAILURE(status)) { return result; } + UObjectDeleter *savedDeleter = result.setDeleter(uprv_deleteUObject); { Mutex mutex(&lock); @@ -620,7 +612,7 @@ ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorC if (map != NULL) { ICUServiceKey* fallbackKey = createKey(matchID, status); - for (int32_t pos = UHASH_FIRST;;) { + for (int32_t pos = UHASH_FIRST; U_SUCCESS(status); ) { const UHashElement* e = map->nextElement(pos); if (e == NULL) { break; @@ -633,17 +625,11 @@ ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorC } } - UnicodeString* idClone = new UnicodeString(*id); - if (idClone == NULL || idClone->isBogus()) { - delete idClone; + LocalPointer idClone(new UnicodeString(*id), status); + if (U_SUCCESS(status) && idClone->isBogus()) { status = U_MEMORY_ALLOCATION_ERROR; - break; - } - result.addElement(idClone, status); - if (U_FAILURE(status)) { - delete idClone; - break; } + result.adoptElement(idClone.orphan(), status); } delete fallbackKey; } @@ -651,10 +637,11 @@ ICUService::getVisibleIDs(UVector& result, const UnicodeString* matchID, UErrorC if (U_FAILURE(status)) { result.removeAllElements(); } + result.setDeleter(savedDeleter); return result; } -const Hashtable* +const Hashtable* ICUService::getVisibleIDMap(UErrorCode& status) const { if (U_FAILURE(status)) return NULL; @@ -681,14 +668,14 @@ ICUService::getVisibleIDMap(UErrorCode& status) const { } -UnicodeString& -ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result) const +UnicodeString& +ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result) const { return getDisplayName(id, result, Locale::getDefault()); } -UnicodeString& -ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const Locale& locale) const +UnicodeString& +ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const Locale& locale) const { { UErrorCode status = U_ZERO_ERROR; @@ -721,24 +708,24 @@ ICUService::getDisplayName(const UnicodeString& id, UnicodeString& result, const return result; } -UVector& -ICUService::getDisplayNames(UVector& result, UErrorCode& status) const +UVector& +ICUService::getDisplayNames(UVector& result, UErrorCode& status) const { return getDisplayNames(result, Locale::getDefault(), NULL, status); } -UVector& -ICUService::getDisplayNames(UVector& result, const Locale& locale, UErrorCode& status) const +UVector& +ICUService::getDisplayNames(UVector& result, const Locale& locale, UErrorCode& status) const { return getDisplayNames(result, locale, NULL, status); } -UVector& -ICUService::getDisplayNames(UVector& result, - const Locale& locale, - const UnicodeString* matchID, - UErrorCode& status) const +UVector& +ICUService::getDisplayNames(UVector& result, + const Locale& locale, + const UnicodeString* matchID, + UErrorCode& status) const { result.removeAllElements(); result.setDeleter(userv_deleteStringPair); @@ -756,7 +743,7 @@ ICUService::getDisplayNames(UVector& result, if (U_FAILURE(status)) { return result; } - ncthis->dnCache = new DNCache(locale); + ncthis->dnCache = new DNCache(locale); if (dnCache == NULL) { status = U_MEMORY_ALLOCATION_ERROR; return result; @@ -789,7 +776,7 @@ ICUService::getDisplayNames(UVector& result, * nextElement(pos) will skip the position at pos and begin the iteration * at the next position, which in this case will be 0. */ - int32_t pos = UHASH_FIRST; + int32_t pos = UHASH_FIRST; const UHashElement *entry = NULL; while ((entry = dnCache->cache.nextElement(pos)) != NULL) { const UnicodeString* id = (const UnicodeString*)entry->value.pointer; @@ -798,7 +785,7 @@ ICUService::getDisplayNames(UVector& result, } const UnicodeString* dn = (const UnicodeString*)entry->key.pointer; StringPair* sp = StringPair::create(*id, *dn, status); - result.addElement(sp, status); + result.adoptElement(sp, status); if (U_FAILURE(status)) { result.removeAllElements(); break; @@ -810,13 +797,13 @@ ICUService::getDisplayNames(UVector& result, } URegistryKey -ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UErrorCode& status) +ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UErrorCode& status) { return registerInstance(objToAdopt, id, TRUE, status); } URegistryKey -ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UBool visible, UErrorCode& status) +ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UBool visible, UErrorCode& status) { ICUServiceKey* key = createKey(&id, status); if (key != NULL) { @@ -833,7 +820,7 @@ ICUService::registerInstance(UObject* objToAdopt, const UnicodeString& id, UBool return NULL; } -ICUServiceFactory* +ICUServiceFactory* ICUService::createSimpleFactory(UObject* objToAdopt, const UnicodeString& id, UBool visible, UErrorCode& status) { if (U_SUCCESS(status)) { @@ -848,34 +835,36 @@ ICUService::createSimpleFactory(UObject* objToAdopt, const UnicodeString& id, UB URegistryKey ICUService::registerFactory(ICUServiceFactory* factoryToAdopt, UErrorCode& status) { - if (U_SUCCESS(status) && factoryToAdopt != NULL) { + LocalPointerlpFactoryToAdopt(factoryToAdopt); + if (U_FAILURE(status) || factoryToAdopt == nullptr) { + return nullptr; + } + { Mutex mutex(&lock); - if (factories == NULL) { - factories = new UVector(deleteUObject, NULL, status); + if (factories == nullptr) { + LocalPointer lpFactories(new UVector(uprv_deleteUObject, nullptr, status), status); if (U_FAILURE(status)) { - delete factories; - return NULL; + return nullptr; } + factories = lpFactories.orphan(); } - factories->insertElementAt(factoryToAdopt, 0, status); + factories->insertElementAt(lpFactoryToAdopt.orphan(), 0, status); if (U_SUCCESS(status)) { clearCaches(); - } else { - delete factoryToAdopt; - factoryToAdopt = NULL; } - } + } // Close of mutex lock block. - if (factoryToAdopt != NULL) { + if (U_SUCCESS(status)) { notifyChanged(); + return (URegistryKey)factoryToAdopt; + } else { + return nullptr; } - - return (URegistryKey)factoryToAdopt; } -UBool -ICUService::unregister(URegistryKey rkey, UErrorCode& status) +UBool +ICUService::unregister(URegistryKey rkey, UErrorCode& status) { ICUServiceFactory *factory = (ICUServiceFactory*)rkey; UBool result = FALSE; @@ -896,8 +885,8 @@ ICUService::unregister(URegistryKey rkey, UErrorCode& status) return result; } -void -ICUService::reset() +void +ICUService::reset() { { Mutex mutex(&lock); @@ -907,28 +896,28 @@ ICUService::reset() notifyChanged(); } -void -ICUService::reInitializeFactories() +void +ICUService::reInitializeFactories() { if (factories != NULL) { factories->removeAllElements(); } } -UBool -ICUService::isDefault() const +UBool +ICUService::isDefault() const { return countFactories() == 0; } -ICUServiceKey* -ICUService::createKey(const UnicodeString* id, UErrorCode& status) const +ICUServiceKey* +ICUService::createKey(const UnicodeString* id, UErrorCode& status) const { return (U_FAILURE(status) || id == NULL) ? NULL : new ICUServiceKey(*id); } -void -ICUService::clearCaches() +void +ICUService::clearCaches() { // callers synchronize before use ++timestamp; @@ -939,33 +928,33 @@ ICUService::clearCaches() delete serviceCache; serviceCache = NULL; } -void -ICUService::clearServiceCache() +void +ICUService::clearServiceCache() { // callers synchronize before use delete serviceCache; serviceCache = NULL; } -UBool -ICUService::acceptsListener(const EventListener& l) const +UBool +ICUService::acceptsListener(const EventListener& l) const { return dynamic_cast(&l) != NULL; } -void -ICUService::notifyListener(EventListener& l) const +void +ICUService::notifyListener(EventListener& l) const { ((ServiceListener&)l).serviceChanged(*this); } UnicodeString& -ICUService::getName(UnicodeString& result) const +ICUService::getName(UnicodeString& result) const { return result.append(name); } -int32_t -ICUService::countFactories() const +int32_t +ICUService::countFactories() const { return factories == NULL ? 0 : factories->size(); } diff --git a/deps/icu-small/source/common/serv.h b/deps/icu-small/source/common/serv.h index 6a3d1915afdf5a..3bd3d9a9b9ea61 100644 --- a/deps/icu-small/source/common/serv.h +++ b/deps/icu-small/source/common/serv.h @@ -61,16 +61,16 @@ class DNCache; * The descriptor contains an optional prefix, followed by '/' * and the currentID. Factories that handle complex keys, * for example number format factories that generate multiple - * kinds of formatters for the same locale, use the descriptor - * to provide a fully unique identifier for the service object, + * kinds of formatters for the same locale, use the descriptor + * to provide a fully unique identifier for the service object, * while using the currentID (in this case, the locale string), * as the visible IDs that can be localized.

* *

The default implementation of ICUServiceKey has no fallbacks and - * has no custom descriptors.

+ * has no custom descriptors.

*/ class U_COMMON_API ICUServiceKey : public UObject { - private: + private: const UnicodeString _id; protected: @@ -111,7 +111,7 @@ class U_COMMON_API ICUServiceKey : public UObject { * the canonical ID to result. Result is returned as a convenience.

* * @param result the output parameter to which the current id will be appended. - * @return the modified result. + * @return the modified result. */ virtual UnicodeString& currentID(UnicodeString& result) const; @@ -127,7 +127,7 @@ class U_COMMON_API ICUServiceKey : public UObject { * instantiate the service.

* * @param result the output parameter to which the current id will be appended. - * @return the modified result. + * @return the modified result. */ virtual UnicodeString& currentDescriptor(UnicodeString& result) const; @@ -162,10 +162,10 @@ class U_COMMON_API ICUServiceKey : public UObject { /** *

A utility to parse the prefix out of a descriptor string. Only - * the (undelimited) prefix, if any, remains in result. Result is returned as a + * the (undelimited) prefix, if any, remains in result. Result is returned as a * convenience.

* - * @param result an input/output parameter that on entry is a descriptor, and + * @param result an input/output parameter that on entry is a descriptor, and * on exit is the prefix of that descriptor. * @return the modified result. */ @@ -173,10 +173,10 @@ class U_COMMON_API ICUServiceKey : public UObject { /** *

A utility to parse the suffix out of a descriptor string. Only - * the (undelimited) suffix, if any, remains in result. Result is returned as a + * the (undelimited) suffix, if any, remains in result. Result is returned as a * convenience.

* - * @param result an input/output parameter that on entry is a descriptor, and + * @param result an input/output parameter that on entry is a descriptor, and * on exit is the suffix of that descriptor. * @return the modified result. */ @@ -191,7 +191,7 @@ class U_COMMON_API ICUServiceKey : public UObject { /** * UObject RTTI boilerplate. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #ifdef SERVICE_DEBUG public: @@ -254,7 +254,7 @@ class U_COMMON_API ICUServiceFactory : public UObject { /** *

Return, in result, the display name of the id in the provided locale. - * This is an id, not a descriptor. If the id is + * This is an id, not a descriptor. If the id is * not visible, sets result to bogus. If the * incoming result is bogus, it remains bogus. Result is returned as a * convenience. Results are not defined if id is not one supported by this @@ -290,7 +290,7 @@ class U_COMMON_API SimpleFactory : public ICUServiceFactory { public: /** - *

Construct a SimpleFactory that maps a single ID to a single + *

Construct a SimpleFactory that maps a single ID to a single * service instance. If visible is true, the ID will be visible. * The instance must not be NULL. The SimpleFactory will adopt * the instance, which must not be changed subsequent to this call.

@@ -315,16 +315,16 @@ class U_COMMON_API SimpleFactory : public ICUServiceFactory { * @param status the error code status. * @return the service object, or NULL if the factory does not support the key. */ - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const; + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override; /** - *

This implementation adds a mapping from ID -> this to result if visible is true, + *

This implementation adds a mapping from ID -> this to result if visible is true, * otherwise it removes ID from result.

* * @param result the mapping table to update. * @param status the error code status. */ - virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const; + virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const override; /** *

This implementation returns the factory ID if it equals id and visible is true, @@ -336,7 +336,7 @@ class U_COMMON_API SimpleFactory : public ICUServiceFactory { * @param result output parameter to hold the display name. * @return result. */ - virtual UnicodeString& getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const; + virtual UnicodeString& getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const override; public: /** @@ -347,7 +347,7 @@ class U_COMMON_API SimpleFactory : public ICUServiceFactory { /** * UObject RTTI boilerplate. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #ifdef SERVICE_DEBUG public: @@ -363,7 +363,7 @@ class U_COMMON_API SimpleFactory : public ICUServiceFactory { /** *

ServiceListener is the listener that ICUService provides by default. - * ICUService will notifiy this listener when factories are added to + * ICUService will notify this listener when factories are added to * or removed from the service. Subclasses can provide * different listener interfaces that extend EventListener, and modify * acceptsListener and notifyListener as appropriate.

@@ -376,22 +376,22 @@ class U_COMMON_API ServiceListener : public EventListener { *

This method is called when the service changes. At the time of the * call this listener is registered with the service. It must * not modify the notifier in the context of this call.

- * + * * @param service the service that changed. */ virtual void serviceChanged(const ICUService& service) const = 0; - + public: /** * UObject RTTI boilerplate. */ static UClassID U_EXPORT2 getStaticClassID(); - + /** * UObject RTTI boilerplate. */ - virtual UClassID getDynamicClassID() const; - + virtual UClassID getDynamicClassID() const override; + }; /* @@ -422,7 +422,7 @@ class U_COMMON_API StringPair : public UMemory { * @param status the error code status. * @return a StringPair if the creation was successful, otherwise NULL. */ - static StringPair* create(const UnicodeString& displayName, + static StringPair* create(const UnicodeString& displayName, const UnicodeString& id, UErrorCode& status); @@ -521,10 +521,10 @@ class U_COMMON_API StringPair : public UMemory { * subclass of ICUService that uses Locale names as IDs and uses * ICUServiceKeys that implement the standard resource bundle fallback * strategy. Most clients will wish to subclass it instead of - * ICUService.

+ * ICUService.

*/ class U_COMMON_API ICUService : public ICUNotifier { - protected: + protected: /** * Name useful for debugging. */ @@ -631,7 +631,7 @@ class U_COMMON_API ICUService : public ICUNotifier { * has no fallback. If no object is found, the result of handleDefault * is returned.

* - *

Subclasses can override this method to further customize the + *

Subclasses can override this method to further customize the * result before returning it. * * @param key the key. @@ -646,7 +646,7 @@ class U_COMMON_API ICUService : public ICUNotifier { * of a previous getKey call, to determine what previously-registered factories would * have returned. For details, see getKey(ICUServiceKey&, UErrorCode&). Subclasses * should not call it directly, but call through one of the other get functions.

- * + * * @param key the key. * @param actualReturn a pointer to a UnicodeString to hold the matched descriptor, or NULL. * @param factory the factory making the recursive call. @@ -710,7 +710,7 @@ class U_COMMON_API ICUService : public ICUNotifier { UnicodeString& getDisplayName(const UnicodeString& id, UnicodeString& result, const Locale& locale) const; /** - *

Convenience override of getDisplayNames(const Locale&, const UnicodeString*) that + *

Convenience override of getDisplayNames(const Locale&, const UnicodeString*) that * uses the current default Locale as the locale and NULL for * the matchID.

* @@ -721,7 +721,7 @@ class U_COMMON_API ICUService : public ICUNotifier { UVector& getDisplayNames(UVector& result, UErrorCode& status) const; /** - *

Convenience override of getDisplayNames(const Locale&, const UnicodeString*) that + *

Convenience override of getDisplayNames(const Locale&, const UnicodeString*) that * uses NULL for the matchID.

* * @param result a vector to hold the returned displayName/id StringPairs. @@ -755,8 +755,8 @@ class U_COMMON_API ICUService : public ICUNotifier { * @param status the error code status. * @return the result vector. */ UVector& getDisplayNames(UVector& result, - const Locale& locale, - const UnicodeString* matchID, + const Locale& locale, + const UnicodeString* matchID, UErrorCode& status) const; /** @@ -772,7 +772,7 @@ class U_COMMON_API ICUService : public ICUNotifier { URegistryKey registerInstance(UObject* objToAdopt, const UnicodeString& id, UErrorCode& status); /** - *

Register a service instance with the provided ID. The ID will be + *

Register a service instance with the provided ID. The ID will be * canonicalized. The canonicalized ID will be returned by * getVisibleIDs if visible is true. The service instance will be adopted and * must not be modified subsequent to this call.

@@ -819,7 +819,7 @@ class U_COMMON_API ICUService : public ICUNotifier { * listeners.

* * @param rkey the registry key. - * @param status the error code status. + * @param status the error code status. * @return true if the call successfully unregistered the factory. */ virtual UBool unregister(URegistryKey rkey, UErrorCode& status); @@ -835,7 +835,7 @@ class U_COMMON_API ICUService : public ICUNotifier { /** *

Return true if the service is in its default state.

* - *

The default implementation returns true if there are no + *

The default implementation returns true if there are no * factories registered.

*/ virtual UBool isDefault(void) const; @@ -930,7 +930,7 @@ class U_COMMON_API ICUService : public ICUNotifier { * @param l the listener to test. * @return true if the service accepts the listener. */ - virtual UBool acceptsListener(const EventListener& l) const; + virtual UBool acceptsListener(const EventListener& l) const override; /** *

Notify the listener of a service change.

@@ -941,7 +941,7 @@ class U_COMMON_API ICUService : public ICUNotifier { * * @param l the listener to notify. */ - virtual void notifyListener(EventListener& l) const; + virtual void notifyListener(EventListener& l) const override; /************************************************************************ * Utilities for subclasses. @@ -993,3 +993,4 @@ U_NAMESPACE_END /* ICUSERV_H */ #endif + diff --git a/deps/icu-small/source/common/servlk.cpp b/deps/icu-small/source/common/servlk.cpp index 27b046f1e504f5..538982ca36285c 100644 --- a/deps/icu-small/source/common/servlk.cpp +++ b/deps/icu-small/source/common/servlk.cpp @@ -184,3 +184,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/servlkf.cpp b/deps/icu-small/source/common/servlkf.cpp index 6e46bd2079722a..84f2347cddef0d 100644 --- a/deps/icu-small/source/common/servlkf.cpp +++ b/deps/icu-small/source/common/servlkf.cpp @@ -105,9 +105,9 @@ LocaleKeyFactory::getDisplayName(const UnicodeString& id, const Locale& locale, } UObject* -LocaleKeyFactory::handleCreate(const Locale& /* loc */, - int32_t /* kind */, - const ICUService* /* service */, +LocaleKeyFactory::handleCreate(const Locale& /* loc */, + int32_t /* kind */, + const ICUService* /* service */, UErrorCode& /* status */) const { return NULL; } @@ -148,3 +148,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/servloc.h b/deps/icu-small/source/common/servloc.h index 501989424423ea..29c50a27d1a245 100644 --- a/deps/icu-small/source/common/servloc.h +++ b/deps/icu-small/source/common/servloc.h @@ -60,11 +60,11 @@ class ServiceListener; * *

Canonicalization adjusts the locale string so that the * section before the first understore is in lower case, and the rest - * is in upper case, with no trailing underscores.

+ * is in upper case, with no trailing underscores.

*/ class U_COMMON_API LocaleKey : public ICUServiceKey { - private: + private: int32_t _kind; UnicodeString _primaryID; UnicodeString _fallbackID; @@ -78,15 +78,15 @@ class U_COMMON_API LocaleKey : public ICUServiceKey { /** * Create a LocaleKey with canonical primary and fallback IDs. */ - static LocaleKey* createWithCanonicalFallback(const UnicodeString* primaryID, + static LocaleKey* createWithCanonicalFallback(const UnicodeString* primaryID, const UnicodeString* canonicalFallbackID, UErrorCode& status); /** * Create a LocaleKey with canonical primary and fallback IDs. */ - static LocaleKey* createWithCanonicalFallback(const UnicodeString* primaryID, - const UnicodeString* canonicalFallbackID, + static LocaleKey* createWithCanonicalFallback(const UnicodeString* primaryID, + const UnicodeString* canonicalFallbackID, int32_t kind, UErrorCode& status); @@ -97,16 +97,16 @@ class U_COMMON_API LocaleKey : public ICUServiceKey { * fallbackID is the current default locale's string in * canonical form. */ - LocaleKey(const UnicodeString& primaryID, - const UnicodeString& canonicalPrimaryID, - const UnicodeString* canonicalFallbackID, + LocaleKey(const UnicodeString& primaryID, + const UnicodeString& canonicalPrimaryID, + const UnicodeString* canonicalFallbackID, int32_t kind); public: /** * Append the prefix associated with the kind, or nothing if the kind is KIND_ANY. */ - virtual UnicodeString& prefix(UnicodeString& result) const; + virtual UnicodeString& prefix(UnicodeString& result) const override; /** * Return the kind code associated with this key. @@ -116,17 +116,17 @@ class U_COMMON_API LocaleKey : public ICUServiceKey { /** * Return the canonicalID. */ - virtual UnicodeString& canonicalID(UnicodeString& result) const; + virtual UnicodeString& canonicalID(UnicodeString& result) const override; /** * Return the currentID. */ - virtual UnicodeString& currentID(UnicodeString& result) const; + virtual UnicodeString& currentID(UnicodeString& result) const override; /** * Return the (canonical) current descriptor, or null if no current id. */ - virtual UnicodeString& currentDescriptor(UnicodeString& result) const; + virtual UnicodeString& currentDescriptor(UnicodeString& result) const override; /** * Convenience method to return the locale corresponding to the (canonical) original ID. @@ -145,23 +145,23 @@ class U_COMMON_API LocaleKey : public ICUServiceKey { *

First falls back through the primary ID, then through * the fallbackID. The final fallback is the empty string, * unless the primary id was the empty string, in which case - * there is no fallback. + * there is no fallback. */ - virtual UBool fallback(); + virtual UBool fallback() override; /** * Return true if a key created from id matches, or would eventually - * fallback to match, the canonical ID of this key. + * fallback to match, the canonical ID of this key. */ - virtual UBool isFallbackOf(const UnicodeString& id) const; - + virtual UBool isFallbackOf(const UnicodeString& id) const override; + public: /** * UObject boilerplate. */ static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * Destructor. @@ -183,7 +183,7 @@ class U_COMMON_API LocaleKey : public ICUServiceKey { /** * A subclass of ICUServiceFactory that uses LocaleKeys, and is able to * 'cover' more specific locales with more general locales that it - * supports. + * supports. * *

Coverage may be either of the values VISIBLE or INVISIBLE. * @@ -203,7 +203,7 @@ class U_COMMON_API LocaleKeyFactory : public ICUServiceFactory { enum { /** * Coverage value indicating that the factory makes - * its locales visible, and does not cover more specific + * its locales visible, and does not cover more specific * locales. */ VISIBLE = 0, @@ -238,7 +238,7 @@ class U_COMMON_API LocaleKeyFactory : public ICUServiceFactory { * kind off to handleCreate (which subclasses must implement). */ public: - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const; + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override; protected: virtual UBool handlesKey(const ICUServiceKey& key, UErrorCode& status) const; @@ -248,12 +248,12 @@ class U_COMMON_API LocaleKeyFactory : public ICUServiceFactory { * Override of superclass method. This adjusts the result based * on the coverage rule for this factory. */ - virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const; + virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const override; /** * Return a localized name for the locale represented by id. */ - virtual UnicodeString& getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const; + virtual UnicodeString& getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const override; protected: /** @@ -263,13 +263,13 @@ class U_COMMON_API LocaleKeyFactory : public ICUServiceFactory { virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* service, UErrorCode& status) const; /** - * Return true if this id is one the factory supports (visible or + * Return true if this id is one the factory supports (visible or * otherwise). */ // virtual UBool isSupportedID(const UnicodeString& id, UErrorCode& status) const; /** - * Return the set of ids that this factory supports (visible or + * Return the set of ids that this factory supports (visible or * otherwise). This can be called often and might need to be * cached if it is expensive to create. */ @@ -281,7 +281,7 @@ class U_COMMON_API LocaleKeyFactory : public ICUServiceFactory { */ static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #ifdef SERVICE_DEBUG public: @@ -306,14 +306,14 @@ class U_COMMON_API SimpleLocaleKeyFactory : public LocaleKeyFactory { const int32_t _kind; public: - SimpleLocaleKeyFactory(UObject* objToAdopt, - const UnicodeString& locale, - int32_t kind, + SimpleLocaleKeyFactory(UObject* objToAdopt, + const UnicodeString& locale, + int32_t kind, int32_t coverage); - SimpleLocaleKeyFactory(UObject* objToAdopt, - const Locale& locale, - int32_t kind, + SimpleLocaleKeyFactory(UObject* objToAdopt, + const Locale& locale, + int32_t kind, int32_t coverage); /** @@ -324,13 +324,13 @@ class U_COMMON_API SimpleLocaleKeyFactory : public LocaleKeyFactory { /** * Override of superclass method. Returns the service object if kind/locale match. Service is not used. */ - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const; + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override; /** * Override of superclass method. This adjusts the result based * on the coverage rule for this factory. */ - virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const; + virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const override; protected: /** @@ -345,7 +345,7 @@ class U_COMMON_API SimpleLocaleKeyFactory : public LocaleKeyFactory { */ static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #ifdef SERVICE_DEBUG public: @@ -366,7 +366,7 @@ class U_COMMON_API SimpleLocaleKeyFactory : public LocaleKeyFactory { * IDs. Subclasses then override handleCreate to create the actual service * object. The default implementation returns a resource bundle. */ -class U_COMMON_API ICUResourceBundleFactory : public LocaleKeyFactory +class U_COMMON_API ICUResourceBundleFactory : public LocaleKeyFactory { protected: UnicodeString _bundleName; @@ -394,20 +394,20 @@ class U_COMMON_API ICUResourceBundleFactory : public LocaleKeyFactory /** * Return the supported IDs. This is the set of all locale names in ICULocaleData. */ - virtual const Hashtable* getSupportedIDs(UErrorCode& status) const; + virtual const Hashtable* getSupportedIDs(UErrorCode& status) const override; /** * Create the service. The default implementation returns the resource bundle * for the locale, ignoring kind, and service. */ - virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* service, UErrorCode& status) const; + virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* service, UErrorCode& status) const override; public: /** * UObject boilerplate. */ static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #ifdef SERVICE_DEBUG @@ -422,7 +422,7 @@ class U_COMMON_API ICUResourceBundleFactory : public LocaleKeyFactory ****************************************************************** */ -class U_COMMON_API ICULocaleService : public ICUService +class U_COMMON_API ICULocaleService : public ICUService { private: Locale fallbackLocale; @@ -447,7 +447,7 @@ class U_COMMON_API ICULocaleService : public ICUService #if 0 // redeclare because of overload resolution rules? // no, causes ambiguities since both UnicodeString and Locale have constructors that take a const char* - // need some compiler flag to remove warnings + // need some compiler flag to remove warnings UObject* get(const UnicodeString& descriptor, UErrorCode& status) const { return ICUService::get(descriptor, status); } @@ -475,12 +475,12 @@ class U_COMMON_API ICULocaleService : public ICUService * get(Locale, String, Locale[]) with a null kind. */ UObject* get(const Locale& locale, Locale* actualReturn, UErrorCode& status) const; - + /** * Convenience override for callers using locales. This uses * createKey(Locale.toString(), kind) to create a key, calls getKey, and then * if actualReturn is not null, returns the actualResult from - * getKey (stripping any prefix) into a Locale. + * getKey (stripping any prefix) into a Locale. */ UObject* get(const Locale& locale, int32_t kind, Locale* actualReturn, UErrorCode& status) const; @@ -512,7 +512,7 @@ class U_COMMON_API ICULocaleService : public ICUService * We really need a flag that is understood by all compilers that will suppress the warning about * hidden overrides. */ - virtual URegistryKey registerInstance(UObject* objToAdopt, const UnicodeString& locale, UBool visible, UErrorCode& status); + virtual URegistryKey registerInstance(UObject* objToAdopt, const UnicodeString& locale, UBool visible, UErrorCode& status) override; /** * Convenience method for callers using locales. This returns the standard @@ -531,7 +531,7 @@ class U_COMMON_API ICULocaleService : public ICUService /** * Override superclass createKey method. */ - virtual ICUServiceKey* createKey(const UnicodeString* id, UErrorCode& status) const; + virtual ICUServiceKey* createKey(const UnicodeString* id, UErrorCode& status) const override; /** * Additional createKey that takes a kind. @@ -548,3 +548,4 @@ U_NAMESPACE_END /* ICULSERV_H */ #endif + diff --git a/deps/icu-small/source/common/servls.cpp b/deps/icu-small/source/common/servls.cpp index 0c2a73d98e2275..7108afd4a5282b 100644 --- a/deps/icu-small/source/common/servls.cpp +++ b/deps/icu-small/source/common/servls.cpp @@ -92,12 +92,12 @@ ICULocaleService::get(const Locale& locale, int32_t kind, Locale* actualReturn, URegistryKey -ICULocaleService::registerInstance(UObject* objToAdopt, const UnicodeString& locale, +ICULocaleService::registerInstance(UObject* objToAdopt, const UnicodeString& locale, UBool visible, UErrorCode& status) { Locale loc; LocaleUtility::initLocaleFromName(locale, loc); - return registerInstance(objToAdopt, loc, LocaleKey::KIND_ANY, + return registerInstance(objToAdopt, loc, LocaleKey::KIND_ANY, visible ? LocaleKeyFactory::VISIBLE : LocaleKeyFactory::INVISIBLE, status); } @@ -179,7 +179,7 @@ class ServiceEnumeration : public StringEnumeration { length = other._ids.size(); for(i = 0; i < length; ++i) { - _ids.addElement(((UnicodeString *)other._ids.elementAt(i))->clone(), status); + _ids.addElementX(((UnicodeString *)other._ids.elementAt(i))->clone(), status); } if(U_SUCCESS(status)) { @@ -201,7 +201,7 @@ class ServiceEnumeration : public StringEnumeration { virtual ~ServiceEnumeration(); - virtual StringEnumeration *clone() const { + virtual StringEnumeration *clone() const override { UErrorCode status = U_ZERO_ERROR; ServiceEnumeration *cl = new ServiceEnumeration(*this, status); if(U_FAILURE(status)) { @@ -221,18 +221,18 @@ class ServiceEnumeration : public StringEnumeration { return FALSE; } - virtual int32_t count(UErrorCode& status) const { + virtual int32_t count(UErrorCode& status) const override { return upToDate(status) ? _ids.size() : 0; } - virtual const UnicodeString* snext(UErrorCode& status) { + virtual const UnicodeString* snext(UErrorCode& status) override { if (upToDate(status) && (_pos < _ids.size())) { return (const UnicodeString*)_ids[_pos++]; } return NULL; } - virtual void reset(UErrorCode& status) { + virtual void reset(UErrorCode& status) override { if (status == U_ENUM_OUT_OF_SYNC_ERROR) { status = U_ZERO_ERROR; } @@ -245,7 +245,7 @@ class ServiceEnumeration : public StringEnumeration { public: static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; ServiceEnumeration::~ServiceEnumeration() {} @@ -291,3 +291,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/servnotf.cpp b/deps/icu-small/source/common/servnotf.cpp index 435f36b0d00671..342e0d9f24d2a7 100644 --- a/deps/icu-small/source/common/servnotf.cpp +++ b/deps/icu-small/source/common/servnotf.cpp @@ -23,8 +23,8 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(EventListener) static UMutex notifyLock; -ICUNotifier::ICUNotifier(void) -: listeners(NULL) +ICUNotifier::ICUNotifier(void) +: listeners(NULL) { } @@ -37,8 +37,8 @@ ICUNotifier::~ICUNotifier(void) { } -void -ICUNotifier::addListener(const EventListener* l, UErrorCode& status) +void +ICUNotifier::addListener(const EventListener* l, UErrorCode& status) { if (U_SUCCESS(status)) { if (l == NULL) { @@ -59,7 +59,7 @@ ICUNotifier::addListener(const EventListener* l, UErrorCode& status) } } - listeners->addElement((void*)l, status); // cast away const + listeners->addElementX((void*)l, status); // cast away const } #ifdef NOTIFIER_DEBUG else { @@ -70,8 +70,8 @@ ICUNotifier::addListener(const EventListener* l, UErrorCode& status) } } -void -ICUNotifier::removeListener(const EventListener *l, UErrorCode& status) +void +ICUNotifier::removeListener(const EventListener *l, UErrorCode& status) { if (U_SUCCESS(status)) { if (l == NULL) { @@ -99,8 +99,8 @@ ICUNotifier::removeListener(const EventListener *l, UErrorCode& status) } } -void -ICUNotifier::notifyChanged(void) +void +ICUNotifier::notifyChanged(void) { if (listeners != NULL) { Mutex lmx(¬ifyLock); @@ -117,3 +117,4 @@ U_NAMESPACE_END /* UCONFIG_NO_SERVICE */ #endif + diff --git a/deps/icu-small/source/common/servnotf.h b/deps/icu-small/source/common/servnotf.h index 340496e85c61fd..e3b2cac32e4e6b 100644 --- a/deps/icu-small/source/common/servnotf.h +++ b/deps/icu-small/source/common/servnotf.h @@ -34,13 +34,13 @@ U_NAMESPACE_END U_NAMESPACE_BEGIN class U_COMMON_API EventListener : public UObject { -public: +public: virtual ~EventListener(); public: static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; public: #ifdef SERVICE_DEBUG @@ -62,54 +62,54 @@ class U_COMMON_API EventListener : public UObject { * eventually dequeues the list and calls notifyListener on each * listener in the list.

* - *

Subclasses override acceptsListener and notifyListener + *

Subclasses override acceptsListener and notifyListener * to add type-safe notification. AcceptsListener should return * true if the listener is of the appropriate type; ICUNotifier * itself will ensure the listener is non-null and that the * identical listener is not already registered with the Notifier. - * NotifyListener should cast the listener to the appropriate + * NotifyListener should cast the listener to the appropriate * type and call the appropriate method on the listener. */ class U_COMMON_API ICUNotifier : public UMemory { private: UVector* listeners; - -public: + +public: ICUNotifier(void); - + virtual ~ICUNotifier(void); - + /** * Add a listener to be notified when notifyChanged is called. * The listener must not be null. AcceptsListener must return * true for the listener. Attempts to concurrently * register the identical listener more than once will be - * silently ignored. + * silently ignored. */ virtual void addListener(const EventListener* l, UErrorCode& status); - + /** * Stop notifying this listener. The listener must * not be null. Attempts to remove a listener that is * not registered will be silently ignored. */ virtual void removeListener(const EventListener* l, UErrorCode& status); - + /** * ICU doesn't spawn its own threads. All listeners are notified in * the thread of the caller. Misbehaved listeners can therefore * indefinitely block the calling thread. Callers should beware of - * deadlock situations. + * deadlock situations. */ virtual void notifyChanged(void); - -protected: + +protected: /** * Subclasses implement this to return true if the listener is * of the appropriate type. */ virtual UBool acceptsListener(const EventListener& l) const = 0; - + /** * Subclasses implement this to notify the listener. */ diff --git a/deps/icu-small/source/common/servrbf.cpp b/deps/icu-small/source/common/servrbf.cpp index 3f143afadf62bb..94279ab3a1513b 100644 --- a/deps/icu-small/source/common/servrbf.cpp +++ b/deps/icu-small/source/common/servrbf.cpp @@ -92,3 +92,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/servslkf.cpp b/deps/icu-small/source/common/servslkf.cpp index 4aa10414a038d3..09154d1b9198e7 100644 --- a/deps/icu-small/source/common/servslkf.cpp +++ b/deps/icu-small/source/common/servslkf.cpp @@ -119,3 +119,5 @@ U_NAMESPACE_END /* !UCONFIG_NO_SERVICE */ #endif + + diff --git a/deps/icu-small/source/common/sharedobject.h b/deps/icu-small/source/common/sharedobject.h index 0565de6608a094..6ccfb27b018baa 100644 --- a/deps/icu-small/source/common/sharedobject.h +++ b/deps/icu-small/source/common/sharedobject.h @@ -78,7 +78,7 @@ class U_COMMON_API SharedObject : public UObject { * Decrements the number of hard references to this object, and * arrange for possible cache-eviction and/or deletion if ref * count goes to zero. Thread-safe. - * + * * Not for use from within the UnifiedCache implementation. */ void removeRef() const; @@ -108,12 +108,12 @@ class U_COMMON_API SharedObject : public UObject { */ void deleteIfZeroRefCount() const; - + /** * Returns a writable version of ptr. * If there is exactly one owner, then ptr itself is returned as a * non-const pointer. - * If there are multiple owners, then ptr is replaced with a + * If there are multiple owners, then ptr is replaced with a * copy-constructed clone, * and that is returned. * Returns NULL if cloning failed. @@ -136,7 +136,7 @@ class U_COMMON_API SharedObject : public UObject { * Makes dest an owner of the object pointed to by src while adjusting * reference counts and deleting the previous object dest pointed to * if necessary. Before this call is made, dest must either be NULL or - * be included in the reference count of the object it points to. + * be included in the reference count of the object it points to. * * T must be a subclass of SharedObject. */ @@ -174,7 +174,7 @@ class U_COMMON_API SharedObject : public UObject { * Reference count, excluding references from within the UnifiedCache implementation. */ mutable u_atomic_int32_t hardRefCount; - + mutable const UnifiedCacheBase *cachePtr; }; diff --git a/deps/icu-small/source/common/sprpimpl.h b/deps/icu-small/source/common/sprpimpl.h index 26de904b1fde5a..ca0bcdb51695cc 100644 --- a/deps/icu-small/source/common/sprpimpl.h +++ b/deps/icu-small/source/common/sprpimpl.h @@ -36,20 +36,20 @@ enum UStringPrepType{ USPREP_UNASSIGNED = 0x0000 , USPREP_MAP = 0x0001 , - USPREP_PROHIBITED = 0x0002 , + USPREP_PROHIBITED = 0x0002 , USPREP_DELETE = 0x0003 , - USPREP_TYPE_LIMIT = 0x0004 + USPREP_TYPE_LIMIT = 0x0004 }; typedef enum UStringPrepType UStringPrepType; #ifdef USPREP_TYPE_NAMES_ARRAY static const char* usprepTypeNames[] ={ - "UNASSIGNED" , - "MAP" , - "PROHIBITED" , + "UNASSIGNED" , + "MAP" , + "PROHIBITED" , "DELETE", - "TYPE_LIMIT" + "TYPE_LIMIT" }; #endif @@ -60,7 +60,7 @@ enum{ enum{ _SPREP_TYPE_THRESHOLD = 0xFFF0, - _SPREP_MAX_INDEX_VALUE = 0x3FBF, /*16139*/ + _SPREP_MAX_INDEX_VALUE = 0x3FBF, /*16139*/ _SPREP_MAX_INDEX_TOP_LENGTH = 0x0003 }; @@ -68,7 +68,7 @@ enum{ enum { _SPREP_INDEX_TRIE_SIZE = 0, /* number of bytes in StringPrep trie */ _SPREP_INDEX_MAPPING_DATA_SIZE = 1, /* The array that contains the mapping */ - _SPREP_NORM_CORRECTNS_LAST_UNI_VERSION = 2, /* The index of Unicode version of last entry in NormalizationCorrections.txt */ + _SPREP_NORM_CORRECTNS_LAST_UNI_VERSION = 2, /* The index of Unicode version of last entry in NormalizationCorrections.txt */ _SPREP_ONE_UCHAR_MAPPING_INDEX_START = 3, /* The starting index of 1 UChar mapping index in the mapping data array */ _SPREP_TWO_UCHARS_MAPPING_INDEX_START = 4, /* The starting index of 2 UChars mapping index in the mapping data array */ _SPREP_THREE_UCHARS_MAPPING_INDEX_START = 5, /* The starting index of 3 UChars mapping index in the mapping data array */ @@ -101,7 +101,7 @@ struct UStringPrepProfile{ * @internal */ U_CAPI void U_EXPORT2 -uprv_syntaxError(const UChar* rules, +uprv_syntaxError(const UChar* rules, int32_t pos, int32_t rulesLen, UParseError* parseError); diff --git a/deps/icu-small/source/common/static_unicode_sets.h b/deps/icu-small/source/common/static_unicode_sets.h index 9d8a5fcddc9953..5d90ce5908de98 100644 --- a/deps/icu-small/source/common/static_unicode_sets.h +++ b/deps/icu-small/source/common/static_unicode_sets.h @@ -83,9 +83,9 @@ enum Key { * * This method is always safe and OK to chain: in the case of a memory or other * error, it returns an empty set from static memory. - * + * * Example: - * + * * UBool hasIgnorables = unisets::get(unisets::DEFAULT_IGNORABLES)->contains(...); * * @param key The desired UnicodeSet according to the enum in this file. diff --git a/deps/icu-small/source/common/stringtriebuilder.cpp b/deps/icu-small/source/common/stringtriebuilder.cpp index 6f9cc2e5c22b55..4d52a88af7499b 100644 --- a/deps/icu-small/source/common/stringtriebuilder.cpp +++ b/deps/icu-small/source/common/stringtriebuilder.cpp @@ -383,7 +383,7 @@ StringTrieBuilder::equalNodes(const void *left, const void *right) { return *(const Node *)left==*(const Node *)right; } -UBool +bool StringTrieBuilder::Node::operator==(const Node &other) const { return this==&other || (typeid(*this)==typeid(other) && hash==other.hash); } @@ -396,13 +396,13 @@ StringTrieBuilder::Node::markRightEdgesFirst(int32_t edgeNumber) { return edgeNumber; } -UBool +bool StringTrieBuilder::FinalValueNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!Node::operator==(other)) { - return FALSE; + return false; } const FinalValueNode &o=(const FinalValueNode &)other; return value==o.value; @@ -413,25 +413,25 @@ StringTrieBuilder::FinalValueNode::write(StringTrieBuilder &builder) { offset=builder.writeValueAndFinal(value, TRUE); } -UBool +bool StringTrieBuilder::ValueNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!Node::operator==(other)) { - return FALSE; + return false; } const ValueNode &o=(const ValueNode &)other; return hasValue==o.hasValue && (!hasValue || value==o.value); } -UBool +bool StringTrieBuilder::IntermediateValueNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!ValueNode::operator==(other)) { - return FALSE; + return false; } const IntermediateValueNode &o=(const IntermediateValueNode &)other; return next==o.next; @@ -451,13 +451,13 @@ StringTrieBuilder::IntermediateValueNode::write(StringTrieBuilder &builder) { offset=builder.writeValueAndFinal(value, FALSE); } -UBool +bool StringTrieBuilder::LinearMatchNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!ValueNode::operator==(other)) { - return FALSE; + return false; } const LinearMatchNode &o=(const LinearMatchNode &)other; return length==o.length && next==o.next; @@ -471,21 +471,21 @@ StringTrieBuilder::LinearMatchNode::markRightEdgesFirst(int32_t edgeNumber) { return edgeNumber; } -UBool +bool StringTrieBuilder::ListBranchNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!Node::operator==(other)) { - return FALSE; + return false; } const ListBranchNode &o=(const ListBranchNode &)other; for(int32_t i=0; i +# define UPRV_UNREACHABLE_ASSERT assert(false) +#elif U_CPLUSPLUS_VERSION +# define UPRV_UNREACHABLE_ASSERT (void)0 +#else +# define UPRV_UNREACHABLE_ASSERT +#endif + +/** + * \def UPRV_UNREACHABLE_EXIT * This macro is used to unconditionally abort if unreachable code is ever executed. * @internal */ -#if defined(UPRV_UNREACHABLE) +#if defined(UPRV_UNREACHABLE_EXIT) // Use the predefined value. #else -# define UPRV_UNREACHABLE abort() +# define UPRV_UNREACHABLE_EXIT abort() #endif #endif diff --git a/deps/icu-small/source/common/ubidi.cpp b/deps/icu-small/source/common/ubidi.cpp index 3ddb45721e25ec..6d27827c504a94 100644 --- a/deps/icu-small/source/common/ubidi.cpp +++ b/deps/icu-small/source/common/ubidi.cpp @@ -2047,7 +2047,7 @@ processPropertySeq(UBiDi *pBiDi, LevState *pLevState, uint8_t _prop, break; default: /* we should never get here */ - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } if((addLevel) || (start < start0)) { @@ -2250,7 +2250,7 @@ resolveImplicitLevels(UBiDi *pBiDi, start2=i; break; default: /* we should never get here */ - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } } @@ -2724,7 +2724,7 @@ ubidi_setPara(UBiDi *pBiDi, const UChar *text, int32_t length, break; default: /* we should never get here */ - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } /* * If there are no external levels specified and there diff --git a/deps/icu-small/source/common/ubidi_props_data.h b/deps/icu-small/source/common/ubidi_props_data.h index 7a34870bd8003f..aad919fa2ef2cc 100644 --- a/deps/icu-small/source/common/ubidi_props_data.h +++ b/deps/icu-small/source/common/ubidi_props_data.h @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,798 +7,818 @@ // // machine-generated by: icu/tools/unicode/c/genprops/bidipropsbuilder.cpp - #ifdef INCLUDED_FROM_UBIDI_PROPS_C -static const UVersionInfo ubidi_props_dataVersion={0xd,0,0,0}; +static const UVersionInfo ubidi_props_dataVersion={0xe,0,0,0}; -static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x67ec,0x6200,0x28,0x620,0x8c8,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6502b6}; +static const int32_t ubidi_props_indexes[UBIDI_IX_TOP]={0x10,0x6a98,0x64a8,0x28,0x620,0x8cc,0x10ac0,0x10d24,0,0,0,0,0,0,0,0x6702b6}; -static const uint16_t ubidi_props_trieIndex[12536]={ -0x37c,0x384,0x38c,0x394,0x3ac,0x3b4,0x3bc,0x3c4,0x39c,0x3a4,0x39c,0x3a4,0x39c,0x3a4,0x39c,0x3a4, -0x39c,0x3a4,0x39c,0x3a4,0x3ca,0x3d2,0x3da,0x3e2,0x3ea,0x3f2,0x3ee,0x3f6,0x3fe,0x406,0x401,0x409, -0x39c,0x3a4,0x39c,0x3a4,0x411,0x419,0x39c,0x3a4,0x39c,0x3a4,0x39c,0x3a4,0x41f,0x427,0x42f,0x437, -0x43f,0x447,0x44f,0x457,0x45d,0x465,0x46d,0x475,0x47d,0x485,0x48b,0x493,0x49b,0x4a3,0x4ab,0x4b3, -0x4bf,0x4bb,0x4c7,0x4cf,0x431,0x4df,0x4e6,0x4d7,0x4ee,0x4f0,0x4f8,0x500,0x508,0x509,0x511,0x519, -0x521,0x509,0x529,0x52e,0x521,0x509,0x536,0x53e,0x508,0x546,0x54e,0x500,0x556,0x39c,0x55e,0x562, -0x56a,0x56c,0x574,0x57c,0x508,0x584,0x58c,0x500,0x413,0x590,0x511,0x500,0x508,0x39c,0x598,0x39c, -0x39c,0x59e,0x5a6,0x39c,0x39c,0x5aa,0x5b2,0x39c,0x5b6,0x5bd,0x39c,0x5c5,0x5cd,0x5d4,0x555,0x39c, -0x39c,0x5dc,0x5e4,0x5ec,0x5f4,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x5fc,0x39c,0x604,0x39c,0x39c,0x39c, -0x60c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x614,0x39c,0x39c,0x39c,0x61c,0x61c,0x515,0x515,0x39c,0x622,0x62a,0x604, -0x640,0x632,0x632,0x648,0x64f,0x638,0x39c,0x39c,0x39c,0x657,0x65f,0x39c,0x39c,0x39c,0x661,0x669, -0x671,0x39c,0x678,0x680,0x39c,0x688,0x56b,0x39c,0x545,0x690,0x556,0x698,0x413,0x6a0,0x39c,0x6a7, -0x39c,0x6ac,0x39c,0x39c,0x39c,0x39c,0x6b2,0x6ba,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x3ea,0x6c2, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x6ca,0x6d2,0x6d6, -0x6ee,0x6f4,0x6de,0x6e6,0x6fc,0x704,0x708,0x5d7,0x710,0x718,0x720,0x39c,0x728,0x669,0x669,0x669, -0x738,0x740,0x748,0x750,0x755,0x75d,0x765,0x730,0x76d,0x775,0x39c,0x77b,0x782,0x669,0x669,0x669, -0x669,0x582,0x788,0x669,0x790,0x39c,0x39c,0x666,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669, -0x669,0x669,0x669,0x669,0x669,0x798,0x669,0x669,0x669,0x669,0x669,0x79e,0x669,0x669,0x7a6,0x7ae, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x669,0x669,0x669,0x669,0x7be,0x7c6,0x7ce,0x7b6, -0x7de,0x7e6,0x7ee,0x7f5,0x7fc,0x804,0x808,0x7d6,0x669,0x669,0x669,0x810,0x816,0x669,0x669,0x81c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x824,0x39c,0x39c,0x39c,0x82c,0x39c,0x39c,0x39c,0x3ea, -0x834,0x83c,0x840,0x39c,0x848,0x669,0x669,0x66c,0x669,0x669,0x669,0x669,0x669,0x669,0x84f,0x855, -0x865,0x85d,0x39c,0x39c,0x86d,0x60c,0x39c,0x3c3,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x669,0x82b, -0x3d1,0x39c,0x875,0x87d,0x39c,0x885,0x88d,0x39c,0x39c,0x39c,0x39c,0x891,0x39c,0x39c,0x661,0x3c2, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x669,0x669, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x875,0x669,0x582,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x898,0x39c,0x39c,0x89d,0x56c,0x39c,0x39c,0x5b8,0x669,0x660,0x39c,0x39c,0x8a5,0x39c,0x39c,0x39c, -0x8ad,0x8b4,0x632,0x8bc,0x39c,0x39c,0x58e,0x8c4,0x39c,0x8cc,0x8d3,0x39c,0x4ee,0x8d8,0x39c,0x507, -0x39c,0x8e0,0x8e8,0x509,0x39c,0x8ec,0x508,0x8f4,0x39c,0x39c,0x39c,0x8fa,0x39c,0x39c,0x39c,0x901, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x915,0x909,0x90d,0x49b,0x49b,0x49b,0x49b,0x49b, -0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x49b,0x91d,0x49b,0x49b,0x49b,0x49b,0x925,0x929, -0x931,0x939,0x93d,0x945,0x49b,0x49b,0x49b,0x949,0x951,0x38c,0x959,0x961,0x39c,0x39c,0x39c,0x969, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0xe70,0xe70,0xeb0,0xef0,0xe70,0xe70,0xe70,0xe70,0xe70,0xe70,0xf28,0xf68,0xfa8,0xfb8,0xff8,0x1004, -0xe70,0xe70,0x1044,0xe70,0xe70,0xe70,0x107c,0x10bc,0x10fc,0x113c,0x1174,0x11b4,0x11f4,0x122c,0x126c,0x12ac, +static const uint16_t ubidi_props_trieIndex[12876]={ +0x387,0x38f,0x397,0x39f,0x3b7,0x3bf,0x3c7,0x3cf,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af, +0x3a7,0x3af,0x3a7,0x3af,0x3d5,0x3dd,0x3e5,0x3ed,0x3f5,0x3fd,0x3f9,0x401,0x409,0x411,0x40c,0x414, +0x3a7,0x3af,0x3a7,0x3af,0x41c,0x424,0x3a7,0x3af,0x3a7,0x3af,0x3a7,0x3af,0x42a,0x432,0x43a,0x442, +0x44a,0x452,0x45a,0x462,0x468,0x470,0x478,0x480,0x488,0x490,0x496,0x49e,0x4a6,0x4ae,0x4b6,0x4be, +0x4ca,0x4c6,0x4d2,0x4da,0x4e2,0x4f2,0x4f9,0x4ea,0x501,0x503,0x50b,0x513,0x51b,0x51c,0x524,0x52c, +0x534,0x51c,0x53c,0x541,0x534,0x51c,0x549,0x551,0x51b,0x559,0x561,0x513,0x569,0x3a7,0x571,0x575, +0x57d,0x57f,0x587,0x58f,0x51b,0x597,0x59f,0x513,0x41e,0x5a3,0x524,0x513,0x51b,0x3a7,0x5ab,0x3a7, +0x3a7,0x5b1,0x5b9,0x3a7,0x3a7,0x5bd,0x5c5,0x3a7,0x5c9,0x5d0,0x3a7,0x5d8,0x5e0,0x5e7,0x568,0x3a7, +0x3a7,0x5ef,0x5f7,0x5ff,0x607,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x60f,0x3a7,0x617,0x3a7,0x3a7,0x3a7, +0x61f,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x627,0x3a7,0x3a7,0x3a7,0x62f,0x528,0x528,0x528,0x3a7,0x635,0x63d,0x617, +0x653,0x645,0x645,0x65b,0x662,0x64b,0x3a7,0x3a7,0x3a7,0x66a,0x672,0x3a7,0x3a7,0x3a7,0x674,0x67c, +0x684,0x3a7,0x68b,0x693,0x3a7,0x69b,0x4fe,0x3a7,0x558,0x6a3,0x569,0x6ab,0x41e,0x6b3,0x3a7,0x6ba, +0x3a7,0x6bf,0x3a7,0x3a7,0x3a7,0x3a7,0x6c5,0x6cd,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0x3f5, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x6d4,0x6dc,0x6e0, +0x6f8,0x6fe,0x6e8,0x6f0,0x706,0x70e,0x712,0x5ea,0x71a,0x722,0x72a,0x3a7,0x732,0x67c,0x67c,0x67c, +0x742,0x74a,0x752,0x75a,0x75f,0x767,0x76f,0x73a,0x777,0x77f,0x3a7,0x785,0x78c,0x67c,0x67c,0x67c, +0x67c,0x595,0x792,0x67c,0x79a,0x3a7,0x3a7,0x679,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c, +0x67c,0x67c,0x67c,0x67c,0x67c,0x7a2,0x67c,0x67c,0x67c,0x67c,0x67c,0x7a8,0x67c,0x67c,0x7b0,0x7b8, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c,0x67c,0x67c,0x7c8,0x7d0,0x7d8,0x7c0, +0x7e8,0x7f0,0x7f8,0x7ff,0x806,0x80e,0x812,0x7e0,0x67c,0x67c,0x67c,0x81a,0x820,0x67c,0x67c,0x826, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x82e,0x3a7,0x3a7,0x3a7,0x836,0x3a7,0x3a7,0x3a7,0x3f5, +0x83e,0x846,0x849,0x3a7,0x851,0x67c,0x67c,0x67f,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x858,0x85e, +0x86e,0x866,0x3a7,0x3a7,0x876,0x61f,0x3a7,0x3ce,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x835, +0x3dc,0x3a7,0x87e,0x886,0x3a7,0x88e,0x896,0x3a7,0x3a7,0x3a7,0x3a7,0x89a,0x3a7,0x3a7,0x674,0x3cd, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x67c,0x67c, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x87e,0x67c,0x595,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x8a1,0x3a7,0x3a7,0x8a6,0x8ae,0x3a7,0x3a7,0x5cb,0x67c,0x673,0x3a7,0x3a7,0x8b6,0x3a7,0x3a7,0x3a7, +0x8be,0x8c5,0x645,0x8cd,0x3a7,0x3a7,0x5a1,0x8d5,0x3a7,0x8dd,0x8e4,0x3a7,0x501,0x8e9,0x3a7,0x51a, +0x3a7,0x8f1,0x8f9,0x51c,0x3a7,0x8fd,0x51b,0x905,0x3a7,0x3a7,0x3a7,0x90b,0x3a7,0x3a7,0x3a7,0x912, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x926,0x91a,0x91e,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, +0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x92e,0x936,0x4a6,0x4a6,0x4a6,0x93b,0x93f, +0x947,0x94f,0x953,0x95b,0x4a6,0x4a6,0x4a6,0x95f,0x967,0x397,0x96f,0x977,0x3a7,0x3a7,0x3a7,0x97f, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0xe9c,0xe9c,0xedc,0xf1c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xe9c,0xf54,0xf94,0xfd4,0xfe4,0x1024,0x1030, +0xe9c,0xe9c,0x1070,0xe9c,0xe9c,0xe9c,0x10a8,0x10e8,0x1128,0x1168,0x11a0,0x11e0,0x1220,0x1258,0x1298,0x12d8, 0xa40,0xa80,0xac0,0xaff,0x1a0,0x1a0,0xb3f,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xb68,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xba8,0x1a0,0x1a0,0xbdd,0xc1d,0xc5d,0xc9d,0xcdd,0xd1d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xba8,0x1a0,0xbce,0xc09,0xc49,0xc89,0xcc9,0xd09,0xd49, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, -0xd9d,0xdad,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0xdc9,0xdd9,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, 0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0, -0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd5d, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x971,0x39c,0x669,0x669,0x979,0x60c,0x39c,0x501, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x981,0x39c,0x39c,0x39c,0x988,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x990,0x431,0x431,0x431,0x431,0x431,0x431,0x431, -0x998,0x99c,0x431,0x431,0x431,0x431,0x9ac,0x9a4,0x431,0x9b4,0x431,0x431,0x9bc,0x9c2,0x431,0x431, -0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x9d2,0x9ca,0x431,0x431,0x431,0x431,0x431,0x431, -0x431,0x431,0x431,0x9da,0x431,0x9e2,0x431,0x431,0x431,0x9e6,0x9ed,0x9f3,0x431,0x9f7,0x9ff,0x431, -0x508,0xa07,0xa0e,0xa15,0x413,0xa18,0x39c,0x39c,0x4ee,0xa1f,0x39c,0xa25,0x413,0xa2a,0xa32,0x39c, -0x39c,0xa37,0x39c,0x39c,0x39c,0x39c,0x82c,0xa3f,0x413,0x590,0x56b,0xa46,0x39c,0x39c,0x39c,0x39c, -0x39c,0xa07,0xa4e,0x39c,0x39c,0xa56,0xa5e,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xa62,0xa6a,0x39c, -0x39c,0xa72,0x56b,0xa7a,0x39c,0xa80,0x39c,0x39c,0x5fc,0xa88,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0xa8d,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xa94,0xa9c,0x39c,0x39c,0x39c,0xa9f,0x56b,0xaa7, -0xaab,0xab3,0x39c,0xaba,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0xac1,0x39c,0x39c,0xacf,0xac9,0x39c,0x39c,0x39c,0xad7,0xadf,0x39c,0xae3,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x592,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xaf0,0xaeb,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0xaf8,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xaff, -0x39c,0xb05,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0xa26,0x39c,0xb0b,0x39c,0x39c,0xb13,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x522,0xb1b,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xb22,0xb2a,0xb30,0x39c,0x39c,0x669,0x669,0xb38, -0x39c,0x39c,0x39c,0x39c,0x39c,0x669,0x669,0x83f,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0xb3a,0x39c,0xb41,0x39c,0xb3d,0x39c,0xb44,0x39c,0xb4c,0xb50,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x3ea,0xb58,0x3ea, -0xb5f,0xb66,0xb6e,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xb76,0xb7e,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xb05,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0xb83,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x431,0x431,0x431, -0x431,0x431,0x431,0xb8b,0x431,0xb93,0xb93,0xb9a,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431, -0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431, -0x90d,0x49b,0x49b,0x431,0x431,0x49b,0x49b,0x9f3,0x431,0x431,0x431,0x431,0x431,0x49b,0x49b,0x49b, -0x49b,0x49b,0x49b,0x49b,0xba2,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x431,0x669,0xbaa,0x669, -0x669,0x66c,0xbaf,0xbb3,0x84f,0xbbb,0x3be,0x39c,0xbc1,0x39c,0xbc6,0x39c,0x39c,0x39c,0x39c,0x39c, -0x779,0x39c,0x39c,0x39c,0x39c,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669, -0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669,0x669, -0x669,0x669,0x669,0x66b,0x979,0x669,0x669,0x669,0x66c,0x669,0x669,0xbce,0x66e,0xbaa,0x669,0xbd6, -0x669,0xbde,0xbe3,0x39c,0x39c,0x669,0x669,0x669,0xbeb,0x669,0x669,0x798,0x669,0x669,0x669,0x66c, -0xbf2,0xbfa,0xc00,0xc05,0x39c,0x669,0x669,0x669,0x669,0xc0d,0x669,0x788,0xc15,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xc1c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c, -0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0x39c,0xc1c,0xc2c,0xc24,0xc24, -0xc24,0xc2d,0xc2d,0xc2d,0xc2d,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0xc35,0xc2d,0xc2d,0xc2d, -0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, -0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, -0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, -0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0x37b,0x37b,0x37b, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8, -9,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6, -2,2,2,2,2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa, -0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0xa, -0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x12, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x12,0x12,0x12,0x12,0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -6,0xa,4,4,4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa, -4,4,2,2,0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xa,0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0x1a0,0xd89, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x987,0x3a7,0x67c,0x67c,0x98f,0x61f,0x3a7,0x514, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x997,0x3a7,0x3a7,0x3a7,0x99e,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9a6,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, +0x9ae,0x9b2,0x43c,0x43c,0x43c,0x43c,0x9c2,0x9ba,0x43c,0x9ca,0x43c,0x43c,0x9d2,0x9d8,0x43c,0x43c, +0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x9e8,0x9e0,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, +0x43c,0x43c,0x43c,0x9f0,0x43c,0x9f8,0x43c,0x43c,0x43c,0x9fc,0xa03,0xa09,0xa11,0xa15,0xa1d,0x43c, +0x51b,0xa25,0xa2c,0xa33,0x41e,0xa3b,0x569,0x3a7,0x501,0xa42,0x3a7,0xa48,0x41e,0xa4d,0xa55,0x3a7, +0x3a7,0xa5a,0x3a7,0x3a7,0x3a7,0x3a7,0x836,0xa62,0x41e,0x5a3,0x57e,0xa69,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0xa25,0xa71,0x3a7,0x3a7,0xa79,0xa81,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa85,0xa8d,0x3a7, +0x3a7,0xa95,0x57e,0xa9d,0x3a7,0xaa3,0x3a7,0x3a7,0x60f,0xaab,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0xab0,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xab7,0xabf,0x3a7,0x3a7,0x3a7,0xac2,0x57e,0xaca, +0xace,0xad6,0x3a7,0xadd,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0xae4,0x3a7,0x3a7,0xaf2,0xaec,0x3a7,0x3a7,0x3a7,0xafa,0xb02,0x3a7,0xb06,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x5a5,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb13,0xb0e,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0xb1b,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb22, +0x3a7,0xb28,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0xa49,0x3a7,0xb2e,0x3a7,0x3a7,0xb36,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x535,0xb3e,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb46,0x500,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0xb4e,0xb56,0xb5c,0x3a7,0xb62,0x67c,0x67c,0xb6a,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x67c,0x67c,0xb72,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xb78, +0x3a7,0xb7f,0x3a7,0xb7b,0x3a7,0xb82,0x3a7,0xb8a,0xb8e,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3f5,0xb96,0x3f5,0xb9d,0xba4,0xbac,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xbb4,0xbbc,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0xb28,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xa75,0x3a7, +0xbc1,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0xbc9, +0x43c,0xbd1,0xbd1,0xbd8,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c, +0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x91e,0x4a6,0x4a6,0x43c, +0x43c,0x4a6,0x4a6,0xbe0,0x43c,0x43c,0x43c,0x43c,0x43c,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6,0x4a6, +0xbe8,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x43c,0x67c,0xbf0,0x67c,0x67c,0x67f,0xbf5,0xbf9, +0x858,0xc01,0x3c9,0x3a7,0xc07,0x3a7,0xc0c,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x783,0x3a7,0x3a7,0x3a7, +0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c, +0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0xc14, +0x98f,0x67c,0x67c,0x67c,0x67f,0x67c,0x67c,0xc1c,0xc24,0xbf0,0x67c,0xc2c,0x67c,0xc34,0xc39,0x3a7, +0x3a7,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67c,0x67f,0xc41,0xc4d,0xc52,0xc5a, +0xc49,0x67c,0x67c,0x67c,0x67c,0xc62,0x67c,0x792,0xc6a,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc71,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7, +0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0x3a7,0xc71,0xc81,0xc79,0xc79,0xc79,0xc82,0xc82,0xc82, +0xc82,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0x3f5,0xc8a,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, +0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, +0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, +0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82, +0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0xc82,0x386,0x386,0x386,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,8,7,8,9,7,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,7,7,7,8,9,0xa,0xa,4, +4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, +2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0xa,0xa,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x12,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12,0x12,0x12, +0x12,7,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,6,0xa,4,4, +4,4,0xa,0xa,0xa,0xa,0,0x900a,0xa,0xb2,0xa,0xa,4,4,2,2, +0xa,0,0xa,0xa,0xa,2,0,0x900a,0xa,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, +0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0, -0,0,0,0,0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xa,0xa,0,0,0,0,0,0, +0,0,0xa,0,0,0,0,0,0xa,0xa,0,0xa,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xa,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, +0,0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1, +0,0,0xa,0,0,0xa,0xa,4,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1, -0xb1,0xb1,1,0xb1,1,1,1,1,1,1,1,1,1,1,1,1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,0xb1,1,0xb1,0xb1,1,0xb1,0xb1,1,0xb1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5, -5,5,0xa,0xa,0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d, -0x8d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5, -5,5,5,5,5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d, -0xd,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d, +1,1,1,1,1,1,1,1,5,5,5,5,5,5,0xa,0xa, +0xd,4,4,0xd,6,0xd,0xa,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xd,0x8ad,0xd,0xd,0xd,0x4d,0xd,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d, +0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x2d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x8d,0x4d,0x4d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,5,5,5,5,5,5,5, +5,5,4,5,5,0xd,0x4d,0x4d,0xb1,0x8d,0x8d,0x8d,0xd,0x8d,0x8d,0x8d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,5,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1, -0xb1,0xb1,0x8d,0x8d,2,2,2,2,2,2,2,2,2,2,0x4d,0x4d, -0x4d,0xd,0xd,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xad,0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d, -0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d, -0x8d,0x4d,0x4d,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d, -0x8d,0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0x8d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x8d,0x4d,0x8d, +0x4d,0x4d,0x8d,0x8d,0xd,0x8d,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xa,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0x8d,0x8d, +2,2,2,2,2,2,2,2,2,2,0x4d,0x4d,0x4d,0xd,0xd,0x4d, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xad, +0x8d,0xb1,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d, +0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x4d,0x8d,0x4d,0x4d,0x8d, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xd,0xd,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x8d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x8d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d, +0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1, -1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1,1,1,1,1, +1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -1,1,0xa,0xa,0xa,0xa,0x21,1,1,0xb1,1,1,0xb1,0xb1,0xb1,0xb1, -1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41, -0x41,0x41,0x81,0x81,0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0x81,0x41,0x81,0x81,0x81,0xb1,0xb1,0xb1,1,1,1,1,0x4d,0xd,0x4d,0x4d, -0x4d,0x4d,0xd,0x8d,0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,5,0xb1, +0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,0xa,0xa, +0xa,0xa,0x21,1,1,0xb1,1,1,0xb1,0xb1,0xb1,0xb1,1,0xb1,0xb1,0xb1, +1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1, +0xb1,0xb1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0x81,0x41,0x41,0x41,0x41,0x41,0x81,0x81, +0x41,0x81,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x81,0x81, +0x81,0xb1,0xb1,0xb1,1,1,1,1,0x4d,0xd,0x4d,0x4d,0x4d,0x4d,0xd,0x8d, +0x4d,0x8d,0x8d,0xd,0xd,0xd,0xd,0xd,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x2d,0x2d,0x2d,0x4d,0xd, +0xd,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0xd,5,5,0xd,0xd,0xd,0xd,0xd,0xd, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,5,0xb1,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d, -0x4d,0xd,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x8d,0x8d,0x8d,0xd,0x8d,0x4d,0x4d,0x8d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,4,0,0,0,0,0,0,0,4,0,0,0xb1,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0, 0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0, 0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,4, -0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0,0,0xb1, -0xb1,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, -0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,4,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, +0xb1,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa, -0xa,4,0xa,0,0,0,0,0,0xb1,0,0,0,0xb1,0,0,0, +0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,4,0xa,0, +0,0,0,0,0xb1,0,0,0,0xb1,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0, -0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, +0,0,0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0, +0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xa0, -0,0,0,0,0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,4,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0,0,0xa0,0,0,0,0, +0,0,0xa0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0,0,4,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a, -0x310a,0xf20a,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0,0,0,0,0,0xb1,0,0xb1,0,0xb1,0x310a,0xf20a,0x310a,0xf20a,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, +0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, -0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xa,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,9,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0, -0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,4,0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0,0,0,0,0,0,0,0x310a,0xf20a,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,4, +0,0xb1,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x40,0x40,0x40,0x40,0x40,0xb1,0x40,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0x4a,0xa,0xa,0x2a,0xb1,0xb1,0xb1,0x12,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x40,0x40,0x40,0x40, 0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0, -0,0xb1,0xb1,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0, -0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0xb1,0, -0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x40,0x40,0x40,0x40,0x40,0,0,0,0,0,0,0,0,0xb1,0xb1,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0xb1,0xb1,0xb1,0,0,0,0,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, +0,0xb1,0xb1,0xb1,0,0,0,0,0xa,0,0,0,0xa,0xa,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0xb1,0xb1,0,0,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0xb1,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0, +0,0,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0xb1,0, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0xb1,0,0,0, -0xb1,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0, -0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0xa,0,0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815, -0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,2,0,0,0,2,2,2,2, -2,2,3,3,0xa,0x310a,0xf20a,0,9,9,9,9,9,9,9,9, -9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6, -4,4,4,4,4,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa, -2,2,2,2,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0, +0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0, +0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, +0,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xa,0xa,0,0xa,0xa,0xa,0xa,0,0xa,0xa,0,0,0,0,0,0, -0,0,0,0,0xa,0,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa, -0xa,0xa,0xa,0xa,0,0xa,0,0xa,0,0xa,0,0,0,0,4,0, -0,0,0,0,0,0,0,0,0,0,0xa,0xa,0,0,0,0, -0x100a,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0, +0xa,0xa,0xa,0xa,6,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,9, +0xb2,0xb2,0xb2,0xb2,0xb2,0x12,0x814,0x815,0x813,0x816,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, +2,0,0,0,2,2,2,2,2,2,3,3,0xa,0x310a,0xf20a,0, +9,9,9,9,9,9,9,9,9,9,9,0xb2,0x412,0x432,0x8a0,0x8a1, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0,0,0,0, +9,7,0x8ab,0x8ae,0x8b0,0x8ac,0x8af,6,4,4,4,4,4,0xa,0xa,0xa, +0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, +2,2,3,3,0xa,0x310a,0xf20a,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0xa,0xa,0xa,0xa,0, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xa,0,0xa,0xa, +0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0,0xa, +0,0xa,0,0,0,0,4,0,0,0,0,0,0,0,0,0, +0,0,0xa,0xa,0,0,0,0,0x100a,0xa,0xa,0xa,0xa,0,0,0, +0,0,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a, +0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa, +0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa,0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa, +0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a,0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa, +0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa, +0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa, +0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a, +0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa, +0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, -0x300a,0xf00a,0x900a,0x900a,0x900a,0x100a,0x900a,0x900a,0x100a,0x100a,0x900a,0x900a,0x900a,0x900a,0x900a,0x100a, -0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0x700a,0x700a,0x700a,0xb00a,0xb00a,0xb00a,0xa,0xa, -0xa,0x100a,3,4,0xa,0x900a,0x100a,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x900a, -0x900a,0x900a,0x900a,0xa,0x900a,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x300a,0xf00a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x900a,0x100a,0x900a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0xa,0xa, -0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a, -0x100a,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x900a,0x100a,0x900a,0x900a,0x100a,0x900a, -0x100a,0x100a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x900a,0xa,0xa,0xa, -0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a, -0xf00a,0x900a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, -0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a, +0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, +0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa,0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa, +0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa, +0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa, +0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa, +0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a, +0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a, +0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a, +0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa, +0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa, +0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, +0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a, +0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa,0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa, +0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0xa, -0x300a,0xf00a,0xa,0x500a,0x100a,0xd00a,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0x300a,0xf00a,0xa, -0xa,0xa,0xa,0xa,0x900a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x310a,0xf20a, -0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x100a,0x100a,0x100a,0xa,0xa, -0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x100a,0x100a, -0x300a,0xf00a,0xa,0xa,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a, -0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x710a,0x320a,0xf10a,0xb20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a, -0xf20a,0xa,0xa,0x900a,0x100a,0x100a,0x100a,0x100a,0x900a,0xa,0x100a,0x900a,0x300a,0xf00a,0x100a,0x100a, -0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0x100a,0x300a,0xf00a,0xa,0xa, -0xa,0x100a,0xa,0xa,0xa,0xa,0x100a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa, -0x310a,0xf20a,0x310a,0xf20a,0x100a,0xa,0xa,0xa,0xa,0xa,0x100a,0x900a,0x900a,0x900a,0x100a,0xa, -0xa,0xa,0xa,0xa,0x300a,0xf00a,0x900a,0xa,0xa,0xa,0xa,0x100a,0xa,0xa,0xa,0x300a, -0xf00a,0x300a,0xf00a,0x100a,0xa,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a,0x100a, -0x100a,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0xa,0x100a,0xa,0x100a,0xa, -0xa,0x100a,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0xa,0xa,0x300a,0xf00a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a, -0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a, -0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x100a,0x100a,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0x300a,0xf00a,0xa,0xa,0xa,0xa,0x100a,0x100a,0x100a,0x100a,0xa,0x100a,0x100a,0xa,0xa,0x100a, +0x100a,0xa,0xa,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, 0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, -0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x100a,0xa,0xa,0x300a,0xf00a, +0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a, +0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0x300a,0xf00a,0xa, +0xa,0xa,0xa,0xa,0x100a,0xa,0x900a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa,0,0,0,0,0,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa, +0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa,0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, +0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a, +0xf20a,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x900a,0xa, -0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0,0,0,0xa,0,0,0,0,0,0,0, +0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xa,0,0,0,0,0,0xa,0xa, +0,0,0,0,0,0xa,0xa,0xa,9,0xa,0xa,0xa,0xa,0,0,0, +0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a, +0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xa,0xa,0x300a,0xf00a,0x300a,0xf00a,0xa,0xa,0xa,0x300a,0xf00a,0xa,0x300a,0xf00a,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x300a,0xf00a,0xa,0xa, -0x300a,0xf00a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0,0,0xa,0,0,0,0,0,0xa,0xa,0,0,0,0, -0,0xa,0xa,0xa,9,0xa,0xa,0xa,0xa,0,0,0,0x310a,0xf20a,0x310a,0xf20a, -0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xa, -0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa, 0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0,0xa,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0xb1,0,0,0,0,0xb1, +0,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xa,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa,0xb1,0,0,0, -0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,0, -0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, -0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1,0,0,0, -0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,1,1,1,1,1,1,1,1,1,3,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0, +0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0xb1,0, +0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xa,0xa,0xa,0xa, +0xb1,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, +0,0,0,0,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40,0x40, +0x40,0x40,0x40,0x40,0x40,0x40,0x60,0,0xa,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0xb1,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0, +0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0, +0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0, +0xb1,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, +1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0,0,0,0,0,1,0xb1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xa,0xd,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,6,0xa,6,0,0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a, -0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3,0x300a,0xf00a,0xa,0,0xa,4,4,0xa, -0,0,0,0,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,6,0xa,6,0, +0xa,6,0xa,0xa,0xa,0x310a,0xf20a,0x310a,0xf20a,0x310a,0xf20a,4,0xa,0xa,3,3, +0x300a,0xf00a,0xa,0,0xa,4,4,0xa,0,0,0,0,0xd,0xd,0xd,0xd, 0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xb2,0,0xa,0xa,4,4,4,0xa,0xa,0x310a,0xf20a,0xa,3, -6,3,6,6,2,2,2,2,2,2,2,2,2,2,6,0xa, -0x500a,0xa,0xd00a,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x510a, -0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a,0xa,0xa,0,0,0,0,0,0, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xb2,0,0xa,0xa,4, +4,4,0xa,0xa,0x310a,0xf20a,0xa,3,6,3,6,6,2,2,2,2, +2,2,2,2,2,2,6,0xa,0x500a,0xa,0xd00a,0xa,0xa,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0xa,0xa,0xa,4,4,0,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa, -0xa,0xa,0x12,0x12,0,0xa,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x510a,0xa,0xd20a,0xa,0x310a,0xf20a,0xa,0x310a,0xf20a, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,0xa,0xa, +0xa,4,4,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0xaa,0xaa,0xaa,0xa,0xa,0x12,0x12,0,0xa,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0,0,0,0xb1,2,2,2,2,2,2,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0xb1,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0,0,0,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0xa, -1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1, +1,1,1,1,1,1,1,0xa,1,0xb1,0xb1,0xb1,1,0xb1,0xb1,1, +1,1,1,1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,1,1,1,1,0xb1, -0x41,0x81,1,1,0x81,0xb1,0xb1,1,1,1,1,0x41,0x41,0x41,0x41,0x81, +0xb1,0xb1,0xb1,1,1,1,1,0xb1,0x41,0x81,1,1,0x81,0xb1,0xb1,1, +1,1,1,0x41,0x41,0x41,0x41,0x81,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x81,1,0x81, +1,0x81,0x81,1,1,0x61,0x81,0x81,0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61, +0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -0x41,0x41,0x41,0x41,0x41,0x81,1,0x81,1,0x81,0x81,1,1,0x61,0x81,0x81, -0x81,0x81,0x81,0x41,0x41,0x41,0x41,0x61,0x41,0x41,0x41,0x41,0x41,0x81,0x41,0x41, +1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41, +0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81,0x41,0x81,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,0x81,0x81,0x81,0x81,0x41,0x41,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0x41,0x81,0x41,0x81,0x81,0x81,0x41,0x41,0x41,0x81,0x41,0x41,0x81,0x41,0x81,0x81, -0x41,0x81,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,0x81,0x81,0x81,0x81,0x41,0x41,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,5,5,5,5,5,5,5,5, -5,5,0xd,0xd,0xd,0xd,0xd,0xd,0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0x4d,0x8d,0x4d,0xb1,0xb1,0xb1,0xb1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +5,5,5,5,5,5,5,5,5,5,0xd,0xd,0xd,0xd,0xd,0xd, +0x6d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, 0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1, -1,1,1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d, -0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d,0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0x41,1,0x41,0x41, -0x81,0x81,0x81,1,0x41,0x81,0x81,0x41,0x41,0x81,0x41,0x41,1,0x41,0x81,0x81, -0x41,1,1,1,1,0x81,0x41,0x61,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0, -0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0xb1,0,0,0,0,0xb1, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,1, +1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0x4d,0x4d,0x4d,0x8d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d,0x4d, +0x4d,0xd,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x4d,0x4d,0x4d, +0x8d,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xd,0xd,0xd,0xd,0x41,0x41,0x41,0x41,0x81,0x81,0x41,0x41,0x41,0x41,0x41,0x41, +0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0x41,1,0x41,0x41,0x81,0x81,0x81,1,0x41,0x81,0x81,0x41, +0x41,0x81,0x41,0x41,1,0x41,0x81,0x81,0x41,1,1,1,1,0x81,0x41,0x61, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0, +0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0xb1, +0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0xb1,0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0, +0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, +0xb1,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xb1, +0,0,0,0,0,0,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, -0,0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0, +0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0, +0,0,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0, +0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0,0xb1,0,0,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0,0,0,0,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, +0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa0, +0xa0,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0xb1,0,0xb1,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0,0xb1,0,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, +0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0xb1, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xa0, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0xb1,0, -0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0,0,0,0xb1,0,0xb1, +0,0,0,0,0,0,0,0,4,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xa0,0xa0,0xb1,0xb1,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, -0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0xa0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0,0, -0,0xb1,0,0xb1,0,0,0,0,0,0,0,0,4,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,4,4,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0xa0,0xa0,0xa0,0xa0, +0xa0,0xa0,0xa0,0xa0,0xa0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,4,4,4, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0xa,0,0xb1,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0xa0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0, -0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2, +0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xb1, +0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0xb1, 0xb1,0xb1,0,0,0,0,0,0,0,0,0,0xb2,0xb2,0xb2,0xb2,0xb2, 0xb2,0xb2,0xb2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1, 0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0,0,0,0,0,0,0,0,0, +0,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xb1,0xb1,0xb1,0xa,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x100a,0,0,0,0,0,0,0,0,0,0,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0x100a,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0x100a,0,0,0,0, +0,0,0,0,0,0,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0, -0,0xb1,0,0,0,0,0,0,0,0,0,0,0xb1,0,0,0, +2,2,2,2,2,2,2,2,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, +0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0,0,0,0,0,0,0,0,0xb1,0,0,0,0,0,0, +0,0,0,0,0xb1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0, -0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1, -0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xb1,0xb1,0xb1,0xb1,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,1,1,1,1,1,1,1,1,1,0x41,0x41,0x41,0x41, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0,0xb1,0xb1,0,0xb1,0xb1,0xb1,0xb1,0xb1,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xb1,0xb1,0xb1,0xb1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,1,1,1,1,1, +1,1,1,1,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, 0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41, -0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xa1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd, -0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,2,2,2,2, -2,2,2,2,2,2,2,0xa,0xa,0xa,0xa,0xa,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa, +0x41,0x41,0x41,0x41,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xa1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xa,0xa,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd,0xd, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,2,2,2,2,2,2,2,2,2,2,2,0xa, 0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0xa,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0xa,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0,0,0, -0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0, -0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, 0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, +0xa,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0xa,0xa,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa, +0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0, 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0, 0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, -0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,0,0, +0xa,0xa,0xa,0xa,0xa,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0,0, +0,0,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0,0,0,0,0,0,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0xa,0xa,0xa,0xa, +0xa,0xa,0xa,0xa,0xa,0xa,0xa,0xa,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, +2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x12,0x12, +0,0,0x12,0x12,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, 0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2,0xb2, -0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0xb2,0xb2,0xb2,0xb2,0x12,0xb2,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0,0,0,0 +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0,0,0,0 }; static const uint32_t ubidi_props_mirrors[40]={ @@ -808,7 +827,7 @@ static const uint32_t ubidi_props_mirrors[40]={ 0x16029b8,0x4029f5,0x1802ade,0x1c02ae3,0x1a02ae4,0x1e02ae5,0xe02aee,0x602bfe }; -static const uint8_t ubidi_props_jgArray[680]={ +static const uint8_t ubidi_props_jgArray[684]={ 0x2d,0,3,3,0x2c,3,0x2d,3,4,0x2a,4,4,0xd,0xd,0xd,6, 6,0x1f,0x1f,0x23,0x23,0x21,0x21,0x28,0x28,1,1,0xb,0xb,0x37,0x37,0x37, 0,9,0x1d,0x13,0x16,0x18,0x1a,0x10,0x2c,0x2d,0x2d,0,0,0,0,0, @@ -846,12 +865,12 @@ static const uint8_t ubidi_props_jgArray[680]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0x5d,0x5a,0x60,0x63,0x5e,0x5f,0x59,0x61,0x5b,0x5c,0x62,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,0,0,0,0x66,0,0,0x1a,0xd,0x28,0x28,0xb,0x67,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4,4,0xd,0x28,9,0x1d,0x16,0x18,0x2d,0x2d,0x1f,0x2c,0x39,0,6,0x21, -0xb,0x55,0x1f,1,0x13,0,4,4,4,0x1f,0x2d,0x56,0x58,0x57,4,4, -4,0xd,0xb,1,0x58,0xd,0xd,0x16 +0xb,0x55,0x1f,1,0x13,0x1d,4,4,4,0x1f,0x2d,0x56,0x58,0x57,4,4, +4,0xd,0xb,1,0x58,0xd,0xd,0x16,0xb,0,0,0 }; static const uint8_t ubidi_props_jgArray2[612]={ @@ -904,16 +923,16 @@ static const UBiDiProps ubidi_props_singleton={ ubidi_props_jgArray2, { ubidi_props_trieIndex, - ubidi_props_trieIndex+3568, + ubidi_props_trieIndex+3612, NULL, - 3568, - 8968, + 3612, + 9264, 0x1a0, - 0xe70, + 0xe9c, 0x0, 0x0, 0x110000, - 0x30f4, + 0x3248, NULL, 0, FALSE, FALSE, 0, NULL }, { 2,2,0,0 } diff --git a/deps/icu-small/source/common/ubidiln.cpp b/deps/icu-small/source/common/ubidiln.cpp index 3545f4e111ce78..fea239380a3bca 100644 --- a/deps/icu-small/source/common/ubidiln.cpp +++ b/deps/icu-small/source/common/ubidiln.cpp @@ -31,7 +31,7 @@ * text in a single paragraph or in a line of a single paragraph * which has already been processed according to * the Unicode 6.3 BiDi algorithm as defined in - * http://www.unicode.org/unicode/reports/tr9/ , version 28, + * https://www.unicode.org/reports/tr9/ , version 28, * also described in The Unicode Standard, Version 6.3.0 . * * This means that there is a UBiDi object with a levels @@ -530,7 +530,7 @@ static int32_t getRunFromLogicalIndex(UBiDi *pBiDi, int32_t logicalIndex) { visualStart+=length; } /* we should never get here */ - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } /* diff --git a/deps/icu-small/source/common/ubiditransform.cpp b/deps/icu-small/source/common/ubiditransform.cpp index ab3dcbe14c0cfe..d56bf1518bfa19 100644 --- a/deps/icu-small/source/common/ubiditransform.cpp +++ b/deps/icu-small/source/common/ubiditransform.cpp @@ -118,7 +118,7 @@ ubiditransform_close(UBiDiTransform *pBiDiTransform) /** * Performs Bidi resolution of text. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -135,7 +135,7 @@ action_resolve(UBiDiTransform *pTransform, UErrorCode *pErrorCode) /** * Performs basic reordering of text (Logical -> Visual LTR). - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -155,7 +155,7 @@ action_reorder(UBiDiTransform *pTransform, UErrorCode *pErrorCode) /** * Sets "inverse" mode on the UBiDi object. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -174,7 +174,7 @@ action_setInverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) /** * Sets "runs only" reordering mode indicating a Logical LTR <-> Logical RTL * transformation. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -191,7 +191,7 @@ action_setRunsOnly(UBiDiTransform *pTransform, UErrorCode *pErrorCode) /** * Performs string reverse. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -212,7 +212,7 @@ action_reverse(UBiDiTransform *pTransform, UErrorCode *pErrorCode) * Applies a new value to the text that serves as input at the current * processing step. This value is identical to the original one when we begin * the processing, but usually changes as the transformation progresses. - * + * * @param pTransform A pointer to the UBiDiTransform structure. * @param newSrc A pointer whose value is to be used as input text. * @param newLength A length of the new text in UChars. @@ -243,12 +243,12 @@ updateSrc(UBiDiTransform *pTransform, const UChar *newSrc, uint32_t newLength, } u_strncpy(pTransform->src, newSrc, newLength); pTransform->srcLength = u_terminateUChars(pTransform->src, - pTransform->srcSize, newLength, pErrorCode); + pTransform->srcSize, newLength, pErrorCode); } /** * Calls a lower level shaping function. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param options Shaping options. * @param pErrorCode Pointer to the error code value. @@ -263,7 +263,7 @@ doShape(UBiDiTransform *pTransform, uint32_t options, UErrorCode *pErrorCode) /** * Performs digit and letter shaping. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -293,7 +293,7 @@ action_shapeArabic(UBiDiTransform *pTransform, UErrorCode *pErrorCode) /** * Performs character mirroring. - * + * * @param pTransform Pointer to the UBiDiTransform structure. * @param pErrorCode Pointer to the error code value. * @@ -314,10 +314,10 @@ action_mirror(UBiDiTransform *pTransform, UErrorCode *pErrorCode) } do { UBool isOdd = ubidi_getLevelAt(pTransform->pBidi, i) & 1; - U16_NEXT(pTransform->src, i, pTransform->srcLength, c); + U16_NEXT(pTransform->src, i, pTransform->srcLength, c); U16_APPEND_UNSAFE(pTransform->dest, j, isOdd ? u_charMirror(c) : c); } while (i < pTransform->srcLength); - + *pTransform->pDestLength = pTransform->srcLength; pTransform->reorderingOptions = UBIDI_REORDER_DEFAULT; return TRUE; @@ -416,7 +416,7 @@ resolveBaseDirection(const UChar *text, uint32_t length, /** * Finds a valid ReorderingScheme matching the * caller-defined scheme. - * + * * @return A valid ReorderingScheme object or NULL */ static const ReorderingScheme* diff --git a/deps/icu-small/source/common/ucase.cpp b/deps/icu-small/source/common/ucase.cpp index 7f779441975d23..4aa856507aafb1 100644 --- a/deps/icu-small/source/common/ucase.cpp +++ b/deps/icu-small/source/common/ucase.cpp @@ -351,7 +351,7 @@ strcmpMax(const UChar *s, int32_t length, const UChar *t, int32_t max) { if(max==0 || *t==0) { return 0; /* equal to length of both strings */ } else { - return -max; /* return lengh difference */ + return -max; /* return length difference */ } } @@ -690,7 +690,7 @@ ucase_isCaseSensitive(UChar32 c) { * - The general category of C is * Nonspacing Mark (Mn), or Enclosing Mark (Me), or Format Control (Cf), or * Letter Modifier (Lm), or Symbol Modifier (Sk) - * - C is one of the following characters + * - C is one of the following characters * U+0027 APOSTROPHE * U+00AD SOFT HYPHEN (SHY) * U+2019 RIGHT SINGLE QUOTATION MARK @@ -1542,7 +1542,7 @@ U_CAPI UChar32 U_EXPORT2 u_tolower(UChar32 c) { return ucase_tolower(c); } - + /* Transforms the Unicode character to its upper case equivalent.*/ U_CAPI UChar32 U_EXPORT2 u_toupper(UChar32 c) { diff --git a/deps/icu-small/source/common/ucase_props_data.h b/deps/icu-small/source/common/ucase_props_data.h index aead6d58d1ec9c..8bbf403cdcacd8 100644 --- a/deps/icu-small/source/common/ucase_props_data.h +++ b/deps/icu-small/source/common/ucase_props_data.h @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,148 +7,147 @@ // // machine-generated by: icu/tools/unicode/c/genprops/casepropsbuilder.cpp - #ifdef INCLUDED_FROM_UCASE_CPP -static const UVersionInfo ucase_props_dataVersion={0xd,0,0,0}; +static const UVersionInfo ucase_props_dataVersion={0xe,0,0,0}; -static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x70c2,0x6098,0x683,0x172,0,0,0,0,0,0,0,0,0,0,3}; +static const int32_t ucase_props_indexes[UCASE_IX_TOP]={0x10,0x7512,0x64e8,0x683,0x172,0,0,0,0,0,0,0,0,0,0,3}; -static const uint16_t ucase_props_trieIndex[12356]={ -0x336,0x33e,0x346,0x34e,0x35c,0x364,0x36c,0x374,0x37c,0x384,0x38b,0x393,0x39b,0x3a3,0x3ab,0x3b3, -0x3b9,0x3c1,0x3c9,0x3d1,0x3d9,0x3e1,0x3e9,0x3f1,0x3f9,0x401,0x409,0x411,0x419,0x421,0x429,0x431, -0x439,0x441,0x449,0x451,0x459,0x461,0x469,0x471,0x46d,0x475,0x47a,0x482,0x489,0x491,0x499,0x4a1, -0x4a9,0x4b1,0x4b9,0x4c1,0x355,0x35d,0x4c6,0x4ce,0x4d3,0x4db,0x4e3,0x4eb,0x4ea,0x4f2,0x4f7,0x4ff, -0x507,0x50e,0x512,0x355,0x355,0x355,0x519,0x521,0x529,0x52b,0x533,0x53b,0x53f,0x540,0x548,0x550, -0x558,0x540,0x560,0x565,0x558,0x540,0x56d,0x575,0x53f,0x57d,0x585,0x58d,0x595,0x355,0x59d,0x355, -0x5a5,0x4ec,0x5ad,0x58d,0x53f,0x57d,0x5b4,0x58d,0x5bc,0x5be,0x548,0x58d,0x53f,0x355,0x5c6,0x355, -0x355,0x5cc,0x5d3,0x355,0x355,0x5d7,0x5df,0x355,0x5e3,0x5ea,0x355,0x5f1,0x5f9,0x600,0x608,0x355, -0x355,0x60d,0x615,0x61d,0x625,0x62d,0x634,0x63c,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x644,0x355,0x355,0x654,0x654,0x64c, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x65c,0x65c,0x54c,0x54c,0x355,0x662,0x66a,0x355, -0x672,0x355,0x67a,0x355,0x681,0x687,0x355,0x355,0x355,0x68f,0x355,0x355,0x355,0x355,0x355,0x355, -0x696,0x355,0x69d,0x6a5,0x355,0x6ad,0x6b5,0x355,0x57c,0x6b8,0x6c0,0x6c6,0x5bc,0x6ce,0x355,0x6d5, -0x355,0x6da,0x355,0x6e0,0x6e8,0x6ec,0x6f4,0x6fc,0x704,0x709,0x70c,0x714,0x724,0x71c,0x734,0x72c, -0x37c,0x73c,0x37c,0x744,0x747,0x37c,0x74f,0x37c,0x757,0x75f,0x767,0x76f,0x777,0x77f,0x787,0x78f, -0x797,0x79e,0x355,0x7a6,0x7ae,0x355,0x7b6,0x7be,0x7c6,0x7ce,0x7d6,0x7de,0x7e6,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x7e9,0x7ef,0x7f5,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x7fd,0x802,0x806,0x80e,0x37c,0x37c,0x37c,0x816,0x81e,0x825,0x355,0x82a,0x355,0x355,0x355,0x832, -0x355,0x677,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x53e,0x83a,0x355,0x355,0x841,0x355,0x355,0x849,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x851,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x6e0,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x857,0x355,0x85f,0x864,0x86c,0x355,0x355,0x874,0x87c,0x884,0x37c,0x889,0x891,0x897,0x89f,0x8a2, -0x8aa,0x8b1,0x355,0x355,0x355,0x355,0x8b8,0x8c0,0x355,0x8c8,0x8cf,0x355,0x529,0x8d4,0x8dc,0x681, -0x355,0x8e2,0x8ea,0x8ee,0x355,0x8f6,0x8fe,0x906,0x355,0x90c,0x910,0x918,0x928,0x920,0x355,0x930, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x938,0x355,0x355,0x355,0x355,0x940,0x5bc,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x945,0x94d,0x951,0x355,0x355,0x355,0x355,0x338,0x33e,0x959,0x961,0x968,0x4ec,0x355,0x355,0x970, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0xd58,0xd58,0xd70,0xdb0,0xdf0,0xe2c,0xe6c,0xeac,0xee4,0xf24,0xf64,0xfa4,0xfe4,0x1024,0x1064,0x10a4, -0x10e4,0x1124,0x1164,0x11a4,0x11b4,0x11e8,0x1224,0x1264,0x12a4,0x12e4,0xd54,0x1318,0x134c,0x138c,0x13a8,0x13dc, -0x9e1,0xa11,0xa51,0xa90,0x188,0x188,0xac8,0x188,0x188,0x188,0x188,0x188,0x188,0xaf1,0x188,0x188, -0x188,0x188,0x188,0x188,0x188,0x188,0x188,0xb31,0x188,0x188,0xb66,0xba5,0xbe5,0xc1f,0xc56,0x188, +static const uint16_t ucase_props_trieIndex[12908]={ +0x354,0x35c,0x364,0x36c,0x37a,0x382,0x38a,0x392,0x39a,0x3a2,0x3a9,0x3b1,0x3b9,0x3c1,0x3c9,0x3d1, +0x3d7,0x3df,0x3e7,0x3ef,0x3f7,0x3ff,0x407,0x40f,0x417,0x41f,0x427,0x42f,0x437,0x43f,0x447,0x44f, +0x457,0x45f,0x467,0x46f,0x477,0x47f,0x487,0x48f,0x48b,0x493,0x498,0x4a0,0x4a7,0x4af,0x4b7,0x4bf, +0x4c7,0x4cf,0x4d7,0x4df,0x373,0x37b,0x4e4,0x4ec,0x4f1,0x4f9,0x501,0x509,0x508,0x510,0x515,0x51d, +0x525,0x52c,0x530,0x373,0x537,0x354,0x547,0x53f,0x54f,0x551,0x559,0x561,0x565,0x566,0x56e,0x576, +0x57e,0x566,0x586,0x58b,0x57e,0x566,0x593,0x59b,0x565,0x5a3,0x5ab,0x5b3,0x5bb,0x373,0x5c3,0x373, +0x5cb,0x5cd,0x5d5,0x5b3,0x565,0x5a3,0x5dc,0x5b3,0x5e4,0x5e6,0x56e,0x5b3,0x565,0x373,0x5ee,0x373, +0x373,0x5f4,0x5fb,0x373,0x373,0x5ff,0x607,0x373,0x60b,0x612,0x373,0x619,0x621,0x628,0x630,0x373, +0x373,0x635,0x63d,0x645,0x64d,0x655,0x65c,0x664,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x66c,0x373,0x373,0x67c,0x67c,0x674, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x684,0x68a,0x572,0x572,0x373,0x690,0x698,0x373, +0x6a0,0x373,0x6a8,0x373,0x6af,0x6b5,0x373,0x373,0x373,0x6bd,0x373,0x373,0x373,0x373,0x373,0x373, +0x6c4,0x373,0x6cb,0x6d3,0x373,0x6db,0x6e3,0x373,0x5a2,0x6e7,0x6ef,0x6f5,0x5e4,0x6fd,0x373,0x704, +0x373,0x709,0x373,0x70f,0x717,0x71b,0x723,0x72b,0x733,0x738,0x73b,0x743,0x753,0x74b,0x763,0x75b, +0x39a,0x76b,0x39a,0x773,0x776,0x39a,0x77e,0x39a,0x786,0x78e,0x796,0x79e,0x7a6,0x7ae,0x7b6,0x7be, +0x7c6,0x7cd,0x373,0x7d5,0x7dd,0x373,0x7e5,0x7ed,0x7f5,0x7fd,0x805,0x80d,0x815,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x818,0x81e,0x824,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x82c,0x830,0x834,0x83c,0x39a,0x39a,0x39a,0x844,0x84c,0x853,0x373,0x858,0x373,0x373,0x373,0x860, +0x373,0x6a5,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x564,0x868,0x373,0x373,0x86f,0x373,0x373,0x877,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x87f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x70f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x885,0x373,0x88d,0x892,0x89a,0x373,0x373,0x8a2,0x8aa,0x8b2,0x39a,0x8b7,0x8bf,0x8c5,0x8cc,0x8d3, +0x8db,0x8e2,0x373,0x373,0x373,0x373,0x8e9,0x8f1,0x373,0x8f9,0x900,0x373,0x54f,0x905,0x90d,0x6af, +0x373,0x913,0x91b,0x91f,0x373,0x927,0x92f,0x937,0x373,0x93d,0x941,0x949,0x959,0x951,0x373,0x961, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x969,0x373,0x373,0x373,0x373,0x971,0x54f,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x976,0x97e,0x982,0x373,0x373,0x373,0x373,0x356,0x35c,0x98a,0x992,0x999,0x50a,0x373,0x373,0x9a1, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0xdd0,0xdd0,0xde8,0xe28,0xe68,0xea4,0xee4,0xf24,0xf5c,0xf9c,0xfdc,0x101c,0x105c,0x109c,0x10dc,0x111c, +0x115c,0x119c,0x11dc,0x121c,0x122c,0x1260,0x129c,0x12dc,0x131c,0x135c,0xdcc,0x1390,0x13c4,0x1404,0x1420,0x1454, +0x9e1,0xa1f,0xa5f,0xa9e,0x188,0x188,0xad6,0x188,0x188,0x188,0x188,0x188,0x188,0xaff,0x188,0x188, +0x188,0x188,0x188,0x188,0x188,0xb3f,0x188,0xb7f,0x188,0xba5,0xbe0,0xc1f,0xc5f,0xc99,0xcd0,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, @@ -174,212 +172,222 @@ static const uint16_t ucase_props_trieIndex[12356]={ 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, 0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188,0x188, -0xc96,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x977,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x6b5,0x355,0x355,0x355,0x97f,0x355,0x355,0x355, -0x355,0x987,0x98d,0x991,0x355,0x355,0x995,0x999,0x99f,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x9a7,0x9ab,0x355,0x355,0x355,0x355,0x355,0x9b3,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x9bb,0x9bf,0x9c7,0x9cb,0x355,0x9d2,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x9d8,0x355,0x355,0x355,0x355,0x9df,0x355,0x355,0x355,0x355, -0x355,0x53f,0x9e4,0x9eb,0x5bd,0x5bc,0x9ef,0x53c,0x355,0x9f7,0x9fe,0x355,0xa04,0x5bc,0xa09,0xa11, -0x355,0x355,0xa16,0x355,0x355,0x355,0x355,0x338,0xa1e,0x5bc,0x5be,0xa26,0xa2d,0x355,0x355,0x355, -0x355,0x355,0x9e4,0xa35,0x355,0x355,0xa3d,0xa45,0x355,0x355,0x355,0x355,0x355,0x355,0xa49,0xa51, -0x355,0x355,0xa59,0x4b0,0x355,0x355,0xa61,0x355,0x355,0xa67,0xa6f,0x355,0x355,0x355,0x355,0x355, -0x355,0xa74,0x355,0x355,0x355,0xa7c,0xa84,0x355,0x355,0xa8c,0xa94,0x355,0x355,0x355,0xa97,0x6b5, -0xa9f,0xaa3,0xaab,0x355,0xab2,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0xab9,0x355,0x355,0x940,0xac1,0x355,0x355,0x355,0xac7,0xacf,0x355,0xad3,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0xad9,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0xadf,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0xae6,0x355,0xaec,0x57c,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0xa7c,0xa84,0x355,0x355,0x355,0x355,0x355,0x355,0x677,0x355,0xaf2,0x355,0x355, -0xafa,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0xaff,0x57c,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0xb07,0xb0f,0xb15,0x355,0x355,0x355,0x355,0xb1d,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0xb25,0xb2d,0xb32,0xb38,0xb40,0xb48,0xb50,0xb29,0xb58,0xb60, -0xb68,0xb6f,0xb2a,0xb25,0xb2d,0xb28,0xb38,0xb2b,0xb26,0xb77,0xb29,0xb7f,0xb87,0xb8f,0xb96,0xb82, -0xb8a,0xb92,0xb99,0xb85,0xba1,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x87c,0xba9,0x87c,0xbb0,0xbb7,0xbbf,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0xbc7,0xbcf,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0xbd3,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x9d0,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0xbdb,0x355,0xbe3,0xbeb,0xbf2,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0xb21, -0xbfa,0xbfa,0xc00,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x9f9,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x53f,0x87c,0x87c,0x87c,0x355,0x355,0x355,0x355,0x87c,0x87c, -0x87c,0x87c,0x87c,0x87c,0x87c,0xc08,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355,0x355, -0x355,0x355,0x355,0x355,0x355,0x355,0x335,0x335,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0, -0,0,4,0,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,1,0,0,4,0,4, -0,0,0,0,4,0x1c9,0,4,4,0,1,0,0,0,0,0, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239, -0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91, +0xd10,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x9a8,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9b0,0x373,0x373,0x373,0x9b3,0x373,0x373,0x373, +0x373,0x9bb,0x9c1,0x9c5,0x373,0x373,0x9c9,0x9cd,0x9d3,0x373,0x373,0x373,0x9da,0x9de,0x9e6,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9f6,0x9ee,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x9fe, +0xa02,0x373,0x373,0x373,0x373,0x373,0xa0a,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0xa12,0xa16,0xa1e,0xa22,0x373,0xa29,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0xa2f,0x373,0x373,0x373,0x373,0xa36,0x373,0xa3e,0x373,0x373,0x373,0x565, +0xa40,0xa47,0xa4b,0x5e4,0xa53,0xa5b,0x373,0xa63,0xa6a,0x373,0xa70,0x5e4,0xa75,0xa7d,0x373,0x373, +0xa82,0x373,0x373,0x373,0x373,0x356,0xa8a,0x5e4,0x5e6,0xa92,0xa99,0x373,0x373,0x373,0x373,0x373, +0xa40,0xaa1,0x373,0x373,0xaa9,0xab1,0x373,0x373,0x373,0x373,0x373,0x373,0xab5,0xabd,0x373,0x373, +0xac5,0x4ce,0x373,0x373,0xacd,0x373,0x373,0xad3,0xadb,0x373,0x373,0x373,0x373,0x373,0x373,0xae0, +0x373,0x373,0x373,0xae8,0xaf0,0x373,0x373,0xaf8,0xb00,0x373,0x373,0x373,0xb03,0x9b0,0xb0b,0xb0f, +0xb17,0x373,0xb1e,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb25, +0x373,0x373,0x971,0xb2d,0x373,0x373,0x373,0xb33,0xb3b,0x373,0xb3f,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0xb45,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb4b,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0xb52,0x373,0xb58,0x5a2,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0xae8,0xaf0,0x373,0x373,0x373,0x373,0x373,0x373,0x6a5,0x373,0xb5e,0x373,0x373,0xb66,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb6b,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0xb73,0x5a2,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x8aa,0xb7b,0xb82, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xb89,0xb91,0xb97,0x373,0x373, +0x373,0x373,0xb9f,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0xba7,0xbaf,0xbb4,0xbba,0xbc2,0xbca,0xbd2,0xbab,0xbda,0xbe2,0xbea,0xbf1,0xbac,0xba7,0xbaf,0xbaa, +0xbba,0xbad,0xba8,0xbf9,0xbab,0xc01,0xc09,0xc11,0xc18,0xc04,0xc0c,0xc14,0xc1b,0xc07,0xc23,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x8aa, +0xc2b,0x8aa,0xc32,0xc39,0xc41,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc51,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc49, +0xc59,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc5d,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0xaa5,0x373,0xa27,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xc65, +0x373,0xc6d,0xc75,0xc7c,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xba3,0xc84,0xc84,0xc8a,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0xa65, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x565,0x8aa,0x8aa,0x8aa,0x373,0x373,0x373,0x373,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0x8aa,0xc92, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373,0x373, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,0,0,0,0,0,0,4,0, +0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0, +0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0xa,0x5a,0x7a,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0xba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0,0,0,4,0, +4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf9,0xf031,0x149,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0x189,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +4,0,1,0,0,4,0,4,0,0,0,0,4,0x1c9,0,4, +4,0,1,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1fa,0x1012,0x1012, +0x1012,0x1012,0x1012,0x1012,0x5a,0x5a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x239,0xf011,0xf011,0xf011,0xf011,0xf011,0x2d9,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x3c91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1, -0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x31a,0xff91,0x92,0xff91,0x92,0xff91,0x31a,0xffb1,0x33a,0x389,0x92,0xff91,0x92,0xff91,0x92,0xff91, +1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x3d9,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91, -0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92,0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692, -0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,1,0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1,0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92, -0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0,0x92,0xff91,1,0x1c11,0,0,0,0, -0x48a,0x4bb,0x4f9,0x52a,0x55b,0x599,0x5ca,0x5fb,0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759, -0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xc392,0x92,0xff91,0x92, +0xff91,0x92,0xff91,0x459,0x6191,0x6912,0x92,0xff91,0x92,0xff91,0x6712,0x92,0xff91,0x6692,0x6692,0x92, +0xff91,1,0x2792,0x6512,0x6592,0x92,0xff91,0x6692,0x6792,0x3091,0x6992,0x6892,0x92,0xff91,0x5191,1, +0x6992,0x6a92,0x4111,0x6b12,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x6d12,0x92,0xff91,0x6d12,1,1, +0x92,0xff91,0x6d12,0x92,0xff91,0x6c92,0x6c92,0x92,0xff91,0x92,0xff91,0x6d92,0x92,0xff91,1,0, +0x92,0xff91,1,0x1c11,0,0,0,0,0x48a,0x4bb,0x4f9,0x52a,0x55b,0x599,0x5ca,0x5fb, +0x639,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, +0xff91,0xd891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x669,0x6ea,0x71b,0x759,0x92,0xff91,0xcf92,0xe412,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,1,1,1,1,0x78a,0x92, -0xff91,0xae92,0x7aa,0x7c9,0x7c9,0x92,0xff91,0x9e92,0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x7e9,0x809,0x829,0x9711,0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91, -0x849,1,1,1,0x9991,0x869,1,0x9891,1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9, -0x8e9,1,1,0x9691,1,0x909,0x9591,1,1,0x9511,1,1,1,1,1,1, -1,0x929,1,1,0x9311,1,0x949,0x9311,1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391, -0xdc91,1,1,1,1,1,0x9291,1,0,1,1,1,1,1,1,1, -1,0x989,0x9a9,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,5,5,0x25,5,5,5,5,5,5,4,4,4, -0x14,4,0x14,4,5,5,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,5,5,5,5,5,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,0x54,0x54,0x44,0x44,0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44, -0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44,0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44, -0x44,0x64,0x64,4,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91,4,4,0x92,0xff91,0,0,5,0x4111, -0x4111,0x4111,0,0x3a12,0,0,0,0,4,4,0x1312,4,0x1292,0x1292,0x1292,0, -0x2012,0,0x1f92,0x1f92,0xa29,0x1012,0xafa,0x1012,0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012, -0xc5a,0x1012,0x1012,0x1012,0xc9a,0xcda,0,0xd1a,0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012, -0xed11,0xed91,0xed91,0xed91,0xdd9,0xf011,0xea9,0xf011,0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011, -0x1009,0xf011,0xf011,0xf011,0x1049,0x1089,0x10c9,0x10f9,0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011, -0xe011,0xe091,0xe091,0x412,0x11b9,0x11e9,2,2,2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xbf12,1,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x1299,0x12c9,0x391,0xc631,0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91, -1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812, -0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x137a,0x1012,0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x13fa,0x1012,0x1012,0x143a,0x147a,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012, -0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x1509,0xf011,0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0x1589,0xf011,0xf011,0x15c9,0x1609,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011, -0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811, -0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x169a,0x16d9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,0x44,0x44,0x44,0x44,4,4,0x92,0xff91, +1,1,1,1,1,1,0x78a,0x92,0xff91,0xae92,0x7aa,0x7c9,0x7c9,0x92,0xff91,0x9e92, +0x2292,0x2392,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x7e9,0x809,0x829,0x9711, +0x9911,1,0x9991,0x9991,1,0x9b11,1,0x9a91,0x849,1,1,1,0x9991,0x869,1,0x9891, +1,0x889,0x8a9,1,0x97b1,0x9691,0x8a9,0x8c9,0x8e9,1,1,0x9691,1,0x909,0x9591,1, +1,0x9511,1,1,1,1,1,1,1,0x929,1,1,0x9311,1,0x949,0x9311, +1,1,1,0x969,0x9311,0xdd91,0x9391,0x9391,0xdc91,1,1,1,1,1,0x9291,1, +0,1,1,1,1,1,1,1,1,0x989,0x9a9,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,5,5,0x25,5, +5,5,5,5,5,4,4,4,0x14,4,0x14,4,5,5,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5, +5,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,0x54,0x54,0x44,0x44, +0x44,0x44,0x44,0x9cc,0x54,0x44,0x54,0x44,0x54,0x44,0x44,0x44,0x44,0x44,0x44,0x54, +0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x74,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x54,0x44, +0x44,0x9dd,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x64,4,0x44,0x44,0x44,0x64, +0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91, +4,4,0x92,0xff91,0,0,5,0x4111,0x4111,0x4111,0,0x3a12,0,0,0,0, +4,4,0x1312,4,0x1292,0x1292,0x1292,0,0x2012,0,0x1f92,0x1f92,0xa29,0x1012,0xafa,0x1012, +0x1012,0xb3a,0x1012,0x1012,0xb7a,0xbca,0xc1a,0x1012,0xc5a,0x1012,0x1012,0x1012,0xc9a,0xcda,0,0xd1a, +0x1012,0x1012,0xd5a,0x1012,0x1012,0xd9a,0x1012,0x1012,0xed11,0xed91,0xed91,0xed91,0xdd9,0xf011,0xea9,0xf011, +0xf011,0xee9,0xf011,0xf011,0xf29,0xf79,0xfc9,0xf011,0x1009,0xf011,0xf011,0xf011,0x1049,0x1089,0x10c9,0x10f9, +0xf011,0xf011,0x1139,0xf011,0xf011,0x1179,0xf011,0xf011,0xe011,0xe091,0xe091,0x412,0x11b9,0x11e9,2,2, +2,0x1239,0x1269,0xfc11,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x1299,0x12c9,0x391,0xc631, +0x12fa,0x1349,0,0x92,0xff91,0xfc92,0x92,0xff91,1,0xbf12,0xbf12,0xbf12,0x2812,0x2812,0x2812,0x2812, +0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x2812,0x1012,0x1012,0x137a,0x1012, +0x13ba,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x13fa,0x1012,0x1012,0x143a,0x147a,0x1012, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x14ca,0x1012,0x1012,0x1012,0x1012,0x1012,0xf011,0xf011,0x1509,0xf011, +0x1549,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1589,0xf011,0xf011,0x15c9,0x1609,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0x1659,0xf011,0xf011,0xf011,0xf011,0xf011,0xd811,0xd811,0xd811,0xd811, +0xd811,0xd811,0xd831,0xd811,0xd831,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0xd811,0x92,0xff91,0x169a,0x16d9, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44, +0x44,0x44,0x44,0x44,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92, -0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x792,0x92,0xff91,0x92, +0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0xf891,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0, -0,4,0,0,0,0,0,4,1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0,4,0,0,0,0,0,4, +1,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, -0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0x1719,1,0,0,0, -0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64, -0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44, -0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0,0x64,0,0x64,0x64,0,0x44,0x64,0,0x64,0,0,0,0, +0xe811,0xe811,0xe811,0x1719,1,0,0,0,0,0,0,0,0,0x64,0x44,0x44, +0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64, +0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x64,0x64,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0x64,0,0x64,0x64,0, +0x44,0x64,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0x64, -0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44, -0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,4,0,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0x44, -0x44,0,0x64,0x44,0x44,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0x64,0,0, +4,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +4,4,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x64,0x64,0x64,0,4,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x44, -0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44, -0x64,0x44,0x64,0x44,0x64,0x44,0x44,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x44, +0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,0,0x44, +0x44,0x44,0x44,0x64,0x44,4,4,0x44,0x44,0,0x64,0x44,0x44,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -4,4,4,4,4,4,4,4,4,0,0,0,0,0,0,0, +0,0,0,4,0,0x64,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x44,0x64, +0x64,0x44,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x64,0x44,0x44,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44, -4,4,0,0,0,0,4,0,0,0x64,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,4,0x44,0x44,0x44, -4,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,4,0x64,0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44, -0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44, -0x44,0x44,0x44,0x44,4,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,0x64,0,0,0,0,4,4,4, -4,4,4,4,4,0,0,0,0,0x64,0,0,0,0x44,0x64,0x44, -0x44,4,4,4,0,0,0,0,0,0,0,0,0,0,4,4, -0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,4,4,0,0,0,0,4,0, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,4,0x44, +0x44,0x44,0x44,0x44,4,0x44,0x44,0x44,4,0x44,0x44,0x44,0x44,0x44,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,4,4,0,0, +0,0,0,0,0x44,0x64,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0x44,4,0x64, +0x44,0x44,0x64,0x44,0x44,0x64,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44, +0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x44,0,0,0,0, +0,0,0,0,0,4,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, +0x64,0,0,0,0,4,4,4,4,4,4,4,4,0,0,0, +0,0x64,0,0,0,0x44,0x64,0x44,0x44,4,4,4,0,0,0,0, +0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0, -0,4,4,4,4,0,0,0,0,0,0,0,0,0x64,0,0, +0,0,0,0,0x64,0,0,0,0,4,4,4,4,0,0,0, +0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0, -0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x44,0,0,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,0,0,0,0,4,4,0,0,4,4,0x64,0,0, -0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,4,4,4,4,4,0,4,4,0,0,0, -0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,4, +4,0,0,4,4,0x64,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,0, +0,4,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +4,4,0,4,4,0,0,0,0,0x64,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, -4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x64,0,0,4,0,4,4,4,4,0,0,0,0,0,0,0, -0,0x64,0,0,0,0,0,0,0,4,4,0,0,0,0,0, -0,0,0,0,0,0,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,4,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,0,0,4,0,4,4,4, +4,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, +0,4,4,0,0,0,0,0,0,0,0,0,0,0,4,4, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,4,4,4,0,4,4, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x64,0,4,4,4,0,0,0,0,0,4,4,4,0,4,4, 4,0x64,0,0,0,0,0,0,0,0x64,0x64,0,0,0,0,0, 0,0,0,0,0,0,4,0,0,0,0,0,4,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -424,206 +432,209 @@ static const uint16_t ucase_props_trieIndex[12356]={ 0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, 0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a,0x201a, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,0x64,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,0,4, -4,4,4,4,4,4,0,0,0,0,0,0,0,0,4,0, -0,4,4,4,4,4,4,4,4,4,0x64,4,0,0,0,4, -0,0,0,0,0,0x44,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, +0,0,4,4,0x64,0x60,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,4,0x60,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0, +0,0,0,0,4,4,0,4,4,4,4,4,4,4,0,0, +0,0,0,0,0,0,4,0,0,4,4,4,4,4,4,4, +4,4,0x64,4,0,0,0,4,0,0,0,0,0,0x44,0,0, +0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,0, -0,0,0,4,4,0,0,0,0,0,0,0,0,0,4,0, -0,0,0,0,0,0x64,0x44,0x64,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,0,0,0,0,4,4,0,0,0, +0,0,0,0,0,0,4,0,0,0,0,0,0,0x64,0x44,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x44,0x64,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,4,0,4,4,4,4,4,4,4,0,0x64,0,4,0, +0,4,4,4,4,4,4,4,4,0,0,0,0,0,0,4, +4,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x64,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, +0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,4,0x64,0x64,0x44,0x44,0x64, +0x64,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x44,0x44,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x64,0,4,4,4,4,4,0,4,0,0,0,0,0,4,0, +0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44, -0x64,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,0,4,4,4,4, -4,4,4,0,0x64,0,4,0,0,4,4,4,4,4,4,4, -4,0,0,0,0,0,0,4,4,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0,0,0x64,0,0,0,0,0,0,0,4,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44, -0x44,0x64,4,0x64,0x64,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,0,4,4,4,4,4,0,4,0,0,0, -0,0,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,4,4,4,4,0,0, -4,4,0x60,0x64,4,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x64,0,4,4,0,0, -0,4,0,4,4,4,0x60,0x60,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,4,4,0,0,4,0x64, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,4,0,0, -0x2179,0x21a9,0x21d9,0x2209,0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0, -0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a, -0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a, +0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,0,0,4,4,0x60,0x64, +4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x64,0,4,4,0,0,0,4,0,4, +4,4,0x60,0x60,0,0,0,0,0,0,0,0,0,0,0,0, +4,4,4,4,4,4,4,4,0,0,4,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x44,0x44,0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64, -0x44,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0, -0,0,0,0,0x44,0,0,0,0x44,0x44,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +0,0,0,0,4,4,4,4,4,4,0,0,0x2179,0x21a9,0x21d9,0x2209, +0x2239,0x2289,0x22d9,0x2309,0x2339,0,0,0,0,0,0,0,0x236a,0x236a,0x236a,0x236a, +0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a, +0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0x236a,0,0,0x236a,0x236a,0x236a,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, +0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0,0x64,0x64, +0x64,0x64,0x64,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0, +0x44,0,0,0,0x44,0x44,0,0,0,0,0,0,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x25,5,5,5,5,5,5,5,5,1,1,1,1,1, -1,1,1,1,1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1, -5,5,5,5,0x25,5,5,5,0x25,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x23c9,1, -1,1,1,1,1,1,0x21,1,1,1,1,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x25,5, +5,5,5,5,5,5,5,1,1,1,1,1,1,1,1,1, +1,1,1,1,5,0x2389,1,1,1,0x23a9,1,1,5,5,5,5, +0x25,5,5,5,0x25,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,0x23c9,1,1,1,1,1, +1,1,0x21,1,1,1,1,5,5,5,5,5,0x44,0x44,0x44,0x44, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0,0x44,0x64,0x64,0x44,0x64, -0x44,0x44,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64, -0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91, +0x44,0x44,0x64,0x64,0x64,0x64,0x64,0x44,0x64,0x64,0x44,0x64,0x44,0x44,0x64,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x44,0x44,0x64,0x64,0x64,0x64,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x23ea,0x2429,0x92,0xff91, 0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x23ea,0x2429,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x2469,0x24e9,0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0,0,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411, -0x2899,0x411,0x2949,0x411,0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411, -0x411,0x411,0x411,0x411,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11, -0x2b11,0x2b11,0x3211,0x3211,0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49, -0x2bb9,0x2c29,0x2c99,0x2d09,0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249, -0x32b9,0x3329,0x3399,0x3409,0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949, -0x39b9,0x3a29,0x3a99,0x3b09,0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79, -0x3fe9,0,0x4069,0x40e9,0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9, -0x4349,0,0x43c9,0x4449,0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619, -0,0,0x46e9,0x4769,0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4819,0x48c9, -0x4999,0x391,0x4a19,0x4a99,0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b49,0x4bc9, -0x4c39,0,0x4cb9,0x4d39,0xc012,0xc012,0xc112,0xc112,0x4deb,4,4,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,4,0,0,0,0, -0,0,0,0,4,4,0,0,0,0,0,0,4,0,0,4, -0,0,4,4,4,4,4,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,4,4,4,4,0,4,4, -4,4,4,4,4,4,4,4,0,0x25,0,0,0,0,0,0, -0,0,0,0,0,0,0,5,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44, -0x64,0x64,0x64,0x44,0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44, -0x64,0x44,0x64,0x64,0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,2, -0,0,1,2,2,2,1,1,2,2,2,1,0,2,0,0, -0,2,2,2,2,2,0,0,0,0,0,0,2,0,0x4e5a,0, -2,0,0x4e9a,0x4eda,2,2,0,1,2,2,0xe12,2,1,0,0,0, -0,1,0,0,1,1,2,2,0,0,0,0,0,2,1,1, -0x21,0x21,0,0,0,0,0xf211,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, -0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, -0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, -0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311, -0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x2469,0x24e9, +0x2569,0x25e9,0x2669,0x26e9,1,1,0x271a,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xffb1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0,0, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0,0,0x2769,0x411,0x27e9,0x411,0x2899,0x411,0x2949,0x411, +0,0xfc12,0,0xfc12,0,0xfc12,0,0xfc12,0x411,0x411,0x411,0x411,0x411,0x411,0x411,0x411, +0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0xfc12,0x2511,0x2511,0x2b11,0x2b11,0x2b11,0x2b11,0x3211,0x3211, +0x4011,0x4011,0x3811,0x3811,0x3f11,0x3f11,0,0,0x29f9,0x2a69,0x2ad9,0x2b49,0x2bb9,0x2c29,0x2c99,0x2d09, +0x2d7b,0x2deb,0x2e5b,0x2ecb,0x2f3b,0x2fab,0x301b,0x308b,0x30f9,0x3169,0x31d9,0x3249,0x32b9,0x3329,0x3399,0x3409, +0x347b,0x34eb,0x355b,0x35cb,0x363b,0x36ab,0x371b,0x378b,0x37f9,0x3869,0x38d9,0x3949,0x39b9,0x3a29,0x3a99,0x3b09, +0x3b7b,0x3beb,0x3c5b,0x3ccb,0x3d3b,0x3dab,0x3e1b,0x3e8b,0x411,0x411,0x3ef9,0x3f79,0x3fe9,0,0x4069,0x40e9, +0xfc12,0xfc12,0xdb12,0xdb12,0x419b,4,0x4209,4,4,4,0x4259,0x42d9,0x4349,0,0x43c9,0x4449, +0xd512,0xd512,0xd512,0xd512,0x44fb,4,4,4,0x411,0x411,0x4569,0x4619,0,0,0x46e9,0x4769, +0xfc12,0xfc12,0xce12,0xce12,0,4,4,4,0x411,0x411,0x4819,0x48c9,0x4999,0x391,0x4a19,0x4a99, +0xfc12,0xfc12,0xc812,0xc812,0xfc92,4,4,4,0,0,0x4b49,0x4bc9,0x4c39,0,0x4cb9,0x4d39, +0xc012,0xc012,0xc112,0xc112,0x4deb,4,4,0,0,0,0,0,0,0,0,0, +0,0,0,4,4,4,4,4,0,0,0,0,0,0,0,0, +4,4,0,0,0,0,0,0,4,0,0,4,0,0,4,4, +4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,4,0,4,4,4,4,4,4, +4,4,4,4,0,0x25,0,0,0,0,0,0,0,0,0,0, +0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0x64,0x64,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x44, +0x44,4,4,4,4,0x44,4,4,4,0x64,0x64,0x44,0x64,0x44,0x64,0x64, +0x64,0x64,0x64,0x64,0x44,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,2,0,0,0,0,2,0,0,1,2, +2,2,1,1,2,2,2,1,0,2,0,0,0,2,2,2, +2,2,0,0,0,0,0,0,2,0,0x4e5a,0,2,0,0x4e9a,0x4eda, +2,2,0,1,2,2,0xe12,2,1,0,0,0,0,1,0,0, +1,1,2,2,0,0,0,0,0,2,1,1,0x21,0x21,0,0, +0,0,0xf211,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812,0x812, +0x812,0x812,0x812,0x812,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811,0xf811, +0xf811,0xf811,0xf811,0xf811,0,0,0,0x92,0xff91,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12, +0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xd12,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311, +0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0xf311,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, 0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, -0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, 0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, -0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0,0x92,0xff91,0x4f1a,0x4f3a,0x4f5a,0x4f79,0x4f99,0x92, -0xff91,0x92,0xff91,0x92,0xff91,0x4fba,0x4fda,0x4ffa,0x501a,1,0x92,0xff91,1,0x92,0xff91,1, -1,1,1,1,0x25,5,0x503a,0x503a,0x92,0xff91,0x92,0xff91,1,0,0,0, -0,0,0,0x92,0xff91,0x92,0xff91,0x44,0x44,0x44,0x92,0xff91,0,0,0,0, -0,0,0,0,0,0,0,0,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, +0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811,0xe811, +0x92,0xff91,0x4f1a,0x4f3a,0x4f5a,0x4f79,0x4f99,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x4fba,0x4fda,0x4ffa, +0x501a,1,0x92,0xff91,1,0x92,0xff91,1,1,1,1,1,0x25,5,0x503a,0x503a, +0x92,0xff91,0x92,0xff91,1,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91,0x44, +0x44,0x44,0x92,0xff91,0,0,0,0,0,0,0,0,0,0,0,0, 0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, -0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0,0x5059,0,0,0,0, -0,0x5059,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x64,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059,0x5059, +0x5059,0x5059,0,0x5059,0,0,0,0,0,0x5059,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0, -0,0,0x64,0x64,0x64,0x64,0x60,0x60,0,4,4,4,4,4,0,0, -0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,4, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x507a,0x50b9,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44, -4,4,4,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,4, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,5,0x44,0x44, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,5,1,1,1,1,1,1,1,1,0x92,0xff91,0x92, -0xff91,0x50fa,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,4,4,4,0x92, -0xff91,0x511a,1,0,0x92,0xff91,0x92,0xff91,0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x513a,0x515a,0x517a,0x519a,0x513a,1,0x51ba,0x51da,0x51fa,0x521a, -0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0,0x92,0xff91, -0xe812,0x523a,0x525a,0x92,0xff91,0x92,0xff91,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0x92,0xff91,0, -5,5,1,0,0,0,0,0,0,0,4,0,0,0,0x64,0, -0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,0,0,0,0,0, -0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x64,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -0,0,0,0,0,0,4,4,4,4,4,0x64,0x64,0x64,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,4,4,4,4,4,4,4,4,4,4,4,0,0x60, +0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64,0x60,0x60, +0,4,4,4,4,4,0,0,0,0,0,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x64,0,0,4,4,4,4,0,0,4,4,0,0, -0x60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0,0,0,0,0x64,0x64,4,4,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,4,4,4,4,4,4,0,0,4,4,0,0,4,4,0, -0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, -0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x44,0,0x44,0x44,0x64,0,0,0x44, -0x44,0,0,0,0,0,0x44,0x44,0,0x44,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,0,0,0,0,0,4,4,0,0x64,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,0x5279,1,1,1,1,1,1,1,4,5,5,5,5, -1,1,1,1,1,1,1,1,1,4,4,4,0,0,0,0, -0x5299,0x52c9,0x52f9,0x5329,0x5359,0x5389,0x53b9,0x53e9,0x5419,0x5449,0x5479,0x54a9,0x54d9,0x5509,0x5539,0x5569, -0x5b99,0x5bc9,0x5bf9,0x5c29,0x5c59,0x5c89,0x5cb9,0x5ce9,0x5d19,0x5d49,0x5d79,0x5da9,0x5dd9,0x5e09,0x5e39,0x5e69, -0x5e99,0x5ec9,0x5ef9,0x5f29,0x5f59,0x5f89,0x5fb9,0x5fe9,0x6019,0x6049,0x6079,0x60a9,0x60d9,0x6109,0x6139,0x6169, -0x5599,0x55c9,0x55f9,0x5629,0x5659,0x5689,0x56b9,0x56e9,0x5719,0x5749,0x5779,0x57a9,0x57d9,0x5809,0x5839,0x5869, -0x5899,0x58c9,0x58f9,0x5929,0x5959,0x5989,0x59b9,0x59e9,0x5a19,0x5a49,0x5a79,0x5aa9,0x5ad9,0x5b09,0x5b39,0x5b69, -0,0,0,0,0,4,0,0,4,0,0,0,0,0x64,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x6199,0x6219,0x6299,0x6319,0x63c9,0x6479,0x6519,0,0,0,0,0,0,0,0,0, -0,0,0,0x65b9,0x6639,0x66b9,0x6739,0x67b9,0,0,0,0,0,0,0x64,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,0,0,0,4,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0x64,0x64,0x64, -0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,4,0,0,4,0,0,0,0,0,0, -0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, -0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0, -0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, -0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0, +0,0,0,0,0,0,0,0,4,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x507a,0x50b9, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0,0x44,4,4,4,0,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0,4,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,5,5,0x44,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,1,1,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,5,1,1,1, +1,1,1,1,1,0x92,0xff91,0x92,0xff91,0x50fa,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,4,4,4,0x92,0xff91,0x511a,1,0,0x92,0xff91,0x92,0xff91, +0x1811,1,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x513a,0x515a, +0x517a,0x519a,0x513a,1,0x51ba,0x51da,0x51fa,0x521a,0x92,0xff91,0x92,0xff91,0x92,0xff91,0x92,0xff91, +0x92,0xff91,0x92,0xff91,0xe812,0x523a,0x525a,0x92,0xff91,0x92,0xff91,0,0,0,0,0, +0x92,0xff91,0,1,0,1,0x92,0xff91,0x92,0xff91,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, +4,0x92,0xff91,0,5,5,1,0,0,0,0,0,0,0,4,0, +0,0,0x64,0,0,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,0, +0,0,0,0,0x64,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x64,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0,0, +0,0,0,4,0,0,0,0,0,0,4,4,4,4,4,0x64, +0x64,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, +4,4,0,0x60,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x64,0,0,4,4,4,4,0,0, +4,4,0,0,0x60,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,4,4,0,0,0,0, +0,0,0,0,0,4,4,4,4,4,4,0,0,4,4,0, +0,4,4,0,0,0,0,0,0,0,0,0,0,0,0,4, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0,0x44,0x44, +0x64,0,0,0x44,0x44,0,0,0,0,0,0x44,0x44,0,0x44,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x64,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,0,0,0,0,0,4, +4,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x5279,1,1,1,1,1,1,1,4, +5,5,5,5,1,1,1,1,1,1,1,1,1,4,4,4, +0,0,0,0,0x5299,0x52c9,0x52f9,0x5329,0x5359,0x5389,0x53b9,0x53e9,0x5419,0x5449,0x5479,0x54a9, +0x54d9,0x5509,0x5539,0x5569,0x5b99,0x5bc9,0x5bf9,0x5c29,0x5c59,0x5c89,0x5cb9,0x5ce9,0x5d19,0x5d49,0x5d79,0x5da9, +0x5dd9,0x5e09,0x5e39,0x5e69,0x5e99,0x5ec9,0x5ef9,0x5f29,0x5f59,0x5f89,0x5fb9,0x5fe9,0x6019,0x6049,0x6079,0x60a9, +0x60d9,0x6109,0x6139,0x6169,0x5599,0x55c9,0x55f9,0x5629,0x5659,0x5689,0x56b9,0x56e9,0x5719,0x5749,0x5779,0x57a9, +0x57d9,0x5809,0x5839,0x5869,0x5899,0x58c9,0x58f9,0x5929,0x5959,0x5989,0x59b9,0x59e9,0x5a19,0x5a49,0x5a79,0x5aa9, +0x5ad9,0x5b09,0x5b39,0x5b69,0,0,0,0,0,4,0,0,4,0,0,0, +0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x6199,0x6219,0x6299,0x6319,0x63c9,0x6479,0x6519,0,0,0,0,0, +0,0,0,0,0,0,0,0x65b9,0x6639,0x66b9,0x6739,0x67b9,0,0,0,0, +0,0,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,0,0,0,4,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x44,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,4,0,0,4,0,0, +0,0,0,0,0,0,0,0,0,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012,0x1012, +0x1012,0x1012,0x1012,0,0,0,4,0,4,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011,0xf011, +0xf011,0xf011,0xf011,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0, +0x64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0x1412,0x1412,0x1412,0x1412, 0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, @@ -633,27 +644,41 @@ static const uint16_t ucase_props_trieIndex[12356]={ 0,0,0,0,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412, 0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0x1412,0,0,0,0,0xec11,0xec11,0xec11,0xec11, 0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11, -0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,4,4,4, -0,4,4,0,0,0,0,0,4,0x64,4,0x44,0,0,0,0, +0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0xec11,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392, +0x1392,0x1392,0x1392,0,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0,0x1392,0x1392,0,0xec91, +0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, +0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0xec91,0,0xec91,0xec91,0xec91,0xec91,0xec91, +0xec91,0xec91,0,0xec91,0xec91,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, +5,5,5,0,0,0,0,0,5,4,4,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,4,4,4,0,4,4,0, +0,0,0,0,4,0x64,4,0x44,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0,0,0x44,0x64,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x44,0x64,0x64,0,0,0,0,0x64,0,0,0,0, -0,0x44,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012, +0,0,0,0,0,0,0,0,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, 0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012, -0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0, -0,0,0,0,0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011, +0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0x2012,0,0,0,0,0, +0,0,0,0,0,0,0,0,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, 0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011, -0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, +0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0xe011,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0x64,0x64,0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0,0,0, +0,0,0,0,0,0,0,0x44,0x44,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64, +0x44,0x44,0x44,0x64,0x44,0x64,0x64,0x64,0x64,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x44,0x64,0x44,0x64,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, 4,4,0x64,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x64,0,0,4, +4,0,0,0,0,0,0,0,0,0,0,0x64,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, -4,4,4,0,0,0x64,0x64,0,0,4,0,0,0x44,0x44,0x44,0, +4,4,4,0,0,0x64,0x64,0,0,4,0,0,0,0,4,0, +0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, 4,4,4,4,0,4,4,4,4,4,4,0x64,0x64,0,0,0, @@ -720,75 +745,82 @@ static const uint16_t ucase_props_trieIndex[12356]={ 0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,0,4,4,0,0,0, 0,0,0,0,0,0,0,0,0x60,0x60,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +0,4,4,4,4,4,4,4,0,4,4,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,4,0x64,0,0,0,0,0, -0,0x60,0x60,0x64,0x64,0x64,0,0,0,0x60,0x60,0x60,0x60,0x60,0x60,4, -4,4,4,4,4,4,4,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0, -0,0x44,0x44,0x44,0x44,0x44,0x64,0x64,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, -0x44,0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x44,0x44,0x44,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,4,0x64,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,0,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, -1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,1,1,1,1,1,1,1,0,0x21,0x21, -1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, +0,0,0,0,0,0,0,0,0,0x60,0x60,0x64,0x64,0x64,0,0, +0,0x60,0x60,0x60,0x60,0x60,0x60,4,4,4,4,4,4,4,4,0x64, +0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0x44,0x44,0x44,0x44,0x44,0x64,0x64, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x44,0x44,0x44,0x44,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44, +0x44,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,1,1,1,1,1,1,1,1,0x21,0x21,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,0,2,2, -0,0,2,0,0,2,2,0,0,2,2,2,2,0,2,2, -2,2,2,2,2,2,1,1,1,1,0,1,0,1,0x21,0x21, -1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,1,1,1,1,1,1,1,1,0x21,0x21, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,1, +1,1,1,1,1,0,0x21,0x21,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -1,1,1,1,2,2,0,2,2,2,2,0,0,2,2,2, -2,2,2,2,2,0,2,2,2,2,2,2,2,0,1,1, -1,1,1,1,1,1,0x21,0x21,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,2,2,0,2,2,2,2,0, -2,2,2,2,2,0,2,0,0,0,2,2,2,2,2,2, -2,0,1,1,1,1,1,1,1,1,0x21,0x21,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,1,1,1,1,1,1, +1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,2,0,2,2,0,0,2,0,0,2,2,0, +0,2,2,2,2,0,2,2,2,2,2,2,2,2,1,1, +1,1,0,1,0,1,0x21,0x21,1,1,1,1,0,1,1,1, 1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,0,1,1, +2,2,2,2,2,2,2,2,1,1,1,1,2,2,0,2, +2,2,2,0,0,2,2,2,2,2,2,2,2,0,2,2, +2,2,2,2,2,0,1,1,1,1,1,1,1,1,0x21,0x21, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0,1,1,1,1,1,1,2,2, +2,2,0,2,2,2,2,0,2,2,2,2,2,0,2,0, +0,0,2,2,2,2,2,2,2,0,1,1,1,1,1,1, +1,1,0x21,0x21,1,1,1,1,1,1,1,1,1,1,1,1, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1, +2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,1,1,0,1,1,1,1,1,1,2,1, +2,2,2,2,1,1,1,1,1,1,0,0,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,0,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, +1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,0,1,1,1,1,1,1,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,0, +1,1,1,1,1,1,2,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,0,0,0,0,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,0,0,0,0,0,0,0,0,4,0,0, +0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4, +4,4,4,4,0,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44,0x44,0x44,0x44, +0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0,0x44, +0x44,0x44,0x44,0x44,1,1,1,1,1,1,1,1,1,1,0,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x21,1, +1,1,1,0,0x44,0x44,0,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,0,0,0,0,4, -4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, -0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0, -4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,4,4,4,4,4,0,4,4,4, -4,4,4,4,4,4,4,4,4,4,4,4,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,0x44,0x44,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,0,0x44, -0x44,0,0x44,0x44,0x44,0x44,0x44,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x44,0x44,0x44,0x44, -0x44,0x44,0x44,4,4,4,4,4,4,4,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x64,0x64,0x64,0x64, -0x64,0x64,0x64,0,0,0,0,0,0,0,0,0,0x1112,0x1112,0x1112,0x1112, +0,0,0,0,0x44,0x44,0x44,0x44,0x44,0x44,0x44,4,4,4,4,4, +4,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0,0,0,0,0, +0,0,0,0,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, 0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112, -0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0xef11,0xef11, +0x1112,0x1112,0x1112,0x1112,0x1112,0x1112,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11, 0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11, -0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0xef11,0x44,0x44,0x44,0x44, -0x44,0x44,0x64,4,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +0xef11,0xef11,0xef11,0xef11,0x44,0x44,0x44,0x44,0x44,0x44,0x64,4,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0 +2,2,2,2,2,2,2,2,2,2,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0 }; static const uint16_t ucase_props_exceptions[1667]={ @@ -933,16 +965,16 @@ static const UCaseProps ucase_props_singleton={ ucase_props_unfold, { ucase_props_trieIndex, - ucase_props_trieIndex+3288, + ucase_props_trieIndex+3408, NULL, - 3288, - 9068, + 3408, + 9500, 0x188, - 0xd54, + 0xdcc, 0x0, 0x0, 0xe0800, - 0x3040, + 0x3268, NULL, 0, FALSE, FALSE, 0, NULL }, { 4,0,0,0 } diff --git a/deps/icu-small/source/common/uchar.cpp b/deps/icu-small/source/common/uchar.cpp index f43f9f024a1300..61e9c3d900dad7 100644 --- a/deps/icu-small/source/common/uchar.cpp +++ b/deps/icu-small/source/common/uchar.cpp @@ -14,7 +14,7 @@ * 04/02/97 aliu Creation. * 4/15/99 Madhu Updated all the function definitions for C Implementation * 5/20/99 Madhu Added the function u_getVersion() -* 8/19/1999 srl Upgraded scripts to Unicode3.0 +* 8/19/1999 srl Upgraded scripts to Unicode3.0 * 11/11/1999 weiv added u_isalnum(), cleaned comments * 01/11/2000 helena Renamed u_getVersion to u_getUnicodeVersion. * 06/20/2000 helena OS/400 port changes; mostly typecast. diff --git a/deps/icu-small/source/common/uchar_props_data.h b/deps/icu-small/source/common/uchar_props_data.h index 9a78918204f0e9..c45b9da3fd0f92 100644 --- a/deps/icu-small/source/common/uchar_props_data.h +++ b/deps/icu-small/source/common/uchar_props_data.h @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,149 +7,148 @@ // // machine-generated by: icu/tools/unicode/c/genprops/corepropsbuilder.cpp - #ifdef INCLUDED_FROM_UCHAR_C -static const UVersionInfo dataVersion={0xd,0,0,0}; +static const UVersionInfo dataVersion={0xe,0,0,0}; -static const uint16_t propsTrie_index[22276]={ -0x46d,0x475,0x47d,0x485,0x49d,0x4a5,0x4ad,0x4b5,0x4bd,0x4c5,0x4cb,0x4d3,0x4db,0x4e3,0x4eb,0x4f3, -0x4f9,0x501,0x509,0x511,0x514,0x51c,0x524,0x52c,0x534,0x53c,0x538,0x540,0x548,0x550,0x555,0x55d, -0x565,0x56d,0x571,0x579,0x581,0x589,0x591,0x599,0x595,0x59d,0x5a2,0x5aa,0x5b0,0x5b8,0x5c0,0x5c8, -0x5d0,0x5d8,0x5e0,0x5e8,0x5ed,0x5f5,0x5f8,0x600,0x608,0x610,0x616,0x61e,0x61d,0x625,0x62d,0x635, -0x645,0x63d,0x64d,0x655,0x48d,0x665,0x66b,0x65d,0x67b,0x67d,0x685,0x673,0x695,0x69b,0x6a3,0x68d, -0x6b3,0x6b9,0x6c1,0x6ab,0x6d1,0x6d7,0x6df,0x6c9,0x6ef,0x6f5,0x6fd,0x6e7,0x70d,0x715,0x71d,0x705, -0x72d,0x733,0x73b,0x725,0x74b,0x751,0x759,0x743,0x769,0x76e,0x776,0x761,0x786,0x78d,0x795,0x77e, -0x619,0x79d,0x7a5,0x48d,0x7ad,0x7b4,0x7bc,0x48d,0x7c4,0x7cc,0x7d4,0x7d9,0x7e1,0x7e8,0x7f0,0x48d, -0x5d8,0x7f8,0x800,0x808,0x810,0x565,0x820,0x818,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x828,0x5d8,0x830,0x834,0x83c,0x5d8,0x842,0x5d8,0x848,0x850,0x858,0x565,0x565,0x860, -0x868,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x86d,0x875,0x5d8,0x5d8,0x87d,0x885,0x88d,0x895,0x89d,0x5d8,0x8a5,0x8ad,0x8b5, -0x8c5,0x5d8,0x8cd,0x8cf,0x8d7,0x8bd,0x5d8,0x8da,0x8ee,0x8e2,0x8ea,0x8f6,0x5d8,0x8fe,0x904,0x90c, -0x914,0x5d8,0x924,0x92c,0x934,0x91c,0x944,0x48d,0x94c,0x94f,0x957,0x93c,0x967,0x95f,0x5d8,0x96e, -0x5d8,0x97d,0x976,0x985,0x98d,0x991,0x999,0x9a1,0x50d,0x9a9,0x9ac,0x9b2,0x9b9,0x9ac,0x534,0x9c1, -0x4bd,0x4bd,0x4bd,0x4bd,0x9c9,0x4bd,0x4bd,0x4bd,0x9d9,0x9e1,0x9e9,0x9f1,0x9f9,0x9fd,0xa05,0x9d1, -0xa1d,0xa25,0xa0d,0xa15,0xa2d,0xa35,0xa3d,0xa45,0xa5d,0xa4d,0xa55,0xa65,0xa6d,0xa7c,0xa81,0xa74, -0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa91,0xa99,0x90c,0xa9c,0xaa4,0xaab,0xab0,0xab8, -0x90c,0xabf,0xabe,0xacf,0xad2,0x90c,0x90c,0xac7,0x90c,0x90c,0x90c,0x90c,0x90c,0xae1,0xae9,0xad9, -0x90c,0x90c,0x90c,0xaee,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xaf4,0xafc,0x90c,0xb04,0xb0b, -0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xa89,0xa89,0xa89,0xa89,0xb13,0xa89,0xb1a,0xb21, -0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0x90c,0xb29,0xb30,0xb34,0xb3a,0x90c,0x90c,0x90c, -0x565,0xb4a,0xb42,0xb52,0x4bd,0x4bd,0x4bd,0xb5a,0x50d,0xb62,0x5d8,0xb68,0xb78,0xb70,0xb70,0x534, -0xb80,0xb88,0xb90,0x48d,0xb98,0x90c,0x90c,0xb9f,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xba7,0xbad, -0xbbd,0xbb5,0x619,0x5d8,0xbc5,0x868,0x5d8,0xbcd,0xbd5,0xbd9,0x5d8,0x5d8,0xbde,0x5d8,0x90c,0xbe5, -0xab9,0xbed,0xbf3,0x90c,0xbed,0xbfb,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -0xc03,0x5d8,0x5d8,0x5d8,0xc0b,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0xc11,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc16,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x90c,0x90c, -0xc1e,0x5d8,0xc21,0x5d8,0xc29,0xc2f,0xc37,0xc3f,0xc44,0x5d8,0x5d8,0xc48,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc4f,0x5d8,0xc56,0xc5c,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc64,0x5d8,0x5d8,0x5d8,0xc6c,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc6e,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc75,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0xc7c,0x5d8,0x5d8,0x5d8,0xc83,0xc8b,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc90,0x5d8,0x5d8,0xc98,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc9c,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xc9f,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xca2,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0xca8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0xcb0,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0xcb5,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xcba,0x5d8,0x5d8,0x5d8,0xcbf,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0xcc7,0xcce,0xcd2,0x5d8,0x5d8,0x5d8,0xcd9,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x8ce, -0xce7,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0xcdf,0x90c,0xcef,0x985,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0xcf4,0xcfc,0x4bd,0xd0c,0xd04,0x5d8,0x5d8,0xd14,0xd1c,0xd2c,0x4bd,0xd31,0xd39,0xd3f,0xd47,0xd24, -0xd4f,0xd57,0x5d8,0xd5f,0xd6f,0xd72,0xd67,0xd7a,0x62d,0xd82,0xd89,0x8ce,0x67b,0xd99,0xd91,0xda1, -0x5d8,0xda9,0xdb1,0xdb9,0x5d8,0xdc1,0xdc9,0xdd1,0xdd9,0xde1,0xde5,0xded,0x50d,0x50d,0x5d8,0xdf5, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xdfd,0xe09,0xe01, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11, -0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0x5d8,0x5d8,0x5d8,0xe21,0x5d8,0xcda,0xe28,0xe2d, -0x5d8,0x5d8,0x5d8,0xe35,0x5d8,0x5d8,0x8d9,0x48d,0xe4b,0xe3b,0xe43,0x5d8,0x5d8,0xe53,0xe5b,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xe60,0xe68,0x5d8,0xe6c,0x5d8,0xe72,0xe76, -0xe7e,0xe86,0xe8d,0xe95,0x5d8,0x5d8,0x5d8,0xe9b,0xeb3,0x47d,0xebb,0xec3,0xec8,0x8ee,0xea3,0xeab, -0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11, -0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11,0xe11, -0x1234,0x1234,0x1274,0x12b4,0x12f4,0x132c,0x136c,0x13ac,0x13e4,0x1424,0x1450,0x1490,0x14d0,0x14e0,0x1520,0x1554, -0x1594,0x15c4,0x1604,0x1644,0x1654,0x1688,0x16c0,0x1700,0x1740,0x1780,0x17b4,0x17e0,0x1820,0x1858,0x1874,0x18b4, -0xa80,0xac0,0xb00,0xb40,0xb80,0xa40,0xbc0,0xa40,0xbe2,0xa40,0xa40,0xa40,0xa40,0xc22,0x1db,0x1db, -0xc62,0xca2,0xa40,0xa40,0xa40,0xa40,0xce2,0xd02,0xa40,0xa40,0xd42,0xd82,0xdc2,0xe02,0xe42,0xe82, -0xec2,0xef9,0x1db,0x1db,0xf1d,0xf51,0x1db,0xf79,0x1db,0x1db,0x1db,0x1db,0xfa6,0x1db,0x1db,0x1db, -0x1db,0x1db,0x1db,0x1db,0xfba,0x1db,0xff2,0x1032,0x1db,0x103d,0x1db,0x1db,0x1db,0x1073,0xa40,0x10b3, -0x1db,0x1db,0x10f3,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +static const uint16_t propsTrie_index[22688]={ +0x48c,0x494,0x49c,0x4a4,0x4bc,0x4c4,0x4cc,0x4d4,0x4dc,0x4e4,0x4ea,0x4f2,0x4fa,0x502,0x50a,0x512, +0x518,0x520,0x528,0x530,0x533,0x53b,0x543,0x54b,0x553,0x55b,0x557,0x55f,0x567,0x56f,0x574,0x57c, +0x584,0x58c,0x590,0x598,0x5a0,0x5a8,0x5b0,0x5b8,0x5b4,0x5bc,0x5c1,0x5c9,0x5cf,0x5d7,0x5df,0x5e7, +0x5ef,0x5f7,0x5ff,0x607,0x60c,0x614,0x617,0x61f,0x627,0x62f,0x635,0x63d,0x63c,0x644,0x64c,0x654, +0x664,0x65c,0x66c,0x674,0x67a,0x5f7,0x68a,0x682,0x69a,0x69c,0x6a4,0x692,0x6b4,0x6ba,0x6c2,0x6ac, +0x6d2,0x6d8,0x6e0,0x6ca,0x6f0,0x6f6,0x6fe,0x6e8,0x70e,0x714,0x71c,0x706,0x72c,0x734,0x73c,0x724, +0x74c,0x752,0x75a,0x744,0x76a,0x770,0x778,0x762,0x788,0x78d,0x795,0x780,0x7a5,0x7ac,0x7b4,0x79d, +0x638,0x7bc,0x7c4,0x4ac,0x7cc,0x7d3,0x7db,0x4ac,0x7e3,0x7eb,0x7f3,0x7f8,0x800,0x807,0x80f,0x4ac, +0x5f7,0x817,0x81f,0x827,0x82f,0x584,0x83f,0x837,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x847,0x5f7,0x84f,0x853,0x85b,0x5f7,0x861,0x5f7,0x867,0x86f,0x877,0x584,0x584,0x87f, +0x887,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x88c,0x894,0x5f7,0x5f7,0x89c,0x8a4,0x8ac,0x8b4,0x8bc,0x5f7,0x8c4,0x8cc,0x8d4, +0x8e4,0x5f7,0x8ec,0x8ee,0x8f6,0x8dc,0x5f7,0x8f9,0x90d,0x901,0x909,0x915,0x5f7,0x91d,0x923,0x92b, +0x933,0x5f7,0x943,0x94b,0x953,0x93b,0x963,0x4ac,0x96b,0x96e,0x976,0x95b,0x986,0x97e,0x5f7,0x98d, +0x5f7,0x99c,0x995,0x9a4,0x9ac,0x9b0,0x9b8,0x9c0,0x52c,0x9c8,0x9cb,0x9d1,0x9d8,0x9cb,0x553,0x553, +0x4dc,0x4dc,0x4dc,0x4dc,0x9e0,0x4dc,0x4dc,0x4dc,0x9f0,0x9f8,0xa00,0xa08,0xa10,0xa14,0xa1c,0x9e8, +0xa34,0xa3c,0xa24,0xa2c,0xa44,0xa4c,0xa54,0xa5c,0xa74,0xa64,0xa6c,0xa7c,0xa84,0xa93,0xa98,0xa8b, +0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa8,0xab0,0x92b,0xab3,0xabb,0xac2,0xac7,0xacf, +0x92b,0xad6,0xad5,0xae6,0xae9,0x92b,0x92b,0xade,0x92b,0x92b,0x92b,0x92b,0x92b,0xaf8,0xb00,0xaf0, +0x92b,0x92b,0x92b,0xb05,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xb0b,0xb13,0x92b,0xb1b,0xb22, +0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xaa0,0xaa0,0xaa0,0xaa0,0xb2a,0xaa0,0xb31,0xb38, +0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0xaa0,0x92b,0xb40,0xb47,0xb4b,0xb51,0x92b,0x92b,0x92b, +0x584,0x58c,0x52c,0xb59,0x4dc,0x4dc,0x4dc,0xb61,0x52c,0xb69,0x5f7,0xb6f,0xb7f,0xb77,0xb77,0x553, +0xb87,0xb8f,0xb97,0x4ac,0xb9f,0x92b,0x92b,0xba6,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xbae,0xbb4, +0xbc4,0xbbc,0x638,0x5f7,0xbcc,0x887,0x5f7,0xbd4,0xbdc,0xbe0,0x5f7,0x5f7,0xbe5,0x5f7,0x92b,0xbec, +0xad0,0xbf4,0xbfa,0x92b,0xbf4,0xc02,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b, +0xc0a,0x5f7,0x5f7,0x5f7,0xc12,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0xc18,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc1d,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x92b,0x92b, +0xc25,0x5f7,0xc28,0x5f7,0xc30,0xc36,0xc3e,0xc46,0xc4b,0x5f7,0x5f7,0xc4f,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc56,0x5f7,0xc5d,0xc63,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc6b,0x5f7,0x5f7,0x5f7,0xc73,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc75,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc7c,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0xc83,0x5f7,0x5f7,0x5f7,0xc8a,0xc92,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc97,0x5f7,0x5f7,0xc9f,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca3,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xca9,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0xcaf,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0xcb7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0xcbc,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xcc1,0x5f7,0x5f7,0x5f7,0xcc6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0xcce,0xcd5,0xcd9,0x5f7,0x5f7,0x5f7,0xce0,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0xcee,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0xce6,0x92b,0xcf6,0x9a4,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0xcfb,0xd03,0x4dc,0xd13,0xd0b,0x5f7,0x5f7,0xd1b,0xd23,0xd33,0x4dc,0xd38,0xd40,0xd46,0xd4d,0xd2b, +0xd55,0xd5d,0x5f7,0xd65,0xd75,0xd78,0xd6d,0xd80,0x64c,0xd88,0xd8f,0x8ed,0x69a,0xd9f,0xd97,0xda7, +0x5f7,0xdaf,0xdb7,0xdbf,0x5f7,0xdc7,0xdcf,0xdd7,0xddf,0xde7,0xdeb,0xdf3,0x52c,0x52c,0x5f7,0xdfb, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe03,0xe0f,0xe07, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, +0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0x5f7,0x5f7,0x5f7,0xe27,0x5f7,0xce1,0xe2e,0xe33, +0x5f7,0x5f7,0x5f7,0xe3b,0x5f7,0x5f7,0x8f8,0x4ac,0xe51,0xe41,0xe49,0x5f7,0x5f7,0xe59,0xe61,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe66,0x92f,0x5f7,0xe6e,0x5f7,0xe74,0xe78, +0xe80,0xe88,0xe8f,0xe97,0x5f7,0x5f7,0x5f7,0xe9d,0xeb5,0x49c,0xebd,0xec5,0xeca,0x90d,0xea5,0xead, +0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, +0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17,0xe17, +0x12b0,0x12b0,0x12f0,0x1330,0x1370,0x13a8,0x13e8,0x1428,0x1460,0x14a0,0x14cc,0x150c,0x154c,0x155c,0x159c,0x15d0, +0x1610,0x1640,0x1680,0x16c0,0x16d0,0x1704,0x173c,0x177c,0x17bc,0x17fc,0x1830,0x185c,0x189c,0x18d4,0x18f0,0x1930, +0xa80,0xac0,0xb00,0xb40,0xb80,0xbab,0xbeb,0xa40,0xc0d,0xa40,0xa40,0xa40,0xa40,0xc4d,0x1db,0x1db, +0xc8d,0xccd,0xa40,0xa40,0xa40,0xcf6,0xd36,0xd56,0xa40,0xd7c,0xdbc,0xdfc,0xe3c,0xe7c,0xebc,0xefc, +0xf3c,0xf73,0x1db,0x1db,0xf97,0xfcb,0x1db,0xff3,0x1db,0x1db,0x1db,0x1db,0x1020,0x1db,0x1db,0x1db, +0x1db,0x1db,0x1db,0x1db,0x1034,0x1db,0x106c,0x10ac,0x1db,0x10b7,0x1db,0x1db,0x1db,0x10ed,0xa40,0x112d, +0x1db,0x1db,0x116d,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, @@ -172,997 +170,1011 @@ static const uint16_t propsTrie_index[22276]={ 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0x1133,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0x11ad,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1173, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x11ed, 0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700, -0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x1173, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0xed0,0xed7,0xedf,0x48d,0x5d8,0x5d8,0x5d8,0xee7,0xef7,0xeef,0xf0e,0xeff,0xf06,0xf16,0xf1a,0xf1e, -0x48d,0x48d,0x48d,0x48d,0x8ce,0x5d8,0xf26,0xf2e,0x5d8,0xf36,0xf3e,0xf42,0xf4a,0x5d8,0xf52,0x48d, -0x565,0x56f,0xf5a,0x5d8,0xf5e,0xf66,0xf76,0xf6e,0x5d8,0xf7e,0x5d8,0xf85,0x48d,0x48d,0x48d,0x48d, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xb78,0x8da,0xe72,0x48d,0x48d,0x48d,0x48d, -0xf95,0xf8d,0xf98,0xfa0,0x8ee,0xfa8,0x48d,0xfb0,0xfb8,0xfc0,0x48d,0x48d,0x5d8,0xfd0,0xfd8,0xfc8, -0xfe8,0xfef,0xfe0,0xff7,0xfff,0x48d,0x100f,0x1007,0x5d8,0x1012,0x101a,0x1022,0x102a,0x1032,0x48d,0x48d, -0x5d8,0x5d8,0x103a,0x48d,0x565,0x1042,0x50d,0x104a,0x5d8,0x1052,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x105a,0x5d8,0x1062,0x48d,0x48d,0x106a,0x1072,0x1079,0x48d,0x48d,0xe68,0x1081,0xb78, -0x1091,0x60e,0x1099,0x1089,0x967,0x10a1,0x10a9,0x10af,0x10c7,0x10b7,0x10bf,0x10cb,0x967,0x10db,0x10d3,0x10e3, -0x10f3,0x10eb,0x48d,0x48d,0x10fa,0x1102,0x630,0x110a,0x111a,0x1120,0x1128,0x1112,0x48d,0x48d,0x48d,0x48d, -0x5d8,0x1130,0x1138,0x1140,0x5d8,0x1148,0x1150,0x48d,0x48d,0x48d,0x48d,0x48d,0x5d8,0x1158,0x1160,0x48d, -0x5d8,0x1168,0x1170,0x1178,0x5d8,0x1188,0x1180,0x48d,0x848,0x1190,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x5d8,0x1198,0x48d,0x48d,0x48d,0x565,0x50d,0x11a0,0x11b0,0x11b6,0x11a8,0x48d,0x48d,0x11c6,0x11ca,0x11be, -0x11e2,0x11d2,0x11da,0x5d8,0x11f2,0x11ea,0x5d8,0x8cf,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x1208,0x120d,0x11fa,0x1202,0x121d,0x1215,0x48d,0x48d,0x122c,0x1230,0x1224,0x1240,0x1238,0x1180,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x1244,0x48d,0x48d,0x48d,0x48d,0x48d,0x124b,0x125b,0x1253, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x8d9,0x48d,0x48d,0x48d, -0x126b,0x1273,0x127b,0x1263,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x1283,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x128b,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x1293,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x8cf,0x8ee,0x129b,0x48d,0x48d,0xe68,0x12a3,0x5d8,0x12b3,0x12bb,0x12c3,0x12ab,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x565,0x50d,0x12cb,0x48d,0x48d,0x48d,0x5d8,0x5d8,0x12d3,0x12d8,0x12de,0x48d, -0x48d,0x12e6,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x12ee,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x8da,0x48d,0x103a,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x8ee,0x48d,0x12f4,0x12fb,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xe01,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x1301,0x1306,0x130e,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0xba7,0x90c,0x1316,0x90c,0x131d,0x1325,0x132b, -0x90c,0x1331,0x90c,0x90c,0x1339,0x48d,0x48d,0x48d,0x48d,0x1341,0x90c,0x90c,0xabb,0x1349,0x48d,0x48d, -0x48d,0x48d,0x1359,0x1360,0x1365,0x136b,0x1373,0x137b,0x1383,0x135d,0x138b,0x1393,0x139b,0x13a0,0x1372,0x1359, -0x1360,0x135c,0x136b,0x13a8,0x135a,0x13ab,0x135d,0x13b3,0x13bb,0x13c3,0x13ca,0x13b6,0x13be,0x13c6,0x13cd,0x13b9, -0x13d5,0x1351,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -0x90c,0x90c,0x534,0x13e5,0x534,0x13ec,0x13f3,0x13dd,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x13fa,0x1402,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x5d8,0x1412,0x140a,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x5d8,0x141a,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x1422,0x48d,0x565,0x1432,0x142a,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x143a,0x144a,0x1442,0x48d,0x48d,0x145a,0x1452,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x146a,0x1472,0x147a,0x1482,0x148a,0x1492,0x48d,0x1462,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x90c,0x149a,0x90c,0x90c,0xb9f,0x149f,0x14a3,0xba7,0x14ab,0x90c,0x90c,0x90c,0x90c,0xba9, -0x48d,0x14b3,0x14bb,0x14bf,0x14c7,0x14cf,0x48d,0x48d,0x48d,0x48d,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -0x90c,0x14d7,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c, -0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x90c,0x14df,0x14e7,0x90c,0x90c,0x90c,0xb9f,0x90c,0x90c, -0x14ef,0x14f7,0x149a,0x90c,0x14ff,0x90c,0x1507,0x150c,0x48d,0x48d,0x90c,0x90c,0x90c,0x1514,0x90c,0x90c, -0x151b,0x90c,0x90c,0x90c,0xb9f,0x1520,0x1528,0x152e,0x1533,0x48d,0x90c,0x90c,0x90c,0x90c,0x153b,0x90c, -0xabe,0x117c,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x1543,0x5d8,0x5d8,0x154a,0x5d8,0x5d8,0x5d8,0x1552,0x5d8,0x155a,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0xc80,0x5d8,0x5d8,0x1562,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x156a,0x1572,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0xcbf,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x1579,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x1580,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x1587,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0xf5e,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x158b,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0xf5e,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x1066,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x1590,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x1598,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0xf5e,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8, -0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x5d8,0x655,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x15a8,0x15a0,0x15a0,0x15a0,0x48d,0x48d,0x48d,0x48d,0x534,0x534,0x534,0x534,0x534, -0x534,0x534,0x15b0,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d,0x48d, -0x48d,0x48d,0x48d,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, -0xe19,0xe19,0x15b8,0x46c,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x700,0x11ed, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0xed2,0xed9,0xee1,0x4ac,0x5f7,0x5f7,0x5f7,0xee9,0xef9,0xef1,0xf10,0xf01,0xf08,0xf18,0xf1c,0xf20, +0x4ac,0x4ac,0x4ac,0x4ac,0x8ed,0x5f7,0xf28,0xf30,0x5f7,0xf38,0xf40,0xf44,0xf4c,0x5f7,0xf54,0x4ac, +0x584,0x58e,0xf5c,0x5f7,0xf60,0xf68,0xf78,0xf70,0x5f7,0xf80,0x5f7,0xf87,0xf97,0xf8f,0x4ac,0x4ac, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xb7f,0x8f9,0xf9f,0xfaf,0xfa7,0x4ac,0x4ac, +0xfbf,0xfb7,0xfc2,0xfca,0x90d,0xfd2,0x4ac,0xfda,0xfe2,0xfea,0x4ac,0x4ac,0x5f7,0xffa,0x1002,0xff2, +0x1012,0x1019,0x100a,0x1021,0x1029,0x4ac,0x1039,0x1031,0x5f7,0x103c,0x1044,0x104c,0x1054,0x105c,0x4ac,0x4ac, +0x5f7,0x5f7,0x1064,0x4ac,0x584,0x106c,0x52c,0x1074,0x5f7,0x107c,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x1084,0x5f7,0x108c,0x4ac,0x4ac,0x1094,0x109c,0x10a3,0xfd6,0x10ab,0xfd6,0x10b3,0xb7f, +0x10c3,0x62d,0x10cb,0x10bb,0x986,0x10d3,0x10db,0x10e1,0x10f9,0x10e9,0x10f1,0x10fd,0x986,0x110d,0x1105,0x1115, +0x1125,0x111d,0x4ac,0x4ac,0x112c,0x1134,0x64f,0x113c,0x114c,0x1152,0x115a,0x1144,0x4ac,0x4ac,0x4ac,0x4ac, +0x5f7,0x1162,0x116a,0x1172,0x5f7,0x117a,0x1182,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x118a,0x1192,0x4ac, +0x5f7,0x119a,0x11a2,0x11aa,0x5f7,0x11ba,0x11b2,0x4ac,0x867,0x11c2,0x11ca,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x5f7,0x11d2,0x4ac,0x4ac,0x4ac,0x584,0x52c,0x11da,0x11ea,0x11f0,0x11e2,0x4ac,0x4ac,0x1200,0x1204,0x11f8, +0x121c,0x120c,0x1214,0x5f7,0x122a,0x1224,0x5f7,0x8ee,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x1240,0x1245,0x1232,0x123a,0x1255,0x124d,0x4ac,0x4ac,0x1264,0x1268,0x125c,0x1278,0x1270,0x11b2,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x127c,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1283,0x1293,0x128b, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8f8,0x4ac,0x4ac,0x4ac, +0x12a3,0x12ab,0x12b3,0x129b,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x12bb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0xfd6,0x5f7,0x5f7,0x12c3,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x12cb,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x11ca, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8ee,0x90d, +0xd9b,0x5f7,0x90d,0x12d3,0x12d8,0x5f7,0x12e8,0x12f0,0x12f8,0x12e0,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x584, +0x52c,0x1300,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x1308,0x130d,0x1313,0x4ac,0x4ac,0x131b,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1323,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x8f9,0x4ac,0x1064,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1329,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1331, +0x1335,0x133c,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xe07,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7,0x1342,0x1347,0x134f,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x553,0x135f,0x1366,0x92b,0x92b,0x92b,0x1357,0x4ac,0x92b,0x92b,0x92b,0x92b, +0x92b,0x92b,0x92b,0xbae,0x92b,0x136d,0x92b,0x1374,0x137c,0x1382,0x92b,0xad5,0x92b,0x92b,0x138a,0x4ac, +0x4ac,0x4ac,0x4ac,0x1392,0x92b,0x92b,0xad2,0x139a,0x4ac,0x4ac,0x4ac,0x4ac,0x13aa,0x13b1,0x13b6,0x13bc, +0x13c4,0x13cc,0x13d4,0x13ae,0x13dc,0x13e4,0x13ec,0x13f1,0x13c3,0x13aa,0x13b1,0x13ad,0x13bc,0x13f9,0x13ab,0x13fc, +0x13ae,0x1404,0x140c,0x1414,0x141b,0x1407,0x140f,0x1417,0x141e,0x140a,0x1426,0x13a2,0x92b,0x92b,0x92b,0x92b, +0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x553,0x1436,0x553,0x143d, +0x1444,0x142e,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x1453,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x144b,0x145b,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x146b,0x1463,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0xfd6,0x1473,0x5f7,0x147b,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x1483,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x148b,0x4ac,0x584,0x149b,0x1493,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x14a3, +0x14b3,0x14ab,0x4ac,0x4ac,0x14c3,0x14bb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x14d3,0x14db,0x14e3,0x14eb, +0x14f3,0x14fb,0x4ac,0x14cb,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x92b,0x1503,0x92b,0x92b, +0xba6,0x136b,0x150b,0xbae,0x1513,0x92b,0x92b,0x92b,0x92b,0xbb0,0x4ac,0x151b,0x1523,0x1527,0x152f,0x1537, +0x4ac,0x4ac,0x4ac,0x4ac,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x153f,0x92b,0x92b,0x92b,0x92b, +0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b, +0x92b,0x92b,0x1547,0x154f,0x92b,0x92b,0x92b,0xba6,0x92b,0x92b,0x1557,0x155f,0x1503,0x92b,0x1567,0x92b, +0x156f,0x1574,0x4ac,0x4ac,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0x92b,0xba6,0x157c, +0x1588,0x158d,0x1595,0x1584,0x92b,0x92b,0x92b,0x92b,0x159d,0x92b,0xad5,0x11ae,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x15a5,0x5f7,0x5f7,0x15ac, +0x5f7,0x5f7,0x5f7,0x15b4,0x5f7,0x15bc,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xc87,0x5f7,0x5f7,0x15c4, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15cc,0x15d4,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0xcc6,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15db,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15e2,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x15e9,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x4ac,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x8ee,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xf60,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x1090,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15f1,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, +0x5f7,0x15f9,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0xf60,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7, +0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x15ff,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x160f,0x1607,0x1607, +0x1607,0x4ac,0x4ac,0x4ac,0x4ac,0x553,0x553,0x553,0x553,0x553,0x553,0x553,0x1617,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac, +0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0x4ac,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f, +0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0xe1f,0x161f,0x48b,0x48b,0x48b, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18, -0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -0x18,0x18,0x18,0x17,0x17,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0x14, -0x17,0x15,0x1a,0x16,0x1a,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14, -0x18,0x15,0x18,0xf,0,0,0,0,0,0,0,0,0,0,0,0, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xc,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17, +0x17,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x14,0x17,0x15,0x1a,0x16, +0x1a,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0xf, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, 0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c, -0x18,0x10,0x1b,0x1a,0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d, -0x34cb,0x344b,0x3ccb,0x17,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0x18,1,1,1,1, -1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, -2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf, +0xc,0x17,0x19,0x19,0x19,0x19,0x1b,0x17,0x1a,0x1b,5,0x1c,0x18,0x10,0x1b,0x1a, +0x1b,0x18,0x34b,0x38b,0x1a,2,0x17,0x17,0x1a,0x30b,5,0x1d,0x34cb,0x344b,0x3ccb,0x17, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,0x18,1,1,1,1,1,1,1,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,2,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,2,1,2,1, -2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,2,1,2,1,2,1,2,1, +2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,1,2,1,2,1,2,2,2,1,1,2, -1,2,1,1,2,1,1,1,2,2,1,1,1,1,2,1, -1,2,1,1,1,2,2,2,1,1,2,1,1,2,1,2, -1,2,1,1,2,1,2,2,1,2,1,1,2,1,1,1, -2,1,2,1,1,2,2,5,1,2,2,2,5,5,5,5, -1,3,2,1,3,2,1,3,2,1,2,1,2,1,2,1, -2,1,2,1,2,1,2,1,2,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,2,1,3,2, -1,2,1,1,1,2,1,2,1,2,1,2,1,2,1,2, +1,1,2,1,2,1,2,2,2,1,1,2,1,2,1,1, +2,1,1,1,2,2,1,1,1,1,2,1,1,2,1,1, +1,2,2,2,1,1,2,1,1,2,1,2,1,2,1,1, +2,1,2,2,1,2,1,1,2,1,1,1,2,1,2,1, +1,2,2,5,1,2,2,2,5,5,5,5,1,3,2,1, +3,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1, +2,1,2,1,2,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,1,2,2,1,3,2,1,2,1,1, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,2,2,2,2,2,2,1,1, -2,1,1,2,2,1,2,1,1,1,1,2,1,2,1,2, -1,2,1,2,2,2,2,2,2,2,2,2,2,2,2,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,2,2,2,2,2,2,1,1,2,1,1,2, +2,1,2,1,1,1,1,2,1,2,1,2,1,2,1,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,5,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,4, -4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -4,4,4,4,4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +5,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a, +0x1a,0x1a,4,4,4,4,4,4,4,4,4,4,4,4,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4, +4,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,0x1a,4,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -1,2,1,2,4,0x1a,1,2,0,0,4,2,2,2,0x17,1, -0,0,0,0,0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,0,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,1,2,2,1,1,1,2,2,2,1,2,1,2, +6,6,6,6,6,6,6,6,6,6,6,6,1,2,1,2, +4,0x1a,1,2,0,0,4,2,2,2,0x17,1,0,0,0,0, +0x1a,0x1a,1,0x17,1,1,1,0,1,0,1,1,2,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1, +1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1, +2,2,1,1,1,2,2,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,2,2,2,2,1,2,0x18,1,2,1,1,2, -2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,1,2,0x18,1,2,1,1,2,2,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,0x1b,6,6,6,6,6,7,7,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,0x1b,6,6,6,6,6,7,7,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,1,2,1,2,1,2,1,2,1,2,1, -2,1,2,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,1,2,1,2,1,2,1,2,1,2,1,2,1,2,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,0,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -0,4,0x17,0x17,0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0,0,4,0x17,0x17, +0x17,0x17,0x17,0x17,2,2,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19, -0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +2,2,2,2,2,0x17,0x13,0,0,0x1b,0x1b,0x19,0,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x13,6, -0x17,6,6,0x17,6,6,0x17,6,0,0,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,0x13,6,0x17,6,6,0x17, +6,6,0x17,6,0,0,0,0,0,0,0,0,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,5, -5,5,5,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, -0x10,0x10,0x10,0x10,0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b, -6,6,6,6,6,6,6,6,6,6,6,0x17,0x10,0,0x17,0x17, +5,5,5,5,5,5,5,0,0,0,0,5,5,5,5,0x17, +0x17,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10, +0x10,0x10,0x18,0x18,0x18,0x17,0x17,0x19,0x17,0x17,0x1b,0x1b,6,6,6,6, +6,6,6,6,6,6,6,0x17,0x10,0x17,0x17,0x17,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5, +5,5,5,5,5,5,5,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5,6,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -4,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,5, -6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6, -6,6,6,6,6,4,4,6,6,0x1b,6,6,6,6,5,5, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10, -5,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0x17,5,6,6,6,6,6,6,6,0x10,0x1b,6,6,6,6,6, +6,4,4,6,6,0x1b,6,6,6,6,5,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,0x1b,0x1b,5,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0x10,5,6,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,0,0,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -6,6,6,6,6,5,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, +5,5,5,5,5,5,6,6,6,6,6,6,6,6,6,6, +6,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -6,6,6,6,6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0, -0,6,0x19,0x19,6,6,6,6,4,6,6,6,4,6,6,6, -6,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,6,6,6,4,6, -6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,6,6,6, -0,0,0x17,0,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,6,6,0x10,6,6,6,6,6,6,6,6,6, +5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, +6,6,6,6,4,4,0x1b,0x17,0x17,0x17,4,0,0,6,0x19,0x19, +6,6,6,6,4,6,6,6,4,6,6,6,6,6,0,0, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,6,6,6,6,4,6,6,6,6,6, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,6,6,6,0,0,0x17,0, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0x1a,5,5,5,5,5,5,0,0x10,0x10,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,0x10,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5, +5,4,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,5,5,6,6,0x17,0x17,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,8,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,6,8,6,5,8,8, +8,6,6,6,6,6,6,6,6,8,8,8,8,6,8,8, +5,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5, +5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19,5,0x17,6,0, +5,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5, +5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,5,5,5,0,5,0,0,0,5,5, +5,5,0,0,6,5,8,8,8,6,6,6,6,0,0,8, +8,0,0,8,8,6,5,0,0,0,0,0,0,0,0,8, +0,0,0,0,5,5,0,5,0,0,0,0,0,0,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,6,5,5,5,6,0x17,0, +0,0,0,0,0,0,0,0,0,6,6,8,0,5,5,5, +5,5,5,0,0,0,0,5,5,0,0,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,6, -6,6,6,6,6,6,6,6,6,6,6,6,5,5,6,6, -0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,4,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,8, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -6,5,8,8,8,6,6,6,6,6,6,6,6,8,8,8, -8,6,8,8,5,6,6,6,6,6,6,6,5,5,5,5, -5,5,5,5,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,5,5,0x19,0x19,0x37cb,0x35cb,0x3fcb,0x34cb,0x3ccb,0x94b,0x1b,0x19, -5,0x17,6,0,5,6,8,8,0,5,5,5,5,5,5,5, -5,0,0,5,5,0,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,0, -0,0,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -6,0,0,8,8,0,0,8,8,6,5,0,0,0,0,0, -0,0,0,8,0,0,0,0,5,5,0,5,0,0,0,0, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,6,5,5, -5,6,0x17,0,0,0,0,0,0,0,0,0,0,6,6,8, -0,5,5,5,5,5,5,0,0,0,0,5,5,0,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,0,5,5,0,5,5,0,5,5,0,0, -6,0,8,8,8,6,6,0,0,0,0,6,6,0,0,6, -6,6,0,0,0,6,0,0,0,0,0,0,0,5,5,5, -5,0,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x17,0x19,0,0,0,0,0,0,0,5,6,6, -6,6,6,6,0,6,6,8,0,5,5,5,5,5,5,5, -5,5,0,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,0,5,5, -0,5,5,5,5,5,0,0,6,5,8,8,8,6,6,6, -6,6,0,6,6,8,0,8,8,6,0,0,5,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,6, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b, -0x3ccb,0x37cb,0x35cb,0x3fcb,0,0,0,0,0,0,0,0,0,6,8,8, -0,5,5,5,5,5,5,5,5,0,0,5,5,0,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,0,5,5,0,5,5,5,5,5,0,0, -6,5,8,6,8,6,6,6,6,0,0,8,8,0,0,8, -8,6,0,0,0,0,0,0,0,6,6,8,0,0,0,0, -5,5,0,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0, -0,0,0,0,0,0,6,5,0,5,5,5,5,5,5,0, -0,0,5,5,5,0,5,5,5,5,0,0,0,5,5,0, -5,0,5,5,0,0,0,5,5,0,0,0,5,5,5,0, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0,8,8,6,8,8,0,0,0,8,8,8,0,8,8, -8,6,0,0,5,0,0,0,0,0,0,8,0,0,0,0, -0,0,0,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b, -0x58b,0x5cb,0x60b,0x1b,6,8,8,8,6,5,5,5,5,5,5,5, -5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0,5,6,6,6,8,8,8, -8,0,6,6,6,0,6,6,6,6,0,0,0,0,0,0, -0,6,6,0,5,5,5,0,0,0,0,0,5,5,6,6, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,6,8,8, -0x17,5,5,5,5,5,5,5,5,0,5,5,5,0,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, -5,5,5,5,5,5,5,5,0,5,5,5,5,5,0,0, -6,5,8,6,8,8,8,8,8,0,6,8,8,0,8,8, -6,6,0,0,0,0,0,0,0,8,8,0,0,0,0,0, -0,0,5,0,5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5, -5,5,5,5,6,6,8,8,5,5,5,5,5,5,5,5, -5,0,5,5,5,0,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,6,6,5,8,8,8,6,6,6,6,0,8,8, -8,0,8,8,8,6,5,0x1b,0,0,0,0,5,5,5,8, -0xcc0b,0xca0b,0xcb4b,0xc90b,0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0, +5,0,5,5,0,5,5,0,5,5,0,0,6,0,8,8, +8,6,6,0,0,0,0,6,6,0,0,6,6,6,0,0, +0,6,0,0,0,0,0,0,0,5,5,5,5,0,5,0, +5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0x17,0x19,0,0,0,0,0,0,0,5,6,6,6,6,6,6, +0,6,6,8,0,5,5,5,5,5,5,5,5,5,0,5, +5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5, +5,5,0,0,6,5,8,8,8,6,6,6,6,6,0,6, +6,8,0,8,8,6,0,0,5,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,6,6,0,0,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x1b,5,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb, 0,0,0,0,0,0,0,0,0,6,8,8,0,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -0,5,0,0,5,5,5,5,5,5,5,0,0,0,6,0, -0,0,0,8,8,8,6,6,6,0,6,0,8,8,8,8, -8,8,8,8,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,6,5,5,6,6,6,6,6,6,6,0, -0,0,0,0x19,5,5,5,5,5,5,4,6,6,6,6,6, -6,6,6,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, -0,0,0,0,0,5,5,0,5,0,5,5,5,5,5,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,5,0,5,5,5,5,5,5,5,5,5, -5,6,5,5,6,6,6,6,6,6,6,6,6,5,0,0, -5,5,5,5,5,0,4,0,6,6,6,6,6,6,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5, -5,0x1b,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x1b,0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b, -0x644b,0x6c4b,0x744b,0x2c4b,0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8, -5,5,5,5,5,5,5,5,0,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,8,6,6,6,6,6,0x17,6,6,5,5,5,5, -5,6,6,6,6,6,6,6,6,6,6,6,0,6,6,6, +5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, +5,0,5,5,0,5,5,5,5,5,0,0,6,5,8,6, +8,6,6,6,6,0,0,8,8,0,0,8,8,6,0,0, +0,0,0,0,0,6,6,8,0,0,0,0,5,5,0,5, +0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0x7cb,0x1e4b,0x784b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x19,0x1b,0,0,0,0,0, +0,0,6,5,0,5,5,5,5,5,5,0,0,0,5,5, +5,0,5,5,5,5,0,0,0,5,5,0,5,0,5,5, +0,0,0,5,5,0,0,0,5,5,5,0,0,0,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,0,0,8,8, +6,8,8,0,0,0,8,8,8,0,8,8,8,6,0,0, +5,0,0,0,0,0,0,8,0,0,0,0,0,0,0,0, +5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0,0,0,0,0,0,0,0x17,0x54b,0x58b,0x5cb,0x60b,0x58b,0x5cb,0x60b,0x1b, +6,8,8,8,6,5,5,5,5,5,5,5,5,0,5,5, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,6,5,6,6,6,8,8,8,8,0,6,6, +6,0,6,6,6,6,0,0,0,0,0,0,0,6,6,0, +5,5,5,0,0,5,0,0,5,5,6,6,0,0,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,5,5,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,6,8,8,0x17,5,5,5, +5,5,5,5,5,0,5,5,5,0,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, +5,5,5,5,0,5,5,5,5,5,0,0,6,5,8,6, +8,8,8,8,8,0,6,8,8,0,8,8,6,6,0,0, +0,0,0,0,0,8,8,0,0,0,0,0,0,5,5,0, +5,5,6,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0x7cb,0x1e4b,0x784b,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,5,5,5,5,5,5, +6,6,8,8,5,5,5,5,5,5,5,5,5,0,5,5, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, +6,5,8,8,8,6,6,6,6,0,8,8,8,0,8,8, +8,6,5,0x1b,0,0,0,0,5,5,5,8,0xcc0b,0xca0b,0xcb4b,0xc90b, +0x364b,0xc94b,0x350b,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0,0,8,8,0x17,0,0,0,0,0,0,0, +0,0,0,0,0,6,8,8,0,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,5,5,5,5,5,5,5,5,5,0,5,0,0, +5,5,5,5,5,5,5,0,0,0,6,0,0,0,0,8, +8,8,6,6,6,0,6,0,8,8,8,8,8,8,8,8, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,6,5,5,6,6,6,6,6,6,6,0,0,0,0,0x19, +5,5,5,5,5,5,4,6,6,6,6,6,6,6,6,0x17, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0,0,0, +0,5,5,0,5,0,5,5,5,5,5,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,5,0,5,5,5,5,5,5,5,5,5,5,6,5,5, +6,6,6,6,6,6,6,6,6,5,0,0,5,5,5,5, +5,0,4,0,6,6,6,6,6,6,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,5,5,5,5,5,0x1b,0x1b,0x1b, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b, +0x17,0x1b,0x1b,0x1b,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x344b,0x3c4b,0x444b,0x4c4b,0x544b,0x5c4b,0x644b,0x6c4b,0x744b,0x2c4b, +0x1b,6,0x1b,6,0x1b,6,0x14,0x15,0x14,0x15,8,8,5,5,5,5, +5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,6,6,6,6,6,6,6,6,6,6,6,6,6,6,8, +6,6,6,6,6,0x17,6,6,5,5,5,5,5,6,6,6, +6,6,6,6,6,6,6,6,0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b, -0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,8,8,6,6,6, -6,8,6,6,6,6,6,6,8,6,6,8,8,6,6,5, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17, -5,5,5,5,5,5,8,8,6,6,5,5,5,5,6,6, -6,5,8,8,8,5,5,8,8,8,8,8,8,8,5,5, -5,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5, -5,5,6,8,8,6,6,8,8,8,8,8,8,6,5,8, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0x17,4,2,2,2, -1,1,1,1,1,1,0,1,0,0,0,0,0,1,0,0, +6,6,6,6,6,6,6,6,6,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x17,0x17,0x17,0x17, +0x17,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,8,8,6,6,6,6,8,6,6, +6,6,6,6,8,6,6,8,8,6,6,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5, +5,5,8,8,6,6,5,5,5,5,6,6,6,5,8,8, +8,5,5,8,8,8,8,8,8,8,5,5,5,6,6,6, +6,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, +8,6,6,8,8,8,8,8,8,6,5,8,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,8,8,8,6,0x1b,0x1b,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,0, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, +2,2,2,2,2,2,2,0x17,4,2,2,2,1,1,1,1, +1,1,0,1,0,0,0,0,0,1,0,0,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, +5,5,5,0,5,0,5,5,5,5,0,0,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, +5,5,0,0,5,5,5,5,5,5,5,0,5,0,5,5, +5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,5,5,5,5,0,0,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,0, -5,0,5,5,5,5,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,0,0, +5,5,5,5,5,5,5,0,0,6,6,6,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,0,0,2,2,2,2,2,2,0,0,0x13,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,6, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b, -0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x788b,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b,0x17,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,0,0,2,2,2,2,2,2,0,0, -0x13,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x1b,0x17,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0xc,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x14, -0x15,0,0,0,5,5,5,5,5,5,5,5,5,5,5,0x17, -0x17,0x17,0x98a,0x9ca,0xa0a,5,5,5,5,5,5,5,5,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,5,5,5,5,6,6,6,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,6,0x17,0x17,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,6,6,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,5,5,5,0,6,6,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,6,6,8,6,6,6,6,6, -6,6,8,8,8,8,8,8,8,8,6,8,8,6,6,6, -6,6,6,6,6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19, -5,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,6,5,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6, -6,6,0x10,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,5,5,5,4,5,5,5,5,5,5,5,5, +0xc,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0x14,0x15,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x98a,0x9ca, +0xa0a,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, -5,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0,0,0,0,0,0,0,6,6,6,8,8,8,8,6, -6,8,8,8,0,0,0,0,8,8,6,8,8,8,8,8, -8,6,6,6,0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89, -0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5, +5,5,6,6,6,8,0,0,0,0,0,0,0,0,0,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,5,5,5,5,5,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +5,5,6,6,8,0x17,0x17,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,6,8,8,6,0,0,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,7,6, +5,5,6,6,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,5,5, +5,0,6,6,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,8,6,8,6,6,6,6,6,6,6,0, -6,8,6,8,8,6,6,6,6,6,6,6,6,8,8,8, -8,8,8,6,6,6,6,6,6,6,6,6,6,0,0,6, +5,5,5,5,6,6,8,6,6,6,6,6,6,6,8,8, +8,8,8,8,8,8,6,8,8,6,6,6,6,6,6,6, +6,6,6,6,0x17,0x17,0x17,4,0x17,0x17,0x17,0x19,5,6,0,0, 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,6,5,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x17,0x17,6,6,6,0x10,6, 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0x17,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6, -6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, -6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -6,6,6,6,8,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -6,8,6,6,6,6,6,8,6,8,8,8,8,8,6,8, -8,5,5,5,5,5,5,5,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6, -6,6,8,8,6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,6,6,8,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,8, -6,6,8,8,8,6,8,6,6,6,8,8,0,0,0,0, -0,0,0,0,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,5,5,5,5,5,5,8,8,8,8,8,8,8,8, -6,6,6,6,6,6,6,6,8,8,6,6,0,0,0,0x17, -0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,4,4,4,4, -4,4,0x17,0x17,2,2,2,2,2,2,2,2,2,0,0,0, -0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0, -0,1,1,1,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0, -0,0,0,0,6,6,6,0x17,6,6,6,6,6,6,6,6, -6,6,6,6,6,8,6,6,6,6,6,6,6,5,5,5, -5,6,5,5,5,5,5,5,6,5,5,8,6,6,5,0, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, +5,5,5,4,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,0,0,0,0,0,0,5,5,5,5,5,6,6,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, +0,0,0,0,6,6,6,8,8,8,8,6,6,8,8,8, +0,0,0,0,8,8,6,8,8,8,8,8,8,6,6,6, +0,0,0,0,0x1b,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,5,5,5,5,5,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0x30b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,6,6,8,8,6,0,0,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,4,0x17,0x17,0x17,0x17,0x17,0x17,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,7,6,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,8,6,8,6,6,6,6,6,6,6,0,6,8,6,8, +8,6,6,6,6,6,6,6,6,8,8,8,8,8,8,6, +6,6,6,6,6,6,6,6,6,0,0,6,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0x17,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +8,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,6,8,6,6, +6,6,6,8,6,8,8,8,8,8,6,8,8,5,5,5, +5,5,5,5,5,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x17,0x17,0x17,0x17,0x17,0x17,5,8,6,6,6,6,8,8, +6,6,8,6,6,6,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,5,5,5,5,5,5,6,6,8,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,6,8,6,6,8,8, +8,6,8,6,6,6,8,8,0,0,0,0,0,0,0,0, +0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, +5,5,5,5,8,8,8,8,8,8,8,8,6,6,6,6, +6,6,6,6,8,8,6,6,0,0,0,0x17,0x17,0x17,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,4,4,4,4,4,4,0x17,0x17, +2,2,2,2,2,2,2,2,2,0,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, +6,6,6,0x17,6,6,6,6,6,6,6,6,6,6,6,6, +6,8,6,6,6,6,6,6,6,5,5,5,5,6,5,5, +5,5,5,5,6,5,5,8,6,6,5,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,4,4,4,4, 4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4, -4,4,4,2,2,2,2,2,2,2,2,2,2,2,2,2, -4,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,4, -4,4,4,4,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,0,6, -6,6,6,6,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,2,2,2,2,2,2, -2,2,1,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,0x1a,0x1a,0x1a,0,0,2,2,2,0,2,2,1,1,1,1, -3,0x1a,0x1a,0,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -1,1,0,0,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,0,0,1,1,1,1, -1,1,0,0,2,2,2,2,2,2,2,2,0,1,0,1, -0,1,0,1,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,0,0,2,2,2,2,2,2,2,2,3,3,3,3, -3,3,3,3,2,2,2,2,2,2,2,2,3,3,3,3, -3,3,3,3,2,2,2,2,2,0,2,2,1,1,1,1, -3,0x1a,2,0x1a,0x1a,0x1a,2,2,2,0,2,2,1,1,1,1, -3,0x1a,0x1a,0x1a,2,2,2,2,0,0,2,2,1,1,1,1, -0,0x1a,0x1a,0x1a,0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0xc,0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -0x18,0x14,0x15,4,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10, -0x10,0x10,0x10,0x10,0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c, -0x1c,0x1d,0x14,0x1c,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10, -0x10,0x10,0x10,0xc,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17, -0x17,0x17,0x17,0x16,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18, -0x18,0x14,0x15,0,4,4,4,4,4,4,4,4,4,4,4,4, -4,0,0,0,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,2, +2,2,2,2,2,2,2,2,2,2,2,2,4,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,4,4,4,4,4, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,2,1,2,2,2,2,2,2,2,2,2,1,2, +2,2,2,2,2,2,2,2,1,1,1,1,1,0x1a,0x1a,0x1a, +0,0,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,0,0,1,1,1,1,1,1,0,0, +2,2,2,2,2,2,2,2,0,1,0,1,0,1,0,1, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,0, +2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, +2,2,2,2,2,2,2,2,3,3,3,3,3,3,3,3, +2,2,2,2,2,0,2,2,1,1,1,1,3,0x1a,2,0x1a, +0x1a,0x1a,2,2,2,0,2,2,1,1,1,1,3,0x1a,0x1a,0x1a, +2,2,2,2,0,0,2,2,1,1,1,1,0,0x1a,0x1a,0x1a, +0x16,0x17,0x17,0x17,0x18,0x14,0x15,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x18,0x17,0x16,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xc, +0x10,0x10,0x10,0x10,0x10,0,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0x2cb,4,0,0,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,4, +0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0xc,0x10,0x10,0x10,0x10,0x10, +0x13,0x13,0x13,0x13,0x13,0x13,0x17,0x17,0x1c,0x1d,0x14,0x1c,0x1c,0x1d,0x14,0x1c, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0xd,0xe,0x10,0x10,0x10,0x10,0x10,0xc, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x16, +0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x18,0x18,0x18,0x14,0x15,0, +4,4,4,4,4,4,4,4,4,4,4,4,4,0,0,0, 0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, -0x19,0x19,0x19,0x19,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -6,7,7,7,7,6,7,7,7,6,6,6,6,6,6,6, -6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1, -1,1,0x1b,2,1,1,1,1,2,5,5,5,5,2,0x1b,0x1b, -2,2,1,1,0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18, -0x1b,0x1b,2,0x1b,0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb, -0x3dcb,0x45cb,0x4dcb,0x58b,0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1, -1,1,2,2,1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1, -1,1,0x1b,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -0x11ca,0x1e4a,0x980a,0x784a,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a, -0x11ca,0x1e4a,0x980a,0x784a,0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b, -0,0,0,0,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b, +0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19,0x19, +0x19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,6,6,6,7,7,7, +7,6,7,7,7,6,6,6,6,6,6,6,6,6,6,6, +6,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,1,0x1b,1,0x1b,1,0x1b,1,1,1,1,0x1b,2, +1,1,1,1,2,5,5,5,5,2,0x1b,0x1b,2,2,1,1, +0x18,0x18,0x18,0x18,0x18,1,2,2,2,2,0x1b,0x18,0x1b,0x1b,2,0x1b, +0x358b,0x360b,0x364b,0x348b,0x388b,0x350b,0x390b,0x3d0b,0x410b,0x354b,0x454b,0x35cb,0x3dcb,0x45cb,0x4dcb,0x58b, +0x1b,0x1b,1,0x1b,0x1b,0x1b,0x1b,1,0x1b,0x1b,2,1,1,1,2,2, +1,1,1,2,0x1b,1,0x1b,0x1b,0x18,1,1,1,1,1,0x1b,0x1b, +0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, +0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x7ca,0x80a,0x84a,0x11ca,0x1e4a,0x980a,0x784a, +0x784a,0x984a,0x788a,1,2,0x6ca,0x11ca,0x988a,0x78ca,0x54b,0x1b,0x1b,0,0,0,0, +0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18, +0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18, +0x1b,0x1b,0x18,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b, +0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -0xa4b,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x2cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b, +0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x2cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb, +0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b,0x30b,0x34b,0x38b,0x3cb, 0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0xa4b, -0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b, -0x98b,0x9cb,0xa0b,0xa4b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -0x14,0x15,0x14,0x15,0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b, -0x48b,0x4cb,0x50b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14, +0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, +0x14,0x15,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb, +0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18, +0x18,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15, +0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15,0x14, 0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, -0x15,0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x14,0x15,0x14,0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x15,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x14,0x15, 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x14,0x15,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x14,0x15,0x18,0x18, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,2,1,1,1,2,2,1, -2,1,2,1,2,1,1,1,1,2,1,2,2,1,2,2, -2,2,2,2,4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,1,2,1,2,6,6,6,1,2,0,0,0,0, -0,0x17,0x17,0x17,0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2, -0,0,0,0,0,2,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,4, -0x17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,6, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,0,5,5,5,5,5,5,5,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, -0x17,0x17,0x1c,0x1d,0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17, -0x1c,0x1d,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17, -0x13,0x17,0x14,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x1b,0x1b,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, +0x18,0x1b,0x1b,0x18,0x18,0x18,0x18,0x18,0x18,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0,0,0,0,0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6, -6,6,8,8,0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4, -5,0x17,0x1b,0x1b,0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15, -0x14,0x15,0x14,0x15,0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, -0x13,0x14,0x15,0x15,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,6,6,0x1a, -0x1a,4,4,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x17, -4,4,4,5,0,0,0,0,0,5,5,5,5,5,5,5, +0x1b,0x1b,0x1b,0x1b,1,2,1,1,1,2,2,1,2,1,2,1, +2,1,1,1,1,2,1,2,2,1,2,2,2,2,2,2, +4,4,1,1,1,2,1,2,2,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,1, +2,1,2,6,6,6,1,2,0,0,0,0,0,0x17,0x17,0x17, +0x17,0x344b,0x17,0x17,2,2,2,2,2,2,0,2,0,0,0,0, +0,2,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0,0,0,0,0,0,0,4,0x17,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,6,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b, +5,5,5,0,0,0,0,0,0,0,0,0,0x17,0x17,0x1c,0x1d, +0x1c,0x1d,0x17,0x17,0x17,0x1c,0x1d,0x17,0x1c,0x1d,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x13,0x17,0x17,0x13,0x17,0x1c,0x1d,0x17,0x17,0x1c,0x1d,0x14,0x15, +0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x17,0x17,4,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x13,0x13,0x17,0x17,0x17,0x17,0x13,0x17,0x14,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x17,0x17, +0x17,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b, -0xb4b,0xb8b,0xbcb,0xc0b,0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb, -0xf0b,0xf4b,0xf8b,0xfcb,0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,5,5,5,5, -5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x5c5, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0, +0x1b,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,6,6,6,6,8,8, +0x13,4,4,4,4,4,0x1b,0x1b,0x7ca,0xa4a,0xcca,4,5,0x17,0x1b,0x1b, +0xc,0x17,0x17,0x17,0x1b,4,5,0x54a,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15, +0x14,0x15,0x1b,0x1b,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x13,0x14,0x15,0x15, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,0,6,6,0x1a,0x1a,4,4,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x685,5, +5,5,5,5,5,5,5,5,5,5,5,0x17,4,4,4,5, +0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x705,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x585,5,5,0x705,5,5,5,0x7885, -5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x785,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x5c5,5,5,5,5,5,5,5,0x685,5,0x645,5,5,5,5,5, +0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1b,0xa8b,0xacb,0xb0b,0xb4b,0xb8b,0xbcb,0xc0b, +0xc4b,0xc8b,0xccb,0xd0b,0xd4b,0xd8b,0xdcb,0xe0b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0xe4b,0xe8b,0xecb,0xf0b,0xf4b,0xf8b,0xfcb, +0x100b,0x104b,0x108b,0x10cb,0x110b,0x114b,0x118b,0x11cb,5,5,5,5,5,0x685,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0x7985,0x7c5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0x7845,5,5,5,5, -5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0x685,5,5, +5,5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x1e45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x7985,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7a85,5, +5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0x585,5,5,0x705,5,5,5,0x7885,5,0x605,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x5c5,5,0x745,5,0x6c5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5, +5,5,5,5,0x685,5,0x645,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x7c5,5,0x7845,0xa45,0xcc5,5,5,5,5,5,5,0xf45,5,5,5, +5,5,5,5,5,5,5,0x7985,0x7c5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x605,0x605,0x605,0x605,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5,5,5, +0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x7985,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x585,5,5,5,5,5,5,5,0x585,5,5, +5,5,5,5,5,5,5,5,5,5,0x7a85,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0x585,5,5,5,5,5, +5,5,5,5,5,0x5c5,5,0x745,5,0x6c5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5,0x7845, +0xa45,0xcc5,5,5,5,5,5,5,0xf45,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,0x605,0x605, +0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x645, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0x785,0xa45,5,5,5,5, -5,5,5,5,5,5,5,5,0x585,0x5c5,0x605,5,0x5c5,5,5,5, +5,0x585,5,5,5,5,5,5,5,0x585,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x7c5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x745,5,5,5, +5,5,5,5,5,5,0x585,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x705,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x785,5, +5,5,5,5,5,5,0x785,0xa45,5,5,5,5,5,5,5,5, +5,5,5,5,0x585,0x5c5,0x605,5,0x5c5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1e45,5, -5,5,5,5,5,5,0x645,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x745,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x705,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x7885,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0x5c5,5,5,5,5,0x5c5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x5c5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,0x7845,5,5, +5,5,5,5,5,5,5,5,5,5,0x785,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5, -5,5,5,5,0x1e45,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x1e45,5,5,5,5,5, +5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x7885,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x6c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0x545,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5, +5,5,0x5c5,5,5,5,5,0x5c5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x5c5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x7845,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,4,5,5,5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,4,0x17,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5, +0x1e45,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,0x545,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,4,5,5, +5,5,5,5,5,5,5,5,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,4,0x17,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,2,1,2, 1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,2,1,2,1,2,4,4,6,6, -1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,6, -7,7,7,0x17,6,6,6,6,6,6,6,6,6,6,0x17,4, -5,5,5,5,5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a, -6,6,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, +1,2,1,2,1,2,1,2,4,4,6,6,1,2,1,2, +1,2,1,2,1,2,1,2,1,2,5,6,7,7,7,0x17, +6,6,6,6,6,6,6,6,6,6,0x17,4,5,5,5,5, +5,5,0x58a,0x5ca,0x60a,0x64a,0x68a,0x6ca,0x70a,0x74a,0x78a,0x54a,6,6,0x17,0x17, +0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0x1a,0x1a,0x1a,0x1a, 0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,1,2,5,4,4,2,5,5,5,5,5, -0x1a,0x1a,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -2,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, -1,2,1,2,4,2,2,2,2,2,2,2,2,1,2,1, -2,1,1,2,1,2,1,2,1,2,1,2,4,0x1a,0x1a,1, -2,1,2,5,1,2,1,2,2,2,1,2,1,2,1,2, -1,2,1,2,1,2,1,1,1,1,1,2,1,1,1,1, -1,2,1,2,1,2,1,2,1,2,1,2,0,0,1,2, -1,1,1,1,2,1,2,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,6,5, -5,5,6,5,5,5,5,6,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -8,6,6,8,0x1b,0x1b,0x1b,0x1b,6,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb, -0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,8,8,8,8, -6,6,0,0,0,0,0,0,0,0,0x17,0x17,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,8,8,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,8, -8,8,8,8,8,8,8,8,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,5,5,5,5,5,5, -0x17,0x17,0x17,5,0x17,5,5,6,5,5,5,5,5,5,6,6, -6,6,6,6,6,6,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -6,6,6,6,6,6,8,8,0,0,0,0,0,0,0,0, -0,0,0,0x17,8,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0,4,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,6,8,8,6,6,6,6,8,8, -6,6,8,8,5,5,5,5,5,6,4,5,5,5,5,5, -5,5,5,5,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,5, -5,5,5,0,5,5,5,5,5,5,5,5,5,6,6,6, -6,6,6,8,8,6,6,8,8,6,6,0,0,0,0,0, -0,0,0,0,5,5,5,6,5,5,5,5,5,5,5,5, -6,8,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,4,5,5,5,5,5,5,0x1b,0x1b,0x1b,5,8, -6,8,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,6,5,6,6,6,5,5,6,6,5,5,5, -5,5,6,6,5,6,5,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5, -5,4,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,8, -6,6,8,8,0x17,0x17,5,4,4,8,6,0,0,0,0,0, -0,0,0,0,0,5,5,5,5,5,5,0,0,5,5,5, -5,5,5,0,0,5,5,5,5,5,5,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,0,5,5,5,5, -5,5,5,0,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x1a, -4,4,4,4,2,2,2,2,2,2,2,2,2,4,0x1a,0x1a, -0,0,0,0,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,5,5,5,8,8,6,8,8,6,8,8,0x17, -8,6,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, -0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, +0x1a,0x1a,0x1a,4,4,4,4,4,4,4,4,4,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4, +4,1,2,5,4,4,2,5,5,5,5,5,0x1a,0x1a,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,2,2,1,2, +1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2, +4,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2, +1,2,1,2,1,2,1,2,4,0x1a,0x1a,1,2,1,2,5, +1,2,1,2,2,2,1,2,1,2,1,2,1,2,1,2, +1,2,1,1,1,1,1,2,1,1,1,1,1,2,1,2, +1,2,1,2,1,2,1,2,1,1,1,1,2,1,2,0, +0,0,0,0,1,2,0,2,0,2,1,2,1,2,0,0, +0,0,0,0,5,5,6,5,5,5,6,5,5,5,5,6, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,8,8,6,6,8,0x1b,0x1b,0x1b,0x1b, +6,0,0,0,0x34cb,0x344b,0x3ccb,0x37cb,0x35cb,0x3fcb,0x1b,0x1b,0x19,0x1b,0,0, 0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0x17,0x17,0x17,0x17,0,0,0,0, +0,0,0,0,8,8,8,8,6,6,0,0,0,0,0,0, +0,0,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,8,8,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,0,0,5,5,5,5,5,5,5,0,0,0,0,5, +5,5,5,5,8,8,8,8,8,8,8,8,8,8,8,8, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,5,5,5,5,5,5,0x17,0x17,0x17,5,0x17,5,5,6, +5,5,5,5,5,5,6,6,6,6,6,6,6,6,0x17,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,6,6,6,6,6,6,6,6,6,6,6,8,8, +0,0,0,0,0,0,0,0,0,0,0,0x17,8,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,4,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, +8,8,6,6,6,6,8,8,6,6,8,8,5,5,5,5, +5,6,4,5,5,5,5,5,5,5,5,5,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,5,5,5,5,5,0,5,5,5,5, +5,5,5,5,5,6,6,6,6,6,6,8,8,6,6,8, +8,6,6,0,0,0,0,0,0,0,0,0,5,5,5,6, +5,5,5,5,5,5,5,5,6,8,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0x17,0x17,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,4,5,5,5, +5,5,5,0x1b,0x1b,0x1b,5,8,6,8,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,6,5,6,6, +6,5,5,6,6,5,5,5,5,5,6,6,5,6,5,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,5,5,4,0x17,0x17,5,5,5,5, +5,5,5,5,5,5,5,8,6,6,8,8,0x17,0x17,5,4, +4,8,6,0,0,0,0,0,0,0,0,0,0,5,5,5, +5,5,5,0,0,5,5,5,5,5,5,0,0,5,5,5, +5,5,5,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,0,5,5,5,5,5,5,5,0,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,0x1a,4,4,4,4,2,2,2,2, +2,2,2,2,2,4,0x1a,0x1a,0,0,0,0,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,5,5,5,8, +8,6,8,8,6,8,8,0x17,8,6,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, +5,5,5,5,5,5,5,5,0,0,0,0,5,5,5,5, +5,5,5,0,0,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0x12,0x12,0x12,0x12, 0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12, -0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, +0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x12,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,5,5,5,5,5,5,5,5,5,5,5,0x605, -5,5,5,5,5,5,5,0x7c5,5,5,5,5,0x5c5,5,5,5, +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,5,5,5,5, +5,5,5,5,5,5,5,0x605,5,5,5,5,5,5,5,0x7c5, +5,5,5,5,0x5c5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,0x6c5,5,0x6c5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x6c5,5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x7c5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x18,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,5,5,5,5,5,0,5,0,5,5,0,5, -5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,2,2,2,2, -2,2,2,0,0,0,0,0,0,0,0,0,0,0,0,2, -2,2,2,2,0,0,0,0,0,5,6,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1a,0x1a, -0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x15,0x14, +5,5,5,5,5,5,5,5,5,0x7c5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x18,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, +5,0,5,0,5,5,0,5,5,0,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,2,2,2,2,2,2,2,0,0,0,0,0, +0,0,0,0,0,0,0,2,2,2,2,2,0,0,0,0, +0,5,6,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a, +0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0x1a,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0x15,0x14,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0x1b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,0x19,0x1b,0x1b,0x1b, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14,0x15,0x17,0,0,0,0,0,0, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14, +0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17,0x17,0x16,0x16,0x16,0x17,0x17,0x17,0, +0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13, +0x18,0x18,0x18,0,0x17,0x19,0x17,0x17,0,0,0,0,5,5,5,5, +5,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,0x19,0x1b,0,0,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x14, -0x15,0x17,0,0,0,0,0,0,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,0x17,0x13,0x13,0x16,0x16,0x14,0x15,0x14, -0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x14,0x15,0x17,0x17,0x14,0x15,0x17,0x17,0x17, -0x17,0x16,0x16,0x16,0x17,0x17,0x17,0,0x17,0x17,0x17,0x17,0x13,0x14,0x15,0x14, -0x15,0x14,0x15,0x17,0x17,0x17,0x18,0x13,0x18,0x18,0x18,0,0x17,0x19,0x17,0x17, -0,0,0,0,5,5,5,5,5,0,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,0,0x10,0,0,5,5, +5,0,0,0x10,0,0,5,5,5,5,5,5,0,0,5,5, 5,5,5,5,0,0,5,5,5,5,5,5,0,0,5,5, -5,5,5,5,0,0,5,5,5,0,0,0,0x19,0x19,0x18,0x1a, -0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18,0x18,0x1b,0x1b,0,0,0,0,0, -0,0,0,0,0,0x10,0x10,0x10,0x1b,0x1b,0,0,0,0x17,0x17,0x17, -0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18,0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x18,0x18,0x18,0x17,0x1a,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0x14,0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15, -0x17,0x17,5,5,5,5,5,5,5,5,5,5,4,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,4,4, -5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,5,5,0,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,5,5,5,5, +5,0,0,0,0x19,0x19,0x18,0x1a,0x1b,0x19,0x19,0,0x1b,0x18,0x18,0x18, +0x18,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10, +0x1b,0x1b,0,0,0,0x17,0x17,0x17,0x19,0x17,0x17,0x17,0x14,0x15,0x17,0x18, +0x17,0x13,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17, +0x18,0x18,0x18,0x17,0x1a,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,0x14, +0x18,0x15,0x18,0x14,0x15,0x17,0x14,0x15,0x17,0x17,5,5,5,5,5,5, +5,5,5,5,4,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,0,0xb00b,0xb80b,0x784b,0x804b, -0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b, -0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0, -0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b, -0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca, -0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a,0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a, -0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a, -0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca, -0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a,0x1b,0,0,0,0,0,0,0, +5,5,5,5,5,5,4,4,5,5,5,5,5,5,5,5, +5,5,5,5,0,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, +0,0,0,0,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b, +0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x17,0x17,0x17,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b, +0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b, +0x900b,0x980b,0xa00b,0xa80b,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xcca,0x11ca,0x11ca,0x11ca,0x11ca,0x1e4a,0x880a, +0x980a,0x980a,0x980a,0x980a,0x980a,0x784a,0x984a,0x68a,0x11ca,0x344b,0x344b,0x388b,0x3ccb,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x54b,0x34cb,0x1b,0x1b,0x1b,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0x34ca,0x344a,0x58a,0x68a,0x11ca,0x980a,0x984a,0x988a,0x68a,0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x984a,0x68a, +0x7ca,0x11ca,0x1e4a,0x980a,0x784a,0x788a,0x988a,0x7ca,0x58a,0x58a,0x58a,0x5ca,0x5ca,0x5ca,0x5ca,0x68a, +0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,6,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, -0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b, -0xa00b,0xa80b,0xb00b,0xb80b,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0,0,0,0, -0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x1bca,5,5,5,5,5,5, -5,5,0xb80a,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,6,6, -6,6,6,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0x17,5,5,5,5,0,0,0,0, -5,5,5,5,5,5,5,5,0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0, -2,2,2,2,2,2,2,2,5,5,5,5,5,5,5,5, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, -0,0,0,0x17,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,5,5,0,0,0, -5,0,0,5,5,5,5,5,5,5,0,0,5,0,5,5, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,0x17,0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b, +5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +6,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, +0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0,0,0,0, +0x58b,0x68b,0x7cb,0x11cb,0,0,0,0,0,0,0,0,0,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,0x1b,0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b, -0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,0x1bca,5,5,5,5,5,5,5,5,0xb80a,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,0,5,5,0,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b, +5,5,5,5,5,5,6,6,6,6,6,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0x58b,0x7cb,0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, +5,5,5,5,0,0,0,0,5,5,5,5,5,5,5,5, +0x17,0x58a,0x5ca,0x7ca,0xa4a,0x1e4a,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0x17, -0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb, -0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b,0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,0,0,0,0,2,2,2,2,2,2,2,2, +5,5,5,5,5,5,5,5,0,0,0,0,0,0,0,0, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,0,0,0,0x5ecb,0x344b,5,5, -0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, -0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b, -0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b,0x344b,0,0,0,0,0,0,0, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0, -5,6,6,6,0,6,6,0,0,0,0,0,6,6,6,6, -5,5,5,5,0,5,5,5,0,5,5,5,5,5,5,5, +0,0,0,0,0,0,0,0,0,0,0,0x17,1,1,1,1, +1,1,1,1,1,1,1,0,1,1,1,1,2,2,0,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,0,2, +2,2,2,2,2,2,0,2,2,0,0,0,1,1,1,1, +1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,0, +1,1,0,2,2,2,2,2,2,2,2,2,5,5,5,5, +5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,0,4,4, +4,4,4,4,4,4,4,0,0,0,0,0,4,4,4,4, +4,4,0,4,4,4,4,4,4,4,4,4,4,4,4,4, +4,4,4,4,4,4,4,4,4,4,4,4,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,0,5,5,0,0,0,5,0,0,5,5,5,5,5, +5,5,0,0,5,0,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0x17, +0x58b,0x5cb,0x60b,0x7cb,0xa4b,0x1e4b,0x784b,0x788b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x1b, +0x1b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0,0,0,0,0,0,0,0x58b, +0x5cb,0x60b,0x64b,0x64b,0x68b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,5,0,0, +0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x7cb, +0xa4b,0x1e4b,0x5cb,0x60b,0,0,0,0x17,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,0,0,6,6,6,0,0,0,0,6,5,5,5,5, +5,5,0,0,0,0,0,0x17,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b,0x908b, +0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x88cb,0x90cb,0x98cb,0xa0cb,0xa8cb,0xb0cb,0xb8cb,0x36cb,0x354b, +0x34cb,0x348b,0x46cb,0x344b,0x4ecb,0x388b,0x3ccb,0x454b,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x58b,0x11cb,0x17,5,5,5,5, +0,0,0,0,0x5ecb,0x344b,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, +0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0,0,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, +0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0x30b,0x34b,0x38b,0x3cb,0x7cb,0xa4b,0x1e4b,0x784b, +0x344b,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0,0,0,0,0,0,0,5,6,6,6,0,6,6,0, +0,0,0,0,6,6,6,6,5,5,5,5,0,5,5,5, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,0, +0,0,0,6,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x58b,0x7cb,0xa4b,5,5,5,5, -5,6,6,0,0,0,0,0x58b,0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,0x1b,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, -0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,0, -0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,0,0,0,0, -0,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, -0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0, -0,0,0,0,0,0,0,0,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,0,0,0,0,0, -0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b,5,5,5,5,6,6,6,6, -0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb, -0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b, -0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0,5,5,5,5,5,5,5,5, -5,5,0,6,6,0x13,0,0,5,5,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,0x58b,0x11cb,0x17,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,6,6,6,6,6,6, -6,6,6,6,6,0x58b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0, -0,0,0,0,5,5,5,5,5,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,6,8,6,8,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0,0,0,0,0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb, -0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,8,8,8,6,6,6,6,8,8,6,6,0x17, -0x17,0x10,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, -0,0x10,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, -5,5,5,6,6,6,6,6,8,6,6,6,6,6,6,6, -6,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17, -5,8,8,5,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,5, +5,0x58b,0x7cb,0xa4b,5,5,5,5,5,6,6,0,0,0,0,0x58b, +0x68b,0x7cb,0xa4b,0x1e4b,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,0x1b,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,6, -0x17,0x17,5,0,0,0,0,0,0,0,0,0,8,5,5,5, -5,0x17,0x17,0x17,0x17,6,6,6,6,0x17,8,6,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17,5,0x17,0x17,0x17,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -8,8,6,6,6,6,6,6,6,6,6,8,0,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, -0x784b,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,8,8, -6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,6,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -5,0,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, -5,0x17,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, -6,6,6,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0,5,5,8,8,0,0,6,6, -6,6,6,6,6,0,0,0,6,6,6,6,6,0,0,0, -0,0,0,0,0,0,0,0,6,6,8,8,0,5,5,5, -5,5,5,5,5,0,0,5,5,0,0,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0,5,5,5,5,5,5, -5,0,5,5,0,5,5,5,5,5,0,6,6,5,8,8, -6,8,8,8,8,0,0,8,8,0,0,8,8,8,0,0, -5,0,0,0,0,0,0,8,0,0,0,0,0,5,5,5, +5,5,5,5,5,5,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,8,8,8,6,6,6,6,6,6,6,6, -8,8,6,6,6,8,6,5,5,5,5,0x17,0x17,0x17,0x17,0x17, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x17,0x17,0,0x17,6,5, -5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -8,8,8,6,6,6,6,6,6,8,6,8,8,8,8,6, -6,8,6,6,5,5,0x17,5,0,0,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,8, -8,8,6,6,6,6,0,0,8,8,8,8,6,6,8,6, -6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,5,5,5,5,6,6,0,0, +5,5,5,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0x784b, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -8,8,8,6,6,6,6,6,6,6,6,8,8,6,8,6, -6,0x17,0x17,0x17,5,0,0,0,0,0,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0, +5,5,0,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0,0,0, +0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,6,8,6,8,8, -6,6,6,6,6,6,8,6,5,0,0,0,0,0,0,0, -8,8,6,6,6,6,8,6,6,6,6,6,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,0,0,0,0,0,0,0,0x58b,0x68b,0x7cb,0x11cb,0x1e4b,0x784b, +5,5,5,5,6,6,6,6,0,0,0,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, +0x30b,0x34b,0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb, +0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x344b,0x34cb,0x348b,0x388b,0, +5,5,5,5,5,5,5,5,5,5,0,6,6,0x13,0,0, +5,5,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x58b,0x5cb,0x60b, +0x64b,0x68b,0x7cb,0xa4b,0xccb,0x1e4b,0x344b,5,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,6,6,6,6,6,6,6,6,6,6,6,0x58b,0x7cb,0xa4b, +0x1e4b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,5,5,6,6, +6,6,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,0x58b,0x5cb,0x60b,0x64b,0x7cb,0xa4b,0x1e4b,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x144b,0x16cb,0x194b,0x1bcb, +0x1e4b,0x784b,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,6,5,5,6, +6,5,0,0,0,0,0,0,0,0,0,6,8,6,8,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, +6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0x30b,0x34b, +0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,8,8,8,6, -6,6,6,6,6,6,6,6,8,6,6,0x17,0,0,0,0, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b, -0x16cb,0x194b,0x1bcb,0,0,0,0,0,0,0,0,0,0,0,0,5, -8,5,8,6,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0, +6,6,6,8,8,6,6,0x17,0x17,0x10,0x17,0x17,0x17,0x17,6,0, +0,0,0,0,0,0,0,0,0,0x10,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0,0,0, +0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0, +0,0,0,0,5,5,5,5,5,5,5,6,6,6,6,6, +8,6,6,6,6,6,6,6,6,0,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0x17,0x17,0x17,0x17,5,8,8,5,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,6,6,6,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,6,0x17,0x17,5,0,0,0,0,0, +0,0,0,0,8,5,5,5,5,0x17,0x17,0x17,0x17,6,6,6, +6,0x17,8,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,5,0x17, +5,0x17,0x17,0x17,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,8,8,8,6,6,6,6,6,6, +6,6,6,8,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b, +0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x784b,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +8,8,8,6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,0x17, +0x17,0x17,6,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,5,0,5,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,5, +5,5,5,5,5,5,5,5,5,0x17,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +8,8,8,6,6,6,6,6,6,6,6,0,0,0,0,0, 0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0, -5,5,5,5,5,5,5,0,0,5,0,0,5,5,5,5, -5,5,5,5,0,5,5,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,8,8,8,8,8,8,0,8, -8,0,0,6,6,8,6,5,6,5,0x17,5,8,0,0,0, +5,5,8,8,0,0,6,6,6,6,6,6,6,0,0,0, +6,6,6,6,6,0,0,0,0,0,0,0,0,0,0,0, +6,6,8,8,0,5,5,5,5,5,5,5,5,0,0,5, +5,0,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,0,5,5,5,5,5,5,5,0,5,5,0,5,5,5, +5,5,0,6,6,5,8,8,6,8,8,8,8,0,0,8, +8,0,0,8,8,8,0,0,5,0,0,0,0,0,0,8, +0,0,0,0,0,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,8,8,8, +6,6,6,6,6,6,6,6,8,8,6,6,6,8,6,5, +5,5,5,0x17,0x17,0x17,0x17,0x17,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x17,0x17,0,0x17,6,5,5,5,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -0,0,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,8,8,8,6,6,6,6, -0,0,6,6,8,8,8,8,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,6,6,6,6,6, -6,8,5,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,6, -0,0,0,0,0,0,0,0,5,6,6,6,6,6,6,8, -8,6,6,6,5,5,5,5,5,6,6,6,6,6,6,6, -6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0x17,0x17,0x17,0,0,0,0,0, +5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, +6,8,6,8,8,8,8,6,6,8,6,6,5,5,0x17,5, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,8,8,8,6,6,6,6,0,0, +8,8,8,8,6,6,8,6,6,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +5,5,5,5,6,6,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,8,8,8,6,6,6,6,6, +6,6,6,8,8,6,8,6,6,0x17,0x17,0x17,5,0,0,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,0x17,0x17,0x17,0x17,0x17,0x17,0x17,0x17, +0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,6,8,6,8,8,6,6,6,6,6,6,8,6, +5,0x17,0,0,0,0,0,0,8,8,6,6,6,6,8,6, +6,6,6,6,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x7cb,0xa4b,0x17,0x17,0x17,0x1b,5,5,5,5,5,5,5,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,8,8,8,6,6,6,6,6,6,6,6,6, +8,6,6,0x17,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0,0,0,0,0, +0,0,0,0,0,0,0,5,8,5,8,6,0x17,0x17,0x17,0, +0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, +0x249,0x289,0,0,0,0,0,0,5,5,5,5,5,5,5,0, +0,5,0,0,5,5,5,5,5,5,5,5,0,5,5,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +8,8,8,8,8,8,0,8,8,0,0,6,6,8,6,5, +6,5,0x17,5,8,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,0,0,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,8,8,8,6,6,6,6,0,0,6,6,8,8,8,8, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,6,6,6,6,6,6,8,5,6,6,6,6,0x17, +0x17,0x17,0x17,0x17,0x17,0x17,0x17,6,0,0,0,0,0,0,0,0, +5,6,6,6,6,6,6,8,8,6,6,6,5,5,5,5, +5,6,6,6,6,6,6,6,6,6,6,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0x17,0x17,0x17,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,6,6,6,6,6,6,6,6,6,6,6,6,6,8, 6,6,0x17,0x17,0x17,5,0x17,0x17,5,0x17,0x17,0x17,0x17,0x17,0,0, 0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, @@ -1201,140 +1213,152 @@ static const uint16_t propsTrie_index[22276]={ 0x68a,0x68a,0x5ca,0x60a,0x58a,0x5ca,0x348a,0x388a,0x454a,0x348a,0x388a,0x35ca,5,5,5,5, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0,0x10,0x10,0x10,0x10, -0x10,0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0,0,6,6,6,6, -6,0x17,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x17,0x17,0, 0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,6,6,6,6, -6,6,6,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b,4,4,4,4, -0x17,0x1b,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b,0x7a0b,0x7a8b,0,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0,5,5,5,0x54b,0x58b,0x5cb,0x60b, -0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b, -0x58b,0x5cb,0x60b,0x17,0x17,0x17,0x17,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,0,0,0,0,6,5,8,8,8, -8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, +5,5,5,5,5,5,5,5,5,5,5,0,0x10,0x10,0x10,0x10, +0x10,0x10,0x10,0x10,0x10,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,0,0, +6,6,6,6,6,0x17,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +6,6,6,6,6,6,6,0x17,0x17,0x17,0x17,0x17,0x1b,0x1b,0x1b,0x1b, +4,4,4,4,0x17,0x1b,0,0,0,0,0,0,0,0,0,0, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0,0x7cb,0x1e4b,0x788b,0x790b,0x798b, +0x7a0b,0x7a8b,0,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5, +0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b, +0x94b,0x98b,0x9cb,0xa0b,0x58b,0x5cb,0x60b,0x17,0x17,0x17,0x17,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,0,0,0,0,6, +5,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8, -0,0,0,0,0,0,0,6,6,6,6,4,4,4,4,4, -4,4,4,4,4,4,4,4,4,4,0x17,4,6,0,0,0, -0,0,0,0,0,0,0,0,8,8,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, +8,8,8,8,0,0,0,0,0,0,0,6,6,6,6,4, +4,4,4,4,4,4,4,4,4,4,4,4,4,4,0x17,4, +6,0,0,0,0,0,0,0,0,0,0,0,8,8,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,4,4,4,4,0,4,4,4,4,4,4,4, +0,4,4,0,5,5,5,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,0,0,0,0,0,0,0,0,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,0, -0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10,0,0,0,0, +0,0,0,0,5,5,5,0,0,0,0,0,0,0,0,0, +0,0,0,0,5,5,5,5,0,0,0,0,0,0,0,0, +5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,0,0,0,0,0,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,0,0,0x1b,6,6,0x17,0x10,0x10,0x10,0x10, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b, -0x1b,8,8,8,8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6, -6,6,6,6,6,6,6,0x1b,0x1b,6,6,6,6,6,6,6, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x1b,0x1b,6,6,6,0x1b,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0, +0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,8,8,6,6,6,0x1b,0x1b,0x1b,8,8,8, +8,8,8,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,6,6,6,6,6, +6,6,6,0x1b,0x1b,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,6,6,6,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,6,6,0x1b,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0x80b, -0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0,0,0,0,0,0,0,0, -0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb, -0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb,0x60b,0x64b,0x68b,0x58b,0x68b,0,0,0, -0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, -0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189, -0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,2,2,2,2,2,2,2,0,2,2,2,2,2,2, -2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,1,0,1,1,0,0,1,0, -0,1,1,0,0,1,1,1,1,0,1,1,1,1,1,1, -1,1,2,2,2,2,0,2,0,2,2,2,2,2,2,2, -0,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -1,1,0,1,1,1,1,0,0,1,1,1,1,1,1,1, -1,0,1,1,1,1,1,1,1,0,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,1,1,0,1,1,1,1,0,1,1,1,1, -1,0,1,0,0,0,1,1,1,1,1,1,1,0,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, +0,0,0,0,0,0,0,0,0x54b,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, +0x74b,0x78b,0x7cb,0x80b,0x84b,0x88b,0x8cb,0x90b,0x94b,0x98b,0x9cb,0xa0b,0,0,0,0, +0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b, +0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x58b,0x5cb,0x60b,0x64b,0x68b,0x58b, +0x68b,0,0,0,0,0,0,0,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189, +0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89, +0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,2,2,2,2,2,2,2,0,2,2, +2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2, -2,2,0,0,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,1,1,1,1,1,1,0x18,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,1,0,1,1, +0,0,1,0,0,1,1,0,0,1,1,1,1,0,1,1, +1,1,1,1,1,1,2,2,2,2,0,2,0,2,2,2, +2,2,2,2,0,2,2,2,2,2,2,2,2,2,2,2, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,1,1,0,1,1,1,1,0,0,1,1,1, +1,1,1,1,1,0,1,1,1,1,1,1,1,0,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,0x18,2,2,2,2,2,2,1,1, +2,2,2,2,2,2,2,2,1,1,0,1,1,1,1,0, +1,1,1,1,1,0,1,0,0,0,1,1,1,1,1,1, +1,0,2,2,2,2,2,2,2,2,2,2,2,2,2,2, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,1,1,1,0x18,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,2,2,2,2,2,0x18,2,2, -2,2,2,2,1,1,1,1,1,1,1,1,1,1,1,1, -1,1,1,1,2,2,2,0x18,2,2,2,2,2,2,1,2, -0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289,0x49,0x89,0xc9,0x109, -0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b,0x1b,6, -6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,6,6,6,6,6,6,6,6,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,0,0,6,6,6,6,6,6,6,0,6,6,0,6,6, -6,6,6,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,5,0x1b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,5,0,0,0,6,6,6,6,6,6,6,4, -4,4,4,4,4,4,0,0,5,5,5,5,5,5,5,5, -5,5,5,5,6,6,6,6,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0,0x19,5,5,5,5,5,0,0,0x58b, -0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6,6,6,6,0, -0,0,0,0,0,0,0,0,2,2,2,2,6,6,6,6, -6,6,6,4,0,0,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209, -0x249,0x289,0,0,0,0,0x17,0x17,1,1,2,2,2,2,2,2, +1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, -2,2,2,2,2,2,2,2,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, -0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x78cb,0x794b,0x814b,0x58b,0x5cb,0x60b,0x64b,0x68b, -0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb,0x19,0x58b,0x5cb,0x788b,0x78cb,0,0,0, -0,0,0,0,0,0,0,0,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b, -0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b, -0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x984b,0xa04b,0xa84b,0xb04b,0xb84b,0x788b,0x808b,0x888b, -0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x1b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb, -0x900b,0xa00b,0x804b,0x788b,0x344b,0x354b,0,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b, -0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b,0x800b,0x880b,0x900b,0x980b, -0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x18,0x18,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,5,5,5,5,0,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,0,5,5,0,5,0,0,5, -0,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, -0,5,0,5,0,0,0,0,0,0,5,0,0,0,0,5, -0,5,0,5,0,5,5,5,0,5,5,0,5,0,0,5, -0,5,0,5,0,5,0,5,0,5,5,0,5,0,0,5, -5,5,5,0,5,5,5,5,5,5,5,0,5,5,5,5, -0,5,5,5,5,0,5,0,5,5,5,5,5,5,5,5, -5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0,5,5,5,0,5,5,5, -5,5,0,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0x1b,0x1b,0x1b, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +2,2,2,2,2,2,0,0,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,0x18,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,0x18,2,2,2,2, +2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,1,1,1,0x18,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,0x18,2,2,2,2,2,2,1,1,1,1,1,1,1,1, +1,1,1,1,1,1,1,1,2,2,2,0x18,2,2,2,2, +2,2,1,2,0,0,0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0x249,0x289, +0x49,0x89,0xc9,0x109,0x149,0x189,0x1c9,0x209,0,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0x1b, +0x1b,0x1b,0x1b,6,6,6,6,6,6,6,6,6,6,6,6,6, +6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,6,0x1b,0x1b,0x17,0x17,0x17,0x17,0x17,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,6,6,6,6,6, +6,6,6,0,6,6,6,6,6,6,6,6,6,6,6,6, +6,6,6,6,6,0,0,6,6,6,6,6,2,2,2,2, +2,2,2,2,2,2,5,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,0,6,6,0,6, +6,0,6,6,6,6,6,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,5,0x1b,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,0,0,0,6,6,6,6, +6,6,6,4,4,4,4,4,4,4,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,6,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +5,5,5,5,5,5,5,5,6,6,6,6,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0,0x19,5,5,5,5, +5,5,5,0,5,5,5,5,0,5,5,0,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,0,5,5,5,5, +5,0,0,0x58b,0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,6,6,6,6, +6,6,6,0,0,0,0,0,0,0,0,0,2,2,2,2, +6,6,6,6,6,6,6,4,0,0,0,0,0x49,0x89,0xc9,0x109, +0x149,0x189,0x1c9,0x209,0x249,0x289,0,0,0,0,0x17,0x17,1,1,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2, +2,2,2,2,2,2,2,2,2,2,2,2,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0x58b,0x5cb,0x60b, +0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x78cb,0x794b,0x814b,0x58b, +0x5cb,0x60b,0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x1b,0x34cb,0x344b,0x3ccb,0x19,0x58b,0x5cb,0x788b, +0x78cb,0,0,0,0,0,0,0,0,0,0,0,0x16cb,0x194b,0x1bcb,0x1e4b, +0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0x984b,0xa04b,0xa84b,0xb04b, +0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x78cb,0x80cb,0x984b,0xa04b,0xa84b,0xb04b, +0xb84b,0x788b,0x808b,0x888b,0x908b,0x988b,0xa08b,0xa88b,0xb08b,0xb88b,0x1b,0x5cb,0x60b,0x64b,0x68b,0x6cb, +0x70b,0x74b,0x78b,0x7cb,0x900b,0xa00b,0x804b,0x788b,0x344b,0x354b,0,0,0,0x58b,0x5cb,0x60b, +0x64b,0x68b,0x6cb,0x70b,0x74b,0x78b,0x7cb,0xa4b,0xccb,0xf4b,0x11cb,0x144b,0x16cb,0x194b,0x1bcb,0x1e4b, +0x800b,0x880b,0x900b,0x980b,0xa00b,0xa80b,0xb00b,0xb80b,0x784b,0x804b,0x884b,0x904b,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x18,0x18,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,5,5,5,5, +0,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0,5,5,0, +5,0,0,5,0,5,5,5,5,5,5,5,5,5,5,0, +5,5,5,5,0,5,0,5,0,0,0,0,0,0,5,0, +0,0,0,5,0,5,0,5,0,5,5,5,0,5,5,0, +5,0,0,5,0,5,0,5,0,5,0,5,0,5,5,0, +5,0,0,5,5,5,5,0,5,5,5,5,5,5,5,0, +5,5,5,5,0,5,5,5,5,0,5,0,5,5,5,5, +5,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0,5,5,5, +0,5,5,5,5,5,0,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,5,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x2cb,0x2cb,0x30b,0x34b, 0x38b,0x3cb,0x40b,0x44b,0x48b,0x4cb,0x50b,0x54b,0x54b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, @@ -1351,2181 +1375,2229 @@ static const uint16_t propsTrie_index[22276]={ 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1a,0x1a,0x1a,0x1a,0x1a,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0x1b,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, 0x1b,0x1b,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0,0,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0, 0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -0,0,0,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0,0,0,0,0,0,0,0,0,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, -0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,5,0x705,5,5, +0x1b,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0,0,0,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0, +0,0,0,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x1b,0x1b,0x1b,5,0x705,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x645,5,5,5, +5,5,5,5,0x645,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,0x645,5,5,5,5,5, +5,5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x685,5,5,5,5,5,5, +5,0x685,5,5,5,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0xcc5,5,5,5,5, -5,5,5,5,0xf45,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,0xf45,5,5,5,5,5,5,5,5,5,5,5, -5,5,0x6c5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5, +5,5,5,0xcc5,5,5,5,5,5,5,5,5,0xf45,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,0xf45,5,5,5, +5,5,5,5,5,5,5,5,5,5,0x6c5,5,5,5,5,5, +5,5,5,5,5,5,5,5,5,5,5,5,5,0x605,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0x605,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,5,0x605,5,5,5, +5,5,5,5,5,5,5,5,5,0x605,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,5,5,5,5,5,5,5,5,5,5,0x605,5,5,5,5, -5,5,5,5,5,5,5,5,5,0x645,5,5,5,5,5,5, +5,5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -5,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +5,5,5,0x605,5,5,5,5,5,5,5,5,5,5,5,5, +5,0x645,5,5,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x785,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5, -0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, +0,0,0,0,5,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,0x785,5,5,5,5,5,5,5,5,5,5,5, +5,5,5,5,5,5,5,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x10,0x10,0x10,0x10, 0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10, -0,0x10,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, +0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0,0x10,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,6,6,6,6, +6,6,6,6,6,6,6,6,6,6,6,6,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0x11,0x11,0x11,0x11, 0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11, -0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0,0, -0,0,0,0 +0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0x11,0,0,0,0,0,0 }; static const UTrie2 propsTrie={ propsTrie_index, - propsTrie_index+4532, + propsTrie_index+4656, NULL, - 4532, - 17744, + 4656, + 18032, 0xa40, - 0x1234, + 0x12b0, 0x0, 0x0, 0x110000, - 0x5700, + 0x589c, NULL, 0, FALSE, FALSE, 0, NULL }; -static const uint16_t propsVectorsTrie_index[31228]={ -0x4e8,0x4f0,0x4f8,0x500,0x518,0x520,0x528,0x530,0x538,0x540,0x548,0x550,0x558,0x560,0x568,0x570, -0x577,0x57f,0x587,0x58f,0x592,0x59a,0x5a2,0x5aa,0x5b2,0x5ba,0x5c2,0x5ca,0x5d2,0x5da,0x5e2,0x5ea, -0x5f2,0x5fa,0x601,0x609,0x611,0x619,0x621,0x629,0x631,0x639,0x63e,0x646,0x64d,0x655,0x65d,0x665, -0x66d,0x675,0x67d,0x685,0x68c,0x694,0x69c,0x6a4,0x6ac,0x6b4,0x6bc,0x6c4,0x6cc,0x6d4,0x6dc,0x6e4, -0x1a38,0xd5e,0xe35,0x6ec,0x508,0xe9c,0xea4,0x1bf2,0x1300,0x1310,0x12f8,0x1308,0x7c5,0x7cb,0x7d3,0x7db, -0x7e3,0x7e9,0x7f1,0x7f9,0x801,0x807,0x80f,0x817,0x81f,0x825,0x82d,0x835,0x83d,0x845,0x84d,0x854, -0x85c,0x862,0x86a,0x872,0x87a,0x880,0x888,0x890,0x898,0x1318,0x8a0,0x8a8,0x8b0,0x8b7,0x8bf,0x8c7, -0x8cf,0x8d3,0x8db,0x8e2,0x8ea,0x8f2,0x8fa,0x902,0x162c,0x1634,0x90a,0x912,0x91a,0x922,0x92a,0x931, -0x1692,0x1682,0x168a,0x1973,0x197b,0x1328,0x939,0x1320,0x1572,0x1572,0x1574,0x133c,0x133d,0x1330,0x1332,0x1334, -0x169a,0x169c,0x941,0x169c,0x949,0x94e,0x956,0x16a1,0x95c,0x169c,0x962,0x96a,0xc39,0x16a9,0x16a9,0x972, -0x16b9,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba, -0x16ba,0x16ba,0x16ba,0x16b1,0x97a,0x16c2,0x16c2,0x982,0xb59,0xb61,0xb69,0xb71,0x16d2,0x16ca,0x98a,0x992, -0x99a,0x16dc,0x16e4,0x9a2,0x16da,0x9aa,0x1a40,0xd66,0xb79,0xb81,0xb89,0xb8e,0x18e1,0xc6c,0xc73,0x1849, -0xc09,0x1a48,0xd6e,0xd76,0xd7e,0xd86,0xf47,0xf48,0x1939,0x193e,0xca8,0xcb0,0x19af,0x19b7,0x1b11,0xe3d, -0x19bf,0xcf2,0xcfa,0x19c7,0x10f6,0x1196,0xf27,0xd8e,0x1869,0x1851,0x1861,0x1859,0x18f9,0x18f1,0x18b9,0xc19, -0x1345,0x1345,0x1345,0x1345,0x1348,0x1345,0x1345,0x1350,0x9b2,0x1358,0x9b6,0x9be,0x1358,0x9c6,0x9ce,0x9d6, -0x1368,0x1360,0x1370,0x9de,0x9e6,0x1378,0x9ee,0x9f6,0x1380,0x1388,0x1390,0x1398,0x9fe,0x13a0,0x13a7,0x13af, -0x13b7,0x13bf,0x13c7,0x13cf,0x13d7,0x13de,0x13e6,0x13ee,0x13f6,0x13fe,0x1401,0x1403,0x16ec,0x17dc,0x17e2,0x1929, -0x140b,0xa06,0xa0e,0x1525,0x152a,0x152d,0x1535,0x1413,0x153d,0x153d,0x1423,0x141b,0x142b,0x1433,0x143b,0x1443, -0x144b,0x1453,0x145b,0x1463,0x17ea,0x1841,0x1983,0x1ad9,0x1473,0x147a,0x1482,0x148a,0x146b,0x1492,0x17f2,0x17f9, -0x16f4,0x16f4,0x16f4,0x16f4,0x16f4,0x16f4,0x16f4,0x16f4,0x1801,0x1804,0x1801,0x1801,0x180c,0x1813,0x1815,0x181c, -0x1824,0x1828,0x1828,0x182b,0x1828,0x1828,0x1831,0x1828,0x1871,0x1931,0x198b,0xb96,0xb9c,0x1c36,0x1c3e,0x1d15, -0x18d1,0xc49,0xc4d,0x1946,0x18c1,0x18c1,0x18c1,0xc21,0x18c9,0xc41,0x1911,0xc98,0xc29,0xc31,0xc31,0x19cf, -0x1901,0x1993,0xc83,0xc88,0xa16,0x16fc,0x16fc,0xa1e,0x1704,0x1704,0x1704,0x1704,0x1704,0x1704,0xa26,0x6f0, -0x155a,0x157c,0xa2e,0x1584,0xa36,0x158c,0x1594,0x159c,0xa3e,0xa43,0x15a4,0x15ab,0xa48,0x170c,0x1921,0xc11, -0xa50,0x1606,0x160d,0x15b3,0x1615,0x161c,0x15bb,0x15bf,0x15d8,0x15d8,0x15da,0x15c7,0x15cf,0x15cf,0x15d0,0x1624, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714, -0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1714,0x1717,0x1879,0x1879, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2, -0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e2,0x15e9,0x1a30,0x12b5, -0x171f,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725, -0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725, -0x1725,0x1725,0x1725,0x1725,0xa58,0x172d,0xa60,0x1a50,0x19db,0x19db,0x19db,0x19db,0x19db,0x19db,0x19db,0x19db, -0x19d7,0xd02,0x19eb,0x19e3,0x19ed,0x1a58,0x1a58,0xd96,0x18d9,0x194e,0x19a3,0x19a7,0x199b,0x1b09,0xcb8,0xcbb, -0x1909,0xc90,0x1956,0xcc3,0x19f5,0x19f8,0xd0a,0x1a60,0x1a08,0x1a00,0xd12,0xd9e,0x1a68,0x1a6c,0xda6,0xff0, -0x1a10,0xd1a,0xd22,0x1a74,0x1a84,0x1a7c,0xdae,0xef7,0xe45,0xe4d,0x1c85,0xfa8,0x1d32,0x1d32,0x1a8c,0xdb6, -0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675, -0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677, -0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679, -0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674, -0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676, -0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678, -0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a, -0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675, -0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677, -0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679, -0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674, -0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676, -0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678, -0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a, -0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675, -0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677, -0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679, -0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674, -0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676, -0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678, -0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a, -0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0x167a,0x1674,0x1675,0x1676,0x1677,0x1678,0x1679,0xa68,0xdbe,0xdc1, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c, -0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c,0x164c, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545, -0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x1545,0x15f1,0x15f1,0x15f1,0x15f1,0x15f1,0x15f1,0x15f1,0x15f1, -0x15f6,0x15fe,0x1839,0x12bd,0x1919,0x1919,0x12c1,0x12c8,0xa70,0xa78,0xa80,0x14b2,0x14b9,0x14c1,0xa88,0x14c9, -0x14fa,0x14fa,0x14a2,0x14aa,0x14d1,0x14f1,0x14f2,0x1502,0x14d9,0x149a,0xa90,0x14e1,0xa98,0x14e9,0xaa0,0xaa4, -0xca0,0x150a,0xaac,0xab4,0x1512,0x1518,0x151d,0xabc,0xacc,0x1562,0x156a,0x154d,0x1552,0xad4,0xadc,0xac4, -0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c, -0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x163c,0x1644,0x1644,0x1644,0x1644, -0x1420,0x1420,0x1460,0x14a0,0x14e0,0x1520,0x1560,0x15a0,0x15dc,0x161c,0x1648,0x1688,0x16c8,0x1708,0x1748,0x1788, -0x17c8,0x1804,0x1844,0x1884,0x18c4,0x18f8,0x1934,0x1974,0x19b4,0x19f4,0x1a30,0x1a70,0x1ab0,0x1af0,0x1b30,0x1b70, -0xa80,0xac0,0xb00,0xb40,0xb80,0xa40,0xe75,0xa40,0xe97,0xa40,0xa40,0xa40,0xa40,0xbc0,0x12dd,0x12dd, -0xed7,0xc00,0xa40,0xa40,0xa40,0xa40,0xf17,0xc2d,0xa40,0xa40,0xc6d,0xcad,0xced,0xd2d,0xe35,0xda5, -0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d,0x121d, -0x121d,0x121d,0x121d,0x121d,0xf57,0x125d,0x1092,0x10d2,0x129d,0x10dd,0x131d,0x131d,0x131d,0xf97,0xfb7,0xff7, -0x135d,0x135d,0x1037,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7, -0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0xfb7,0x1052, +static const uint16_t propsVectorsTrie_index[32060]={ +0x511,0x519,0x521,0x529,0x541,0x549,0x551,0x559,0x561,0x569,0x571,0x579,0x581,0x589,0x591,0x599, +0x5a0,0x5a8,0x5b0,0x5b8,0x5bb,0x5c3,0x5cb,0x5d3,0x5db,0x5e3,0x5eb,0x5f3,0x5fb,0x603,0x60b,0x613, +0x61b,0x623,0x62a,0x632,0x63a,0x642,0x64a,0x652,0x65a,0x662,0x667,0x66f,0x676,0x67e,0x686,0x68e, +0x696,0x69e,0x6a6,0x6ae,0x6b5,0x6bd,0x6c5,0x6cd,0x6d5,0x6dd,0x6e5,0x6ed,0x6f5,0x6fd,0x705,0x70d, +0x1aba,0xd5a,0xe2e,0x1162,0x1299,0x1c7b,0x1e12,0x1c73,0x1367,0x1377,0x135f,0x136f,0x7da,0x7e0,0x7e8,0x7f0, +0x7f8,0x7fe,0x806,0x80e,0x816,0x81c,0x824,0x82c,0x834,0x83a,0x842,0x84a,0x852,0x85a,0x862,0x869, +0x871,0x877,0x87f,0x887,0x88f,0x895,0x89d,0x8a5,0x8ad,0x137f,0x8b5,0x8bd,0x8c5,0x8cc,0x8d4,0x8dc, +0x8e4,0x8e8,0x8f0,0x8f7,0x8ff,0x907,0x90f,0x917,0x169a,0x16a2,0x91f,0x927,0x92f,0x937,0x93f,0x946, +0x1700,0x16f0,0x16f8,0x19f5,0x19fd,0x138f,0x94e,0x1387,0x15e3,0x15e3,0x15e5,0x13a3,0x13a4,0x1397,0x1399,0x139b, +0x1708,0x170a,0x956,0x170a,0x95e,0x963,0x96b,0x170f,0x971,0x170a,0x977,0x97f,0xc3a,0x1717,0x1717,0x987, +0x1727,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728,0x1728, +0x1728,0x1728,0x1728,0x171f,0x98f,0x1730,0x1730,0x997,0xb62,0xb6a,0xb72,0xb7a,0x1740,0x1738,0x99f,0x9a7, +0x9af,0x174a,0x1752,0x9b7,0x1748,0x9bf,0x1ac2,0xd62,0xb82,0xb8a,0xb92,0xb97,0x195b,0xc61,0xc68,0x18b7, +0xc12,0x1aca,0xd6a,0xd72,0xd7a,0xd82,0xf38,0xf3c,0x19bb,0x19c0,0xca0,0xca8,0x1a31,0x1a39,0x1b93,0xe36, +0x1a41,0xcee,0xcf6,0x1a49,0x10e2,0x118a,0xf10,0xd8a,0x18d7,0x18bf,0x18cf,0x18c7,0x1973,0x196b,0x1927,0x19b3, +0x13ac,0x13ac,0x13ac,0x13ac,0x13af,0x13ac,0x13ac,0x13b7,0x9c7,0x13bf,0x9cb,0x9d3,0x13bf,0x9db,0x9e3,0x9eb, +0x13cf,0x13c7,0x13d7,0x9f3,0x9fb,0x13df,0xa03,0xa0b,0x13e7,0x13ef,0x13f7,0x13ff,0xa13,0x1407,0x140e,0x1416, +0x141e,0x1426,0x142e,0x1436,0x143e,0x1445,0x144d,0x1455,0x145d,0x1465,0x1468,0x146a,0x175a,0x184d,0x1853,0x19a3, +0x1472,0xa1b,0xa23,0x1598,0x159d,0x15a0,0x15a6,0x147a,0x15ae,0x15ae,0x148a,0x1482,0x1492,0x149a,0x14a2,0x14aa, +0x14b2,0x14ba,0x14c2,0x14ca,0x185b,0x18af,0x1a05,0x1b5b,0x14da,0x14e0,0x14e8,0x14f0,0x14d2,0x14f8,0x1863,0x186a, +0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1762,0x1872,0x1872,0x1872,0x1872,0x187a,0x1881,0x1883,0x188a, +0x1892,0x1896,0x1896,0x1899,0x1896,0x1896,0x189f,0x1896,0x18df,0x19ab,0x1a0d,0xb9f,0xba5,0x1cbf,0x1cc7,0x1d9d, +0x194b,0x193f,0x1943,0x19c8,0x192f,0x192f,0x192f,0xc22,0x1937,0xc42,0x198b,0xc90,0xc2a,0xc32,0xc32,0x1a51, +0x197b,0x1a15,0xc78,0xc80,0xa2b,0x176a,0x176a,0xa33,0x1772,0x1772,0x1772,0x1772,0x1772,0x1772,0xa3b,0x715, +0x15cb,0x15ed,0xa43,0x15f5,0xa4b,0x15fd,0x1605,0x160d,0xa53,0xa58,0x1615,0x161c,0xa5d,0x177a,0x199b,0xc1a, +0xa65,0x1677,0x167e,0x1624,0x1686,0x168a,0x162c,0x1630,0x1649,0x1649,0x164b,0x1638,0x1640,0x1640,0x1641,0x1692, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782, +0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1782,0x1785,0x18e7,0x18e7, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653, +0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x165a,0x1ab2,0x1e7e, +0x178d,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793, +0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793,0x1793, +0x1793,0x1793,0x1793,0x1793,0xa6d,0x179b,0xa75,0x1ad2,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d,0x1a5d, +0x1a59,0xcfe,0x1a6d,0x1a65,0x1a6f,0x1ada,0x1ada,0xd92,0x1953,0x19d0,0x1a25,0x1a29,0x1a1d,0x1b8b,0xcb0,0xcb7, +0x1983,0xc88,0x19d8,0xcbf,0x1a77,0x1a7a,0xd06,0x1ae2,0x1a8a,0x1a82,0xd0e,0xd9a,0x1aea,0x1aee,0xda2,0xfec, +0x1a92,0xd16,0xd1e,0x1af6,0x1b06,0x1afe,0xdaa,0xee0,0xe3e,0xe46,0x1d0d,0xf9c,0x1dba,0x1dba,0x1b0e,0xdb2, +0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, +0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, +0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, +0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, +0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, +0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, +0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, +0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, +0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, +0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, +0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, +0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, +0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, +0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, +0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3, +0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5, +0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7, +0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2, +0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4, +0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6, +0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8, +0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0x16e8,0x16e2,0x16e3,0x16e4,0x16e5,0x16e6,0x16e7,0xa7d,0xdba,0xdbd, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba, +0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba,0x16ba, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6, +0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x15b6,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662, +0x1667,0x166f,0x18a7,0x132c,0x1993,0x1993,0x1330,0x1337,0xa85,0xa8d,0xa95,0x1518,0x151f,0x1527,0xa9d,0x152f, +0x156d,0x156d,0x1500,0x1508,0x1537,0x1564,0x1565,0x1575,0x153f,0x1544,0x154c,0x1554,0xaa5,0x155c,0xaad,0x1510, +0xc98,0x157d,0xab5,0xabd,0x1585,0x158b,0x1590,0xac5,0xad5,0x15d3,0x15db,0x15be,0x15c3,0xadd,0xae5,0xacd, +0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, +0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16b2,0x16b2,0x16b2,0x16b2, +0x14c4,0x14c4,0x1504,0x1544,0x1584,0x15c4,0x1604,0x1644,0x1680,0x16c0,0x16ec,0x172c,0x176c,0x17ac,0x17ec,0x182c, +0x186c,0x18a8,0x18e8,0x1928,0x1968,0x199c,0x19d8,0x1a18,0x1a58,0x1a98,0x1ad4,0x1b14,0x1b54,0x1b94,0x1bd4,0x1c14, +0xe59,0xa80,0xac0,0xb00,0xb40,0xb6b,0xed9,0xa40,0xefb,0xa40,0xa40,0xa40,0xa40,0xbab,0x1381,0x1381, +0xf3b,0xfbb,0xa40,0xa40,0xa40,0xbeb,0xf7b,0xc2b,0xa40,0xc51,0xc91,0xcd1,0xd11,0xd51,0xe99,0xdc9, +0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1,0x12c1, +0x12c1,0x12c1,0x12c1,0x12c1,0xffb,0x1301,0x1136,0x1176,0x1341,0x1181,0x13c1,0x13c1,0x13c1,0x103b,0x105b,0x109b, +0x1401,0x1401,0x10db,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b, +0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x105b,0x10f6, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, 0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, -0xde5,0xdf5,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, -0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd65, -0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d, -0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x119d,0x111d, -0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd, -0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x11dd,0x115d, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0xba4,0xbab,0xbb3,0xbbb,0x1881,0x1881,0x1881,0xbc3,0xbcb,0xbce,0x18b1,0x18a9,0xc01,0xd2a,0xd2e,0xd32, -0x508,0x508,0x508,0x508,0xd3a,0x1a18,0xd42,0xf3f,0x1735,0xae4,0xaea,0x1000,0xbd6,0x18e9,0xc7b,0x508, -0x174a,0x173d,0x1742,0x1889,0xbde,0xbe6,0x1134,0x113a,0x1c6d,0xf5d,0x1c5d,0x6f8,0x508,0x508,0x508,0x508, -0x1c8d,0x1c8d,0x1c8d,0x1c8d,0x1c8d,0x1c8d,0x1c8d,0x1c8d,0x1c8d,0xfb0,0xfb8,0xfc0,0x508,0x508,0x508,0x508, -0xbee,0xbf1,0xdc9,0x1cd5,0xff8,0x700,0x508,0x1092,0xccb,0xd4a,0x508,0x508,0x1c02,0xeff,0xf07,0x1d1d, -0xc55,0xc5c,0xc64,0x1a94,0x1cb5,0x508,0x1c95,0xfd0,0x1a9c,0xdd1,0xdd9,0xde1,0x1020,0x708,0x508,0x508, -0x1aa4,0x1aa4,0x710,0x508,0x1d4a,0x10aa,0x1d42,0x10b2,0x1e0e,0x11ac,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0xde9,0x1e66,0x1291,0x508,0x508,0x1e2e,0x11d4,0x11db,0x718,0x508,0x71c,0x1248,0x11e3, -0x1b19,0x1b1b,0xe55,0xe5c,0x1aac,0x1ab4,0xdf1,0xf1f,0x1bfa,0xee7,0xeef,0xfc8,0x1c1a,0x1c1e,0x1c26,0x1040, -0xf93,0xf98,0x724,0x508,0x109a,0x10a2,0x1c7d,0xfa0,0xf75,0xf7b,0xf83,0xf8b,0x508,0x508,0x508,0x508, -0x1daa,0x1da2,0x1124,0x112c,0x1cfd,0x1cf5,0x1068,0x508,0x508,0x508,0x508,0x508,0x1ce5,0x1028,0x1030,0x1038, -0x1cad,0x1ca5,0xfe0,0x111c,0x1c2e,0xf2f,0x72c,0x508,0x1078,0x1080,0x508,0x508,0x508,0x508,0x508,0x508, -0x1e06,0x118e,0x734,0x508,0x508,0x1d0d,0x1d05,0x1070,0x1250,0x1256,0x125e,0x508,0x508,0x11eb,0x11ef,0x11f7, -0x1dde,0x1dd6,0x1176,0x1dce,0x1dc6,0x73c,0x1cdd,0x1018,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x10da,0x10df,0x10e7,0x10ee,0x110e,0x1114,0x508,0x508,0x115a,0x115e,0x1166,0x119e,0x11a4,0x744,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x11bc,0x508,0x508,0x508,0x508,0x508,0x748,0x1e4e,0x1238, -0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e, -0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x195e,0x1963,0xcd3,0xcda,0xcda,0xcda, -0x196b,0x196b,0x196b,0xce2,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x1d3a,0x750,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23,0x1b23, -0x1b23,0xe64,0xfe8,0x758,0x508,0x508,0x75c,0xf37,0x1ccd,0x1cc5,0x1008,0x1010,0x764,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x1e26,0x1e1e,0x11cc,0x508,0x508,0x508,0x1c12,0x1c12,0xf0f,0x1c0a,0xf17,0x508,0x508,0x1106, -0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba, -0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dba,0x1dbe,0x1e76,0x1e76,0x1e76,0x1e76,0x1e76,0x1e76,0x1e76,0x1e76, -0x1e76,0x1e76,0x1e76,0x1e76,0x1e76,0x1e76,0x1266,0x126c,0x1286,0x1289,0x1289,0x1289,0x76c,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x1c65,0x1c65,0x1c65, -0xf50,0xf55,0x774,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x1752,0x1752,0x1752, -0x1752,0x1752,0x1752,0x1752,0xaf2,0x1762,0xafa,0x1763,0x175a,0x176b,0x1771,0x1779,0xb02,0x18a1,0x18a1,0x77c, -0x508,0x508,0x508,0x508,0x11c4,0x1891,0x1891,0xbf9,0xcea,0x508,0x508,0x508,0x508,0x17aa,0x17b1,0xb0a, -0x17b4,0xb12,0xb1a,0xb22,0x17ae,0xb2a,0xb32,0xb3a,0x17b3,0x17bb,0x17aa,0x17b1,0x17ad,0x17b4,0x17bc,0x17ab, -0x17b2,0x17ae,0xb41,0x1781,0x1789,0x1790,0x1797,0x1784,0x178c,0x1793,0x179a,0xb49,0x17a2,0x1d62,0x1d62,0x1d62, -0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d62,0x1d52,0x1d55,0x1d52, -0x1d5c,0x10ca,0x784,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x10fe,0x78c,0x508, -0x508,0x508,0x508,0x508,0x508,0x1e46,0x11ff,0x794,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x1e56,0x1240,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x1c9d,0x1c9d,0x1c9d, -0x1c9d,0x1c9d,0x1c9d,0xfd8,0x508,0x1d9a,0x1d92,0x10d2,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x798,0x1e16,0x11b4,0x508,0x508,0x1207,0x1208,0x7a0,0x508,0x508,0x508,0x508,0x508,0xeac,0xeb4,0xebc, -0xec4,0xecc,0xed4,0xedb,0xedf,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x7a4,0x1048,0x1ced,0x104e,0x1ced,0x1056,0x105b,0x1060,0x1060,0x1d72,0x1d82,0x1d8a, -0x10ba,0x1d7a,0x1e36,0x10c2,0x1dee,0x1e3e,0x1e3e,0x117e,0x1186,0x121f,0x1225,0x122a,0x1230,0x1e5e,0x1e5e,0x1e5e, -0x1e5e,0x1274,0x1e5e,0x127a,0x127e,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac, -0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac,0x7ac, -0x7ac,0x7ac,0x7ac,0x7ac,0x7ad,0xb51,0x17c4,0x17c4,0x17c4,0x7b5,0x7b5,0x7b5,0x7b5,0x1899,0x1899,0x1899, -0x1899,0x1899,0x1899,0x1899,0x7bd,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5, -0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5, -0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5, -0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x7b5, -0x7b5,0x7b5,0x7b5,0x7b5,0x7b5,0x1a20,0xd52,0x1a28,0x1a28,0xd56,0xe6c,0xe74,0xe7c,0x1ae9,0x1ad1,0x1af1, -0x1af9,0x1ae1,0xe01,0xe05,0xe0c,0xe14,0xe1b,0xe23,0xe2b,0xe2d,0xe2d,0xe2d,0xe2d,0x1b5a,0x1b62,0x1b5a, -0x1b68,0x1b70,0x1b3b,0x1b78,0x1b80,0x1b5a,0x1b88,0x1b90,0x1b97,0x1b9f,0x1b43,0x1b5a,0x1ba4,0x1b4b,0x1b52,0x1bac, -0x1bb2,0x1c4e,0x1c55,0x1c46,0x1bba,0x1bc2,0x1bca,0x1bd2,0x1cbd,0x1bda,0x1be2,0xe84,0xe8c,0x1b2b,0x1b2b,0x1b2b, -0xe94,0x1c75,0x1c75,0xf65,0xf6d,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc, -0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abe,0x1abc,0x1ac6,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc, -0x1ac9,0x1abc,0x1abc,0x1abc,0x1abc,0x1abc,0xdf9,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25, -0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d2a,0x1d25,0x1d25,0x1d25,0x1088,0x108a,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1142,0x1b33,0x1de6,0x1de6,0x1de6,0x1de6,0x1de6,0x1de6,0x1de6,0x114a, -0x1152,0x1210,0x1217,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x1dfe,0x116e,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x508, -0x508,0x508,0x508,0x508,0x508,0x508,0x508,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x12d0,0x1299,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x12a1,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4, -0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x17d4,0x12d8,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x12a5,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x12ad,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, -0x1299,0x12a5,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x12e0,0x1bea,0x1bea,0x1bea,0x1bea, -0x1bea,0x1bea,0x12e8,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x12f0,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1654,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x165c,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664, -0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x1664,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c, -0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x166c,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc, -0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x17cc,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01, -0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1b01,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a, -0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1d6a,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2, -0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1db2,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6, -0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1df6,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e, -0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x1e6e,0x4e7,0x4e7,0x4e7, -0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2ca,0x2d3,0x2cd,0x2cd,0x2d0,0x2c7,0x2c7, -0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7,0x2c7, -0x7fb,0x7f5,0x7da,0x7d1,0x7c8,0x7c5,0x7bc,0x7d7,0x7c2,0x7ce,0x7d1,0x7ec,0x7e3,0x7d4,0x7f8,0x7cb, -0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7b9,0x7e0,0x7dd,0x7e6,0x7e6,0x7e6,0x7f5, -0x7bc,0x807,0x807,0x807,0x807,0x807,0x807,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801, -0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x801,0x7c2,0x7c8,0x7ce,0x7f2,0x7b6, -0x7ef,0x804,0x804,0x804,0x804,0x804,0x804,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe, -0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7fe,0x7c2,0x7e9,0x7bf,0x7e6,0x2c7, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2e5,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6, -0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6,0x2d6, -0x2d9,0x651,0x810,0x813,0x657,0x813,0x80d,0x64e,0x645,0x2df,0x663,0x2e2,0x816,0x63c,0x65a,0x80a, -0x654,0x660,0x642,0x642,0x648,0x2dc,0x64e,0x64b,0x645,0x642,0x663,0x2e2,0x63f,0x63f,0x63f,0x651, -0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x66c,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb, -0x66c,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x65d,0x66c,0x2eb,0x2eb,0x2eb,0x2eb,0x2eb,0x66c,0x666, -0x669,0x669,0x2e8,0x2e8,0x2e8,0x2e8,0x666,0x2e8,0x669,0x669,0x669,0x2e8,0x669,0x669,0x2e8,0x2e8, -0x666,0x2e8,0x669,0x669,0x2e8,0x2e8,0x2e8,0x65d,0x666,0x669,0x669,0x2e8,0x669,0x2e8,0x666,0x2e8, -0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee, -0x2f4,0x66f,0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x2ee, -0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x678,0x66f,0x2f7,0x2ee,0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x2ee, -0x2f7,0x66f,0x67b,0x675,0x2f7,0x2ee,0x2f7,0x2ee,0x66f,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x67b, -0x675,0x678,0x66f,0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x672,0x67e,0x678,0x66f,0x2f7,0x672,0x2f7,0x2ee, -0x2f7,0x2ee,0x678,0x66f,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee, -0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x678,0x66f,0x2f7,0x2ee,0x2f7,0x672,0x2f7,0x2ee,0x2f7,0x2ee, -0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2f7,0x2ee,0x2f7,0x2ee,0x2f7,0x2ee,0x2f1, -0x2fa,0x306,0x306,0x2fa,0x306,0x2fa,0x306,0x306,0x2fa,0x306,0x306,0x306,0x2fa,0x2fa,0x306,0x306, -0x306,0x306,0x2fa,0x306,0x306,0x2fa,0x306,0x306,0x306,0x2fa,0x2fa,0x2fa,0x306,0x306,0x2fa,0x306, -0x309,0x2fd,0x306,0x2fa,0x306,0x2fa,0x306,0x306,0x2fa,0x306,0x2fa,0x2fa,0x306,0x2fa,0x306,0x309, -0x2fd,0x306,0x306,0x306,0x2fa,0x306,0x2fa,0x306,0x306,0x2fa,0x2fa,0x303,0x306,0x2fa,0x2fa,0x2fa, -0x303,0x303,0x303,0x303,0x30c,0x30c,0x300,0x30c,0x30c,0x300,0x30c,0x30c,0x300,0x309,0x681,0x309, -0x681,0x309,0x681,0x309,0x681,0x309,0x681,0x309,0x681,0x309,0x681,0x309,0x681,0x2fa,0x309,0x2fd, -0x309,0x2fd,0x309,0x2fd,0x306,0x2fa,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd, -0x2fd,0x30c,0x30c,0x300,0x309,0x2fd,0x9ea,0x9ea,0x9ed,0x9e7,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd, -0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd,0x309,0x2fd, -0x309,0x2fd,0x309,0x2fd,0x9ed,0x9e7,0x9ed,0x9e7,0x9ea,0x9e4,0x9ed,0x9e7,0xbaf,0xcb7,0x9ea,0x9e4, -0x9ea,0x9e4,0x9ed,0x9e7,0x9ed,0x9e7,0x9ed,0x9e7,0x9ed,0x9e7,0x9ed,0x9e7,0x9ed,0x9e7,0x9ed,0x9e7, -0xcb7,0xcb7,0xcb7,0xdb6,0xdb6,0xdb6,0xdb9,0xdb9,0xdb6,0xdb9,0xdb9,0xdb6,0xdb6,0xdb9,0xefa,0xefd, -0xefd,0xefd,0xefd,0xefa,0xefd,0xefa,0xefd,0xefa,0xefd,0xefa,0xefd,0xefa,0x30f,0x684,0x30f,0x30f, -0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x684,0x30f,0x30f, -0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f, -0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x312,0x30f,0x30f,0x30f, -0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f,0x30f, -0x30f,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0xcba,0xcba,0x327,0x327,0x327,0x327,0x327,0x327,0x327,0x327, -0x327,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31e,0x31b,0x31b,0x318,0x318,0x68a,0x318,0x31e,0x68d, -0x321,0x68d,0x68d,0x68d,0x321,0x68d,0x31e,0x31e,0x690,0x324,0x318,0x318,0x318,0x318,0x318,0x318, -0x687,0x687,0x687,0x687,0x315,0x687,0x318,0xb25,0x327,0x327,0x327,0x327,0x327,0x318,0x318,0x318, -0x318,0x318,0x9f9,0x9f9,0x9f6,0x9f3,0x9f6,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd, -0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0xcbd,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693, -0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693, -0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693, -0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693, -0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x693,0x696,0x696,0x94b,0x696,0x696,0x94e,0xb28,0xb28, -0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xb28,0xc6c,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83,0xd83, -0xebe,0xebe,0xebe,0xebe,0xec1,0xd86,0xd86,0xd86,0x699,0x699,0xb2b,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4, -0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xfa8,0xfa5,0xfa8,0xfa5,0x333,0x33c,0xfa8,0xfa5, -9,9,0x342,0xf00,0xf00,0xf00,0x32a,0x14fd,9,9,9,9,0x33f,0x32d,0x351,0x330, -0x351,0x351,0x351,9,0x351,9,0x351,0x351,0x348,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f, -0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,0x69f,9,0x69f,0x69f,0x69f,0x69f,0x69f, -0x69f,0x69f,0x351,0x351,0x348,0x348,0x348,0x348,0x348,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c, -0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x69c,0x345,0x69c,0x69c,0x69c,0x69c,0x69c, -0x69c,0x69c,0x348,0x348,0x348,0x348,0x348,0xfa8,0x354,0x354,0x357,0x351,0x351,0x354,0x34b,0x9fc, -0xbb8,0xbb5,0x34e,0x9fc,0x34e,0x9fc,0x34e,0x9fc,0x34e,0x9fc,0x339,0x336,0x339,0x336,0x339,0x336, -0x339,0x336,0x339,0x336,0x339,0x336,0x339,0x336,0x354,0x354,0x34b,0x345,0xb67,0xb64,0xbb2,0xcc3, -0xcc0,0xcc6,0xcc3,0xcc0,0xdbc,0xdbf,0xdbf,0xdbf,0xa0b,0x6ab,0x363,0x366,0x363,0x363,0x363,0x366, -0x363,0x363,0x363,0x363,0x366,0xa0b,0x366,0x363,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8, -0x6a8,0x6ab,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8, -0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a8,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2, -0x6a2,0x6a5,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2,0x6a2, -0x6a2,0x6a2,0x6a2,0x6a2,0xa05,0x6a5,0x35d,0x360,0x35d,0x35d,0x35d,0x360,0x35d,0x35d,0x35d,0x35d, -0x360,0xa05,0x360,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d, -0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x366,0x360,0x363,0x35d,0x363,0x35d, -0x363,0x35d,0x363,0x35d,0x363,0x35d,0x35a,0x957,0x95a,0x93c,0x93c,0x114f,0x9ff,0x9ff,0xbbe,0xbbb, -0xa08,0xa02,0xa08,0xa02,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d, -0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d, -0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d,0x363,0x35d, -0x363,0x35d,0x363,0x35d,0x363,0x366,0x360,0x363,0x35d,0xbbe,0xbbb,0x363,0x35d,0xbbe,0xbbb,0x363, -0x35d,0xbbe,0xbbb,0xf03,0x366,0x360,0x366,0x360,0x363,0x35d,0x366,0x360,0x363,0x35d,0x366,0x360, -0x366,0x360,0x366,0x360,0x363,0x35d,0x366,0x360,0x366,0x360,0x366,0x360,0x363,0x35d,0x366,0x360, -0xa0b,0xa05,0x366,0x360,0x366,0x360,0x366,0x360,0x366,0x360,0xdc5,0xdc2,0x366,0x360,0xf06,0xf03, -0xf06,0xf03,0xf06,0xf03,0xc2d,0xc2a,0xc2d,0xc2a,0xc2d,0xc2a,0xc2d,0xc2a,0xc2d,0xc2a,0xc2d,0xc2a, -0xc2d,0xc2a,0xc2d,0xc2a,0xf33,0xf30,0xf33,0xf30,0x1023,0x1020,0x1023,0x1020,0x1023,0x1020,0x1023,0x1020, -0x1023,0x1020,0x1023,0x1020,0x1023,0x1020,0x1023,0x1020,0x1188,0x1185,0x1371,0x136e,0x1536,0x1533,0x1536,0x1533, -0x1536,0x1533,0x1536,0x1533,0xc,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378, -0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0x378,0xc, -0xc,0x37b,0x369,0x369,0x369,0x36f,0x369,0x36c,0x1941,0x372,0x372,0x372,0x372,0x372,0x372,0x372, -0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372, -0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x372,0x375,0x1941,0x37e,0xa0e,0xc, -0xc,0x1500,0x1500,0x141c,0xf,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e, -0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0xdc8,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e,0x97e, -0x97e,0x97e,0x97e,0x97e,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0x381,0xf09,0x381, -0x381,0x381,0x38d,0x381,0x384,0x381,0x381,0x390,0x981,0xdcb,0xdce,0xdcb,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393, -0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0x393,0xf, -0xf,0xf,0xf,0x1944,0x393,0x393,0x393,0x38a,0x387,0xf,0xf,0xf,0xf,0xf,0xf,0xf, -0xf,0xf,0xf,0xf,0xcdb,0xcdb,0xcdb,0xcdb,0x141f,0x1503,0xfb1,0xfb1,0xfb1,0xfae,0xfae,0xdd4, -0x8c7,0xcd5,0xcd2,0xcd2,0xcc9,0xcc9,0xcc9,0xcc9,0xcc9,0xcc9,0xfab,0xfab,0xfab,0xfab,0xfab,0x8c4, -0x14fa,0x12,0xdd7,0x8ca,0x1338,0x3ae,0x3b1,0x3b1,0x3b1,0x3b1,0x3b1,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0xfb4, -0xfb4,0xfb4,0xfb4,0xfb4,0x8cd,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x942, -0x942,0x942,0x942,0x942,0x942,0x942,0x942,0xb5e,0xb5e,0xb5e,0xcc9,0xccf,0xccc,0xdd1,0xdd1,0xdd1, -0xdd1,0xdd1,0xdd1,0x1335,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x960,0x3a8,0x3a5, -0x3a2,0x39f,0xbc1,0xbc1,0x93f,0x3ae,0x3ae,0x3ba,0x3ae,0x3b4,0x3b4,0x3b4,0x3b4,0x3ae,0x3ae,0x3ae, -0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae, -0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0xa14,0xa14,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0xa14, -0x3b1,0x3ae,0x3b1,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0x3ae,0xa14, -0x3ae,0x3ae,0x3ae,0x3b1,0x95d,0x3ae,0x399,0x399,0x399,0x399,0x399,0x399,0x399,0x396,0x39f,0x39c, -0x39c,0x399,0x399,0x399,0x399,0x3b7,0x3b7,0x399,0x399,0x39f,0x39c,0x39c,0x39c,0x399,0xcd8,0xcd8, -0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0x3ab,0xa14,0xa14,0xa14,0xa11,0xa11,0xcd8, -0xa29,0xa29,0xa29,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa23,0xa20,0xa23,0xa20,0x15,0xa2c, -0xa26,0xa17,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26, -0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xa26,0xcde,0xcde,0xcde, -0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d,0xa1d, -0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0xa1a,0x15,0x15,0xcde,0xcde,0xcde, -0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37, -0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0x1035,0x1035, -0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035,0x1035, -0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32, -0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa32, -0xa32,0xa32,0xa32,0xa32,0xa32,0xa32,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f,0xa2f, -0xa2f,0xbc4,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, -0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e, -0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e, -0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf4e,0xf42,0xf42,0xf42,0xf42,0xf42, -0xf42,0xf42,0xf42,0xf42,0xf51,0xf51,0xf45,0xf45,0xf48,0xf57,0xf54,0x10b,0x10b,0x1968,0x196b,0x196b, -0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x18f9,0x252,0x252,0x252,0x252,0x252, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xb37,0xb37,0xb3a,0xb3a,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0xb37,0x72,0x72,0x72,0x72, -0x15ba,0x15ba,0x15ba,0x15ba,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x1bc,0x15b7, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674,0x1674, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad,0x16ad, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x174,0x174,0x174,0x174,0x174,0x174,0x174, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af7, -0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x14d6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x18e7,0x18ea,0x18ea,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f,0x24f, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x19b6,0x261,0x261,0x261,0x261,0x261,0x261, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1b1b,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d, -0x17a9,0x17a9,0x17a9,0x17a9,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x1e9,0x1e9,0x1e9,0x1e9,0x1665,0x1665, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1, -0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1713,0x1713,0x1713,0x1713,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0xe2e,0xe2e,0xe2b,0xe2b,0xe2b,0xe2e,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8,0xd8, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x225,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0xe09,0xe19,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40, +0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xa40,0xd89, +0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241, +0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x1241,0x11c1, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281, +0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1281,0x1201, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0xbf7,0xbfa,0xdc5,0x1d5d,0xff4,0x71d,0x531,0x108e,0xcc7,0xd46,0x531,0x531,0x1c8b,0xee8,0xef0,0x1da5, +0xc4a,0xc51,0xc59,0x1b16,0x1d3d,0x531,0x1d1d,0xfc4,0x1b1e,0xdcd,0xdd5,0xddd,0x101c,0x725,0x531,0x531, +0x1b26,0x1b26,0x72d,0x531,0x1dd2,0x10a6,0x1dca,0x10ae,0x1ebe,0x11a0,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0xde5,0x1f16,0x1291,0x531,0x531,0x1ede,0x11c8,0x11cf,0x11d6,0x12cd,0x12d1,0x1248,0x11de, +0x1b9b,0x1b9d,0xe4e,0xe55,0x1b2e,0x1b36,0xded,0xf08,0x1c83,0xed0,0xed8,0xfbc,0x1ca3,0x1ca7,0x1caf,0x103c, +0xf87,0xf8c,0x735,0x531,0x1096,0x109e,0x1d05,0xf94,0xf69,0xf6f,0xf77,0xf7f,0x531,0x531,0x531,0x531, +0x1e42,0x1e3a,0x1110,0x1118,0x1d85,0x1d7d,0x1064,0x531,0x531,0x531,0x531,0x531,0x1d6d,0x1024,0x102c,0x1034, +0x1d35,0x1d2d,0xfd4,0x1108,0x1cb7,0xf18,0x73d,0x531,0x1074,0x107c,0x745,0x531,0x531,0x531,0x531,0x531, +0x1eb6,0x1182,0x74d,0x531,0x531,0x1d95,0x1d8d,0x106c,0x1250,0x1256,0x125e,0x531,0x531,0x11e6,0x11ea,0x11f2, +0x1e76,0x1e6e,0x116a,0x1e66,0x1e5e,0x115a,0x1d65,0x1014,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x10c6,0x10cb,0x10d3,0x10da,0x10fa,0x1100,0x531,0x531,0x113e,0x1142,0x114a,0x1192,0x1198,0x755,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x11b0,0x531,0x531,0x531,0x531,0x531,0x759,0x1efe,0x1238, +0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0, +0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e5,0xccf,0xcd6,0xcd6,0xcd6, +0x19ed,0x19ed,0x19ed,0xcde,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x1dc2,0x761,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x765,0x1f2e,0x1f2e,0x12a1,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5, +0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0x1ba5,0xe5d,0xfdc,0xfe4,0x1f36, +0x12d9,0x12e1,0xf20,0x1d55,0x1d4d,0x1004,0x100c,0x76d,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1ed6,0x1ece,0x11c0, +0x531,0x531,0x531,0x1c9b,0x1c9b,0xef8,0x1c93,0xf00,0x531,0x531,0x10f2,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x771,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1ced,0x1ced,0x1ced,0xf44,0xf49, +0x779,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1f46,0x1301,0x1308,0x1f3e,0x1f3e,0x1f3e,0x781, +0x531,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0x17c0,0xafb,0x17d0,0xb03,0x17d1,0x17c8,0x17d9,0x17df,0x17e7, +0xb0b,0x190f,0x190f,0x789,0x531,0x531,0x531,0x531,0x11b8,0x18ff,0x18ff,0xc02,0xce6,0x531,0x531,0x531, +0x531,0x1818,0x181f,0xb13,0x1822,0xb1b,0xb23,0xb2b,0x181c,0xb33,0xb3b,0xb43,0x1821,0x1829,0x1818,0x181f, +0x181b,0x1822,0x182a,0x1819,0x1820,0x181c,0xb4a,0x17ef,0x17f7,0x17fe,0x1805,0x17f2,0x17fa,0x1801,0x1808,0xb52, +0x1810,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea,0x1dea, +0x1dea,0x1dda,0x1ddd,0x1dda,0x1de4,0x10b6,0x791,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x12bd,0x12c5,0x12c5,0x12c5,0x12c5,0x12c5,0x12c5, +0x12c5,0x10ea,0x799,0x531,0x531,0x531,0x531,0x531,0x531,0x1ef6,0x11fa,0x7a1,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x7a5,0x12e9,0x1f06,0x1240,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x12a9,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0x1d25,0xfcc,0x531,0x1e32,0x1e2a,0x10be,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x7ad,0x1ec6,0x11a8,0x531,0x531,0x1202,0x1203,0x7b5,0x531,0x531,0x531,0x531, +0x531,0xe95,0xe9d,0xea5,0xead,0xeb5,0xebd,0xec4,0xec8,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x7b9,0x1044,0x1d75,0x104a,0x1d75,0x1052,0x1057,0x105c, +0x105c,0x1dfa,0x1e1a,0x1e22,0x1e8e,0x1e02,0x1ee6,0x1e0a,0x1e96,0x1eee,0x1eee,0x1172,0x117a,0x121a,0x1220,0x1228, +0x1230,0x1f0e,0x1f0e,0x1f0e,0x1f0e,0x1274,0x1f0e,0x127a,0x127e,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1, +0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1, +0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c1,0x7c2,0xb5a,0x1832,0x1832,0x1832,0x7ca,0x7ca,0x7ca, +0x7ca,0x1907,0x1907,0x1907,0x1907,0x1907,0x1907,0x1907,0x7d2,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, +0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, +0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, +0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca, +0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0x7ca,0xbad,0xbb4,0xbbc,0xbc4,0x18ef,0x18ef,0x18ef, +0xbcc,0xbd4,0xbd7,0x191f,0x1917,0xc0a,0xd26,0xd2a,0xd2e,0x531,0x531,0x531,0x531,0xd36,0x1a9a,0xd3e, +0xf30,0x17a3,0xaed,0xaf3,0xffc,0xbdf,0x1963,0xc70,0x531,0x17b8,0x17ab,0x17b0,0x18f7,0xbe7,0xbef,0x1120, +0x1126,0x1cf5,0xf51,0x1ce5,0xf28,0x12f1,0x12f9,0x531,0x531,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15,0x1d15, +0x1d15,0x1d15,0xfa4,0xfac,0xfb4,0x12b1,0x12b5,0x531,0x531,0x1aa2,0xd4e,0x1aaa,0x1aaa,0xd52,0xe65,0xe6d, +0xe75,0x1b6b,0x1b53,0x1b73,0x1b7b,0x1b63,0xdfd,0xe01,0xe08,0xe10,0xe14,0xe1c,0xe24,0xe26,0xe26,0xe26, +0xe26,0x1bdc,0x1be4,0x1bdc,0x1bea,0x1bf2,0x1bbd,0x1bfa,0x1c02,0x1bdc,0x1c0a,0x1c12,0x1c19,0x1c21,0x1bc5,0x1bdc, +0x1c26,0x1bcd,0x1bd4,0x1c2e,0x1c34,0x1cd6,0x1cdd,0x1ccf,0x1c3b,0x1c43,0x1c4b,0x1c53,0x1d45,0x1c5b,0x1c63,0xe7d, +0xe85,0x1bad,0x1bad,0x1bad,0xe8d,0x1cfd,0x1cfd,0xf59,0xf61,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e, +0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b40,0x1b3e,0x1b48,0x1b3e,0x1b3e, +0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b4b,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0x1b3e,0xdf5,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad, +0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1dad,0x1db2,0x1dad,0x1dad,0x1dad,0x1084,0x1086,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x112e,0x1bb5,0x1e86,0x1e86,0x1e86,0x1e86, +0x1e86,0x1e86,0x1e86,0x1ea6,0x1136,0x120b,0x1212,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae,0x1eae, +0x1eae,0x1eae,0x1152,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52, +0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52,0x1e52, +0x1e52,0x1e52,0x1e56,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26,0x1f26, +0x1f26,0x1266,0x126c,0x1286,0x1289,0x1289,0x1289,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531, +0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x531,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183d,0x1310,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1318,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1845,0x1845,0x1845,0x1845,0x1845, +0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x133f,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x131c,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1324,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310,0x1310, +0x1310,0x1310,0x1310,0x1310,0x1310,0x131c,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1347, +0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x1c6b,0x134f,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1357,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16c2,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16ca,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2,0x16d2, +0x16d2,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da, +0x16da,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a,0x183a, +0x183a,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83,0x1b83, +0x1b83,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2,0x1df2, +0x1df2,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a,0x1e4a, +0x1e4a,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e,0x1e9e, +0x1e9e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e,0x1f1e, +0x1f1e,0x510,0x510,0x510,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d6,0x2df,0x2d9, +0x2d9,0x2dc,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3,0x2d3, +0x2d3,0x2d3,0x2d3,0x2d3,0x7cb,0x7c5,0x7aa,0x78f,0x79b,0x798,0x78f,0x7a7,0x795,0x7a1,0x78f,0x7bc, +0x7b3,0x7a4,0x7c8,0x79e,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x78c,0x7b0,0x7ad, +0x7b6,0x7b6,0x7b6,0x7c5,0x78f,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d7,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1, +0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x7d1,0x795, +0x79b,0x7a1,0x7c2,0x789,0x7bf,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7d4,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce, +0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x7ce,0x795, +0x7b9,0x792,0x7b6,0x2d3,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1845,0x1845,0x231,0x1845,0x1845,0x231,0x1845,0x1845,0x1845,0x1845,0x1845,0x231,0x231,0x231,0x231,0x231, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x1a6d,0x282,0x282,0x282,0x282,0x1a70,0x1a6a, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x267,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb, -0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285, +0,0,0,0,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2f1,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, +0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2,0x2e2, +0x2e2,0x2e2,0x2e2,0x2e2,0x2e5,0x63c,0x7e0,0x7e3,0x642,0x7e3,0x7dd,0x636,0x62d,0x2eb,0x64b,0x2ee, +0x7e6,0x624,0x639,0x7da,0x63f,0x648,0x62a,0x62a,0x630,0x2e8,0x636,0x633,0x62d,0x62a,0x64b,0x2ee, +0x627,0x627,0x627,0x63c,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x654,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7, +0x2f7,0x2f7,0x2f7,0x2f7,0x654,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x2f7,0x645,0x654,0x2f7,0x2f7,0x2f7, +0x2f7,0x2f7,0x654,0x64e,0x651,0x651,0x2f4,0x2f4,0x2f4,0x2f4,0x64e,0x2f4,0x651,0x651,0x651,0x2f4, +0x651,0x651,0x2f4,0x2f4,0x64e,0x2f4,0x651,0x651,0x2f4,0x2f4,0x2f4,0x645,0x64e,0x651,0x651,0x2f4, +0x651,0x2f4,0x64e,0x2f4,0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa, +0x303,0x2fa,0x303,0x2fa,0x300,0x657,0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x65a, +0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x65a, +0x303,0x2fa,0x303,0x2fa,0x303,0x657,0x663,0x65d,0x303,0x2fa,0x303,0x2fa,0x657,0x303,0x2fa,0x303, +0x2fa,0x303,0x2fa,0x663,0x65d,0x660,0x657,0x303,0x65a,0x303,0x2fa,0x303,0x65a,0x666,0x660,0x657, +0x303,0x65a,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa, +0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x660,0x657,0x303,0x2fa,0x303,0x65a, +0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x2fa,0x303,0x303,0x2fa,0x303, +0x2fa,0x303,0x2fa,0x2fd,0x306,0x312,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x312,0x312,0x312, +0x306,0x306,0x312,0x312,0x312,0x312,0x306,0x312,0x312,0x306,0x312,0x312,0x312,0x306,0x306,0x306, +0x312,0x312,0x306,0x312,0x315,0x309,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x312,0x306,0x306, +0x312,0x306,0x312,0x315,0x309,0x312,0x312,0x312,0x306,0x312,0x306,0x312,0x312,0x306,0x306,0x30f, +0x312,0x306,0x306,0x306,0x30f,0x30f,0x30f,0x30f,0x318,0x318,0x30c,0x318,0x318,0x30c,0x318,0x318, +0x30c,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315,0x669,0x315, +0x669,0x306,0x315,0x309,0x315,0x309,0x315,0x309,0x312,0x306,0x315,0x309,0x315,0x309,0x315,0x309, +0x315,0x309,0x315,0x309,0x309,0x318,0x318,0x30c,0x315,0x309,0x9bd,0x9bd,0x9c0,0x9ba,0x315,0x309, +0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309, +0x315,0x309,0x315,0x309,0x315,0x309,0x315,0x309,0x9c0,0x9ba,0x9c0,0x9ba,0x9bd,0x9b7,0x9c0,0x9ba, +0xb79,0xc72,0x9bd,0x9b7,0x9bd,0x9b7,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba,0x9c0,0x9ba, +0x9c0,0x9ba,0x9c0,0x9ba,0xc72,0xc72,0xc72,0xd6b,0xd6b,0xd6b,0xd6e,0xd6e,0xd6b,0xd6e,0xd6e,0xd6b, +0xd6b,0xd6e,0xeac,0xeaf,0xeaf,0xeaf,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac,0xeaf,0xeac, +0x31b,0x66c,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, +0x31b,0x66c,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, +0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, +0x31e,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b,0x31b, +0x31b,0x31b,0x31b,0x31b,0x31b,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0xc75,0xc75,0x333,0x333,0x333,0x333, +0x333,0x333,0x333,0x333,0x333,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x32a,0x327,0x327,0x324,0x324, +0x672,0x324,0x32a,0x675,0x32d,0x675,0x675,0x675,0x32d,0x675,0x32a,0x32a,0x678,0x330,0x324,0x324, +0x324,0x324,0x324,0x324,0x66f,0x66f,0x66f,0x66f,0x321,0x66f,0x324,0xaef,0x333,0x333,0x333,0x333, +0x333,0x324,0x324,0x324,0x324,0x324,0x9cc,0x9cc,0x9c9,0x9c6,0x9c9,0xc78,0xc78,0xc78,0xc78,0xc78, +0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0xc78,0x67b,0x67b,0x67b,0x67b, +0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, +0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, +0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b, +0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67b,0x67e,0x67e,0x91e,0x67e, +0x67e,0x921,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xaf2,0xc2a,0xd35,0xd35,0xd35,0xd35, +0xd35,0xd35,0xd35,0xd35,0xe70,0xe70,0xe70,0xe70,0xe73,0xd38,0xd38,0xd38,0x681,0x681,0xaf5,0xc6f, +0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xf5a,0xf57,0xf5a,0xf57, +0x33f,0x348,0xf5a,0xf57,9,9,0x34e,0xeb2,0xeb2,0xeb2,0x336,0x149d,9,9,9,9, +0x34b,0x339,0x35d,0x33c,0x35d,0x35d,0x35d,9,0x35d,9,0x35d,0x35d,0x354,0x687,0x687,0x687, +0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,0x687,9,0x687, +0x687,0x687,0x687,0x687,0x687,0x687,0x35d,0x35d,0x354,0x354,0x354,0x354,0x354,0x684,0x684,0x684, +0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x684,0x351,0x684, +0x684,0x684,0x684,0x684,0x684,0x684,0x354,0x354,0x354,0x354,0x354,0xf5a,0x360,0x360,0x363,0x35d, +0x35d,0x360,0x357,0x9cf,0xb82,0xb7f,0x35a,0x9cf,0x35a,0x9cf,0x35a,0x9cf,0x35a,0x9cf,0x345,0x342, +0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x345,0x342,0x360,0x360,0x357,0x351, +0xb31,0xb2e,0xb7c,0xc7e,0xc7b,0xc81,0xc7e,0xc7b,0xd71,0xd74,0xd74,0xd74,0x9de,0x693,0x36f,0x372, +0x36f,0x36f,0x36f,0x372,0x36f,0x36f,0x36f,0x36f,0x372,0x9de,0x372,0x36f,0x690,0x690,0x690,0x690, +0x690,0x690,0x690,0x690,0x690,0x693,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690, +0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x690,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x68d,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a, +0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x68a,0x9d8,0x68d,0x369,0x36c,0x369,0x369,0x369,0x36c, +0x369,0x369,0x369,0x369,0x36c,0x9d8,0x36c,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, +0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x372,0x36c, +0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x366,0x92a,0x92d,0x90f,0x90f,0x1101, +0x9d2,0x9d2,0xb88,0xb85,0x9db,0x9d5,0x9db,0x9d5,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, +0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, +0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369, +0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x369,0x36f,0x372,0x36c,0x36f,0x369,0xb88,0xb85,0x36f, +0x369,0xb88,0xb85,0x36f,0x369,0xb88,0xb85,0xeb5,0x372,0x36c,0x372,0x36c,0x36f,0x369,0x372,0x36c, +0x36f,0x369,0x372,0x36c,0x372,0x36c,0x372,0x36c,0x36f,0x369,0x372,0x36c,0x372,0x36c,0x372,0x36c, +0x36f,0x369,0x372,0x36c,0x9de,0x9d8,0x372,0x36c,0x372,0x36c,0x372,0x36c,0x372,0x36c,0xd7a,0xd77, +0x372,0x36c,0xeb8,0xeb5,0xeb8,0xeb5,0xeb8,0xeb5,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb, +0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xbee,0xbeb,0xee5,0xee2,0xee5,0xee2,0xfd5,0xfd2,0xfd5,0xfd2, +0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0xfd5,0xfd2,0x113a,0x1137,0x1317,0x1314, +0x14d3,0x14d0,0x14d3,0x14d0,0x14d3,0x14d0,0x14d3,0x14d0,0xc,0x384,0x384,0x384,0x384,0x384,0x384,0x384, +0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384,0x384, +0x384,0x384,0x384,0xc,0xc,0x387,0x375,0x375,0x375,0x37b,0x375,0x378,0x18d8,0x37e,0x37e,0x37e, +0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e, +0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x37e,0x381, +0x18d8,0x38a,0x9e1,0xc,0xc,0x14a0,0x14a0,0x13bc,0xf,0x951,0x951,0x951,0x951,0x951,0x951,0x951, +0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0xd7d,0x951,0x951,0x951,0x951,0x951, +0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x951,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d,0x38d, +0x38d,0x38d,0xebb,0x38d,0x38d,0x38d,0x399,0x38d,0x390,0x38d,0x38d,0x39c,0x954,0xd80,0xd83,0xd80, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, +0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f,0x39f, +0x39f,0x39f,0x39f,0xf,0xf,0xf,0xf,0x18db,0x39f,0x39f,0x39f,0x396,0x393,0xf,0xf,0xf, +0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xf,0xc96,0xc96,0xc96,0xc96,0x13bf,0x14a3,0xf63,0xf63, +0xf63,0xf60,0xf60,0xd89,0x897,0xc90,0xc8d,0xc8d,0xc84,0xc84,0xc84,0xc84,0xc84,0xc84,0xf5d,0xf5d, +0xf5d,0xf5d,0xf5d,0x894,0x149a,0x1aeb,0xd8c,0x89a,0x12de,0x3ba,0x3bd,0x3bd,0x3bd,0x3bd,0x3bd,0x3ba, +0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0xf66,0xf66,0xf66,0xf66,0xf66,0x89d,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0x915,0xb28,0xb28,0xb28,0xc84,0xc8a, +0xc87,0xd86,0xd86,0xd86,0xd86,0xd86,0xd86,0x12db,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930, +0x930,0x930,0x3b4,0x3b1,0x3ae,0x3ab,0xb8b,0xb8b,0x912,0x3ba,0x3ba,0x3c6,0x3ba,0x3c0,0x3c0,0x3c0, +0x3c0,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x9e7,0x9e7,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x9e7,0x3bd,0x3ba,0x3bd,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba,0x3ba, +0x3ba,0x3ba,0x3ba,0x9e7,0x3ba,0x3ba,0x3ba,0x3bd,0x933,0x3ba,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5,0x3a5, +0x3a5,0x3a2,0x3ab,0x3a8,0x3a8,0x3a5,0x3a5,0x3a5,0x3a5,0x3c3,0x3c3,0x3a5,0x3a5,0x3ab,0x3a8,0x3a8, +0x3a8,0x3a5,0xc93,0xc93,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x3b7,0x9e7,0x9e7, +0x9e7,0x9e4,0x9e4,0xc93,0x9fc,0x9fc,0x9fc,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f6,0x9f3, +0x9f6,0x9f3,0x12,0x9ff,0x9f9,0x9ea,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9, +0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9,0x9f9, +0x9f9,0xc99,0xc99,0xc99,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0,0x9f0, +0x9f0,0x9f0,0x9f0,0x9f0,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x9ed,0x12, +0x12,0xc99,0xc99,0xc99,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9, +0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9,0xde9, +0xde9,0xde9,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7,0xfe7, +0xfe7,0xfe7,0xfe7,0xfe7,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, +0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05, +0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa05,0xa02,0xa02,0xa02,0xa02,0xa02,0xa02, +0xa02,0xa02,0xa02,0xa02,0xa02,0xb8e,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15,0x15, +0x15,0x15,0x15,0x15,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xefd,0xf00,0xf00, +0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00, +0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xf00,0xef4, +0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xef4,0xf03,0xf03,0xef7,0xef7,0xefa,0xf09,0xf06,0x102, +0x102,0x18ff,0x1902,0x1902,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xb01,0xb01,0xb04,0xb04,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01,0xb01, +0x6f,0x6f,0x6f,0x6f,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1605,0x1605,0x1605,0x1605,0x1605, +0x1605,0x1605,0x1605,0x1605,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x163e,0x163e,0x163e, +0x163e,0x163e,0x163e,0x163e,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x16b,0x16b,0x16b, +0x16b,0x16b,0x16b,0x16b,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5, +0x1c5,0x1c5,0x1c5,0x1c5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1476,0x1aa,0x1aa, +0x1aa,0x1aa,0x1aa,0x1aa,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x204,0x204,0x204,0x204,0x204, +0x204,0x204,0x204,0x204,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c,0x24c, +0x24c,0x24c,0x24c,0x24c,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x194d,0x252,0x252, +0x252,0x252,0x252,0x252,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1aaf,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e, +0x28e,0x28e,0x28e,0x28e,0x1740,0x1740,0x1740,0x1740,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a, +0x20a,0x20a,0x20a,0x20a,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, +0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x2a3,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1,0x1bb1, +0x2a3,0x1bb1,0x1bb1,0x2a3,0x16a4,0x16a4,0x16a4,0x16a4,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, +0x1f2,0x1f2,0x1f2,0x1f2,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, +0x2b8,0x2b8,0x2b8,0x2b8,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0xde0,0xde0,0xddd,0xddd,0xddd,0xde0,0xd5,0xd5,0xd5,0xd5,0xd5,0xd5, +0xd5,0xd5,0xd5,0xd5,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x216,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x17dc,0x17dc,0x222,0x17dc,0x17dc,0x222,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x222, +0x222,0x222,0x222,0x222,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x1a01,0x273,0x273, +0x273,0x273,0x1a04,0x19fe,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81, +0x1b81,0x1b81,0x1b81,0x1b81,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0x258,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, +0x1962,0x1962,0x1962,0x1962,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276,0x276, +0x276,0x276,0x276,0x276,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0,0,0,0,0x97b,0x97b, -3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +0,0,0x94e,0x94e,3,3,3,3,3,3,3,3,3,3,3,3, 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, -3,3,0x97b,0x97b,6,6,6,6,6,6,6,6,6,6,6,6, +3,3,3,3,3,3,0x94e,0x94e,6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c, -0xd8c,0xd8c,0xd8c,0xd8c,6,6,6,6,6,6,6,6,6,6,6,6, -6,6,6,6,0x1509,0x3d5,0x3e4,0x3e4,0x1b,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -0x3ea,0x1b,0x1b,0x3ea,0x3ea,0x1b,0x1b,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea, -0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x1b,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x1b,0x3ea,0x1b, -0x1b,0x1b,0x3ea,0x3ea,0x3ea,0x3ea,0x1b,0x1b,0x3d8,0xce4,0x3d5,0x3e4,0x3e4,0x3d5,0x3d5,0x3d5, -0x3d5,0x1b,0x1b,0x3e4,0x3e4,0x1b,0x1b,0x3e7,0x3e7,0x3db,0xddd,0x1b,0x1b,0x1b,0x1b,0x1b, -0x1b,0x1b,0x1b,0x3d5,0x1b,0x1b,0x1b,0x1b,0x3ed,0x3ed,0x1b,0x3ed,0x3ea,0x3ea,0x3d5,0x3d5, -0x1b,0x1b,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x3ea,0x3ea,0x3e1,0x3e1, -0x3de,0x3de,0x3de,0x3de,0x3de,0x3e1,0x3de,0x115e,0x18a2,0x189f,0x1947,0x1b,0x1e,0xce7,0x3f0,0xcea, -0x1e,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x1e,0x1e,0x1e,0x1e,0x3fc,0x3fc,0x1e,0x1e,0x3fc, -0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x1e,0x3fc,0x3fc, -0x3fc,0x3fc,0x3fc,0x3fc,0x3fc,0x1e,0x3fc,0x3ff,0x1e,0x3fc,0x3ff,0x1e,0x3fc,0x3fc,0x1e,0x1e, -0x3f3,0x1e,0x3f9,0x3f9,0x3f9,0x3f0,0x3f0,0x1e,0x1e,0x1e,0x1e,0x3f0,0x3f0,0x1e,0x1e,0x3f0, -0x3f0,0x3f6,0x1e,0x1e,0x1e,0xfbd,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x3ff,0x3ff,0x3ff, -0x3fc,0x1e,0x3ff,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x969,0x969,0x969,0x969,0x969,0x969, -0x969,0x969,0x969,0x969,0x3f0,0x3f0,0x3fc,0x3fc,0x3fc,0xfbd,0x194a,0x1e,0x1e,0x1e,0x1e,0x1e, -0x1e,0x1e,0x1e,0x1e,0x21,0x402,0x402,0x40b,0x21,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e, -0xcf3,0x40e,0x21,0x40e,0x40e,0x40e,0x21,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e, -0x40e,0x40e,0x40e,0x40e,0x40e,0x21,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x40e,0x21,0x40e,0x40e, -0x21,0x40e,0x40e,0x40e,0x40e,0x40e,0x21,0x21,0x405,0x40e,0x40b,0x40b,0x40b,0x402,0x402,0x402, -0x402,0x402,0x21,0x402,0x402,0x40b,0x21,0x40b,0x40b,0x408,0x21,0x21,0x40e,0x21,0x21,0x21, -0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x40e,0xcf3,0xced,0xced, -0x21,0x21,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x96c,0x1422,0xcf0,0x21,0x21, -0x21,0x21,0x21,0x21,0x21,0x1725,0x18a5,0x18a5,0x18a5,0x18a8,0x18a8,0x18a8,0x24,0x411,0x420,0x420, -0x24,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x24,0x24,0x426,0x426,0x24,0x24,0x426, -0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x426,0x24,0x426,0x426, -0x426,0x426,0x426,0x426,0x426,0x24,0x426,0x426,0x24,0xcf6,0x426,0x426,0x426,0x426,0x24,0x24, -0x414,0x426,0x411,0x411,0x420,0x411,0x411,0x411,0xfc0,0x24,0x24,0x420,0x423,0x24,0x24,0x423, -0x423,0x417,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x1ab5,0x411,0x411,0x24,0x24,0x24,0x24, -0x429,0x429,0x24,0x426,0x426,0x426,0xfc0,0xfc0,0x24,0x24,0x41d,0x41d,0x41d,0x41d,0x41d,0x41d, -0x41d,0x41d,0x41d,0x41d,0x41a,0xcf6,0x1344,0x1344,0x1344,0x1344,0x1344,0x1344,0x24,0x24,0x24,0x24, -0x24,0x24,0x24,0x24,0x27,0x27,0x42c,0x438,0x27,0x438,0x438,0x438,0x438,0x438,0x438,0x27, -0x27,0x27,0x438,0x438,0x438,0x27,0x438,0x438,0x43b,0x438,0x27,0x27,0x27,0x438,0x438,0x27, -0x438,0x27,0x438,0x438,0x27,0x27,0x27,0x438,0x438,0x27,0x27,0x27,0x438,0x438,0x438,0x27, -0x27,0x27,0x438,0x438,0x438,0x438,0x438,0x438,0x438,0x438,0xde0,0x438,0x438,0x438,0x27,0x27, -0x27,0x27,0x42c,0x432,0x42c,0x432,0x432,0x27,0x27,0x27,0x432,0x432,0x432,0x27,0x435,0x435, -0x435,0x42f,0x27,0x27,0xfc3,0x27,0x27,0x27,0x27,0x27,0x27,0x42c,0x27,0x27,0x27,0x27, -0x27,0x27,0x27,0x27,0x27,0x27,0xef7,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972,0x972, -0x96f,0x96f,0x96f,0xdb0,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcfc,0xcf9,0x27,0x27,0x27,0x27,0x27, -0x150c,0x44a,0x44a,0x44a,0x194d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x2a,0x44d,0x44d, -0x44d,0x2a,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d, -0x44d,0x2a,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x44d,0x150f,0x44d,0x44d,0x44d, -0x44d,0x44d,0x2a,0x2a,0x2a,0xfcc,0x43e,0x43e,0x43e,0x44a,0x44a,0x44a,0x44a,0x2a,0x43e,0x43e, -0x441,0x2a,0x43e,0x43e,0x43e,0x444,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x43e,0x43e,0x2a, -0xfcc,0xfcc,0x1728,0x2a,0x2a,0x2a,0x2a,0x2a,0x44d,0x44d,0xfc6,0xfc6,0x2a,0x2a,0x447,0x447, -0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x447,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x1a19, -0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0xfc9,0x17e5,0x1512,0x456,0x456,0x1950,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45c,0x2d,0x45c,0x45c,0x45c,0x2d,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c,0x2d,0x45c,0x45c,0x45c,0x45c,0x45c,0x45c, -0x45c,0x45c,0x45c,0x45c,0x2d,0x45c,0x45c,0x45c,0x45c,0x45c,0x2d,0x2d,0xcff,0xd02,0x456,0x450, -0x459,0x456,0x450,0x456,0x456,0x2d,0x450,0x459,0x459,0x2d,0x459,0x459,0x450,0x453,0x2d,0x2d, -0x2d,0x2d,0x2d,0x2d,0x2d,0x450,0x450,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x45c,0x2d, -0x45c,0x45c,0xf0f,0xf0f,0x2d,0x2d,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975,0x975, -0x2d,0xf12,0xf12,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d,0x2d, -0x18ab,0x1515,0x468,0x468,0x1ab8,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x30,0x46e,0x46e, -0x46e,0x30,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, -0x468,0x45f,0x45f,0x45f,0xfcf,0x30,0x468,0x468,0x468,0x30,0x46b,0x46b,0x46b,0x462,0x134a,0x17e8, -0x30,0x30,0x30,0x30,0x17eb,0x17eb,0x17eb,0x45f,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x17e8,0x172b, -0x46e,0x46e,0xfcf,0xfcf,0x30,0x30,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465,0x465, -0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0xfd2,0x17e8,0x17e8,0x17e8,0xfd5,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8,0xfd8, -0x33,0x1abb,0xa3e,0xa3e,0x33,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44, -0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0x33,0x33,0x33,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44, -0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0x33,0xa44, -0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0x33,0xa44,0x33,0x33,0xa44,0xa44,0xa44,0xa44, -0xa44,0xa44,0xa44,0x33,0x33,0x33,0xa38,0x33,0x33,0x33,0x33,0xa35,0xa3e,0xa3e,0xa35,0xa35, -0xa35,0x33,0xa35,0x33,0xa3e,0xa3e,0xa41,0xa3e,0xa41,0xa41,0xa41,0xa35,0x33,0x33,0x33,0x33, -0x33,0x33,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x1518,0x33,0x33,0xa3e,0xa3e, -0xa3b,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x489,0x489,0x489, -0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489, -0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x489,0x474,0x489,0x486, -0x474,0x474,0x474,0x474,0x474,0x474,0x47a,0x36,0x36,0x36,0x36,0x471,0x48f,0x48f,0x48f,0x48f, -0x48f,0x489,0x48c,0x477,0x477,0x477,0x477,0x477,0x477,0x474,0x477,0x47d,0x483,0x483,0x483,0x483, -0x483,0x483,0x483,0x483,0x483,0x483,0x480,0x480,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, +6,6,6,6,6,6,6,6,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, +0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,6,6,6,6,6,6,6,6, +6,6,6,6,6,6,6,6,0x14a9,0x3e1,0x3f0,0x3f0,0x18,0x3f6,0x3f6,0x3f6, +0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x18,0x3f6,0x3f6,0x18,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6, +0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6,0x3f6, +0x3f6,0x18,0x3f6,0x18,0x18,0x18,0x3f6,0x3f6,0x3f6,0x3f6,0x18,0x18,0x3e4,0xc9f,0x3e1,0x3f0, +0x3f0,0x3e1,0x3e1,0x3e1,0x3e1,0x18,0x18,0x3f0,0x3f0,0x18,0x18,0x3f3,0x3f3,0x3e7,0xd92,0x18, +0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x3e1,0x18,0x18,0x18,0x18,0x3f9,0x3f9,0x18,0x3f9, +0x3f6,0x3f6,0x3e1,0x3e1,0x18,0x18,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939,0x939, +0x3f6,0x3f6,0x3ed,0x3ed,0x3ea,0x3ea,0x3ea,0x3ea,0x3ea,0x3ed,0x3ea,0x1110,0x1839,0x1836,0x18de,0x18, +0x1b,0xca2,0x3fc,0xca5,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x1b,0x1b,0x1b,0x1b,0x408, +0x408,0x1b,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x408, +0x408,0x1b,0x408,0x408,0x408,0x408,0x408,0x408,0x408,0x1b,0x408,0x40b,0x1b,0x408,0x40b,0x1b, +0x408,0x408,0x1b,0x1b,0x3ff,0x1b,0x405,0x405,0x405,0x3fc,0x3fc,0x1b,0x1b,0x1b,0x1b,0x3fc, +0x3fc,0x1b,0x1b,0x3fc,0x3fc,0x402,0x1b,0x1b,0x1b,0xf6f,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b, +0x1b,0x40b,0x40b,0x40b,0x408,0x1b,0x40b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x93c,0x93c, +0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x93c,0x3fc,0x3fc,0x408,0x408,0x408,0xf6f,0x18e1,0x1b, +0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1b,0x1e,0x40e,0x40e,0x417,0x1e,0x41a,0x41a,0x41a, +0x41a,0x41a,0x41a,0x41a,0xcae,0x41a,0x1e,0x41a,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a, +0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a,0x41a, +0x41a,0x1e,0x41a,0x41a,0x1e,0x41a,0x41a,0x41a,0x41a,0x41a,0x1e,0x1e,0x411,0x41a,0x417,0x417, +0x417,0x40e,0x40e,0x40e,0x40e,0x40e,0x1e,0x40e,0x40e,0x417,0x1e,0x417,0x417,0x414,0x1e,0x1e, +0x41a,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e, +0x41a,0xcae,0xca8,0xca8,0x1e,0x1e,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f,0x93f, +0x13c2,0xcab,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x16b9,0x183c,0x183c,0x183c,0x183f,0x183f,0x183f, +0x21,0x41d,0x42c,0x42c,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x21,0x21,0x432, +0x432,0x21,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x432, +0x432,0x21,0x432,0x432,0x432,0x432,0x432,0x432,0x432,0x21,0x432,0x432,0x21,0xcb1,0x432,0x432, +0x432,0x432,0x21,0x21,0x420,0x432,0x41d,0x41d,0x42c,0x41d,0x41d,0x41d,0xf72,0x21,0x21,0x42c, +0x42f,0x21,0x21,0x42f,0x42f,0x423,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x1a49,0x41d,0x41d, +0x21,0x21,0x21,0x21,0x435,0x435,0x21,0x432,0x432,0x432,0xf72,0xf72,0x21,0x21,0x429,0x429, +0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x429,0x426,0xcb1,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea, +0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x21,0x24,0x24,0x438,0x444,0x24,0x444,0x444,0x444, +0x444,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x444,0x24,0x444,0x444,0x447,0x444,0x24,0x24, +0x24,0x444,0x444,0x24,0x444,0x24,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x24,0x24,0x24, +0x444,0x444,0x444,0x24,0x24,0x24,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0x444,0xd95,0x444, +0x444,0x444,0x24,0x24,0x24,0x24,0x438,0x43e,0x438,0x43e,0x43e,0x24,0x24,0x24,0x43e,0x43e, +0x43e,0x24,0x441,0x441,0x441,0x43b,0x24,0x24,0xf75,0x24,0x24,0x24,0x24,0x24,0x24,0x438, +0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0x24,0xea9,0x945,0x945,0x945,0x945,0x945, +0x945,0x945,0x945,0x945,0x942,0x942,0x942,0xd65,0xcb4,0xcb4,0xcb4,0xcb4,0xcb4,0xcb7,0xcb4,0x24, +0x24,0x24,0x24,0x24,0x14ac,0x456,0x456,0x456,0x18e4,0x459,0x459,0x459,0x459,0x459,0x459,0x459, +0x459,0x27,0x459,0x459,0x459,0x27,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, +0x459,0x459,0x459,0x459,0x459,0x27,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459,0x459, +0x14af,0x459,0x459,0x459,0x459,0x459,0x27,0x27,0x1aee,0xf7e,0x44a,0x44a,0x44a,0x456,0x456,0x456, +0x456,0x27,0x44a,0x44a,0x44d,0x27,0x44a,0x44a,0x44a,0x450,0x27,0x27,0x27,0x27,0x27,0x27, +0x27,0x44a,0x44a,0x27,0xf7e,0xf7e,0x16bc,0x27,0x27,0x1af1,0x27,0x27,0x459,0x459,0xf78,0xf78, +0x27,0x27,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x453,0x27,0x27,0x27,0x27, +0x27,0x27,0x27,0x19ad,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0xf7b,0x177c,0x14b2,0x462,0x462, +0x18e7,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468,0x468,0x2a,0x468,0x468, +0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468, +0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x468,0x2a,0x468,0x468,0x468,0x468,0x468,0x2a,0x2a, +0xcba,0xcbd,0x462,0x45c,0x465,0x462,0x45c,0x462,0x462,0x2a,0x45c,0x465,0x465,0x2a,0x465,0x465, +0x45c,0x45f,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x45c,0x45c,0x2a,0x2a,0x2a,0x2a,0x2a, +0x2a,0x1af4,0x468,0x2a,0x468,0x468,0xec1,0xec1,0x2a,0x2a,0x948,0x948,0x948,0x948,0x948,0x948, +0x948,0x948,0x948,0x948,0x2a,0xec4,0xec4,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a,0x2a, +0x2a,0x2a,0x2a,0x2a,0x1842,0x14b5,0x474,0x474,0x1a4c,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, +0x47a,0x2d,0x47a,0x47a,0x47a,0x2d,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, +0x47a,0x47a,0x47a,0x47a,0x474,0x46b,0x46b,0x46b,0xf81,0x2d,0x474,0x474,0x474,0x2d,0x477,0x477, +0x477,0x46e,0x12f0,0x177f,0x2d,0x2d,0x2d,0x2d,0x1782,0x1782,0x1782,0x46b,0x177f,0x177f,0x177f,0x177f, +0x177f,0x177f,0x177f,0x16bf,0x47a,0x47a,0xf81,0xf81,0x2d,0x2d,0x471,0x471,0x471,0x471,0x471,0x471, +0x471,0x471,0x471,0x471,0xf84,0xf84,0xf84,0xf84,0xf84,0xf84,0x177f,0x177f,0x177f,0xf87,0xf8a,0xf8a, +0xf8a,0xf8a,0xf8a,0xf8a,0x30,0x1a4f,0xa11,0xa11,0x30,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, +0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0x30,0x30,0xa17,0xa17, +0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17, +0xa17,0xa17,0x30,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0xa17,0x30,0x30, +0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0xa17,0x30,0x30,0x30,0xa0b,0x30,0x30,0x30,0x30,0xa08, +0xa11,0xa11,0xa08,0xa08,0xa08,0x30,0xa08,0x30,0xa11,0xa11,0xa14,0xa11,0xa14,0xa14,0xa14,0xa08, +0x30,0x30,0x30,0x30,0x30,0x30,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8,0x14b8, +0x30,0x30,0xa11,0xa11,0xa0e,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30,0x30, +0x33,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495, +0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495,0x495, +0x495,0x480,0x495,0x492,0x480,0x480,0x480,0x480,0x480,0x480,0x486,0x33,0x33,0x33,0x33,0x47d, +0x49b,0x49b,0x49b,0x49b,0x49b,0x495,0x498,0x483,0x483,0x483,0x483,0x483,0x483,0x480,0x483,0x489, +0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48f,0x48c,0x48c,0x33,0x33,0x33,0x33, +0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33, +0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x33,0x36,0x4aa,0x4aa,0x36, +0x4aa,0x36,0x19b3,0x4aa,0x4aa,0x19b3,0x4aa,0x36,0x19b3,0x4aa,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3,0x19b3, +0x4aa,0x4aa,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa, +0x36,0x4aa,0x36,0x4aa,0x19b3,0x19b3,0x4aa,0x4aa,0x19b3,0x4aa,0x4aa,0x4aa,0x4aa,0x49e,0x4aa,0x4a7, +0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x19b0,0x49e,0x49e,0x4aa,0x36,0x36,0x4b3,0x4b3,0x4b3,0x4b3, +0x4b3,0x36,0x4b0,0x36,0x4a1,0x4a1,0x4a1,0x4a1,0x4a1,0x49e,0x36,0x36,0x4a4,0x4a4,0x4a4,0x4a4, +0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x4a4,0x36,0x36,0x4ad,0x4ad,0x13c5,0x13c5,0x36,0x36,0x36,0x36, 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, -0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x39,0x49e,0x49e,0x39,0x49e,0x39,0x1a1f,0x49e, -0x49e,0x1a1f,0x49e,0x39,0x1a1f,0x49e,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x49e,0x49e,0x49e,0x49e, -0x1a1f,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x49e,0x1a1f,0x49e,0x49e,0x49e,0x39,0x49e,0x39,0x49e, -0x1a1f,0x1a1f,0x49e,0x49e,0x1a1f,0x49e,0x49e,0x49e,0x49e,0x492,0x49e,0x49b,0x492,0x492,0x492,0x492, -0x492,0x492,0x1a1c,0x492,0x492,0x49e,0x39,0x39,0x4a7,0x4a7,0x4a7,0x4a7,0x4a7,0x39,0x4a4,0x39, -0x495,0x495,0x495,0x495,0x495,0x492,0x39,0x39,0x498,0x498,0x498,0x498,0x498,0x498,0x498,0x498, -0x498,0x498,0x39,0x39,0x4a1,0x4a1,0x1425,0x1425,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, +0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x98a,0x98a,0x98a,0x98d, +0x98a,0x98a,0x98a,0x98a,0x39,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a, +0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98d,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a,0x98a, +0x98a,0x98a,0x98a,0x98a,0x98a,0x98d,0xa26,0xf96,0xf96,0x39,0x39,0x39,0x39,0x957,0x957,0x95a, +0x957,0x95a,0x95a,0x963,0x95a,0x963,0x957,0x957,0x957,0x957,0x957,0x984,0x957,0x95a,0x95d,0x95d, +0x960,0x969,0x95d,0x95d,0x98a,0x98a,0x98a,0x98a,0x12f9,0x12f3,0x12f3,0x12f3,0x957,0x957,0x957,0x95a, +0x957,0x957,0xa1a,0x957,0x39,0x957,0x957,0x957,0x957,0x95a,0x957,0x957,0x957,0x957,0x95a,0x957, +0x957,0x957,0x957,0x95a,0x957,0x957,0x957,0x957,0x95a,0x957,0xa1a,0xa1a,0xa1a,0x957,0x957,0x957, +0x957,0x957,0x957,0x957,0xa1a,0x95a,0xa1a,0xa1a,0xa1a,0x39,0xa23,0xa23,0xa20,0xa20,0xa20,0xa20, +0xa20,0xa20,0xa1d,0xa20,0xa20,0xa20,0xa20,0xa20,0xa20,0x39,0xf8d,0xa20,0xd98,0xd98,0xf90,0xf93, +0xf8d,0x1113,0x1113,0x1113,0x1113,0x12f6,0x12f6,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, 0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39, -0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x9b7,0x9b7,0x9b7,0x9ba,0x9b7,0x9b7,0x9b7,0x9b7, -0x3c,0x9b7,0x9b7,0x9b7,0x9b7,0x9ba,0x9b7,0x9b7,0x9b7,0x9b7,0x9ba,0x9b7,0x9b7,0x9b7,0x9b7,0x9ba, -0x9b7,0x9b7,0x9b7,0x9b7,0x9ba,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7,0x9b7, -0x9b7,0x9ba,0xa53,0xfe4,0xfe4,0x3c,0x3c,0x3c,0x3c,0x984,0x984,0x987,0x984,0x987,0x987,0x990, -0x987,0x990,0x984,0x984,0x984,0x984,0x984,0x9b1,0x984,0x987,0x98a,0x98a,0x98d,0x996,0x98a,0x98a, -0x9b7,0x9b7,0x9b7,0x9b7,0x1353,0x134d,0x134d,0x134d,0x984,0x984,0x984,0x987,0x984,0x984,0xa47,0x984, -0x3c,0x984,0x984,0x984,0x984,0x987,0x984,0x984,0x984,0x984,0x987,0x984,0x984,0x984,0x984,0x987, -0x984,0x984,0x984,0x984,0x987,0x984,0xa47,0xa47,0xa47,0x984,0x984,0x984,0x984,0x984,0x984,0x984, -0xa47,0x987,0xa47,0xa47,0xa47,0x3c,0xa50,0xa50,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4a,0xa4d, -0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0x3c,0xfdb,0xa4d,0xde3,0xde3,0xfde,0xfe1,0xfdb,0x1161,0x1161,0x1161, -0x1161,0x1350,0x1350,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c,0x3c, -0x3c,0x3c,0x3c,0x3c,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x3f,0x142b,0x3f,0x3f,0x3f,0x3f, -0x3f,0x142b,0x3f,0x3f,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa, -0x4aa,0x4aa,0x4aa,0x4aa,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2,0xa7d,0x42,0xa7d,0xa7d, -0xa7d,0xa7d,0x42,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0x42,0xa7d,0x42,0xa7d,0xa7d, -0xa7d,0xa7d,0x42,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2,0xa7d,0x42,0xa7d,0xa7d, -0xa7d,0xa7d,0x42,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2,0xa7d,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0x42,0x42, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0x42,0xa7d,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0x42,0x42, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0x42, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2, -0xa7d,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0x42,0x42,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -0xa7d,0xa7d,0xa7d,0x42,0x42,0x1356,0x1356,0xdec,0xdef,0xa77,0xa80,0xa74,0xa74,0xa74,0xa74,0xa80, -0xa80,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa7a,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, -0xa71,0xa71,0xa71,0xa71,0xa71,0x42,0x42,0x42,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83, -0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0x1731,0x45,0x45, -0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x45,0x45,0xa95,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98, -0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98,0xa98, -0xa98,0xa98,0xa98,0xa92,0xa8f,0x48,0x48,0x48,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e, -0xa9e,0xa9e,0xa9e,0xa9b,0xa9b,0xa9b,0xa9e,0xa9e,0xa9e,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b,0x151b, -0x151b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xabf,0xabf,0xabf,0xabf,0xabf,0xabf,0xaa1,0xabf, -0xabf,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa4,0xaa7,0xaa4,0xab6,0xab6,0xab9,0xac2, -0xab0,0xaad,0xab6,0xab3,0xac2,0xd05,0x4e,0x4e,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc,0xabc, -0xabc,0xabc,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, -0xd08,0xd08,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xad1,0xad1,0xb52,0xb55,0xad7,0xb4f,0xad4,0xad1, -0xada,0xae9,0xadd,0xaec,0xaec,0xaec,0xac8,0x51,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, -0xae0,0xae0,0x51,0x51,0x51,0x51,0x51,0x51,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0x1953,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xae3,0xacb,0x1002,0x51,0x51,0x51,0x51,0x51,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x54,0x54, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x54,0x54,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x54,0x4ce,0x54,0x4ce,0x54,0x4ce,0x54,0x4ce,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x54,0x54,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x54,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4c5,0x4cb,0x4c5,0x4c5,0x4c2,0x4cb,0x4cb,0x4cb,0x54,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4c2,0x4c2,0x4c2,0x4cb,0x4cb,0x4cb,0x4cb,0x54,0x54,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x54,0x4c2,0x4c2,0x4c2,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4c2,0x4c2,0x4c2,0x54,0x54,0x4cb,0x4cb,0x4cb,0x54,0x4cb,0x4cb, -0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4c8,0x4c5,0x54,0xbca,0xbcd,0xbcd,0xbcd,0x100b,0x57,0x14f7,0x14f7, -0x14f7,0x14f7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x522,0xbdf,0x5a,0x5a,0x6e1,0x522,0x522,0x522, -0x522,0x522,0x528,0x53a,0x528,0x534,0x52e,0x6e4,0x51f,0x6de,0x6de,0x6de,0x6de,0x51f,0x51f,0x51f, -0x51f,0x51f,0x525,0x537,0x525,0x531,0x52b,0x5a,0xdfb,0xdfb,0xdfb,0xdfb,0xdfb,0x1359,0x1359,0x1359, -0x1359,0x1359,0x1359,0x1359,0x1359,0x5a,0x5a,0x5a,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d, -0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x549,0x549,0x549,0x549,0x549,0x549,0x549,0x549, -0x549,0x549,0x549,0x549,0x549,0x546,0x546,0x546,0x546,0x549,0xafb,0xafe,0xbe5,0xbeb,0xbeb,0xbe8, -0xbe8,0xbe8,0xbe8,0xe01,0xf15,0xf15,0xf15,0xf15,0x114c,0x60,0x60,0x60,0x60,0x60,0x60,0x60, -0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x60,0x579,0x579,0x579,0xb07,0xf1e,0x1011,0x1011,0x1011, -0x1011,0x12ab,0x1737,0x1737,0x63,0x63,0x63,0x63,0x70b,0x70b,0x70b,0x70b,0x70e,0x70e,0x70e,0x70e, -0x70e,0x70e,0x585,0x585,0x582,0x582,0x582,0x582,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0xb13,0xb13,0x66, -0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, -0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af,0x5af, -0x5af,0x5af,0x5af,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69, -0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e, -0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e, -0xb2e,0xb2e,0x6c,0xb2e,0xb2e,0xb2e,0xb2e,0xb31,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e, -0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb31,0x6c,0x6c,0x6c,0x6c, -0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, -0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0x6f,0x6f, -0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x6f,0x75,0x843,0x83d,0x843,0x83d,0x843,0x83d,0x843, -0x83d,0x843,0x83d,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d, -0x840,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d,0x83d,0x83d,0x83d,0x843,0x83d,0x843,0x83d,0x843, -0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x843,0x83d,0x83d,0x83d,0x83d,0x83d,0x840,0xc93,0xc93,0x75, -0x75,0x954,0x954,0x91e,0x91e,0x846,0x849,0xc90,0x78,0x78,0x78,0x78,0x78,0x85b,0x85b,0x85b, -0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b, -0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x85b,0x113a,0x191a,0x1a01,0x7b,0x85e,0x85e,0x85e, -0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x7b, -0x927,0x927,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a,0x92a, -0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867, -0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0x867,0xd98,0xd98,0x7e, -0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0x81,0x81,0x81, -0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, -0xb4c,0xc9c,0xb4c,0xb4c,0xb4c,0xc9c,0xb4c,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, -0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df, -0x9db,0x9db,0x9db,0x9db,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x87, -0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254, -0x60c,0x60c,0x60c,0x60c,0x60c,0x60c,0x60c,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a, -0x8a,0x8a,0x8a,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x8a,0x8a,0x8a,0x8a,0x8a,0xb1f,0x5fd,0x603, -0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x600,0x603,0x603,0x603,0x603,0x603,0x603, -0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x8a,0x603,0x603,0x603,0x603,0x603,0x8a,0x603,0x8a, -0x603,0x603,0x8a,0x603,0x603,0x8a,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x606, -0x61e,0x618,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618, -0x136b,0x136b,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x8d,0x8d,0x8d,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x61e,0x618, -0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, -0x61b,0x618,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x618,0x61b,0x618,0x618,0x61b,0x61b,0x618,0x618, -0x618,0x618,0x618,0x61b,0x618,0x618,0x61b,0x618,0x61b,0x61b,0x61b,0x618,0x61b,0x61b,0x61b,0x61b, -0x8d,0x8d,0x61b,0x61b,0x61b,0x61b,0x618,0x618,0x61b,0x618,0x618,0x618,0x618,0x61b,0x618,0x618, -0x618,0x618,0x618,0x61b,0x61b,0x61b,0x618,0x618,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d,0x8d, +0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x39,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x3c,0x13cb, +0x3c,0x3c,0x3c,0x3c,0x3c,0x13cb,0x3c,0x3c,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, +0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7, +0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f, +0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7, +0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0x3f,0xa50,0xa50, +0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f,0xa50,0x3f,0xa50,0xa50, +0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xda7,0xa50,0x3f,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0x3f,0x3f,0x12fc,0x12fc,0xda1,0xda4,0xa4a,0xa53,0xa47, +0xa47,0xa47,0xa47,0xa53,0xa53,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa4d,0xa44,0xa44, +0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0xa44,0x3f,0x3f,0x3f,0xa56,0xa56,0xa56,0xa56, +0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56, +0xa56,0x16c5,0x42,0x42,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x16c2,0x42,0x42,0xa68,0xa6b,0xa6b,0xa6b, +0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b, +0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa6b,0xa65,0xa62,0x45,0x45,0x45,0xa71,0xa71,0xa71,0xa71, +0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa6e,0xa6e,0xa6e,0xa71,0xa71,0xa71,0x14bb,0x14bb,0x14bb, +0x14bb,0x14bb,0x14bb,0x14bb,0x14bb,0x48,0x48,0x48,0x48,0x48,0x48,0x48,0xa92,0xa92,0xa92,0xa92, +0xa92,0xa92,0xa74,0xa92,0xa92,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa77,0xa7a,0xa77, +0xa89,0xa89,0xa8c,0xa95,0xa83,0xa80,0xa89,0xa86,0xa95,0xcc0,0x4b,0x4b,0xa8f,0xa8f,0xa8f,0xa8f, +0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0xa8f,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xcc3,0xcc3,0xcc3,0xcc3, +0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0xcc3,0x4b,0x4b,0x4b,0x4b,0x4b,0x4b,0xaa4,0xaa4,0xb1c,0xb1f, +0xaaa,0xb19,0xaa7,0xaa4,0xaad,0xabc,0xab0,0xabf,0xabf,0xabf,0xa9b,0x1af7,0xab3,0xab3,0xab3,0xab3, +0xab3,0xab3,0xab3,0xab3,0xab3,0xab3,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0x18ea,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0x4e,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xa9e,0xfb4,0x4e,0x4e,0x4e,0x4e,0x4e,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x51,0x51,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x51,0x51,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x51,0x4da,0x51,0x4da,0x51,0x4da,0x51,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x4d7,0x51,0x51,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d1,0x4d7,0x4d1,0x4d1,0x4ce,0x4d7,0x4d7, +0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4ce,0x4ce,0x4ce,0x4d7,0x4d7,0x4d7,0x4d7, +0x51,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x51,0x4ce,0x4ce,0x4ce,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4ce,0x4ce,0x4ce,0x51,0x51,0x4d7,0x4d7, +0x4d7,0x51,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d4,0x4d1,0x51,0xb94,0xb97,0xb97,0xb97, +0xfbd,0x54,0x1497,0x1497,0x1497,0x1497,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x4e3,0x52e,0xba9,0x57,0x57, +0x6c9,0x52e,0x52e,0x52e,0x52e,0x52e,0x534,0x546,0x534,0x540,0x53a,0x6cc,0x52b,0x6c6,0x6c6,0x6c6, +0x6c6,0x52b,0x52b,0x52b,0x52b,0x52b,0x531,0x543,0x531,0x53d,0x537,0x57,0xdb0,0xdb0,0xdb0,0xdb0, +0xdb0,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x12ff,0x57,0x57,0x57,0x1afa,0x5a,0x5a,0x5a, +0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x5a,0x555,0x555,0x555,0x555, +0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x555,0x552,0x552,0x552,0x552,0x555,0xacb,0xacb, +0xbaf,0xbb5,0xbb5,0xbb2,0xbb2,0xbb2,0xbb2,0xdb6,0xec7,0xec7,0xec7,0xec7,0x10fe,0x5d,0x5d,0x5d, +0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x5d,0x585,0x585,0x585,0xad4, +0xed0,0xfc3,0xfc3,0xfc3,0xfc3,0x125d,0x16cb,0x16cb,0x60,0x60,0x60,0x60,0x6f3,0x6f3,0x6f3,0x6f3, +0x6f3,0x6f3,0x6f3,0x6f3,0x6f3,0x6f3,0x591,0x591,0x58e,0x58e,0x58e,0x58e,0x5b2,0x5b2,0x5b2,0x5b2, +0x5b2,0xadd,0xadd,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63, +0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x63,0x5b5,0x5b5,0x5b5,0x5b5, +0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x5b5,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66, +0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0x69,0xaf8,0xaf8,0xaf8,0xaf8,0xafb,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xafb, +0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0x69,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x6c,0x72,0x813,0x80d,0x813, +0x80d,0x813,0x80d,0x813,0x80d,0x813,0x80d,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d, +0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x80d,0x80d,0x80d,0x813, +0x80d,0x813,0x80d,0x813,0x80d,0x80d,0x80d,0x80d,0x80d,0x80d,0x813,0x80d,0x80d,0x80d,0x80d,0x80d, +0x810,0xc4e,0xc4e,0x72,0x72,0x927,0x927,0x8ee,0x8ee,0x816,0x819,0xc4b,0x75,0x75,0x75,0x75, +0x75,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b, +0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x82b,0x10ec,0x18b1,0x1998, +0x78,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, +0x82e,0x82e,0x82e,0x78,0x8f7,0x8f7,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa,0x8fa, +0x8fa,0x8fa,0x8fa,0x8fa,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837, +0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837,0x837, +0x837,0xd4a,0xd4a,0x7b,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xb10,0x7e,0x7e,0x7e,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, +0xb16,0xb16,0xb16,0xb16,0xb16,0xc57,0xb16,0xb16,0xb16,0xc57,0xb16,0x81,0x81,0x81,0x81,0x81, +0x81,0x81,0x81,0x81,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, +0x1191,0x1191,0x1191,0x1191,0x9ae,0x9ae,0x9ae,0x9ae,0x84,0x84,0x84,0x84,0x84,0x84,0x84,0x84, +0x84,0x84,0x84,0x84,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206, +0x1206,0x1206,0x1206,0x1206,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x5fa,0x87,0x87,0x87,0x87,0x87, +0x87,0x87,0x87,0x87,0x87,0x87,0x87,0x5e8,0x5e8,0x5e8,0x5e8,0x5e8,0x87,0x87,0x87,0x87, +0x87,0xae9,0x5eb,0x5f1,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5f7,0x5ee,0x5f1,0x5f1, +0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x5f1,0x5f1, +0x5f1,0x87,0x5f1,0x87,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x87,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1,0x5f1, +0x5f1,0x5f1,0x5f1,0x5f4,0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, +0x603,0x609,0x606,0x600,0x1311,0x1311,0x1afd,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a, +0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x8a,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x606, +0x600,0x606,0x606,0x600,0x600,0x600,0x600,0x603,0x600,0x600,0x603,0x600,0x603,0x603,0x603,0x600, +0x603,0x603,0x603,0x603,0x8a,0x8a,0x603,0x603,0x603,0x603,0x600,0x600,0x603,0x600,0x600,0x600, +0x600,0x603,0x600,0x600,0x600,0x600,0x600,0x603,0x603,0x603,0x600,0x600,0x8a,0x8a,0x8a,0x8a, +0x8a,0x8a,0x8a,0x1afd,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, +0xb34,0xb34,0xb34,0xb34,0x84f,0x861,0x85e,0x861,0x85e,0xc6c,0xc6c,0xd56,0xd53,0x852,0x852,0x852, +0x852,0x864,0x864,0x864,0x87c,0x87f,0x88e,0x8d,0x882,0x885,0x891,0x891,0x879,0x870,0x86a,0x870, +0x86a,0x870,0x86a,0x86d,0x86d,0x888,0x888,0x88b,0x888,0x888,0x888,0x8d,0x888,0x876,0x873,0x86d, +0x8d,0x8d,0x8d,0x8d,0x612,0x61e,0x612,0xbe8,0x612,0x90,0x612,0x61e,0x612,0x61e,0x612,0x61e, +0x612,0x61e,0x612,0x61e,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, +0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b, +0x615,0x90,0x90,0x60f,0x750,0x753,0x768,0x76b,0x74a,0x753,0x753,0x96,0x732,0x735,0x735,0x735, +0x735,0x732,0x732,0x96,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0xaec,0xaec,0xaec, +0x9b1,0x72c,0x621,0x621,0x96,0x77a,0x759,0x74a,0x753,0x750,0x74a,0x75c,0x74d,0x747,0x74a,0x768, +0x75f,0x756,0x777,0x74a,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x774,0x765,0x762, +0x768,0x768,0x768,0x77a,0x73b,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, +0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738,0x738, +0x738,0x738,0x738,0x96,0x96,0x96,0x738,0x738,0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738, +0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738,0x738,0x738,0x738,0x738,0x96,0x96,0x738,0x738, +0x738,0x96,0x96,0x96,0xb37,0xb37,0xb37,0xb37,0x99,0x99,0x99,0x99,0x99,0x99,0x99,0x99, +0x99,0x184e,0x184e,0x184e,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d, +0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0xb3d,0x9c,0x9c,0x9c,0x9c,0x9c,0x1614,0x1614,0x1614,0x1614, +0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0xb46,0xb46,0xb46,0xb46, +0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, +0xb46,0xb46,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0x9f,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xa2,0xa2,0xfcf,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0x16d1,0x16d1,0x16d1,0x16d1, +0x16d1,0x16d1,0x16d1,0x16d1,0x16d1,0x1b00,0x1b00,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2, +0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xa5,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xa5, +0xa5,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xa5,0xb67,0xa5,0xb67,0xb67,0xb67,0xb67,0xcde,0xb67,0xb67, +0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67, +0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xa5,0xb6a,0xa5,0xa5,0xa5,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xa5,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xdc8,0xdc8,0xa5,0xa5, 0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, -0x61e,0x61e,0x978,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x615,0x615,0xc24,0xdb3,0x8d,0x8d, -0x87f,0x891,0x88e,0x891,0x88e,0xcb1,0xcb1,0xda4,0xda1,0x882,0x882,0x882,0x882,0x894,0x894,0x894, -0x8ac,0x8af,0x8be,0x90,0x8b2,0x8b5,0x8c1,0x8c1,0x8a9,0x8a0,0x89a,0x8a0,0x89a,0x8a0,0x89a,0x89d, -0x89d,0x8b8,0x8b8,0x8bb,0x8b8,0x8b8,0x8b8,0x90,0x8b8,0x8a6,0x8a3,0x89d,0x90,0x90,0x90,0x90, -0x62a,0x636,0x62a,0xc27,0x62a,0x93,0x62a,0x636,0x62a,0x636,0x62a,0x636,0x62a,0x636,0x62a,0x636, -0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x633, -0x62d,0x633,0x62d,0x630,0x636,0x633,0x62d,0x633,0x62d,0x633,0x62d,0x633,0x62d,0x93,0x93,0x627, -0x77d,0x780,0x795,0x798,0x777,0x780,0x780,0x99,0x75f,0x762,0x762,0x762,0x762,0x75f,0x75f,0x99, -0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0x96,0xb22,0xb22,0xb22,0x9de,0x759,0x639,0x639, -0x99,0x7a7,0x786,0x777,0x780,0x77d,0x777,0x789,0x77a,0x774,0x777,0x795,0x78c,0x783,0x7a4,0x777, -0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x7a1,0x792,0x78f,0x795,0x795,0x795,0x7a7, -0x768,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765, -0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x765,0x99, -0x99,0x99,0x765,0x765,0x765,0x765,0x765,0x765,0x99,0x99,0x765,0x765,0x765,0x765,0x765,0x765, -0x99,0x99,0x765,0x765,0x765,0x765,0x765,0x765,0x99,0x99,0x765,0x765,0x765,0x99,0x99,0x99, -0xb6d,0xb6d,0xb6d,0xb6d,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x9c,0x18b7,0x18b7,0x18b7, -0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73, -0xb73,0xb73,0xb73,0x9f,0x9f,0x9f,0x9f,0x9f,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683, -0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xa2,0xa2, -0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xa2,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xa5, -0xa5,0x101d,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, -0x173d,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5, -0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xa5,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xa8,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xa8,0xba0,0xba0,0xa8,0xa8,0xba0,0xa8,0xa8,0xba0,0xba0,0xa8, -0xa8,0xba0,0xba0,0xba0,0xba0,0xa8,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xb9d,0xb9d, -0xb9d,0xb9d,0xa8,0xb9d,0xa8,0xb9d,0xb9d,0xb9d,0xb9d,0xd29,0xb9d,0xb9d,0xa8,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xa8,0xba0, -0xba0,0xba0,0xba0,0xa8,0xa8,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xa8,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xa8,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xba0,0xba0,0xa8,0xba0,0xba0,0xba0,0xba0,0xa8,0xba0,0xba0,0xba0,0xba0,0xba0,0xa8,0xba0,0xa8, -0xa8,0xa8,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xa8,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xe16,0xe16,0xa8,0xa8,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb97,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xf2d,0xf2a, -0xa8,0xa8,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a, -0xb9a,0xb9a,0xb9a,0xb9a,0xab,0xba6,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab, -0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab,0xab, -0xab,0xab,0xab,0xab,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36,0xc36, -0xc36,0xae,0xc36,0xc36,0xc36,0xc36,0xc30,0xc30,0xc33,0xae,0xae,0xae,0xae,0xae,0xae,0xae, -0xae,0xae,0xae,0xae,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f, -0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc3f,0xc39,0xc39,0xc3c,0xca5,0xca5,0xb1,0xb1,0xb1,0xb1,0xb1, -0xb1,0xb1,0xb1,0xb1,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc45, -0xc45,0xc45,0xc45,0xc45,0xc45,0xc45,0xc42,0xc42,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4, -0xb4,0xb4,0xb4,0xb4,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b,0xc4b, -0xc4b,0xb7,0xc4b,0xc4b,0xc4b,0xb7,0xc48,0xc48,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7,0xb7, -0xb7,0xb7,0xb7,0xb7,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b, -0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b,0xd3b, -0xd3b,0x1539,0x1539,0xba,0xd2c,0xd2c,0xd2c,0xd38,0xd38,0xd38,0xd38,0xd2c,0xd2c,0xd38,0xd38,0xd38, -0xba,0xba,0xba,0xba,0xd38,0xd38,0xd2c,0xd38,0xd38,0xd38,0xd38,0xd38,0xd38,0xd2f,0xd2f,0xd2f, -0xba,0xba,0xba,0xba,0xd32,0xba,0xba,0xba,0xd3e,0xd3e,0xd35,0xd35,0xd35,0xd35,0xd35,0xd35, -0xd35,0xd35,0xd35,0xd35,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xd41, -0xd41,0xd41,0xd41,0xd41,0xd41,0xd41,0xbd,0xbd,0xd41,0xd41,0xd41,0xd41,0xd41,0xbd,0xbd,0xbd, -0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0xbd,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0xc0,0xc0,0x153c,0x153c, -0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0xc0,0x1abe,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xc3,0xd68,0xd68,0xd68, -0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68, -0xd68,0xd68,0xd68,0xc3,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68, -0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xc3,0xd68,0xd68,0xc3,0xd68,0xd68,0xd68,0xd68,0xd68, -0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xc3,0xc3,0xd68,0xd68,0xd68,0xd68, -0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xd68,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3, -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3, -0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xc3,0xd6b,0xd6b,0xd6b,0xd6b, -0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xc6,0xc6,0xc6,0xc6,0xc6,0xdad,0xdad,0xdad,0xc9, -0xc9,0xc9,0xc9,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7, -0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xda7,0xc9,0xc9,0xc9,0xdaa, -0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xdaa,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71, -0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xd71, -0xd71,0xd71,0xd71,0xd71,0xd71,0xd71,0xcc,0xd6e,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a, -0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a, -0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xd7a,0xcf,0xcf,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77,0xd77, -0xd77,0xd77,0xcf,0xcf,0xcf,0xcf,0xcf,0xcf,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b, -0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd2,0xd2, -0xd7d,0xd2,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d, -0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd7d,0xd2,0xd7d,0xd7d,0xd2,0xd2,0xd2, -0xd7d,0xd2,0xd2,0xd7d,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80, -0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd5,0xd5,0xd5,0xd5,0xd5, -0xd5,0xd5,0xd5,0xd5,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0x153f, -0x153f,0x17f1,0x17f1,0xdb,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119,0x1119, -0x1acd,0x132,0x132,0x132,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, -0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe3a,0xe3a,0xe40,0xe40,0xe3a, -0xde,0xde,0xe3d,0xe3d,0x1149,0x1149,0x1149,0x1149,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1,0xe1, -0xe1,0xe1,0xe1,0xe1,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2,0xca2, -0xca2,0xca2,0xca2,0xca2,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1542,0x1542,0x1542,0x1542,0x1542, -0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1545,0x18bd,0x18bd,0x193e,0x18bd,0xe4,0x17f4, -0x1377,0x118b,0xf3c,0xf3c,0xe55,0xe52,0xe55,0xe52,0xe52,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0x1194, -0x1191,0x1194,0x1191,0x118e,0x118e,0x118e,0x1434,0x1431,0xe7,0xe7,0xe7,0xe7,0xe7,0xe4f,0xe4c,0xe4c, -0xe4c,0xe49,0xe4f,0xe4c,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58, -0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xea,0xea,0xea,0xea,0xea, -0xea,0xea,0xea,0xea,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xea,0xe58,0xe58,0xe58,0xe58, -0xe58,0xe58,0xe58,0xea,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xe58,0xea,0xe58,0xe58,0xe58,0xe58, -0xe58,0xe58,0xe58,0xea,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e,0xe5e, -0xe5e,0xe5e,0xe5e,0xe5e,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xe5b,0xed,0xed, -0xed,0xed,0xed,0xed,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xf0,0x1437,0xf0,0xf0,0xf0,0xf0, -0xf0,0x1437,0xf0,0xf0,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8, -0xeb8,0xeb8,0xeb8,0xeb8,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, -0xe67,0xe67,0xe67,0xf3,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64, -0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64,0xe64, -0xe64,0xe64,0xe64,0xf3,0xe79,0xe6d,0xe6d,0xe6d,0xf6,0xe6d,0xe6d,0xf6,0xf6,0xf6,0xf6,0xf6, -0xe6d,0xe6d,0xe6d,0xe6d,0xe79,0xe79,0xe79,0xe79,0xf6,0xe79,0xe79,0xe79,0xf6,0xe79,0xe79,0xe79, -0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79,0xe79, -0xe79,0xe79,0xe79,0xe79,0x195c,0x195c,0xf6,0xf6,0xe6a,0xe6a,0xe6a,0xf6,0xf6,0xf6,0xf6,0xe70, -0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0xe73,0x1959,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, -0xe76,0xe76,0xe76,0xe76,0xe76,0xe76,0xe7c,0xe7c,0xe73,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, -0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0x119a,0x119a,0xf9,0xf9,0xf9,0xf9, -0xe88,0xe88,0xe88,0xe88,0xe88,0xe8b,0xe8b,0xe8b,0xe88,0xe88,0xe8b,0xe88,0xe88,0xe88,0xe88,0xe88, -0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xf9,0xf9,0xf9,0xf9,0xf9,0xf9,0xe85,0xe85,0xe85,0xe85, -0xe85,0xe85,0xe85,0xe85,0xe85,0xe85,0x1197,0xf9,0xf9,0xf9,0xe82,0xe82,0xe91,0xe91,0xe91,0xe91, -0xfc,0xfc,0xfc,0xfc,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe8e,0xe91,0xe91,0xe91, -0xe91,0xe91,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x154e,0x1554,0x1551,0x189c, -0x17f7,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x1962,0x195f,0x1965,0x195f,0x1965,0x1a25,0x1ac1,0x1ac1,0x1ac1,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, -0xeb5,0xeb5,0xeb5,0xeb2,0xeb2,0xea9,0xea9,0xeb2,0xeaf,0xeaf,0xeaf,0xeaf,0x1ac4,0x102,0x102,0x102, -0x1314,0x1314,0x1314,0x1317,0x1317,0x1317,0x130e,0x130e,0x1311,0x130e,0x156,0x156,0x156,0x156,0x156,0x156, -0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0x1443,0x1443,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0xebb, -0x137d,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x105,0x137a, -0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc72,0xc75, -0xee8,0xed9,0xed3,0xee5,0xee2,0xedc,0xedc,0xeeb,0xed6,0xedf,0x108,0x108,0x108,0x108,0x108,0x108, -0xf6f,0xf6f,0xf5a,0xf6f,0xf72,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0x10e,0x10e,0x10e,0x10e, -0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf69,0xf7b,0xf7b,0xf60,0xf66,0xf7b,0xf7b, -0xf63,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf5d,0xf5d,0xf5d,0xf5d,0xf5d, -0xf5d,0xf5d,0xf5d,0xf5d,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0xf60,0x10e,0x10e,0x10e, -0x111,0x111,0x1a2b,0x1a28,0x1a2b,0x1a2b,0x1a2b,0x1aca,0x1ac7,0x1aca,0x1ac7,0x111,0x111,0x111,0x111,0x111, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xedf,0xedc,0xa5,0xa5,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, +0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xa8,0xb70,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, +0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8, +0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xa8,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0xbf7, +0xbf7,0xbf7,0xbf7,0xbf7,0xbf7,0x1b06,0xbf7,0xbf7,0xbf7,0xbf7,0xbf1,0xbf1,0xbf4,0x1b03,0xab,0xab, +0xab,0xab,0xab,0xab,0xab,0xab,0xab,0x1b06,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, +0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xbfa,0xbfa,0xbfd,0xc60,0xc60,0xae, +0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xae,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06, +0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc03,0xc03,0xb1,0xb1,0xb1,0xb1, +0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xb1,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xc0c, +0xc0c,0xc0c,0xc0c,0xc0c,0xc0c,0xb4,0xc0c,0xc0c,0xc0c,0xb4,0xc09,0xc09,0xb4,0xb4,0xb4,0xb4, +0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xb4,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, +0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0xcf0, +0xcf0,0xcf0,0xcf0,0xcf0,0xcf0,0x14d6,0x14d6,0xb7,0xce1,0xce1,0xce1,0xced,0xced,0xced,0xced,0xce1, +0xce1,0xced,0xced,0xced,0xb7,0xb7,0xb7,0xb7,0xced,0xced,0xce1,0xced,0xced,0xced,0xced,0xced, +0xced,0xce4,0xce4,0xce4,0xb7,0xb7,0xb7,0xb7,0xce7,0xb7,0xb7,0xb7,0xcf3,0xcf3,0xcea,0xcea, +0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcea,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6, +0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xcf6,0xba,0xba,0xcf6,0xcf6,0xcf6,0xcf6, +0xcf6,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0xba,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, +0xbd,0xbd,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0xbd,0x1a52,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, +0xc0,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, +0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a, +0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xd1a,0xd1a,0xc0,0xd1a, +0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xc0, +0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xc0,0xc0, +0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, +0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0,0xc0, +0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d, +0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xc3,0xc3,0xc3,0xc3,0xc3, +0xd5c,0xd5c,0xd62,0xc6,0xc6,0xc6,0xc6,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59, +0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59,0xd59, +0xc6,0xc6,0xc6,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd23,0xd23,0xd23,0xd23, +0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23, +0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xd23,0xc9,0xd20,0xd2c,0xd2c,0xd2c,0xd2c, +0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c, +0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xd2c,0xcc,0xcc,0xd29,0xd29,0xd29,0xd29, +0xd29,0xd29,0xd29,0xd29,0xd29,0xd29,0xcc,0xcc,0xcc,0xcc,0xcc,0xcc,0x1812,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0xd2f,0xd2f,0xd2f,0xd2f, +0xd2f,0xd2f,0xcf,0xcf,0xd2f,0xcf,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f, +0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xd2f,0xcf,0xd2f, +0xd2f,0xcf,0xcf,0xcf,0xd2f,0xcf,0xcf,0xd2f,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32, +0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd2, +0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xd2,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3, +0xde3,0xde3,0xde3,0x14dc,0x14dc,0x1788,0x1788,0xd8,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb,0x10cb, +0x10cb,0x10cb,0x10cb,0x10cb,0x1a61,0x129,0x129,0x129,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5, +0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdf5,0xdec, +0xdec,0xdf2,0xdf2,0xdec,0xdb,0xdb,0xdef,0xdef,0x10fb,0x10fb,0x10fb,0x10fb,0xde,0xde,0xde,0xde, +0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xde,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d, +0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xc5d,0xe07,0xe04,0xe07,0xe04,0xe04,0xdfb,0xdfb,0xdfb, +0xdfb,0xdfb,0xdfb,0x1146,0x1143,0x1146,0x1143,0x1140,0x1140,0x1140,0x13d4,0x13d1,0xe1,0xe1,0xe1,0xe1, +0xe1,0xe01,0xdfe,0xdfe,0xdfe,0xdfb,0xe01,0xdfe,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, +0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe4,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4, +0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe4,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10, +0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe10,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d, +0xe0d,0xe0d,0xe7,0xe7,0xe7,0xe7,0xe7,0xe7,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xea,0x13d7, +0xea,0xea,0xea,0xea,0xea,0x13d7,0xea,0xea,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a, +0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe2b,0xe1f,0xe1f,0xe1f,0xed,0xe1f,0xe1f,0xed, +0xed,0xed,0xed,0xed,0xe1f,0xe1f,0xe1f,0xe1f,0xe2b,0xe2b,0xe2b,0xe2b,0xed,0xe2b,0xe2b,0xe2b, +0xed,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b, +0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0xe2b,0x18f3,0x18f3,0xed,0xed,0xe1c,0xe1c,0xe1c,0xed, +0xed,0xed,0xed,0xe22,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0x18f0,0xed,0xed,0xed, +0xed,0xed,0xed,0xed,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xe2e,0xe2e,0xe25,0xed,0xed,0xed, +0xed,0xed,0xed,0xed,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0x114c,0x114c, +0xf0,0xf0,0xf0,0xf0,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3d,0xe3d,0xe3d,0xe3a,0xe3a,0xe3d,0xe3a, +0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xf0,0xf0,0xf0,0xf0,0xf0,0xf0, +0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0xe37,0x1149,0xf0,0xf0,0xf0,0xe34,0xe34, +0xe43,0xe43,0xe43,0xe43,0xf3,0xf3,0xf3,0xf3,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, +0xe40,0xe43,0xe43,0xe43,0xe43,0xe43,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3,0xf3, +0x14eb,0x14f1,0x14ee,0x1833,0x178e,0x1857,0x1857,0x1857,0x1857,0x1857,0x18f9,0x18f6,0x18fc,0x18f6,0x18fc,0x19b9, +0x1a55,0x1a55,0x1a55,0x1b18,0x1b18,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b12,0x1b0f,0x1b15,0xf6,0xf6, +0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, +0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6,0xf6, +0xe67,0xe67,0xe67,0xe64,0xe64,0xe5b,0xe5b,0xe64,0xe61,0xe61,0xe61,0xe61,0x1a58,0xf9,0xf9,0xf9, +0x12ba,0x12ba,0x12ba,0x12bd,0x12bd,0x12bd,0x12b4,0x12b4,0x12b7,0x12b4,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d, +0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0x13e3,0x13e3,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xe6d, +0x1323,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0xfc,0x1320, +0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30,0xc30, +0xe9a,0xe8b,0xe85,0xe97,0xe94,0xe8e,0xe8e,0xe9d,0xe88,0xe91,0xff,0xff,0xff,0xff,0xff,0xff, +0xf21,0xf21,0xf0c,0xf21,0xf24,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0x1b1b,0x105,0x105,0x105, +0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf1b,0xf2d,0xf2d,0xf12,0xf18,0xf2d,0xf2d, +0xf15,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf0f,0xf0f,0xf0f,0xf0f,0xf0f, +0xf0f,0xf0f,0xf0f,0xf0f,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0xf12,0x1b1e,0x1b1e,0x105, +0x1b27,0x1b21,0x19bf,0x19bc,0x19bf,0x19bf,0x19bf,0x1a5e,0x1a5b,0x1a5e,0x1a5b,0x108,0x108,0x108,0x108,0x108, +0x1b27,0x1b21,0x108,0x1b21,0x108,0x1b21,0x1b27,0x1b21,0x1b27,0x1b21,0x108,0x108,0x108,0x108,0x108,0x108, +0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x108,0x1b24,0x1b24, +0x1b24,0x1a5e,0x1a5b,0x14fa,0x13ec,0x13ec,0x1326,0x1026,0x1026,0x1026,0x1026,0x1026,0xf3c,0xf3c,0xf3c,0xf3c, +0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, +0xf39,0xf39,0xf3f,0xf3f,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0x10b,0xf48,0xf48,0xf48,0xf48, +0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48,0xf48, +0xf48,0xf48,0xf42,0xf42,0xf42,0xf42,0x1155,0x1155,0x10e,0x10e,0x10e,0xf45,0x1500,0x1500,0x1500,0x1500, +0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, +0x1500,0x1500,0x1500,0x1500,0x1500,0x16e0,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, 0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111, -0x111,0x1aca,0x1ac7,0x155d,0x144c,0x144c,0x1380,0x1074,0x1074,0x1074,0x1074,0x1074,0xf8a,0xf8a,0xf8a,0xf8a, -0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a, -0xf87,0xf87,0xf8d,0xf8d,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xf96,0xf96,0xf96,0xf96, -0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96,0xf96, -0xf96,0xf96,0xf90,0xf90,0xf90,0xf90,0x11a3,0x11a3,0x117,0x117,0x117,0xf93,0x1563,0x1563,0x1563,0x1563, -0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, -0x1563,0x1563,0x1563,0x1563,0x1563,0x174c,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a, -0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a, -0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0x11a,0xf9f,0xf9f,0xf9f,0x1569,0x1569,0x1569,0x1569,0x1569, -0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x1569,0x11d,0xf9c,0xf9c,0xf9c,0xf9c,0x1566,0x11d,0x11d,0x11d, -0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2, -0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0xfa2,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, -0x1974,0x120,0x120,0x120,0x120,0x120,0x120,0x120,0x109b,0x109b,0x109b,0x109b,0x1098,0x1098,0x1098,0x1098, -0x1098,0x1098,0x1098,0x1098,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1089,0x1098,0x1098,0x108f,0x108c, -0x123,0x123,0x123,0x109e,0x109e,0x1092,0x1092,0x1092,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095, -0x1095,0x1095,0x123,0x123,0x123,0x109b,0x109b,0x109b,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, -0x10a1,0x10a1,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, -0x10b6,0x10b6,0x10b9,0x10b9,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126, -0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x10e0,0x10e0,0x10e0,0x10e0,0x10da,0x17fd,0x129,0x129, -0x129,0x129,0x129,0x129,0x129,0x129,0x10e6,0x10e6,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, -0x10dd,0x10dd,0x129,0x129,0x129,0x129,0x129,0x129,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x10f8, -0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10f8,0x10fe,0x1101,0x12c,0x12c,0x12c,0x12c, -0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x12c,0x10fb,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113, -0x1113,0x1107,0x1107,0x1107,0x1107,0x1107,0x1107,0x1110,0x1110,0x1107,0x1107,0x1110,0x1110,0x1107,0x1107,0x12f, -0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x12f,0x1113,0x1113,0x1113,0x1107,0x1113,0x1113,0x1113,0x1113, -0x1113,0x1113,0x1113,0x1113,0x1107,0x1110,0x12f,0x12f,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d,0x110d, -0x110d,0x110d,0x12f,0x12f,0x110a,0x1116,0x1116,0x1116,0x1575,0x132,0x132,0x132,0x132,0x132,0x132,0x132, -0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132, -0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c, -0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c,0x111c, -0x111c,0x111c,0x111c,0x111c,0x111c,0x111f,0x135,0x135,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122, -0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122,0x1122, -0x1122,0x1122,0x1122,0x1122,0x1122,0x138,0x138,0x138,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125, -0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b, -0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b, -0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b,0x112b, -0x112b,0x112b,0x13e,0x13e,0x13e,0x13e,0x13e,0x1128,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x112e,0x112e,0x112e,0x112e,0x141,0x141,0x141,0x141,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131, -0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x144,0x144,0x144,0x144, -0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x144,0x11a9,0x11a9,0x11a9,0x11a9,0x11b2,0x11a9,0x11a9,0x11a9, -0x11b2,0x11a9,0x11a9,0x11a9,0x11a9,0x11a6,0x147,0x147,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11af,0x11b5, -0x11af,0x11b5,0x11af,0x11af,0x11af,0x11b5,0x11b5,0x147,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x14a,0x14a, -0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, -0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d0,0x11bb,0x11d0, -0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x14d,0x11c4,0x11cd,0x11bb,0x11cd,0x11cd,0x11bb,0x11bb,0x11bb, -0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11bb,0x11bb,0x11c1,0x11c1,0x11c1, -0x11c1,0x11c1,0x11c1,0x11c1,0x11c1,0x14d,0x14d,0x11be,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca, -0x11ca,0x11ca,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca,0x11ca, -0x11ca,0x11ca,0x14d,0x14d,0x14d,0x14d,0x14d,0x14d,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11c7,0x11d6, -0x11d9,0x11d9,0x11d9,0x11d9,0x11c7,0x11c7,0x14d,0x14d,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, -0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15bd,0x1adf,0x1329,0x1302,0x1320,0x1320,0x1320,0x1320,0x1320,0x1320, -0x1320,0x1308,0x1305,0x12fc,0x12fc,0x1326,0x12fc,0x12fc,0x12fc,0x12fc,0x130b,0x14eb,0x14f1,0x14ee,0x14ee,0x193b, -0x1716,0x1716,0x1aac,0x150,0x150,0x150,0x150,0x150,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee, -0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11e5,0x11e5,0x11e8,0x11f1,0x11eb,0x11eb,0x11eb,0x11f1, -0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x153,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea, -0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x12ea, -0x12ea,0x12ea,0x12ea,0x12ea,0x12ea,0x159,0x159,0x159,0x120f,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1206, -0x1215,0x1215,0x1203,0x1203,0x1203,0x1203,0x15c,0x131a,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209,0x1209, -0x1209,0x1209,0x15c,0x15c,0x15c,0x15c,0x1203,0x1203,0x1233,0x1227,0x1233,0x15f,0x15f,0x15f,0x15f,0x15f, -0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f,0x15f, -0x15f,0x15f,0x15f,0x1230,0x1230,0x1236,0x122a,0x122d,0x124b,0x124b,0x124b,0x1245,0x1245,0x123c,0x1245,0x1245, -0x123c,0x1245,0x1245,0x124e,0x1248,0x123f,0x162,0x162,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242,0x1242, -0x1242,0x1242,0x162,0x162,0x162,0x162,0x162,0x162,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x1254,0x165, -0x165,0x165,0x165,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, -0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, -0x165,0x165,0x165,0x165,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d, -0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x125d,0x168,0x125a,0x1257,0x1257,0x1257,0x1257, -0x1257,0x1257,0x1257,0x1257,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c, -0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x16b,0x16b,0x16b,0x1266,0x1269,0x1269, -0x1269,0x1269,0x1269,0x1269,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272, -0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x16e,0x16e,0x126f,0x126f,0x126f,0x126f, -0x126f,0x126f,0x126f,0x126f,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278, -0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x1278,0x171,0x171,0x171,0x171,0x171,0x1275,0x1275,0x1275,0x1275, -0x1275,0x1275,0x1275,0x1275,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e, -0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e,0x127e, -0x127e,0x127e,0x127e,0x177,0x1299,0x1299,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, -0x17a,0x197d,0x17a,0x17a,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca, -0x14ca,0x14ca,0x14ca,0x14ca,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, -0x129f,0x129f,0x129f,0x17d,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a4f,0x1a52,0x1a4c,0x279,0x279,0x279, -0x279,0x279,0x279,0x279,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e,0x187e, -0x187e,0x1ad0,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180, -0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180,0x180, -0x180,0x180,0x180,0x180,0x180,0x180,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, -0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c,0x138c, -0x12f6,0x13f5,0x13f2,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183, -0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f3,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0, -0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f0,0x12f3,0x12f0,0x12f0,0x13f5,0x13f5, -0x13f5,0x13f5,0x13f5,0x13f2,0x13f5,0x13f5,0x13f5,0x1881,0x183,0x183,0x183,0x183,0x12ed,0x12ed,0x12ed,0x12ed, -0x12ed,0x12ed,0x12ed,0x12ed,0x12ed,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1419,0x1419,0x183,0x183, -0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1920,0x1920,0x1920,0x1920, -0x1920,0x1920,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183, -0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183, -0x183,0x183,0x183,0x183,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395, -0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x138f,0x138f,0x138f, -0x186,0x186,0x1392,0x186,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x1398,0x13a1,0x139b,0x139b,0x13a1,0x13a1, -0x13a1,0x139b,0x13a1,0x139b,0x139b,0x139b,0x13a4,0x13a4,0x189,0x189,0x189,0x189,0x189,0x189,0x189,0x189, -0x139e,0x139e,0x139e,0x139e,0x18c,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x18c,0x18c,0x13aa,0x13aa,0x13aa, -0x13aa,0x13aa,0x13aa,0x18c,0x18c,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x18c,0x18c,0x18c,0x18c,0x18c, -0x18c,0x18c,0x18c,0x18c,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x18c,0x13aa,0x13aa,0x13aa,0x13aa, -0x13aa,0x13aa,0x13aa,0x18c,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13b0,0x13c2,0x13c2,0x13b6,0x13b6,0x13b6, -0x13b6,0x13b6,0x18f,0x18f,0x18f,0x18f,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3, -0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b3,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9,0x13b9, -0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x18f,0x1584, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x192,0x192,0x192,0x192,0x192,0x192,0x192, -0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x195, -0x195,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x1587, -0x195,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13fe, -0x195,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8,0x13c8, -0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x1587, -0x1587,0x1587,0x1587,0x1587,0x1587,0x1587,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, -0x1413,0x1410,0x1410,0x1410,0x1410,0x1410,0x159c,0x159c,0x159c,0x159c,0x159c,0x159f,0x170d,0x159f,0x159f,0x159f, -0x17d9,0x188a,0x188a,0x18c3,0x18c3,0x1a8e,0x1b39,0x1b39,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198, -0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159c,0x159c,0x159c,0x159f,0x159c,0x170a,0x170a,0x198,0x198,0x198, -0x159f,0x159c,0x159c,0x159f,0x188a,0x188a,0x188a,0x1926,0x1926,0x1a07,0x1a8e,0x1b39,0x1b39,0x198,0x198,0x198, -0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb, -0x13cb,0x13cb,0x13cb,0x13cb,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, -0x1467,0x15a5,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x15a5,0x15a5,0x15a5, -0x15a5,0x15a5,0x15a5,0x175e,0x175e,0x19e,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1ad3,0x1ad3, -0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x1ad3,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e,0x19e, -0x19e,0x19e,0x19e,0x1983,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806,0x1806, -0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d, -0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d, -0x1a1,0x146d,0x146d,0x1a1,0x146d,0x1a1,0x1a1,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d, -0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x1a1,0x1a1,0x1a1, -0x1a1,0x1a1,0x146d,0x1a1,0x1a1,0x1a1,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x146d,0x146d,0x146d, -0x1a1,0x146d,0x146d,0x1a1,0x146d,0x1a1,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x146d,0x1a1,0x146d, -0x1a1,0x146d,0x146d,0x1a1,0x146d,0x1a1,0x1a1,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d, -0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x1a1, -0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x146d, -0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a1,0x1a1,0x1a1,0x1a1, -0x1a1,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a1,0x146d,0x146d,0x146d,0x146d,0x146d, -0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a1,0x1a1,0x1a1,0x1a1, -0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1, -0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x146a,0x146a,0x1a1,0x1a1, -0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1482,0x1482,0x1482,0x1482, -0x1482,0x1482,0x1482,0x1470,0x1470,0x1470,0x1470,0x1470,0x147f,0x1470,0x1473,0x1473,0x1470,0x1470,0x1470,0x1476, -0x1476,0x1a4,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x147c,0x1479,0x1485,0x1485,0x1485, -0x1989,0x1986,0x1986,0x1ad6,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x162f,0x162f,0x162f,0x162f, -0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x1491,0x1491,0x1491,0x1491, -0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x1491,0x148e,0x1488,0x1488,0x148e,0x148e,0x1497,0x1497,0x1491,0x1494, -0x1494,0x148e,0x148b,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x149a,0x149a,0x149a,0x149a, -0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a,0x149a, -0x149a,0x149a,0x149a,0x149a,0x1aa,0x1aa,0x1aa,0x1aa,0x1761,0x1761,0x149a,0x149a,0x1761,0x1761,0x1761,0x1761, -0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1aa,0x1aa,0x1761,0x1761, -0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x14a6,0x14a6,0x14a6,0x14a6, -0x14a6,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1a37,0x1ad,0x1ad,0x1ad,0x1ad,0x1a31,0x14a6,0x14a3,0x14a3,0x14a3, -0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x1a34,0x1a34,0x1a34,0x1a34, -0x1a34,0x1a34,0x1a34,0x1a34,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x14a0,0x14a0,0x14a0,0x14a0,0x14a9, -0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14a9,0x14ca,0x14ca,0x14ca,0x14ca, -0x14ca,0x14ca,0x14ca,0x14ca,0x14ca,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x14c7,0x14c7,0x14c7,0x14c7, -0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x14c7,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x14cd,0x14cd,0x14cd,0x14cd, -0x14cd,0x14cd,0x14cd,0x14cd,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1b3,0x1323,0x1320,0x1323,0x12ff, -0x1320,0x1326,0x1326,0x1329,0x1326,0x1329,0x132c,0x1320,0x1329,0x1329,0x1320,0x1320,0x14df,0x14df,0x14df,0x14df, -0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14d0,0x14d9,0x14d0,0x14d9,0x14d9,0x14d0,0x14d0,0x14d0,0x14d0, -0x14d0,0x14d0,0x14dc,0x14d3,0x1a3a,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x15b1,0x15b1,0x15b1,0x15b1, -0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x15b1,0x1b9,0x1b9,0x15ae,0x15ae,0x15ae,0x15ae, -0x15ae,0x15b4,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9,0x1719,0x1710,0x1710,0x1710, -0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710, -0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1710,0x1bf,0x1bf,0x1bf,0x1bf,0x1adf,0x1c2,0x1c2,0x1c2, -0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2, -0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x1c5,0x1c5,0x1c5,0x1c5,0x1c5, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x1c5,0x1c5,0x1c5, -0x1c5,0x1c5,0x1c5,0x1c5,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x1c5,0x1c5, -0x15c9,0x15c3,0x15c6,0x15cf,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x1c8,0x1c8,0x1c8,0x1c8, -0x1c8,0x1c8,0x1c8,0x1c8,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, -0x15ba,0x15ba,0x15ba,0x15ba,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, -0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x198c,0x198c,0x198c,0x198c,0x1cb,0x1cb,0x1cb, -0x1cb,0x1cb,0x1cb,0x1cb,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91,0x1a91, -0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb,0x1cb, -0x1cb,0x1cb,0x1cb,0x1cb,0x1776,0x171c,0x15de,0x1722,0x1ce,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7, -0x15e7,0x1ce,0x1ce,0x15e7,0x15e7,0x1ce,0x1ce,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7, -0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x1ce,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x1ce,0x15e7,0x15e7, -0x1ce,0x15e7,0x15e7,0x15e7,0x15e7,0x15e7,0x1ce,0x1a16,0x171f,0x15e7,0x15d8,0x15de,0x15d8,0x15de,0x15de,0x15de, -0x15de,0x1ce,0x1ce,0x15de,0x15de,0x1ce,0x1ce,0x15e1,0x15e1,0x15e4,0x1ce,0x1ce,0x1779,0x1ce,0x1ce,0x1ce, -0x1ce,0x1ce,0x1ce,0x15d8,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x15ea,0x15e7,0x15e7,0x15e7,0x15e7,0x15de,0x15de, -0x1ce,0x1ce,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x1ce,0x1ce,0x1ce,0x15db,0x15db,0x15db,0x15db, -0x15db,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x15ff,0x15ff,0x15ff,0x15ff, -0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x1d1,0x15ff, -0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15f9,0x15f9,0x15f9,0x15ed, -0x15ed,0x15ed,0x15f9,0x15f9,0x15ed,0x15fc,0x15f0,0x15ed,0x1602,0x1602,0x15f6,0x1602,0x1602,0x15f3,0x180c,0x1d1, -0x1611,0x1611,0x1611,0x1605,0x1605,0x1605,0x1605,0x1605,0x1605,0x1608,0x160b,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, -0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, -0x177c,0x177c,0x177c,0x177c,0x161d,0x161a,0x1a3d,0x1a3d,0x1ae5,0x1ae8,0x1ae2,0x1ae2,0x1d7,0x1d7,0x1d7,0x1d7, -0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, -0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, -0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f,0x162f, -0x162f,0x162f,0x162f,0x1626,0x1629,0x162c,0x162f,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd,0x1dd, -0x163e,0x163e,0x163e,0x163e,0x163e,0x1632,0x1632,0x1e0,0x1e0,0x1e0,0x1e0,0x1635,0x1635,0x1635,0x1635,0x1635, -0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1638,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0,0x1e0, -0x1647,0x1647,0x1647,0x1647,0x1647,0x1e3,0x1e3,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644, -0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1641,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3,0x1e3, -0x164a,0x165c,0x165c,0x1650,0x1659,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6, -0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1653,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6, -0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662, -0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1662,0x1e9, -0x166e,0x166e,0x166e,0x166e,0x166e,0x1668,0x1671,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e,0x166e, -0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x166e,0x166e,0x166e,0x166e,0x166e,0x1ec, -0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677, -0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1ef, -0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683, -0x1683,0x1683,0x1683,0x1683,0x1683,0x1683,0x1680,0x1680,0x1680,0x1680,0x1680,0x1f2,0x1f2,0x1f2,0x1f2,0x1f2, -0x169b,0x169b,0x169e,0x169e,0x16a1,0x1692,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, -0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1698,0x1f5,0x1692,0x1692,0x1692,0x1692,0x1692, -0x1692,0x1692,0x1f5,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x169b,0x169b,0x169b, -0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8, -0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3,0x16b3, -0x16b3,0x16b3,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x16b0,0x16b0,0x16b0,0x16b0,0x1fb,0x1fb,0x1fb, -0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16b6, -0x16c8,0x16c8,0x16b6,0x16b6,0x16b6,0x16b6,0x201,0x201,0x16c8,0x16c8,0x16cb,0x16cb,0x16b6,0x16b6,0x16c8,0x16bc, -0x16b9,0x16bf,0x16d1,0x16d1,0x16c2,0x16c2,0x16c5,0x16c5,0x16c5,0x16d1,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785, -0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1785,0x1782,0x1782,0x1782,0x1782,0x177f,0x177f,0x201,0x201, -0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201, -0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201, -0x204,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x16d4, -0x16d4,0x16d4,0x16d4,0x16d4,0x16d4,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204,0x204, -0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x207,0x207,0x207,0x207, -0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d7,0x16d7,0x207,0x207,0x207,0x207,0x207,0x207,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x207,0x207,0x1aeb,0x1aeb,0x207,0x207, -0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, +0x111,0x111,0x111,0x111,0x111,0x111,0x111,0x111,0xf51,0xf51,0xf51,0x1506,0x1506,0x1506,0x1506,0x1506, +0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x1506,0x114,0xf4e,0xf4e,0xf4e,0xf4e,0x1503,0x114,0x114,0x114, +0x114,0x114,0x114,0x114,0x114,0x114,0x114,0x114,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54, +0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0xf54,0x190b,0x190b,0x190b,0x190b,0x190b,0x190b, +0x190b,0x117,0x117,0x117,0x117,0x117,0x117,0x117,0x104d,0x104d,0x104d,0x104d,0x104a,0x104a,0x104a,0x104a, +0x104a,0x104a,0x104a,0x104a,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x103b,0x104a,0x104a,0x1041,0x103e, +0x11a,0x11a,0x11a,0x1050,0x1050,0x1044,0x1044,0x1044,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047,0x1047, +0x1047,0x1047,0x11a,0x11a,0x11a,0x104d,0x104d,0x104d,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053,0x1053, +0x1053,0x1053,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068,0x1068, +0x1068,0x1068,0x106b,0x106b,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d, +0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x11d,0x1092,0x1092,0x1092,0x1092,0x108c,0x1794,0x120,0x120, +0x120,0x120,0x120,0x120,0x120,0x120,0x1098,0x1098,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f,0x108f, +0x108f,0x108f,0x120,0x120,0x120,0x120,0x120,0x120,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10aa, +0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10aa,0x10b0,0x10b3,0x123,0x123,0x123,0x123, +0x123,0x123,0x123,0x123,0x123,0x123,0x123,0x10ad,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10c2,0x10c2,0x10b9,0x10b9,0x10c2,0x10c2,0x10b9,0x10b9,0x126, +0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x126,0x10c5,0x10c5,0x10c5,0x10b9,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c5,0x10b9,0x10c2,0x126,0x126,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf,0x10bf, +0x10bf,0x10bf,0x126,0x126,0x10bc,0x10c8,0x10c8,0x10c8,0x1512,0x129,0x129,0x129,0x129,0x129,0x129,0x129, +0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129, +0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x129,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce, +0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10ce, +0x10ce,0x10ce,0x10ce,0x10ce,0x10ce,0x10d1,0x12c,0x12c,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4, +0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x10d4, +0x10d4,0x10d4,0x10d4,0x10d4,0x10d4,0x12f,0x12f,0x12f,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, +0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x132,0x132,0x132,0x132,0x132,0x132,0x132, +0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x132,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, +0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd,0x10dd, +0x10dd,0x10dd,0x135,0x135,0x135,0x135,0x135,0x10da,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, +0x10e0,0x10e0,0x10e0,0x10e0,0x138,0x138,0x138,0x138,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, +0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x13b,0x13b,0x13b,0x13b, +0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x13b,0x115b,0x115b,0x115b,0x115b,0x1164,0x115b,0x115b,0x115b, +0x1164,0x115b,0x115b,0x115b,0x115b,0x1158,0x13e,0x13e,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1161,0x1167, +0x1161,0x1167,0x1161,0x1161,0x1161,0x1167,0x1167,0x13e,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x141,0x141, +0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x141,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, +0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1182,0x116d,0x1182, +0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d,0x144,0x1176,0x117f,0x116d,0x117f,0x117f,0x116d,0x116d,0x116d, +0x116d,0x116d,0x116d,0x116d,0x116d,0x1182,0x1182,0x1182,0x1182,0x1182,0x1182,0x116d,0x116d,0x1173,0x1173,0x1173, +0x1173,0x1173,0x1173,0x1173,0x1173,0x144,0x144,0x1170,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, +0x117c,0x117c,0x144,0x144,0x144,0x144,0x144,0x144,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c,0x117c, +0x117c,0x117c,0x144,0x144,0x144,0x144,0x144,0x144,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1179,0x1188, +0x118b,0x118b,0x118b,0x118b,0x1179,0x1179,0x144,0x144,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x1551, +0x1551,0x1551,0x1551,0x1551,0x1551,0x1551,0x154e,0x1a73,0x12cf,0x12a8,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, +0x12c6,0x12ae,0x12ab,0x12a2,0x12a2,0x12cc,0x12a2,0x12a2,0x12a2,0x12a2,0x12b1,0x148b,0x1491,0x148e,0x148e,0x18d2, +0x16a7,0x16a7,0x1a40,0x147,0x147,0x147,0x147,0x147,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x1197,0x1197,0x119a,0x11a3,0x119d,0x119d,0x119d,0x11a3, +0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x14a,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293, +0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293, +0x1293,0x1293,0x1293,0x1293,0x1293,0x150,0x150,0x150,0x11c1,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b5,0x11b8, +0x11c7,0x11c7,0x11b5,0x11b5,0x11b5,0x11b5,0x153,0x12c3,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb,0x11bb, +0x11bb,0x11bb,0x153,0x153,0x153,0x153,0x11b5,0x11b5,0x11e5,0x11d9,0x11e5,0x156,0x156,0x156,0x156,0x156, +0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156,0x156, +0x156,0x156,0x156,0x11e2,0x11e2,0x11e8,0x11dc,0x11df,0x11fd,0x11fd,0x11fd,0x11f7,0x11f7,0x11ee,0x11f7,0x11f7, +0x11ee,0x11f7,0x11f7,0x1200,0x11fa,0x11f1,0x159,0x159,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4, +0x11f4,0x11f4,0x159,0x159,0x159,0x159,0x159,0x159,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x1206,0x15c, +0x15c,0x15c,0x15c,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203, +0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203,0x1203, +0x15c,0x15c,0x15c,0x15c,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f, +0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x120f,0x15f,0x120c,0x1209,0x1209,0x1209,0x1209, +0x1209,0x1209,0x1209,0x1209,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, +0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x162,0x162,0x162,0x1218,0x121b,0x121b, +0x121b,0x121b,0x121b,0x121b,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224, +0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x1224,0x165,0x165,0x1221,0x1221,0x1221,0x1221, +0x1221,0x1221,0x1221,0x1221,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a, +0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x122a,0x168,0x168,0x168,0x168,0x168,0x1227,0x1227,0x1227,0x1227, +0x1227,0x1227,0x1227,0x1227,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, +0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, +0x1230,0x1230,0x1230,0x16e,0x124b,0x124b,0x1b2a,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171,0x171, +0x171,0x1914,0x171,0x171,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a, +0x146a,0x146a,0x146a,0x146a,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x174,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e3,0x19e6,0x19e0,0x26a,0x26a,0x26a, +0x26a,0x26a,0x26a,0x26a,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815,0x1815, +0x1815,0x1a64,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, +0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177,0x177, +0x177,0x177,0x177,0x177,0x177,0x177,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, +0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332,0x1332, +0x129c,0x1395,0x1395,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, +0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299,0x1299, +0x1299,0x1299,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1395,0x1818,0x17a,0x17a,0x17a,0x17a, +0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x1296,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, +0x13b9,0x13b9,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, +0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x18b7,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, +0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a, +0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x17a,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, +0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b,0x133b, +0x133b,0x1335,0x1335,0x1335,0x17d,0x17d,0x1338,0x17d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x133e,0x1347, +0x1341,0x1341,0x1347,0x1347,0x1347,0x1341,0x1347,0x1341,0x1341,0x1341,0x134a,0x134a,0x180,0x180,0x180,0x180, +0x180,0x180,0x180,0x180,0x1344,0x1344,0x1344,0x1344,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, +0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, +0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x183,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183, +0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x1350,0x183,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae, +0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x1353,0x1353,0x1353,0x1353,0x1353,0x1353,0x1356,0x1368, +0x1368,0x135c,0x135c,0x135c,0x135c,0x135c,0x186,0x186,0x186,0x186,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359, +0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x1359,0x135f,0x135f,0x135f,0x135f,0x135f,0x135f, +0x135f,0x135f,0x135f,0x135f,0x1b30,0x1b33,0x1b33,0x1b2d,0x1b2d,0x1b33,0x186,0x186,0x186,0x186,0x186,0x186, +0x186,0x186,0x186,0x1521,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, +0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x189,0x189,0x189, +0x189,0x189,0x189,0x189,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, +0x136e,0x136e,0x136e,0x18c,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, +0x136e,0x136e,0x136e,0x1524,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, +0x136e,0x136e,0x136e,0x139e,0x18c,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e,0x136e, +0x136e,0x136e,0x136e,0x136e,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524, +0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x1524,0x18c,0x18c,0x18c,0x18c,0x18c,0x18c, +0x18c,0x18c,0x18c,0x18c,0x13b3,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530, +0x169e,0x1530,0x1530,0x1530,0x1770,0x1821,0x1821,0x185a,0x185a,0x1a22,0x1acd,0x1acd,0x18f,0x18f,0x18f,0x18f, +0x18f,0x1b9c,0x1b9c,0x1b9c,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x1530,0x169b, +0x169b,0x18f,0x18f,0x18f,0x1530,0x1530,0x1530,0x1530,0x1821,0x1821,0x1821,0x18bd,0x18bd,0x199e,0x1a22,0x1acd, +0x1acd,0x18f,0x18f,0x18f,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, +0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x192,0x192,0x192,0x192,0x192,0x192,0x192,0x192, +0x192,0x192,0x192,0x192,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, +0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, +0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x195,0x140d,0x140d,0x140d, +0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x195,0x140d, +0x195,0x195,0x195,0x195,0x195,0x195,0x140d,0x195,0x195,0x195,0x195,0x140d,0x195,0x140d,0x195,0x140d, +0x195,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x195,0x140d,0x195,0x140d, +0x195,0x140d,0x195,0x140d,0x195,0x140d,0x140d,0x195,0x140d,0x195,0x195,0x140d,0x140d,0x140d,0x140d,0x195, +0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d, +0x140d,0x195,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d, +0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, +0x195,0x195,0x195,0x195,0x195,0x140d,0x140d,0x140d,0x195,0x140d,0x140d,0x140d,0x140d,0x140d,0x195,0x140d, +0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d,0x140d, +0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, +0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, +0x140a,0x140a,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195,0x195, +0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1410,0x1410,0x1410,0x1410,0x1410,0x141f,0x1410,0x1413,0x1413, +0x1410,0x1410,0x1410,0x1416,0x1416,0x198,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c,0x141c, +0x1419,0x1425,0x1425,0x1425,0x1920,0x191d,0x191d,0x1a6a,0x198,0x198,0x198,0x198,0x198,0x198,0x198,0x198, +0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, +0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x1431,0x142e,0x1428,0x1428,0x142e,0x142e, +0x1437,0x1437,0x1431,0x1434,0x1434,0x142e,0x142b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b,0x19b, +0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a, +0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x143a,0x19e,0x19e,0x19e,0x19e,0x16f5,0x16f5,0x143a,0x143a, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x19e,0x19e,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x1446,0x1446,0x1446,0x1446,0x1446,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x1a1,0x1a1,0x1a1,0x1a1,0x19c5, +0x1446,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443, +0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x19c8,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1a1,0x1440, +0x1440,0x1440,0x1440,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449,0x1449, +0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x146a,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, +0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1467,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4,0x1a4, +0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x146d,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7,0x1a7, +0x12c9,0x12c6,0x12c9,0x12a5,0x12c6,0x12cc,0x12cc,0x12cf,0x12cc,0x12cf,0x12d2,0x12c6,0x12cf,0x12cf,0x12c6,0x12c6, +0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x1470,0x1479,0x1470,0x1479,0x1479, +0x1470,0x1470,0x1470,0x1470,0x1470,0x1470,0x147c,0x1473,0x19ce,0x1b3f,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa,0x1aa, +0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1ad,0x1ad, +0x153f,0x153f,0x153f,0x153f,0x153f,0x1545,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad,0x1ad, +0x154b,0x154b,0x154b,0x154b,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1b0,0x1548, +0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5,0x1b8a,0x1b8a,0x1b8a,0x1b8a, +0x16aa,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1, +0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x16a1,0x1b3,0x1b3,0x1b3,0x1b3, +0x1a73,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b45,0x1b42,0x1b42,0x1b42,0x1b6, +0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, +0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6,0x1b6, +0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9,0x1b9,0x1b9,0x1b9, +0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9,0x1b9, +0x1b9,0x1b9,0x1b9,0x1b9,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x1b9,0x1b9, +0x155a,0x1554,0x1557,0x1560,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1bc,0x1bc,0x1bc,0x1bc, +0x1bc,0x1bc,0x1bc,0x1bc,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, +0x154b,0x154b,0x154b,0x154b,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, +0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1923,0x1923,0x1923,0x1923,0x1bf,0x1bf,0x1bf, +0x1bf,0x1bf,0x1bf,0x1bf,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25,0x1a25, +0x1bf,0x1bf,0x1bf,0x1bf,0x1b9f,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf,0x1bf, +0x1bf,0x1bf,0x1bf,0x1bf,0x170a,0x16ad,0x156f,0x16b3,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, +0x1578,0x1c2,0x1c2,0x1578,0x1578,0x1c2,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578, +0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x1578,0x1578, +0x1c2,0x1578,0x1578,0x1578,0x1578,0x1578,0x1c2,0x19aa,0x16b0,0x1578,0x1569,0x156f,0x1569,0x156f,0x156f,0x156f, +0x156f,0x1c2,0x1c2,0x156f,0x156f,0x1c2,0x1c2,0x1572,0x1572,0x1575,0x1c2,0x1c2,0x170d,0x1c2,0x1c2,0x1c2, +0x1c2,0x1c2,0x1c2,0x1569,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x157b,0x1578,0x1578,0x1578,0x1578,0x156f,0x156f, +0x1c2,0x1c2,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x156c,0x1c2,0x1c2,0x1c2,0x156c,0x156c,0x156c,0x156c, +0x156c,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1c2,0x1590,0x1590,0x1590,0x1590, +0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1c5,0x1590, +0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x158a,0x158a,0x158a,0x157e, +0x157e,0x157e,0x158a,0x158a,0x157e,0x158d,0x1581,0x157e,0x1593,0x1593,0x1587,0x1593,0x1593,0x1584,0x17a3,0x1c5, +0x15a2,0x15a2,0x15a2,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1599,0x159c,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, +0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x159f,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8,0x1c8, +0x1710,0x1710,0x1710,0x1710,0x15ae,0x15ab,0x19d1,0x19d1,0x1a79,0x1a7c,0x1a76,0x1a76,0x1cb,0x1cb,0x1cb,0x1cb, +0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, +0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce,0x1ce, +0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0,0x15c0, +0x15c0,0x15c0,0x15c0,0x15b7,0x15ba,0x15bd,0x15c0,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1,0x1d1, +0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15c3,0x15c3,0x1d4,0x1d4,0x1d4,0x1d4,0x15c6,0x15c6,0x15c6,0x15c6,0x15c6, +0x15cc,0x15cc,0x16b6,0x15cc,0x15cc,0x15cc,0x15c9,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4,0x1d4, +0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x1d7,0x1d7,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, +0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7,0x1d7, +0x15db,0x15ed,0x15ed,0x15e1,0x15ea,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, +0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x15e4,0x1da,0x1da,0x1da,0x1da,0x1da,0x1da, +0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3, +0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x15f3,0x1dd, +0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x15f0,0x1dd,0x1dd,0x1dd,0x1dd,0x15f6,0x15f6, +0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, +0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15f9,0x1602,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff, +0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15fc,0x15ff,0x15ff,0x15ff,0x15ff,0x15ff,0x1e0, +0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608, +0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1608,0x1e3, +0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, +0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1611,0x1611,0x1611,0x1611,0x1611,0x1e6,0x1e6,0x1e6,0x1e6,0x1e6, +0x162c,0x162c,0x162f,0x162f,0x1632,0x1623,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9, +0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1629,0x1e9,0x1623,0x1623,0x1623,0x1623,0x1623, +0x1623,0x1623,0x1e9,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x1e9,0x1e9,0x1e9,0x1e9,0x1e9,0x162c,0x162c,0x162c, +0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, +0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec,0x1ec, +0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644,0x1644, +0x1644,0x1644,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1ef,0x1641,0x1641,0x1641,0x1641,0x1ef,0x1ef,0x1ef, +0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x1647, +0x1659,0x1659,0x1647,0x1647,0x1647,0x1647,0x1f5,0x1f5,0x1659,0x1659,0x165c,0x165c,0x1647,0x1647,0x1659,0x164d, +0x164a,0x1650,0x1662,0x1662,0x1653,0x1653,0x1656,0x1656,0x1656,0x1662,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719, +0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1719,0x1716,0x1716,0x1716,0x1716,0x1713,0x1713,0x1f5,0x1f5, +0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, +0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5,0x1f5, +0x1f8,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665,0x1665, +0x1665,0x1665,0x1665,0x1665,0x1665,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8,0x1f8, +0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1fb,0x1fb,0x1fb,0x1fb, +0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1668,0x1668,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1fb,0x1fb,0x1a7f,0x1a7f,0x1fb,0x1fb, +0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, +0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb,0x1fb, +0x166b,0x167a,0x1671,0x166e,0x1680,0x1680,0x1674,0x1680,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, +0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1677,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe,0x1fe, +0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1683,0x1683,0x1683,0x1683,0x1683,0x1683, +0x1683,0x1683,0x1683,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x201,0x168c, +0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e, +0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x172e,0x1926,0x204,0x204,0x171c,0x171c,0x171c, +0x1728,0x1728,0x171c,0x171c,0x171c,0x171c,0x172b,0x171c,0x171c,0x171c,0x171c,0x171f,0x204,0x204,0x204,0x204, +0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1725,0x1722,0x1722,0x1731,0x1731,0x1731,0x1722, +0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, 0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207, -0x16da,0x16e9,0x16e0,0x16dd,0x16ef,0x16ef,0x16e3,0x16ef,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a, -0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x16e6,0x20a,0x20a,0x20a,0x20a,0x20a,0x20a, -0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f2,0x16f2,0x16f2,0x16f2,0x16f2,0x16f2, -0x16f2,0x16f2,0x16f2,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x20d,0x16fb, -0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797, -0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x1797,0x198f,0x210,0x210,0x1788,0x1788,0x1788, -0x1794,0x1794,0x1788,0x1788,0x1788,0x1788,0x1794,0x1788,0x1788,0x1788,0x1788,0x178b,0x210,0x210,0x210,0x210, -0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x1791,0x178e,0x178e,0x179a,0x179a,0x179a,0x178e, -0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213, -0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213, -0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af, -0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x17af,0x219,0x17af,0x17af,0x219,0x219, -0x219,0x219,0x219,0x17ac,0x17ac,0x17ac,0x17ac,0x17ac,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x21c, -0x17b2,0x21c,0x17b2,0x17b2,0x17b2,0x17b2,0x21c,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2, -0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x21c,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2,0x17b2, -0x17b2,0x17b5,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, -0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be, -0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x21f,0x21f,0x21f,0x21f,0x21f, -0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, -0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x21f,0x21f,0x21f,0x21f,0x21f, -0x21f,0x21f,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929, -0x1929,0x1929,0x1929,0x1929,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a94,0x1b3c,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1b3f, -0x1b3c,0x222,0x1a0a,0x1a94,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x17df,0x1a0a,0x1a0a,0x1a94,0x1a94,0x1a94,0x1a94,0x1a94, -0x1a94,0x1a94,0x1a94,0x1b3c,0x222,0x1a97,0x1a97,0x1a97,0x1929,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x192c, -0x192c,0x192c,0x192c,0x192c,0x192c,0x192c,0x1929,0x1929,0x17c4,0x17c4,0x17c4,0x17c4,0x17c1,0x17c4,0x17c4,0x17c7, -0x17ca,0x17c7,0x17c7,0x17c4,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225, -0x225,0x225,0x225,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x1821,0x1821,0x1821,0x1821,0x1818,0x1818,0x1818,0x1812, -0x1815,0x1815,0x1815,0x1a40,0x228,0x228,0x228,0x228,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e,0x181e, -0x181e,0x181e,0x228,0x228,0x228,0x228,0x181b,0x181b,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c, -0x183c,0x22b,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c, -0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x183c,0x1839,0x1827,0x1827,0x1827,0x1827, -0x1827,0x1827,0x1827,0x22b,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x1839,0x182a,0x183c,0x183f,0x183f,0x1833, -0x1830,0x1830,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x1836,0x1836,0x1836,0x1836, -0x1836,0x1836,0x1836,0x1836,0x1836,0x1836,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, -0x182d,0x182d,0x182d,0x182d,0x182d,0x22b,0x22b,0x22b,0x184b,0x184e,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, -0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842,0x1842, -0x1842,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad, -0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x231, -0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845,0x1845, -0x1845,0x231,0x231,0x1845,0x1845,0x1845,0x1845,0x1845,0x1893,0x192f,0x1a9a,0x1a9d,0x1b45,0x234,0x234,0x234, -0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1b42,0x1b42,0x234,0x234,0x234,0x234,0x234,0x234, -0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854, -0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x1854,0x237,0x237,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848, -0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848,0x237,0x1851,0x1848,0x1848,0x1848,0x1848,0x1848,0x1848, -0x1848,0x1851,0x1848,0x1848,0x1851,0x1848,0x1848,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237, -0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x1857,0x23a,0x23a,0x23a, -0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a, -0x186f,0x186f,0x1860,0x185a,0x185a,0x186f,0x185d,0x1872,0x1872,0x1872,0x1872,0x1875,0x1875,0x1869,0x1866,0x1863, -0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x1aee,0x1869,0x23d,0x1863,0x1992,0x1a43, -0x1af1,0x1af1,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d, -0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d,0x23d, -0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b,0x187b, -0x187b,0x187b,0x187b,0x187b,0x240,0x240,0x240,0x240,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878, -0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878,0x1878, -0x1878,0x1878,0x1878,0x1878,0x240,0x240,0x240,0x240,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, -0x1896,0x1896,0x1896,0x1896,0x1896,0x1a13,0x1a13,0x1a13,0x1a13,0x1a13,0x1aa0,0x1aa0,0x1aa0,0x1aa0,0x1aa0,0x1aa0, -0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x243,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935, -0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935, -0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x1935,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246, -0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288, -0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x249, -0x18d5,0x18d5,0x249,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5, -0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18d5,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x249, -0x249,0x249,0x18c9,0x249,0x18c9,0x18c9,0x249,0x18c9,0x18c9,0x18c9,0x18cc,0x18c9,0x18cf,0x18cf,0x18d8,0x18c9, -0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2,0x18d2, -0x18d2,0x18d2,0x249,0x249,0x249,0x249,0x249,0x249,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938, -0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938, -0x1938,0x1938,0x1938,0x1938,0x24c,0x24c,0x24c,0x24c,0x1905,0x1908,0x1917,0x1917,0x1908,0x190b,0x1905,0x1902, -0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x18f0,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18ed, -0x18ed,0x18db,0x18db,0x18db,0x18f0,0x18f0,0x18f0,0x18f0,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49, -0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x258,0x258,0x258,0x258, -0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x1998, -0x1998,0x1998,0x1998,0x1998,0x1998,0x1998,0x258,0x258,0x1aa9,0x1aa9,0x1aa9,0x1aa9,0x1b4b,0x28b,0x28b,0x28b, -0x1aa9,0x1aa9,0x1aa9,0x28b,0x28b,0x28b,0x28b,0x28b,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa, -0x19aa,0x19aa,0x19aa,0x19aa,0x19a7,0x19a7,0x19a7,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b,0x199b, -0x19a7,0x19a1,0x199e,0x19a4,0x25b,0x25b,0x25b,0x25b,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad, -0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad,0x19ad, -0x19ad,0x19ad,0x19ad,0x25e,0x25e,0x19ad,0x19ad,0x19ad,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x261,0x19bc, -0x19bc,0x261,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc, -0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19bc,0x19b9,0x19b9,0x19b9,0x19b9,0x19b9,0x261, -0x19b0,0x19b0,0x261,0x19b9,0x19b9,0x19b0,0x19b9,0x19b3,0x19bc,0x261,0x261,0x261,0x261,0x261,0x261,0x261, -0x19c5,0x19c5,0x19c8,0x19c8,0x19bf,0x19bf,0x19bf,0x19bf,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264, -0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x19c2,0x264,0x264,0x264,0x264,0x264,0x264, -0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19ce,0x19cb,0x19cb,0x19cb, -0x19ce,0x19cb,0x19cb,0x19cb,0x19cb,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267, -0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7,0x19d7, -0x19d7,0x19d7,0x19d7,0x19d1,0x19d1,0x19d4,0x19d4,0x19da,0x19da,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a,0x26a, -0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, -0x19dd,0x19dd,0x19dd,0x19dd,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d, -0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0, -0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e0,0x19e3,0x19ec,0x19e0,0x19e0,0x270,0x270,0x270,0x270,0x270, -0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19ef,0x19f2,0x273,0x273,0x273,0x273,0x273,0x273,0x273,0x273, -0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb, -0x19fb,0x19fb,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f5,0x19f8,0x19f8,0x19f8, -0x19f8,0x19fe,0x19fe,0x19fe,0x19fe,0x19fe,0x276,0x276,0x276,0x276,0x276,0x276,0x1a55,0x1a55,0x1a55,0x1a55, -0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55,0x1a55, -0x1a55,0x1a55,0x1a55,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x1a64,0x1a64,0x1a64,0x1a64, -0x1a64,0x1a64,0x1a64,0x1a64,0x27f,0x27f,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64, -0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a64,0x1a61,0x1a61,0x1a61, -0x1a58,0x1a58,0x1a58,0x1a58,0x27f,0x27f,0x1a58,0x1a58,0x1a61,0x1a61,0x1a61,0x1a61,0x1a5b,0x1a64,0x1a5e,0x1a64, -0x1a61,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f, -0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x1a70,0x1a70,0x1a70,0x1a70, -0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x282,0x282,0x282,0x1a67,0x1a67,0x1a67,0x1a67, -0x1a67,0x1a67,0x1a67,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a73,0x1a73,0x282,0x282,0x285,0x1a76,0x1a76,0x1a76, -0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76, -0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x1a76,0x285,0x285, -0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288, -0x1aa3,0x1aa3,0x1aa3,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288, -0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x1938,0x1938,0x1938,0x1938, -0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1aa9,0x1aa9,0x1aa9,0x1b4b, -0x1b4b,0x1b4b,0x1b4b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x1aa9,0x1aa9,0x1aa9,0x1aa9, -0x1aa9,0x1aa9,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x28b,0x28b,0x28b, -0x28b,0x28b,0x28b,0x28b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x28b,0x28b,0x28b,0x28b,0x28b, -0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x28b, +0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x207,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746, +0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x1746,0x20d,0x1746,0x1746,0x20d,0x20d, +0x20d,0x20d,0x20d,0x1743,0x1743,0x1743,0x1743,0x1743,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x210, +0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749, +0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x210,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749,0x1749, +0x1749,0x174c,0x210,0x210,0x210,0x210,0x210,0x210,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, +0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x213,0x213,0x213,0x213,0x213, +0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x213,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x213,0x213,0x213,0x213,0x213, +0x213,0x213,0x174f,0x174f,0x174f,0x174f,0x174f,0x174f,0x175b,0x175b,0x175b,0x175b,0x1758,0x175b,0x175b,0x175e, +0x1761,0x175e,0x175e,0x175b,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216,0x216, +0x216,0x216,0x216,0x1758,0x1758,0x1758,0x1758,0x1758,0x17b8,0x17b8,0x17b8,0x17b8,0x17af,0x17af,0x17af,0x17a9, +0x17ac,0x17ac,0x17ac,0x19d4,0x219,0x219,0x219,0x219,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5,0x17b5, +0x17b5,0x17b5,0x219,0x219,0x219,0x219,0x17b2,0x17b2,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3, +0x17d3,0x21c,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3, +0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3,0x17d0,0x17be,0x17be,0x17be,0x17be, +0x17be,0x17be,0x17be,0x21c,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17d0,0x17c1,0x17d3,0x17d6,0x17d6,0x17ca, +0x17c7,0x17c7,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x21c,0x17cd,0x17cd,0x17cd,0x17cd, +0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4, +0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x21c,0x21c,0x21c,0x17e2,0x17e5,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb, +0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9,0x17d9, +0x17d9,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x21f,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, +0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x222, +0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc, +0x17dc,0x222,0x222,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x182a,0x18c6,0x1a2e,0x1a31,0x1ad9,0x225,0x225,0x225, +0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x1ad6,0x1ad6,0x225,0x225,0x225,0x225,0x225,0x225, +0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x225,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb, +0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x17eb,0x228,0x228,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, +0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x228,0x17e8,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, +0x17df,0x17e8,0x17df,0x17df,0x17e8,0x17df,0x17df,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228,0x228, +0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x17ee,0x22b,0x22b,0x22b, +0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b,0x22b, +0x1806,0x1806,0x17f7,0x17f1,0x17f1,0x1806,0x17f4,0x1809,0x1809,0x1809,0x1809,0x180c,0x180c,0x1800,0x17fd,0x17fa, +0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1803,0x1a82,0x1800,0x22e,0x17fa,0x1929,0x19d7, +0x1a85,0x1a85,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e, +0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e,0x22e, +0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812,0x1812, +0x1812,0x1812,0x1812,0x1812,0x231,0x231,0x231,0x231,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, +0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f,0x180f, +0x180f,0x180f,0x180f,0x180f,0x231,0x231,0x231,0x231,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x182d,0x182d,0x19a7,0x19a7,0x19a7,0x19a7,0x19a7,0x1a34,0x1a34,0x1a34,0x1a34,0x1a34,0x1a34, +0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x234,0x1ba8,0x1ba8,0x1ba8,0x237,0x237,0x237,0x237,0x237, +0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x237,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279, +0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x23a, +0x186c,0x186c,0x23a,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c, +0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x186c,0x1860,0x1860,0x1860,0x1860,0x1860,0x1860,0x23a, +0x23a,0x23a,0x1860,0x23a,0x1860,0x1860,0x23a,0x1860,0x1860,0x1860,0x1863,0x1860,0x1866,0x1866,0x186f,0x1860, +0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869,0x1869, +0x1869,0x1869,0x23a,0x23a,0x23a,0x23a,0x23a,0x23a,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x23d,0x23d,0x23d,0x23d,0x187e,0x1881,0x1881,0x240,0x240,0x240,0x240,0x240, +0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x240,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84, +0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1b84,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890, +0x1890,0x1890,0x1890,0x243,0x243,0x243,0x243,0x243,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51, +0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x189c,0x189f,0x18ae,0x18ae,0x189f,0x18a2,0x189c,0x1899, +0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x246,0x1887,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1884, +0x1884,0x1872,0x1872,0x1872,0x1887,0x1887,0x1887,0x1887,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, +0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x249,0x249,0x249,0x249, +0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x249,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x192f, +0x192f,0x192f,0x192f,0x192f,0x192f,0x192f,0x249,0x249,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x27c,0x27c,0x27c, +0x1a3d,0x1a3d,0x1a3d,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, +0x1941,0x1941,0x1941,0x1941,0x193e,0x193e,0x193e,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932, +0x193e,0x1938,0x1935,0x193b,0x24c,0x24c,0x24c,0x24c,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, +0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944,0x1944, +0x1944,0x1944,0x1944,0x24f,0x24f,0x1944,0x1944,0x1944,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x252,0x1953, +0x1953,0x252,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953, +0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1953,0x1950,0x1950,0x1950,0x1950,0x1950,0x252, +0x1947,0x1947,0x252,0x1950,0x1950,0x1947,0x1950,0x194a,0x1953,0x252,0x252,0x252,0x252,0x252,0x252,0x252, +0x195c,0x195c,0x195f,0x195f,0x1956,0x1956,0x1956,0x1956,0x255,0x255,0x255,0x255,0x255,0x255,0x255,0x255, +0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x1959,0x255,0x255,0x255,0x255,0x255,0x255, +0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1965,0x1962,0x1962,0x1962, +0x1965,0x1962,0x1962,0x1962,0x1962,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258,0x258, +0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e,0x196e, +0x196e,0x196e,0x196e,0x1968,0x1968,0x196b,0x196b,0x1971,0x1971,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b,0x25b, +0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974,0x1974, +0x1974,0x1974,0x1974,0x1974,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e,0x25e, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977, +0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x1977,0x197a,0x1983,0x1977,0x1977,0x261,0x261,0x261,0x261,0x261, +0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1986,0x1989,0x264,0x264,0x264,0x264,0x264,0x264,0x264,0x264, +0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992,0x1992, +0x1992,0x1992,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198c,0x198f,0x198f,0x198f, +0x198f,0x1995,0x1995,0x1995,0x1995,0x1995,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267, +0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x267,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72, +0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x1b72,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9, +0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x26d, +0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x26d,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8, +0x270,0x270,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8, +0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f8,0x19f5,0x19f5,0x19f5,0x19ec,0x19ec,0x19ec,0x19ec, +0x270,0x270,0x19ec,0x19ec,0x19f5,0x19f5,0x19f5,0x19f5,0x19ef,0x19f8,0x19f2,0x19f8,0x19f5,0x270,0x270,0x270, +0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270, +0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x270,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, +0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x273,0x273,0x273,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x19fb,0x1a04, +0x1a04,0x1a04,0x1a04,0x1a04,0x1a07,0x1a07,0x273,0x273,0x276,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a, +0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a, +0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x276,0x276,0x279,0x279,0x279,0x279, +0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1a37,0x1a37,0x1a37,0x279, +0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x1a3a,0x1a3a,0x1a3a,0x1a3a, +0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x279,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x1adf,0x1adf,0x1adf,0x27c, +0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1a3d,0x1adf,0x1adf, +0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c, +0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c, +0x1adf,0x1adf,0x1adf,0x1bae,0x1bae,0x1bae,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, +0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1adf,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, +0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x1bab,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, +0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x1bae,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c,0x27c, +0x1a13,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d, +0x1a0d,0x1a0d,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x27f,0x1a10, +0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a16,0x1a16,0x1a16,0x1a16, +0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x1a1c,0x282,0x282,0x282,0x282,0x282,0x1a19, +0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x285,0x285,0x285,0x285, +0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285,0x285, +0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x288,0x288,0x1aa6,0x288,0x288,0x1aa6,0x1aa6,0x1aa6,0x1aa6, +0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x288,0x1aa6,0x1aa6,0x288,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6, +0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1aa6,0x1a8e,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x1a9d,0x288,0x1a9d, +0x1aa0,0x288,0x288,0x1a8e,0x1a8e,0x1aa3,0x1a94,0x1aa9,0x1a9d,0x1aa9,0x1a9d,0x1a91,0x1aac,0x1a97,0x1aac,0x288, +0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x288,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a,0x1a9a, +0x1a9a,0x1a9a,0x288,0x288,0x288,0x288,0x288,0x288,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, +0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x28b,0x28b, 0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, 0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b,0x28b, -0x1a7f,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79, -0x1a79,0x1a79,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x28e,0x1a7c, -0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a82,0x1a82,0x1a82,0x1a82, -0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x1a88,0x291,0x291,0x291,0x291,0x291,0x1a85, -0x1af7,0x1af7,0x1af7,0x1af7,0x1af7,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x1af4,0x294,0x294,0x294,0x294, +0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, +0x1ab2,0x1ab2,0x1ab2,0x291,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, +0x1ab2,0x1ab2,0x1ab2,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291, +0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x291,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5,0x1ab5, +0x1ab5,0x1ab5,0x291,0x291,0x291,0x291,0x291,0x291,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8,0x1ae8, +0x1ae8,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294, 0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294,0x294, -0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x297,0x297,0x1b12,0x297,0x297,0x1b12,0x1b12,0x1b12,0x1b12, -0x1b12,0x1b12,0x1b12,0x1b12,0x297,0x1b12,0x1b12,0x297,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12, -0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1b12,0x1afa,0x1b09,0x1b09,0x1b09,0x1b09,0x1b09,0x297,0x1b09, -0x1b0c,0x297,0x297,0x1afa,0x1afa,0x1b0f,0x1b00,0x1b15,0x1b09,0x1b15,0x1b09,0x1afd,0x1b18,0x1b03,0x1b18,0x297, -0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x1b06,0x1b06,0x1b06,0x1b06,0x1b06,0x1b06,0x1b06,0x1b06, -0x1b06,0x1b06,0x297,0x297,0x297,0x297,0x297,0x297,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51, -0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a, -0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a, -0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e, -0x1b1e,0x1b1e,0x1b1e,0x2a0,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e, -0x1b1e,0x1b1e,0x1b1e,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0, -0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x1b21,0x1b21,0x1b21,0x1b21,0x1b21,0x1b21,0x1b21,0x1b21, -0x1b21,0x1b21,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x2a0,0x1b54,0x1b54,0x1b54,0x1b54,0x1b54,0x1b54,0x1b54,0x1b54, -0x1b54,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3,0x2a3, -0x2a3,0x2a3,0x2a3,0x2a3,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x2a6,0x1b24, -0x1b24,0x1b27,0x2a6,0x2a6,0x1b2a,0x1b2a,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6,0x2a6, -0x2a6,0x2a6,0x2a6,0x2a6,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, -0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, -0x2a9,0x2a9,0x2a9,0x2a9,0x1932,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1,0x2c1, -0x2c1,0x2c1,0x2c1,0x2c1,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, +0x294,0x294,0x294,0x294,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x297,0x1ab8, +0x1ab8,0x1abb,0x297,0x297,0x1abe,0x1abe,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297,0x297, +0x297,0x297,0x297,0x297,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b4e,0x1b51,0x1b51,0x1b51, +0x1b51,0x1b51,0x1b51,0x29a,0x1b54,0x1b54,0x29a,0x29a,0x29a,0x29a,0x29a,0x29a,0x1b4b,0x1b4b,0x1b4b,0x1b4b, +0x1b4b,0x1b4b,0x1b4b,0x1b4b,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, +0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b57,0x1b57,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d,0x29d, +0x29d,0x29d,0x29d,0x29d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x2a0,0x1b5d,0x1b5d,0x1b5d,0x1b5d, +0x2a0,0x1b5d,0x1b5d,0x2a0,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d,0x1b5d, +0x1b5d,0x1b5d,0x1b5d,0x2a0,0x1b60,0x1b66,0x1b66,0x1b63,0x1b63,0x1b63,0x2a6,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63, +0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63, +0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x2a6,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x1b63,0x2a6, +0x2a6,0x2a6,0x2a6,0x2a6,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b6c,0x1b69, +0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69,0x1b69, +0x1b69,0x1b69,0x1b69,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, 0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, -0x2a9,0x2a9,0x97b,0x97b,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x2c4, -0x2c4,0x2c4,0x2c4,0x2c4,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9,0x2a9, -0x2a9,0x2a9,0x2a9,0x2a9,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x1a04, -0x1a04,0x1a04,0x1a04,0x1a04,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33,0x1b33, -0x1b33,0x2ac,0x2ac,0x2ac,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0x12e4, -0x12e4,0x12e4,0x2af,0x2af,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0, -0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0x2af,0x2af, -0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af, -0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af,0x2af, -0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, -0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x2b2,0x2b2, -0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac, -0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0x2b5,0x2b5, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x2bb,0x2bb, -0x17dc,0x17dc,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, -0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932, -0x3cc,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3c0,0x3cc,0x3cc,0x3cc,0x3cc,0x3c6,0x1158,0x133e, -0x3cf,0x945,0x948,0x3bd,0x3bd,0x1155,0x133b,0x133b,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2,0x3d2, -0x1155,0x3c0,0x3c0,0x3cc,0xce1,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf, -0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf, -0x3cf,0x3cf,0x3c0,0x3c0,0x8d0,0x8d3,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963,0x963, -0x3c9,0xfba,0xfb7,0x1341,0x1341,0x1341,0x1341,0x1341,0x1506,0x115b,0x115b,0xf0c,0xf0c,0xdda,0xf0c,0xf0c, -0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3d2,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf, -0x3cf,0x3d2,0x3cf,0x3cf,0x3d2,0x3cf,0x3cf,0x3cf,0x3cf,0x3cf,0x133b,0x133e,0x3c3,0x3cf,0x3cc,0x3cc, -0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x1347,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e, -0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x46e,0x1347,0x18ae,0x18ae,0xfd8,0x45f,0x468, -0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa, -0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0x4aa,0xbc7,0xbc7,0xde6,0xde6,0x8d6,0xde9,0x1428,0x1428,0x1428, -0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad, -0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad,0x4ad, -0x4b3,0x4b3,0x4b3,0x1170,0x1170,0x1170,0x1170,0x1170,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0, -0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0, -0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x4b0,0x116d,0x116d,0x116d,0x116d,0x116d,0x116d, -0x4b6,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3, -0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3,0x4b3, -0x4b3,0x4b3,0x4b3,0x4b3,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9, -0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9, -0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4bc,0x9bd,0x1005,0x1005,0x1008,0x1005, -0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9, -0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x4bf,0x4b9,0x1008,0x1005,0x1008,0x1005,0x1008,0x1005, -0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce, -0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4cb,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce,0x4ce, -0x6ae,0x6ae,0x6b1,0x4e9,0x6bd,0x6ba,0x6ba,0x6b7,0x513,0x513,0x4d1,0x4d1,0x4d1,0x4d1,0x4d1,0xb58, -0x6c0,0x4f5,0x6d8,0x6db,0x50a,0x6c0,0x4f8,0x4f8,0x4e9,0x504,0x504,0x6ae,0x510,0x50d,0x6b4,0x4e3, -0x4da,0x4da,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0x4e0,0x4dd,0x4dd,0x4dd,0x4d4,0x51c,0x519,0x516,0x516, -0x6cc,0x4fe,0x4fb,0x6c9,0x6c6,0x6c3,0x6d5,0x4ec,0x6d2,0x6d2,0x501,0x504,0x6cf,0x6cf,0x501,0x504, -0x4e6,0x4e9,0x4e9,0x4e9,0x507,0x4f2,0x4ef,0xbdc,0xaf2,0xaf5,0xaef,0xaef,0xaef,0xaef,0xbd3,0xbd3, -0xbd3,0xbd3,0xbd9,0xd0e,0xd0b,0xdf5,0xdf8,0xbd6,0xdf8,0xdf8,0xdf8,0xdf8,0xdf5,0xdf8,0xdf8,0xbd0, -0x540,0x540,0x540,0x540,0x540,0x540,0x540,0x53d,0x543,0x75c,0x540,0x9c0,0x9e1,0xaf8,0xaf8,0xaf8, -0xbe2,0xbe2,0xdfe,0xdfe,0xdfe,0xdfe,0x1179,0x117c,0x117c,0x135c,0x14f4,0x151e,0x1521,0x1521,0x1734,0x18b1, -0x54f,0x54f,0x567,0x6ea,0x54c,0x6e7,0x54f,0x564,0x54c,0x6ea,0x55e,0x567,0x567,0x567,0x55e,0x55e, -0x567,0x567,0x567,0x6f3,0x54c,0x567,0x6ed,0x54c,0x55b,0x567,0x567,0x567,0x567,0x567,0x54c,0x54c, -0x552,0x6e7,0x6f0,0x54c,0x567,0x54c,0x6f6,0x54c,0x567,0x555,0x56d,0x6f9,0x567,0x567,0x558,0x55e, -0x567,0x567,0x56a,0x567,0x55e,0x561,0x561,0x561,0x561,0xb04,0xb01,0xd11,0xe07,0xbf7,0xbfa,0xbfa, -0xbf4,0xbf1,0xbf1,0xbf1,0xbf1,0xbfa,0xbf7,0xbf7,0xbf7,0xbf7,0xbee,0xbf1,0xe04,0xf18,0xf1b,0x100e, -0x117f,0x117f,0x117f,0x6ff,0x6fc,0x570,0x573,0x573,0x573,0x573,0x573,0x6fc,0x6ff,0x6ff,0x6fc,0x573, -0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x57c,0x57c,0x57c,0x57c, -0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x576,0x576,0x576,0x576,0x576,0x576, -0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x57f,0x588,0x588,0x582,0x582,0x582,0x585,0x57f, -0x582,0x582,0x57f,0x57f,0x57f,0x57f,0x582,0x582,0x708,0x708,0x57f,0x57f,0x582,0x582,0x582,0x582, -0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x585,0x585,0x585,0x582,0x582,0x70b,0x582, -0x70b,0x582,0x582,0x582,0x582,0x582,0x582,0x582,0x57f,0x582,0x57f,0x57f,0x57f,0x57f,0x57f,0x57f, -0x582,0x582,0x57f,0x708,0x57f,0x57f,0x57f,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, -0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0xbfd,0x711,0x58b,0x711,0x711, -0x58e,0x58b,0x58b,0x711,0x711,0x58e,0x58b,0x711,0x58e,0x58b,0x58b,0x711,0x58b,0x711,0x59a,0x597, -0x58b,0x711,0x58b,0x58b,0x58b,0x58b,0x711,0x58b,0x58b,0x711,0x711,0x711,0x711,0x58b,0x58b,0x711, -0x58e,0x711,0x58e,0x711,0x711,0x711,0x711,0x711,0x717,0x591,0x711,0x591,0x591,0x58b,0x58b,0x58b, -0x711,0x711,0x711,0x711,0x58b,0x58b,0x58b,0x58b,0x711,0x711,0x58b,0x58b,0x58b,0x58e,0x58b,0x58b, -0x58e,0x58b,0x58b,0x58e,0x711,0x58e,0x58b,0x58b,0x711,0x58b,0x58b,0x58b,0x58b,0x58b,0x711,0x58b, -0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x714,0x711,0x58e,0x58b, -0x711,0x711,0x711,0x711,0x58b,0x58b,0x711,0x711,0x58b,0x58e,0x714,0x714,0x58e,0x58e,0x58b,0x58b, -0x58e,0x58e,0x58b,0x58b,0x58e,0x58e,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58e,0x58e,0x711,0x711, -0x58e,0x58e,0x711,0x711,0x58e,0x58e,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b, -0x58b,0x711,0x58b,0x58b,0x58b,0x711,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x711,0x58b,0x58b, -0x58b,0x58b,0x58b,0x58b,0x58e,0x58e,0x58e,0x58e,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b, -0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x711,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b, -0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b, -0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58e,0x58e,0x58e,0x58e,0x58b,0x58b,0x58b,0x58b, -0x58b,0x58b,0x58e,0x58e,0x58e,0x58e,0x58b,0x594,0x58b,0x58b,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00, -0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0xc00,0x59d,0xb0d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -0x5a9,0x5a6,0x5a9,0x5a6,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x71a,0x59d,0x59d,0x59d,0x59d,0x59d, -0x59d,0x59d,0x81f,0x81f,0x59d,0x59d,0x59d,0x59d,0x5a3,0x5a3,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -0x5a0,0x825,0x822,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d, -0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0x59d,0xb0d,0xc06,0xb0d,0xb0d,0xb0d,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac, -0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x5ac,0x723,0x723,0x723,0x723, -0x723,0x723,0x723,0x723,0x723,0x723,0x5b2,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f, -0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xc6f,0xd89,0x72c,0x72c,0x72c,0x72c, -0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c, -0x5b5,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x5b8,0x72c,0x72c,0x72c,0x72c, -0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x5b8,0x5b8,0x5b8,0x5b8,0x72c,0x72c,0x72c,0x72c, -0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72f,0x72f,0x72f,0x72f, -0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x72f,0x5bb,0x5bb,0x72f,0x72f, -0x72f,0x72f,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0xc09,0x735,0x735,0x5be,0x732, -0x732,0x732,0x732,0x732,0x732,0x732,0x5c1,0x5c1,0x5be,0x5be,0x5c4,0x5c4,0x5c4,0x5c4,0x735,0x735, -0x5c4,0x5c4,0x738,0x735,0x5be,0x5be,0x5be,0x5be,0x735,0x735,0x5c4,0x5c4,0x738,0x735,0x5be,0x5be, -0x5be,0x5be,0x735,0x735,0x732,0x5be,0x5c4,0x735,0x5be,0x5be,0x732,0x735,0x735,0x735,0x5c4,0x5c4, -0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x735,0x732, -0x735,0x732,0x5be,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5be,0x5be,0x732,0xb16,0xb16,0xb16,0xb16, -0xb16,0xb16,0xb16,0xb16,0xc0c,0xc0c,0xc0c,0xc0f,0xc0f,0xc8a,0xc8a,0xc0c,0x5d3,0x5d3,0x5d3,0x5d3, -0x5d0,0x74a,0x747,0x5ca,0x5ca,0x73b,0x5ca,0x5ca,0x5ca,0x5ca,0x741,0x73b,0x5ca,0x5d0,0x5ca,0x5c7, -0xd92,0xd92,0xc15,0xc15,0xe13,0xb19,0x5cd,0x5cd,0x73e,0x5d6,0x73e,0x5cd,0x5d0,0x5ca,0x5d0,0x5d0, -0x5ca,0x5ca,0x5d0,0x5ca,0x5ca,0x5ca,0x5d0,0x5ca,0x5ca,0x5ca,0x5d0,0x5d0,0x5ca,0x5ca,0x5ca,0x5ca, -0x5ca,0x5ca,0x5ca,0x5ca,0x5d0,0x5d3,0x5d3,0x5cd,0x5ca,0x5ca,0x5ca,0x5ca,0x74d,0x5ca,0x74d,0x5ca, -0x5ca,0x5ca,0x5ca,0x5ca,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828,0x828, -0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5d0,0x74d,0x74a,0x5d9,0x74d, -0x73b,0x741,0x5d0,0x73b,0x744,0x73b,0x73b,0x5ca,0x73b,0x74a,0x5d9,0x74a,0xb19,0xb19,0xc18,0xc18, -0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc1b,0xc18,0xc18,0xe10,0xec7,0x5dc,0x5dc,0x5dc,0x5dc, -0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc,0x5dc, -0x5df,0x13e6,0x13e6,0x13e6,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x152a,0x5eb,0x5f4,0x5eb, -0x5eb,0x13e6,0x5df,0x5df,0x5f4,0x5f4,0x13e9,0x13e9,0x5f7,0x5f7,0x5e8,0x5ee,0x5e8,0x5e8,0x5ee,0x5df, -0x5ee,0x5df,0x5ee,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5ee,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df, -0x13e6,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5ee,0x5ee,0x5df,0x5df,0x5df, -0x5df,0x5df,0x5df,0x5df,0x5df,0x753,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5ee,0x5df,0x5df,0x5ee, -0x5df,0x5df,0x5df,0x5df,0x13e6,0x5df,0x13e6,0x5df,0x5df,0x5df,0x5df,0x13e6,0x13e6,0x13e6,0x5df,0x12de, -0x5df,0x5df,0x5df,0x5e5,0x5e5,0x5e5,0x5e5,0x1368,0x1368,0x5df,0x5e2,0x5f1,0x5f4,0x5e8,0x5e8,0x5e8, -0xc21,0xc1e,0xc21,0xc1e,0xc21,0xc1e,0xc21,0xc1e,0xc21,0xc1e,0xc21,0xc1e,0xc21,0xc1e,0x750,0x750, -0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x750,0x5df,0x5ee,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df, -0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x13e6,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df, -0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x5df,0x13e6,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x618,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x618,0x61e,0x60f,0x612,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x615,0x615,0x615,0x615,0x615,0x615,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618, -0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618, -0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x618, -0x61e,0x618,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61b,0x621,0x61e,0x618, -0x61b,0x621,0x61e,0x618,0x61e,0x618,0x61b,0x621,0x61e,0x618,0x61e,0x618,0x61b,0x621,0x61e,0x618, -0x61b,0x621,0x61e,0x618,0x61e,0x618,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, -0x136b,0x136b,0x136b,0x136b,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61b,0x621,0x61b,0x621,0x61e,0x618, -0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61e,0x618,0x61b,0x61e,0x618,0x61b, -0x61e,0x618,0x61b,0x621,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x61b,0x61b,0x61b,0x61b,0x61b, -0x61b,0x61b,0x61b,0x61b,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x61b,0x61b,0x618,0x61b,0x618,0x61b,0x618,0x618,0x61b,0x618,0x618,0x61b, -0x618,0x61b,0x618,0x618,0x61b,0x618,0x61b,0x61b,0x618,0x618,0x618,0x61b,0x618,0x618,0x618,0x618, -0x618,0x61b,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618, -0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x618,0x61b,0x61b,0x618,0x618,0x61b,0x618,0x61b,0x618, -0x618,0x618,0x618,0x618,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b, -0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b, -0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x61b,0x621,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621, -0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x621,0x61e,0x61e,0x61e, -0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x61e,0x624,0x624,0x624,0x624,0x101a,0x101a,0x101a,0x152d, -0x152d,0x152d,0x152d,0x152d,0x152d,0x152d,0x173a,0x173a,0x885,0x88b,0x88b,0x897,0x897,0x888,0x87f,0x888, -0x87f,0x888,0x87f,0x888,0x87f,0x888,0x87f,0x888,0x633,0x633,0x62d,0x633,0x62d,0x633,0x62d,0x633, -0x62d,0x633,0x62d,0x630,0x636,0x633,0x62d,0x633,0x62d,0x630,0x636,0x633,0x62d,0x633,0x62d,0x630, -0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x633,0x62d,0x633,0x62d,0x633, -0x62d,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630, -0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630,0x636,0x633,0x62d,0x630, -0x636,0x633,0x62d,0x630,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720, -0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x720,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d, -0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x71d,0x726,0x726,0x726,0x726,0x726,0x726, -0x726,0x726,0x726,0x726,0x726,0x726,0x729,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726,0x726, -0x726,0x726,0x726,0x726,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723, -0x723,0x723,0x723,0x723,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c, -0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c,0x72c, -0x72c,0x72c,0x72c,0x72c,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756, -0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756,0x756, -0x756,0x756,0x756,0x756,0xc78,0x8e8,0x8e2,0x8df,0x8e5,0x8dc,0x76b,0x76e,0x76e,0x76e,0x76e,0x76e, -0x76e,0x76e,0x76e,0x76e,0x8ee,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x76b, -0x76b,0x76b,0x76b,0x76b,0x76b,0x76b,0x8eb,0x8eb,0x771,0x8fd,0x900,0x906,0x82b,0x837,0x91b,0x834, -0x8f4,0x8f1,0x8f4,0x8f1,0x8fa,0x8f7,0x8fa,0x8f7,0x8f4,0x8f1,0x831,0x906,0x8f4,0x8f1,0x8f4,0x8f1, -0x8f4,0x8f1,0x8f4,0x8f1,0x909,0x912,0x90f,0x90f,0x777,0x7b3,0x7b3,0x7b3,0x7b3,0x7b3,0x7b3,0x7ad, -0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad,0x7ad, -0x7ad,0x7ad,0x7ad,0x77a,0x795,0x774,0x79b,0x79e,0x798,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7b0,0x7aa, -0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa,0x7aa, -0x7aa,0x7aa,0x7aa,0x77a,0x795,0x774,0x795,0xc7b,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819, -0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819, -0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x819,0x12d8,0x12d8,0x12d8,0x12d8,0x12d8,0x81c, -0x831,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x834,0x951,0x951,0x951,0x951,0x83a,0x83a, -0x90c,0x918,0x918,0x918,0x918,0x915,0x82e,0x903,0xb3d,0xb3d,0xb3d,0xc8d,0xcab,0xca8,0xb5b,0x8d9, -0x840,0x83d,0x840,0x843,0x83d,0x840,0x83d,0x840,0x83d,0x840,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, -0x840,0x840,0x83d,0x840,0x840,0x83d,0x840,0x840,0x83d,0x840,0x840,0x83d,0x840,0x840,0x83d,0x83d, -0xcae,0x852,0x84c,0x852,0x84c,0x852,0x84c,0x852,0x84c,0x852,0x84c,0x84c,0x84f,0x84c,0x84f,0x84c, -0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c, -0x84f,0x84c,0x84f,0x852,0x84c,0x84f,0x84c,0x84f,0x84c,0x84f,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c, -0x84f,0x84f,0x84c,0x84f,0x84f,0x84c,0x84f,0x84f,0x84c,0x84f,0x84f,0x84c,0x84f,0x84f,0x84c,0x84c, -0x84c,0x84c,0x84c,0x852,0x84c,0x852,0x84c,0x852,0x84c,0x84c,0x84c,0x84c,0x84c,0x84c,0x852,0x84c, -0x84c,0x84c,0x84c,0x84c,0x84f,0x852,0x852,0x84f,0x84f,0x84f,0x84f,0x921,0x924,0x855,0x858,0xc96, -0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, -0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, -0x861,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e, -0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x85e,0x86a,0x86a,0x86a,0x86a, -0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a, -0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0x86a,0xd9b,0xd9b,0xeca,0x864,0x92d,0x92d,0x92d,0x92d, -0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0xd95,0xd95,0xd95,0xd95,0x86d,0x86d,0x86d,0x86d, -0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d, -0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x86d,0x1ab2,0x936,0x936,0x936,0x936, -0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x870,0x870,0x870, -0x870,0x870,0x870,0xd9e,0xd9e,0xd9e,0xd9e,0x939,0x939,0x939,0x939,0x939,0x870,0x870,0x870,0x870, -0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870, -0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0x870,0xd9e,0xd9e, -0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873, -0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873,0x873, -0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876, -0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876, -0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0x876,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd, -0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd,0xecd, -0x113d,0x113d,0x113d,0x113d,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879, -0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x879, -0x879,0x879,0x879,0x879,0x879,0x879,0x87c,0x87c,0x879,0x87c,0x879,0x87c,0x87c,0x879,0x879,0x879, -0x879,0x879,0x879,0x879,0x879,0x879,0x879,0x87c,0x879,0x87c,0x879,0x87c,0x87c,0x879,0x879,0x87c, -0x87c,0x87c,0x879,0x879,0x879,0x879,0x14e5,0x14e5,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f, -0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d, -0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d, -0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x92d,0x131d,0x131d,0x131d,0x131d,0x12bd,0x12bd,0x12bd,0x12bd, -0x12bd,0x12bd,0x12bd,0x12bd,0xd95,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99, -0xc99,0xc99,0xc99,0xc99,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930, -0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x933,0x930,0x933,0x930,0x930, -0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930,0x930, -0x930,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99,0xc99, -0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936, -0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0xd9e, -0x9b7,0x999,0x999,0x999,0x999,0x993,0x999,0x999,0x9ab,0x999,0x999,0x996,0x9a2,0x9a8,0x9a8,0x9a8, -0x9a8,0x9a8,0x9ab,0x993,0x99f,0x993,0x993,0x993,0x98a,0x98a,0x993,0x993,0x993,0x993,0x993,0x993, -0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x993,0x993,0x993,0x993,0x993,0x993, -0x993,0x993,0x993,0x993,0x996,0x98a,0x993,0x98a,0x993,0x98a,0x9a5,0x99c,0x9a5,0x99c,0x9b4,0x9b4, -0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3, -0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3,0x9c3, -0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6, -0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6,0x9c6, -0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9, -0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9,0x9c9, -0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2, -0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9cc,0x9cc, -0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5, -0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9cf,0x9cf, -0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2, -0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2,0x9d2, -0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5, -0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5,0x9d5, -0x9d8,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, -0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9d8,0x9db,0x9db,0x9db, -0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db, -0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0x9db,0xa68,0xa68,0xfff,0xa68,0xa68,0xa68,0xa6b,0xa68, -0xfff,0xa68,0xa68,0xff6,0xa62,0xa56,0xa56,0xa56,0xa56,0xa65,0xa56,0xfe7,0xfe7,0xfe7,0xa56,0xa59, -0xa62,0xa5c,0xfed,0xff9,0xff9,0xfe7,0xfe7,0xfff,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61,0xb61, -0xb61,0xb61,0xa6e,0xa6e,0xa5f,0xa5f,0xa5f,0xa5f,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa65,0xa65, -0xa56,0xa56,0xfff,0xfff,0xfff,0xfff,0xfe7,0xfe7,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, -0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68, -0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa68,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xdf2, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -0xa7d,0xa7d,0xa7d,0xdf2,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d,0xa7d, -0xa7d,0xa7d,0xa7d,0xa7d,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83, -0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83,0xa83, -0xa83,0xa83,0xa83,0xa83,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, -0xa89,0xa86,0xa8c,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0x1176,0x1176,0x1176,0x1176,0x1176, -0x1176,0x1176,0x1176,0x1176,0x1173,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, -0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89, -0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa89,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e, -0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e, -0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xa9e,0xac2,0xac2,0xac2,0xac5,0xac5,0xac2,0xac2,0xac2, -0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xaaa,0xaaa,0xabf,0xaa1, -0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xaa1,0xabf,0xabf,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2, -0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2, -0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xac2,0xae3,0xae3,0xae3,0xae3,0xae3,0xace,0xace,0xae3, -0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xae3,0xae3,0xae3,0xae6,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3,0xae3, -0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb10,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d, -0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xc06,0xc06,0xc06,0xc06,0xc06, -0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, -0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c,0xb1c, -0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e, -0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e,0xb2e, -0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, +0x2a9,0x2a9,0x2a9,0x2a9,0x1b72,0x1b72,0x1b6f,0x1b6f,0x1b6f,0x1b6f,0x1b75,0x1b75,0x1b75,0x1b75,0x2ac,0x2ac, +0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac,0x2ac, +0x2ac,0x2ac,0x2ac,0x2ac,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b, +0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, +0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, +0x1b7b,0x1b7b,0x1b7b,0x2af,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x1b78,0x2af,0x2af, +0x2af,0x2af,0x2af,0x2af,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542,0x1542, +0x1542,0x1542,0x1542,0x1542,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81,0x1b81, +0x1b81,0x1b81,0x1b7e,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2,0x2b2, +0x2b2,0x2b2,0x2b2,0x2b2,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5, +0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x1b8a,0x2b5,0x1b8a,0x1b8a,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87, +0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87, +0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x1b87,0x2b5,0x1b87, +0x1b87,0x2b5,0x2b5,0x2b5,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, +0x1b90,0x1b90,0x2b8,0x2b8,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, +0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8,0x2b8, +0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x18c9,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd,0x2cd, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x94e,0x94e, +0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x2d0,0x2d0,0x2d0,0x2d0,0x2d0, +0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb,0x2bb, +0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0x128d,0x128d,0x128d,0x2be,0x2be, +0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, +0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, +0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be, +0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0x2be,0xb76,0xb76,0xb76,0xb76, +0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, +0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0x2c1,0x2c1,0x129f,0x129f,0x129f,0x129f, +0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, +0x129f,0x1b99,0x1b99,0x1b99,0x1b99,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x2c4,0x13b6,0x13b6,0x13b6,0x13b6, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x2c7,0x2c7,0x1773,0x1773,0x2ca,0x2ca, +0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x2ca,0x18c9,0x18c9,0x18c9,0x18c9, +0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x3d8,0x3cc,0x3cc,0x3cc, +0x3cc,0x3cc,0x3cc,0x3cc,0x3cc,0x3d8,0x3d8,0x3d8,0x3d8,0x3d2,0x110a,0x12e4,0x3db,0x918,0x91b,0x3c9, +0x3c9,0x1107,0x12e1,0x12e1,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x3de,0x1107,0x3cc,0x3cc,0x3d8, +0xc9c,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db, +0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3cc,0x3cc, +0x8a0,0x8a3,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x936,0x3d5,0xf6c,0xf69,0x12e7, +0x12e7,0x12e7,0x12e7,0x12e7,0x14a6,0x110d,0x110d,0xebe,0xebe,0xd8f,0xebe,0xebe,0x3db,0x3db,0x3db,0x3db, +0x3db,0x3db,0x3db,0x3db,0x3db,0x3de,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3db,0x3de,0x3db,0x3db, +0x3de,0x3db,0x3db,0x3db,0x3db,0x3db,0x12e1,0x12e4,0x3cf,0x3db,0x3d8,0x3d8,0x47a,0x47a,0x47a,0x47a, +0x47a,0x47a,0x47a,0x47a,0x47a,0x12ed,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x47a, +0x47a,0x47a,0x47a,0x47a,0x47a,0x47a,0x12ed,0x1845,0x1845,0xf8a,0x46b,0x474,0x4b6,0x4b6,0x4b6,0x4b6, +0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6,0x4b6, +0x4b6,0x4b6,0x4b6,0xb91,0xb91,0xd9b,0xd9b,0x8a6,0xd9e,0x13c8,0x13c8,0x13c8,0x4b9,0x4b9,0x4b9,0x4b9, +0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9, +0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4b9,0x4bf,0x4bf,0x4bf,0x1122, +0x1122,0x1122,0x1122,0x1122,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc, +0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc, +0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x4bc,0x111f,0x111f,0x111f,0x111f,0x111f,0x111f,0x4c2,0x4bf,0x4bf,0x4bf, +0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, +0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf,0x4bf, +0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, +0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, +0x4cb,0x4c5,0x4c5,0x4c5,0x4c5,0x4c5,0x4c8,0x990,0xfb7,0xfb7,0xfba,0xfb7,0x4cb,0x4c5,0x4cb,0x4c5, +0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5, +0x4cb,0x4c5,0x4cb,0x4c5,0x4cb,0x4c5,0xfba,0xfb7,0xfba,0xfb7,0xfba,0xfb7,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4d7,0x4d7,0x4d7,0x4d7, +0x4d7,0x4d7,0x4d7,0x4d7,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x4da,0x696,0x696,0x699,0x4f5, +0x6a5,0x6a2,0x6a2,0x69f,0x51f,0x51f,0x4dd,0x4dd,0x4dd,0x4dd,0x4dd,0xb22,0x6a8,0x501,0x6c0,0x6c3, +0x516,0x6a8,0x504,0x504,0x4f5,0x510,0x510,0x696,0x51c,0x519,0x69c,0x4ef,0x4e6,0x4e6,0x4e9,0x4e9, +0x4e9,0x4e9,0x4e9,0x4ec,0x4e9,0x4e9,0x4e9,0x4e0,0x528,0x525,0x522,0x522,0x6b4,0x50a,0x507,0x6b1, +0x6ae,0x6ab,0x6bd,0x4f8,0x6ba,0x6ba,0x50d,0x510,0x6b7,0x6b7,0x50d,0x510,0x4f2,0x4f5,0x4f5,0x4f5, +0x513,0x4fe,0x4fb,0xba6,0xac5,0xac5,0xac2,0xac2,0xac2,0xac2,0xb9d,0xb9d,0xb9d,0xb9d,0xba3,0xcc9, +0xcc6,0xdaa,0xdad,0xba0,0xdad,0xdad,0xdad,0xdad,0xdaa,0xdad,0xdad,0xb9a,0x54c,0x54c,0x54c,0x54c, +0x54c,0x54c,0x54c,0x549,0x54f,0x72f,0x54c,0x993,0x9b4,0xac8,0xac8,0xac8,0xbac,0xbac,0xdb3,0xdb3, +0xdb3,0xdb3,0x112b,0x112e,0x112e,0x1302,0x1494,0x14be,0x14c1,0x14c1,0x16c8,0x1848,0x55b,0x55b,0x573,0x6d5, +0x558,0x6cf,0x55b,0x570,0x558,0x6d5,0x56a,0x573,0x573,0x573,0x56a,0x56a,0x573,0x573,0x573,0x6db, +0x558,0x573,0x6d8,0x558,0x567,0x573,0x573,0x573,0x573,0x573,0x558,0x558,0x55e,0x6cf,0x6d2,0x558, +0x573,0x558,0x6de,0x558,0x573,0x561,0x579,0x6e1,0x573,0x573,0x564,0x56a,0x573,0x573,0x576,0x573, +0x56a,0x56d,0x56d,0x56d,0x56d,0xad1,0xace,0xccc,0xdbc,0xbc1,0xbc4,0xbc4,0xbbe,0xbbb,0xbbb,0xbbb, +0xbbb,0xbc4,0xbc1,0xbc1,0xbc1,0xbc1,0xbb8,0xbbb,0xdb9,0xeca,0xecd,0xfc0,0x1131,0x1131,0x1131,0x6e7, +0x6e4,0x57c,0x57f,0x57f,0x57f,0x57f,0x57f,0x6e4,0x6e7,0x6e7,0x6e4,0x57f,0x6ed,0x6ed,0x6ed,0x6ed, +0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x6ed,0x588,0x588,0x588,0x588,0x6ea,0x6ea,0x6ea,0x6ea, +0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x6ea,0x582,0x582,0x582,0x582,0x582,0x582,0x58e,0x58e,0x58e,0x58e, +0x58e,0x58e,0x58e,0x58e,0x58b,0x58e,0x58e,0x58e,0x58e,0x58e,0x591,0x58b,0x58e,0x58e,0x58b,0x58b, +0x58b,0x58b,0x58e,0x58e,0x6f0,0x6f0,0x58b,0x58b,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e,0x58e, +0x58e,0x58e,0x58e,0x58e,0x58e,0x591,0x591,0x591,0x58e,0x58e,0x6f3,0x58e,0x6f3,0x58e,0x58e,0x58e, +0x58e,0x58e,0x58e,0x58e,0x58b,0x58e,0x58b,0x58b,0x58b,0x58b,0x58b,0x58b,0x58e,0x58e,0x58b,0x6f0, +0x58b,0x58b,0x58b,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xad7,0xbc7,0xbc7,0xbc7,0xbc7, +0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0xbc7,0x6f6,0x594,0x6f6,0x6f6,0x597,0x594,0x594,0x6f6, +0x6f6,0x597,0x594,0x6f6,0x597,0x594,0x594,0x6f6,0x594,0x6f6,0x5a3,0x5a0,0x594,0x6f6,0x594,0x594, +0x594,0x594,0x6f6,0x594,0x594,0x6f6,0x6f6,0x6f6,0x6f6,0x594,0x594,0x6f6,0x597,0x6f6,0x597,0x6f6, +0x6f6,0x6f6,0x6f6,0x6f6,0x6fc,0x59a,0x6f6,0x59a,0x59a,0x594,0x594,0x594,0x6f6,0x6f6,0x6f6,0x6f6, +0x594,0x594,0x594,0x594,0x6f6,0x6f6,0x594,0x594,0x594,0x597,0x594,0x594,0x597,0x594,0x594,0x597, +0x6f6,0x597,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594, +0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f9,0x6f6,0x597,0x594,0x6f6,0x6f6,0x6f6,0x6f6, +0x594,0x594,0x6f6,0x6f6,0x594,0x597,0x6f9,0x6f9,0x597,0x597,0x594,0x594,0x597,0x597,0x594,0x594, +0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x597,0x597,0x6f6,0x6f6,0x597,0x597,0x6f6,0x6f6, +0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594, +0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594, +0x597,0x597,0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, +0x594,0x594,0x594,0x6f6,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, +0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594,0x594, +0x594,0x594,0x594,0x594,0x597,0x597,0x597,0x597,0x594,0x594,0x594,0x594,0x594,0x594,0x597,0x597, +0x597,0x597,0x594,0x59d,0x594,0x594,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca,0xbca, +0xbca,0xbca,0xbca,0xbca,0x5a6,0xada,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5af,0x5ac,0x5af,0x5ac, +0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x6ff,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x7ef,0x7ef, +0x5a6,0x5a6,0x5a6,0x5a6,0x5a9,0x5a9,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x7f5,0x7f2,0x5a6, +0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, +0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6,0x5a6, +0x5a6,0x5a6,0x5a6,0xada,0xbd0,0xada,0xada,0xada,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2, +0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2, +0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x5b2,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708, +0x708,0x708,0x5b8,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d, +0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xc2d,0xd3b,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, +0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x5bb,0x5be,0x5be,0x5be, +0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x5be,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, +0x70e,0x70e,0x70e,0x70e,0x5be,0x5be,0x5be,0x5be,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, +0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711, +0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x711,0x5c1,0x5c1,0x711,0x711,0x711,0x711,0xbd3,0xbd3, +0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0xbd3,0x717,0x717,0x5c4,0x714,0x714,0x714,0x714,0x714, +0x714,0x714,0x5c4,0x5c4,0x5c4,0x5c4,0x5c7,0x5c7,0x5c7,0x5c7,0x717,0x717,0x5c7,0x5c7,0x717,0x717, +0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x717,0x5c7,0x5c7,0x717,0x717,0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x717, +0x714,0x5c4,0x5c7,0x717,0x5c4,0x5c4,0x714,0x717,0x717,0x717,0x5c7,0x5c7,0x5c4,0x5c4,0x5c4,0x5c4, +0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x5c4,0x717,0x714,0x717,0x714,0x5c4,0x5c7, +0x5c7,0x5c7,0x5c7,0x5c7,0x5c7,0x5c4,0x5c4,0x714,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0,0xae0, +0xbd6,0xbd6,0xbd6,0xbd6,0xbd6,0xc45,0xc45,0xbd6,0x5cd,0x5cd,0x5cd,0x5cd,0x5ca,0x720,0x720,0x5ca, +0x5ca,0x71a,0x5ca,0x5ca,0x5ca,0x5ca,0x71a,0x71a,0x5ca,0x5ca,0x5ca,0x5ca,0xd44,0xd44,0xbd9,0xbd9, +0xdc5,0xae3,0x5cd,0x5cd,0x71d,0x5d0,0x71d,0x5cd,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, +0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, +0x5ca,0x5cd,0x5cd,0x5cd,0x5ca,0x5ca,0x5ca,0x5ca,0x720,0x5ca,0x720,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca, +0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x7f8,0x5ca,0x5ca,0x5ca,0x5ca, +0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x5ca,0x720,0x720,0x5d3,0x720,0x71a,0x71a,0x5ca,0x71a, +0x71d,0x71a,0x71a,0x5ca,0x71a,0x720,0x5d3,0x720,0xae3,0xae3,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc, +0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xdc2,0xe79,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6, +0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d6,0x5d9,0x1389,0x1389,0x1389, +0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x14c7,0x5df,0x5df,0x5df,0x5df,0x1389,0x5d9,0x5d9, +0x5df,0x5df,0x138c,0x138c,0x5e5,0x5e5,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, +0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, +0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x726,0x5d9,0x5d9, +0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389,0x5d9,0x1389,0x5d9, +0x5d9,0x5d9,0x5d9,0x1389,0x1389,0x1389,0x5d9,0x1287,0x5d9,0x5d9,0x5d9,0x5e2,0x5e2,0x5e2,0x5e2,0x130e, +0x130e,0x5d9,0x5dc,0x5dc,0x5df,0x5d9,0x5d9,0x5d9,0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf, +0xbe2,0xbdf,0xbe2,0xbdf,0xbe2,0xbdf,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723,0x723, +0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9, +0x1389,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x5d9,0x1389, +0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, +0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x5fd,0x5fd, +0x5fd,0x5fd,0x5fd,0x5fd,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, +0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, 0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34,0xb34, -0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, -0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0x13ec,0x13ec,0x13ec,0x1b2d,0x1b2d,0x1b2d,0x1b2d,0x1b2d, +0x606,0x606,0x94b,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x5fd,0x5fd,0xbe5,0xd68,0x1afd,0x1afd, +0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, +0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600, +0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600, +0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x603,0x609, +0x606,0x600,0x606,0x600,0x603,0x609,0x606,0x600,0x603,0x609,0x606,0x600,0x606,0x600,0x1311,0x1311, +0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x1311,0x606,0x600,0x606,0x600, +0x606,0x600,0x603,0x609,0x603,0x609,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600,0x606,0x600, +0x606,0x600,0x606,0x600,0x603,0x606,0x600,0x603,0x606,0x600,0x603,0x609,0x600,0x600,0x600,0x600, +0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, +0x600,0x600,0x600,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x606,0x606,0x606,0x606, +0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x600,0x600,0x600, +0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x603,0x603,0x603, +0x603,0x603,0x603,0x603,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x600,0x606,0x909,0x90c, +0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd,0x1afd, +0x603,0x600,0x603,0x603,0x603,0x603,0x603,0x603,0x600,0x603,0x600,0x600,0x603,0x603,0x600,0x600, +0x603,0x603,0x600,0x603,0x600,0x603,0x600,0x600,0x603,0x600,0x600,0x603,0x600,0x603,0x600,0x600, +0x603,0x600,0x603,0x603,0x600,0x600,0x600,0x603,0x600,0x600,0x600,0x600,0x600,0x603,0x600,0x600, +0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600,0x600, +0x600,0x600,0x600,0x600,0x603,0x603,0x600,0x600,0x603,0x600,0x603,0x600,0x600,0x600,0x600,0x600, +0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603, +0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603,0x603, +0x603,0x603,0x603,0x609,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, +0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606,0x606, +0x606,0x606,0x606,0x606,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609, +0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x609,0x606,0x606,0x606,0x606,0x606,0x606,0x606, +0x606,0x606,0x606,0x606,0x60c,0x60c,0x60c,0x60c,0xfcc,0xfcc,0xfcc,0x14ca,0x14ca,0x14ca,0x14ca,0x14ca, +0x14ca,0x14ca,0x16ce,0x16ce,0x855,0x85b,0x85b,0x867,0x867,0x858,0x84f,0x858,0x84f,0x858,0x84f,0x858, +0x84f,0x858,0x84f,0x858,0x61b,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618, +0x61e,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, +0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x61b,0x615,0x618, +0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, +0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618,0x61e,0x61b,0x615,0x618, +0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705,0x705, +0x705,0x705,0x705,0x705,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702, +0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702,0x702, +0x702,0x702,0x702,0x702,0x702,0x702,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b, +0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x70b,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708, +0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x708,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, +0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e, +0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x70e,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729, +0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729, +0x729,0x729,0x729,0x729,0x729,0x729,0x729,0x729,0xc33,0x8b8,0x8b2,0x8af,0x8b5,0x8ac,0x73e,0x741, +0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x741,0x8be,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e, +0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e, +0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x73e,0x8bb,0x8bb,0x744,0x8cd,0x8d0,0x8d6, +0x7fb,0x807,0x8eb,0x804,0x8c4,0x8c1,0x8c4,0x8c1,0x8ca,0x8c7,0x8ca,0x8c7,0x8c4,0x8c1,0x801,0x8d6, +0x8c4,0x8c1,0x8c4,0x8c1,0x8c4,0x8c1,0x8c4,0x8c1,0x8dc,0x8e2,0x8df,0x8df,0x74a,0x786,0x786,0x786, +0x786,0x786,0x786,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x780, +0x780,0x780,0x780,0x780,0x780,0x780,0x780,0x74d,0x768,0x747,0x76e,0x771,0x76b,0x783,0x783,0x783, +0x783,0x783,0x783,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d, +0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x77d,0x74d,0x768,0x747,0x768,0xc36,0x7e9,0x7e9,0x7e9,0x7e9, +0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9, +0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x7e9,0x1281,0x1281, +0x1281,0x1281,0x1281,0x7ec,0x801,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x804,0x924,0x924, +0x924,0x924,0x80a,0x80a,0x8d9,0x8e8,0x8e8,0x8e8,0x8e8,0x8e5,0x7fe,0x8d3,0xb07,0xb07,0xb07,0xc48, +0xc66,0xc63,0xb25,0x8a9,0x810,0x80d,0x810,0x813,0x80d,0x810,0x80d,0x810,0x80d,0x810,0x80d,0x80d, +0x80d,0x80d,0x80d,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d,0x810,0x810,0x80d, +0x810,0x810,0x80d,0x80d,0xc69,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x81c, +0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c, +0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x822,0x81c,0x81f,0x81c,0x81f,0x81c,0x81f,0x81c,0x81c, +0x81c,0x81c,0x81c,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c,0x81f,0x81f,0x81c, +0x81f,0x81f,0x81c,0x81c,0x81c,0x81c,0x81c,0x822,0x81c,0x822,0x81c,0x822,0x81c,0x81c,0x81c,0x81c, +0x81c,0x81c,0x822,0x81c,0x81c,0x81c,0x81c,0x81c,0x81f,0x822,0x822,0x81f,0x81f,0x81f,0x81f,0x8f1, +0x8f4,0x825,0x828,0xc51,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, +0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, +0x82e,0x82e,0x82e,0x82e,0x831,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, +0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e,0x82e, +0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a, +0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0x83a,0xd4d,0xd4d,0xe7c,0x834, +0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0xd47,0xd47,0xd47,0xd47, +0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d, +0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x83d,0x1a46, +0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, +0x903,0x840,0x840,0x840,0x840,0x840,0x840,0xd50,0xd50,0xd50,0xd50,0x906,0x906,0x906,0x906,0x906, +0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840, +0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840,0x840, +0x840,0x840,0xd50,0xd50,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843, +0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843,0x843, +0x843,0x843,0x843,0x843,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x846,0x846,0x846,0x846, +0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846, +0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0x846,0xe7f,0xe7f, +0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f, +0xe7f,0xe7f,0xe7f,0xe7f,0x10ef,0x10ef,0x10ef,0x10ef,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849, +0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849, +0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x84c,0x84c,0x849,0x84c,0x849,0x84c, +0x84c,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x849,0x84c,0x849,0x84c,0x849,0x84c, +0x84c,0x849,0x849,0x84c,0x84c,0x84c,0x849,0x849,0x849,0x849,0x1485,0x1485,0xc5a,0xc5a,0xc5a,0xc5a, +0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0x8fd,0x8fd,0x8fd,0x8fd, +0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd, +0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x8fd,0x12c0,0x12c0,0x12c0,0x12c0, +0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0x1269,0xd47,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, +0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900, +0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900, +0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0x900,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, +0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, +0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903,0x903, +0x903,0x903,0x903,0x903,0x903,0x903,0x903,0xd50,0x98a,0x96c,0x96c,0x96c,0x96c,0x966,0x96c,0x96c, +0x97e,0x96c,0x96c,0x969,0x975,0x97b,0x97b,0x97b,0x97b,0x97b,0x97e,0x966,0x972,0x966,0x966,0x966, +0x95d,0x95d,0x966,0x966,0x966,0x966,0x966,0x966,0x981,0x981,0x981,0x981,0x981,0x981,0x981,0x981, +0x981,0x981,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x966,0x969,0x95d,0x966,0x95d, +0x966,0x95d,0x978,0x96f,0x978,0x96f,0x987,0x987,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996, +0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996, +0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x996,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999, +0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999, +0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x999,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c, +0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c, +0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x99c,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, +0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, +0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x99f,0x99f,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, +0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, +0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a2,0x9a2,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, +0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5, +0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a5,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, +0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8, +0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9a8,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ab,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, +0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae,0x9ae, +0xa3b,0xa3b,0xfb1,0xa3b,0xa3b,0xa3b,0xa3e,0xa3b,0xfb1,0xa3b,0xa3b,0xfa8,0xa35,0xa29,0xa29,0xa29, +0xa29,0xa38,0xa29,0xf99,0xf99,0xf99,0xa29,0xa2c,0xa35,0xa2f,0xf9f,0xfab,0xfab,0xf99,0xf99,0xfb1, +0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xb2b,0xa41,0xa41,0xa32,0xa32,0xa32,0xa32, +0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa38,0xa38,0xa29,0xa29,0xfb1,0xfb1,0xfb1,0xfb1,0xf99,0xf99, +0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b, +0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b,0xa3b, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xda7,0xa50,0xa50,0xa50,0xa50, +0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa50,0xa56,0xa56,0xa56,0xa56, +0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56, +0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa56,0xa5c,0xa5c,0xa5c,0xa5c, +0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa59,0xa5f,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, +0xa5c,0xa5c,0xa5c,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1128,0x1125,0xa5c,0xa5c,0xa5c, +0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, +0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c,0xa5c, +0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, +0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71,0xa71, +0xa95,0xa95,0xa95,0xa98,0xa98,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, +0xa95,0xa95,0xa95,0xa95,0xa7d,0xa7d,0xa92,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa74,0xa92,0xa92, +0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, +0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95,0xa95, +0xab6,0xab6,0xab6,0xab6,0xab6,0xaa1,0xaa1,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab9,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6, +0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xab6,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, +0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada,0xada, +0xada,0xada,0xada,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, +0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6, +0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xae6,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8, +0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xaf8,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe, +0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xafe,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, +0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a,0xb0a, +0x138f,0x138f,0x138f,0x1ac1,0x1ac1,0x1ac1,0x1ac1,0x1ac1,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d, +0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d, +0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0xb0d,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4,0x1ac4, +0x1ac4,0x1ac4,0x1ac4,0x1ac4,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb13,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10, +0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb10,0xb16,0xb16,0xc57,0xc57, +0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16, +0xc57,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb16,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a, +0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0xb3a,0x14cd,0xb43,0xb43,0xb43,0xb43, +0xb43,0xb43,0xcdb,0xcdb,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40, +0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xb40,0xcd8,0xcd8, +0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, 0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, 0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43,0xb43, -0xb43,0xb43,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0x1b30,0xb46,0xb46,0xb46,0xb46, 0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, -0xb46,0xb49,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, 0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46,0xb46, -0xb46,0xb46,0xb46,0xb46,0xb4c,0xb4c,0xc9c,0xc9c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, -0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xc9c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c,0xb4c, -0xb4c,0xb4c,0xb4c,0xb4c,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70, -0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70,0xb70, -0xb70,0xb70,0xb70,0x1530,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xd26,0xd26,0xb76,0xb76,0xb76,0xb76, +0xb55,0xb55,0xb55,0xb55,0xb55,0xb4c,0xb58,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb52,0xb5b,0xb4f,0xb4f, +0xb4f,0xb4f,0xb4f,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb49,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb55,0xb55,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e,0xb5e, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb5e,0xb5e,0xb5e,0xb5e,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb55,0xb55,0xb55,0xb55,0xb55,0xb55,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52, +0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0xb52,0x16d1,0x16d1,0xb6a,0xb61,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb61,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb61,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, +0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64,0xb64, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a, +0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb6a,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67,0xb67, +0xb67,0xb67,0xb67,0xb67,0xb6a,0xb6a,0xb6a,0xb6a,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d, +0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d, +0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb6d,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73, +0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73, +0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0xb73,0x1aca,0x1aca,0x1aca,0x1aca,0x1aca, +0x1aca,0x1aca,0x1b96,0x1b96,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, 0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xb76, -0xb76,0xb76,0xb76,0xb76,0xb76,0xb76,0xd23,0xd23,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74, -0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79, -0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb79,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c, -0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb7c,0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb82,0xb8e,0xb94, -0xb94,0xb94,0xb88,0xb88,0xb88,0xb91,0xb85,0xb85,0xb85,0xb85,0xb85,0xb7f,0xb7f,0xb7f,0xb7f,0xb7f, -0xb7f,0xb7f,0xb7f,0xb94,0xb94,0xb94,0xb94,0xb94,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb8b,0xb8b,0xb94,0xb94,0xb94,0xb88, -0xb88,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb94,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb94,0xb94, -0xb94,0xb94,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb8b, -0xb8b,0xb8b,0xb8b,0xb8b,0xb8b,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88,0xb88, -0xb88,0xb88,0x173d,0x173d,0xba0,0xb97,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb97, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xb97, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb97,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xb97,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a, -0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a, -0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xb9a,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0,0xba0, -0xba0,0xba0,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d, -0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xb9d,0xba0,0xba0,0xba0,0xba0, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3, -0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3,0xba3, -0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, -0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9,0xba9, -0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac, -0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac,0xbac, -0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc06, -0xc06,0xc06,0xc06,0xc06,0xc06,0xc06,0xc03,0xc06,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03, -0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xc03,0xd14,0xd17,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a,0xe0a, -0xe0a,0xe0a,0xe0a,0xe0a,0xf24,0xf24,0xf24,0xf24,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc12,0xc12, -0xc12,0xc12,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1a,0xd1d,0xd1d,0xe10,0xec4,0xe10,0xe10,0xe10,0xe10, -0xe0d,0xe10,0xe0d,0xe10,0xe10,0x1014,0x12ae,0x12ae,0xe19,0xe19,0xe19,0xe19,0xe19,0xe1f,0xe1c,0xf36, -0xf36,0xf36,0xf36,0x142e,0x1026,0x142e,0x1374,0x1374,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e, -0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc4e,0xc81,0xc7e,0xc81,0xc7e,0xc81,0xc7e, -0x1137,0x1134,0x102c,0x1029,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51,0xc51, -0xc51,0xc51,0xc51,0xc51,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, -0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, -0xc54,0xc54,0xc54,0xc54,0xc57,0xc57,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54,0xc54, -0xc5a,0xc5a,0xc5a,0xc60,0xc5d,0xc87,0xc84,0xc60,0xc5d,0xc60,0xc5d,0xc60,0xc5d,0xc60,0xc5d,0xc60, -0xc5d,0xc60,0xc5d,0xc60,0xc5d,0xc60,0xc5d,0xc60,0xc5d,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a, -0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a, -0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc60,0xc5d,0xc60,0xc5d, +0xb76,0xb76,0xb76,0xb76,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0, +0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbd0,0xbcd,0xbd0,0xbcd,0xbcd,0xbcd,0xbcd, +0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xbcd,0xccf,0xcd2,0xdbf,0xdbf,0xdbf, +0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xdbf,0xed6,0xed6,0xed6,0xed6,0xbdc,0xbdc,0xbdc,0xbdc, +0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xbdc,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xcd5,0xdc2,0xe76, +0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xfc6,0x1260,0x1260,0xdcb,0xdcb,0xdcb,0xdcb, +0xdcb,0xdd1,0xdce,0xee8,0xee8,0xee8,0xee8,0x13ce,0xfd8,0x13ce,0x131a,0x131a,0xc0f,0xc0f,0xc0f,0xc0f, +0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc0f,0xc3c,0xc39, +0xc3c,0xc39,0xc3c,0xc39,0x10e9,0x10e6,0xfde,0xfdb,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12, +0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc12,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15, +0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15, +0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc15,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc42,0xc3f,0xc1e, +0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e,0xc1b,0xc1e, +0xc1b,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, +0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, +0xc18,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc1e,0xc1b,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, +0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18,0xc18, +0xc18,0xc18,0xc18,0xc18,0xc1e,0xc1b,0xc18,0xc18,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, +0xc21,0xc21,0xc21,0xc21,0xc27,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, +0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, +0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc27,0xc27,0xc27,0xc21,0xc21,0xc21,0xc21,0xc21, +0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21, +0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc21,0xc24,0xc21,0xc21,0xc21,0xc5a,0xc5a,0xc5a,0xc5a, 0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a, -0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc60,0xc5d,0xc5a,0xc5a, -0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc69,0xc63,0xc63,0xc63, -0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63, -0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63, -0xc69,0xc69,0xc69,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63, -0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63,0xc63, -0xc66,0xc63,0xc63,0xc63,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f, -0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f,0xc9f, -0xc9f,0xc9f,0xc9f,0xc9f,0xd20,0xd8f,0xe0d,0xe0d,0xe0d,0xe0d,0xe0d,0xe10,0xe0d,0xe0d,0xec4,0xec4, -0xe0d,0xe0d,0xe0d,0xe0d,0xe10,0xe10,0xf27,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014,0x1014, -0x1014,0x12db,0x12db,0x12b1,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44, -0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44,0xd44, -0xd44,0xd44,0xd44,0xd44,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd4a,0xd4a,0xd4a,0xd4a,0xd4a,0xd47, -0xd5c,0xd5c,0xd5c,0xd56,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd56, -0xd5c,0xd5c,0xd5c,0xd5c,0xd50,0xd50,0xd59,0xd59,0xd59,0xd59,0xd4d,0xd4d,0xd4d,0xd4d,0xd4d,0xd53, -0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe25,0xe22,0xe25,0xe25,0xe25, -0xe25,0xe25,0xe25,0xe25,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c, -0xd5c,0xd5c,0xd56,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c,0xd5c, -0xd5c,0xd50,0xd50,0xd50,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53, -0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53,0xd53, -0xd53,0xd53,0xd53,0xd53,0xd5f,0xd5f,0xd5f,0xd5f,0xd5f,0xd62,0xd62,0xd62,0xd5f,0xd5f,0xd5f,0xd5f, -0xd5f,0xd5f,0xe28,0xe28,0xe28,0xe28,0xe28,0xe28,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0xf39,0x1140, -0x1140,0x102f,0x102f,0x102f,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65, -0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65,0xd65, -0xd65,0xd65,0xd65,0xd65,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b,0xd6b, -0xd6b,0xd6b,0xd6b,0xd6b,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74, -0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74,0xd74, -0xd74,0xd74,0xd74,0xd74,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80, -0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80,0xd80, -0xd80,0xd80,0xd80,0xd80,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c, -0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c,0xd8c, -0xd8c,0xd8c,0xd8c,0xd8c,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, -0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e,0xe2e, -0xe2e,0xe2e,0xe2e,0xe2e,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34, -0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31, -0xe31,0xe31,0xe31,0xe31,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34, -0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34,0xe34, -0xe34,0xe34,0xe34,0xe34,0xef4,0xef4,0xe46,0xe46,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0x103b, -0x103b,0x103b,0x103b,0x103b,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, -0x1038,0x1038,0x1038,0x1038,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52, -0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52,0xe55,0xe52, -0xe55,0xe52,0xe55,0xe52,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61, -0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61,0xe61, -0xe61,0xe61,0xe61,0xe61,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, -0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, -0xe67,0xe67,0xe67,0xe67,0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xe7f,0xe7f,0xe7f,0xe7f, -0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xe7f,0xf3f,0xf3f,0xf3f,0xf3f,0x103e, -0x103e,0x103e,0x103e,0x103e,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88, -0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88,0xe88, -0xe88,0xe88,0xe88,0xe88,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91, -0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91,0xe91, -0xe91,0xe91,0xe91,0xe91,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a, -0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a,0xe9a, -0xe9a,0xe9a,0xe9a,0xe94,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97, -0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe97,0xe9a, -0xe9a,0xe9a,0xe9a,0xe9a,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3, -0xea3,0xea3,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xea0,0xe9d,0xea6,0x104a,0x1044,0x1053,0x1041, -0xea3,0xea3,0x1041,0x1041,0xeb5,0xeb5,0xea9,0xeb5,0xeb5,0xeb5,0xeac,0xeb5,0xeb5,0xeb5,0xeb5,0xea9, -0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5,0xeb5, -0xeb5,0xeb5,0xeb5,0xeb5,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8, -0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8,0xeb8, -0xeb8,0xeb8,0xeb8,0xeb8,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0, -0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0,0xed0, -0xed0,0xed0,0xed0,0xed0,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1,0xef1, -0xef1,0xef1,0xef1,0xef1,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149,0x1149, -0x1149,0x1149,0x1149,0x1149,0xf24,0xf24,0xf24,0xf21,0xf21,0xf21,0xf21,0xf21,0x1182,0x13dd,0x13dd,0x13dd, -0x13dd,0x135f,0x135f,0x135f,0x13e0,0x1362,0x1362,0x13e0,0x1524,0x1524,0x1524,0x1524,0x1527,0x1527,0x1527,0x17ee, -0x17ee,0x17ee,0x17ee,0x18b4,0xf39,0xf39,0xf39,0xf39,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f, -0x102f,0x102f,0x102f,0x102f,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032, -0x1032,0x1032,0x1032,0x1032,0xf5a,0xf5a,0xf5a,0xf5a,0xf6c,0xf75,0xf78,0xf75,0xf78,0xf75,0xf78,0xf75, -0xf78,0xf75,0xf78,0xf75,0xf75,0xf75,0xf78,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75, -0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf75,0xf5d,0xf5a,0xf5a,0xf5a, -0xf5a,0xf5a,0xf5a,0xf6f,0xf5a,0xf6f,0xf6c,0xf6c,0xf81,0xf7e,0xf81,0xf81,0xf81,0xf7e,0xf7e,0xf81, -0xf7e,0xf81,0xf7e,0xf81,0xf7e,0x1065,0x1065,0x1065,0x11a0,0x105c,0x1065,0x105c,0xf7e,0xf81,0xf7e,0xf7e, -0x105c,0x105c,0x105c,0x105c,0x105f,0x1062,0x11a0,0x11a0,0xf84,0xf84,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e, -0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x106e,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e, -0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a, -0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a, -0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf8a,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, -0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99, -0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0xf99,0x1563,0x1563,0x1563,0x1563,0x1563, -0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0xf9f,0xf9f,0xf9f,0xf9f, -0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f, -0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xf9f,0xfe7,0xfff,0xff6,0xffc, -0xffc,0xfff,0xfff,0xff6,0xff6,0xffc,0xffc,0xffc,0xffc,0xffc,0xfff,0xfff,0xfff,0xfe7,0xfe7,0xfe7, -0xfe7,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfff,0xfe7,0xff6, -0xff9,0xfe7,0xfe7,0xffc,0xffc,0xffc,0xffc,0xffc,0xffc,0xfea,0xfff,0xffc,0xff3,0xff3,0xff3,0xff3, -0xff3,0xff3,0xff3,0xff3,0xff3,0xff3,0x116a,0x116a,0x1167,0x1164,0xff0,0xff0,0x1017,0x1017,0x1017,0x1017, -0x12db,0x12db,0x12b1,0x12b1,0x12b7,0x12ae,0x12ae,0x12ae,0x12ae,0x12b1,0x13e3,0x12b7,0x12b1,0x12b7,0x12ae,0x12b7, -0x12db,0x12ae,0x12ae,0x12ae,0x12b1,0x12b1,0x12ae,0x12ae,0x12b1,0x12ae,0x12ae,0x12b1,0x1032,0x1032,0x1032,0x1032, -0x1032,0x102f,0x102f,0x1032,0x1032,0x1032,0x1032,0x1032,0x1032,0x153c,0x153c,0x153c,0x1140,0x102f,0x102f,0x102f, -0x102f,0x12e7,0x12c0,0x12c0,0x12c0,0x12c0,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x1050,0x1050,0x104d,0x1047, -0x104d,0x1047,0x104d,0x1047,0x104d,0x1047,0x1044,0x1044,0x1044,0x1044,0x1059,0x1056,0x1044,0x119d,0x143a,0x143d, -0x143d,0x143a,0x143a,0x143a,0x143a,0x143a,0x1440,0x1440,0x1557,0x154b,0x154b,0x1548,0x1077,0x106e,0x1077,0x106e, -0x1077,0x106e,0x1077,0x106e,0x106b,0x1068,0x1068,0x1077,0x106e,0x1383,0x1380,0x1746,0x1383,0x1380,0x1449,0x1446, -0x155a,0x155a,0x1560,0x155a,0x1560,0x155a,0x1560,0x155a,0x1560,0x155a,0x1560,0x155a,0x1077,0x106e,0x1077,0x106e, -0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e, -0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x106e,0x1071,0x106e,0x106e,0x106e, -0x106e,0x106e,0x106e,0x106e,0x106e,0x1077,0x106e,0x1077,0x106e,0x1077,0x1077,0x106e,0x107a,0x107a,0x1080,0x1086, -0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086, -0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1086,0x1080,0x107a,0x107a, -0x107a,0x107a,0x1080,0x1080,0x107a,0x107a,0x1083,0x1452,0x144f,0x144f,0x1086,0x1086,0x107d,0x107d,0x107d,0x107d, -0x107d,0x107d,0x107d,0x107d,0x107d,0x107d,0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x109b,0x109b,0x109b,0x109b, -0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b, -0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x109b,0x10a4,0x10a4,0x10a4,0x10a4, -0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4, -0x10a4,0x10a4,0x10a4,0x10a4,0x10a7,0x10a7,0x10a7,0x10aa,0x10a7,0x10a7,0x10ad,0x10ad,0x10b0,0x10b0,0x10b0,0x10b0, -0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0, -0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b0,0x10b9,0x10b9,0x10b9,0x10b9, -0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10bc,0x10b3,0x10c2,0x10bf,0x10b9,0x10b9,0x10b9,0x10b9, -0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9, -0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x10b9,0x1389,0x1386,0x10d4,0x10ce, -0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d1,0x1152,0x10c5,0x10c5,0x10c5,0x10cb, -0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x1458,0x10c8,0x10c8,0x10cb,0x10d7,0x10d4,0x10ce,0x10d4,0x10ce, -0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce, -0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x10d4,0x10ce,0x156f,0x156c,0x156f,0x156c, -0x1572,0x1572,0x174f,0x1458,0x10e0,0x10e0,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, +0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xc5a,0xcd5,0xd41,0xdc2,0xdc2, +0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xe76,0xe76,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xdc2,0xed9,0xfc6, +0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0xfc6,0x1284,0x1284,0x1263,0xcf9,0xcf9,0xcf9,0xcf9, +0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9, +0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xcf9,0xd08,0xd08,0xd08,0xd08, +0xd08,0xd08,0xcff,0xcff,0xcff,0xcff,0xcff,0xcfc,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11, +0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11,0xd05,0xd05,0xd0e,0xd0e, +0xd0e,0xd0e,0xd02,0xd02,0xd02,0xd02,0xd02,0xd08,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7, +0xdd7,0xdd7,0xdd7,0xdd7,0xdd4,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xdd7,0xd11,0xd11,0xd11,0xd11, +0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd0b,0xd11,0xd11,0xd11,0xd11,0xd11, +0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd11,0xd05,0xd05,0xd05,0xd08,0xd08,0xd08,0xd08, +0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08, +0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd08,0xd14,0xd14,0xd14,0xd14, +0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xd14,0xdda,0xdda,0xdda,0xdda,0xdda,0xdda, +0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0xeeb,0x10f2,0x10f2,0xfe1,0xfe1,0xfe1,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17, +0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd17,0xd1d,0xd1d,0xd1d,0xd1d, +0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d, +0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd1d,0xd26,0xd26,0xd26,0xd26, +0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26, +0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd26,0xd32,0xd32,0xd32,0xd32, +0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32, +0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd32,0xd3e,0xd3e,0xd3e,0xd3e, +0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e, +0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xd3e,0xde0,0xde0,0xde0,0xde0, +0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0, +0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde0,0xde6,0xde6,0xde6,0xde6, +0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6, +0xde6,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde3,0xde6,0xde6,0xde6,0xde6, +0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6, +0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xde6,0xea6,0xea6,0xdf8,0xdf8, +0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xeee,0xfed,0xfed,0xfed,0xfed,0xfed,0xfea,0xfea,0xfea,0xfea, +0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xfea,0xe07,0xe04,0xe07,0xe04, +0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04, +0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe07,0xe04,0xe13,0xe13,0xe13,0xe13, +0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13, +0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe13,0xe19,0xe19,0xe19,0xe19, +0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0x1b0c,0xe16,0xe16,0xe16,0xe16, +0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16, +0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0xe16,0x1b09,0xe19,0xe19,0xe19,0xe19, +0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19, +0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xe19,0xea0,0xea0,0xea0,0xea0, +0xea0,0xea0,0xea0,0xea0,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31,0xe31, +0xe31,0xe31,0xe31,0xef1,0xef1,0xef1,0xef1,0xff0,0xff0,0xff0,0xff0,0xff0,0xe3a,0xe3a,0xe3a,0xe3a, +0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a, +0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe3a,0xe43,0xe43,0xe43,0xe43, +0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43, +0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe43,0xe4c,0xe4c,0xe4c,0xe4c, +0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c, +0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe46,0xe49,0xe49,0xe49,0xe49, +0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49, +0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe49,0xe4c,0xe4c,0xe4c,0xe4c,0xe4c,0xe55,0xe55,0xe55,0xe55, +0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe55,0xe52,0xe52,0xe52,0xe52,0xe52,0xe52, +0xe52,0xe52,0xe4f,0xe58,0xffc,0xff6,0x1005,0xff3,0xe55,0xe55,0xff3,0xff3,0xe67,0xe67,0xe5b,0xe67, +0xe67,0xe67,0xe5e,0xe67,0xe67,0xe67,0xe67,0xe5b,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67, +0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe67,0xe6a,0xe6a,0xe6a,0xe6a, +0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a, +0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe6a,0xe82,0xe82,0xe82,0xe82, +0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82, +0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xe82,0xea3,0xea3,0xea3,0xea3, +0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0xea3,0x10fb,0x10fb,0x10fb,0x10fb, +0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0x10fb,0xed6,0xed6,0xed6,0xed3, +0xed3,0xed3,0xed3,0xed3,0x1134,0x1380,0x1380,0x1380,0x1380,0x1305,0x1305,0x1305,0x1383,0x1308,0x1308,0x1383, +0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x14c4,0x1785,0x1785,0x1785,0x1785,0x184b,0xeeb,0xeeb,0xeeb,0xeeb, +0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe1,0xfe4,0xfe4,0xfe4,0xfe4, +0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfea,0xfea,0xfea,0xfea, +0xfea,0xfea,0xfea,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, +0x14df,0x14e2,0x1854,0x1854,0x18d5,0x1854,0x1bb4,0x178b,0x131d,0x113d,0xeee,0xeee,0xf0c,0xf0c,0xf0c,0xf0c, +0xf1e,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf2a,0xf27,0xf27,0xf27,0xf2a,0xf27, +0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27,0xf27, +0xf27,0xf27,0xf27,0xf27,0xf0f,0xf0c,0xf0c,0xf0c,0xf0c,0xf0c,0xf0c,0xf21,0xf0c,0xf21,0xf1e,0xf1e, +0xf33,0xf30,0xf33,0xf33,0xf33,0xf30,0xf30,0xf33,0xf30,0xf33,0xf30,0xf33,0xf30,0x1017,0x1017,0x1017, +0x1152,0x100e,0x1017,0x100e,0xf30,0xf33,0xf30,0xf30,0x100e,0x100e,0x100e,0x100e,0x1011,0x1014,0x1152,0x1152, +0xf36,0xf36,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, +0x1020,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, +0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, +0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c,0xf3c, +0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b, +0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b,0xf4b, +0xf4b,0xf4b,0xf4b,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500,0x1500, +0x1500,0x1500,0x1500,0x1500,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51, +0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51,0xf51, +0xf51,0xf51,0xf51,0xf51,0xf99,0xfb1,0xfa8,0xfae,0xfae,0xfb1,0xfb1,0xfa8,0xfa8,0xfae,0xfae,0xfae, +0xfae,0xfae,0xfb1,0xfb1,0xfb1,0xf99,0xf99,0xf99,0xf99,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1, +0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xfb1,0xf99,0xfa8,0xfab,0xf99,0xf99,0xfae,0xfae,0xfae,0xfae,0xfae, +0xfae,0xf9c,0xfb1,0xfae,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0xfa5,0x111c,0x111c, +0x1119,0x1116,0xfa2,0xfa2,0xfc9,0xfc9,0xfc9,0xfc9,0x1284,0x1284,0x1263,0x1263,0x1263,0x1260,0x1260,0x1260, +0x1260,0x1263,0x1386,0x1263,0x1263,0x1263,0x1260,0x1263,0x1284,0x1260,0x1260,0x1260,0x1263,0x1263,0x1260,0x1260, +0x1263,0x1260,0x1260,0x1263,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4,0xfe1,0xfe1,0xfe4,0xfe4,0xfe4,0xfe4,0xfe4, +0xfe4,0x14d9,0x14d9,0x14d9,0x10f2,0xfe1,0xfe1,0xfe1,0xfe1,0x1290,0x126c,0x126c,0x126c,0x126c,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x1002,0x1002,0xfff,0xff9,0xfff,0xff9,0xfff,0xff9,0xfff,0xff9,0xff6,0xff6, +0xff6,0xff6,0x100b,0x1008,0xff6,0x114f,0x13da,0x13dd,0x13dd,0x13da,0x13da,0x13da,0x13da,0x13da,0x13e0,0x13e0, +0x14f4,0x14e8,0x14e8,0x14e5,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x101d,0x101a,0x101a,0x1029, +0x1020,0x1329,0x1326,0x16da,0x1329,0x1326,0x13e9,0x13e6,0x14f7,0x14f7,0x14fd,0x14f7,0x14fd,0x14f7,0x14fd,0x14f7, +0x14fd,0x14f7,0x14fd,0x14f7,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, +0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020,0x1029,0x1020, +0x1029,0x1020,0x1029,0x1020,0x1023,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1020,0x1029,0x1020,0x1029, +0x1020,0x1029,0x1029,0x1020,0x102c,0x102c,0x1032,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038,0x1038, +0x1038,0x1038,0x1038,0x1038,0x1038,0x1032,0x102c,0x102c,0x102c,0x102c,0x1032,0x1032,0x102c,0x102c,0x1035,0x13f2, +0x13ef,0x13ef,0x1038,0x1038,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x102f,0x13f5,0x13f5, +0x13f5,0x13f5,0x13f5,0x13f5,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, +0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d,0x104d, +0x104d,0x104d,0x104d,0x104d,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056, +0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1056,0x1059,0x1059,0x1059,0x105c, +0x1059,0x1059,0x105f,0x105f,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062, +0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062,0x1062, +0x1062,0x1062,0x1062,0x1062,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, +0x106e,0x1065,0x1074,0x1071,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, +0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b,0x106b, +0x106b,0x106b,0x106b,0x106b,0x132f,0x132c,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, +0x1086,0x1080,0x1083,0x1104,0x1077,0x1077,0x1077,0x107d,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8,0x13f8, +0x107a,0x107a,0x107d,0x1089,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, +0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080,0x1086,0x1080, +0x1086,0x1080,0x1086,0x1080,0x150c,0x1509,0x150c,0x1509,0x150f,0x150f,0x16e3,0x13f8,0x1092,0x1092,0x1095,0x1095, +0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095, +0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1095,0x1092,0x1092,0x1092,0x1092, +0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x1092,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x109b,0x109b, +0x109b,0x109b,0x109b,0x109e,0x109e,0x109e,0x10f8,0x10a7,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6, +0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10b6,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1,0x10a1, +0x10a1,0x10a1,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4, +0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10a4,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5, +0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10c5,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, +0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7, +0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10d7,0x10e0,0x10e0,0x10e0,0x10e0,0x10f5,0x10e0,0x10e0,0x10e0, +0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, +0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, 0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3, -0x10e3,0x10e3,0x10e3,0x10e3,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0,0x10e0, -0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10e9,0x10e9,0x10e9,0x10e9,0x10e9,0x10ec,0x10ec,0x10ec,0x1146,0x10f5, -0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104,0x1104, -0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10ef,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2, -0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2,0x10f2, -0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113, -0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113,0x1113, -0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125, -0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125,0x1125, -0x112e,0x112e,0x112e,0x112e,0x1143,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e,0x112e, -0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131, -0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131,0x1131, -0x113d,0x113d,0x113d,0x113d,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x12e1,0x14e2,0x17cd,0x17cd,0x17cd, -0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x17cd,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d,0x191d, -0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2, -0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11b2,0x11a9,0x11a9,0x11ac,0x11ac,0x11b2,0x11a9,0x11a9,0x11a9,0x11a9,0x11a9, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8,0x11b8, -0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, -0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3,0x11d3, -0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df, -0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11df,0x11dc,0x11e2, -0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee, -0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee,0x11ee, -0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4,0x11f4, -0x11f4,0x132f,0x11fa,0x1332,0x11fa,0x11fa,0x11fa,0x11fa,0x11f7,0x11f7,0x11f7,0x11fa,0x1752,0x1755,0x197a,0x1977, -0x11fd,0x11fd,0x11fd,0x120c,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212, -0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212,0x1212, -0x1212,0x1212,0x1212,0x1200,0x120c,0x120c,0x11fd,0x11fd,0x11fd,0x11fd,0x120c,0x120c,0x11fd,0x11fd,0x120c,0x120c, +0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10e3,0x10ef,0x10ef,0x10ef,0x10ef,0x128a,0x128a,0x128a,0x128a, +0x128a,0x128a,0x128a,0x128a,0x1482,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x1764,0x18b4,0x18b4, +0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164, +0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x1164,0x115b,0x115b, +0x115e,0x115e,0x1164,0x115b,0x115b,0x115b,0x115b,0x115b,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a, +0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x116a,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, +0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185, +0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1185,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, +0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x1191, +0x1191,0x1191,0x1191,0x1191,0x1191,0x1191,0x118e,0x1194,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0, +0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a0,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6, +0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x11a6,0x12d5,0x11ac,0x12d8,0x11ac,0x11ac,0x11ac,0x11ac, +0x11a9,0x11a9,0x11a9,0x11ac,0x16e6,0x16e9,0x1911,0x190e,0x11af,0x11af,0x11af,0x11be,0x11c4,0x11c4,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4, +0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11c4,0x11b2,0x11be,0x11be,0x11af,0x11af, +0x11af,0x11af,0x11be,0x11be,0x11af,0x11af,0x11be,0x11be,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0, +0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d3,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11d0,0x11ca, +0x11ca,0x11ca,0x11d0,0x11cd,0x1515,0x1518,0x151b,0x151b,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, +0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11d6,0x11e2,0x11d6,0x11d6,0x11d6,0x11eb,0x11eb,0x11d6, +0x11d6,0x11eb,0x11e2,0x11eb,0x11eb,0x11e2,0x11d6,0x11d9,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, +0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2, +0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11e2,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd, +0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd, +0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x11fd,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215, +0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215,0x1215, +0x1215,0x1215,0x1215,0x1215,0x1215,0x1212,0x1212,0x1212,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, 0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e, -0x1221,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x1218,0x1218,0x1218,0x121e,0x121b,0x1578,0x157b,0x157e,0x157e, -0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, -0x1224,0x1230,0x1224,0x1224,0x1224,0x1239,0x1239,0x1224,0x1224,0x1239,0x1230,0x1239,0x1239,0x1230,0x1224,0x1227, -0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, -0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230,0x1230, -0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b, -0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b,0x124b, -0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263, -0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1263,0x1260,0x1260,0x1260, -0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c, -0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c,0x126c, -0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b, -0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b,0x127b, -0x1281,0x1281,0x1290,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293, -0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1296,0x1293,0x1296,0x1293,0x1293,0x1293, -0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1293,0x1296,0x1293,0x1293,0x1293,0x1293, -0x1290,0x1290,0x1290,0x1284,0x1284,0x1284,0x1284,0x1290,0x1290,0x128a,0x1287,0x128d,0x128d,0x129c,0x1299,0x1299, -0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, +0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x121e,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d, +0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d, +0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x122d,0x1233,0x1233,0x1242,0x1245,0x1245,0x1245,0x1245,0x1245, +0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, +0x1245,0x1245,0x1248,0x1245,0x1248,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245,0x1245, +0x1245,0x1245,0x1245,0x1248,0x1245,0x1245,0x1245,0x1245,0x1242,0x1242,0x1242,0x1236,0x1236,0x1236,0x1236,0x1242, +0x1242,0x123c,0x1239,0x123f,0x123f,0x124e,0x124b,0x124b,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1257,0x1257,0x1257,0x1254,0x1254,0x1254,0x1251,0x1251, +0x1251,0x1251,0x1254,0x1251,0x1251,0x1251,0x1257,0x1254,0x1257,0x1254,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251,0x1251, +0x1251,0x1251,0x1251,0x1251,0x1251,0x1257,0x1254,0x1254,0x1251,0x1251,0x1251,0x1251,0x1272,0x1272,0x1272,0x1272, +0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1275,0x1275,0x1275,0x125a,0x1917,0x137d,0x127e,0x137d,0x137d, +0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x137d,0x127e,0x137d,0x127e,0x1263,0x1263,0x130b,0x1260, +0x130b,0x130b,0x130b,0x130b,0x1260,0x1260,0x1284,0x1260,0x1260,0x1260,0x1260,0x1260,0x1260,0x1263,0x1284,0x1284, +0x1263,0x1284,0x1260,0x1263,0x1263,0x1266,0x1284,0x1260,0x1260,0x1284,0x1263,0x1263,0x137a,0x137a,0x137a,0x137a, +0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x126f,0x126f,0x126f,0x126f,0x1392,0x1374,0x1278,0x1392,0x1392,0x1392, +0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1392,0x1815,0x1815,0x1815,0x1815,0x1815,0x1272,0x1272,0x1272,0x1272, +0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x151e,0x151e,0x1a64,0x1a64,0x1a64,0x1272,0x1272,0x1272,0x1272, +0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x1272,0x137d,0x137d,0x127e,0x137d, +0x137d,0x137d,0x127e,0x137d,0x137d,0x137d,0x1278,0x1278,0x1278,0x1278,0x1278,0x1377,0x137a,0x137a,0x137a,0x137a, +0x137a,0x137a,0x137a,0x127b,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x127b,0x137a,0x137a,0x137a,0x137a, +0x137a,0x137a,0x137a,0x137a,0x137a,0x137a,0x13fb,0x13fb,0x19c2,0x1a64,0x1a64,0x1a64,0x137a,0x137a,0x137a,0x137a, +0x137a,0x137a,0x137a,0x137a,0x137a,0x127b,0x137a,0x127b,0x127b,0x137a,0x137a,0x127b,0x129f,0x129f,0x129f,0x129f, 0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, -0x12a5,0x12a5,0x12a5,0x12a2,0x12a2,0x12a2,0x129f,0x129f,0x129f,0x129f,0x12a2,0x129f,0x129f,0x129f,0x12a5,0x12a2, -0x12a5,0x12a2,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f, -0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x12a5,0x12a2,0x12a2, -0x129f,0x129f,0x129f,0x129f,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c9, -0x12c9,0x12c9,0x12a8,0x1980,0x13d7,0x12d2,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7,0x13d7, -0x13d7,0x12d2,0x13d7,0x12d2,0x12b1,0x12b1,0x1365,0x12ae,0x1365,0x1365,0x1365,0x1365,0x12ae,0x12b4,0x12db,0x12ae, -0x12ae,0x12ae,0x12ae,0x12ae,0x12b4,0x12b7,0x12db,0x12db,0x12b7,0x12db,0x12ae,0x12b7,0x12b7,0x12ba,0x12db,0x12ae, -0x12ae,0x12db,0x12b1,0x12b1,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x12c3,0x12c3, -0x12c3,0x12c3,0x13ef,0x13ce,0x12cc,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x13ef,0x187e, -0x187e,0x187e,0x187e,0x187e,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x1581, -0x1581,0x1ad0,0x1ad0,0x1ad0,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6,0x12c6, -0x12c6,0x12c6,0x12c6,0x12c6,0x13d7,0x13d7,0x12d2,0x13d7,0x13d7,0x13d7,0x12d2,0x13d7,0x13d7,0x13d7,0x12cc,0x12cc, -0x12cc,0x12cc,0x12cc,0x13d1,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x12cf,0x13d4,0x13d4,0x13d4,0x13d4, -0x13d4,0x13d4,0x13d4,0x12cf,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x145b,0x145b, -0x1a2e,0x1ad0,0x1ad0,0x1ad0,0x13da,0x13da,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x13d4,0x12cf,0x13d4,0x12cf, -0x12cf,0x13d4,0x13da,0x12d5,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9,0x12f9, -0x12f9,0x12f9,0x12f9,0x12f9,0x1383,0x1380,0x1383,0x1380,0x1383,0x1380,0x1383,0x1380,0x1383,0x1380,0x1449,0x1560, -0x1560,0x1560,0x17fa,0x196e,0x1560,0x1560,0x1749,0x1749,0x1749,0x1743,0x1749,0x1743,0x1971,0x196e,0x1a2b,0x1a28, -0x1a2b,0x1a28,0x1a2b,0x1a28,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, -0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, -0x13a7,0x13a7,0x13a7,0x13a7,0x13bc,0x13ad,0x13bc,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf, -0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf,0x13bf, -0x13bf,0x13bf,0x13bf,0x13bf,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5, -0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13c5,0x13cb,0x13cb,0x13cb,0x13cb, -0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb, -0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13cb,0x13fb,0x13f8,0x1923,0x1923, -0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1401,0x1401,0x1404,0x1404,0x1404,0x1404,0x1404,0x1401,0x1404,0x1404,0x1404,0x1401,0x1404,0x1401,0x1404, -0x1401,0x1404,0x1404,0x1404,0x1404,0x1404,0x1407,0x1404,0x1404,0x1404,0x1404,0x1401,0x1404,0x1401,0x1401,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1401,0x1401,0x1401,0x1401, -0x1401,0x1401,0x1401,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401, -0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x158a,0x158a,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1596,0x1590,0x1590,0x1596,0x1596,0x1596,0x1596, -0x1596,0x1596,0x1596,0x1596,0x1596,0x17d0,0x17d0,0x17d0,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1596,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1596,0x17d0,0x17d0, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1407,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1590,0x1590,0x1596,0x1596,0x1590,0x1596,0x1596,0x1596,0x158d,0x158d,0x1596,0x1596, -0x1404,0x1404,0x1407,0x1407,0x1407,0x1701,0x1404,0x1407,0x1404,0x1404,0x1407,0x1599,0x1599,0x1596,0x1596,0x17d0, -0x17d0,0x17d0,0x17d0,0x17d0,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596,0x1596, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1590,0x1590,0x1596,0x1701,0x1596,0x1590,0x1596,0x17d0,0x17d0,0x17d0,0x17d3,0x17d3,0x17d3,0x17d3,0x17d3, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1596, -0x1404,0x1596,0x1407,0x1407,0x1404,0x1404,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407, -0x1407,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407, -0x1407,0x1407,0x1407,0x1407,0x1407,0x1404,0x1404,0x1404,0x1407,0x1404,0x1404,0x1404,0x1404,0x1407,0x1407,0x1407, -0x1404,0x1407,0x1407,0x1407,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1407,0x1404,0x1407,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1701,0x1404,0x1404,0x1404,0x1404,0x1596,0x1590,0x17d0, -0x145e,0x145e,0x145e,0x145e,0x158a,0x158a,0x158d,0x158d,0x158d,0x1593,0x1596,0x17d0,0x17d0,0x17d0,0x17d0,0x1758, -0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404, -0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1596,0x1596,0x1590,0x1590,0x1596,0x1599,0x1599,0x1596,0x1596, -0x1596,0x1596,0x1887,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1596,0x1590,0x1596,0x1590,0x1590,0x1590,0x1590, -0x1596,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1596,0x1590,0x1590,0x1590,0x1596,0x158d,0x158d,0x158d,0x158d, -0x158d,0x158d,0x1596,0x1404,0x1404,0x1404,0x1404,0x1404,0x14e8,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a, -0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x14e8,0x140a,0x140a,0x140a,0x14e8,0x140a,0x14e8, -0x140a,0x14e8,0x140a,0x14e8,0x140a,0x140a,0x140a,0x14e8,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x14e8,0x14e8, -0x140a,0x140a,0x140a,0x140a,0x14e8,0x140a,0x14e8,0x14e8,0x140a,0x140a,0x140a,0x140a,0x14e8,0x140a,0x140a,0x140a, -0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x140a,0x1707,0x1707,0x17d6,0x17d6,0x140d,0x140d,0x140d, -0x140a,0x140a,0x140a,0x140d,0x140d,0x140d,0x140d,0x140d,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686, -0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410, -0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410, -0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1413,0x1410,0x1410,0x1410,0x1410, -0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1413,0x1413,0x1413,0x1410, -0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1410,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416, -0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1416,0x1803,0x1803,0x1800,0x175b,0x1464,0x1464,0x1464,0x1464, -0x1464,0x1464,0x1461,0x1461,0x1461,0x1461,0x1461,0x1461,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464, -0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x1464,0x15a2,0x1470,0x1470,0x1470,0x1482,0x1482,0x1482,0x1482,0x1482, -0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482, -0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x1482,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d, -0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d, -0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x149d,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3, -0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3, -0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x14a3,0x1a34,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6, -0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6, -0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14a6,0x14ac,0x14ac,0x14b8,0x14be,0x14be,0x14be,0x14be,0x14be, -0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be, -0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14be,0x14b8,0x14b8,0x14b8,0x14ac,0x14ac, -0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14ac,0x14b8,0x14bb,0x14be,0x14c1,0x14c1,0x14be,0x14c4,0x14c4,0x14af, -0x14b2,0x1764,0x1767,0x1767,0x1767,0x15ab,0x1adc,0x1ad9,0x14b5,0x14b5,0x14b5,0x14b5,0x14b5,0x14b5,0x14b5,0x14b5, -0x14b5,0x14b5,0x15a8,0x176d,0x1770,0x176a,0x1773,0x1773,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, -0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df, -0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x14df,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0x153c,0x153c,0x1956,0x1956,0x1956,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c, -0x153c,0x1a22,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x153c,0x18ba,0x1956,0x1956,0x1956,0x1956,0x1956, -0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1590,0x1590,0x1596,0x1596,0x1596,0x1590,0x1590,0x1590, -0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1596,0x1596,0x1596,0x158d,0x158d,0x158d,0x158d, -0x158d,0x158d,0x158d,0x158d,0x1596,0x1596,0x1596,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1596, -0x1590,0x1590,0x1596,0x1596,0x1596,0x1596,0x1590,0x1590,0x1599,0x1590,0x1590,0x1590,0x1590,0x1704,0x1704,0x1590, -0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1884,0x1596,0x1590,0x1590,0x1596,0x1590,0x1590,0x1590, -0x1590,0x1590,0x1590,0x1590,0x1590,0x1596,0x1596,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590,0x1590, -0x1596,0x1590,0x1590,0x1590,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, -0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba,0x15ba, -0x15ba,0x15ba,0x15ba,0x15ba,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc,0x15cc, -0x15cc,0x15cc,0x15cc,0x15cc,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2, -0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2,0x15d2, -0x15d2,0x15d2,0x15d2,0x15d2,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, -0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5,0x15d5, -0x15d5,0x15d5,0x15d5,0x15d5,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, -0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614,0x1614, -0x1614,0x1614,0x1614,0x1605,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d, -0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x161d,0x1617, -0x1620,0x1620,0x1620,0x1620,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623, -0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623,0x1623, -0x1623,0x1623,0x1623,0x1623,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x1635,0x163e,0x163e,0x163e, -0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e,0x163e, -0x163e,0x163e,0x163e,0x163e,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647, -0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647,0x1647, -0x1647,0x1647,0x1647,0x1647,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x1656,0x1656,0x1656,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x164a,0x1656, -0x1656,0x164a,0x1656,0x164d,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659,0x1659, -0x1659,0x1659,0x1659,0x1659,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d, -0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d,0x167d, -0x167d,0x167a,0x167a,0x167a,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686, -0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x1686,0x168c,0x168c,0x168c,0x1689,0x1689,0x1689, -0x1686,0x1686,0x1686,0x1686,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -0x169b,0x169b,0x169b,0x169b,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x16a1,0x16a1,0x1695,0x1692,0x1692, -0x1692,0x1692,0x1692,0x1692,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b,0x169b, -0x169b,0x169b,0x169b,0x169b,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7, -0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a7,0x16a4,0x16a4,0x16a4,0x16a4,0x16a4, -0x16a4,0x16a4,0x16a4,0x16a4,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa,0x16aa, -0x16aa,0x16aa,0x16aa,0x16aa,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce, -0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce,0x16ce, -0x16ce,0x16ce,0x16ce,0x16ce,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7,0x16d7, -0x16d7,0x16d7,0x16d7,0x16d7,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16da,0x16e9,0x16e9,0x16da,0x16da,0x16da,0x16da,0x16da,0x16da,0x16e9,0x16da,0x16ec, -0x16ec,0x16da,0x16ec,0x16da,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef,0x16ef, -0x16ef,0x16ef,0x16ef,0x16ef,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, -0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8,0x16f8, -0x16f8,0x16f8,0x16f8,0x16f8,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe, -0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe,0x16fe, -0x16fe,0x16fe,0x16fe,0x16fe,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956, -0x1740,0x1740,0x1740,0x1740,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956,0x1956, -0x1956,0x1956,0x1956,0x1a22,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761, -0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761,0x1761, -0x1761,0x1761,0x1761,0x1761,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d, -0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d, -0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x17a3,0x17a0,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d, -0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6, -0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6, -0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a6,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9, -0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9, -0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17a9,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, +0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x129f,0x1329,0x1326,0x1329,0x1326, +0x1329,0x1326,0x1329,0x1326,0x1329,0x1326,0x13e9,0x14fd,0x14fd,0x14fd,0x1791,0x1905,0x14fd,0x14fd,0x16dd,0x16dd, +0x16dd,0x16d7,0x16dd,0x16d7,0x1908,0x1905,0x19bf,0x19bc,0x19bf,0x19bc,0x19bf,0x19bc,0x134d,0x134d,0x134d,0x134d, +0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d, +0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x134d,0x1362,0x1353,0x1362,0x1365, +0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365, +0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1365,0x1353,0x1353,0x1353,0x1353, +0x1353,0x1353,0x1353,0x1353,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, +0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b,0x136b, +0x136b,0x136b,0x136b,0x136b,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, +0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371,0x1371, +0x1371,0x1371,0x1371,0x1371,0x139b,0x1398,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, +0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, +0x18ba,0x18ba,0x18ba,0x18ba,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a1,0x13a4,0x13a4,0x13a4,0x13a1,0x13a4,0x13a1,0x13a4,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a1,0x13a4,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1, +0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x13a1,0x1527,0x1527, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x1767,0x1767,0x1767, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x1767,0x1767,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x1527,0x1527,0x152a,0x152a,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x1692,0x13a4,0x13a7, +0x13a4,0x13a4,0x13a7,0x152d,0x152d,0x152a,0x152a,0x1767,0x1767,0x1767,0x1767,0x1767,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x1692,0x152a,0x152a,0x152a, +0x1767,0x1767,0x1767,0x176a,0x176a,0x176a,0x176a,0x176a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x13a4,0x152a,0x13a7,0x13a7,0x13a4,0x13a4,0x13a7,0x13a7, +0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7, +0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4, +0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a7,0x13a7,0x13a7,0x13a4,0x13a7,0x13a7,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a7,0x13a4,0x13a7,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x1692,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x1767,0x13fe,0x13fe,0x13fe,0x13fe,0x1527,0x1527,0x1527,0x1527, +0x1527,0x1527,0x152a,0x1767,0x1767,0x1767,0x1767,0x16ec,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4, +0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152d,0x152d,0x152a,0x152a,0x152a,0x152a,0x181e,0x152a,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x152a,0x13a4,0x13a4,0x13a4,0x13a4,0x13a4,0x1488,0x13aa,0x13aa,0x13aa, +0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x13aa, +0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x1488,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x13aa,0x13aa,0x13aa, +0x13aa,0x13aa,0x1488,0x1488,0x13aa,0x13aa,0x13aa,0x13aa,0x1488,0x13aa,0x1488,0x1488,0x13aa,0x13aa,0x13aa,0x13aa, +0x1488,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x13aa,0x1698,0x1698,0x176d, +0x176d,0x13ad,0x13ad,0x13ad,0x13aa,0x13aa,0x13aa,0x13ad,0x13ad,0x13ad,0x13ad,0x13ad,0x1617,0x1617,0x1617,0x1617, +0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x13b0,0x13b0,0x13b0,0x13b0, +0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0, +0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b3, +0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0, +0x13b3,0x13b3,0x13b3,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b0,0x13b6,0x13b6,0x13b6,0x13b6, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6, +0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x13b6,0x179a,0x179a,0x1797,0x16ef, +0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1401,0x1401,0x1401,0x1401,0x1401,0x1401,0x1404,0x1404,0x1404,0x1404, +0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1404,0x1533,0x1407,0x1536,0x1407,0x1407, +0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1407,0x1536,0x1536,0x1536,0x1536,0x1536,0x1536,0x16f2, +0x16f2,0x1b39,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x17a0,0x1a67,0x1a67,0x1410,0x1410,0x1410,0x1422, +0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422, +0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x1422,0x143d,0x143d,0x143d,0x143d, +0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d, +0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x143d,0x1443,0x1443,0x1443,0x1443, +0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443, +0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x1443,0x19c8,0x1446,0x1446,0x1446,0x1446, +0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446, +0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x1446,0x144c,0x144c,0x1458,0x145e, +0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e, +0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x145e,0x1458, +0x1458,0x1458,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x144c,0x1458,0x145b,0x145e,0x1461,0x1461, +0x145e,0x1464,0x1464,0x144f,0x1452,0x16f8,0x16fb,0x16fb,0x16fb,0x153c,0x1a70,0x1a6d,0x1455,0x1455,0x1455,0x1455, +0x1455,0x1455,0x1455,0x1455,0x1455,0x1455,0x1539,0x1701,0x1704,0x16fe,0x1707,0x1707,0x147f,0x147f,0x147f,0x147f, +0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f, +0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x147f,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x18ed,0x18ed,0x18ed,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9, +0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x19b6,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x14d9,0x1851,0x18ed, +0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x1527,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152d,0x152a,0x152a,0x152a,0x152a,0x1695,0x1695,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x181b,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a,0x152a, +0x152a,0x152a,0x152a,0x152a,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, +0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b,0x154b, +0x154b,0x154b,0x154b,0x154b,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, +0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d,0x155d, +0x155d,0x155d,0x155d,0x155d,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563,0x1563, +0x1563,0x1563,0x1563,0x1563,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, +0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566,0x1566, +0x1566,0x1566,0x1566,0x1566,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, +0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5,0x15a5, +0x15a5,0x15a5,0x15a5,0x1596,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae, +0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15ae,0x15a8, +0x15b1,0x15b1,0x15b1,0x15b1,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4,0x15b4, +0x15b4,0x15b4,0x15b4,0x15b4,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15c6,0x15cf,0x15cf,0x15cf, +0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf,0x15cf, +0x15cf,0x15cf,0x15cf,0x15cf,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8, +0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8,0x15d8, +0x15d8,0x15d8,0x15d8,0x15d8,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, +0x15ea,0x15ea,0x15ea,0x15ea,0x15e7,0x15e7,0x15e7,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15db,0x15e7, +0x15e7,0x15db,0x15e7,0x15de,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, +0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea,0x15ea, +0x15ea,0x15ea,0x15ea,0x15ea,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e, +0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e,0x160e, +0x160e,0x160b,0x160b,0x160b,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617, +0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x1617,0x161d,0x161d,0x161d,0x161a,0x161a,0x161a, +0x1617,0x1617,0x1617,0x1617,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1620,0x1632,0x1632,0x1626,0x1623,0x1623, +0x1623,0x1623,0x1623,0x1623,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c,0x162c, +0x162c,0x162c,0x162c,0x162c,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638, +0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1638,0x1635,0x1635,0x1635,0x1635,0x1635, +0x1635,0x1635,0x1635,0x1635,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, +0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b,0x163b, +0x163b,0x163b,0x163b,0x163b,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f, +0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f,0x165f, +0x165f,0x165f,0x165f,0x165f,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668,0x1668, +0x1668,0x1668,0x1668,0x1668,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, +0x1680,0x1680,0x1680,0x1680,0x166b,0x167a,0x167a,0x166b,0x166b,0x166b,0x166b,0x166b,0x166b,0x167a,0x166b,0x167d, +0x167d,0x166b,0x167d,0x166b,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, +0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680,0x1680, +0x1680,0x1680,0x1680,0x1680,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689, +0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689,0x1689, +0x1689,0x1689,0x1689,0x1689,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, +0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f,0x168f, +0x168f,0x168f,0x168f,0x168f,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed, +0x16d4,0x16d4,0x16d4,0x16d4,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed,0x18ed, +0x18ed,0x18ed,0x18ed,0x19b6,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5,0x16f5, +0x16f5,0x16f5,0x16f5,0x16f5,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, +0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, +0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x173a,0x1737,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734, +0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x1734,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, +0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d, +0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x173d,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740, +0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740, +0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1740,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752, +0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1752,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755, +0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1755,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x175b,0x175b,0x175b,0x175b,0x1758, +0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x1758,0x175b,0x175b,0x175b, +0x175b,0x175b,0x175b,0x175b,0x175b,0x1758,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b, +0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b, +0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x175b,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773, +0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773, +0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x1773,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d,0x185d, +0x185d,0x185d,0x185d,0x185d,0x1ad3,0x1a28,0x1a28,0x1a2b,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776,0x1776, +0x1779,0x1827,0x1827,0x1827,0x1827,0x1827,0x1827,0x18c3,0x1776,0x1776,0x1776,0x1776,0x1776,0x1824,0x1824,0x1824, +0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, +0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x1776,0x19a1,0x19a1,0x1a28,0x1a28,0x1a28,0x1a28,0x1a28, +0x1a28,0x1a28,0x1a28,0x1ad0,0x1ba2,0x1a2b,0x1a2b,0x1a2b,0x18c0,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3, +0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c3,0x18c0,0x18c0,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67,0x1a67, +0x1b39,0x1b3c,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x1b36,0x191a,0x179d,0x179d,0x179d,0x179d, +0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x179d,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1827,0x1824, +0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x1827,0x18c3,0x18c3,0x1827,0x1827,0x1827,0x1827,0x1827, +0x1827,0x1827,0x1824,0x17a6,0x1827,0x1827,0x1827,0x1a28,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x17a6,0x1824, +0x1824,0x1824,0x1824,0x1824,0x18c0,0x19a1,0x19a1,0x19a1,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, +0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x18c0,0x17bb,0x17bb,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8, +0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8, +0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17b8,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, 0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb, -0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be, -0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be, -0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17be,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1, -0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1, -0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c4,0x17c4,0x17c4,0x17c4,0x17c1, -0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c1,0x17c4,0x17c4,0x17c4, -0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c1,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4, -0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4, -0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17c4,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc, -0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc, -0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x17dc,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6,0x18c6, -0x18c6,0x18c6,0x18c6,0x18c6,0x1b3f,0x1a94,0x1a94,0x1a97,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df,0x17df, -0x17e2,0x1890,0x1890,0x1890,0x1890,0x1890,0x1890,0x192c,0x17df,0x17df,0x17df,0x17df,0x17df,0x188d,0x188d,0x188d, -0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929, -0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x1890,0x188d, -0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1890,0x192c,0x192c,0x1890,0x1890,0x1890,0x1890,0x1890, -0x1890,0x1890,0x188d,0x180f,0x1890,0x1890,0x1890,0x1a94,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x180f,0x188d, -0x188d,0x188d,0x188d,0x188d,0x1929,0x1a0a,0x1a0a,0x1a0a,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d, -0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x188d,0x1929,0x1824,0x1824,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821, -0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821, -0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1821,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, -0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824, -0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1824,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872, -0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x186f,0x186f,0x186f, -0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x185a,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872, -0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872, -0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, -0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, -0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899, -0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899, -0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1899,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48, -0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x1b48,0x18f0,0x18f0,0x18f0,0x18f0,0x1a46,0x1a46,0x18f3,0x18f3, -0x18f3,0x18f3,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18db,0x18ed, -0x18de,0x18e1,0x18e4,0x18f6,0x18f6,0x1995,0x18e7,0x18e7,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0, -0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0, -0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x18f0,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911, -0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x18fc,0x1902,0x18ff,0x18ff,0x18ff, -0x18ff,0x190e,0x1914,0x18ff,0x18ff,0x18ff,0x18ff,0x190b,0x1911,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff,0x18ff, -0x18ff,0x18ff,0x18ff,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911, -0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1911,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923, -0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1923,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1929,0x1a0a, -0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a, -0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1a0a,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932, -0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932, -0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1932,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938, -0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938, -0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x1938,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa, -0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa, -0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19aa,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5, -0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5, -0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19c5,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb, -0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb, -0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19cb,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6, -0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6, -0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e6,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9, -0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9, -0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19e9,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2, -0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19f2, -0x19f2,0x19f2,0x19f2,0x19f2,0x19f2,0x19ef,0x19ef,0x19ef,0x1a0a,0x1a0a,0x1a0a,0x1b3c,0x1b3c,0x1a94,0x1a94,0x1a94, -0x1a94,0x1a94,0x1a94,0x1b3c,0x1b3c,0x1b3c,0x1a94,0x1a94,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0a,0x1a10,0x1a10,0x1a0a, -0x1a10,0x1a10,0x1a94,0x1a97,0x1a94,0x1a94,0x1a94,0x1a94,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49, -0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49, -0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a49,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70, -0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70, -0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a70,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79, -0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1aaf,0x1aaf,0x1a79,0x1aaf,0x1a79,0x1a79,0x1a79,0x1a79, -0x1a79,0x1a79,0x1a79,0x1a79,0x1a79,0x1a7f,0x1a7f,0x1a7f,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b, -0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b, -0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1a8b,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e, -0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e, -0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b1e,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a, -0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a, -0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b2a,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e, -0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e, -0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b4e,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51, -0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51, -0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0x1b51,0,0,0,0 +0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x17bb,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1806,0x1806,0x1806, +0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x17f1,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809, +0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x1809,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d, +0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x182d,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830, +0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830, +0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1830,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc, +0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1adc,0x1887,0x1887,0x1887,0x1887,0x19da,0x19da,0x188a,0x188a, +0x188a,0x188a,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1872,0x1884, +0x1875,0x1878,0x187b,0x188d,0x188d,0x192c,0x187e,0x187e,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887, +0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887, +0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x1887,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8, +0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x1893,0x1899,0x1896,0x1896,0x1896, +0x1896,0x18a5,0x18ab,0x1896,0x1896,0x1896,0x1896,0x18a2,0x18a8,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896,0x1896, +0x1896,0x1896,0x1896,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8, +0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18a8,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4,0x18b4, +0x18b4,0x18b4,0x18b4,0x199b,0x199b,0x199b,0x199b,0x199b,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7, +0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1ac7,0x1b93,0x1b93,0x1b93,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, +0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba, +0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18ba,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0, +0x18c0,0x18c0,0x18c0,0x18c0,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x1a28,0x1ad0,0x19a1,0x19a1,0x19a1,0x19a1,0x1ad3, +0x1ad0,0x1ba2,0x19a1,0x1a28,0x19a1,0x19a1,0x19a1,0x19a1,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x18c0,0x19a1, +0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1, +0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9, +0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9, +0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18c9,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, +0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc, +0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x18cc,0x1ba5,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf, +0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x18cf,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, +0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941, +0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x1941,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c, +0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c, +0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x195c,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, +0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962, +0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x1962,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d, +0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d, +0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x197d,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980, +0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980, +0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1980,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989, +0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989,0x1989, +0x1989,0x1989,0x1989,0x1989,0x1989,0x1986,0x1986,0x1986,0x19a1,0x19a1,0x19a1,0x1ad0,0x1ad0,0x1a28,0x1a28,0x1a28, +0x1a28,0x1a28,0x1a28,0x1ad0,0x1ad0,0x1ad0,0x1a28,0x1a28,0x19a1,0x19a1,0x19a1,0x19a1,0x19a1,0x19a4,0x19a4,0x19a1, +0x19a4,0x19a4,0x1a28,0x1a2b,0x1a28,0x1a28,0x1a28,0x1a28,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, +0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd, +0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x19dd,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, +0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04, +0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a04,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d, +0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a43,0x1a43,0x1a0d,0x1a43,0x1a0d,0x1a0d,0x1a0d,0x1a0d, +0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a0d,0x1a13,0x1a13,0x1a13,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f, +0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f, +0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1a1f,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, +0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2, +0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1ab2,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe, +0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe, +0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1abe,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2, +0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2, +0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae2,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, +0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5, +0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1ae5,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, +0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a, +0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b5a,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, +0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b, +0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b7b,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, +0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d, +0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b8d,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, +0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90, +0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0x1b90,0,0,0,0 }; static const UTrie2 propsVectorsTrie={ propsVectorsTrie_index, - propsVectorsTrie_index+5024, + propsVectorsTrie_index+5188, NULL, - 5024, - 26204, + 5188, + 26872, 0xa40, - 0x1420, + 0x14c4, 0x0, 0x0, 0x110000, - 0x79f8, + 0x7d38, NULL, 0, FALSE, FALSE, 0, NULL }; -static const uint32_t propsVectors[6999]={ -0x67,0,0,0x67,0,0x4e00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67, -0,0,0xc67,0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0, -0,0x1267,0,0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0, -0x1767,0,0,0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67, -0,0,0x1f67,0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0, -0,0x2567,0,0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000, -0x2b67,0,0,0x2d67,0,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,0,0,0x3b67, -0,0,0x3c67,0,0,0x3e67,0,0,0x4067,0,0,0x4167,0,0,0x4467,0, -0,0x4867,0,0,0x4967,0,0,0x4a67,0,0,0x5067,0,0,0x5167,0,0, -0x5467,0,0,0x5567,0,0,0x5667,0x80000,0x20,0x5767,0,0,0x5867,0,0,0x5967, -0,0,0x5b67,0,0,0x5c67,0,0,0x5d67,0,0,0x6067,0x80000,0x20,0x6267,0, -0,0x6367,0,0,0x6467,0,0,0x6567,0,0,0x6f67,0,0,0x7067,0,0, -0x7367,0x20000000,0,0x7567,0,0,0x7667,0,0,0x7767,0,0,0x7867,0,0,0x7a67, -0,0,0x7b67,0,0,0x7c67,0,0,0x7e67,0,0,0x7f67,0,0,0x8167,0, -0,0x8267,0,0,0x8367,0,0,0x8467,0,0,0x8567,0,0,0x8667,0,0, -0x8767,0,0,0x8867,0,0,0x8967,0,0,0x8b67,0,0,0x8c67,0,0,0x8e67, -0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167,0,0,0x9267,0,0,0x9367,0, -0,0x9567,0,0,0x9667,0,0,0x9767,0,0,0x9867,0,0,0x9967,0,0, -0x9a67,0,0,0x9c67,0,0,0x9f67,0,0,0xa167,0,0,0xa367,0,0,0xa467, -0,0,0xa567,0,0,0xa667,0,0,0xa767,0,0,0xa867,0,0,0xa967,0, -0,0xaa67,0,0x4e00000,0xab67,0,0x4e00000,0xac67,0,0,0xad67,0,0,0xae67,0,0, -0xaf67,0,0,0xb167,0,0,0xb267,0,0,0xb467,0,0,0xb567,0,0,0xb767, -0,0,0xb867,0,0,0xb967,0,0,0xba67,0,0,0xbc67,0,0,0xbd67,0, -0,0xbe67,0,0,0xbf67,0,0,0xc067,0,0,0xc167,0,0,0xc267,0,0, -0xc367,0,0x4e00000,0xc467,0,0x4e00000,0xc667,0,0,0xc767,0,0,0xc867,0,0,0xc967, -0,0,0xca67,0,0,0xcc67,0,0x4e00000,0xcf67,0,0x4e00000,0xd067,0,0x4e00000,0xd267,0, -0,0xd367,0,0,0xd467,0,0,0xd567,0,0,0xd667,0,0,0xd867,0,0, -0xda67,0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0,0xde67,0,0,0xdf67, -0,0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367,0,0x4e00000,0xe467,0, -0,0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0,0,0xe967,0,0, -0xea67,0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0,0xee67,0,0,0xef67, -0,0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667,0,0,0xf767,0, -0,0xf867,0,0,0xf967,0,0,0xfa67,0,0x4e00000,0xfb67,0,0,0xfc67,0,0, -0xfd67,0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0,0x10367,0,0,0x10467, -0,0,0x10567,0,0x4e00000,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967,0, -0,0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0,0, -0x10f67,0,0,0x11067,0,0,0x11367,0,0,0x11467,0,0,0x11567,0,0,0x11667, -0,0,0x11767,0,0,0x11867,0,0,0x11967,0,0x4e00000,0x11a67,0,0,0x11b67,0, -0,0x11c67,0,0,0x11d67,0,0,0x11e67,0,0,0x11f67,0,0,0x12067,0,0, -0x12167,0,0,0x12267,0,0,0x12367,0,0,0x12467,0,0,0x12567,0,0,0x12667, -0,0,0x12767,0,0,0x12867,0,0,0x12967,0,0,0x12a67,0,0x4e00000,0x12b67,0, -0,0x12c67,0,0,0x12d67,0,0,0x12f67,0,0,0x13067,0,0,0x13167,0,0, -0x13267,0,0,0x13367,0,0,0x13467,0,0,0xa0067,0,0xe00000,0xa4767,0,0xe00000,0xa4f67, -0,0xe00000,0xa5e67,0,0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0, -0xe00000,0xb1267,0,0xe00000,0xb2e67,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020, -0x11000100,0x40000001,0xa5a040,0x11000100,0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200, -0x24000000,0x14200000,0x11000200,0x24000008,0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100, -0x220401,0x11000319,0x7c00100,0x220402,0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401, -0x11000419,0x7c00100,0x220402,0x11000419,0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519, -0x7c00100,0x220400,0x11000519,0x7c00100,0x230400,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500, -0x230400,0x11000600,0x7c00500,0x530400,0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001, -0x11000800,0x6800010,0x201001,0x11000800,0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e, -0x4000400,0x200002,0x1100080e,0x7000500,0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100, -0x250400,0x1100080e,0x7c00100,0x250401,0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400, -0x11000908,0x7c00100,0x220401,0x11000908,0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200400,0x11000a03,0x4000000,0x201000,0x11000a03, -0x4000000,0x270000,0x11000a03,0x7c00100,0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000a03,0xc000010, -0x1049400,0x11000b13,0x2802500,0x962460,0x11000b13,0x4000000,0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000, -0x11000b13,0x4000010,0x200000,0x11000b13,0x7c00100,0x2633800,0x11000c00,0x80000000,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02, -0x4000000,0x200000,0x11000c02,0x4000000,0x1329400,0x11000c02,0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100, -0x230400,0x11000c02,0x7c00100,0x230401,0x11000c02,0x7c00100,0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000f01,0x2802400,0x962460, -0x11000f0a,0x2802100,0x962460,0x11000f0a,0x2802400,0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a, -0x7c00100,0x230400,0x11000f0a,0x7c00100,0x230401,0x11001004,0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000, -0x200000,0x11001004,0x4000000,0x1500000,0x11001004,0x6800100,0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401, -0x11001110,0x2802100,0x962460,0x11001110,0x2802400,0x962460,0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110, -0x7c00100,0x230401,0x1100120f,0x2802100,0x962460,0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100, -0x230400,0x1100131f,0x2802100,0x962460,0x1100131f,0x2802400,0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800, -0x1100131f,0x6800100,0x962540,0x1100131f,0x6800100,0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423, -0x2806400,0x962460,0x11001423,0x6800100,0x962540,0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100, -0x962460,0x11001524,0x2802100,0x962461,0x11001524,0x2806400,0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400, -0x11001615,0x2802100,0x962460,0x11001615,0x2806400,0x962460,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a, -0x2802100,0x962460,0x1100171a,0x2806400,0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100, -0x230400,0x11001900,0x4000000,0x1600000,0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000, -0x11001926,0x4000010,0x400000,0x11001926,0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926, -0x7e00100,0x1830000,0x11001a18,0x2802100,0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100, -0x1830000,0x11001a18,0x7c00100,0x1830002,0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400, -0x11001e12,0x7c00100,0x2230500,0x11001e12,0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619, -0x7c00100,0x250401,0x1100270e,0x4000400,0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100, -0x250401,0x11002800,0x80000,0x918820,0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x445801,0x11002800,0x4000001,0x445802, -0x11002800,0x4000001,0xc4000b,0x11002800,0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800, -0x24000000,0x810000,0x11002800,0x24000000,0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006, -0xc0000b,0x11002800,0x24000008,0x1410000,0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000, -0x11002800,0x2c000010,0x15248002,0x11002800,0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0xaa65620,0x11002801,0x82000,0x962460,0x11002900, -0x4000000,0x20000e,0x11002900,0x4000000,0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020, -0x81000f,0x11002900,0x4000020,0x141000e,0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000, -0x11002a00,0x4000000,0x1600000,0x11002a00,0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00, -0x4000000,0x200002,0x11002c00,0x4000000,0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120, -0x220405,0x11002c00,0x7c00120,0x230402,0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401, -0x11002d00,0x4000000,0x100006,0x11002d00,0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00, -0x24000000,0x200000,0x11002e00,0x24000020,0x200000,0x11002e00,0x24000020,0x200001,0x11002e00,0x24000020,0x14200000,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020, -0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,0x24000020,0xf00000,0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000, -0x11003000,0x24000000,0x14200000,0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000,0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200, -0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000,0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000, -0x200000,0x11003600,0x24000000,0x14200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0x4200000,0x11003700,0x24000000,0x4e00000, -0x11003700,0x24000000,0x14200000,0x11003700,0x24000000,0x14e00000,0x11003700,0x24000000,0x96800000,0x11003700,0x24000020,0x4200000,0x11003800,0x4000000,0x100000,0x11003800, -0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x4200000,0x11003800,0x24000000,0x4e00000,0x11003800,0x24000000, -0x14200000,0x11003800,0x24000000,0x14b00000,0x11003800,0x24000000,0x14e00000,0x11003800,0x24000000,0x96800000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460, -0x11005013,0x4000020,0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005100, -0x24000000,0x810000,0x11005100,0x24000000,0x1410000,0x11005102,0x7000100,0x230408,0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100, -0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500,0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404, -0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100,0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200, -0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002,0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000, -0x100000,0x11020200,0x24000000,0x1400000,0x11020200,0x24000000,0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000000,0x14200000,0x11020200,0x24000020,0x100000, -0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100,0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319, -0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402,0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100, -0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600,0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400, -0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400,0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e, -0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401,0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000, -0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800,0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02, -0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002,0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800, -0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000,0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000, -0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00,0x4000000,0x100002,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002, -0x11022c00,0x4000000,0x1410000f,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100,0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00, -0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402,0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022e00,0x24000020, -0x14100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,0x24000020,0x100002,0x11023000,0x24000000,0x100000,0x11023300,0x4000000,0x100002, -0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,0x150403,0x11023300,0x4000100,0x14150403,0x11023400,0x24000000,0x100000,0x11023500, -0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,0x11023600,0x24000020,0x14100000,0x11023700,0x24000000,0x4100000,0x11023700,0x24000000, -0x4e00000,0x11023700,0x24000000,0x14100000,0x11023700,0x24000000,0x14e00000,0x11023700,0x24000020,0x100000,0x11023700,0x24000020,0x4100000,0x11023700,0x24000020,0x14100000, -0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00,0x4000000,0x1600000,0x11045700, -0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100,0xe30c0a,0x11045716,0x7c00100, -0x2530c0a,0x11063d00,0x4000001,0x445811,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011,0x11065700,0x4000000,0x1500011, -0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700,0x4000010,0x871411,0x11065700, -0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420,0xe00011,0x11065700,0x6800000, -0xe01c11,0x11065700,0x6800040,0xe29811,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411,0x11065719,0x7c00100,0xe50411, -0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x19329800,0x11080100,0x24000000,0x200000,0x11080100, -0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000,0x1b00000,0x11080100,0x24000000, -0x2410000,0x11080100,0x24000000,0x18200000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400, +static const uint32_t propsVectors[7095]={ +0x67,0,0,0x67,0,0xe00000,0x67,0x80000,0x20,0x867,0,0,0xa67,0,0,0xb67, +0,0,0xd67,0,0,0xe67,0,0,0x1067,0,0,0x1167,0,0,0x1267,0, +0,0x1367,0,0,0x1467,0,0,0x1567,0,0,0x1667,0,0,0x1767,0,0, +0x1867,0,0,0x1967,0,0,0x1a67,0,0,0x1b67,0,0,0x1d67,0,0,0x1f67, +0,0,0x2067,0,0,0x2267,0,0,0x2367,0,0,0x2467,0,0,0x2567,0, +0,0x2767,0,0,0x2867,0x80000,0x20,0x2967,0,0,0x2a67,0,0x1600000,0x2b67,0,0, +0x2d67,0,0,0x3167,0x20000000,0,0x3267,0x20000000,0,0x3a67,0,0,0x3b67,0,0,0x3c67, +0,0,0x3e67,0,0,0x4067,0,0,0x4167,0,0,0x4467,0,0,0x4867,0, +0,0x4967,0,0,0x4a67,0,0,0x5067,0,0,0x5167,0,0,0x5467,0,0, +0x5567,0,0,0x5667,0x80000,0x20,0x5767,0,0,0x5867,0,0,0x5967,0,0,0x5b67, +0,0,0x5c67,0,0,0x5d67,0,0,0x6067,0x80000,0x20,0x6267,0,0,0x6367,0, +0,0x6467,0,0,0x6567,0,0,0x6f67,0,0,0x7067,0,0,0x7367,0x20000000,0, +0x7567,0,0,0x7667,0,0,0x7767,0,0,0x7867,0,0,0x7a67,0,0,0x7b67, +0,0,0x7c67,0,0,0x7e67,0,0,0x7f67,0,0,0x8167,0,0,0x8267,0, +0,0x8467,0,0,0x8567,0,0,0x8667,0,0,0x8767,0,0,0x8967,0,0, +0x8b67,0,0,0x8c67,0,0,0x8e67,0x20000000,0,0x8f67,0,0,0x9067,0,0,0x9167, +0,0,0x9267,0,0,0x9367,0,0,0x9567,0,0,0x9667,0,0,0x9767,0, +0,0x9867,0,0,0x9967,0,0,0x9a67,0,0,0x9c67,0,0,0x9f67,0,0, +0xa167,0,0,0xa367,0,0,0xa467,0,0,0xa567,0,0,0xa667,0,0,0xa767, +0,0,0xa867,0,0,0xa967,0,0,0xaa67,0,0xe00000,0xab67,0,0xe00000,0xac67,0, +0,0xad67,0,0,0xae67,0,0,0xaf67,0,0,0xb167,0,0,0xb267,0,0, +0xb467,0,0,0xb567,0,0,0xb767,0,0,0xb867,0,0,0xb967,0,0,0xba67, +0,0,0xbc67,0,0,0xbd67,0,0,0xbe67,0,0,0xbf67,0,0,0xc067,0, +0,0xc167,0,0,0xc267,0,0,0xc367,0,0xe00000,0xc467,0,0xe00000,0xc667,0,0, +0xc767,0,0,0xc867,0,0,0xc967,0,0,0xca67,0,0,0xcc67,0,0xe00000,0xcf67, +0,0xe00000,0xd067,0,0xe00000,0xd367,0,0,0xd467,0,0,0xd567,0,0,0xd667,0, +0,0xd867,0,0,0xda67,0,0,0xdb67,0,0,0xdc67,0,0,0xdd67,0,0, +0xde67,0,0,0xdf67,0,0,0xe067,0,0,0xe167,0,0,0xe267,0,0,0xe367, +0,0xe00000,0xe467,0,0,0xe567,0,0,0xe667,0,0,0xe767,0,0,0xe867,0, +0,0xe967,0,0,0xea67,0,0,0xeb67,0,0,0xec67,0,0,0xed67,0,0, +0xee67,0,0,0xef67,0,0,0xf167,0,0,0xf367,0,0,0xf567,0,0,0xf667, +0,0,0xf767,0,0,0xf867,0,0,0xf967,0,0,0xfa67,0,0xe00000,0xfb67,0, +0,0xfc67,0,0,0xfd67,0,0,0xfe67,0,0,0x10167,0,0,0x10267,0,0, +0x10367,0,0,0x10467,0,0,0x10667,0,0,0x10767,0,0,0x10867,0,0,0x10967, +0,0,0x10a67,0,0,0x10b67,0,0,0x10c67,0,0,0x10d67,0,0,0x10e67,0, +0,0x10f67,0,0,0x11067,0,0,0x11367,0,0,0x11467,0,0,0x11567,0,0, +0x11667,0,0,0x11767,0,0,0x11867,0,0,0x11967,0,0xe00000,0x11a67,0,0,0x11b67, +0,0,0x11c67,0,0,0x11d67,0,0,0x11e67,0,0,0x11f67,0,0,0x12067,0, +0,0x12167,0,0,0x12267,0,0,0x12367,0,0,0x12467,0,0,0x12567,0,0, +0x12667,0,0,0x12767,0,0,0x12867,0,0,0x12967,0,0,0x12a67,0,0xe00000,0x12b67, +0,0,0x12c67,0,0,0x12d67,0,0,0x12f67,0,0,0x13067,0,0,0x13167,0, +0,0x13267,0,0,0x13367,0,0,0x13467,0,0,0x13567,0,0,0x13667,0,0, +0x13767,0,0,0x13867,0,0,0x13967,0,0,0x13a67,0,0,0x13b67,0,0,0x13c67, +0,0,0x13d67,0,0,0x13f67,0,0,0x14067,0,0,0xa0067,0,0xe00000,0xa4f67,0, +0xe00000,0xa5f67,0,0xe00000,0xac567,0,0xe00000,0xad167,0,0xe00000,0xb0067,0,0xe00000,0xb1267,0,0xe00000, +0xb2e67,0,0xe00000,0x11000100,0,0x900020,0x11000100,0x40000001,0x440020,0x11000100,0x40000001,0x643020,0x11000100,0x40000001,0xa5a040,0x11000100, +0x40000001,0x116a8a0,0x11000200,0,0x900020,0x11000200,0x4000001,0xc4000b,0x11000200,0x7c00100,0x220402,0x11000200,0x24000000,0x200000,0x11000200,0x24000008, +0x1710000,0x11000200,0x40000001,0x1d3b020,0x11000219,0x7c00100,0x220401,0x11000219,0x7c00100,0x250401,0x11000319,0x7c00100,0x220401,0x11000319,0x7c00100,0x220402, +0x11000319,0x7c00100,0x250400,0x11000319,0x7c00100,0x250401,0x11000419,0x7c00100,0x220400,0x11000419,0x7c00100,0x220401,0x11000419,0x7c00100,0x220402,0x11000419, +0x7c00100,0x230400,0x11000419,0x7c00100,0x250400,0x11000419,0x7c00100,0x250401,0x11000419,0x7c00100,0x250402,0x11000519,0x7c00100,0x220400,0x11000519,0x7c00100, +0x230400,0x11000600,0x4000400,0x200002,0x11000600,0x4000400,0x200400,0x11000600,0x7c00500,0x220400,0x11000600,0x7c00500,0x230400,0x11000600,0x7c00500,0x530400, +0x11000600,0x7c00d00,0x230400,0x11000619,0x7c00500,0x22040f,0x11000800,0x4000010,0x1001401,0x11000800,0x4000400,0x200001,0x11000800,0x6800010,0x201001,0x11000800, +0x7c00500,0x230401,0x11000807,0x7c00100,0x220400,0x11000807,0x7c00100,0x250400,0x1100080e,0x4000400,0x200000,0x1100080e,0x4000400,0x200002,0x1100080e,0x7000500, +0x220402,0x1100080e,0x7c00100,0x220400,0x1100080e,0x7c00100,0x220401,0x1100080e,0x7c00100,0x220402,0x1100080e,0x7c00100,0x250400,0x1100080e,0x7c00100,0x250401, +0x1100080e,0x7c00120,0x220402,0x1100080e,0x7c00120,0x250402,0x11000908,0x4000000,0x200000,0x11000908,0x7c00100,0x220400,0x11000908,0x7c00100,0x220401,0x11000908, +0x7c00100,0x250400,0x11000908,0x7c00100,0x250401,0x11000a03,0x4000000,0x200400,0x11000a03,0x4000000,0x201000,0x11000a03,0x4000000,0x270000,0x11000a03,0x7c00100, +0x220400,0x11000a03,0x7c00100,0x220402,0x11000a03,0x7c00100,0x250400,0x11000a03,0x7c00500,0x230400,0x11000a03,0xc000010,0x1049400,0x11000b13,0x2802500,0x962460, +0x11000b13,0x4000000,0x200000,0x11000b13,0x4000000,0x201000,0x11000b13,0x4000000,0x230400,0x11000b13,0x4000002,0x400000,0x11000b13,0x4000010,0x200000,0x11000b13, +0x7c00100,0x2633800,0x11000c00,0x80000000,0x218960,0x11000c02,0x2802100,0x962460,0x11000c02,0x2802400,0x962460,0x11000c02,0x4000000,0x200000,0x11000c02,0x4000000, +0x1329400,0x11000c02,0x4000000,0x1329800,0x11000c02,0x4000000,0x1500000,0x11000c02,0x6800000,0x1329800,0x11000c02,0x7c00100,0x230400,0x11000c02,0x7c00100,0x230401, +0x11000c02,0x7c00100,0x230402,0x11000c02,0x7c00500,0x230400,0x11000c02,0x7d00100,0x230400,0x11000f01,0x2802400,0x962460,0x11000f0a,0x2802100,0x962460,0x11000f0a, +0x2802400,0x962460,0x11000f0a,0x2806400,0x962460,0x11000f0a,0x4000000,0x200000,0x11000f0a,0x6800100,0x962540,0x11000f0a,0x7c00100,0x230400,0x11000f0a,0x7c00100, +0x230401,0x11001004,0x2802100,0x962460,0x11001004,0x2802400,0x962460,0x11001004,0x2806400,0x962460,0x11001004,0x4000000,0x200000,0x11001004,0x4000000,0x1500000, +0x11001004,0x6800100,0x962540,0x11001004,0x6800100,0x962541,0x11001004,0x7c00100,0x230400,0x11001004,0x7c00100,0x230401,0x11001110,0x2802100,0x962460,0x11001110, +0x2802400,0x962460,0x11001110,0x2806400,0x962460,0x11001110,0x6800100,0x962540,0x11001110,0x7c00100,0x230400,0x11001110,0x7c00100,0x230401,0x1100120f,0x2802100, +0x962460,0x1100120f,0x2802400,0x962460,0x1100120f,0x2806400,0x962460,0x1100120f,0x6800100,0x962540,0x1100120f,0x7c00100,0x230400,0x1100131f,0x2802100,0x962460, +0x1100131f,0x2802400,0x962460,0x1100131f,0x2806400,0x962460,0x1100131f,0x4000000,0x200000,0x1100131f,0x6800000,0x1329800,0x1100131f,0x6800100,0x962540,0x1100131f, +0x6800100,0x962541,0x1100131f,0x7c00100,0x230400,0x1100131f,0x7c00100,0x230401,0x11001423,0x2802100,0x962460,0x11001423,0x2806400,0x962460,0x11001423,0x6800100, +0x962540,0x11001423,0x6800100,0x962541,0x11001423,0x7c00100,0x230400,0x11001423,0x7c00100,0x230401,0x11001524,0x2802100,0x962460,0x11001524,0x2802100,0x962461, +0x11001524,0x2806400,0x962460,0x11001524,0x6800000,0x1329800,0x11001524,0x6800100,0x962540,0x11001524,0x7c00100,0x230400,0x11001615,0x2802100,0x962460,0x11001615, +0x2806400,0x962460,0x11001615,0x6800100,0x962540,0x11001615,0x6800100,0x962541,0x11001615,0x7c00100,0x230400,0x1100171a,0x2802100,0x962460,0x1100171a,0x2806400, +0x962460,0x1100171a,0x6800000,0x1329800,0x1100171a,0x6800100,0x962540,0x1100171a,0x6800100,0x962541,0x1100171a,0x7c00100,0x230400,0x11001900,0x4000000,0x1600000, +0x11001926,0x2802100,0x1862460,0x11001926,0x2802400,0x1862460,0x11001926,0x2806100,0x1862460,0x11001926,0x4000000,0x200000,0x11001926,0x4000010,0x400000,0x11001926, +0x6800000,0x1329800,0x11001926,0x7800100,0x1830142,0x11001926,0x7c00100,0x1830000,0x11001926,0x7c00900,0x1830000,0x11001926,0x7e00100,0x1830000,0x11001a18,0x2802100, +0x1862460,0x11001a18,0x2802400,0x1862460,0x11001a18,0x6800000,0x1329800,0x11001a18,0x7800100,0x1830142,0x11001a18,0x7c00100,0x1830000,0x11001a18,0x7c00100,0x1830002, +0x11001a18,0x7c00900,0x1830000,0x11001a18,0x7e00100,0x1830000,0x11001d0c,0x7c00100,0x230400,0x11001d0c,0x7c00100,0x250400,0x11001e12,0x7c00100,0x2230500,0x11001e12, +0x7c00100,0x2330520,0x11001e12,0x7c80100,0x2330520,0x11002619,0x7c00100,0x220401,0x11002619,0x7c00100,0x220402,0x11002619,0x7c00100,0x250401,0x1100270e,0x4000400, +0x200001,0x1100270e,0x4000400,0x200002,0x1100270e,0x4000400,0x500001,0x1100270e,0x7c00100,0x220401,0x1100270e,0x7c00100,0x250401,0x11002800,0x80000,0x918820, +0x11002800,0x80000,0x1c18020,0x11002800,0x180000,0x918820,0x11002800,0x4000001,0x445801,0x11002800,0x4000001,0x445802,0x11002800,0x4000001,0xc4000b,0x11002800, +0x6800000,0x201c00,0x11002800,0x6800020,0x201c00,0x11002800,0x24000000,0x200000,0x11002800,0x24000000,0x200002,0x11002800,0x24000000,0x810000,0x11002800,0x24000000, +0x1410000,0x11002800,0x24000000,0x1500000,0x11002800,0x24000000,0x1500002,0x11002800,0x24000002,0x400000,0x11002800,0x24000006,0xc0000b,0x11002800,0x24000008,0x1410000, +0x11002800,0x24000008,0x1710000,0x11002800,0x24000020,0x1001400,0x11002800,0x24000020,0x1500002,0x11002800,0x2c000010,0x1248000,0x11002800,0x2c000010,0x1248002,0x11002800, +0x40000001,0x63b020,0x11002800,0x40080000,0x918820,0x11002801,0x80000,0x2a65620,0x11002801,0x82000,0x962460,0x11002900,0x4000000,0x20000e,0x11002900,0x4000000, +0x20000f,0x11002900,0x4000020,0x20000e,0x11002900,0x4000020,0x20000f,0x11002900,0x4000020,0x81000e,0x11002900,0x4000020,0x81000f,0x11002900,0x4000020,0x141000e, +0x11002900,0x4000020,0x141000f,0x11002900,0x4000022,0x20000e,0x11002900,0x4000022,0x20000f,0x11002a00,0x4000000,0x1500000,0x11002a00,0x4000000,0x1600000,0x11002a00, +0x4000000,0x1600002,0x11002b01,0x2000,0x962460,0x11002b01,0x2802020,0x962460,0x11002c00,0x4000000,0x200000,0x11002c00,0x4000000,0x200002,0x11002c00,0x4000000, +0x20000f,0x11002c00,0x4000020,0x200000,0x11002c00,0x7c00000,0x200000,0x11002c00,0x7c00020,0x200000,0x11002c00,0x7c00120,0x220405,0x11002c00,0x7c00120,0x230402, +0x11002c00,0x7c00120,0x250402,0x11002c00,0x7c00120,0x250405,0x11002c19,0x7c00100,0x250400,0x11002c19,0x7c00100,0x250401,0x11002d00,0x4000000,0x100006,0x11002d00, +0x4000000,0x200006,0x11002d19,0x7c00100,0x220402,0x11002d19,0x7c00100,0x230400,0x11002d19,0x7c00100,0x250402,0x11002e00,0x24000000,0x200000,0x11002e00,0x24000020, +0x200000,0x11002e00,0x24000020,0x200001,0x11002f00,0x24000020,0x200000,0x11002f00,0x24000020,0x200001,0x11002f00,0x24000020,0x200002,0x11002f00,0x24000020,0xf00000, +0x11002f00,0x24000020,0x1600000,0x11002f00,0x24000022,0x1600000,0x11003000,0x24000000,0x200000,0x11003000,0x24000020,0x200000,0x11003000,0x24000020,0x810000,0x11003000, +0x24000020,0x1410000,0x11003100,0x24000000,0x200000,0x11003200,0x24000000,0x200000,0x11003300,0x4000000,0x100003,0x11003400,0x24000000,0x100000,0x11003400,0x24000000, +0x200000,0x11003500,0x24000000,0x200000,0x11003600,0x24000000,0x200000,0x11003600,0x24000020,0x200000,0x11003700,0x24000000,0x200000,0x11003700,0x24000000,0xe00000, +0x11003700,0x24000000,0x2800000,0x11003700,0x24000020,0x200000,0x11003800,0x4000000,0x100000,0x11003800,0x24000000,0x200000,0x11003800,0x24000000,0xb00000,0x11003800, +0x24000000,0xe00000,0x11003800,0x24000000,0x1710000,0x11003800,0x24000000,0x2800000,0x11005003,0x7c00100,0x220402,0x11005013,0x2802500,0x962460,0x11005013,0x4000020, +0x200005,0x11005013,0x7c00100,0x2633801,0x11005013,0x7c00100,0x2633802,0x11005013,0x7c00100,0x2633805,0x11005019,0x7c00100,0x220402,0x11005102,0x7000100,0x230408, +0x11005102,0x7c00100,0x230404,0x11005102,0x7c00100,0x230407,0x11005102,0x7c00100,0x230408,0x11005102,0x7c00100,0x230409,0x11005201,0x2802400,0x962460,0x11005500, +0x80000,0x1e18820,0x11005502,0x7000100,0x230408,0x11005502,0x7c00100,0x230404,0x11005502,0x7c00100,0x230407,0x11005502,0x7c00100,0x230408,0x11005502,0x7c00100, +0x230409,0x11005667,0x1000,0,0x11020200,0x80004,0x418820,0x11020200,0x4000000,0x100006,0x11020200,0x4000000,0x10000f,0x11020200,0x4000400,0x100002, +0x11020200,0x4000400,0x500002,0x11020200,0x6800c00,0x101000,0x11020200,0x24000000,0x100000,0x11020200,0x24000000,0x200000,0x11020200,0x24000000,0x1400000,0x11020200, +0x24000000,0x1500000,0x11020200,0x24000000,0x1600000,0x11020200,0x24000020,0x100000,0x11020200,0x24000020,0x1600000,0x11020219,0x7c00100,0x12040f,0x11020219,0x7c00100, +0x220400,0x11020219,0x7c00100,0x220401,0x11020219,0x7c00100,0x250400,0x11020319,0x7c00100,0x220400,0x11020319,0x7c00100,0x220401,0x11020319,0x7c00100,0x220402, +0x11020319,0x7c00100,0x250400,0x11020319,0x7c00100,0x250402,0x11020319,0x7d00100,0x220402,0x11020419,0x7c00100,0x220401,0x11020519,0x7c00100,0x220400,0x11020600, +0x4000400,0x100002,0x11020600,0x4000400,0x200400,0x11020600,0x7c00500,0x130400,0x11020600,0x7c00d00,0x130400,0x11020701,0x2802400,0x962460,0x11020701,0x2802400, +0x962461,0x11020701,0x2802400,0xc62460,0x1102080e,0x7c00100,0x220400,0x1102080e,0x7c00100,0x250400,0x11020908,0x7c00100,0x220400,0x11020908,0x7c00100,0x220401, +0x11020908,0x7c00100,0x250400,0x11020908,0x7c00100,0x250401,0x11022800,0x24000000,0x100000,0x11022800,0x24000000,0x200000,0x11022800,0x24000000,0x200002,0x11022800, +0x24000000,0x401000,0x11022800,0x24000000,0xf00002,0x11022800,0x24000000,0xf0ac02,0x11022800,0x24000000,0x1500000,0x11022800,0x24000002,0x100000,0x11022800,0x24000002, +0x370000,0x11022800,0x24000002,0x470000,0x11022800,0x24000006,0x400000,0x11022800,0x24000008,0x1710000,0x11022800,0x24000008,0x1712c00,0x11022800,0x24000020,0x100000, +0x11022800,0x24000020,0x1500000,0x11022800,0x24000020,0x1500002,0x11022900,0x4000000,0x10000e,0x11022900,0x4000000,0x10000f,0x11022919,0x7c00100,0x12040f,0x11022c00, +0x4000000,0x100002,0x11022c00,0x4000000,0x10000f,0x11022c00,0x4000000,0x1500002,0x11022c00,0x4000000,0x1600002,0x11022c00,0x7c00120,0x120405,0x11022c0e,0x7c00100, +0x250401,0x11022c19,0x7c00100,0x150401,0x11022d00,0x4000000,0x100006,0x11022d00,0x4000000,0x200006,0x11022d19,0x7c00100,0x120402,0x11022d19,0x7c00100,0x150402, +0x11022e00,0x24000000,0x200000,0x11022e00,0x24000020,0x100000,0x11022f00,0x24000020,0x100000,0x11022f00,0x24000020,0x100001,0x11022f00,0x24000020,0x100002,0x11023000, +0x24000000,0x100000,0x11023300,0x4000000,0x100002,0x11023300,0x4000000,0x100003,0x11023300,0x4000100,0x120403,0x11023300,0x4000100,0x150403,0x11023400,0x24000000, +0x100000,0x11023500,0x24000000,0x100000,0x11023600,0x24000000,0x100000,0x11023600,0x24000020,0x100000,0x11023700,0x24000000,0x100000,0x11023700,0x24000000,0xe00000, +0x11023700,0x24000020,0x100000,0x11023800,0x4000000,0x100000,0x11023800,0x24000000,0x200000,0x11024e67,0,0,0x11025600,0x4000000,0x100000,0x11042a00, +0x4000000,0x1600000,0x11045700,0x4000000,0x20000a,0x11045700,0x4000020,0x20000a,0x11045712,0x7c00100,0xe3040a,0x11045712,0x7c80100,0xe3040a,0x11045716,0x7c00100, +0xe30c0a,0x11045716,0x7c00100,0x2530c0a,0x11063d00,0x4000001,0x445811,0x11065700,0x4000000,0x810011,0x11065700,0x4000000,0xe00011,0x11065700,0x4000000,0x1410011, +0x11065700,0x4000000,0x1500011,0x11065700,0x4000000,0x1600011,0x11065700,0x4000006,0xe70011,0x11065700,0x4000008,0xe00011,0x11065700,0x4000008,0xe02c11,0x11065700, +0x4000010,0x871411,0x11065700,0x4000010,0x1201411,0x11065700,0x4000010,0x1271011,0x11065700,0x4000020,0xe00011,0x11065700,0x4000400,0xe00011,0x11065700,0x4000420, +0xe00011,0x11065700,0x6800000,0xe01c11,0x11065700,0x6800040,0xe29811,0x11065700,0xc000010,0x80ac11,0x11065700,0xc000010,0xb48011,0x11065719,0x7c00100,0xe20411, +0x11065719,0x7c00100,0xe50411,0x11065719,0x7c00140,0xe20411,0x11065719,0x7c00140,0xe50411,0x11080100,0x6800000,0x201c00,0x11080100,0x68000c0,0x1329800,0x11080100, +0x24000000,0x200000,0x11080100,0x24000000,0x810000,0x11080100,0x24000000,0x1410000,0x11080100,0x24000000,0x1500000,0x11080100,0x24000000,0x1600000,0x11080100,0x24000000, +0x1b00000,0x11080100,0x24000000,0x2410000,0x11080100,0x24000006,0xd70000,0x11080100,0x24000008,0x1713c00,0x11080100,0x24000008,0x1714000,0x11080100,0x24000010,0x1001400, 0x11080100,0x24000010,0x1071000,0x11080100,0x24000010,0x1071400,0x11080100,0x24000020,0x200000,0x11080100,0x24000020,0x400000,0x11080100,0x24000020,0x1600000,0x11080100, 0x24000400,0x200000,0x11080100,0x24000420,0x200000,0x11080100,0x2c000010,0xb48000,0x11080100,0x2c000010,0x100ac00,0x11080100,0x44000001,0x1a45800,0x11080119,0x7c00100, 0x220400,0x11080119,0x7c00100,0x250400,0x11080119,0x7c001c0,0x220400,0x11080119,0x7c001c0,0x250400,0x11080200,0x4000400,0x200002,0x11080200,0x24000000,0x200000, 0x11080200,0x24000000,0x1500000,0x11080200,0x24000000,0x1600000,0x11080200,0x24000020,0x200000,0x110a1e12,0x7c00100,0x2130480,0x110a1e12,0x7c80100,0x2130480,0x110a3000, -0x24000000,0x34e00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000,0x34200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000, +0x24000000,0xe00000,0x110a3000,0x24100000,0x810001,0x110a3000,0x24100000,0x1410001,0x110a3700,0x24000000,0x200000,0x110a3d00,0x4000000,0xe00000,0x110a3d00,0x4000000, 0xe00002,0x110a3d00,0x24000000,0xe00000,0x110a3d11,0x7c00300,0xe30000,0x110a3d11,0x7c00900,0x1230400,0x110a3d12,0x2802400,0x962460,0x110a3e14,0x7c00100,0xe30000, 0x110a3e14,0x7c00100,0xe30001,0x110a3e14,0x7c00100,0x2530000,0x110a3e14,0x7c00900,0x1230000,0x110a3e14,0x7c00900,0x1230001,0x110a3f16,0x7c00100,0xe30c00,0x110a3f16, 0x7c00100,0xe30c01,0x110a3f16,0x7c00100,0x2530c00,0x110a3f16,0x7c00900,0x1230c00,0x110a3f16,0x7c00900,0x1230c01,0x110a4005,0x7c00100,0xe30400,0x110a4112,0x7c00100, @@ -3535,188 +3607,185 @@ static const uint32_t propsVectors[6999]={ 0x810010,0x110a5300,0x4000008,0x1410010,0x110a5300,0x6800000,0xe01c02,0x110a5300,0x6800000,0xe01c10,0x110a5400,0x4000000,0x81000c,0x110a5400,0x4000000,0xe0000c, 0x110a5400,0x4000000,0x141000c,0x110a5400,0x4000000,0x150000c,0x110a5400,0x4000000,0x160000c,0x110a5400,0x4000002,0xe7000c,0x110a5400,0x4000010,0x87140c,0x110a5400, 0x4000010,0xe7000c,0x110a5400,0x4000010,0x120140c,0x110a5400,0x4000010,0x127100c,0x110a5400,0x4000020,0xe0000c,0x110a5400,0x4000026,0xe7000c,0x110a5400,0xc000010, -0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400c0c,0x4000010,0xb00000,0x11400c0c,0x4000010,0x1071400,0x11400c0c,0xc000010,0xb48000,0x11400c16,0x7c00900,0x230400, -0x11400f40,0xc000010,0x448000,0x11400f54,0xc000010,0x448000,0x11401d89,0x4000000,0x200000,0x11403dbf,0x4000000,0xe00000,0x114457b4,0x4000004,0x120000a,0x114457b4, -0x4000008,0x81000a,0x114457b4,0x4000008,0x141000a,0x114457b4,0x4000010,0x87000a,0x114457b4,0xc000010,0x84800a,0x114457bd,0x3802500,0x126246a,0x114457bd,0x7c00d00, -0x2530c0a,0x114a3db4,0x24000000,0x810000,0x114a3db4,0x24000000,0x1410000,0x114a3db4,0x24000008,0x810000,0x114a3db4,0x24000008,0x1410000,0x114a3db4,0x24000010,0x870000, -0x114a3db4,0x2c000010,0x848000,0x114a3dba,0x4000000,0xe00000,0x114a3dba,0x24000000,0xe00000,0x114a3dba,0x24000002,0x1200000,0x114a3dba,0x24000002,0x14e00000,0x114a3dba, -0x24000008,0x810000,0x114a3dba,0x24000008,0x1410000,0x114a3dbd,0x7c00900,0x930c00,0x114a3dbd,0x7c00900,0xe30c00,0x114a3dbf,0x7c00300,0xe30000,0x114a3ebd,0x7000400, -0x1200c02,0x114a3fb4,0x4000004,0x1200000,0x114a3fbd,0x7c00d00,0x2530c00,0x114a42bf,0x4000000,0xe00000,0x114a42bf,0x4000000,0xe0000f,0x114a44bf,0x4000000,0xe00002, -0x114a44bf,0x4000000,0xe00003,0x114a44bf,0x4000000,0x14e00003,0x114a45bf,0x4000000,0xe00002,0x114a45bf,0x4000000,0xe0000d,0x1180090a,0x2802400,0x962460,0x11800c1e, -0x2802100,0x962460,0x11800c1e,0x2802500,0x962460,0x11800f27,0x2802400,0x962460,0x11800f34,0x2802400,0x962460,0x11820700,0x2802400,0x962460,0x11820700,0x2802500, -0x962460,0x118a3dc0,0x2802400,0x962460,0x118a3ebd,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460,0x11c00c20,0xc000010,0xb48000, -0x11c00c23,0x6800000,0x1329800,0x11c00f6d,0x6800000,0x1329800,0x11c01072,0x6800000,0x1329800,0x11c01176,0x6800000,0x1329800,0x11c0127a,0x6800000,0x1329800,0x11c0147e, -0x4000000,0x200000,0x11c0147e,0x6800000,0x1329800,0x11c01682,0x6800000,0x1329800,0x11c051fa,0x7c00100,0x230408,0x20000067,0x1000,0,0x20000b13,0x2802400, -0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460,0x20001b27,0x2806400,0x962460, -0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27,0x4000000,0x810000,0x20001b27, -0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010,0xc00000,0x20001b27,0x6800000, -0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401,0x20002619,0x7c00100,0x220401, -0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900000,0x20004c67,0,0x1900000,0x20004d67,0,0x1900000,0x20006d67,0x1000,0,0x20006e67, -0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100,0x20304e1,0x21005600,0x4000000, -0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400,0x30000419,0x7c00100,0x250401, -0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,0x7c00500,0x230400,0x30000605,0x4000400,0x200400,0x3000080e,0x7c00100,0x220400,0x30000908, -0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100,0x250401,0x30000a03,0x4000006, -0x400400,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460,0x30000d22,0x2802500,0x962460, -0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000d22,0x80000000,0x218960,0x30000e25, -0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000,0x200000,0x30001821,0x6800100, -0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460,0x30001b27,0x4000000,0x200000, -0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c,0x2806400,0x1862460,0x30001c1c, -0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100,0x1830001,0x30001c1c,0xc000010, -0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000,0x30001f0b,0x7c00100,0x230400, -0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000000,0x200000,0x30002128,0x7c00100,0x230400,0x30002128,0xc000010,0x248000,0x3000221d, -0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x445800,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010,0x400000,0x30002320,0x7c00100, -0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460,0x30002417,0x4000000,0x200000, -0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417,0x6800000,0x1329800,0x30002417, -0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100,0x962460,0x3000251b,0x3c02100, -0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000,0x3000251b,0x4000800,0x200000, -0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b,0x12882000,0x962460,0x30002800, -0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002800,0x2c000010,0x15248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002b01,0x2000, -0x8962460,0x30002c00,0x4000000,0x200000,0x30002c00,0x7c00100,0x14220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000, -0x30003000,0x24000000,0x4200000,0x30003100,0x24000000,0x200000,0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x4200000,0x3000392e,0x24000000,0x200000,0x30005013, -0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600,0x4000400,0x500400,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000, -0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000,0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002, -0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000,0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x3040258f, -0x4000010,0x400000,0x3040258f,0x4000010,0xb70000,0x3040258f,0xc000010,0xb48000,0x304028af,0x4000001,0xc41c0b,0x304a3dbf,0x4000000,0xe00000,0x30800c1e,0x2802100, -0x962460,0x30c01c87,0x6800000,0x1329800,0x3100080e,0x7c00120,0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000, -0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400,0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00, -0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00,0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000, -0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400,0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405, -0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x8962460,0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419, -0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e,0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100, -0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100,0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820, -0x32002800,0x4000001,0x445802,0x32002800,0x24000000,0x200000,0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919, -0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01,0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000, -0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020,0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000, -0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000,0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003600, -0x24000020,0x14200000,0x32003700,0x24000000,0x200000,0x32003700,0x24000000,0x4100000,0x32003700,0x24000000,0x4200000,0x32003700,0x24000000,0x14200000,0x32003800,0x24000000, -0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100,0x250400, -0x3200622a,0x2802100,0x962460,0x3200622a,0x2806000,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x2806000,0x962460,0x3200632b, -0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600,0x24000020, -0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006800,0x24000020,0x14200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000, -0x32006900,0x24000020,0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300, -0x4000000,0x100000,0x32026c01,0x12882000,0x962460,0x32026c01,0x12882000,0x8962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020, -0x810000,0x32086600,0x24000020,0x1410000,0x32086900,0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x34200000,0x320a3d11,0x7c00100,0x1230400, -0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100,0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11, -0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00,0x3240638b,0xc000010,0x448000,0x324a3dc2,0x4000000,0x14e00000,0x324a3dc2,0x7c00100,0x1230400,0x324a3fbd,0x4000002, -0x1200c00,0x324a53ba,0x24000000,0xe00000,0x32820701,0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400, -0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100,0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02, -0x2802500,0x962460,0x40000c02,0x4000000,0x200000,0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100, -0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004,0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460, -0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100,0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615, -0x2802400,0x962460,0x40001615,0x7c00100,0x230400,0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002, -0x200000,0x40002c00,0x4000000,0x200002,0x40003000,0x24000000,0x14200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40003700,0x24000000,0x4200000, -0x40003700,0x24000000,0x14200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400,0x40005d00,0x7c00120,0x220405,0x40006f30,0x2802100,0x962460,0x40006f30, -0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30,0x6800100,0x962540,0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010, -0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100,0x220400,0x4000720e,0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e, -0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400,0x40007219,0x7c00500,0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300, -0x24000000,0x200000,0x40007300,0x24000000,0x14200000,0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400,0x40007835,0x4000010, -0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f,0x7c00100,0x230400, -0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000,0x962460,0x400a3700, -0x24000000,0x34200000,0x400a3700,0x24000000,0x34e00000,0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003,0x400a4500,0x4000000, -0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x404077fc,0x4000000,0x200000,0x404077ff,0x4000000,0x200000,0x404077ff,0x4000000,0x400000, -0x40c0147e,0x4000000,0x200000,0x40c051fa,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,0x7c00100,0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e, -0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,0x962460,0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000, -0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0x1500000,0x41000c02,0xc000010,0xb48000,0x41000f0a,0x7c00100,0x230400,0x41001004,0x7c00100,0x230400, -0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,0x7c00100,0x23040f,0x41001f0b,0x2802400,0x962460,0x41001f0b, -0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,0x400000,0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000, -0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,0x41003000,0x24000000,0x200000,0x41003700,0x24000000,0x4200000, -0x41003700,0x24000000,0x14200000,0x41003700,0x24000000,0x14e00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020,0x810000,0x41006600, -0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460,0x41007e0e,0x4000000, -0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137,0x4000000,0x200000, -0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,0x41008407,0x4000000,0x400000,0x41008407, -0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,0x4000000,0x200000,0x4100860b,0x7c00100, -0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,0x962460,0x41008939,0x2802100,0x962460, -0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,0x41008939,0xc000010,0x448000,0x41008a00, -0x4000400,0x200400,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,0x7e00100,0x1830000,0x41008c3d,0x4000010, -0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00,0x24000000,0x200000, -0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000,0x962460,0x41008f3a, -0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f,0x41020701,0x2802000, -0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x34200000,0x410a3700,0x24000000,0x34e00000,0x410a4412,0x4000000,0xe00003,0x410a4711,0x7c40300,0xe30000, -0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000,0xb00010,0x410a9100, -0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010,0x41408ac5,0x4000400, -0x200000,0x414a82bf,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c0147e,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419,0x7c00100,0x250400, -0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100,0x230400,0x50001615, -0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,0x7c00100,0x220400,0x50002d19,0x7c00100, -0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x4200000,0x50005d00,0x7c00120,0x220405,0x50005d00,0x7c00120,0x250405, -0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000,0x50008301,0x2802400,0x962460,0x50008a00, -0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257,0x6800000,0x1329800,0x50009257,0x7c00100, -0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e,0x2802400,0x962460, -0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100,0x962540,0x5000933e, -0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,0xc000010,0x448000,0x50009419,0x7c00100, -0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200400,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a,0xc000010,0xb48000, -0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010,0x400000,0x50009965, -0x7c00100,0x230400,0x50409abf,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,0x2802100,0x962460,0x51000c02,0x4000000, -0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110,0x2802100,0x962460, -0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000,0x51001524,0x7c00100,0x230400,0x5100171a, -0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27,0x4000000,0x200000,0x51001b27,0x4000000, -0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802500,0x1862460,0x51001c1c,0x2806400,0x1862460, -0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800500,0x1862400,0x51001c1c, -0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820,0x51002c00,0x4000000, -0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x4200000,0x51003700,0x24000000,0x4e00000,0x51005201,0x2802400,0x962460,0x51005c00,0x4000000,0x200000, -0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020,0x1410000,0x51007300, -0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460,0x51008a00,0x7c00500, -0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00,0x24000000,0x1410000, -0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100,0x220400,0x51009419, -0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,0x4000400,0x200400,0x51009500,0x7c00500,0x230400,0x51009519,0x7c00100, -0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,0x250400,0x51009b71,0x2802100,0x962460,0x51009b71,0x6800000,0x1329800, -0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400,0x962460,0x51009c52, -0x2802d00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,0x6800100,0x962540,0x51009c52,0x7c00100,0x230400,0x51009c52,0xc000010, -0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d,0xc000010,0x448000, -0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900,0x230400,0x51009f63, -0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,0x2802400,0x962460,0x5100a008,0x4000000,0x200000,0x5100a008,0x7c00100, -0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f,0x6800000,0x1329800, -0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400,0x962460,0x5100a24f, -0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000,0x5100a36e,0x6800100, -0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442,0x6800000,0x1329800, -0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000,0x200000,0x5100a601, -0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400,0x5100aa00,0x4000000, -0x4e00000,0x5100ab00,0x4000000,0x4e00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711,0x7c40300,0xe30000, -0x510a7300,0x24000000,0x34200000,0x510aaa00,0x4000000,0x34e00000,0x5140a2f3,0x4000400,0x400000,0x514a82bf,0x4000000,0xe00000,0x51802bb1,0x2802000,0x962460,0x51c00908, -0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400,0x52001004,0x4000000, -0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800500,0x1862400,0x52001e12,0x7c00100,0x2230500, -0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000,0x1600000,0x52002d00, -0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460,0x52008407,0x2802400, -0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00,0x24000000,0x400000, -0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400,0x962460,0x5200ac7e, -0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ac7e,0xc000010,0x248000,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460,0x5200ae6a,0x2802400, -0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a,0x6800100,0x1862400, -0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010,0x400000,0x5200b083, -0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000,0x5200b182,0x7c00100, -0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e,0x2802100,0x962460, -0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100,0x962540,0x5200b54e, -0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800500,0x1862400,0x5200b61c,0x7c00100, -0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f,0x4000010,0x1800000, -0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100,0x962460,0x5200b873, -0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400,0x5200b873,0xc000010, -0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74,0x7c00100,0x230400, -0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100,0x230400,0x5200bd7d, -0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400,0x5200c002,0x4000000, -0x200000,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178,0x4000000,0x200000, -0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c178,0x80000000,0x218960,0x5200c247, -0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006,0x52023700,0x24000000, -0x4100000,0x52023700,0x24000000,0x4e00000,0x52023700,0x24000000,0x14100000,0x52023700,0x24000000,0x14e00000,0x52023700,0x24000000,0x96800000,0x52024400,0x4000000,0x100000, -0x52027300,0x24000000,0x100000,0x5202c300,0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300, -0x4000100,0x150400,0x5202c300,0x4000100,0x15040d,0x5202c300,0x4000100,0x14150400,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0x34e00000,0x520a3800,0x24000000, -0x34100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001,0x520a7300,0x24000000,0x34100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002, -0x520ac400,0x4000000,0xe0000d,0x520ac400,0x4000000,0x34e0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511,0x7c40300,0xe30000,0x5240af91,0x7c00100,0x230400,0x5240af96, -0x4000400,0x200000,0x5240af98,0x6800400,0x962540,0x5240af98,0x7c00100,0x230400,0x5240afa2,0x7c00100,0x230400,0x5240afa4,0x7c00100,0x230400,0x5240b2c7,0x4000000, -0x200000,0x5240b2c7,0x4000000,0x1500000,0x5240b2d2,0x4000000,0x200000,0x5240b2e0,0x4000000,0x200000,0x5240b5f6,0x7c00900,0x230400,0x524a44bf,0x4000000,0xe00003, -0x5280af91,0x2802400,0x962460,0x5280af92,0x2802400,0x962460,0x5280af98,0x2802400,0x962460,0x5280af9a,0x2802400,0x962460,0x5280af9c,0x2802400,0x962460,0x52c0b3ed, -0x2802400,0x962460,0x52c0b3f1,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,0x60000c02,0x7c00100,0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100, -0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,0x7c00100,0x230400,0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460, -0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802400,0x962460,0x60002919,0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000, -0x24000000,0x14200000,0x60003000,0x24000000,0x14e00000,0x60003700,0x24000000,0x4200000,0x60003800,0x24000000,0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100, -0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802000,0x962460,0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000, -0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008,0x7c00100,0x250400,0x6000c300,0x4000000,0x3a703580,0x6000c654, -0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000,0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000, -0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400,0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460, -0x6000c941,0x2806000,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941,0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941, -0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000,0x4e00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000, -0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d,0x6002c300,0x4000100,0x14150400,0x600a3000,0x24000000,0x34200000, -0x600a3000,0x24000000,0x34e00000,0x600a3700,0x24000000,0x34200000,0x600a3800,0x24000000,0x34200000,0x600a3800,0x24000000,0xb6800000,0x600a4305,0x7c00100,0xe30400,0x600ac300, -0x4000000,0x34100000,0x600ac400,0x4000000,0x14e0000d,0x600ac400,0x4000000,0x34e0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000, -0x34e00000,0x600acd00,0x4000000,0x34200000,0x600acd00,0x4000000,0x34e00000,0x600acd00,0x4000000,0xb6800000,0x600ace00,0x4000000,0x34e00000,0x600ace00,0x4000000,0xb6800000, -0x600acf00,0x4000000,0x34e00000,0x600acf00,0x4000000,0xb6800000,0x600ad111,0x7c40300,0xe30000,0x604ac4bf,0x4000000,0x34e00003,0x61000a03,0x4000000,0x1600000,0x61000c02, +0x80ac0c,0x110a5400,0xc000010,0xb4800c,0x11400c0c,0x4000010,0xb00000,0x11400c0c,0x4000010,0x1071400,0x11400c17,0xc000010,0xb48000,0x11400c1e,0x7c00900,0x230400, +0x11400f4b,0xc000010,0x448000,0x11400f5f,0xc000010,0x448000,0x11401d94,0x4000000,0x200000,0x11403dca,0x4000000,0xe00000,0x114457bf,0x4000004,0x120000a,0x114457bf, +0x4000008,0x81000a,0x114457bf,0x4000008,0x141000a,0x114457bf,0x4000010,0x87000a,0x114457bf,0xc000010,0x84800a,0x114457c8,0x3802500,0x126246a,0x114457c8,0x7c00d00, +0x2530c0a,0x114a3dbf,0x24000000,0x810000,0x114a3dbf,0x24000000,0x1410000,0x114a3dbf,0x24000008,0x810000,0x114a3dbf,0x24000008,0x1410000,0x114a3dbf,0x24000010,0x870000, +0x114a3dbf,0x2c000010,0x848000,0x114a3dc5,0x4000000,0xe00000,0x114a3dc5,0x24000000,0xe00000,0x114a3dc5,0x24000002,0xe00000,0x114a3dc5,0x24000002,0x1200000,0x114a3dc5, +0x24000008,0x810000,0x114a3dc5,0x24000008,0x1410000,0x114a3dc8,0x7c00900,0x930c00,0x114a3dc8,0x7c00900,0xe30c00,0x114a3dca,0x7c00300,0xe30000,0x114a3ec8,0x7000400, +0x1200c02,0x114a3fbf,0x4000004,0x1200000,0x114a3fc8,0x7c00d00,0x2530c00,0x114a42ca,0x4000000,0xe00000,0x114a42ca,0x4000000,0xe0000f,0x114a44ca,0x4000000,0xe00002, +0x114a44ca,0x4000000,0xe00003,0x114a45ca,0x4000000,0xe00002,0x114a45ca,0x4000000,0xe0000d,0x11505103,0x24000000,0x810000,0x11505103,0x24000000,0x1410000,0x1180090a, +0x2802400,0x962460,0x11800c27,0x2802100,0x962460,0x11800c27,0x2802500,0x962460,0x11800f32,0x2802400,0x962460,0x11800f3f,0x2802400,0x962460,0x11820700,0x2802400, +0x962460,0x11820700,0x2802500,0x962460,0x118a3dcb,0x2802400,0x962460,0x118a3ec8,0x2802400,0x962460,0x11c00904,0x2802400,0x962460,0x11c00908,0x2802400,0x962460, +0x11c00c2c,0x6800000,0x1329800,0x11c00c30,0xc000010,0xb48000,0x11c00f78,0x6800000,0x1329800,0x11c0107d,0x6800000,0x1329800,0x11c01181,0x6800000,0x1329800,0x11c01285, +0x6800000,0x1329800,0x11c01489,0x4000000,0x200000,0x11c01489,0x6800000,0x1329800,0x11c0168d,0x6800000,0x1329800,0x11d05107,0x7c00100,0x230408,0x20000067,0x1000, +0,0x20000b13,0x2802400,0x962460,0x20000b13,0x2802500,0x962460,0x20001b27,0x2802100,0x962460,0x20001b27,0x2802100,0x962461,0x20001b27,0x2802400,0x962460, +0x20001b27,0x2806400,0x962460,0x20001b27,0x2902100,0x962462,0x20001b27,0x4000000,0x200000,0x20001b27,0x4000000,0x400000,0x20001b27,0x4000000,0x500000,0x20001b27, +0x4000000,0x810000,0x20001b27,0x4000000,0xb00000,0x20001b27,0x4000000,0xc0000b,0x20001b27,0x4000000,0x1410000,0x20001b27,0x4000010,0xb00000,0x20001b27,0x4000010, +0xc00000,0x20001b27,0x6800000,0x1329800,0x20001b27,0x6800100,0x462540,0x20001b27,0x6800400,0x962540,0x20001b27,0x7c00100,0x230400,0x20001b27,0x7c00100,0x230401, +0x20002619,0x7c00100,0x220401,0x20002a00,0x4000000,0x1600000,0x20004b67,0,0x1900000,0x20004c67,0,0x1900000,0x20004d67,0,0x1900000,0x20006d67, +0x1000,0,0x20006e67,0x1000,0,0x20026d67,0,0,0x20026e67,0,0,0x200a4a12,0x7c00100,0x1f304c1,0x200a4a12,0x7c00100, +0x20304e1,0x21005600,0x4000000,0x700000,0x21022a00,0x4000000,0x1600000,0x30000419,0x7c00100,0x220400,0x30000419,0x7c00100,0x220401,0x30000419,0x7c00100,0x250400, +0x30000419,0x7c00100,0x250401,0x30000519,0x7c00100,0x220400,0x30000600,0x4000400,0x200400,0x30000600,0x7c00500,0x230400,0x30000605,0x4000400,0x200400,0x3000080e, +0x7c00100,0x220400,0x30000908,0x2000,0x962460,0x30000908,0x7c00100,0x220400,0x30000908,0x7c00100,0x220401,0x30000908,0x7c00100,0x250400,0x30000908,0x7c00100, +0x250401,0x30000a03,0x4000006,0x400400,0x30000c02,0x4000000,0x200000,0x30000c02,0x7c00100,0x230400,0x30000d22,0x2802100,0x962460,0x30000d22,0x2802400,0x962460, +0x30000d22,0x2802500,0x962460,0x30000d22,0x4000000,0x200000,0x30000d22,0x4000010,0x200000,0x30000d22,0x7c00100,0x230400,0x30000d22,0xc000010,0x248000,0x30000d22, +0x80000000,0x218960,0x30000e25,0x2802500,0x962460,0x30000e25,0x7c00100,0x230400,0x30001821,0x2802100,0x962460,0x30001821,0x2806400,0x962460,0x30001821,0x4000000, +0x200000,0x30001821,0x6800100,0x962540,0x30001821,0x6800100,0x962541,0x30001821,0x7c00100,0x230400,0x30001b27,0x2802100,0x962460,0x30001b27,0x2802400,0x962460, +0x30001b27,0x4000000,0x200000,0x30001b27,0x4000000,0x400000,0x30001b27,0x7c00100,0x230400,0x30001c1c,0x2802100,0x1862460,0x30001c1c,0x2802400,0x1862460,0x30001c1c, +0x2806400,0x1862460,0x30001c1c,0x4000000,0x200000,0x30001c1c,0x6800100,0x1862400,0x30001c1c,0x6800100,0x1862540,0x30001c1c,0x7c00100,0x1830000,0x30001c1c,0x7c00100, +0x1830001,0x30001c1c,0xc000010,0x448000,0x30001f0b,0x4000000,0x200000,0x30001f0b,0x4000010,0x200000,0x30001f0b,0x4000010,0x400000,0x30001f0b,0x6800000,0x200000, +0x30001f0b,0x7c00100,0x230400,0x30001f0b,0xc000010,0x248000,0x30002006,0x7c00100,0x250400,0x30002128,0x4000000,0x200000,0x30002128,0x7c00100,0x230400,0x30002128, +0xc000010,0x248000,0x3000221d,0x4000000,0x810000,0x3000221d,0x4000000,0x1410000,0x3000221d,0x4000001,0x445800,0x3000221d,0x7c00100,0x230400,0x30002300,0x4000010, +0x400000,0x30002320,0x7c00100,0x230400,0x30002417,0x2802100,0x1862460,0x30002417,0x2802400,0x1862460,0x30002417,0x2806400,0x1862460,0x30002417,0x2882000,0x1862460, +0x30002417,0x4000000,0x200000,0x30002417,0x4000000,0x400000,0x30002417,0x4000000,0x1600000,0x30002417,0x4000010,0x400000,0x30002417,0x4000010,0x1200000,0x30002417, +0x6800000,0x1329800,0x30002417,0x6800100,0x1862540,0x30002417,0x7c00100,0x1830000,0x30002417,0x7d00100,0x1830000,0x3000251b,0x80000,0xc18820,0x3000251b,0x2802100, +0x962460,0x3000251b,0x3c02100,0x962460,0x3000251b,0x4000000,0x200000,0x3000251b,0x4000006,0x500000,0x3000251b,0x4000010,0x400000,0x3000251b,0x4000010,0xb70000, +0x3000251b,0x4000800,0x200000,0x3000251b,0x6800000,0x1329800,0x3000251b,0x7c00100,0x230400,0x3000251b,0x7c00900,0x230400,0x3000251b,0xc000010,0xb48000,0x3000251b, +0x12882000,0x962460,0x30002800,0x24000000,0x200000,0x30002800,0x2c000010,0x1248002,0x30002a00,0x4000000,0x1600000,0x30002b01,0x2000,0x962460,0x30002c00,0x4000000, +0x200000,0x30002c00,0x7c00100,0x220405,0x30002d19,0x7c00100,0x250400,0x30002e00,0x24000000,0x200000,0x30003000,0x24000000,0x200000,0x30003100,0x24000000,0x200000, +0x30003600,0x24000000,0x200000,0x30003700,0x24000000,0x200000,0x3000392e,0x24000000,0x200000,0x30005013,0x7c00100,0x2633801,0x30005600,0,0x918820,0x30020600, +0x4000400,0x500400,0x30020701,0x2802400,0x962460,0x30020701,0x2802400,0xc62460,0x300a3a11,0x4020000,0xe00000,0x300a3a11,0x4020000,0xe00002,0x300a3b11,0x4020000, +0xe00002,0x300a3c00,0x4008000,0xe00000,0x300a3c00,0x4010000,0xe00000,0x300a3d11,0x7c00300,0xe30002,0x300a4305,0x7c00100,0xe30400,0x300a4611,0x7c40300,0xe30000, +0x300a4829,0x7c00100,0xe30400,0x300a4829,0x7c00900,0x1230400,0x300a4929,0x4000000,0xe00000,0x3040259a,0x4000010,0x400000,0x3040259a,0x4000010,0xb70000,0x3040259a, +0xc000010,0xb48000,0x304028ba,0x4000001,0xc41c0b,0x304a3dca,0x4000000,0xe00000,0x30800c27,0x2802100,0x962460,0x30c01c92,0x6800000,0x1329800,0x3100080e,0x7c00120, +0x220402,0x3100080e,0x7c00120,0x250402,0x31005167,0x1000,0,0x3100581e,0x4000000,0x200000,0x3100581e,0x7c00100,0x230400,0x3100590d,0x7c00100,0x230400, +0x31005a09,0x7c00100,0x220400,0x31005a09,0x7c00100,0x250400,0x31005b00,0x4000000,0x200000,0x31005c00,0x80000,0x918820,0x31005c00,0x2802000,0x962460,0x31005c00, +0x2802400,0x962460,0x31005c00,0x4000000,0x200000,0x31005c00,0x4000000,0x200001,0x31005c00,0x6800000,0x962540,0x31005c00,0x6800400,0x962540,0x31005c01,0x2802400, +0x962460,0x31005d00,0x4000020,0x200005,0x31005d00,0x6800020,0x1329805,0x31005d00,0x7c00120,0x220405,0x31005d00,0x7c00120,0x250405,0x31006000,0x82000,0x962460, +0x31006000,0x180000,0x918820,0x310a5e11,0x7c40300,0xe30000,0x310a5f11,0x7c00300,0xe30001,0x32000419,0x7c00100,0x250400,0x3200080e,0x4000020,0x200000,0x3200080e, +0x7c00100,0x220400,0x3200080e,0x7c00100,0x250400,0x32000908,0x7c00100,0x220400,0x32000908,0x7c00100,0x250400,0x32000c02,0x7c00100,0x230400,0x32000e25,0x7c00100, +0x230400,0x32001d0c,0x7c00100,0x230400,0x32002800,0x80000,0x1e18820,0x32002800,0x80020,0x218820,0x32002800,0x4000001,0x445802,0x32002800,0x24000000,0x200000, +0x32002800,0x24000000,0x200002,0x32002800,0x24000020,0x200000,0x32002800,0x2c000010,0x1248002,0x32002919,0x7c00100,0x22040f,0x32002a00,0x4000000,0x1600000,0x32002b01, +0x2000,0x962460,0x32002b01,0x2802000,0x962460,0x32002b01,0x2802020,0x962460,0x32002c00,0x4000000,0x200000,0x32002c00,0x4000020,0x200000,0x32002c00,0x4000020, +0x200005,0x32002c00,0x7c00120,0x220405,0x32002c00,0x7c00120,0x250405,0x32002e00,0x24000020,0x200000,0x32002f00,0x24000020,0x200000,0x32003000,0x24000000,0x200000, +0x32003000,0x24000020,0x200000,0x32003500,0x24000000,0x200000,0x32003600,0x24000020,0x200000,0x32003700,0x24000000,0x100000,0x32003700,0x24000000,0x200000,0x32003800, +0x24000000,0x810000,0x32003800,0x24000000,0x1410000,0x32005102,0x4000000,0x1500008,0x32005502,0x7c00100,0x230400,0x32006108,0x7c00100,0x220400,0x32006108,0x7c00100, +0x250400,0x3200622a,0x2802100,0x962460,0x3200622a,0x2806400,0x962460,0x3200622a,0x7c00100,0x230400,0x3200632b,0x2802100,0x962460,0x3200632b,0x6804000,0x962540, +0x3200632b,0x7c00100,0x230400,0x3200642c,0x2802100,0x962460,0x3200642c,0x7c00100,0x230400,0x3200652d,0x2802100,0x962460,0x3200652d,0x7c00100,0x230400,0x32006600, +0x24000020,0x200000,0x32006700,0x24000020,0x200000,0x32006800,0x24000020,0x200000,0x32006900,0x24000020,0x200000,0x32006900,0x24000020,0x810000,0x32006900,0x24000020, +0x1410000,0x32006a00,0x24000020,0x200000,0x32006a00,0x24000020,0x200001,0x32006a00,0x24000020,0x200002,0x32020701,0x2882000,0xc62460,0x32023300,0x4000000,0x100000, +0x32026c01,0x12882000,0x962460,0x32065700,0x4000000,0x810011,0x32065700,0x4000000,0x1410011,0x32086600,0x24000020,0x810000,0x32086600,0x24000020,0x1410000,0x32086900, +0x24000020,0x810000,0x32086900,0x24000020,0x1410000,0x320a3600,0x24000020,0x200000,0x320a3d11,0x7c00100,0x1230400,0x320a3e14,0x7c00100,0xe30010,0x320a3e14,0x7c00100, +0x2530000,0x320a3f16,0x7c00100,0xe30c10,0x320a4400,0x4000000,0xe00003,0x320a4929,0x4000000,0xe00000,0x320a4f11,0x7c00300,0xe30001,0x320a6b16,0x7c00100,0x2530c00, +0x32406396,0xc000010,0x448000,0x324a3dcd,0x4000000,0xe00000,0x324a3dcd,0x7c00100,0x1230400,0x324a3fc8,0x4000002,0x1200c00,0x324a53c5,0x24000000,0xe00000,0x32820701, +0x2802000,0x962460,0x40000419,0x7c00100,0x220400,0x40000519,0x7c00100,0x220400,0x40000600,0x4000400,0x200400,0x4000080e,0x7c00100,0x220400,0x4000080e,0x7c00100, +0x250400,0x4000080e,0x7c00100,0x250402,0x40000c02,0x2802100,0x962460,0x40000c02,0x2802400,0x962460,0x40000c02,0x2802500,0x962460,0x40000c02,0x4000000,0x200000, +0x40000c02,0x4000000,0x1071400,0x40000c02,0x7c00100,0x230400,0x40000c02,0x80000000,0x218960,0x40000d22,0x7c00100,0x230400,0x40000f0a,0x7c00100,0x230400,0x40001004, +0x7c00100,0x230400,0x40001110,0x2802100,0x962460,0x40001110,0x6800100,0x962540,0x4000120f,0x2802100,0x962460,0x4000120f,0x4000000,0x1600000,0x4000120f,0x7c00100, +0x230400,0x4000131f,0x7c00100,0x230400,0x40001423,0x4000000,0x200000,0x40001423,0x4000000,0x1600000,0x40001615,0x2802400,0x962460,0x40001615,0x7c00100,0x230400, +0x40002417,0x2802400,0x1862460,0x40002417,0x4000000,0x200000,0x40002800,0x6800000,0x201c00,0x40002800,0x24000002,0x200000,0x40002c00,0x4000000,0x200002,0x40003000, +0x24000000,0x200000,0x40003000,0x24000020,0x200000,0x40003700,0x24000000,0x200000,0x40005a09,0x7c00100,0x220400,0x40005a09,0x7c00100,0x250400,0x40005d00,0x7c00120, +0x220405,0x40006f30,0x2802100,0x962460,0x40006f30,0x2802400,0x962460,0x40006f30,0x4000000,0x200000,0x40006f30,0x6800000,0x1329800,0x40006f30,0x6800100,0x962540, +0x40006f30,0x7c00100,0x230400,0x40006f30,0xc000010,0xb48000,0x40007034,0x7c00100,0x1830000,0x40007117,0x4000000,0x200000,0x40007208,0x7c00100,0x220400,0x4000720e, +0x7c00100,0x220400,0x4000720e,0x7c00500,0x22040e,0x4000720e,0x7c00500,0x22040f,0x40007219,0x7c00100,0x220400,0x40007219,0x7c00500,0x220400,0x40007219,0x7c00500, +0x22040e,0x40007219,0x7c00500,0x22040f,0x40007300,0x24000000,0x200000,0x40007400,0x4000000,0x200000,0x40007531,0x7c00100,0x230400,0x40007631,0x7c00100,0x230400, +0x40007835,0x4000010,0x400000,0x40007835,0x7c00100,0x230400,0x40007933,0x7c00100,0x230400,0x40007a32,0x6800000,0x1329800,0x40007a32,0x7c00100,0x230400,0x40007b2f, +0x7c00100,0x230400,0x40007c00,0x4000000,0x200000,0x40020701,0x2802400,0x962460,0x40020701,0x2802400,0xc62460,0x40023300,0x4000000,0x200000,0x40027d01,0x12882000, +0x962460,0x400a3700,0x24000000,0x200000,0x400a3700,0x24000000,0xe00000,0x400a4400,0x4000000,0xe0000d,0x400a4412,0x4000000,0xe00002,0x400a4412,0x4000000,0xe00003, +0x400a4500,0x4000000,0xe0000d,0x400a5300,0x4000000,0x810010,0x400a5300,0x4000000,0x1410010,0x40507709,0x4000000,0x200000,0x4050770c,0x4000000,0x400000,0x4050770f, +0x4000000,0x200000,0x4050770f,0x4000000,0x400000,0x40c01489,0x4000000,0x200000,0x40d05107,0x4000000,0x200000,0x41000419,0x7c00100,0x220400,0x41000419,0x7c00100, +0x250400,0x4100080e,0x7c00100,0x220400,0x4100080e,0x7c00100,0x250400,0x41000908,0x7c00100,0x220400,0x41000908,0x7c00100,0x250400,0x41000b13,0x2802000,0x962460, +0x41000b13,0x2802100,0x962460,0x41000b13,0x4000000,0xb00000,0x41000c02,0x2802100,0x962460,0x41000c02,0x4000000,0x1500000,0x41000c02,0xc000010,0xb48000,0x41000f0a, +0x7c00100,0x230400,0x41001004,0x7c00100,0x230400,0x41001423,0x7c00100,0x230400,0x41001b27,0x4000000,0x500000,0x41001d0c,0x7c00100,0x230400,0x41001d0c,0x7c00100, +0x23040f,0x41001f0b,0x2802400,0x962460,0x41001f0b,0x4000000,0x200000,0x41001f0b,0x7c00100,0x230400,0x41002800,0x24000000,0x200000,0x41002800,0x24000000,0x400000, +0x41002919,0x7c00100,0x22040e,0x41002a00,0x4000000,0x1600000,0x41002b01,0x2802020,0x962460,0x41002c00,0x4000000,0x200000,0x41002c00,0x7c00120,0x220405,0x41003000, +0x24000000,0x200000,0x41003700,0x24000000,0x200000,0x41003700,0x24000000,0xe00000,0x41005d00,0x7c00120,0x220405,0x41006600,0x24000020,0x200000,0x41006600,0x24000020, +0x810000,0x41006600,0x24000020,0x1410000,0x41007208,0x7c00100,0x22040f,0x41007219,0x7c00100,0x220400,0x41007300,0x24000000,0x200000,0x41007e0e,0x2802000,0x962460, +0x41007e0e,0x4000000,0x200000,0x41007f0e,0x4000000,0x200000,0x41007f0e,0x7c00100,0x230400,0x41008002,0x7c00100,0x230400,0x41008137,0x2802100,0x962460,0x41008137, +0x4000000,0x200000,0x41008137,0x6800100,0x962540,0x41008137,0x7c00100,0x230400,0x41008301,0x2802000,0x962460,0x41008407,0x4000000,0x200000,0x41008407,0x4000000, +0x400000,0x41008407,0x4000000,0xb00000,0x41008407,0x7c00100,0x220400,0x41008407,0x7c00100,0x250400,0x4100850b,0x7c00100,0x230400,0x4100860b,0x4000000,0x200000, +0x4100860b,0x7c00100,0x230400,0x4100870c,0x7c00100,0x220400,0x41008838,0x7c00100,0x220400,0x41008838,0x7c00100,0x250400,0x41008939,0x2802000,0x962460,0x41008939, +0x2802100,0x962460,0x41008939,0x2806000,0x962460,0x41008939,0x4000000,0x200000,0x41008939,0x4000000,0x400000,0x41008939,0x7c00100,0x230400,0x41008939,0xc000010, +0x448000,0x41008a00,0x4000400,0x200400,0x41008b3b,0x4000000,0x1800000,0x41008b3b,0x6800000,0x1329800,0x41008b3b,0x7c00100,0x1830000,0x41008b3b,0x7e00100,0x1830000, +0x41008c3d,0x4000010,0x400000,0x41008c3d,0x7c00100,0x230400,0x41008d0e,0x7c00100,0x22040f,0x41008d19,0x7c00100,0x220400,0x41008d19,0x7c00100,0x22040f,0x41008e00, +0x24000000,0x200000,0x41008e00,0x24000000,0x400000,0x41008e00,0x24000000,0x1710000,0x41008e00,0x24000006,0x400000,0x41008f3a,0x2802100,0x962460,0x41008f3a,0x2806000, +0x962460,0x41008f3a,0x4000000,0x200000,0x41008f3a,0x6800100,0x962540,0x41008f3a,0x7c00100,0x230400,0x4100903c,0x7c00100,0x230400,0x4100903c,0x7c00100,0x23040f, +0x41020701,0x2802000,0x962460,0x41020701,0x2802000,0xc62460,0x410a3700,0x24000000,0x200000,0x410a3700,0x24000000,0xe00000,0x410a4412,0x4000000,0xe00003,0x410a4711, +0x7c40300,0xe30000,0x410a4f11,0x7c00300,0xe30001,0x410a9100,0x4000000,0x800010,0x410a9100,0x4000000,0x810010,0x410a9100,0x4000000,0x870010,0x410a9100,0x4000000, +0xb00010,0x410a9100,0x4000000,0xf00010,0x410a9100,0x4000000,0x1001410,0x410a9100,0x4000000,0x1071010,0x410a9100,0x4000000,0x1071410,0x410a9100,0x4000000,0x1410010, +0x41408ad0,0x4000400,0x200000,0x414a82ca,0x4000000,0xe00000,0x41808300,0x2802000,0x962460,0x41c01489,0x6800000,0x1329800,0x50000419,0x7c00100,0x220400,0x50000419, +0x7c00100,0x250400,0x5000080e,0x7c00100,0x220400,0x50000908,0x7c00100,0x220400,0x50000908,0x7c00100,0x250400,0x50000b13,0x2802500,0x962460,0x50000f0a,0x7c00100, +0x230400,0x50001615,0x2802100,0x962460,0x50001615,0x7c00100,0x230400,0x50002b01,0x2802020,0x962460,0x50002c00,0x4000000,0x200000,0x50002c19,0x7c00100,0x220400, +0x50002d19,0x7c00100,0x220400,0x50003000,0x24000000,0x200000,0x50003000,0x24000020,0x200000,0x50003700,0x24000000,0x200000,0x50005d00,0x7c00120,0x220405,0x50005d00, +0x7c00120,0x250405,0x50006108,0x7c00100,0x220400,0x50006108,0x7c00100,0x250400,0x50006600,0x24000020,0x200000,0x50007300,0x24000000,0x200000,0x50008301,0x2802400, +0x962460,0x50008a00,0x7c00500,0x230400,0x50009257,0x2802400,0x962460,0x50009257,0x4000000,0x200000,0x50009257,0x4000010,0x1071400,0x50009257,0x6800000,0x1329800, +0x50009257,0x7c00100,0x230400,0x50009257,0x7c00500,0x230400,0x50009257,0x7c00900,0x230400,0x50009257,0xc000010,0xb48000,0x5000933e,0x2802100,0x962460,0x5000933e, +0x2802400,0x962460,0x5000933e,0x4000000,0x200000,0x5000933e,0x4000000,0x400000,0x5000933e,0x4000010,0x400000,0x5000933e,0x6800000,0x1329800,0x5000933e,0x6800100, +0x962540,0x5000933e,0x6800100,0x962541,0x5000933e,0x6804400,0x962540,0x5000933e,0x7c00100,0x230400,0x5000933e,0x7c00100,0x230401,0x5000933e,0xc000010,0x448000, +0x50009419,0x7c00100,0x220400,0x50009419,0x7c00100,0x250400,0x50009500,0x4000400,0x200400,0x5000965a,0x4000000,0x500000,0x5000965a,0x7c00100,0x230400,0x5000965a, +0xc000010,0xb48000,0x5000975b,0x4000000,0x200000,0x5000975b,0x4000010,0x400000,0x5000975b,0x7c00100,0x230400,0x50009865,0x7c00100,0x230400,0x50009965,0x4000010, +0x400000,0x50009965,0x7c00100,0x230400,0x50409aca,0x4000000,0x200000,0x5100080e,0x7c00100,0x220400,0x5100080e,0x7c00100,0x250400,0x51000c02,0x2802100,0x962460, +0x51000c02,0x4000000,0x1500000,0x51000c02,0x4000020,0x200000,0x51000c02,0x7c00100,0x230400,0x51000f0a,0x7c00100,0x230400,0x51000f0a,0x7c00500,0x230400,0x51001110, +0x2802100,0x962460,0x5100131f,0x2802100,0x962460,0x51001423,0x7c00100,0x230400,0x51001524,0x2802100,0x962460,0x51001524,0x4000000,0x200000,0x51001524,0x7c00100, +0x230400,0x5100171a,0x2802100,0x962460,0x5100171a,0x4000000,0x200000,0x5100171a,0x4000000,0x1500000,0x5100171a,0x7c00100,0x230400,0x51001b27,0x4000000,0x200000, +0x51001b27,0x4000000,0x400000,0x51001b27,0x4000000,0x500000,0x51001b27,0x7c00100,0x230400,0x51001c1c,0x2802100,0x1862460,0x51001c1c,0x2802500,0x1862460,0x51001c1c, +0x2806400,0x1862460,0x51001c1c,0x4000000,0x1800000,0x51001c1c,0x6800000,0x1329800,0x51001c1c,0x6800100,0x1862400,0x51001c1c,0x6800100,0x1862540,0x51001c1c,0x6800500, +0x1862400,0x51001c1c,0x7c00100,0x1830000,0x5100251b,0x7c00100,0x230400,0x51002619,0x7c00100,0x220400,0x51002619,0x7c00100,0x250400,0x51002800,0x80020,0x218820, +0x51002c00,0x4000000,0x200000,0x51002d19,0x7c00100,0x230400,0x51003700,0x24000000,0x200000,0x51003700,0x24000000,0xe00000,0x51005201,0x2802400,0x962460,0x51005c00, +0x4000000,0x200000,0x51006108,0x7c00100,0x220400,0x51006108,0x7c00100,0x250400,0x51006600,0x24000020,0x200000,0x51006600,0x24000020,0x810000,0x51006600,0x24000020, +0x1410000,0x51007300,0x24000000,0x200000,0x51007300,0x24000020,0x200000,0x51008002,0x7c00100,0x230400,0x51008301,0x2802000,0x962460,0x51008301,0x2802400,0x962460, +0x51008a00,0x7c00500,0x230400,0x51008e00,0x24000000,0x200000,0x51008e00,0x24000000,0x400000,0x51008e00,0x24000000,0x810000,0x51008e00,0x24000000,0x1400000,0x51008e00, +0x24000000,0x1410000,0x51008e00,0x24000000,0x1710000,0x51008e00,0x24000002,0x200000,0x51008e00,0x24000500,0x230400,0x51008e00,0x2c000010,0xb48000,0x51009419,0x7c00100, +0x220400,0x51009419,0x7c00100,0x22040e,0x51009419,0x7c00100,0x22040f,0x51009419,0x7c00100,0x250400,0x51009500,0x4000400,0x200400,0x51009500,0x7c00500,0x230400, +0x51009519,0x7c00100,0x220400,0x51009519,0x7c00100,0x22040f,0x51009519,0x7c00100,0x230400,0x51009519,0x7c00100,0x250400,0x51009b71,0x2802100,0x962460,0x51009b71, +0x6800000,0x1329800,0x51009b71,0x6800100,0x962540,0x51009b71,0x6804400,0x962540,0x51009b71,0x7c00100,0x230400,0x51009c52,0x2802100,0x962460,0x51009c52,0x2802400, +0x962460,0x51009c52,0x2802d00,0x962460,0x51009c52,0x4000010,0x400000,0x51009c52,0x6800000,0x1329800,0x51009c52,0x6800100,0x962540,0x51009c52,0x7c00100,0x230400, +0x51009c52,0xc000010,0x448000,0x51009d6d,0x6800000,0x1329800,0x51009d6d,0x7c00100,0x230400,0x51009d6d,0x7c00500,0x230400,0x51009d6d,0x7c00d00,0x230400,0x51009d6d, +0xc000010,0x448000,0x51009e08,0x2802100,0x962460,0x51009f63,0x4000010,0x400000,0x51009f63,0x6800000,0x1329800,0x51009f63,0x7c00100,0x230400,0x51009f63,0x7c00900, +0x230400,0x51009f63,0xc000010,0x448000,0x51009f63,0xc000010,0xb48000,0x5100a008,0x2000,0x962460,0x5100a008,0x2802400,0x962460,0x5100a008,0x4000000,0x200000, +0x5100a008,0x7c00100,0x220400,0x5100a008,0x7c00100,0x230400,0x5100a008,0x7c00100,0x250400,0x5100a008,0x7c00500,0x230400,0x5100a16f,0x2806400,0x962460,0x5100a16f, +0x6800000,0x1329800,0x5100a16f,0x6800100,0x962540,0x5100a16f,0x7c00100,0x230400,0x5100a16f,0xc000010,0x448000,0x5100a24f,0x2802100,0x962460,0x5100a24f,0x2802400, +0x962460,0x5100a24f,0x6800000,0x1329800,0x5100a24f,0x7c00100,0x230400,0x5100a24f,0xc000010,0x448000,0x5100a36e,0x2802100,0x962460,0x5100a36e,0x4000000,0x200000, +0x5100a36e,0x6800100,0x962540,0x5100a36e,0x6804400,0x962540,0x5100a36e,0x7c00100,0x230400,0x5100a442,0x2802100,0x962460,0x5100a442,0x4000000,0x200000,0x5100a442, +0x6800000,0x1329800,0x5100a442,0x6800100,0x962540,0x5100a442,0x7c00100,0x230400,0x5100a442,0xc000010,0x448000,0x5100a500,0x4000000,0x200000,0x5100a600,0x4000000, +0x200000,0x5100a601,0x2802000,0x962460,0x5100a76b,0x7c00100,0x230400,0x5100a868,0x7c00100,0x230400,0x5100a96c,0x4000000,0x200000,0x5100a96c,0x7c00100,0x230400, +0x5100aa00,0x4000000,0xe00000,0x5100ab00,0x4000000,0xe00000,0x51086600,0x24000020,0x810000,0x51086600,0x24000020,0x1410000,0x510a4005,0x7c00100,0xe30400,0x510a4711, +0x7c40300,0xe30000,0x510a7300,0x24000000,0x200000,0x510aaa00,0x4000000,0xe00000,0x5140a2fe,0x4000400,0x400000,0x514a82ca,0x4000000,0xe00000,0x51802bbc,0x2802000, +0x962460,0x51c00908,0x2802400,0x962460,0x51c0a008,0x2802400,0x962460,0x52000f0a,0x2802100,0x962460,0x52000f0a,0x6800100,0x962540,0x52000f0a,0x7c00100,0x230400, +0x52001004,0x4000000,0x1600000,0x52001b00,0x4000000,0x200000,0x52001c1c,0x2802100,0x1862460,0x52001c1c,0x6800100,0x1862400,0x52001c1c,0x6800500,0x1862400,0x52001e12, +0x7c00100,0x2230500,0x52001e12,0x7c00100,0x2330520,0x52002128,0x4000002,0x400000,0x52002128,0x7c00100,0x230400,0x52002a00,0x4000000,0x1500000,0x52002a00,0x4000000, +0x1600000,0x52002d00,0x4000000,0x200006,0x52003000,0x24000000,0x200000,0x52006108,0x7c00100,0x220400,0x52006108,0x7c00100,0x250400,0x52008301,0x2802400,0x962460, +0x52008407,0x2802400,0x962460,0x52008407,0x7c00100,0x220400,0x52008407,0x7c00100,0x250400,0x52008b3b,0x6800000,0x1800000,0x52008b3b,0x7c00100,0x1830000,0x52008e00, +0x24000000,0x400000,0x52009419,0x7c00100,0x250400,0x5200975b,0x4000000,0x200000,0x5200ac7e,0x2802000,0x962460,0x5200ac7e,0x2802100,0x962460,0x5200ac7e,0x2802400, +0x962460,0x5200ac7e,0x4000010,0x200000,0x5200ac7e,0x7c00100,0x230400,0x5200ac7e,0xc000010,0x248000,0x5200ad28,0x7c00100,0x230400,0x5200ae6a,0x2802100,0x1862460, +0x5200ae6a,0x2802400,0x962460,0x5200ae6a,0x2802400,0x1862460,0x5200ae6a,0x2806000,0x1862460,0x5200ae6a,0x4000000,0x1800000,0x5200ae6a,0x6800000,0x1329800,0x5200ae6a, +0x6800100,0x1862400,0x5200ae6a,0x6800100,0x1862540,0x5200ae6a,0x7c00100,0x1830000,0x5200ae6a,0x7c00900,0x1830000,0x5200ae6a,0xc000010,0x1848000,0x5200b083,0x4000010, +0x400000,0x5200b083,0x7c00100,0x230400,0x5200b083,0xc000010,0x448000,0x5200b182,0x2802400,0x962460,0x5200b182,0x4000000,0x200000,0x5200b182,0x4000010,0x400000, +0x5200b182,0x7c00100,0x230400,0x5200b182,0xc000010,0x448000,0x5200b30a,0x2802400,0x962460,0x5200b30a,0x4000000,0x200000,0x5200b30a,0x7c00100,0x230400,0x5200b54e, +0x2802100,0x962460,0x5200b54e,0x2802400,0x962460,0x5200b54e,0x4000000,0x200000,0x5200b54e,0x4000010,0x400000,0x5200b54e,0x6800000,0x1329800,0x5200b54e,0x6800100, +0x962540,0x5200b54e,0x6804400,0x962540,0x5200b54e,0x7c00100,0x230400,0x5200b54e,0xc000010,0x448000,0x5200b61c,0x4000000,0x1800000,0x5200b61c,0x6800500,0x1862400, +0x5200b61c,0x7c00100,0x1830000,0x5200b61c,0x7c00900,0x1830000,0x5200b77f,0x2802100,0x1862460,0x5200b77f,0x2802400,0x1862460,0x5200b77f,0x4000000,0x1800000,0x5200b77f, +0x4000010,0x1800000,0x5200b77f,0x7c00100,0x1830000,0x5200b77f,0x7c00500,0x1830000,0x5200b77f,0x7c00900,0x1830000,0x5200b77f,0x7e00100,0x1830000,0x5200b873,0x2802100, +0x962460,0x5200b873,0x2806400,0x962460,0x5200b873,0x6800000,0x1329800,0x5200b873,0x6800100,0x962540,0x5200b873,0x6800400,0x962540,0x5200b873,0x7c00100,0x230400, +0x5200b873,0xc000010,0x448000,0x5200b912,0x7c00100,0x2230500,0x5200b912,0x7c00100,0x2330520,0x5200ba74,0x4000000,0x200000,0x5200ba74,0x4000010,0x400000,0x5200ba74, +0x7c00100,0x230400,0x5200bb85,0x4000000,0x200000,0x5200bb85,0x7c00100,0x230400,0x5200bc75,0x4000000,0x400000,0x5200bc75,0x4000010,0x400000,0x5200bc75,0x7c00100, +0x230400,0x5200bd7d,0x4000000,0x200000,0x5200bd7d,0x7c00100,0x230400,0x5200be7a,0x4000000,0x200000,0x5200be7a,0x7c00100,0x230400,0x5200bf58,0x7c00100,0x230400, +0x5200c002,0x4000000,0x200000,0x5200c178,0x2802000,0x962460,0x5200c178,0x2802100,0x962460,0x5200c178,0x2802400,0x962460,0x5200c178,0x2806400,0x962460,0x5200c178, +0x4000000,0x200000,0x5200c178,0x6800100,0x962540,0x5200c178,0x7c00100,0x230400,0x5200c178,0x7c00100,0x230401,0x5200c178,0xc000010,0x448000,0x5200c178,0x80000000, +0x218960,0x5200c247,0x7c00100,0x230400,0x5200c247,0x7c00100,0x830400,0x5200c247,0x7c00100,0x1430400,0x5200c300,0x4000000,0x200003,0x52022d00,0x4000000,0x100006, +0x52023700,0x24000000,0x100000,0x52023700,0x24000000,0xe00000,0x52023700,0x24000000,0x2800000,0x52024400,0x4000000,0x100000,0x52027300,0x24000000,0x100000,0x5202c300, +0x4000000,0x100000,0x5202c300,0x4000000,0x100002,0x5202c300,0x4000000,0x100003,0x5202c300,0x4000000,0x10000d,0x5202c300,0x4000100,0x150400,0x5202c300,0x4000100, +0x15040d,0x520a1e12,0x7c00100,0x2130480,0x520a3700,0x24000000,0xe00000,0x520a3800,0x24000000,0x100000,0x520a4711,0x7c40300,0xe30000,0x520a4f11,0x7c00300,0xe30001, +0x520a7300,0x24000000,0x100000,0x520ab412,0x7c00100,0x2130480,0x520ac400,0x4000000,0xe00002,0x520ac400,0x4000000,0xe0000d,0x520ac414,0x4000000,0xe0000d,0x520ac511, +0x7c40300,0xe30000,0x5240af9c,0x7c00100,0x230400,0x5240afa1,0x4000400,0x200000,0x5240afa3,0x6800400,0x962540,0x5240afa3,0x7c00100,0x230400,0x5240afad,0x7c00100, +0x230400,0x5240afaf,0x7c00100,0x230400,0x5240b2d2,0x4000000,0x200000,0x5240b2d2,0x4000000,0x1500000,0x5240b2dd,0x4000000,0x200000,0x5240b2eb,0x4000000,0x200000, +0x524a44ca,0x4000000,0xe00003,0x5250b501,0x7c00900,0x230400,0x5280af9c,0x2802400,0x962460,0x5280af9d,0x2802400,0x962460,0x5280afa3,0x2802400,0x962460,0x5280afa5, +0x2802400,0x962460,0x5280afa7,0x2802400,0x962460,0x52c0b3f8,0x2802400,0x962460,0x52c0b3fc,0x7c00100,0x230400,0x60000c02,0x2802100,0x962460,0x60000c02,0x7c00100, +0x230400,0x60000f0a,0x2802100,0x962460,0x60000f0a,0x6800100,0x962540,0x60000f0a,0x7c00100,0x230400,0x6000131f,0x4000000,0x200000,0x6000171a,0x7c00100,0x230400, +0x6000171a,0x7c00100,0x230560,0x60001b27,0x2802100,0x962460,0x60001b27,0x4000000,0xc00000,0x60001b27,0x7c00100,0x230400,0x60001f0b,0x2802400,0x962460,0x60002919, +0x7c00100,0x22040e,0x60002a00,0x4000000,0x1600000,0x60003000,0x24000000,0x200000,0x60003000,0x24000000,0xe00000,0x60003700,0x24000000,0x200000,0x60003800,0x24000000, +0x1710000,0x60005102,0x4000000,0x200000,0x60006108,0x7c00100,0x220400,0x60006108,0x7c00100,0x250400,0x60006600,0x24000020,0x200000,0x60008301,0x2802400,0x962460, +0x6000903c,0x2806000,0x962460,0x6000903c,0x4000000,0x400000,0x60009519,0x7c00100,0x220400,0x60009519,0x7c00100,0x250400,0x6000a008,0x7c00100,0x220400,0x6000a008, +0x7c00100,0x250400,0x6000c300,0x4000000,0x2703580,0x6000c654,0x2802000,0x962460,0x6000c654,0x4000010,0x200000,0x6000c654,0x7c00100,0x230400,0x6000c73f,0x2802000, +0x962460,0x6000c73f,0x2802100,0x962460,0x6000c73f,0x4000000,0x200000,0x6000c73f,0x6800100,0x962540,0x6000c73f,0x6804000,0x962540,0x6000c73f,0x7c00100,0x230400, +0x6000c80b,0x7c00100,0x230400,0x6000c941,0x2802100,0x962460,0x6000c941,0x2806400,0x962460,0x6000c941,0x4000000,0x200000,0x6000c941,0x4000010,0x200000,0x6000c941, +0x6800000,0x1329800,0x6000c941,0x6800100,0x962540,0x6000c941,0x7c00100,0x230400,0x6000c941,0xc000010,0x448000,0x6000ca82,0x7c00100,0x230400,0x6000cc00,0x4000000, +0xe00000,0x6000d000,0x4000000,0x200000,0x6002c300,0x4000000,0x100000,0x6002c300,0x4000000,0x10000d,0x6002c300,0x4000100,0x150400,0x6002c300,0x4000100,0x15040d, +0x600a3000,0x24000000,0x200000,0x600a3000,0x24000000,0xe00000,0x600a3700,0x24000000,0x200000,0x600a3800,0x24000000,0x200000,0x600a3800,0x24000000,0x2800000,0x600a4305, +0x7c00100,0xe30400,0x600ac300,0x4000000,0x100000,0x600ac400,0x4000000,0xe0000d,0x600acb14,0x7c00100,0xe30000,0x600acb16,0x7c00100,0xe30c00,0x600acc00,0x4000000, +0xe00000,0x600acd00,0x4000000,0x200000,0x600acd00,0x4000000,0xe00000,0x600acd00,0x4000000,0x2800000,0x600ace00,0x4000000,0xe00000,0x600ace00,0x4000000,0x2800000, +0x600acf00,0x4000000,0xe00000,0x600acf00,0x4000000,0x2800000,0x600ad111,0x7c40300,0xe30000,0x604ac4ca,0x4000000,0xe00003,0x61000a03,0x4000000,0x1600000,0x61000c02, 0x80000000,0x218960,0x6100120f,0x4000000,0x200000,0x61001a18,0x7c00100,0x1830000,0x61001d0c,0x7c00100,0x230400,0x61001d0c,0x7c00100,0x250400,0x61006600,0x24000020, 0x200000,0x61008407,0x7c00100,0x220400,0x61008407,0x7c00100,0x250400,0x6100870c,0x7c00100,0x220400,0x61008e00,0x24000000,0x200000,0x61008e00,0x24000000,0x400000, 0x61008e00,0x24000002,0x300000,0x6100903c,0x7c00100,0x230400,0x61009519,0x7c00100,0x220400,0x61009519,0x7c00100,0x250400,0x61009519,0x7c00500,0x22040f,0x61009b71, @@ -3729,132 +3798,145 @@ static const uint32_t propsVectors[6999]={ 0x4000000,0x200000,0x6100d997,0x4000000,0x400000,0x6100d997,0x6800000,0x1329800,0x6100d997,0x6800100,0x962540,0x6100d997,0x6804400,0x962540,0x6100d997,0x7c00100, 0x230400,0x6100d997,0x7c00100,0x230560,0x6100d997,0xc000010,0x448000,0x6100da98,0x6800000,0x1329800,0x6100da98,0x7c00100,0x230400,0x6100db71,0x4000000,0x200000, 0x6100dc99,0x2802100,0x962460,0x6100dc99,0x2802400,0x962460,0x6100dc99,0x6800000,0x1329800,0x6100dc99,0x6800100,0x962540,0x6100dc99,0x6804400,0x962540,0x6100dc99, -0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0x34e00000,0x6140af96,0x7c00100,0x230400,0x6140af98,0x7c00100, -0x230400,0x6180af93,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63002800,0x80000,0x918820,0x63c00c14,0x80000,0x918820,0x7000080e,0x7c00100,0x250400, +0x7c00100,0x230400,0x610a4711,0x7c40300,0xe30000,0x610a4f11,0x7c00300,0xe30001,0x610ace00,0x4000000,0xe00000,0x6140afa1,0x7c00100,0x230400,0x6140afa3,0x7c00100, +0x230400,0x6180af9e,0x2802400,0x962460,0x62002a00,0x4000000,0x1600000,0x63002800,0x80000,0x918820,0x63c00c15,0x80000,0x918820,0x7000080e,0x7c00100,0x250400, 0x70000a03,0x4000000,0x200000,0x70000c00,0x80000000,0x218960,0x70000f0a,0x7c00100,0x230400,0x70001004,0x7c00100,0x230400,0x70001524,0x2802100,0x962460,0x70001524, 0x7c00100,0x230400,0x70001615,0x2802100,0x962460,0x7000171a,0x2802100,0x962460,0x70001821,0x6800000,0x1329800,0x70002320,0x7c00100,0x230400,0x70002a00,0x4000000, -0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003000,0x24000000,0x14200000,0x70003800,0x24000000,0x4e00000,0x70005201,0x2802400,0x962460, -0x7000581e,0x7c00100,0x230400,0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e, -0x4000000,0x200000,0x70008301,0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002, -0x400000,0x70008e00,0x24000008,0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400, -0x70009519,0x7c00100,0x250400,0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008, -0x7c00100,0x250400,0x7000a008,0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802500,0x1862460,0x7000b61c,0x6800500,0x1862400,0x7000b61c,0x7c00100, -0x1830000,0x7000c300,0x4000000,0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0x4e00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0x4200000, -0x7000cd00,0x4000000,0x4e00000,0x7000cd00,0x4000000,0x14200000,0x7000cd00,0x4000000,0x14e00000,0x7000cd00,0x4000000,0x96800000,0x7000cf00,0x4000000,0x4e00000,0x7000cf00, -0x4000000,0x14e00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86,0x2802400, -0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2000,0x962460, -0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400,0x7000e187, -0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489,0x6800100, -0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100,0x962460, -0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540,0x7000e59d, -0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691,0x6800000, -0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,0x200400,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100,0x220400, -0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000,0x7000e9a0, -0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79,0x7c00100, -0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400,0x962460, -0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000,0x7000ed95, -0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802500,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c,0x7c00100, -0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100,0x230400, -0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000,0x7000f34b, -0x2802400,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b,0x7c00900, -0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000,0x200000, -0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460,0x7000f8a6, -0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6,0x7c00100, -0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400,0x962460, -0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541,0x7000fb9e, -0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92,0x7c00100, -0x250400,0x700acd00,0x4000000,0x34e00000,0x700acd00,0x4000000,0xb6800000,0x700ace00,0x4000000,0x34e00000,0x700acf00,0x4000000,0x34e00000,0x700acf00,0x4000000,0xb6800000, -0x7050df01,0x4000000,0x200000,0x7050f705,0x80000,0x918820,0x7080af96,0x2802400,0x962460,0x7090df01,0x2802400,0x962460,0x70d0e403,0x2802100,0x962460,0x70d0e403, -0x2802400,0x962460,0x70d0e403,0x6800100,0x962540,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100,0x230400,0x8000171a,0x7c00100,0x230400,0x80002006,0x7c00100, -0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000,0x80005208,0x2802400,0x962460,0x80005c00,0x4000000,0x200000, -0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519,0x7c00100,0x250400,0x80009865,0x7c00100,0x230400,0x8000a008, -0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000,0x4e00000,0x8000d202,0x2802500,0x962460,0x8000d202,0x7c00100, -0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802000,0x962460,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000,0x400000,0x8000d997,0x4000000,0x500000, -0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400,0x8000e719,0x7c00100,0x220400,0x8000f8a6, -0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1,0x2806400,0x1862460,0x8000fda1,0x4000000, -0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100,0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400, -0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400,0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2, -0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c,0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100, -0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,0x4000010,0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000, -0x800acd00,0x4000000,0x34e00000,0x800acd00,0x4000000,0x7a902460,0x800ace00,0x4000000,0x34e00000,0x800acf00,0x4000000,0x34e00000,0x800b0011,0x7c40300,0xe30000,0x800b0500, -0x4000000,0x34e00000,0x800b0500,0x4000000,0xb6800000,0x90001615,0x7c00100,0x230400,0x9000171a,0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000, -0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802000,0x962460,0x90008e00,0x24000000,0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460, -0x9000d200,0x80000000,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,0x962460,0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x90010500, -0x4000000,0xe00000,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7,0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7,0x6800000, -0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100,0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000,0x200000, -0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800,0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400,0x900108a8, -0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9,0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010, -0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000,0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,0x962460, -0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000,0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa, -0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab,0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000, -0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0x34e00000,0x900acd00,0x4000000,0xb6800000,0x900acf00,0x4000000,0x34e00000,0x900b0500,0x4000000,0x34e00000, -0x900b0500,0x4000000,0xb6800000,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,0xe30000,0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000,0xa0001004, -0x4000000,0x200000,0xa0001004,0x7c00100,0x230400,0xa000120f,0x2802100,0x962460,0xa000120f,0x2802400,0x962460,0xa000171a,0x2802100,0x962460,0xa000171a,0x2806400, -0x962460,0xa0002a00,0x4000000,0x1600000,0xa0003000,0x24000000,0x200000,0xa000581e,0x7c00100,0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460, -0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0x4e00000,0xa0010500,0x4000000,0x200000,0xa00114af,0x2802100,0x962460,0xa00114af,0x2802400,0x962460,0xa00114af, -0x2806400,0x962460,0xa00114af,0x6800000,0x1329800,0xa00114af,0x7c00100,0x230400,0xa00114af,0x7c00100,0x230560,0xa00116b0,0x2802100,0x962460,0xa00116b0,0x2802800, -0x962460,0xa00116b0,0x2806400,0x962460,0xa00116b0,0x4000000,0x400000,0xa00116b0,0x4000000,0x500000,0xa00116b0,0x4000010,0x400000,0xa00116b0,0x6800100,0x962540, -0xa00116b0,0x7c00100,0x230400,0xa00116b0,0x7c00100,0x230560,0xa00116b0,0xc000010,0x448000,0xa0011722,0x7c00100,0x230400,0xa00118b1,0x2802000,0x962460,0xa00118b1, -0x2802100,0x962460,0xa00118b1,0x2806400,0x962460,0xa00118b1,0x4000000,0x200000,0xa00118b1,0x4000000,0x400000,0xa00118b1,0x4000000,0x500000,0xa00118b1,0x6800100, -0x962540,0xa00118b1,0x7c00100,0x230400,0xa00118b1,0x7c00100,0x230560,0xa00118b1,0xc000010,0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000, -0xa00ac400,0x4000000,0x4e00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00,0x4000000,0x34e00000,0xa00b0500,0x4000000,0x34e00000,0xa00b0500,0x4000000,0xb6800000,0xa00b0b96, -0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100,0xe30000,0xa00b1596,0x7c00300,0xe30000,0xa040afac,0x6800400,0x962540,0xa08083ad,0x2802400, -0x962460,0xb0000a03,0x7c00100,0x220400,0xb0000b13,0x7c00100,0x2633800,0xb0001004,0x2802000,0x962460,0xb0001110,0x4000000,0x200000,0xb0001524,0x2802000,0x962460, -0xb0001615,0x4000000,0x500000,0xb000251b,0x7c00100,0x230400,0xb0007300,0x24000000,0x200000,0xb0008939,0x4000000,0x200000,0xb0008939,0x7c00100,0x230400,0xb0008e00, -0x24000000,0x200000,0xb0008e00,0x24000000,0x400000,0xb0008e00,0x24000010,0x400000,0xb0009257,0x2802000,0x962460,0xb0009257,0x4000000,0x1600000,0xb0009519,0x7c00100, -0x220400,0xb0009519,0x7c00100,0x250400,0xb0009a00,0x4000000,0x200000,0xb000b30a,0x2802100,0x962460,0xb000b30a,0x7c00100,0x230400,0xb000c178,0x80000000,0x218960, -0xb000c300,0x4000000,0x4200000,0xb000d202,0x2802000,0x962460,0xb000d476,0x6800100,0x962540,0xb000d476,0x7c00100,0x230400,0xb000e300,0x4000000,0x4e00000,0xb000fda1, -0x7c00100,0x1830000,0xb0010eaa,0x2802000,0x962460,0xb00116b0,0x7c00100,0x230400,0xb0011900,0x4000000,0x4e00000,0xb0011ab2,0x2802100,0x962460,0xb0011ab2,0x2802400, -0x962460,0xb0011ab2,0x2806400,0x962460,0xb0011ab2,0x4000000,0x200000,0xb0011ab2,0x6800100,0x962540,0xb0011ab2,0x7c00100,0x230400,0xb0011b0c,0x7c00100,0x230400, -0xb0011cb3,0x2802100,0x962460,0xb0011cb3,0x2806400,0x962460,0xb0011cb3,0x6800000,0x1329800,0xb0011cb3,0x6800100,0x962540,0xb0011cb3,0x7c00100,0x230400,0xb0011db6, -0x2802500,0x962460,0xb0011db6,0x6800000,0x1329800,0xb0011db6,0x7c00100,0x230400,0xb0011db6,0x7c00500,0x230400,0xb0011e00,0x4000000,0x200000,0xb0011e00,0x4000000, -0x1500000,0xb0011fb4,0x2802100,0x962460,0xb0011fb4,0x6800100,0x962540,0xb0011fb4,0x7c00100,0x230400,0xb0011fb4,0xc000010,0x248000,0xb0012000,0x4000000,0x200000, -0xb00121b5,0x4000000,0x200000,0xb00121b5,0x4000010,0x400000,0xb00121b5,0x7c00100,0x220400,0xb00121b5,0x7c00100,0x250400,0xb00121b5,0xc000010,0x448000,0xb00122b8, -0x4000000,0x200000,0xb00122b8,0x7c00100,0x230400,0xb00123b7,0x2802400,0x962460,0xb00123b7,0x4000000,0x200000,0xb00123b7,0x7c00100,0x230400,0xb00123b7,0xc000010, -0x248000,0xb00a4005,0x7c00100,0xe30400,0xb00a4711,0x7c40300,0xe30000,0xb00acf00,0x4000000,0x34e00000,0xb00b0500,0x4000000,0x34e00000,0xb00b0500,0x4000000,0x3ce00000, -0xb00b0500,0x4000000,0xb6800000,0xb00b109a,0x7c00300,0xe30000,0xb080e47c,0x2802000,0x962460,0xc0001524,0x4000000,0x500000,0xc0001a18,0x2806400,0x1862460,0xc0001a18, -0x7c00100,0x1830000,0xc0007300,0x24000000,0x200000,0xc0008e00,0x24000010,0x400000,0xc0009519,0x7c00100,0x220400,0xc0009519,0x7c00100,0x250400,0xc000c300,0x4000000, -0x420000f,0xc000d85c,0x2802100,0x962460,0xc000d85c,0x6800100,0x962540,0xc000d85c,0x7c00100,0x230400,0xc000dc99,0x7c00100,0x230400,0xc000e719,0x7c00100,0x220400, -0xc00107a7,0x7c00100,0x230400,0xc0010eaa,0x7c00100,0x230400,0xc00116b0,0x7c00100,0x230560,0xc0011900,0x4000000,0x4200000,0xc0012447,0,0x818820,0xc0012447, -0,0xc18820,0xc0012447,0,0x1418820,0xc00125b9,0x7c00100,0x230400,0xc00126bb,0x2802100,0x962460,0xc00126bb,0x2806400,0x962460,0xc00126bb,0x4000000, -0x500000,0xc00126bb,0x6800100,0x962540,0xc00126bb,0x7c00100,0x230400,0xc00127ba,0x2802400,0x962460,0xc00127ba,0x4000000,0x200000,0xc00127ba,0x6800000,0x1329800, -0xc00127ba,0x7c00100,0x230400,0xc00127ba,0x7c00900,0x230400,0xc0012800,0x4000000,0x200000,0xc0012b23,0x4000000,0x200000,0xc0012b23,0x4000000,0x400000,0xc0012b23, -0x4000000,0x1500000,0xc0012cbc,0x2802400,0x962460,0xc0012cbc,0x4000000,0x1600000,0xc0012cbc,0x6800000,0x1329800,0xc0012cbc,0x7c00100,0x230400,0xc00acf00,0x4000000, -0x34e00000,0xc00ae300,0x4000000,0x34e00000,0xc00b0500,0x4000000,0x34e00000,0xc00b0500,0x4000000,0xb6800000,0xc00b0b00,0x4000000,0x1200000,0xc00b0b00,0x7c00900,0x1230400, -0xc00b109a,0x7c00300,0xe30000,0xc00b2914,0x7c00100,0x2530000,0xc00b2916,0x7c00100,0x2530c00,0xc00b2a00,0x4000000,0x34e00000,0xc040af53,0x7c00100,0x230400,0xc0c12b7e, -0x4000000,0x200000,0xc14a44bf,0x4000000,0xe0000d,0xd000131f,0x2802c00,0x962460,0xd000171a,0x7c00100,0x230400,0xd0001821,0x2802100,0x962460,0xd0007300,0x24000000, -0x200000,0xd0008e00,0x24000000,0x200000,0xd0008f3a,0x2806000,0x962460,0xd0009519,0x7c00100,0x220400,0xd0009519,0x7c00100,0x250400,0xd000a500,0x4000000,0x200000, -0xd000c300,0x4000000,0x4e00000,0xd000d202,0x7c00100,0x230400,0xd000d476,0x7c00100,0x230400,0xd000d997,0x2802100,0x962460,0xd000d997,0x6800100,0x962540,0xd000e001, -0x2802100,0x962460,0xd000e700,0x4000400,0x200000,0xd000e719,0x7c00100,0x220400,0xd000e719,0x7c00500,0x23040f,0xd000fa00,0x4000000,0x4e00000,0xd0010eaa,0x4000010, -0x400000,0xd0010eaa,0x7c00100,0x230400,0xd0012dbd,0x4000000,0x200000,0xd0012dbd,0x7c00100,0x230400,0xd0012fbe,0x2802100,0x962460,0xd0012fbe,0x2802400,0x962460, -0xd0012fbe,0x2806400,0x962460,0xd0012fbe,0x4000000,0x400000,0xd0012fbe,0x6800000,0x1329800,0xd0012fbe,0x6800100,0x962540,0xd0012fbe,0x6800100,0x962541,0xd0012fbe, -0x6804400,0x962540,0xd0012fbe,0x7c00100,0x230400,0xd0012fbe,0x7c00100,0x230560,0xd0012fbe,0xc000010,0x448000,0xd0013183,0x7c00100,0x230400,0xd0013200,0x4000000, -0x200000,0xd0013200,0x6800000,0x1329805,0xd00134c0,0x2802100,0x962460,0xd00134c0,0x4000002,0x400000,0xd00134c0,0x7c00100,0x230400,0xd00a4305,0x7c00100,0xe30400, -0xd00a4611,0x7c40300,0xe30000,0xd00a4711,0x7c40300,0xe30000,0xd00a5e11,0x7c40300,0xe30000,0xd00acf00,0x4000000,0x34e00000,0xd00b0500,0x4000000,0x34e00000,0xd00b0500, -0x4000000,0xb6800000,0xd00b0b11,0x6800500,0x962540,0xd00b0bbf,0x2802200,0xc62460,0xd00b119a,0x7c00300,0xe30000,0xd00b2a00,0x4000000,0x34e00000,0xd00b2e11,0x7c40300, -0xe30000,0xd00b30bf,0x7c00300,0x230000,0xd00b339a,0x7c00300,0xe30000}; +0x1500000,0x70002a00,0x4000000,0x1600000,0x70003000,0x24000000,0x200000,0x70003800,0x24000000,0xe00000,0x70005201,0x2802400,0x962460,0x7000581e,0x7c00100,0x230400, +0x70006108,0x7c00100,0x220400,0x70006108,0x7c00100,0x250400,0x70006f30,0x7c00100,0x230400,0x70007300,0x24000000,0x200000,0x70007f0e,0x4000000,0x200000,0x70008301, +0x2802100,0x962460,0x70008301,0x2802400,0x962460,0x70008e00,0x24000000,0x200000,0x70008e00,0x24000000,0x400000,0x70008e00,0x24000002,0x400000,0x70008e00,0x24000008, +0x1410000,0x70008e00,0x24000010,0x400000,0x70008e00,0x2c000010,0x448000,0x70009519,0x7c00100,0x220400,0x70009519,0x7c00100,0x230400,0x70009519,0x7c00100,0x250400, +0x70009865,0x7c00100,0x230400,0x70009965,0x4000010,0x400000,0x70009965,0x7c00100,0x230400,0x7000a008,0x7c00100,0x220400,0x7000a008,0x7c00100,0x250400,0x7000a008, +0x7c00500,0x22040f,0x7000a50e,0x4000000,0x200000,0x7000b61c,0x2802500,0x1862460,0x7000b61c,0x6800500,0x1862400,0x7000b61c,0x7c00100,0x1830000,0x7000c300,0x4000000, +0x100000,0x7000c941,0x2806000,0x962460,0x7000cc00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x200000,0x7000cd00,0x4000000,0xe00000,0x7000cd00,0x4000000,0x2800000, +0x7000cf00,0x4000000,0xe00000,0x7000d202,0x2802100,0x962460,0x7000d202,0x7c00100,0x230400,0x7000d997,0x7c00100,0x230400,0x7000d997,0xc000010,0x248000,0x7000dd86, +0x2802400,0x962460,0x7000dd86,0x7c00100,0x230400,0x7000dd86,0xc000010,0x448000,0x7000de9f,0x4000000,0x200000,0x7000de9f,0x7c00100,0x230400,0x7000e001,0x2400, +0x962460,0x7000e001,0x2802400,0x962460,0x7000e187,0x2802000,0x962460,0x7000e187,0x2802100,0x962460,0x7000e187,0x4000000,0x200000,0x7000e187,0x7c00100,0x230400, +0x7000e187,0xc000010,0x448000,0x7000e288,0x7c00100,0x230400,0x7000e300,0x4000000,0x200000,0x7000e489,0x2802100,0x962460,0x7000e489,0x2802400,0x962460,0x7000e489, +0x6800100,0x962540,0x7000e489,0x6800100,0x962541,0x7000e489,0x6804400,0x962540,0x7000e489,0x7c00100,0x230400,0x7000e489,0x7c00900,0x230400,0x7000e59d,0x2802100, +0x962460,0x7000e59d,0x2802400,0x962460,0x7000e59d,0x4000000,0x200000,0x7000e59d,0x4000010,0x200000,0x7000e59d,0x6800100,0x962540,0x7000e59d,0x6804400,0x962540, +0x7000e59d,0x7c00100,0x230400,0x7000e59d,0xc000010,0x448000,0x7000e691,0x2802100,0x962460,0x7000e691,0x2802400,0x962460,0x7000e691,0x2806400,0x962460,0x7000e691, +0x6800000,0x1329800,0x7000e691,0x6800100,0x962540,0x7000e691,0x7c00100,0x230400,0x7000e700,0x4000400,0x200400,0x7000e70e,0x7c00100,0x220400,0x7000e719,0x7c00100, +0x220400,0x7000e719,0x7c00500,0x22040f,0x7000e853,0x7c00100,0x230400,0x7000e9a0,0x2802400,0x962460,0x7000e9a0,0x4000000,0x200000,0x7000e9a0,0x4000000,0x500000, +0x7000e9a0,0x7c00100,0x230400,0x7000ea79,0x2802400,0x962460,0x7000ea79,0x4000000,0x200000,0x7000ea79,0x4000000,0xf00000,0x7000ea79,0x4000010,0x400000,0x7000ea79, +0x7c00100,0x230400,0x7000eb8c,0x2802400,0x962460,0x7000eb8c,0x4000000,0x200000,0x7000eb8c,0x7c00100,0x230400,0x7000eca3,0x2802100,0x962460,0x7000eca3,0x2806400, +0x962460,0x7000eca3,0x4000000,0x200000,0x7000eca3,0x6800000,0x1329800,0x7000eca3,0x6800100,0x962540,0x7000eca3,0x7c00100,0x230400,0x7000eca3,0xc000010,0x448000, +0x7000ed95,0x6800000,0x1329800,0x7000ed95,0x7c00100,0x230400,0x7000ed95,0xc000010,0x448000,0x7000ee1c,0x2802500,0x1862460,0x7000ee1c,0x6800000,0x1329800,0x7000ee1c, +0x7c00100,0x1830000,0x7000ee1c,0x7c00900,0x1830000,0x7000ef8f,0x4000000,0x200000,0x7000ef8f,0x7c00100,0x230400,0x7000f08e,0x4000000,0x200000,0x7000f08e,0x7c00100, +0x230400,0x7000f159,0x2802100,0x962460,0x7000f159,0x7c00100,0x230400,0x7000f200,0x4000000,0x200000,0x7000f200,0x4000000,0x1200000,0x7000f200,0x4000000,0x1710000, +0x7000f34b,0x2802400,0x962460,0x7000f34b,0x4000000,0x200000,0x7000f34b,0x4000010,0x400000,0x7000f34b,0x6800000,0x1329800,0x7000f34b,0x7c00100,0x230400,0x7000f34b, +0x7c00900,0x230400,0x7000f34b,0xc000010,0x448000,0x7000f490,0x4000000,0x200000,0x7000f490,0x7c00100,0x230400,0x7000f5a5,0x7c00100,0x230400,0x7000f67b,0x4000000, +0x200000,0x7000f67b,0x4000010,0x200000,0x7000f67b,0x7c00100,0x230400,0x7000f8a6,0x2802100,0x962460,0x7000f8a6,0x2802400,0x962460,0x7000f8a6,0x2806400,0x962460, +0x7000f8a6,0x4000000,0x500000,0x7000f8a6,0x4000010,0xb00000,0x7000f8a6,0x4000800,0x200000,0x7000f8a6,0x6800100,0x962540,0x7000f8a6,0x6800100,0x962541,0x7000f8a6, +0x7c00100,0x230400,0x7000f8a6,0xc000010,0x448000,0x7000f921,0x4000000,0x200000,0x7000fa00,0x4000000,0x200000,0x7000fb9e,0x2802100,0x962460,0x7000fb9e,0x2802400, +0x962460,0x7000fb9e,0x2806400,0x962460,0x7000fb9e,0x4000000,0x200000,0x7000fb9e,0x6800000,0x1329800,0x7000fb9e,0x6800100,0x962540,0x7000fb9e,0x6800100,0x962541, +0x7000fb9e,0x7c00100,0x230400,0x7000fc92,0x4000000,0x200000,0x7000fc92,0x6800000,0x1329800,0x7000fc92,0x7c00100,0x220400,0x7000fc92,0x7c00100,0x230400,0x7000fc92, +0x7c00100,0x250400,0x700acd00,0x4000000,0xe00000,0x700acd00,0x4000000,0x2800000,0x700ace00,0x4000000,0xe00000,0x700acf00,0x4000000,0xe00000,0x700acf00,0x4000000, +0x2800000,0x7050df11,0x4000000,0x200000,0x7050f719,0x80000,0x918820,0x7080afa1,0x2802400,0x962460,0x7090df11,0x2802400,0x962460,0x70d0e417,0x2802100,0x962460, +0x70d0e417,0x2802400,0x962460,0x70d0e417,0x6800100,0x962540,0x70d0ea15,0x4000010,0x400000,0x8000120f,0x7c00100,0x230400,0x80001524,0x7c00100,0x230400,0x8000171a, +0x7c00100,0x230400,0x80002006,0x7c00100,0x220400,0x80002006,0x7c00100,0x250400,0x80002a00,0x4000000,0x1500000,0x80002d00,0x4000000,0x200000,0x80005208,0x2802400, +0x962460,0x80005c00,0x4000000,0x200000,0x80007300,0x24000000,0x200000,0x80009519,0x7c00100,0x220400,0x80009519,0x7c00100,0x230400,0x80009519,0x7c00100,0x250400, +0x80009865,0x7c00100,0x230400,0x8000a008,0x2802100,0x962460,0x8000b30a,0x4000000,0x500000,0x8000b30a,0x7c00100,0x230400,0x8000cd00,0x4000000,0xe00000,0x8000d202, +0x2802500,0x962460,0x8000d202,0x7c00100,0x230400,0x8000d68d,0x4000000,0x200000,0x8000d997,0x2802000,0x962460,0x8000d997,0x2802400,0x962460,0x8000d997,0x4000000, +0x400000,0x8000d997,0x4000000,0x500000,0x8000d997,0x7c00100,0x230400,0x8000d997,0xc000010,0x448000,0x8000e489,0x2802100,0x962460,0x8000e489,0x7c00100,0x230400, +0x8000e719,0x7c00100,0x220400,0x8000f8a6,0x2802100,0x962460,0x8000f8a6,0x7c00100,0x230400,0x8000f8a6,0xc000010,0x448000,0x8000fda1,0x2802100,0x1862460,0x8000fda1, +0x2806400,0x1862460,0x8000fda1,0x4000000,0x1800000,0x8000fda1,0x6800000,0x1329800,0x8000fda1,0x6800100,0x1862400,0x8000fda1,0x6800100,0x1862540,0x8000fda1,0x7c00100, +0x1830000,0x8000fda1,0xc000010,0x448000,0x8000fe9c,0x7c00100,0x230400,0x8000fe9c,0x7c00100,0x830400,0x8000fe9c,0x7c00100,0x1430400,0x8000ff06,0x7c00100,0x220400, +0x80010165,0x7c00100,0x230400,0x800102a2,0x4000000,0x200000,0x800102a2,0x7c00100,0x230400,0x800103a4,0x7c00100,0x230400,0x800103a4,0xc000010,0x448000,0x8001044c, +0x4000000,0x200000,0x8001044c,0x7c00100,0x220400,0x8001044c,0x7c00100,0x250400,0x80010670,0x2802000,0x962460,0x80010670,0x4000000,0x200000,0x80010670,0x4000010, +0x400000,0x80010670,0xc000010,0x448000,0x800a4711,0x7c40300,0xe30000,0x800acd00,0x4000000,0xe00000,0x800acd00,0x4000000,0x2902460,0x800ace00,0x4000000,0xe00000, +0x800acf00,0x4000000,0xe00000,0x800b0011,0x7c40300,0xe30000,0x800b0500,0x4000000,0xe00000,0x800b0500,0x4000000,0x2800000,0x90001615,0x7c00100,0x230400,0x9000171a, +0x4000000,0x200000,0x9000171a,0x7c00100,0x230400,0x90003000,0x24000000,0x200000,0x90007f0e,0x4000000,0x200000,0x90008301,0x2802400,0x962460,0x90008e00,0x24000000, +0x400000,0x90009519,0x7c00100,0x250400,0x9000a16f,0x2802100,0x962460,0x9000d200,0x80000000,0x218960,0x9000d202,0x2802000,0x962460,0x9000d202,0x2802100,0x962460, +0x9000d202,0x7c00100,0x230400,0x9000e59d,0x2802100,0x962460,0x90010500,0x4000000,0xe00000,0x900107a7,0x2802100,0x962460,0x900107a7,0x2802400,0x962460,0x900107a7, +0x2802c00,0x962460,0x900107a7,0x4000000,0x1400000,0x900107a7,0x6800000,0x1329800,0x900107a7,0x7c00100,0x220400,0x900107a7,0x7c00100,0x250400,0x900108a8,0x2802100, +0x962460,0x900108a8,0x2806400,0x962460,0x900108a8,0x4000000,0x200000,0x900108a8,0x4000000,0x400000,0x900108a8,0x4000010,0x400000,0x900108a8,0x6800000,0x1329800, +0x900108a8,0x6800100,0x962540,0x900108a8,0x7c00100,0x230400,0x900108a8,0xc000010,0x448000,0x90010908,0x7c00100,0x220400,0x90010a38,0x2802100,0x962460,0x90010ca9, +0x2802100,0x962460,0x90010ca9,0x4000000,0x500000,0x90010ca9,0x4000010,0xb00000,0x90010ca9,0x6800100,0x962540,0x90010ca9,0x7c00100,0x230400,0x90010d1b,0x4000000, +0x500000,0x90010eaa,0x2802100,0x962460,0x90010eaa,0x2802400,0x962460,0x90010eaa,0x2806400,0x962460,0x90010eaa,0x4000000,0x200000,0x90010eaa,0x4000000,0x400000, +0x90010eaa,0x4000010,0x400000,0x90010eaa,0x6800000,0x1329800,0x90010eaa,0x6800100,0x962540,0x90010eaa,0x7c00100,0x230400,0x90010eaa,0xc000010,0x448000,0x90010fab, +0x7c00100,0x220400,0x90010fab,0x7c00100,0x250400,0x9002c300,0x4000000,0x100000,0x900ac400,0x4000000,0xe0000d,0x900acd00,0x4000000,0xe00000,0x900acd00,0x4000000, +0x2800000,0x900acf00,0x4000000,0xe00000,0x900b0500,0x4000000,0xe00000,0x900b0500,0x4000000,0x2800000,0x900b0b9a,0x7c00900,0x1230400,0x900b109a,0x7c00300,0xe30000, +0x900b119a,0x7c00300,0xe30000,0x90408e06,0x24000000,0x400000,0xa0001004,0x4000000,0x200000,0xa0001004,0x7c00100,0x230400,0xa000120f,0x2802100,0x962460,0xa000120f, +0x2802400,0x962460,0xa000171a,0x2802100,0x962460,0xa000171a,0x2806400,0x962460,0xa0002a00,0x4000000,0x1600000,0xa0003000,0x24000000,0x200000,0xa000581e,0x7c00100, +0x230400,0xa0007300,0x24000000,0x200000,0xa0008301,0x2802400,0x962460,0xa0008e00,0x24000000,0x400000,0xa000cf00,0x4000000,0xe00000,0xa0010500,0x4000000,0x200000, +0xa00114af,0x2802100,0x962460,0xa00114af,0x2802400,0x962460,0xa00114af,0x2806400,0x962460,0xa00114af,0x6800000,0x1329800,0xa00114af,0x7c00100,0x230400,0xa00114af, +0x7c00100,0x230560,0xa00116b0,0x2802100,0x962460,0xa00116b0,0x2802800,0x962460,0xa00116b0,0x2806400,0x962460,0xa00116b0,0x4000000,0x400000,0xa00116b0,0x4000000, +0x500000,0xa00116b0,0x4000010,0x400000,0xa00116b0,0x6800100,0x962540,0xa00116b0,0x7c00100,0x230400,0xa00116b0,0x7c00100,0x230560,0xa00116b0,0xc000010,0x448000, +0xa0011722,0x7c00100,0x230400,0xa00118b1,0x2802000,0x962460,0xa00118b1,0x2802100,0x962460,0xa00118b1,0x2806400,0x962460,0xa00118b1,0x4000000,0x200000,0xa00118b1, +0x4000000,0x400000,0xa00118b1,0x4000000,0x500000,0xa00118b1,0x6800100,0x962540,0xa00118b1,0x7c00100,0x230400,0xa00118b1,0x7c00100,0x230560,0xa00118b1,0xc000010, +0x448000,0xa00a4005,0x7c00100,0xe30400,0xa00a4711,0x7c40300,0xe30000,0xa00ac400,0x4000000,0xe00000,0xa00acb14,0x7c00100,0xe30000,0xa00acf00,0x4000000,0xe00000, +0xa00b0500,0x4000000,0xe00000,0xa00b0500,0x4000000,0x2800000,0xa00b0b96,0x7c00900,0x1230400,0xa00b1211,0x7c40300,0xe30000,0xa00b1314,0x7c00100,0xe30000,0xa00b1596, +0x7c00300,0xe30000,0xa040afb7,0x6800400,0x962540,0xa08083b8,0x2802400,0x962460,0xb0000a03,0x7c00100,0x220400,0xb0000b13,0x7c00100,0x2633800,0xb0001004,0x2802000, +0x962460,0xb0001110,0x4000000,0x200000,0xb0001524,0x2802000,0x962460,0xb0001615,0x4000000,0x500000,0xb000251b,0x7c00100,0x230400,0xb0007300,0x24000000,0x200000, +0xb0008939,0x4000000,0x200000,0xb0008939,0x7c00100,0x230400,0xb0008e00,0x24000000,0x200000,0xb0008e00,0x24000000,0x400000,0xb0008e00,0x24000010,0x400000,0xb0009257, +0x2802000,0x962460,0xb0009257,0x4000000,0x1600000,0xb0009519,0x7c00100,0x220400,0xb0009519,0x7c00100,0x250400,0xb0009a00,0x4000000,0x200000,0xb000b30a,0x2802100, +0x962460,0xb000b30a,0x7c00100,0x230400,0xb000c178,0x80000000,0x218960,0xb000c300,0x4000000,0x200000,0xb000d202,0x2802000,0x962460,0xb000d476,0x6800100,0x962540, +0xb000d476,0x7c00100,0x230400,0xb000e300,0x4000000,0xe00000,0xb000fda1,0x7c00100,0x1830000,0xb0010eaa,0x2802000,0x962460,0xb00116b0,0x7c00100,0x230400,0xb0011900, +0x4000000,0xe00000,0xb0011ab2,0x2802100,0x962460,0xb0011ab2,0x2802400,0x962460,0xb0011ab2,0x2806400,0x962460,0xb0011ab2,0x4000000,0x200000,0xb0011ab2,0x6800100, +0x962540,0xb0011ab2,0x7c00100,0x230400,0xb0011b0c,0x7c00100,0x230400,0xb0011cb3,0x2802100,0x962460,0xb0011cb3,0x2806400,0x962460,0xb0011cb3,0x6800000,0x1329800, +0xb0011cb3,0x6800100,0x962540,0xb0011cb3,0x7c00100,0x230400,0xb0011db6,0x2802500,0x962460,0xb0011db6,0x6800000,0x1329800,0xb0011db6,0x7c00100,0x230400,0xb0011db6, +0x7c00500,0x230400,0xb0011e00,0x4000000,0x200000,0xb0011e00,0x4000000,0x1500000,0xb0011fb4,0x2802100,0x962460,0xb0011fb4,0x6800100,0x962540,0xb0011fb4,0x7c00100, +0x230400,0xb0011fb4,0xc000010,0x248000,0xb0012000,0x4000000,0x200000,0xb00121b5,0x4000000,0x200000,0xb00121b5,0x4000010,0x400000,0xb00121b5,0x7c00100,0x220400, +0xb00121b5,0x7c00100,0x250400,0xb00121b5,0xc000010,0x448000,0xb00122b8,0x4000000,0x200000,0xb00122b8,0x7c00100,0x230400,0xb00123b7,0x2802400,0x962460,0xb00123b7, +0x4000000,0x200000,0xb00123b7,0x7c00100,0x230400,0xb00123b7,0xc000010,0x248000,0xb00a4005,0x7c00100,0xe30400,0xb00a4711,0x7c40300,0xe30000,0xb00acf00,0x4000000, +0xe00000,0xb00b0500,0x4000000,0xe00000,0xb00b0500,0x4000000,0x2800000,0xb00b109a,0x7c00300,0xe30000,0xb080e487,0x2802000,0x962460,0xc0001524,0x4000000,0x500000, +0xc0001a18,0x2806400,0x1862460,0xc0001a18,0x7c00100,0x1830000,0xc0007300,0x24000000,0x200000,0xc0008e00,0x24000010,0x400000,0xc0009519,0x7c00100,0x220400,0xc0009519, +0x7c00100,0x250400,0xc000c300,0x4000000,0x20000f,0xc000d85c,0x2802100,0x962460,0xc000d85c,0x6800100,0x962540,0xc000d85c,0x7c00100,0x230400,0xc000dc99,0x7c00100, +0x230400,0xc000e719,0x7c00100,0x220400,0xc00107a7,0x7c00100,0x230400,0xc0010eaa,0x7c00100,0x230400,0xc00116b0,0x7c00100,0x230560,0xc0011900,0x4000000,0x200000, +0xc0012447,0,0x818820,0xc0012447,0,0xc18820,0xc0012447,0,0x1418820,0xc00125b9,0x7c00100,0x230400,0xc00126bb,0x2802100,0x962460,0xc00126bb, +0x2806400,0x962460,0xc00126bb,0x4000000,0x500000,0xc00126bb,0x6800100,0x962540,0xc00126bb,0x7c00100,0x230400,0xc00127ba,0x2802400,0x962460,0xc00127ba,0x4000000, +0x200000,0xc00127ba,0x6800000,0x1329800,0xc00127ba,0x7c00100,0x230400,0xc00127ba,0x7c00900,0x230400,0xc0012800,0x4000000,0x200000,0xc0012b23,0x4000000,0x200000, +0xc0012b23,0x4000000,0x400000,0xc0012b23,0x4000000,0x1500000,0xc0012cbc,0x2802400,0x962460,0xc0012cbc,0x4000000,0x1600000,0xc0012cbc,0x6800000,0x1329800,0xc0012cbc, +0x7c00100,0x230400,0xc00acf00,0x4000000,0xe00000,0xc00ae300,0x4000000,0xe00000,0xc00b0500,0x4000000,0xe00000,0xc00b0500,0x4000000,0x2800000,0xc00b0b11,0x4000000, +0x1200000,0xc00b0b11,0x7c00900,0x1230400,0xc00b109a,0x7c00300,0xe30000,0xc00b2914,0x7c00100,0x2530000,0xc00b2916,0x7c00100,0x2530c00,0xc00b2a00,0x4000000,0xe00000, +0xc040af5e,0x7c00100,0x230400,0xc0c12b89,0x4000000,0x200000,0xc14a44ca,0x4000000,0xe0000d,0xd000131f,0x2802c00,0x962460,0xd000171a,0x7c00100,0x230400,0xd0001821, +0x2802100,0x962460,0xd0007300,0x24000000,0x200000,0xd0008e00,0x24000000,0x200000,0xd0008f3a,0x2806000,0x962460,0xd0009519,0x7c00100,0x220400,0xd0009519,0x7c00100, +0x250400,0xd000a500,0x4000000,0x200000,0xd000c300,0x4000000,0xe00000,0xd000d202,0x7c00100,0x230400,0xd000d476,0x7c00100,0x230400,0xd000d997,0x2802100,0x962460, +0xd000d997,0x6800100,0x962540,0xd000e001,0x2802100,0x962460,0xd000e700,0x4000400,0x200000,0xd000e719,0x7c00100,0x220400,0xd000e719,0x7c00500,0x23040f,0xd000fa00, +0x4000000,0xe00000,0xd0010eaa,0x4000010,0x400000,0xd0010eaa,0x7c00100,0x230400,0xd0012dbd,0x4000000,0x200000,0xd0012dbd,0x7c00100,0x230400,0xd0012fbe,0x2802100, +0x962460,0xd0012fbe,0x2802400,0x962460,0xd0012fbe,0x2806400,0x962460,0xd0012fbe,0x4000000,0x400000,0xd0012fbe,0x6800000,0x1329800,0xd0012fbe,0x6800100,0x962540, +0xd0012fbe,0x6800100,0x962541,0xd0012fbe,0x6804400,0x962540,0xd0012fbe,0x7c00100,0x230400,0xd0012fbe,0x7c00100,0x230560,0xd0012fbe,0xc000010,0x448000,0xd0013183, +0x7c00100,0x230400,0xd0013200,0x4000000,0x200000,0xd0013200,0x6800000,0x1329805,0xd00134c0,0x2802100,0x962460,0xd00134c0,0x4000002,0x400000,0xd00134c0,0x7c00100, +0x230400,0xd00a4305,0x7c00100,0xe30400,0xd00a4611,0x7c40300,0xe30000,0xd00a4711,0x7c40300,0xe30000,0xd00a5e11,0x7c40300,0xe30000,0xd00acf00,0x4000000,0xe00000, +0xd00b0500,0x4000000,0xe00000,0xd00b0500,0x4000000,0x2800000,0xd00b0b11,0x6800500,0x962540,0xd00b0bbf,0x2802200,0xc62460,0xd00b119a,0x7c00300,0xe30000,0xd00b2a00, +0x4000000,0xe00000,0xd00b2e11,0x7c40300,0xe30000,0xd00b30bf,0x7c00300,0x230000,0xd00b339a,0x7c00300,0xe30000,0xe0000c02,0xc000010,0xb48000,0xe0001524,0x2802400, +0x962460,0xe0001524,0x7c00100,0x230400,0xe0001615,0x7c00100,0x230400,0xe000251b,0x12882000,0x962460,0xe0002a00,0x4000000,0x1500000,0xe0005102,0x4000000,0x200000, +0xe0005c00,0x4000000,0x200000,0xe000622a,0x6804400,0x962540,0xe000622a,0x7c00100,0x230400,0xe0008838,0x7c00100,0x220400,0xe0008838,0x7c00100,0x250400,0xe0008e00, +0x24000000,0x810000,0xe0008e00,0x24000000,0x1410000,0xe0008e00,0x24000002,0x400000,0xe0008e00,0x2c000010,0xb48000,0xe000933e,0x7c00100,0x230400,0xe000933e,0xc000010, +0x448000,0xe0009519,0x7c00100,0x220400,0xe0009519,0x7c00100,0x23040f,0xe0009519,0x7c00100,0x250400,0xe000c178,0x2802100,0x962460,0xe000c941,0x2802100,0x962460, +0xe000c941,0x2806400,0x962460,0xe000c941,0x7c00100,0x230400,0xe000d202,0x2802400,0x962460,0xe000d202,0x7c00100,0x230400,0xe000d202,0x7c00500,0x230400,0xe000dc99, +0x4000000,0x200000,0xe000e001,0x2802100,0x962460,0xe000e001,0x2802400,0x962460,0xe000fda1,0x7c00100,0x1830000,0xe0013502,0x2802400,0x962460,0xe0013502,0x4000000, +0x200000,0xe0013502,0x7c00100,0x230400,0xe0013502,0x80000000,0x218960,0xe00136c1,0x4000000,0x200000,0xe00136c1,0x7c00100,0x230400,0xe001370b,0x7c00100,0x230400, +0xe0013919,0x7c00500,0x220400,0xe0013919,0x7c00500,0x22040f,0xe0013919,0x7c00d00,0x23040f,0xe0013a19,0x7c00100,0x220400,0xe0013a19,0x7c00100,0x230400,0xe0013bc2, +0x2802400,0x962460,0xe0013bc2,0x7c00100,0x230400,0xe0013bc2,0xc000010,0x248000,0xe0013cc3,0x6800000,0x1329800,0xe0013cc3,0x7c00100,0x230400,0xe0013dc4,0x2802400, +0x962460,0xe0013dc4,0x7c00100,0x230400,0xe0013e28,0x7c00100,0x230400,0xe0013fc5,0x7c00100,0x220400,0xe0013fc5,0x7c00100,0x250400,0xe0014000,0x4000000,0x200000, +0xe0014001,0x2802400,0x962460,0xe00a4711,0x7c40300,0xe30000,0xe00a5e11,0x7c40300,0xe30000,0xe00ac511,0x7c40300,0xe30000,0xe00acf00,0x4000000,0xe00000,0xe00ae300, +0x4000000,0xe00000,0xe00b0500,0x4000000,0xe00000,0xe00b1314,0x7c00100,0xe30000,0xe00b1316,0x7c00100,0xe30c00,0xe00b2a00,0x4000000,0xe00000,0xe00b2a00,0x4000000, +0x2800000,0xe00b3816,0x7c00500,0x230c00,0xe0808328,0x2802400,0x962460}; -static const int32_t countPropsVectors=6999; +static const int32_t countPropsVectors=7095; static const int32_t propsVectorsColumns=3; -static const uint16_t scriptExtensions[262]={ -0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,2,0x22,0x25,0xb6, -0x80c0,2,0x22,0x8025,2,0x11,2,0x22,0x54,0x79,0x7b,0xa7,0xb6,0x80b7,2,0x8022, -2,0x25,0x80c0,2,0x20,2,0x80b6,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23, -0x24,0x89,0x97,0x809e,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x809e, -4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91,0x99,0x9e,0xa0, -0xaf,0xb2,0xb3,0x80bb,4,0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a, -0x89,0x91,0x99,0x9e,0xa0,0xaf,0xb2,0xb3,0x80bb,0xa,0x78,0xa0,0x80b2,0xa,0x69,4, -0x3a,0x8076,4,0x6f,0x10,0x80a4,0x10,0x74,0xf,0x809d,0xf,0x78,0x23,0x8089,0x23,0x7c, -0x15,0x80bb,0x15,0x80,0x1c,0x34,0x8076,0x1c,0x84,0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b, -0x805a,0x800a,4,0xa,0x15,0x8089,0xa,0x8089,4,0x800a,0xa,0x8097,0xa,0x15,0x1a,0x1f, -0x23,0x8024,0xa,0x80bb,4,0xa,0x15,0x1f,0x24,0x89,0x9e,0x80bb,0x8004,8,0x8022,0x19, -0x801b,0xa,0x19,0x8089,5,0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x8011, -5,0x8011,0x11,0x14,0x8016,0x11,0x8019,0xa,0xf,0x10,0x78,0x91,0x99,0x9d,0x9e,0xa0, -0xa3,0x80b2,0xa,0xf,0x10,0x15,0x1a,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0xb2,0x80bb, -0xa,0xf,0x10,0x15,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0xb2,0x80bb,0xa,0x98,0xa, -0x8023,0xa,0xef,0x19,0x1c,0x804f,0x37,0x804e,2,0x8025,2,0xf8,0x2f,0x31,0x8053,0x2f, -0x8031,2,0x8007,0x89,0x7c,0x8087}; +static const uint16_t scriptExtensions[282]={ +0x800e,0x8019,8,0x8059,8,2,8,0x8038,8,6,8,0x8019,2,0x22,0x25,0x57, +0xb6,0x80c0,2,0x22,0x8025,2,0x12,2,0x22,0x25,0x57,0xa7,0xb6,0x80c0,2,0x22, +0x54,0x79,0x7b,0xa7,0xb6,0xb7,0x80c2,2,0x8022,2,0x25,0x80c0,2,0x29,2,0x80b6, +2,0x2e,4,0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x97,0x809e,4, +0xa,0xf,0x10,0x15,0x19,0x1a,0x1f,0x23,0x24,0x89,0x809e,4,0xa,0xf,0x10,0x15, +0x1a,0x1f,0x21,0x23,0x24,0x3a,0x89,0x91,0x99,0x9e,0xa0,0xaf,0xb2,0xb3,0x80bb,4, +0xa,0xf,0x10,0x15,0x1a,0x1f,0x21,0x23,0x24,0x30,0x3a,0x89,0x91,0x99,0x9e,0xa0, +0xaf,0xb2,0xb3,0x80bb,0xa,0x78,0xa0,0x80b2,0xa,0x74,4,0x3a,0x8076,4,0x7a,0x10, +0x80a4,0x10,0x7f,0xf,0x809d,0xf,0x83,0x23,0x8089,0x23,0x87,0x15,0x80bb,0x15,0x8b,0x1c, +0x34,0x8076,0x1c,0x8f,0xc,0x8019,0x2a,0x2b,0x2c,0x802d,0x1b,0x805a,0x800a,4,0xa,0x15, +0x8089,0xa,0x8089,4,0x800a,0xa,0x8097,0xa,0x15,0x1a,0x1f,0x23,0x8024,0xa,0x80bb,4, +0xa,0x15,0x1f,0x24,0x89,0x9e,0x80bb,0x8004,8,0x8022,0x19,0x801b,0xa,0x19,0x8089,5, +0x11,0x12,0x14,0x16,0x8029,5,0x11,0x12,0x14,0x8016,0x8011,5,0x8011,0x11,0x14,0x8016, +0x11,0x8019,0xa,0xf,0x10,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0x80b2,0xa,0xf,0x10, +0x15,0x1a,0x78,0x91,0x99,0x9d,0x9e,0xa0,0xa3,0xb2,0x80bb,0xa,0xf,0x10,0x15,0x78, +0x91,0x99,0x9d,0x9e,0xa0,0xa3,0xb2,0x80bb,0xa,0xa3,0xa,0x8023,0xa,0xfa,0x19,0x1c, +0x804f,0x37,0x804e,2,0x8057,2,0x8025,2,0x105,0x2f,0x31,0x8053,0x2f,0x31,0x80c1,0x2f, +0x8031,2,0x8007,0x79,0x80c2,0x79,0x113,0x89,0x87,0x8087}; -static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2b96,0x2b96,0x2b96,0x2b96,0x6898,3,0x83ef,0x8472,0x8472,0x8472,0xb34c0,0x2a75a31,0,0,0,0}; +static const int32_t indexes[UPROPS_INDEX_COUNT]={0x2c64,0x2c64,0x2c64,0x2c64,0x6b06,3,0x86bd,0x874a,0x874a,0x874a,0xb40c5,0x2a75a31,0,0,0,0}; #endif // INCLUDED_FROM_UCHAR_C diff --git a/deps/icu-small/source/common/ucharstriebuilder.cpp b/deps/icu-small/source/common/ucharstriebuilder.cpp index 049997a27545ed..3871df6c274a4b 100644 --- a/deps/icu-small/source/common/ucharstriebuilder.cpp +++ b/deps/icu-small/source/common/ucharstriebuilder.cpp @@ -290,13 +290,13 @@ UCharsTrieBuilder::UCTLinearMatchNode::UCTLinearMatchNode(const UChar *units, in hash=hash*37u+ustr_hashUCharsN(units, len); } -UBool +bool UCharsTrieBuilder::UCTLinearMatchNode::operator==(const Node &other) const { if(this==&other) { - return TRUE; + return true; } if(!LinearMatchNode::operator==(other)) { - return FALSE; + return false; } const UCTLinearMatchNode &o=(const UCTLinearMatchNode &)other; return 0==u_memcmp(s, o.s, length); diff --git a/deps/icu-small/source/common/uchriter.cpp b/deps/icu-small/source/common/uchriter.cpp index bedbabc74c2351..2967375a6a355a 100644 --- a/deps/icu-small/source/common/uchriter.cpp +++ b/deps/icu-small/source/common/uchriter.cpp @@ -66,13 +66,13 @@ UCharCharacterIterator::operator=(const UCharCharacterIterator& that) { UCharCharacterIterator::~UCharCharacterIterator() { } -UBool +bool UCharCharacterIterator::operator==(const ForwardCharacterIterator& that) const { if (this == &that) { - return TRUE; + return true; } if (typeid(*this) != typeid(that)) { - return FALSE; + return false; } UCharCharacterIterator& realThat = (UCharCharacterIterator&)that; diff --git a/deps/icu-small/source/common/ucln_cmn.cpp b/deps/icu-small/source/common/ucln_cmn.cpp index ab9d3adbd25958..f3e07c6b89183f 100644 --- a/deps/icu-small/source/common/ucln_cmn.cpp +++ b/deps/icu-small/source/common/ucln_cmn.cpp @@ -52,7 +52,7 @@ u_cleanup(void) /*#endif*/ } -U_CAPI void U_EXPORT2 ucln_cleanupOne(ECleanupLibraryType libType) +U_CAPI void U_EXPORT2 ucln_cleanupOne(ECleanupLibraryType libType) { if (gLibCleanupFunctions[libType]) { diff --git a/deps/icu-small/source/common/ucln_cmn.h b/deps/icu-small/source/common/ucln_cmn.h index 44b73e94da791f..dd366417f62196 100644 --- a/deps/icu-small/source/common/ucln_cmn.h +++ b/deps/icu-small/source/common/ucln_cmn.h @@ -51,6 +51,7 @@ typedef enum ECleanupCommonType { UCLN_COMMON_USET, UCLN_COMMON_UNAMES, UCLN_COMMON_UPROPS, + UCLN_COMMON_EMOJIPROPS, UCLN_COMMON_UCNV, UCLN_COMMON_UCNV_IO, UCLN_COMMON_UDATA, diff --git a/deps/icu-small/source/common/ucln_imp.h b/deps/icu-small/source/common/ucln_imp.h index b08c6e8368b1a3..63a54c86f62414 100644 --- a/deps/icu-small/source/common/ucln_imp.h +++ b/deps/icu-small/source/common/ucln_imp.h @@ -113,13 +113,13 @@ U_CAPI void U_EXPORT2 UCLN_FINI () /* Windows: DllMain */ #elif U_PLATFORM_HAS_WIN32_API -/* +/* * ICU's own DllMain. */ /* these are from putil.c */ /* READ READ READ READ! Are you getting compilation errors from windows.h? - Any source file which includes this (ucln_imp.h) header MUST + Any source file which includes this (ucln_imp.h) header MUST be defined with language extensions ON. */ #ifndef WIN32_LEAN_AND_MEAN # define WIN32_LEAN_AND_MEAN @@ -168,7 +168,7 @@ BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved) /* GCC - use __attribute((destructor)) */ static void ucln_destructor() __attribute__((destructor)) ; -static void ucln_destructor() +static void ucln_destructor() { UCLN_CLEAN_ME_UP; } diff --git a/deps/icu-small/source/common/ucmndata.cpp b/deps/icu-small/source/common/ucmndata.cpp index ba2310bb7ab8a5..4215d66257d1c7 100644 --- a/deps/icu-small/source/common/ucmndata.cpp +++ b/deps/icu-small/source/common/ucmndata.cpp @@ -18,7 +18,7 @@ * contents for locating the individual items by name. * * Two formats for the table of contents are supported, which is - * why there is an abstract inteface involved. + * why there is an abstract interface involved. * */ diff --git a/deps/icu-small/source/common/ucmndata.h b/deps/icu-small/source/common/ucmndata.h index 16844414327259..486b4fd7b5f444 100644 --- a/deps/icu-small/source/common/ucmndata.h +++ b/deps/icu-small/source/common/ucmndata.h @@ -18,10 +18,10 @@ * contents for locating the individual items by name. * * Two formats for the table of contents are supported, which is - * why there is an abstract inteface involved. + * why there is an abstract interface involved. * * These functions are part of the ICU internal implementation, and - * are not inteded to be used directly by applications. + * are not intended to be used directly by applications. */ #ifndef __UCMNDATA_H__ @@ -98,12 +98,12 @@ U_CDECL_END typedef struct { LookupFn Lookup; - NumEntriesFn NumEntries; + NumEntriesFn NumEntries; } commonDataFuncs; /* - * Functions to check whether a UDataMemory refers to memory containing + * Functions to check whether a UDataMemory refers to memory containing * a recognizable header and table of contents a Common Data Format * * If a valid header and TOC are found, diff --git a/deps/icu-small/source/common/ucnv.cpp b/deps/icu-small/source/common/ucnv.cpp index eb48dd473523cc..5dcf35e043850e 100644 --- a/deps/icu-small/source/common/ucnv.cpp +++ b/deps/icu-small/source/common/ucnv.cpp @@ -83,7 +83,7 @@ ucnv_open (const char *name, return r; } -U_CAPI UConverter* U_EXPORT2 +U_CAPI UConverter* U_EXPORT2 ucnv_openPackage (const char *packageName, const char *converterName, UErrorCode * err) { return ucnv_createConverterFromPackage(packageName, converterName, err); @@ -150,7 +150,7 @@ ucnv_openCCSID (int32_t codepage, return ucnv_createConverter(NULL, myName, err); } -/* Creating a temporary stack-based object that can be used in one thread, +/* Creating a temporary stack-based object that can be used in one thread, and created from a converter that is shared across threads. */ @@ -448,7 +448,7 @@ ucnv_setSubstChars (UConverter * converter, { if (U_FAILURE (*err)) return; - + /*Makes sure that the subChar is within the codepages char length boundaries */ if ((len > converter->sharedData->staticData->maxBytesPerChar) || (len < converter->sharedData->staticData->minBytesPerChar)) @@ -456,7 +456,7 @@ ucnv_setSubstChars (UConverter * converter, *err = U_ILLEGAL_ARGUMENT_ERROR; return; } - + uprv_memcpy (converter->subChars, mySubChar, len); /*copies the subchars */ converter->subCharLen = len; /*sets the new len */ @@ -466,7 +466,7 @@ ucnv_setSubstChars (UConverter * converter, * we set subChar1 to 0. */ converter->subChar1 = 0; - + return; } @@ -657,7 +657,7 @@ ucnv_getMinCharSize (const UConverter * converter) U_CAPI const char* U_EXPORT2 ucnv_getName (const UConverter * converter, UErrorCode * err) - + { if (U_FAILURE (*err)) return NULL; @@ -1226,7 +1226,7 @@ ucnv_fromUnicode(UConverter *cnv, *err=U_ILLEGAL_ARGUMENT_ERROR; return; } - + /* output the target overflow buffer */ if( cnv->charErrorBufferLength>0 && ucnv_outputOverflowFromUnicode(cnv, target, targetLimit, &offsets, err) @@ -1672,7 +1672,7 @@ ucnv_toUnicode(UConverter *cnv, *err=U_ILLEGAL_ARGUMENT_ERROR; return; } - + /* output the target overflow buffer */ if( cnv->UCharErrorBufferLength>0 && ucnv_outputOverflowToUnicode(cnv, target, targetLimit, &offsets, err) @@ -2083,7 +2083,7 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, *pErrorCode=U_ILLEGAL_ARGUMENT_ERROR; return; } - + if(pivotStart==NULL) { if(!flush) { /* streaming conversion requires an explicit pivot buffer */ @@ -2332,7 +2332,7 @@ ucnv_convertEx(UConverter *targetCnv, UConverter *sourceCnv, break; } } - + /* * toUnicode(source -> pivot); * @@ -2609,7 +2609,7 @@ ucnv_getType(const UConverter* converter) } U_CAPI void U_EXPORT2 -ucnv_getStarters(const UConverter* converter, +ucnv_getStarters(const UConverter* converter, UBool starters[256], UErrorCode* err) { @@ -2652,8 +2652,8 @@ static const UAmbiguousConverter *ucnv_getAmbiguous(const UConverter *cnv) } U_CAPI void U_EXPORT2 -ucnv_fixFileSeparator(const UConverter *cnv, - UChar* source, +ucnv_fixFileSeparator(const UConverter *cnv, + UChar* source, int32_t sourceLength) { const UAmbiguousConverter *a; int32_t i; @@ -2751,7 +2751,7 @@ ucnv_detectUnicodeSignature( const char* source, int32_t dummy; /* initial 0xa5 bytes: make sure that if we read fromUChar32 > 0){ return 1; } - return 0; + return 0; } diff --git a/deps/icu-small/source/common/ucnv2022.cpp b/deps/icu-small/source/common/ucnv2022.cpp index c274ebe41982f2..aa1e169c99c00b 100644 --- a/deps/icu-small/source/common/ucnv2022.cpp +++ b/deps/icu-small/source/common/ucnv2022.cpp @@ -527,7 +527,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ ucnv_loadSharedData("ksc_5601", &stackPieces, &stackArgs, errorCode); } - /* set the function pointers to appropriate funtions */ + /* set the function pointers to appropriate functions */ cnv->sharedData=(UConverterSharedData*)(&_ISO2022JPData); uprv_strcpy(myConverterData->locale,"ja"); @@ -578,7 +578,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ setInitialStateToUnicodeKR(cnv, myConverterData); setInitialStateFromUnicodeKR(cnv, myConverterData); - /* set the function pointers to appropriate funtions */ + /* set the function pointers to appropriate functions */ cnv->sharedData=(UConverterSharedData*)&_ISO2022KRData; uprv_strcpy(myConverterData->locale,"ko"); } @@ -605,7 +605,7 @@ _ISO2022Open(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode){ ucnv_loadSharedData("cns-11643-1992", &stackPieces, &stackArgs, errorCode); - /* set the function pointers to appropriate funtions */ + /* set the function pointers to appropriate functions */ cnv->sharedData=(UConverterSharedData*)&_ISO2022CNData; uprv_strcpy(myConverterData->locale,"cn"); @@ -1232,7 +1232,7 @@ _2022FromGR94DBCS(uint32_t value) { /* * This method does the reverse of _2022FromGR94DBCS(). Given the 2022 code point, it returns the * 2 byte value that is in the range A1..FE for each byte. Otherwise it returns the 2022 code point - * unchanged. + * unchanged. */ static inline uint32_t _2022ToGR94DBCS(uint32_t value) { @@ -2147,7 +2147,7 @@ UConverter_toUnicode_ISO_2022_JP_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, changeState_2022(args->converter,&(mySource), mySourceLimit, ISO_2022_JP,err); - /* If in ISO-2022-JP only and we successully completed an escape sequence, but previous segment was empty, create an error */ + /* If in ISO-2022-JP only and we successfully completed an escape sequence, but previous segment was empty, create an error */ if(myData->version==0 && myData->key==0 && U_SUCCESS(*err) && myData->isEmptySegment) { *err = U_ILLEGAL_ESCAPE_SEQUENCE; args->converter->toUCallbackReason = UCNV_IRREGULAR; @@ -2849,21 +2849,21 @@ UConverter_toUnicode_ISO_2022_KR_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, * SS2 is a Chinese character as defined in CNS * 11643-plane-2, until another SS2designation * appears -* (Meaning N must preceed every 2 byte +* (Meaning N must precede every 2 byte * sequence.) * * ESC $ + I Indicates the immediate two bytes following SS3 * is a Chinese character as defined in CNS * 11643-plane-3, until another SS3designation * appears -* (Meaning O must preceed every 2 byte +* (Meaning O must precede every 2 byte * sequence.) * * ESC $ + J Indicates the immediate two bytes following SS3 * is a Chinese character as defined in CNS * 11643-plane-4, until another SS3designation * appears -* (In English: O must preceed every 2 byte +* (In English: O must precede every 2 byte * sequence.) * * ESC $ + K Indicates the immediate two bytes following SS3 diff --git a/deps/icu-small/source/common/ucnv_cnv.h b/deps/icu-small/source/common/ucnv_cnv.h index 345a1998e44883..e89eebe54ed8c4 100644 --- a/deps/icu-small/source/common/ucnv_cnv.h +++ b/deps/icu-small/source/common/ucnv_cnv.h @@ -154,7 +154,7 @@ typedef void (*UConverterGetStarters)(const UConverter* converter, UErrorCode *pErrorCode); /* If this function pointer is null or if the function returns null - * the name field in static data struct should be returned by + * the name field in static data struct should be returned by * ucnv_getName() API function */ typedef const char * (*UConverterGetName) (const UConverter *cnv); @@ -164,7 +164,7 @@ typedef const char * (*UConverterGetName) (const UConverter *cnv); * If this function is not set, then ucnv_cbFromUWriteSub() writes * the substitution character from UConverter. * For stateful converters, it is typically necessary to handle this - * specificially for the converter in order to properly maintain the state. + * specifically for the converter in order to properly maintain the state. */ typedef void (*UConverterWriteSub) (UConverterFromUnicodeArgs *pArgs, int32_t offsetIndex, UErrorCode *pErrorCode); @@ -177,9 +177,9 @@ typedef void (*UConverterWriteSub) (UConverterFromUnicodeArgs *pArgs, int32_t of * the initial state of the converter. It is not expected to increment the * reference counts of the standard data types such as the shared data. */ -typedef UConverter * (*UConverterSafeClone) (const UConverter *cnv, +typedef UConverter * (*UConverterSafeClone) (const UConverter *cnv, void *stackBuffer, - int32_t *pBufferSize, + int32_t *pBufferSize, UErrorCode *status); /** @@ -258,7 +258,7 @@ struct UConverterImpl { extern const UConverterSharedData _MBCSData, _Latin1Data, _UTF8Data, _UTF16BEData, _UTF16LEData, _UTF32BEData, _UTF32LEData, - _ISO2022Data, + _ISO2022Data, _LMBCSData1,_LMBCSData2, _LMBCSData3, _LMBCSData4, _LMBCSData5, _LMBCSData6, _LMBCSData8,_LMBCSData11,_LMBCSData16,_LMBCSData17,_LMBCSData18,_LMBCSData19, _HZData,_ISCIIData, _SCSUData, _ASCIIData, diff --git a/deps/icu-small/source/common/ucnv_err.cpp b/deps/icu-small/source/common/ucnv_err.cpp index 7d9ac46506f8fe..4210673ef9316f 100644 --- a/deps/icu-small/source/common/ucnv_err.cpp +++ b/deps/icu-small/source/common/ucnv_err.cpp @@ -61,7 +61,7 @@ * When an ignorable code point is found and is unmappable, the default callbacks * will ignore them. * For a list of the default ignorable code points, use this link: - * https://unicode.org/cldr/utility/list-unicodeset.jsp?a=%5B%3ADI%3A%5D&abb=on&g=&i= + * https://util.unicode.org/UnicodeJsps/list-unicodeset.jsp?a=%5B%3ADI%3A%5D&abb=on&g=&i= * * This list should be sync with the one in CharsetCallback.java */ @@ -72,7 +72,7 @@ (c == 0x115F) || \ (c == 0x1160) || \ (0x17B4 <= c && c <= 0x17B5) || \ - (0x180B <= c && c <= 0x180E) || \ + (0x180B <= c && c <= 0x180F) || \ (0x200B <= c && c <= 0x200F) || \ (0x202A <= c && c <= 0x202E) || \ (0x2060 <= c && c <= 0x206F) || \ @@ -129,7 +129,7 @@ UCNV_TO_U_CALLBACK_STOP ( } U_CAPI void U_EXPORT2 -UCNV_FROM_U_CALLBACK_SKIP ( +UCNV_FROM_U_CALLBACK_SKIP ( const void *context, UConverterFromUnicodeArgs *fromUArgs, const UChar* codeUnits, @@ -217,7 +217,7 @@ UCNV_FROM_U_CALLBACK_ESCAPE ( UConverterFromUCallback ignoredCallback = NULL; const void *ignoredContext; - + if (reason > UCNV_IRREGULAR) { return; @@ -237,14 +237,14 @@ UCNV_FROM_U_CALLBACK_ESCAPE ( &original, &originalContext, &err2); - + if (U_FAILURE (err2)) { *err = err2; return; - } + } if(context==NULL) - { + { while (i < length) { valueString[valueStringLength++] = (UChar) UNICODE_PERCENT_SIGN_CODEPOINT; /* adding % */ @@ -334,7 +334,7 @@ UCNV_FROM_U_CALLBACK_ESCAPE ( valueStringLength += uprv_itou (valueString + valueStringLength, VALUE_STRING_LENGTH - valueStringLength, (uint16_t)codeUnits[i++], 16, 4); } } - } + } myValueSource = valueString; /* reset the error */ @@ -427,7 +427,7 @@ UCNV_TO_U_CALLBACK_ESCAPE ( } if(context==NULL) - { + { while (i < length) { uniValueString[valueStringLength++] = (UChar) UNICODE_PERCENT_SIGN_CODEPOINT; /* adding % */ diff --git a/deps/icu-small/source/common/ucnv_ext.h b/deps/icu-small/source/common/ucnv_ext.h index 7b753ac217d8d5..dceea7ef12617a 100644 --- a/deps/icu-small/source/common/ucnv_ext.h +++ b/deps/icu-small/source/common/ucnv_ext.h @@ -248,7 +248,7 @@ * the result bytes in fromUBytes[]; (0 indexes fromUBytes[0]) * } * } - * + * * The first pair in a section contains the number of following pairs in the * UChar position (16 bits, number=1..0xffff). * The value of the initial pair is used when the current UChar is not found diff --git a/deps/icu-small/source/common/ucnv_imp.h b/deps/icu-small/source/common/ucnv_imp.h index c5e6aeb47e48d8..cb939911e47e4b 100644 --- a/deps/icu-small/source/common/ucnv_imp.h +++ b/deps/icu-small/source/common/ucnv_imp.h @@ -9,7 +9,7 @@ * * ucnv_imp.h: * Contains all internal and external data structure definitions -* Created & Maitained by Bertrand A. Damiba +* Created & Maintained by Bertrand A. Damiba * * * diff --git a/deps/icu-small/source/common/ucnv_io.cpp b/deps/icu-small/source/common/ucnv_io.cpp index d9e91314ed5347..7a95a3f1e61dd7 100644 --- a/deps/icu-small/source/common/ucnv_io.cpp +++ b/deps/icu-small/source/common/ucnv_io.cpp @@ -10,7 +10,7 @@ * * * ucnv_io.cpp: -* initializes global variables and defines functions pertaining to converter +* initializes global variables and defines functions pertaining to converter * name resolution aspect of the conversion code. * * new implementation: diff --git a/deps/icu-small/source/common/ucnv_lmb.cpp b/deps/icu-small/source/common/ucnv_lmb.cpp index bead464afd4a14..6969727927e60b 100644 --- a/deps/icu-small/source/common/ucnv_lmb.cpp +++ b/deps/icu-small/source/common/ucnv_lmb.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2000-2016, International Business Machines * Corporation and others. All Rights Reserved. @@ -15,9 +15,9 @@ * extensively hacked up by: Jim Snyder-Grant * * Modification History: -* +* * Date Name Description -* +* * 06/20/2000 helena OS/400 port changes; mostly typecast. * 06/27/2000 Jim Snyder-Grant Deal with partial characters and small buffers. * Add comments to document LMBCS format and implementation @@ -48,16 +48,16 @@ (Lotus Multi-Byte Character Set) - LMBCS was invented in the late 1980's and is primarily used in Lotus Notes - databases and in Lotus 1-2-3 files. Programmers who work with the APIs + LMBCS was invented in the late 1980's and is primarily used in Lotus Notes + databases and in Lotus 1-2-3 files. Programmers who work with the APIs into these products will sometimes need to deal with strings in this format. - The code in this file provides an implementation for an ICU converter of - LMBCS to and from Unicode. + The code in this file provides an implementation for an ICU converter of + LMBCS to and from Unicode. - Since the LMBCS character set is only sparsely documented in existing - printed or online material, we have added extensive annotation to this - file to serve as a guide to understanding LMBCS. + Since the LMBCS character set is only sparsely documented in existing + printed or online material, we have added extensive annotation to this + file to serve as a guide to understanding LMBCS. LMBCS was originally designed with these four sometimes-competing design goals: @@ -69,11 +69,11 @@ All of the national character sets LMBCS was trying to encode are 'ANSI' - based, in that the bytes from 0x20 - 0x7F are almost exactly the - same common Latin unaccented characters and symbols in all character sets. + based, in that the bytes from 0x20 - 0x7F are almost exactly the + same common Latin unaccented characters and symbols in all character sets. - So, in order to help meet the speed & memory design goals, the common ANSI - bytes from 0x20-0x7F are represented by the same single-byte values in LMBCS. + So, in order to help meet the speed & memory design goals, the common ANSI + bytes from 0x20-0x7F are represented by the same single-byte values in LMBCS. The general LMBCS code unit is from 1-3 bytes. We can describe the 3 bytes as follows: @@ -86,21 +86,21 @@ #define ULMBCS_CHARSIZE_MAX 3 /* The single-byte values from 0x20 to 0x7F are examples of single D1 bytes. - We often have to figure out if byte values are below or above this, so we - use the ANSI nomenclature 'C0' and 'C1' to refer to the range of control + We often have to figure out if byte values are below or above this, so we + use the ANSI nomenclature 'C0' and 'C1' to refer to the range of control characters just above & below the common lower-ANSI range */ -#define ULMBCS_C0END 0x1F -#define ULMBCS_C1START 0x80 +#define ULMBCS_C0END 0x1F +#define ULMBCS_C1START 0x80 /* - Since LMBCS is always dealing in byte units. we create a local type here for + Since LMBCS is always dealing in byte units. we create a local type here for dealing with these units of LMBCS code units: -*/ +*/ typedef uint8_t ulmbcs_byte_t; -/* - Most of the values less than 0x20 are reserved in LMBCS to announce - which national character standard is being used for the 'D' bytes. +/* + Most of the values less than 0x20 are reserved in LMBCS to announce + which national character standard is being used for the 'D' bytes. In the comments we show the common name and the IBM character-set ID for these character-set announcers: */ @@ -119,105 +119,105 @@ typedef uint8_t ulmbcs_byte_t; #define ULMBCS_GRP_CN 0x13 /* Chinese TC :ibm-1386 */ /* - So, the beginning of understanding LMBCS is that IF the first byte of a LMBCS - character is one of those 12 values, you can interpret the remaining bytes of - that character as coming from one of those character sets. Since the lower - ANSI bytes already are represented in single bytes, using one of the character - set announcers is used to announce a character that starts with a byte of + So, the beginning of understanding LMBCS is that IF the first byte of a LMBCS + character is one of those 12 values, you can interpret the remaining bytes of + that character as coming from one of those character sets. Since the lower + ANSI bytes already are represented in single bytes, using one of the character + set announcers is used to announce a character that starts with a byte of 0x80 or greater. - The character sets are arranged so that the single byte sets all appear - before the multi-byte character sets. When we need to tell whether a + The character sets are arranged so that the single byte sets all appear + before the multi-byte character sets. When we need to tell whether a group byte is for a single byte char set or not we use this define: */ -#define ULMBCS_DOUBLEOPTGROUP_START 0x10 +#define ULMBCS_DOUBLEOPTGROUP_START 0x10 -/* -However, to fully understand LMBCS, you must also understand a series of -exceptions & optimizations made in service of the design goals. +/* +However, to fully understand LMBCS, you must also understand a series of +exceptions & optimizations made in service of the design goals. First, those of you who are character set mavens may have noticed that -the 'double-byte' character sets are actually multi-byte character sets +the 'double-byte' character sets are actually multi-byte character sets that can have 1 or two bytes, even in the upper-ascii range. To force -each group byte to introduce a fixed-width encoding (to make it faster to -count characters), we use a convention of doubling up on the group byte +each group byte to introduce a fixed-width encoding (to make it faster to +count characters), we use a convention of doubling up on the group byte to introduce any single-byte character > 0x80 in an otherwise double-byte -character set. So, for example, the LMBCS sequence x10 x10 xAE is the +character set. So, for example, the LMBCS sequence x10 x10 xAE is the same as '0xAE' in the Japanese code page 943. -Next, you will notice that the list of group bytes has some gaps. +Next, you will notice that the list of group bytes has some gaps. These are used in various ways. -We reserve a few special single byte values for common control -characters. These are in the same place as their ANSI eqivalents for speed. +We reserve a few special single byte values for common control +characters. These are in the same place as their ANSI equivalents for speed. */ - + #define ULMBCS_HT 0x09 /* Fixed control char - Horizontal Tab */ #define ULMBCS_LF 0x0A /* Fixed control char - Line Feed */ #define ULMBCS_CR 0x0D /* Fixed control char - Carriage Return */ -/* Then, 1-2-3 reserved a special single-byte character to put at the +/* Then, 1-2-3 reserved a special single-byte character to put at the beginning of internal 'system' range names: */ -#define ULMBCS_123SYSTEMRANGE 0x19 +#define ULMBCS_123SYSTEMRANGE 0x19 -/* Then we needed a place to put all the other ansi control characters -that must be moved to different values because LMBCS reserves those -values for other purposes. To represent the control characters, we start -with a first byte of 0xF & add the control character value as the +/* Then we needed a place to put all the other ansi control characters +that must be moved to different values because LMBCS reserves those +values for other purposes. To represent the control characters, we start +with a first byte of 0xF & add the control character value as the second byte */ -#define ULMBCS_GRP_CTRL 0x0F +#define ULMBCS_GRP_CTRL 0x0F -/* For the C0 controls (less than 0x20), we add 0x20 to preserve the -useful doctrine that any byte less than 0x20 in a LMBCS char must be +/* For the C0 controls (less than 0x20), we add 0x20 to preserve the +useful doctrine that any byte less than 0x20 in a LMBCS char must be the first byte of a character:*/ -#define ULMBCS_CTRLOFFSET 0x20 +#define ULMBCS_CTRLOFFSET 0x20 -/* -Where to put the characters that aren't part of any of the 12 national -character sets? The first thing that was done, in the earlier years of +/* +Where to put the characters that aren't part of any of the 12 national +character sets? The first thing that was done, in the earlier years of LMBCS, was to use up the spaces of the form - [G] D1, - + [G] D1, + where 'G' was one of the single-byte character groups, and - D1 was less than 0x80. These sequences are gathered together - into a Lotus-invented doublebyte character set to represent a - lot of stray values. Internally, in this implementation, we track this + D1 was less than 0x80. These sequences are gathered together + into a Lotus-invented doublebyte character set to represent a + lot of stray values. Internally, in this implementation, we track this as group '0', as a place to tuck this exceptions list.*/ -#define ULMBCS_GRP_EXCEPT 0x00 +#define ULMBCS_GRP_EXCEPT 0x00 /* - Finally, as the durability and usefulness of UNICODE became clear, - LOTUS added a new group 0x14 to hold Unicode values not otherwise + Finally, as the durability and usefulness of UNICODE became clear, + LOTUS added a new group 0x14 to hold Unicode values not otherwise represented in LMBCS: */ -#define ULMBCS_GRP_UNICODE 0x14 -/* The two bytes appearing after a 0x14 are intrepreted as UFT-16 BE -(Big-Endian) characters. The exception comes when the UTF16 +#define ULMBCS_GRP_UNICODE 0x14 +/* The two bytes appearing after a 0x14 are interpreted as UFT-16 BE +(Big-Endian) characters. The exception comes when the UTF16 representation would have a zero as the second byte. In that case, -'F6' is used in its place, and the bytes are swapped. (This prevents +'F6' is used in its place, and the bytes are swapped. (This prevents LMBCS from encoding any Unicode values of the form U+F6xx, but that's OK: 0xF6xx is in the middle of the Private Use Area.)*/ -#define ULMBCS_UNICOMPATZERO 0xF6 +#define ULMBCS_UNICOMPATZERO 0xF6 -/* It is also useful in our code to have a constant for the size of +/* It is also useful in our code to have a constant for the size of a LMBCS char that holds a literal Unicode value */ -#define ULMBCS_UNICODE_SIZE 3 +#define ULMBCS_UNICODE_SIZE 3 -/* -To squish the LMBCS representations down even further, and to make -translations even faster,sometimes the optimization group byte can be dropped -from a LMBCS character. This is decided on a process-by-process basis. The +/* +To squish the LMBCS representations down even further, and to make +translations even faster,sometimes the optimization group byte can be dropped +from a LMBCS character. This is decided on a process-by-process basis. The group byte that is dropped is called the 'optimization group'. For Notes, the optimzation group is always 0x1.*/ -#define ULMBCS_DEFAULTOPTGROUP 0x1 -/* For 1-2-3 files, the optimzation group is stored in the header of the 1-2-3 -file. +#define ULMBCS_DEFAULTOPTGROUP 0x1 +/* For 1-2-3 files, the optimzation group is stored in the header of the 1-2-3 +file. - In any case, when using ICU, you either pass in the -optimization group as part of the name of the converter (LMBCS-1, LMBCS-2, -etc.). Using plain 'LMBCS' as the name of the converter will give you + In any case, when using ICU, you either pass in the +optimization group as part of the name of the converter (LMBCS-1, LMBCS-2, +etc.). Using plain 'LMBCS' as the name of the converter will give you LMBCS-1. @@ -228,7 +228,7 @@ Because of the extensive use of other character sets, the LMBCS converter keeps a mapping between optimization groups and IBM character sets, so that ICU converters can be created and used as needed. */ -/* As you can see, even though any byte below 0x20 could be an optimization +/* As you can see, even though any byte below 0x20 could be an optimization byte, only those at 0x13 or below can map to an actual converter. To limit some loops and searches, we define a value for that last group converter:*/ @@ -257,12 +257,12 @@ static const char * const OptGroupByteToCPName[ULMBCS_GRP_LAST + 1] = { /* 0x0013 */ "windows-936" /* The rest are null, including the 0x0014 Unicode compatibility region - and 0x0019, the 1-2-3 system range control char */ + and 0x0019, the 1-2-3 system range control char */ }; -/* That's approximately all the data that's needed for translating - LMBCS to Unicode. +/* That's approximately all the data that's needed for translating + LMBCS to Unicode. However, to translate Unicode to LMBCS, we need some more support. @@ -270,18 +270,18 @@ However, to translate Unicode to LMBCS, we need some more support. That's because there are often more than one possible mappings from a Unicode code point back into LMBCS. The first thing we do is look up into a table to figure out if there are more than one possible mappings. This table, -arranged by Unicode values (including ranges) either lists which group +arranged by Unicode values (including ranges) either lists which group to use, or says that it could go into one or more of the SBCS sets, or -into one or more of the DBCS sets. (If the character exists in both DBCS & -SBCS, the table will place it in the SBCS sets, to make the LMBCS code point +into one or more of the DBCS sets. (If the character exists in both DBCS & +SBCS, the table will place it in the SBCS sets, to make the LMBCS code point length as small as possible. Here's the two special markers we use to indicate ambiguous mappings: */ -#define ULMBCS_AMBIGUOUS_SBCS 0x80 /* could fit in more than one - LMBCS sbcs native encoding +#define ULMBCS_AMBIGUOUS_SBCS 0x80 /* could fit in more than one + LMBCS sbcs native encoding (example: most accented latin) */ -#define ULMBCS_AMBIGUOUS_MBCS 0x81 /* could fit in more than one - LMBCS mbcs native encoding +#define ULMBCS_AMBIGUOUS_MBCS 0x81 /* could fit in more than one + LMBCS mbcs native encoding (example: Unihan) */ #define ULMBCS_AMBIGUOUS_ALL 0x82 /* And here's a simple way to see if a group falls in an appropriate range */ @@ -296,7 +296,7 @@ ambiguous mappings: */ /* The table & some code to use it: */ -static const struct _UniLMBCSGrpMap +static const struct _UniLMBCSGrpMap { const UChar uniStartRange; const UChar uniEndRange; @@ -443,29 +443,29 @@ static const struct _UniLMBCSGrpMap {0xFF01, 0xFFEE, ULMBCS_AMBIGUOUS_MBCS}, {0xFFFF, 0xFFFF, ULMBCS_GRP_UNICODE} }; - -static ulmbcs_byte_t + +static ulmbcs_byte_t FindLMBCSUniRange(UChar uniChar) { const struct _UniLMBCSGrpMap * pTable = UniLMBCSGrpMap; - while (uniChar > pTable->uniEndRange) + while (uniChar > pTable->uniEndRange) { pTable++; } - if (uniChar >= pTable->uniStartRange) + if (uniChar >= pTable->uniStartRange) { return pTable->GrpType; } return ULMBCS_GRP_UNICODE; } -/* -We also ask the creator of a converter to send in a preferred locale +/* +We also ask the creator of a converter to send in a preferred locale that we can use in resolving ambiguous mappings. They send the locale -in as a string, and we map it, if possible, to one of the -LMBCS groups. We use this table, and the associated code, to +in as a string, and we map it, if possible, to one of the +LMBCS groups. We use this table, and the associated code, to do the lookup: */ /************************************************** @@ -534,12 +534,12 @@ static const struct _LocaleLMBCSGrpMap }; -static ulmbcs_byte_t +static ulmbcs_byte_t FindLMBCSLocale(const char *LocaleID) { const struct _LocaleLMBCSGrpMap *pTable = LocaleLMBCSGrpMap; - if ((!LocaleID) || (!*LocaleID)) + if ((!LocaleID) || (!*LocaleID)) { return 0; } @@ -561,16 +561,16 @@ FindLMBCSLocale(const char *LocaleID) } -/* - Before we get to the main body of code, here's how we hook up to the rest - of ICU. ICU converters are required to define a structure that includes +/* + Before we get to the main body of code, here's how we hook up to the rest + of ICU. ICU converters are required to define a structure that includes some function pointers, and some common data, in the style of a C++ vtable. There is also room in there for converter-specific data. LMBCS uses that converter-specific data to keep track of the 12 subconverters - we use, the optimization group, and the group (if any) that matches the + we use, the optimization group, and the group (if any) that matches the locale. We have one structure instantiated for each of the 12 possible - optimization groups. To avoid typos & to avoid boring the reader, we - put the declarations of these structures and functions into macros. To see + optimization groups. To avoid typos & to avoid boring the reader, we + put the declarations of these structures and functions into macros. To see the definitions of these structures, see unicode\ucnv_bld.h */ @@ -617,7 +617,7 @@ const UConverterSharedData _LMBCSData##n= \ /* The only function we needed to duplicate 12 times was the 'open' function, which will do basically the same thing except set a different -optimization group. So, we put the common stuff into a worker function, +optimization group. So, we put the common stuff into a worker function, and set up another macro to stamp out the 12 open functions:*/ #define DEFINE_LMBCS_OPEN(n) \ static void U_CALLCONV \ @@ -627,7 +627,7 @@ static void U_CALLCONV \ /* Here's the open worker & the common close function */ -static void +static void _LMBCSOpenWorker(UConverter* _this, UConverterLoadArgs *pArgs, UErrorCode* err, @@ -645,7 +645,7 @@ _LMBCSOpenWorker(UConverter* _this, stackArgs.onlyTestIsLoadable = pArgs->onlyTestIsLoadable; - for (i=0; i <= ULMBCS_GRP_LAST && U_SUCCESS(*err); i++) + for (i=0; i <= ULMBCS_GRP_LAST && U_SUCCESS(*err); i++) { if(OptGroupByteToCPName[i] != NULL) { extraInfo->OptGrpConverter[i] = ucnv_loadSharedData(OptGroupByteToCPName[i], &stackPieces, &stackArgs, err); @@ -667,7 +667,7 @@ _LMBCSOpenWorker(UConverter* _this, U_CDECL_BEGIN static void U_CALLCONV -_LMBCSClose(UConverter * _this) +_LMBCSClose(UConverter * _this) { if (_this->extraInfo != NULL) { @@ -692,9 +692,9 @@ typedef struct LMBCSClone { } LMBCSClone; static UConverter * U_CALLCONV -_LMBCSSafeClone(const UConverter *cnv, - void *stackBuffer, - int32_t *pBufferSize, +_LMBCSSafeClone(const UConverter *cnv, + void *stackBuffer, + int32_t *pBufferSize, UErrorCode *status) { (void)status; LMBCSClone *newLMBCS; @@ -736,10 +736,10 @@ _LMBCSSafeClone(const UConverter *cnv, * This may need to be looked at again as Lotus uses _LMBCSGetUnicodeSet(). (091216) */ -/* +/* Here's the basic helper function that we use when converting from - Unicode to LMBCS, and we suspect that a Unicode character will fit into - one of the 12 groups. The return value is the number of bytes written + Unicode to LMBCS, and we suspect that a Unicode character will fit into + one of the 12 groups. The return value is the number of bytes written starting at pStartLMBCS (if any). */ @@ -751,7 +751,7 @@ LMBCSConversionWorker ( UChar * pUniChar, /* The input unicode character */ ulmbcs_byte_t * lastConverterIndex, /* output: track last successful group used */ UBool * groups_tried /* output: track any unsuccessful groups */ -) +) { ulmbcs_byte_t * pLMBCS = pStartLMBCS; UConverterSharedData * xcnv = extraInfo->OptGrpConverter[group]; @@ -780,7 +780,7 @@ LMBCSConversionWorker ( except with the exception group. */ U_ASSERT((firstByte <= ULMBCS_C0END) || (firstByte >= ULMBCS_C1START) || (group == ULMBCS_GRP_EXCEPT)); - + /* use converted data: first write 0, 1 or two group bytes */ if (group != ULMBCS_GRP_EXCEPT && extraInfo->OptGroup != group) { @@ -820,11 +820,11 @@ LMBCSConversionWorker ( } -/* This is a much simpler version of above, when we +/* This is a much simpler version of above, when we know we are writing LMBCS using the Unicode group */ -static size_t -LMBCSConvertUni(ulmbcs_byte_t * pLMBCS, UChar uniChar) +static size_t +LMBCSConvertUni(ulmbcs_byte_t * pLMBCS, UChar uniChar) { /* encode into LMBCS Unicode range */ uint8_t LowCh = (uint8_t)(uniChar & 0x00FF); @@ -859,26 +859,26 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, int32_t bytes_written; UBool groups_tried[ULMBCS_GRP_LAST+1]; UConverterDataLMBCS * extraInfo = (UConverterDataLMBCS *) args->converter->extraInfo; - int sourceIndex = 0; + int sourceIndex = 0; /* Basic strategy: attempt to fill in local LMBCS 1-char buffer.(LMBCS) - If that succeeds, see if it will all fit into the target & copy it over + If that succeeds, see if it will all fit into the target & copy it over if it does. We try conversions in the following order: 1. Single-byte ascii & special fixed control chars (&null) - 2. Look up group in table & try that (could be + 2. Look up group in table & try that (could be A) Unicode group B) control group, - C) national encoding, + C) national encoding, or ambiguous SBCS or MBCS group (on to step 4...) - + 3. If its ambiguous, try this order: A) The optimization group B) The locale group C) The last group that succeeded with this string. - D) every other group that's relevent (single or double) + D) every other group that's relevant (single or double) E) If its single-byte ambiguous, try the exceptions group 4. And as a grand fallback: Unicode @@ -912,8 +912,8 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, extraInfo->localeConverterIndex = ULMBCS_GRP_L1; } if (((uniChar > ULMBCS_C0END) && (uniChar < ULMBCS_C1START)) || - uniChar == 0 || uniChar == ULMBCS_HT || uniChar == ULMBCS_CR || - uniChar == ULMBCS_LF || uniChar == ULMBCS_123SYSTEMRANGE + uniChar == 0 || uniChar == ULMBCS_HT || uniChar == ULMBCS_CR || + uniChar == ULMBCS_LF || uniChar == ULMBCS_123SYSTEMRANGE ) { *pLMBCS++ = (ulmbcs_byte_t ) uniChar; @@ -921,15 +921,15 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, } - if (!bytes_written) + if (!bytes_written) { /* Check by UNICODE range (Strategy 2) */ ulmbcs_byte_t group = FindLMBCSUniRange(uniChar); - + if (group == ULMBCS_GRP_UNICODE) /* (Strategy 2A) */ { pLMBCS += LMBCSConvertUni(pLMBCS,uniChar); - + bytes_written = (int32_t)(pLMBCS - LMBCS); } else if (group == ULMBCS_GRP_CTRL) /* (Strategy 2B) */ @@ -951,7 +951,7 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, { /* a specific converter has been identified - use it */ bytes_written = (int32_t)LMBCSConversionWorker ( - extraInfo, group, pLMBCS, &uniChar, + extraInfo, group, pLMBCS, &uniChar, &lastConverterIndex, groups_tried); } if (!bytes_written) /* the ambiguous group cases (Strategy 3) */ @@ -1004,15 +1004,15 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, } if (!bytes_written) { - /* just check every possible matching converter (Strategy 3D) */ + /* just check every possible matching converter (Strategy 3D) */ ulmbcs_byte_t grp_start; - ulmbcs_byte_t grp_end; + ulmbcs_byte_t grp_end; ulmbcs_byte_t grp_ix; - grp_start = (ulmbcs_byte_t)((group == ULMBCS_AMBIGUOUS_MBCS) - ? ULMBCS_DOUBLEOPTGROUP_START + grp_start = (ulmbcs_byte_t)((group == ULMBCS_AMBIGUOUS_MBCS) + ? ULMBCS_DOUBLEOPTGROUP_START : ULMBCS_GRP_L1); - grp_end = (ulmbcs_byte_t)((group == ULMBCS_AMBIGUOUS_MBCS) - ? ULMBCS_GRP_LAST + grp_end = (ulmbcs_byte_t)((group == ULMBCS_AMBIGUOUS_MBCS) + ? ULMBCS_GRP_LAST : ULMBCS_GRP_TH); if(group == ULMBCS_AMBIGUOUS_ALL) { @@ -1020,22 +1020,22 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, grp_end = ULMBCS_GRP_LAST; } for (grp_ix = grp_start; - grp_ix <= grp_end && !bytes_written; + grp_ix <= grp_end && !bytes_written; grp_ix++) { if (extraInfo->OptGrpConverter [grp_ix] && !groups_tried [grp_ix]) { bytes_written = (int32_t)LMBCSConversionWorker (extraInfo, - grp_ix, pLMBCS, &uniChar, + grp_ix, pLMBCS, &uniChar, &lastConverterIndex, groups_tried); } } - /* a final conversion fallback to the exceptions group if its likely + /* a final conversion fallback to the exceptions group if its likely to be single byte (Strategy 3E) */ if (!bytes_written && grp_start == ULMBCS_GRP_L1) { bytes_written = (int32_t)LMBCSConversionWorker (extraInfo, - ULMBCS_GRP_EXCEPT, pLMBCS, &uniChar, + ULMBCS_GRP_EXCEPT, pLMBCS, &uniChar, &lastConverterIndex, groups_tried); } } @@ -1048,8 +1048,8 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, } } } - - /* we have a translation. increment source and write as much as posible to target */ + + /* we have a translation. increment source and write as much as possible to target */ args->source++; pLMBCS = LMBCS; while (args->target < args->targetLimit && bytes_written--) @@ -1077,7 +1077,7 @@ _LMBCSFromUnicode(UConverterFromUnicodeArgs* args, } /*Fix for SPR#DJOE66JFN3 (Lotus)*/ extraInfo->localeConverterIndex = OldConverterIndex; - } + } } @@ -1091,7 +1091,7 @@ GetUniFromLMBCSUni(char const ** ppLMBCSin) /* Called with LMBCS-style Unicode uint8_t HighCh = *(*ppLMBCSin)++; /* Big-endian Unicode in LMBCS compatibility group*/ uint8_t LowCh = *(*ppLMBCSin)++; - if (HighCh == ULMBCS_UNICOMPATZERO ) + if (HighCh == ULMBCS_UNICOMPATZERO ) { HighCh = LowCh; LowCh = 0; /* zero-byte in LSB special character */ @@ -1101,7 +1101,7 @@ GetUniFromLMBCSUni(char const ** ppLMBCSin) /* Called with LMBCS-style Unicode -/* CHECK_SOURCE_LIMIT: Helper macro to verify that there are at least'index' +/* CHECK_SOURCE_LIMIT: Helper macro to verify that there are at least'index' bytes left in source up to sourceLimit.Errors appropriately if not. If we reach the limit, then update the source pointer to there to consume all input as required by ICU converter semantics. @@ -1132,32 +1132,32 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, } /* Grab first byte & save address for error recovery */ CurByte = *((ulmbcs_byte_t *) (args->source++)); - + /* * at entry of each if clause: * 1. 'CurByte' points at the first byte of a LMBCS character - * 2. '*source'points to the next byte of the source stream after 'CurByte' + * 2. '*source'points to the next byte of the source stream after 'CurByte' * * the job of each if clause is: * 1. set '*source' to point at the beginning of next char (nop if LMBCS char is only 1 byte) * 2. set 'uniChar' up with the right Unicode value, or set 'err' appropriately */ - + /* First lets check the simple fixed values. */ if(((CurByte > ULMBCS_C0END) && (CurByte < ULMBCS_C1START)) /* ascii range */ - || (CurByte == 0) - || CurByte == ULMBCS_HT || CurByte == ULMBCS_CR + || (CurByte == 0) + || CurByte == ULMBCS_HT || CurByte == ULMBCS_CR || CurByte == ULMBCS_LF || CurByte == ULMBCS_123SYSTEMRANGE) { uniChar = CurByte; } - else + else { UConverterDataLMBCS * extraInfo; - ulmbcs_byte_t group; - UConverterSharedData *cnv; - + ulmbcs_byte_t group; + UConverterSharedData *cnv; + if (CurByte == ULMBCS_GRP_CTRL) /* Control character group - no opt group update */ { ulmbcs_byte_t C0C1byte; @@ -1165,15 +1165,15 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, C0C1byte = *(args->source)++; uniChar = (C0C1byte < ULMBCS_C1START) ? C0C1byte - ULMBCS_CTRLOFFSET : C0C1byte; } - else + else if (CurByte == ULMBCS_GRP_UNICODE) /* Unicode compatibility group: BigEndian UTF16 */ { CHECK_SOURCE_LIMIT(2); - + /* don't check for error indicators fffe/ffff below */ return GetUniFromLMBCSUni(&(args->source)); } - else if (CurByte <= ULMBCS_CTRLOFFSET) + else if (CurByte <= ULMBCS_CTRLOFFSET) { group = CurByte; /* group byte is in the source */ extraInfo = (UConverterDataLMBCS *) args->converter->extraInfo; @@ -1181,7 +1181,7 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, { /* this is not a valid group byte - no converter*/ *err = U_INVALID_CHAR_FOUND; - } + } else if (group >= ULMBCS_DOUBLEOPTGROUP_START) /* double byte conversion */ { @@ -1202,21 +1202,21 @@ _LMBCSGetNextUCharWorker(UConverterToUnicodeArgs* args, else { /* single byte conversion */ CHECK_SOURCE_LIMIT(1); CurByte = *(args->source)++; - + if (CurByte >= ULMBCS_C1START) { uniChar = _MBCS_SINGLE_SIMPLE_GET_NEXT_BMP(cnv, CurByte); } else { - /* The non-optimizable oddballs where there is an explicit byte + /* The non-optimizable oddballs where there is an explicit byte * AND the second byte is not in the upper ascii range */ char bytes[2]; extraInfo = (UConverterDataLMBCS *) args->converter->extraInfo; - cnv = extraInfo->OptGrpConverter [ULMBCS_GRP_EXCEPT]; - + cnv = extraInfo->OptGrpConverter [ULMBCS_GRP_EXCEPT]; + /* Lookup value must include opt group */ bytes[0] = group; bytes[1] = CurByte; @@ -1277,15 +1277,15 @@ _LMBCSToUnicodeWithOffsets(UConverterToUnicodeArgs* args, if (args->converter->toULength) /* reassemble char from previous call */ { - const char *saveSourceLimit; + const char *saveSourceLimit; size_t size_old = args->converter->toULength; /* limit from source is either remainder of temp buffer, or user limit on source */ size_t size_new_maybe_1 = sizeof(LMBCS) - size_old; size_t size_new_maybe_2 = args->sourceLimit - args->source; size_t size_new = (size_new_maybe_1 < size_new_maybe_2) ? size_new_maybe_1 : size_new_maybe_2; - - + + uprv_memcpy(LMBCS, args->converter->toUBytes, size_old); uprv_memcpy(LMBCS + size_old, args->source, size_new); saveSourceLimit = args->sourceLimit; @@ -1342,7 +1342,7 @@ _LMBCSToUnicodeWithOffsets(UConverterToUnicodeArgs* args, { *err = U_BUFFER_OVERFLOW_ERROR; } - else if (U_FAILURE(*err)) + else if (U_FAILURE(*err)) { /* If character incomplete or unmappable/illegal, store it in toUBytes[] */ args->converter->toULength = savebytes; diff --git a/deps/icu-small/source/common/ucnv_u16.cpp b/deps/icu-small/source/common/ucnv_u16.cpp index 6c1b87d3c939c6..a5e8367400ae69 100644 --- a/deps/icu-small/source/common/ucnv_u16.cpp +++ b/deps/icu-small/source/common/ucnv_u16.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2002-2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -199,7 +199,7 @@ _UTF16BEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, } else { length=0; /* from here on, length counts the bytes in overflow[] */ } - + if(c!=0) { /* * c is a surrogate, and @@ -567,7 +567,7 @@ _UTF16BEGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { pArgs->source=(const char *)s; return c; -} +} static void U_CALLCONV _UTF16BEReset(UConverter *cnv, UConverterResetChoice choice) { @@ -800,7 +800,7 @@ _UTF16LEFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, } else { length=0; /* from here on, length counts the bytes in overflow[] */ } - + if(c!=0) { /* * c is a surrogate, and @@ -1168,7 +1168,7 @@ _UTF16LEGetNextUChar(UConverterToUnicodeArgs *pArgs, UErrorCode *err) { pArgs->source=(const char *)s; return c; -} +} static void U_CALLCONV _UTF16LEReset(UConverter *cnv, UConverterResetChoice choice) { diff --git a/deps/icu-small/source/common/ucnv_u32.cpp b/deps/icu-small/source/common/ucnv_u32.cpp index 13444a3afd97f1..bf6bd11dbacb73 100644 --- a/deps/icu-small/source/common/ucnv_u32.cpp +++ b/deps/icu-small/source/common/ucnv_u32.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2002-2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -84,7 +84,7 @@ T_UConverter_toUnicode_UTF32_BE(UConverterToUnicodeArgs * args, if (ch <= MAXIMUM_UTF && !U_IS_SURROGATE(ch)) { /* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */ - if (ch <= MAXIMUM_UCS2) + if (ch <= MAXIMUM_UCS2) { /* fits in 16 bits */ *(myTarget++) = (UChar) ch; @@ -434,7 +434,7 @@ T_UConverter_getNextUChar_UTF32_BE(UConverterToUnicodeArgs* args, } length = (int32_t)((const uint8_t *)args->sourceLimit - mySource); - if (length < 4) + if (length < 4) { /* got a partial character */ uprv_memcpy(args->converter->toUBytes, mySource, length); @@ -488,7 +488,7 @@ static const UConverterImpl _UTF32BEImpl = { NULL }; -/* The 1232 CCSID refers to any version of Unicode with any endianess of UTF-32 */ +/* The 1232 CCSID refers to any version of Unicode with any endianness of UTF-32 */ static const UConverterStaticData _UTF32BEStaticData = { sizeof(UConverterStaticData), "UTF-32BE", @@ -640,7 +640,7 @@ T_UConverter_toUnicode_UTF32_LE_OFFSET_LOGIC(UConverterToUnicodeArgs * args, if (ch <= MAXIMUM_UTF && !U_IS_SURROGATE(ch)) { /* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */ - if (ch <= MAXIMUM_UCS2) + if (ch <= MAXIMUM_UCS2) { /* fits in 16 bits */ *(myTarget++) = (UChar) ch; @@ -929,7 +929,7 @@ T_UConverter_getNextUChar_UTF32_LE(UConverterToUnicodeArgs* args, } length = (int32_t)((const uint8_t *)args->sourceLimit - mySource); - if (length < 4) + if (length < 4) { /* got a partial character */ uprv_memcpy(args->converter->toUBytes, mySource, length); @@ -983,7 +983,7 @@ static const UConverterImpl _UTF32LEImpl = { NULL }; -/* The 1232 CCSID refers to any version of Unicode with any endianess of UTF-32 */ +/* The 1232 CCSID refers to any version of Unicode with any endianness of UTF-32 */ static const UConverterStaticData _UTF32LEStaticData = { sizeof(UConverterStaticData), "UTF-32LE", @@ -1230,7 +1230,7 @@ static const UConverterImpl _UTF32Impl = { NULL }; -/* The 1236 CCSID refers to any version of Unicode with a BOM sensitive endianess of UTF-32 */ +/* The 1236 CCSID refers to any version of Unicode with a BOM sensitive endianness of UTF-32 */ static const UConverterStaticData _UTF32StaticData = { sizeof(UConverterStaticData), "UTF-32", @@ -1247,7 +1247,7 @@ static const UConverterStaticData _UTF32StaticData = { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } /* reserved */ }; -const UConverterSharedData _UTF32Data = +const UConverterSharedData _UTF32Data = UCNV_IMMUTABLE_SHARED_DATA_INITIALIZER(&_UTF32StaticData, &_UTF32Impl); #endif diff --git a/deps/icu-small/source/common/ucnv_u7.cpp b/deps/icu-small/source/common/ucnv_u7.cpp index a5a9485b73f36b..de9f3f42ec9724 100644 --- a/deps/icu-small/source/common/ucnv_u7.cpp +++ b/deps/icu-small/source/common/ucnv_u7.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/common/ucnv_u8.cpp b/deps/icu-small/source/common/ucnv_u8.cpp index 9cf4a81ab2ef36..1ef7fa2f02f0a5 100644 --- a/deps/icu-small/source/common/ucnv_u8.cpp +++ b/deps/icu-small/source/common/ucnv_u8.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines * Corporation and others. All Rights Reserved. @@ -134,7 +134,7 @@ static void U_CALLCONV ucnv_toUnicode_UTF8 (UConverterToUnicodeArgs * args, ch -= offsetsFromUTF8[inBytes]; /* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */ - if (ch <= MAXIMUM_UCS2) + if (ch <= MAXIMUM_UCS2) { /* fits in 16 bits */ *(myTarget++) = (UChar) ch; @@ -250,7 +250,7 @@ static void U_CALLCONV ucnv_toUnicode_UTF8_OFFSETS_LOGIC (UConverterToUnicodeAr ch -= offsetsFromUTF8[inBytes]; /* Normal valid byte when the loop has not prematurely terminated (i < inBytes) */ - if (ch <= MAXIMUM_UCS2) + if (ch <= MAXIMUM_UCS2) { /* fits in 16 bits */ *(myTarget++) = (UChar) ch; @@ -640,7 +640,7 @@ static UChar32 U_CALLCONV ucnv_getNextUChar_UTF8(UConverterToUnicodeArgs *args, cnv->toULength = i; *err = U_ILLEGAL_CHAR_FOUND; return 0xffff; -} +} U_CDECL_END /* UTF-8-from-UTF-8 conversion functions ------------------------------------ */ diff --git a/deps/icu-small/source/common/ucnvhz.cpp b/deps/icu-small/source/common/ucnvhz.cpp index b26cf78289dcab..6b2f5faaf0a59a 100644 --- a/deps/icu-small/source/common/ucnvhz.cpp +++ b/deps/icu-small/source/common/ucnvhz.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2000-2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -13,7 +13,7 @@ * created on: 2000oct16 * created by: Ram Viswanadha * 10/31/2000 Ram Implemented offsets logic function -* +* */ #include "unicode/utypes.h" @@ -117,7 +117,7 @@ _HZReset(UConverter *cnv, UConverterResetChoice choice){ } if(choice!=UCNV_RESET_TO_UNICODE) { cnv->fromUnicodeStatus= 0; - cnv->fromUChar32=0x0000; + cnv->fromUChar32=0x0000; if(cnv->extraInfo != NULL){ ((UConverterDataHZ*)cnv->extraInfo)->isEscapeAppended = FALSE; ((UConverterDataHZ*)cnv->extraInfo)->targetIndex = 0; @@ -129,7 +129,7 @@ _HZReset(UConverter *cnv, UConverterResetChoice choice){ /**************************************HZ Encoding************************************************* * Rules for HZ encoding -* +* * In ASCII mode, a byte is interpreted as an ASCII character, unless a * '~' is encountered. The character '~' is an escape character. By * convention, it must be immediately followed ONLY by '~', '{' or '\n' @@ -162,7 +162,7 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UChar32 targetUniChar = 0x0000; int32_t mySourceChar = 0x0000; UConverterDataHZ* myData=(UConverterDataHZ*)(args->converter->extraInfo); - tempBuf[0]=0; + tempBuf[0]=0; tempBuf[1]=0; /* Calling code already handles this situation. */ @@ -170,11 +170,11 @@ UConverter_toUnicode_HZ_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, *err = U_ILLEGAL_ARGUMENT_ERROR; return; }*/ - + while(mySource< mySourceLimit){ - + if(myTarget < args->targetLimit){ - + mySourceChar= (unsigned char) *mySource++; if(args->converter->mode == UCNV_TILDE) { @@ -349,7 +349,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, UBool oldIsTargetUCharDBCS; int len =0; const char* escSeq=NULL; - + /* Calling code already handles this situation. */ /*if ((args->converter == NULL) || (args->targetLimit < myTarget) || (args->sourceLimit < args->source)){ *err = U_ILLEGAL_ARGUMENT_ERROR; @@ -362,9 +362,9 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, while (mySourceIndex < mySourceLength){ targetUniChar = missingCharMarker; if (myTargetIndex < targetLength){ - + mySourceChar = (UChar) mySource[mySourceIndex++]; - + oldIsTargetUCharDBCS = isTargetUCharDBCS; if(mySourceChar ==UCNV_TILDE){ @@ -389,7 +389,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, } } if (targetUniChar != missingCharMarker){ - myConverterData->isTargetUCharDBCS = isTargetUCharDBCS = (UBool)(targetUniChar>0x00FF); + myConverterData->isTargetUCharDBCS = isTargetUCharDBCS = (UBool)(targetUniChar>0x00FF); if(oldIsTargetUCharDBCS != isTargetUCharDBCS || !myConverterData->isEscapeAppended ){ /*Shifting from a double byte to single byte mode*/ if(!isTargetUCharDBCS){ @@ -403,10 +403,10 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, escSeq = DB_ESCAPE; CONCAT_ESCAPE_MACRO(args, myTargetIndex, targetLength, escSeq,err,len,mySourceIndex); myConverterData->isEscapeAppended = TRUE; - + } } - + if(isTargetUCharDBCS){ if( myTargetIndex > 8); @@ -421,7 +421,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, }else{ args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (char) targetUniChar; *err = U_BUFFER_OVERFLOW_ERROR; - } + } }else{ args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] =(char) (targetUniChar >> 8); args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (char) targetUniChar; @@ -434,7 +434,7 @@ UConverter_fromUnicode_HZ_OFFSETS_LOGIC (UConverterFromUnicodeArgs * args, if(offsets){ *(offsets++) = mySourceIndex-1; } - + }else{ args->converter->charErrorBuffer[args->converter->charErrorBufferLength++] = (char) targetUniChar; *err = U_BUFFER_OVERFLOW_ERROR; @@ -503,7 +503,7 @@ _HZ_WriteSub(UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode *e char *p; char buffer[4]; p = buffer; - + if( convData->isTargetUCharDBCS){ *p++= UCNV_TILDE; *p++= UCNV_CLOSE_BRACE; @@ -528,9 +528,9 @@ struct cloneHZStruct static UConverter * U_CALLCONV -_HZ_SafeClone(const UConverter *cnv, - void *stackBuffer, - int32_t *pBufferSize, +_HZ_SafeClone(const UConverter *cnv, + void *stackBuffer, + int32_t *pBufferSize, UErrorCode *status) { struct cloneHZStruct * localClone; @@ -578,20 +578,20 @@ U_CDECL_END static const UConverterImpl _HZImpl={ UCNV_HZ, - + NULL, NULL, - + _HZOpen, _HZClose, _HZReset, - + UConverter_toUnicode_HZ_OFFSETS_LOGIC, UConverter_toUnicode_HZ_OFFSETS_LOGIC, UConverter_fromUnicode_HZ_OFFSETS_LOGIC, UConverter_fromUnicode_HZ_OFFSETS_LOGIC, NULL, - + NULL, NULL, _HZ_WriteSub, @@ -604,14 +604,14 @@ static const UConverterImpl _HZImpl={ static const UConverterStaticData _HZStaticData={ sizeof(UConverterStaticData), "HZ", - 0, - UCNV_IBM, - UCNV_HZ, - 1, + 0, + UCNV_IBM, + UCNV_HZ, + 1, 4, { 0x1a, 0, 0, 0 }, 1, - FALSE, + FALSE, FALSE, 0, 0, diff --git a/deps/icu-small/source/common/ucnvisci.cpp b/deps/icu-small/source/common/ucnvisci.cpp index 4d2815a3a652b3..f303e7e24fc92f 100644 --- a/deps/icu-small/source/common/ucnvisci.cpp +++ b/deps/icu-small/source/common/ucnvisci.cpp @@ -128,7 +128,7 @@ typedef struct { MaskEnum currentMaskToUnicode; /* mask for current state in toUnicode */ MaskEnum defMaskToUnicode; /* mask for default state in toUnicode */ UBool isFirstBuffer; /* boolean for fromUnicode to see if we need to announce the first script */ - UBool resetToDefaultToUnicode; /* boolean for reseting to default delta and mask when a newline is encountered*/ + UBool resetToDefaultToUnicode; /* boolean for resetting to default delta and mask when a newline is encountered*/ char name[sizeof(ISCII_CNV_PREFIX) + 1]; UChar32 prevToUnicodeStatus; /* Hold the previous toUnicodeStatus. This is necessary because we may need to know the last two code points. */ } UConverterDataISCII; @@ -213,13 +213,13 @@ _ISCIIOpen(UConverter *cnv, UConverterLoadArgs *pArgs, UErrorCode *errorCode) { converterData->currentMaskFromUnicode = converterData->currentMaskToUnicode = converterData->defMaskToUnicode = lookupInitialData[pArgs->options & UCNV_OPTIONS_VERSION_MASK].maskEnum; - + converterData->isFirstBuffer=TRUE; (void)uprv_strcpy(converterData->name, ISCII_CNV_PREFIX); len = (int32_t)uprv_strlen(converterData->name); converterData->name[len]= (char)((pArgs->options & UCNV_OPTIONS_VERSION_MASK) + '0'); converterData->name[len+1]=0; - + converterData->prevToUnicodeStatus = 0x0000; } else { uprv_free(cnv->extraInfo); @@ -934,12 +934,12 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( break; } } - + sourceChar = *source++; tempContextFromUnicode = converterData->contextCharFromUnicode; - + targetByteUnit = missingCharMarker; - + /*check if input is in ASCII and C0 control codes range*/ if (sourceChar <= ASCII_END) { args->converter->fromUnicodeStatus = sourceChar; @@ -989,8 +989,8 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( deltaChanged =TRUE; converterData->isFirstBuffer=FALSE; } - - if (converterData->currentDeltaFromUnicode == PNJ_DELTA) { + + if (converterData->currentDeltaFromUnicode == PNJ_DELTA) { if (sourceChar == PNJ_TIPPI) { /* Make sure Tippi is converted to Bindi. */ sourceChar = PNJ_BINDI; @@ -998,7 +998,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( /* This is for consonant cluster handling. */ converterData->contextCharFromUnicode = PNJ_ADHAK; } - + } /* Normalize all Indic codepoints to Devanagari and map them to ISCII */ /* now subtract the new delta from sourceChar*/ @@ -1031,7 +1031,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( break; } } - + if (converterData->currentDeltaFromUnicode == PNJ_DELTA && (sourceChar + PNJ_DELTA) == PNJ_ADHAK) { continue; } @@ -1105,7 +1105,7 @@ UConverter_fromUnicode_ISCII_OFFSETS_LOGIC( } static const uint16_t lookupTable[][2]={ - { ZERO, ZERO }, /*DEFALT*/ + { ZERO, ZERO }, /*DEFAULT*/ { ZERO, ZERO }, /*ROMAN*/ { DEVANAGARI, DEV_MASK }, { BENGALI, BNG_MASK }, @@ -1164,15 +1164,15 @@ static const uint16_t lookupTable[][2]={ * Post context * i) ATR : Attribute code is used to declare the font and script switching. * Currently we only switch scripts and font codes consumed without generating an error - * ii) EXT : Extention code is used to declare switching to Sanskrit and for obscure, + * ii) EXT : Extension code is used to declare switching to Sanskrit and for obscure, * obsolete characters * Pre context - * i) Halant: if preceeded by a halant then it is a explicit halant + * i) Halant: if preceded by a halant then it is a explicit halant * ii) Nukta : - * a) if preceeded by a halant then it is a soft halant - * b) if preceeded by specific consonants and the ligatures have pre-composed + * a) if preceded by a halant then it is a soft halant + * b) if preceded by specific consonants and the ligatures have pre-composed * characters in Unicode then convert to pre-composed characters - * iii) Danda: If Danda is preceeded by a Danda then convert to Double Danda + * iii) Danda: If Danda is preceded by a Danda then convert to Double Danda * */ @@ -1189,7 +1189,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo UChar32 tempTargetUniChar = 0x0000; UChar* contextCharToUnicode= NULL; UBool found; - int i; + int i; int offset = 0; if ((args->converter == NULL) || (target < args->target) || (source < args->source)) { @@ -1208,7 +1208,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo if (target < targetLimit) { sourceChar = (unsigned char)*(source)++; - /* look at the post-context preform special processing */ + /* look at the post-context perform special processing */ if (*contextCharToUnicode==ATR) { /* If we have ATR in *contextCharToUnicode then we need to change our @@ -1245,7 +1245,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo /* We currently support only Anudatta and Devanagari abbreviation sign */ if (sourceChar==0xBF || sourceChar == 0xB8) { targetUniChar = (sourceChar==0xBF) ? DEV_ABBR_SIGN : DEV_ANUDATTA; - + /* find out if the mapping is valid in this state */ if (validityTable[(uint8_t)targetUniChar] & data->currentMaskToUnicode) { *contextCharToUnicode= NO_CHAR_MARKER; @@ -1452,7 +1452,7 @@ UConverter_toUnicode_ISCII_OFFSETS_LOGIC(UConverterToUnicodeArgs *args, UErrorCo WRITE_TO_TARGET_TO_U(args,source,target,args->offsets,(source-args->source -1),data->prevToUnicodeStatus,0,err); data->prevToUnicodeStatus = 0x0000; } - /* Check to make sure that Bindi and Tippi are handled correctly for Gurmukhi script. + /* Check to make sure that Bindi and Tippi are handled correctly for Gurmukhi script. * If 0xA2 is preceded by a codepoint in the PNJ_BINDI_TIPPI_SET then the target codepoint should be Tippi instead of Bindi. */ if (data->currentDeltaToUnicode == PNJ_DELTA && (targetUniChar + PNJ_DELTA) == PNJ_BINDI && isPNJBindiTippi((*toUnicodeStatus + PNJ_DELTA))) { diff --git a/deps/icu-small/source/common/ucnvlat1.cpp b/deps/icu-small/source/common/ucnvlat1.cpp index 15eeb5c51f5fb3..358bc0caa25a19 100644 --- a/deps/icu-small/source/common/ucnvlat1.cpp +++ b/deps/icu-small/source/common/ucnvlat1.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2000-2015, International Business Machines * Corporation and others. All Rights Reserved. diff --git a/deps/icu-small/source/common/ucnvmbcs.cpp b/deps/icu-small/source/common/ucnvmbcs.cpp index 2fec6b4b1510d6..420aa02af5b0f6 100644 --- a/deps/icu-small/source/common/ucnvmbcs.cpp +++ b/deps/icu-small/source/common/ucnvmbcs.cpp @@ -35,7 +35,7 @@ * limitations and adds m:n character mappings and other features. * See ucnv_ext.h for details. * -* Change history: +* Change history: * * 5/6/2001 Ram Moved MBCS_SINGLE_RESULT_FROM_U,MBCS_STAGE_2_FROM_U, * MBCS_VALUE_2_FROM_STAGE_2, MBCS_VALUE_4_FROM_STAGE_2 @@ -849,7 +849,7 @@ ucnv_MBCSEnumToUnicode(UConverterMBCSTable *mbcsTable, } } -U_CFUNC void +U_CFUNC void ucnv_MBCSGetFilteredUnicodeSetForUnicode(const UConverterSharedData *sharedData, const USetAdder *sa, UConverterUnicodeSet which, @@ -1091,7 +1091,7 @@ ucnv_MBCSGetUnicodeSet(const UConverter *cnv, * Definition of LINEAR macros and gb18030Ranges see near the beginning of the file. * * In the future, conversion extensions may handle m:n mappings and delta tables, - * see http://source.icu-project.org/repos/icu/icuhtml/trunk/design/conversion/conversion_extensions.html + * see https://htmlpreview.github.io/?https://github.com/unicode-org/icu-docs/blob/main/design/conversion/conversion_extensions.html * * If an input character cannot be mapped, then these functions set an error * code. The framework will then call the callback function. @@ -4444,7 +4444,7 @@ ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, * For EUC encodings that use only either 0x8e or 0x8f as the first * byte of their longest byte sequences, the first two bytes in * this third stage indicate with their 7th bits whether these bytes - * are to be written directly or actually need to be preceeded by + * are to be written directly or actually need to be preceded by * one of the two Single-Shift codes. With this, the third stage * stores one byte fewer per character than the actual maximum length of * EUC byte sequences. diff --git a/deps/icu-small/source/common/ucnvmbcs.h b/deps/icu-small/source/common/ucnvmbcs.h index ddc55b20fec271..c8f3b89a5e464d 100644 --- a/deps/icu-small/source/common/ucnvmbcs.h +++ b/deps/icu-small/source/common/ucnvmbcs.h @@ -180,15 +180,15 @@ * -- normal base table with optional extension * * int32_t stateTable[countStates][256]; - * + * * struct _MBCSToUFallback { (fallbacks are sorted by offset) * uint32_t offset; * UChar32 codePoint; * } toUFallbacks[countToUFallbacks]; - * + * * uint16_t unicodeCodeUnits[(offsetFromUTable-offsetToUCodeUnits)/2]; * (padded to an even number of units) - * + * * -- stage 1 tables * if(staticData.unicodeMask&UCNV_HAS_SUPPLEMENTARY) { * -- stage 1 table for all of Unicode @@ -566,10 +566,10 @@ ucnv_MBCSSingleFromUChar32(UConverterSharedData *sharedData, U_CFUNC UConverterType ucnv_MBCSGetType(const UConverter* converter); -U_CFUNC void +U_CFUNC void ucnv_MBCSFromUnicodeWithOffsets(UConverterFromUnicodeArgs *pArgs, UErrorCode *pErrorCode); -U_CFUNC void +U_CFUNC void ucnv_MBCSToUnicodeWithOffsets(UConverterToUnicodeArgs *pArgs, UErrorCode *pErrorCode); diff --git a/deps/icu-small/source/common/ucnvscsu.cpp b/deps/icu-small/source/common/ucnvscsu.cpp index eb7b7ad5c8793e..7b580291e1d765 100644 --- a/deps/icu-small/source/common/ucnvscsu.cpp +++ b/deps/icu-small/source/common/ucnvscsu.cpp @@ -16,7 +16,7 @@ * created by: Markus W. Scherer * * This is an implementation of the Standard Compression Scheme for Unicode -* as defined in http://www.unicode.org/unicode/reports/tr6/ . +* as defined in https://www.unicode.org/reports/tr6/ . * Reserved commands and window settings are treated as illegal sequences and * will result in callback calls. */ @@ -119,7 +119,7 @@ enum { }; typedef struct SCSUData { - /* dynamic window offsets, intitialize to default values from initialDynamicOffsets */ + /* dynamic window offsets, initialize to default values from initialDynamicOffsets */ uint32_t toUDynamicOffsets[8]; uint32_t fromUDynamicOffsets[8]; @@ -1969,9 +1969,9 @@ struct cloneSCSUStruct }; static UConverter * U_CALLCONV -_SCSUSafeClone(const UConverter *cnv, - void *stackBuffer, - int32_t *pBufferSize, +_SCSUSafeClone(const UConverter *cnv, + void *stackBuffer, + int32_t *pBufferSize, UErrorCode *status) { struct cloneSCSUStruct * localClone; diff --git a/deps/icu-small/source/common/ucnvsel.cpp b/deps/icu-small/source/common/ucnvsel.cpp index 07b55022c346e8..2dff5ac1bc8388 100644 --- a/deps/icu-small/source/common/ucnvsel.cpp +++ b/deps/icu-small/source/common/ucnvsel.cpp @@ -658,7 +658,7 @@ static const UEnumeration defaultEncodings = { ucnvsel_close_selector_iterator, ucnvsel_count_encodings, uenum_unextDefault, - ucnvsel_next_encoding, + ucnvsel_next_encoding, ucnvsel_reset_iterator }; @@ -711,7 +711,7 @@ static UEnumeration *selectForMask(const UConverterSelector* sel, return nullptr; } memcpy(en.getAlias(), &defaultEncodings, sizeof(UEnumeration)); - + int32_t columns = (sel->encodingsCount+31)/32; int16_t numOnes = countOnes(mask.getAlias(), columns); // now, we know the exact space we need for index @@ -767,7 +767,7 @@ ucnvsel_selectForString(const UConverterSelector* sel, } else { limit = NULL; } - + while (limit == NULL ? *s != 0 : s != limit) { UChar32 c; uint16_t pvIndex; @@ -808,7 +808,7 @@ ucnvsel_selectForUTF8(const UConverterSelector* sel, if(s!=NULL) { const char *limit = s + length; - + while (s != limit) { uint16_t pvIndex; UTRIE2_U8_NEXT16(sel->trie, s, limit, pvIndex); diff --git a/deps/icu-small/source/common/ucol_swp.cpp b/deps/icu-small/source/common/ucol_swp.cpp index 97b5c4aff50c88..1af19863fa84e7 100644 --- a/deps/icu-small/source/common/ucol_swp.cpp +++ b/deps/icu-small/source/common/ucol_swp.cpp @@ -173,7 +173,7 @@ swapFormatVersion3(const UDataSwapper *ds, header.contractionUCACombosSize=udata_readInt32(ds, inHeader->contractionUCACombosSize); header.scriptToLeadByte= ds->readUInt32(inHeader->scriptToLeadByte); header.leadByteToScript= ds->readUInt32(inHeader->leadByteToScript); - + /* swap the 32-bit integers in the header */ ds->swapArray32(ds, inHeader, (int32_t)((const char *)&inHeader->jamoSpecial-(const char *)inHeader), outHeader, pErrorCode); @@ -244,21 +244,21 @@ swapFormatVersion3(const UDataSwapper *ds, ds->swapArray16(ds, inBytes+header.contractionUCACombos, (int32_t)count, outBytes+header.contractionUCACombos, pErrorCode); } - + /* swap the script to lead bytes */ if(header.scriptToLeadByte!=0) { int indexCount = ds->readUInt16(*((uint16_t*)(inBytes+header.scriptToLeadByte))); // each entry = 2 * uint16 int dataCount = ds->readUInt16(*((uint16_t*)(inBytes+header.scriptToLeadByte + 2))); // each entry = uint16 - ds->swapArray16(ds, inBytes+header.scriptToLeadByte, + ds->swapArray16(ds, inBytes+header.scriptToLeadByte, 4 + (4 * indexCount) + (2 * dataCount), outBytes+header.scriptToLeadByte, pErrorCode); } - + /* swap the lead byte to scripts */ if(header.leadByteToScript!=0) { int indexCount = ds->readUInt16(*((uint16_t*)(inBytes+header.leadByteToScript))); // each entry = uint16 int dataCount = ds->readUInt16(*((uint16_t*)(inBytes+header.leadByteToScript + 2))); // each entry = uint16 - ds->swapArray16(ds, inBytes+header.leadByteToScript, + ds->swapArray16(ds, inBytes+header.leadByteToScript, 4 + (2 * indexCount) + (2 * dataCount), outBytes+header.leadByteToScript, pErrorCode); } diff --git a/deps/icu-small/source/common/ucptrie_impl.h b/deps/icu-small/source/common/ucptrie_impl.h index 1fe6a18ac5319e..048353c80dfad5 100644 --- a/deps/icu-small/source/common/ucptrie_impl.h +++ b/deps/icu-small/source/common/ucptrie_impl.h @@ -148,7 +148,7 @@ U_CFUNC void umutablecptrie_setName(UMutableCPTrie *builder, const char *name); /* * Format of the binary, memory-mappable representation of a UCPTrie/CodePointTrie. - * For overview information see http://site.icu-project.org/design/struct/utrie + * For overview information see https://icu.unicode.org/design/struct/utrie * * The binary trie data should be 32-bit-aligned. * The overall layout is: diff --git a/deps/icu-small/source/common/ucurr.cpp b/deps/icu-small/source/common/ucurr.cpp index d38ce3d604d15d..67aab4e8ffec2f 100644 --- a/deps/icu-small/source/common/ucurr.cpp +++ b/deps/icu-small/source/common/ucurr.cpp @@ -112,7 +112,7 @@ class EquivIterator : public icu::UMemory { // Constructor. hash stores the equivalence relationships; s is the string // for which we find equivalent strings. inline EquivIterator(const icu::Hashtable& hash, const icu::UnicodeString& s) - : _hash(hash) { + : _hash(hash) { _start = _current = &s; } inline ~EquivIterator() { } @@ -230,7 +230,7 @@ static const icu::Hashtable* getCurrSymbolsEquiv(); /** * Cleanup callback func */ -static UBool U_CALLCONV +static UBool U_CALLCONV isoCodes_cleanup(void) { if (gIsoCodes != NULL) { @@ -244,7 +244,7 @@ isoCodes_cleanup(void) /** * Cleanup callback func */ -static UBool U_CALLCONV +static UBool U_CALLCONV currSymbolsEquiv_cleanup(void) { delete const_cast(gCurrSymbolsEquiv); @@ -287,7 +287,7 @@ myUCharsToChars(char* resultOfLen4, const UChar* currency) { * four integers. The first is the fraction digits. The second is the * rounding increment, or 0 if none. The rounding increment is in * units of 10^(-fraction_digits). The third and fourth are the same - * except that they are those used in cash transations ( cashDigits + * except that they are those used in cash transactions ( cashDigits * and cashRounding ). */ static const int32_t* @@ -678,10 +678,10 @@ ucurr_getName(const UChar* currency, char buf[ISO_CURRENCY_CODE_LENGTH+1]; myUCharsToChars(buf, currency); - + /* Normalize the keyword value to uppercase */ T_CString_toUpperCase(buf); - + const UChar* s = NULL; ec2 = U_ZERO_ERROR; LocalUResourceBundlePointer rb(ures_open(U_ICUDATA_CURR, loc, &ec2)); @@ -791,11 +791,11 @@ ucurr_getPluralName(const UChar* currency, if (U_FAILURE(ec2)) { // fall back to "other" ec2 = U_ZERO_ERROR; - s = ures_getStringByKeyWithFallback(rb, "other", len, &ec2); + s = ures_getStringByKeyWithFallback(rb, "other", len, &ec2); if (U_FAILURE(ec2)) { ures_close(rb); // fall back to long name in Currencies - return ucurr_getName(currency, locale, UCURR_LONG_NAME, + return ucurr_getName(currency, locale, UCURR_LONG_NAME, isChoiceFormat, len, ec); } } @@ -848,7 +848,7 @@ typedef struct { static int U_CALLCONV currencyNameComparator(const void* a, const void* b) { const CurrencyNameStruct* currName_1 = (const CurrencyNameStruct*)a; const CurrencyNameStruct* currName_2 = (const CurrencyNameStruct*)b; - for (int32_t i = 0; + for (int32_t i = 0; i < MIN(currName_1->currencyNameLen, currName_2->currencyNameLen); ++i) { if (currName_1->currencyName[i] < currName_2->currencyName[i]) { @@ -870,7 +870,7 @@ static int U_CALLCONV currencyNameComparator(const void* a, const void* b) { // Give a locale, return the maximum number of currency names associated with // this locale. // It gets currency names from resource bundles using fallback. -// It is the maximum number because in the fallback chain, some of the +// It is the maximum number because in the fallback chain, some of the // currency names are duplicated. // For example, given locale as "en_US", the currency names get from resource // bundle in "en_US" and "en" are duplicated. The fallback mechanism will count @@ -922,7 +922,7 @@ getCurrencyNameCount(const char* loc, int32_t* total_currency_name_count, int32_ } } -static UChar* +static UChar* toUpperCase(const UChar* source, int32_t len, const char* locale) { UChar* dest = NULL; UErrorCode ec = U_ZERO_ERROR; @@ -933,7 +933,7 @@ toUpperCase(const UChar* source, int32_t len, const char* locale) { u_strToUpper(dest, destLen, source, len, locale, &ec); if (U_FAILURE(ec)) { u_memcpy(dest, source, len); - } + } return dest; } @@ -945,11 +945,11 @@ toUpperCase(const UChar* source, int32_t len, const char* locale) { // return the malloc-ed currency name arrays and the total number of currency // names in the array. static void -collectCurrencyNames(const char* locale, - CurrencyNameStruct** currencyNames, - int32_t* total_currency_name_count, - CurrencyNameStruct** currencySymbols, - int32_t* total_currency_symbol_count, +collectCurrencyNames(const char* locale, + CurrencyNameStruct** currencyNames, + int32_t* total_currency_name_count, + CurrencyNameStruct** currencySymbols, + int32_t* total_currency_symbol_count, UErrorCode& ec) { U_NAMESPACE_USE const icu::Hashtable *currencySymbolsEquiv = getCurrSymbolsEquiv(); @@ -1001,13 +1001,13 @@ collectCurrencyNames(const char* locale, // TODO: uhash_put wont change key/value? iso = (char*)ures_getKey(names); if (localeLevel == 0) { - uhash_put(currencyIsoCodes, iso, iso, &ec3); + uhash_put(currencyIsoCodes, iso, iso, &ec3); } else { if (uhash_get(currencyIsoCodes, iso) != NULL) { ures_close(names); continue; } else { - uhash_put(currencyIsoCodes, iso, iso, &ec3); + uhash_put(currencyIsoCodes, iso, iso, &ec3); } } // Add currency symbol. @@ -1058,19 +1058,19 @@ collectCurrencyNames(const char* locale, iso = (char*)ures_getKey(names); // Using hash to remove duplicated ISO codes in fallback chain. if (localeLevel == 0) { - uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); + uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); } else { if (uhash_get(currencyPluralIsoCodes, iso) != NULL) { ures_close(names); continue; } else { - uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); + uhash_put(currencyPluralIsoCodes, iso, iso, &ec4); } } int32_t num = ures_getSize(names); int32_t len; for (int32_t j = 0; j < num; ++j) { - // TODO: remove duplicates between singular name and + // TODO: remove duplicates between singular name and // currency long name? s = ures_getStringByIndex(names, j, &len, &ec5); (*currencyNames)[*total_currency_name_count].IsoCode = iso; @@ -1094,9 +1094,9 @@ collectCurrencyNames(const char* locale, uhash_close(currencyPluralIsoCodes); // quick sort the struct - qsort(*currencyNames, *total_currency_name_count, + qsort(*currencyNames, *total_currency_name_count, sizeof(CurrencyNameStruct), currencyNameComparator); - qsort(*currencySymbols, *total_currency_symbol_count, + qsort(*currencySymbols, *total_currency_symbol_count, sizeof(CurrencyNameStruct), currencyNameComparator); #ifdef UCURR_DEBUG @@ -1133,13 +1133,13 @@ collectCurrencyNames(const char* locale, } // @param currencyNames: currency names array -// @param indexInCurrencyNames: the index of the character in currency names +// @param indexInCurrencyNames: the index of the character in currency names // array against which the comparison is done // @param key: input text char to compare against // @param begin(IN/OUT): the begin index of matching range in currency names array // @param end(IN/OUT): the end index of matching range in currency names array. static int32_t -binarySearch(const CurrencyNameStruct* currencyNames, +binarySearch(const CurrencyNameStruct* currencyNames, int32_t indexInCurrencyNames, const UChar key, int32_t* begin, int32_t* end) { @@ -1253,7 +1253,7 @@ binarySearch(const CurrencyNameStruct* currencyNames, // @param maxMatchIndex: the index in currencyName which has the longest // match with input text. static void -linearSearch(const CurrencyNameStruct* currencyNames, +linearSearch(const CurrencyNameStruct* currencyNames, int32_t begin, int32_t end, const UChar* text, int32_t textLen, int32_t *partialMatchLen, @@ -1292,7 +1292,7 @@ linearSearch(const CurrencyNameStruct* currencyNames, // @param maxMatchIndex: the index in currencyName which has the longest // match with input text. static void -searchCurrencyName(const CurrencyNameStruct* currencyNames, +searchCurrencyName(const CurrencyNameStruct* currencyNames, int32_t total_currency_count, const UChar* text, int32_t textLen, int32_t *partialMatchLen, @@ -1312,7 +1312,7 @@ searchCurrencyName(const CurrencyNameStruct* currencyNames, // The 2nd round binary search search the second "B" in the text against // the 2nd char in currency names, and narrow the matching range to // "BB BBEX BBEXYZ" (and the maximum matching "BB"). - // The 3rd round returnes the range as "BBEX BBEXYZ" (without changing + // The 3rd round returns the range as "BBEX BBEXYZ" (without changing // maximum matching). // The 4th round returns the same range (the maximum matching is "BBEX"). // The 5th round returns no matching range. @@ -1326,8 +1326,8 @@ searchCurrencyName(const CurrencyNameStruct* currencyNames, break; } *partialMatchLen = MAX(*partialMatchLen, index + 1); - if (matchIndex != -1) { - // find an exact match for text from text[0] to text[index] + if (matchIndex != -1) { + // find an exact match for text from text[0] to text[index] // in currencyNames array. *maxMatchLen = index + 1; *maxMatchIndex = matchIndex; @@ -1356,7 +1356,7 @@ typedef struct { // reference count. // reference count is set to 1 when an entry is put to cache. // it increases by 1 before accessing, and decreased by 1 after accessing. - // The entry is deleted when ref count is zero, which means + // The entry is deleted when ref count is zero, which means // the entry is replaced out of cache and no process is accessing it. int32_t refCount; } CurrencyNameCacheEntry; @@ -1450,9 +1450,9 @@ getCacheEntry(const char* locale, UErrorCode& ec) { } } if (found == -1) { - // insert new entry to + // insert new entry to // currentCacheEntryIndex % CURRENCY_NAME_CACHE_NUM - // and remove the existing entry + // and remove the existing entry // currentCacheEntryIndex % CURRENCY_NAME_CACHE_NUM // from cache. cacheEntry = currCache[currentCacheEntryIndex]; @@ -1518,8 +1518,8 @@ uprv_parseCurrency(const char* locale, int32_t start = pos.getIndex(); - UChar inputText[MAX_CURRENCY_NAME_LEN]; - UChar upperText[MAX_CURRENCY_NAME_LEN]; + UChar inputText[MAX_CURRENCY_NAME_LEN]; + UChar upperText[MAX_CURRENCY_NAME_LEN]; int32_t textLen = MIN(MAX_CURRENCY_NAME_LEN, text.length() - start); text.extract(start, textLen, inputText); UErrorCode ec1 = U_ZERO_ERROR; @@ -1531,7 +1531,7 @@ uprv_parseCurrency(const char* locale, int32_t max = 0; int32_t matchIndex = -1; // case in-sensitive comparison against currency names - searchCurrencyName(currencyNames, total_currency_name_count, + searchCurrencyName(currencyNames, total_currency_name_count, upperText, textLen, partialMatchLen, &max, &matchIndex); #ifdef UCURR_DEBUG @@ -1542,7 +1542,7 @@ uprv_parseCurrency(const char* locale, int32_t matchIndexInSymbol = -1; if (type != UCURR_LONG_NAME) { // not name only // case sensitive comparison against currency symbols and ISO code. - searchCurrencyName(currencySymbols, total_currency_symbol_count, + searchCurrencyName(currencySymbols, total_currency_symbol_count, inputText, textLen, partialMatchLen, &maxInSymbol, &matchIndexInSymbol); @@ -1791,7 +1791,6 @@ static const struct CurrencyList { {"ECV", UCURR_UNCOMMON|UCURR_DEPRECATED}, {"EEK", UCURR_COMMON|UCURR_DEPRECATED}, {"EGP", UCURR_COMMON|UCURR_NON_DEPRECATED}, - {"EQE", UCURR_COMMON|UCURR_DEPRECATED}, // questionable, remove? {"ERN", UCURR_COMMON|UCURR_NON_DEPRECATED}, {"ESA", UCURR_UNCOMMON|UCURR_DEPRECATED}, {"ESB", UCURR_UNCOMMON|UCURR_DEPRECATED}, @@ -1963,9 +1962,11 @@ static const struct CurrencyList { {"UYI", UCURR_UNCOMMON|UCURR_NON_DEPRECATED}, {"UYP", UCURR_COMMON|UCURR_DEPRECATED}, {"UYU", UCURR_COMMON|UCURR_NON_DEPRECATED}, + {"UYW", UCURR_UNCOMMON|UCURR_NON_DEPRECATED}, {"UZS", UCURR_COMMON|UCURR_NON_DEPRECATED}, {"VEB", UCURR_COMMON|UCURR_DEPRECATED}, {"VEF", UCURR_COMMON|UCURR_NON_DEPRECATED}, + {"VES", UCURR_COMMON|UCURR_NON_DEPRECATED}, {"VND", UCURR_COMMON|UCURR_NON_DEPRECATED}, {"VNN", UCURR_COMMON|UCURR_DEPRECATED}, {"VUV", UCURR_COMMON|UCURR_NON_DEPRECATED}, @@ -2072,11 +2073,11 @@ ucurr_createCurrencyList(UHashtable *isoCodes, UErrorCode* status){ UResourceBundle *currencyMapArray = ures_getByKey(rb, CURRENCY_MAP, rb, &localStatus); if (U_SUCCESS(localStatus)) { - // process each entry in currency map + // process each entry in currency map for (int32_t i=0; icontext = values; - + UResourceBundle *bundle = ures_openDirect(U_ICUDATA_CURR, "supplementalData", status); ures_getByKey(bundle, "CurrencyMap", bundle, status); UResourceBundle bundlekey, regbndl, curbndl, to; @@ -2562,7 +2563,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, ures_initStackObject(®bndl); ures_initStackObject(&curbndl); ures_initStackObject(&to); - + while (U_SUCCESS(*status) && ures_hasNext(bundle)) { ures_getNextResource(bundle, &bundlekey, status); if (U_FAILURE(*status)) { @@ -2603,11 +2604,11 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, if(curIDLength+1 > ULOC_KEYWORDS_CAPACITY) { *status = U_BUFFER_OVERFLOW_ERROR; } else { - u_UCharsToChars(defString, curID, curIDLength+1); + u_UCharsToChars(defString, curID, curIDLength+1); } } } -#endif +#endif if (U_FAILURE(*status)) { break; @@ -2629,7 +2630,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, uprv_free(curID); } } - + } if (U_SUCCESS(*status)) { if (commonlyUsed) { @@ -2654,7 +2655,7 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, } } } - + ulist_resetList((UList *)(en->context)); } else { ulist_deleteList(values); @@ -2667,9 +2668,9 @@ U_CAPI UEnumeration *U_EXPORT2 ucurr_getKeywordValuesForLocale(const char *key, ures_close(®bndl); ures_close(&bundlekey); ures_close(bundle); - + ulist_deleteList(otherValues); - + return en; } diff --git a/deps/icu-small/source/common/udata.cpp b/deps/icu-small/source/common/udata.cpp index f2faa82777a233..ec9c999cea41a6 100644 --- a/deps/icu-small/source/common/udata.cpp +++ b/deps/icu-small/source/common/udata.cpp @@ -384,7 +384,7 @@ static UDataMemory *udata_cacheDataItem(const char *path, UDataMemory *item, UEr umtx_unlock(NULL); #ifdef UDATA_DEBUG - fprintf(stderr, "Cache: [%s] <<< %p : %s. vFunc=%p\n", newElement->name, + fprintf(stderr, "Cache: [%s] <<< %p : %s. vFunc=%p\n", newElement->name, (void*) newElement->item, u_errorName(subErr), (void*) newElement->item->vFuncs); #endif @@ -436,13 +436,13 @@ class UDataPathIterator /** * @param iter The iterator to be initialized. Its current state does not matter. - * @param inPath The full pathname to be iterated over. If NULL, defaults to U_ICUDATA_NAME - * @param pkg Package which is being searched for, ex "icudt28l". Will ignore leaf directories such as /icudt28l - * @param item Item to be searched for. Can include full path, such as /a/b/foo.dat + * @param inPath The full pathname to be iterated over. If NULL, defaults to U_ICUDATA_NAME + * @param pkg Package which is being searched for, ex "icudt28l". Will ignore leaf directories such as /icudt28l + * @param item Item to be searched for. Can include full path, such as /a/b/foo.dat * @param inSuffix Optional item suffix, if not-null (ex. ".dat") then 'path' can contain 'item' explicitly. - * Ex: 'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2. + * Ex: 'stuff.dat' would be found in '/a/foo:/tmp/stuff.dat:/bar/baz' as item #2. * '/blarg/stuff.dat' would also be found. - * Note: inSuffix may also be the 'item' being searched for as well, (ex: "ibm-5348_P100-1997.cnv"), in which case + * Note: inSuffix may also be the 'item' being searched for as well, (ex: "ibm-5348_P100-1997.cnv"), in which case * the 'item' parameter is often the same as pkg. (Though sometimes might have a tree part as well, ex: "icudt62l-curr"). */ UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg, @@ -508,8 +508,8 @@ UDataPathIterator::UDataPathIterator(const char *inPath, const char *pkg, /** * Get the next path on the list. * - * @param iter The Iter to be used - * @param len If set, pointer to the length of the returned path, for convenience. + * @param iter The Iter to be used + * @param len If set, pointer to the length of the returned path, for convenience. * @return Pointer to the next path segment, or NULL if there are no more. */ const char *UDataPathIterator::next(UErrorCode *pErrorCode) @@ -537,7 +537,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode) nextPath = uprv_strchr(currentPath, U_PATH_SEP_CHAR); if(nextPath == NULL) { /* segment: entire path */ - pathLen = (int32_t)uprv_strlen(currentPath); + pathLen = (int32_t)uprv_strlen(currentPath); } else { /* segment: until next segment */ pathLen = (int32_t)(nextPath - currentPath); @@ -553,7 +553,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode) #ifdef UDATA_DEBUG fprintf(stderr, "rest of path (IDD) = %s\n", currentPath); fprintf(stderr, " "); - { + { int32_t qqq; for(qqq=0;qqq=4) && uprv_strncmp(pathBuffer.data() +(pathLen-4), suffix.data(), 4)==0 && /* suffix matches */ uprv_strncmp(findBasename(pathBuffer.data()), basename, basenameLen)==0 && /* base matches */ @@ -579,7 +579,7 @@ const char *UDataPathIterator::next(UErrorCode *pErrorCode) #endif /* do nothing */ } - else + else { /* regular dir path */ if(pathBuffer[pathLen-1] != U_FILE_SEP_CHAR) { if((pathLen>=4) && @@ -681,7 +681,7 @@ openCommonData(const char *path, /* Path from OpenChoice? */ UDataMemory_init(&tData); - /* ??????? TODO revisit this */ + /* ??????? TODO revisit this */ if (commonDataIndex >= 0) { /* "mini-cache" for common ICU data */ if(commonDataIndex >= UPRV_LENGTHOF(gCommonICUDataArray)) { @@ -983,9 +983,9 @@ checkDataItem } /** - * @return 0 if not loaded, 1 if loaded or err + * @return 0 if not loaded, 1 if loaded or err */ -static UDataMemory *doLoadFromIndividualFiles(const char *pkgName, +static UDataMemory *doLoadFromIndividualFiles(const char *pkgName, const char *dataPath, const char *tocEntryPathSuffix, /* following arguments are the same as doOpenChoice itself */ const char *path, const char *type, const char *name, @@ -1041,9 +1041,9 @@ static UDataMemory *doLoadFromIndividualFiles(const char *pkgName, } /** - * @return 0 if not loaded, 1 if loaded or err + * @return 0 if not loaded, 1 if loaded or err */ -static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName*/, +static UDataMemory *doLoadFromCommonData(UBool isICUData, const char * /*pkgName*/, const char * /*dataPath*/, const char * /*tocEntryPathSuffix*/, const char *tocEntryName, /* following arguments are the same as doOpenChoice itself */ const char *path, const char *type, const char *name, @@ -1179,7 +1179,7 @@ doOpenChoice(const char *path, const char *type, const char *name, if(path == NULL || !strcmp(path, U_ICUDATA_ALIAS) || /* "ICUDATA" */ !uprv_strncmp(path, U_ICUDATA_NAME U_TREE_SEPARATOR_STRING, /* "icudt26e-" */ - uprv_strlen(U_ICUDATA_NAME U_TREE_SEPARATOR_STRING)) || + uprv_strlen(U_ICUDATA_NAME U_TREE_SEPARATOR_STRING)) || !uprv_strncmp(path, U_ICUDATA_ALIAS U_TREE_SEPARATOR_STRING, /* "ICUDATA-" */ uprv_strlen(U_ICUDATA_ALIAS U_TREE_SEPARATOR_STRING))) { isICUData = TRUE; @@ -1226,7 +1226,7 @@ doOpenChoice(const char *path, const char *type, const char *name, } } else { treeChar = uprv_strchr(path, U_TREE_SEPARATOR); - if(treeChar) { + if(treeChar) { treeName.append(treeChar+1, *pErrorCode); /* following '-' */ if(isICUData) { pkgName.append(U_ICUDATA_NAME, *pErrorCode); @@ -1254,7 +1254,7 @@ doOpenChoice(const char *path, const char *type, const char *name, fprintf(stderr, " P=%s T=%s\n", pkgName.data(), treeName.data()); #endif - /* setting up the entry name and file name + /* setting up the entry name and file name * Make up a full name by appending the type to the supplied * name, assuming that a type was supplied. */ @@ -1321,7 +1321,7 @@ doOpenChoice(const char *path, const char *type, const char *name, fprintf(stderr, "Trying packages (UDATA_PACKAGES_FIRST)\n"); #endif /* #2 */ - retVal = doLoadFromCommonData(isICUData, + retVal = doLoadFromCommonData(isICUData, pkgName.data(), dataPath, tocEntryPathSuffix, tocEntryName.data(), path, type, name, isAcceptable, context, &subErrorCode, pErrorCode); if((retVal != NULL) || U_FAILURE(*pErrorCode)) { @@ -1346,7 +1346,7 @@ doOpenChoice(const char *path, const char *type, const char *name, } /**** COMMON PACKAGE */ - if((gDataFileAccess==UDATA_ONLY_PACKAGES) || + if((gDataFileAccess==UDATA_ONLY_PACKAGES) || (gDataFileAccess==UDATA_FILES_FIRST)) { #ifdef UDATA_DEBUG fprintf(stderr, "Trying packages (UDATA_ONLY_PACKAGES || UDATA_FILES_FIRST)\n"); @@ -1358,10 +1358,10 @@ doOpenChoice(const char *path, const char *type, const char *name, return retVal; } } - + /* Load from DLL. If we haven't attempted package load, we also haven't had any chance to try a DLL (static or setCommonData/etc) load. - If we ever have a "UDATA_ONLY_FILES", add it to the or list here. */ + If we ever have a "UDATA_ONLY_FILES", add it to the or list here. */ if(gDataFileAccess==UDATA_NO_FILES) { #ifdef UDATA_DEBUG fprintf(stderr, "Trying common data (UDATA_NO_FILES)\n"); diff --git a/deps/icu-small/source/common/uelement.h b/deps/icu-small/source/common/uelement.h index e4d16afe4e2753..2c5a2043e17d5b 100644 --- a/deps/icu-small/source/common/uelement.h +++ b/deps/icu-small/source/common/uelement.h @@ -54,9 +54,12 @@ typedef UBool U_CALLCONV UElementsAreEqual(const UElement e1, const UElement e2) * An element sorting (three-way) comparison function. * @param e1 An element (object or integer) * @param e2 An element (object or integer) - * @return 0 if the two elements are equal, -1 if e1 is < e2, or +1 if e1 is > e2. + * @return 32-bit signed integer comparison result: + * ==0 if the two elements are equal, + * <0 if e1 is < e2, or + * >0 if e1 is > e2. */ -typedef int8_t U_CALLCONV UElementComparator(UElement e1, UElement e2); +typedef int32_t U_CALLCONV UElementComparator(UElement e1, UElement e2); /** * An element assignment function. It may copy an integer, copy @@ -74,7 +77,7 @@ U_CDECL_END * @param key2 The string for comparison * @return true if key1 and key2 are equal, return false otherwise. */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uhash_compareUnicodeString(const UElement key1, const UElement key2); /** @@ -85,7 +88,7 @@ uhash_compareUnicodeString(const UElement key1, const UElement key2); * @param key2 The string for comparison * @return true if key1 and key2 are equal, return false otherwise. */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uhash_compareCaselessUnicodeString(const UElement key1, const UElement key2); #endif /* __UELEMENT_H__ */ diff --git a/deps/icu-small/source/common/uenum.cpp b/deps/icu-small/source/common/uenum.cpp index f75cfb7ac3ff6a..11d895ebcd7463 100644 --- a/deps/icu-small/source/common/uenum.cpp +++ b/deps/icu-small/source/common/uenum.cpp @@ -51,7 +51,7 @@ static void* _getBuffer(UEnumeration* en, int32_t capacity) { } ((_UEnumBuffer*) en->baseContext)->len = capacity; } - + return (void*) & ((_UEnumBuffer*) en->baseContext)->data; } diff --git a/deps/icu-small/source/common/uenumimp.h b/deps/icu-small/source/common/uenumimp.h index 93854406403b39..9c9df75ae0497a 100644 --- a/deps/icu-small/source/common/uenumimp.h +++ b/deps/icu-small/source/common/uenumimp.h @@ -23,14 +23,14 @@ U_CDECL_BEGIN -/** - * following are the type declarations for +/** + * following are the type declarations for * implementations of APIs. If any of these * functions are NULL, U_UNSUPPORTED_ERROR * is returned. If close is NULL, the enumeration * object is going to be released. * Initial error checking is done in the body - * of API function, so the implementations + * of API function, so the implementations * need not to check the initial error condition. */ @@ -63,13 +63,13 @@ UEnumCount(UEnumeration *en, UErrorCode *status); * This function returns the next element as a UChar *, * or NULL after all elements haven been enumerated. * - * @param en enumeration + * @param en enumeration * @param resultLength pointer to result length * @param status pointer to UErrorCode variable * @return next element as UChar *, * or NULL after all elements haven been enumerated */ -typedef const UChar* U_CALLCONV +typedef const UChar* U_CALLCONV UEnumUNext(UEnumeration* en, int32_t* resultLength, UErrorCode* status); @@ -80,13 +80,13 @@ UEnumUNext(UEnumeration* en, * This function returns the next element as a char *, * or NULL after all elements haven been enumerated. * - * @param en enumeration + * @param en enumeration * @param resultLength pointer to result length * @param status pointer to UErrorCode variable * @return next element as char *, * or NULL after all elements haven been enumerated */ -typedef const char* U_CALLCONV +typedef const char* U_CALLCONV UEnumNext(UEnumeration* en, int32_t* resultLength, UErrorCode* status); @@ -94,14 +94,14 @@ UEnumNext(UEnumeration* en, /** * Function type declaration for uenum_reset(). * - * This function should reset the enumeration + * This function should reset the enumeration * object * - * @param en enumeration + * @param en enumeration * @param status pointer to UErrorCode variable */ -typedef void U_CALLCONV -UEnumReset(UEnumeration* en, +typedef void U_CALLCONV +UEnumReset(UEnumeration* en, UErrorCode* status); @@ -112,8 +112,8 @@ struct UEnumeration { /* context. Use it for what you need */ void *context; - /** - * these are functions that will + /** + * these are functions that will * be used for APIs */ /* called from uenum_close */ diff --git a/deps/icu-small/source/common/uhash.cpp b/deps/icu-small/source/common/uhash.cpp index 67c7c363540307..2e331b71722e80 100644 --- a/deps/icu-small/source/common/uhash.cpp +++ b/deps/icu-small/source/common/uhash.cpp @@ -320,7 +320,7 @@ _uhash_create(UHashFunction *keyHash, * Stop if it is identical or empty, otherwise continue by adding a * "jump" value (moduloing by the length again to keep it within * range) and retesting. For efficiency, there need enough empty - * values so that the searchs stop within a reasonable amount of time. + * values so that the searches stop within a reasonable amount of time. * This can be changed by changing the high/low water marks. * * In theory, this function can return NULL, if it is full (no empty @@ -379,7 +379,7 @@ _uhash_find(const UHashtable *hash, UHashTok key, * WILL NEVER HAPPEN as long as uhash_put() makes sure that * count is always < length. */ - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } return &(elements[theIndex]); } diff --git a/deps/icu-small/source/common/uhash.h b/deps/icu-small/source/common/uhash.h index af75999860dbb4..2ce296f0ec7c36 100644 --- a/deps/icu-small/source/common/uhash.h +++ b/deps/icu-small/source/common/uhash.h @@ -128,7 +128,7 @@ typedef UElementsAreEqual UValueComparator; /* see cmemory.h for UObjectDeleter and uprv_deleteUObject() */ /** - * This specifies whether or not, and how, the hastable resizes itself. + * This specifies whether or not, and how, the hashtable resizes itself. * See uhash_setResizePolicy(). */ enum UHashResizePolicy { @@ -209,7 +209,7 @@ uhash_open(UHashFunction *keyHash, * NULL. * @param keyComp A pointer to the function that compares keys. Must * not be NULL. - * @param size The initial capacity of this hash table. + * @param size The initial capacity of this hashtable. * @param status A pointer to an UErrorCode to receive any errors. * @return A pointer to a UHashtable, or 0 if an error occurred. * @see uhash_open @@ -244,7 +244,7 @@ uhash_init(UHashtable *hash, * NULL. * @param keyComp A pointer to the function that compares keys. Must * not be NULL. - * @param size The initial capacity of this hash table. + * @param size The initial capacity of this hashtable. * @param status A pointer to an UErrorCode to receive any errors. * @return A pointer to a UHashtable, or 0 if an error occurred. * @see uhash_openSize @@ -322,7 +322,7 @@ U_CAPI UObjectDeleter *U_EXPORT2 uhash_setValueDeleter(UHashtable *hash, UObjectDeleter *fn); /** - * Specify whether or not, and how, the hastable resizes itself. + * Specify whether or not, and how, the hashtable resizes itself. * By default, tables grow but do not shrink (policy U_GROW). * See enum UHashResizePolicy. * @param hash The UHashtable to set @@ -780,7 +780,7 @@ uhash_deleteHashtable(void *obj); /* Use uprv_free() itself as a deleter for any key or value allocated using uprv_malloc. */ /** - * Checks if the given hash tables are equal or not. + * Checks if the given hashtables are equal or not. * @param hash1 * @param hash2 * @return true if the hashtables are equal and false if not. diff --git a/deps/icu-small/source/common/uidna.cpp b/deps/icu-small/source/common/uidna.cpp index 09347efd6d3c39..ac2f9c3c8cd963 100644 --- a/deps/icu-small/source/common/uidna.cpp +++ b/deps/icu-small/source/common/uidna.cpp @@ -47,7 +47,7 @@ static const UChar ACE_PREFIX[] ={ 0x0078,0x006E,0x002d,0x002d } ; #define CAPITAL_A 0x0041 #define CAPITAL_Z 0x005A -inline static UChar +inline static UChar toASCIILower(UChar ch){ if(CAPITAL_A <= ch && ch <= CAPITAL_Z){ return ch + LOWER_CASE_DELTA; @@ -55,7 +55,7 @@ toASCIILower(UChar ch){ return ch; } -inline static UBool +inline static UBool startsWithPrefix(const UChar* src , int32_t srcLength){ if(srcLength < ACE_PREFIX_LENGTH){ return FALSE; @@ -71,9 +71,9 @@ startsWithPrefix(const UChar* src , int32_t srcLength){ inline static int32_t -compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len, +compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len, const UChar* s2, int32_t s2Len){ - + int32_t minLength; int32_t lengthResult; @@ -101,10 +101,10 @@ compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len, if(i == minLength) { return lengthResult; } - + c1 = s1[i]; c2 = s2[i]; - + /* Case-insensitive comparison */ if(c1!=c2) { rc=(int32_t)toASCIILower(c1)-(int32_t)toASCIILower(c2); @@ -119,9 +119,9 @@ compareCaseInsensitiveASCII(const UChar* s1, int32_t s1Len, /** - * Ascertain if the given code point is a label separator as + * Ascertain if the given code point is a label separator as * defined by the IDNA RFC - * + * * @param ch The code point to be ascertained * @return true if the char is a label separator * @stable ICU 2.8 @@ -134,12 +134,12 @@ static inline UBool isLabelSeparator(UChar ch){ case 0xFF61: return TRUE; default: - return FALSE; + return FALSE; } } // returns the length of the label excluding the separator -// if *limit == separator then the length returned does not include +// if *limit == separator then the length returned does not include // the separtor. static inline int32_t getNextSeparator(UChar *src, int32_t srcLength, @@ -155,7 +155,7 @@ getNextSeparator(UChar *src, int32_t srcLength, if(isLabelSeparator(src[i])){ *limit = src + (i+1); // go past the delimiter return i; - + } } }else{ @@ -180,7 +180,7 @@ static inline UBool isLDHChar(UChar ch){ return FALSE; } //[\\u002D \\u0030-\\u0039 \\u0041-\\u005A \\u0061-\\u007A] - if( (ch==0x002D) || + if( (ch==0x002D) || (0x0030 <= ch && ch <= 0x0039) || (0x0041 <= ch && ch <= 0x005A) || (0x0061 <= ch && ch <= 0x007A) @@ -190,8 +190,8 @@ static inline UBool isLDHChar(UChar ch){ return FALSE; } -static int32_t -_internal_toASCII(const UChar* src, int32_t srcLength, +static int32_t +_internal_toASCII(const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UStringPrepProfile* nameprep, @@ -203,18 +203,18 @@ _internal_toASCII(const UChar* src, int32_t srcLength, UChar b1Stack[MAX_LABEL_BUFFER_SIZE], b2Stack[MAX_LABEL_BUFFER_SIZE]; //initialize pointers to stack buffers UChar *b1 = b1Stack, *b2 = b2Stack; - int32_t b1Len=0, b2Len, - b1Capacity = MAX_LABEL_BUFFER_SIZE, + int32_t b1Len=0, b2Len, + b1Capacity = MAX_LABEL_BUFFER_SIZE, b2Capacity = MAX_LABEL_BUFFER_SIZE , reqLength=0; int32_t namePrepOptions = ((options & UIDNA_ALLOW_UNASSIGNED) != 0) ? USPREP_ALLOW_UNASSIGNED: 0; UBool* caseFlags = NULL; - + // the source contains all ascii codepoints UBool srcIsASCII = TRUE; // assume the source contains all LDH codepoints - UBool srcIsLDH = TRUE; + UBool srcIsLDH = TRUE; int32_t j=0; @@ -222,11 +222,11 @@ _internal_toASCII(const UChar* src, int32_t srcLength, UBool useSTD3ASCIIRules = (UBool)((options & UIDNA_USE_STD3_RULES) != 0); int32_t failPos = -1; - + if(srcLength == -1){ srcLength = u_strlen(src); } - + if(srcLength > b1Capacity){ b1 = (UChar*) uprv_malloc(srcLength * U_SIZEOF_UCHAR); if(b1==NULL){ @@ -236,18 +236,18 @@ _internal_toASCII(const UChar* src, int32_t srcLength, b1Capacity = srcLength; } - // step 1 + // step 1 for( j=0;j 0x7F){ srcIsASCII = FALSE; } b1[b1Len++] = src[j]; } - + // step 2 is performed only if the source contains non ASCII if(srcIsASCII == FALSE){ - - // step 2 + + // step 2 b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Capacity, namePrepOptions, parseError, status); if(*status == U_BUFFER_OVERFLOW_ERROR){ @@ -263,7 +263,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, } *status = U_ZERO_ERROR; // reset error - + b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Len, namePrepOptions, parseError, status); } } @@ -279,7 +279,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, // for step 3 & 4 srcIsASCII = TRUE; for( j=0;j 0x7F){ srcIsASCII = FALSE; }else if(isLDHChar(b1[j])==FALSE){ // if the char is in ASCII range verify that it is an LDH character @@ -303,7 +303,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, // failPos is always set the index of failure uprv_syntaxError(b1,failPos, b1Len,parseError); }else if(b1[0] == HYPHEN){ - // fail position is 0 + // fail position is 0 uprv_syntaxError(b1,0,b1Len,parseError); }else{ // the last index in the source is always length-1 @@ -338,14 +338,14 @@ _internal_toASCII(const UChar* src, int32_t srcLength, if(*status == U_BUFFER_OVERFLOW_ERROR){ // redo processing of string /* we do not have enough room so grow the buffer*/ - b2 = (UChar*) uprv_malloc(b2Len * U_SIZEOF_UCHAR); + b2 = (UChar*) uprv_malloc(b2Len * U_SIZEOF_UCHAR); if(b2 == NULL){ *status = U_MEMORY_ALLOCATION_ERROR; goto CLEANUP; } *status = U_ZERO_ERROR; // reset error - + b2Len = u_strToPunycode(b1,b1Len,b2,b2Len,caseFlags, status); } //error bail out @@ -367,7 +367,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, u_memcpy(dest+ACE_PREFIX_LENGTH, b2, b2Len); }else{ - *status = U_IDNA_ACE_PREFIX_ERROR; + *status = U_IDNA_ACE_PREFIX_ERROR; //position of failure is 0 uprv_syntaxError(b1,0,b1Len,parseError); goto CLEANUP; @@ -386,7 +386,7 @@ _internal_toASCII(const UChar* src, int32_t srcLength, uprv_free(b2); } uprv_free(caseFlags); - + return u_terminateUChars(dest, destCapacity, reqLength, status); } @@ -401,7 +401,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, //get the options //UBool useSTD3ASCIIRules = (UBool)((options & UIDNA_USE_STD3_RULES) != 0); - int32_t namePrepOptions = ((options & UIDNA_ALLOW_UNASSIGNED) != 0) ? USPREP_ALLOW_UNASSIGNED: 0; + int32_t namePrepOptions = ((options & UIDNA_ALLOW_UNASSIGNED) != 0) ? USPREP_ALLOW_UNASSIGNED: 0; // TODO Revisit buffer handling. The label should not be over 63 ASCII characters. ICU4J may need to be updated too. UChar b1Stack[MAX_LABEL_BUFFER_SIZE], b2Stack[MAX_LABEL_BUFFER_SIZE], b3Stack[MAX_LABEL_BUFFER_SIZE]; @@ -409,7 +409,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, //initialize pointers to stack buffers UChar *b1 = b1Stack, *b2 = b2Stack, *b1Prime=NULL, *b3=b3Stack; int32_t b1Len = 0, b2Len, b1PrimeLen, b3Len, - b1Capacity = MAX_LABEL_BUFFER_SIZE, + b1Capacity = MAX_LABEL_BUFFER_SIZE, b2Capacity = MAX_LABEL_BUFFER_SIZE, b3Capacity = MAX_LABEL_BUFFER_SIZE, reqLength=0; @@ -420,7 +420,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, /*UBool srcIsLDH = TRUE; int32_t failPos =0;*/ - // step 1: find out if all the codepoints in src are ASCII + // step 1: find out if all the codepoints in src are ASCII if(srcLength==-1){ srcLength = 0; for(;src[srcLength]!=0;){ @@ -451,7 +451,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, }else{ return 0; } - + if(srcIsASCII == FALSE){ // step 2: process the string b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Capacity, namePrepOptions, parseError, status); @@ -465,7 +465,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, } *status = U_ZERO_ERROR; // reset error - + b1Len = usprep_prepare(nameprep, src, srcLength, b1, b1Len, namePrepOptions, parseError, status); } //bail out on error @@ -479,7 +479,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, b1Len = srcLength; } - // The RFC states that + // The RFC states that // // ToUnicode never fails. If any step fails, then the original input // is returned immediately in that step. @@ -558,7 +558,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, // failPos is always set the index of failure uprv_syntaxError(src,failPos, srcLength,parseError); }else if(src[0] == HYPHEN){ - // fail position is 0 + // fail position is 0 uprv_syntaxError(src,0,srcLength,parseError); }else{ // the last index in the source is always length-1 @@ -587,7 +587,7 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, } uprv_free(caseFlags); - // The RFC states that + // The RFC states that // // ToUnicode never fails. If any step fails, then the original input // is returned immediately in that step. @@ -608,12 +608,12 @@ _internal_toUnicode(const UChar* src, int32_t srcLength, } U_CAPI int32_t U_EXPORT2 -uidna_toASCII(const UChar* src, int32_t srcLength, +uidna_toASCII(const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UParseError* parseError, UErrorCode* status){ - + if(status == NULL || U_FAILURE(*status)){ return 0; } @@ -623,16 +623,16 @@ uidna_toASCII(const UChar* src, int32_t srcLength, } UStringPrepProfile* nameprep = usprep_openByType(USPREP_RFC3491_NAMEPREP, status); - + if(U_FAILURE(*status)){ return -1; } - + int32_t retLen = _internal_toASCII(src, srcLength, dest, destCapacity, options, nameprep, parseError, status); - + /* close the profile*/ usprep_close(nameprep); - + return retLen; } @@ -649,18 +649,18 @@ uidna_toUnicode(const UChar* src, int32_t srcLength, if( (src==NULL) || (srcLength < -1) || (destCapacity<0) || (!dest && destCapacity > 0)){ *status = U_ILLEGAL_ARGUMENT_ERROR; return 0; - } + } UStringPrepProfile* nameprep = usprep_openByType(USPREP_RFC3491_NAMEPREP, status); - + if(U_FAILURE(*status)){ return -1; } - + int32_t retLen = _internal_toUnicode(src, srcLength, dest, destCapacity, options, nameprep, parseError, status); usprep_close(nameprep); - + return retLen; } @@ -683,12 +683,12 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength, int32_t reqLength = 0; UStringPrepProfile* nameprep = usprep_openByType(USPREP_RFC3491_NAMEPREP, status); - + if(U_FAILURE(*status)){ return 0; } - //initialize pointers + //initialize pointers UChar *delimiter = (UChar*)src; UChar *labelStart = (UChar*)src; UChar *currentDest = (UChar*) dest; @@ -703,24 +703,24 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength, labelLen = getNextSeparator(labelStart,remainingLen, &delimiter,&done); labelReqLength = 0; if(!(labelLen==0 && done)){// make sure this is not a root label separator. - - labelReqLength = _internal_toASCII( labelStart, labelLen, - currentDest, remainingDestCapacity, - options, nameprep, + + labelReqLength = _internal_toASCII( labelStart, labelLen, + currentDest, remainingDestCapacity, + options, nameprep, parseError, status); - + if(*status == U_BUFFER_OVERFLOW_ERROR){ - + *status = U_ZERO_ERROR; // reset error remainingDestCapacity = 0; } } - + if(U_FAILURE(*status)){ break; } - + reqLength +=labelReqLength; // adjust the destination pointer if(labelReqLength < remainingDestCapacity){ @@ -754,7 +754,7 @@ uidna_IDNToASCII( const UChar *src, int32_t srcLength, } usprep_close(nameprep); - + return u_terminateUChars(dest, destCapacity, reqLength, status); } @@ -764,7 +764,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, int32_t options, UParseError* parseError, UErrorCode* status){ - + if(status == NULL || U_FAILURE(*status)){ return 0; } @@ -776,7 +776,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, int32_t reqLength = 0; UStringPrepProfile* nameprep = usprep_openByType(USPREP_RFC3491_NAMEPREP, status); - + if(U_FAILURE(*status)){ return 0; } @@ -793,21 +793,21 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, for(;;){ labelLen = getNextSeparator(labelStart,remainingLen, &delimiter,&done); - - // The RFC states that + + // The RFC states that // // ToUnicode never fails. If any step fails, then the original input // is returned immediately in that step. // // _internal_toUnicode will copy the label. - /*if(labelLen==0 && done==FALSE){ + /*if(labelLen==0 && done==FALSE){ *status = U_IDNA_ZERO_LENGTH_LABEL_ERROR; break; }*/ - - labelReqLength = _internal_toUnicode(labelStart, labelLen, - currentDest, remainingDestCapacity, - options, nameprep, + + labelReqLength = _internal_toUnicode(labelStart, labelLen, + currentDest, remainingDestCapacity, + options, nameprep, parseError, status); if(*status == U_BUFFER_OVERFLOW_ERROR){ @@ -818,7 +818,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, if(U_FAILURE(*status)){ break; } - + reqLength +=labelReqLength; // adjust the destination pointer if(labelReqLength < remainingDestCapacity){ @@ -853,7 +853,7 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, } usprep_close(nameprep); - + return u_terminateUChars(dest, destCapacity, reqLength, status); } @@ -871,7 +871,7 @@ uidna_compare( const UChar *s1, int32_t length1, UChar *b1 = b1Stack, *b2 = b2Stack; int32_t b1Len, b2Len, b1Capacity = MAX_IDN_BUFFER_SIZE, b2Capacity = MAX_IDN_BUFFER_SIZE; int32_t result=-1; - + UParseError parseError; b1Len = uidna_IDNToASCII(s1, length1, b1, b1Capacity, options, &parseError, status); @@ -884,9 +884,9 @@ uidna_compare( const UChar *s1, int32_t length1, } *status = U_ZERO_ERROR; // reset error - + b1Len = uidna_IDNToASCII(s1,length1,b1,b1Len, options, &parseError, status); - + } b2Len = uidna_IDNToASCII(s2,length2, b2,b2Capacity, options, &parseError, status); @@ -899,9 +899,9 @@ uidna_compare( const UChar *s1, int32_t length1, } *status = U_ZERO_ERROR; // reset error - + b2Len = uidna_IDNToASCII(s2, length2, b2, b2Len, options, &parseError, status); - + } // when toASCII is applied all label separators are replaced with FULL_STOP result = compareCaseInsensitiveASCII(b1,b1Len,b2,b2Len); diff --git a/deps/icu-small/source/common/uinvchar.cpp b/deps/icu-small/source/common/uinvchar.cpp index 7fce257baf0912..52b890656856d0 100644 --- a/deps/icu-small/source/common/uinvchar.cpp +++ b/deps/icu-small/source/common/uinvchar.cpp @@ -584,7 +584,7 @@ uprv_aestrncpy(uint8_t *dst, const uint8_t *src, int32_t n) { uint8_t *orig_dst = dst; - if(n==-1) { + if(n==-1) { n = static_cast(uprv_strlen((const char*)src)+1); /* copy NUL */ } /* copy non-null */ @@ -605,7 +605,7 @@ uprv_eastrncpy(uint8_t *dst, const uint8_t *src, int32_t n) { uint8_t *orig_dst = dst; - if(n==-1) { + if(n==-1) { n = static_cast(uprv_strlen((const char*)src)+1); /* copy NUL */ } /* copy non-null */ @@ -624,3 +624,4 @@ uprv_eastrncpy(uint8_t *dst, const uint8_t *src, int32_t n) } return orig_dst; } + diff --git a/deps/icu-small/source/common/ulist.cpp b/deps/icu-small/source/common/ulist.cpp index 07cbcc8303ac91..c5180431c31b75 100644 --- a/deps/icu-small/source/common/ulist.cpp +++ b/deps/icu-small/source/common/ulist.cpp @@ -15,10 +15,10 @@ typedef struct UListNode UListNode; struct UListNode { void *data; - + UListNode *next; UListNode *previous; - + /* When data is created with uprv_malloc, needs to be freed during deleteList function. */ UBool forceDelete; }; @@ -27,7 +27,7 @@ struct UList { UListNode *curr; UListNode *head; UListNode *tail; - + int32_t size; }; @@ -35,22 +35,22 @@ static void ulist_addFirstItem(UList *list, UListNode *newItem); U_CAPI UList *U_EXPORT2 ulist_createEmptyList(UErrorCode *status) { UList *newList = NULL; - + if (U_FAILURE(*status)) { return NULL; } - + newList = (UList *)uprv_malloc(sizeof(UList)); if (newList == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; return NULL; } - + newList->curr = NULL; newList->head = NULL; newList->tail = NULL; newList->size = 0; - + return newList; } @@ -90,14 +90,14 @@ static void ulist_removeItem(UList *list, UListNode *p) { U_CAPI void U_EXPORT2 ulist_addItemEndList(UList *list, const void *data, UBool forceDelete, UErrorCode *status) { UListNode *newItem = NULL; - + if (U_FAILURE(*status) || list == NULL || data == NULL) { if (forceDelete) { uprv_free((void *)data); } return; } - + newItem = (UListNode *)uprv_malloc(sizeof(UListNode)); if (newItem == NULL) { if (forceDelete) { @@ -108,7 +108,7 @@ U_CAPI void U_EXPORT2 ulist_addItemEndList(UList *list, const void *data, UBool } newItem->data = (void *)(data); newItem->forceDelete = forceDelete; - + if (list->size == 0) { ulist_addFirstItem(list, newItem); } else { @@ -117,20 +117,20 @@ U_CAPI void U_EXPORT2 ulist_addItemEndList(UList *list, const void *data, UBool list->tail->next = newItem; list->tail = newItem; } - + list->size++; } U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBool forceDelete, UErrorCode *status) { UListNode *newItem = NULL; - + if (U_FAILURE(*status) || list == NULL || data == NULL) { if (forceDelete) { uprv_free((void *)data); } return; } - + newItem = (UListNode *)uprv_malloc(sizeof(UListNode)); if (newItem == NULL) { if (forceDelete) { @@ -141,7 +141,7 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBoo } newItem->data = (void *)(data); newItem->forceDelete = forceDelete; - + if (list->size == 0) { ulist_addFirstItem(list, newItem); } else { @@ -150,7 +150,7 @@ U_CAPI void U_EXPORT2 ulist_addItemBeginList(UList *list, const void *data, UBoo list->head->previous = newItem; list->head = newItem; } - + list->size++; } @@ -184,14 +184,14 @@ U_CAPI UBool U_EXPORT2 ulist_removeString(UList *list, const char *data) { U_CAPI void *U_EXPORT2 ulist_getNext(UList *list) { UListNode *curr = NULL; - + if (list == NULL || list->curr == NULL) { return NULL; } - + curr = list->curr; list->curr = curr->next; - + return curr->data; } @@ -199,7 +199,7 @@ U_CAPI int32_t U_EXPORT2 ulist_getListSize(const UList *list) { if (list != NULL) { return list->size; } - + return -1; } @@ -240,7 +240,7 @@ U_CAPI int32_t U_EXPORT2 ulist_count_keyword_values(UEnumeration *en, UErrorCode if (U_FAILURE(*status)) { return -1; } - + return ulist_getListSize((UList *)(en->context)); } @@ -261,7 +261,7 @@ U_CAPI void U_EXPORT2 ulist_reset_keyword_values_iterator(UEnumeration *en, UErr if (U_FAILURE(*status)) { return ; } - + ulist_resetList((UList *)(en->context)); } diff --git a/deps/icu-small/source/common/uloc.cpp b/deps/icu-small/source/common/uloc.cpp index d96e79b8fdd805..c8a3f1ff731340 100644 --- a/deps/icu-small/source/common/uloc.cpp +++ b/deps/icu-small/source/common/uloc.cpp @@ -478,15 +478,24 @@ static const CanonicalizationMap CANONICALIZE_MAP[] = { /* Test if the locale id has BCP47 u extension and does not have '@' */ #define _hasBCP47Extension(id) (id && uprv_strstr(id, "@") == NULL && getShortestSubtagLength(localeID) == 1) /* Converts the BCP47 id to Unicode id. Does nothing to id if conversion fails */ -#define _ConvertBCP47(finalID, id, buffer, length,err) UPRV_BLOCK_MACRO_BEGIN { \ - if (uloc_forLanguageTag(id, buffer, length, NULL, err) <= 0 || \ - U_FAILURE(*err) || *err == U_STRING_NOT_TERMINATED_WARNING) { \ - finalID=id; \ - if (*err == U_STRING_NOT_TERMINATED_WARNING) { *err = U_BUFFER_OVERFLOW_ERROR; } \ - } else { \ - finalID=buffer; \ - } \ -} UPRV_BLOCK_MACRO_END +static const char* _ConvertBCP47( + const char* id, char* buffer, int32_t length, + UErrorCode* err, int32_t* pLocaleIdSize) { + const char* finalID; + int32_t localeIDSize = uloc_forLanguageTag(id, buffer, length, NULL, err); + if (localeIDSize <= 0 || U_FAILURE(*err) || *err == U_STRING_NOT_TERMINATED_WARNING) { + finalID=id; + if (*err == U_STRING_NOT_TERMINATED_WARNING) { + *err = U_BUFFER_OVERFLOW_ERROR; + } + } else { + finalID=buffer; + } + if (pLocaleIdSize != nullptr) { + *pLocaleIdSize = localeIDSize; + } + return finalID; +} /* Gets the size of the shortest subtag in the given localeID. */ static int32_t getShortestSubtagLength(const char *localeID) { int32_t localeIDLength = static_cast(uprv_strlen(localeID)); @@ -767,7 +776,8 @@ ulocimp_getKeywordValue(const char* localeID, } if (_hasBCP47Extension(localeID)) { - _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status); + tmpLocaleID = _ConvertBCP47(localeID, tempBuffer, + sizeof(tempBuffer), status, nullptr); } else { tmpLocaleID=localeID; } @@ -1404,10 +1414,11 @@ uloc_openKeywords(const char* localeID, } if (_hasBCP47Extension(localeID)) { - _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), status); + tmpLocaleID = _ConvertBCP47(localeID, tempBuffer, + sizeof(tempBuffer), status, nullptr); } else { if (localeID==NULL) { - localeID=uloc_getDefault(); + localeID=uloc_getDefault(); } tmpLocaleID=localeID; } @@ -1473,19 +1484,41 @@ _canonicalize(const char* localeID, ByteSink& sink, uint32_t options, UErrorCode* err) { + if (U_FAILURE(*err)) { + return; + } + int32_t j, fieldCount=0, scriptSize=0, variantSize=0; - char tempBuffer[ULOC_FULLNAME_CAPACITY]; + PreflightingLocaleIDBuffer tempBuffer; // if localeID has a BCP47 extension, tmpLocaleID points to this + CharString localeIDWithHyphens; // if localeID has a BPC47 extension and have _, tmpLocaleID points to this const char* origLocaleID; const char* tmpLocaleID; const char* keywordAssign = NULL; const char* separatorIndicator = NULL; - if (U_FAILURE(*err)) { - return; - } - if (_hasBCP47Extension(localeID)) { - _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err); + const char* localeIDPtr = localeID; + + // convert all underbars to hyphens, unless the "BCP47 extension" comes at the beginning of the string + if (uprv_strchr(localeID, '_') != nullptr && localeID[1] != '-' && localeID[1] != '_') { + localeIDWithHyphens.append(localeID, -1, *err); + if (U_SUCCESS(*err)) { + for (char* p = localeIDWithHyphens.data(); *p != '\0'; ++p) { + if (*p == '_') { + *p = '-'; + } + } + localeIDPtr = localeIDWithHyphens.data(); + } + } + + do { + // After this call tmpLocaleID may point to localeIDPtr which may + // point to either localeID or localeIDWithHyphens.data(). + tmpLocaleID = _ConvertBCP47(localeIDPtr, tempBuffer.getBuffer(), + tempBuffer.getCapacity(), err, + &(tempBuffer.requestedCapacity)); + } while (tempBuffer.needToTryAgain(err)); } else { if (localeID==NULL) { localeID=uloc_getDefault(); @@ -1771,7 +1804,7 @@ uloc_getVariant(const char* localeID, } if (_hasBCP47Extension(localeID)) { - _ConvertBCP47(tmpLocaleID, localeID, tempBuffer, sizeof(tempBuffer), err); + tmpLocaleID =_ConvertBCP47(localeID, tempBuffer, sizeof(tempBuffer), err, nullptr); } else { if (localeID==NULL) { localeID=uloc_getDefault(); diff --git a/deps/icu-small/source/common/uloc_keytype.cpp b/deps/icu-small/source/common/uloc_keytype.cpp index f45aeb53d2a6ba..580244124ee364 100644 --- a/deps/icu-small/source/common/uloc_keytype.cpp +++ b/deps/icu-small/source/common/uloc_keytype.cpp @@ -168,11 +168,13 @@ initFromResourceBundle(UErrorCode& sts) { } // look up type map for the key, and walk through the mapping data - tmpSts = U_ZERO_ERROR; - LocalUResourceBundlePointer typeMapResByKey(ures_getByKey(typeMapRes.getAlias(), legacyKeyId, NULL, &tmpSts)); - if (U_FAILURE(tmpSts)) { - // type map for each key must exist - UPRV_UNREACHABLE; + LocalUResourceBundlePointer typeMapResByKey(ures_getByKey(typeMapRes.getAlias(), legacyKeyId, NULL, &sts)); + if (U_FAILURE(sts)) { + // We fail here if typeMap does not have an entry corresponding to every entry in keyMap (should + // not happen for valid keyTypeData), or if ures_getByKeyfails fails for some other reason + // (e.g. data file cannot be loaded, using stubdata, over-aggressive data filtering has removed + // something like timezoneTypes.res, etc.). Error code is already set. See ICU-21669. + UPRV_UNREACHABLE_ASSERT; } else { LocalUResourceBundlePointer typeMapEntry; @@ -531,3 +533,4 @@ ulocimp_toLegacyType(const char* key, const char* type, UBool* isKnownKey, UBool } return NULL; } + diff --git a/deps/icu-small/source/common/uloc_tag.cpp b/deps/icu-small/source/common/uloc_tag.cpp index 7cc4511175b081..0150e94cefdc1a 100644 --- a/deps/icu-small/source/common/uloc_tag.cpp +++ b/deps/icu-small/source/common/uloc_tag.cpp @@ -139,7 +139,7 @@ static const char* const LEGACY[] = { Updated on 2018-09-12 from https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry . - The table lists redundant tags with preferred value in the IANA languate tag registry. + The table lists redundant tags with preferred value in the IANA language tag registry. It's generated with the following command: curl https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry |\ @@ -951,7 +951,7 @@ _addExtensionToList(ExtensionListEntry **first, ExtensionListEntry *ext, UBool l cmp = *(ext->key) - *(cur->key); } } else if (len == 1) { - cmp = *(ext->key) - LDMLEXT; + cmp = *(ext->key) - LDMLEXT; } else if (curlen == 1) { cmp = LDMLEXT - *(cur->key); } else { @@ -1612,7 +1612,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT } if (pKwds) { - const char *pBcpKey = NULL; /* u extenstion key subtag */ + const char *pBcpKey = NULL; /* u extension key subtag */ const char *pBcpType = NULL; /* beginning of u extension type subtag(s) */ int32_t bcpKeyLen = 0; int32_t bcpTypeLen = 0; @@ -1741,7 +1741,7 @@ _appendLDMLExtensionAsKeywords(const char* ldmlext, ExtensionListEntry** appendT pType = LOCALE_TYPE_YES; } - /* Special handling for u-va-posix, since we want to treat this as a variant, + /* Special handling for u-va-posix, since we want to treat this as a variant, not as a keyword */ if (!variantExists && !uprv_strcmp(pKey, POSIX_KEY) && !uprv_strcmp(pType, POSIX_VALUE) ) { *posixVariant = TRUE; @@ -2047,7 +2047,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta *status = U_MEMORY_ALLOCATION_ERROR; return NULL; } - + if (tagLen > 0) { uprv_memcpy(tagBuf, tag, tagLen); } @@ -2089,6 +2089,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta legacyLen = checkLegacyLen; /* back up for output parsedLen */ int32_t replacementLen = static_cast(uprv_strlen(LEGACY[i+1])); newTagLength = replacementLen + tagLen - checkLegacyLen; + int32_t oldTagLength = tagLen; if (tagLen < newTagLength) { uprv_free(tagBuf); tagBuf = (char*)uprv_malloc(newTagLength + 1); @@ -2102,7 +2103,10 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta parsedLenDelta = checkLegacyLen - replacementLen; uprv_strcpy(t->buf, LEGACY[i + 1]); if (checkLegacyLen != tagLen) { - uprv_strcpy(t->buf + replacementLen, tag + checkLegacyLen); + uprv_memcpy(t->buf + replacementLen, tag + checkLegacyLen, + oldTagLength - checkLegacyLen); + // NUL-terminate after memcpy(). + t->buf[replacementLen + oldTagLength - checkLegacyLen] = 0; } break; } @@ -2306,7 +2310,7 @@ ultag_parse(const char* tag, int32_t tagLen, int32_t* parsedLen, UErrorCode* sta if (next & EXTV) { if (_isExtensionSubtag(pSubtag, subtagLen)) { if (pExtValueSubtag == NULL) { - /* if the start postion of this extension's value is not yet, + /* if the start position of this extension's value is not yet, this one is the first value subtag */ pExtValueSubtag = pSubtag; } diff --git a/deps/icu-small/source/common/ulocimp.h b/deps/icu-small/source/common/ulocimp.h index 3875664b2d4132..755e02c6b88eac 100644 --- a/deps/icu-small/source/common/ulocimp.h +++ b/deps/icu-small/source/common/ulocimp.h @@ -43,10 +43,10 @@ uloc_getTableStringWithFallback( /*returns true if a is an ID separator false otherwise*/ #define _isIDSeparator(a) (a == '_' || a == '-') -U_CFUNC const char* +U_CFUNC const char* uloc_getCurrentCountryID(const char* oldID); -U_CFUNC const char* +U_CFUNC const char* uloc_getCurrentLanguageID(const char* oldID); U_CFUNC void @@ -157,7 +157,7 @@ ulocimp_forLanguageTag(const char* langtag, * (3) if inferRegion is true, the region suggested by * getLikelySubtags on the localeID. * If no region is found, returns length 0. - * + * * @param localeID * The complete locale ID (with keywords) from which * to get the region to use for supplemental data. @@ -166,7 +166,7 @@ ulocimp_forLanguageTag(const char* langtag, * no other region is found. * @param region * Buffer in which to put the region ID found; should - * have a capacity at least ULOC_COUNTRY_CAPACITY. + * have a capacity at least ULOC_COUNTRY_CAPACITY. * @param regionCapacity * The actual capacity of the region buffer. * @param status @@ -307,4 +307,72 @@ U_CAPI const char* const* ulocimp_getKnownCanonicalizedLocaleForTest(int32_t* le // Return true if the value is already canonicalized. U_CAPI bool ulocimp_isCanonicalizedLocaleForTest(const char* localeName); +/** + * A utility class for handling locale IDs that may be longer than ULOC_FULLNAME_CAPACITY. + * This encompasses all of the logic to allocate a temporary locale ID buffer on the stack, + * and then, if it's not big enough, reallocate it on the heap and try again. + * + * You use it like this: + * UErrorCode err = U_ZERO_ERROR; + * + * PreflightingLocaleIDBuffer tempBuffer; + * do { + * tempBuffer.requestedCapacity = uloc_doSomething(localeID, tempBuffer.getBuffer(), tempBuffer.getCapacity(), &err); + * } while (tempBuffer.needToTryAgain(&err)); + * if (U_SUCCESS(err)) { + * uloc_doSomethingWithTheResult(tempBuffer.getBuffer()); + * } + */ +class PreflightingLocaleIDBuffer { +private: + char stackBuffer[ULOC_FULLNAME_CAPACITY]; + char* heapBuffer = nullptr; + int32_t capacity = ULOC_FULLNAME_CAPACITY; + +public: + int32_t requestedCapacity = ULOC_FULLNAME_CAPACITY; + + // No heap allocation. Use only on the stack. + static void* U_EXPORT2 operator new(size_t) U_NOEXCEPT = delete; + static void* U_EXPORT2 operator new[](size_t) U_NOEXCEPT = delete; +#if U_HAVE_PLACEMENT_NEW + static void* U_EXPORT2 operator new(size_t, void*) U_NOEXCEPT = delete; +#endif + + PreflightingLocaleIDBuffer() {} + + ~PreflightingLocaleIDBuffer() { uprv_free(heapBuffer); } + + char* getBuffer() { + if (heapBuffer == nullptr) { + return stackBuffer; + } else { + return heapBuffer; + } + } + + int32_t getCapacity() { + return capacity; + } + + bool needToTryAgain(UErrorCode* err) { + if (heapBuffer != nullptr) { + return false; + } + + if (*err == U_BUFFER_OVERFLOW_ERROR || *err == U_STRING_NOT_TERMINATED_WARNING) { + int32_t newCapacity = requestedCapacity + 2; // one for the terminating null, one just for paranoia + heapBuffer = static_cast(uprv_malloc(newCapacity)); + if (heapBuffer == nullptr) { + *err = U_MEMORY_ALLOCATION_ERROR; + } else { + *err = U_ZERO_ERROR; + capacity = newCapacity; + } + return U_SUCCESS(*err); + } + return false; + } +}; + #endif diff --git a/deps/icu-small/source/common/umapfile.cpp b/deps/icu-small/source/common/umapfile.cpp index 40b543fb2219bc..3e714876a4dc62 100644 --- a/deps/icu-small/source/common/umapfile.cpp +++ b/deps/icu-small/source/common/umapfile.cpp @@ -136,7 +136,7 @@ typedef HANDLE MemoryMap; /* open the input file */ #if U_PLATFORM_HAS_WINUWP_API == 0 - // Note: In the non-UWP code-path (ie: Win32), the value of the path variable might have come from + // Note: In the non-UWP code-path (ie: Win32), the value of the path variable might have come from // the CRT 'getenv' function, and would be therefore be encoded in the default ANSI code page. // This means that we can't call the *W version of API below, whereas in the UWP code-path // there is no 'getenv' call, and thus the string will be only UTF-8/Invariant characters. @@ -178,7 +178,7 @@ typedef HANDLE MemoryMap; CloseHandle(file); if (map == nullptr) { - // If we failed to create the mapping due to an out-of-memory error, then + // If we failed to create the mapping due to an out-of-memory error, then // we want to report that error back to the caller. if (HRESULT_FROM_WIN32(GetLastError()) == E_OUTOFMEMORY) { *status = U_MEMORY_ALLOCATION_ERROR; @@ -360,14 +360,14 @@ typedef HANDLE MemoryMap; } return dest; } - + /*------------------------------------------------------------------------------ - * - * computeDirPath given a user-supplied path of an item to be opened, - * compute and return - * - the full directory path to be used + * + * computeDirPath given a user-supplied path of an item to be opened, + * compute and return + * - the full directory path to be used * when opening the file. - * - Pointer to null at end of above returned path + * - Pointer to null at end of above returned path * * Parameters: * path: input path. Buffer is not altered. @@ -379,23 +379,23 @@ typedef HANDLE MemoryMap; * TODO: This works the way ICU historically has, but the * whole data fallback search path is so complicated that * probably almost no one will ever really understand it, - * the potential for confusion is large. (It's not just + * the potential for confusion is large. (It's not just * this one function, but the whole scheme.) - * + * *------------------------------------------------------------------------------*/ static char *uprv_computeDirPath(const char *path, char *pathBuffer) { char *finalSlash; /* Ptr to last dir separator in input path, or null if none. */ int32_t pathLen; /* Length of the returned directory path */ - + finalSlash = 0; if (path != 0) { finalSlash = uprv_strrchr(path, U_FILE_SEP_CHAR); } - + *pathBuffer = 0; if (finalSlash == 0) { - /* No user-supplied path. + /* No user-supplied path. * Copy the ICU_DATA path to the path buffer and return that*/ const char *icuDataDir; icuDataDir=u_getDataDirectory(); @@ -405,8 +405,8 @@ typedef HANDLE MemoryMap; /* there is no icuDataDir either. Just return the empty pathBuffer. */ return pathBuffer; } - } - + } + /* User supplied path did contain a directory portion. * Copy it to the output path buffer */ pathLen = (int32_t)(finalSlash - path + 1); @@ -414,7 +414,7 @@ typedef HANDLE MemoryMap; *(pathBuffer+pathLen) = 0; return pathBuffer+pathLen; } - + # define DATA_TYPE "dat" @@ -522,7 +522,7 @@ typedef HANDLE MemoryMap; pData->map = nullptr; pData->mapAddr = nullptr; pData->pHeader = nullptr; - } + } } #else diff --git a/deps/icu-small/source/common/umapfile.h b/deps/icu-small/source/common/umapfile.h index 92bd567a2a9895..adc265203dcc2d 100644 --- a/deps/icu-small/source/common/umapfile.h +++ b/deps/icu-small/source/common/umapfile.h @@ -18,7 +18,7 @@ * whatever means are available. * * These functions are part of the ICU internal implementation, and - * are not inteded to be used directly by applications. + * are not intended to be used directly by applications. * *----------------------------------------------------------------------------------*/ diff --git a/deps/icu-small/source/common/umath.cpp b/deps/icu-small/source/common/umath.cpp index 3ab72ab482386c..7cf4b317494083 100644 --- a/deps/icu-small/source/common/umath.cpp +++ b/deps/icu-small/source/common/umath.cpp @@ -23,3 +23,4 @@ uprv_min(int32_t x, int32_t y) { return (x > y ? y : x); } + diff --git a/deps/icu-small/source/common/umutex.h b/deps/icu-small/source/common/umutex.h index 57955353d0d6ff..8d76b3f3e6f596 100644 --- a/deps/icu-small/source/common/umutex.h +++ b/deps/icu-small/source/common/umutex.h @@ -37,7 +37,7 @@ #error U_USER_ATOMICS and U_USER_MUTEX_H are not supported #endif -// Export an explicit template instantiation of std::atomic. +// Export an explicit template instantiation of std::atomic. // When building DLLs for Windows this is required as it is used as a data member of the exported SharedObject class. // See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples. // diff --git a/deps/icu-small/source/common/unames.cpp b/deps/icu-small/source/common/unames.cpp index c55e2d662acff5..5776058f957f40 100644 --- a/deps/icu-small/source/common/unames.cpp +++ b/deps/icu-small/source/common/unames.cpp @@ -144,7 +144,7 @@ static const char * const charCatNames[U_CHAR_EXTENDED_CATEGORY_COUNT] = { "format", "private use area", "surrogate", - "dash punctuation", + "dash punctuation", "start punctuation", "end punctuation", "connector punctuation", @@ -451,7 +451,7 @@ static uint16_t getExtName(uint32_t code, char *buffer, uint16_t bufferLength) { UChar32 cp; int ndigits, i; - + WRITE_CHAR(buffer, bufferLength, length, '<'); while (catname[length - 1]) { WRITE_CHAR(buffer, bufferLength, length, catname[length - 1]); @@ -639,7 +639,7 @@ enumGroupNames(UCharNames *names, const uint16_t *group, * It only needs to do it if it is called with a real function and not * with the dummy DO_FIND_NAME, because u_charFromName() does a check * for extended names by itself. - */ + */ static UBool enumExtNames(UChar32 start, UChar32 end, UEnumCharNamesFn *fn, void *context) @@ -647,7 +647,7 @@ enumExtNames(UChar32 start, UChar32 end, if(fn!=DO_FIND_NAME) { char buffer[200]; uint16_t length; - + while(start<=end) { buffer[length = getExtName(start, buffer, sizeof(buffer))] = 0; /* here, we assume that the buffer is large enough */ @@ -765,7 +765,7 @@ enumNames(UCharNames *names, } return enumExtNames(start, limit - 1, fn, context); } - + return TRUE; } diff --git a/deps/icu-small/source/common/unicode/appendable.h b/deps/icu-small/source/common/unicode/appendable.h index fc99254de14e58..f77df88e39c787 100644 --- a/deps/icu-small/source/common/unicode/appendable.h +++ b/deps/icu-small/source/common/unicode/appendable.h @@ -174,7 +174,7 @@ class U_COMMON_API UnicodeStringAppendable : public Appendable { * @return true if the operation succeeded * @stable ICU 4.8 */ - virtual UBool appendCodeUnit(char16_t c); + virtual UBool appendCodeUnit(char16_t c) override; /** * Appends a code point to the string. @@ -182,7 +182,7 @@ class U_COMMON_API UnicodeStringAppendable : public Appendable { * @return true if the operation succeeded * @stable ICU 4.8 */ - virtual UBool appendCodePoint(UChar32 c); + virtual UBool appendCodePoint(UChar32 c) override; /** * Appends a string to the UnicodeString. @@ -191,7 +191,7 @@ class U_COMMON_API UnicodeStringAppendable : public Appendable { * @return true if the operation succeeded * @stable ICU 4.8 */ - virtual UBool appendString(const char16_t *s, int32_t length); + virtual UBool appendString(const char16_t *s, int32_t length) override; /** * Tells the UnicodeString that the caller is going to append roughly @@ -200,7 +200,7 @@ class U_COMMON_API UnicodeStringAppendable : public Appendable { * @return true if the operation succeeded * @stable ICU 4.8 */ - virtual UBool reserveAppendCapacity(int32_t appendCapacity); + virtual UBool reserveAppendCapacity(int32_t appendCapacity) override; /** * Returns a writable buffer for appending and writes the buffer's capacity to @@ -226,7 +226,7 @@ class U_COMMON_API UnicodeStringAppendable : public Appendable { virtual char16_t *getAppendBuffer(int32_t minCapacity, int32_t desiredCapacityHint, char16_t *scratch, int32_t scratchCapacity, - int32_t *resultCapacity); + int32_t *resultCapacity) override; private: UnicodeString &str; diff --git a/deps/icu-small/source/common/unicode/brkiter.h b/deps/icu-small/source/common/unicode/brkiter.h index 9bba5fcccc319d..3a121cf703b337 100644 --- a/deps/icu-small/source/common/unicode/brkiter.h +++ b/deps/icu-small/source/common/unicode/brkiter.h @@ -99,7 +99,7 @@ U_NAMESPACE_BEGIN *

* Code snippets illustrating the use of the Break Iterator APIs * are available in the ICU User Guide, - * http://icu-project.org/userguide/boundaryAnalysis.html + * https://unicode-org.github.io/icu/userguide/boundaryanalysis/ * and in the sample program icu/source/samples/break/break.cpp * */ @@ -124,7 +124,7 @@ class U_COMMON_API BreakIterator : public UObject { * object, and styles are not considered. * @stable ICU 2.0 */ - virtual UBool operator==(const BreakIterator&) const = 0; + virtual bool operator==(const BreakIterator&) const = 0; /** * Returns the complement of the result of operator== @@ -132,7 +132,7 @@ class U_COMMON_API BreakIterator : public UObject { * @return the complement of the result of operator== * @stable ICU 2.0 */ - UBool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); } + bool operator!=(const BreakIterator& rhs) const { return !operator==(rhs); } /** * Return a polymorphic copy of this object. This is an abstract @@ -146,7 +146,7 @@ class U_COMMON_API BreakIterator : public UObject { * will return distinct unequal values. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const = 0; + virtual UClassID getDynamicClassID(void) const override = 0; /** * Return a CharacterIterator over the text being analyzed. diff --git a/deps/icu-small/source/common/unicode/bytestream.h b/deps/icu-small/source/common/unicode/bytestream.h index 5f116910f46ed6..997746e428040f 100644 --- a/deps/icu-small/source/common/unicode/bytestream.h +++ b/deps/icu-small/source/common/unicode/bytestream.h @@ -168,7 +168,7 @@ class U_COMMON_API ByteSink : public UMemory { // ------------------------------------------------------------- // Some standard implementations -/** +/** * Implementation of ByteSink that writes to a flat byte array, * with bounds-checking: * This sink will not write more than capacity bytes to outbuf. @@ -206,7 +206,7 @@ class U_COMMON_API CheckedArrayByteSink : public ByteSink { * @param n the number of bytes; must be non-negative * @stable ICU 4.2 */ - virtual void Append(const char* bytes, int32_t n); + virtual void Append(const char* bytes, int32_t n) override; /** * Returns a writable buffer for appending and writes the buffer's capacity to * *result_capacity. For details see the base class documentation. @@ -224,7 +224,7 @@ class U_COMMON_API CheckedArrayByteSink : public ByteSink { virtual char* GetAppendBuffer(int32_t min_capacity, int32_t desired_capacity_hint, char* scratch, int32_t scratch_capacity, - int32_t* result_capacity); + int32_t* result_capacity) override; /** * Returns the number of bytes actually written to the sink. * @return number of bytes written to the buffer @@ -258,7 +258,7 @@ class U_COMMON_API CheckedArrayByteSink : public ByteSink { CheckedArrayByteSink &operator=(const CheckedArrayByteSink &) = delete; }; -/** +/** * Implementation of ByteSink that writes to a "string". * The StringClass is usually instantiated with a std::string. * @stable ICU 4.2 @@ -274,7 +274,7 @@ class StringByteSink : public ByteSink { StringByteSink(StringClass* dest) : dest_(dest) { } /** * Constructs a ByteSink that reserves append capacity and will append bytes to the dest string. - * + * * @param dest pointer to string object to append to * @param initialAppendCapacity capacity beyond dest->length() to be reserve()d * @stable ICU 60 @@ -291,7 +291,7 @@ class StringByteSink : public ByteSink { * @param n the number of bytes; must be non-negative * @stable ICU 4.2 */ - virtual void Append(const char* data, int32_t n) { dest_->append(data, n); } + virtual void Append(const char* data, int32_t n) override { dest_->append(data, n); } private: StringClass* dest_; diff --git a/deps/icu-small/source/common/unicode/bytestriebuilder.h b/deps/icu-small/source/common/unicode/bytestriebuilder.h index 1861fb8b3f9a89..382f5e0095fd3f 100644 --- a/deps/icu-small/source/common/unicode/bytestriebuilder.h +++ b/deps/icu-small/source/common/unicode/bytestriebuilder.h @@ -134,21 +134,21 @@ class U_COMMON_API BytesTrieBuilder : public StringTrieBuilder { void buildBytes(UStringTrieBuildOption buildOption, UErrorCode &errorCode); - virtual int32_t getElementStringLength(int32_t i) const; - virtual char16_t getElementUnit(int32_t i, int32_t byteIndex) const; - virtual int32_t getElementValue(int32_t i) const; + virtual int32_t getElementStringLength(int32_t i) const override; + virtual char16_t getElementUnit(int32_t i, int32_t byteIndex) const override; + virtual int32_t getElementValue(int32_t i) const override; - virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t byteIndex) const; + virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t byteIndex) const override; - virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byteIndex) const; - virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t count) const; - virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const; + virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t byteIndex) const override; + virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t byteIndex, int32_t count) const override; + virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t byteIndex, char16_t byte) const override; - virtual UBool matchNodesCanHaveValues() const { return false; } + virtual UBool matchNodesCanHaveValues() const override { return false; } - virtual int32_t getMaxBranchLinearSubNodeLength() const { return BytesTrie::kMaxBranchLinearSubNodeLength; } - virtual int32_t getMinLinearMatch() const { return BytesTrie::kMinLinearMatch; } - virtual int32_t getMaxLinearMatchLength() const { return BytesTrie::kMaxLinearMatchLength; } + virtual int32_t getMaxBranchLinearSubNodeLength() const override { return BytesTrie::kMaxBranchLinearSubNodeLength; } + virtual int32_t getMinLinearMatch() const override { return BytesTrie::kMinLinearMatch; } + virtual int32_t getMaxLinearMatchLength() const override { return BytesTrie::kMaxLinearMatchLength; } /** * @internal (private) @@ -156,22 +156,22 @@ class U_COMMON_API BytesTrieBuilder : public StringTrieBuilder { class BTLinearMatchNode : public LinearMatchNode { public: BTLinearMatchNode(const char *units, int32_t len, Node *nextNode); - virtual UBool operator==(const Node &other) const; - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual void write(StringTrieBuilder &builder) override; private: const char *s; }; - + virtual Node *createLinearMatchNode(int32_t i, int32_t byteIndex, int32_t length, - Node *nextNode) const; + Node *nextNode) const override; UBool ensureCapacity(int32_t length); - virtual int32_t write(int32_t byte); + virtual int32_t write(int32_t byte) override; int32_t write(const char *b, int32_t length); - virtual int32_t writeElementUnits(int32_t i, int32_t byteIndex, int32_t length); - virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal); - virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t node); - virtual int32_t writeDeltaTo(int32_t jumpTarget); + virtual int32_t writeElementUnits(int32_t i, int32_t byteIndex, int32_t length) override; + virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal) override; + virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t node) override; + virtual int32_t writeDeltaTo(int32_t jumpTarget) override; static int32_t internalEncodeDelta(int32_t i, char intBytes[]); CharString *strings; // Pointer not object so we need not #include internal charstr.h. diff --git a/deps/icu-small/source/common/unicode/caniter.h b/deps/icu-small/source/common/unicode/caniter.h index 8ba4cc7daad3c1..6e57ef5e3ba1c6 100644 --- a/deps/icu-small/source/common/unicode/caniter.h +++ b/deps/icu-small/source/common/unicode/caniter.h @@ -23,7 +23,7 @@ * \file * \brief C++ API: Canonical Iterator */ - + /** Should permutation skip characters with combining class zero * Should be either true or false. This is a compile time option * @stable ICU 2.4 @@ -145,7 +145,7 @@ class U_COMMON_API CanonicalIterator U_FINAL : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: // ===================== PRIVATES ============================== @@ -194,7 +194,7 @@ class U_COMMON_API CanonicalIterator U_FINAL : public UObject { /** * See if the decomposition of cp2 is at segment starting at segmentPos - * (with canonical rearrangment!) + * (with canonical rearrangement!) * If so, take the remainder, and return the equivalents */ //Set extract(int comp, String segment, int segmentPos, StringBuffer buffer); diff --git a/deps/icu-small/source/common/unicode/chariter.h b/deps/icu-small/source/common/unicode/chariter.h index f7ecd8e0036ce2..4f320b90e2c3a4 100644 --- a/deps/icu-small/source/common/unicode/chariter.h +++ b/deps/icu-small/source/common/unicode/chariter.h @@ -22,7 +22,7 @@ * \file * \brief C++ API: Character Iterator */ - + U_NAMESPACE_BEGIN /** * Abstract class that defines an API for forward-only iteration @@ -71,7 +71,7 @@ U_NAMESPACE_BEGIN * * * Example: - * \code + * \code * void function1(ForwardCharacterIterator &it) { * UChar32 c; * while(it.hasNext()) { @@ -99,51 +99,51 @@ class U_COMMON_API ForwardCharacterIterator : public UObject { * @stable ICU 2.0 */ enum { DONE = 0xffff }; - + /** - * Destructor. + * Destructor. * @stable ICU 2.0 */ virtual ~ForwardCharacterIterator(); - + /** * Returns true when both iterators refer to the same - * character in the same character-storage object. + * character in the same character-storage object. * @param that The ForwardCharacterIterator to be compared for equality * @return true when both iterators refer to the same * character in the same character-storage object * @stable ICU 2.0 */ - virtual UBool operator==(const ForwardCharacterIterator& that) const = 0; - + virtual bool operator==(const ForwardCharacterIterator& that) const = 0; + /** * Returns true when the iterators refer to different * text-storage objects, or to different characters in the - * same text-storage object. + * same text-storage object. * @param that The ForwardCharacterIterator to be compared for inequality * @return true when the iterators refer to different * text-storage objects, or to different characters in the * same text-storage object * @stable ICU 2.0 */ - inline UBool operator!=(const ForwardCharacterIterator& that) const; - + inline bool operator!=(const ForwardCharacterIterator& that) const; + /** - * Generates a hash code for this iterator. + * Generates a hash code for this iterator. * @return the hash code. * @stable ICU 2.0 */ virtual int32_t hashCode(void) const = 0; - + /** * Returns a UClassID for this ForwardCharacterIterator ("poor man's * RTTI").

Despite the fact that this function is public, - * DO NOT CONSIDER IT PART OF CHARACTERITERATOR'S API! - * @return a UClassID for this ForwardCharacterIterator + * DO NOT CONSIDER IT PART OF CHARACTERITERATOR'S API! + * @return a UClassID for this ForwardCharacterIterator * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const = 0; - + virtual UClassID getDynamicClassID(void) const override = 0; + /** * Gets the current code unit for returning and advances to the next code unit * in the iteration range @@ -153,7 +153,7 @@ class U_COMMON_API ForwardCharacterIterator : public UObject { * @stable ICU 2.0 */ virtual char16_t nextPostInc(void) = 0; - + /** * Gets the current code point for returning and advances to the next code point * in the iteration range @@ -163,7 +163,7 @@ class U_COMMON_API ForwardCharacterIterator : public UObject { * @stable ICU 2.0 */ virtual UChar32 next32PostInc(void) = 0; - + /** * Returns false if there are no more code units or code points * at or after the current position in the iteration range. @@ -174,14 +174,14 @@ class U_COMMON_API ForwardCharacterIterator : public UObject { * @stable ICU 2.0 */ virtual UBool hasNext() = 0; - + protected: /** Default constructor to be overridden in the implementing class. @stable ICU 2.0*/ ForwardCharacterIterator(); - + /** Copy constructor to be overridden in the implementing class. @stable ICU 2.0*/ ForwardCharacterIterator(const ForwardCharacterIterator &other); - + /** * Assignment operator to be overridden in the implementing class. * @stable ICU 2.0 @@ -293,7 +293,7 @@ class U_COMMON_API ForwardCharacterIterator : public UObject { * \endcode * * Traverse the text from start to finish - *

+ * 
 
  * \code
  *  void traverseForward(CharacterIterator& iter)
  *  {
@@ -314,7 +314,7 @@ class U_COMMON_API ForwardCharacterIterator : public UObject {
  *  }
  * \endcode
  * 
- * Traverse both forward and backward from a given position in the text. + * Traverse both forward and backward from a given position in the text. * Calls to notBoundary() in this example represents some additional stopping criteria. *
  * \code
@@ -329,7 +329,7 @@ class U_COMMON_API ForwardCharacterIterator : public UObject {
  *          c != CharacterIterator.DONE && (Unicode::isLetter(c) || Unicode::isDigit(c));
  *          c = iter.previous()) {}
  *      int32_t start = iter.getIndex() + 1;
- *
+ *  
  *      cout << "start: " << start << " end: " << end << endl;
  *      for (c = iter.setIndex(start); iter.getIndex() < end; c = iter.next() ) {
  *          processChar(c);
@@ -376,7 +376,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * Returns a pointer to a new CharacterIterator of the same
      * concrete class as this one, and referring to the same
      * character in the same text-storage object as this one.  The
-     * caller is responsible for deleting the new clone.
+     * caller is responsible for deleting the new clone.  
      * @return a pointer to a new CharacterIterator
      * @stable ICU 2.0
      */
@@ -439,7 +439,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * @stable ICU 2.0
      */
     virtual char16_t         last(void) = 0;
-
+        
     /**
      * Sets the iterator to refer to the last code point in its
      * iteration range, and returns that code unit.
@@ -461,7 +461,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
     /**
      * Sets the iterator to refer to the "position"-th code unit
      * in the text-storage object the iterator refers to, and
-     * returns that code unit.
+     * returns that code unit.  
      * @param position the "position"-th code unit in the text-storage object
      * @return the "position"-th code unit.
      * @stable ICU 2.0
@@ -482,19 +482,19 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
     virtual UChar32       setIndex32(int32_t position) = 0;
 
     /**
-     * Returns the code unit the iterator currently refers to.
-     * @return the current code unit.
+     * Returns the code unit the iterator currently refers to. 
+     * @return the current code unit. 
      * @stable ICU 2.0
      */
     virtual char16_t         current(void) const = 0;
-
+        
     /**
-     * Returns the code point the iterator currently refers to.
+     * Returns the code point the iterator currently refers to.  
      * @return the current code point.
      * @stable ICU 2.0
      */
     virtual UChar32       current32(void) const = 0;
-
+        
     /**
      * Advances to the next code unit in the iteration range
      * (toward endIndex()), and returns that code unit.  If there are
@@ -503,7 +503,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * @stable ICU 2.0
      */
     virtual char16_t         next(void) = 0;
-
+        
     /**
      * Advances to the next code point in the iteration range
      * (toward endIndex()), and returns that code point.  If there are
@@ -515,11 +515,11 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * @stable ICU 2.0
      */
     virtual UChar32       next32(void) = 0;
-
+        
     /**
      * Advances to the previous code unit in the iteration range
      * (toward startIndex()), and returns that code unit.  If there are
-     * no more code units to return, returns DONE.
+     * no more code units to return, returns DONE.  
      * @return the previous code unit.
      * @stable ICU 2.0
      */
@@ -528,8 +528,8 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
     /**
      * Advances to the previous code point in the iteration range
      * (toward startIndex()), and returns that code point.  If there are
-     * no more code points to return, returns DONE.
-     * @return the previous code point.
+     * no more code points to return, returns DONE. 
+     * @return the previous code point. 
      * @stable ICU 2.0
      */
     virtual UChar32       previous32(void) = 0;
@@ -550,29 +550,29 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * object of the character returned by first().  Since it's
      * possible to create an iterator that iterates across only
      * part of a text-storage object, this number isn't
-     * necessarily 0.
+     * necessarily 0.  
      * @returns the numeric index in the underlying text-storage
      * object of the character returned by first().
      * @stable ICU 2.0
      */
     inline int32_t       startIndex(void) const;
-
+        
     /**
      * Returns the numeric index in the underlying text-storage
      * object of the position immediately BEYOND the character
-     * returned by last().
+     * returned by last().  
      * @return the numeric index in the underlying text-storage
      * object of the position immediately BEYOND the character
      * returned by last().
      * @stable ICU 2.0
      */
     inline int32_t       endIndex(void) const;
-
+        
     /**
      * Returns the numeric index in the underlying text-storage
      * object of the character the iterator currently refers to
-     * (i.e., the character returned by current()).
-     * @return the numeric index in the text-storage object of
+     * (i.e., the character returned by current()).  
+     * @return the numeric index in the text-storage object of 
      * the character the iterator currently refers to
      * @stable ICU 2.0
      */
@@ -618,8 +618,8 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
 
     /**
      * Copies the text under iteration into the UnicodeString
-     * referred to by "result".
-     * @param result Receives a copy of the text under iteration.
+     * referred to by "result".  
+     * @param result Receives a copy of the text under iteration.  
      * @stable ICU 2.0
      */
     virtual void            getText(UnicodeString&  result) = 0;
@@ -648,7 +648,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
      * @stable ICU 2.0
      */
     CharacterIterator(int32_t length, int32_t textBegin, int32_t textEnd, int32_t position);
-
+  
     /**
      * Copy constructor.
      *
@@ -692,7 +692,7 @@ class U_COMMON_API CharacterIterator : public ForwardCharacterIterator {
     int32_t  end;
 };
 
-inline UBool
+inline bool
 ForwardCharacterIterator::operator!=(const ForwardCharacterIterator& that) const {
     return !operator==(that);
 }
diff --git a/deps/icu-small/source/common/unicode/dbbi.h b/deps/icu-small/source/common/unicode/dbbi.h
index 9031c0b96b1b40..3de9cc381408c5 100644
--- a/deps/icu-small/source/common/unicode/dbbi.h
+++ b/deps/icu-small/source/common/unicode/dbbi.h
@@ -25,7 +25,7 @@
  * \file
  * \brief C++ API: Dictionary Based Break Iterator
  */
-
+ 
 U_NAMESPACE_BEGIN
 
 #ifndef U_HIDE_DEPRECATED_API
diff --git a/deps/icu-small/source/common/unicode/docmain.h b/deps/icu-small/source/common/unicode/docmain.h
index 1b88eca92b9e9c..4e29e283cdea4b 100644
--- a/deps/icu-small/source/common/unicode/docmain.h
+++ b/deps/icu-small/source/common/unicode/docmain.h
@@ -1,7 +1,7 @@
 // © 2016 and later: Unicode, Inc. and others.
 // License & terms of use: http://www.unicode.org/copyright.html
 /********************************************************************
- * COPYRIGHT:
+ * COPYRIGHT: 
  * Copyright (c) 1997-2012, International Business Machines Corporation and
  * others. All Rights Reserved.
  *
@@ -22,7 +22,7 @@
 /*! \mainpage
  *
  * \section API API Reference Usage
- *
+ * 
  * 

C++ Programmers:

*

Use Class Hierarchy or Alphabetical List * or Compound List @@ -31,7 +31,7 @@ * "BreakIterator". Once you are at the class, you will find an inheritance * chart, a list of the public members, a detailed description of the class, * then detailed member descriptions.

- * + * *

C Programmers:

*

Use Module List or File Members * to find a list of all the functions and constants. @@ -46,8 +46,8 @@ * *

API References for Previous Releases

*

The API References for each release of ICU are also available as - * a zip file from the ICU - * download page.

+ * a zip file from the ICU + * download page.

* *
* diff --git a/deps/icu-small/source/common/unicode/dtintrv.h b/deps/icu-small/source/common/unicode/dtintrv.h index 7932ea660fa4dd..46a94ce3495886 100644 --- a/deps/icu-small/source/common/unicode/dtintrv.h +++ b/deps/icu-small/source/common/unicode/dtintrv.h @@ -6,7 +6,7 @@ * others. All Rights Reserved. ******************************************************************************* * -* File DTINTRV.H +* File DTINTRV.H * ******************************************************************************* */ @@ -36,7 +36,7 @@ U_NAMESPACE_BEGIN class U_COMMON_API DateInterval : public UObject { public: - /** + /** * Construct a DateInterval given a from date and a to date. * @param fromDate The from date in date interval. * @param toDate The to date in date interval. @@ -49,15 +49,15 @@ class U_COMMON_API DateInterval : public UObject { * @stable ICU 4.0 */ virtual ~DateInterval(); - - /** + + /** * Get the from date. * @return the from date in dateInterval. * @stable ICU 4.0 */ inline UDate getFromDate() const; - /** + /** * Get the to date. * @return the to date in dateInterval. * @stable ICU 4.0 @@ -89,9 +89,9 @@ class U_COMMON_API DateInterval : public UObject { * other classes have different class IDs. * @stable ICU 4.0 */ - virtual UClassID getDynamicClassID(void) const; - + virtual UClassID getDynamicClassID(void) const override; + /** * Copy constructor. * @stable ICU 4.0 @@ -109,18 +109,18 @@ class U_COMMON_API DateInterval : public UObject { * @return true if the two DateIntervals are the same * @stable ICU 4.0 */ - virtual UBool operator==(const DateInterval& other) const; + virtual bool operator==(const DateInterval& other) const; /** * Non-equality operator * @return true if the two DateIntervals are not the same * @stable ICU 4.0 */ - inline UBool operator!=(const DateInterval& other) const; + inline bool operator!=(const DateInterval& other) const; /** - * clone this object. + * clone this object. * The caller owns the result and should delete it when done. * @return a cloned DateInterval * @stable ICU 4.0 @@ -128,7 +128,7 @@ class U_COMMON_API DateInterval : public UObject { virtual DateInterval* clone() const; private: - /** + /** * Default constructor, not implemented. */ DateInterval(); @@ -139,20 +139,20 @@ class U_COMMON_API DateInterval : public UObject { } ;// end class DateInterval -inline UDate -DateInterval::getFromDate() const { - return fromDate; +inline UDate +DateInterval::getFromDate() const { + return fromDate; } -inline UDate -DateInterval::getToDate() const { - return toDate; +inline UDate +DateInterval::getToDate() const { + return toDate; } -inline UBool -DateInterval::operator!=(const DateInterval& other) const { +inline bool +DateInterval::operator!=(const DateInterval& other) const { return ( !operator==(other) ); } diff --git a/deps/icu-small/source/common/unicode/enumset.h b/deps/icu-small/source/common/unicode/enumset.h index 82d633ed016b5e..bde8c455c0dd2b 100644 --- a/deps/icu-small/source/common/unicode/enumset.h +++ b/deps/icu-small/source/common/unicode/enumset.h @@ -25,7 +25,7 @@ U_NAMESPACE_BEGIN /* Can't use #ifndef U_HIDE_INTERNAL_API for the entire EnumSet class, needed in .h file declarations */ /** - * enum bitset for boolean fields. Similar to Java EnumSet<>. + * enum bitset for boolean fields. Similar to Java EnumSet<>. * Needs to range check. Used for private instance variables. * @internal * \cond @@ -49,9 +49,9 @@ class EnumSet { fBools = other.fBools; return *this; } - + inline uint32_t getAll() const { - return fBools; + return fBools; } #endif /* U_HIDE_INTERNAL_API */ diff --git a/deps/icu-small/source/common/unicode/errorcode.h b/deps/icu-small/source/common/unicode/errorcode.h index 75cdbb6a98f194..fe7b5183232cd1 100644 --- a/deps/icu-small/source/common/unicode/errorcode.h +++ b/deps/icu-small/source/common/unicode/errorcode.h @@ -20,7 +20,7 @@ #define __ERRORCODE_H__ /** - * \file + * \file * \brief C++ API: ErrorCode class intended to make it easier to use * ICU C and C++ APIs from C++ user code. */ diff --git a/deps/icu-small/source/common/unicode/icudataver.h b/deps/icu-small/source/common/unicode/icudataver.h index a82cb3d89d9d99..f218ed8ebccbcb 100644 --- a/deps/icu-small/source/common/unicode/icudataver.h +++ b/deps/icu-small/source/common/unicode/icudataver.h @@ -32,10 +32,10 @@ /** * Retrieves the data version from icuver and stores it in dataVersionFillin. - * + * * @param dataVersionFillin icuver data version information to be filled in if not-null * @param status stores the error code from the calls to resource bundle - * + * * @stable ICU 49 */ U_CAPI void U_EXPORT2 u_getDataVersion(UVersionInfo dataVersionFillin, UErrorCode *status); diff --git a/deps/icu-small/source/common/unicode/icuplug.h b/deps/icu-small/source/common/unicode/icuplug.h index f817679acf016c..205af360d45e9e 100644 --- a/deps/icu-small/source/common/unicode/icuplug.h +++ b/deps/icu-small/source/common/unicode/icuplug.h @@ -17,7 +17,7 @@ /** * \file - * \brief C API: ICU Plugin API + * \brief C API: ICU Plugin API * *

C API: ICU Plugin API

* @@ -25,31 +25,31 @@ * *

Loading and Configuration

* - *

At ICU startup time, the environment variable "ICU_PLUGINS" will be - * queried for a directory name. If it is not set, the preprocessor symbol + *

At ICU startup time, the environment variable "ICU_PLUGINS" will be + * queried for a directory name. If it is not set, the preprocessor symbol * "DEFAULT_ICU_PLUGINS" will be checked for a default value.

* - *

Within the above-named directory, the file "icuplugins##.txt" will be - * opened, if present, where ## is the major+minor number of the currently + *

Within the above-named directory, the file "icuplugins##.txt" will be + * opened, if present, where ## is the major+minor number of the currently * running ICU (such as, 44 for ICU 4.4, thus icuplugins44.txt)

* *

The configuration file has this format:

* *
    *
  • Hash (#) begins a comment line
  • - * + * *
  • Non-comment lines have two or three components: * LIBRARYNAME ENTRYPOINT [ CONFIGURATION .. ]
  • * *
  • Tabs or spaces separate the three items.
  • * - *
  • LIBRARYNAME is the name of a shared library, either a short name if + *
  • LIBRARYNAME is the name of a shared library, either a short name if * it is on the loader path, or a full pathname.
  • * - *
  • ENTRYPOINT is the short (undecorated) symbol name of the plugin's + *
  • ENTRYPOINT is the short (undecorated) symbol name of the plugin's * entrypoint, as above.
  • * - *
  • CONFIGURATION is the entire rest of the line . It's passed as-is to + *
  • CONFIGURATION is the entire rest of the line . It's passed as-is to * the plugin.
  • *
* @@ -59,25 +59,25 @@ * # this is icuplugins44.txt * testplug.dll myPlugin hello=world * \endcode - *

Plugins are categorized as "high" or "low" level. Low level are those - * which must be run BEFORE high level plugins, and before any operations - * which cause ICU to be 'initialized'. If a plugin is low level but - * causes ICU to allocate memory or become initialized, that plugin is said + *

Plugins are categorized as "high" or "low" level. Low level are those + * which must be run BEFORE high level plugins, and before any operations + * which cause ICU to be 'initialized'. If a plugin is low level but + * causes ICU to allocate memory or become initialized, that plugin is said * to cause a 'level change'.

* - *

At load time, ICU first queries all plugins to determine their level, - * then loads all 'low' plugins first, and then loads all 'high' plugins. + *

At load time, ICU first queries all plugins to determine their level, + * then loads all 'low' plugins first, and then loads all 'high' plugins. * Plugins are otherwise loaded in the order listed in the configuration file.

- * + * *

Implementing a Plugin

* \code - * U_CAPI UPlugTokenReturn U_EXPORT2 + * U_CAPI UPlugTokenReturn U_EXPORT2 * myPlugin (UPlugData *plug, UPlugReason reason, UErrorCode *status) { * if(reason==UPLUG_REASON_QUERY) { * uplug_setPlugName(plug, "Simple Plugin"); * uplug_setPlugLevel(plug, UPLUG_LEVEL_HIGH); * } else if(reason==UPLUG_REASON_LOAD) { - * ... Set up some ICU things here.... + * ... Set up some ICU things here.... * } else if(reason==UPLUG_REASON_UNLOAD) { * ... unload, clean up ... * } @@ -85,20 +85,20 @@ * } * \endcode * - *

The UPlugData* is an opaque pointer to the plugin-specific data, and is + *

The UPlugData* is an opaque pointer to the plugin-specific data, and is * used in all other API calls.

* *

The API contract is:

- *
  1. The plugin MUST always return UPLUG_TOKEN as a return value- to + *
    1. The plugin MUST always return UPLUG_TOKEN as a return value- to * indicate that it is a valid plugin.
    2. * - *
    3. When the 'reason' parameter is set to UPLUG_REASON_QUERY, the - * plugin MUST call uplug_setPlugLevel() to indicate whether it is a high + *
    4. When the 'reason' parameter is set to UPLUG_REASON_QUERY, the + * plugin MUST call uplug_setPlugLevel() to indicate whether it is a high * level or low level plugin.
    5. * - *
    6. When the 'reason' parameter is UPLUG_REASON_QUERY, the plugin + *
    7. When the 'reason' parameter is UPLUG_REASON_QUERY, the plugin * SHOULD call uplug_setPlugName to indicate a human readable plugin name.
    - * + * * * \internal ICU 4.4 Technology Preview */ @@ -120,7 +120,7 @@ struct UPlugData; /** * @{ - * Typedef for opaque structure passed to/from a plugin. + * Typedef for opaque structure passed to/from a plugin. * Use the APIs to access it. * @internal ICU 4.4 Technology Preview */ @@ -129,7 +129,7 @@ typedef struct UPlugData UPlugData; /** @} */ /** - * Random Token to identify a valid ICU plugin. Plugins must return this + * Random Token to identify a valid ICU plugin. Plugins must return this * from the entrypoint. * @internal ICU 4.4 Technology Preview */ @@ -143,7 +143,7 @@ typedef struct UPlugData UPlugData; /** - * Return value from a plugin entrypoint. + * Return value from a plugin entrypoint. * Must always be set to UPLUG_TOKEN * @see UPLUG_TOKEN * @internal ICU 4.4 Technology Preview @@ -187,7 +187,7 @@ typedef enum { /** * Entrypoint for an ICU plugin. - * @param plug the UPlugData handle. + * @param plug the UPlugData handle. * @param status the plugin's extended status code. * @return A valid plugin must return UPLUG_TOKEN * @internal ICU 4.4 Technology Preview @@ -207,7 +207,7 @@ typedef UPlugTokenReturn (U_EXPORT2 UPlugEntrypoint) ( * @param dontUnload set true if this plugin can't be unloaded * @internal ICU 4.4 Technology Preview */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uplug_setPlugNoUnload(UPlugData *plug, UBool dontUnload); /** @@ -245,7 +245,7 @@ uplug_getCurrentLevel(void); * @internal ICU 4.4 Technology Preview */ U_CAPI UErrorCode U_EXPORT2 -uplug_getPlugLoadStatus(UPlugData *plug); +uplug_getPlugLoadStatus(UPlugData *plug); /** * Set the human-readable name of this plugin. @@ -286,7 +286,7 @@ uplug_getLibraryName(UPlugData *plug, UErrorCode *status); /** * Return the library used for this plugin, if known. - * Plugins could use this to load data out of their + * Plugins could use this to load data out of their * @param plug plugin data handle * @return the library, or NULL * @internal ICU 4.4 Technology Preview @@ -333,7 +333,7 @@ uplug_getConfiguration(UPlugData *plug); * } * \endcode * Not thread safe- do not call while plugs are added or removed. - * @param prior pass in 'NULL' to get the first (most recent) plug, + * @param prior pass in 'NULL' to get the first (most recent) plug, * otherwise pass the value returned on a prior call to uplug_nextPlug * @return the next oldest plugin, or NULL if no more. * @internal ICU 4.4 Technology Preview @@ -343,7 +343,7 @@ uplug_nextPlug(UPlugData *prior); /** * Inject a plugin as if it were loaded from a library. - * This is useful for testing plugins. + * This is useful for testing plugins. * Note that it will have a 'NULL' library pointer associated * with it, and therefore no llibrary will be closed at cleanup time. * Low level plugins may not be able to load, as ordering can't be enforced. @@ -371,7 +371,7 @@ U_CAPI UPlugData* U_EXPORT2 uplug_loadPlugFromLibrary(const char *libName, const char *sym, const char *config, UErrorCode *status); /** - * Remove a plugin. + * Remove a plugin. * Will request the plugin to be unloaded, and close the library if needed * @param plug plugin handle to close * @param status error result @@ -384,3 +384,4 @@ uplug_removePlug(UPlugData *plug, UErrorCode *status); #endif /* UCONFIG_ENABLE_PLUGINS */ #endif /* _ICUPLUG */ + diff --git a/deps/icu-small/source/common/unicode/localebuilder.h b/deps/icu-small/source/common/unicode/localebuilder.h index 27a894de101def..f708a7ed7c4cb3 100644 --- a/deps/icu-small/source/common/unicode/localebuilder.h +++ b/deps/icu-small/source/common/unicode/localebuilder.h @@ -90,8 +90,7 @@ class U_COMMON_API LocaleBuilder : public UObject { LocaleBuilder& setLocale(const Locale& locale); /** - * Resets the LocaleBuilder to match the provided - * [Unicode Locale Identifier](http://www.unicode.org/reports/tr35/tr35.html#unicode_locale_id) . + * Resets the LocaleBuilder to match the provided IETF BCP 47 language tag. * Discards the existing state. * The empty string causes the builder to be reset, like {@link #clear}. * Legacy language tags (marked as “Type: grandfathered” in BCP 47) @@ -101,8 +100,7 @@ class U_COMMON_API LocaleBuilder : public UObject { * *

    This method clears the internal UErrorCode. * - * @param tag the language tag, defined as - * [unicode_locale_id](http://www.unicode.org/reports/tr35/tr35.html#unicode_locale_id). + * @param tag the language tag, defined as IETF BCP 47 language tag. * @return This builder. * @stable ICU 64 */ diff --git a/deps/icu-small/source/common/unicode/localematcher.h b/deps/icu-small/source/common/unicode/localematcher.h index 0cd068ef32805b..252bb7fdc20753 100644 --- a/deps/icu-small/source/common/unicode/localematcher.h +++ b/deps/icu-small/source/common/unicode/localematcher.h @@ -413,17 +413,15 @@ class U_COMMON_API LocaleMatcher : public UMemory { */ Builder &addSupportedLocale(const Locale &locale); -#ifndef U_HIDE_DRAFT_API /** * Sets no default locale. * There will be no explicit or implicit default locale. * If there is no good match, then the matcher will return nullptr for the * best supported locale. * - * @draft ICU 68 + * @stable ICU 68 */ Builder &setNoDefaultLocale(); -#endif // U_HIDE_DRAFT_API /** * Sets the default locale; if nullptr, or if it is not set explicitly, @@ -474,7 +472,6 @@ class U_COMMON_API LocaleMatcher : public UMemory { return *this; } -#ifndef U_HIDE_DRAFT_API /** * Sets the maximum distance for an acceptable match. * The matcher will return a match for a pair of locales only if @@ -494,10 +491,9 @@ class U_COMMON_API LocaleMatcher : public UMemory { * @param desired the desired locale for distance comparison. * @param supported the supported locale for distance comparison. * @return this Builder object - * @draft ICU 68 + * @stable ICU 68 */ Builder &setMaxDistance(const Locale &desired, const Locale &supported); -#endif // U_HIDE_DRAFT_API /** * Sets the UErrorCode if an error occurred while setting parameters. @@ -638,7 +634,6 @@ class U_COMMON_API LocaleMatcher : public UMemory { */ Result getBestMatchResult(Locale::Iterator &desiredLocales, UErrorCode &errorCode) const; -#ifndef U_HIDE_DRAFT_API /** * Returns true if the pair of locales matches acceptably. * This is influenced by Builder options such as setDirection(), setFavorSubtag(), @@ -650,10 +645,9 @@ class U_COMMON_API LocaleMatcher : public UMemory { * or else the function returns immediately. Check for U_FAILURE() * on output or use with function chaining. (See User Guide for details.) * @return true if the pair of locales matches acceptably. - * @draft ICU 68 + * @stable ICU 68 */ UBool isMatch(const Locale &desired, const Locale &supported, UErrorCode &errorCode) const; -#endif // U_HIDE_DRAFT_API #ifndef U_HIDE_INTERNAL_API /** diff --git a/deps/icu-small/source/common/unicode/localpointer.h b/deps/icu-small/source/common/unicode/localpointer.h index 2a65f2d382d2d8..96c659d10ad6a6 100644 --- a/deps/icu-small/source/common/unicode/localpointer.h +++ b/deps/icu-small/source/common/unicode/localpointer.h @@ -35,7 +35,7 @@ * - Need to be able to orphan/release the pointer and its ownership. * - Need variants for normal C++ object pointers, C++ arrays, and ICU C service objects. * - * For details see http://site.icu-project.org/design/cpp/scoped_ptr + * For details see https://icu.unicode.org/design/cpp/scoped_ptr */ #include "unicode/utypes.h" diff --git a/deps/icu-small/source/common/unicode/locid.h b/deps/icu-small/source/common/unicode/locid.h index b535e77e181015..2f2b3998a78c13 100644 --- a/deps/icu-small/source/common/unicode/locid.h +++ b/deps/icu-small/source/common/unicode/locid.h @@ -326,20 +326,20 @@ class U_COMMON_API Locale : public UObject { * Checks if two locale keys are the same. * * @param other The locale key object to be compared with this. - * @return True if the two locale keys are the same, false otherwise. + * @return true if the two locale keys are the same, false otherwise. * @stable ICU 2.0 */ - UBool operator==(const Locale& other) const; + bool operator==(const Locale& other) const; /** * Checks if two locale keys are not the same. * * @param other The locale key object to be compared with this. - * @return True if the two locale keys are not the same, false + * @return true if the two locale keys are not the same, false * otherwise. * @stable ICU 2.0 */ - inline UBool operator!=(const Locale& other) const; + inline bool operator!=(const Locale& other) const; /** * Clone this object. @@ -583,7 +583,7 @@ class U_COMMON_API Locale : public UObject { * Gets the list of keywords for the specified locale. * * @param status the status code - * @return pointer to StringEnumeration class, or NULL if there are no keywords. + * @return pointer to StringEnumeration class, or NULL if there are no keywords. * Client must dispose of it by calling delete. * @see getKeywords * @stable ICU 2.8 @@ -1005,7 +1005,7 @@ class U_COMMON_API Locale : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * A Locale iterator interface similar to a Java Iterator. @@ -1163,7 +1163,7 @@ class U_COMMON_API Locale : public UObject { friend void U_CALLCONV locale_available_init(); }; -inline UBool +inline bool Locale::operator!=(const Locale& other) const { return !operator==(other); diff --git a/deps/icu-small/source/common/unicode/messagepattern.h b/deps/icu-small/source/common/unicode/messagepattern.h index 98e7b70b1fcc13..4c5be13dbc9168 100644 --- a/deps/icu-small/source/common/unicode/messagepattern.h +++ b/deps/icu-small/source/common/unicode/messagepattern.h @@ -526,14 +526,14 @@ class U_COMMON_API MessagePattern : public UObject { * @return true if this object is equivalent to the other one. * @stable ICU 4.8 */ - UBool operator==(const MessagePattern &other) const; + bool operator==(const MessagePattern &other) const; /** * @param other another object to compare with. * @return false if this object is equivalent to the other one. * @stable ICU 4.8 */ - inline UBool operator!=(const MessagePattern &other) const { + inline bool operator!=(const MessagePattern &other) const { return !operator==(other); } @@ -797,14 +797,14 @@ class U_COMMON_API MessagePattern : public UObject { * @return true if this object is equivalent to the other one. * @stable ICU 4.8 */ - UBool operator==(const Part &other) const; + bool operator==(const Part &other) const; /** * @param other another object to compare with. * @return false if this object is equivalent to the other one. * @stable ICU 4.8 */ - inline UBool operator!=(const Part &other) const { + inline bool operator!=(const Part &other) const { return !operator==(other); } diff --git a/deps/icu-small/source/common/unicode/normlzr.h b/deps/icu-small/source/common/unicode/normlzr.h index 83dc7cea017710..93661990feced8 100644 --- a/deps/icu-small/source/common/unicode/normlzr.h +++ b/deps/icu-small/source/common/unicode/normlzr.h @@ -16,10 +16,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: Unicode Normalization */ - + #if !UCONFIG_NO_NORMALIZATION #include "unicode/chariter.h" @@ -584,7 +584,7 @@ class U_COMMON_API Normalizer : public UObject { * @return comparison result * @deprecated ICU 56 Use Normalizer2 instead. */ - UBool operator==(const Normalizer& that) const; + bool operator==(const Normalizer& that) const; /** * Returns false when both iterators refer to the same character in the same @@ -594,7 +594,7 @@ class U_COMMON_API Normalizer : public UObject { * @return comparison result * @deprecated ICU 56 Use Normalizer2 instead. */ - inline UBool operator!=(const Normalizer& that) const; + inline bool operator!=(const Normalizer& that) const; /** * Returns a pointer to a new Normalizer that is a clone of this one. @@ -732,7 +732,7 @@ class U_COMMON_API Normalizer : public UObject { * @return a UClassID for the actual class. * @deprecated ICU 56 Use Normalizer2 instead. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; #endif // U_FORCE_HIDE_DEPRECATED_API private: @@ -777,7 +777,7 @@ class U_COMMON_API Normalizer : public UObject { //------------------------------------------------------------------------- #ifndef U_HIDE_DEPRECATED_API -inline UBool +inline bool Normalizer::operator!= (const Normalizer& other) const { return ! operator==(other); } diff --git a/deps/icu-small/source/common/unicode/parseerr.h b/deps/icu-small/source/common/unicode/parseerr.h index c05487601cb0d1..c23cc273b828eb 100644 --- a/deps/icu-small/source/common/unicode/parseerr.h +++ b/deps/icu-small/source/common/unicode/parseerr.h @@ -23,7 +23,7 @@ /** * The capacity of the context strings in UParseError. * @stable ICU 2.0 - */ + */ enum { U_PARSE_CONTEXT_LEN = 16 }; /** @@ -52,7 +52,7 @@ enum { U_PARSE_CONTEXT_LEN = 16 }; *

    Examples of engines which use UParseError (or may use it in the * future) are Transliterator, RuleBasedBreakIterator, and * RegexPattern. - * + * * @stable ICU 2.0 */ typedef struct UParseError { @@ -78,14 +78,14 @@ typedef struct UParseError { /** * Textual context before the error. Null-terminated. The empty * string if not supported by parser. - * @stable ICU 2.0 + * @stable ICU 2.0 */ UChar preContext[U_PARSE_CONTEXT_LEN]; /** * The error itself and/or textual context after the error. * Null-terminated. The empty string if not supported by parser. - * @stable ICU 2.0 + * @stable ICU 2.0 */ UChar postContext[U_PARSE_CONTEXT_LEN]; diff --git a/deps/icu-small/source/common/unicode/parsepos.h b/deps/icu-small/source/common/unicode/parsepos.h index d6129fd4f1604f..73945f5f97bcbd 100644 --- a/deps/icu-small/source/common/unicode/parsepos.h +++ b/deps/icu-small/source/common/unicode/parsepos.h @@ -24,14 +24,14 @@ #include "unicode/uobject.h" - + U_NAMESPACE_BEGIN /** * \file * \brief C++ API: Canonical Iterator */ -/** +/** * ParsePosition is a simple class used by Format * and its subclasses to keep track of the current position during parsing. * The parseObject method in the various Format @@ -100,14 +100,14 @@ class U_COMMON_API ParsePosition : public UObject { * @return true if the two parse positions are equal, false otherwise. * @stable ICU 2.0 */ - inline UBool operator==(const ParsePosition& that) const; + inline bool operator==(const ParsePosition& that) const; /** * Equality operator. * @return true if the two parse positions are not equal, false otherwise. * @stable ICU 2.0 */ - inline UBool operator!=(const ParsePosition& that) const; + inline bool operator!=(const ParsePosition& that) const; /** * Clone this object. @@ -166,7 +166,7 @@ class U_COMMON_API ParsePosition : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: /** @@ -192,7 +192,7 @@ ParsePosition::operator=(const ParsePosition& copy) return *this; } -inline UBool +inline bool ParsePosition::operator==(const ParsePosition& copy) const { if(index != copy.index || errorIndex != copy.errorIndex) @@ -201,7 +201,7 @@ ParsePosition::operator==(const ParsePosition& copy) const return true; } -inline UBool +inline bool ParsePosition::operator!=(const ParsePosition& copy) const { return !operator==(copy); diff --git a/deps/icu-small/source/common/unicode/platform.h b/deps/icu-small/source/common/unicode/platform.h index 0dc91234006650..b7e514442cedba 100644 --- a/deps/icu-small/source/common/unicode/platform.h +++ b/deps/icu-small/source/common/unicode/platform.h @@ -410,7 +410,7 @@ #endif /** - * \def U_HAVE_DEBUG_LOCATION_NEW + * \def U_HAVE_DEBUG_LOCATION_NEW * Define this to define the MFC debug version of the operator new. * * @stable ICU 3.4 @@ -814,13 +814,13 @@ namespace std { /* Use the predefined value. */ #elif defined(U_STATIC_IMPLEMENTATION) # define U_EXPORT -#elif defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(dllexport) && \ - UPRV_HAS_DECLSPEC_ATTRIBUTE(dllimport)) +#elif defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllexport__) && \ + UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllimport__)) # define U_EXPORT __declspec(dllexport) #elif defined(__GNUC__) # define U_EXPORT __attribute__((visibility("default"))) #elif (defined(__SUNPRO_CC) && __SUNPRO_CC >= 0x550) \ - || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550) + || (defined(__SUNPRO_C) && __SUNPRO_C >= 0x550) # define U_EXPORT __global /*#elif defined(__HP_aCC) || defined(__HP_cc) # define U_EXPORT __declspec(dllexport)*/ @@ -839,12 +839,12 @@ namespace std { #ifdef U_IMPORT /* Use the predefined value. */ -#elif defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(dllexport) && \ - UPRV_HAS_DECLSPEC_ATTRIBUTE(dllimport)) +#elif defined(_MSC_VER) || (UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllexport__) && \ + UPRV_HAS_DECLSPEC_ATTRIBUTE(__dllimport__)) /* Windows needs to export/import data. */ # define U_IMPORT __declspec(dllimport) #else -# define U_IMPORT +# define U_IMPORT #endif /** diff --git a/deps/icu-small/source/common/unicode/putil.h b/deps/icu-small/source/common/unicode/putil.h index f8c510dacc75fc..500c21252fc2d7 100644 --- a/deps/icu-small/source/common/unicode/putil.h +++ b/deps/icu-small/source/common/unicode/putil.h @@ -43,7 +43,7 @@ */ /** - * Return the ICU data directory. + * Return the ICU data directory. * The data directory is where common format ICU data files (.dat files) * are loaded from. Note that normal use of the built-in ICU * facilities does not require loading of an external data file; @@ -56,21 +56,21 @@ * If a data directory was specified at ICU build time * * \code - * #define ICU_DATA_DIR "path" + * #define ICU_DATA_DIR "path" * \endcode * use that, * otherwise no data directory is available. * * @return the data directory, or an empty string ("") if no data directory has * been specified. - * + * * @stable ICU 2.0 */ U_CAPI const char* U_EXPORT2 u_getDataDirectory(void); -/** - * Set the ICU data directory. +/** + * Set the ICU data directory. * The data directory is where common format ICU data files (.dat files) * are loaded from. Note that normal use of the built-in ICU * facilities does not require loading of an external data file; @@ -98,7 +98,7 @@ U_CAPI void U_EXPORT2 u_setDataDirectory(const char *directory); * * @return the time zone data override directory. * @internal - */ + */ U_CAPI const char * U_EXPORT2 u_getTimeZoneFilesDirectory(UErrorCode *status); /** diff --git a/deps/icu-small/source/common/unicode/rbbi.h b/deps/icu-small/source/common/unicode/rbbi.h index 65117f616cdf5b..0ce93819f54cbf 100644 --- a/deps/icu-small/source/common/unicode/rbbi.h +++ b/deps/icu-small/source/common/unicode/rbbi.h @@ -260,7 +260,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * same class, have the same behavior, and iterate over the same text. * @stable ICU 2.0 */ - virtual UBool operator==(const BreakIterator& that) const; + virtual bool operator==(const BreakIterator& that) const override; /** * Not-equal operator. If operator== returns true, this returns false, @@ -269,7 +269,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return true if both BreakIterators are not same. * @stable ICU 2.0 */ - inline UBool operator!=(const BreakIterator& that) const; + inline bool operator!=(const BreakIterator& that) const; /** * Returns a newly-constructed RuleBasedBreakIterator with the same @@ -281,7 +281,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return a newly-constructed RuleBasedBreakIterator * @stable ICU 2.0 */ - virtual RuleBasedBreakIterator* clone() const; + virtual RuleBasedBreakIterator* clone() const override; /** * Compute a hash code for this BreakIterator @@ -326,7 +326,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return An iterator over the text being analyzed. * @stable ICU 2.0 */ - virtual CharacterIterator& getText(void) const; + virtual CharacterIterator& getText(void) const override; /** @@ -343,7 +343,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * UText was provided, it will always be returned. * @stable ICU 3.4 */ - virtual UText *getUText(UText *fillIn, UErrorCode &status) const; + virtual UText *getUText(UText *fillIn, UErrorCode &status) const override; /** * Set the iterator to analyze a new piece of text. This function resets @@ -352,7 +352,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * takes ownership of the character iterator. The caller MUST NOT delete it! * @stable ICU 2.0 */ - virtual void adoptText(CharacterIterator* newText); + virtual void adoptText(CharacterIterator* newText) override; /** * Set the iterator to analyze a new piece of text. This function resets @@ -365,7 +365,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @param newText The text to analyze. * @stable ICU 2.0 */ - virtual void setText(const UnicodeString& newText); + virtual void setText(const UnicodeString& newText) override; /** * Reset the break iterator to operate over the text represented by @@ -380,21 +380,21 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @param status Receives any error codes. * @stable ICU 3.4 */ - virtual void setText(UText *text, UErrorCode &status); + virtual void setText(UText *text, UErrorCode &status) override; /** * Sets the current iteration position to the beginning of the text, position zero. * @return The offset of the beginning of the text, zero. * @stable ICU 2.0 */ - virtual int32_t first(void); + virtual int32_t first(void) override; /** * Sets the current iteration position to the end of the text. * @return The text's past-the-end offset. * @stable ICU 2.0 */ - virtual int32_t last(void); + virtual int32_t last(void) override; /** * Advances the iterator either forward or backward the specified number of steps. @@ -406,21 +406,21 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * the current one. * @stable ICU 2.0 */ - virtual int32_t next(int32_t n); + virtual int32_t next(int32_t n) override; /** * Advances the iterator to the next boundary position. * @return The position of the first boundary after this one. * @stable ICU 2.0 */ - virtual int32_t next(void); + virtual int32_t next(void) override; /** * Moves the iterator backwards, to the last boundary preceding this one. * @return The position of the last boundary position preceding this one. * @stable ICU 2.0 */ - virtual int32_t previous(void); + virtual int32_t previous(void) override; /** * Sets the iterator to refer to the first boundary position following @@ -429,7 +429,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return The position of the first break after the current position. * @stable ICU 2.0 */ - virtual int32_t following(int32_t offset); + virtual int32_t following(int32_t offset) override; /** * Sets the iterator to refer to the last boundary position before the @@ -438,7 +438,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return The position of the last boundary before the starting position. * @stable ICU 2.0 */ - virtual int32_t preceding(int32_t offset); + virtual int32_t preceding(int32_t offset) override; /** * Returns true if the specified position is a boundary position. As a side @@ -448,7 +448,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return True if "offset" is a boundary position. * @stable ICU 2.0 */ - virtual UBool isBoundary(int32_t offset); + virtual UBool isBoundary(int32_t offset) override; /** * Returns the current iteration position. Note that UBRK_DONE is never @@ -458,7 +458,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @return The current iteration position. * @stable ICU 2.0 */ - virtual int32_t current(void) const; + virtual int32_t current(void) const override; /** @@ -492,7 +492,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @see UWordBreak * @stable ICU 2.2 */ - virtual int32_t getRuleStatus() const; + virtual int32_t getRuleStatus() const override; /** * Get the status (tag) values from the break rule(s) that determined the boundary @@ -517,7 +517,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * @see getRuleStatus * @stable ICU 3.0 */ - virtual int32_t getRuleStatusVec(int32_t *fillInVec, int32_t capacity, UErrorCode &status); + virtual int32_t getRuleStatusVec(int32_t *fillInVec, int32_t capacity, UErrorCode &status) override; /** * Returns a unique class ID POLYMORPHICALLY. Pure virtual override. @@ -530,7 +530,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Returns the class ID for this class. This is useful only for @@ -574,7 +574,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { */ virtual RuleBasedBreakIterator *createBufferClone(void *stackBuffer, int32_t &BufferSize, - UErrorCode &status); + UErrorCode &status) override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -621,7 +621,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { * * @stable ICU 49 */ - virtual RuleBasedBreakIterator &refreshInputText(UText *input, UErrorCode &status); + virtual RuleBasedBreakIterator &refreshInputText(UText *input, UErrorCode &status) override; private: @@ -719,7 +719,7 @@ class U_COMMON_API RuleBasedBreakIterator /*U_FINAL*/ : public BreakIterator { // //------------------------------------------------------------------------------ -inline UBool RuleBasedBreakIterator::operator!=(const BreakIterator& that) const { +inline bool RuleBasedBreakIterator::operator!=(const BreakIterator& that) const { return !operator==(that); } diff --git a/deps/icu-small/source/common/unicode/rep.h b/deps/icu-small/source/common/unicode/rep.h index f66c2ac060e4a8..6dd4530647e628 100644 --- a/deps/icu-small/source/common/unicode/rep.h +++ b/deps/icu-small/source/common/unicode/rep.h @@ -23,10 +23,10 @@ #include "unicode/uobject.h" /** - * \file + * \file * \brief C++ API: Replaceable String */ - + U_NAMESPACE_BEGIN class UnicodeString; @@ -87,7 +87,7 @@ class U_COMMON_API Replaceable : public UObject { * Returns the number of 16-bit code units in the text. * @return number of 16-bit code units in text * @stable ICU 1.8 - */ + */ inline int32_t length() const; /** @@ -114,7 +114,7 @@ class U_COMMON_API Replaceable : public UObject { inline UChar32 char32At(int32_t offset) const; /** - * Copies characters in the range [start, limit) + * Copies characters in the range [start, limit) * into the UnicodeString target. * @param start offset of first character which will be copied * @param limit offset immediately following the last character to @@ -144,7 +144,7 @@ class U_COMMON_API Replaceable : public UObject { * @param limit the ending index, exclusive; start <= limit * <= length(). * @param text the text to replace characters start - * to limit - 1 + * to limit - 1 * @stable ICU 2.0 */ virtual void handleReplaceBetween(int32_t start, @@ -164,7 +164,7 @@ class U_COMMON_API Replaceable : public UObject { * Copies a substring of this object, retaining metadata. * This method is used to duplicate or reorder substrings. * The destination index must not overlap the source range. - * + * * @param start the beginning index, inclusive; 0 <= start <= * limit. * @param limit the ending index, exclusive; start <= limit <= @@ -224,7 +224,7 @@ class U_COMMON_API Replaceable : public UObject { /** * Virtual version of length(). * @stable ICU 2.4 - */ + */ virtual int32_t getLength() const = 0; /** diff --git a/deps/icu-small/source/common/unicode/resbund.h b/deps/icu-small/source/common/unicode/resbund.h index 63ffa506e77eec..7441592a0f2d1c 100644 --- a/deps/icu-small/source/common/unicode/resbund.h +++ b/deps/icu-small/source/common/unicode/resbund.h @@ -58,22 +58,22 @@ #include "unicode/locid.h" /** - * \file + * \file * \brief C++ API: Resource Bundle */ - + U_NAMESPACE_BEGIN /** * A class representing a collection of resource information pertaining to a given - * locale. A resource bundle provides a way of accessing locale- specfic information in + * locale. A resource bundle provides a way of accessing locale- specific information in * a data file. You create a resource bundle that manages the resources for a given * locale and then ask it for individual resources. *

    * Resource bundles in ICU4C are currently defined using text files which conform to the following - * BNF definition. + * BNF definition. * More on resource bundle concepts and syntax can be found in the - * Users Guide. + * Users Guide. *

    * * The ResourceBundle class is not suitable for subclassing. @@ -85,8 +85,8 @@ class U_COMMON_API ResourceBundle : public UObject { /** * Constructor * - * @param packageName The packageName and locale together point to an ICU udata object, - * as defined by udata_open( packageName, "res", locale, err) + * @param packageName The packageName and locale together point to an ICU udata object, + * as defined by udata_open( packageName, "res", locale, err) * or equivalent. Typically, packageName will refer to a (.dat) file, or to * a package registered with udata_setAppData(). Using a full file or directory * pathname for packageName is deprecated. @@ -115,8 +115,8 @@ class U_COMMON_API ResourceBundle : public UObject { /** * Construct a resource bundle for the default bundle in the specified package. * - * @param packageName The packageName and locale together point to an ICU udata object, - * as defined by udata_open( packageName, "res", locale, err) + * @param packageName The packageName and locale together point to an ICU udata object, + * as defined by udata_open( packageName, "res", locale, err) * or equivalent. Typically, packageName will refer to a (.dat) file, or to * a package registered with udata_setAppData(). Using a full file or directory * pathname for packageName is deprecated. @@ -138,8 +138,8 @@ class U_COMMON_API ResourceBundle : public UObject { * Standard constructor, constructs a resource bundle for the locale-specific * bundle in the specified package. * - * @param packageName The packageName and locale together point to an ICU udata object, - * as defined by udata_open( packageName, "res", locale, err) + * @param packageName The packageName and locale together point to an ICU udata object, + * as defined by udata_open( packageName, "res", locale, err) * or equivalent. Typically, packageName will refer to a (.dat) file, or to * a package registered with udata_setAppData(). Using a full file or directory * pathname for packageName is deprecated. @@ -474,7 +474,7 @@ class U_COMMON_API ResourceBundle : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/common/unicode/schriter.h b/deps/icu-small/source/common/unicode/schriter.h index 4925ecfe444280..9dac099967795b 100644 --- a/deps/icu-small/source/common/unicode/schriter.h +++ b/deps/icu-small/source/common/unicode/schriter.h @@ -28,10 +28,10 @@ #include "unicode/uchriter.h" /** - * \file + * \file * \brief C++ API: String Character Iterator */ - + U_NAMESPACE_BEGIN /** * A concrete subclass of CharacterIterator that iterates over the @@ -124,7 +124,7 @@ class U_COMMON_API StringCharacterIterator : public UCharCharacterIterator { * same string and are pointing at the same character. * @stable ICU 2.0 */ - virtual UBool operator==(const ForwardCharacterIterator& that) const; + virtual bool operator==(const ForwardCharacterIterator& that) const override; /** * Returns a new StringCharacterIterator referring to the same @@ -133,7 +133,7 @@ class U_COMMON_API StringCharacterIterator : public UCharCharacterIterator { * @return the newly cloned object. * @stable ICU 2.0 */ - virtual StringCharacterIterator* clone() const; + virtual StringCharacterIterator* clone() const override; /** * Sets the iterator to iterate over the provided string. @@ -149,14 +149,14 @@ class U_COMMON_API StringCharacterIterator : public UCharCharacterIterator { * @param result Receives a copy of the text under iteration. * @stable ICU 2.0 */ - virtual void getText(UnicodeString& result); + virtual void getText(UnicodeString& result) override; /** * Return a class ID for this object (not really public) * @return a class ID for this object. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return a class ID for this class (not really public) diff --git a/deps/icu-small/source/common/unicode/strenum.h b/deps/icu-small/source/common/unicode/strenum.h index 5d1600156e32e9..1d1b37940a87d9 100644 --- a/deps/icu-small/source/common/unicode/strenum.h +++ b/deps/icu-small/source/common/unicode/strenum.h @@ -20,10 +20,10 @@ #include "unicode/unistr.h" /** - * \file + * \file * \brief C++ API: String Enumeration */ - + U_NAMESPACE_BEGIN /** @@ -56,9 +56,9 @@ U_NAMESPACE_BEGIN * ICU 2.8 adds some default implementations and helper functions * for subclasses. * - * @stable ICU 2.4 + * @stable ICU 2.4 */ -class U_COMMON_API StringEnumeration : public UObject { +class U_COMMON_API StringEnumeration : public UObject { public: /** * Destructor. @@ -127,7 +127,7 @@ class U_COMMON_API StringEnumeration : public UObject { * @param resultLength a pointer to receive the length, can be NULL. * @return a pointer to the string, or NULL. * - * @stable ICU 2.4 + * @stable ICU 2.4 */ virtual const char* next(int32_t *resultLength, UErrorCode& status); @@ -149,10 +149,10 @@ class U_COMMON_API StringEnumeration : public UObject { * and handles the conversion. * * @param status the error code. - * @param resultLength a ponter to receive the length, can be NULL. + * @param resultLength a pointer to receive the length, can be NULL. * @return a pointer to the string, or NULL. * - * @stable ICU 2.4 + * @stable ICU 2.4 */ virtual const char16_t* unext(int32_t *resultLength, UErrorCode& status); @@ -174,7 +174,7 @@ class U_COMMON_API StringEnumeration : public UObject { * @param status the error code. * @return a pointer to the string, or NULL. * - * @stable ICU 2.4 + * @stable ICU 2.4 */ virtual const UnicodeString* snext(UErrorCode& status); @@ -188,7 +188,7 @@ class U_COMMON_API StringEnumeration : public UObject { * * @param status the error code. * - * @stable ICU 2.4 + * @stable ICU 2.4 */ virtual void reset(UErrorCode& status) = 0; @@ -197,17 +197,17 @@ class U_COMMON_API StringEnumeration : public UObject { * * @param that The other string enumeration to compare this object to * @return true if the enumerations are equal. false if not. - * @stable ICU 3.6 + * @stable ICU 3.6 */ - virtual UBool operator==(const StringEnumeration& that)const; + virtual bool operator==(const StringEnumeration& that)const; /** * Compares this enumeration to other to check if both are not equal * * @param that The other string enumeration to compare this object to * @return true if the enumerations are equal. false if not. - * @stable ICU 3.6 + * @stable ICU 3.6 */ - virtual UBool operator!=(const StringEnumeration& that)const; + virtual bool operator!=(const StringEnumeration& that)const; protected: /** diff --git a/deps/icu-small/source/common/unicode/stringpiece.h b/deps/icu-small/source/common/unicode/stringpiece.h index c145915fa953b9..df7f36089dd7c5 100644 --- a/deps/icu-small/source/common/unicode/stringpiece.h +++ b/deps/icu-small/source/common/unicode/stringpiece.h @@ -23,7 +23,7 @@ #define __STRINGPIECE_H__ /** - * \file + * \file * \brief C++ API: StringPiece: Read-only byte string wrapper class. */ @@ -222,7 +222,7 @@ class U_COMMON_API StringPiece : public UMemory { /** * Reset the stringpiece to refer to new data. - * @param str a pointer to a NUL-terminated string. + * @param str a pointer to a NUL-terminated string. * @stable ICU 4.8 */ void set(const char* str); @@ -322,7 +322,7 @@ class U_COMMON_API StringPiece : public UMemory { * @return true if the string data is equal * @stable ICU 4.8 */ -U_EXPORT UBool U_EXPORT2 +U_EXPORT UBool U_EXPORT2 operator==(const StringPiece& x, const StringPiece& y); /** @@ -332,7 +332,7 @@ operator==(const StringPiece& x, const StringPiece& y); * @return true if the string data is not equal * @stable ICU 4.8 */ -inline UBool operator!=(const StringPiece& x, const StringPiece& y) { +inline bool operator!=(const StringPiece& x, const StringPiece& y) { return !(x == y); } diff --git a/deps/icu-small/source/common/unicode/stringtriebuilder.h b/deps/icu-small/source/common/unicode/stringtriebuilder.h index efd2d49206ca2d..b7a9b23d22bf35 100644 --- a/deps/icu-small/source/common/unicode/stringtriebuilder.h +++ b/deps/icu-small/source/common/unicode/stringtriebuilder.h @@ -204,8 +204,8 @@ class U_COMMON_API StringTrieBuilder : public UObject { // Handles node==NULL. static inline int32_t hashCode(const Node *node) { return node==NULL ? 0 : node->hashCode(); } // Base class operator==() compares the actual class types. - virtual UBool operator==(const Node &other) const; - inline UBool operator!=(const Node &other) const { return !operator==(other); } + virtual bool operator==(const Node &other) const; + inline bool operator!=(const Node &other) const { return !operator==(other); } /** * Traverses the Node graph and numbers branch edges, with rightmost edges first. * This is to avoid writing a duplicate node twice. @@ -265,8 +265,8 @@ class U_COMMON_API StringTrieBuilder : public UObject { class FinalValueNode : public Node { public: FinalValueNode(int32_t v) : Node(0x111111u*37u+v), value(v) {} - virtual UBool operator==(const Node &other) const; - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual void write(StringTrieBuilder &builder) override; protected: int32_t value; }; @@ -275,12 +275,12 @@ class U_COMMON_API StringTrieBuilder : public UObject { // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, // it is needed for layout of other objects. /** - * @internal + * @internal */ class ValueNode : public Node { public: ValueNode(int32_t initialHash) : Node(initialHash), hasValue(false), value(0) {} - virtual UBool operator==(const Node &other) const; + virtual bool operator==(const Node &other) const override; void setValue(int32_t v) { hasValue=true; value=v; @@ -292,16 +292,16 @@ class U_COMMON_API StringTrieBuilder : public UObject { }; #ifndef U_HIDE_INTERNAL_API - /** - * @internal + /** + * @internal */ class IntermediateValueNode : public ValueNode { public: IntermediateValueNode(int32_t v, Node *nextNode) : ValueNode(0x222222u*37u+hashCode(nextNode)), next(nextNode) { setValue(v); } - virtual UBool operator==(const Node &other) const; - virtual int32_t markRightEdgesFirst(int32_t edgeNumber); - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber) override; + virtual void write(StringTrieBuilder &builder) override; protected: Node *next; }; @@ -310,15 +310,15 @@ class U_COMMON_API StringTrieBuilder : public UObject { // Do not conditionalize the following with #ifndef U_HIDE_INTERNAL_API, // it is needed for layout of other objects. /** - * @internal + * @internal */ class LinearMatchNode : public ValueNode { public: LinearMatchNode(int32_t len, Node *nextNode) : ValueNode((0x333333u*37u+len)*37u+hashCode(nextNode)), length(len), next(nextNode) {} - virtual UBool operator==(const Node &other) const; - virtual int32_t markRightEdgesFirst(int32_t edgeNumber); + virtual bool operator==(const Node &other) const override; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber) override; protected: int32_t length; Node *next; @@ -326,7 +326,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { #ifndef U_HIDE_INTERNAL_API /** - * @internal + * @internal */ class BranchNode : public Node { public: @@ -336,14 +336,14 @@ class U_COMMON_API StringTrieBuilder : public UObject { }; /** - * @internal + * @internal */ class ListBranchNode : public BranchNode { public: ListBranchNode() : BranchNode(0x444444), length(0) {} - virtual UBool operator==(const Node &other) const; - virtual int32_t markRightEdgesFirst(int32_t edgeNumber); - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber) override; + virtual void write(StringTrieBuilder &builder) override; // Adds a unit with a final value. void add(int32_t c, int32_t value) { units[length]=(char16_t)c; @@ -368,7 +368,7 @@ class U_COMMON_API StringTrieBuilder : public UObject { }; /** - * @internal + * @internal */ class SplitBranchNode : public BranchNode { public: @@ -376,9 +376,9 @@ class U_COMMON_API StringTrieBuilder : public UObject { : BranchNode(((0x555555u*37u+middleUnit)*37u+ hashCode(lessThanNode))*37u+hashCode(greaterOrEqualNode)), unit(middleUnit), lessThan(lessThanNode), greaterOrEqual(greaterOrEqualNode) {} - virtual UBool operator==(const Node &other) const; - virtual int32_t markRightEdgesFirst(int32_t edgeNumber); - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber) override; + virtual void write(StringTrieBuilder &builder) override; protected: char16_t unit; Node *lessThan; @@ -392,9 +392,9 @@ class U_COMMON_API StringTrieBuilder : public UObject { BranchHeadNode(int32_t len, Node *subNode) : ValueNode((0x666666u*37u+len)*37u+hashCode(subNode)), length(len), next(subNode) {} - virtual UBool operator==(const Node &other) const; - virtual int32_t markRightEdgesFirst(int32_t edgeNumber); - virtual void write(StringTrieBuilder &builder); + virtual bool operator==(const Node &other) const override; + virtual int32_t markRightEdgesFirst(int32_t edgeNumber) override; + virtual void write(StringTrieBuilder &builder) override; protected: int32_t length; Node *next; // A branch sub-node. diff --git a/deps/icu-small/source/common/unicode/symtable.h b/deps/icu-small/source/common/unicode/symtable.h index f5a77b01eced80..b64d877f97430f 100644 --- a/deps/icu-small/source/common/unicode/symtable.h +++ b/deps/icu-small/source/common/unicode/symtable.h @@ -19,11 +19,11 @@ #include "unicode/uobject.h" /** - * \file + * \file * \brief C++ API: An interface that defines both lookup protocol and parsing of * symbolic names. */ - + U_NAMESPACE_BEGIN class ParsePosition; diff --git a/deps/icu-small/source/common/unicode/ubidi.h b/deps/icu-small/source/common/unicode/ubidi.h index 63d0e45cb7f3c5..536f4172bc202c 100644 --- a/deps/icu-small/source/common/unicode/ubidi.h +++ b/deps/icu-small/source/common/unicode/ubidi.h @@ -84,7 +84,7 @@ * *

      * \code
    - *#include "unicode/ubidi.h"
    + *#include 
      *
      *typedef enum {
      *     styleNormal=0, styleSelected=1,
    @@ -136,11 +136,11 @@
      *         int styleLimit;
      *
      *         for(i=0; ilimit) { styleLimit=limit; }
      *                 renderRun(text, start, styleLimit,
    - *                           direction, styleRun[i].style);
    + *                           direction, styleRuns[i].style);
      *                 if(styleLimit==limit) { break; }
      *                 start=styleLimit;
      *             }
    @@ -150,14 +150,14 @@
      *
      *         for(i=styleRunCount-1; i>=0; --i) {
      *             if(i>0) {
    - *                 styleStart=styleRun[i-1].limit;
    + *                 styleStart=styleRuns[i-1].limit;
      *             } else {
      *                 styleStart=0;
      *             }
      *             if(limit>=styleStart) {
      *                 if(styleStart
      * Code snippets illustrating the use of the Break Iterator APIs
      * are available in the ICU User Guide,
    - * http://icu-project.org/userguide/boundaryAnalysis.html
    + * https://unicode-org.github.io/icu/userguide/boundaryanalysis/
      * and in the sample program icu/source/samples/break/break.cpp
      */
     
    diff --git a/deps/icu-small/source/common/unicode/ucat.h b/deps/icu-small/source/common/unicode/ucat.h
    index a177639a76bfcb..93850348fff318 100644
    --- a/deps/icu-small/source/common/unicode/ucat.h
    +++ b/deps/icu-small/source/common/unicode/ucat.h
    @@ -50,7 +50,7 @@
      *     1%5  { "Good afternoon." }
      *     1%7  { "Good evening." }
      *     1%8  { "Good night." }
    - *
    + * 
      *     4%14 { "Please " }
      *     4%19 { "Thank you." }
      *     4%20 { "Sincerely," }
    @@ -67,7 +67,7 @@ U_CDECL_BEGIN
     
     /**
      * An ICU message catalog descriptor, analogous to nl_catd.
    - *
    + * 
      * @stable ICU 2.6
      */
     typedef UResourceBundle* u_nl_catd;
    @@ -100,7 +100,7 @@ typedef UResourceBundle* u_nl_catd;
      * is responsible for calling u_catclose() to close the message
      * catalog. If the ec parameter indicates failure, then NULL will be
      * returned.
    - *
    + * 
      * @stable ICU 2.6
      */
     U_CAPI u_nl_catd U_EXPORT2
    @@ -111,7 +111,7 @@ u_catopen(const char* name, const char* locale, UErrorCode* ec);
      *
      * @param catd a message catalog descriptor to be closed. May be NULL,
      * in which case no action is taken.
    - *
    + * 
      * @stable ICU 2.6
      */
     U_CAPI void U_EXPORT2
    @@ -146,7 +146,7 @@ u_catclose(u_nl_catd catd);
      * for any reason, then s is returned.  This includes the situation in
      * which ec indicates a failing error code upon entry to this
      * function.
    - *
    + * 
      * @stable ICU 2.6
      */
     U_CAPI const UChar* U_EXPORT2
    diff --git a/deps/icu-small/source/common/unicode/uchar.h b/deps/icu-small/source/common/unicode/uchar.h
    index 1e0f82e706c482..253e6db173f6e5 100644
    --- a/deps/icu-small/source/common/unicode/uchar.h
    +++ b/deps/icu-small/source/common/unicode/uchar.h
    @@ -60,7 +60,7 @@ U_CDECL_BEGIN
      * @see u_getUnicodeVersion
      * @stable ICU 2.0
      */
    -#define U_UNICODE_VERSION "13.0"
    +#define U_UNICODE_VERSION "14.0"
     
     /**
      * \file
    @@ -77,7 +77,7 @@ U_CDECL_BEGIN
      *
      * For more information see
      * "About the Unicode Character Database" (http://www.unicode.org/ucd/)
    - * and the ICU User Guide chapter on Properties (http://icu-project.org/userguide/properties.html).
    + * and the ICU User Guide chapter on Properties (https://unicode-org.github.io/icu/userguide/strings/properties).
      *
      * Many properties are accessible via generic functions that take a UProperty selector.
      * - u_hasBinaryProperty() returns a binary value (true/false) per property and code point.
    @@ -483,12 +483,63 @@ typedef enum UProperty {
          * @stable ICU 62
          */
         UCHAR_EXTENDED_PICTOGRAPHIC=64,
    +#ifndef U_HIDE_DRAFT_API
    +    /**
    +     * Binary property of strings Basic_Emoji.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_BASIC_EMOJI=65,
    +    /**
    +     * Binary property of strings Emoji_Keycap_Sequence.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_EMOJI_KEYCAP_SEQUENCE=66,
    +    /**
    +     * Binary property of strings RGI_Emoji_Modifier_Sequence.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE=67,
    +    /**
    +     * Binary property of strings RGI_Emoji_Flag_Sequence.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_RGI_EMOJI_FLAG_SEQUENCE=68,
    +    /**
    +     * Binary property of strings RGI_Emoji_Tag_Sequence.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_RGI_EMOJI_TAG_SEQUENCE=69,
    +    /**
    +     * Binary property of strings RGI_Emoji_ZWJ_Sequence.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_RGI_EMOJI_ZWJ_SEQUENCE=70,
    +    /**
    +     * Binary property of strings RGI_Emoji.
    +     * See https://www.unicode.org/reports/tr51/#Emoji_Sets
    +     *
    +     * @draft ICU 70
    +     */
    +    UCHAR_RGI_EMOJI=71,
    +#endif  // U_HIDE_DRAFT_API
     #ifndef U_HIDE_DEPRECATED_API
         /**
          * One more than the last constant for binary Unicode properties.
          * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
          */
    -    UCHAR_BINARY_LIMIT,
    +    UCHAR_BINARY_LIMIT=72,
     #endif  // U_HIDE_DEPRECATED_API
     
         /** Enumerated property Bidi_Class.
    @@ -1807,6 +1858,33 @@ enum UBlockCode {
         /** @stable ICU 66 */
         UBLOCK_YEZIDI = 308, /*[10E80]*/
     
    +    // New blocks in Unicode 14.0
    +
    +    /** @stable ICU 70 */
    +    UBLOCK_ARABIC_EXTENDED_B = 309, /*[0870]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_CYPRO_MINOAN = 310, /*[12F90]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_ETHIOPIC_EXTENDED_B = 311, /*[1E7E0]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_KANA_EXTENDED_B = 312, /*[1AFF0]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_LATIN_EXTENDED_F = 313, /*[10780]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_LATIN_EXTENDED_G = 314, /*[1DF00]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_OLD_UYGHUR = 315, /*[10F70]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_TANGSA = 316, /*[16A70]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_TOTO = 317, /*[1E290]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_UNIFIED_CANADIAN_ABORIGINAL_SYLLABICS_EXTENDED_A = 318, /*[11AB0]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_VITHKUQI = 319, /*[10570]*/
    +    /** @stable ICU 70 */
    +    UBLOCK_ZNAMENNY_MUSICAL_NOTATION = 320, /*[1CF00]*/
    +
     #ifndef U_HIDE_DEPRECATED_API
         /**
          * One more than the highest normal UBlockCode value.
    @@ -1814,7 +1892,7 @@ enum UBlockCode {
          *
          * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420.
          */
    -    UBLOCK_COUNT = 309,
    +    UBLOCK_COUNT = 321,
     #endif  // U_HIDE_DEPRECATED_API
     
         /** @stable ICU 2.0 */
    @@ -2106,6 +2184,9 @@ typedef enum UJoiningGroup {
         U_JG_HANIFI_ROHINGYA_KINNA_YA,  /**< @stable ICU 62 */
         U_JG_HANIFI_ROHINGYA_PA,  /**< @stable ICU 62 */
     
    +    U_JG_THIN_YEH,  /**< @stable ICU 70 */
    +    U_JG_VERTICAL_TAIL,  /**< @stable ICU 70 */
    +
     #ifndef U_HIDE_DEPRECATED_API
         /**
          * One more than the highest normal UJoiningGroup value.
    @@ -2585,10 +2666,10 @@ typedef enum UVerticalOrientation {
      *
      * @param c Code point to test.
      * @param which UProperty selector constant, identifies which binary property to check.
    - *        Must be UCHAR_BINARY_START<=whichUTS #51 Unicode Emoji
    + * defines several properties of strings.
    + *
    + * @param s String to test.
    + * @param length Length of the string, or negative if NUL-terminated.
    + * @param which UProperty selector constant, identifies which binary property to check.
    + *        Must be UCHAR_BINARY_START<=which<UCHAR_BINARY_LIMIT.
    + * @return true or false according to the binary Unicode property value for the string.
    + *         Also false if 'which' is out of bounds or if the Unicode version
    + *         does not have data for the property at all.
    + *
    + * @see UProperty
    + * @see u_hasBinaryProperty
    + * @see u_getBinaryPropertySet
    + * @see u_getIntPropertyValue
    + * @see u_getUnicodeVersion
    + * @draft ICU 70
    + */
    +U_CAPI UBool U_EXPORT2
    +u_stringHasBinaryProperty(const UChar *s, int32_t length, UProperty which);
    +
    +#endif  // U_HIDE_DRAFT_API
    +
     /**
      * Returns a frozen USet for a binary property.
      * The library retains ownership over the returned object.
    @@ -3834,7 +3946,7 @@ u_isJavaIDPart(UChar32 c);
      * Full case mappings are applied by the string case mapping functions,
      * see ustring.h and the UnicodeString class.
      * See also the User Guide chapter on C/POSIX migration:
    - * http://icu-project.org/userguide/posix.html#case_mappings
    + * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings
      *
      * @param c the code point to be mapped
      * @return the Simple_Lowercase_Mapping of the code point, if any;
    @@ -3859,7 +3971,7 @@ u_tolower(UChar32 c);
      * Full case mappings are applied by the string case mapping functions,
      * see ustring.h and the UnicodeString class.
      * See also the User Guide chapter on C/POSIX migration:
    - * http://icu-project.org/userguide/posix.html#case_mappings
    + * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings
      *
      * @param c the code point to be mapped
      * @return the Simple_Uppercase_Mapping of the code point, if any;
    @@ -3884,7 +3996,7 @@ u_toupper(UChar32 c);
      * Full case mappings are applied by the string case mapping functions,
      * see ustring.h and the UnicodeString class.
      * See also the User Guide chapter on C/POSIX migration:
    - * http://icu-project.org/userguide/posix.html#case_mappings
    + * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings
      *
      * @param c the code point to be mapped
      * @return the Simple_Titlecase_Mapping of the code point, if any;
    @@ -3908,7 +4020,7 @@ u_totitle(UChar32 c);
      * Full case mappings are applied by the string case mapping functions,
      * see ustring.h and the UnicodeString class.
      * See also the User Guide chapter on C/POSIX migration:
    - * http://icu-project.org/userguide/posix.html#case_mappings
    + * https://unicode-org.github.io/icu/userguide/icu/posix#case-mappings
      *
      * @param c the code point to be mapped
      * @param options Either U_FOLD_CASE_DEFAULT or U_FOLD_CASE_EXCLUDE_SPECIAL_I
    diff --git a/deps/icu-small/source/common/unicode/ucharstriebuilder.h b/deps/icu-small/source/common/unicode/ucharstriebuilder.h
    index 15657702f9d024..e0cb0acdc538e6 100644
    --- a/deps/icu-small/source/common/unicode/ucharstriebuilder.h
    +++ b/deps/icu-small/source/common/unicode/ucharstriebuilder.h
    @@ -138,41 +138,41 @@ class U_COMMON_API UCharsTrieBuilder : public StringTrieBuilder {
     
         void buildUChars(UStringTrieBuildOption buildOption, UErrorCode &errorCode);
     
    -    virtual int32_t getElementStringLength(int32_t i) const;
    -    virtual char16_t getElementUnit(int32_t i, int32_t unitIndex) const;
    -    virtual int32_t getElementValue(int32_t i) const;
    +    virtual int32_t getElementStringLength(int32_t i) const override;
    +    virtual char16_t getElementUnit(int32_t i, int32_t unitIndex) const override;
    +    virtual int32_t getElementValue(int32_t i) const override;
     
    -    virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t unitIndex) const;
    +    virtual int32_t getLimitOfLinearMatch(int32_t first, int32_t last, int32_t unitIndex) const override;
     
    -    virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t unitIndex) const;
    -    virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t unitIndex, int32_t count) const;
    -    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, char16_t unit) const;
    +    virtual int32_t countElementUnits(int32_t start, int32_t limit, int32_t unitIndex) const override;
    +    virtual int32_t skipElementsBySomeUnits(int32_t i, int32_t unitIndex, int32_t count) const override;
    +    virtual int32_t indexOfElementWithNextUnit(int32_t i, int32_t unitIndex, char16_t unit) const override;
     
    -    virtual UBool matchNodesCanHaveValues() const { return true; }
    +    virtual UBool matchNodesCanHaveValues() const override { return true; }
     
    -    virtual int32_t getMaxBranchLinearSubNodeLength() const { return UCharsTrie::kMaxBranchLinearSubNodeLength; }
    -    virtual int32_t getMinLinearMatch() const { return UCharsTrie::kMinLinearMatch; }
    -    virtual int32_t getMaxLinearMatchLength() const { return UCharsTrie::kMaxLinearMatchLength; }
    +    virtual int32_t getMaxBranchLinearSubNodeLength() const override { return UCharsTrie::kMaxBranchLinearSubNodeLength; }
    +    virtual int32_t getMinLinearMatch() const override { return UCharsTrie::kMinLinearMatch; }
    +    virtual int32_t getMaxLinearMatchLength() const override { return UCharsTrie::kMaxLinearMatchLength; }
     
         class UCTLinearMatchNode : public LinearMatchNode {
         public:
             UCTLinearMatchNode(const char16_t *units, int32_t len, Node *nextNode);
    -        virtual UBool operator==(const Node &other) const;
    -        virtual void write(StringTrieBuilder &builder);
    +        virtual bool operator==(const Node &other) const override;
    +        virtual void write(StringTrieBuilder &builder) override;
         private:
             const char16_t *s;
         };
     
         virtual Node *createLinearMatchNode(int32_t i, int32_t unitIndex, int32_t length,
    -                                        Node *nextNode) const;
    +                                        Node *nextNode) const override;
     
         UBool ensureCapacity(int32_t length);
    -    virtual int32_t write(int32_t unit);
    +    virtual int32_t write(int32_t unit) override;
         int32_t write(const char16_t *s, int32_t length);
    -    virtual int32_t writeElementUnits(int32_t i, int32_t unitIndex, int32_t length);
    -    virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal);
    -    virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t node);
    -    virtual int32_t writeDeltaTo(int32_t jumpTarget);
    +    virtual int32_t writeElementUnits(int32_t i, int32_t unitIndex, int32_t length) override;
    +    virtual int32_t writeValueAndFinal(int32_t i, UBool isFinal) override;
    +    virtual int32_t writeValueAndType(UBool hasValue, int32_t value, int32_t node) override;
    +    virtual int32_t writeDeltaTo(int32_t jumpTarget) override;
     
         UnicodeString strings;
         UCharsTrieElement *elements;
    diff --git a/deps/icu-small/source/common/unicode/uchriter.h b/deps/icu-small/source/common/unicode/uchriter.h
    index 84309b2416d136..9fae5e7de08fee 100644
    --- a/deps/icu-small/source/common/unicode/uchriter.h
    +++ b/deps/icu-small/source/common/unicode/uchriter.h
    @@ -17,10 +17,10 @@
     #include "unicode/chariter.h"
     
     /**
    - * \file
    + * \file 
      * \brief C++ API: char16_t Character Iterator
      */
    -
    + 
     U_NAMESPACE_BEGIN
     
     /**
    @@ -56,7 +56,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * The starting
        * position is specified by "position". If "position" is outside the valid
        * iteration range, the behavior of this object is undefined.
    -   * @param textPtr The char16_t array to be iteratd over
    +   * @param textPtr The char16_t array to be iterated over
        * @param length The length of the char16_t array
        * @param position The starting position of the iteration
        * @stable ICU 2.0
    @@ -119,14 +119,14 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * same string and are pointing at the same character.
        * @stable ICU 2.0
        */
    -  virtual UBool          operator==(const ForwardCharacterIterator& that) const;
    +  virtual bool           operator==(const ForwardCharacterIterator& that) const override;
     
       /**
        * Generates a hash code for this iterator.
        * @return the hash code.
        * @stable ICU 2.0
        */
    -  virtual int32_t         hashCode(void) const;
    +  virtual int32_t         hashCode(void) const override;
     
       /**
        * Returns a new UCharCharacterIterator referring to the same
    @@ -135,7 +135,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the CharacterIterator newly created
        * @stable ICU 2.0
        */
    -  virtual UCharCharacterIterator* clone() const;
    +  virtual UCharCharacterIterator* clone() const override;
     
       /**
        * Sets the iterator to refer to the first code unit in its
    @@ -144,7 +144,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the first code unit in its iteration range.
        * @stable ICU 2.0
        */
    -  virtual char16_t         first(void);
    +  virtual char16_t         first(void) override;
     
       /**
        * Sets the iterator to refer to the first code unit in its
    @@ -154,7 +154,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the first code unit in its iteration range
        * @stable ICU 2.0
        */
    -  virtual char16_t         firstPostInc(void);
    +  virtual char16_t         firstPostInc(void) override;
     
       /**
        * Sets the iterator to refer to the first code point in its
    @@ -165,7 +165,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the first code point in its iteration range
        * @stable ICU 2.0
        */
    -  virtual UChar32       first32(void);
    +  virtual UChar32       first32(void) override;
     
       /**
        * Sets the iterator to refer to the first code point in its
    @@ -175,7 +175,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the first code point in its iteration range.
        * @stable ICU 2.0
        */
    -  virtual UChar32       first32PostInc(void);
    +  virtual UChar32       first32PostInc(void) override;
     
       /**
        * Sets the iterator to refer to the last code unit in its
    @@ -184,7 +184,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the last code unit in its iteration range.
        * @stable ICU 2.0
        */
    -  virtual char16_t         last(void);
    +  virtual char16_t         last(void) override;
     
       /**
        * Sets the iterator to refer to the last code point in its
    @@ -193,7 +193,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the last code point in its iteration range.
        * @stable ICU 2.0
        */
    -  virtual UChar32       last32(void);
    +  virtual UChar32       last32(void) override;
     
       /**
        * Sets the iterator to refer to the "position"-th code unit
    @@ -203,7 +203,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the code unit
        * @stable ICU 2.0
        */
    -  virtual char16_t         setIndex(int32_t position);
    +  virtual char16_t         setIndex(int32_t position) override;
     
       /**
        * Sets the iterator to refer to the beginning of the code point
    @@ -216,21 +216,21 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the code unit
        * @stable ICU 2.0
        */
    -  virtual UChar32       setIndex32(int32_t position);
    +  virtual UChar32       setIndex32(int32_t position) override;
     
       /**
        * Returns the code unit the iterator currently refers to.
        * @return the code unit the iterator currently refers to.
        * @stable ICU 2.0
        */
    -  virtual char16_t         current(void) const;
    +  virtual char16_t         current(void) const override;
     
       /**
        * Returns the code point the iterator currently refers to.
        * @return the code point the iterator currently refers to.
        * @stable ICU 2.0
        */
    -  virtual UChar32       current32(void) const;
    +  virtual UChar32       current32(void) const override;
     
       /**
        * Advances to the next code unit in the iteration range (toward
    @@ -239,7 +239,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the next code unit in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual char16_t         next(void);
    +  virtual char16_t         next(void) override;
     
       /**
        * Gets the current code unit for returning and advances to the next code unit
    @@ -249,7 +249,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the current code unit.
        * @stable ICU 2.0
        */
    -  virtual char16_t         nextPostInc(void);
    +  virtual char16_t         nextPostInc(void) override;
     
       /**
        * Advances to the next code point in the iteration range (toward
    @@ -261,7 +261,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the next code point in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual UChar32       next32(void);
    +  virtual UChar32       next32(void) override;
     
       /**
        * Gets the current code point for returning and advances to the next code point
    @@ -271,7 +271,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the current point.
        * @stable ICU 2.0
        */
    -  virtual UChar32       next32PostInc(void);
    +  virtual UChar32       next32PostInc(void) override;
     
       /**
        * Returns false if there are no more code units or code points
    @@ -282,7 +282,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * at or after the current position in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual UBool        hasNext();
    +  virtual UBool        hasNext() override;
     
       /**
        * Advances to the previous code unit in the iteration range (toward
    @@ -291,7 +291,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the previous code unit in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual char16_t         previous(void);
    +  virtual char16_t         previous(void) override;
     
       /**
        * Advances to the previous code point in the iteration range (toward
    @@ -300,7 +300,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the previous code point in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual UChar32       previous32(void);
    +  virtual UChar32       previous32(void) override;
     
       /**
        * Returns false if there are no more code units or code points
    @@ -311,7 +311,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * before the current position in the iteration range.
        * @stable ICU 2.0
        */
    -  virtual UBool        hasPrevious();
    +  virtual UBool        hasPrevious() override;
     
       /**
        * Moves the current position relative to the start or end of the
    @@ -324,7 +324,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return the new position
        * @stable ICU 2.0
        */
    -  virtual int32_t      move(int32_t delta, EOrigin origin);
    +  virtual int32_t      move(int32_t delta, EOrigin origin) override;
     
       /**
        * Moves the current position relative to the start or end of the
    @@ -341,7 +341,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        // One of the system headers right now is sometimes defining a conflicting macro we don't use
     #undef move32
     #endif
    -  virtual int32_t      move32(int32_t delta, EOrigin origin);
    +  virtual int32_t      move32(int32_t delta, EOrigin origin) override;
     
       /**
        * Sets the iterator to iterate over a new range of text
    @@ -356,7 +356,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @param result Receives a copy of the text under iteration.
        * @stable ICU 2.0
        */
    -  virtual void            getText(UnicodeString& result);
    +  virtual void            getText(UnicodeString& result) override;
     
       /**
        * Return a class ID for this class (not really public)
    @@ -370,7 +370,7 @@ class U_COMMON_API UCharCharacterIterator : public CharacterIterator {
        * @return a class ID for this object.
        * @stable ICU 2.0
        */
    -  virtual UClassID        getDynamicClassID(void) const;
    +  virtual UClassID        getDynamicClassID(void) const override;
     
     protected:
       /**
    diff --git a/deps/icu-small/source/common/unicode/uclean.h b/deps/icu-small/source/common/unicode/uclean.h
    index f03593964a4edd..c2d920a16ef48a 100644
    --- a/deps/icu-small/source/common/unicode/uclean.h
    +++ b/deps/icu-small/source/common/unicode/uclean.h
    @@ -22,7 +22,7 @@
      * \file
      * \brief C API: Initialize and clean up ICU
      */
    -
    + 
     /**
      *  Initialize ICU.
      *
    @@ -48,8 +48,8 @@
      *    failure, as usual.
      *
      * @stable ICU 2.6
    - */
    -U_CAPI void U_EXPORT2
    + */  
    +U_CAPI void U_EXPORT2 
     u_init(UErrorCode *status);
     
     #ifndef U_HIDE_SYSTEM_API
    @@ -66,10 +66,10 @@ u_init(UErrorCode *status);
      * just before the library unload.
      * 

    * u_cleanup() also clears any ICU heap functions, mutex functions or - * trace functions that may have been set for the process. + * trace functions that may have been set for the process. * This has the effect of restoring ICU to its initial condition, before * any of these override functions were installed. Refer to - * u_setMemoryFunctions(), u_setMutexFunctions and + * u_setMemoryFunctions(), u_setMutexFunctions and * utrace_setFunctions(). If ICU is to be reinitialized after * calling u_cleanup(), these runtime override functions will need to * be set up again if they are still required. @@ -85,7 +85,7 @@ u_init(UErrorCode *status); * calling u_init(). An application must invoke u_init() first from one single * thread before allowing other threads call u_init(). All threads existing * at the time of the first thread's call to u_init() must also call - * u_init() themselves before continuing with other ICU operations. + * u_init() themselves before continuing with other ICU operations. *

    * The use of u_cleanup() just before an application terminates is optional, * but it should be called only once for performance reasons. The primary @@ -98,7 +98,7 @@ u_init(UErrorCode *status); * @stable ICU 2.0 * @system */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 u_cleanup(void); U_CDECL_BEGIN @@ -147,9 +147,9 @@ typedef void U_CALLCONV UMemFreeFn (const void *context, void *mem); * @param status Receives error values. * @stable ICU 2.8 * @system - */ -U_CAPI void U_EXPORT2 -u_setMemoryFunctions(const void *context, UMemAllocFn * U_CALLCONV_FPTR a, UMemReallocFn * U_CALLCONV_FPTR r, UMemFreeFn * U_CALLCONV_FPTR f, + */ +U_CAPI void U_EXPORT2 +u_setMemoryFunctions(const void *context, UMemAllocFn * U_CALLCONV_FPTR a, UMemReallocFn * U_CALLCONV_FPTR r, UMemFreeFn * U_CALLCONV_FPTR f, UErrorCode *status); U_CDECL_END @@ -182,8 +182,8 @@ U_CDECL_BEGIN * as a parameter. * @param context user supplied value, obtained from u_setMutexFunctions(). * @param mutex Receives a pointer that identifies the new mutex. - * The mutex init function must set the UMTX to a non-null value. - * Subsequent calls by ICU to lock, unlock, or destroy a mutex will + * The mutex init function must set the UMTX to a non-null value. + * Subsequent calls by ICU to lock, unlock, or destroy a mutex will * identify the mutex by the UMTX value. * @param status Error status. Report errors back to ICU by setting this variable * with an error code. @@ -213,7 +213,7 @@ U_CDECL_END * u_init() has been called. * @param context This pointer value will be saved, and then (later) passed as * a parameter to the user-supplied mutex functions each time they - * are called. + * are called. * @param init Pointer to a mutex initialization function. Must be non-null. * @param destroy Pointer to the mutex destroy function. Must be non-null. * @param lock pointer to the mutex lock function. Must be non-null. @@ -221,8 +221,8 @@ U_CDECL_END * @param status Receives error values. * @deprecated ICU 52. This function is no longer supported. * @system - */ -U_DEPRECATED void U_EXPORT2 + */ +U_DEPRECATED void U_EXPORT2 u_setMutexFunctions(const void *context, UMtxInitFn *init, UMtxFn *destroy, UMtxFn *lock, UMtxFn *unlock, UErrorCode *status); @@ -245,14 +245,14 @@ typedef int32_t U_CALLCONV UMtxAtomicFn(const void *context, int32_t *p); * u_init() has been called. * @param context This pointer value will be saved, and then (later) passed as * a parameter to the increment and decrement functions each time they - * are called. This function can only be called + * are called. This function can only be called * @param inc Pointer to a function to do an atomic increment operation. Must be non-null. * @param dec Pointer to a function to do an atomic decrement operation. Must be non-null. * @param status Receives error values. * @deprecated ICU 52. This function is no longer supported. * @system - */ -U_DEPRECATED void U_EXPORT2 + */ +U_DEPRECATED void U_EXPORT2 u_setAtomicIncDecFunctions(const void *context, UMtxAtomicFn *inc, UMtxAtomicFn *dec, UErrorCode *status); diff --git a/deps/icu-small/source/common/unicode/ucnv.h b/deps/icu-small/source/common/unicode/ucnv.h index 5d784990f2cdce..2687c984d43b1d 100644 --- a/deps/icu-small/source/common/unicode/ucnv.h +++ b/deps/icu-small/source/common/unicode/ucnv.h @@ -42,8 +42,7 @@ * many other callback actions that can be used instead of a character substitution.

    * *

    More information about this API can be found in our - * User's - * Guide.

    + * User Guide.

    */ #ifndef UCNV_H @@ -340,7 +339,7 @@ ucnv_compareNames(const char *name1, const char *name2); * *

    The conversion behavior and names can vary between platforms. ICU may * convert some characters differently from other platforms. Details on this topic - * are in the User's + * are in the User * Guide. Aliases starting with a "cp" prefix have no specific meaning * other than its an alias starting with the letters "cp". Please do not * associate any meaning to these aliases.

    @@ -1007,7 +1006,7 @@ ucnv_getUnicodeSet(const UConverter *cnv, UErrorCode *pErrorCode); /** - * Gets the current calback function used by the converter when an illegal + * Gets the current callback function used by the converter when an illegal * or invalid codepage sequence is found. * Context pointers are always owned by the caller. * @@ -1935,7 +1934,7 @@ ucnv_isAmbiguous(const UConverter *cnv); * reverse fallbacks (to Unicode). * For details see ".ucm File Format" * in the Conversion Data chapter of the ICU User Guide: - * http://www.icu-project.org/userguide/conversion-data.html#ucmformat + * https://unicode-org.github.io/icu/userguide/conversion/data.html#ucm-file-format * * @param cnv The converter to set the fallback mapping usage on. * @param usesFallback true if the user wants the converter to take advantage of the fallback @@ -2032,7 +2031,7 @@ ucnv_toUCountPending(const UConverter* cnv, UErrorCode* status); * fixed ratio of bytes to Unicode codes units for any particular Unicode encoding form. * false is returned with the UErrorCode if error occurs or cnv is NULL. * @param cnv The converter to be tested - * @param status ICU error code in/out paramter + * @param status ICU error code in/out parameter * @return true if the converter is fixed-width * @stable ICU 4.8 */ diff --git a/deps/icu-small/source/common/unicode/ucnv_cb.h b/deps/icu-small/source/common/unicode/ucnv_cb.h index 18240990dbaed9..41845d1bcaeabe 100644 --- a/deps/icu-small/source/common/unicode/ucnv_cb.h +++ b/deps/icu-small/source/common/unicode/ucnv_cb.h @@ -8,52 +8,52 @@ * ucnv_cb.h: * External APIs for the ICU's codeset conversion library * Helena Shih - * + * * Modification History: * * Date Name Description */ /** - * \file + * \file * \brief C UConverter functions to aid the writers of callbacks * *

    Callback API for UConverter

    - * + * * These functions are provided here for the convenience of the callback * writer. If you are just looking for callback functions to use, please - * see ucnv_err.h. DO NOT call these functions directly when you are + * see ucnv_err.h. DO NOT call these functions directly when you are * working with converters, unless your code has been called as a callback * via ucnv_setFromUCallback or ucnv_setToUCallback !! - * + * * A note about error codes and overflow. Unlike other ICU functions, * these functions do not expect the error status to be U_ZERO_ERROR. * Callbacks must be much more careful about their error codes. * The error codes used here are in/out parameters, which should be passed * back in the callback's error parameter. - * - * For example, if you call ucnv_cbfromUWriteBytes to write data out - * to the output codepage, it may return U_BUFFER_OVERFLOW_ERROR if - * the data did not fit in the target. But this isn't a failing error, + * + * For example, if you call ucnv_cbfromUWriteBytes to write data out + * to the output codepage, it may return U_BUFFER_OVERFLOW_ERROR if + * the data did not fit in the target. But this isn't a failing error, * in fact, ucnv_cbfromUWriteBytes may be called AGAIN with the error * status still U_BUFFER_OVERFLOW_ERROR to attempt to write further bytes, * which will also go into the internal overflow buffers. - * + * * Concerning offsets, the 'offset' parameters here are relative to the start - * of SOURCE. For example, Suppose the string "ABCD" was being converted + * of SOURCE. For example, Suppose the string "ABCD" was being converted * from Unicode into a codepage which doesn't have a mapping for 'B'. * 'A' will be written out correctly, but * The FromU Callback will be called on an unassigned character for 'B'. * At this point, this is the state of the world: * Target: A [..] [points after A] * Source: A B [C] D [points to C - B has been consumed] - * 0 1 2 3 - * codePoint = "B" [the unassigned codepoint] - * + * 0 1 2 3 + * codePoint = "B" [the unassigned codepoint] + * * Now, suppose a callback wants to write the substitution character '?' to - * the target. It calls ucnv_cbFromUWriteBytes() to write the ?. - * It should pass ZERO as the offset, because the offset as far as the - * callback is concerned is relative to the SOURCE pointer [which points + * the target. It calls ucnv_cbFromUWriteBytes() to write the ?. + * It should pass ZERO as the offset, because the offset as far as the + * callback is concerned is relative to the SOURCE pointer [which points * before 'C'.] If the callback goes into the args and consumes 'C' also, * it would call FromUWriteBytes with an offset of 1 (and advance the source * pointer). @@ -78,8 +78,8 @@ * @param source source bytes to write * @param length length of bytes to write * @param offsetIndex the relative offset index from callback. - * @param err error status. If U_BUFFER_OVERFLOW is returned, then U_BUFFER_OVERFLOW must - * be returned to the user, because it means that not all data could be written into the target buffer, and some is + * @param err error status. If U_BUFFER_OVERFLOW is returned, then U_BUFFER_OVERFLOW must + * be returned to the user, because it means that not all data could be written into the target buffer, and some is * in the converter error buffer. * @see ucnv_cbFromUWriteSub * @stable ICU 2.0 @@ -92,25 +92,25 @@ ucnv_cbFromUWriteBytes (UConverterFromUnicodeArgs *args, UErrorCode * err); /** - * ONLY used by FromU callback functions. - * This function will write out the correct substitution character sequence + * ONLY used by FromU callback functions. + * This function will write out the correct substitution character sequence * to the target. * * @param args callback fromUnicode arguments * @param offsetIndex the relative offset index from the current source pointer to be used - * @param err error status. If U_BUFFER_OVERFLOW is returned, then U_BUFFER_OVERFLOW must - * be returned to the user, because it means that not all data could be written into the target buffer, and some is + * @param err error status. If U_BUFFER_OVERFLOW is returned, then U_BUFFER_OVERFLOW must + * be returned to the user, because it means that not all data could be written into the target buffer, and some is * in the converter error buffer. * @see ucnv_cbFromUWriteBytes * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucnv_cbFromUWriteSub (UConverterFromUnicodeArgs *args, int32_t offsetIndex, UErrorCode * err); /** - * ONLY used by fromU callback functions. + * ONLY used by fromU callback functions. * This function will write out the error character(s) to the target UChar buffer. * * @param args callback fromUnicode arguments @@ -129,7 +129,7 @@ U_CAPI void U_EXPORT2 ucnv_cbFromUWriteUChars(UConverterFromUnicodeArgs *args, /** * ONLY used by ToU callback functions. - * This function will write out the specified characters to the target + * This function will write out the specified characters to the target * UChar buffer. * * @param args callback toUnicode arguments @@ -147,7 +147,7 @@ U_CAPI void U_EXPORT2 ucnv_cbToUWriteUChars (UConverterToUnicodeArgs *args, UErrorCode * err); /** - * ONLY used by ToU callback functions. + * ONLY used by ToU callback functions. * This function will write out the Unicode substitution character (U+FFFD). * * @param args callback fromUnicode arguments diff --git a/deps/icu-small/source/common/unicode/ucnv_err.h b/deps/icu-small/source/common/unicode/ucnv_err.h index bff90f0ba1e1d4..a13d01db099b37 100644 --- a/deps/icu-small/source/common/unicode/ucnv_err.h +++ b/deps/icu-small/source/common/unicode/ucnv_err.h @@ -108,7 +108,7 @@ typedef struct UConverter UConverter; #define UCNV_SKIP_STOP_ON_ILLEGAL "i" /** - * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to ICU (%UXXXX) + * FROM_U_CALLBACK_ESCAPE context option to escape the code unit according to ICU (%UXXXX) * @stable ICU 2.0 */ #define UCNV_ESCAPE_ICU NULL @@ -148,24 +148,24 @@ typedef struct UConverter UConverter; */ #define UCNV_ESCAPE_CSS2 "S" -/** - * The process condition code to be used with the callbacks. - * Codes which are greater than UCNV_IRREGULAR should be +/** + * The process condition code to be used with the callbacks. + * Codes which are greater than UCNV_IRREGULAR should be * passed on to any chained callbacks. * @stable ICU 2.0 */ typedef enum { UCNV_UNASSIGNED = 0, /**< The code point is unassigned. The error code U_INVALID_CHAR_FOUND will be set. */ - UCNV_ILLEGAL = 1, /**< The code point is illegal. For example, + UCNV_ILLEGAL = 1, /**< The code point is illegal. For example, \\x81\\x2E is illegal in SJIS because \\x2E - is not a valid trail byte for the \\x81 + is not a valid trail byte for the \\x81 lead byte. Also, starting with Unicode 3.0.1, non-shortest byte sequences in UTF-8 (like \\xC1\\xA1 instead of \\x61 for U+0061) are also illegal, not just irregular. The error code U_ILLEGAL_CHAR_FOUND will be set. */ - UCNV_IRREGULAR = 2, /**< The codepoint is not a regular sequence in + UCNV_IRREGULAR = 2, /**< The codepoint is not a regular sequence in the encoding. For example, \\xED\\xA0\\x80..\\xED\\xBF\\xBF are irregular UTF-8 byte sequences for single surrogate code points. @@ -179,8 +179,8 @@ typedef enum { converter. the pointer available as the 'context' is an alias to the original converters' context pointer. If the context must be owned - by the new converter, the callback must clone - the data and call ucnv_setFromUCallback + by the new converter, the callback must clone + the data and call ucnv_setFromUCallback (or setToUCallback) with the correct pointer. @stable ICU 2.2 */ @@ -268,8 +268,8 @@ U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_STOP ( /** * DO NOT CALL THIS FUNCTION DIRECTLY! * This From Unicode callback skips any ILLEGAL_SEQUENCE, or - * skips only UNASSINGED_SEQUENCE depending on the context parameter - * simply ignoring those characters. + * skips only UNASSIGNED_SEQUENCE depending on the context parameter + * simply ignoring those characters. * * @param context The function currently recognizes the callback options: * UCNV_SKIP_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE, @@ -295,7 +295,7 @@ U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SKIP ( /** * DO NOT CALL THIS FUNCTION DIRECTLY! - * This From Unicode callback will Substitute the ILLEGAL SEQUENCE, or + * This From Unicode callback will Substitute the ILLEGAL SEQUENCE, or * UNASSIGNED_SEQUENCE depending on context parameter, with the * current substitution string for the converter. This is the default * callback. @@ -330,33 +330,33 @@ U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_SUBSTITUTE ( * * @param context The function currently recognizes the callback options: *
      - *
    • UCNV_ESCAPE_ICU: Substitues the ILLEGAL SEQUENCE with the hexadecimal - * representation in the format %UXXXX, e.g. "%uFFFE%u00AC%uC8FE"). - * In the Event the converter doesn't support the characters {%,U}[A-F][0-9], + *
    • UCNV_ESCAPE_ICU: Substitutes the ILLEGAL SEQUENCE with the hexadecimal + * representation in the format %UXXXX, e.g. "%uFFFE%u00AC%uC8FE"). + * In the Event the converter doesn't support the characters {%,U}[A-F][0-9], * it will substitute the illegal sequence with the substitution characters. * Note that codeUnit(32bit int eg: unit of a surrogate pair) is represented as * %UD84D%UDC56
    • - *
    • UCNV_ESCAPE_JAVA: Substitues the ILLEGAL SEQUENCE with the hexadecimal - * representation in the format \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). - * In the Event the converter doesn't support the characters {\,u}[A-F][0-9], + *
    • UCNV_ESCAPE_JAVA: Substitutes the ILLEGAL SEQUENCE with the hexadecimal + * representation in the format \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). + * In the Event the converter doesn't support the characters {\,u}[A-F][0-9], * it will substitute the illegal sequence with the substitution characters. * Note that codeUnit(32bit int eg: unit of a surrogate pair) is represented as * \\uD84D\\uDC56
    • - *
    • UCNV_ESCAPE_C: Substitues the ILLEGAL SEQUENCE with the hexadecimal - * representation in the format \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). - * In the Event the converter doesn't support the characters {\,u,U}[A-F][0-9], + *
    • UCNV_ESCAPE_C: Substitutes the ILLEGAL SEQUENCE with the hexadecimal + * representation in the format \\uXXXX, e.g. "\\uFFFE\\u00AC\\uC8FE"). + * In the Event the converter doesn't support the characters {\,u,U}[A-F][0-9], * it will substitute the illegal sequence with the substitution characters. * Note that codeUnit(32bit int eg: unit of a surrogate pair) is represented as * \\U00023456
    • - *
    • UCNV_ESCAPE_XML_DEC: Substitues the ILLEGAL SEQUENCE with the decimal - * representation in the format \htmlonly&#DDDDDDDD;, e.g. "&#65534;&#172;&#51454;")\endhtmlonly. - * In the Event the converter doesn't support the characters {&,#}[0-9], + *
    • UCNV_ESCAPE_XML_DEC: Substitutes the ILLEGAL SEQUENCE with the decimal + * representation in the format \htmlonly&#DDDDDDDD;, e.g. "&#65534;&#172;&#51454;")\endhtmlonly. + * In the Event the converter doesn't support the characters {&,#}[0-9], * it will substitute the illegal sequence with the substitution characters. * Note that codeUnit(32bit int eg: unit of a surrogate pair) is represented as * &#144470; and Zero padding is ignored.
    • - *
    • UCNV_ESCAPE_XML_HEX:Substitues the ILLEGAL SEQUENCE with the decimal - * representation in the format \htmlonly&#xXXXX; e.g. "&#xFFFE;&#x00AC;&#xC8FE;")\endhtmlonly. - * In the Event the converter doesn't support the characters {&,#,x}[0-9], + *
    • UCNV_ESCAPE_XML_HEX:Substitutes the ILLEGAL SEQUENCE with the decimal + * representation in the format \htmlonly&#xXXXX; e.g. "&#xFFFE;&#x00AC;&#xC8FE;")\endhtmlonly. + * In the Event the converter doesn't support the characters {&,#,x}[0-9], * it will substitute the illegal sequence with the substitution characters. * Note that codeUnit(32bit int eg: unit of a surrogate pair) is represented as * \htmlonly&#x23456;\endhtmlonly
    • @@ -383,8 +383,8 @@ U_CAPI void U_EXPORT2 UCNV_FROM_U_CALLBACK_ESCAPE ( /** * DO NOT CALL THIS FUNCTION DIRECTLY! * This To Unicode callback skips any ILLEGAL_SEQUENCE, or - * skips only UNASSINGED_SEQUENCE depending on the context parameter - * simply ignoring those characters. + * skips only UNASSIGNED_SEQUENCE depending on the context parameter + * simply ignoring those characters. * * @param context The function currently recognizes the callback options: * UCNV_SKIP_STOP_ON_ILLEGAL: STOPS at the ILLEGAL_SEQUENCE, @@ -408,7 +408,7 @@ U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_SKIP ( /** * DO NOT CALL THIS FUNCTION DIRECTLY! - * This To Unicode callback will Substitute the ILLEGAL SEQUENCE,or + * This To Unicode callback will Substitute the ILLEGAL SEQUENCE,or * UNASSIGNED_SEQUENCE depending on context parameter, with the * Unicode substitution character, U+FFFD. * @@ -462,4 +462,4 @@ U_CAPI void U_EXPORT2 UCNV_TO_U_CALLBACK_ESCAPE ( #endif -/*UCNV_ERR_H*/ +/*UCNV_ERR_H*/ diff --git a/deps/icu-small/source/common/unicode/ucnvsel.h b/deps/icu-small/source/common/unicode/ucnvsel.h index 3ba41bd64c1750..3d7d3327f7dadd 100644 --- a/deps/icu-small/source/common/unicode/ucnvsel.h +++ b/deps/icu-small/source/common/unicode/ucnvsel.h @@ -58,7 +58,7 @@ typedef struct UConverterSelector UConverterSelector; * If converterListSize is 0, build for all available converters. * If excludedCodePoints is NULL, don't exclude any code points. * - * @param converterList a pointer to encoding names needed to be involved. + * @param converterList a pointer to encoding names needed to be involved. * Can be NULL if converterListSize==0. * The list and the names will be cloned, and the caller * retains ownership of the original. diff --git a/deps/icu-small/source/common/unicode/uconfig.h b/deps/icu-small/source/common/unicode/uconfig.h index c0157efe6d4ede..bbc232d1ed8fdf 100644 --- a/deps/icu-small/source/common/unicode/uconfig.h +++ b/deps/icu-small/source/common/unicode/uconfig.h @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 2002-2016, International Business Machines * Corporation and others. All Rights Reserved. @@ -76,7 +76,7 @@ #endif /** - * Determines whether to enable auto cleanup of libraries. + * Determines whether to enable auto cleanup of libraries. * @internal */ #ifndef UCLN_NO_AUTO_CLEANUP @@ -256,7 +256,7 @@ # define UCONFIG_NO_FILE_IO 0 #endif -#if UCONFIG_NO_FILE_IO && defined(U_TIMEZONE_FILES_DIR) +#if UCONFIG_NO_FILE_IO && defined(U_TIMEZONE_FILES_DIR) # error Contradictory file io switches in uconfig.h. #endif @@ -374,7 +374,7 @@ * On platforms where U_PLATFORM_HAS_WIN32_API is true, this switch determines * if the Windows platform APIs are used for LCID<->Locale Name conversions. * Otherwise, only the built-in ICU tables are used. - * + * * @internal ICU 64 */ #ifndef UCONFIG_USE_WINDOWS_LCID_MAPPING_API diff --git a/deps/icu-small/source/common/unicode/ucptrie.h b/deps/icu-small/source/common/unicode/ucptrie.h index b95491b183e9af..e2547ae2eeac92 100644 --- a/deps/icu-small/source/common/unicode/ucptrie.h +++ b/deps/icu-small/source/common/unicode/ucptrie.h @@ -43,7 +43,7 @@ typedef union UCPTrieData { /** * Immutable Unicode code point trie structure. * Fast, reasonably compact, map from Unicode code points (U+0000..U+10FFFF) to integer values. - * For details see http://site.icu-project.org/design/struct/utrie + * For details see https://icu.unicode.org/design/struct/utrie * * Do not access UCPTrie fields directly; use public functions and macros. * Functions are easy to use: They support all trie types and value widths. diff --git a/deps/icu-small/source/common/unicode/ucurr.h b/deps/icu-small/source/common/unicode/ucurr.h index 4e115cd01e0fb6..5589e799904914 100644 --- a/deps/icu-small/source/common/unicode/ucurr.h +++ b/deps/icu-small/source/common/unicode/ucurr.h @@ -13,7 +13,7 @@ #include "unicode/uenum.h" /** - * \file + * \file * \brief C API: Encapsulates information about a currency. * * The ucurr API encapsulates information about a currency, as defined by @@ -61,11 +61,11 @@ enum UCurrencyUsage { #endif // U_HIDE_DEPRECATED_API }; /** Currency Usage used for Decimal Format */ -typedef enum UCurrencyUsage UCurrencyUsage; +typedef enum UCurrencyUsage UCurrencyUsage; /** * Finds a currency code for the given locale. - * @param locale the locale for which to retrieve a currency code. + * @param locale the locale for which to retrieve a currency code. * Currency can be specified by the "currency" keyword * in which case it overrides the default currency code * @param buff fill in buffer. Can be NULL for preflighting. @@ -74,8 +74,8 @@ typedef enum UCurrencyUsage UCurrencyUsage; * must not be NULL. * @param ec error code * @return length of the currency string. It should always be 3. If 0, - * currency couldn't be found or the input values are - * invalid. + * currency couldn't be found or the input values are + * invalid. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 @@ -115,14 +115,13 @@ typedef enum UCurrNameStyle { */ UCURR_NARROW_SYMBOL_NAME, -#ifndef U_HIDE_DRAFT_API /** * Selector for getName() indicating the formal currency symbol. * The formal currency symbol is similar to the regular currency * symbol, but it always takes the form used in formal settings * such as banking; for example, "NT$" instead of "$" for TWD in zh-TW. * - * @draft ICU 68 + * @stable ICU 68 */ UCURR_FORMAL_SYMBOL_NAME, @@ -131,11 +130,10 @@ typedef enum UCurrNameStyle { * The variant symbol for a currency is an alternative symbol * that is not necessarily as widely used as the regular symbol. * - * @draft ICU 68 + * @stable ICU 68 */ UCURR_VARIANT_SYMBOL_NAME -#endif // U_HIDE_DRAFT_API - + } UCurrNameStyle; #if !UCONFIG_NO_SERVICE @@ -156,14 +154,14 @@ typedef const void* UCurrRegistryKey; * @stable ICU 2.6 */ U_CAPI UCurrRegistryKey U_EXPORT2 -ucurr_register(const UChar* isoCode, - const char* locale, +ucurr_register(const UChar* isoCode, + const char* locale, UErrorCode* status); /** * Unregister the previously-registered currency definitions using the * URegistryKey returned from ucurr_register. Key becomes invalid after - * a successful call and should not be used again. Any currency - * that might have been hidden by the original ucurr_register call is + * a successful call and should not be used again. Any currency + * that might have been hidden by the original ucurr_register call is * restored. * @param key the registry key returned by a previous call to ucurr_register * @param status the in/out status code, no special meanings are assigned @@ -263,7 +261,7 @@ ucurr_getDefaultFractionDigits(const UChar* currency, * @stable ICU 54 */ U_CAPI int32_t U_EXPORT2 -ucurr_getDefaultFractionDigitsForUsage(const UChar* currency, +ucurr_getDefaultFractionDigitsForUsage(const UChar* currency, const UCurrencyUsage usage, UErrorCode* ec); @@ -352,38 +350,38 @@ U_CAPI UEnumeration * U_EXPORT2 ucurr_openISOCurrencies(uint32_t currType, UErrorCode *pErrorCode); /** - * Queries if the given ISO 4217 3-letter code is available on the specified date range. - * - * Note: For checking availability of a currency on a specific date, specify the date on both 'from' and 'to' - * - * When 'from' is U_DATE_MIN and 'to' is U_DATE_MAX, this method checks if the specified currency is available any time. + * Queries if the given ISO 4217 3-letter code is available on the specified date range. + * + * Note: For checking availability of a currency on a specific date, specify the date on both 'from' and 'to' + * + * When 'from' is U_DATE_MIN and 'to' is U_DATE_MAX, this method checks if the specified currency is available any time. * If 'from' and 'to' are same UDate value, this method checks if the specified currency is available on that date. - * - * @param isoCode - * The ISO 4217 3-letter code. - * - * @param from - * The lower bound of the date range, inclusive. When 'from' is U_DATE_MIN, check the availability - * of the currency any date before 'to' - * - * @param to - * The upper bound of the date range, inclusive. When 'to' is U_DATE_MAX, check the availability of - * the currency any date after 'from' - * - * @param errorCode - * ICU error code - * - * @return true if the given ISO 4217 3-letter code is supported on the specified date range. - * - * @stable ICU 4.8 - */ + * + * @param isoCode + * The ISO 4217 3-letter code. + * + * @param from + * The lower bound of the date range, inclusive. When 'from' is U_DATE_MIN, check the availability + * of the currency any date before 'to' + * + * @param to + * The upper bound of the date range, inclusive. When 'to' is U_DATE_MAX, check the availability of + * the currency any date after 'from' + * + * @param errorCode + * ICU error code + * + * @return true if the given ISO 4217 3-letter code is supported on the specified date range. + * + * @stable ICU 4.8 + */ U_CAPI UBool U_EXPORT2 -ucurr_isAvailable(const UChar* isoCode, - UDate from, - UDate to, +ucurr_isAvailable(const UChar* isoCode, + UDate from, + UDate to, UErrorCode* errorCode); -/** +/** * Finds the number of valid currency codes for the * given locale and date. * @param locale the locale for which to retrieve the @@ -398,36 +396,36 @@ ucurr_isAvailable(const UChar* isoCode, * @stable ICU 4.0 */ U_CAPI int32_t U_EXPORT2 -ucurr_countCurrencies(const char* locale, - UDate date, - UErrorCode* ec); +ucurr_countCurrencies(const char* locale, + UDate date, + UErrorCode* ec); -/** - * Finds a currency code for the given locale and date - * @param locale the locale for which to retrieve a currency code. - * Currency can be specified by the "currency" keyword - * in which case it overrides the default currency code - * @param date the date for which to retrieve a currency code for - * the given locale. +/** + * Finds a currency code for the given locale and date + * @param locale the locale for which to retrieve a currency code. + * Currency can be specified by the "currency" keyword + * in which case it overrides the default currency code + * @param date the date for which to retrieve a currency code for + * the given locale. * @param index the index within the available list of currency codes * for the given locale on the given date. - * @param buff fill in buffer. Can be NULL for preflighting. - * @param buffCapacity capacity of the fill in buffer. Can be 0 for - * preflighting. If it is non-zero, the buff parameter - * must not be NULL. - * @param ec error code - * @return length of the currency string. It should always be 3. - * If 0, currency couldn't be found or the input values are - * invalid. - * @stable ICU 4.0 - */ -U_CAPI int32_t U_EXPORT2 -ucurr_forLocaleAndDate(const char* locale, - UDate date, + * @param buff fill in buffer. Can be NULL for preflighting. + * @param buffCapacity capacity of the fill in buffer. Can be 0 for + * preflighting. If it is non-zero, the buff parameter + * must not be NULL. + * @param ec error code + * @return length of the currency string. It should always be 3. + * If 0, currency couldn't be found or the input values are + * invalid. + * @stable ICU 4.0 + */ +U_CAPI int32_t U_EXPORT2 +ucurr_forLocaleAndDate(const char* locale, + UDate date, int32_t index, - UChar* buff, - int32_t buffCapacity, - UErrorCode* ec); + UChar* buff, + int32_t buffCapacity, + UErrorCode* ec); /** * Given a key and a locale, returns an array of string values in a preferred diff --git a/deps/icu-small/source/common/unicode/udata.h b/deps/icu-small/source/common/unicode/udata.h index 88c0dded118d00..c5b1adc359c0ab 100644 --- a/deps/icu-small/source/common/unicode/udata.h +++ b/deps/icu-small/source/common/unicode/udata.h @@ -41,16 +41,16 @@ U_CDECL_BEGIN * * See the User Guide Data Management chapter. */ - + #ifndef U_HIDE_INTERNAL_API /** - * Character used to separate package names from tree names + * Character used to separate package names from tree names * @internal ICU 3.0 */ #define U_TREE_SEPARATOR '-' /** - * String used to separate package names from tree names + * String used to separate package names from tree names * @internal ICU 3.0 */ #define U_TREE_SEPARATOR_STRING "-" @@ -68,7 +68,7 @@ U_CDECL_BEGIN #define U_TREE_ENTRY_SEP_STRING "/" /** - * Alias for standard ICU data + * Alias for standard ICU data * @internal ICU 3.0 */ #define U_ICUDATA_ALIAS "ICUDATA" @@ -118,7 +118,7 @@ typedef struct { * @stable ICU 2.0 */ uint16_t size; - /** unused, set to 0 + /** unused, set to 0 * @stable ICU 2.0*/ uint16_t reservedWord; @@ -127,27 +127,27 @@ typedef struct { * @stable ICU 2.0 */ uint8_t isBigEndian; - /** see U_CHARSET_FAMILY values in utypes.h + /** see U_CHARSET_FAMILY values in utypes.h * @stable ICU 2.0*/ uint8_t charsetFamily; - /** sizeof(UChar), one of { 1, 2, 4 } + /** sizeof(UChar), one of { 1, 2, 4 } * @stable ICU 2.0*/ uint8_t sizeofUChar; - /** unused, set to 0 + /** unused, set to 0 * @stable ICU 2.0*/ uint8_t reservedByte; - /** data format identifier + /** data format identifier * @stable ICU 2.0*/ uint8_t dataFormat[4]; - /** versions: [0] major [1] minor [2] milli [3] micro + /** versions: [0] major [1] minor [2] milli [3] micro * @stable ICU 2.0*/ uint8_t formatVersion[4]; - /** versions: [0] major [1] minor [2] milli [3] micro + /** versions: [0] major [1] minor [2] milli [3] micro * @stable ICU 2.0*/ uint8_t dataVersion[4]; } UDataInfo; @@ -231,7 +231,7 @@ udata_open(const char *path, const char *type, const char *name, * logically prepended to the ICU data directory string.

      * *

      For details about ICU data loading see the User Guide - * Data Management chapter. (http://icu-project.org/userguide/icudata.html)

      + * Data Management chapter. (https://unicode-org.github.io/icu/userguide/icu_data/)

      * * @param path Specifies an absolute path and/or a basename for the * finding of the data in the file system. @@ -362,7 +362,7 @@ udata_setCommonData(const void *data, UErrorCode *err); * * * Warning: setAppData will set a U_USING_DEFAULT_WARNING code if - * data with the specifed path that has already been opened, or + * data with the specified path that has already been opened, or * if setAppData with the same path has already been called. * Any such calls to setAppData will have no effect. * @@ -405,13 +405,13 @@ typedef enum UDataFileAccess { /** * This function may be called to control how ICU loads data. It must be called - * before any ICU data is loaded, including application data loaded with - * ures/ResourceBundle or udata APIs. This function is not multithread safe. + * before any ICU data is loaded, including application data loaded with + * ures/ResourceBundle or udata APIs. This function is not multithread safe. * The results of calling it while other threads are loading data are undefined. * @param access The type of file access to be used * @param status Error code. * @see UDataFileAccess - * @stable ICU 3.4 + * @stable ICU 3.4 */ U_CAPI void U_EXPORT2 udata_setFileAccess(UDataFileAccess access, UErrorCode *status); diff --git a/deps/icu-small/source/common/unicode/uenum.h b/deps/icu-small/source/common/unicode/uenum.h index f1c506934bec87..d9c893e06d92b2 100644 --- a/deps/icu-small/source/common/unicode/uenum.h +++ b/deps/icu-small/source/common/unicode/uenum.h @@ -31,9 +31,9 @@ U_NAMESPACE_END /** * \file - * \brief C API: String Enumeration + * \brief C API: String Enumeration */ - + /** * An enumeration object. * For usage in C programs. @@ -78,7 +78,7 @@ U_NAMESPACE_END * U_ENUM_OUT_OF_SYNC_ERROR. * This is a convenience function. It can end up being very * expensive as all the items might have to be pre-fetched (depending - * on the type of data being traversed). Use with caution and only + * on the type of data being traversed). Use with caution and only * when necessary. * @param en UEnumeration structure pointer * @param status error code, can be U_ENUM_OUT_OF_SYNC_ERROR if the @@ -154,7 +154,7 @@ uenum_next(UEnumeration* en, * to start at the first element. * @param en the iterator object * @param status the error code, set to U_ENUM_OUT_OF_SYNC_ERROR if - * the iterator is out of sync with its service. + * the iterator is out of sync with its service. * @stable ICU 2.2 */ U_CAPI void U_EXPORT2 diff --git a/deps/icu-small/source/common/unicode/uidna.h b/deps/icu-small/source/common/unicode/uidna.h index 1f75562555c3c2..24a81ceaddf58d 100644 --- a/deps/icu-small/source/common/unicode/uidna.h +++ b/deps/icu-small/source/common/unicode/uidna.h @@ -542,7 +542,7 @@ enum { * and are designed to be chainable, i.e., applying ToASCII or ToUnicode operations * multiple times to an input string will yield the same result as applying the operation * once. - * ToUnicode(ToUnicode(ToUnicode...(ToUnicode(string)))) == ToUnicode(string) + * ToUnicode(ToUnicode(ToUnicode...(ToUnicode(string)))) == ToUnicode(string) * ToASCII(ToASCII(ToASCII...(ToASCII(string))) == ToASCII(string). * * @param src Input UChar array containing label in Unicode. @@ -553,18 +553,18 @@ enum { * * - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points * and do not use STD3 ASCII rules - * If unassigned code points are found the operation fails with + * If unassigned code points are found the operation fails with * U_UNASSIGNED_ERROR error code. * * - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations - * If this option is set, the unassigned code points are in the input + * If this option is set, the unassigned code points are in the input * are treated as normal Unicode code points. * * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions - * If this option is set and the input does not satisfy STD3 rules, + * If this option is set and the input does not satisfy STD3 rules, * the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR * - * @param parseError Pointer to UParseError struct to receive information on position + * @param parseError Pointer to UParseError struct to receive information on position * of error if an error is encountered. Can be NULL. * @param status ICU in/out error code parameter. * U_INVALID_CHAR_FOUND if src contains @@ -577,7 +577,7 @@ enum { * @deprecated ICU 55 Use UTS #46 instead via uidna_openUTS46() or class IDNA. */ U_DEPRECATED int32_t U_EXPORT2 -uidna_toASCII(const UChar* src, int32_t srcLength, +uidna_toASCII(const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UParseError* parseError, @@ -598,21 +598,21 @@ uidna_toASCII(const UChar* src, int32_t srcLength, * * - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points * and do not use STD3 ASCII rules - * If unassigned code points are found the operation fails with + * If unassigned code points are found the operation fails with * U_UNASSIGNED_ERROR error code. * * - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations - * If this option is set, the unassigned code points are in the input - * are treated as normal Unicode code points. Note: This option is - * required on toUnicode operation because the RFC mandates + * If this option is set, the unassigned code points are in the input + * are treated as normal Unicode code points. Note: This option is + * required on toUnicode operation because the RFC mandates * verification of decoded ACE input by applying toASCII and comparing * its output with source * * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions - * If this option is set and the input does not satisfy STD3 rules, + * If this option is set and the input does not satisfy STD3 rules, * the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR * - * @param parseError Pointer to UParseError struct to receive information on position + * @param parseError Pointer to UParseError struct to receive information on position * of error if an error is encountered. Can be NULL. * @param status ICU in/out error code parameter. * U_INVALID_CHAR_FOUND if src contains @@ -634,14 +634,14 @@ uidna_toUnicode(const UChar* src, int32_t srcLength, /** * IDNA2003: Convenience function that implements the IDNToASCII operation as defined in the IDNA RFC. - * This operation is done on complete domain names, e.g: "www.example.com". - * It is important to note that this operation can fail. If it fails, then the input + * This operation is done on complete domain names, e.g: "www.example.com". + * It is important to note that this operation can fail. If it fails, then the input * domain name cannot be used as an Internationalized Domain Name and the application * should have methods defined to deal with the failure. * * Note: IDNA RFC specifies that a conformant application should divide a domain name - * into separate labels, decide whether to apply allowUnassigned and useSTD3ASCIIRules on each, - * and then convert. This function does not offer that level of granularity. The options once + * into separate labels, decide whether to apply allowUnassigned and useSTD3ASCIIRules on each, + * and then convert. This function does not offer that level of granularity. The options once * set will apply to all labels in the domain name * * @param src Input UChar array containing IDN in Unicode. @@ -652,18 +652,18 @@ uidna_toUnicode(const UChar* src, int32_t srcLength, * * - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points * and do not use STD3 ASCII rules - * If unassigned code points are found the operation fails with + * If unassigned code points are found the operation fails with * U_UNASSIGNED_CODE_POINT_FOUND error code. * * - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations - * If this option is set, the unassigned code points are in the input + * If this option is set, the unassigned code points are in the input * are treated as normal Unicode code points. * * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions - * If this option is set and the input does not satisfy STD3 rules, + * If this option is set and the input does not satisfy STD3 rules, * the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR * - * @param parseError Pointer to UParseError struct to receive information on position + * @param parseError Pointer to UParseError struct to receive information on position * of error if an error is encountered. Can be NULL. * @param status ICU in/out error code parameter. * U_INVALID_CHAR_FOUND if src contains @@ -684,11 +684,11 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength, /** * IDNA2003: Convenience function that implements the IDNToUnicode operation as defined in the IDNA RFC. - * This operation is done on complete domain names, e.g: "www.example.com". + * This operation is done on complete domain names, e.g: "www.example.com". * * Note: IDNA RFC specifies that a conformant application should divide a domain name - * into separate labels, decide whether to apply allowUnassigned and useSTD3ASCIIRules on each, - * and then convert. This function does not offer that level of granularity. The options once + * into separate labels, decide whether to apply allowUnassigned and useSTD3ASCIIRules on each, + * and then convert. This function does not offer that level of granularity. The options once * set will apply to all labels in the domain name * * @param src Input UChar array containing IDN in ASCII (ACE encoded) form. @@ -699,18 +699,18 @@ uidna_IDNToASCII( const UChar* src, int32_t srcLength, * * - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points * and do not use STD3 ASCII rules - * If unassigned code points are found the operation fails with + * If unassigned code points are found the operation fails with * U_UNASSIGNED_CODE_POINT_FOUND error code. * * - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations - * If this option is set, the unassigned code points are in the input + * If this option is set, the unassigned code points are in the input * are treated as normal Unicode code points. * * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions - * If this option is set and the input does not satisfy STD3 rules, + * If this option is set and the input does not satisfy STD3 rules, * the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR * - * @param parseError Pointer to UParseError struct to receive information on position + * @param parseError Pointer to UParseError struct to receive information on position * of error if an error is encountered. Can be NULL. * @param status ICU in/out error code parameter. * U_INVALID_CHAR_FOUND if src contains @@ -732,10 +732,10 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, /** * IDNA2003: Compare two IDN strings for equivalence. * This function splits the domain names into labels and compares them. - * According to IDN RFC, whenever two labels are compared, they are - * considered equal if and only if their ASCII forms (obtained by + * According to IDN RFC, whenever two labels are compared, they are + * considered equal if and only if their ASCII forms (obtained by * applying toASCII) match using an case-insensitive ASCII comparison. - * Two domain names are considered a match if and only if all labels + * Two domain names are considered a match if and only if all labels * match regardless of whether label separators match. * * @param s1 First source string. @@ -747,15 +747,15 @@ uidna_IDNToUnicode( const UChar* src, int32_t srcLength, * * - UIDNA_DEFAULT Use default options, i.e., do not process unassigned code points * and do not use STD3 ASCII rules - * If unassigned code points are found the operation fails with + * If unassigned code points are found the operation fails with * U_UNASSIGNED_CODE_POINT_FOUND error code. * * - UIDNA_ALLOW_UNASSIGNED Unassigned values can be converted to ASCII for query operations - * If this option is set, the unassigned code points are in the input + * If this option is set, the unassigned code points are in the input * are treated as normal Unicode code points. * * - UIDNA_USE_STD3_RULES Use STD3 ASCII rules for host name syntax restrictions - * If this option is set and the input does not satisfy STD3 rules, + * If this option is set and the input does not satisfy STD3 rules, * the operation will fail with U_IDNA_STD3_ASCII_RULES_ERROR * * @param status ICU error code in/out parameter. diff --git a/deps/icu-small/source/common/unicode/uiter.h b/deps/icu-small/source/common/unicode/uiter.h index 7dbe1266668f24..be232c774dc614 100644 --- a/deps/icu-small/source/common/unicode/uiter.h +++ b/deps/icu-small/source/common/unicode/uiter.h @@ -171,7 +171,7 @@ UCharIteratorHasNext(UCharIterator *iter); */ typedef UBool U_CALLCONV UCharIteratorHasPrevious(UCharIterator *iter); - + /** * Function type declaration for UCharIterator.current(). * diff --git a/deps/icu-small/source/common/unicode/uldnames.h b/deps/icu-small/source/common/unicode/uldnames.h index 10f0e91e5526e4..47b047ece97b80 100644 --- a/deps/icu-small/source/common/unicode/uldnames.h +++ b/deps/icu-small/source/common/unicode/uldnames.h @@ -48,11 +48,11 @@ typedef enum { */ struct ULocaleDisplayNames; -/** - * C typedef for struct ULocaleDisplayNames. - * @stable ICU 4.4 +/** + * C typedef for struct ULocaleDisplayNames. + * @stable ICU 4.4 */ -typedef struct ULocaleDisplayNames ULocaleDisplayNames; +typedef struct ULocaleDisplayNames ULocaleDisplayNames; #if !UCONFIG_NO_FORMATTING @@ -62,9 +62,9 @@ typedef struct ULocaleDisplayNames ULocaleDisplayNames; * dialectHandling. The usual value for dialectHandling is * ULOC_STANDARD_NAMES. * - * @param locale the display locale - * @param dialectHandling how to select names for locales - * @return a ULocaleDisplayNames instance + * @param locale the display locale + * @param dialectHandling how to select names for locales + * @return a ULocaleDisplayNames instance * @param pErrorCode the status code * @stable ICU 4.4 */ @@ -106,7 +106,7 @@ U_NAMESPACE_END * Returns the locale used to determine the display names. This is * not necessarily the same locale passed to {@link #uldn_open}. * @param ldn the LocaleDisplayNames instance - * @return the display locale + * @return the display locale * @stable ICU 4.4 */ U_CAPI const char * U_EXPORT2 @@ -275,14 +275,14 @@ uldn_keyValueDisplayName(const ULocaleDisplayNames *ldn, * Returns an instance of LocaleDisplayNames that returns names formatted * for the provided locale, using the provided UDisplayContext settings. * -* @param locale The display locale +* @param locale The display locale * @param contexts List of one or more context settings (e.g. for dialect * handling, capitalization, etc. * @param length Number of items in the contexts list * @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates * a failure status, the function will do nothing; otherwise this will be -* updated with any new status from the function. -* @return a ULocaleDisplayNames instance +* updated with any new status from the function. +* @return a ULocaleDisplayNames instance * @stable ICU 51 */ U_CAPI ULocaleDisplayNames * U_EXPORT2 @@ -295,7 +295,7 @@ uldn_openForContext(const char * locale, UDisplayContext *contexts, * @param type the UDisplayContextType whose value to return * @param pErrorCode Pointer to UErrorCode input/output status. If at entry this indicates * a failure status, the function will do nothing; otherwise this will be -* updated with any new status from the function. +* updated with any new status from the function. * @return the UDisplayContextValue for the specified type. * @stable ICU 51 */ diff --git a/deps/icu-small/source/common/unicode/uloc.h b/deps/icu-small/source/common/unicode/uloc.h index 56fb4c9b3769e0..b0bdbe1b87f48f 100644 --- a/deps/icu-small/source/common/unicode/uloc.h +++ b/deps/icu-small/source/common/unicode/uloc.h @@ -26,9 +26,9 @@ #include "unicode/utypes.h" #include "unicode/uenum.h" -/** +/** * \file - * \brief C API: Locale + * \brief C API: Locale * *

      ULoc C API for Locale

      * A Locale represents a specific geographical, political, @@ -46,9 +46,9 @@ *
        * \code
        *       newLanguage
      - *
      + * 
        *       newLanguage + newCountry
      - *
      + * 
        *       newLanguage + newCountry + newVariant
        * \endcode
        * 
      @@ -69,7 +69,7 @@ * http://www.chemie.fu-berlin.de/diverse/doc/ISO_3166.html * *

      - * The third option requires another additional information--the + * The third option requires another additional information--the * Variant. * The Variant codes are vendor and browser-specific. * For example, use WIN for Windows, MAC for Macintosh, and POSIX for POSIX. @@ -119,7 +119,7 @@ *

      * The ICU provides a number of services that perform locale-sensitive * operations. For example, the unum_xxx functions format - * numbers, currency, or percentages in a locale-sensitive manner. + * numbers, currency, or percentages in a locale-sensitive manner. *

      * \htmlonly
      \endhtmlonly *
      @@ -127,12 +127,12 @@
        *     UErrorCode success = U_ZERO_ERROR;
        *     UNumberFormat *nf;
        *     const char* myLocale = "fr_FR";
      - *
      - *     nf = unum_open( UNUM_DEFAULT, NULL, success );
      + * 
      + *     nf = unum_open( UNUM_DEFAULT, NULL, success );          
        *     unum_close(nf);
        *     nf = unum_open( UNUM_CURRENCY, NULL, success );
        *     unum_close(nf);
      - *     nf = unum_open( UNUM_PERCENT, NULL, success );
      + *     nf = unum_open( UNUM_PERCENT, NULL, success );   
        *     unum_close(nf);
        * \endcode
        * 
      @@ -141,13 +141,13 @@ * and one without; the latter using the default locale. * \htmlonly
      \endhtmlonly *
      - * \code
      - *
      - *     nf = unum_open( UNUM_DEFAULT, myLocale, success );
      + * \code 
      + * 
      + *     nf = unum_open( UNUM_DEFAULT, myLocale, success );          
        *     unum_close(nf);
        *     nf = unum_open( UNUM_CURRENCY, myLocale, success );
        *     unum_close(nf);
      - *     nf = unum_open( UNUM_PERCENT, myLocale, success );
      + *     nf = unum_open( UNUM_PERCENT, myLocale, success );   
        *     unum_close(nf);
        * \endcode
        * 
      @@ -157,7 +157,7 @@ * just a mechanism for identifying these services. * *

      - * Each international service that performs locale-sensitive operations + * Each international service that performs locale-sensitive operations * allows you * to get all the available objects of that type. You can sift * through these objects by language, country, or variant, @@ -172,22 +172,22 @@ * int32_t uloc_countAvailable(); * int32_t * uloc_getDisplayName(const char* localeID, - * const char* inLocaleID, + * const char* inLocaleID, * UChar* result, * int32_t maxResultSize, * UErrorCode* err); - * + * * \endcode *

    * \htmlonly\endhtmlonly *

    - * Concerning POSIX/RFC1766 Locale IDs, + * Concerning POSIX/RFC1766 Locale IDs, * the getLanguage/getCountry/getVariant/getName functions do understand * the POSIX type form of language_COUNTRY.ENCODING\@VARIANT * and if there is not an ICU-stype variant, uloc_getVariant() for example * will return the one listed after the \@at sign. As well, the hyphen * "-" is recognized as a country/variant separator similarly to RFC1766. - * So for example, "en-us" will be interpreted as en_US. + * So for example, "en-us" will be interpreted as en_US. * As a result, uloc_getName() is far from a no-op, and will have the * effect of converting POSIX/RFC1766 IDs into ICU form, although it does * NOT map any of the actual codes (i.e. russian->ru) in any way. @@ -304,7 +304,7 @@ /** * Unicode code point for '=' for assigning value to a keyword. * @see ULOC_KEYWORD_ASSIGN - * @stable ICU 4.6 + * @stable ICU 4.6 */ #define ULOC_KEYWORD_ASSIGN_UNICODE 0x3D @@ -323,31 +323,31 @@ /** * Constants for *_getLocale() - * Allow user to select whether she wants information on + * Allow user to select whether she wants information on * requested, valid or actual locale. * For example, a collator for "en_US_CALIFORNIA" was - * requested. In the current state of ICU (2.0), + * requested. In the current state of ICU (2.0), * the requested locale is "en_US_CALIFORNIA", * the valid locale is "en_US" (most specific locale supported by ICU) - * and the actual locale is "root" (the collation data comes unmodified + * and the actual locale is "root" (the collation data comes unmodified * from the UCA) - * The locale is considered supported by ICU if there is a core ICU bundle + * The locale is considered supported by ICU if there is a core ICU bundle * for that locale (although it may be empty). * @stable ICU 2.1 */ typedef enum { - /** This is locale the data actually comes from + /** This is locale the data actually comes from * @stable ICU 2.1 */ ULOC_ACTUAL_LOCALE = 0, - /** This is the most specific locale supported by ICU + /** This is the most specific locale supported by ICU * @stable ICU 2.1 */ ULOC_VALID_LOCALE = 1, #ifndef U_HIDE_DEPRECATED_API /** This is the requested locale - * @deprecated ICU 2.8 + * @deprecated ICU 2.8 */ ULOC_REQUESTED_LOCALE = 2, @@ -361,12 +361,12 @@ typedef enum { #ifndef U_HIDE_SYSTEM_API /** - * Gets ICU's default locale. + * Gets ICU's default locale. * The returned string is a snapshot in time, and will remain valid * and unchanged even when uloc_setDefault() is called. * The returned storage is owned by ICU, and must not be altered or deleted * by the caller. - * + * * @return the ICU default locale * @system * @stable ICU 2.0 @@ -375,7 +375,7 @@ U_CAPI const char* U_EXPORT2 uloc_getDefault(void); /** - * Sets ICU's default locale. + * Sets ICU's default locale. * By default (without calling this function), ICU's default locale will be based * on information obtained from the underlying system environment. *

    @@ -401,11 +401,11 @@ uloc_setDefault(const char* localeID, * * @param localeID the locale to get the ISO language code with * @param language the language code for localeID - * @param languageCapacity the size of the language buffer to store the + * @param languageCapacity the size of the language buffer to store the * language code with * @param err error information if retrieving the language code failed - * @return the actual buffer size needed for the language code. If it's greater - * than languageCapacity, the returned language code will be truncated. + * @return the actual buffer size needed for the language code. If it's greater + * than languageCapacity, the returned language code will be truncated. * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 @@ -419,11 +419,11 @@ uloc_getLanguage(const char* localeID, * * @param localeID the locale to get the ISO language code with * @param script the language code for localeID - * @param scriptCapacity the size of the language buffer to store the + * @param scriptCapacity the size of the language buffer to store the * language code with * @param err error information if retrieving the language code failed - * @return the actual buffer size needed for the language code. If it's greater - * than scriptCapacity, the returned language code will be truncated. + * @return the actual buffer size needed for the language code. If it's greater + * than scriptCapacity, the returned language code will be truncated. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 @@ -437,11 +437,11 @@ uloc_getScript(const char* localeID, * * @param localeID the locale to get the country code with * @param country the country code for localeID - * @param countryCapacity the size of the country buffer to store the + * @param countryCapacity the size of the country buffer to store the * country code with * @param err error information if retrieving the country code failed - * @return the actual buffer size needed for the country code. If it's greater - * than countryCapacity, the returned country code will be truncated. + * @return the actual buffer size needed for the country code. If it's greater + * than countryCapacity, the returned country code will be truncated. * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 @@ -455,11 +455,11 @@ uloc_getCountry(const char* localeID, * * @param localeID the locale to get the variant code with * @param variant the variant code for localeID - * @param variantCapacity the size of the variant buffer to store the + * @param variantCapacity the size of the variant buffer to store the * variant code with * @param err error information if retrieving the variant code failed - * @return the actual buffer size needed for the variant code. If it's greater - * than variantCapacity, the returned variant code will be truncated. + * @return the actual buffer size needed for the variant code. If it's greater + * than variantCapacity, the returned variant code will be truncated. * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 @@ -481,8 +481,8 @@ uloc_getVariant(const char* localeID, * @param name fill in buffer for the name without keywords. * @param nameCapacity capacity of the fill in buffer. * @param err error information if retrieving the full name failed - * @return the actual buffer size needed for the full name. If it's greater - * than nameCapacity, the returned full name will be truncated. + * @return the actual buffer size needed for the full name. If it's greater + * than nameCapacity, the returned full name will be truncated. * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 @@ -501,11 +501,11 @@ uloc_getName(const char* localeID, * * @param localeID the locale to get the full name with * @param name the full name for localeID - * @param nameCapacity the size of the name buffer to store the + * @param nameCapacity the size of the name buffer to store the * full name with * @param err error information if retrieving the full name failed - * @return the actual buffer size needed for the full name. If it's greater - * than nameCapacity, the returned full name will be truncated. + * @return the actual buffer size needed for the full name. If it's greater + * than nameCapacity, the returned full name will be truncated. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 @@ -754,11 +754,11 @@ uloc_getDisplayKeywordValue( const char* locale, * inLocale would result in "Anglais", while passing Locale::getGerman() * for inLocale would result in "Englisch". NULL may be used to specify the default. * @param result the displayable name for localeID - * @param maxResultSize the size of the name buffer to store the + * @param maxResultSize the size of the name buffer to store the * displayable full name with * @param err error information if retrieving the displayable name failed - * @return the actual buffer size needed for the displayable name. If it's greater - * than maxResultSize, the returned displayable name will be truncated. + * @return the actual buffer size needed for the displayable name. If it's greater + * than maxResultSize, the returned displayable name will be truncated. * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 @@ -841,7 +841,7 @@ typedef enum ULocAvailableType { * @internal */ ULOC_AVAILABLE_COUNT -#endif +#endif /* U_HIDE_INTERNAL_API */ } ULocAvailableType; /** @@ -916,16 +916,16 @@ uloc_getParent(const char* localeID, * ICU format. It does NOT map aliased names in any way. * See the top of this header file. * - * This API strips off the keyword part, so "de_DE\@collation=phonebook" - * will become "de_DE". + * This API strips off the keyword part, so "de_DE\@collation=phonebook" + * will become "de_DE". * This API supports preflighting. * * @param localeID the locale to get the full name with * @param name fill in buffer for the name without keywords. * @param nameCapacity capacity of the fill in buffer. * @param err error information if retrieving the full name failed - * @return the actual buffer size needed for the full name. If it's greater - * than nameCapacity, the returned full name will be truncated. + * @return the actual buffer size needed for the full name. If it's greater + * than nameCapacity, the returned full name will be truncated. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 @@ -949,7 +949,7 @@ uloc_openKeywords(const char* localeID, /** * Get the value for a keyword. Locale name does not need to be normalized. - * + * * @param localeID locale name containing the keyword ("de_DE@currency=EURO;collation=PHONEBOOK") * @param keywordName name of the keyword for which we want the value; must not be * NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive. @@ -984,7 +984,7 @@ uloc_getKeywordValue(const char* localeID, * @param keywordName name of the keyword to be set; must not be * NULL or empty, and must consist only of [A-Za-z0-9]. Case insensitive. * @param keywordValue value of the keyword to be set. If 0-length or - * NULL, will result in the keyword being removed; no error is given if + * NULL, will result in the keyword being removed; no error is given if * that keyword does not exist. Otherwise, must consist only of * [A-Za-z0-9] and [/_+-]. * @param buffer input buffer containing well-formed locale ID to be @@ -1035,7 +1035,7 @@ typedef enum { /** * Get the layout character orientation for the specified locale. - * + * * @param localeId locale name * @param status Error status * @return an enum indicating the layout orientation for characters. @@ -1047,7 +1047,7 @@ uloc_getCharacterOrientation(const char* localeId, /** * Get the layout line orientation for the specified locale. - * + * * @param localeId locale name * @param status Error status * @return an enum indicating the layout orientation for lines. @@ -1126,7 +1126,7 @@ uloc_acceptLanguageFromHTTP(char *result, int32_t resultAvailable, * @stable ICU 3.2 */ U_CAPI int32_t U_EXPORT2 -uloc_acceptLanguage(char *result, int32_t resultAvailable, +uloc_acceptLanguage(char *result, int32_t resultAvailable, UAcceptResult *outResult, const char **acceptList, int32_t acceptListCount, UEnumeration* availableLocales, @@ -1142,7 +1142,7 @@ uloc_acceptLanguage(char *result, int32_t resultAvailable, * @param localeCapacity the size of the output buffer * @param status an error is returned if the LCID is unrecognized or the output buffer * is too small - * @return actual the actual size of the locale ID, not including NUL-termination + * @return actual the actual size of the locale ID, not including NUL-termination * @stable ICU 3.8 */ U_CAPI int32_t U_EXPORT2 @@ -1264,8 +1264,8 @@ uloc_forLanguageTag(const char* langtag, UErrorCode* err); /** - * Returns a well-formed language tag for this locale ID. - *

    + * Returns a well-formed language tag for this locale ID. + *

    * Note: When strict is false, any locale * fields which do not satisfy the BCP47 syntax requirement will * be omitted from the result. When strict is @@ -1301,14 +1301,14 @@ uloc_toLanguageTag(const char* localeID, * then the pointer to the input keyword itself will be returned. * For example, * uloc_toUnicodeLocaleKey("ZZ") returns "ZZ". - * + * * @param keyword the input locale keyword (either legacy key * such as "collation" or BCP 47 Unicode locale extension * key such as "co"). * @return the well-formed BCP 47 Unicode locale extension key, * or NULL if the specified locale keyword cannot be * mapped to a well-formed BCP 47 Unicode locale extension - * key. + * key. * @see uloc_toLegacyKey * @stable ICU 54 */ @@ -1330,7 +1330,7 @@ uloc_toUnicodeLocaleKey(const char* keyword); * For example, * uloc_toUnicodeLocaleType("Foo", "Bar") returns "Bar", * uloc_toUnicodeLocaleType("variableTop", "00A4") returns "00A4". - * + * * @param keyword the locale keyword (either legacy key such as * "collation" or BCP 47 Unicode locale extension * key such as "co"). @@ -1350,7 +1350,7 @@ uloc_toUnicodeLocaleType(const char* keyword, const char* value); * Converts the specified keyword (BCP 47 Unicode locale extension key, or * legacy key) to the legacy key. For example, legacy key "collation" is * returned for the input BCP 47 Unicode locale extension key "co". - * + * * @param keyword the input locale keyword (either BCP 47 Unicode locale * extension key or legacy key). * @return the well-formed legacy key, or NULL if the specified diff --git a/deps/icu-small/source/common/unicode/umachine.h b/deps/icu-small/source/common/unicode/umachine.h index 219d1ee1911d02..09c887c80efd47 100644 --- a/deps/icu-small/source/common/unicode/umachine.h +++ b/deps/icu-small/source/common/unicode/umachine.h @@ -96,7 +96,7 @@ # define U_ATTRIBUTE_DEPRECATED __attribute__ ((deprecated)) /** * \def U_ATTRIBUTE_DEPRECATED - * This is used for Visual C++ specific attributes + * This is used for Visual C++ specific attributes * @internal */ #elif defined(_MSC_VER) && (_MSC_VER >= 1400) @@ -470,7 +470,7 @@ typedef int32_t UChar32; * This value is intended for sentinel values for APIs that * (take or) return single code points (UChar32). * It is outside of the Unicode code point range 0..0x10ffff. - * + * * For example, a "done" or "error" value in a new API * could be indicated with U_SENTINEL. * diff --git a/deps/icu-small/source/common/unicode/umisc.h b/deps/icu-small/source/common/unicode/umisc.h index a46fa323c8c1a3..213290b9afa33c 100644 --- a/deps/icu-small/source/common/unicode/umisc.h +++ b/deps/icu-small/source/common/unicode/umisc.h @@ -21,29 +21,29 @@ /** * \file - * \brief C API:misc definitions + * \brief C API:misc definitions * - * This file contains miscellaneous definitions for the C APIs. + * This file contains miscellaneous definitions for the C APIs. */ U_CDECL_BEGIN -/** A struct representing a range of text containing a specific field +/** A struct representing a range of text containing a specific field * @stable ICU 2.0 */ typedef struct UFieldPosition { /** - * The field + * The field * @stable ICU 2.0 */ int32_t field; /** - * The start of the text range containing field + * The start of the text range containing field * @stable ICU 2.0 */ int32_t beginIndex; - /** - * The limit of the text range containing field + /** + * The limit of the text range containing field * @stable ICU 2.0 */ int32_t endIndex; diff --git a/deps/icu-small/source/common/unicode/umutablecptrie.h b/deps/icu-small/source/common/unicode/umutablecptrie.h index 5325d58147ab1f..3b950055da7e68 100644 --- a/deps/icu-small/source/common/unicode/umutablecptrie.h +++ b/deps/icu-small/source/common/unicode/umutablecptrie.h @@ -31,7 +31,7 @@ U_CDECL_BEGIN /** * Mutable Unicode code point trie. * Fast map from Unicode code points (U+0000..U+10FFFF) to 32-bit integer values. - * For details see http://site.icu-project.org/design/struct/utrie + * For details see https://icu.unicode.org/design/struct/utrie * * Setting values (especially ranges) and lookup is fast. * The mutable trie is only somewhat space-efficient. diff --git a/deps/icu-small/source/common/unicode/unifilt.h b/deps/icu-small/source/common/unicode/unifilt.h index b0789d2e88fb91..0fcaf4b789c4c2 100644 --- a/deps/icu-small/source/common/unicode/unifilt.h +++ b/deps/icu-small/source/common/unicode/unifilt.h @@ -20,7 +20,7 @@ #include "unicode/unimatch.h" /** - * \file + * \file * \brief C++ API: Unicode Filter */ @@ -77,7 +77,7 @@ class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher * @return clone, or nullptr if an error occurred * @stable ICU 2.4 */ - virtual UnicodeFilter* clone() const = 0; + virtual UnicodeFilter* clone() const override = 0; /** * Returns true for characters that are in the selected @@ -93,7 +93,7 @@ class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher * and return the pointer. * @stable ICU 2.4 */ - virtual UnicodeMatcher* toMatcher() const; + virtual UnicodeMatcher* toMatcher() const override; /** * Implement UnicodeMatcher API. @@ -102,13 +102,13 @@ class U_COMMON_API UnicodeFilter : public UnicodeFunctor, public UnicodeMatcher virtual UMatchDegree matches(const Replaceable& text, int32_t& offset, int32_t limit, - UBool incremental); + UBool incremental) override; /** * UnicodeFunctor API. Nothing to do. * @stable ICU 2.4 */ - virtual void setData(const TransliterationRuleData*); + virtual void setData(const TransliterationRuleData*) override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/common/unicode/unifunct.h b/deps/icu-small/source/common/unicode/unifunct.h index 2b1b766ea76187..8751302494bcdb 100644 --- a/deps/icu-small/source/common/unicode/unifunct.h +++ b/deps/icu-small/source/common/unicode/unifunct.h @@ -19,10 +19,10 @@ #include "unicode/uobject.h" /** - * \file + * \file * \brief C++ API: Unicode Functor */ - + U_NAMESPACE_BEGIN class UnicodeMatcher; @@ -93,14 +93,14 @@ class U_COMMON_API UnicodeFunctor : public UObject { * *

    Concrete subclasses of UnicodeFunctor should use the macro * UOBJECT_DEFINE_RTTI_IMPLEMENTATION from uobject.h to - * provide definitios getStaticClassID and getDynamicClassID. + * provide definitions getStaticClassID and getDynamicClassID. * * @return The class ID for this object. All objects of a given * class have the same class ID. Objects of other classes have * different class IDs. * @stable ICU 2.4 */ - virtual UClassID getDynamicClassID(void) const = 0; + virtual UClassID getDynamicClassID(void) const override = 0; /** * Set the data object associated with this functor. The data diff --git a/deps/icu-small/source/common/unicode/unimatch.h b/deps/icu-small/source/common/unicode/unimatch.h index 10efd3d007a5ca..302332f4558c3e 100644 --- a/deps/icu-small/source/common/unicode/unimatch.h +++ b/deps/icu-small/source/common/unicode/unimatch.h @@ -13,7 +13,7 @@ #include "unicode/utypes.h" /** - * \file + * \file * \brief C++ API: Unicode Matcher */ @@ -39,7 +39,7 @@ enum UMatchDegree { * @stable ICU 2.4 */ U_MISMATCH, - + /** * Constant returned by matches() indicating a * partial match between the text and this matcher. This value is @@ -51,7 +51,7 @@ enum UMatchDegree { * @stable ICU 2.4 */ U_PARTIAL_MATCH, - + /** * Constant returned by matches() indicating a * complete match between the text and this matcher. For an @@ -85,7 +85,7 @@ class U_COMMON_API UnicodeMatcher /* not : public UObject because this is an int * Matching in the forward direction is indicated by limit > * offset. Characters from offset forwards to limit-1 will be * considered for matching. - * + * * Matching in the reverse direction is indicated by limit < * offset. Characters from offset backwards to limit+1 will be * considered for matching. diff --git a/deps/icu-small/source/common/unicode/uniset.h b/deps/icu-small/source/common/unicode/uniset.h index 7344a29a89b017..730337a3535ea8 100644 --- a/deps/icu-small/source/common/unicode/uniset.h +++ b/deps/icu-small/source/common/unicode/uniset.h @@ -124,8 +124,8 @@ class RuleCharacterIterator; * "[:Lu:]" and the Perl-like syntax "\\p{Lu}" are recognized. For a * complete list of supported property patterns, see the User's Guide * for UnicodeSet at - * - * http://icu-project.org/userguide/unicodeSet.html. + * + * https://unicode-org.github.io/icu/userguide/strings/unicodeset. * Actual determination of property data is defined by the underlying * Unicode database as implemented by UCharacter. * @@ -136,6 +136,13 @@ class RuleCharacterIterator; * their delimiters; "[:^foo]" and "\\P{foo}". In any other location, * '^' has no special meaning. * + *

    Since ICU 70, "[^...]", "[:^foo]", "\\P{foo}", and "[:binaryProperty=No:]" + * perform a “code point complement” (all code points minus the original set), + * removing all multicharacter strings, + * equivalent to .complement().removeAllStrings(). + * The complement() API function continues to perform a + * symmetric difference with all code points and thus retains all multicharacter strings. + * *

    Ranges are indicated by placing two a '-' between two * characters, as in "a-z". This specifies the range of all * characters from the left to the right, in Unicode order. If the @@ -217,9 +224,8 @@ class RuleCharacterIterator; *

hex :=  any character for which - * Character.digit(c, 16) - * returns a non-negative result'0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9' |
+ *     'A' | 'B' | 'C' | 'D' | 'E' | 'F' | 'a' | 'b' | 'c' | 'd' | 'e' | 'f'
property := 
* \htmlonly\endhtmlonly - * + * *

Note: * - Most UnicodeSet methods do not take a UErrorCode parameter because * there are usually very few opportunities for failure other than a shortage @@ -485,14 +491,14 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @return true if the specified set is equal to this set. * @stable ICU 2.0 */ - virtual UBool operator==(const UnicodeSet& o) const; + virtual bool operator==(const UnicodeSet& o) const; /** * Compares the specified object with this set for equality. Returns * true if the specified set is not equal to this set. * @stable ICU 2.0 */ - inline UBool operator!=(const UnicodeSet& o) const; + inline bool operator!=(const UnicodeSet& o) const; /** * Returns a copy of this object. All UnicodeFunctor objects have @@ -503,7 +509,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @see cloneAsThawed * @stable ICU 2.0 */ - virtual UnicodeSet* clone() const; + virtual UnicodeSet* clone() const override; /** * Returns the hash code value for this set. @@ -533,7 +539,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @stable ICU 4.2 */ inline static const UnicodeSet *fromUSet(const USet *uset); - + /** * Produce a USet * pointer for this UnicodeSet. * USet is the plain C type for UnicodeSet @@ -705,7 +711,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @stable ICU 2.0 */ virtual UnicodeString& toPattern(UnicodeString& result, - UBool escapeUnprintable = false) const; + UBool escapeUnprintable = false) const override; /** * Modifies this set to contain those code points which have the given value @@ -771,8 +777,12 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * Note than the elements of a set may include both individual * codepoints and strings. * + * This is slower than getRangeCount() because + * it counts the code points of all ranges. + * * @return the number of elements in this set (its cardinality). * @stable ICU 2.0 + * @see getRangeCount */ virtual int32_t size(void) const; @@ -784,6 +794,14 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { */ virtual UBool isEmpty(void) const; +#ifndef U_HIDE_DRAFT_API + /** + * @return true if this set contains multi-character strings or the empty string. + * @draft ICU 70 + */ + UBool hasStrings() const; +#endif // U_HIDE_DRAFT_API + /** * Returns true if this set contains the given character. * This function works faster with a frozen set. @@ -791,7 +809,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @return true if the test condition is met * @stable ICU 2.0 */ - virtual UBool contains(UChar32 c) const; + virtual UBool contains(UChar32 c) const override; /** * Returns true if this set contains every character @@ -1000,7 +1018,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { virtual UMatchDegree matches(const Replaceable& text, int32_t& offset, int32_t limit, - UBool incremental); + UBool incremental) override; private: /** @@ -1049,7 +1067,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * @param toUnionTo the set into which to union the source characters * @stable ICU 2.4 */ - virtual void addMatchSetTo(UnicodeSet& toUnionTo) const; + virtual void addMatchSetTo(UnicodeSet& toUnionTo) const override; /** * Returns the index of the given character within this set, where @@ -1064,8 +1082,14 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { /** * Returns the character at the given index within this set, where * the set is ordered by ascending code point. If the index is - * out of range, return (UChar32)-1. The inverse of this method is - * indexOf(). + * out of range for characters, returns (UChar32)-1. + * The inverse of this method is indexOf(). + * + * For iteration, this is slower than UnicodeSetIterator or + * getRangeCount()/getRangeStart()/getRangeEnd(), + * because for each call it skips linearly over index + * characters in the ranges. + * * @param index an index from 0..size()-1 * @return the character at the given index, or (UChar32)-1. * @stable ICU 2.4 @@ -1258,13 +1282,18 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { UnicodeSet& remove(const UnicodeString& s); /** - * Inverts this set. This operation modifies this set so that - * its value is its complement. This is equivalent to + * This is equivalent to * complement(MIN_VALUE, MAX_VALUE). + * + * Note: This performs a symmetric difference with all code points + * and thus retains all multicharacter strings. + * In order to achieve a “code point complement” (all code points minus this set), + * the easiest is to .complement().removeAllStrings(). + * * A frozen set will not be modified. * @stable ICU 2.0 */ - virtual UnicodeSet& complement(void); + virtual UnicodeSet& complement(); /** * Complements the specified range in this set. Any character in @@ -1504,7 +1533,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * different class IDs. * @stable ICU 2.4 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; private: @@ -1525,7 +1554,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * is the given value. This is used by RuleBasedTransliterator for * indexing. */ - virtual UBool matchesIndexValue(uint8_t v) const; + virtual UBool matchesIndexValue(uint8_t v) const override; private: friend class RBBIRuleScanner; @@ -1567,7 +1596,6 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { void swapBuffers(void); UBool allocateStrings(UErrorCode &status); - UBool hasStrings() const; int32_t stringsSize() const; UBool stringsContains(const UnicodeString &s) const; @@ -1581,6 +1609,9 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { static void _appendToPat(UnicodeString& buf, UChar32 c, UBool escapeUnprintable); + static void _appendToPat(UnicodeString &result, UChar32 start, UChar32 end, + UBool escapeUnprintable); + //---------------------------------------------------------------- // Implementation: Fundamental operators //---------------------------------------------------------------- @@ -1608,7 +1639,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { * * The original design document is out of date, but still useful. * Ignore the property and value names: - * http://source.icu-project.org/repos/icu/icuhtml/trunk/design/unicodeset_properties.html + * https://htmlpreview.github.io/?https://github.com/unicode-org/icu-docs/blob/main/design/unicodeset_properties.html * * Recognized syntax: * @@ -1693,7 +1724,7 @@ class U_COMMON_API UnicodeSet U_FINAL : public UnicodeFilter { -inline UBool UnicodeSet::operator!=(const UnicodeSet& o) const { +inline bool UnicodeSet::operator!=(const UnicodeSet& o) const { return !operator==(o); } diff --git a/deps/icu-small/source/common/unicode/unistr.h b/deps/icu-small/source/common/unicode/unistr.h index 85bd96495150d3..b3c99481079388 100644 --- a/deps/icu-small/source/common/unicode/unistr.h +++ b/deps/icu-small/source/common/unicode/unistr.h @@ -325,7 +325,7 @@ class U_COMMON_API UnicodeString : public Replaceable * false otherwise. * @stable ICU 2.0 */ - inline UBool operator== (const UnicodeString& text) const; + inline bool operator== (const UnicodeString& text) const; /** * Inequality operator. Performs only bitwise comparison. @@ -334,7 +334,7 @@ class U_COMMON_API UnicodeString : public Replaceable * true otherwise. * @stable ICU 2.0 */ - inline UBool operator!= (const UnicodeString& text) const; + inline bool operator!= (const UnicodeString& text) const; /** * Greater than operator. Performs only bitwise comparison. @@ -1526,7 +1526,7 @@ class U_COMMON_API UnicodeString : public Replaceable */ virtual void extractBetween(int32_t start, int32_t limit, - UnicodeString& target) const; + UnicodeString& target) const override; /** * Copy the characters in the range @@ -1545,7 +1545,7 @@ class U_COMMON_API UnicodeString : public Replaceable * @param target the target buffer for extraction, can be NULL * if targetLength is 0 * @param targetCapacity the length of the target buffer - * @param inv Signature-distinguishing paramater, use US_INV. + * @param inv Signature-distinguishing parameter, use US_INV. * @return the output string length, not including the terminating NUL * @stable ICU 3.2 */ @@ -2456,14 +2456,14 @@ class U_COMMON_API UnicodeString : public Replaceable */ virtual void handleReplaceBetween(int32_t start, int32_t limit, - const UnicodeString& text); + const UnicodeString& text) override; /** * Replaceable API * @return true if it has MetaData * @stable ICU 2.4 */ - virtual UBool hasMetaData() const; + virtual UBool hasMetaData() const override; /** * Copy a substring of this object, retaining attribute (out-of-band) @@ -2478,7 +2478,7 @@ class U_COMMON_API UnicodeString : public Replaceable * dest >= limit`. * @stable ICU 2.0 */ - virtual void copy(int32_t start, int32_t limit, int32_t dest); + virtual void copy(int32_t start, int32_t limit, int32_t dest) override; /* Search and replace operations */ @@ -3274,7 +3274,7 @@ class U_COMMON_API UnicodeString : public Replaceable * \endcode * @param src String using only invariant characters. * @param textLength Length of src, or -1 if NUL-terminated. - * @param inv Signature-distinguishing paramater, use US_INV. + * @param inv Signature-distinguishing parameter, use US_INV. * * @see US_INV * @stable ICU 3.2 @@ -3338,7 +3338,7 @@ class U_COMMON_API UnicodeString : public Replaceable * @see getDynamicClassID * @stable ICU 2.6 */ - virtual UnicodeString *clone() const; + virtual UnicodeString *clone() const override; /** Destructor. * @stable ICU 2.0 @@ -3444,7 +3444,7 @@ class U_COMMON_API UnicodeString : public Replaceable * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; //======================================== // Implementation methods @@ -3455,21 +3455,21 @@ class U_COMMON_API UnicodeString : public Replaceable * Implement Replaceable::getLength() (see jitterbug 1027). * @stable ICU 2.4 */ - virtual int32_t getLength() const; + virtual int32_t getLength() const override; /** * The change in Replaceable to use virtual getCharAt() allows * UnicodeString::charAt() to be inline again (see jitterbug 709). * @stable ICU 2.4 */ - virtual char16_t getCharAt(int32_t offset) const; + virtual char16_t getCharAt(int32_t offset) const override; /** * The change in Replaceable to use virtual getChar32At() allows * UnicodeString::char32At() to be inline again (see jitterbug 709). * @stable ICU 2.4 */ - virtual UChar32 getChar32At(int32_t offset) const; + virtual UChar32 getChar32At(int32_t offset) const override; private: // For char* constructors. Could be made public. @@ -3946,7 +3946,7 @@ UnicodeString::doCompare(int32_t start, } } -inline UBool +inline bool UnicodeString::operator== (const UnicodeString& text) const { if(isBogus()) { @@ -3957,7 +3957,7 @@ UnicodeString::operator== (const UnicodeString& text) const } } -inline UBool +inline bool UnicodeString::operator!= (const UnicodeString& text) const { return (! operator==(text)); } diff --git a/deps/icu-small/source/common/unicode/unorm.h b/deps/icu-small/source/common/unicode/unorm.h index c3c57582d449d5..38fb8951557c0f 100644 --- a/deps/icu-small/source/common/unicode/unorm.h +++ b/deps/icu-small/source/common/unicode/unorm.h @@ -115,7 +115,7 @@ * unorm_normalize(UNORM_FCD) may be implemented with UNORM_NFD. * * For more details on FCD see the collation design document: - * http://source.icu-project.org/repos/icu/icuhtml/trunk/design/collation/ICU_collation_design.htm + * https://htmlpreview.github.io/?https://github.com/unicode-org/icu-docs/blob/main/design/collation/ICU_collation_design.htm * * ICU collation performs either NFD or FCD normalization automatically if normalization * is turned on for the collator object. diff --git a/deps/icu-small/source/common/unicode/uobject.h b/deps/icu-small/source/common/unicode/uobject.h index 6a137af83c2456..25a8330f9ac9d5 100644 --- a/deps/icu-small/source/common/unicode/uobject.h +++ b/deps/icu-small/source/common/unicode/uobject.h @@ -37,10 +37,10 @@ * Previously, define this to define the throw() specification so * certain functions do not throw any exceptions * - * UMemory operator new methods should have the throw() specification - * appended to them, so that the compiler adds the additional NULL check - * before calling constructors. Without, if operator new returns NULL the - * constructor is still called, and if the constructor references member + * UMemory operator new methods should have the throw() specification + * appended to them, so that the compiler adds the additional NULL check + * before calling constructors. Without, if operator new returns NULL the + * constructor is still called, and if the constructor references member * data, (which it typically does), the result is a segmentation violation. * * @stable ICU 4.2. Since ICU 64, Use U_NOEXCEPT instead. See ICU-20422. @@ -116,7 +116,7 @@ class U_COMMON_API UMemory { public: /* test versions for debugging shaper heap memory problems */ -#ifdef SHAPER_MEMORY_DEBUG +#ifdef SHAPER_MEMORY_DEBUG static void * NewArray(int size, int count); static void * GrowArray(void * array, int newSize ); static void FreeArray(void * array ); @@ -175,19 +175,19 @@ class U_COMMON_API UMemory { #if U_HAVE_DEBUG_LOCATION_NEW /** * This method overrides the MFC debug version of the operator new - * + * * @param size The requested memory size * @param file The file where the allocation was requested - * @param line The line where the allocation was requested - */ + * @param line The line where the allocation was requested + */ static void * U_EXPORT2 operator new(size_t size, const char* file, int line) U_NOEXCEPT; /** * This method provides a matching delete for the MFC debug new - * + * * @param p The pointer to the allocated memory * @param file The file where the allocation was requested - * @param line The line where the allocation was requested - */ + * @param line The line where the allocation was requested + */ static void U_EXPORT2 operator delete(void* p, const char* file, int line) U_NOEXCEPT; #endif /* U_HAVE_DEBUG_LOCATION_NEW */ #endif /* U_OVERRIDE_CXX_ALLOCATION */ @@ -262,8 +262,8 @@ class U_COMMON_API UObject : public UMemory { // UObject &operator=(const UObject &other) { return *this; } // comparison operators - virtual inline UBool operator==(const UObject &other) const { return this==&other; } - inline UBool operator!=(const UObject &other) const { return !operator==(other); } + virtual inline bool operator==(const UObject &other) const { return this==&other; } + inline bool operator!=(const UObject &other) const { return !operator==(other); } // clone() commented out from the base class: // some compilers do not support co-variant return types diff --git a/deps/icu-small/source/common/unicode/urename.h b/deps/icu-small/source/common/unicode/urename.h index 737f4b308ef83f..4605f632ea8c91 100644 --- a/deps/icu-small/source/common/unicode/urename.h +++ b/deps/icu-small/source/common/unicode/urename.h @@ -58,6 +58,11 @@ /* C exports renaming data */ +#define CreateLSTMBreakEngine U_ICU_ENTRY_POINT_RENAME(CreateLSTMBreakEngine) +#define CreateLSTMData U_ICU_ENTRY_POINT_RENAME(CreateLSTMData) +#define CreateLSTMDataForScript U_ICU_ENTRY_POINT_RENAME(CreateLSTMDataForScript) +#define DeleteLSTMData U_ICU_ENTRY_POINT_RENAME(DeleteLSTMData) +#define LSTMDataName U_ICU_ENTRY_POINT_RENAME(LSTMDataName) #define T_CString_int64ToString U_ICU_ENTRY_POINT_RENAME(T_CString_int64ToString) #define T_CString_integerToString U_ICU_ENTRY_POINT_RENAME(T_CString_integerToString) #define T_CString_stringToInteger U_ICU_ENTRY_POINT_RENAME(T_CString_stringToInteger) @@ -381,6 +386,7 @@ #define u_strcmpFold U_ICU_ENTRY_POINT_RENAME(u_strcmpFold) #define u_strcpy U_ICU_ENTRY_POINT_RENAME(u_strcpy) #define u_strcspn U_ICU_ENTRY_POINT_RENAME(u_strcspn) +#define u_stringHasBinaryProperty U_ICU_ENTRY_POINT_RENAME(u_stringHasBinaryProperty) #define u_strlen U_ICU_ENTRY_POINT_RENAME(u_strlen) #define u_strncasecmp U_ICU_ENTRY_POINT_RENAME(u_strncasecmp) #define u_strncat U_ICU_ENTRY_POINT_RENAME(u_strncat) @@ -1575,6 +1581,7 @@ #define ures_countArrayItems U_ICU_ENTRY_POINT_RENAME(ures_countArrayItems) #define ures_findResource U_ICU_ENTRY_POINT_RENAME(ures_findResource) #define ures_findSubResource U_ICU_ENTRY_POINT_RENAME(ures_findSubResource) +#define ures_getAllChildrenWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getAllChildrenWithFallback) #define ures_getAllItemsWithFallback U_ICU_ENTRY_POINT_RENAME(ures_getAllItemsWithFallback) #define ures_getBinary U_ICU_ENTRY_POINT_RENAME(ures_getBinary) #define ures_getByIndex U_ICU_ENTRY_POINT_RENAME(ures_getByIndex) @@ -1696,9 +1703,11 @@ #define uset_freeze U_ICU_ENTRY_POINT_RENAME(uset_freeze) #define uset_getItem U_ICU_ENTRY_POINT_RENAME(uset_getItem) #define uset_getItemCount U_ICU_ENTRY_POINT_RENAME(uset_getItemCount) +#define uset_getRangeCount U_ICU_ENTRY_POINT_RENAME(uset_getRangeCount) #define uset_getSerializedRange U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRange) #define uset_getSerializedRangeCount U_ICU_ENTRY_POINT_RENAME(uset_getSerializedRangeCount) #define uset_getSerializedSet U_ICU_ENTRY_POINT_RENAME(uset_getSerializedSet) +#define uset_hasStrings U_ICU_ENTRY_POINT_RENAME(uset_hasStrings) #define uset_indexOf U_ICU_ENTRY_POINT_RENAME(uset_indexOf) #define uset_isEmpty U_ICU_ENTRY_POINT_RENAME(uset_isEmpty) #define uset_isFrozen U_ICU_ENTRY_POINT_RENAME(uset_isFrozen) diff --git a/deps/icu-small/source/common/unicode/urep.h b/deps/icu-small/source/common/unicode/urep.h index c54ba7c4661414..932202ddb04b1c 100644 --- a/deps/icu-small/source/common/unicode/urep.h +++ b/deps/icu-small/source/common/unicode/urep.h @@ -88,7 +88,7 @@ typedef struct UReplaceableCallbacks { */ UChar32 (*char32At)(const UReplaceable* rep, int32_t offset); - + /** * Function pointer that replaces text between start and limit in * this text with the given text. Attributes (out of band info) @@ -110,7 +110,7 @@ typedef struct UReplaceableCallbacks { int32_t limit, const UChar* text, int32_t textLength); - + /** * Function pointer that copies the characters in the range * [start, limit) into the array dst. @@ -148,7 +148,7 @@ typedef struct UReplaceableCallbacks { void (*copy)(UReplaceable* rep, int32_t start, int32_t limit, - int32_t dest); + int32_t dest); } UReplaceableCallbacks; diff --git a/deps/icu-small/source/common/unicode/ures.h b/deps/icu-small/source/common/unicode/ures.h index fff84043e84785..a6c43f9537a55e 100644 --- a/deps/icu-small/source/common/unicode/ures.h +++ b/deps/icu-small/source/common/unicode/ures.h @@ -44,9 +44,9 @@ * locale and then ask it for individual resources. *

* Resource bundles in ICU4C are currently defined using text files which conform to the following - * BNF definition. + * BNF definition. * More on resource bundle concepts and syntax can be found in the - * Users Guide. + * Users Guide. *

*/ diff --git a/deps/icu-small/source/common/unicode/uscript.h b/deps/icu-small/source/common/unicode/uscript.h index 8448afda761550..6cb15328085b77 100644 --- a/deps/icu-small/source/common/unicode/uscript.h +++ b/deps/icu-small/source/common/unicode/uscript.h @@ -484,6 +484,17 @@ typedef enum UScriptCode { /** @stable ICU 66 */ USCRIPT_YEZIDI = 192,/* Yezi */ + /** @stable ICU 70 */ + USCRIPT_CYPRO_MINOAN = 193,/* Cpmn */ + /** @stable ICU 70 */ + USCRIPT_OLD_UYGHUR = 194,/* Ougr */ + /** @stable ICU 70 */ + USCRIPT_TANGSA = 195,/* Tnsa */ + /** @stable ICU 70 */ + USCRIPT_TOTO = 196,/* Toto */ + /** @stable ICU 70 */ + USCRIPT_VITHKUQI = 197,/* Vith */ + #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal UScriptCode value. @@ -491,7 +502,7 @@ typedef enum UScriptCode { * * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - USCRIPT_CODE_LIMIT = 193 + USCRIPT_CODE_LIMIT = 198 #endif // U_HIDE_DEPRECATED_API } UScriptCode; diff --git a/deps/icu-small/source/common/unicode/uset.h b/deps/icu-small/source/common/unicode/uset.h index a32f52c678a28a..2ef352ef563b02 100644 --- a/deps/icu-small/source/common/unicode/uset.h +++ b/deps/icu-small/source/common/unicode/uset.h @@ -60,7 +60,7 @@ enum { * Ignore white space within patterns unless quoted or escaped. * @stable ICU 2.4 */ - USET_IGNORE_SPACE = 1, + USET_IGNORE_SPACE = 1, /** * Enable case insensitive matching. E.g., "[ab]" with this flag @@ -88,7 +88,7 @@ enum { * * @stable ICU 2.4 */ - USET_CASE_INSENSITIVE = 2, + USET_CASE_INSENSITIVE = 2, /** * Enable case insensitive matching. E.g., "[ab]" with this flag @@ -268,7 +268,7 @@ uset_openEmpty(void); /** * Creates a USet object that contains the range of characters - * start..end, inclusive. If start > end + * start..end, inclusive. If start > end * then an empty set is created (same as using uset_openEmpty()). * @param start first character of the range, inclusive * @param end last character of the range, inclusive @@ -405,11 +405,11 @@ uset_set(USet* set, /** * Modifies the set to represent the set specified by the given - * pattern. See the UnicodeSet class description for the syntax of + * pattern. See the UnicodeSet class description for the syntax of * the pattern language. See also the User Guide chapter about UnicodeSet. * Empties the set passed before applying the pattern. * A frozen set will not be modified. - * @param set The set to which the pattern is to be applied. + * @param set The set to which the pattern is to be applied. * @param pattern A pointer to UChar string specifying what characters are in the set. * The character at pattern[0] must be a '['. * @param patternLength The length of the UChar string. -1 if NUL terminated. @@ -417,14 +417,14 @@ uset_set(USet* set, * Valid options are USET_IGNORE_SPACE and USET_CASE_INSENSITIVE. * @param status Returns an error if the pattern cannot be parsed. * @return Upon successful parse, the value is either - * the index of the character after the closing ']' + * the index of the character after the closing ']' * of the parsed pattern. - * If the status code indicates failure, then the return value + * If the status code indicates failure, then the return value * is the index of the error in the source. * * @stable ICU 2.8 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uset_applyPattern(USet *set, const UChar *pattern, int32_t patternLength, uint32_t options, @@ -719,16 +719,21 @@ uset_retainAll(USet* set, const USet* retain); * possible space, without changing this object's value. * A frozen set will not be modified. * - * @param set the object on which to perfrom the compact + * @param set the object on which to perform the compact * @stable ICU 3.2 */ U_CAPI void U_EXPORT2 uset_compact(USet* set); /** - * Inverts this set. This operation modifies this set so that - * its value is its complement. This operation does not affect - * the multicharacter strings, if any. + * This is equivalent to + * uset_complementRange(set, 0, 0x10FFFF). + * + * Note: This performs a symmetric difference with all code points + * and thus retains all multicharacter strings. + * In order to achieve a “code point complement” (all code points minus this set), + * the easiest is to uset_complement(set); uset_removeAllStrings(set);. + * * A frozen set will not be modified. * @param set the set * @stable ICU 2.4 @@ -851,6 +856,16 @@ uset_removeAllStrings(USet* set); U_CAPI UBool U_EXPORT2 uset_isEmpty(const USet* set); +#ifndef U_HIDE_DRAFT_API +/** + * @param set the set + * @return true if this set contains multi-character strings or the empty string. + * @draft ICU 70 + */ +U_CAPI UBool U_EXPORT2 +uset_hasStrings(const USet *set); +#endif // U_HIDE_DRAFT_API + /** * Returns true if the given USet contains the given character. * This function works faster with a frozen set. @@ -901,8 +916,13 @@ uset_indexOf(const USet* set, UChar32 c); /** * Returns the character at the given index within this set, where * the set is ordered by ascending code point. If the index is - * out of range, return (UChar32)-1. The inverse of this method is - * indexOf(). + * out of range for characters, returns (UChar32)-1. + * The inverse of this method is indexOf(). + * + * For iteration, this is slower than uset_getRangeCount()/uset_getItemCount() + * with uset_getItem(), because for each call it skips linearly over index + * characters in the ranges. + * * @param set the set * @param charIndex an index from 0..size()-1 to obtain the char for * @return the character at the given index, or (UChar32)-1. @@ -912,16 +932,34 @@ U_CAPI UChar32 U_EXPORT2 uset_charAt(const USet* set, int32_t charIndex); /** - * Returns the number of characters and strings contained in the given - * USet. + * Returns the number of characters and strings contained in this set. + * The last (uset_getItemCount() - uset_getRangeCount()) items are strings. + * + * This is slower than uset_getRangeCount() and uset_getItemCount() because + * it counts the code points of all ranges. + * * @param set the set * @return a non-negative integer counting the characters and strings * contained in set * @stable ICU 2.4 + * @see uset_getRangeCount */ U_CAPI int32_t U_EXPORT2 uset_size(const USet* set); +#ifndef U_HIDE_DRAFT_API +/** + * @param set the set + * @return the number of ranges in this set. + * @draft ICU 70 + * @see uset_getItemCount + * @see uset_getItem + * @see uset_size + */ +U_CAPI int32_t U_EXPORT2 +uset_getRangeCount(const USet *set); +#endif // U_HIDE_DRAFT_API + /** * Returns the number of items in this set. An item is either a range * of characters or a single multicharacter string. @@ -935,20 +973,30 @@ uset_getItemCount(const USet* set); /** * Returns an item of this set. An item is either a range of - * characters or a single multicharacter string. + * characters or a single multicharacter string (which can be the empty string). + * + * If itemIndex is less than uset_getRangeCount(), then this function returns 0, + * and the range is *start..*end. + * + * If itemIndex is at least uset_getRangeCount() and less than uset_getItemCount(), then + * this function copies the string into str[strCapacity] and + * returns the length of the string (0 for the empty string). + * + * If itemIndex is out of range, then this function returns -1. + * + * Note that 0 is returned for each range as well as for the empty string. + * * @param set the set - * @param itemIndex a non-negative integer in the range 0.. - * uset_getItemCount(set)-1 - * @param start pointer to variable to receive first character - * in range, inclusive - * @param end pointer to variable to receive last character in range, - * inclusive + * @param itemIndex a non-negative integer in the range 0..uset_getItemCount(set)-1 + * @param start pointer to variable to receive first character in range, inclusive; + * can be NULL for a string item + * @param end pointer to variable to receive last character in range, inclusive; + * can be NULL for a string item * @param str buffer to receive the string, may be NULL * @param strCapacity capacity of str, or 0 if str is NULL - * @param ec error code - * @return the length of the string (>= 2), or 0 if the item is a - * range, in which case it is the range *start..*end, or -1 if - * itemIndex is out of range + * @param ec error code; U_INDEX_OUTOFBOUNDS_ERROR if the itemIndex is out of range + * @return the length of the string (0 or >= 2), or 0 if the item is a range, + * or -1 if the itemIndex is out of range * @stable ICU 2.4 */ U_CAPI int32_t U_EXPORT2 diff --git a/deps/icu-small/source/common/unicode/usetiter.h b/deps/icu-small/source/common/unicode/usetiter.h index 45d268a05c9b90..5834c308e41431 100644 --- a/deps/icu-small/source/common/unicode/usetiter.h +++ b/deps/icu-small/source/common/unicode/usetiter.h @@ -17,7 +17,7 @@ #include "unicode/unistr.h" /** - * \file + * \file * \brief C++ API: UnicodeSetIterator iterates over the contents of a UnicodeSet. */ @@ -33,9 +33,7 @@ class UnicodeString; * code points or ranges have been returned, it returns the * multicharacter strings of the UnicodeSet, if any. * - * This class is not intended to be subclassed. Consider any fields - * or methods declared as "protected" to be private. The use of - * protected in this class is an artifact of history. + * This class is not intended for public subclassing. * *

To iterate over code points and strings, use a loop like this: *

@@ -60,25 +58,23 @@ class UnicodeString;
  *   }
  * }
  * 
+ * + * To iterate over only the strings, start with skipToStrings(). + * * @author M. Davis * @stable ICU 2.4 */ -class U_COMMON_API UnicodeSetIterator : public UObject { - - protected: - +class U_COMMON_API UnicodeSetIterator U_FINAL : public UObject { /** * Value of codepoint if the iterator points to a string. * If codepoint == IS_STRING, then examine * string for the current iteration result. - * @stable ICU 2.4 */ enum { IS_STRING = -1 }; /** * Current code point, or the special value IS_STRING, if * the iterator points to a string. - * @stable ICU 2.4 */ UChar32 codepoint; @@ -89,7 +85,6 @@ class U_COMMON_API UnicodeSetIterator : public UObject { * iterating over code points using next(), or if * codepoint == IS_STRING, then the value of * codepointEnd is undefined. - * @stable ICU 2.4 */ UChar32 codepointEnd; @@ -97,7 +92,6 @@ class U_COMMON_API UnicodeSetIterator : public UObject { * If codepoint == IS_STRING, then string points * to the current string. If codepoint != IS_STRING, the * value of string is undefined. - * @stable ICU 2.4 */ const UnicodeString* string; @@ -165,14 +159,33 @@ class U_COMMON_API UnicodeSetIterator : public UObject { * Ownership of the returned string remains with the iterator. * The string is guaranteed to remain valid only until the iterator is * advanced to the next item, or until the iterator is deleted. - * + * * @stable ICU 2.4 */ const UnicodeString& getString(); +#ifndef U_HIDE_DRAFT_API + /** + * Skips over the remaining code points/ranges, if any. + * A following call to next() or nextRange() will yield a string, if there is one. + * No-op if next() would return false, or if it would yield a string anyway. + * + * @return *this + * @draft ICU 70 + * @see UnicodeSet#strings() + */ + inline UnicodeSetIterator &skipToStrings() { + // Finish code point/range iteration. + range = endRange; + endElement = -1; + nextElement = 0; + return *this; + } +#endif // U_HIDE_DRAFT_API + /** - * Advances the iteration position to the next element in the set, - * which can be either a single code point or a string. + * Advances the iteration position to the next element in the set, + * which can be either a single code point or a string. * If there are no more elements in the set, return false. * *

@@ -242,71 +255,58 @@ class U_COMMON_API UnicodeSetIterator : public UObject { * * @stable ICU 2.4 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; // ======================= PRIVATES =========================== - protected: +private: // endElement and nextElements are really UChar32's, but we keep // them as signed int32_t's so we can do comparisons with // endElement set to -1. Leave them as int32_t's. /** The set - * @stable ICU 2.4 */ const UnicodeSet* set; /** End range - * @stable ICU 2.4 */ int32_t endRange; /** Range - * @stable ICU 2.4 */ int32_t range; /** End element - * @stable ICU 2.4 */ int32_t endElement; /** Next element - * @stable ICU 2.4 */ int32_t nextElement; - //UBool abbreviated; /** Next string - * @stable ICU 2.4 */ int32_t nextString; /** String count - * @stable ICU 2.4 */ int32_t stringCount; /** * Points to the string to use when the caller asks for a * string and the current iteration item is a code point, not a string. - * @internal */ UnicodeString *cpString; /** Copy constructor. Disallowed. - * @stable ICU 2.4 */ - UnicodeSetIterator(const UnicodeSetIterator&); // disallow + UnicodeSetIterator(const UnicodeSetIterator&) = delete; /** Assignment operator. Disallowed. - * @stable ICU 2.4 */ - UnicodeSetIterator& operator=(const UnicodeSetIterator&); // disallow + UnicodeSetIterator& operator=(const UnicodeSetIterator&) = delete; /** Load range - * @stable ICU 2.4 */ - virtual void loadRange(int32_t range); - + void loadRange(int32_t range); }; inline UBool UnicodeSetIterator::isString() const { - return codepoint == (UChar32)IS_STRING; + return codepoint < 0; } inline UChar32 UnicodeSetIterator::getCodepoint() const { diff --git a/deps/icu-small/source/common/unicode/ushape.h b/deps/icu-small/source/common/unicode/ushape.h index 3a4492caff0f04..14371edc8f9020 100644 --- a/deps/icu-small/source/common/unicode/ushape.h +++ b/deps/icu-small/source/common/unicode/ushape.h @@ -24,7 +24,7 @@ /** * \file * \brief C API: Arabic shaping - * + * */ /** @@ -117,7 +117,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, * This option is an alias to U_SHAPE_LENGTH_GROW_SHRINK * @stable ICU 4.2 */ -#define U_SHAPE_LAMALEF_RESIZE 0 +#define U_SHAPE_LAMALEF_RESIZE 0 /** * Memory option: the result must have the same length as the source. @@ -133,7 +133,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, * This option is an alias to U_SHAPE_LENGTH_FIXED_SPACES_NEAR * @stable ICU 4.2 */ -#define U_SHAPE_LAMALEF_NEAR 1 +#define U_SHAPE_LAMALEF_NEAR 1 /** * Memory option: the result must have the same length as the source. @@ -149,7 +149,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, * This option is an alias to U_SHAPE_LENGTH_FIXED_SPACES_AT_END * @stable ICU 4.2 */ -#define U_SHAPE_LAMALEF_END 2 +#define U_SHAPE_LAMALEF_END 2 /** * Memory option: the result must have the same length as the source. @@ -165,7 +165,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, * This option is an alias to U_SHAPE_LENGTH_FIXED_SPACES_AT_BEGINNING * @stable ICU 4.2 */ -#define U_SHAPE_LAMALEF_BEGIN 3 +#define U_SHAPE_LAMALEF_BEGIN 3 /** @@ -174,14 +174,14 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, * If there is no space at end, use spaces at beginning of the buffer. If there * is no space at beginning of the buffer, use spaces at the near (i.e. the space * after the LAMALEF character). - * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) + * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) * will be set in pErrorCode * - * Deshaping Mode: Perform the same function as the flag equals U_SHAPE_LAMALEF_END. + * Deshaping Mode: Perform the same function as the flag equals U_SHAPE_LAMALEF_END. * Affects: LamAlef options * @stable ICU 4.2 */ -#define U_SHAPE_LAMALEF_AUTO 0x10000 +#define U_SHAPE_LAMALEF_AUTO 0x10000 /** Bit mask for memory options. @stable ICU 2.0 */ #define U_SHAPE_LENGTH_MASK 0x10003 /* Changed old value 3 */ @@ -301,7 +301,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, /** Bit mask for digit type options. @stable ICU 2.0 */ #define U_SHAPE_DIGIT_TYPE_MASK 0x300 /* I need to change this from 0x3f00 to 0x300 */ -/** +/** * Tashkeel aggregation option: * Replaces any combination of U+0651 with one of * U+064C, U+064D, U+064E, U+064F, U+0650 with @@ -314,28 +314,28 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, /** Bit mask for tashkeel aggregation. @stable ICU 3.6 */ #define U_SHAPE_AGGREGATE_TASHKEEL_MASK 0x4000 -/** +/** * Presentation form option: * Don't replace Arabic Presentation Forms-A and Arabic Presentation Forms-B * characters with 0+06xx characters, before shaping. * @stable ICU 3.6 */ #define U_SHAPE_PRESERVE_PRESENTATION 0x8000 -/** Presentation form option: - * Replace Arabic Presentation Forms-A and Arabic Presentationo Forms-B with +/** Presentation form option: + * Replace Arabic Presentation Forms-A and Arabic Presentationo Forms-B with * their unshaped correspondents in range 0+06xx, before shaping. - * @stable ICU 3.6 + * @stable ICU 3.6 */ #define U_SHAPE_PRESERVE_PRESENTATION_NOOP 0 /** Bit mask for preserve presentation form. @stable ICU 3.6 */ #define U_SHAPE_PRESERVE_PRESENTATION_MASK 0x8000 -/* Seen Tail option */ +/* Seen Tail option */ /** * Memory option: the result must have the same length as the source. - * Shaping mode: The SEEN family character will expand into two characters using space near + * Shaping mode: The SEEN family character will expand into two characters using space near * the SEEN family character(i.e. the space after the character). - * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) + * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) * will be set in pErrorCode * * De-shaping mode: Any Seen character followed by Tail character will be @@ -346,17 +346,17 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, #define U_SHAPE_SEEN_TWOCELL_NEAR 0x200000 /** - * Bit mask for Seen memory options. + * Bit mask for Seen memory options. * @stable ICU 4.2 */ #define U_SHAPE_SEEN_MASK 0x700000 -/* YehHamza option */ +/* YehHamza option */ /** * Memory option: the result must have the same length as the source. - * Shaping mode: The YEHHAMZA character will expand into two characters using space near it + * Shaping mode: The YEHHAMZA character will expand into two characters using space near it * (i.e. the space after the character - * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) + * If there are no spaces found, an error U_NO_SPACE_AVAILABLE (as defined in utypes.h) * will be set in pErrorCode * * De-shaping mode: Any Yeh (final or isolated) character followed by Hamza character will be @@ -368,15 +368,15 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, /** - * Bit mask for YehHamza memory options. + * Bit mask for YehHamza memory options. * @stable ICU 4.2 */ #define U_SHAPE_YEHHAMZA_MASK 0x3800000 -/* New Tashkeel options */ +/* New Tashkeel options */ /** * Memory option: the result must have the same length as the source. - * Shaping mode: Tashkeel characters will be replaced by spaces. + * Shaping mode: Tashkeel characters will be replaced by spaces. * Spaces will be placed at beginning of the buffer * * De-shaping mode: N/A @@ -387,7 +387,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, /** * Memory option: the result must have the same length as the source. - * Shaping mode: Tashkeel characters will be replaced by spaces. + * Shaping mode: Tashkeel characters will be replaced by spaces. * Spaces will be placed at end of the buffer * * De-shaping mode: N/A @@ -398,8 +398,8 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, /** * Memory option: allow the result to have a different length than the source. - * Shaping mode: Tashkeel characters will be removed, buffer length will shrink. - * De-shaping mode: N/A + * Shaping mode: Tashkeel characters will be removed, buffer length will shrink. + * De-shaping mode: N/A * * Affect: Tashkeel options * @stable ICU 4.2 @@ -417,46 +417,46 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, */ #define U_SHAPE_TASHKEEL_REPLACE_BY_TATWEEL 0xC0000 -/** - * Bit mask for Tashkeel replacement with Space or Tatweel memory options. +/** + * Bit mask for Tashkeel replacement with Space or Tatweel memory options. * @stable ICU 4.2 */ #define U_SHAPE_TASHKEEL_MASK 0xE0000 -/* Space location Control options */ +/* Space location Control options */ /** * This option affect the meaning of BEGIN and END options. if this option is not used the default - * for BEGIN and END will be as following: + * for BEGIN and END will be as following: * The Default (for both Visual LTR, Visual RTL and Logical Text) * 1. BEGIN always refers to the start address of physical memory. * 2. END always refers to the end address of physical memory. * - * If this option is used it will swap the meaning of BEGIN and END only for Visual LTR text. + * If this option is used it will swap the meaning of BEGIN and END only for Visual LTR text. * * The effect on BEGIN and END Memory Options will be as following: * A. BEGIN For Visual LTR text: This will be the beginning (right side) of the visual text( - * corresponding to the physical memory address end for Visual LTR text, Same as END in + * corresponding to the physical memory address end for Visual LTR text, Same as END in * default behavior) - * B. BEGIN For Logical text: Same as BEGIN in default behavior. + * B. BEGIN For Logical text: Same as BEGIN in default behavior. * C. END For Visual LTR text: This will be the end (left side) of the visual text (corresponding * to the physical memory address beginning for Visual LTR text, Same as BEGIN in default behavior. - * D. END For Logical text: Same as END in default behavior). + * D. END For Logical text: Same as END in default behavior). * Affects: All LamAlef BEGIN, END and AUTO options. * @stable ICU 4.2 */ #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_BEGIN_END 0x4000000 /** - * Bit mask for swapping BEGIN and END for Visual LTR text + * Bit mask for swapping BEGIN and END for Visual LTR text * @stable ICU 4.2 */ #define U_SHAPE_SPACES_RELATIVE_TO_TEXT_MASK 0x4000000 /** - * If this option is used, shaping will use the new Unicode code point for TAIL (i.e. 0xFE73). + * If this option is used, shaping will use the new Unicode code point for TAIL (i.e. 0xFE73). * If this option is not specified (Default), old unofficial Unicode TAIL code point is used (i.e. 0x200B) - * De-shaping will not use this option as it will always search for both the new Unicode code point for the + * De-shaping will not use this option as it will always search for both the new Unicode code point for the * TAIL (i.e. 0xFE73) or the old unofficial Unicode TAIL code point (i.e. 0x200B) and de-shape the * Seen-Family letter accordingly. * @@ -468,7 +468,7 @@ u_shapeArabic(const UChar *source, int32_t sourceLength, #define U_SHAPE_TAIL_NEW_UNICODE 0x8000000 /** - * Bit mask for new Unicode Tail option + * Bit mask for new Unicode Tail option * @stable ICU 4.8 */ #define U_SHAPE_TAIL_TYPE_MASK 0x8000000 diff --git a/deps/icu-small/source/common/unicode/usprep.h b/deps/icu-small/source/common/unicode/usprep.h index be06189e2e9e6d..f8a0f58e0de27f 100644 --- a/deps/icu-small/source/common/unicode/usprep.h +++ b/deps/icu-small/source/common/unicode/usprep.h @@ -20,7 +20,7 @@ #define __USPREP_H__ /** - * \file + * \file * \brief C API: Implements the StringPrep algorithm. */ @@ -38,14 +38,14 @@ * Unicode Strings are prepared. Each profiles contains tables which describe * how a code point should be treated. The tables are broadly classified into *

    - *
  • Unassigned Table: Contains code points that are unassigned - * in the Unicode Version supported by StringPrep. Currently + *
  • Unassigned Table: Contains code points that are unassigned + * in the Unicode Version supported by StringPrep. Currently * RFC 3454 supports Unicode 3.2.
  • *
  • Prohibited Table: Contains code points that are prohibited from * the output of the StringPrep processing function.
  • *
  • Mapping Table: Contains code points that are deleted from the output or case mapped.
  • *
- * + * * The procedure for preparing Unicode strings: *
    *
  1. Map: For each character in the input, check if it has a mapping @@ -73,17 +73,17 @@ typedef struct UStringPrepProfile UStringPrepProfile; -/** +/** * Option to prohibit processing of unassigned code points in the input - * + * * @see usprep_prepare * @stable ICU 2.8 */ #define USPREP_DEFAULT 0x0000 -/** +/** * Option to allow processing of unassigned code points in the input - * + * * @see usprep_prepare * @stable ICU 2.8 */ @@ -185,7 +185,7 @@ typedef enum UStringPrepProfileType { * @stable ICU 2.8 */ U_CAPI UStringPrepProfile* U_EXPORT2 -usprep_open(const char* path, +usprep_open(const char* path, const char* fileName, UErrorCode* status); @@ -236,7 +236,7 @@ U_NAMESPACE_END * checks for prohibited and BiDi characters in the order defined by RFC 3454 * depending on the options specified in the profile. * - * @param prep The profile to use + * @param prep The profile to use * @param src Pointer to UChar buffer containing the string to prepare * @param srcLength Number of characters in the source string * @param dest Pointer to the destination buffer to receive the output @@ -245,10 +245,10 @@ U_NAMESPACE_END * * - USPREP_DEFAULT Prohibit processing of unassigned code points in the input * - * - USPREP_ALLOW_UNASSIGNED Treat the unassigned code points are in the input + * - USPREP_ALLOW_UNASSIGNED Treat the unassigned code points are in the input * as normal Unicode code points. * - * @param parseError Pointer to UParseError struct to receive information on position + * @param parseError Pointer to UParseError struct to receive information on position * of error if an error is encountered. Can be NULL. * @param status ICU in/out error code parameter. * U_INVALID_CHAR_FOUND if src contains @@ -262,7 +262,7 @@ U_NAMESPACE_END U_CAPI int32_t U_EXPORT2 usprep_prepare( const UStringPrepProfile* prep, - const UChar* src, int32_t srcLength, + const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UParseError* parseError, diff --git a/deps/icu-small/source/common/unicode/ustring.h b/deps/icu-small/source/common/unicode/ustring.h index 3243acbb7ebfce..5452fbe09a8199 100644 --- a/deps/icu-small/source/common/unicode/ustring.h +++ b/deps/icu-small/source/common/unicode/ustring.h @@ -24,7 +24,7 @@ /** * \def UBRK_TYPEDEF_UBREAK_ITERATOR - * @internal + * @internal */ #ifndef UBRK_TYPEDEF_UBREAK_ITERATOR @@ -72,7 +72,7 @@ * their occurrence is rare. Almost all characters in modern use require only * a single UChar code unit (i.e., their code point values are <=0xffff). * - * For more details see the User Guide Strings chapter (http://icu-project.org/userguide/strings.html). + * For more details see the User Guide Strings chapter (https://unicode-org.github.io/icu/userguide/strings/). * For a discussion of the handling of unpaired surrogates see also * Jitterbug 2145 and its icu mailing list proposal on 2002-sep-18. */ @@ -141,11 +141,11 @@ u_strHasMoreChar32Than(const UChar *s, int32_t length, int32_t number); * @stable ICU 2.0 */ U_CAPI UChar* U_EXPORT2 -u_strcat(UChar *dst, +u_strcat(UChar *dst, const UChar *src); /** - * Concatenate two ustrings. + * Concatenate two ustrings. * Appends at most n characters from src to dst. * Adds a terminating NUL. * If src is too long, then only n-1 characters will be copied @@ -159,8 +159,8 @@ u_strcat(UChar *dst, * @stable ICU 2.0 */ U_CAPI UChar* U_EXPORT2 -u_strncat(UChar *dst, - const UChar *src, +u_strncat(UChar *dst, + const UChar *src, int32_t n); /** @@ -410,7 +410,7 @@ u_strspn(const UChar *string, const UChar *matchSet); * @stable ICU 2.0 */ U_CAPI UChar * U_EXPORT2 -u_strtok_r(UChar *src, +u_strtok_r(UChar *src, const UChar *delim, UChar **saveState); @@ -425,7 +425,7 @@ u_strtok_r(UChar *src, * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 -u_strcmp(const UChar *s1, +u_strcmp(const UChar *s1, const UChar *s2); /** @@ -544,7 +544,7 @@ u_strCaseCompare(const UChar *s1, int32_t length1, UErrorCode *pErrorCode); /** - * Compare two ustrings for bitwise equality. + * Compare two ustrings for bitwise equality. * Compares at most n characters. * * @param ucs1 A string to compare (can be NULL/invalid if n<=0). @@ -556,8 +556,8 @@ u_strCaseCompare(const UChar *s1, int32_t length1, * @stable ICU 2.0 */ U_CAPI int32_t U_EXPORT2 -u_strncmp(const UChar *ucs1, - const UChar *ucs2, +u_strncmp(const UChar *ucs1, + const UChar *ucs2, int32_t n); /** @@ -655,7 +655,7 @@ u_memcasecmp(const UChar *s1, const UChar *s2, int32_t length, uint32_t options) * @stable ICU 2.0 */ U_CAPI UChar* U_EXPORT2 -u_strcpy(UChar *dst, +u_strcpy(UChar *dst, const UChar *src); /** @@ -670,8 +670,8 @@ u_strcpy(UChar *dst, * @stable ICU 2.0 */ U_CAPI UChar* U_EXPORT2 -u_strncpy(UChar *dst, - const UChar *src, +u_strncpy(UChar *dst, + const UChar *src, int32_t n); #if !UCONFIG_NO_CONVERSION @@ -913,10 +913,10 @@ u_memrchr32(const UChar *s, UChar32 c, int32_t count); * } * return u_strcmp(ustringVar1, ustringVar2); * } - * + * * Note that the macros will NOT consistently work if their argument is another #`define`. * The following will not work on all platforms, don't use it. - * + * * #define GLUCK "Mr. Gluck" * U_STRING_DECL(var, GLUCK, 9) * U_STRING_INIT(var, GLUCK, 9) @@ -1187,11 +1187,11 @@ u_strFoldCase(UChar *dest, int32_t destCapacity, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of wchar_t's). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1201,10 +1201,10 @@ u_strFoldCase(UChar *dest, int32_t destCapacity, * @stable ICU 2.0 */ U_CAPI wchar_t* U_EXPORT2 -u_strToWCS(wchar_t *dest, +u_strToWCS(wchar_t *dest, int32_t destCapacity, int32_t *pDestLength, - const UChar *src, + const UChar *src, int32_t srcLength, UErrorCode *pErrorCode); /** @@ -1216,11 +1216,11 @@ u_strToWCS(wchar_t *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of UChars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1231,7 +1231,7 @@ u_strToWCS(wchar_t *dest, */ U_CAPI UChar* U_EXPORT2 u_strFromWCS(UChar *dest, - int32_t destCapacity, + int32_t destCapacity, int32_t *pDestLength, const wchar_t *src, int32_t srcLength, @@ -1245,11 +1245,11 @@ u_strFromWCS(UChar *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of chars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1260,11 +1260,11 @@ u_strFromWCS(UChar *dest, * @see u_strToUTF8WithSub * @see u_strFromUTF8 */ -U_CAPI char* U_EXPORT2 -u_strToUTF8(char *dest, +U_CAPI char* U_EXPORT2 +u_strToUTF8(char *dest, int32_t destCapacity, int32_t *pDestLength, - const UChar *src, + const UChar *src, int32_t srcLength, UErrorCode *pErrorCode); @@ -1275,11 +1275,11 @@ u_strToUTF8(char *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of UChars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1291,10 +1291,10 @@ u_strToUTF8(char *dest, * @see u_strFromUTF8Lenient */ U_CAPI UChar* U_EXPORT2 -u_strFromUTF8(UChar *dest, +u_strFromUTF8(UChar *dest, int32_t destCapacity, int32_t *pDestLength, - const char *src, + const char *src, int32_t srcLength, UErrorCode *pErrorCode); @@ -1308,11 +1308,11 @@ u_strFromUTF8(UChar *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of chars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1352,11 +1352,11 @@ u_strToUTF8WithSub(char *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of UChars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * @param src The original source string * @param srcLength The length of the original string. If -1, then src must be zero-terminated. @@ -1414,13 +1414,13 @@ u_strFromUTF8WithSub(UChar *dest, * @param dest A buffer for the result string. The result will be zero-terminated if * the buffer is large enough. * @param destCapacity The size of the buffer (number of UChars). If it is 0, then - * dest may be NULL and the function will only return the length of the + * dest may be NULL and the function will only return the length of the * result without writing any of the result string (pre-flighting). * Unlike for other ICU functions, if srcLength>=0 then it * must be destCapacity>=srcLength. - * @param pDestLength A pointer to receive the number of units written to the destination. If - * pDestLength!=NULL then *pDestLength is always set to the - * number of output units corresponding to the transformation of + * @param pDestLength A pointer to receive the number of units written to the destination. If + * pDestLength!=NULL then *pDestLength is always set to the + * number of output units corresponding to the transformation of * all the input units, even in case of a buffer overflow. * Unlike for other ICU functions, if srcLength>=0 but * destCapacitychunkOffset <= (ut)->nativeIndexingLimit? \ (ut)->chunkNativeStart+(ut)->chunkOffset : \ - (ut)->pFuncs->mapOffsetToNative(ut)) + (ut)->pFuncs->mapOffsetToNative(ut)) /** * inline version of utext_setNativeIndex(), for performance-critical situations. @@ -865,7 +865,7 @@ utext_replace(UText *ut, * copied or moved. * @param move If true, then the substring is moved, not copied/duplicated. * @param status receives any error status. Possible errors include U_NO_WRITE_PERMISSION - * + * * @stable ICU 3.4 */ U_CAPI void U_EXPORT2 @@ -931,7 +931,7 @@ enum { * There is meta data associated with the text. * @see Replaceable::hasMetaData() * @stable ICU 3.4 - */ + */ UTEXT_PROVIDER_HAS_META_DATA = 4, /** * Text provider owns the text storage. @@ -956,7 +956,7 @@ enum { * and be prepared to handle failures. * * A shallow clone replicates only the UText data structures; it does not make - * a copy of the underlying text. Shallow clones can be used as an efficient way to + * a copy of the underlying text. Shallow clones can be used as an efficient way to * have multiple iterators active in a single text string that is not being * modified. * @@ -1165,7 +1165,7 @@ UTextMapNativeIndexToUTF16(const UText *ut, int64_t nativeIndex); * Function type declaration for UText.utextClose(). * * A Text Provider close function is only required for provider types that make - * allocations in their open function (or other functions) that must be + * allocations in their open function (or other functions) that must be * cleaned when the UText is closed. * * The allocation of the UText struct itself and any "extra" storage @@ -1294,7 +1294,7 @@ struct UTextFuncs { * @internal */ UTextClose *spare1; - + /** * (private) Spare function pointer * @internal @@ -1363,9 +1363,9 @@ struct UText { * @stable ICU 3.4 */ int32_t sizeOfStruct; - + /* ------ 16 byte alignment boundary ----------- */ - + /** * (protected) Native index of the first character position following @@ -1390,7 +1390,7 @@ struct UText { int32_t nativeIndexingLimit; /* ---- 16 byte alignment boundary------ */ - + /** * (protected) Native index of the first character in the text chunk. * @stable ICU 3.6 @@ -1411,7 +1411,7 @@ struct UText { int32_t chunkLength; /* ---- 16 byte alignment boundary-- */ - + /** * (protected) pointer to a chunk of text in UTF-16 format. @@ -1449,7 +1449,7 @@ struct UText { * Not used by UText common code. * @stable ICU 3.6 */ - const void *p; + const void *p; /** * (protected) Pointer fields available for use by the text provider. * Not used by UText common code. @@ -1472,7 +1472,7 @@ struct UText { /* --- 16 byte alignment boundary--- */ - + /** * (protected) Integer field reserved for use by the text provider. diff --git a/deps/icu-small/source/common/unicode/utf.h b/deps/icu-small/source/common/unicode/utf.h index d23345ed0bf1c0..c9d5f5785c5a46 100644 --- a/deps/icu-small/source/common/unicode/utf.h +++ b/deps/icu-small/source/common/unicode/utf.h @@ -107,7 +107,7 @@ * * Usage: * ICU coding guidelines for if() statements should be followed when using these macros. - * Compound statements (curly braces {}) must be used for if-else-while... + * Compound statements (curly braces {}) must be used for if-else-while... * bodies and all macro statements should be terminated with semicolon. * * @stable ICU 2.4 @@ -167,7 +167,7 @@ * @stable ICU 2.8 */ #define U_IS_SUPPLEMENTARY(c) ((uint32_t)((c)-0x10000)<=0xfffff) - + /** * Is this code point a lead surrogate (U+d800..U+dbff)? * @param c 32-bit code point diff --git a/deps/icu-small/source/common/unicode/utf16.h b/deps/icu-small/source/common/unicode/utf16.h index 9d68902d2de0f3..3902c60e95e70d 100644 --- a/deps/icu-small/source/common/unicode/utf16.h +++ b/deps/icu-small/source/common/unicode/utf16.h @@ -19,7 +19,7 @@ /** * \file * \brief C API: 16-bit Unicode handling macros - * + * * This file defines macros to deal with 16-bit Unicode (UTF-16) code units and strings. * * For more information see utf.h and the ICU User Guide Strings chapter @@ -27,7 +27,7 @@ * * Usage: * ICU coding guidelines for if() statements should be followed when using these macros. - * Compound statements (curly braces {}) must be used for if-else-while... + * Compound statements (curly braces {}) must be used for if-else-while... * bodies and all macro statements should be terminated with semicolon. */ diff --git a/deps/icu-small/source/common/unicode/utf8.h b/deps/icu-small/source/common/unicode/utf8.h index 58bda2cbe51290..5a07435fcf6096 100644 --- a/deps/icu-small/source/common/unicode/utf8.h +++ b/deps/icu-small/source/common/unicode/utf8.h @@ -19,7 +19,7 @@ /** * \file * \brief C API: 8-bit Unicode handling macros - * + * * This file defines macros to deal with 8-bit Unicode (UTF-8) code units (bytes) and strings. * * For more information see utf.h and the ICU User Guide Strings chapter @@ -27,7 +27,7 @@ * * Usage: * ICU coding guidelines for if() statements should be followed when using these macros. - * Compound statements (curly braces {}) must be used for if-else-while... + * Compound statements (curly braces {}) must be used for if-else-while... * bodies and all macro statements should be terminated with semicolon. */ diff --git a/deps/icu-small/source/common/unicode/utrace.h b/deps/icu-small/source/common/unicode/utrace.h index 3ed01911058966..677486f473314b 100644 --- a/deps/icu-small/source/common/unicode/utrace.h +++ b/deps/icu-small/source/common/unicode/utrace.h @@ -27,15 +27,15 @@ /** * \file - * \brief C API: Definitions for ICU tracing/logging. + * \brief C API: Definitions for ICU tracing/logging. * * This provides API for debugging the internals of ICU without the use of * a traditional debugger. * - * By default, tracing is disabled in ICU. If you need to debug ICU with + * By default, tracing is disabled in ICU. If you need to debug ICU with * tracing, please compile ICU with the --enable-tracing configure option. */ - + U_CDECL_BEGIN /** @@ -278,7 +278,7 @@ UTraceEntry(const void *context, int32_t fnNumber); * @stable ICU 2.8 */ typedef void U_CALLCONV -UTraceExit(const void *context, int32_t fnNumber, +UTraceExit(const void *context, int32_t fnNumber, const char *fmt, va_list args); /** @@ -314,11 +314,11 @@ UTraceData(const void *context, int32_t fnNumber, int32_t level, * here will in turn be passed to each of the tracing * functions UTraceEntry, UTraceExit and UTraceData. * ICU does not use or alter this pointer. - * @param e Callback function to be called on entry to a + * @param e Callback function to be called on entry to a * a traced ICU function. * @param x Callback function to be called on exit from a * traced ICU function. - * @param d Callback function to be called from within a + * @param d Callback function to be called from within a * traced ICU function, for the purpose of providing * data to the trace. * @@ -386,7 +386,7 @@ utrace_getFunctions(const void **context, * - S A UChar * string. Requires two params, (ptr, length). Length=-1 for nul term. * - b A byte (8-bit integer). * - h A 16-bit integer. Also a 16 bit Unicode code unit. - * - d A 32-bit integer. Also a 20 bit Unicode code point value. + * - d A 32-bit integer. Also a 20 bit Unicode code point value. * - l A 64-bit integer. * - p A data pointer. * @@ -418,7 +418,7 @@ utrace_getFunctions(const void **context, * the type casts will not be necessary in actual code * * UTraceDataFunc(context, fnNumber, level, - * "There is a character %c in the string %s.", // Format String + * "There is a character %c in the string %s.", // Format String * (char)c, (const char *)s); // varargs parameters * -> There is a character 0x42 'B' in the string "Bravo". * @@ -457,7 +457,7 @@ utrace_getFunctions(const void **context, * @param fmt Format specification for the data to output * @param args Data to be formatted. * @return Length of formatted output, including the terminating NUL. - * If buffer capacity is insufficient, the required capacity is returned. + * If buffer capacity is insufficient, the required capacity is returned. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 @@ -478,7 +478,7 @@ utrace_vformat(char *outBuf, int32_t capacity, * @param fmt Format specification for the data to output * @param ... Data to be formatted. * @return Length of formatted output, including the terminating NUL. - * If buffer capacity is insufficient, the required capacity is returned. + * If buffer capacity is insufficient, the required capacity is returned. * @stable ICU 2.8 */ U_CAPI int32_t U_EXPORT2 diff --git a/deps/icu-small/source/common/unicode/utypes.h b/deps/icu-small/source/common/unicode/utypes.h index 6c57218db8d477..f890d5d1dbbebf 100644 --- a/deps/icu-small/source/common/unicode/utypes.h +++ b/deps/icu-small/source/common/unicode/utypes.h @@ -211,16 +211,16 @@ typedef double UDate; /** The number of milliseconds per day @stable ICU 2.0 */ #define U_MILLIS_PER_DAY (86400000) -/** - * Maximum UDate value - * @stable ICU 4.8 - */ +/** + * Maximum UDate value + * @stable ICU 4.8 + */ #define U_DATE_MAX DBL_MAX /** - * Minimum UDate value - * @stable ICU 4.8 - */ + * Minimum UDate value + * @stable ICU 4.8 + */ #define U_DATE_MIN -U_DATE_MAX /*===========================================================================*/ @@ -400,7 +400,7 @@ typedef double UDate; * suitable subclass. * * For more information, see: - * http://icu-project.org/userguide/conventions + * https://unicode-org.github.io/icu/userguide/dev/codingguidelines#details-about-icu-error-codes * * Note: By convention, ICU functions that take a reference (C++) or a pointer * (C) to a UErrorCode first test: @@ -435,7 +435,7 @@ typedef enum UErrorCode { U_AMBIGUOUS_ALIAS_WARNING = -122, /**< This converter alias can go to different converter implementations */ U_DIFFERENT_UCA_VERSION = -121, /**< ucol_open encountered a mismatch between UCA version and collator image version, so the collator was constructed from rules. No impact to further function */ - + U_PLUGIN_CHANGED_LEVEL_WARNING = -120, /**< A plugin caused a level change. May not be an error, but later plugins may not load. */ #ifndef U_HIDE_DEPRECATED_API @@ -479,16 +479,14 @@ typedef enum UErrorCode { U_COLLATOR_VERSION_MISMATCH = 28, /**< Collator version is not compatible with the base version */ U_USELESS_COLLATOR_ERROR = 29, /**< Collator is options only and no base is specified */ U_NO_WRITE_PERMISSION = 30, /**< Attempt to modify read-only or constant data. */ -#ifndef U_HIDE_DRAFT_API /** * The input is impractically long for an operation. * It is rejected because it may lead to problems such as excessive * processing time, stack depth, or heap memory requirements. * - * @draft ICU 68 + * @stable ICU 68 */ U_INPUT_TOO_LONG_ERROR = 31, -#endif // U_HIDE_DRAFT_API #ifndef U_HIDE_DEPRECATED_API /** @@ -666,7 +664,7 @@ typedef enum UErrorCode { U_STRINGPREP_PROHIBITED_ERROR = U_IDNA_PROHIBITED_ERROR, U_STRINGPREP_UNASSIGNED_ERROR = U_IDNA_UNASSIGNED_ERROR, U_STRINGPREP_CHECK_BIDI_ERROR = U_IDNA_CHECK_BIDI_ERROR, - + /* * Error codes in the range 0x10500-0x105ff are reserved for Plugin related error codes. */ diff --git a/deps/icu-small/source/common/unicode/uvernum.h b/deps/icu-small/source/common/unicode/uvernum.h index b09d4943c1cc98..42e8865d7e330b 100644 --- a/deps/icu-small/source/common/unicode/uvernum.h +++ b/deps/icu-small/source/common/unicode/uvernum.h @@ -60,7 +60,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION_MAJOR_NUM 69 +#define U_ICU_VERSION_MAJOR_NUM 70 /** The current ICU minor version as an integer. * This value will change in the subsequent releases of ICU @@ -86,7 +86,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.6 */ -#define U_ICU_VERSION_SUFFIX _69 +#define U_ICU_VERSION_SUFFIX _70 /** * \def U_DEF2_ICU_ENTRY_POINT_RENAME @@ -139,7 +139,7 @@ * This value will change in the subsequent releases of ICU * @stable ICU 2.4 */ -#define U_ICU_VERSION "69.1" +#define U_ICU_VERSION "70.1" /** * The current ICU library major version number as a string, for library name suffixes. @@ -152,13 +152,13 @@ * * @stable ICU 2.6 */ -#define U_ICU_VERSION_SHORT "69" +#define U_ICU_VERSION_SHORT "70" #ifndef U_HIDE_INTERNAL_API /** Data version in ICU4C. * @internal ICU 4.4 Internal Use Only **/ -#define U_ICU_DATA_VERSION "69.1" +#define U_ICU_DATA_VERSION "70.1" #endif /* U_HIDE_INTERNAL_API */ /*=========================================================================== diff --git a/deps/icu-small/source/common/unicode/uversion.h b/deps/icu-small/source/common/unicode/uversion.h index dde3059261047c..113568df8c127d 100644 --- a/deps/icu-small/source/common/unicode/uversion.h +++ b/deps/icu-small/source/common/unicode/uversion.h @@ -18,7 +18,7 @@ /** * \file - * \brief C API: API for accessing ICU version numbers. + * \brief C API: API for accessing ICU version numbers. */ /*===========================================================================*/ /* Main ICU version information */ diff --git a/deps/icu-small/source/common/unifiedcache.h b/deps/icu-small/source/common/unifiedcache.h index 865f4545105cb6..07a734b8bd5b07 100644 --- a/deps/icu-small/source/common/unifiedcache.h +++ b/deps/icu-small/source/common/unifiedcache.h @@ -39,7 +39,7 @@ class U_COMMON_API CacheKeyBase : public UObject { /** * Copy constructor. Needed to support cloning. */ - CacheKeyBase(const CacheKeyBase &other) + CacheKeyBase(const CacheKeyBase &other) : UObject(other), fCreationStatus(other.fCreationStatus), fIsPrimary(false) { } virtual ~CacheKeyBase(); @@ -53,11 +53,6 @@ class U_COMMON_API CacheKeyBase : public UObject { */ virtual CacheKeyBase *clone() const = 0; - /** - * Equality operator. - */ - virtual UBool operator == (const CacheKeyBase &other) const = 0; - /** * Create a new object for this key. Called by cache on cache miss. * createObject must add a reference to the object it returns. Note @@ -80,12 +75,19 @@ class U_COMMON_API CacheKeyBase : public UObject { */ virtual char *writeDescription(char *buffer, int32_t bufSize) const = 0; - /** - * Inequality operator. - */ - UBool operator != (const CacheKeyBase &other) const { - return !(*this == other); + friend inline bool operator==(const CacheKeyBase& lhs, + const CacheKeyBase& rhs) { + return lhs.equals(rhs); } + + friend inline bool operator!=(const CacheKeyBase& lhs, + const CacheKeyBase& rhs) { + return !lhs.equals(rhs); + } + + protected: + virtual bool equals(const CacheKeyBase& other) const = 0; + private: mutable UErrorCode fCreationStatus; mutable UBool fIsPrimary; @@ -95,7 +97,7 @@ class U_COMMON_API CacheKeyBase : public UObject { /** - * Templated version of CacheKeyBase. + * Templated version of CacheKeyBase. * A key of type LocaleCacheKey maps to a value of type T. */ template @@ -105,7 +107,7 @@ class CacheKey : public CacheKeyBase { /** * The template parameter, T, determines the hash code returned. */ - virtual int32_t hashCode() const { + virtual int32_t hashCode() const override { const char *s = typeid(T).name(); return ustr_hashCharsN(s, static_cast(uprv_strlen(s))); } @@ -113,18 +115,19 @@ class CacheKey : public CacheKeyBase { /** * Use the value type, T, as the description. */ - virtual char *writeDescription(char *buffer, int32_t bufLen) const { + virtual char *writeDescription(char *buffer, int32_t bufLen) const override { const char *s = typeid(T).name(); uprv_strncpy(buffer, s, bufLen); buffer[bufLen - 1] = 0; return buffer; } + protected: /** * Two objects are equal if they are of the same type. */ - virtual UBool operator == (const CacheKeyBase &other) const { - return typeid(*this) == typeid(other); + virtual bool equals(const CacheKeyBase &other) const override { + return this == &other || typeid(*this) == typeid(other); } }; @@ -136,37 +139,34 @@ template class LocaleCacheKey : public CacheKey { protected: Locale fLoc; + virtual bool equals(const CacheKeyBase &other) const override { + if (!CacheKey::equals(other)) { + return false; + } + // We know this and other are of same class because equals() on + // CacheKey returned true. + return operator==(static_cast &>(other)); + } public: LocaleCacheKey(const Locale &loc) : fLoc(loc) {} LocaleCacheKey(const LocaleCacheKey &other) : CacheKey(other), fLoc(other.fLoc) { } virtual ~LocaleCacheKey() { } - virtual int32_t hashCode() const { + virtual int32_t hashCode() const override { return (int32_t)(37u * (uint32_t)CacheKey::hashCode() + (uint32_t)fLoc.hashCode()); } - virtual UBool operator == (const CacheKeyBase &other) const { - // reflexive - if (this == &other) { - return true; - } - if (!CacheKey::operator == (other)) { - return false; - } - // We know this and other are of same class because operator== on - // CacheKey returned true. - const LocaleCacheKey *fOther = - static_cast *>(&other); - return fLoc == fOther->fLoc; + inline bool operator == (const LocaleCacheKey &other) const { + return fLoc == other.fLoc; } - virtual CacheKeyBase *clone() const { + virtual CacheKeyBase *clone() const override { return new LocaleCacheKey(*this); } virtual const T *createObject( - const void *creationContext, UErrorCode &status) const; + const void *creationContext, UErrorCode &status) const override; /** * Use the locale id as the description. */ - virtual char *writeDescription(char *buffer, int32_t bufLen) const { + virtual char *writeDescription(char *buffer, int32_t bufLen) const override { const char *s = fLoc.getName(); uprv_strncpy(buffer, s, bufLen); buffer[bufLen - 1] = 0; @@ -293,8 +293,8 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { void flush() const; /** - * Configures at what point evcition of unused entries will begin. - * Eviction is triggered whenever the number of evictable keys exeeds + * Configures at what point eviction of unused entries will begin. + * Eviction is triggered whenever the number of evictable keys exceeds * BOTH count AND (number of in-use items) * (percentageOfInUseItems / 100). * Once the number of unused entries drops below one of these, * eviction ceases. Because eviction happens incrementally, @@ -315,7 +315,7 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { * settings. * * If a client already holds references to many different unique values - * in the cache such that the number of those unique values far exeeds + * in the cache such that the number of those unique values far exceeds * "count" then the cache may not be able to maintain this maximum. * However, if this happens, the cache still guarantees that the number of * unused entries will remain only a small percentage of the total cache @@ -341,9 +341,9 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { */ int32_t unusedCount() const; - virtual void handleUnreferencedObject() const; + virtual void handleUnreferencedObject() const override; virtual ~UnifiedCache(); - + private: UHashtable *fHashtable; mutable int32_t fEvictPos; @@ -353,17 +353,17 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { int32_t fMaxPercentageOfInUse; mutable int64_t fAutoEvictedCount; SharedObject *fNoValue; - + UnifiedCache(const UnifiedCache &other); UnifiedCache &operator=(const UnifiedCache &other); - + /** * Flushes the contents of the cache. If cache values hold references to other * cache values then _flush should be called in a loop until it returns false. - * + * * On entry, gCacheMutex must be held. * On exit, those values with are evictable are flushed. - * + * * @param all if false flush evictable items only, which are those with no external * references, plus those that can be safely recreated.
    * if true, flush all elements. Any values (sharedObjects) with remaining @@ -373,7 +373,7 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { * @return true if any value in cache was flushed or false otherwise. */ UBool _flush(UBool all) const; - + /** * Gets value out of cache. * On entry. gCacheMutex must not be held. value must be NULL. status @@ -406,10 +406,10 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { const CacheKeyBase &key, const SharedObject *&value, UErrorCode &status) const; - + /** * Places a new value and creationStatus in the cache for the given key. - * On entry, gCacheMutex must be held. key must not exist in the cache. + * On entry, gCacheMutex must be held. key must not exist in the cache. * On exit, value and creation status placed under key. Soft reference added * to value on successful add. On error sets status. */ @@ -418,15 +418,15 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { const SharedObject *value, const UErrorCode creationStatus, UErrorCode &status) const; - + /** * Places value and status at key if there is no value at key or if cache * entry for key is in progress. Otherwise, it leaves the current value and * status there. - * + * * On entry. gCacheMutex must not be held. Value must be * included in the reference count of the object to which it points. - * + * * On exit, value and status are changed to what was already in the cache if * something was there and not in progress. Otherwise, value and status are left * unchanged in which case they are placed in the cache on a best-effort basis. @@ -443,17 +443,17 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { * On entry, gCacheMutex must be held. */ const UHashElement *_nextElement() const; - + /** * Return the number of cache items that would need to be evicted * to bring usage into conformance with eviction policy. - * + * * An item corresponds to an entry in the hash table, a hash table element. - * + * * On entry, gCacheMutex must be held. */ int32_t _computeCountOfItemsToEvict() const; - + /** * Run an eviction slice. * On entry, gCacheMutex must be held. @@ -461,20 +461,20 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { * 10 entries in the cache round robin style evicting them if they are eligible. */ void _runEvictionSlice() const; - + /** * Register a primary cache entry. A primary key is the first key to create * a given SharedObject value. Subsequent keys whose create function - * produce referneces to an already existing SharedObject are not primary - + * produce references to an already existing SharedObject are not primary - * they can be evicted and subsequently recreated. - * + * * On entry, gCacheMutex must be held. * On exit, items in use count incremented, entry is marked as a primary * entry, and value registered with cache so that subsequent calls to * addRef() and removeRef() on it correctly interact with the cache. */ void _registerPrimary(const CacheKeyBase *theKey, const SharedObject *value) const; - + /** * Store a value and creation error status in given hash entry. * On entry, gCacheMutex must be held. Hash entry element must be in progress. @@ -494,32 +494,32 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { * @param value the SharedObject to be acted on. */ void removeSoftRef(const SharedObject *value) const; - + /** * Increment the hard reference count of the given SharedObject. * gCacheMutex must be held by the caller. * Update numValuesEvictable on transitions between zero and one reference. - * + * * @param value The SharedObject to be referenced. * @return the hard reference count after the addition. */ int32_t addHardRef(const SharedObject *value) const; - + /** * Decrement the hard reference count of the given SharedObject. * gCacheMutex must be held by the caller. * Update numValuesEvictable on transitions between one and zero reference. - * + * * @param value The SharedObject to be referenced. * @return the hard reference count after the removal. */ int32_t removeHardRef(const SharedObject *value) const; - + #ifdef UNIFIED_CACHE_DEBUG void _dumpContents() const; #endif - + /** * Fetch value and error code from a particular hash entry. * On entry, gCacheMutex must be held. value must be either NULL or must be @@ -531,19 +531,19 @@ class U_COMMON_API UnifiedCache : public UnifiedCacheBase { */ void _fetch(const UHashElement *element, const SharedObject *&value, UErrorCode &status) const; - + /** * Determine if given hash entry is in progress. * On entry, gCacheMutex must be held. */ UBool _inProgress(const UHashElement *element) const; - + /** * Determine if given hash entry is in progress. * On entry, gCacheMutex must be held. */ UBool _inProgress(const SharedObject *theValue, UErrorCode creationStatus) const; - + /** * Determine if given hash entry is eligible for eviction. * On entry, gCacheMutex must be held. diff --git a/deps/icu-small/source/common/uniset.cpp b/deps/icu-small/source/common/uniset.cpp index 067930b73bd6b2..92a81a1a02d1f0 100644 --- a/deps/icu-small/source/common/uniset.cpp +++ b/deps/icu-small/source/common/uniset.cpp @@ -111,7 +111,7 @@ static void U_CALLCONV cloneUnicodeString(UElement *dst, UElement *src) { dst->pointer = new UnicodeString(*(UnicodeString*)src->pointer); } -static int8_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { +static int32_t U_CALLCONV compareUnicodeString(UElement t1, UElement t2) { const UnicodeString &a = *(const UnicodeString*)t1.pointer; const UnicodeString &b = *(const UnicodeString*)t2.pointer; return a.compare(b); @@ -278,14 +278,14 @@ UnicodeSet *UnicodeSet::cloneAsThawed() const { * @param o set to be compared for equality with this set. * @return true if the specified set is equal to this set. */ -UBool UnicodeSet::operator==(const UnicodeSet& o) const { - if (len != o.len) return FALSE; +bool UnicodeSet::operator==(const UnicodeSet& o) const { + if (len != o.len) return false; for (int32_t i = 0; i < len; ++i) { - if (list[i] != o.list[i]) return FALSE; + if (list[i] != o.list[i]) return false; } - if (hasStrings() != o.hasStrings()) { return FALSE; } - if (hasStrings() && *strings != *o.strings) return FALSE; - return TRUE; + if (hasStrings() != o.hasStrings()) { return false; } + if (hasStrings() && *strings != *o.strings) return false; + return true; } /** @@ -984,7 +984,6 @@ void UnicodeSet::_add(const UnicodeString& s) { strings->sortedInsert(t, compareUnicodeString, ec); if (U_FAILURE(ec)) { setToBogus(); - delete t; } } @@ -1620,7 +1619,7 @@ UBool UnicodeSet::allocateStrings(UErrorCode &status) { delete strings; strings = NULL; return FALSE; - } + } return TRUE; } @@ -1968,8 +1967,7 @@ void UnicodeSet::retain(const UChar32* other, int32_t otherLen, int8_t polarity) * Append the toPattern() representation of a * string to the given StringBuffer. */ -void UnicodeSet::_appendToPat(UnicodeString& buf, const UnicodeString& s, UBool -escapeUnprintable) { +void UnicodeSet::_appendToPat(UnicodeString& buf, const UnicodeString& s, UBool escapeUnprintable) { UChar32 cp; for (int32_t i = 0; i < s.length(); i += U16_LENGTH(cp)) { _appendToPat(buf, cp = s.char32At(i), escapeUnprintable); @@ -1980,14 +1978,12 @@ escapeUnprintable) { * Append the toPattern() representation of a * character to the given StringBuffer. */ -void UnicodeSet::_appendToPat(UnicodeString& buf, UChar32 c, UBool -escapeUnprintable) { - if (escapeUnprintable && ICU_Utility::isUnprintable(c)) { +void UnicodeSet::_appendToPat(UnicodeString& buf, UChar32 c, UBool escapeUnprintable) { + if (escapeUnprintable ? ICU_Utility::isUnprintable(c) : ICU_Utility::shouldAlwaysBeEscaped(c)) { // Use hex escape notation (\uxxxx or \Uxxxxxxxx) for anything // unprintable - if (ICU_Utility::escapeUnprintable(buf, c)) { - return; - } + ICU_Utility::escape(buf, c); + return; } // Okay to let ':' pass through switch (c) { @@ -2013,6 +2009,19 @@ escapeUnprintable) { buf.append(c); } +void UnicodeSet::_appendToPat(UnicodeString &result, UChar32 start, UChar32 end, + UBool escapeUnprintable) { + _appendToPat(result, start, escapeUnprintable); + if (start != end) { + if ((start+1) != end || + // Avoid writing what looks like a lead+trail surrogate pair. + start == 0xdbff) { + result.append(u'-'); + } + _appendToPat(result, end, escapeUnprintable); + } +} + /** * Append a string representation of this set to result. This will be * a cleaned version of the string passed to applyPattern(), if there @@ -2027,7 +2036,8 @@ UnicodeString& UnicodeSet::_toPattern(UnicodeString& result, for (i=0; i 1 && - getRangeStart(0) == MIN_VALUE && - getRangeEnd(count-1) == MAX_VALUE) { - + // if (getRangeCount() >= 2 && + // getRangeStart(0) == MIN_VALUE && + // getRangeEnd(last) == MAX_VALUE) + // Invariant: list[len-1] == HIGH == MAX_VALUE + 1 + // If limit == len then len is even and the last range ends with MAX_VALUE. + // + // *But* do not write the inverse (complement) if there are strings. + // Since ICU 70, the '^' performs a code point complement which removes all strings. + if (len >= 4 && list[0] == 0 && limit == len && !hasStrings()) { // Emit the inverse result.append(u'^'); - - for (int32_t i = 1; i < count; ++i) { - UChar32 start = getRangeEnd(i-1)+1; - UChar32 end = getRangeStart(i)-1; - _appendToPat(result, start, escapeUnprintable); - if (start != end) { - if ((start+1) != end) { - result.append(u'-'); - } - _appendToPat(result, end, escapeUnprintable); + // Offsetting the inversion list index by one lets us + // iterate over the ranges of the set complement. + i = 1; + --limit; + } + + // Emit the ranges as pairs. + while (i < limit) { + UChar32 start = list[i]; // getRangeStart() + UChar32 end = list[i + 1] - 1; // getRangeEnd() = range limit minus one + if (!(0xd800 <= end && end <= 0xdbff)) { + _appendToPat(result, start, end, escapeUnprintable); + i += 2; + } else { + // The range ends with a lead surrogate. + // Avoid writing what looks like a lead+trail surrogate pair. + // 1. Postpone ranges that start with a lead surrogate code point. + int32_t firstLead = i; + while ((i += 2) < limit && list[i] <= 0xdbff) {} + int32_t firstAfterLead = i; + // 2. Write following ranges that start with a trail surrogate code point. + while (i < limit && (start = list[i]) <= 0xdfff) { + _appendToPat(result, start, list[i + 1] - 1, escapeUnprintable); + i += 2; } - } - } - - // Default; emit the ranges as pairs - else { - for (int32_t i = 0; i < count; ++i) { - UChar32 start = getRangeStart(i); - UChar32 end = getRangeEnd(i); - _appendToPat(result, start, escapeUnprintable); - if (start != end) { - if ((start+1) != end) { - result.append(u'-'); - } - _appendToPat(result, end, escapeUnprintable); + // 3. Now write the postponed ranges. + for (int j = firstLead; j < firstAfterLead; j += 2) { + _appendToPat(result, list[j], list[j + 1] - 1, escapeUnprintable); } } } diff --git a/deps/icu-small/source/common/uniset_props.cpp b/deps/icu-small/source/common/uniset_props.cpp index 8c86cc18c7473f..49d6caabc7557e 100644 --- a/deps/icu-small/source/common/uniset_props.cpp +++ b/deps/icu-small/source/common/uniset_props.cpp @@ -333,7 +333,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, mode = 1; patLocal.append(u'['); chars.getPos(backup); // prepare to backup - c = chars.next(opts, literal, ec); + c = chars.next(opts, literal, ec); if (U_FAILURE(ec)) return; if (c == u'^' && !literal) { invert = TRUE; @@ -638,7 +638,7 @@ void UnicodeSet::applyPattern(RuleCharacterIterator& chars, (this->*caseClosure)(USET_ADD_CASE_MAPPINGS); } if (invert) { - complement(); + complement().removeAllStrings(); // code point complement } // Use the rebuilt pattern (patLocal) only if necessary. Prefer the @@ -791,7 +791,7 @@ UnicodeSet::applyIntPropertyValue(UProperty prop, int32_t value, UErrorCode& ec) if (U_FAILURE(ec)) { return *this; } copyFrom(*UnicodeSet::fromUSet(set), TRUE); if (value == 0) { - complement(); + complement().removeAllStrings(); // code point complement } } else { clear(); @@ -958,7 +958,7 @@ UnicodeSet::applyPropertyAlias(const UnicodeString& prop, applyIntPropertyValue(p, v, ec); if(invert) { - complement(); + complement().removeAllStrings(); // code point complement } if (isBogus() && U_SUCCESS(ec)) { @@ -1084,7 +1084,7 @@ UnicodeSet& UnicodeSet::applyPropertyPattern(const UnicodeString& pattern, else { // Handle case where no '=' is seen, and \N{} pattern.extractBetween(pos, close, propName); - + // Handle \N{name} if (isName) { // This is a little inefficient since it means we have to @@ -1101,7 +1101,7 @@ UnicodeSet& UnicodeSet::applyPropertyPattern(const UnicodeString& pattern, if (U_SUCCESS(ec)) { if (invert) { - complement(); + complement().removeAllStrings(); // code point complement } // Move to the limit position after the close delimiter if the diff --git a/deps/icu-small/source/common/unistr.cpp b/deps/icu-small/source/common/unistr.cpp index 1c59de972d95ed..077b4d6ef20811 100644 --- a/deps/icu-small/source/common/unistr.cpp +++ b/deps/icu-small/source/common/unistr.cpp @@ -672,7 +672,7 @@ UnicodeString::doCompare( int32_t start, if(isBogus()) { return -1; } - + // pin indices to legal values pinIndices(start, length); @@ -720,7 +720,7 @@ UnicodeString::doCompare( int32_t start, if(minLength > 0 && chars != srcChars) { int32_t result; -# if U_IS_BIG_ENDIAN +# if U_IS_BIG_ENDIAN // big-endian: byte comparison works result = uprv_memcmp(chars, srcChars, minLength * sizeof(UChar)); if(result != 0) { @@ -952,7 +952,7 @@ UnicodeString::extract(int32_t start, int32_t len, // else see unistr_cnv.cpp #endif -void +void UnicodeString::extractBetween(int32_t start, int32_t limit, UnicodeString& target) const { @@ -1021,7 +1021,7 @@ UnicodeString::toUTF32(UChar32 *utf32, int32_t capacity, UErrorCode &errorCode) return length32; } -int32_t +int32_t UnicodeString::indexOf(const UChar *srcChars, int32_t srcStart, int32_t srcLength, @@ -1085,7 +1085,7 @@ UnicodeString::doIndexOf(UChar32 c, } } -int32_t +int32_t UnicodeString::lastIndexOf(const UChar *srcChars, int32_t srcStart, int32_t srcLength, @@ -1157,7 +1157,7 @@ UnicodeString::doLastIndexOf(UChar32 c, // Write implementation //======================================== -UnicodeString& +UnicodeString& UnicodeString::findAndReplace(int32_t start, int32_t length, const UnicodeString& oldText, @@ -1615,7 +1615,7 @@ UnicodeString::handleReplaceBetween(int32_t start, /** * Replaceable API */ -void +void UnicodeString::copy(int32_t start, int32_t limit, int32_t dest) { if (limit <= start) { return; // Nothing to do; avoid bogus malloc call @@ -1624,7 +1624,7 @@ UnicodeString::copy(int32_t start, int32_t limit, int32_t dest) { // Check to make sure text is not null. if (text != NULL) { extractBetween(start, limit, text, 0); - insert(dest, text, 0, limit - start); + insert(dest, text, 0, limit - start); uprv_free(text); } } @@ -1692,7 +1692,7 @@ UnicodeString::doReverse(int32_t start, int32_t length) { return *this; } -UBool +UBool UnicodeString::padLeading(int32_t targetLength, UChar padChar) { @@ -1714,7 +1714,7 @@ UnicodeString::padLeading(int32_t targetLength, } } -UBool +UBool UnicodeString::padTrailing(int32_t targetLength, UChar padChar) { diff --git a/deps/icu-small/source/common/unistr_props.cpp b/deps/icu-small/source/common/unistr_props.cpp index 691bd085d6a923..40064757902ca8 100644 --- a/deps/icu-small/source/common/unistr_props.cpp +++ b/deps/icu-small/source/common/unistr_props.cpp @@ -25,7 +25,7 @@ U_NAMESPACE_BEGIN -UnicodeString& +UnicodeString& UnicodeString::trim() { if(isBogus()) { diff --git a/deps/icu-small/source/common/unistrappender.h b/deps/icu-small/source/common/unistrappender.h index 134f31497f1525..75fcb9e775f1eb 100644 --- a/deps/icu-small/source/common/unistrappender.h +++ b/deps/icu-small/source/common/unistrappender.h @@ -26,7 +26,7 @@ U_NAMESPACE_BEGIN * one character at a time in a loop. It stores appends in a buffer while * never actually calling append on the unicode string unless the buffer * fills up or is flushed. - * + * * proper usage: * { * UnicodeStringAppender appender(astring); @@ -38,7 +38,7 @@ U_NAMESPACE_BEGIN */ class UnicodeStringAppender : public UMemory { public: - + /** * dest is the UnicodeString being appended to. It must always * exist while this instance exists. diff --git a/deps/icu-small/source/common/unorm.cpp b/deps/icu-small/source/common/unorm.cpp index 93f77e66afb40e..2d9f46052ffc43 100644 --- a/deps/icu-small/source/common/unorm.cpp +++ b/deps/icu-small/source/common/unorm.cpp @@ -15,8 +15,8 @@ * 02/01/01 synwee Added normalization quickcheck enum and method. * 02/12/01 synwee Commented out quickcheck util api has been approved * Added private method for doing FCD checks -* 02/23/01 synwee Modified quickcheck and checkFCE to run through -* string for codepoints < 0x300 for the normalization +* 02/23/01 synwee Modified quickcheck and checkFCE to run through +* string for codepoints < 0x300 for the normalization * mode NFC. * 05/25/01+ Markus Scherer total rewrite, implement all normalization here * instead of just wrappers around normlzr.cpp, @@ -45,7 +45,7 @@ U_NAMESPACE_USE U_CAPI UNormalizationCheckResult U_EXPORT2 unorm_quickCheck(const UChar *src, - int32_t srcLength, + int32_t srcLength, UNormalizationMode mode, UErrorCode *pErrorCode) { const Normalizer2 *n2=Normalizer2Factory::getInstance(mode, *pErrorCode); @@ -53,7 +53,7 @@ unorm_quickCheck(const UChar *src, } U_CAPI UNormalizationCheckResult U_EXPORT2 -unorm_quickCheckWithOptions(const UChar *src, int32_t srcLength, +unorm_quickCheckWithOptions(const UChar *src, int32_t srcLength, UNormalizationMode mode, int32_t options, UErrorCode *pErrorCode) { const Normalizer2 *n2=Normalizer2Factory::getInstance(mode, *pErrorCode); diff --git a/deps/icu-small/source/common/unormimp.h b/deps/icu-small/source/common/unormimp.h index e09c5c1c916773..d2604adb4a91fa 100644 --- a/deps/icu-small/source/common/unormimp.h +++ b/deps/icu-small/source/common/unormimp.h @@ -188,7 +188,7 @@ enum { * int32_t indexes[_NORM_INDEX_TOP]; -- _NORM_INDEX_TOP=32, see enum in this file * * UTrie normTrie; -- size in bytes=indexes[_NORM_INDEX_TRIE_SIZE] - * + * * uint16_t extraData[extraDataTop]; -- extraDataTop=indexes[_NORM_INDEX_UCHAR_COUNT] * extraData[0] contains the number of units for * FC_NFKC_Closure (formatVersion>=2.1) diff --git a/deps/icu-small/source/common/uprops.cpp b/deps/icu-small/source/common/uprops.cpp index 1604ad9a179bec..5186a0c75caf6b 100644 --- a/deps/icu-small/source/common/uprops.cpp +++ b/deps/icu-small/source/common/uprops.cpp @@ -30,7 +30,9 @@ #include "unicode/unorm2.h" #include "unicode/uscript.h" #include "unicode/ustring.h" +#include "unicode/utf16.h" #include "cstring.h" +#include "emojiprops.h" #include "mutex.h" #include "normalizer2impl.h" #include "umutex.h" @@ -322,6 +324,10 @@ static UBool isRegionalIndicator(const BinaryProperty &/*prop*/, UChar32 c, UPro return 0x1F1E6<=c && c<=0x1F1FF; } +static UBool hasEmojiProperty(const BinaryProperty &/*prop*/, UChar32 c, UProperty which) { + return EmojiProps::hasBinaryProperty(c, which); +} + static const BinaryProperty binProps[UCHAR_BINARY_LIMIT]={ /* * column and mask values for binary properties from u_getUnicodeProperties(). @@ -388,14 +394,21 @@ static const BinaryProperty binProps[UCHAR_BINARY_LIMIT]={ { UPROPS_SRC_CASE_AND_NORM, 0, changesWhenCasefolded }, { UPROPS_SRC_CASE, 0, caseBinaryPropertyContains }, // UCHAR_CHANGES_WHEN_CASEMAPPED { UPROPS_SRC_NFKC_CF, 0, changesWhenNFKC_Casefolded }, - { 2, U_MASK(UPROPS_2_EMOJI), defaultContains }, - { 2, U_MASK(UPROPS_2_EMOJI_PRESENTATION), defaultContains }, - { 2, U_MASK(UPROPS_2_EMOJI_MODIFIER), defaultContains }, - { 2, U_MASK(UPROPS_2_EMOJI_MODIFIER_BASE), defaultContains }, - { 2, U_MASK(UPROPS_2_EMOJI_COMPONENT), defaultContains }, + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI_PRESENTATION + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI_MODIFIER + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI_MODIFIER_BASE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI_COMPONENT { 2, 0, isRegionalIndicator }, { 1, U_MASK(UPROPS_PREPENDED_CONCATENATION_MARK), defaultContains }, - { 2, U_MASK(UPROPS_2_EXTENDED_PICTOGRAPHIC), defaultContains }, + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EXTENDED_PICTOGRAPHIC + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_BASIC_EMOJI + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_EMOJI_KEYCAP_SEQUENCE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_RGI_EMOJI_MODIFIER_SEQUENCE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_RGI_EMOJI_FLAG_SEQUENCE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_RGI_EMOJI_TAG_SEQUENCE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_RGI_EMOJI_ZWJ_SEQUENCE + { UPROPS_SRC_EMOJI, 0, hasEmojiProperty }, // UCHAR_RGI_EMOJI }; U_CAPI UBool U_EXPORT2 @@ -410,6 +423,26 @@ u_hasBinaryProperty(UChar32 c, UProperty which) { } } +U_CAPI UBool U_EXPORT2 +u_stringHasBinaryProperty(const UChar *s, int32_t length, UProperty which) { + if (s == nullptr && length != 0) { return false; } + if (length == 1) { + return u_hasBinaryProperty(s[0], which); // single code point + } else if (length == 2 || (length < 0 && *s != 0)) { // not empty string + // first code point + int32_t i = 0; + UChar32 c; + U16_NEXT(s, i, length, c); + if (length > 0 ? i == length : s[i] == 0) { + return u_hasBinaryProperty(c, which); // single code point + } + } + // Only call into EmojiProps for a relevant property, + // so that we not unnecessarily try to load its data file. + return UCHAR_BASIC_EMOJI <= which && which <= UCHAR_RGI_EMOJI && + EmojiProps::hasBinaryProperty(s, length, which); +} + struct IntProperty; typedef int32_t IntPropertyGetValue(const IntProperty &prop, UChar32 c, UProperty which); diff --git a/deps/icu-small/source/common/uprops.h b/deps/icu-small/source/common/uprops.h index 09830bdeb99892..2004394db64e1b 100644 --- a/deps/icu-small/source/common/uprops.h +++ b/deps/icu-small/source/common/uprops.h @@ -224,7 +224,8 @@ enum { /* * Properties in vector word 2 * Bits - * 31..26 http://www.unicode.org/reports/tr51/#Emoji_Properties + * 31..26 unused since ICU 70 added uemoji.icu; + * in ICU 57..69 stored emoji properties * 25..20 Line Break * 19..15 Sentence Break * 14..10 Word Break @@ -232,12 +233,12 @@ enum { * 4.. 0 Decomposition Type */ enum { - UPROPS_2_EXTENDED_PICTOGRAPHIC=26, - UPROPS_2_EMOJI_COMPONENT, - UPROPS_2_EMOJI, - UPROPS_2_EMOJI_PRESENTATION, - UPROPS_2_EMOJI_MODIFIER, - UPROPS_2_EMOJI_MODIFIER_BASE + UPROPS_2_UNUSED_WAS_EXTENDED_PICTOGRAPHIC=26, // ICU 62..69 + UPROPS_2_UNUSED_WAS_EMOJI_COMPONENT, // ICU 60..69 + UPROPS_2_UNUSED_WAS_EMOJI, // ICU 57..69 + UPROPS_2_UNUSED_WAS_EMOJI_PRESENTATION, // ICU 57..69 + UPROPS_2_UNUSED_WAS_EMOJI_MODIFIER, // ICU 57..69 + UPROPS_2_UNUSED_WAS_EMOJI_MODIFIER_BASE // ICU 57..69 }; #define UPROPS_LB_MASK 0x03f00000 @@ -377,6 +378,7 @@ enum UPropertySource { UPROPS_SRC_INPC, UPROPS_SRC_INSC, UPROPS_SRC_VO, + UPROPS_SRC_EMOJI, /** One more than the highest UPropertySource (UPROPS_SRC_) constant. */ UPROPS_SRC_COUNT }; diff --git a/deps/icu-small/source/common/ures_cnv.cpp b/deps/icu-small/source/common/ures_cnv.cpp index 43515fda282972..1aa58e753ceeb4 100644 --- a/deps/icu-small/source/common/ures_cnv.cpp +++ b/deps/icu-small/source/common/ures_cnv.cpp @@ -27,8 +27,8 @@ #include "ustr_cnv.h" U_CAPI UResourceBundle * U_EXPORT2 -ures_openU(const UChar *myPath, - const char *localeID, +ures_openU(const UChar *myPath, + const char *localeID, UErrorCode *status) { char pathBuffer[1024]; diff --git a/deps/icu-small/source/common/uresbund.cpp b/deps/icu-small/source/common/uresbund.cpp index 73c4b44037e8aa..a9c6459418cacb 100644 --- a/deps/icu-small/source/common/uresbund.cpp +++ b/deps/icu-small/source/common/uresbund.cpp @@ -77,7 +77,7 @@ static UBool U_CALLCONV compareEntries(const UHashTok p1, const UHashTok p2) { /** - * Internal function, gets parts of locale name according + * Internal function, gets parts of locale name according * to the position of '_' character */ static UBool chopLocale(char *name) { @@ -116,44 +116,46 @@ static void entryIncrease(UResourceDataEntry *entry) { * Internal function. Tries to find a resource in given Resource * Bundle, as well as in its parents */ -static const ResourceData *getFallbackData(const UResourceBundle* resBundle, const char* * resTag, UResourceDataEntry* *realData, Resource *res, UErrorCode *status) { - UResourceDataEntry *resB = resBundle->fData; +static UResourceDataEntry *getFallbackData( + const UResourceBundle *resBundle, + const char **resTag, Resource *res, UErrorCode *status) { + UResourceDataEntry *dataEntry = resBundle->fData; int32_t indexR = -1; int32_t i = 0; *res = RES_BOGUS; - if(resB != NULL) { - if(resB->fBogus == U_ZERO_ERROR) { /* if this resource is real, */ - *res = res_getTableItemByKey(&(resB->fData), resB->fData.rootRes, &indexR, resTag); /* try to get data from there */ - i++; - } - if(resBundle->fHasFallback == TRUE) { - while(*res == RES_BOGUS && resB->fParent != NULL) { /* Otherwise, we'll look in parents */ - resB = resB->fParent; - if(resB->fBogus == U_ZERO_ERROR) { - i++; - *res = res_getTableItemByKey(&(resB->fData), resB->fData.rootRes, &indexR, resTag); - } + if(dataEntry == nullptr) { + *status = U_MISSING_RESOURCE_ERROR; + return nullptr; + } + if(dataEntry->fBogus == U_ZERO_ERROR) { /* if this resource is real, */ + *res = res_getTableItemByKey(&(dataEntry->fData), dataEntry->fData.rootRes, &indexR, resTag); /* try to get data from there */ + i++; + } + if(resBundle->fHasFallback) { + // Otherwise, we'll look in parents. + while(*res == RES_BOGUS && dataEntry->fParent != nullptr) { + dataEntry = dataEntry->fParent; + if(dataEntry->fBogus == U_ZERO_ERROR) { + i++; + *res = res_getTableItemByKey(&(dataEntry->fData), dataEntry->fData.rootRes, &indexR, resTag); } } + } - if(*res != RES_BOGUS) { /* If the resource is found in parents, we need to adjust the error */ - if(i>1) { - if(uprv_strcmp(resB->fName, uloc_getDefault())==0 || uprv_strcmp(resB->fName, kRootLocaleName)==0) { - *status = U_USING_DEFAULT_WARNING; - } else { - *status = U_USING_FALLBACK_WARNING; - } - } - *realData = resB; - return (&(resB->fData)); - } else { /* If resource is not found, we need to give an error */ - *status = U_MISSING_RESOURCE_ERROR; - return NULL; + if(*res == RES_BOGUS) { + // If the resource is not found, we need to give an error. + *status = U_MISSING_RESOURCE_ERROR; + return nullptr; + } + // If the resource is found in parents, we need to adjust the error. + if(i>1) { + if(uprv_strcmp(dataEntry->fName, uloc_getDefault())==0 || uprv_strcmp(dataEntry->fName, kRootLocaleName)==0) { + *status = U_USING_DEFAULT_WARNING; + } else { + *status = U_USING_FALLBACK_WARNING; } - } else { - *status = U_MISSING_RESOURCE_ERROR; - return NULL; } + return dataEntry; } static void @@ -236,7 +238,7 @@ U_CAPI UBool U_EXPORT2 ures_dumpCacheContents(void) { int32_t pos = UHASH_FIRST; const UHashElement *e; UResourceDataEntry *resB; - + Mutex lock(&resbMutex); if (cache == NULL) { fprintf(stderr,"%s:%d: RB Cache is NULL.\n", __FILE__, __LINE__); @@ -253,9 +255,9 @@ U_CAPI UBool U_EXPORT2 ures_dumpCacheContents(void) { resB->fPath?resB->fPath:"NULL", (void*)resB->fPool, (void*)resB->fAlias, - (void*)resB->fParent); + (void*)resB->fParent); } - + fprintf(stderr,"%s:%d: RB Cache still contains %d items.\n", __FILE__, __LINE__, uhash_count(cache)); return cacheNotEmpty; } @@ -279,7 +281,7 @@ static void U_CALLCONV createCache(UErrorCode &status) { cache = uhash_open(hashEntry, compareEntries, NULL, &status); ucln_common_registerCleanup(UCLN_COMMON_URES, ures_cleanup); } - + static void initCache(UErrorCode *status) { umtx_initOnce(gCacheInitOnce, &createCache, *status); } @@ -461,11 +463,10 @@ getPoolEntry(const char *path, UErrorCode *status) { /* INTERNAL: */ /* CAUTION: resbMutex must be locked when calling this function! */ static UResourceDataEntry * -findFirstExisting(const char* path, char* name, +findFirstExisting(const char* path, char* name, const char* defaultLocale, UBool *isRoot, UBool *hasChopped, UBool *isDefault, UErrorCode* status) { UResourceDataEntry *r = NULL; UBool hasRealData = FALSE; - const char *defaultLoc = uloc_getDefault(); *hasChopped = TRUE; /* we're starting with a fresh name */ while(*hasChopped && !hasRealData) { @@ -474,7 +475,7 @@ findFirstExisting(const char* path, char* name, if (U_FAILURE(*status)) { return NULL; } - *isDefault = (UBool)(uprv_strncmp(name, defaultLoc, uprv_strlen(name)) == 0); + *isDefault = (UBool)(uprv_strncmp(name, defaultLocale, uprv_strlen(name)) == 0); hasRealData = (UBool)(r->fBogus == U_ZERO_ERROR); if(!hasRealData) { /* this entry is not real. We will discard it. */ @@ -668,11 +669,14 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, usrDataPath[sizeof(usrDataPath) - 1] = 0; } } + + // Note: We need to query the default locale *before* locking resbMutex. + const char *defaultLocale = uloc_getDefault(); Mutex lock(&resbMutex); // Lock resbMutex until the end of this function. /* We're going to skip all the locales that do not have any data */ - r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus); + r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); // If we failed due to out-of-memory, report the failure and exit early. if (intStatus == U_MEMORY_ALLOCATION_ERROR) { @@ -712,8 +716,8 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, /* if that is the case, we need to chain in the default locale */ if(r==NULL && openType == URES_OPEN_LOCALE_DEFAULT_ROOT && !isDefault && !isRoot) { /* insert default locale */ - uprv_strcpy(name, uloc_getDefault()); - r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus); + uprv_strcpy(name, defaultLocale); + r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); // If we failed due to out-of-memory, report the failure and exit early. if (intStatus == U_MEMORY_ALLOCATION_ERROR) { *status = intStatus; @@ -737,7 +741,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, /* present */ if(r == NULL) { uprv_strcpy(name, kRootLocaleName); - r = findFirstExisting(path, name, &isRoot, &hasChopped, &isDefault, &intStatus); + r = findFirstExisting(path, name, defaultLocale, &isRoot, &hasChopped, &isDefault, &intStatus); // If we failed due to out-of-memory, report the failure and exit early. if (intStatus == U_MEMORY_ALLOCATION_ERROR) { *status = intStatus; @@ -770,7 +774,7 @@ static UResourceDataEntry *entryOpen(const char* path, const char* localeID, finish: if(U_SUCCESS(*status)) { if(intStatus != U_ZERO_ERROR) { - *status = intStatus; + *status = intStatus; } return r; } else { @@ -791,7 +795,17 @@ entryOpenDirect(const char* path, const char* localeID, UErrorCode* status) { return NULL; } + // Note: We need to query the default locale *before* locking resbMutex. + // If the localeID is NULL, then we want to use the default locale. + if (localeID == NULL) { + localeID = uloc_getDefault(); + } else if (*localeID == 0) { + // If the localeID is "", then we want to use the root locale. + localeID = kRootLocaleName; + } + Mutex lock(&resbMutex); + // findFirstExisting() without fallbacks. UResourceDataEntry *r = init_entry(localeID, path, status); if(U_SUCCESS(*status)) { @@ -866,7 +880,7 @@ static void entryCloseInt(UResourceDataEntry *resB) { } } -/** +/** * API: closes a resource bundle and cleans up. */ @@ -880,7 +894,7 @@ U_CFUNC void ures_setResPath(UResourceBundle *resB, const char* toAdd) { if(resB->fResPath == NULL) { resB->fResPath = resB->fResBuf; *(resB->fResPath) = 0; - } + } resB->fResPathLen = uprv_strlen(toAdd); if(RES_BUFSIZE <= resB->fResPathLen+1) { if(resB->fResPath == resB->fResBuf) { @@ -898,7 +912,7 @@ static void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t resB->fResPath = resB->fResBuf; *(resB->fResPath) = 0; resB->fResPathLen = 0; - } + } resB->fResPathLen += lenToAdd; if(RES_BUFSIZE <= resB->fResPathLen+1) { if(resB->fResPath == resB->fResBuf) { @@ -960,238 +974,265 @@ ures_close(UResourceBundle* resB) ures_closeBundle(resB, TRUE); } -static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r, - const char *key, int32_t idx, UResourceDataEntry *realData, - const UResourceBundle *parent, int32_t noAlias, - UResourceBundle *resB, UErrorCode *status) -{ - if(status == NULL || U_FAILURE(*status)) { - return resB; - } - if (parent == NULL) { +namespace { + +UResourceBundle *init_resb_result( + UResourceDataEntry *dataEntry, Resource r, const char *key, int32_t idx, + UResourceDataEntry *validLocaleDataEntry, const char *containerResPath, + int32_t recursionDepth, + UResourceBundle *resB, UErrorCode *status); + +// TODO: Try to refactor further, so that we output a dataEntry + Resource + (optionally) resPath, +// rather than a UResourceBundle. +// May need to entryIncrease() the resulting dataEntry. +UResourceBundle *getAliasTargetAsResourceBundle( + const ResourceData &resData, Resource r, const char *key, int32_t idx, + UResourceDataEntry *validLocaleDataEntry, const char *containerResPath, + int32_t recursionDepth, + UResourceBundle *resB, UErrorCode *status) { + // TODO: When an error occurs: Should we return nullptr vs. resB? + if (U_FAILURE(*status)) { return resB; } + U_ASSERT(RES_GET_TYPE(r) == URES_ALIAS); + int32_t len = 0; + const UChar *alias = res_getAlias(&resData, r, &len); + if(len <= 0) { + // bad alias *status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; + return resB; } - if(RES_GET_TYPE(r) == URES_ALIAS) { /* This is an alias, need to exchange with real data */ - if(noAlias < URES_MAX_ALIAS_LEVEL) { - int32_t len = 0; - const UChar *alias = res_getAlias(rdata, r, &len); - if(len > 0) { - /* we have an alias, now let's cut it up */ - char stackAlias[200]; - char *chAlias = NULL, *path = NULL, *locale = NULL, *keyPath = NULL; - int32_t capacity; - - /* - * Allocate enough space for both the char * version - * of the alias and parent->fResPath. - * - * We do this so that res_findResource() can modify the path, - * which allows us to remove redundant _res_findResource() variants - * in uresdata.c. - * res_findResource() now NUL-terminates each segment so that table keys - * can always be compared with strcmp() instead of strncmp(). - * Saves code there and simplifies testing and code coverage. - * - * markus 2003oct17 - */ - ++len; /* count the terminating NUL */ - if(parent->fResPath != NULL) { - capacity = (int32_t)uprv_strlen(parent->fResPath) + 1; - } else { - capacity = 0; - } - if(capacity < len) { - capacity = len; + + // Copy the UTF-16 alias string into an invariant-character string. + // + // We do this so that res_findResource() can modify the path, + // which allows us to remove redundant _res_findResource() variants + // in uresdata.c. + // res_findResource() now NUL-terminates each segment so that table keys + // can always be compared with strcmp() instead of strncmp(). + // Saves code there and simplifies testing and code coverage. + // + // markus 2003oct17 + CharString chAlias; + chAlias.appendInvariantChars(alias, len, *status); + if (U_FAILURE(*status)) { + return nullptr; + } + + // We have an alias, now let's cut it up. + const char *path = nullptr, *locale = nullptr, *keyPath = nullptr; + if(chAlias[0] == RES_PATH_SEPARATOR) { + // There is a path included. + char *chAliasData = chAlias.data(); + char *sep = chAliasData + 1; + path = sep; + sep = uprv_strchr(sep, RES_PATH_SEPARATOR); + if(sep != nullptr) { + *sep++ = 0; + } + if(uprv_strcmp(path, "LOCALE") == 0) { + // This is an XPath alias, starting with "/LOCALE/". + // It contains the path to a resource which should be looked up + // starting in the valid locale. + // TODO: Can/should we forbid a /LOCALE alias without key path? + // It seems weird to alias to the same path, just starting from the valid locale. + // That will often yield an infinite loop. + keyPath = sep; + // Read from the valid locale which we already have. + path = locale = nullptr; + } else { + if(uprv_strcmp(path, "ICUDATA") == 0) { /* want ICU data */ + path = nullptr; + } + if (sep == nullptr) { + // TODO: This ends up using the root bundle. Can/should we forbid this? + locale = ""; + } else { + locale = sep; + sep = uprv_strchr(sep, RES_PATH_SEPARATOR); + if(sep != nullptr) { + *sep++ = 0; } - if(capacity <= (int32_t)sizeof(stackAlias)) { - capacity = (int32_t)sizeof(stackAlias); - chAlias = stackAlias; - } else { - chAlias = (char *)uprv_malloc(capacity); - /* test for NULL */ - if(chAlias == NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } + keyPath = sep; + } + } + } else { + // No path, start with a locale. + char *sep = chAlias.data(); + locale = sep; + sep = uprv_strchr(sep, RES_PATH_SEPARATOR); + if(sep != nullptr) { + *sep++ = 0; + } + keyPath = sep; + path = validLocaleDataEntry->fPath; + } + + // Got almost everything, let's try to open. + // First, open the bundle with real data. + LocalUResourceBundlePointer mainRes; + UResourceDataEntry *dataEntry; + if (locale == nullptr) { + // alias = /LOCALE/keyPath + // Read from the valid locale which we already have. + dataEntry = validLocaleDataEntry; + } else { + UErrorCode intStatus = U_ZERO_ERROR; + // TODO: Shouldn't we use ures_open() for locale data bundles (!noFallback)? + mainRes.adoptInstead(ures_openDirect(path, locale, &intStatus)); + if(U_FAILURE(intStatus)) { + // We failed to open the resource bundle we're aliasing to. + *status = intStatus; + return resB; + } + dataEntry = mainRes->fData; + } + + const char* temp = nullptr; + if(keyPath == nullptr) { + // No key path. This means that we are going to to use the corresponding resource from + // another bundle. + // TODO: Why the special code path? + // Why not put together a key path from containerResPath + key or idx, + // as a comment below suggests, and go into the regular code branch? + // First, we are going to get a corresponding container + // resource to the one we are searching. + r = dataEntry->fData.rootRes; + if(containerResPath) { + chAlias.clear().append(containerResPath, *status); + if (U_FAILURE(*status)) { + return nullptr; + } + char *aKey = chAlias.data(); + // TODO: should res_findResource() return a new dataEntry, too? + r = res_findResource(&dataEntry->fData, r, &aKey, &temp); + } + if(key) { + // We need to make keyPath from the containerResPath and + // current key, if there is a key associated. + chAlias.clear().append(key, *status); + if (U_FAILURE(*status)) { + return nullptr; + } + char *aKey = chAlias.data(); + r = res_findResource(&dataEntry->fData, r, &aKey, &temp); + } else if(idx != -1) { + // If there is no key, but there is an index, try to get by the index. + // Here we have either a table or an array, so get the element. + int32_t type = RES_GET_TYPE(r); + if(URES_IS_TABLE(type)) { + const char *aKey; + r = res_getTableItemByIndex(&dataEntry->fData, r, idx, &aKey); + } else { /* array */ + r = res_getArrayItem(&dataEntry->fData, r, idx); + } + } + if(r != RES_BOGUS) { + resB = init_resb_result( + dataEntry, r, temp, -1, validLocaleDataEntry, nullptr, recursionDepth+1, + resB, status); + } else { + *status = U_MISSING_RESOURCE_ERROR; + } + } else { + // This one is a bit trickier. + // We start finding keys, but after we resolve one alias, the path might continue. + // Consider: + // aliastest:alias { "testtypes/anotheralias/Sequence" } + // anotheralias:alias { "/ICUDATA/sh/CollationElements" } + // aliastest resource should finally have the sequence, not collation elements. + CharString pathBuf(keyPath, *status); + if (U_FAILURE(*status)) { + return nullptr; + } + char *myPath = pathBuf.data(); + containerResPath = nullptr; + // Now we have fallback following here. + for(;;) { + r = dataEntry->fData.rootRes; + // TODO: Move containerResPath = nullptr to here, + // consistent with restarting from the rootRes of another bundle?! + + // This loop handles 'found' resources over several levels. + while(*myPath && U_SUCCESS(*status)) { + r = res_findResource(&(dataEntry->fData), r, &myPath, &temp); + if(r == RES_BOGUS) { + // No resource found, we don't really want to look anymore on this level. + break; } - u_UCharsToChars(alias, chAlias, len); - - if(*chAlias == RES_PATH_SEPARATOR) { - /* there is a path included */ - locale = uprv_strchr(chAlias+1, RES_PATH_SEPARATOR); - if(locale == NULL) { - locale = uprv_strchr(chAlias, 0); /* avoid locale == NULL to make code below work */ - } else { - *locale = 0; - locale++; - } - path = chAlias+1; - if(uprv_strcmp(path, "LOCALE") == 0) { - /* this is an XPath alias, starting with "/LOCALE/" */ - /* it contains the path to a resource which should be looked up */ - /* starting in the requested locale */ - keyPath = locale; - locale = parent->fTopLevelData->fName; /* this is the requested locale's name */ - path = realData->fPath; /* we will be looking in the same package */ - } else { - if(uprv_strcmp(path, "ICUDATA") == 0) { /* want ICU data */ - path = NULL; - } - keyPath = uprv_strchr(locale, RES_PATH_SEPARATOR); - if(keyPath) { - *keyPath = 0; - keyPath++; - } - } - } else { - /* no path, start with a locale */ - locale = chAlias; - keyPath = uprv_strchr(locale, RES_PATH_SEPARATOR); - if(keyPath) { - *keyPath = 0; - keyPath++; - } - path = realData->fPath; + // Found a resource, but it might be an indirection. + resB = init_resb_result( + dataEntry, r, temp, -1, + validLocaleDataEntry, containerResPath, recursionDepth+1, + resB, status); + if (U_FAILURE(*status)) { + break; } - - - { - /* got almost everything, let's try to open */ - /* first, open the bundle with real data */ - UResourceBundle *result = resB; - const char* temp = NULL; - UErrorCode intStatus = U_ZERO_ERROR; - UResourceBundle *mainRes = ures_openDirect(path, locale, &intStatus); - if(U_SUCCESS(intStatus)) { - if(keyPath == NULL) { - /* no key path. This means that we are going to - * to use the corresponding resource from - * another bundle - */ - /* first, we are going to get a corresponding parent - * resource to the one we are searching. - */ - char *aKey = parent->fResPath; - if(aKey) { - uprv_strcpy(chAlias, aKey); /* allocated large enough above */ - aKey = chAlias; - r = res_findResource(&(mainRes->fResData), mainRes->fRes, &aKey, &temp); - } else { - r = mainRes->fRes; - } - if(key) { - /* we need to make keyPath from parent's fResPath and - * current key, if there is a key associated - */ - len = (int32_t)(uprv_strlen(key) + 1); - if(len > capacity) { - capacity = len; - if(chAlias == stackAlias) { - chAlias = (char *)uprv_malloc(capacity); - } else { - chAlias = (char *)uprv_realloc(chAlias, capacity); - } - if(chAlias == NULL) { - ures_close(mainRes); - *status = U_MEMORY_ALLOCATION_ERROR; - return NULL; - } - } - uprv_memcpy(chAlias, key, len); - aKey = chAlias; - r = res_findResource(&(mainRes->fResData), r, &aKey, &temp); - } else if(idx != -1) { - /* if there is no key, but there is an index, try to get by the index */ - /* here we have either a table or an array, so get the element */ - int32_t type = RES_GET_TYPE(r); - if(URES_IS_TABLE(type)) { - r = res_getTableItemByIndex(&(mainRes->fResData), r, idx, (const char **)&aKey); - } else { /* array */ - r = res_getArrayItem(&(mainRes->fResData), r, idx); - } - } - if(r != RES_BOGUS) { - result = init_resb_result(&(mainRes->fResData), r, temp, -1, mainRes->fData, mainRes, noAlias+1, resB, status); - } else { - *status = U_MISSING_RESOURCE_ERROR; - result = resB; - } - } else { - /* this one is a bit trickier. - * we start finding keys, but after we resolve one alias, the path might continue. - * Consider: - * aliastest:alias { "testtypes/anotheralias/Sequence" } - * anotheralias:alias { "/ICUDATA/sh/CollationElements" } - * aliastest resource should finally have the sequence, not collation elements. - */ - UResourceDataEntry *dataEntry = mainRes->fData; - char stackPath[URES_MAX_BUFFER_SIZE]; - char *pathBuf = stackPath, *myPath = pathBuf; - if(uprv_strlen(keyPath) >= UPRV_LENGTHOF(stackPath)) { - pathBuf = (char *)uprv_malloc((uprv_strlen(keyPath)+1)*sizeof(char)); - if(pathBuf == NULL) { - *status = U_MEMORY_ALLOCATION_ERROR; - ures_close(mainRes); - return NULL; - } - } - uprv_strcpy(pathBuf, keyPath); - result = mainRes; - /* now we have fallback following here */ - do { - r = dataEntry->fData.rootRes; - /* this loop handles 'found' resources over several levels */ - while(*myPath && U_SUCCESS(*status)) { - r = res_findResource(&(dataEntry->fData), r, &myPath, &temp); - if(r != RES_BOGUS) { /* found a resource, but it might be an indirection */ - resB = init_resb_result(&(dataEntry->fData), r, temp, -1, dataEntry, result, noAlias+1, resB, status); - result = resB; - if(result) { - r = result->fRes; /* switch to a new resource, possibly a new tree */ - dataEntry = result->fData; - } - } else { /* no resource found, we don't really want to look anymore on this level */ - break; - } - } - dataEntry = dataEntry->fParent; - uprv_strcpy(pathBuf, keyPath); - myPath = pathBuf; - } while(r == RES_BOGUS && dataEntry != NULL); - if(r == RES_BOGUS) { - *status = U_MISSING_RESOURCE_ERROR; - result = resB; - } - if(pathBuf != stackPath) { - uprv_free(pathBuf); - } - } - } else { /* we failed to open the resource we're aliasing to */ - *status = intStatus; + if (temp == nullptr || uprv_strcmp(keyPath, temp) != 0) { + // The call to init_resb_result() above will set resB->fKeyPath to be + // the same as resB->fKey, + // throwing away any additional path elements if we had them -- + // if the key path wasn't just a single resource ID, clear out + // the bundle's key path and re-set it to be equal to keyPath. + ures_freeResPath(resB); + ures_appendResPath(resB, keyPath, (int32_t)uprv_strlen(keyPath), status); + if(resB->fResPath[resB->fResPathLen-1] != RES_PATH_SEPARATOR) { + ures_appendResPath(resB, RES_PATH_SEPARATOR_S, 1, status); } - if(chAlias != stackAlias) { - uprv_free(chAlias); - } - if(mainRes != result) { - ures_close(mainRes); + if (U_FAILURE(*status)) { + break; } - ResourceTracer(resB).maybeTrace("getalias"); - return result; } - } else { - /* bad alias, should be an error */ - *status = U_ILLEGAL_ARGUMENT_ERROR; - return resB; + r = resB->fRes; /* switch to a new resource, possibly a new tree */ + dataEntry = resB->fData; + containerResPath = resB->fResPath; } - } else { + if (U_FAILURE(*status) || r != RES_BOGUS) { + break; + } + // Fall back to the parent bundle, if there is one. + dataEntry = dataEntry->fParent; + if (dataEntry == nullptr) { + *status = U_MISSING_RESOURCE_ERROR; + break; + } + // Copy the same keyPath again. + myPath = pathBuf.data(); + uprv_strcpy(myPath, keyPath); + } + } + if(mainRes.getAlias() == resB) { + mainRes.orphan(); + } + ResourceTracer(resB).maybeTrace("getalias"); + return resB; +} + +// Recursive function, should be called only by itself, by its simpler wrapper, +// or by getAliasTargetAsResourceBundle(). +UResourceBundle *init_resb_result( + UResourceDataEntry *dataEntry, Resource r, const char *key, int32_t idx, + UResourceDataEntry *validLocaleDataEntry, const char *containerResPath, + int32_t recursionDepth, + UResourceBundle *resB, UErrorCode *status) { + // TODO: When an error occurs: Should we return nullptr vs. resB? + if(status == NULL || U_FAILURE(*status)) { + return resB; + } + if (validLocaleDataEntry == nullptr) { + *status = U_ILLEGAL_ARGUMENT_ERROR; + return NULL; + } + if(RES_GET_TYPE(r) == URES_ALIAS) { + // This is an alias, need to exchange with real data. + if(recursionDepth >= URES_MAX_ALIAS_LEVEL) { *status = U_TOO_MANY_ALIASES_ERROR; return resB; } + return getAliasTargetAsResourceBundle( + dataEntry->fData, r, key, idx, + validLocaleDataEntry, containerResPath, recursionDepth, resB, status); } if(resB == NULL) { resB = (UResourceBundle *)uprv_malloc(sizeof(UResourceBundle)); - /* test for NULL */ if (resB == NULL) { *status = U_MEMORY_ALLOCATION_ERROR; return NULL; @@ -1206,9 +1247,9 @@ static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r, if(resB->fVersion != NULL) { uprv_free(resB->fVersion); } - /* + /* weiv: if stack object was passed in, it doesn't really need to be reinited, - since the purpose of initing is to remove stack junk. However, at this point + since the purpose of initing is to remove stack junk. However, at this point we would not do anything to an allocated object, so stack object should be treated the same */ @@ -1217,20 +1258,20 @@ static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r, ures_initStackObject(resB); } */ - if(parent != resB) { + if(containerResPath != resB->fResPath) { ures_freeResPath(resB); } } - resB->fData = realData; + resB->fData = dataEntry; entryIncrease(resB->fData); resB->fHasFallback = FALSE; resB->fIsTopLevel = FALSE; resB->fIndex = -1; - resB->fKey = key; - /*resB->fParentRes = parent;*/ - resB->fTopLevelData = parent->fTopLevelData; - if(parent->fResPath && parent != resB) { - ures_appendResPath(resB, parent->fResPath, parent->fResPathLen, status); + resB->fKey = key; + resB->fValidLocaleDataEntry = validLocaleDataEntry; + if(containerResPath != resB->fResPath) { + ures_appendResPath( + resB, containerResPath, static_cast(uprv_strlen(containerResPath)), status); } if(key != NULL) { ures_appendResPath(resB, key, (int32_t)uprv_strlen(key), status); @@ -1253,13 +1294,23 @@ static UResourceBundle *init_resb_result(const ResourceData *rdata, Resource r, resB->fVersion = NULL; resB->fRes = r; - /*resB->fParent = parent->fRes;*/ - uprv_memmove(&resB->fResData, rdata, sizeof(ResourceData)); - resB->fSize = res_countArrayItems(&(resB->fResData), resB->fRes); + resB->fSize = res_countArrayItems(&resB->getResData(), resB->fRes); ResourceTracer(resB).trace("get"); return resB; } +UResourceBundle *init_resb_result( + UResourceDataEntry *dataEntry, Resource r, const char *key, int32_t idx, + // validLocaleDataEntry + containerResPath + const UResourceBundle *container, + UResourceBundle *resB, UErrorCode *status) { + return init_resb_result( + dataEntry, r, key, idx, + container->fValidLocaleDataEntry, container->fResPath, 0, resB, status); +} + +} // namespace + UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *original, UErrorCode *status) { UBool isStackObject; if(U_FAILURE(*status) || r == original) { @@ -1305,7 +1356,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getString(const UResourceBundle* resB, int32_ *status = U_ILLEGAL_ARGUMENT_ERROR; return NULL; } - s = res_getString({resB}, &(resB->fResData), resB->fRes, len); + s = res_getString({resB}, &resB->getResData(), resB->fRes, len); if (s == NULL) { *status = U_RESOURCE_TYPE_MISMATCH; } @@ -1384,7 +1435,7 @@ ures_getUTF8String(const UResourceBundle *resB, return ures_toUTF8String(s16, length16, dest, pLength, forceCopy, status); } -U_CAPI const uint8_t* U_EXPORT2 ures_getBinary(const UResourceBundle* resB, int32_t* len, +U_CAPI const uint8_t* U_EXPORT2 ures_getBinary(const UResourceBundle* resB, int32_t* len, UErrorCode* status) { const uint8_t *p; if (status==NULL || U_FAILURE(*status)) { @@ -1394,14 +1445,14 @@ U_CAPI const uint8_t* U_EXPORT2 ures_getBinary(const UResourceBundle* resB, int3 *status = U_ILLEGAL_ARGUMENT_ERROR; return NULL; } - p = res_getBinary({resB}, &(resB->fResData), resB->fRes, len); + p = res_getBinary({resB}, &resB->getResData(), resB->fRes, len); if (p == NULL) { *status = U_RESOURCE_TYPE_MISMATCH; } return p; } -U_CAPI const int32_t* U_EXPORT2 ures_getIntVector(const UResourceBundle* resB, int32_t* len, +U_CAPI const int32_t* U_EXPORT2 ures_getIntVector(const UResourceBundle* resB, int32_t* len, UErrorCode* status) { const int32_t *p; if (status==NULL || U_FAILURE(*status)) { @@ -1411,14 +1462,14 @@ U_CAPI const int32_t* U_EXPORT2 ures_getIntVector(const UResourceBundle* resB, i *status = U_ILLEGAL_ARGUMENT_ERROR; return NULL; } - p = res_getIntVector({resB}, &(resB->fResData), resB->fRes, len); + p = res_getIntVector({resB}, &resB->getResData(), resB->fRes, len); if (p == NULL) { *status = U_RESOURCE_TYPE_MISMATCH; } return p; } -/* this function returns a signed integer */ +/* this function returns a signed integer */ /* it performs sign extension */ U_CAPI int32_t U_EXPORT2 ures_getInt(const UResourceBundle* resB, UErrorCode *status) { if (status==NULL || U_FAILURE(*status)) { @@ -1477,7 +1528,7 @@ U_CAPI int32_t U_EXPORT2 ures_getSize(const UResourceBundle *resB) { if(resB == NULL) { return 0; } - + return resB->fSize; } @@ -1489,7 +1540,7 @@ static const UChar* ures_getStringWithAlias(const UResourceBundle *resB, Resourc ures_close(tempRes); return result; } else { - return res_getString({resB, sIndex}, &(resB->fResData), r, len); + return res_getString({resB, sIndex}, &resB->getResData(), r, len); } } @@ -1509,7 +1560,7 @@ U_CAPI UBool U_EXPORT2 ures_hasNext(const UResourceBundle *resB) { U_CAPI const UChar* U_EXPORT2 ures_getNextString(UResourceBundle *resB, int32_t* len, const char ** key, UErrorCode *status) { Resource r = RES_BOGUS; - + if (status==NULL || U_FAILURE(*status)) { return NULL; } @@ -1517,7 +1568,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getNextString(UResourceBundle *resB, int32_t* *status = U_ILLEGAL_ARGUMENT_ERROR; return NULL; } - + if(resB->fIndex == resB->fSize-1) { *status = U_INDEX_OUTOFBOUNDS_ERROR; } else { @@ -1525,18 +1576,18 @@ U_CAPI const UChar* U_EXPORT2 ures_getNextString(UResourceBundle *resB, int32_t* switch(RES_GET_TYPE(resB->fRes)) { case URES_STRING: case URES_STRING_V2: - return res_getString({resB}, &(resB->fResData), resB->fRes, len); + return res_getString({resB}, &resB->getResData(), resB->fRes, len); case URES_TABLE: case URES_TABLE16: case URES_TABLE32: - r = res_getTableItemByIndex(&(resB->fResData), resB->fRes, resB->fIndex, key); + r = res_getTableItemByIndex(&resB->getResData(), resB->fRes, resB->fIndex, key); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } return ures_getStringWithAlias(resB, r, resB->fIndex, len, status); case URES_ARRAY: case URES_ARRAY16: - r = res_getArrayItem(&(resB->fResData), resB->fRes, resB->fIndex); + r = res_getArrayItem(&resB->getResData(), resB->fRes, resB->fIndex); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } @@ -1585,18 +1636,18 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getNextResource(UResourceBundle *resB, UR case URES_TABLE: case URES_TABLE16: case URES_TABLE32: - r = res_getTableItemByIndex(&(resB->fResData), resB->fRes, resB->fIndex, &key); + r = res_getTableItemByIndex(&resB->getResData(), resB->fRes, resB->fIndex, &key); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } - return init_resb_result(&(resB->fResData), r, key, resB->fIndex, resB->fData, resB, 0, fillIn, status); + return init_resb_result(resB->fData, r, key, resB->fIndex, resB, fillIn, status); case URES_ARRAY: case URES_ARRAY16: - r = res_getArrayItem(&(resB->fResData), resB->fRes, resB->fIndex); + r = res_getArrayItem(&resB->getResData(), resB->fRes, resB->fIndex); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } - return init_resb_result(&(resB->fResData), r, key, resB->fIndex, resB->fData, resB, 0, fillIn, status); + return init_resb_result(resB->fData, r, key, resB->fIndex, resB, fillIn, status); default: /*return NULL;*/ return fillIn; @@ -1631,18 +1682,18 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByIndex(const UResourceBundle *resB, i case URES_TABLE: case URES_TABLE16: case URES_TABLE32: - r = res_getTableItemByIndex(&(resB->fResData), resB->fRes, indexR, &key); + r = res_getTableItemByIndex(&resB->getResData(), resB->fRes, indexR, &key); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } - return init_resb_result(&(resB->fResData), r, key, indexR, resB->fData, resB, 0, fillIn, status); + return init_resb_result(resB->fData, r, key, indexR, resB, fillIn, status); case URES_ARRAY: case URES_ARRAY16: - r = res_getArrayItem(&(resB->fResData), resB->fRes, indexR); + r = res_getArrayItem(&resB->getResData(), resB->fRes, indexR); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } - return init_resb_result(&(resB->fResData), r, key, indexR, resB->fData, resB, 0, fillIn, status); + return init_resb_result(resB->fData, r, key, indexR, resB, fillIn, status); default: /*return NULL;*/ return fillIn; @@ -1670,18 +1721,18 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByIndex(const UResourceBundle *resB, switch(RES_GET_TYPE(resB->fRes)) { case URES_STRING: case URES_STRING_V2: - return res_getString({resB}, &(resB->fResData), resB->fRes, len); + return res_getString({resB}, &resB->getResData(), resB->fRes, len); case URES_TABLE: case URES_TABLE16: case URES_TABLE32: - r = res_getTableItemByIndex(&(resB->fResData), resB->fRes, indexS, &key); + r = res_getTableItemByIndex(&resB->getResData(), resB->fRes, indexS, &key); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } return ures_getStringWithAlias(resB, r, indexS, len, status); case URES_ARRAY: case URES_ARRAY16: - r = res_getArrayItem(&(resB->fResData), resB->fRes, indexS); + r = res_getArrayItem(&resB->getResData(), resB->fRes, indexS); if(r == RES_BOGUS && resB->fHasFallback) { /* TODO: do the fallback */ } @@ -1720,9 +1771,9 @@ ures_getUTF8StringByIndex(const UResourceBundle *resB, }*/ U_CAPI UResourceBundle* U_EXPORT2 -ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status) +ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status) { - UResourceBundle *first = NULL; + UResourceBundle *first = NULL; UResourceBundle *result = fillIn; char *packageName = NULL; char *pathToResource = NULL, *save = NULL; @@ -1775,7 +1826,7 @@ ures_findResource(const char* path, UResourceBundle *fillIn, UErrorCode *status) } U_CAPI UResourceBundle* U_EXPORT2 -ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *fillIn, UErrorCode *status) +ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *fillIn, UErrorCode *status) { Resource res = RES_BOGUS; UResourceBundle *result = fillIn; @@ -1789,9 +1840,9 @@ ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *f /* this loop is here because aliasing is resolved on this level, not on res level */ /* so, when we encounter an alias, it is not an aggregate resource, so we return */ do { - res = res_findResource(&(resB->fResData), resB->fRes, &path, &key); + res = res_findResource(&resB->getResData(), resB->fRes, &path, &key); if(res != RES_BOGUS) { - result = init_resb_result(&(resB->fResData), res, key, -1, resB->fData, resB, 0, fillIn, status); + result = init_resb_result(resB->fData, res, key, -1, resB, fillIn, status); resB = result; } else { *status = U_MISSING_RESOURCE_ERROR; @@ -1801,9 +1852,9 @@ ures_findSubResource(const UResourceBundle *resB, char* path, UResourceBundle *f return result; } -U_CAPI const UChar* U_EXPORT2 -ures_getStringByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, +U_CAPI const UChar* U_EXPORT2 +ures_getStringByKeyWithFallback(const UResourceBundle *resB, + const char* inKey, int32_t* len, UErrorCode *status) { @@ -1830,7 +1881,7 @@ ures_getStringByKeyWithFallback(const UResourceBundle *resB, /* Like res_getTableItemByKey but accepts full paths like "NumberElements/latn/patternsShort". -*/ +*/ static Resource getTableItemByKeyPath(const ResourceData *pResData, Resource table, const char *key) { Resource resource = table; /* The current resource */ icu::CharString path; @@ -1851,7 +1902,7 @@ static Resource getTableItemByKeyPath(const ResourceData *pResData, Resource tab const char *pathP = pathPart; resource = res_getTableItemByKey(pResData, resource, &t, &pathP); type = (UResType)RES_GET_TYPE(resource); - pathPart = nextPathPart; + pathPart = nextPathPart; } if (*pathPart) { return RES_BOGUS; @@ -1859,13 +1910,85 @@ static Resource getTableItemByKeyPath(const ResourceData *pResData, Resource tab return resource; } +static void createPath(const char* origResPath, + int32_t origResPathLen, + const char* resPath, + int32_t resPathLen, + const char* inKey, + CharString& path, + UErrorCode* status) { + // This is a utility function used by ures_getByKeyWithFallback() below. This function builds a path from + // resPath and inKey, returning the result in `path`. Originally, this function just cleared `path` and + // appended resPath and inKey to it, but that caused problems for horizontal inheritance. + // + // In normal cases, resPath is the same as origResPath, but if ures_getByKeyWithFallback() has followed an + // alias, resPath may be different from origResPath. Not only may the existing path elements be different, + // but resPath may also have MORE path elements than origResPath did. If it does, those additional path + // elements SUPERSEDE the corresponding elements of inKey. So this code counts the number of elements in + // resPath and origResPath and, for each path element in resPath that doesn't have a counterpart in origResPath, + // deletes a path element from the beginning of inKey. The remainder of inKey is then appended to + // resPath to form the result. (We're not using uprv_strchr() here because resPath and origResPath may + // not be zero-terminated.) + path.clear(); + const char* key = inKey; + if (resPathLen > 0) { + path.append(resPath, resPathLen, *status); + if (U_SUCCESS(*status)) { + const char* resPathLimit = resPath + resPathLen; + const char* origResPathLimit = origResPath + origResPathLen; + const char* resPathPtr = resPath; + const char* origResPathPtr = origResPath; + + // Remove from the beginning of resPath the number of segments that are contained in origResPath. + // If origResPath has MORE segments than resPath, this will leave resPath as the empty string. + while (origResPathPtr < origResPathLimit && resPathPtr < resPathLimit) { + while (origResPathPtr < origResPathLimit && *origResPathPtr != RES_PATH_SEPARATOR) { + ++origResPathPtr; + } + if (origResPathPtr < origResPathLimit && *origResPathPtr == RES_PATH_SEPARATOR) { + ++origResPathPtr; + } + while (resPathPtr < resPathLimit && *resPathPtr != RES_PATH_SEPARATOR) { + ++resPathPtr; + } + if (resPathPtr < resPathLimit && *resPathPtr == RES_PATH_SEPARATOR) { + ++resPathPtr; + } + } + + // New remove from the beginning of `key` the number of segments remaining in resPath. + // If resPath has more segments than `key` does, `key` will end up empty. + while (resPathPtr < resPathLimit && *key != '\0') { + while (resPathPtr < resPathLimit && *resPathPtr != RES_PATH_SEPARATOR) { + ++resPathPtr; + } + if (resPathPtr < resPathLimit && *resPathPtr == RES_PATH_SEPARATOR) { + ++resPathPtr; + } + while (*key != '\0' && *key != RES_PATH_SEPARATOR) { + ++key; + } + if (*key == RES_PATH_SEPARATOR) { + ++key; + } + } + } + // Finally, append what's left of `key` to `path`. What you end up with here is `resPath`, plus + // any pieces of `key` that aren't superseded by `resPath`. + // Or, to put it another way, calculate <#-segments-in-key> - (<#-segments-in-resPath> - <#-segments-in-origResPath>), + // and append that many segments from the end of `key` to `resPath` to produce the result. + path.append(key, *status); + } else { + path.append(inKey, *status); + } +} + U_CAPI UResourceBundle* U_EXPORT2 ures_getByKeyWithFallback(const UResourceBundle *resB, const char* inKey, UResourceBundle *fillIn, UErrorCode *status) { Resource res = RES_BOGUS, rootRes = RES_BOGUS; - /*UResourceDataEntry *realData = NULL;*/ UResourceBundle *helper = NULL; if (status==NULL || U_FAILURE(*status)) { @@ -1878,24 +2001,32 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, int32_t type = RES_GET_TYPE(resB->fRes); if(URES_IS_TABLE(type)) { - res = getTableItemByKeyPath(&(resB->fResData), resB->fRes, inKey); + const char* origResPath = resB->fResPath; + int32_t origResPathLen = resB->fResPathLen; + res = getTableItemByKeyPath(&resB->getResData(), resB->fRes, inKey); const char* key = inKey; + bool didRootOnce = false; if(res == RES_BOGUS) { UResourceDataEntry *dataEntry = resB->fData; CharString path; char *myPath = NULL; const char* resPath = resB->fResPath; int32_t len = resB->fResPathLen; - while(res == RES_BOGUS && dataEntry->fParent != NULL) { /* Otherwise, we'll look in parents */ - dataEntry = dataEntry->fParent; + while(res == RES_BOGUS && (dataEntry->fParent != NULL || !didRootOnce)) { /* Otherwise, we'll look in parents */ + if (dataEntry->fParent != NULL) { + dataEntry = dataEntry->fParent; + } else { + // We can't just stop when we get to a bundle whose fParent is NULL. That'll work most of the time, + // but if the bundle that the caller passed to us was "root" (which happens in getAllItemsWithFallback(), + // this function will drop right out without doing anything if "root" doesn't contain the exact key path + // specified. In that case, we need one extra time through this loop to make sure we follow any + // applicable aliases at the root level. + didRootOnce = true; + } rootRes = dataEntry->fData.rootRes; if(dataEntry->fBogus == U_ZERO_ERROR) { - path.clear(); - if (len > 0) { - path.append(resPath, len, *status); - } - path.append(inKey, *status); + createPath(origResPath, origResPathLen, resPath, len, inKey, path, status); if (U_FAILURE(*status)) { ures_close(helper); return fillIn; @@ -1906,8 +2037,8 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, res = res_findResource(&(dataEntry->fData), rootRes, &myPath, &key); if (RES_GET_TYPE(res) == URES_ALIAS && *myPath) { /* We hit an alias, but we didn't finish following the path. */ - helper = init_resb_result(&(dataEntry->fData), res, NULL, -1, dataEntry, resB, 0, helper, status); - /*helper = init_resb_result(&(dataEntry->fData), res, inKey, -1, dataEntry, resB, 0, helper, status);*/ + helper = init_resb_result(dataEntry, res, NULL, -1, resB, helper, status); + /*helper = init_resb_result(dataEntry, res, inKey, -1, resB, helper, status);*/ if(helper) { dataEntry = helper->fData; rootRes = helper->fRes; @@ -1923,7 +2054,7 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, } while(*myPath); /* Continue until the whole path is consumed */ } } - /*const ResourceData *rd = getFallbackData(resB, &key, &realData, &res, status);*/ + /*dataEntry = getFallbackData(resB, &key, &res, status);*/ if(res != RES_BOGUS) { /* check if resB->fResPath gives the right name here */ if(uprv_strcmp(dataEntry->fName, uloc_getDefault())==0 || uprv_strcmp(dataEntry->fName, kRootLocaleName)==0) { @@ -1932,14 +2063,33 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, *status = U_USING_FALLBACK_WARNING; } - fillIn = init_resb_result(&(dataEntry->fData), res, inKey, -1, dataEntry, resB, 0, fillIn, status); + fillIn = init_resb_result(dataEntry, res, key, -1, resB, fillIn, status); + if (resPath != nullptr) { + createPath(origResPath, origResPathLen, resPath, len, inKey, path, status); + } else { + const char* separator = nullptr; + if (fillIn->fResPath != nullptr) { + separator = uprv_strchr(fillIn->fResPath, RES_PATH_SEPARATOR); + } + if (separator != nullptr && separator[1] != '\0') { + createPath(origResPath, origResPathLen, fillIn->fResPath, + static_cast(uprv_strlen(fillIn->fResPath)), inKey, path, status); + } else { + createPath(origResPath, origResPathLen, "", 0, inKey, path, status); + } + } + ures_freeResPath(fillIn); + ures_appendResPath(fillIn, path.data(), path.length(), status); + if(fillIn->fResPath[fillIn->fResPathLen-1] != RES_PATH_SEPARATOR) { + ures_appendResPath(fillIn, RES_PATH_SEPARATOR_S, 1, status); + } } else { *status = U_MISSING_RESOURCE_ERROR; } } else { - fillIn = init_resb_result(&(resB->fResData), res, key, -1, resB->fData, resB, 0, fillIn, status); + fillIn = init_resb_result(resB->fData, res, key, -1, resB, fillIn, status); } - } + } else { *status = U_RESOURCE_TYPE_MISMATCH; } @@ -1951,8 +2101,7 @@ namespace { void getAllItemsWithFallback( const UResourceBundle *bundle, ResourceDataValue &value, - ResourceSink &sink, - UErrorCode &errorCode) { + ResourceSink &sink, UErrorCode &errorCode) { if (U_FAILURE(errorCode)) { return; } // We recursively enumerate child-first, // only storing parent items in the absence of child items. @@ -1964,7 +2113,8 @@ void getAllItemsWithFallback( // When the sink sees the no-fallback/no-inheritance marker, // then it would remove the parent's item. // We would deserialize parent values even though they are overridden in a child bundle. - value.setData(&bundle->fResData); + value.setData(bundle->getResData()); + value.setValidLocaleDataEntry(bundle->fValidLocaleDataEntry); UResourceDataEntry *parentEntry = bundle->fData->fParent; UBool hasParent = parentEntry != NULL && U_SUCCESS(parentEntry->fBogus); value.setResource(bundle->fRes, ResourceTracer(bundle)); @@ -1978,38 +2128,76 @@ void getAllItemsWithFallback( // TODO: See if we can refactor ures_getByKeyWithFallback() // and pull out an inner function that takes and returns a UResourceDataEntry // so that we need not create UResourceBundle objects. - UResourceBundle parentBundle; - ures_initStackObject(&parentBundle); - parentBundle.fTopLevelData = parentBundle.fData = parentEntry; - // TODO: What is the difference between bundle fData and fTopLevelData? - uprv_memcpy(&parentBundle.fResData, &parentEntry->fData, sizeof(ResourceData)); - // TODO: Try to replace bundle.fResData with just using bundle.fData->fData. - parentBundle.fHasFallback = !parentBundle.fResData.noFallback; - parentBundle.fIsTopLevel = TRUE; - parentBundle.fRes = parentBundle.fResData.rootRes; - parentBundle.fSize = res_countArrayItems(&(parentBundle.fResData), parentBundle.fRes); - parentBundle.fIndex = -1; + StackUResourceBundle parentBundle; + UResourceBundle &parentRef = parentBundle.ref(); + parentRef.fData = parentEntry; + parentRef.fValidLocaleDataEntry = bundle->fValidLocaleDataEntry; + parentRef.fHasFallback = !parentRef.getResData().noFallback; + parentRef.fIsTopLevel = TRUE; + parentRef.fRes = parentRef.getResData().rootRes; + parentRef.fSize = res_countArrayItems(&parentRef.getResData(), parentRef.fRes); + parentRef.fIndex = -1; entryIncrease(parentEntry); // Look up the container item in the parent bundle. - UResourceBundle containerBundle; - ures_initStackObject(&containerBundle); + StackUResourceBundle containerBundle; const UResourceBundle *rb; UErrorCode pathErrorCode = U_ZERO_ERROR; // Ignore if parents up to root do not have this path. if (bundle->fResPath == NULL || *bundle->fResPath == 0) { - rb = &parentBundle; + rb = parentBundle.getAlias(); } else { - rb = ures_getByKeyWithFallback(&parentBundle, bundle->fResPath, - &containerBundle, &pathErrorCode); + rb = ures_getByKeyWithFallback(parentBundle.getAlias(), bundle->fResPath, + containerBundle.getAlias(), &pathErrorCode); } if (U_SUCCESS(pathErrorCode)) { getAllItemsWithFallback(rb, value, sink, errorCode); } - ures_close(&containerBundle); - ures_close(&parentBundle); } } +struct GetAllChildrenSink : public ResourceSink { + // Destination sink + ResourceSink& dest; + + GetAllChildrenSink(ResourceSink& dest) + : dest(dest) {} + virtual ~GetAllChildrenSink() override; + virtual void put(const char *key, ResourceValue &value, UBool isRoot, + UErrorCode &errorCode) override { + ResourceTable itemsTable = value.getTable(errorCode); + if (U_FAILURE(errorCode)) { return; } + for (int32_t i = 0; itemsTable.getKeyAndValue(i, key, value); ++i) { + if (value.getType() == URES_ALIAS) { + ResourceDataValue& rdv = static_cast(value); + StackUResourceBundle stackTempBundle; + UResourceBundle* aliasRB = getAliasTargetAsResourceBundle(rdv.getData(), rdv.getResource(), nullptr, -1, + rdv.getValidLocaleDataEntry(), nullptr, 0, + stackTempBundle.getAlias(), &errorCode); + if (U_SUCCESS(errorCode)) { + ResourceDataValue aliasedValue; + aliasedValue.setData(aliasRB->getResData()); + aliasedValue.setValidLocaleDataEntry(aliasRB->fValidLocaleDataEntry); + aliasedValue.setResource(aliasRB->fRes, ResourceTracer(aliasRB)); + dest.put(key, aliasedValue, isRoot, errorCode); + } + } else { + dest.put(key, value, isRoot, errorCode); + } + if (U_FAILURE(errorCode)) { return; } + } + } +}; + +// Virtual destructors must be defined out of line. +GetAllChildrenSink::~GetAllChildrenSink() {} + +U_CAPI void U_EXPORT2 +ures_getAllChildrenWithFallback(const UResourceBundle *bundle, const char *path, + icu::ResourceSink &sink, UErrorCode &errorCode) { + GetAllChildrenSink allChildrenSink(sink); + ures_getAllItemsWithFallback(bundle, path, allChildrenSink, errorCode); +} + } // namespace // Requires a ResourceDataValue fill-in, so that we need not cast from a ResourceValue. @@ -2040,7 +2228,8 @@ ures_getValueWithFallback(const UResourceBundle *bundle, const char *path, return; } } - value.setData(&rb->fResData); + value.setData(rb->getResData()); + value.setValidLocaleDataEntry(rb->fValidLocaleDataEntry); value.setResource(rb->fRes, ResourceTracer(rb)); } @@ -2070,7 +2259,7 @@ ures_getAllItemsWithFallback(const UResourceBundle *bundle, const char *path, U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, const char* inKey, UResourceBundle *fillIn, UErrorCode *status) { Resource res = RES_BOGUS; - UResourceDataEntry *realData = NULL; + UResourceDataEntry *dataEntry = NULL; const char *key = inKey; if (status==NULL || U_FAILURE(*status)) { @@ -2084,14 +2273,14 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con int32_t type = RES_GET_TYPE(resB->fRes); if(URES_IS_TABLE(type)) { int32_t t; - res = res_getTableItemByKey(&(resB->fResData), resB->fRes, &t, &key); + res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key); if(res == RES_BOGUS) { key = inKey; if(resB->fHasFallback == TRUE) { - const ResourceData *rd = getFallbackData(resB, &key, &realData, &res, status); + dataEntry = getFallbackData(resB, &key, &res, status); if(U_SUCCESS(*status)) { - /* check if resB->fResPath gives the right name here */ - return init_resb_result(rd, res, key, -1, realData, resB, 0, fillIn, status); + /* check if resB->fResPath gives the right name here */ + return init_resb_result(dataEntry, res, key, -1, resB, fillIn, status); } else { *status = U_MISSING_RESOURCE_ERROR; } @@ -2099,22 +2288,22 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con *status = U_MISSING_RESOURCE_ERROR; } } else { - return init_resb_result(&(resB->fResData), res, key, -1, resB->fData, resB, 0, fillIn, status); + return init_resb_result(resB->fData, res, key, -1, resB, fillIn, status); } - } + } #if 0 /* this is a kind of TODO item. If we have an array with an index table, we could do this. */ /* not currently */ else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == TRUE) { /* here should go a first attempt to locate the key using index table */ - const ResourceData *rd = getFallbackData(resB, &key, &realData, &res, status); + dataEntry = getFallbackData(resB, &key, &res, status); if(U_SUCCESS(*status)) { - return init_resb_result(rd, res, key, realData, resB, fillIn, status); + return init_resb_result(dataEntry, res, key, resB, fillIn, status); } else { *status = U_MISSING_RESOURCE_ERROR; } } -#endif +#endif else { *status = U_RESOURCE_TYPE_MISMATCH; } @@ -2123,7 +2312,7 @@ U_CAPI UResourceBundle* U_EXPORT2 ures_getByKey(const UResourceBundle *resB, con U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, const char* inKey, int32_t* len, UErrorCode *status) { Resource res = RES_BOGUS; - UResourceDataEntry *realData = NULL; + UResourceDataEntry *dataEntry = NULL; const char* key = inKey; if (status==NULL || U_FAILURE(*status)) { @@ -2138,17 +2327,17 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c if(URES_IS_TABLE(type)) { int32_t t=0; - res = res_getTableItemByKey(&(resB->fResData), resB->fRes, &t, &key); + res = res_getTableItemByKey(&resB->getResData(), resB->fRes, &t, &key); if(res == RES_BOGUS) { key = inKey; if(resB->fHasFallback == TRUE) { - const ResourceData *rd = getFallbackData(resB, &key, &realData, &res, status); + dataEntry = getFallbackData(resB, &key, &res, status); if(U_SUCCESS(*status)) { switch (RES_GET_TYPE(res)) { case URES_STRING: case URES_STRING_V2: - return res_getString({resB, key}, rd, res, len); + return res_getString({resB, key}, &dataEntry->fData, res, len); case URES_ALIAS: { const UChar* result = 0; @@ -2170,7 +2359,7 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c switch (RES_GET_TYPE(res)) { case URES_STRING: case URES_STRING_V2: - return res_getString({resB, key}, &(resB->fResData), res, len); + return res_getString({resB, key}, &resB->getResData(), res, len); case URES_ALIAS: { const UChar* result = 0; @@ -2183,21 +2372,21 @@ U_CAPI const UChar* U_EXPORT2 ures_getStringByKey(const UResourceBundle *resB, c *status = U_RESOURCE_TYPE_MISMATCH; } } - } -#if 0 + } +#if 0 /* this is a kind of TODO item. If we have an array with an index table, we could do this. */ - /* not currently */ + /* not currently */ else if(RES_GET_TYPE(resB->fRes) == URES_ARRAY && resB->fHasFallback == TRUE) { /* here should go a first attempt to locate the key using index table */ - const ResourceData *rd = getFallbackData(resB, &key, &realData, &res, status); + dataEntry = getFallbackData(resB, &key, &res, status); if(U_SUCCESS(*status)) { // TODO: Tracing return res_getString(rd, res, len); } else { *status = U_MISSING_RESOURCE_ERROR; } - } -#endif + } +#endif else { *status = U_RESOURCE_TYPE_MISMATCH; } @@ -2218,7 +2407,7 @@ ures_getUTF8StringByKey(const UResourceBundle *resB, /* TODO: clean from here down */ /** - * INTERNAL: Get the name of the first real locale (not placeholder) + * INTERNAL: Get the name of the first real locale (not placeholder) * that has resource bundle data. */ U_CAPI const char* U_EXPORT2 @@ -2235,17 +2424,17 @@ ures_getLocaleInternal(const UResourceBundle* resourceBundle, UErrorCode* status } } -U_CAPI const char* U_EXPORT2 -ures_getLocale(const UResourceBundle* resourceBundle, +U_CAPI const char* U_EXPORT2 +ures_getLocale(const UResourceBundle* resourceBundle, UErrorCode* status) { return ures_getLocaleInternal(resourceBundle, status); } -U_CAPI const char* U_EXPORT2 -ures_getLocaleByType(const UResourceBundle* resourceBundle, - ULocDataLocaleType type, +U_CAPI const char* U_EXPORT2 +ures_getLocaleByType(const UResourceBundle* resourceBundle, + ULocDataLocaleType type, UErrorCode* status) { if (status==NULL || U_FAILURE(*status)) { return NULL; @@ -2258,7 +2447,7 @@ ures_getLocaleByType(const UResourceBundle* resourceBundle, case ULOC_ACTUAL_LOCALE: return resourceBundle->fData->fName; case ULOC_VALID_LOCALE: - return resourceBundle->fTopLevelData->fName; + return resourceBundle->fValidLocaleDataEntry->fName; case ULOC_REQUESTED_LOCALE: default: *status = U_ILLEGAL_ARGUMENT_ERROR; @@ -2329,12 +2518,11 @@ ures_openWithType(UResourceBundle *r, const char* path, const char* localeID, uprv_memset(r, 0, sizeof(UResourceBundle)); ures_setIsStackObject(r, isStackObject); - r->fTopLevelData = r->fData = entry; - uprv_memcpy(&r->fResData, &entry->fData, sizeof(ResourceData)); - r->fHasFallback = openType != URES_OPEN_DIRECT && !r->fResData.noFallback; + r->fValidLocaleDataEntry = r->fData = entry; + r->fHasFallback = openType != URES_OPEN_DIRECT && !r->getResData().noFallback; r->fIsTopLevel = TRUE; - r->fRes = r->fResData.rootRes; - r->fSize = res_countArrayItems(&(r->fResData), r->fRes); + r->fRes = r->getResData().rootRes; + r->fSize = res_countArrayItems(&r->getResData(), r->fRes); r->fIndex = -1; ResourceTracer(r).traceOpen(); @@ -2353,7 +2541,7 @@ ures_openNoDefault(const char* path, const char* localeID, UErrorCode* status) { } /** - * Opens a resource bundle without "canonicalizing" the locale name. No fallback will be performed + * Opens a resource bundle without "canonicalizing" the locale name. No fallback will be performed * or sought. However, alias substitution will happen! */ U_CAPI UResourceBundle* U_EXPORT2 @@ -2362,10 +2550,10 @@ ures_openDirect(const char* path, const char* localeID, UErrorCode* status) { } /** - * Internal API: This function is used to open a resource bundle - * proper fallback chaining is executed while initialization. + * Internal API: This function is used to open a resource bundle + * proper fallback chaining is executed while initialization. * The result is stored in cache for later fallback search. - * + * * Same as ures_open(), but uses the fill-in parameter and does not allocate a new bundle. */ U_CAPI void U_EXPORT2 @@ -2409,9 +2597,9 @@ ures_countArrayItems(const UResourceBundle* resourceBundle, return 0; } ures_getByKey(resourceBundle, resourceKey, &resData, status); - - if(resData.fResData.data != NULL) { - int32_t result = res_countArrayItems(&resData.fResData, resData.fRes); + + if(resData.getResData().data != NULL) { + int32_t result = res_countArrayItems(&resData.getResData(), resData.fRes); ures_close(&resData); return result; } else { @@ -2431,7 +2619,7 @@ ures_countArrayItems(const UResourceBundle* resourceBundle, * @see ures_getVersion * @internal */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 ures_getVersionNumberInternal(const UResourceBundle *resourceBundle) { if (!resourceBundle) return NULL; @@ -2445,24 +2633,24 @@ ures_getVersionNumberInternal(const UResourceBundle *resourceBundle) int32_t len; const UChar* minor_version = ures_getStringByKey(resourceBundle, kVersionTag, &minor_len, &status); - + /* Determine the length of of the final version string. This is */ /* the length of the major part + the length of the separator */ /* (==1) + the length of the minor part (+ 1 for the zero byte at */ /* the end). */ len = (minor_len > 0) ? minor_len : 1; - + /* Allocate the string, and build it up. */ /* + 1 for zero byte */ - ((UResourceBundle *)resourceBundle)->fVersion = (char *)uprv_malloc(1 + len); + ((UResourceBundle *)resourceBundle)->fVersion = (char *)uprv_malloc(1 + len); /* Check for null pointer. */ if (((UResourceBundle *)resourceBundle)->fVersion == NULL) { return NULL; } - + if(minor_len > 0) { u_UCharsToChars(minor_version, resourceBundle->fVersion , minor_len); resourceBundle->fVersion[len] = '\0'; @@ -2538,8 +2726,8 @@ ures_loc_nextLocale(UEnumeration* en, return result; } -static void U_CALLCONV -ures_loc_resetLocales(UEnumeration* en, +static void U_CALLCONV +ures_loc_resetLocales(UEnumeration* en, UErrorCode* /*status*/) { UResourceBundle *res = &((ULocalesContext *)en->context)->installed; ures_resetIterator(res); @@ -2584,7 +2772,7 @@ ures_openAvailableLocales(const char *path, UErrorCode *status) ures_getByKey(idx, INDEX_TAG, &myContext->installed, status); if(U_SUCCESS(*status)) { #if defined(URES_TREE_DEBUG) - fprintf(stderr, "Got %s::%s::[%s] : %s\n", + fprintf(stderr, "Got %s::%s::[%s] : %s\n", path, INDEX_LOCALE_NAME, INDEX_TAG, ures_getKey(&myContext->installed)); #endif en->context = myContext; @@ -2597,9 +2785,9 @@ ures_openAvailableLocales(const char *path, UErrorCode *status) uprv_free(en); en = NULL; } - + ures_close(idx); - + return en; } @@ -2636,17 +2824,17 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, } uloc_getBaseName(locid, base, 1024-1,&subStatus); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "getFunctionalEquivalent: \"%s\" [%s=%s] in %s - %s\n", + fprintf(stderr, "getFunctionalEquivalent: \"%s\" [%s=%s] in %s - %s\n", locid, keyword, kwVal, base, u_errorName(subStatus)); #endif ures_initStackObject(&bund1); ures_initStackObject(&bund2); - - + + uprv_strcpy(parent, base); uprv_strcpy(found, base); - if(isAvailable) { + if(isAvailable) { UEnumeration *locEnum = ures_openAvailableLocales(path, &subStatus); *isAvailable = TRUE; if (U_SUCCESS(subStatus)) { @@ -2659,7 +2847,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, *status = subStatus; return 0; } - + do { subStatus = U_ZERO_ERROR; res = ures_open(path, parent, &subStatus); @@ -2669,7 +2857,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, *isAvailable = FALSE; } isAvailable = NULL; /* only want to set this the first time around */ - + #if defined(URES_TREE_DEBUG) fprintf(stderr, "%s;%s -> %s [%s]\n", path?path:"ICUDATA", parent, u_errorName(subStatus), ures_getLocale(res, &subStatus)); #endif @@ -2689,21 +2877,21 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, if(U_SUCCESS(subStatus) && defLen) { u_UCharsToChars(defUstr, defVal, u_strlen(defUstr)); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> default %s=%s, %s\n", + fprintf(stderr, "%s;%s -> default %s=%s, %s\n", path?path:"ICUDATA", parent, keyword, defVal, u_errorName(subStatus)); #endif uprv_strcpy(defLoc, parent); if(kwVal[0]==0) { uprv_strcpy(kwVal, defVal); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> kwVal = %s\n", + fprintf(stderr, "%s;%s -> kwVal = %s\n", path?path:"ICUDATA", parent, keyword, kwVal); #endif } } } } - + subStatus = U_ZERO_ERROR; if (res != NULL) { @@ -2713,11 +2901,11 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, uloc_getParent(found,parent,sizeof(parent),&subStatus); ures_close(res); } while(!defVal[0] && *found && uprv_strcmp(found, "root") != 0 && U_SUCCESS(*status)); - + /* Now, see if we can find the kwVal collator.. start the search over.. */ uprv_strcpy(parent, base); uprv_strcpy(found, base); - + do { subStatus = U_ZERO_ERROR; res = ures_open(path, parent, &subStatus); @@ -2725,9 +2913,9 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, *isAvailable = FALSE; } isAvailable = NULL; /* only want to set this the first time around */ - + #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> %s (looking for %s)\n", + fprintf(stderr, "%s;%s -> %s (looking for %s)\n", path?path:"ICUDATA", parent, u_errorName(subStatus), kwVal); #endif if(U_FAILURE(subStatus)) { @@ -2744,7 +2932,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, #endif if(subStatus == U_ZERO_ERROR) { #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> full0 %s=%s, %s\n", + fprintf(stderr, "%s;%s -> full0 %s=%s, %s\n", path?path:"ICUDATA", parent, keyword, kwVal, u_errorName(subStatus)); #endif uprv_strcpy(full, parent); @@ -2757,14 +2945,14 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, int32_t defLen; /* look for default item */ #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> recalculating Default0\n", + fprintf(stderr, "%s;%s -> recalculating Default0\n", path?path:"ICUDATA", full); #endif defUstr = ures_getStringByKey(&bund1, DEFAULT_TAG, &defLen, &subStatus); if(U_SUCCESS(subStatus) && defLen) { u_UCharsToChars(defUstr, defVal, u_strlen(defUstr)); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> default0 %s=%s, %s\n", + fprintf(stderr, "%s;%s -> default0 %s=%s, %s\n", path?path:"ICUDATA", full, keyword, defVal, u_errorName(subStatus)); #endif uprv_strcpy(defLoc, full); @@ -2777,20 +2965,20 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, #endif } else { #if defined(URES_TREE_DEBUG) - fprintf(stderr, "err=%s in %s looking for %s\n", + fprintf(stderr, "err=%s in %s looking for %s\n", u_errorName(subStatus), parent, kwVal); #endif } } } - + subStatus = U_ZERO_ERROR; - + uprv_strcpy(found, parent); uloc_getParent(found,parent,1023,&subStatus); ures_close(res); } while(!full[0] && *found && U_SUCCESS(*status)); - + if((full[0]==0) && uprv_strcmp(kwVal, defVal)) { #if defined(URES_TREE_DEBUG) fprintf(stderr, "Failed to locate kw %s - try default %s\n", kwVal, defVal); @@ -2798,7 +2986,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, uprv_strcpy(kwVal, defVal); uprv_strcpy(parent, base); uprv_strcpy(found, base); - + do { /* search for 'default' named item */ subStatus = U_ZERO_ERROR; res = ures_open(path, parent, &subStatus); @@ -2806,7 +2994,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, *isAvailable = FALSE; } isAvailable = NULL; /* only want to set this the first time around */ - + #if defined(URES_TREE_DEBUG) fprintf(stderr, "%s;%s -> %s (looking for default %s)\n", path?path:"ICUDATA", parent, u_errorName(subStatus), kwVal); @@ -2826,21 +3014,21 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, if(*full == 0) { uprv_strcpy(full, "root"); } - + /* now, recalculate default kw if need be */ if(uprv_strlen(defLoc) > uprv_strlen(full)) { const UChar *defUstr; int32_t defLen; /* look for default item */ #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> recalculating Default1\n", + fprintf(stderr, "%s;%s -> recalculating Default1\n", path?path:"ICUDATA", full); #endif defUstr = ures_getStringByKey(&bund1, DEFAULT_TAG, &defLen, &subStatus); if(U_SUCCESS(subStatus) && defLen) { u_UCharsToChars(defUstr, defVal, u_strlen(defUstr)); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s;%s -> default %s=%s, %s\n", + fprintf(stderr, "%s;%s -> default %s=%s, %s\n", path?path:"ICUDATA", full, keyword, defVal, u_errorName(subStatus)); #endif uprv_strcpy(defLoc, full); @@ -2855,13 +3043,13 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, } } subStatus = U_ZERO_ERROR; - + uprv_strcpy(found, parent); uloc_getParent(found,parent,1023,&subStatus); ures_close(res); } while(!full[0] && *found && U_SUCCESS(*status)); } - + if(U_SUCCESS(*status)) { if(!full[0]) { #if defined(URES_TREE_DEBUG) @@ -2871,7 +3059,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, } else if(omitDefault) { #if defined(URES_TREE_DEBUG) fprintf(stderr,"Trim? full=%s, defLoc=%s, found=%s\n", full, defLoc, found); -#endif +#endif if(uprv_strlen(defLoc) <= uprv_strlen(full)) { /* found the keyword in a *child* of where the default tag was present. */ if(!uprv_strcmp(kwVal, defVal)) { /* if the requested kw is default, */ @@ -2897,10 +3085,10 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, } } /* we found the default locale - no need to repeat it.*/ - + ures_close(&bund1); ures_close(&bund2); - + length = (int32_t)uprv_strlen(found); if(U_SUCCESS(*status)) { @@ -2909,7 +3097,7 @@ ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, uprv_strncpy(result, found, copyLength); } if(length == 0) { - *status = U_MISSING_RESOURCE_ERROR; + *status = U_MISSING_RESOURCE_ERROR; } } else { length = 0; @@ -2923,58 +3111,58 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status) { #define VALUES_BUF_SIZE 2048 #define VALUES_LIST_SIZE 512 - + char valuesBuf[VALUES_BUF_SIZE]; int32_t valuesIndex = 0; const char *valuesList[VALUES_LIST_SIZE]; int32_t valuesCount = 0; - + const char *locale; int32_t locLen; - + UEnumeration *locs = NULL; - + UResourceBundle item; UResourceBundle subItem; - + ures_initStackObject(&item); ures_initStackObject(&subItem); locs = ures_openAvailableLocales(path, status); - + if(U_FAILURE(*status)) { ures_close(&item); ures_close(&subItem); return NULL; } - + valuesBuf[0]=0; valuesBuf[1]=0; - + while((locale = uenum_next(locs, &locLen, status)) != 0) { UResourceBundle *bund = NULL; UResourceBundle *subPtr = NULL; UErrorCode subStatus = U_ZERO_ERROR; /* don't fail if a bundle is unopenable */ - bund = ures_openDirect(path, locale, &subStatus); - + bund = ures_open(path, locale, &subStatus); + #if defined(URES_TREE_DEBUG) if(!bund || U_FAILURE(subStatus)) { - fprintf(stderr, "%s-%s values: Can't open %s locale - skipping. (%s)\n", + fprintf(stderr, "%s-%s values: Can't open %s locale - skipping. (%s)\n", path?path:"", keyword, locale, u_errorName(subStatus)); } #endif - + ures_getByKey(bund, keyword, &item, &subStatus); - + if(!bund || U_FAILURE(subStatus)) { #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s-%s values: Can't find in %s - skipping. (%s)\n", + fprintf(stderr, "%s-%s values: Can't find in %s - skipping. (%s)\n", path?path:"", keyword, locale, u_errorName(subStatus)); #endif ures_close(bund); bund = NULL; continue; } - + while((subPtr = ures_getNextResource(&item,&subItem,&subStatus)) != 0 && U_SUCCESS(subStatus)) { const char *k; @@ -3015,12 +3203,12 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status) ures_close(bund); } valuesBuf[valuesIndex++] = 0; /* terminate */ - + ures_close(&item); ures_close(&subItem); uenum_close(locs); #if defined(URES_TREE_DEBUG) - fprintf(stderr, "%s: size %d, #%d\n", u_errorName(*status), + fprintf(stderr, "%s: size %d, #%d\n", u_errorName(*status), valuesIndex, valuesCount); #endif return uloc_openKeywordList(valuesBuf, valuesIndex, status); @@ -3095,7 +3283,7 @@ ures_getVersionByKey(const UResourceBundle* res, const char *key, UVersionInfo v str = ures_getStringByKey(res, key, &len, status); if(U_SUCCESS(*status)) { u_versionFromUString(ver, str); - } + } } /* eof */ diff --git a/deps/icu-small/source/common/uresdata.cpp b/deps/icu-small/source/common/uresdata.cpp index 26a2fd91a6fdbd..9af081be408c1f 100644 --- a/deps/icu-small/source/common/uresdata.cpp +++ b/deps/icu-small/source/common/uresdata.cpp @@ -935,13 +935,13 @@ res_findResource(const ResourceData *pResData, Resource r, char** path, const ch if(!URES_IS_CONTAINER(type)) { return RES_BOGUS; } - + while(nextSepP && *pathP && t1 != RES_BOGUS && URES_IS_CONTAINER(type)) { /* Iteration stops if: the path has been consumed, we found a non-existing * resource (t1 == RES_BOGUS) or we found a scalar resource (including alias) */ nextSepP = uprv_strchr(pathP, RES_PATH_SEPARATOR); - /* if there are more separators, terminate string + /* if there are more separators, terminate string * and set path to the remaining part of the string */ if(nextSepP != NULL) { diff --git a/deps/icu-small/source/common/uresdata.h b/deps/icu-small/source/common/uresdata.h index 7c2152e57b500d..b8a3adba63489d 100644 --- a/deps/icu-small/source/common/uresdata.h +++ b/deps/icu-small/source/common/uresdata.h @@ -399,6 +399,8 @@ typedef struct ResourceData { UBool useNativeStrcmp; } ResourceData; +struct UResourceDataEntry; // forward declared for ResoureDataValue below; actually defined in uresimp.h + /* * Read a resource bundle from memory. */ @@ -511,12 +513,18 @@ inline uint32_t res_getUInt(const ResourceTracer& traceInfo, Resource res) { class ResourceDataValue : public ResourceValue { public: ResourceDataValue() : + pResData(nullptr), + validLocaleDataEntry(nullptr), res(static_cast(URES_NONE)), fTraceInfo() {} virtual ~ResourceDataValue(); - void setData(const ResourceData *data) { - resData = *data; + void setData(const ResourceData &data) { + pResData = &data; + } + + void setValidLocaleDataEntry(UResourceDataEntry *entry) { + validLocaleDataEntry = entry; } void setResource(Resource r, ResourceTracer&& traceInfo) { @@ -524,27 +532,28 @@ class ResourceDataValue : public ResourceValue { fTraceInfo = traceInfo; } - const ResourceData &getData() const { return resData; } - virtual UResType getType() const; - virtual const UChar *getString(int32_t &length, UErrorCode &errorCode) const; - virtual const UChar *getAliasString(int32_t &length, UErrorCode &errorCode) const; - virtual int32_t getInt(UErrorCode &errorCode) const; - virtual uint32_t getUInt(UErrorCode &errorCode) const; - virtual const int32_t *getIntVector(int32_t &length, UErrorCode &errorCode) const; - virtual const uint8_t *getBinary(int32_t &length, UErrorCode &errorCode) const; - virtual ResourceArray getArray(UErrorCode &errorCode) const; - virtual ResourceTable getTable(UErrorCode &errorCode) const; - virtual UBool isNoInheritanceMarker() const; + const ResourceData &getData() const { return *pResData; } + UResourceDataEntry *getValidLocaleDataEntry() const { return validLocaleDataEntry; } + Resource getResource() const { return res; } + virtual UResType getType() const override; + virtual const UChar *getString(int32_t &length, UErrorCode &errorCode) const override; + virtual const UChar *getAliasString(int32_t &length, UErrorCode &errorCode) const override; + virtual int32_t getInt(UErrorCode &errorCode) const override; + virtual uint32_t getUInt(UErrorCode &errorCode) const override; + virtual const int32_t *getIntVector(int32_t &length, UErrorCode &errorCode) const override; + virtual const uint8_t *getBinary(int32_t &length, UErrorCode &errorCode) const override; + virtual ResourceArray getArray(UErrorCode &errorCode) const override; + virtual ResourceTable getTable(UErrorCode &errorCode) const override; + virtual UBool isNoInheritanceMarker() const override; virtual int32_t getStringArray(UnicodeString *dest, int32_t capacity, - UErrorCode &errorCode) const; + UErrorCode &errorCode) const override; virtual int32_t getStringArrayOrStringAsArray(UnicodeString *dest, int32_t capacity, - UErrorCode &errorCode) const; - virtual UnicodeString getStringOrFirstOfArray(UErrorCode &errorCode) const; + UErrorCode &errorCode) const override; + virtual UnicodeString getStringOrFirstOfArray(UErrorCode &errorCode) const override; private: - // TODO(ICU-20769): If UResourceBundle.fResData becomes a pointer, - // then remove this value field again and just store a pResData pointer. - ResourceData resData; + const ResourceData *pResData; + UResourceDataEntry *validLocaleDataEntry; Resource res; ResourceTracer fTraceInfo; }; diff --git a/deps/icu-small/source/common/uresimp.h b/deps/icu-small/source/common/uresimp.h index cfd15a2dde10e2..4ac09bd8c4d998 100644 --- a/deps/icu-small/source/common/uresimp.h +++ b/deps/icu-small/source/common/uresimp.h @@ -31,7 +31,6 @@ #define MAGIC2 19641227 #define URES_MAX_ALIAS_LEVEL 256 -#define URES_MAX_BUFFER_SIZE 256 #define EMPTY_SET 0x2205 @@ -61,16 +60,27 @@ struct UResourceDataEntry { #define RES_PATH_SEPARATOR '/' #define RES_PATH_SEPARATOR_S "/" +U_CAPI void U_EXPORT2 ures_initStackObject(UResourceBundle* resB); + +#ifdef __cplusplus + struct UResourceBundle { const char *fKey; /*tag*/ + /** + * The dataEntry for the actual locale in which this item lives. + * Used for accessing the item's data. + * Non-const pointer for reference counting via entryIncrease(). + */ UResourceDataEntry *fData; /*for low-level access*/ char *fVersion; - UResourceDataEntry *fTopLevelData; /* for getting the valid locale */ + /** + * The dataEntry for the valid locale. + * Used for /LOCALE/path alias resolution that starts back from the valid locale, + * rather than from the actual locale of this item which might live in + * an ancestor bundle. + */ + UResourceDataEntry *fValidLocaleDataEntry; char *fResPath; /* full path to the resource: "zh_TW/CollationElements/Sequence" */ - // TODO(ICU-20769): Try to change the by-value fResData into a pointer, - // with the struct in only one place for each bundle. - // Also replace class ResourceDataValue.resData with a pResData pointer again. - ResourceData fResData; char fResBuf[RES_BUFSIZE]; int32_t fResPathLen; Resource fRes; @@ -81,13 +91,9 @@ struct UResourceBundle { int32_t fIndex; int32_t fSize; - /*const UResourceBundle *fParentRes;*/ /* needed to get the actual locale for a child resource */ + inline const ResourceData &getResData() const { return fData->fData; } }; -U_CAPI void U_EXPORT2 ures_initStackObject(UResourceBundle* resB); - -#ifdef __cplusplus - U_NAMESPACE_BEGIN /** @@ -161,9 +167,6 @@ U_CFUNC const char* ures_getPath(const UResourceBundle* resB); */ U_CAPI UBool U_EXPORT2 ures_dumpCacheContents(void); #endif -/*U_CFUNC void ures_appendResPath(UResourceBundle *resB, const char* toAdd, int32_t lenToAdd);*/ -/*U_CFUNC void ures_setResPath(UResourceBundle *resB, const char* toAdd);*/ -/*U_CFUNC void ures_freeResPath(UResourceBundle *resB);*/ /* Candidates for export */ U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle *original, UErrorCode *status); @@ -172,10 +175,10 @@ U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle * Returns a resource that can be located using the pathToResource argument. One needs optional package, locale * and path inside the locale, for example: "/myData/en/zoneStrings/3". Keys and indexes are supported. Keys * need to reference data in named structures, while indexes can reference both named and anonymous resources. - * Features a fill-in parameter. - * + * Features a fill-in parameter. + * * Note, this function does NOT have a syntax for specifying items within a tree. May want to consider a - * syntax that delineates between package/tree and resource. + * syntax that delineates between package/tree and resource. * * @param pathToResource a path that will lead to the requested resource * @param fillIn if NULL a new UResourceBundle struct is allocated and must be deleted by the caller. @@ -184,16 +187,16 @@ U_CFUNC UResourceBundle *ures_copyResb(UResourceBundle *r, const UResourceBundle * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ U_CAPI UResourceBundle* U_EXPORT2 -ures_findResource(const char* pathToResource, - UResourceBundle *fillIn, UErrorCode *status); +ures_findResource(const char* pathToResource, + UResourceBundle *fillIn, UErrorCode *status); /** - * Returns a sub resource that can be located using the pathToResource argument. One needs a path inside + * Returns a sub resource that can be located using the pathToResource argument. One needs a path inside * the supplied resource, for example, if you have "en_US" resource bundle opened, you might ask for * "zoneStrings/3". Keys and indexes are supported. Keys - * need to reference data in named structures, while indexes can reference both + * need to reference data in named structures, while indexes can reference both * named and anonymous resources. - * Features a fill-in parameter. + * Features a fill-in parameter. * * @param resourceBundle a resource * @param pathToResource a path that will lead to the requested resource @@ -203,8 +206,8 @@ ures_findResource(const char* pathToResource, * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ U_CAPI UResourceBundle* U_EXPORT2 -ures_findSubResource(const UResourceBundle *resB, - char* pathToResource, +ures_findSubResource(const UResourceBundle *resB, + char* pathToResource, UResourceBundle *fillIn, UErrorCode *status); /** @@ -215,23 +218,23 @@ ures_findSubResource(const UResourceBundle *resB, * @param resName top level resource. Example: "collations" * @param keyword locale keyword. Example: "collation" * @param locid The requested locale - * @param isAvailable If non-null, pointer to fillin parameter that indicates whether the - * requested locale was available. The locale is defined as 'available' if it physically + * @param isAvailable If non-null, pointer to fillin parameter that indicates whether the + * requested locale was available. The locale is defined as 'available' if it physically * exists within the specified tree. * @param omitDefault if true, omit keyword and value if default. 'de_DE\@collation=standard' -> 'de_DE' * @param status error code - * @return the actual buffer size needed for the full locale. If it's greater + * @return the actual buffer size needed for the full locale. If it's greater * than resultCapacity, the returned full name will be truncated and an error code will be returned. */ U_CAPI int32_t U_EXPORT2 -ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, +ures_getFunctionalEquivalent(char *result, int32_t resultCapacity, const char *path, const char *resName, const char *keyword, const char *locid, UBool *isAvailable, UBool omitDefault, UErrorCode *status); /** * Given a tree path and keyword, return a string enumeration of all possible values for that keyword. * @param path path to the tree, or NULL for ICU data - * @param keyword a particular keyword to consider, must match a top level resource name + * @param keyword a particular keyword to consider, must match a top level resource name * within the tree. * @param status error code */ @@ -251,17 +254,16 @@ ures_getKeywordValues(const char *path, const char *keyword, UErrorCode *status) * Alternatively, you can supply a struct to be filled by this function. * @param status: fills in the outgoing error code * could be U_MISSING_RESOURCE_ERROR if the key is not found - * could be a non-failing error + * could be a non-failing error * e.g.: U_USING_FALLBACK_WARNING,U_USING_DEFAULT_WARNING * @return a pointer to a UResourceBundle struct. If fill in param was NULL, caller must delete it */ -U_CAPI UResourceBundle* U_EXPORT2 -ures_getByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, - UResourceBundle *fillIn, +U_CAPI UResourceBundle* U_EXPORT2 +ures_getByKeyWithFallback(const UResourceBundle *resB, + const char* inKey, + UResourceBundle *fillIn, UErrorCode *status); - /** * Get a String with multi-level fallback. Normally only the top level resources will * fallback to its parent. This performs fallback on subresources. For example, when a table @@ -273,14 +275,14 @@ ures_getByKeyWithFallback(const UResourceBundle *resB, * @param len if not NULL, used to return the length of the string * @param status: fills in the outgoing error code * could be U_MISSING_RESOURCE_ERROR if the key is not found - * could be a non-failing error + * could be a non-failing error * e.g.: U_USING_FALLBACK_WARNING,U_USING_DEFAULT_WARNING * @return returns a pointer to a zero-terminated UChar array which lives in a * memory mapped/DLL file. */ -U_CAPI const UChar* U_EXPORT2 -ures_getStringByKeyWithFallback(const UResourceBundle *resB, - const char* inKey, +U_CAPI const UChar* U_EXPORT2 +ures_getStringByKeyWithFallback(const UResourceBundle *resB, + const char* inKey, int32_t* len, UErrorCode *status); @@ -291,10 +293,39 @@ ures_getValueWithFallback(const UResourceBundle *bundle, const char *path, UResourceBundle *tempFillIn, icu::ResourceDataValue &value, UErrorCode &errorCode); +/** + * Locates the resource specified by `path` in the resource bundle specified by `bundle` (performing any + * necessary fallback and following any aliases) and calls the specified `sink`'s `put()` method with that + * resource. Then walks the bundle's parent chain, calling `put()` on the sink for each item in the + * parent chain. + * @param bundle The bundle to search + * @param path The path of the desired resource + * @param sink A `ResourceSink` that gets called for each resource in the parent chain + * @param errorCode The error code + */ U_CAPI void U_EXPORT2 ures_getAllItemsWithFallback(const UResourceBundle *bundle, const char *path, icu::ResourceSink &sink, UErrorCode &errorCode); +/** + * Locates the resource specified by `path` in the resource bundle specified by `bundle` (performing any + * necessary fallback and following any aliases) and, if the resource is a table resource, iterates over its + * immediate child resources (again, following any aliases to get the individual resource values), and calls the specified + * `sink`'s `put()` method for each child resource (passing it that resource's key and either its actual value or, + * if that value is an alias, the value you get by following the alias). Then walks back over the bundle's + * parent chain, similarly iterating over each parent table resource's child resources. + * Does not descend beyond one level of table children. + * @param bundle The bundle to search + * @param path The path of the desired resource + * @param sink A `ResourceSink` that gets called for each child resource of the specified resource (and each child + * of the resources in its parent chain). + * @param errorCode The error code. This will be U_RESOURCE_TYPE_MISMATCH if the resource the caller + * is asking for isn't a table resource. + */ +U_CAPI void U_EXPORT2 +ures_getAllChildrenWithFallback(const UResourceBundle *bundle, const char *path, + icu::ResourceSink &sink, UErrorCode &errorCode); + #endif /* __cplusplus */ /** @@ -320,15 +351,15 @@ ures_getVersionByKey(const UResourceBundle *resB, * The caller does not own this string. * @see ures_getVersion */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 ures_getVersionNumberInternal(const UResourceBundle *resourceBundle); /** * Return the name of the Locale associated with this ResourceBundle. This API allows - * you to query for the real locale of the resource. For example, if you requested - * "en_US_CALIFORNIA" and only "en_US" bundle exists, "en_US" will be returned. + * you to query for the real locale of the resource. For example, if you requested + * "en_US_CALIFORNIA" and only "en_US" bundle exists, "en_US" will be returned. * For subresources, the locale where this resource comes from will be returned. - * If fallback has occured, getLocale will reflect this. + * If fallback has occurred, getLocale will reflect this. * * This internal version avoids deprecated-warnings in ICU code. * @@ -336,13 +367,13 @@ ures_getVersionNumberInternal(const UResourceBundle *resourceBundle); * @param status just for catching illegal arguments * @return A Locale name */ -U_CAPI const char* U_EXPORT2 -ures_getLocaleInternal(const UResourceBundle* resourceBundle, +U_CAPI const char* U_EXPORT2 +ures_getLocaleInternal(const UResourceBundle* resourceBundle, UErrorCode* status); /** * Same as ures_openDirect() but uses the fill-in parameter instead of allocating a new bundle. - * + * * @param r The existing UResourceBundle to fill in. If NULL then status will be * set to U_ILLEGAL_ARGUMENT_ERROR. * @param packageName The packageName and locale together point to an ICU udata object, diff --git a/deps/icu-small/source/common/usc_impl.cpp b/deps/icu-small/source/common/usc_impl.cpp index d69880326a4cbd..111029b97496e7 100644 --- a/deps/icu-small/source/common/usc_impl.cpp +++ b/deps/icu-small/source/common/usc_impl.cpp @@ -79,7 +79,7 @@ static void push(UScriptRun *scriptRun, int32_t pairIndex, UScriptCode scriptCod { scriptRun->pushCount = LIMIT_INC(scriptRun->pushCount); scriptRun->fixupCount = LIMIT_INC(scriptRun->fixupCount); - + scriptRun->parenSP = INC1(scriptRun->parenSP); scriptRun->parenStack[scriptRun->parenSP].pairIndex = pairIndex; scriptRun->parenStack[scriptRun->parenSP].scriptCode = scriptCode; @@ -90,14 +90,14 @@ static void pop(UScriptRun *scriptRun) if (STACK_IS_EMPTY(scriptRun)) { return; } - + if (scriptRun->fixupCount > 0) { scriptRun->fixupCount -= 1; } - + scriptRun->pushCount -= 1; scriptRun->parenSP = DEC1(scriptRun->parenSP); - + /* If the stack is now empty, reset the stack pointers to their initial values. */ @@ -109,7 +109,7 @@ static void pop(UScriptRun *scriptRun) static void fixup(UScriptRun *scriptRun, UScriptCode scriptCode) { int32_t fixupSP = DEC(scriptRun->parenSP, scriptRun->fixupCount); - + while (scriptRun->fixupCount-- > 0) { fixupSP = INC1(fixupSP); scriptRun->parenStack[fixupSP].scriptCode = scriptCode; @@ -263,7 +263,7 @@ uscript_nextRun(UScriptRun *scriptRun, int32_t *pRunStart, int32_t *pRunLimit, U if (scriptRun == NULL || scriptRun->scriptLimit >= scriptRun->textLength) { return FALSE; } - + SYNC_FIXUP(scriptRun); scriptRun->scriptCode = USCRIPT_COMMON; diff --git a/deps/icu-small/source/common/usc_impl.h b/deps/icu-small/source/common/usc_impl.h index 44899649d4c315..cd76990501ac72 100644 --- a/deps/icu-small/source/common/usc_impl.h +++ b/deps/icu-small/source/common/usc_impl.h @@ -33,7 +33,7 @@ * * Scripts are chosen based on the UScriptCode enumeration. * No attempt is made to combine related scripts into a single run. In - * particular, Hiragana, Katakana, and Han characters will appear in seperate + * particular, Hiragana, Katakana, and Han characters will appear in separate * runs. * Here is an example of how to iterate over script runs: diff --git a/deps/icu-small/source/common/uscript_props.cpp b/deps/icu-small/source/common/uscript_props.cpp index 25d287b57a3564..07bae251ea323f 100644 --- a/deps/icu-small/source/common/uscript_props.cpp +++ b/deps/icu-small/source/common/uscript_props.cpp @@ -237,6 +237,11 @@ const int32_t SCRIPT_PROPS[] = { 0x1190C | EXCLUSION, // Diak 0x18C65 | EXCLUSION | LB_LETTERS, // Kits 0x10E88 | EXCLUSION | RTL, // Yezi + 0x12FE5 | EXCLUSION, // Cpmn + 0x10F7C | EXCLUSION | RTL, // Ougr + 0x16ABC | EXCLUSION, // Tnsa + 0x1E290 | EXCLUSION, // Toto + 0x10582 | EXCLUSION | CASED, // Vith // End copy-paste from parsescriptmetadata.py }; diff --git a/deps/icu-small/source/common/uset.cpp b/deps/icu-small/source/common/uset.cpp index ca7e80b082cb36..871a5d8986f050 100644 --- a/deps/icu-small/source/common/uset.cpp +++ b/deps/icu-small/source/common/uset.cpp @@ -83,7 +83,7 @@ uset_add(USet* set, UChar32 c) { U_CAPI void U_EXPORT2 uset_addRange(USet* set, UChar32 start, UChar32 end) { - ((UnicodeSet*) set)->UnicodeSet::add(start, end); + ((UnicodeSet*) set)->UnicodeSet::add(start, end); } U_CAPI void U_EXPORT2 @@ -196,6 +196,11 @@ uset_isEmpty(const USet* set) { return ((const UnicodeSet*) set)->UnicodeSet::isEmpty(); } +U_CAPI UBool U_EXPORT2 +uset_hasStrings(const USet* set) { + return ((const UnicodeSet*) set)->UnicodeSet::hasStrings(); +} + U_CAPI UBool U_EXPORT2 uset_contains(const USet* set, UChar32 c) { return ((const UnicodeSet*) set)->UnicodeSet::contains(c); @@ -296,6 +301,11 @@ class USetAccess /* not : public UObject because all methods are static */ { }; U_NAMESPACE_END +U_CAPI int32_t U_EXPORT2 +uset_getRangeCount(const USet *set) { + return ((const UnicodeSet *)set)->UnicodeSet::getRangeCount(); +} + U_CAPI int32_t U_EXPORT2 uset_getItemCount(const USet* uset) { const UnicodeSet& set = *(const UnicodeSet*)uset; @@ -330,11 +340,6 @@ uset_getItem(const USet* uset, int32_t itemIndex, } } -//U_CAPI int32_t U_EXPORT2 -//uset_getRangeCount(const USet* set) { -// return ((const UnicodeSet*) set)->getRangeCount(); -//} -// //U_CAPI UBool U_EXPORT2 //uset_getRange(const USet* set, int32_t rangeIndex, // UChar32* pStart, UChar32* pEnd) { @@ -355,7 +360,7 @@ uset_getItem(const USet* uset, int32_t itemIndex, * therefore all BMP code points precede all supplementary code points. * * Store each supplementary code point in 2 16-bit units, - * simply with higher-then-lower 16-bit halfs. + * simply with higher-then-lower 16-bit halves. * * Precede the entire list with the length. * If there are supplementary code points, then set bit 15 in the length @@ -562,40 +567,40 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, // efficiency. // --- // #define USET_GROW_DELTA 20 -// +// // static int32_t // findChar(const UChar32* array, int32_t length, UChar32 c) { // int32_t i; -// +// // /* check the last range limit first for more efficient appending */ // if(length>0) { // if(c>=array[length-1]) { // return length; // } -// +// // /* do not check the last range limit again in the loop below */ // --length; // } -// +// // for(i=0; i=array[i]; ++i) {} // return i; // } -// +// // static UBool // addRemove(USet* set, UChar32 c, int32_t doRemove) { // int32_t i, length, more; -// +// // if(set==NULL || (uint32_t)c>0x10ffff) { // return FALSE; // } -// +// // length=set->length; // i=findChar(set->array, length, c); // if((i&1)^doRemove) { // /* c is already in the set */ // return TRUE; // } -// +// // /* how many more array items do we need? */ // if(iarray[i]) { // /* c is just before the following range, extend that in-place by one */ @@ -635,7 +640,7 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, // /* insert two range limits c, c+1 */ // more=2; // } -// +// // /* insert range limits */ // if(length+more>set->capacity) { // /* reallocate */ @@ -646,13 +651,13 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, // } // set->capacity=newCapacity; // uprv_memcpy(newArray, set->array, length*4); -// +// // if(set->array!=set->staticBuffer) { // uprv_free(set->array); // } // set->array=newArray; // } -// +// // if(iarray+i+more, set->array+i, (length-i)*4); // } @@ -661,15 +666,15 @@ uset_getSerializedRange(const USerializedSet* set, int32_t rangeIndex, // set->array[i+1]=c+1; // } // set->length+=more; -// +// // return TRUE; // } -// +// // U_CAPI UBool U_EXPORT2 // uset_add(USet* set, UChar32 c) { // return addRemove(set, c, 0); // } -// +// // U_CAPI void U_EXPORT2 // uset_remove(USet* set, UChar32 c) { // addRemove(set, c, 1); diff --git a/deps/icu-small/source/common/uset_imp.h b/deps/icu-small/source/common/uset_imp.h index 5f4a3113d9aaf7..7233b9303c3a17 100644 --- a/deps/icu-small/source/common/uset_imp.h +++ b/deps/icu-small/source/common/uset_imp.h @@ -59,3 +59,4 @@ typedef struct USetAdder USetAdder; U_CDECL_END #endif + diff --git a/deps/icu-small/source/common/uset_props.cpp b/deps/icu-small/source/common/uset_props.cpp index b68175c1d23b14..f08e760b10d4e1 100644 --- a/deps/icu-small/source/common/uset_props.cpp +++ b/deps/icu-small/source/common/uset_props.cpp @@ -69,13 +69,13 @@ uset_openPatternOptions(const UChar* pattern, int32_t patternLength, } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uset_applyPattern(USet *set, const UChar *pattern, int32_t patternLength, uint32_t options, UErrorCode *status){ - // status code needs to be checked since we + // status code needs to be checked since we // dereference it if(status == NULL || U_FAILURE(*status)){ return 0; @@ -92,9 +92,9 @@ uset_applyPattern(USet *set, UnicodeString pat(pattern, patternLength); ParsePosition pos; - + ((UnicodeSet*) set)->applyPattern(pat, pos, options, NULL, *status); - + return pos.getIndex(); } diff --git a/deps/icu-small/source/common/usetiter.cpp b/deps/icu-small/source/common/usetiter.cpp index 5c9780548c182d..791516904944d3 100644 --- a/deps/icu-small/source/common/usetiter.cpp +++ b/deps/icu-small/source/common/usetiter.cpp @@ -120,7 +120,7 @@ void UnicodeSetIterator::reset() { } range = 0; endElement = -1; - nextElement = 0; + nextElement = 0; if (endRange >= 0) { loadRange(range); } diff --git a/deps/icu-small/source/common/ushape.cpp b/deps/icu-small/source/common/ushape.cpp index 792de50bbcc736..ae13b5c11834c5 100644 --- a/deps/icu-small/source/common/ushape.cpp +++ b/deps/icu-small/source/common/ushape.cpp @@ -816,9 +816,9 @@ handleGeneratedSpaces(UChar *dest, int32_t sourceLength, if(lamAlefOption || tashkeelOption){ uprv_memset(tempbuffer, 0, (sourceLength+1)*U_SIZEOF_UCHAR); - + i = j = sourceLength; count = 0; - + while(i >= 0) { if ( (lamAlefOption && dest[i] == LAMALEF_SPACE_SUB) || (tashkeelOption && dest[i] == TASHKEEL_SPACE_SUB) ){ diff --git a/deps/icu-small/source/common/usprep.cpp b/deps/icu-small/source/common/usprep.cpp index b84a5d93ea4987..41a1f56c773f5b 100644 --- a/deps/icu-small/source/common/usprep.cpp +++ b/deps/icu-small/source/common/usprep.cpp @@ -74,7 +74,7 @@ static const char * const PROFILE_NAMES[] = { static UBool U_CALLCONV isSPrepAcceptable(void * /* context */, - const char * /* type */, + const char * /* type */, const char * /* name */, const UDataInfo *pInfo) { if( @@ -105,7 +105,7 @@ getSPrepFoldingOffset(uint32_t data) { } /* hashes an entry */ -static int32_t U_CALLCONV +static int32_t U_CALLCONV hashEntry(const UHashTok parm) { UStringPrepKey *b = (UStringPrepKey *)parm.pointer; UHashTok namekey, pathkey; @@ -117,7 +117,7 @@ hashEntry(const UHashTok parm) { } /* compares two entries */ -static UBool U_CALLCONV +static UBool U_CALLCONV compareEntries(const UHashTok p1, const UHashTok p2) { UStringPrepKey *b1 = (UStringPrepKey *)p1.pointer; UStringPrepKey *b2 = (UStringPrepKey *)p2.pointer; @@ -126,16 +126,16 @@ compareEntries(const UHashTok p1, const UHashTok p2) { name2.pointer = b2->name; path1.pointer = b1->path; path2.pointer = b2->path; - return ((UBool)(uhash_compareChars(name1, name2) & + return ((UBool)(uhash_compareChars(name1, name2) & uhash_compareChars(path1, path2))); } -static void +static void usprep_unload(UStringPrepProfile* data){ udata_close(data->sprepData); } -static int32_t +static int32_t usprep_internal_flushCache(UBool noRefCount){ UStringPrepProfile *profile = NULL; UStringPrepKey *key = NULL; @@ -159,7 +159,7 @@ usprep_internal_flushCache(UBool noRefCount){ profile = (UStringPrepProfile *) e->value.pointer; key = (UStringPrepKey *) e->key.pointer; - if ((noRefCount== FALSE && profile->refCount == 0) || + if ((noRefCount== FALSE && profile->refCount == 0) || noRefCount== TRUE) { deletedNum++; uhash_removeElement(SHARED_DATA_HASHTABLE, e); @@ -178,15 +178,15 @@ usprep_internal_flushCache(UBool noRefCount){ uprv_free(profile); uprv_free(key); } - + } umtx_unlock(&usprepMutex); return deletedNum; } -/* Works just like ucnv_flushCache() -static int32_t +/* Works just like ucnv_flushCache() +static int32_t usprep_flushCache(){ return usprep_internal_flushCache(FALSE); } @@ -216,18 +216,18 @@ createCache(UErrorCode &status) { ucln_common_registerCleanup(UCLN_COMMON_USPREP, usprep_cleanup); } -static void +static void initCache(UErrorCode *status) { umtx_initOnce(gSharedDataInitOnce, &createCache, *status); } static UBool U_CALLCONV -loadData(UStringPrepProfile* profile, - const char* path, - const char* name, - const char* type, +loadData(UStringPrepProfile* profile, + const char* path, + const char* name, + const char* type, UErrorCode* errorCode) { - /* load Unicode SPREP data from file */ + /* load Unicode SPREP data from file */ UTrie _sprepTrie={ 0,0,0,0,0,0,0 }; UDataMemory *dataMemory; const int32_t *p=NULL; @@ -270,20 +270,20 @@ loadData(UStringPrepProfile* profile, umtx_unlock(&usprepMutex); /* initialize some variables */ profile->mappingData=(uint16_t *)((uint8_t *)(p+_SPREP_INDEX_TOP)+profile->indexes[_SPREP_INDEX_TRIE_SIZE]); - + u_getUnicodeVersion(normUnicodeVersion); - normUniVer = (normUnicodeVersion[0] << 24) + (normUnicodeVersion[1] << 16) + + normUniVer = (normUnicodeVersion[0] << 24) + (normUnicodeVersion[1] << 16) + (normUnicodeVersion[2] << 8 ) + (normUnicodeVersion[3]); - sprepUniVer = (dataVersion[0] << 24) + (dataVersion[1] << 16) + + sprepUniVer = (dataVersion[0] << 24) + (dataVersion[1] << 16) + (dataVersion[2] << 8 ) + (dataVersion[3]); normCorrVer = profile->indexes[_SPREP_NORM_CORRECTNS_LAST_UNI_VERSION]; - + if(U_FAILURE(*errorCode)){ udata_close(dataMemory); return FALSE; } - if( normUniVer < sprepUniVer && /* the Unicode version of SPREP file must be less than the Unicode Vesion of the normalization data */ - normUniVer < normCorrVer && /* the Unicode version of the NormalizationCorrections.txt file should be less than the Unicode Vesion of the normalization data */ + if( normUniVer < sprepUniVer && /* the Unicode version of SPREP file must be less than the Unicode Version of the normalization data */ + normUniVer < normCorrVer && /* the Unicode version of the NormalizationCorrections.txt file should be less than the Unicode Version of the normalization data */ ((profile->indexes[_SPREP_OPTIONS] & _SPREP_NORMALIZATION_ON) > 0) /* normalization turned on*/ ){ *errorCode = U_INVALID_FORMAT_ERROR; @@ -301,8 +301,8 @@ loadData(UStringPrepProfile* profile, return profile->isDataLoaded; } -static UStringPrepProfile* -usprep_getProfile(const char* path, +static UStringPrepProfile* +usprep_getProfile(const char* path, const char* name, UErrorCode *status){ @@ -315,9 +315,9 @@ usprep_getProfile(const char* path, } UStringPrepKey stackKey; - /* - * const is cast way to save malloc, strcpy and free calls - * we use the passed in pointers for fetching the data from the + /* + * const is cast way to save malloc, strcpy and free calls + * we use the passed in pointers for fetching the data from the * hash table which is safe */ stackKey.name = (char*) name; @@ -330,7 +330,7 @@ usprep_getProfile(const char* path, profile->refCount++; } umtx_unlock(&usprepMutex); - + if(profile == NULL) { /* else load the data and put the data in the cache */ LocalMemory newProfile; @@ -375,9 +375,9 @@ usprep_getProfile(const char* path, if(path != NULL){ key->path = keyPath.orphan(); uprv_strcpy(key->path, path); - } + } profile = newProfile.orphan(); - + /* add the data object to the cache */ profile->refCount = 1; uhash_put(SHARED_DATA_HASHTABLE, key.orphan(), profile, status); @@ -389,14 +389,14 @@ usprep_getProfile(const char* path, } U_CAPI UStringPrepProfile* U_EXPORT2 -usprep_open(const char* path, +usprep_open(const char* path, const char* name, UErrorCode* status){ if(status == NULL || U_FAILURE(*status)){ return NULL; } - + /* initialize the profile struct members */ return usprep_getProfile(path,name,status); } @@ -427,11 +427,11 @@ usprep_close(UStringPrepProfile* profile){ profile->refCount--; } umtx_unlock(&usprepMutex); - + } -U_CFUNC void -uprv_syntaxError(const UChar* rules, +U_CFUNC void +uprv_syntaxError(const UChar* rules, int32_t pos, int32_t rulesLen, UParseError* parseError){ @@ -439,16 +439,16 @@ uprv_syntaxError(const UChar* rules, return; } parseError->offset = pos; - parseError->line = 0 ; // we are not using line numbers - + parseError->line = 0 ; // we are not using line numbers + // for pre-context int32_t start = (pos < U_PARSE_CONTEXT_LEN)? 0 : (pos - (U_PARSE_CONTEXT_LEN-1)); int32_t limit = pos; - + u_memcpy(parseError->preContext,rules+start,limit-start); //null terminate the buffer parseError->preContext[limit-start] = 0; - + // for post-context; include error rules[pos] start = pos; limit = start + (U_PARSE_CONTEXT_LEN-1); @@ -468,8 +468,8 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ UStringPrepType type; if(trieWord == 0){ - /* - * Initial value stored in the mapping table + /* + * Initial value stored in the mapping table * just return USPREP_TYPE_LIMIT .. so that * the source codepoint is copied to the destination */ @@ -492,7 +492,7 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ value = (int16_t)trieWord; value = (value >> 2); } - + if((trieWord>>2) == _SPREP_MAX_INDEX_VALUE){ type = USPREP_DELETE; isIndex =FALSE; @@ -503,14 +503,14 @@ getValues(uint16_t trieWord, int16_t& value, UBool& isIndex){ } // TODO: change to writing to UnicodeString not UChar * -static int32_t -usprep_map( const UStringPrepProfile* profile, - const UChar* src, int32_t srcLength, +static int32_t +usprep_map( const UStringPrepProfile* profile, + const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UParseError* parseError, UErrorCode* status ){ - + uint16_t result; int32_t destIndex=0; int32_t srcIndex; @@ -527,11 +527,11 @@ usprep_map( const UStringPrepProfile* profile, UChar32 ch; U16_NEXT(src,srcIndex,srcLength,ch); - + result=0; UTRIE_GET16(&profile->sprepTrie,ch,result); - + type = getValues(result, value, isIndex); // check if the source codepoint is unassigned @@ -540,9 +540,9 @@ usprep_map( const UStringPrepProfile* profile, uprv_syntaxError(src,srcIndex-U16_LENGTH(ch), srcLength,parseError); *status = U_STRINGPREP_UNASSIGNED_ERROR; return 0; - + }else if(type == USPREP_MAP){ - + int32_t index, length; if(isIndex){ @@ -558,7 +558,7 @@ usprep_map( const UStringPrepProfile* profile, length = 3; }else{ length = profile->mappingData[index++]; - + } /* copy mapping to destination */ @@ -567,7 +567,7 @@ usprep_map( const UStringPrepProfile* profile, dest[destIndex] = profile->mappingData[index+i]; } destIndex++; /* for pre-flighting */ - } + } continue; }else{ // subtract the delta to arrive at the code point @@ -591,27 +591,27 @@ usprep_map( const UStringPrepProfile* profile, } destIndex +=2; } - + } - + return u_terminateUChars(dest, destCapacity, destIndex, status); } /* 1) Map -- For each character in the input, check if it has a mapping - and, if so, replace it with its mapping. + and, if so, replace it with its mapping. 2) Normalize -- Possibly normalize the result of step 1 using Unicode - normalization. + normalization. 3) Prohibit -- Check for any characters that are not allowed in the - output. If any are found, return an error. + output. If any are found, return an error. 4) Check bidi -- Possibly check for right-to-left characters, and if any are found, make sure that the whole string satisfies the requirements for bidirectional strings. If the string does not satisfy the requirements for bidirectional strings, return an - error. + error. [Unicode3.2] defines several bidirectional categories; each character has one bidirectional category assigned to it. For the purposes of the requirements below, an "RandALCat character" is a character that @@ -637,7 +637,7 @@ usprep_map( const UStringPrepProfile* profile, */ U_CAPI int32_t U_EXPORT2 usprep_prepare( const UStringPrepProfile* profile, - const UChar* src, int32_t srcLength, + const UChar* src, int32_t srcLength, UChar* dest, int32_t destCapacity, int32_t options, UParseError* parseError, @@ -723,7 +723,7 @@ usprep_prepare( const UStringPrepProfile* profile, UBool isIndex; UStringPrepType type = getValues(result, value, isIndex); - if( type == USPREP_PROHIBITED || + if( type == USPREP_PROHIBITED || ((result < _SPREP_TYPE_THRESHOLD) && (result & 0x01) /* first bit says it the code point is prohibited*/) ){ *status = U_STRINGPREP_PROHIBITED_ERROR; @@ -755,7 +755,7 @@ usprep_prepare( const UStringPrepProfile* profile, } //satisfy 3 - if( rightToLeft == TRUE && + if( rightToLeft == TRUE && !((firstCharDir == U_RIGHT_TO_LEFT || firstCharDir == U_RIGHT_TO_LEFT_ARABIC) && (direction == U_RIGHT_TO_LEFT || direction == U_RIGHT_TO_LEFT_ARABIC)) ){ diff --git a/deps/icu-small/source/common/ustack.cpp b/deps/icu-small/source/common/ustack.cpp index fb314b0ebe54cd..8d9e475374d959 100644 --- a/deps/icu-small/source/common/ustack.cpp +++ b/deps/icu-small/source/common/ustack.cpp @@ -37,10 +37,9 @@ UStack::~UStack() {} void* UStack::pop(void) { int32_t n = size() - 1; - void* result = 0; + void* result = nullptr; if (n >= 0) { - result = elementAt(n); - removeElementAt(n); + result = orphanElementAt(n); } return result; } diff --git a/deps/icu-small/source/common/ustr_cnv.cpp b/deps/icu-small/source/common/ustr_cnv.cpp index d2c2afea1592b3..9a25a9905a2374 100644 --- a/deps/icu-small/source/common/ustr_cnv.cpp +++ b/deps/icu-small/source/common/ustr_cnv.cpp @@ -38,10 +38,10 @@ U_CAPI UConverter* U_EXPORT2 u_getDefaultConverter(UErrorCode *status) { UConverter *converter = NULL; - + if (gDefaultConverter != NULL) { icu::umtx_lock(NULL); - + /* need to check to make sure it wasn't taken out from under us */ if (gDefaultConverter != NULL) { converter = gDefaultConverter; @@ -87,10 +87,10 @@ U_CAPI void U_EXPORT2 u_flushDefaultConverter() { UConverter *converter = NULL; - + if (gDefaultConverter != NULL) { icu::umtx_lock(NULL); - + /* need to check to make sure it wasn't taken out from under us */ if (gDefaultConverter != NULL) { converter = gDefaultConverter; diff --git a/deps/icu-small/source/common/ustr_cnv.h b/deps/icu-small/source/common/ustr_cnv.h index 12e86ea02f7264..861e3ebff0613b 100644 --- a/deps/icu-small/source/common/ustr_cnv.h +++ b/deps/icu-small/source/common/ustr_cnv.h @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 1999-2010, International Business Machines * Corporation and others. All Rights Reserved. @@ -40,7 +40,7 @@ U_CAPI void U_EXPORT2 u_releaseDefaultConverter(UConverter *converter); /** - * Flush the default converter, if cached. + * Flush the default converter, if cached. * @internal */ U_CAPI void U_EXPORT2 diff --git a/deps/icu-small/source/common/ustr_imp.h b/deps/icu-small/source/common/ustr_imp.h index 5b249ade3d21bb..3c4b9cc2a5397a 100644 --- a/deps/icu-small/source/common/ustr_imp.h +++ b/deps/icu-small/source/common/ustr_imp.h @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ********************************************************************** * Copyright (C) 1999-2015, International Business Machines * Corporation and others. All Rights Reserved. @@ -37,10 +37,10 @@ uprv_strCompare(const UChar *s1, int32_t length1, const UChar *s2, int32_t length2, UBool strncmpStyle, UBool codePointOrder); -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ustr_hashUCharsN(const UChar *str, int32_t length); -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ustr_hashCharsN(const char *str, int32_t length); U_CAPI int32_t U_EXPORT2 @@ -48,7 +48,7 @@ ustr_hashICharsN(const char *str, int32_t length); /** * Convert an ASCII-range lowercase character to uppercase. - * + * * @param c A UChar. * @return If UChar is a lowercase ASCII character, returns the uppercase version. * Otherwise, returns the input character. diff --git a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp index 457905eb60da00..3002d64e34f17f 100644 --- a/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp +++ b/deps/icu-small/source/common/ustr_titlecase_brkiter.cpp @@ -44,7 +44,7 @@ class WholeStringBreakIterator : public BreakIterator { public: WholeStringBreakIterator() : BreakIterator(), length(0) {} ~WholeStringBreakIterator() U_OVERRIDE; - UBool operator==(const BreakIterator&) const U_OVERRIDE; + bool operator==(const BreakIterator&) const U_OVERRIDE; WholeStringBreakIterator *clone() const U_OVERRIDE; static UClassID U_EXPORT2 getStaticClassID(); UClassID getDynamicClassID() const U_OVERRIDE; @@ -73,11 +73,11 @@ class WholeStringBreakIterator : public BreakIterator { UOBJECT_DEFINE_RTTI_IMPLEMENTATION(WholeStringBreakIterator) WholeStringBreakIterator::~WholeStringBreakIterator() {} -UBool WholeStringBreakIterator::operator==(const BreakIterator&) const { return FALSE; } +bool WholeStringBreakIterator::operator==(const BreakIterator&) const { return false; } WholeStringBreakIterator *WholeStringBreakIterator::clone() const { return nullptr; } CharacterIterator &WholeStringBreakIterator::getText() const { - UPRV_UNREACHABLE; // really should not be called + UPRV_UNREACHABLE_EXIT; // really should not be called } UText *WholeStringBreakIterator::getUText(UText * /*fillIn*/, UErrorCode &errorCode) const { if (U_SUCCESS(errorCode)) { @@ -100,7 +100,7 @@ void WholeStringBreakIterator::setText(UText *text, UErrorCode &errorCode) { } } void WholeStringBreakIterator::adoptText(CharacterIterator*) { - UPRV_UNREACHABLE; // should not be called + UPRV_UNREACHABLE_EXIT; // should not be called } int32_t WholeStringBreakIterator::first() { return 0; } diff --git a/deps/icu-small/source/common/ustr_wcs.cpp b/deps/icu-small/source/common/ustr_wcs.cpp index 9a49a67744b6f9..1a6ea2375d0bb6 100644 --- a/deps/icu-small/source/common/ustr_wcs.cpp +++ b/deps/icu-small/source/common/ustr_wcs.cpp @@ -35,7 +35,7 @@ #if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32) // TODO: We should use CharString for char buffers and UnicodeString for UChar buffers. // Then we could change this to work only with wchar_t buffers. -static inline UBool +static inline UBool u_growAnyBufferFromStatic(void *context, void **pBuffer, int32_t *pCapacity, int32_t reqCapacity, int32_t length, int32_t size) { @@ -61,11 +61,11 @@ u_growAnyBufferFromStatic(void *context, } /* helper function */ -static wchar_t* -_strToWCS(wchar_t *dest, +static wchar_t* +_strToWCS(wchar_t *dest, int32_t destCapacity, int32_t *pDestLength, - const UChar *src, + const UChar *src, int32_t srcLength, UErrorCode *pErrorCode){ @@ -78,20 +78,20 @@ _strToWCS(wchar_t *dest, wchar_t* intTarget=NULL; int32_t intTargetCapacity=0; int count=0,retVal=0; - + const UChar *pSrcLimit =NULL; const UChar *pSrc = src; conv = u_getDefaultConverter(pErrorCode); - + if(U_FAILURE(*pErrorCode)){ return NULL; } - + if(srcLength == -1){ srcLength = u_strlen(pSrc); } - + pSrcLimit = pSrc + srcLength; for(;;) { @@ -101,12 +101,12 @@ _strToWCS(wchar_t *dest, /* convert to chars using default converter */ ucnv_fromUnicode(conv,&tempBuf,tempBufLimit,&pSrc,pSrcLimit,NULL,(UBool)(pSrc==pSrcLimit),pErrorCode); count =(tempBuf - saveBuf); - + /* This should rarely occur */ if(*pErrorCode==U_BUFFER_OVERFLOW_ERROR){ tempBuf = saveBuf; - - /* we dont have enough room on the stack grow the buffer */ + + /* we don't have enough room on the stack grow the buffer */ int32_t newCapacity = 2 * srcLength; if(newCapacity <= tempBufCapacity) { newCapacity = _BUFFER_CAPACITY_MULTIPLIER * tempBufCapacity; @@ -115,7 +115,7 @@ _strToWCS(wchar_t *dest, newCapacity, count, 1)) { goto cleanup; } - + saveBuf = tempBuf; tempBufLimit = tempBuf + tempBufCapacity; tempBuf = tempBuf + count; @@ -132,19 +132,19 @@ _strToWCS(wchar_t *dest, /* done with conversion null terminate the char buffer */ if(count>=tempBufCapacity){ tempBuf = saveBuf; - /* we dont have enough room on the stack grow the buffer */ - if(!u_growAnyBufferFromStatic(stackBuffer,(void**) &tempBuf, &tempBufCapacity, + /* we don't have enough room on the stack grow the buffer */ + if(!u_growAnyBufferFromStatic(stackBuffer,(void**) &tempBuf, &tempBufCapacity, count+1, count, 1)) { goto cleanup; - } + } saveBuf = tempBuf; } - + saveBuf[count]=0; + - - /* allocate more space than required - * here we assume that every char requires + /* allocate more space than required + * here we assume that every char requires * no more than 2 wchar_ts */ intTargetCapacity = (count * _BUFFER_CAPACITY_MULTIPLIER + 1) /*for null termination */; @@ -156,15 +156,15 @@ _strToWCS(wchar_t *dest, int32_t remaining = intTargetCapacity; wchar_t* pIntTarget=intTarget; tempBuf = saveBuf; - + /* now convert the mbs to wcs */ for(;;){ - + /* we can call the system API since we are sure that * there is atleast 1 null in the input */ retVal = uprv_mbstowcs(pIntTarget,(tempBuf+nulLen),remaining); - + if(retVal==-1){ *pErrorCode = U_INVALID_CHAR_FOUND; break; @@ -189,10 +189,10 @@ _strToWCS(wchar_t *dest, /* we donot check for limit since tempBuf is null terminated */ while(tempBuf[nulLen++] != 0){ } - nulVal = (nulLen < srcLength) ? 1 : 0; + nulVal = (nulLen < srcLength) ? 1 : 0; pIntTarget = pIntTarget + retVal+nulVal; remaining -=(retVal+nulVal); - + /* check if we have reached the source limit*/ if(nulLen>=(count)){ break; @@ -200,10 +200,10 @@ _strToWCS(wchar_t *dest, } } count = (int32_t)(pIntTarget-intTarget); - + if(0 < count && count <= destCapacity){ uprv_memcpy(dest, intTarget, (size_t)count*sizeof(wchar_t)); - } + } if(pDestLength){ *pDestLength = count; @@ -229,10 +229,10 @@ _strToWCS(wchar_t *dest, #endif U_CAPI wchar_t* U_EXPORT2 -u_strToWCS(wchar_t *dest, +u_strToWCS(wchar_t *dest, int32_t destCapacity, int32_t *pDestLength, - const UChar *src, + const UChar *src, int32_t srcLength, UErrorCode *pErrorCode){ @@ -240,14 +240,14 @@ u_strToWCS(wchar_t *dest, if(pErrorCode==NULL || U_FAILURE(*pErrorCode)){ return NULL; } - + if( (src==NULL && srcLength!=0) || srcLength < -1 || (destCapacity<0) || (dest == NULL && destCapacity > 0) ) { *pErrorCode = U_ILLEGAL_ARGUMENT_ERROR; return NULL; } - + #ifdef U_WCHAR_IS_UTF16 /* wchar_t is UTF-16 just do a memcpy */ if(srcLength == -1){ @@ -265,23 +265,23 @@ u_strToWCS(wchar_t *dest, return dest; #elif defined U_WCHAR_IS_UTF32 - + return (wchar_t*)u_strToUTF32((UChar32*)dest, destCapacity, pDestLength, src, srcLength, pErrorCode); #else - + return _strToWCS(dest,destCapacity,pDestLength,src,srcLength, pErrorCode); - + #endif } #if !defined(U_WCHAR_IS_UTF16) && !defined(U_WCHAR_IS_UTF32) /* helper function */ -static UChar* +static UChar* _strFromWCS( UChar *dest, - int32_t destCapacity, + int32_t destCapacity, int32_t *pDestLength, const wchar_t *src, int32_t srcLength, @@ -292,7 +292,7 @@ _strFromWCS( UChar *dest, UChar* pTarget = NULL; UChar* pTargetLimit = NULL; UChar* target = NULL; - + UChar uStack [_STACK_BUFFER_CAPACITY]; wchar_t wStack[_STACK_BUFFER_CAPACITY]; @@ -316,7 +316,7 @@ _strFromWCS( UChar *dest, for(;;){ /* convert wchars to chars */ retVal = uprv_wcstombs(pCSrc,src, cStackCap); - + if(retVal == -1){ *pErrorCode = U_ILLEGAL_CHAR_FOUND; goto cleanup; @@ -331,14 +331,14 @@ _strFromWCS( UChar *dest, break; } } - + }else{ - /* here the source is not null terminated - * so it may have nulls embeded and we need to - * do some extra processing + /* here the source is not null terminated + * so it may have nulls embedded and we need to + * do some extra processing */ int32_t remaining =cStackCap; - + pSrcLimit = src + srcLength; for(;;){ @@ -363,7 +363,7 @@ _strFromWCS( UChar *dest, remaining = cStackCap-(pCSrc - pCSave); } - /* we have found a null so convert the + /* we have found a null so convert the * chunk from beginning of non-null char to null */ retVal = uprv_wcstombs(pCSrc,pSrc,remaining); @@ -382,7 +382,7 @@ _strFromWCS( UChar *dest, }else{ - /* the source is not null terminated and we are + /* the source is not null terminated and we are * end of source so we copy the source to a temp buffer * null terminate it and convert wchar_ts to chars */ @@ -399,10 +399,10 @@ _strFromWCS( UChar *dest, /* copy the contents to tempStack */ uprv_memcpy(pWStack, pSrc, (size_t)nulLen*sizeof(wchar_t)); } - + /* null terminate the tempBuffer */ pWStack[nulLen] =0 ; - + if(remaining < (nulLen * MB_CUR_MAX)){ /* Should rarely occur */ int32_t len = (pCSrc-pCSave); @@ -417,7 +417,7 @@ _strFromWCS( UChar *dest, } /* convert to chars */ retVal = uprv_wcstombs(pCSrc,pWStack,remaining); - + pCSrc += retVal; pSrc += nulLen; srcLength-=nulLen; /* decrement the srcLength */ @@ -426,30 +426,30 @@ _strFromWCS( UChar *dest, } } - /* OK..now we have converted from wchar_ts to chars now - * convert chars to UChars + /* OK..now we have converted from wchar_ts to chars now + * convert chars to UChars */ pCSrcLimit = pCSrc; pCSrc = pCSave; pTarget = target= dest; - pTargetLimit = dest + destCapacity; - + pTargetLimit = dest + destCapacity; + conv= u_getDefaultConverter(pErrorCode); - + if(U_FAILURE(*pErrorCode)|| conv==NULL){ goto cleanup; } - + for(;;) { - + *pErrorCode = U_ZERO_ERROR; - + /* convert to stack buffer*/ ucnv_toUnicode(conv,&pTarget,pTargetLimit,(const char**)&pCSrc,pCSrcLimit,NULL,(UBool)(pCSrc==pCSrcLimit),pErrorCode); - + /* increment count to number written to stack */ count+= pTarget - target; - + if(*pErrorCode==U_BUFFER_OVERFLOW_ERROR){ target = uStack; pTarget = uStack; @@ -457,17 +457,17 @@ _strFromWCS( UChar *dest, } else { break; } - + } - + if(pDestLength){ *pDestLength =count; } u_terminateUChars(dest,destCapacity,count,pErrorCode); - + cleanup: - + if(cStack != pCSave){ uprv_free(pCSave); } @@ -475,7 +475,7 @@ _strFromWCS( UChar *dest, if(wStack != pWStack){ uprv_free(pWStack); } - + u_releaseDefaultConverter(conv); return dest; @@ -484,7 +484,7 @@ _strFromWCS( UChar *dest, U_CAPI UChar* U_EXPORT2 u_strFromWCS(UChar *dest, - int32_t destCapacity, + int32_t destCapacity, int32_t *pDestLength, const wchar_t *src, int32_t srcLength, @@ -520,13 +520,13 @@ u_strFromWCS(UChar *dest, return dest; #elif defined U_WCHAR_IS_UTF32 - + return u_strFromUTF32(dest, destCapacity, pDestLength, (UChar32*)src, srcLength, pErrorCode); #else - return _strFromWCS(dest,destCapacity,pDestLength,src,srcLength,pErrorCode); + return _strFromWCS(dest,destCapacity,pDestLength,src,srcLength,pErrorCode); #endif diff --git a/deps/icu-small/source/common/ustrcase.cpp b/deps/icu-small/source/common/ustrcase.cpp index 618e847c65d5a6..36b19e75f2d7ae 100644 --- a/deps/icu-small/source/common/ustrcase.cpp +++ b/deps/icu-small/source/common/ustrcase.cpp @@ -544,7 +544,7 @@ U_NAMESPACE_BEGIN namespace GreekUpper { // Data generated by prototype code, see -// http://site.icu-project.org/design/case/greek-upper +// https://icu.unicode.org/design/case/greek-upper // TODO: Move this data into ucase.icu. static const uint16_t data0370[] = { // U+0370..03FF diff --git a/deps/icu-small/source/common/ustrenum.cpp b/deps/icu-small/source/common/ustrenum.cpp index 8be79c98999256..08a1bf29c3a975 100644 --- a/deps/icu-small/source/common/ustrenum.cpp +++ b/deps/icu-small/source/common/ustrenum.cpp @@ -10,7 +10,7 @@ * Since: ICU 2.4 ********************************************************************** */ -#include "utypeinfo.h" // for 'typeid' to work +#include "utypeinfo.h" // for 'typeid' to work #include "unicode/ustring.h" #include "unicode/strenum.h" @@ -120,12 +120,12 @@ StringEnumeration::setChars(const char *s, int32_t length, UErrorCode &status) { return NULL; } -UBool +bool StringEnumeration::operator==(const StringEnumeration& that)const { - return typeid(*this) == typeid(that); + return typeid(*this) == typeid(that); } -UBool +bool StringEnumeration::operator!=(const StringEnumeration& that)const { return !operator==(that); } @@ -260,7 +260,7 @@ U_CDECL_END * delete it (regardless of error status). */ U_CAPI UEnumeration* U_EXPORT2 -uenum_openFromStringEnumeration(icu::StringEnumeration* adopted, UErrorCode* ec) { +uenum_openFromStringEnumeration(icu::StringEnumeration* adopted, UErrorCode* ec) { UEnumeration* result = NULL; if (U_SUCCESS(*ec) && adopted != NULL) { result = (UEnumeration*) uprv_malloc(sizeof(UEnumeration)); diff --git a/deps/icu-small/source/common/ustrenum.h b/deps/icu-small/source/common/ustrenum.h index 582727cd1f742b..3703dedb97db12 100644 --- a/deps/icu-small/source/common/ustrenum.h +++ b/deps/icu-small/source/common/ustrenum.h @@ -47,9 +47,9 @@ class U_COMMON_API UStringEnumeration : public StringEnumeration { * @param status the error code. * @return number of elements in the iterator. */ - virtual int32_t count(UErrorCode& status) const; + virtual int32_t count(UErrorCode& status) const override; - virtual const char* next(int32_t *resultLength, UErrorCode& status); + virtual const char* next(int32_t *resultLength, UErrorCode& status) override; /** * Returns the next element a UnicodeString*. If there are no @@ -57,18 +57,18 @@ class U_COMMON_API UStringEnumeration : public StringEnumeration { * @param status the error code. * @return a pointer to the string, or NULL. */ - virtual const UnicodeString* snext(UErrorCode& status); + virtual const UnicodeString* snext(UErrorCode& status) override; /** * Resets the iterator. * @param status the error code. */ - virtual void reset(UErrorCode& status); + virtual void reset(UErrorCode& status) override; /** * ICU4C "poor man's RTTI", returns a UClassID for the actual ICU class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU4C "poor man's RTTI", returns a UClassID for this ICU class. @@ -84,3 +84,4 @@ class U_COMMON_API UStringEnumeration : public StringEnumeration { U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/common/ustring.cpp b/deps/icu-small/source/common/ustring.cpp index 8a6f737dc25202..847725638912fc 100644 --- a/deps/icu-small/source/common/ustring.cpp +++ b/deps/icu-small/source/common/ustring.cpp @@ -575,7 +575,7 @@ u_strspn(const UChar *string, const UChar *matchSet) /* ----- Text manipulation functions --- */ U_CAPI UChar* U_EXPORT2 -u_strtok_r(UChar *src, +u_strtok_r(UChar *src, const UChar *delim, UChar **saveState) { @@ -625,7 +625,7 @@ u_strtok_r(UChar *src, /* Miscellaneous functions -------------------------------------------------- */ U_CAPI UChar* U_EXPORT2 -u_strcat(UChar *dst, +u_strcat(UChar *dst, const UChar *src) { UChar *anchor = dst; /* save a pointer to start of dst */ @@ -640,9 +640,9 @@ u_strcat(UChar *dst, } U_CAPI UChar* U_EXPORT2 -u_strncat(UChar *dst, - const UChar *src, - int32_t n ) +u_strncat(UChar *dst, + const UChar *src, + int32_t n ) { if(n > 0) { UChar *anchor = dst; /* save a pointer to start of dst */ @@ -668,8 +668,8 @@ u_strncat(UChar *dst, /* ----- Text property functions --- */ U_CAPI int32_t U_EXPORT2 -u_strcmp(const UChar *s1, - const UChar *s2) +u_strcmp(const UChar *s1, + const UChar *s2) { UChar c1, c2; @@ -755,7 +755,7 @@ uprv_strCompare(const UChar *s1, int32_t length1, length2=u_strlen(s2); } - /* limit1=start1+min(lenght1, length2) */ + /* limit1=start1+min(length1, length2) */ if(length1 0) { int32_t rc; @@ -964,8 +964,8 @@ u_strncmpCodePointOrder(const UChar *s1, const UChar *s2, int32_t n) { } U_CAPI UChar* U_EXPORT2 -u_strcpy(UChar *dst, - const UChar *src) +u_strcpy(UChar *dst, + const UChar *src) { UChar *anchor = dst; /* save a pointer to start of dst */ @@ -976,9 +976,9 @@ u_strcpy(UChar *dst, } U_CAPI UChar* U_EXPORT2 -u_strncpy(UChar *dst, - const UChar *src, - int32_t n) +u_strncpy(UChar *dst, + const UChar *src, + int32_t n) { UChar *anchor = dst; /* save a pointer to start of dst */ @@ -991,7 +991,7 @@ u_strncpy(UChar *dst, } U_CAPI int32_t U_EXPORT2 -u_strlen(const UChar *s) +u_strlen(const UChar *s) { #if U_SIZEOF_WCHAR_T == U_SIZEOF_UCHAR return (int32_t)uprv_wcslen((const wchar_t *)s); @@ -1185,23 +1185,23 @@ static const UChar UNESCAPE_MAP[] = { enum { UNESCAPE_MAP_LENGTH = UPRV_LENGTHOF(UNESCAPE_MAP) }; /* Convert one octal digit to a numeric value 0..7, or -1 on failure */ -static int8_t _digit8(UChar c) { - if (c >= 0x0030 && c <= 0x0037) { - return (int8_t)(c - 0x0030); +static int32_t _digit8(UChar c) { + if (c >= u'0' && c <= u'7') { + return c - u'0'; } return -1; } /* Convert one hex digit to a numeric value 0..F, or -1 on failure */ -static int8_t _digit16(UChar c) { - if (c >= 0x0030 && c <= 0x0039) { - return (int8_t)(c - 0x0030); +static int32_t _digit16(UChar c) { + if (c >= u'0' && c <= u'9') { + return c - u'0'; } - if (c >= 0x0041 && c <= 0x0046) { - return (int8_t)(c - (0x0041 - 10)); + if (c >= u'A' && c <= u'F') { + return c - (u'A' - 10); } - if (c >= 0x0061 && c <= 0x0066) { - return (int8_t)(c - (0x0061 - 10)); + if (c >= u'a' && c <= u'f') { + return c - (u'a' - 10); } return -1; } @@ -1216,14 +1216,13 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, void *context) { int32_t start = *offset; - UChar c; + UChar32 c; UChar32 result = 0; int8_t n = 0; int8_t minDig = 0; int8_t maxDig = 0; - int8_t bitsPerDigit = 4; - int8_t dig; - int32_t i; + int8_t bitsPerDigit = 4; + int32_t dig; UBool braces = FALSE; /* Check that offset is in range */ @@ -1236,15 +1235,15 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, /* Convert hexadecimal and octal escapes */ switch (c) { - case 0x0075 /*'u'*/: + case u'u': minDig = maxDig = 4; break; - case 0x0055 /*'U'*/: + case u'U': minDig = maxDig = 8; break; - case 0x0078 /*'x'*/: + case u'x': minDig = 1; - if (*offset < length && charAt(*offset, context) == 0x7B /*{*/) { + if (*offset < length && charAt(*offset, context) == u'{') { ++(*offset); braces = TRUE; maxDig = 8; @@ -1266,7 +1265,7 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, if (minDig != 0) { while (*offset < length && n < maxDig) { c = charAt(*offset, context); - dig = (int8_t)((bitsPerDigit == 3) ? _digit8(c) : _digit16(c)); + dig = (bitsPerDigit == 3) ? _digit8(c) : _digit16(c); if (dig < 0) { break; } @@ -1278,7 +1277,7 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, goto err; } if (braces) { - if (c != 0x7D /*}*/) { + if (c != u'}') { goto err; } ++(*offset); @@ -1293,16 +1292,15 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, if (*offset < length && U16_IS_LEAD(result)) { int32_t ahead = *offset + 1; c = charAt(*offset, context); - if (c == 0x5C /*'\\'*/ && ahead < length) { - // Calling u_unescapeAt recursively may cause a stack overflow if - // we have repeated surrogate lead after that. Limit the - // length to 5 ('u' and 4 hex) after ahead. - int32_t tailLimit = ahead + 5; + if (c == u'\\' && ahead < length) { + // Calling ourselves recursively may cause a stack overflow if + // we have repeated escaped lead surrogates. + // Limit the length to 11 ("x{0000DFFF}") after ahead. + int32_t tailLimit = ahead + 11; if (tailLimit > length) { tailLimit = length; } - c = (UChar) u_unescapeAt(charAt, &ahead, tailLimit, - context); + c = u_unescapeAt(charAt, &ahead, tailLimit, context); } if (U16_IS_TRAIL(c)) { *offset = ahead; @@ -1313,7 +1311,7 @@ u_unescapeAt(UNESCAPE_CHAR_AT charAt, } /* Convert C-style escapes in table */ - for (i=0; i 0) ) { @@ -788,8 +788,8 @@ _appendUTF8(uint8_t *pDest, UChar32 c) { return pDest; } - -U_CAPI char* U_EXPORT2 + +U_CAPI char* U_EXPORT2 u_strToUTF8WithSub(char *dest, int32_t destCapacity, int32_t *pDestLength, @@ -807,7 +807,7 @@ u_strToUTF8WithSub(char *dest, if(U_FAILURE(*pErrorCode)){ return NULL; } - + if( (pSrc==NULL && srcLength!=0) || srcLength < -1 || (destCapacity<0) || (dest == NULL && destCapacity > 0) || subchar > 0x10ffff || U_IS_SURROGATE(subchar) @@ -852,7 +852,7 @@ u_strToUTF8WithSub(char *dest, int32_t length; /*need not check for NUL because NUL fails U16_IS_TRAIL() anyway*/ - if(U16_IS_SURROGATE_LEAD(ch) && U16_IS_TRAIL(ch2=*pSrc)) { + if(U16_IS_SURROGATE_LEAD(ch) && U16_IS_TRAIL(ch2=*pSrc)) { ++pSrc; ch=U16_GET_SUPPLEMENTARY(ch, ch2); } else if(subchar>=0) { @@ -939,7 +939,7 @@ u_strToUTF8WithSub(char *dest, break; /* recompute count */ } - if(U16_IS_SURROGATE_LEAD(ch) && U16_IS_TRAIL(ch2=*pSrc)) { + if(U16_IS_SURROGATE_LEAD(ch) && U16_IS_TRAIL(ch2=*pSrc)) { ++pSrc; ch=U16_GET_SUPPLEMENTARY(ch, ch2); @@ -994,7 +994,7 @@ u_strToUTF8WithSub(char *dest, } else /* ch is a surrogate */ { int32_t length; - if(U16_IS_SURROGATE_LEAD(ch) && pSrc=0) { @@ -1053,7 +1053,7 @@ u_strToUTF8WithSub(char *dest, return dest; } -U_CAPI char* U_EXPORT2 +U_CAPI char* U_EXPORT2 u_strToUTF8(char *dest, int32_t destCapacity, int32_t *pDestLength, @@ -1309,12 +1309,12 @@ u_strFromJavaModifiedUTF8WithSub( return dest; } -U_CAPI char* U_EXPORT2 +U_CAPI char* U_EXPORT2 u_strToJavaModifiedUTF8( char *dest, int32_t destCapacity, int32_t *pDestLength, - const UChar *src, + const UChar *src, int32_t srcLength, UErrorCode *pErrorCode) { int32_t reqLength=0; diff --git a/deps/icu-small/source/common/utext.cpp b/deps/icu-small/source/common/utext.cpp index 0dfef36d264176..ec79700ca81636 100644 --- a/deps/icu-small/source/common/utext.cpp +++ b/deps/icu-small/source/common/utext.cpp @@ -689,7 +689,7 @@ utext_close(UText *ut) { } // Zero out function table of the closed UText. This is a defensive move, - // inteded to cause applications that inadvertantly use a closed + // intended to cause applications that inadvertently use a closed // utext to crash with null pointer errors. ut->pFuncs = NULL; @@ -1046,7 +1046,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { // // Dispatch to the appropriate action for a - // Backwards Diretion iteration request. + // Backwards Direction iteration request. // if (ix==ut->chunkNativeStart) { // Check for normal sequential iteration cases first. @@ -1304,7 +1304,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { // If index is at the end, there is no character there to look at. if (ix != ut->b) { // Note: this function will only move the index back if it is on a trail byte - // and there is a preceding lead byte and the sequence from the lead + // and there is a preceding lead byte and the sequence from the lead // through this trail could be part of a valid UTF-8 sequence // Otherwise the index remains unchanged. U8_SET_CP_START(s8, 0, ix); @@ -1359,7 +1359,7 @@ utf8TextAccess(UText *ut, int64_t index, UBool forward) { int32_t sIx = srcIx; // ix of last byte of multi-byte u8 char // Get the full character from the UTF8 string. - // use code derived from tbe macros in utf8.h + // use code derived from the macros in utf8.h // Leaves srcIx pointing at the first byte of the UTF-8 char. // c=utf8_prevCharSafeBody(s8, 0, &srcIx, c, -3); @@ -1570,7 +1570,7 @@ utf8TextClone(UText *dest, const UText *src, UBool deep, UErrorCode *status) // For deep clones, make a copy of the string. // The copied storage is owned by the newly created clone. // - // TODO: There is an isssue with using utext_nativeLength(). + // TODO: There is an issue with using utext_nativeLength(). // That function is non-const in cases where the input was NUL terminated // and the length has not yet been determined. // This function (clone()) is const. @@ -2394,9 +2394,9 @@ ucstrTextClose(UText *ut) { static int64_t U_CALLCONV ucstrTextLength(UText *ut) { if (ut->a < 0) { - // null terminated, we don't yet know the length. Scan for it. + // null terminated, we don't yet know the length. Scan for it. // Access is not convenient for doing this - // because the current interation postion can't be changed. + // because the current iteration position can't be changed. const UChar *str = (const UChar *)ut->context; for (;;) { if (str[ut->chunkNativeLimit] == 0) { diff --git a/deps/icu-small/source/common/util.cpp b/deps/icu-small/source/common/util.cpp index 56dd4f1bfa76a0..f342172259980d 100644 --- a/deps/icu-small/source/common/util.cpp +++ b/deps/icu-small/source/common/util.cpp @@ -65,38 +65,52 @@ UnicodeString& ICU_Utility::appendNumber(UnicodeString& result, int32_t n, return result; } -/** - * Return true if the character is NOT printable ASCII. - */ UBool ICU_Utility::isUnprintable(UChar32 c) { return !(c >= 0x20 && c <= 0x7E); } -/** - * Escape unprintable characters using \uxxxx notation for U+0000 to - * U+FFFF and \Uxxxxxxxx for U+10000 and above. If the character is - * printable ASCII, then do nothing and return FALSE. Otherwise, - * append the escaped notation and return TRUE. - */ +UBool ICU_Utility::shouldAlwaysBeEscaped(UChar32 c) { + if (c < 0x20) { + return true; // C0 control codes + } else if (c <= 0x7e) { + return false; // printable ASCII + } else if (c <= 0x9f) { + return true; // C1 control codes + } else if (c < 0xd800) { + return false; // most of the BMP + } else if (c <= 0xdfff || (0xfdd0 <= c && c <= 0xfdef) || (c & 0xfffe) == 0xfffe) { + return true; // surrogate or noncharacter code points + } else if (c <= 0x10ffff) { + return false; // all else + } else { + return true; // not a code point + } +} + UBool ICU_Utility::escapeUnprintable(UnicodeString& result, UChar32 c) { if (isUnprintable(c)) { - result.append(BACKSLASH); - if (c & ~0xFFFF) { - result.append(UPPER_U); - result.append(DIGITS[0xF&(c>>28)]); - result.append(DIGITS[0xF&(c>>24)]); - result.append(DIGITS[0xF&(c>>20)]); - result.append(DIGITS[0xF&(c>>16)]); - } else { - result.append(LOWER_U); - } - result.append(DIGITS[0xF&(c>>12)]); - result.append(DIGITS[0xF&(c>>8)]); - result.append(DIGITS[0xF&(c>>4)]); - result.append(DIGITS[0xF&c]); - return TRUE; + escape(result, c); + return true; } - return FALSE; + return false; +} + +UnicodeString &ICU_Utility::escape(UnicodeString& result, UChar32 c) { + result.append(BACKSLASH); + if (c & ~0xFFFF) { + result.append(UPPER_U); + result.append(DIGITS[0xF&(c>>28)]); + result.append(DIGITS[0xF&(c>>24)]); + result.append(DIGITS[0xF&(c>>20)]); + result.append(DIGITS[0xF&(c>>16)]); + } else { + result.append(LOWER_U); + } + result.append(DIGITS[0xF&(c>>12)]); + result.append(DIGITS[0xF&(c>>8)]); + result.append(DIGITS[0xF&(c>>4)]); + result.append(DIGITS[0xF&c]); + return result; } /** @@ -169,7 +183,7 @@ int32_t ICU_Utility::skipWhitespace(const UnicodeString& str, int32_t& pos, //? if (!isForward) { //? --pos; // pos is a limit, so back up by one //? } -//? +//? //? while (pos != stop && //? PatternProps::isWhiteSpace(c = text.char32At(pos))) { //? if (isForward) { @@ -386,7 +400,7 @@ void ICU_Utility::appendToRule(UnicodeString& rule, quoteBuf.append(c); } } - + // Otherwise just append else { rule.append(c); diff --git a/deps/icu-small/source/common/util.h b/deps/icu-small/source/common/util.h index 74fdd75982cc5a..7e6d356899f924 100644 --- a/deps/icu-small/source/common/util.h +++ b/deps/icu-small/source/common/util.h @@ -55,20 +55,30 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s /** * Return true if the character is NOT printable ASCII. - * - * This method should really be in UnicodeString (or similar). For - * now, we implement it here and share it with friend classes. + * The tab, newline and linefeed characters are considered unprintable. */ static UBool isUnprintable(UChar32 c); /** - * Escape unprintable characters using \uxxxx notation for U+0000 to + * @return true for control codes and for surrogate and noncharacter code points + */ + static UBool shouldAlwaysBeEscaped(UChar32 c); + + /** + * Escapes one unprintable code point using \uxxxx notation for U+0000 to * U+FFFF and \Uxxxxxxxx for U+10000 and above. If the character is * printable ASCII, then do nothing and return false. Otherwise, * append the escaped notation and return true. */ static UBool escapeUnprintable(UnicodeString& result, UChar32 c); + /** + * Escapes one code point using \uxxxx notation + * for U+0000 to U+FFFF and \Uxxxxxxxx for U+10000 and above. + * @return result + */ + static UnicodeString &escape(UnicodeString& result, UChar32 c); + /** * Returns the index of a character, ignoring quoted text. * For example, in the string "abc'hide'h", the 'h' in "hide" will not be @@ -153,7 +163,7 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s */ static int32_t parsePattern(const UnicodeString& rule, int32_t pos, int32_t limit, const UnicodeString& pattern, int32_t* parsedInts); - + /** * Parse a pattern string within the given Replaceable and a parsing * pattern. Characters are matched literally and case-sensitively @@ -199,7 +209,7 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s * position. Return the identifier, or an empty string if there * is no identifier. * @param str the string to parse - * @param pos INPUT-OUPUT parameter. On INPUT, pos is the + * @param pos INPUT-OUTPUT parameter. On INPUT, pos is the * first character to examine. It must be less than str.length(), * and it must not point to a whitespace character. That is, must * have pos < str.length() and @@ -234,7 +244,7 @@ class U_COMMON_API ICU_Utility /* not : public UObject because all methods are s UBool isLiteral, UBool escapeUnprintable, UnicodeString& quoteBuf); - + static void appendToRule(UnicodeString& rule, const UnicodeString& text, UBool isLiteral, diff --git a/deps/icu-small/source/common/util_props.cpp b/deps/icu-small/source/common/util_props.cpp index 36057a6066db94..d6ae052214cc13 100644 --- a/deps/icu-small/source/common/util_props.cpp +++ b/deps/icu-small/source/common/util_props.cpp @@ -135,7 +135,7 @@ int32_t ICU_Utility::parsePattern(const UnicodeString& rule, int32_t pos, int32_ * position. Return the identifier, or an empty string if there * is no identifier. * @param str the string to parse - * @param pos INPUT-OUPUT parameter. On INPUT, pos is the + * @param pos INPUT-OUTPUT parameter. On INPUT, pos is the * first character to examine. It must be less than str.length(), * and it must not point to a whitespace character. That is, must * have pos < str.length(). On @@ -214,3 +214,4 @@ int32_t ICU_Utility::parseNumber(const UnicodeString& text, } U_NAMESPACE_END + diff --git a/deps/icu-small/source/common/utrace.cpp b/deps/icu-small/source/common/utrace.cpp index 04488d06a0e233..dfd2062f31b6dc 100644 --- a/deps/icu-small/source/common/utrace.cpp +++ b/deps/icu-small/source/common/utrace.cpp @@ -67,7 +67,7 @@ utrace_exit(int32_t fnNumber, int32_t returnType, ...) { fmt = gExitFmtPtrStatus; break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } va_start(args, returnType); @@ -75,14 +75,14 @@ utrace_exit(int32_t fnNumber, int32_t returnType, ...) { va_end(args); } } + - - -U_CAPI void U_EXPORT2 + +U_CAPI void U_EXPORT2 utrace_data(int32_t fnNumber, int32_t level, const char *fmt, ...) { if (pTraceDataFunc != NULL) { va_list args; - va_start(args, fmt ); + va_start(args, fmt ); (*pTraceDataFunc)(gTraceContext, fnNumber, level, fmt, args); va_end(args); } @@ -93,7 +93,7 @@ static void outputChar(char c, char *outBuf, int32_t *outIx, int32_t capacity, i int32_t i; /* Check whether a start of line indenting is needed. Three cases: * 1. At the start of the first line (output index == 0). - * 2. At the start of subsequent lines (preceeding char in buffer == '\n') + * 2. At the start of subsequent lines (preceding char in buffer == '\n') * 3. When preflighting buffer len (buffer capacity is exceeded), when * a \n is output. Ideally we wouldn't do the indent until the following char * is received, but that won't work because there's no place to remember that @@ -146,7 +146,7 @@ static void outputPtrBytes(void *val, char *outBuf, int32_t *outIx, int32_t capa p += sizeof(void *) - 1; #endif - /* Loop through the bytes of the ptr as it sits in memory, from + /* Loop through the bytes of the ptr as it sits in memory, from * most significant to least significant end */ for (i=0; i 0) { outputHexBytes(longArg, charsToOutput, outBuf, &outIx, capacity); @@ -369,13 +369,13 @@ utrace_vformat(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, default: /* %. in format string, where . is some character not in the set * of recognized format chars. Just output it as if % wasn't there. - * (Covers "%%" outputing a single '%') + * (Covers "%%" outputting a single '%') */ outputChar(fmtC, outBuf, &outIx, capacity, indent); } } - outputChar(0, outBuf, &outIx, capacity, indent); /* Make sure that output is null terminated */ - return outIx + 1; /* outIx + 1 because outIx does not increment when outputing final null. */ + outputChar(0, outBuf, &outIx, capacity, indent); /* Make sure that output is null terminated */ + return outIx + 1; /* outIx + 1 because outIx does not increment when outputting final null. */ } @@ -386,7 +386,7 @@ utrace_format(char *outBuf, int32_t capacity, int32_t indent, const char *fmt, ...) { int32_t retVal; va_list args; - va_start(args, fmt ); + va_start(args, fmt ); retVal = utrace_vformat(outBuf, capacity, indent, fmt, args); va_end(args); return retVal; @@ -429,7 +429,7 @@ utrace_getLevel() { } -U_CFUNC UBool +U_CFUNC UBool utrace_cleanup() { pTraceEntryFunc = NULL; pTraceExitFunc = NULL; @@ -461,7 +461,7 @@ trConvNames[] = { NULL }; - + static const char * const trCollNames[] = { "ucol_open", @@ -486,7 +486,7 @@ trResDataNames[] = { NULL }; - + U_CAPI const char * U_EXPORT2 utrace_functionName(int32_t fnNumber) { if(UTRACE_FUNCTION_START <= fnNumber && fnNumber < UTRACE_FUNCTION_LIMIT) { @@ -501,3 +501,4 @@ utrace_functionName(int32_t fnNumber) { return "[BOGUS Trace Function Number]"; } } + diff --git a/deps/icu-small/source/common/utracimp.h b/deps/icu-small/source/common/utracimp.h index 42e92749d65f02..945540d25af992 100644 --- a/deps/icu-small/source/common/utracimp.h +++ b/deps/icu-small/source/common/utracimp.h @@ -47,8 +47,8 @@ U_CDECL_BEGIN -/** - * Traced Function Exit return types. +/** + * Traced Function Exit return types. * Flags indicating the number and types of varargs included in a call * to a UTraceExit function. * Bits 0-3: The function return type. First variable param. @@ -117,15 +117,15 @@ U_CDECL_END #define UTRACE_LEVEL(level) (utrace_getLevel()>=(level)) /** - * Flag bit in utraceFnNumber, the local variable added to each function + * Flag bit in utraceFnNumber, the local variable added to each function * with tracing code to contains the function number. * * Set the flag if the function's entry is traced, which will cause the - * function's exit to also be traced. utraceFnNumber is uncoditionally + * function's exit to also be traced. utraceFnNumber is uncoditionally * set at entry, whether or not the entry is traced, so that it will * always be available for error trace output. * @internal - */ + */ #define UTRACE_TRACED_ENTRY 0x80000000 /** @@ -195,7 +195,7 @@ UPRV_BLOCK_MACRO_BEGIN { \ * * @param val The function's return value, int32_t or compatible type. * - * @internal + * @internal */ #define UTRACE_EXIT_VALUE(val) UPRV_BLOCK_MACRO_BEGIN { \ if(utraceFnNumber & UTRACE_TRACED_ENTRY) { \ diff --git a/deps/icu-small/source/common/uts46.cpp b/deps/icu-small/source/common/uts46.cpp index f25b4e12f124ca..6f9307033904a6 100644 --- a/deps/icu-small/source/common/uts46.cpp +++ b/deps/icu-small/source/common/uts46.cpp @@ -118,35 +118,35 @@ class UTS46 : public IDNA { virtual UnicodeString & labelToASCII(const UnicodeString &label, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual UnicodeString & labelToUnicode(const UnicodeString &label, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual UnicodeString & nameToASCII(const UnicodeString &name, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual UnicodeString & nameToUnicode(const UnicodeString &name, UnicodeString &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual void labelToASCII_UTF8(StringPiece label, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual void labelToUnicodeUTF8(StringPiece label, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual void nameToASCII_UTF8(StringPiece name, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; virtual void nameToUnicodeUTF8(StringPiece name, ByteSink &dest, - IDNAInfo &info, UErrorCode &errorCode) const; + IDNAInfo &info, UErrorCode &errorCode) const override; private: UnicodeString & diff --git a/deps/icu-small/source/common/uvector.cpp b/deps/icu-small/source/common/uvector.cpp index 39a92e07c01911..4da8b864e1be34 100644 --- a/deps/icu-small/source/common/uvector.cpp +++ b/deps/icu-small/source/common/uvector.cpp @@ -17,59 +17,34 @@ U_NAMESPACE_BEGIN -#define DEFAULT_CAPACITY 8 +constexpr int32_t DEFAULT_CAPACITY = 8; /* * Constants for hinting whether a key is an integer * or a pointer. If a hint bit is zero, then the associated * token is assumed to be an integer. This is needed for iSeries */ -#define HINT_KEY_POINTER (1) -#define HINT_KEY_INTEGER (0) - +constexpr int8_t HINT_KEY_POINTER = 1; +constexpr int8_t HINT_KEY_INTEGER = 0; + UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UVector) UVector::UVector(UErrorCode &status) : - count(0), - capacity(0), - elements(0), - deleter(0), - comparer(0) -{ - _init(DEFAULT_CAPACITY, status); + UVector(nullptr, nullptr, DEFAULT_CAPACITY, status) { } UVector::UVector(int32_t initialCapacity, UErrorCode &status) : - count(0), - capacity(0), - elements(0), - deleter(0), - comparer(0) -{ - _init(initialCapacity, status); + UVector(nullptr, nullptr, initialCapacity, status) { } UVector::UVector(UObjectDeleter *d, UElementsAreEqual *c, UErrorCode &status) : - count(0), - capacity(0), - elements(0), - deleter(d), - comparer(c) -{ - _init(DEFAULT_CAPACITY, status); + UVector(d, c, DEFAULT_CAPACITY, status) { } UVector::UVector(UObjectDeleter *d, UElementsAreEqual *c, int32_t initialCapacity, UErrorCode &status) : - count(0), - capacity(0), - elements(0), deleter(d), comparer(c) { - _init(initialCapacity, status); -} - -void UVector::_init(int32_t initialCapacity, UErrorCode &status) { if (U_FAILURE(status)) { return; } @@ -78,7 +53,7 @@ void UVector::_init(int32_t initialCapacity, UErrorCode &status) { initialCapacity = DEFAULT_CAPACITY; } elements = (UElement *)uprv_malloc(sizeof(UElement)*initialCapacity); - if (elements == 0) { + if (elements == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else { capacity = initialCapacity; @@ -88,7 +63,7 @@ void UVector::_init(int32_t initialCapacity, UErrorCode &status) { UVector::~UVector() { removeAllElements(); uprv_free(elements); - elements = 0; + elements = nullptr; } /** @@ -100,7 +75,7 @@ void UVector::assign(const UVector& other, UElementAssigner *assign, UErrorCode setSize(other.count, ec); if (U_SUCCESS(ec)) { for (int32_t i=0; iindex; --i) { - elements[i] = elements[i-1]; + if (ensureCapacity(count + 1, status)) { + if (0 <= index && index <= count) { + for (int32_t i=count; i>index; --i) { + elements[i] = elements[i-1]; + } + elements[index].pointer = obj; + ++count; + } else { + /* index out of range */ + status = U_ILLEGAL_ARGUMENT_ERROR; } - elements[index].pointer = obj; - ++count; } - /* else index out of range */ + if (U_FAILURE(status) && deleter != nullptr) { + (*deleter)(obj); + } } void UVector::insertElementAt(int32_t elem, int32_t index, UErrorCode &status) { + U_ASSERT(deleter == nullptr); // Usage error. Mixing up ints and pointers. // must have 0 <= index <= count - if (0 <= index && index <= count && ensureCapacity(count + 1, status)) { - for (int32_t i=count; i>index; --i) { - elements[i] = elements[i-1]; + if (ensureCapacity(count + 1, status)) { + if (0 <= index && index <= count) { + for (int32_t i=count; i>index; --i) { + elements[i] = elements[i-1]; + } + elements[index].pointer = nullptr; + elements[index].integer = elem; + ++count; + } else { + /* index out of range */ + status = U_ILLEGAL_ARGUMENT_ERROR; } - elements[index].pointer = NULL; - elements[index].integer = elem; - ++count; } - /* else index out of range */ } void* UVector::elementAt(int32_t index) const { @@ -237,7 +242,7 @@ UBool UVector::retainAll(const UVector& other) { void UVector::removeElementAt(int32_t index) { void* e = orphanElementAt(index); - if (e != 0 && deleter != 0) { + if (e != nullptr && deleter != nullptr) { (*deleter)(e); } } @@ -252,9 +257,9 @@ UBool UVector::removeElement(void* obj) { } void UVector::removeAllElements(void) { - if (deleter != 0) { + if (deleter != nullptr) { for (int32_t i=0; icount != other.count) { return FALSE; } - if (comparer == 0) { + if (comparer == nullptr) { for (i=0; i (INT32_MAX - 1) / 2) { // integer overflow check - status = U_ILLEGAL_ARGUMENT_ERROR; - return FALSE; + status = U_ILLEGAL_ARGUMENT_ERROR; + return FALSE; } int32_t newCap = capacity * 2; if (newCap < minimumCapacity) { newCap = minimumCapacity; } if (newCap > (int32_t)(INT32_MAX / sizeof(UElement))) { // integer overflow check - // We keep the original memory contents on bad minimumCapacity. - status = U_ILLEGAL_ARGUMENT_ERROR; - return FALSE; + // We keep the original memory contents on bad minimumCapacity. + status = U_ILLEGAL_ARGUMENT_ERROR; + return FALSE; } UElement* newElems = (UElement *)uprv_realloc(elements, sizeof(UElement)*newCap); - if (newElems == NULL) { + if (newElems == nullptr) { // We keep the original contents on the memory failure on realloc or bad minimumCapacity. status = U_MEMORY_ALLOCATION_ERROR; return FALSE; @@ -359,30 +362,60 @@ UBool UVector::ensureCapacity(int32_t minimumCapacity, UErrorCode &status) { return TRUE; } + +UBool UVector::ensureCapacity(int32_t minimumCapacity, UErrorCode &status) { + if (U_FAILURE(status)) { + return false; + } + if (minimumCapacity < 0) { + status = U_ILLEGAL_ARGUMENT_ERROR; + return false; + } + if (capacity < minimumCapacity) { + if (capacity > (INT32_MAX - 1) / 2) { // integer overflow check + status = U_ILLEGAL_ARGUMENT_ERROR; + return false; + } + int32_t newCap = capacity * 2; + if (newCap < minimumCapacity) { + newCap = minimumCapacity; + } + if (newCap > (int32_t)(INT32_MAX / sizeof(UElement))) { // integer overflow check + // We keep the original memory contents on bad minimumCapacity. + status = U_ILLEGAL_ARGUMENT_ERROR; + return false; + } + UElement* newElems = (UElement *)uprv_realloc(elements, sizeof(UElement)*newCap); + if (newElems == nullptr) { + // We keep the original contents on the memory failure on realloc or bad minimumCapacity. + status = U_MEMORY_ALLOCATION_ERROR; + return false; + } + elements = newElems; + capacity = newCap; + } + return true; +} /** * Change the size of this vector as follows: If newSize is smaller, * then truncate the array, possibly deleting held elements for i >= * newSize. If newSize is larger, grow the array, filling in new - * slots with NULL. + * slots with nullptr. */ void UVector::setSize(int32_t newSize, UErrorCode &status) { - int32_t i; - if (newSize < 0) { + if (!ensureCapacity(newSize, status)) { return; } if (newSize > count) { - if (!ensureCapacity(newSize, status)) { - return; - } UElement empty; - empty.pointer = NULL; + empty.pointer = nullptr; empty.integer = 0; - for (i=count; i=newSize; --i) { + for (int32_t i=count-1; i>=newSize; --i) { removeElementAt(i); } } @@ -422,7 +455,7 @@ UElementsAreEqual *UVector::setComparer(UElementsAreEqual *d) { * then 0 is returned and the vector is unchanged. */ void* UVector::orphanElementAt(int32_t index) { - void* e = 0; + void* e = nullptr; if (0 <= index && index < count) { e = elements[index].pointer; for (int32_t i=index; i 0) { max = probe; } else { @@ -474,13 +514,11 @@ void UVector::sortedInsert(UElement e, UElementComparator *compare, UErrorCode& min = probe + 1; } } - if (ensureCapacity(count + 1, ec)) { - for (int32_t i=count; i>min; --i) { - elements[i] = elements[i-1]; - } - elements[min] = e; - ++count; + for (int32_t i=count; i>min; --i) { + elements[i] = elements[i-1]; } + elements[min] = e; + ++count; } /** @@ -492,7 +530,7 @@ void UVector::sortedInsert(UElement e, UElementComparator *compare, UErrorCode& * * The context pointer to this function is a pointer back * (with some extra indirection) to the user supplied comparator. - * + * */ static int32_t U_CALLCONV sortComparator(const void *context, const void *left, const void *right) { @@ -526,7 +564,7 @@ sortiComparator(const void * /*context */, const void *left, const void *right) void UVector::sorti(UErrorCode &ec) { if (U_SUCCESS(ec)) { uprv_sortArray(elements, count, sizeof(UElement), - sortiComparator, NULL, FALSE, &ec); + sortiComparator, nullptr, FALSE, &ec); } } @@ -539,7 +577,7 @@ void UVector::sorti(UErrorCode &ec) { * required by uprv_sortArray(). This is handled by passing the * the UVector sort function pointer via the context pointer to a * sortArray() comparator function, which can then call back to - * the original user functtion. + * the original user function. * * An additional twist is that it's not safe to pass a pointer-to-function * as a (void *) data pointer, so instead we pass a (data) pointer to a @@ -564,3 +602,4 @@ void UVector::sortWithUComparator(UComparator *compare, const void *context, UEr } U_NAMESPACE_END + diff --git a/deps/icu-small/source/common/uvector.h b/deps/icu-small/source/common/uvector.h index 34f3434a974012..f61fcc2be60fb1 100644 --- a/deps/icu-small/source/common/uvector.h +++ b/deps/icu-small/source/common/uvector.h @@ -23,43 +23,44 @@ U_NAMESPACE_BEGIN /** - *

    Ultralightweight C++ implementation of a void* vector + * Ultralightweight C++ implementation of a `void*` vector * that is (mostly) compatible with java.util.Vector. * - *

    This is a very simple implementation, written to satisfy an + * This is a very simple implementation, written to satisfy an * immediate porting need. As such, it is not completely fleshed out, * and it aims for simplicity and conformity. Nonetheless, it serves * its purpose (porting code from java that uses java.util.Vector) * well, and it could be easily made into a more robust vector class. * - *

    Design notes + * *Design notes* * - *

    There is index bounds checking, but little is done about it. If + * There is index bounds checking, but little is done about it. If * indices are out of bounds, either nothing happens, or zero is - * returned. We do avoid indexing off into the weeds. + * returned. We *do* avoid indexing off into the weeds. * - *

    There is detection of out of memory, but the handling is very - * coarse-grained -- similar to UnicodeString's protocol, but even - * coarser. The class contains one static flag that is set - * when any call to new returns zero. This allows the caller - * to use several vectors and make just one check at the end to see if - * a memory failure occurred. This is more efficient than making a - * check after each call on each vector when doing many operations on - * multiple vectors. The single static flag works best when memory - * failures are infrequent, and when recovery options are limited or - * nonexistent. - * - *

    Since we don't have garbage collection, UVector was given the - * option to ownits contents. To employ this, set a deleter - * function. The deleter is called on a void* pointer when that + * Since we don't have garbage collection, UVector was given the + * option to *own* its contents. To employ this, set a deleter + * function. The deleter is called on a `void *` pointer when that * pointer is released by the vector, either when the vector itself is - * destructed, or when a call to setElementAt() overwrites an element, - * or when a call to remove() or one of its variants explicitly + * destructed, or when a call to `setElementAt()` overwrites an element, + * or when a call to remove()` or one of its variants explicitly * removes an element. If no deleter is set, or the deleter is set to * zero, then it is assumed that the caller will delete elements as * needed. * - *

    In order to implement methods such as contains() and indexOf(), + * *Error Handling* Functions that can fail, from out of memory conditions + * for example, include a UErrorCode parameter. Any function called + * with an error code already indicating a failure will not modify the + * vector in any way. + * + * For vectors that have a deleter function, any failure in inserting + * an element into the vector will instead delete the element that + * could not be adopted. This simplifies object ownership + * management around calls to `addElement()` and `insertElementAt()`; + * error or no, the function always takes ownership of an incoming object + * from the caller. + * + * In order to implement methods such as `contains()` and `indexOf()`, * UVector needs a way to compare objects for equality. To do so, it * uses a comparison function, or "comparer." If the comparer is not * set, or is set to zero, then all such methods will act as if the @@ -73,23 +74,21 @@ U_NAMESPACE_BEGIN * @author Alan Liu */ class U_COMMON_API UVector : public UObject { - // NOTE: UVector uses the UHashKey (union of void* and int32_t) as + // NOTE: UVector uses the UElement (union of void* and int32_t) as // its basic storage type. It uses UElementsAreEqual as its // comparison function. It uses UObjectDeleter as its deleter - // function. These are named for hashtables, but used here as-is - // rather than duplicating the type. This allows sharing of - // support functions. + // function. This allows sharing of support functions with UHashtable. private: - int32_t count; + int32_t count = 0; - int32_t capacity; + int32_t capacity = 0; - UElement* elements; + UElement* elements = nullptr; - UObjectDeleter *deleter; + UObjectDeleter *deleter = nullptr; - UElementsAreEqual *comparer; + UElementsAreEqual *comparer = nullptr; public: UVector(UErrorCode &status); @@ -113,18 +112,44 @@ class U_COMMON_API UVector : public UObject { * equal if they are of the same size and all elements are equal, * as compared using this object's comparer. */ - UBool operator==(const UVector& other); + bool operator==(const UVector& other) const; /** * Equivalent to !operator==() */ - inline UBool operator!=(const UVector& other); + inline bool operator!=(const UVector& other) const {return !operator==(other);} //------------------------------------------------------------ // java.util.Vector API //------------------------------------------------------------ - void addElement(void* obj, UErrorCode &status); + /* + * Old version of addElement, with non-standard error handling. + * Will be removed once all uses have been switched to the new addElement(). + */ + void addElementX(void* obj, UErrorCode &status); + + /** + * Add an element at the end of the vector. + * For use only with vectors that do not adopt their elements, which is to say, + * have not set an element deleter function. See `adoptElement()`. + */ + void addElement(void *obj, UErrorCode &status); + + /** + * Add an element at the end of the vector. + * For use only with vectors that adopt their elements, which is to say, + * have set an element deleter function. See `addElement()`. + * + * If the element cannot be successfully added, it will be deleted. This is + * normal ICU _adopt_ behavior - one way or another ownership of the incoming + * object is transferred from the caller. + * + * `addElement()` and `adoptElement()` are separate functions to make it easier + * to see what the function is doing at call sites. Having a single combined function, + * as in earlier versions of UVector, had proved to be error-prone. + */ + void adoptElement(void *obj, UErrorCode &status); void addElement(int32_t elem, UErrorCode &status); @@ -135,26 +160,26 @@ class U_COMMON_API UVector : public UObject { void insertElementAt(void* obj, int32_t index, UErrorCode &status); void insertElementAt(int32_t elem, int32_t index, UErrorCode &status); - + void* elementAt(int32_t index) const; int32_t elementAti(int32_t index) const; UBool equals(const UVector &other) const; - inline void* firstElement(void) const; + inline void* firstElement(void) const {return elementAt(0);} - inline void* lastElement(void) const; + inline void* lastElement(void) const {return elementAt(count-1);} - inline int32_t lastElementi(void) const; + inline int32_t lastElementi(void) const {return elementAti(count-1);} int32_t indexOf(void* obj, int32_t startIndex = 0) const; int32_t indexOf(int32_t obj, int32_t startIndex = 0) const; - inline UBool contains(void* obj) const; + inline UBool contains(void* obj) const {return indexOf(obj) >= 0;} - inline UBool contains(int32_t obj) const; + inline UBool contains(int32_t obj) const {return indexOf(obj) >= 0;} UBool containsAll(const UVector& other) const; @@ -168,9 +193,15 @@ class U_COMMON_API UVector : public UObject { void removeAllElements(); - inline int32_t size(void) const; + inline int32_t size(void) const {return count;} - inline UBool isEmpty(void) const; + inline UBool isEmpty(void) const {return count == 0;} + + /* + * Old version of ensureCapacity, with non-standard error handling. + * Will be removed once all uses have been switched to the new ensureCapacity(). + */ + UBool ensureCapacityX(int32_t minimumCapacity, UErrorCode &status); UBool ensureCapacity(int32_t minimumCapacity, UErrorCode &status); @@ -192,10 +223,11 @@ class U_COMMON_API UVector : public UObject { //------------------------------------------------------------ UObjectDeleter *setDeleter(UObjectDeleter *d); + bool hasDeleter() {return deleter != nullptr;} UElementsAreEqual *setComparer(UElementsAreEqual *c); - inline void* operator[](int32_t index) const; + inline void* operator[](int32_t index) const {return elementAt(index);} /** * Removes the element at the given index from this vector and @@ -260,36 +292,35 @@ class U_COMMON_API UVector : public UObject { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: - void _init(int32_t initialCapacity, UErrorCode &status); - int32_t indexOf(UElement key, int32_t startIndex = 0, int8_t hint = 0) const; void sortedInsert(UElement e, UElementComparator *compare, UErrorCode& ec); +public: // Disallow - UVector(const UVector&); + UVector(const UVector&) = delete; // Disallow - UVector& operator=(const UVector&); + UVector& operator=(const UVector&) = delete; }; /** - *

    Ultralightweight C++ implementation of a void* stack + * Ultralightweight C++ implementation of a `void*` stack * that is (mostly) compatible with java.util.Stack. As in java, this * is merely a paper thin layer around UVector. See the UVector * documentation for further information. * - *

    Design notes + * *Design notes* * - *

    The element at index n-1 is (of course) the top of the + * The element at index `n-1` is (of course) the top of the * stack. * - *

    The poorly named empty() method doesn't empty the + * The poorly named `empty()` method doesn't empty the * stack; it determines if the stack is empty. * * @author Alan Liu @@ -309,19 +340,35 @@ class U_COMMON_API UStack : public UVector { // It's okay not to have a virtual destructor (in UVector) // because UStack has no special cleanup to do. - inline UBool empty(void) const; - - inline void* peek(void) const; + inline UBool empty(void) const {return isEmpty();} - inline int32_t peeki(void) const; + inline void* peek(void) const {return lastElement();} + inline int32_t peeki(void) const {return lastElementi();} + + /** + * Pop and return an element from the stack. + * For stacks with a deleter function, the caller takes ownership + * of the popped element. + */ void* pop(void); - + int32_t popi(void); - - inline void* push(void* obj, UErrorCode &status); - - inline int32_t push(int32_t i, UErrorCode &status); + + inline void* push(void* obj, UErrorCode &status) { + if (hasDeleter()) { + adoptElement(obj, status); + return (U_SUCCESS(status)) ? obj : nullptr; + } else { + addElement(obj, status); + return obj; + } + } + + inline int32_t push(int32_t i, UErrorCode &status) { + addElement(i, status); + return i; + } /* If the object o occurs as an item in this stack, @@ -337,79 +384,15 @@ class U_COMMON_API UStack : public UVector { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; -private: // Disallow - UStack(const UStack&); + UStack(const UStack&) = delete; // Disallow - UStack& operator=(const UStack&); + UStack& operator=(const UStack&) = delete; }; - -// UVector inlines - -inline int32_t UVector::size(void) const { - return count; -} - -inline UBool UVector::isEmpty(void) const { - return count == 0; -} - -inline UBool UVector::contains(void* obj) const { - return indexOf(obj) >= 0; -} - -inline UBool UVector::contains(int32_t obj) const { - return indexOf(obj) >= 0; -} - -inline void* UVector::firstElement(void) const { - return elementAt(0); -} - -inline void* UVector::lastElement(void) const { - return elementAt(count-1); -} - -inline int32_t UVector::lastElementi(void) const { - return elementAti(count-1); -} - -inline void* UVector::operator[](int32_t index) const { - return elementAt(index); -} - -inline UBool UVector::operator!=(const UVector& other) { - return !operator==(other); -} - -// UStack inlines - -inline UBool UStack::empty(void) const { - return isEmpty(); -} - -inline void* UStack::peek(void) const { - return lastElement(); -} - -inline int32_t UStack::peeki(void) const { - return lastElementi(); -} - -inline void* UStack::push(void* obj, UErrorCode &status) { - addElement(obj, status); - return obj; -} - -inline int32_t UStack::push(int32_t i, UErrorCode &status) { - addElement(i, status); - return i; -} - U_NAMESPACE_END #endif diff --git a/deps/icu-small/source/common/uvectr32.cpp b/deps/icu-small/source/common/uvectr32.cpp index 6e0760d7184040..a77ecb689fdaad 100644 --- a/deps/icu-small/source/common/uvectr32.cpp +++ b/deps/icu-small/source/common/uvectr32.cpp @@ -23,7 +23,7 @@ U_NAMESPACE_BEGIN * or a pointer. If a hint bit is zero, then the associated * token is assumed to be an integer. This is needed for iSeries */ - + UOBJECT_DEFINE_RTTI_IMPLEMENTATION(UVector32) UVector32::UVector32(UErrorCode &status) : @@ -83,15 +83,15 @@ void UVector32::assign(const UVector32& other, UErrorCode &ec) { } -UBool UVector32::operator==(const UVector32& other) { +bool UVector32::operator==(const UVector32& other) { int32_t i; - if (count != other.count) return FALSE; + if (count != other.count) return false; for (i=0; i(&hKeyAllTimeZones)); - + if (ret != ERROR_SUCCESS) { // If we can't open the key, then we can't do much, so fail. return nullptr; @@ -190,7 +190,7 @@ uprv_detectWindowsTimeZone() DWORD numTimeZoneSubKeys; ret = RegQueryInfoKeyW(hKeyAllTimeZones, nullptr, nullptr, nullptr, &numTimeZoneSubKeys, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr, nullptr); - + if (ret != ERROR_SUCCESS) { RegCloseKey(hKeyAllTimeZones); return nullptr; @@ -214,10 +214,10 @@ uprv_detectWindowsTimeZone() RegCloseKey(hKeyAllTimeZones); return nullptr; } - + ret = RegOpenKeyExW(hKeyAllTimeZones, timezoneSubKeyName, 0, KEY_READ, reinterpret_cast(&hKeyTimeZoneSubKey)); - + if (ret != ERROR_SUCCESS) { RegCloseKey(hKeyAllTimeZones); return nullptr; @@ -227,7 +227,7 @@ uprv_detectWindowsTimeZone() size = sizeof(registryStandardName); ret = RegQueryValueExW(hKeyTimeZoneSubKey, L"Std", nullptr, ®istryValueType, reinterpret_cast(registryStandardName), &size); - + if (ret != ERROR_SUCCESS || registryValueType != REG_SZ) { RegCloseKey(hKeyTimeZoneSubKey); RegCloseKey(hKeyAllTimeZones); @@ -285,7 +285,7 @@ uprv_detectWindowsTimeZone() if (U_FAILURE(status)) { return nullptr; } - + // Note: Since the ISO 3166 country/region codes are all invariant ASCII chars, we can // directly downcast from wchar_t to do the conversion. // We could call the A version of the GetGeoInfo API, but that would be slightly slower than calling the W API, diff --git a/deps/icu-small/source/common/wintz.h b/deps/icu-small/source/common/wintz.h index b1ac8c07903738..ce9c1e901928d7 100644 --- a/deps/icu-small/source/common/wintz.h +++ b/deps/icu-small/source/common/wintz.h @@ -19,7 +19,7 @@ #if U_PLATFORM_USES_ONLY_WIN32_API /** - * \file + * \file * \brief C API: Utilities for dealing w/ Windows time zones. */ diff --git a/deps/icu-small/source/data/in/icudt69l.dat.bz2 b/deps/icu-small/source/data/in/icudt69l.dat.bz2 deleted file mode 100644 index 752a98acd8237d..00000000000000 Binary files a/deps/icu-small/source/data/in/icudt69l.dat.bz2 and /dev/null differ diff --git a/deps/icu-small/source/data/in/icudt70l.dat.bz2 b/deps/icu-small/source/data/in/icudt70l.dat.bz2 new file mode 100644 index 00000000000000..248787a1eafed0 Binary files /dev/null and b/deps/icu-small/source/data/in/icudt70l.dat.bz2 differ diff --git a/deps/icu-small/source/i18n/BUILD b/deps/icu-small/source/i18n/BUILD new file mode 100644 index 00000000000000..2d85cdb180e128 --- /dev/null +++ b/deps/icu-small/source/i18n/BUILD @@ -0,0 +1,130 @@ +# © 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html + +# This file defines Bazel targets for a subset of the ICU4C "i18n" library header and source files. +# The configuration of dependencies among targets is strongly assisted by the +# file in depstest that maintains such information, at +# icu4c/source/test/depstest/dependencies.txt . + +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +package( + default_visibility = ["//visibility:public"], +) + +# When compiling code in the `common` dir, the constant +# `U_I18n_IMPLEMENTATION` needs to be defined. See +# https://unicode-org.github.io/icu/userguide/howtouseicu#c-with-your-own-build-system . + +# If linker errors occur, then this may be a sign that the dependencies were +# not specified correctly. Use dependencies.txt in depstest for assistance. See +# https://stackoverflow.com/q/66111709/2077918 . + +cc_library( + name = "headers", + hdrs = glob([ + "unicode/*.h", # public + "*.h", # internal + ]), + # We need to add includes in order to preserve existing source files' + # include directives that use traditional paths, not paths relative to + # Bazel workspace: + # https://stackoverflow.com/a/65635893/2077918 + includes = ["."], + local_defines = [ + "U_I18N_IMPLEMENTATION", + ], +) + +cc_library( + name = "collation", + srcs = [ + "bocsu.cpp", + "coleitr.cpp", + "coll.cpp", + "collation.cpp", + "collationcompare.cpp", + "collationdata.cpp", + "collationdatareader.cpp", + "collationdatawriter.cpp", + "collationfastlatin.cpp", + # collationfcd.cpp is generated by genuca; + # probably hard to build genuca without depending on the old version. + "collationfcd.cpp", + "collationiterator.cpp", + "collationkeys.cpp", + "collationroot.cpp", + "collationrootelements.cpp", + "collationsets.cpp", + "collationsettings.cpp", + "collationtailoring.cpp", + "rulebasedcollator.cpp", + "sortkey.cpp", + "ucol.cpp", + "ucol_res.cpp", + "ucol_sit.cpp", + "ucoleitr.cpp", + "uitercollationiterator.cpp", + "utf16collationiterator.cpp", + "utf8collationiterator.cpp", + ], + includes = ["."], + deps = [ + ":headers", + ":uclean_i18n", + "//icu4c/source/common:bytestream", + "//icu4c/source/common:normalizer2", + "//icu4c/source/common:platform", + "//icu4c/source/common:propname", + "//icu4c/source/common:resourcebundle", + "//icu4c/source/common:service_registration", + "//icu4c/source/common:ucharstrieiterator", + "//icu4c/source/common:uiter", + "//icu4c/source/common:ulist", + "//icu4c/source/common:unifiedcache", + "//icu4c/source/common:uset", + "//icu4c/source/common:usetiter", + "//icu4c/source/common:utrie2", + "//icu4c/source/common:uvector32", + "//icu4c/source/common:uvector64", + ], + local_defines = [ + "U_I18N_IMPLEMENTATION", + ], +) + +cc_library( + name = "collation_builder", + srcs = [ + "collationbuilder.cpp", + "collationdatabuilder.cpp", + "collationfastlatinbuilder.cpp", + "collationruleparser.cpp", + "collationweights.cpp", + ], + includes = ["."], + deps = [ + ":collation", + "//icu4c/source/common:canonical_iterator", + "//icu4c/source/common:ucharstriebuilder", + "//icu4c/source/common:uset_props" + ], + local_defines = [ + "U_I18N_IMPLEMENTATION", + ], +) + +cc_library( + name = "uclean_i18n", + srcs = [ + "ucln_in.cpp", + ], + hdrs = ["ucln_in.h"], + includes = ["."], + deps = [ + "//icu4c/source/common:platform", + ], + local_defines = [ + "U_I18N_IMPLEMENTATION", + ], +) diff --git a/deps/icu-small/source/i18n/alphaindex.cpp b/deps/icu-small/source/i18n/alphaindex.cpp index 532e3373835e7c..34407f677a6b26 100644 --- a/deps/icu-small/source/i18n/alphaindex.cpp +++ b/deps/icu-small/source/i18n/alphaindex.cpp @@ -293,6 +293,7 @@ int32_t AlphabeticIndex::getRecordCount(UErrorCode &status) { } void AlphabeticIndex::initLabels(UVector &indexCharacters, UErrorCode &errorCode) const { + U_ASSERT(indexCharacters.hasDeleter()); const Normalizer2 *nfkdNormalizer = Normalizer2::getNFKDInstance(errorCode); if (U_FAILURE(errorCode)) { return; } @@ -305,7 +306,7 @@ void AlphabeticIndex::initLabels(UVector &indexCharacters, UErrorCode &errorCode // That is, we might have c, ch, d, where "ch" sorts just like "c", "h". // We filter out those cases. UnicodeSetIterator iter(*initialLabels_); - while (iter.next()) { + while (U_SUCCESS(errorCode) && iter.next()) { const UnicodeString *item = &iter.getString(); LocalPointer ownedItem; UBool checkDistinct; @@ -455,7 +456,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { errorCode = U_MEMORY_ALLOCATION_ERROR; return NULL; } - bucketList->addElement(bucket, errorCode); + bucketList->addElementX(bucket, errorCode); if (U_FAILURE(errorCode)) { return NULL; } UnicodeString temp; @@ -485,7 +486,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { errorCode = U_MEMORY_ALLOCATION_ERROR; return NULL; } - bucketList->addElement(bucket, errorCode); + bucketList->addElementX(bucket, errorCode); } } // Add a bucket with the current label. @@ -494,7 +495,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { errorCode = U_MEMORY_ALLOCATION_ERROR; return NULL; } - bucketList->addElement(bucket, errorCode); + bucketList->addElementX(bucket, errorCode); // Remember ASCII and Pinyin buckets for Pinyin redirects. UChar c; if (current.length() == 1 && 0x41 <= (c = current.charAt(0)) && c <= 0x5A) { // A-Z @@ -533,7 +534,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { return NULL; } bucket->displayBucket_ = singleBucket; - bucketList->addElement(bucket, errorCode); + bucketList->addElementX(bucket, errorCode); hasInvisibleBuckets = TRUE; break; } @@ -557,7 +558,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { errorCode = U_MEMORY_ALLOCATION_ERROR; return NULL; } - bucketList->addElement(bucket, errorCode); // final + bucketList->addElementX(bucket, errorCode); // final if (hasPinyin) { // Redirect Pinyin buckets. @@ -610,7 +611,7 @@ BucketList *AlphabeticIndex::createBucketList(UErrorCode &errorCode) const { for (int32_t j = 0; j < bucketList->size(); ++j) { bucket = getBucket(*bucketList, j); if (bucket->displayBucket_ == NULL) { - publicBucketList->addElement(bucket, errorCode); + publicBucketList->addElementX(bucket, errorCode); } } if (U_FAILURE(errorCode)) { return NULL; } @@ -684,7 +685,7 @@ void AlphabeticIndex::initBuckets(UErrorCode &errorCode) { return; } } - bucket->records_->addElement(r, errorCode); + bucket->records_->addElementX(r, errorCode); } } @@ -799,13 +800,13 @@ UnicodeString AlphabeticIndex::separated(const UnicodeString &item) { } -UBool AlphabeticIndex::operator==(const AlphabeticIndex& /* other */) const { - return FALSE; +bool AlphabeticIndex::operator==(const AlphabeticIndex& /* other */) const { + return false; } -UBool AlphabeticIndex::operator!=(const AlphabeticIndex& /* other */) const { - return FALSE; +bool AlphabeticIndex::operator!=(const AlphabeticIndex& /* other */) const { + return false; } @@ -1015,7 +1016,7 @@ UVector *AlphabeticIndex::firstStringsInScript(UErrorCode &status) { status = U_MEMORY_ALLOCATION_ERROR; return NULL; } - dest->addElement(s, status); + dest->addElementX(s, status); } return dest.orphan(); } @@ -1078,11 +1079,11 @@ AlphabeticIndex & AlphabeticIndex::addRecord(const UnicodeString &name, const vo status = U_MEMORY_ALLOCATION_ERROR; return *this; } - inputList_->addElement(r, status); + inputList_->addElementX(r, status); clearBuckets(); //std::string ss; //std::string ss2; - //std::cout << "added record: name = \"" << r->name_.toUTF8String(ss) << "\"" << + //std::cout << "added record: name = \"" << r->name_.toUTF8String(ss) << "\"" << // " sortingName = \"" << r->sortingName_.toUTF8String(ss2) << "\"" << std::endl; return *this; } diff --git a/deps/icu-small/source/i18n/anytrans.h b/deps/icu-small/source/i18n/anytrans.h index 627dee3c814e68..67ebb2e7d2f2ed 100644 --- a/deps/icu-small/source/i18n/anytrans.h +++ b/deps/icu-small/source/i18n/anytrans.h @@ -66,18 +66,18 @@ class AnyTransliterator : public Transliterator { /** * Transliterator API. */ - virtual AnyTransliterator* clone() const; + virtual AnyTransliterator* clone() const override; /** * Implements {@link Transliterator#handleTransliterate}. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& index, - UBool incremental) const; + UBool incremental) const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/astro.cpp b/deps/icu-small/source/i18n/astro.cpp index d28e516472e1b9..6dc463b4ca4b53 100644 --- a/deps/icu-small/source/i18n/astro.cpp +++ b/deps/icu-small/source/i18n/astro.cpp @@ -21,7 +21,7 @@ #include "putilimp.h" #include // for toString() -#if defined (PI) +#if defined (PI) #undef PI #endif @@ -379,7 +379,7 @@ double CalendarAstronomer::getJulianCentury() { */ double CalendarAstronomer::getGreenwichSidereal() { if (isINVALID(siderealTime)) { - // See page 86 of "Practial Astronomy with your Calculator", + // See page 86 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. double UT = normalize(fTime/(double)HOUR_MS, 24.); @@ -460,7 +460,7 @@ CalendarAstronomer::Equatorial& CalendarAstronomer::eclipticToEquatorial(Calenda */ CalendarAstronomer::Equatorial& CalendarAstronomer::eclipticToEquatorial(CalendarAstronomer::Equatorial& result, double eclipLong, double eclipLat) { - // See page 42 of "Practial Astronomy with your Calculator", + // See page 42 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. double obliq = eclipticObliquity(); @@ -623,7 +623,7 @@ static double trueAnomaly(double meanAnomaly, double eccentricity) */ double CalendarAstronomer::getSunLongitude() { - // See page 86 of "Practial Astronomy with your Calculator", + // See page 86 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. if (isINVALID(sunLongitude)) { @@ -637,7 +637,7 @@ double CalendarAstronomer::getSunLongitude() */ /*public*/ void CalendarAstronomer::getSunLongitude(double jDay, double &longitude, double &meanAnomaly) { - // See page 86 of "Practial Astronomy with your Calculator", + // See page 86 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. double day = jDay - JD_EPOCH; // Days since epoch @@ -723,7 +723,7 @@ CalendarAstronomer::AngleFunc::~AngleFunc() {} class SunTimeAngleFunc : public CalendarAstronomer::AngleFunc { public: virtual ~SunTimeAngleFunc(); - virtual double eval(CalendarAstronomer& a) { return a.getSunLongitude(); } + virtual double eval(CalendarAstronomer& a) override { return a.getSunLongitude(); } }; SunTimeAngleFunc::~SunTimeAngleFunc() {} @@ -743,7 +743,7 @@ CalendarAstronomer::CoordFunc::~CoordFunc() {} class RiseSetCoordFunc : public CalendarAstronomer::CoordFunc { public: virtual ~RiseSetCoordFunc(); - virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer&a) { a.getSunPosition(result); } + virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer& a) override { a.getSunPosition(result); } }; RiseSetCoordFunc::~RiseSetCoordFunc() {} @@ -1066,7 +1066,7 @@ UDate CalendarAstronomer::getSunRiseSet(UBool rise) const CalendarAstronomer::Equatorial& CalendarAstronomer::getMoonPosition() { // - // See page 142 of "Practial Astronomy with your Calculator", + // See page 142 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. // if (moonPositionSet == FALSE) { @@ -1154,7 +1154,7 @@ const CalendarAstronomer::Equatorial& CalendarAstronomer::getMoonPosition() * @deprecated ICU 2.4. This class may be removed or modified. */ double CalendarAstronomer::getMoonAge() { - // See page 147 of "Practial Astronomy with your Calculator", + // See page 147 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. // // Force the moon's position to be calculated. We're going to use @@ -1181,7 +1181,7 @@ double CalendarAstronomer::getMoonAge() { * @deprecated ICU 2.4. This class may be removed or modified. */ double CalendarAstronomer::getMoonPhase() { - // See page 147 of "Practial Astronomy with your Calculator", + // See page 147 of "Practical Astronomy with your Calculator", // by Peter Duffet-Smith, for details on the algorithm. return 0.5 * (1 - cos(getMoonAge())); } @@ -1225,7 +1225,7 @@ const CalendarAstronomer::MoonAge CalendarAstronomer::FULL_MOON() { class MoonTimeAngleFunc : public CalendarAstronomer::AngleFunc { public: virtual ~MoonTimeAngleFunc(); - virtual double eval(CalendarAstronomer&a) { return a.getMoonAge(); } + virtual double eval(CalendarAstronomer& a) override { return a.getMoonAge(); } }; MoonTimeAngleFunc::~MoonTimeAngleFunc() {} @@ -1239,8 +1239,8 @@ MoonTimeAngleFunc::~MoonTimeAngleFunc() {} * longitude will have the desired value. *

    * @param desired The desired longitude. - * @param next true if the next occurrance of the phase - * is desired, false for the previous occurrance. + * @param next true if the next occurrence of the phase + * is desired, false for the previous occurrence. * @internal * @deprecated ICU 2.4. This class may be removed or modified. */ @@ -1259,8 +1259,8 @@ UDate CalendarAstronomer::getMoonTime(double desired, UBool next) * desired phase. *

    * @param desired The desired phase of the moon. - * @param next true if the next occurrance of the phase - * is desired, false for the previous occurrance. + * @param next true if the next occurrence of the phase + * is desired, false for the previous occurrence. * @internal * @deprecated ICU 2.4. This class may be removed or modified. */ @@ -1271,7 +1271,7 @@ UDate CalendarAstronomer::getMoonTime(const CalendarAstronomer::MoonAge& desired class MoonRiseSetCoordFunc : public CalendarAstronomer::CoordFunc { public: virtual ~MoonRiseSetCoordFunc(); - virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer&a) { result = a.getMoonPosition(); } + virtual void eval(CalendarAstronomer::Equatorial& result, CalendarAstronomer& a) override { result = a.getMoonPosition(); } }; MoonRiseSetCoordFunc::~MoonRiseSetCoordFunc() {} diff --git a/deps/icu-small/source/i18n/astro.h b/deps/icu-small/source/i18n/astro.h index a2464890056c3e..372a79ac6714cc 100644 --- a/deps/icu-small/source/i18n/astro.h +++ b/deps/icu-small/source/i18n/astro.h @@ -626,8 +626,8 @@ class U_I18N_API CalendarAstronomer : public UMemory { * longitude will have the desired value. *

    * @param desired The desired longitude. - * @param next true if the next occurrance of the phase - * is desired, false for the previous occurrance. + * @param next true if the next occurrence of the phase + * is desired, false for the previous occurrence. * @internal */ UDate getMoonTime(double desired, UBool next); diff --git a/deps/icu-small/source/i18n/basictz.cpp b/deps/icu-small/source/i18n/basictz.cpp index 4d07d5e1a74c3b..7b5449f4167fdd 100644 --- a/deps/icu-small/source/i18n/basictz.cpp +++ b/deps/icu-small/source/i18n/basictz.cpp @@ -63,7 +63,7 @@ BasicTimeZone::hasEquivalentTransitions(const BasicTimeZone& tz, UDate start, UD } else { if (raw1 != raw2 || dst1 != dst2) { return FALSE; - } + } } // Check transitions in the range UDate time = start; @@ -159,7 +159,7 @@ BasicTimeZone::getSimpleRulesNear(UDate date, InitialTimeZoneRule*& initial, if (((tr.getFrom()->getDSTSavings() == 0 && tr.getTo()->getDSTSavings() != 0) || (tr.getFrom()->getDSTSavings() != 0 && tr.getTo()->getDSTSavings() == 0)) && (date + MILLIS_PER_YEAR > nextTransitionTime)) { - + int32_t year, month, dom, dow, doy, mid; UDate d; @@ -293,71 +293,77 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, } const InitialTimeZoneRule *orgini; - const TimeZoneRule **orgtrs = NULL; TimeZoneTransition tzt; - UBool avail; - UVector *orgRules = NULL; + bool avail; int32_t ruleCount; - TimeZoneRule *r = NULL; - UBool *done = NULL; - InitialTimeZoneRule *res_initial = NULL; - UVector *filteredRules = NULL; + TimeZoneRule *r = nullptr; UnicodeString name; int32_t i; UDate time, t; - UDate *newTimes = NULL; UDate firstStart; - UBool bFinalStd = FALSE, bFinalDst = FALSE; + UBool bFinalStd = false, bFinalDst = false; + + initial = nullptr; + transitionRules = nullptr; // Original transition rules ruleCount = countTransitionRules(status); if (U_FAILURE(status)) { return; } - orgRules = new UVector(ruleCount, status); + LocalPointer orgRules( + new UVector(uprv_deleteUObject, nullptr, ruleCount, status), status); if (U_FAILURE(status)) { return; } - orgtrs = (const TimeZoneRule**)uprv_malloc(sizeof(TimeZoneRule*)*ruleCount); - if (orgtrs == NULL) { + LocalMemory orgtrs( + static_cast(uprv_malloc(sizeof(TimeZoneRule*)*ruleCount))); + if (orgtrs.isNull()) { status = U_MEMORY_ALLOCATION_ERROR; - goto error; + return; } - getTimeZoneRules(orgini, orgtrs, ruleCount, status); + getTimeZoneRules(orgini, &orgtrs[0], ruleCount, status); if (U_FAILURE(status)) { - goto error; + return; } for (i = 0; i < ruleCount; i++) { - orgRules->addElement(orgtrs[i]->clone(), status); + LocalPointer lpRule(orgtrs[i]->clone(), status); + orgRules->adoptElement(lpRule.orphan(), status); if (U_FAILURE(status)) { - goto error; + return; } } - uprv_free(orgtrs); - orgtrs = NULL; avail = getPreviousTransition(start, TRUE, tzt); if (!avail) { // No need to filter out rules only applicable to time before the start initial = orgini->clone(); - transitionRules = orgRules; + if (initial == nullptr) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + transitionRules = orgRules.orphan(); return; } - done = (UBool*)uprv_malloc(sizeof(UBool)*ruleCount); - if (done == NULL) { + LocalMemory done(static_cast(uprv_malloc(sizeof(bool)*ruleCount))); + if (done.isNull()) { status = U_MEMORY_ALLOCATION_ERROR; - goto error; + return; } - filteredRules = new UVector(status); + LocalPointer filteredRules( + new UVector(uprv_deleteUObject, nullptr, status), status); if (U_FAILURE(status)) { - goto error; + return; } // Create initial rule tzt.getTo()->getName(name); - res_initial = new InitialTimeZoneRule(name, tzt.getTo()->getRawOffset(), - tzt.getTo()->getDSTSavings()); + LocalPointer res_initial( + new InitialTimeZoneRule(name, tzt.getTo()->getRawOffset(), tzt.getTo()->getDSTSavings()), status); + if (U_FAILURE(status)) { + return; + } // Mark rules which does not need to be processed for (i = 0; i < ruleCount; i++) { @@ -375,13 +381,13 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, UDate updatedTime = tzt.getTime(); if (updatedTime == time) { // Can get here if rules for start & end of daylight time have exactly - // the same time. + // the same time. // TODO: fix getNextTransition() to prevent it? status = U_INVALID_STATE_ERROR; - goto error; + return; } time = updatedTime; - + const TimeZoneRule *toRule = tzt.getTo(); for (i = 0; i < ruleCount; i++) { r = (TimeZoneRule*)orgRules->elementAt(i); @@ -392,7 +398,7 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, if (i >= ruleCount) { // This case should never happen status = U_INVALID_STATE_ERROR; - goto error; + return; } if (done[i]) { continue; @@ -418,9 +424,10 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, tar->getFirstStart(tzt.getFrom()->getRawOffset(), tzt.getFrom()->getDSTSavings(), firstStart); if (firstStart > start) { // Just add the rule as is - filteredRules->addElement(tar->clone(), status); + LocalPointer lpTar(tar->clone(), status); + filteredRules->adoptElement(lpTar.orphan(), status); if (U_FAILURE(status)) { - goto error; + return; } } else { // Collect transitions after the start time @@ -442,28 +449,25 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, break; } } + if (U_FAILURE(status)) { + return; + } int32_t asize = startTimes - idx; if (asize > 0) { - newTimes = (UDate*)uprv_malloc(sizeof(UDate) * asize); - if (newTimes == NULL) { + LocalMemory newTimes(static_cast(uprv_malloc(sizeof(UDate) * asize))); + if (newTimes.isNull()) { status = U_MEMORY_ALLOCATION_ERROR; - goto error; + return; } for (int32_t newidx = 0; newidx < asize; newidx++) { tar->getStartTimeAt(idx + newidx, newTimes[newidx]); - if (U_FAILURE(status)) { - uprv_free(newTimes); - newTimes = NULL; - goto error; - } } tar->getName(name); - TimeArrayTimeZoneRule *newTar = new TimeArrayTimeZoneRule(name, - tar->getRawOffset(), tar->getDSTSavings(), newTimes, asize, timeType); - uprv_free(newTimes); - filteredRules->addElement(newTar, status); + LocalPointer newTar(new TimeArrayTimeZoneRule( + name, tar->getRawOffset(), tar->getDSTSavings(), &newTimes[0], asize, timeType), status); + filteredRules->adoptElement(newTar.orphan(), status); if (U_FAILURE(status)) { - goto error; + return; } } } @@ -472,9 +476,10 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, ar->getFirstStart(tzt.getFrom()->getRawOffset(), tzt.getFrom()->getDSTSavings(), firstStart); if (firstStart == tzt.getTime()) { // Just add the rule as is - filteredRules->addElement(ar->clone(), status); + LocalPointer arClone(ar->clone(), status); + filteredRules->adoptElement(arClone.orphan(), status); if (U_FAILURE(status)) { - goto error; + return; } } else { // Calculate the transition year @@ -482,11 +487,11 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, Grego::timeToFields(tzt.getTime(), year, month, dom, dow, doy, mid); // Re-create the rule ar->getName(name); - AnnualTimeZoneRule *newAr = new AnnualTimeZoneRule(name, ar->getRawOffset(), ar->getDSTSavings(), - *(ar->getRule()), year, ar->getEndYear()); - filteredRules->addElement(newAr, status); + LocalPointer newAr(new AnnualTimeZoneRule(name, ar->getRawOffset(), ar->getDSTSavings(), + *(ar->getRule()), year, ar->getEndYear()), status); + filteredRules->adoptElement(newAr.orphan(), status); if (U_FAILURE(status)) { - goto error; + return; } } // check if this is a final rule @@ -500,50 +505,13 @@ BasicTimeZone::getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, } } } - done[i] = TRUE; + done[i] = true; } // Set the results - if (orgRules != NULL) { - while (!orgRules->isEmpty()) { - r = (TimeZoneRule*)orgRules->orphanElementAt(0); - delete r; - } - delete orgRules; - } - if (done != NULL) { - uprv_free(done); - } - - initial = res_initial; - transitionRules = filteredRules; + initial = res_initial.orphan(); + transitionRules = filteredRules.orphan(); return; - -error: - if (orgtrs != NULL) { - uprv_free(orgtrs); - } - if (orgRules != NULL) { - while (!orgRules->isEmpty()) { - r = (TimeZoneRule*)orgRules->orphanElementAt(0); - delete r; - } - delete orgRules; - } - if (done != NULL) { - if (filteredRules != NULL) { - while (!filteredRules->isEmpty()) { - r = (TimeZoneRule*)filteredRules->orphanElementAt(0); - delete r; - } - delete filteredRules; - } - delete res_initial; - uprv_free(done); - } - - initial = NULL; - transitionRules = NULL; } void diff --git a/deps/icu-small/source/i18n/brktrans.cpp b/deps/icu-small/source/i18n/brktrans.cpp index 46b0e345dae97d..f0ec8407db2c05 100644 --- a/deps/icu-small/source/i18n/brktrans.cpp +++ b/deps/icu-small/source/i18n/brktrans.cpp @@ -106,7 +106,7 @@ void BreakTransliterator::handleTransliterate(Replaceable& text, UTransPosition& int32_t boundary; for(boundary = bi->next(); boundary != UBRK_DONE && boundary < offsets.limit; boundary = bi->next()) { if (boundary == 0) continue; - // HACK: Check to see that preceeding item was a letter + // HACK: Check to see that preceding item was a letter UChar32 cp = sText.char32At(boundary-1); int type = u_charType(cp); diff --git a/deps/icu-small/source/i18n/brktrans.h b/deps/icu-small/source/i18n/brktrans.h index caa1e16ee6e62e..5dcc8c50c02abe 100644 --- a/deps/icu-small/source/i18n/brktrans.h +++ b/deps/icu-small/source/i18n/brktrans.h @@ -28,7 +28,7 @@ class UVector32; /** * A transliterator that pInserts the specified characters at word breaks. * To restrict it to particular characters, use a filter. - * TODO: this is an internal class, and only temporary. + * TODO: this is an internal class, and only temporary. * Remove it once we have \b notation in Transliterator. */ class BreakTransliterator : public Transliterator { @@ -54,7 +54,7 @@ class BreakTransliterator : public Transliterator { * Transliterator API. * @return A copy of the object. */ - virtual BreakTransliterator* clone() const; + virtual BreakTransliterator* clone() const override; virtual const UnicodeString &getInsertion() const; @@ -63,7 +63,7 @@ class BreakTransliterator : public Transliterator { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -82,7 +82,7 @@ class BreakTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; private: LocalPointer cachedBI; diff --git a/deps/icu-small/source/i18n/buddhcal.cpp b/deps/icu-small/source/i18n/buddhcal.cpp index bddfd1768a0aba..6083349ecd623a 100644 --- a/deps/icu-small/source/i18n/buddhcal.cpp +++ b/deps/icu-small/source/i18n/buddhcal.cpp @@ -71,7 +71,7 @@ int32_t BuddhistCalendar::handleGetExtendedYear() if (newerField(UCAL_EXTENDED_YEAR, UCAL_YEAR) == UCAL_EXTENDED_YEAR) { year = internalGet(UCAL_EXTENDED_YEAR, kGregorianEpoch); } else { - // extended year is a gregorian year, where 1 = 1AD, 0 = 1BC, -1 = 2BC, etc + // extended year is a gregorian year, where 1 = 1AD, 0 = 1BC, -1 = 2BC, etc year = internalGet(UCAL_YEAR, kGregorianEpoch - kBuddhistEraStart) + kBuddhistEraStart; } @@ -170,7 +170,7 @@ UDate BuddhistCalendar::defaultCenturyStart() const int32_t BuddhistCalendar::defaultCenturyStartYear() const { - // lazy-evaluate systemDefaultCenturyStartYear and systemDefaultCenturyStart + // lazy-evaluate systemDefaultCenturyStartYear and systemDefaultCenturyStart umtx_initOnce(gBCInitOnce, &initializeSystemDefaultCentury); return gSystemDefaultCenturyStartYear; } diff --git a/deps/icu-small/source/i18n/buddhcal.h b/deps/icu-small/source/i18n/buddhcal.h index e5ce18883ac039..2ef5c524935a85 100644 --- a/deps/icu-small/source/i18n/buddhcal.h +++ b/deps/icu-small/source/i18n/buddhcal.h @@ -94,7 +94,7 @@ class BuddhistCalendar : public GregorianCalendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual BuddhistCalendar* clone() const; + virtual BuddhistCalendar* clone() const override; public: /** @@ -107,7 +107,7 @@ class BuddhistCalendar : public GregorianCalendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -128,7 +128,7 @@ class BuddhistCalendar : public GregorianCalendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; private: BuddhistCalendar(); // default constructor not implemented @@ -142,13 +142,13 @@ class BuddhistCalendar : public GregorianCalendar { * @return the extended year * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Subclasses may override this method to compute several fields - * specific to each calendar system. + * specific to each calendar system. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode& status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode& status) override; /** * Subclass API for defining limits of different types. * @param field one of the field numbers @@ -156,7 +156,7 @@ class BuddhistCalendar : public GregorianCalendar { * LEAST_MAXIMUM, or MAXIMUM * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * Return the Julian day number of day before the first day of the * given month in the given extended year. Subclasses should override @@ -171,26 +171,26 @@ class BuddhistCalendar : public GregorianCalendar { * @internal */ virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, - UBool useMonth) const; + UBool useMonth) const override; /** * Returns true because the Buddhist Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; }; U_NAMESPACE_END @@ -199,3 +199,4 @@ U_NAMESPACE_END #endif // _GREGOCAL //eof + diff --git a/deps/icu-small/source/i18n/calendar.cpp b/deps/icu-small/source/i18n/calendar.cpp index 6842f1cfc63c06..8405d08d3cfce7 100644 --- a/deps/icu-small/source/i18n/calendar.cpp +++ b/deps/icu-small/source/i18n/calendar.cpp @@ -427,7 +427,7 @@ class BasicCalendarFactory : public LocaleKeyFactory { // return isStandardSupportedKeyword(keyword, status); //} - virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const + virtual void updateVisibleIDs(Hashtable& result, UErrorCode& status) const override { if (U_SUCCESS(status)) { for(int32_t i=0;gCalTypes[i] != NULL;i++) { @@ -439,7 +439,7 @@ class BasicCalendarFactory : public LocaleKeyFactory { } } - virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const { + virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const override { #ifdef U_DEBUG_CALSVC if(dynamic_cast(&key) == NULL) { fprintf(stderr, "::create - not a LocaleKey!\n"); @@ -485,7 +485,7 @@ class DefaultCalendarFactory : public ICUResourceBundleFactory { DefaultCalendarFactory() : ICUResourceBundleFactory() { } virtual ~DefaultCalendarFactory(); protected: - virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const { + virtual UObject* create(const ICUServiceKey& key, const ICUService* /*service*/, UErrorCode& status) const override { LocaleKey &lkey = (LocaleKey&)key; Locale loc; @@ -517,7 +517,7 @@ class CalendarService : public ICULocaleService { virtual ~CalendarService(); - virtual UObject* cloneInstance(UObject* instance) const { + virtual UObject* cloneInstance(UObject* instance) const override { UnicodeString *s = dynamic_cast(instance); if(s != NULL) { return s->clone(); @@ -530,7 +530,7 @@ class CalendarService : public ICULocaleService { } } - virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const { + virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /*actualID*/, UErrorCode& status) const override { LocaleKey& lkey = (LocaleKey&)key; //int32_t kind = lkey.kind(); @@ -555,7 +555,7 @@ class CalendarService : public ICULocaleService { return nc; } - virtual UBool isDefault() const { + virtual UBool isDefault() const override { return countFactories() == 1; } }; @@ -956,7 +956,7 @@ Calendar::makeInstance(const Locale& aLocale, UErrorCode& success) { #ifdef U_DEBUG_CALSVC fprintf(stderr, "%p: setting week count data to locale %s, actual locale %s\n", c, (const char*)aLocale.getName(), (const char *)actualLoc.getName()); #endif - c->setWeekData(aLocale, c->getType(), success); // set the correct locale (this was an indirected calendar) + c->setWeekData(aLocale, c->getType(), success); // set the correct locale (this was an indirect calendar) char keyword[ULOC_FULLNAME_CAPACITY] = ""; UErrorCode tmpStatus = U_ZERO_ERROR; @@ -1031,7 +1031,7 @@ Calendar::getCalendarTypeFromLocale( } } -UBool +bool Calendar::operator==(const Calendar& that) const { UErrorCode status = U_ZERO_ERROR; @@ -1167,8 +1167,8 @@ Calendar::setTimeInMillis( double millis, UErrorCode& status ) { if(isLenient()) { millis = MIN_MILLIS; } else { - status = U_ILLEGAL_ARGUMENT_ERROR; - return; + status = U_ILLEGAL_ARGUMENT_ERROR; + return; } } @@ -1558,7 +1558,7 @@ void Calendar::computeFields(UErrorCode &ec) // fields computed by handleComputeFields(). computeWeekFields(ec); - // Compute time-related fields. These are indepent of the date and + // Compute time-related fields. These are independent of the date and // of the subclass algorithm. They depend only on the local zone // wall milliseconds in day. int32_t millisInDay = (int32_t) (localMillis - (days * kOneDay)); @@ -3083,7 +3083,7 @@ void Calendar::computeTime(UErrorCode& status) { } /** - * Find the previous zone transtion near the given time. + * Find the previous zone transition near the given time. */ UBool Calendar::getImmediatePreviousZoneTransition(UDate base, UDate *transitionTime, UErrorCode& status) const { BasicTimeZone *btz = getBasicTimeZone(); @@ -3163,8 +3163,8 @@ int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCod UDate wall = millis + millisInDay; BasicTimeZone* btz = getBasicTimeZone(); if (btz) { - int duplicatedTimeOpt = (fRepeatedWallTime == UCAL_WALLTIME_FIRST) ? BasicTimeZone::kFormer : BasicTimeZone::kLatter; - int nonExistingTimeOpt = (fSkippedWallTime == UCAL_WALLTIME_FIRST) ? BasicTimeZone::kLatter : BasicTimeZone::kFormer; + UTimeZoneLocalOption duplicatedTimeOpt = (fRepeatedWallTime == UCAL_WALLTIME_FIRST) ? UCAL_TZ_LOCAL_FORMER : UCAL_TZ_LOCAL_LATTER; + UTimeZoneLocalOption nonExistingTimeOpt = (fSkippedWallTime == UCAL_WALLTIME_FIRST) ? UCAL_TZ_LOCAL_LATTER : UCAL_TZ_LOCAL_FORMER; btz->getOffsetFromLocal(wall, nonExistingTimeOpt, duplicatedTimeOpt, rawOffset, dstOffset, ec); } else { const TimeZone& tz = getTimeZone(); @@ -3197,7 +3197,7 @@ int32_t Calendar::computeZoneOffset(double millis, double millisInDay, UErrorCod // recalculate offsets from the resolved time (non-wall). // When the given wall time falls into skipped wall time, // the offsets will be based on the zone offsets AFTER - // the transition (which means, earliest possibe interpretation). + // the transition (which means, earliest possible interpretation). UDate tgmt = wall - (rawOffset + dstOffset); tz.getOffset(tgmt, FALSE, rawOffset, dstOffset, ec); } diff --git a/deps/icu-small/source/i18n/casetrn.cpp b/deps/icu-small/source/i18n/casetrn.cpp index 06750b29837223..bb650f8fa29e17 100644 --- a/deps/icu-small/source/i18n/casetrn.cpp +++ b/deps/icu-small/source/i18n/casetrn.cpp @@ -90,7 +90,7 @@ UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(CaseMapTransliterator) /** * Constructs a transliterator. */ -CaseMapTransliterator::CaseMapTransliterator(const UnicodeString &id, UCaseMapFull *map) : +CaseMapTransliterator::CaseMapTransliterator(const UnicodeString &id, UCaseMapFull *map) : Transliterator(id, 0), fMap(map) { @@ -133,7 +133,7 @@ CaseMapTransliterator::CaseMapTransliterator(const CaseMapTransliterator& o) : * Implements {@link Transliterator#handleTransliterate}. */ void CaseMapTransliterator::handleTransliterate(Replaceable& text, - UTransPosition& offsets, + UTransPosition& offsets, UBool isIncremental) const { if (offsets.start >= offsets.limit) { diff --git a/deps/icu-small/source/i18n/casetrn.h b/deps/icu-small/source/i18n/casetrn.h index 47914022f857eb..a00480db60b99a 100644 --- a/deps/icu-small/source/i18n/casetrn.h +++ b/deps/icu-small/source/i18n/casetrn.h @@ -58,7 +58,7 @@ class CaseMapTransliterator : public Transliterator { * Transliterator API. * @return a copy of the object. */ - virtual CaseMapTransliterator* clone() const = 0; + virtual CaseMapTransliterator* clone() const override = 0; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. @@ -81,8 +81,8 @@ class CaseMapTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, - UTransPosition& offsets, - UBool isIncremental) const; + UTransPosition& offsets, + UBool isIncremental) const override; UCaseMapFull *fMap; diff --git a/deps/icu-small/source/i18n/cecal.cpp b/deps/icu-small/source/i18n/cecal.cpp index 3389b728697db3..cb97c40a3c7498 100644 --- a/deps/icu-small/source/i18n/cecal.cpp +++ b/deps/icu-small/source/i18n/cecal.cpp @@ -54,7 +54,7 @@ CECalendar::CECalendar(const Locale& aLocale, UErrorCode& success) setTimeInMillis(getNow(), success); } -CECalendar::CECalendar (const CECalendar& other) +CECalendar::CECalendar (const CECalendar& other) : Calendar(other) { } diff --git a/deps/icu-small/source/i18n/cecal.h b/deps/icu-small/source/i18n/cecal.h index 80dab70f6ff0bf..9ac71f6ba38680 100644 --- a/deps/icu-small/source/i18n/cecal.h +++ b/deps/icu-small/source/i18n/cecal.h @@ -68,13 +68,13 @@ class U_I18N_API CECalendar : public Calendar { * Return JD of start of given month/extended year * @internal */ - virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const; + virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const override; /** * Calculate the limit for a specified type of limit and field * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * (Overrides Calendar) Return true if the current date for this Calendar is in @@ -85,13 +85,13 @@ class U_I18N_API CECalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode&) const; + virtual UBool inDaylightTime(UErrorCode&) const override; /** * Returns true because Coptic/Ethiopic Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; protected: /** diff --git a/deps/icu-small/source/i18n/chnsecal.cpp b/deps/icu-small/source/i18n/chnsecal.cpp index 2ab08dd33925b2..f8fb4a40f1427c 100644 --- a/deps/icu-small/source/i18n/chnsecal.cpp +++ b/deps/icu-small/source/i18n/chnsecal.cpp @@ -151,7 +151,7 @@ ChineseCalendar::~ChineseCalendar() { } -const char *ChineseCalendar::getType() const { +const char *ChineseCalendar::getType() const { return "chinese"; } @@ -255,7 +255,7 @@ int32_t ChineseCalendar::handleGetMonthLength(int32_t extendedYear, int32_t mont *

  2. DAY_OF_MONTH *
  3. DAY_OF_YEAR *
  4. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. @@ -310,7 +310,7 @@ const UFieldResolutionTable* ChineseCalendar::getFieldResolutionTable() const { /** * Return the Julian day number of day before the first day of the * given month in the given extended year. - * + * *

    Note: This method reads the IS_LEAP_MONTH field to determine * whether the given month is a leap month. * @param eyear the extended year @@ -335,7 +335,7 @@ int32_t ChineseCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U int32_t gyear = eyear + fEpochYear - 1; // Gregorian year int32_t theNewYear = newYear(gyear); int32_t newMoon = newMoonNear(theNewYear + month * 29, TRUE); - + int32_t julianDay = newMoon + kEpochStartAsJulianDay; // Save fields for later restoration @@ -349,10 +349,10 @@ int32_t ChineseCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U nonConstThis->computeGregorianFields(julianDay, status); if (U_FAILURE(status)) return 0; - + // This will modify the MONTH and IS_LEAP_MONTH fields (only) nonConstThis->computeChineseFields(newMoon, getGregorianYear(), - getGregorianMonth(), FALSE); + getGregorianMonth(), FALSE); if (month != internalGet(UCAL_MONTH) || isLeapMonth != internalGet(UCAL_IS_LEAP_MONTH)) { @@ -379,7 +379,7 @@ void ChineseCalendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& if (U_FAILURE(status)) break; int32_t day = get(UCAL_JULIAN_DAY, status) - kEpochStartAsJulianDay; // Get local day if (U_FAILURE(status)) break; - int32_t moon = day - dom + 1; // New moon + int32_t moon = day - dom + 1; // New moon offsetMonth(moon, dom, amount); } break; @@ -470,13 +470,13 @@ void ChineseCalendar::roll(EDateFields field, int32_t amount, UErrorCode& status /** * Convert local days to UTC epoch milliseconds. - * This is not an accurate conversion in that getTimezoneOffset - * takes the milliseconds in GMT (not local time). In theory, more - * accurate algorithm can be implemented but practically we do not need - * to go through that complication as long as the historical timezone - * changes did not happen around the 'tricky' new moon (new moon around - * midnight). - * + * This is not an accurate conversion in that getTimezoneOffset + * takes the milliseconds in GMT (not local time). In theory, more + * accurate algorithm can be implemented but practically we do not need + * to go through that complication as long as the historical timezone + * changes did not happen around the 'tricky' new moon (new moon around + * midnight). + * * @param days days after January 1, 1970 0:00 in the astronomical base zone * @return milliseconds after January 1, 1970 0:00 GMT */ @@ -487,7 +487,7 @@ double ChineseCalendar::daysToMillis(double days) const { UErrorCode status = U_ZERO_ERROR; fZoneAstroCalc->getOffset(millis, FALSE, rawOffset, dstOffset, status); if (U_SUCCESS(status)) { - return millis - (double)(rawOffset + dstOffset); + return millis - (double)(rawOffset + dstOffset); } } return millis - (double)CHINA_OFFSET; @@ -504,7 +504,7 @@ double ChineseCalendar::millisToDays(double millis) const { UErrorCode status = U_ZERO_ERROR; fZoneAstroCalc->getOffset(millis, FALSE, rawOffset, dstOffset, status); if (U_SUCCESS(status)) { - return ClockMath::floorDivide(millis + (double)(rawOffset + dstOffset), kOneDay); + return ClockMath::floorDivide(millis + (double)(rawOffset + dstOffset), kOneDay); } } return ClockMath::floorDivide(millis + (double)CHINA_OFFSET, kOneDay); @@ -564,7 +564,7 @@ int32_t ChineseCalendar::winterSolstice(int32_t gyear) const { * new moon after or before days */ int32_t ChineseCalendar::newMoonNear(double days, UBool after) const { - + umtx_lock(&astroLock); if(gChineseCalendarAstro == NULL) { gChineseCalendarAstro = new CalendarAstronomer(); @@ -573,7 +573,7 @@ int32_t ChineseCalendar::newMoonNear(double days, UBool after) const { gChineseCalendarAstro->setTime(daysToMillis(days)); UDate newMoon = gChineseCalendarAstro->getMoonTime(CalendarAstronomer::NEW_MOON(), after); umtx_unlock(&astroLock); - + return (int32_t) millisToDays(newMoon); } @@ -596,7 +596,7 @@ int32_t ChineseCalendar::synodicMonthsBetween(int32_t day1, int32_t day2) const * @param days days after January 1, 1970 0:00 Asia/Shanghai */ int32_t ChineseCalendar::majorSolarTerm(int32_t days) const { - + umtx_lock(&astroLock); if(gChineseCalendarAstro == NULL) { gChineseCalendarAstro = new CalendarAstronomer(); @@ -713,7 +713,7 @@ void ChineseCalendar::computeChineseFields(int32_t days, int32_t gyear, int32_t if (setAllFields) { // Extended year and cycle year is based on the epoch year - + int32_t extended_year = gyear - fEpochYear; int cycle_year = gyear - CHINESE_EPOCH_YEAR; if (month < 11 || @@ -767,7 +767,7 @@ int32_t ChineseCalendar::newYear(int32_t gyear) const { int32_t newMoon1 = newMoonNear(solsticeBefore + 1, TRUE); int32_t newMoon2 = newMoonNear(newMoon1 + SYNODIC_GAP, TRUE); int32_t newMoon11 = newMoonNear(solsticeAfter + 1, FALSE); - + if (synodicMonthsBetween(newMoon1, newMoon11) == 12 && (hasNoMajorSolarTerm(newMoon1) || hasNoMajorSolarTerm(newMoon2))) { cacheValue = newMoonNear(newMoon2 + SYNODIC_GAP, TRUE); @@ -830,7 +830,7 @@ UBool ChineseCalendar::inDaylightTime(UErrorCode& status) const { // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) + if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) return FALSE; // Force an update of the state of the Calendar. @@ -899,3 +899,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ChineseCalendar) U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/chnsecal.h b/deps/icu-small/source/i18n/chnsecal.h index 77a68a48929e10..61ef2d3cad5ec3 100644 --- a/deps/icu-small/source/i18n/chnsecal.h +++ b/deps/icu-small/source/i18n/chnsecal.h @@ -71,10 +71,10 @@ U_NAMESPACE_BEGIN * obtain a formatter for this calendar. * *

    References:

      - * + * *
    • Dershowitz and Reingold, Calendrical Calculations, * Cambridge University Press, 1997
    • - * + * *
    • Helmer Aslaksen's * * Chinese Calendar page
    • @@ -87,7 +87,7 @@ U_NAMESPACE_BEGIN *

      * This class should only be subclassed to implement variants of the Chinese lunar calendar.

      *

      - * ChineseCalendar usually should be instantiated using + * ChineseCalendar usually should be instantiated using * {@link com.ibm.icu.util.Calendar#getInstance(ULocale)} passing in a ULocale * with the tag "@calendar=chinese".

      * @@ -114,7 +114,7 @@ class U_I18N_API ChineseCalendar : public Calendar { ChineseCalendar(const Locale& aLocale, UErrorCode &success); protected: - + /** * Constructs a ChineseCalendar based on the current time in the default time zone * with the given locale, using the specified epoch year and time zone for @@ -144,14 +144,14 @@ class U_I18N_API ChineseCalendar : public Calendar { virtual ~ChineseCalendar(); // clone - virtual ChineseCalendar* clone() const; + virtual ChineseCalendar* clone() const override; private: //------------------------------------------------------------------------- // Internal data.... //------------------------------------------------------------------------- - + UBool isLeapYear; int32_t fEpochYear; // Start year of this Chinese calendar instance. const TimeZone* fZoneAstroCalc; // Zone used for the astronomical calculation @@ -162,18 +162,18 @@ class U_I18N_API ChineseCalendar : public Calendar { //---------------------------------------------------------------------- protected: - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; - virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const; - virtual int32_t handleGetExtendedYear(); - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); - virtual const UFieldResolutionTable* getFieldResolutionTable() const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; + virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const override; + virtual int32_t handleGetExtendedYear() override; + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; + virtual const UFieldResolutionTable* getFieldResolutionTable() const override; public: - virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode &status); - virtual void add(EDateFields field, int32_t amount, UErrorCode &status); - virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode &status); - virtual void roll(EDateFields field, int32_t amount, UErrorCode &status); + virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode &status) override; + virtual void add(EDateFields field, int32_t amount, UErrorCode &status) override; + virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode &status) override; + virtual void roll(EDateFields field, int32_t amount, UErrorCode &status) override; //---------------------------------------------------------------------- // Internal methods & astronomical calculations @@ -198,13 +198,13 @@ class U_I18N_API ChineseCalendar : public Calendar { const TimeZone* getChineseCalZoneAstroCalc(void) const; // UObject stuff - public: + public: /** * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -225,7 +225,7 @@ class U_I18N_API ChineseCalendar : public Calendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; protected: @@ -238,38 +238,38 @@ class U_I18N_API ChineseCalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; /** * Returns true because the Islamic Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; private: // default century stuff. /** - * Returns the beginning date of the 100-year window that dates + * Returns the beginning date of the 100-year window that dates * with 2-digit years are considered to fall within. */ UDate internalGetDefaultCenturyStart(void) const; /** - * Returns the first year of the 100-year window that dates with + * Returns the first year of the 100-year window that dates with * 2-digit years are considered to fall within. */ int32_t internalGetDefaultCenturyStartYear(void) const; diff --git a/deps/icu-small/source/i18n/choicfmt.cpp b/deps/icu-small/source/i18n/choicfmt.cpp index 16880706d3f1dc..d06eec35fa2355 100644 --- a/deps/icu-small/source/i18n/choicfmt.cpp +++ b/deps/icu-small/source/i18n/choicfmt.cpp @@ -12,11 +12,11 @@ * * Date Name Description * 02/19/97 aliu Converted from java. -* 03/20/97 helena Finished first cut of implementation and got rid +* 03/20/97 helena Finished first cut of implementation and got rid * of nextDouble/previousDouble and replaced with * boolean array. * 4/10/97 aliu Clean up. Modified to work on AIX. -* 06/04/97 helena Fixed applyPattern(), toPattern() and not to include +* 06/04/97 helena Fixed applyPattern(), toPattern() and not to include * wchar.h. * 07/09/97 helena Made ParsePosition into a class. * 08/06/97 nos removed overloaded constructor, fixed 'format(array)' @@ -83,11 +83,11 @@ ChoiceFormat::ChoiceFormat(const UnicodeString& newPattern, } // ------------------------------------- -// Creates a ChoiceFormat instance with the limit array and +// Creates a ChoiceFormat instance with the limit array and // format strings for each limit. -ChoiceFormat::ChoiceFormat(const double* limits, - const UnicodeString* formats, +ChoiceFormat::ChoiceFormat(const double* limits, + const UnicodeString* formats, int32_t cnt ) : constructorErrorCode(U_ZERO_ERROR), msgPattern(constructorErrorCode) @@ -97,9 +97,9 @@ ChoiceFormat::ChoiceFormat(const double* limits, // ------------------------------------- -ChoiceFormat::ChoiceFormat(const double* limits, +ChoiceFormat::ChoiceFormat(const double* limits, const UBool* closures, - const UnicodeString* formats, + const UnicodeString* formats, int32_t cnt ) : constructorErrorCode(U_ZERO_ERROR), msgPattern(constructorErrorCode) @@ -110,7 +110,7 @@ ChoiceFormat::ChoiceFormat(const double* limits, // ------------------------------------- // copy constructor -ChoiceFormat::ChoiceFormat(const ChoiceFormat& that) +ChoiceFormat::ChoiceFormat(const ChoiceFormat& that) : NumberFormat(that), constructorErrorCode(that.constructorErrorCode), msgPattern(that.msgPattern) @@ -118,8 +118,8 @@ ChoiceFormat::ChoiceFormat(const ChoiceFormat& that) } // ------------------------------------- -// Private constructor that creates a -// ChoiceFormat instance based on the +// Private constructor that creates a +// ChoiceFormat instance based on the // pattern and populates UParseError ChoiceFormat::ChoiceFormat(const UnicodeString& newPattern, @@ -132,11 +132,11 @@ ChoiceFormat::ChoiceFormat(const UnicodeString& newPattern, } // ------------------------------------- -UBool +bool ChoiceFormat::operator==(const Format& that) const { - if (this == &that) return TRUE; - if (!NumberFormat::operator==(that)) return FALSE; + if (this == &that) return true; + if (!NumberFormat::operator==(that)) return false; ChoiceFormat& thatAlias = (ChoiceFormat&)that; return msgPattern == thatAlias.msgPattern; } @@ -250,10 +250,10 @@ ChoiceFormat::toPattern(UnicodeString& result) const } // ------------------------------------- -// Sets the limit and format arrays. +// Sets the limit and format arrays. void -ChoiceFormat::setChoices( const double* limits, - const UnicodeString* formats, +ChoiceFormat::setChoices( const double* limits, + const UnicodeString* formats, int32_t cnt ) { UErrorCode errorCode = U_ZERO_ERROR; @@ -261,11 +261,11 @@ ChoiceFormat::setChoices( const double* limits, } // ------------------------------------- -// Sets the limit and format arrays. +// Sets the limit and format arrays. void -ChoiceFormat::setChoices( const double* limits, +ChoiceFormat::setChoices( const double* limits, const UBool* closures, - const UnicodeString* formats, + const UnicodeString* formats, int32_t cnt ) { UErrorCode errorCode = U_ZERO_ERROR; @@ -344,7 +344,7 @@ ChoiceFormat::setChoices(const double* limits, // Gets the limit array. const double* -ChoiceFormat::getLimits(int32_t& cnt) const +ChoiceFormat::getLimits(int32_t& cnt) const { cnt = 0; return NULL; @@ -354,7 +354,7 @@ ChoiceFormat::getLimits(int32_t& cnt) const // Gets the closures array. const UBool* -ChoiceFormat::getClosures(int32_t& cnt) const +ChoiceFormat::getClosures(int32_t& cnt) const { cnt = 0; return NULL; @@ -376,8 +376,8 @@ ChoiceFormat::getFormats(int32_t& cnt) const // from the input number because of this. UnicodeString& -ChoiceFormat::format(int64_t number, - UnicodeString& appendTo, +ChoiceFormat::format(int64_t number, + UnicodeString& appendTo, FieldPosition& status) const { return format((double) number, appendTo, status); @@ -388,8 +388,8 @@ ChoiceFormat::format(int64_t number, // a double. UnicodeString& -ChoiceFormat::format(int32_t number, - UnicodeString& appendTo, +ChoiceFormat::format(int32_t number, + UnicodeString& appendTo, FieldPosition& status) const { return format((double) number, appendTo, status); @@ -399,8 +399,8 @@ ChoiceFormat::format(int32_t number, // Formats a double number. UnicodeString& -ChoiceFormat::format(double number, - UnicodeString& appendTo, +ChoiceFormat::format(double number, + UnicodeString& appendTo, FieldPosition& /*pos*/) const { if (msgPattern.countParts() == 0) { @@ -464,7 +464,7 @@ ChoiceFormat::findSubMessage(const MessagePattern &pattern, int32_t partIndex, d // ------------------------------------- // Formats an array of objects. Checks if the data type of the objects -// to get the right value for formatting. +// to get the right value for formatting. UnicodeString& ChoiceFormat::format(const Formattable* objs, @@ -495,7 +495,7 @@ ChoiceFormat::format(const Formattable* objs, // ------------------------------------- void -ChoiceFormat::parse(const UnicodeString& text, +ChoiceFormat::parse(const UnicodeString& text, Formattable& result, ParsePosition& pos) const { diff --git a/deps/icu-small/source/i18n/coleitr.cpp b/deps/icu-small/source/i18n/coleitr.cpp index 40fe149830fe8a..48c1da9015a448 100644 --- a/deps/icu-small/source/i18n/coleitr.cpp +++ b/deps/icu-small/source/i18n/coleitr.cpp @@ -20,7 +20,7 @@ * 08/03/98 erm Synched with 1.2 version of CollationElementIterator.java * 12/10/99 aliu Ported Thai collation support from Java. * 01/25/01 swquek Modified to a C++ wrapper calling C APIs (ucoliter.h) -* 02/19/01 swquek Removed CollationElementIterator() since it is +* 02/19/01 swquek Removed CollationElementIterator() since it is * private constructor and no calls are made to it * 2012-2014 markus Rewritten in C++ again. */ @@ -53,7 +53,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CollationElementIterator) /* CollationElementIterator public constructor/destructor ------------------ */ CollationElementIterator::CollationElementIterator( - const CollationElementIterator& other) + const CollationElementIterator& other) : UObject(other), iter_(NULL), rbc_(NULL), otherHalf_(0), dir_(0), offsets_(NULL) { *this = other; } @@ -98,8 +98,8 @@ int32_t CollationElementIterator::getOffset() const /** * Get the ordering priority of the next character in the string. -* @return the next character's ordering. Returns NULLORDER if an error has -* occured or if the end of string has been reached +* @return the next character's ordering. Returns NULLORDER if an error has +* occurred or if the end of string has been reached */ int32_t CollationElementIterator::next(UErrorCode& status) { @@ -137,17 +137,17 @@ int32_t CollationElementIterator::next(UErrorCode& status) return firstHalf; } -UBool CollationElementIterator::operator!=( +bool CollationElementIterator::operator!=( const CollationElementIterator& other) const { return !(*this == other); } -UBool CollationElementIterator::operator==( +bool CollationElementIterator::operator==( const CollationElementIterator& that) const { if (this == &that) { - return TRUE; + return true; } return @@ -161,8 +161,8 @@ UBool CollationElementIterator::operator==( /** * Get the ordering priority of the previous collation element in the string. * @param status the error code status. -* @return the previous element's ordering. Returns NULLORDER if an error has -* occured or if the start of string has been reached. +* @return the previous element's ordering. Returns NULLORDER if an error has +* occurred or if the start of string has been reached. */ int32_t CollationElementIterator::previous(UErrorCode& status) { @@ -227,7 +227,7 @@ void CollationElementIterator::reset() dir_ = 0; } -void CollationElementIterator::setOffset(int32_t newOffset, +void CollationElementIterator::setOffset(int32_t newOffset, UErrorCode& status) { if (U_FAILURE(status)) { return; } @@ -297,10 +297,10 @@ void CollationElementIterator::setText(const UnicodeString& source, } // Sets the source to the new character iterator. -void CollationElementIterator::setText(CharacterIterator& source, +void CollationElementIterator::setText(CharacterIterator& source, UErrorCode& status) { - if (U_FAILURE(status)) + if (U_FAILURE(status)) return; source.getText(string_); @@ -323,7 +323,7 @@ int32_t CollationElementIterator::strengthOrder(int32_t order) const /* CollationElementIterator private constructors/destructors --------------- */ -/** +/** * This is the "real" constructor for this class; it constructs an iterator * over the source text using the specified collator */ @@ -335,8 +335,8 @@ CollationElementIterator::CollationElementIterator( setText(source, status); } -/** -* This is the "real" constructor for this class; it constructs an iterator over +/** +* This is the "real" constructor for this class; it constructs an iterator over * the source text using the specified collator */ CollationElementIterator::CollationElementIterator( @@ -398,8 +398,8 @@ class MaxExpSink : public ContractionsAndExpansions::CESink { public: MaxExpSink(UHashtable *h, UErrorCode &ec) : maxExpansions(h), errorCode(ec) {} virtual ~MaxExpSink(); - virtual void handleCE(int64_t /*ce*/) {} - virtual void handleExpansion(const int64_t ces[], int32_t length) { + virtual void handleCE(int64_t /*ce*/) override {} + virtual void handleExpansion(const int64_t ces[], int32_t length) override { if (length <= 1) { // We do not need to add single CEs into the map. return; diff --git a/deps/icu-small/source/i18n/coll.cpp b/deps/icu-small/source/i18n/coll.cpp index 984831e761bdd6..fe73118da038c1 100644 --- a/deps/icu-small/source/i18n/coll.cpp +++ b/deps/icu-small/source/i18n/coll.cpp @@ -33,14 +33,14 @@ * 05/06/97 helena Added memory allocation error detection. * 05/08/97 helena Added createInstance(). * 6/20/97 helena Java class name change. - * 04/23/99 stephen Removed EDecompositionMode, merged with + * 04/23/99 stephen Removed EDecompositionMode, merged with * Normalizer::EMode * 11/23/9 srl Inlining of some critical functions * 01/29/01 synwee Modified into a C++ wrapper calling C APIs (ucol.h) * 2012-2014 markus Rewritten in C++ again. */ -#include "utypeinfo.h" // for 'typeid' to work +#include "utypeinfo.h" // for 'typeid' to work #include "unicode/utypes.h" @@ -114,8 +114,8 @@ CollatorFactory::visible(void) const { //------------------------------------------- -UnicodeString& -CollatorFactory::getDisplayName(const Locale& objectLocale, +UnicodeString& +CollatorFactory::getDisplayName(const Locale& objectLocale, const Locale& displayLocale, UnicodeString& result) { @@ -129,7 +129,7 @@ class ICUCollatorFactory : public ICUResourceBundleFactory { ICUCollatorFactory() : ICUResourceBundleFactory(UnicodeString(U_ICUDATA_COLL, -1, US_INV)) { } virtual ~ICUCollatorFactory(); protected: - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const; + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override; }; ICUCollatorFactory::~ICUCollatorFactory() {} @@ -143,7 +143,7 @@ ICUCollatorFactory::create(const ICUServiceKey& key, const ICUService* /* servic // default LocaleFactory uses currentLocale since that's the one vetted by handlesKey // but for ICU rb resources we use the actual one since it will fallback again lkey.canonicalLocale(loc); - + return Collator::makeInstance(loc, status); } return NULL; @@ -162,11 +162,11 @@ class ICUCollatorService : public ICULocaleService { virtual ~ICUCollatorService(); - virtual UObject* cloneInstance(UObject* instance) const { + virtual UObject* cloneInstance(UObject* instance) const override { return ((Collator*)instance)->clone(); } - - virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* actualID, UErrorCode& status) const { + + virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* actualID, UErrorCode& status) const override { LocaleKey& lkey = (LocaleKey&)key; if (actualID) { // Ugly Hack Alert! We return an empty actualID to signal @@ -178,8 +178,8 @@ class ICUCollatorService : public ICULocaleService { lkey.canonicalLocale(loc); return Collator::makeInstance(loc, status); } - - virtual UObject* getKey(ICUServiceKey& key, UnicodeString* actualReturn, UErrorCode& status) const { + + virtual UObject* getKey(ICUServiceKey& key, UnicodeString* actualReturn, UErrorCode& status) const override { UnicodeString ar; if (actualReturn == NULL) { actualReturn = &ar; @@ -187,7 +187,7 @@ class ICUCollatorService : public ICULocaleService { return (Collator*)ICULocaleService::getKey(key, actualReturn, status); } - virtual UBool isDefault() const { + virtual UBool isDefault() const override { return countFactories() == 1; } }; @@ -202,7 +202,7 @@ static void U_CALLCONV initService() { } -static ICULocaleService* +static ICULocaleService* getService(void) { umtx_initOnce(gServiceInitOnce, &initService); @@ -212,7 +212,7 @@ getService(void) // ------------------------------------- static inline UBool -hasService(void) +hasService(void) { UBool retVal = !gServiceInitOnce.isReset() && (getService() != NULL); return retVal; @@ -220,7 +220,7 @@ hasService(void) #endif /* UCONFIG_NO_SERVICE */ -static void U_CALLCONV +static void U_CALLCONV initAvailableLocaleList(UErrorCode &status) { U_ASSERT(availableLocaleListCount == 0); U_ASSERT(availableLocaleList == NULL); @@ -228,14 +228,14 @@ initAvailableLocaleList(UErrorCode &status) { UResourceBundle *index = NULL; StackUResourceBundle installed; int32_t i = 0; - + index = ures_openDirect(U_ICUDATA_COLL, "res_index", &status); ures_getByKey(index, "InstalledLocales", installed.getAlias(), &status); if(U_SUCCESS(status)) { availableLocaleListCount = ures_getSize(installed.getAlias()); availableLocaleList = new Locale[availableLocaleListCount]; - + if (availableLocaleList != NULL) { ures_resetIterator(installed.getAlias()); while(ures_hasNext(installed.getAlias())) { @@ -421,7 +421,7 @@ void setAttributesFromKeywords(const Locale &loc, Collator &coll, UErrorCode &er } // namespace -Collator* U_EXPORT2 Collator::createInstance(UErrorCode& success) +Collator* U_EXPORT2 Collator::createInstance(UErrorCode& success) { return createInstance(Locale::getDefault(), success); } @@ -429,7 +429,7 @@ Collator* U_EXPORT2 Collator::createInstance(UErrorCode& success) Collator* U_EXPORT2 Collator::createInstance(const Locale& desiredLocale, UErrorCode& status) { - if (U_FAILURE(status)) + if (U_FAILURE(status)) return 0; if (desiredLocale.isBogus()) { // Locale constructed from malformed locale ID or language tag. @@ -488,7 +488,7 @@ Collator::safeClone() const { } // implement deprecated, previously abstract method -Collator::EComparisonResult Collator::compare(const UnicodeString& source, +Collator::EComparisonResult Collator::compare(const UnicodeString& source, const UnicodeString& target) const { UErrorCode ec = U_ZERO_ERROR; @@ -506,7 +506,7 @@ Collator::EComparisonResult Collator::compare(const UnicodeString& source, // implement deprecated, previously abstract method Collator::EComparisonResult Collator::compare(const UChar* source, int32_t sourceLength, - const UChar* target, int32_t targetLength) + const UChar* target, int32_t targetLength) const { UErrorCode ec = U_ZERO_ERROR; @@ -535,21 +535,21 @@ UCollationResult Collator::compareUTF8(const StringPiece &source, return compare(sIter, tIter, status); } -UBool Collator::equals(const UnicodeString& source, +UBool Collator::equals(const UnicodeString& source, const UnicodeString& target) const { UErrorCode ec = U_ZERO_ERROR; return (compare(source, target, ec) == UCOL_EQUAL); } -UBool Collator::greaterOrEqual(const UnicodeString& source, +UBool Collator::greaterOrEqual(const UnicodeString& source, const UnicodeString& target) const { UErrorCode ec = U_ZERO_ERROR; return (compare(source, target, ec) != UCOL_LESS); } -UBool Collator::greater(const UnicodeString& source, +UBool Collator::greater(const UnicodeString& source, const UnicodeString& target) const { UErrorCode ec = U_ZERO_ERROR; @@ -558,7 +558,7 @@ UBool Collator::greater(const UnicodeString& source, // this API ignores registered collators, since it returns an // array of indefinite lifetime -const Locale* U_EXPORT2 Collator::getAvailableLocales(int32_t& count) +const Locale* U_EXPORT2 Collator::getAvailableLocales(int32_t& count) { UErrorCode status = U_ZERO_ERROR; Locale *result = NULL; @@ -587,7 +587,7 @@ UnicodeString& U_EXPORT2 Collator::getDisplayName(const Locale& objectLocale, UnicodeString& U_EXPORT2 Collator::getDisplayName(const Locale& objectLocale, UnicodeString& name) -{ +{ return getDisplayName(objectLocale, Locale::getDefault(), name); } @@ -604,7 +604,7 @@ UnicodeString& U_EXPORT2 Collator::getDisplayName(const Locale& objectLocale, /** * Default constructor. * Constructor is different from the old default Collator constructor. -* The task for determing the default collation strength and normalization mode +* The task for determining the default collation strength and normalization mode * is left to the child class. */ Collator::Collator() @@ -616,7 +616,7 @@ Collator::Collator() * Constructor. * Empty constructor, does not handle the arguments. * This constructor is done for backward compatibility with 1.7 and 1.8. -* The task for handling the argument collation strength and normalization +* The task for handling the argument collation strength and normalization * mode is left to the child class. * @param collationStrength collation strength * @param decompositionMode @@ -636,15 +636,15 @@ Collator::Collator(const Collator &other) { } -UBool Collator::operator==(const Collator& other) const +bool Collator::operator==(const Collator& other) const { // Subclasses: Call this method and then add more specific checks. return typeid(*this) == typeid(other); } -UBool Collator::operator!=(const Collator& other) const +bool Collator::operator!=(const Collator& other) const { - return (UBool)!(*this == other); + return !operator==(other); } int32_t U_EXPORT2 Collator::getBound(const uint8_t *source, @@ -675,7 +675,7 @@ UnicodeSet *Collator::getTailoredSet(UErrorCode &status) const #if !UCONFIG_NO_SERVICE URegistryKey U_EXPORT2 -Collator::registerInstance(Collator* toAdopt, const Locale& locale, UErrorCode& status) +Collator::registerInstance(Collator* toAdopt, const Locale& locale, UErrorCode& status) { if (U_SUCCESS(status)) { // Set the collator locales while registering so that createInstance() @@ -693,9 +693,9 @@ class CFactory : public LocaleKeyFactory { private: CollatorFactory* _delegate; Hashtable* _ids; - + public: - CFactory(CollatorFactory* delegate, UErrorCode& status) + CFactory(CollatorFactory* delegate, UErrorCode& status) : LocaleKeyFactory(delegate->visible() ? VISIBLE : INVISIBLE) , _delegate(delegate) , _ids(NULL) @@ -721,19 +721,19 @@ class CFactory : public LocaleKeyFactory { virtual ~CFactory(); - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const; - + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override; + protected: - virtual const Hashtable* getSupportedIDs(UErrorCode& status) const + virtual const Hashtable* getSupportedIDs(UErrorCode& status) const override { if (U_SUCCESS(status)) { return _ids; } return NULL; } - + virtual UnicodeString& - getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const; + getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const override; }; CFactory::~CFactory() @@ -742,7 +742,7 @@ CFactory::~CFactory() delete _ids; } -UObject* +UObject* CFactory::create(const ICUServiceKey& key, const ICUService* /* service */, UErrorCode& status) const { if (handlesKey(key, status)) { @@ -755,7 +755,7 @@ CFactory::create(const ICUServiceKey& key, const ICUService* /* service */, UErr } UnicodeString& -CFactory::getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const +CFactory::getDisplayName(const UnicodeString& id, const Locale& locale, UnicodeString& result) const { if ((_coverage & 0x1) == 0) { UErrorCode status = U_ZERO_ERROR; @@ -786,7 +786,7 @@ Collator::registerFactory(CollatorFactory* toAdopt, UErrorCode& status) // ------------------------------------- UBool U_EXPORT2 -Collator::unregister(URegistryKey key, UErrorCode& status) +Collator::unregister(URegistryKey key, UErrorCode& status) { if (U_SUCCESS(status)) { if (hasService()) { @@ -803,7 +803,7 @@ class CollationLocaleListEnumeration : public StringEnumeration { int32_t index; public: static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; public: CollationLocaleListEnumeration() : index(0) @@ -814,7 +814,7 @@ class CollationLocaleListEnumeration : public StringEnumeration { virtual ~CollationLocaleListEnumeration(); - virtual StringEnumeration * clone() const + virtual StringEnumeration * clone() const override { CollationLocaleListEnumeration *result = new CollationLocaleListEnumeration(); if (result) { @@ -823,11 +823,11 @@ class CollationLocaleListEnumeration : public StringEnumeration { return result; } - virtual int32_t count(UErrorCode &/*status*/) const { + virtual int32_t count(UErrorCode &/*status*/) const override { return availableLocaleListCount; } - virtual const char* next(int32_t* resultLength, UErrorCode& /*status*/) { + virtual const char* next(int32_t* resultLength, UErrorCode& /*status*/) override { const char* result; if(index < availableLocaleListCount) { result = availableLocaleList[index++].getName(); @@ -843,13 +843,13 @@ class CollationLocaleListEnumeration : public StringEnumeration { return result; } - virtual const UnicodeString* snext(UErrorCode& status) { + virtual const UnicodeString* snext(UErrorCode& status) override { int32_t resultLength = 0; const char *s = next(&resultLength, status); return setChars(s, resultLength, status); } - virtual void reset(UErrorCode& /*status*/) { + virtual void reset(UErrorCode& /*status*/) override { index = 0; } }; diff --git a/deps/icu-small/source/i18n/collation.h b/deps/icu-small/source/i18n/collation.h index ecbba29057f03a..6a449a3eb69331 100644 --- a/deps/icu-small/source/i18n/collation.h +++ b/deps/icu-small/source/i18n/collation.h @@ -250,7 +250,7 @@ class U_I18N_API Collation { * Tag for a lead surrogate code unit. * Optional optimization for UTF-16 string processing. * Bits 31..10: Unused, 0. - * 9.. 8: =0: All associated supplementary code points are unassigned-implict. + * 9.. 8: =0: All associated supplementary code points are unassigned-implicit. * =1: All associated supplementary code points fall back to the base data. * else: (Normally 2) Look up the data for the supplementary code point. */ diff --git a/deps/icu-small/source/i18n/collationbuilder.cpp b/deps/icu-small/source/i18n/collationbuilder.cpp index b411b4f12f6bf9..5d4611b851d72b 100644 --- a/deps/icu-small/source/i18n/collationbuilder.cpp +++ b/deps/icu-small/source/i18n/collationbuilder.cpp @@ -59,7 +59,7 @@ class BundleImporter : public CollationRuleParser::Importer { virtual void getRules( const char *localeID, const char *collationType, UnicodeString &rules, - const char *&errorReason, UErrorCode &errorCode); + const char *&errorReason, UErrorCode &errorCode) override; }; BundleImporter::~BundleImporter() {} @@ -577,7 +577,7 @@ CollationBuilder::getSpecialResetPosition(const UnicodeString &str, parserErrorReason = "LDML forbids tailoring to U+FFFF"; return 0; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } int32_t index = findOrInsertNodeForRootCE(ce, strength, errorCode); @@ -1581,7 +1581,7 @@ class CEFinalizer : public CollationDataBuilder::CEModifier { public: CEFinalizer(const int64_t *ces) : finalCEs(ces) {} virtual ~CEFinalizer(); - virtual int64_t modifyCE32(uint32_t ce32) const { + virtual int64_t modifyCE32(uint32_t ce32) const override { U_ASSERT(!Collation::isSpecialCE32(ce32)); if(CollationBuilder::isTempCE32(ce32)) { // retain case bits @@ -1590,7 +1590,7 @@ class CEFinalizer : public CollationDataBuilder::CEModifier { return Collation::NO_CE; } } - virtual int64_t modifyCE(int64_t ce) const { + virtual int64_t modifyCE(int64_t ce) const override { if(CollationBuilder::isTempCE(ce)) { // retain case bits return finalCEs[CollationBuilder::indexFromTempCE(ce)] | (ce & 0xc000); diff --git a/deps/icu-small/source/i18n/collationbuilder.h b/deps/icu-small/source/i18n/collationbuilder.h index 82f0459748f051..59d3c5d24b0608 100644 --- a/deps/icu-small/source/i18n/collationbuilder.h +++ b/deps/icu-small/source/i18n/collationbuilder.h @@ -57,7 +57,7 @@ class U_I18N_API CollationBuilder : public CollationRuleParser::Sink { /** Implements CollationRuleParser::Sink. */ virtual void addReset(int32_t strength, const UnicodeString &str, - const char *&errorReason, UErrorCode &errorCode); + const char *&errorReason, UErrorCode &errorCode) override; /** * Returns the secondary or tertiary weight preceding the current node's weight. * node=nodes[index]. @@ -70,7 +70,7 @@ class U_I18N_API CollationBuilder : public CollationRuleParser::Sink { /** Implements CollationRuleParser::Sink. */ virtual void addRelation(int32_t strength, const UnicodeString &prefix, const UnicodeString &str, const UnicodeString &extension, - const char *&errorReason, UErrorCode &errorCode); + const char *&errorReason, UErrorCode &errorCode) override; /** * Picks one of the current CEs and finds or inserts a node in the graph @@ -115,11 +115,11 @@ class U_I18N_API CollationBuilder : public CollationRuleParser::Sink { /** Implements CollationRuleParser::Sink. */ virtual void suppressContractions(const UnicodeSet &set, const char *&parserErrorReason, - UErrorCode &errorCode); + UErrorCode &errorCode) override; /** Implements CollationRuleParser::Sink. */ virtual void optimize(const UnicodeSet &set, const char *&parserErrorReason, - UErrorCode &errorCode); + UErrorCode &errorCode) override; /** * Adds the mapping and its canonical closure. diff --git a/deps/icu-small/source/i18n/collationdatabuilder.cpp b/deps/icu-small/source/i18n/collationdatabuilder.cpp index 613124a6f58c50..25050aa777e681 100644 --- a/deps/icu-small/source/i18n/collationdatabuilder.cpp +++ b/deps/icu-small/source/i18n/collationdatabuilder.cpp @@ -131,18 +131,18 @@ class DataBuilderCollationIterator : public CollationIterator { int32_t fetchCEs(const UnicodeString &str, int32_t start, int64_t ces[], int32_t cesLength); - virtual void resetToOffset(int32_t newOffset); - virtual int32_t getOffset() const; + virtual void resetToOffset(int32_t newOffset) override; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual uint32_t getDataCE32(UChar32 c) const; - virtual uint32_t getCE32FromBuilderData(uint32_t ce32, UErrorCode &errorCode); + virtual uint32_t getDataCE32(UChar32 c) const override; + virtual uint32_t getCE32FromBuilderData(uint32_t ce32, UErrorCode &errorCode) override; CollationDataBuilder &builder; CollationData builderData; @@ -508,7 +508,7 @@ CollationDataBuilder::addCE32(uint32_t ce32, UErrorCode &errorCode) { for(int32_t i = 0; i < length; ++i) { if(ce32 == (uint32_t)ce32s.elementAti(i)) { return i; } } - ce32s.addElement((int32_t)ce32, errorCode); + ce32s.addElement((int32_t)ce32, errorCode); return length; } @@ -527,7 +527,7 @@ CollationDataBuilder::addConditionalCE32(const UnicodeString &context, uint32_t errorCode = U_MEMORY_ALLOCATION_ERROR; return -1; } - conditionalCE32s.addElement(cond, errorCode); + conditionalCE32s.addElementX(cond, errorCode); return index; } @@ -858,7 +858,7 @@ CollationDataBuilder::copyFromBaseCE32(UChar32 c, uint32_t ce32, UBool withConte ce32 = encodeOneCE(Collation::unassignedCEFromCodePoint(c), errorCode); break; default: - UPRV_UNREACHABLE; // require ce32 == base->getFinalCE32(ce32) + UPRV_UNREACHABLE_EXIT; // require ce32 == base->getFinalCE32(ce32) } return ce32; } diff --git a/deps/icu-small/source/i18n/collationfcd.cpp b/deps/icu-small/source/i18n/collationfcd.cpp index 9f73ff38981f1c..0be4150b09bba3 100644 --- a/deps/icu-small/source/i18n/collationfcd.cpp +++ b/deps/icu-small/source/i18n/collationfcd.cpp @@ -1,6 +1,5 @@ -// © 2016 and later: Unicode, Inc. and others. +// Copyright (C) 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -// // Copyright (C) 1999-2016, International Business Machines // Corporation and others. All Rights Reserved. // @@ -8,7 +7,6 @@ // // machine-generated by: icu/tools/unicode/c/genuca/genuca.cpp - #include "unicode/utypes.h" #if !UCONFIG_NO_COLLATION @@ -22,27 +20,27 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,1,1,2,3,0,0,0,0, 0,0,0,0,4,0,0,0,0,0,0,0,5,6,7,0, 8,0,9,0xa,0,0,0xb,0xc,0xd,0xe,0xf,0,0,0,0,0x10, -0x11,0x12,0x13,0,0,0,0x14,0x15,0,0x16,0x17,0,0,0x16,0x18,0x19, -0,0x16,0x18,0,0,0x16,0x18,0,0,0x16,0x18,0,0,0,0x18,0, -0,0,0x1a,0,0,0x16,0x18,0,0,0x1b,0x18,0,0,0,0x1c,0, -0,0x1d,0x1e,0,0,0x1d,0x1e,0,0x1f,0x20,0,0x21,0x22,0,0x23,0, -0,0x24,0,0,0x18,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x25,0,0,0,0,0, +0x11,0x12,0x13,0,0x14,0,0x15,0x16,0,0x17,0x18,0,0,0x17,0x19,0x1a, +0,0x17,0x19,0,0,0x17,0x19,0,0,0x17,0x19,0,0,0,0x19,0, +0,0x17,0x1b,0,0,0x17,0x19,0,0,0x1c,0x19,0,0,0,0x1d,0, +0,0x1e,0x1f,0,0,0x1e,0x1f,0,0x20,0x21,0,0x22,0x23,0,0x24,0, +0,0x25,0,0,0x19,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x26,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x26,0x26,0,0,0,0,0x27,0, -0,0,0,0,0,0x28,0,0,0,0x13,0,0,0,0,0,0, -0x29,0,0,0x2a,0,0x2b,0x2c,0,0,0x26,0x2d,0x2e,0,0x2f,0,0x30, -0,0x31,0,0,0,0,0x32,0x33,0,0,0,0,0,0,1,0x34, +0,0,0,0,0,0,0,0,0x27,0x28,0,0,0,0,0x29,0, +0,0,0,0,0,0x2a,0,0,0,0x13,0,0,0,0,0,0, +0x2b,0,0,0x2c,0,0x2d,0x2e,0,0,0x28,0x2f,0x30,0,0x31,0,0x32, +0,0x33,0,0,0,0,0x34,0x35,0,0,0,0,0,0,1,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x35,0x36,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0x36,0x37,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x37,0,0,0,0x38,0,0,0,1, +0,0,0,0,0,0,0,0x38,0,0,0,0x39,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x39,0,0,0x3a,0,0,0,0,0,0,0,0,0,0,0, +0,0x3a,0,0,0x3b,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -101,9 +99,9 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x3b,0x3c,0,0,0x3d,0,0,0,0,0,0,0,0, -0x23,0x3e,0,0,0,0,0x2d,0x3f,0,0x40,0x41,0,0,0x41,0x2c,0, -0,0,0,0,0,0x42,0x43,0x44,0,0,0,0,0,0,0,0x18, +0,0,0,0x3c,0x3d,0,0,0x3e,0,0,0,0,0,0,0,0, +0x24,0x3f,0,0,0,0,0x2f,0x40,0,0x41,0x42,0,0,0x42,0x43,0, +0,0,0,0,0,0x44,0x45,0x46,0,0,0,0,0,0,0,0x19, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -126,7 +124,7 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x45,0x46,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x47,0x48,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1, @@ -143,17 +141,17 @@ const uint8_t CollationFCD::lcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x19,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x1a,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -const uint32_t CollationFCD::lcccBits[71]={ +const uint32_t CollationFCD::lcccBits[73]={ 0,0xffffffff,0xffff7fff,0xffff,0xf8,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0xfffff800,0x10000,0x9fc00000,0x3d9f,0x20000,0xffff0000,0x7ff, -0x200ff800,0xfbc00000,0x3eef,0xe000000,0xfff80000,0xfffffffb,0x10000000,0x1e2000,0x2000,0x40000000,0x602000,0x18000000,0x400,0x7000000,0xf00,0x3000000, -0x2a00000,0x3c3e0000,0xdf,0x40,0x6800000,0xe0000000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,1,0x10,0xff800,0xc00, -0xc0040,0x800000,0xfff70000,0x31021fd,0xfbffffff,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x1000,0x3ffff, -0x3800,0x80000,0xc19d0000,2,0x400000,0xc0000fd,0x5108000 +0x200ff800,0xfbc00000,0x3eef,0xe000000,0xff000000,0xfffffc00,0xfffffffb,0x10000000,0x1e2000,0x2000,0x40000000,0x602000,0x18000000,0x400,0x7000000,0xf00, +0x3000000,0x2a00000,0x3c3e0000,0xdf,0x40,0x6800000,0xe0000000,0x300000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,0x7fff,0x10, +0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0x1fff0000,0x1ffe2,0x38000,0x80000000,0xfc00,0x6000000,0x3ff08000,0xc0000000,0x30000,0x1000, +0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x5108000 }; const uint8_t CollationFCD::tcccIndex[2048]={ @@ -161,27 +159,27 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0xb,0xc,0,0,0,0,0,0,1,1,0xd,0xe,0xf,0x10,0x11,0, 0x12,0x13,0x14,0x15,0x16,0,0x17,0x18,0,0,0,0,0x19,0x1a,0x1b,0, 0x1c,0x1d,0x1e,0x1f,0,0,0x20,0x21,0x22,0x23,0x24,0,0,0,0,0x25, -0x26,0x27,0x28,0,0,0,0x29,0x2a,0,0x2b,0x2c,0,0,0x2d,0x2e,0x2f, -0,0x30,0x31,0,0,0x2d,0x32,0,0,0x2d,0x33,0,0,0,0x32,0, -0,0,0x34,0,0,0x2d,0x32,0,0,0x35,0x32,0,0,0,0x36,0, -0,0x37,0x38,0,0,0x37,0x38,0,0x39,0x3a,0,0x3b,0x3c,0,0x3d,0, -0,0x3e,0,0,0x32,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0,0,0x3f,0,0,0,0,0, +0x26,0x27,0x28,0,0x29,0,0x2a,0x2b,0,0x2c,0x2d,0,0,0x2e,0x2f,0x30, +0,0x31,0x32,0,0,0x2e,0x33,0,0,0x2e,0x34,0,0,0,0x33,0, +0,0x2e,0x35,0,0,0x2e,0x33,0,0,0x36,0x33,0,0,0,0x37,0, +0,0x38,0x39,0,0,0x38,0x39,0,0x3a,0x3b,0,0x3c,0x3d,0,0x3e,0, +0,0x3f,0,0,0x33,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0x40,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x40,0x40,0,0,0,0,0x41,0, -0,0,0,0,0,0x42,0,0,0,0x28,0,0,0,0,0,0, -0x43,0,0,0x44,0,0x45,0x46,0,0,0x40,0x47,0x48,0,0x49,0,0x4a, -0,0x4b,0,0,0,0,0x4c,0x4d,0,0,0,0,0,0,1,0x4e, -1,1,1,1,0x4f,1,1,0x50,0x51,1,0x52,0x53,1,0x54,0x55,0x56, -0,0,0,0,0,0,0x57,0x58,0,0x59,0,0,0x5a,0x5b,0x5c,0, -0x5d,0x5e,0x5f,0x60,0x61,0x62,0,0x63,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x41,0x42,0,0,0,0,0x43,0, +0,0,0,0,0,0x44,0,0,0,0x28,0,0,0,0,0,0, +0x45,0,0,0x46,0,0x47,0x48,0,0,0x42,0x49,0x4a,0,0x4b,0,0x4c, +0,0x4d,0,0,0,0,0x4e,0x4f,0,0,0,0,0,0,1,1, +1,1,1,1,0x50,1,1,0x51,0x52,1,0x53,0x54,1,0x55,0x56,0x57, +0,0,0,0,0,0,0x58,0x59,0,0x5a,0,0,0x5b,0x5c,0x5d,0, +0x5e,0x5f,0x60,0x61,0x62,0x63,0,0x64,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0x2d,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0x64,0,0,0,0x65,0,0,0,1, +0,0,0,0,0,0,0x2e,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0x65,0,0,0,0x66,0,0,0,1, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0x66,0x67,0x68,0x69,0x67,0x68,0x6a,0,0,0,0,0,0,0,0, +0,0x67,0x68,0x69,0x6a,0x68,0x69,0x6b,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -240,9 +238,9 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0x6b,0x6c,0,0,0x6d,0,0,0,0,0,0,0,0, -0x3d,0x6e,0,0,0,0,0x47,0x6f,0,0x70,0x71,0,0,0x71,0x46,0, -0,0,0,0,0,0x72,0x73,0x74,0,0,0,0,0,0,0,0x32, +0,0,0,0x6c,0x6d,0,0,0x6e,0,0,0,0,0,0,0,0, +0x3e,0x6f,0,0,0,0,0x49,0x70,0,0x71,0x72,0,0,0x72,0x73,0, +0,0,0,0,0,0x74,0x75,0x76,0,0,0,0,0,0,0,0x33, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -265,7 +263,7 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0x75,0x76,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0x77,0x78,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, @@ -282,20 +280,20 @@ const uint8_t CollationFCD::tcccIndex[2048]={ 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, -0,0,0,0,0,0,0,0,0x3f,0x77,0x78,0,0,0,0,0, +0,0,0,0,0,0,0,0,0x40,0x79,0x7a,0,0,0,0,0, 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0xe,0,0,0,0,0,0,0,0,0,0,0,0,0,0 }; -const uint32_t CollationFCD::tcccBits[121]={ +const uint32_t CollationFCD::tcccBits[123]={ 0,0xffffffff,0x3e7effbf,0xbe7effbf,0xfffcffff,0x7ef1ff3f,0xfff3f1f8,0x7fffff3f,0x18003,0xdfffe000,0xff31ffcf,0xcfffffff,0xfffc0,0xffff7fff,0xffff,0x1d760, 0x1fc00,0x187c00,0x200708b,0x2000000,0x708b0000,0xc00000,0xf8,0xfccf0006,0x33ffcfc,0xfffe0000,0xbfffffff,0xb6,0x7ff0000,0x7c,0xfffff800,0x10000, -0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0x200ff800,0xfbc00000,0x3eef,0xe000000,0xfff80000,0xfffffffb,0x10120200,0xff1e2000,0x10000000,0xb0002000,0x40000000, -0x10480000,0x4e002000,0x2000,0x30002000,0x602100,0x18000000,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000,0xe0000000, -0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,1,0x10,0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd,0xfbffffff,0xbffffff, -0x3ffffff,0x3f3fffff,0xaaff3f3f,0x3fffffff,0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50,0x292, -0x333e005,0x333,0xf000,0x3c0f,0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x1000,0x3ffff, -0x3800,0x80000,0xc19d0000,2,0x400000,0xc0000fd,0x5108000,0x5f7ffc00,0x7fdb +0x9fc80005,0x3d9f,0x20000,0xffff0000,0x7ff,0x200ff800,0xfbc00000,0x3eef,0xe000000,0xff000000,0xfffffc00,0xfffffffb,0x10120200,0xff1e2000,0x10000000,0xb0002000, +0x40000000,0x10480000,0x4e002000,0x2000,0x30002000,0x602100,0x18000000,0x24000400,0x7000000,0xf00,0x3000000,0x2a00000,0x3d7e0000,0xdf,0x40,0x6800000, +0xe0000000,0x300000,0x100000,0x20040000,0x200,0x1800000,0x9fe00001,0xbfff0000,0x7fff,0x10,0xff800,0xc00,0xc0040,0x800000,0xfff70000,0x31021fd, +0xbffffff,0x3ffffff,0x3f3fffff,0xaaff3f3f,0x3fffffff,0x1fdfffff,0xefcfffde,0x1fdc7fff,0x1fff0000,0x1ffe2,0x800,0xc000000,0x4000,0xe000,0x1210,0x50, +0x292,0x333e005,0x333,0xf000,0x3c0f,0x38000,0x80000000,0xfc00,0x55555000,0x36db02a5,0x46100000,0x47900000,0x3ff08000,0xc0000000,0x30000,0x1000, +0x3ffff,0x3800,0x80000,1,0xc19d0000,2,0x400000,0xc0000fd,0x5108000,0x5f7ffc00,0x7fdb }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/collationiterator.cpp b/deps/icu-small/source/i18n/collationiterator.cpp index 18ccf014f0a48c..6bfdfbe7c70fa0 100644 --- a/deps/icu-small/source/i18n/collationiterator.cpp +++ b/deps/icu-small/source/i18n/collationiterator.cpp @@ -168,7 +168,7 @@ CollationIterator::~CollationIterator() { delete skipped; } -UBool +bool CollationIterator::operator==(const CollationIterator &other) const { // Subclasses: Call this method and then add more specific checks. // Compare the iterator state but not the collation data (trie & data fields): @@ -180,12 +180,12 @@ CollationIterator::operator==(const CollationIterator &other) const { cesIndex == other.cesIndex && numCpFwd == other.numCpFwd && isNumeric == other.isNumeric)) { - return FALSE; + return false; } for(int32_t i = 0; i < ceBuffer.length; ++i) { - if(ceBuffer.get(i) != other.ceBuffer.get(i)) { return FALSE; } + if(ceBuffer.get(i) != other.ceBuffer.get(i)) { return false; } } - return TRUE; + return true; } void diff --git a/deps/icu-small/source/i18n/collationiterator.h b/deps/icu-small/source/i18n/collationiterator.h index 869f0956c34d0d..73cb93b934ad94 100644 --- a/deps/icu-small/source/i18n/collationiterator.h +++ b/deps/icu-small/source/i18n/collationiterator.h @@ -109,8 +109,8 @@ class U_I18N_API CollationIterator : public UObject { virtual ~CollationIterator(); - virtual UBool operator==(const CollationIterator &other) const; - inline UBool operator!=(const CollationIterator &other) const { + virtual bool operator==(const CollationIterator &other) const; + inline bool operator!=(const CollationIterator &other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/collationkeys.h b/deps/icu-small/source/i18n/collationkeys.h index c526a4f14f2df8..5b41d14c0b683c 100644 --- a/deps/icu-small/source/i18n/collationkeys.h +++ b/deps/icu-small/source/i18n/collationkeys.h @@ -38,7 +38,7 @@ class SortKeyByteSink : public ByteSink { void IgnoreBytes(int32_t numIgnore) { ignore_ = numIgnore; } - virtual void Append(const char *bytes, int32_t n); + virtual void Append(const char *bytes, int32_t n) override; void Append(uint32_t b) { if (ignore_ > 0) { --ignore_; @@ -52,7 +52,7 @@ class SortKeyByteSink : public ByteSink { virtual char *GetAppendBuffer(int32_t min_capacity, int32_t desired_capacity_hint, char *scratch, int32_t scratch_capacity, - int32_t *result_capacity); + int32_t *result_capacity) override; int32_t NumberOfBytesAppended() const { return appended_; } /** diff --git a/deps/icu-small/source/i18n/collationsettings.cpp b/deps/icu-small/source/i18n/collationsettings.cpp index 534e20df3e8417..9eeab483310ad2 100644 --- a/deps/icu-small/source/i18n/collationsettings.cpp +++ b/deps/icu-small/source/i18n/collationsettings.cpp @@ -48,15 +48,15 @@ CollationSettings::~CollationSettings() { } } -UBool +bool CollationSettings::operator==(const CollationSettings &other) const { - if(options != other.options) { return FALSE; } - if((options & ALTERNATE_MASK) != 0 && variableTop != other.variableTop) { return FALSE; } - if(reorderCodesLength != other.reorderCodesLength) { return FALSE; } + if(options != other.options) { return false; } + if((options & ALTERNATE_MASK) != 0 && variableTop != other.variableTop) { return false; } + if(reorderCodesLength != other.reorderCodesLength) { return false; } for(int32_t i = 0; i < reorderCodesLength; ++i) { - if(reorderCodes[i] != other.reorderCodes[i]) { return FALSE; } + if(reorderCodes[i] != other.reorderCodes[i]) { return false; } } - return TRUE; + return true; } int32_t diff --git a/deps/icu-small/source/i18n/collationsettings.h b/deps/icu-small/source/i18n/collationsettings.h index 83e775d443bfd9..3da8f6214f64ee 100644 --- a/deps/icu-small/source/i18n/collationsettings.h +++ b/deps/icu-small/source/i18n/collationsettings.h @@ -115,9 +115,9 @@ struct U_I18N_API CollationSettings : public SharedObject { CollationSettings(const CollationSettings &other); virtual ~CollationSettings(); - UBool operator==(const CollationSettings &other) const; + bool operator==(const CollationSettings &other) const; - inline UBool operator!=(const CollationSettings &other) const { + inline bool operator!=(const CollationSettings &other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/collationweights.cpp b/deps/icu-small/source/i18n/collationweights.cpp index aec0037861a36f..05458962c6d959 100644 --- a/deps/icu-small/source/i18n/collationweights.cpp +++ b/deps/icu-small/source/i18n/collationweights.cpp @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ******************************************************************************* * * Copyright (C) 1999-2015, International Business Machines diff --git a/deps/icu-small/source/i18n/collationweights.h b/deps/icu-small/source/i18n/collationweights.h index bbd88b27e9e3d7..0d20b927b2698c 100644 --- a/deps/icu-small/source/i18n/collationweights.h +++ b/deps/icu-small/source/i18n/collationweights.h @@ -1,6 +1,6 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html -/* +/* ******************************************************************************* * * Copyright (C) 1999-2014, International Business Machines diff --git a/deps/icu-small/source/i18n/collunsafe.h b/deps/icu-small/source/i18n/collunsafe.h index c2b3760ccb8d57..0767254a8ae2f4 100644 --- a/deps/icu-small/source/i18n/collunsafe.h +++ b/deps/icu-small/source/i18n/collunsafe.h @@ -16,7 +16,7 @@ #define COLLUNSAFE_COLL_VERSION "9.64" #define COLLUNSAFE_SERIALIZE 1 static const int32_t unsafe_serializedCount = 850; -static const uint16_t unsafe_serializedData[850] = { +static const uint16_t unsafe_serializedData[850] = { 0x8350, 0x01B8, 0x0034, 0x0035, 0x004C, 0x004D, 0x00A0, 0x00A1, // 8 0x0300, 0x034F, 0x0350, 0x0370, 0x03A9, 0x03AA, 0x03E2, 0x03E3, // 16 0x042F, 0x0430, 0x0483, 0x0488, 0x0531, 0x0532, 0x0591, 0x05BE, // 24 diff --git a/deps/icu-small/source/i18n/coptccal.cpp b/deps/icu-small/source/i18n/coptccal.cpp index 229119bf164e80..9c2b1ebbb7ffdb 100644 --- a/deps/icu-small/source/i18n/coptccal.cpp +++ b/deps/icu-small/source/i18n/coptccal.cpp @@ -31,7 +31,7 @@ CopticCalendar::CopticCalendar(const Locale& aLocale, UErrorCode& success) { } -CopticCalendar::CopticCalendar (const CopticCalendar& other) +CopticCalendar::CopticCalendar (const CopticCalendar& other) : CECalendar(other) { } @@ -98,7 +98,7 @@ CopticCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*status*/) /** * The system maintains a static default century start date and Year. They are - * initialized the first time they are used. Once the system default century date + * initialized the first time they are used. Once the system default century date * and year are set, they do not change. */ static UDate gSystemDefaultCenturyStart = DBL_MIN; diff --git a/deps/icu-small/source/i18n/coptccal.h b/deps/icu-small/source/i18n/coptccal.h index dc2d79c89e6c22..5c51af04ca0527 100644 --- a/deps/icu-small/source/i18n/coptccal.h +++ b/deps/icu-small/source/i18n/coptccal.h @@ -24,90 +24,90 @@ U_NAMESPACE_BEGIN * @internal */ class CopticCalendar : public CECalendar { - + public: /** * Useful constants for CopticCalendar. * @internal */ enum EMonths { - /** + /** * Constant for ωογτ/تﻮﺗ, - * the 1st month of the Coptic year. + * the 1st month of the Coptic year. */ TOUT, - - /** + + /** * Constant for Παοπι/ﻪﺑﺎﺑ, - * the 2nd month of the Coptic year. + * the 2nd month of the Coptic year. */ BABA, - /** + /** * Constant for Αθορ/رﻮﺗﺎﻫ, - * the 3rd month of the Coptic year. + * the 3rd month of the Coptic year. */ HATOR, - /** + /** * Constant for Χοιακ/ﻚﻬﻴﻛ, - * the 4th month of the Coptic year. + * the 4th month of the Coptic year. */ KIAHK, - /** + /** * Constant for Τωβι/طﻮﺒﻫ, - * the 5th month of the Coptic year. + * the 5th month of the Coptic year. */ TOBA, - /** + /** * Constant for Μεϣιρ/ﺮﻴﺸﻣأ, - * the 6th month of the Coptic year. + * the 6th month of the Coptic year. */ AMSHIR, - /** + /** * Constant for Παρεμϩατ/تﺎﻬﻣﺮﺑ, - * the 7th month of the Coptic year. + * the 7th month of the Coptic year. */ BARAMHAT, - /** - * Constant for Φαρμοθι/هدﻮﻣﺮﺑ, - * the 8th month of the Coptic year. + /** + * Constant for Φαρμοθι/هدﻮﻣﺮﺑ, + * the 8th month of the Coptic year. */ BARAMOUDA, - /** + /** * Constant for Παϣαν/ﺲﻨﺸﺑ, - * the 9th month of the Coptic year. + * the 9th month of the Coptic year. */ BASHANS, - /** + /** * Constant for Παωνι/ﻪﻧؤﻮﺑ, - * the 10th month of the Coptic year. + * the 10th month of the Coptic year. */ PAONA, - /** + /** * Constant for Επηπ/ﺐﻴﺑأ, - * the 11th month of the Coptic year. + * the 11th month of the Coptic year. */ EPEP, - /** + /** * Constant for Μεϲωρη/ىﺮﺴﻣ, - * the 12th month of the Coptic year. + * the 12th month of the Coptic year. */ MESRA, - /** + /** * Constant for Πικογϫι * μαβοτ/ﺮﻴﻐﺼﻟا * ﺮﻬﺸﻟا, - * the 13th month of the Coptic year. + * the 13th month of the Coptic year. */ NASIE }; @@ -145,14 +145,14 @@ class CopticCalendar : public CECalendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual CopticCalendar* clone() const; + virtual CopticCalendar* clone() const override; /** * return the calendar type, "coptic" * @return calendar type * @internal */ - const char * getType() const; + const char * getType() const override; protected: //------------------------------------------------------------------------- @@ -163,32 +163,32 @@ class CopticCalendar : public CECalendar { * Return the extended year defined by the current fields. * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Compute fields from the JD * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; /** * Return the date offset from Julian * @internal */ - virtual int32_t getJDEpochOffset() const; + virtual int32_t getJDEpochOffset() const override; public: @@ -202,7 +202,7 @@ class CopticCalendar : public CECalendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -215,7 +215,7 @@ class CopticCalendar : public CECalendar { * @return The class ID for all objects of this class. * @internal */ - U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); + U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); #if 0 // We do not want to introduce this API in ICU4C. diff --git a/deps/icu-small/source/i18n/cpdtrans.cpp b/deps/icu-small/source/i18n/cpdtrans.cpp index 1d3e6209ec7d36..dc0217ba612ef8 100644 --- a/deps/icu-small/source/i18n/cpdtrans.cpp +++ b/deps/icu-small/source/i18n/cpdtrans.cpp @@ -59,7 +59,7 @@ CompoundTransliterator::CompoundTransliterator( /** * Splits an ID of the form "ID;ID;..." into a compound using each - * of the IDs. + * of the IDs. * @param id of above form * @param forward if false, does the list in reverse order, and * takes the inverse of each ID. @@ -500,7 +500,7 @@ void CompoundTransliterator::handleTransliterate(Replaceable& text, UTransPositi * - start' is the value of start after calling handleKT * - limit' is the value of limit after calling handleKT */ - + /** * Example: 3 transliterators. This example illustrates the * mechanics we need to implement. C, S, and L are the contextStart, @@ -510,25 +510,25 @@ void CompoundTransliterator::handleTransliterate(Replaceable& text, UTransPositi * 1. h-u, changes hex to Unicode * * 4 7 a d 0 4 7 a - * abc/u0061/u => abca/u + * abc/u0061/u => abca/u * C S L C S L gl=f->a * * 2. upup, changes "x" to "XX" * * 4 7 a 4 7 a - * abca/u => abcAA/u - * C SL C S + * abca/u => abcAA/u + * C SL C S * L gl=a->b * 3. u-h, changes Unicode to hex * * 4 7 a 4 7 a d 0 3 - * abcAA/u => abc/u0041/u0041/u + * abcAA/u => abc/u0041/u0041/u * C S L C S * L gl=b->15 * 4. return * * 4 7 a d 0 3 - * abc/u0041/u0041/u + * abc/u0041/u0041/u * C S L */ @@ -546,7 +546,7 @@ void CompoundTransliterator::handleTransliterate(Replaceable& text, UTransPositi // compoundStart is the start for the entire compound // operation. int32_t compoundStart = index.start; - + int32_t delta = 0; // delta in length // Give each transliterator a crack at the run of characters. @@ -554,14 +554,14 @@ void CompoundTransliterator::handleTransliterate(Replaceable& text, UTransPositi for (int32_t i=0; ifilteredTransliterate(text, index, incremental); - + // In a properly written transliterator, start == limit after // handleTransliterate() returns when incremental is false. // Catch cases where the subclass doesn't do this, and throw @@ -576,7 +576,7 @@ void CompoundTransliterator::handleTransliterate(Replaceable& text, UTransPositi // Cumulative delta for insertions/deletions delta += index.limit - limit; - + if (incremental) { // In the incremental case, only allow subsequent // transliterators to modify what has already been diff --git a/deps/icu-small/source/i18n/cpdtrans.h b/deps/icu-small/source/i18n/cpdtrans.h index c9a9f0519bbbfa..af60cb827e3040 100644 --- a/deps/icu-small/source/i18n/cpdtrans.h +++ b/deps/icu-small/source/i18n/cpdtrans.h @@ -98,7 +98,7 @@ class U_I18N_API CompoundTransliterator : public Transliterator { /** * Transliterator API. */ - virtual CompoundTransliterator* clone() const; + virtual CompoundTransliterator* clone() const override; /** * Returns the number of transliterators in this chain. @@ -137,33 +137,33 @@ class U_I18N_API CompoundTransliterator : public Transliterator { * U+000A, U+0020..U+007E. */ virtual UnicodeString& toRules(UnicodeString& result, - UBool escapeUnprintable) const; + UBool escapeUnprintable) const override; protected: /** * Implement Transliterator framework */ - virtual void handleGetSourceSet(UnicodeSet& result) const; + virtual void handleGetSourceSet(UnicodeSet& result) const override; public: /** * Override Transliterator framework */ - virtual UnicodeSet& getTargetSet(UnicodeSet& result) const; + virtual UnicodeSet& getTargetSet(UnicodeSet& result) const override; protected: /** * Implements {@link Transliterator#handleTransliterate}. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& idx, - UBool incremental) const; + UBool incremental) const override; public: /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -192,7 +192,7 @@ class U_I18N_API CompoundTransliterator : public Transliterator { int32_t numAnonymousRBTs, UParseError& parseError, UErrorCode& status); - + CompoundTransliterator(UVector& list, UParseError& parseError, UErrorCode& status); diff --git a/deps/icu-small/source/i18n/csdetect.cpp b/deps/icu-small/source/i18n/csdetect.cpp index 566333fec667ad..84f0776542d896 100644 --- a/deps/icu-small/source/i18n/csdetect.cpp +++ b/deps/icu-small/source/i18n/csdetect.cpp @@ -126,7 +126,7 @@ static void U_CALLCONV initRecognizers(UErrorCode &status) { if (fCSRecognizers == NULL) { status = U_MEMORY_ALLOCATION_ERROR; - } + } else { fCSRecognizers_size = rCount; for (int32_t r = 0; r < rCount; r += 1) { @@ -224,7 +224,7 @@ int32_t CharsetDetector::getDetectableCount() setRecognizers(status); - return fCSRecognizers_size; + return fCSRecognizers_size; } const CharsetMatch *CharsetDetector::detect(UErrorCode &status) @@ -385,7 +385,7 @@ enumNext(UEnumeration *en, int32_t *resultLength, UErrorCode * /*status*/) { // ucsdet_getDetectableCharsets UBool *enabledArray = ((Context *)en->context)->enabledRecognizers; if (enabledArray != NULL) { - // custome set + // custom set while (currName == NULL && ((Context *)en->context)->currIndex < fCSRecognizers_size) { if (enabledArray[((Context *)en->context)->currIndex]) { currName = fCSRecognizers[((Context *)en->context)->currIndex]->recognizer->getName(); diff --git a/deps/icu-small/source/i18n/csmatch.cpp b/deps/icu-small/source/i18n/csmatch.cpp index 7ed6e0ee1a8d53..83bf5316656d6b 100644 --- a/deps/icu-small/source/i18n/csmatch.cpp +++ b/deps/icu-small/source/i18n/csmatch.cpp @@ -30,7 +30,7 @@ void CharsetMatch::set(InputText *input, const CharsetRecognizer *cr, int32_t co const char *csName, const char *lang) { textIn = input; - confidence = conf; + confidence = conf; fCharsetName = csName; fLang = lang; if (cr != NULL) { @@ -45,12 +45,12 @@ void CharsetMatch::set(InputText *input, const CharsetRecognizer *cr, int32_t co const char* CharsetMatch::getName()const { - return fCharsetName; + return fCharsetName; } const char* CharsetMatch::getLanguage()const { - return fLang; + return fLang; } int32_t CharsetMatch::getConfidence()const diff --git a/deps/icu-small/source/i18n/csmatch.h b/deps/icu-small/source/i18n/csmatch.h index 0dc0a9e468c5dd..fe379ceea7e203 100644 --- a/deps/icu-small/source/i18n/csmatch.h +++ b/deps/icu-small/source/i18n/csmatch.h @@ -47,10 +47,10 @@ class CharsetMatch : public UMemory * Default (NULL) parameters for names will be filled by calling the * corresponding getters on the recognizer. */ - void set(InputText *input, - const CharsetRecognizer *cr, - int32_t conf, - const char *csName=NULL, + void set(InputText *input, + const CharsetRecognizer *cr, + int32_t conf, + const char *csName=NULL, const char *lang=NULL); /** diff --git a/deps/icu-small/source/i18n/csr2022.cpp b/deps/icu-small/source/i18n/csr2022.cpp index aa7f8446eb947c..e064c426a2a26c 100644 --- a/deps/icu-small/source/i18n/csr2022.cpp +++ b/deps/icu-small/source/i18n/csr2022.cpp @@ -24,8 +24,8 @@ U_NAMESPACE_BEGIN * Counts up the number of legal and unrecognized escape sequences in * the sample of text, and computes a score based on the total number & * the proportion that fit the encoding. - * - * + * + * * @param text the byte buffer containing text to analyse * @param textLen the size of the text in the byte. * @param escapeSequences the byte escape sequences to test for. @@ -83,8 +83,8 @@ int32_t CharsetRecog_2022::match_2022(const uint8_t *text, int32_t textLen, cons } // - // Initial quality is based on relative proportion of recongized vs. - // unrecognized escape sequences. + // Initial quality is based on relative proportion of recognized vs. + // unrecognized escape sequences. // All good: quality = 100; // half or less good: quality = 0; // linear inbetween. @@ -122,7 +122,7 @@ static const uint8_t escapeSequences_2022JP[][5] = { #if !UCONFIG_ONLY_HTML_CONVERSION static const uint8_t escapeSequences_2022KR[][5] = { - {0x1b, 0x24, 0x29, 0x43, 0x00} + {0x1b, 0x24, 0x29, 0x43, 0x00} }; static const uint8_t escapeSequences_2022CN[][5] = { @@ -147,9 +147,9 @@ const char *CharsetRecog_2022JP::getName() const { } UBool CharsetRecog_2022JP::match(InputText *textIn, CharsetMatch *results) const { - int32_t confidence = match_2022(textIn->fInputBytes, - textIn->fInputLen, - escapeSequences_2022JP, + int32_t confidence = match_2022(textIn->fInputBytes, + textIn->fInputLen, + escapeSequences_2022JP, UPRV_LENGTHOF(escapeSequences_2022JP)); results->set(textIn, this, confidence); return (confidence > 0); @@ -163,9 +163,9 @@ const char *CharsetRecog_2022KR::getName() const { } UBool CharsetRecog_2022KR::match(InputText *textIn, CharsetMatch *results) const { - int32_t confidence = match_2022(textIn->fInputBytes, - textIn->fInputLen, - escapeSequences_2022KR, + int32_t confidence = match_2022(textIn->fInputBytes, + textIn->fInputLen, + escapeSequences_2022KR, UPRV_LENGTHOF(escapeSequences_2022KR)); results->set(textIn, this, confidence); return (confidence > 0); diff --git a/deps/icu-small/source/i18n/csr2022.h b/deps/icu-small/source/i18n/csr2022.h index 6d5b7bffccacc5..4418728f0ec05a 100644 --- a/deps/icu-small/source/i18n/csr2022.h +++ b/deps/icu-small/source/i18n/csr2022.h @@ -21,19 +21,19 @@ U_NAMESPACE_BEGIN class CharsetMatch; /** - * class CharsetRecog_2022 part of the ICU charset detection imlementation. + * class CharsetRecog_2022 part of the ICU charset detection implementation. * This is a superclass for the individual detectors for * each of the detectable members of the ISO 2022 family * of encodings. - * + * * The separate classes are nested within this class. - * + * * @internal */ class CharsetRecog_2022 : public CharsetRecognizer { -public: +public: virtual ~CharsetRecog_2022() = 0; protected: @@ -43,8 +43,8 @@ class CharsetRecog_2022 : public CharsetRecognizer * Counts up the number of legal an unrecognized escape sequences in * the sample of text, and computes a score based on the total number & * the proportion that fit the encoding. - * - * + * + * * @param text the byte buffer containing text to analyse * @param textLen the size of the text in the byte. * @param escapeSequences the byte escape sequences to test for. @@ -62,9 +62,9 @@ class CharsetRecog_2022JP :public CharsetRecog_2022 public: virtual ~CharsetRecog_2022JP(); - const char *getName() const; + const char *getName() const override; - UBool match(InputText *textIn, CharsetMatch *results) const; + UBool match(InputText *textIn, CharsetMatch *results) const override; }; #if !UCONFIG_ONLY_HTML_CONVERSION @@ -72,9 +72,9 @@ class CharsetRecog_2022KR :public CharsetRecog_2022 { public: virtual ~CharsetRecog_2022KR(); - const char *getName() const; + const char *getName() const override; - UBool match(InputText *textIn, CharsetMatch *results) const; + UBool match(InputText *textIn, CharsetMatch *results) const override; }; @@ -83,9 +83,9 @@ class CharsetRecog_2022CN :public CharsetRecog_2022 public: virtual ~CharsetRecog_2022CN(); - const char* getName() const; + const char* getName() const override; - UBool match(InputText *textIn, CharsetMatch *results) const; + UBool match(InputText *textIn, CharsetMatch *results) const override; }; #endif diff --git a/deps/icu-small/source/i18n/csrecog.cpp b/deps/icu-small/source/i18n/csrecog.cpp index d02be2bef68666..31fce5dd012f52 100644 --- a/deps/icu-small/source/i18n/csrecog.cpp +++ b/deps/icu-small/source/i18n/csrecog.cpp @@ -25,6 +25,6 @@ const char *CharsetRecognizer::getLanguage() const return ""; } -U_NAMESPACE_END +U_NAMESPACE_END #endif diff --git a/deps/icu-small/source/i18n/csrecog.h b/deps/icu-small/source/i18n/csrecog.h index 42c7d189e5f471..944a5007fe5f9a 100644 --- a/deps/icu-small/source/i18n/csrecog.h +++ b/deps/icu-small/source/i18n/csrecog.h @@ -32,13 +32,13 @@ class CharsetRecognizer : public UMemory * @return the charset name. */ virtual const char *getName() const = 0; - + /** * Get the ISO language code for this charset. * @return the language code, or null if the language cannot be determined. */ virtual const char *getLanguage() const; - + /* * Try the given input text against this Charset, and fill in the results object * with the quality of the match plus other information related to the match. diff --git a/deps/icu-small/source/i18n/csrmbcs.cpp b/deps/icu-small/source/i18n/csrmbcs.cpp index c2f768f7889fe2..4c5bdfa560baa3 100644 --- a/deps/icu-small/source/i18n/csrmbcs.cpp +++ b/deps/icu-small/source/i18n/csrmbcs.cpp @@ -23,7 +23,7 @@ U_NAMESPACE_BEGIN static const uint16_t commonChars_sjis [] = { // TODO: This set of data comes from the character frequency- -// of-occurence analysis tool. The data needs to be moved +// of-occurrence analysis tool. The data needs to be moved // into a resource and loaded from there. 0x8140, 0x8141, 0x8142, 0x8145, 0x815b, 0x8169, 0x816a, 0x8175, 0x8176, 0x82a0, 0x82a2, 0x82a4, 0x82a9, 0x82aa, 0x82ab, 0x82ad, 0x82af, 0x82b1, 0x82b3, 0x82b5, @@ -34,7 +34,7 @@ static const uint16_t commonChars_sjis [] = { static const uint16_t commonChars_euc_jp[] = { // TODO: This set of data comes from the character frequency- -// of-occurence analysis tool. The data needs to be moved +// of-occurrence analysis tool. The data needs to be moved // into a resource and loaded from there. 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a6, 0xa1bc, 0xa1ca, 0xa1cb, 0xa1d6, 0xa1d7, 0xa4a2, 0xa4a4, 0xa4a6, 0xa4a8, 0xa4aa, 0xa4ab, 0xa4ac, 0xa4ad, 0xa4af, 0xa4b1, 0xa4b3, @@ -49,7 +49,7 @@ static const uint16_t commonChars_euc_jp[] = { static const uint16_t commonChars_euc_kr[] = { // TODO: This set of data comes from the character frequency- -// of-occurence analysis tool. The data needs to be moved +// of-occurrence analysis tool. The data needs to be moved // into a resource and loaded from there. 0xb0a1, 0xb0b3, 0xb0c5, 0xb0cd, 0xb0d4, 0xb0e6, 0xb0ed, 0xb0f8, 0xb0fa, 0xb0fc, 0xb1b8, 0xb1b9, 0xb1c7, 0xb1d7, 0xb1e2, 0xb3aa, 0xb3bb, 0xb4c2, 0xb4cf, 0xb4d9, @@ -64,7 +64,7 @@ static const uint16_t commonChars_euc_kr[] = { static const uint16_t commonChars_big5[] = { // TODO: This set of data comes from the character frequency- -// of-occurence analysis tool. The data needs to be moved +// of-occurrence analysis tool. The data needs to be moved // into a resource and loaded from there. 0xa140, 0xa141, 0xa142, 0xa143, 0xa147, 0xa149, 0xa175, 0xa176, 0xa440, 0xa446, 0xa447, 0xa448, 0xa451, 0xa454, 0xa457, 0xa464, 0xa46a, 0xa46c, 0xa477, 0xa4a3, @@ -79,7 +79,7 @@ static const uint16_t commonChars_big5[] = { static const uint16_t commonChars_gb_18030[] = { // TODO: This set of data comes from the character frequency- -// of-occurence analysis tool. The data needs to be moved +// of-occurrence analysis tool. The data needs to be moved // into a resource and loaded from there. 0xa1a1, 0xa1a2, 0xa1a3, 0xa1a4, 0xa1b0, 0xa1b1, 0xa1f1, 0xa1f3, 0xa3a1, 0xa3ac, 0xa3ba, 0xb1a8, 0xb1b8, 0xb1be, 0xb2bb, 0xb3c9, 0xb3f6, 0xb4f3, 0xb5bd, 0xb5c4, @@ -114,7 +114,7 @@ static int32_t binarySearch(const uint16_t *array, int32_t len, uint16_t value) return -1; } -IteratedChar::IteratedChar() : +IteratedChar::IteratedChar() : charValue(0), index(-1), nextIndex(0), error(FALSE), done(FALSE) { // nothing else to do. @@ -209,7 +209,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars } if (commonChars == 0) { - // We have no statistics on frequently occuring characters. + // We have no statistics on frequently occurring characters. // Assess confidence purely on having a reasonable number of // multi-byte characters (the more the better) confidence = 30 + doubleByteCharCount - 20*badCharCount; @@ -219,7 +219,7 @@ int32_t CharsetRecog_mbcs::match_mbcs(InputText *det, const uint16_t commonChars } } else { // - // Frequency of occurence statistics exist. + // Frequency of occurrence statistics exist. // double maxVal = log((double)doubleByteCharCount / 4); /*(float)?*/ diff --git a/deps/icu-small/source/i18n/csrmbcs.h b/deps/icu-small/source/i18n/csrmbcs.h index 8ccf1d56a95f65..ff7fc4e2a785f0 100644 --- a/deps/icu-small/source/i18n/csrmbcs.h +++ b/deps/icu-small/source/i18n/csrmbcs.h @@ -71,9 +71,9 @@ class CharsetRecog_mbcs : public CharsetRecognizer { * @return the charset name. */ - const char *getName() const = 0; - const char *getLanguage() const = 0; - UBool match(InputText* input, CharsetMatch *results) const = 0; + const char *getName() const override = 0; + const char *getLanguage() const override = 0; + UBool match(InputText* input, CharsetMatch *results) const override = 0; /** * Get the next character (however many bytes it is) from the input data @@ -100,12 +100,12 @@ class CharsetRecog_sjis : public CharsetRecog_mbcs { public: virtual ~CharsetRecog_sjis(); - UBool nextChar(IteratedChar *it, InputText *det) const; + UBool nextChar(IteratedChar *it, InputText *det) const override; - UBool match(InputText* input, CharsetMatch *results) const; + UBool match(InputText* input, CharsetMatch *results) const override; - const char *getName() const; - const char *getLanguage() const; + const char *getName() const override; + const char *getLanguage() const override; }; @@ -121,17 +121,17 @@ class CharsetRecog_euc : public CharsetRecog_mbcs public: virtual ~CharsetRecog_euc(); - const char *getName() const = 0; - const char *getLanguage() const = 0; + const char *getName() const override = 0; + const char *getLanguage() const override = 0; - UBool match(InputText* input, CharsetMatch *results) const = 0; + UBool match(InputText* input, CharsetMatch *results) const override = 0; /* * (non-Javadoc) * Get the next character value for EUC based encodings. * Character "value" is simply the raw bytes that make up the character * packed into an int. */ - UBool nextChar(IteratedChar *it, InputText *det) const; + UBool nextChar(IteratedChar *it, InputText *det) const override; }; /** @@ -143,10 +143,10 @@ class CharsetRecog_euc_jp : public CharsetRecog_euc public: virtual ~CharsetRecog_euc_jp(); - const char *getName() const; - const char *getLanguage() const; + const char *getName() const override; + const char *getLanguage() const override; - UBool match(InputText* input, CharsetMatch *results) const; + UBool match(InputText* input, CharsetMatch *results) const override; }; /** @@ -158,10 +158,10 @@ class CharsetRecog_euc_kr : public CharsetRecog_euc public: virtual ~CharsetRecog_euc_kr(); - const char *getName() const; - const char *getLanguage() const; + const char *getName() const override; + const char *getLanguage() const override; - UBool match(InputText* input, CharsetMatch *results) const; + UBool match(InputText* input, CharsetMatch *results) const override; }; /** @@ -174,12 +174,12 @@ class CharsetRecog_big5 : public CharsetRecog_mbcs public: virtual ~CharsetRecog_big5(); - UBool nextChar(IteratedChar* it, InputText* det) const; + UBool nextChar(IteratedChar* it, InputText* det) const override; - const char *getName() const; - const char *getLanguage() const; + const char *getName() const override; + const char *getLanguage() const override; - UBool match(InputText* input, CharsetMatch *results) const; + UBool match(InputText* input, CharsetMatch *results) const override; }; @@ -193,12 +193,12 @@ class CharsetRecog_gb_18030 : public CharsetRecog_mbcs public: virtual ~CharsetRecog_gb_18030(); - UBool nextChar(IteratedChar* it, InputText* det) const; + UBool nextChar(IteratedChar* it, InputText* det) const override; - const char *getName() const; - const char *getLanguage() const; + const char *getName() const override; + const char *getLanguage() const override; - UBool match(InputText* input, CharsetMatch *results) const; + UBool match(InputText* input, CharsetMatch *results) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/csrsbcs.cpp b/deps/icu-small/source/i18n/csrsbcs.cpp index 3d0b7269ccac3b..0b0d8967e7d690 100644 --- a/deps/icu-small/source/i18n/csrsbcs.cpp +++ b/deps/icu-small/source/i18n/csrsbcs.cpp @@ -145,22 +145,22 @@ int32_t NGramParser::parse(InputText *det) #if !UCONFIG_ONLY_HTML_CONVERSION static const uint8_t unshapeMap_IBM420[] = { /* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */ -/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 4- */ 0x40, 0x40, 0x42, 0x42, 0x44, 0x45, 0x46, 0x47, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, -/* 5- */ 0x50, 0x49, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x58, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, -/* 6- */ 0x60, 0x61, 0x62, 0x63, 0x63, 0x65, 0x65, 0x67, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, -/* 7- */ 0x69, 0x71, 0x71, 0x73, 0x74, 0x75, 0x76, 0x77, 0x77, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, -/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x80, 0x8B, 0x8B, 0x8D, 0x8D, 0x8F, -/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9E, 0x9E, -/* A- */ 0x9E, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x9E, 0xAB, 0xAB, 0xAD, 0xAD, 0xAF, -/* B- */ 0xAF, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xB1, 0xBB, 0xBB, 0xBD, 0xBD, 0xBF, -/* C- */ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xBF, 0xCC, 0xBF, 0xCE, 0xCF, -/* D- */ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDA, 0xDC, 0xDC, 0xDC, 0xDF, -/* E- */ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, -/* F- */ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, +/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 4- */ 0x40, 0x40, 0x42, 0x42, 0x44, 0x45, 0x46, 0x47, 0x47, 0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, +/* 5- */ 0x50, 0x49, 0x52, 0x53, 0x54, 0x55, 0x56, 0x56, 0x58, 0x58, 0x5A, 0x5B, 0x5C, 0x5D, 0x5E, 0x5F, +/* 6- */ 0x60, 0x61, 0x62, 0x63, 0x63, 0x65, 0x65, 0x67, 0x67, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, +/* 7- */ 0x69, 0x71, 0x71, 0x73, 0x74, 0x75, 0x76, 0x77, 0x77, 0x79, 0x7A, 0x7B, 0x7C, 0x7D, 0x7E, 0x7F, +/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x80, 0x8B, 0x8B, 0x8D, 0x8D, 0x8F, +/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9A, 0x9A, 0x9A, 0x9E, 0x9E, +/* A- */ 0x9E, 0xA1, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x9E, 0xAB, 0xAB, 0xAD, 0xAD, 0xAF, +/* B- */ 0xAF, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0xB6, 0xB7, 0xB8, 0xB9, 0xB1, 0xBB, 0xBB, 0xBD, 0xBD, 0xBF, +/* C- */ 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, 0xC8, 0xC9, 0xCA, 0xBF, 0xCC, 0xBF, 0xCE, 0xCF, +/* D- */ 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, 0xD8, 0xD9, 0xDA, 0xDA, 0xDC, 0xDC, 0xDC, 0xDF, +/* E- */ 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, +/* F- */ 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, }; NGramParser_IBM420::NGramParser_IBM420(const int32_t *theNgramList, const uint8_t *theCharMap):NGramParser(theNgramList, theCharMap) @@ -173,13 +173,13 @@ NGramParser_IBM420::~NGramParser_IBM420() {} int32_t NGramParser_IBM420::isLamAlef(int32_t b) { if(b == 0xB2 || b == 0xB3){ - return 0x47; + return 0x47; }else if(b == 0xB4 || b == 0xB5){ - return 0x49; + return 0x49; }else if(b == 0xB8 || b == 0xB9){ - return 0x56; + return 0x56; }else - return 0x00; + return 0x00; } /* @@ -188,23 +188,23 @@ int32_t NGramParser_IBM420::isLamAlef(int32_t b) * convert the bytes to Unicode code points but that would leave us dependent * on CharsetICU which we try to avoid. IBM420 converter amongst different versions * of JDK can produce different results and therefore is also avoided. -*/ +*/ int32_t NGramParser_IBM420::nextByte(InputText *det) { - + if (byteIndex >= det->fInputLen || det->fInputBytes[byteIndex] == 0) { return -1; - } + } int next; - + alef = isLamAlef(det->fInputBytes[byteIndex]); if(alef != 0x00) next = 0xB1 & 0xFF; else next = unshapeMap_IBM420[det->fInputBytes[byteIndex]& 0xFF] & 0xFF; - + byteIndex++; - + return next; } @@ -223,19 +223,19 @@ void NGramParser_IBM420::parseCharacters(InputText *det) } ignoreSpace = (mb == 0x20); } - + if(alef != 0x00){ mb = charMap[alef & 0xFF]; - + // TODO: 0x20 might not be a space in all character sets... if (mb != 0) { if (!(mb == 0x20 && ignoreSpace)) { - addByte(mb); + addByte(mb); } - + ignoreSpace = (mb == 0x20); } - + } } } @@ -262,382 +262,382 @@ int32_t CharsetRecog_sbcs::match_sbcs(InputText *det, const int32_t ngrams[], c } static const uint8_t charMap_8859_1[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, - 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, + 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, }; static const uint8_t charMap_8859_2[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0x20, - 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF, - 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0xB7, - 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0x20, + 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF, + 0x20, 0xB1, 0x20, 0xB3, 0x20, 0xB5, 0xB6, 0xB7, + 0x20, 0xB9, 0xBA, 0xBB, 0xBC, 0x20, 0xBE, 0xBF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20, }; static const uint8_t charMap_8859_5[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0x20, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x20, 0xFE, 0xFF, }; static const uint8_t charMap_8859_6[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, - 0xD8, 0xD9, 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, }; static const uint8_t charMap_8859_7[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0xA1, 0xA2, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDC, 0x20, - 0xDD, 0xDE, 0xDF, 0x20, 0xFC, 0x20, 0xFD, 0xFE, - 0xC0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0x20, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xDD, 0xDE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0xA1, 0xA2, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0xDC, 0x20, + 0xDD, 0xDE, 0xDF, 0x20, 0xFC, 0x20, 0xFD, 0xFE, + 0xC0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0x20, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0x20, }; static const uint8_t charMap_8859_8[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0x20, 0x20, 0x20, 0x20, 0x20, }; static const uint8_t charMap_8859_9[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, - 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x69, 0xFE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, + 0x20, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0x69, 0xFE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0x20, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, }; static const int32_t ngrams_windows_1251[] = { - 0x20E220, 0x20E2EE, 0x20E4EE, 0x20E7E0, 0x20E820, 0x20EAE0, 0x20EAEE, 0x20EDE0, 0x20EDE5, 0x20EEE1, 0x20EFEE, 0x20EFF0, 0x20F0E0, 0x20F1EE, 0x20F1F2, 0x20F2EE, - 0x20F7F2, 0x20FDF2, 0xE0EDE8, 0xE0F2FC, 0xE3EE20, 0xE5EBFC, 0xE5EDE8, 0xE5F1F2, 0xE5F220, 0xE820EF, 0xE8E520, 0xE8E820, 0xE8FF20, 0xEBE5ED, 0xEBE820, 0xEBFCED, - 0xEDE020, 0xEDE520, 0xEDE8E5, 0xEDE8FF, 0xEDEE20, 0xEDEEE2, 0xEE20E2, 0xEE20EF, 0xEE20F1, 0xEEE220, 0xEEE2E0, 0xEEE3EE, 0xEEE920, 0xEEEBFC, 0xEEEC20, 0xEEF1F2, - 0xEFEEEB, 0xEFF0E5, 0xEFF0E8, 0xEFF0EE, 0xF0E0E2, 0xF0E5E4, 0xF1F2E0, 0xF1F2E2, 0xF1F2E8, 0xF1FF20, 0xF2E5EB, 0xF2EE20, 0xF2EEF0, 0xF2FC20, 0xF7F2EE, 0xFBF520, + 0x20E220, 0x20E2EE, 0x20E4EE, 0x20E7E0, 0x20E820, 0x20EAE0, 0x20EAEE, 0x20EDE0, 0x20EDE5, 0x20EEE1, 0x20EFEE, 0x20EFF0, 0x20F0E0, 0x20F1EE, 0x20F1F2, 0x20F2EE, + 0x20F7F2, 0x20FDF2, 0xE0EDE8, 0xE0F2FC, 0xE3EE20, 0xE5EBFC, 0xE5EDE8, 0xE5F1F2, 0xE5F220, 0xE820EF, 0xE8E520, 0xE8E820, 0xE8FF20, 0xEBE5ED, 0xEBE820, 0xEBFCED, + 0xEDE020, 0xEDE520, 0xEDE8E5, 0xEDE8FF, 0xEDEE20, 0xEDEEE2, 0xEE20E2, 0xEE20EF, 0xEE20F1, 0xEEE220, 0xEEE2E0, 0xEEE3EE, 0xEEE920, 0xEEEBFC, 0xEEEC20, 0xEEF1F2, + 0xEFEEEB, 0xEFF0E5, 0xEFF0E8, 0xEFF0EE, 0xF0E0E2, 0xF0E5E4, 0xF1F2E0, 0xF1F2E2, 0xF1F2E8, 0xF1FF20, 0xF2E5EB, 0xF2EE20, 0xF2EEF0, 0xF2FC20, 0xF7F2EE, 0xFBF520, }; static const uint8_t charMap_windows_1251[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x90, 0x83, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F, - 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F, - 0x20, 0xA2, 0xA2, 0xBC, 0x20, 0xB4, 0x20, 0x20, - 0xB8, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0xBF, - 0x20, 0x20, 0xB3, 0xB3, 0xB4, 0xB5, 0x20, 0x20, - 0xB8, 0x20, 0xBA, 0x20, 0xBC, 0xBE, 0xBE, 0xBF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, - 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x90, 0x83, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F, + 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x9A, 0x20, 0x9C, 0x9D, 0x9E, 0x9F, + 0x20, 0xA2, 0xA2, 0xBC, 0x20, 0xB4, 0x20, 0x20, + 0xB8, 0x20, 0xBA, 0x20, 0x20, 0x20, 0x20, 0xBF, + 0x20, 0x20, 0xB3, 0xB3, 0xB4, 0xB5, 0x20, 0x20, + 0xB8, 0x20, 0xBA, 0x20, 0xBC, 0xBE, 0xBE, 0xBF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0xF0, 0xF1, 0xF2, 0xF3, 0xF4, 0xF5, 0xF6, 0xF7, + 0xF8, 0xF9, 0xFA, 0xFB, 0xFC, 0xFD, 0xFE, 0xFF, }; static const int32_t ngrams_windows_1256[] = { - 0x20C7E1, 0x20C7E4, 0x20C8C7, 0x20DAE1, 0x20DDED, 0x20E1E1, 0x20E3E4, 0x20E6C7, 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E120, 0xC7E1C3, 0xC7E1C7, 0xC7E1C8, - 0xC7E1CA, 0xC7E1CC, 0xC7E1CD, 0xC7E1CF, 0xC7E1D3, 0xC7E1DA, 0xC7E1DE, 0xC7E1E3, 0xC7E1E6, 0xC7E1ED, 0xC7E320, 0xC7E420, 0xC7E4CA, 0xC820C7, 0xC920C7, 0xC920DD, - 0xC920E1, 0xC920E3, 0xC920E6, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920, 0xD320C7, 0xDA20C7, 0xDAE1EC, 0xDDED20, 0xE120C7, 0xE1C920, 0xE1EC20, 0xE1ED20, - 0xE320C7, 0xE3C720, 0xE3C920, 0xE3E420, 0xE420C7, 0xE520C7, 0xE5C720, 0xE6C7E1, 0xE6E420, 0xEC20C7, 0xED20C7, 0xED20E3, 0xED20E6, 0xEDC920, 0xEDD120, 0xEDE420, + 0x20C7E1, 0x20C7E4, 0x20C8C7, 0x20DAE1, 0x20DDED, 0x20E1E1, 0x20E3E4, 0x20E6C7, 0xC720C7, 0xC7C120, 0xC7CA20, 0xC7D120, 0xC7E120, 0xC7E1C3, 0xC7E1C7, 0xC7E1C8, + 0xC7E1CA, 0xC7E1CC, 0xC7E1CD, 0xC7E1CF, 0xC7E1D3, 0xC7E1DA, 0xC7E1DE, 0xC7E1E3, 0xC7E1E6, 0xC7E1ED, 0xC7E320, 0xC7E420, 0xC7E4CA, 0xC820C7, 0xC920C7, 0xC920DD, + 0xC920E1, 0xC920E3, 0xC920E6, 0xCA20C7, 0xCF20C7, 0xCFC920, 0xD120C7, 0xD1C920, 0xD320C7, 0xDA20C7, 0xDAE1EC, 0xDDED20, 0xE120C7, 0xE1C920, 0xE1EC20, 0xE1ED20, + 0xE320C7, 0xE3C720, 0xE3C920, 0xE3E420, 0xE420C7, 0xE520C7, 0xE5C720, 0xE6C7E1, 0xE6E420, 0xEC20C7, 0xED20C7, 0xED20E3, 0xED20E6, 0xEDC920, 0xEDD120, 0xEDE420, }; static const uint8_t charMap_windows_1256[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x81, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20, - 0x88, 0x20, 0x8A, 0x20, 0x9C, 0x8D, 0x8E, 0x8F, - 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x98, 0x20, 0x9A, 0x20, 0x9C, 0x20, 0x20, 0x9F, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0x20, - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, - 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, - 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, - 0x20, 0x20, 0x20, 0x20, 0xF4, 0x20, 0x20, 0x20, - 0x20, 0xF9, 0x20, 0xFB, 0xFC, 0x20, 0x20, 0xFF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x81, 0x20, 0x83, 0x20, 0x20, 0x20, 0x20, + 0x88, 0x20, 0x8A, 0x20, 0x9C, 0x8D, 0x8E, 0x8F, + 0x90, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x98, 0x20, 0x9A, 0x20, 0x9C, 0x20, 0x20, 0x9F, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0xAA, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0xB5, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0x20, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xE0, 0xE1, 0xE2, 0xE3, 0xE4, 0xE5, 0xE6, 0xE7, + 0xE8, 0xE9, 0xEA, 0xEB, 0xEC, 0xED, 0xEE, 0xEF, + 0x20, 0x20, 0x20, 0x20, 0xF4, 0x20, 0x20, 0x20, + 0x20, 0xF9, 0x20, 0xFB, 0xFC, 0x20, 0x20, 0xFF, }; static const int32_t ngrams_KOI8_R[] = { - 0x20C4CF, 0x20C920, 0x20CBC1, 0x20CBCF, 0x20CEC1, 0x20CEC5, 0x20CFC2, 0x20D0CF, 0x20D0D2, 0x20D2C1, 0x20D3CF, 0x20D3D4, 0x20D4CF, 0x20D720, 0x20D7CF, 0x20DAC1, - 0x20DCD4, 0x20DED4, 0xC1CEC9, 0xC1D4D8, 0xC5CCD8, 0xC5CEC9, 0xC5D3D4, 0xC5D420, 0xC7CF20, 0xC920D0, 0xC9C520, 0xC9C920, 0xC9D120, 0xCCC5CE, 0xCCC920, 0xCCD8CE, - 0xCEC120, 0xCEC520, 0xCEC9C5, 0xCEC9D1, 0xCECF20, 0xCECFD7, 0xCF20D0, 0xCF20D3, 0xCF20D7, 0xCFC7CF, 0xCFCA20, 0xCFCCD8, 0xCFCD20, 0xCFD3D4, 0xCFD720, 0xCFD7C1, - 0xD0CFCC, 0xD0D2C5, 0xD0D2C9, 0xD0D2CF, 0xD2C1D7, 0xD2C5C4, 0xD3D120, 0xD3D4C1, 0xD3D4C9, 0xD3D4D7, 0xD4C5CC, 0xD4CF20, 0xD4CFD2, 0xD4D820, 0xD9C820, 0xDED4CF, + 0x20C4CF, 0x20C920, 0x20CBC1, 0x20CBCF, 0x20CEC1, 0x20CEC5, 0x20CFC2, 0x20D0CF, 0x20D0D2, 0x20D2C1, 0x20D3CF, 0x20D3D4, 0x20D4CF, 0x20D720, 0x20D7CF, 0x20DAC1, + 0x20DCD4, 0x20DED4, 0xC1CEC9, 0xC1D4D8, 0xC5CCD8, 0xC5CEC9, 0xC5D3D4, 0xC5D420, 0xC7CF20, 0xC920D0, 0xC9C520, 0xC9C920, 0xC9D120, 0xCCC5CE, 0xCCC920, 0xCCD8CE, + 0xCEC120, 0xCEC520, 0xCEC9C5, 0xCEC9D1, 0xCECF20, 0xCECFD7, 0xCF20D0, 0xCF20D3, 0xCF20D7, 0xCFC7CF, 0xCFCA20, 0xCFCCD8, 0xCFCD20, 0xCFD3D4, 0xCFD720, 0xCFD7C1, + 0xD0CFCC, 0xD0D2C5, 0xD0D2C9, 0xD0D2CF, 0xD2C1D7, 0xD2C5C4, 0xD3D120, 0xD3D4C1, 0xD3D4C9, 0xD3D4D7, 0xD4C5CC, 0xD4CF20, 0xD4CFD2, 0xD4D820, 0xD9C820, 0xDED4CF, }; static const uint8_t charMap_KOI8_R[] = { - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, - 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, - 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, - 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20, - 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, - 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, - 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, - 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, - 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, + 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E, 0x6F, + 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, + 0x78, 0x79, 0x7A, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0xA3, 0x20, 0x20, 0x20, 0x20, + 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, + 0xC0, 0xC1, 0xC2, 0xC3, 0xC4, 0xC5, 0xC6, 0xC7, + 0xC8, 0xC9, 0xCA, 0xCB, 0xCC, 0xCD, 0xCE, 0xCF, + 0xD0, 0xD1, 0xD2, 0xD3, 0xD4, 0xD5, 0xD6, 0xD7, + 0xD8, 0xD9, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, }; #if !UCONFIG_ONLY_HTML_CONVERSION static const int32_t ngrams_IBM424_he_rtl[] = { - 0x404146, 0x404148, 0x404151, 0x404171, 0x404251, 0x404256, 0x404541, 0x404546, 0x404551, 0x404556, 0x404562, 0x404569, 0x404571, 0x405441, 0x405445, 0x405641, - 0x406254, 0x406954, 0x417140, 0x454041, 0x454042, 0x454045, 0x454054, 0x454056, 0x454069, 0x454641, 0x464140, 0x465540, 0x465740, 0x466840, 0x467140, 0x514045, - 0x514540, 0x514671, 0x515155, 0x515540, 0x515740, 0x516840, 0x517140, 0x544041, 0x544045, 0x544140, 0x544540, 0x554041, 0x554042, 0x554045, 0x554054, 0x554056, - 0x554069, 0x564540, 0x574045, 0x584540, 0x585140, 0x585155, 0x625440, 0x684045, 0x685155, 0x695440, 0x714041, 0x714042, 0x714045, 0x714054, 0x714056, 0x714069, + 0x404146, 0x404148, 0x404151, 0x404171, 0x404251, 0x404256, 0x404541, 0x404546, 0x404551, 0x404556, 0x404562, 0x404569, 0x404571, 0x405441, 0x405445, 0x405641, + 0x406254, 0x406954, 0x417140, 0x454041, 0x454042, 0x454045, 0x454054, 0x454056, 0x454069, 0x454641, 0x464140, 0x465540, 0x465740, 0x466840, 0x467140, 0x514045, + 0x514540, 0x514671, 0x515155, 0x515540, 0x515740, 0x516840, 0x517140, 0x544041, 0x544045, 0x544140, 0x544540, 0x554041, 0x554042, 0x554045, 0x554054, 0x554056, + 0x554069, 0x564540, 0x574045, 0x584540, 0x585140, 0x585155, 0x625440, 0x684045, 0x685155, 0x695440, 0x714041, 0x714042, 0x714045, 0x714054, 0x714056, 0x714069, }; static const int32_t ngrams_IBM424_he_ltr[] = { @@ -649,22 +649,22 @@ static const int32_t ngrams_IBM424_he_ltr[] = { static const uint8_t charMap_IBM424_he[] = { /* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */ -/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 4- */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 5- */ 0x40, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 7- */ 0x40, 0x71, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x40, -/* 8- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 9- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* B- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 4- */ 0x40, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 5- */ 0x40, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 7- */ 0x40, 0x71, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x00, 0x40, 0x40, +/* 8- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 9- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* B- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, }; static const int32_t ngrams_IBM420_ar_rtl[] = { @@ -675,7 +675,7 @@ static const int32_t ngrams_IBM420_ar_rtl[] = { }; static const int32_t ngrams_IBM420_ar_ltr[] = { - 0x404656, 0x4056BB, 0x4056BF, 0x406273, 0x406275, 0x4062B1, 0x4062BB, 0x4062DC, 0x406356, 0x407556, 0x4075DC, 0x40B156, 0x40BB56, 0x40BD56, 0x40BDBB, 0x40BDCF, + 0x404656, 0x4056BB, 0x4056BF, 0x406273, 0x406275, 0x4062B1, 0x4062BB, 0x4062DC, 0x406356, 0x407556, 0x4075DC, 0x40B156, 0x40BB56, 0x40BD56, 0x40BDBB, 0x40BDCF, 0x40BDDC, 0x40DAB1, 0x40DCAB, 0x40DCB1, 0x49B156, 0x564056, 0x564058, 0x564062, 0x564063, 0x564073, 0x564075, 0x564078, 0x56409A, 0x5640B1, 0x5640BB, 0x5640BD, 0x5640BF, 0x5640DA, 0x5640DC, 0x565840, 0x56B156, 0x56CF40, 0x58B156, 0x63B156, 0x63BD56, 0x67B156, 0x69B156, 0x73B156, 0x78B156, 0x9AB156, 0xAB4062, 0xADB156, 0xB14062, 0xB15640, 0xB156CF, 0xB19A40, 0xB1B140, 0xBB4062, 0xBB40DC, 0xBBB156, 0xBD5640, 0xBDBB40, 0xCF4062, 0xCF40DC, 0xCFB156, 0xDAB19A, 0xDCAB40, 0xDCB156 @@ -683,22 +683,22 @@ static const int32_t ngrams_IBM420_ar_ltr[] = { static const uint8_t charMap_IBM420_ar[]= { /* -0 -1 -2 -3 -4 -5 -6 -7 -8 -9 -A -B -C -D -E -F */ -/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 4- */ 0x40, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 5- */ 0x40, 0x51, 0x52, 0x40, 0x40, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 7- */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, -/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, -/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, -/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, -/* B- */ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0x40, 0x40, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, -/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0xCB, 0x40, 0xCD, 0x40, 0xCF, -/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, -/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xEB, 0x40, 0xED, 0xEE, 0xEF, -/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xFB, 0xFC, 0xFD, 0xFE, 0x40, +/* 0- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 1- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 2- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 3- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 4- */ 0x40, 0x40, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48, 0x49, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 5- */ 0x40, 0x51, 0x52, 0x40, 0x40, 0x55, 0x56, 0x57, 0x58, 0x59, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 6- */ 0x40, 0x40, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67, 0x68, 0x69, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 7- */ 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77, 0x78, 0x79, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, +/* 8- */ 0x80, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x8A, 0x8B, 0x8C, 0x8D, 0x8E, 0x8F, +/* 9- */ 0x90, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0x9A, 0x9B, 0x9C, 0x9D, 0x9E, 0x9F, +/* A- */ 0xA0, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xAA, 0xAB, 0xAC, 0xAD, 0xAE, 0xAF, +/* B- */ 0xB0, 0xB1, 0xB2, 0xB3, 0xB4, 0xB5, 0x40, 0x40, 0xB8, 0xB9, 0xBA, 0xBB, 0xBC, 0xBD, 0xBE, 0xBF, +/* C- */ 0x40, 0x81, 0x82, 0x83, 0x84, 0x85, 0x86, 0x87, 0x88, 0x89, 0x40, 0xCB, 0x40, 0xCD, 0x40, 0xCF, +/* D- */ 0x40, 0x91, 0x92, 0x93, 0x94, 0x95, 0x96, 0x97, 0x98, 0x99, 0xDA, 0xDB, 0xDC, 0xDD, 0xDE, 0xDF, +/* E- */ 0x40, 0x40, 0xA2, 0xA3, 0xA4, 0xA5, 0xA6, 0xA7, 0xA8, 0xA9, 0xEA, 0xEB, 0x40, 0xED, 0xEE, 0xEF, +/* F- */ 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0x40, 0xFB, 0xFC, 0xFD, 0xFE, 0x40, }; #endif @@ -710,39 +710,39 @@ struct NGramsPlusLang { }; static const NGramsPlusLang ngrams_8859_1[] = { - { + { { - 0x206120, 0x20616E, 0x206265, 0x20636F, 0x20666F, 0x206861, 0x206865, 0x20696E, 0x206D61, 0x206F66, 0x207072, 0x207265, 0x207361, 0x207374, 0x207468, 0x20746F, - 0x207768, 0x616964, 0x616C20, 0x616E20, 0x616E64, 0x617320, 0x617420, 0x617465, 0x617469, 0x642061, 0x642074, 0x652061, 0x652073, 0x652074, 0x656420, 0x656E74, - 0x657220, 0x657320, 0x666F72, 0x686174, 0x686520, 0x686572, 0x696420, 0x696E20, 0x696E67, 0x696F6E, 0x697320, 0x6E2061, 0x6E2074, 0x6E6420, 0x6E6720, 0x6E7420, - 0x6F6620, 0x6F6E20, 0x6F7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169, 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696F, 0x746F20, 0x747320, + 0x206120, 0x20616E, 0x206265, 0x20636F, 0x20666F, 0x206861, 0x206865, 0x20696E, 0x206D61, 0x206F66, 0x207072, 0x207265, 0x207361, 0x207374, 0x207468, 0x20746F, + 0x207768, 0x616964, 0x616C20, 0x616E20, 0x616E64, 0x617320, 0x617420, 0x617465, 0x617469, 0x642061, 0x642074, 0x652061, 0x652073, 0x652074, 0x656420, 0x656E74, + 0x657220, 0x657320, 0x666F72, 0x686174, 0x686520, 0x686572, 0x696420, 0x696E20, 0x696E67, 0x696F6E, 0x697320, 0x6E2061, 0x6E2074, 0x6E6420, 0x6E6720, 0x6E7420, + 0x6F6620, 0x6F6E20, 0x6F7220, 0x726520, 0x727320, 0x732061, 0x732074, 0x736169, 0x737420, 0x742074, 0x746572, 0x746861, 0x746865, 0x74696F, 0x746F20, 0x747320, }, "en" }, - { + { { - 0x206166, 0x206174, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920, 0x206D65, 0x206F67, 0x2070E5, 0x207369, 0x207374, 0x207469, 0x207669, 0x616620, - 0x616E20, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646572, 0x646574, 0x652073, 0x656420, 0x656465, 0x656E20, 0x656E64, 0x657220, 0x657265, 0x657320, - 0x657420, 0x666F72, 0x676520, 0x67656E, 0x676572, 0x696765, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6572, 0x6C6967, 0x6C6C65, 0x6D6564, 0x6E6465, 0x6E6520, - 0x6E6720, 0x6E6765, 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722064, 0x722065, 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696C, 0x766572, + 0x206166, 0x206174, 0x206465, 0x20656E, 0x206572, 0x20666F, 0x206861, 0x206920, 0x206D65, 0x206F67, 0x2070E5, 0x207369, 0x207374, 0x207469, 0x207669, 0x616620, + 0x616E20, 0x616E64, 0x617220, 0x617420, 0x646520, 0x64656E, 0x646572, 0x646574, 0x652073, 0x656420, 0x656465, 0x656E20, 0x656E64, 0x657220, 0x657265, 0x657320, + 0x657420, 0x666F72, 0x676520, 0x67656E, 0x676572, 0x696765, 0x696C20, 0x696E67, 0x6B6520, 0x6B6B65, 0x6C6572, 0x6C6967, 0x6C6C65, 0x6D6564, 0x6E6465, 0x6E6520, + 0x6E6720, 0x6E6765, 0x6F6720, 0x6F6D20, 0x6F7220, 0x70E520, 0x722064, 0x722065, 0x722073, 0x726520, 0x737465, 0x742073, 0x746520, 0x746572, 0x74696C, 0x766572, }, "da" }, - { + { { - 0x20616E, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, 0x206765, 0x206861, 0x20696E, 0x206D69, 0x207363, 0x207365, 0x20756E, 0x207665, 0x20766F, - 0x207765, 0x207A75, 0x626572, 0x636820, 0x636865, 0x636874, 0x646173, 0x64656E, 0x646572, 0x646965, 0x652064, 0x652073, 0x65696E, 0x656974, 0x656E20, 0x657220, - 0x657320, 0x67656E, 0x68656E, 0x687420, 0x696368, 0x696520, 0x696E20, 0x696E65, 0x697420, 0x6C6963, 0x6C6C65, 0x6E2061, 0x6E2064, 0x6E2073, 0x6E6420, 0x6E6465, - 0x6E6520, 0x6E6720, 0x6E6765, 0x6E7465, 0x722064, 0x726465, 0x726569, 0x736368, 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x756E64, 0x756E67, 0x766572, + 0x20616E, 0x206175, 0x206265, 0x206461, 0x206465, 0x206469, 0x206569, 0x206765, 0x206861, 0x20696E, 0x206D69, 0x207363, 0x207365, 0x20756E, 0x207665, 0x20766F, + 0x207765, 0x207A75, 0x626572, 0x636820, 0x636865, 0x636874, 0x646173, 0x64656E, 0x646572, 0x646965, 0x652064, 0x652073, 0x65696E, 0x656974, 0x656E20, 0x657220, + 0x657320, 0x67656E, 0x68656E, 0x687420, 0x696368, 0x696520, 0x696E20, 0x696E65, 0x697420, 0x6C6963, 0x6C6C65, 0x6E2061, 0x6E2064, 0x6E2073, 0x6E6420, 0x6E6465, + 0x6E6520, 0x6E6720, 0x6E6765, 0x6E7465, 0x722064, 0x726465, 0x726569, 0x736368, 0x737465, 0x742064, 0x746520, 0x74656E, 0x746572, 0x756E64, 0x756E67, 0x766572, }, "de" }, { { - 0x206120, 0x206361, 0x20636F, 0x206465, 0x20656C, 0x20656E, 0x206573, 0x20696E, 0x206C61, 0x206C6F, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365, - 0x20756E, 0x207920, 0x612063, 0x612064, 0x612065, 0x61206C, 0x612070, 0x616369, 0x61646F, 0x616C20, 0x617220, 0x617320, 0x6369F3, 0x636F6E, 0x646520, 0x64656C, - 0x646F20, 0x652064, 0x652065, 0x65206C, 0x656C20, 0x656E20, 0x656E74, 0x657320, 0x657374, 0x69656E, 0x69F36E, 0x6C6120, 0x6C6F73, 0x6E2065, 0x6E7465, 0x6F2064, - 0x6F2065, 0x6F6E20, 0x6F7220, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746F20, 0x756520, 0xF36E20, + 0x206120, 0x206361, 0x20636F, 0x206465, 0x20656C, 0x20656E, 0x206573, 0x20696E, 0x206C61, 0x206C6F, 0x207061, 0x20706F, 0x207072, 0x207175, 0x207265, 0x207365, + 0x20756E, 0x207920, 0x612063, 0x612064, 0x612065, 0x61206C, 0x612070, 0x616369, 0x61646F, 0x616C20, 0x617220, 0x617320, 0x6369F3, 0x636F6E, 0x646520, 0x64656C, + 0x646F20, 0x652064, 0x652065, 0x65206C, 0x656C20, 0x656E20, 0x656E74, 0x657320, 0x657374, 0x69656E, 0x69F36E, 0x6C6120, 0x6C6F73, 0x6E2065, 0x6E7465, 0x6F2064, + 0x6F2065, 0x6F6E20, 0x6F7220, 0x6F7320, 0x706172, 0x717565, 0x726120, 0x726573, 0x732064, 0x732065, 0x732070, 0x736520, 0x746520, 0x746F20, 0x756520, 0xF36E20, }, "es" }, @@ -1025,7 +1025,7 @@ CharsetRecog_8859_8::~CharsetRecog_8859_8() // nothing to do } -const char *CharsetRecog_8859_8::getName() const +const char *CharsetRecog_8859_8::getName() const { return "ISO-8859-8"; } @@ -1220,14 +1220,14 @@ const char *CharsetRecog_IBM420_ar::getLanguage() const return "ar"; } - + int32_t CharsetRecog_IBM420_ar::match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t byteMap[]) const { NGramParser_IBM420 parser(ngrams, byteMap); int32_t result; - + result = parser.parse(det); - + return result; } @@ -1268,3 +1268,4 @@ UBool CharsetRecog_IBM420_ar_ltr::match(InputText *textIn, CharsetMatch *results U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/csrsbcs.h b/deps/icu-small/source/i18n/csrsbcs.h index bae124c05a8426..96f982c59bd14b 100644 --- a/deps/icu-small/source/i18n/csrsbcs.h +++ b/deps/icu-small/source/i18n/csrsbcs.h @@ -22,7 +22,7 @@ class NGramParser : public UMemory { private: int32_t ngram; - const int32_t *ngramList; + const int32_t *ngramList; int32_t ngramCount; int32_t hitCount; @@ -44,7 +44,7 @@ class NGramParser : public UMemory int32_t search(const int32_t *table, int32_t value); void lookup(int32_t thisNgram); - + virtual int32_t nextByte(InputText *det); virtual void parseCharacters(InputText *det); @@ -63,8 +63,8 @@ class NGramParser_IBM420 : public NGramParser private: int32_t alef; int32_t isLamAlef(int32_t b); - int32_t nextByte(InputText *det); - void parseCharacters(InputText *det); + int32_t nextByte(InputText *det) override; + void parseCharacters(InputText *det) override; }; #endif @@ -74,8 +74,8 @@ class CharsetRecog_sbcs : public CharsetRecognizer public: CharsetRecog_sbcs(); virtual ~CharsetRecog_sbcs(); - virtual const char *getName() const = 0; - virtual UBool match(InputText *det, CharsetMatch *results) const = 0; + virtual const char *getName() const override = 0; + virtual UBool match(InputText *det, CharsetMatch *results) const override = 0; virtual int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]) const; }; @@ -83,23 +83,23 @@ class CharsetRecog_8859_1 : public CharsetRecog_sbcs { public: virtual ~CharsetRecog_8859_1(); - const char *getName() const; - virtual UBool match(InputText *det, CharsetMatch *results) const; + const char *getName() const override; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_2 : public CharsetRecog_sbcs { public: virtual ~CharsetRecog_8859_2(); - const char *getName() const; - virtual UBool match(InputText *det, CharsetMatch *results) const; + const char *getName() const override; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_5 : public CharsetRecog_sbcs { public: virtual ~CharsetRecog_8859_5(); - const char *getName() const; + const char *getName() const override; }; class CharsetRecog_8859_6 : public CharsetRecog_sbcs @@ -107,7 +107,7 @@ class CharsetRecog_8859_6 : public CharsetRecog_sbcs public: virtual ~CharsetRecog_8859_6(); - const char *getName() const; + const char *getName() const override; }; class CharsetRecog_8859_7 : public CharsetRecog_sbcs @@ -115,15 +115,15 @@ class CharsetRecog_8859_7 : public CharsetRecog_sbcs public: virtual ~CharsetRecog_8859_7(); - const char *getName() const; + const char *getName() const override; }; class CharsetRecog_8859_8 : public CharsetRecog_sbcs { public: virtual ~CharsetRecog_8859_8(); - - virtual const char *getName() const; + + virtual const char *getName() const override; }; class CharsetRecog_8859_9 : public CharsetRecog_sbcs @@ -131,7 +131,7 @@ class CharsetRecog_8859_9 : public CharsetRecog_sbcs public: virtual ~CharsetRecog_8859_9(); - const char *getName() const; + const char *getName() const override; }; @@ -141,9 +141,9 @@ class CharsetRecog_8859_5_ru : public CharsetRecog_8859_5 public: virtual ~CharsetRecog_8859_5_ru(); - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6 @@ -151,9 +151,9 @@ class CharsetRecog_8859_6_ar : public CharsetRecog_8859_6 public: virtual ~CharsetRecog_8859_6_ar(); - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_7_el : public CharsetRecog_8859_7 @@ -161,21 +161,21 @@ class CharsetRecog_8859_7_el : public CharsetRecog_8859_7 public: virtual ~CharsetRecog_8859_7_el(); - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_8_I_he : public CharsetRecog_8859_8 { public: virtual ~CharsetRecog_8859_8_I_he(); + + const char *getName() const override; - const char *getName() const; - - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_8_he : public CharsetRecog_8859_8 @@ -183,9 +183,9 @@ class CharsetRecog_8859_8_he : public CharsetRecog_8859_8 public: virtual ~CharsetRecog_8859_8_he (); - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9 @@ -193,9 +193,9 @@ class CharsetRecog_8859_9_tr : public CharsetRecog_8859_9 public: virtual ~CharsetRecog_8859_9_tr (); - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_windows_1256 : public CharsetRecog_sbcs @@ -203,11 +203,11 @@ class CharsetRecog_windows_1256 : public CharsetRecog_sbcs public: virtual ~CharsetRecog_windows_1256(); - const char *getName() const; + const char *getName() const override; - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_windows_1251 : public CharsetRecog_sbcs @@ -215,11 +215,11 @@ class CharsetRecog_windows_1251 : public CharsetRecog_sbcs public: virtual ~CharsetRecog_windows_1251(); - const char *getName() const; + const char *getName() const override; - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; @@ -228,11 +228,11 @@ class CharsetRecog_KOI8_R : public CharsetRecog_sbcs public: virtual ~CharsetRecog_KOI8_R(); - const char *getName() const; + const char *getName() const override; - const char *getLanguage() const; + const char *getLanguage() const override; - virtual UBool match(InputText *det, CharsetMatch *results) const; + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; #if !UCONFIG_ONLY_HTML_CONVERSION @@ -241,24 +241,24 @@ class CharsetRecog_IBM424_he : public CharsetRecog_sbcs public: virtual ~CharsetRecog_IBM424_he(); - const char *getLanguage() const; + const char *getLanguage() const override; }; class CharsetRecog_IBM424_he_rtl : public CharsetRecog_IBM424_he { public: virtual ~CharsetRecog_IBM424_he_rtl(); - - const char *getName() const; - - virtual UBool match(InputText *det, CharsetMatch *results) const; + + const char *getName() const override; + + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_IBM424_he_ltr : public CharsetRecog_IBM424_he { virtual ~CharsetRecog_IBM424_he_ltr(); - - const char *getName() const; - - virtual UBool match(InputText *det, CharsetMatch *results) const; + + const char *getName() const override; + + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_IBM420_ar : public CharsetRecog_sbcs @@ -266,26 +266,26 @@ class CharsetRecog_IBM420_ar : public CharsetRecog_sbcs public: virtual ~CharsetRecog_IBM420_ar(); - const char *getLanguage() const; - int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]) const; - + const char *getLanguage() const override; + int32_t match_sbcs(InputText *det, const int32_t ngrams[], const uint8_t charMap[]) const override; + }; class CharsetRecog_IBM420_ar_rtl : public CharsetRecog_IBM420_ar { public: virtual ~CharsetRecog_IBM420_ar_rtl(); - - const char *getName() const; - - virtual UBool match(InputText *det, CharsetMatch *results) const; + + const char *getName() const override; + + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; class CharsetRecog_IBM420_ar_ltr : public CharsetRecog_IBM420_ar { virtual ~CharsetRecog_IBM420_ar_ltr(); - - const char *getName() const; - - virtual UBool match(InputText *det, CharsetMatch *results) const; + + const char *getName() const override; + + virtual UBool match(InputText *det, CharsetMatch *results) const override; }; #endif diff --git a/deps/icu-small/source/i18n/csrucode.cpp b/deps/icu-small/source/i18n/csrucode.cpp index 01d565ec3a9bcc..480dae1400cdf5 100644 --- a/deps/icu-small/source/i18n/csrucode.cpp +++ b/deps/icu-small/source/i18n/csrucode.cpp @@ -35,7 +35,7 @@ const char *CharsetRecog_UTF_16_BE::getName() const // Any 8 bit non-control characters bump the confidence up. These have a zero high byte, // and are very likely to be UTF-16, although they could also be part of a UTF-32 code. // NULs are a contra-indication, they will appear commonly if the actual encoding is UTF-32. -// NULs should be rare in actual text. +// NULs should be rare in actual text. static int32_t adjustConfidence(UChar codeUnit, int32_t confidence) { if (codeUnit == 0) { @@ -144,14 +144,14 @@ UBool CharsetRecog_UTF_32::match(InputText* textIn, CharsetMatch *results) const } - // Cook up some sort of confidence score, based on presense of a BOM + // Cook up some sort of confidence score, based on presence of a BOM // and the existence of valid and/or invalid multi-byte sequences. if (hasBOM && numInvalid==0) { confidence = 100; } else if (hasBOM && numValid > numInvalid*10) { confidence = 80; } else if (numValid > 3 && numInvalid == 0) { - confidence = 100; + confidence = 100; } else if (numValid > 0 && numInvalid == 0) { confidence = 80; } else if (numValid > numInvalid*10) { @@ -177,7 +177,7 @@ int32_t CharsetRecog_UTF_32_BE::getChar(const uint8_t *input, int32_t index) con { return input[index + 0] << 24 | input[index + 1] << 16 | input[index + 2] << 8 | input[index + 3]; -} +} CharsetRecog_UTF_32_LE::~CharsetRecog_UTF_32_LE() { @@ -197,3 +197,4 @@ int32_t CharsetRecog_UTF_32_LE::getChar(const uint8_t *input, int32_t index) con U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/csrucode.h b/deps/icu-small/source/i18n/csrucode.h index 4465bf35a1a917..78e08d22f11d10 100644 --- a/deps/icu-small/source/i18n/csrucode.h +++ b/deps/icu-small/source/i18n/csrucode.h @@ -21,10 +21,10 @@ U_NAMESPACE_BEGIN /** * This class matches UTF-16 and UTF-32, both big- and little-endian. The * BOM will be used if it is present. - * + * * @internal */ -class CharsetRecog_Unicode : public CharsetRecognizer +class CharsetRecog_Unicode : public CharsetRecognizer { public: @@ -33,12 +33,12 @@ class CharsetRecog_Unicode : public CharsetRecognizer /* (non-Javadoc) * @see com.ibm.icu.text.CharsetRecognizer#getName() */ - const char* getName() const = 0; + const char* getName() const override = 0; /* (non-Javadoc) * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector) */ - UBool match(InputText* textIn, CharsetMatch *results) const = 0; + UBool match(InputText* textIn, CharsetMatch *results) const override = 0; }; @@ -48,9 +48,9 @@ class CharsetRecog_UTF_16_BE : public CharsetRecog_Unicode virtual ~CharsetRecog_UTF_16_BE(); - const char *getName() const; + const char *getName() const override; - UBool match(InputText* textIn, CharsetMatch *results) const; + UBool match(InputText* textIn, CharsetMatch *results) const override; }; class CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode @@ -59,9 +59,9 @@ class CharsetRecog_UTF_16_LE : public CharsetRecog_Unicode virtual ~CharsetRecog_UTF_16_LE(); - const char *getName() const; + const char *getName() const override; - UBool match(InputText* textIn, CharsetMatch *results) const; + UBool match(InputText* textIn, CharsetMatch *results) const override; }; class CharsetRecog_UTF_32 : public CharsetRecog_Unicode @@ -72,34 +72,34 @@ class CharsetRecog_UTF_32 : public CharsetRecog_Unicode virtual ~CharsetRecog_UTF_32(); - const char* getName() const = 0; + const char* getName() const override = 0; - UBool match(InputText* textIn, CharsetMatch *results) const; + UBool match(InputText* textIn, CharsetMatch *results) const override; }; class CharsetRecog_UTF_32_BE : public CharsetRecog_UTF_32 { protected: - int32_t getChar(const uint8_t *input, int32_t index) const; + int32_t getChar(const uint8_t *input, int32_t index) const override; public: virtual ~CharsetRecog_UTF_32_BE(); - const char *getName() const; + const char *getName() const override; }; class CharsetRecog_UTF_32_LE : public CharsetRecog_UTF_32 { protected: - int32_t getChar(const uint8_t *input, int32_t index) const; + int32_t getChar(const uint8_t *input, int32_t index) const override; public: virtual ~CharsetRecog_UTF_32_LE(); - const char* getName() const; + const char* getName() const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/csrutf8.cpp b/deps/icu-small/source/i18n/csrutf8.cpp index 914be35b1f8222..3f16224ea6effd 100644 --- a/deps/icu-small/source/i18n/csrutf8.cpp +++ b/deps/icu-small/source/i18n/csrutf8.cpp @@ -35,7 +35,7 @@ UBool CharsetRecog_UTF8::match(InputText* input, CharsetMatch *results) const { int32_t trailBytes = 0; int32_t confidence; - if (input->fRawLength >= 3 && + if (input->fRawLength >= 3 && inputBytes[0] == 0xEF && inputBytes[1] == 0xBB && inputBytes[2] == 0xBF) { hasBOM = TRUE; } diff --git a/deps/icu-small/source/i18n/csrutf8.h b/deps/icu-small/source/i18n/csrutf8.h index dc4f79b8246118..bcfb38ac951de7 100644 --- a/deps/icu-small/source/i18n/csrutf8.h +++ b/deps/icu-small/source/i18n/csrutf8.h @@ -26,16 +26,16 @@ U_NAMESPACE_BEGIN class CharsetRecog_UTF8: public CharsetRecognizer { public: + + virtual ~CharsetRecog_UTF8(); - virtual ~CharsetRecog_UTF8(); - - const char *getName() const; + const char *getName() const override; /* (non-Javadoc) * @see com.ibm.icu.text.CharsetRecognizer#match(com.ibm.icu.text.CharsetDetector) */ - UBool match(InputText *input, CharsetMatch *results) const; - + UBool match(InputText *input, CharsetMatch *results) const override; + }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/curramt.cpp b/deps/icu-small/source/i18n/curramt.cpp index 69ab42ace9d9ec..6fd2ea2fda5d0d 100644 --- a/deps/icu-small/source/i18n/curramt.cpp +++ b/deps/icu-small/source/i18n/curramt.cpp @@ -44,7 +44,7 @@ CurrencyAmount* CurrencyAmount::clone() const { CurrencyAmount::~CurrencyAmount() { } - + UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CurrencyAmount) U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/currfmt.h b/deps/icu-small/source/i18n/currfmt.h index 69a031957bcea9..2a75cae2bb39b1 100644 --- a/deps/icu-small/source/i18n/currfmt.h +++ b/deps/icu-small/source/i18n/currfmt.h @@ -57,7 +57,7 @@ class CurrencyFormat : public MeasureFormat { /** * Override Format API. */ - virtual CurrencyFormat* clone() const; + virtual CurrencyFormat* clone() const override; using MeasureFormat::format; @@ -68,19 +68,19 @@ class CurrencyFormat : public MeasureFormat { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& ec) const; + UErrorCode& ec) const override; /** * Override Format API. */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& pos) const; + ParsePosition& pos) const override; /** * Override Format API. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * Returns the class ID for this class. diff --git a/deps/icu-small/source/i18n/currpinf.cpp b/deps/icu-small/source/i18n/currpinf.cpp index f5d27e28d8ebfa..a2676ab5a1ebcb 100644 --- a/deps/icu-small/source/i18n/currpinf.cpp +++ b/deps/icu-small/source/i18n/currpinf.cpp @@ -78,7 +78,7 @@ CurrencyPluralInfo::CurrencyPluralInfo(const Locale& locale, UErrorCode& status) initialize(locale, status); } -CurrencyPluralInfo::CurrencyPluralInfo(const CurrencyPluralInfo& info) +CurrencyPluralInfo::CurrencyPluralInfo(const CurrencyPluralInfo& info) : UObject(info), fPluralCountToCurrencyUnitPattern(nullptr), fPluralRules(nullptr), @@ -101,7 +101,7 @@ CurrencyPluralInfo::operator=(const CurrencyPluralInfo& info) { deleteHash(fPluralCountToCurrencyUnitPattern); fPluralCountToCurrencyUnitPattern = initHash(fInternalStatus); - copyHash(info.fPluralCountToCurrencyUnitPattern, + copyHash(info.fPluralCountToCurrencyUnitPattern, fPluralCountToCurrencyUnitPattern, fInternalStatus); if ( U_FAILURE(fInternalStatus) ) { return *this; @@ -145,7 +145,7 @@ CurrencyPluralInfo::~CurrencyPluralInfo() { fLocale = nullptr; } -UBool +bool CurrencyPluralInfo::operator==(const CurrencyPluralInfo& info) const { #ifdef CURRENCY_PLURAL_INFO_DEBUG if (*fPluralRules == *info.fPluralRules) { @@ -176,7 +176,7 @@ CurrencyPluralInfo::clone() const { return newObj; } -const PluralRules* +const PluralRules* CurrencyPluralInfo::getPluralRules() const { return fPluralRules; } @@ -184,16 +184,16 @@ CurrencyPluralInfo::getPluralRules() const { UnicodeString& CurrencyPluralInfo::getCurrencyPluralPattern(const UnicodeString& pluralCount, UnicodeString& result) const { - const UnicodeString* currencyPluralPattern = + const UnicodeString* currencyPluralPattern = (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(pluralCount); if (currencyPluralPattern == nullptr) { // fall back to "other" if (pluralCount.compare(gPluralCountOther, 5)) { - currencyPluralPattern = + currencyPluralPattern = (UnicodeString*)fPluralCountToCurrencyUnitPattern->get(UnicodeString(TRUE, gPluralCountOther, 5)); } if (currencyPluralPattern == nullptr) { - // no currencyUnitPatterns defined, + // no currencyUnitPatterns defined, // fallback to predefined default. // This should never happen when ICU resource files are // available, since currencyUnitPattern of "other" is always @@ -242,13 +242,13 @@ CurrencyPluralInfo::setLocale(const Locale& loc, UErrorCode& status) { initialize(loc, status); } -void +void CurrencyPluralInfo::initialize(const Locale& loc, UErrorCode& status) { if (U_FAILURE(status)) { return; } delete fLocale; - fLocale = nullptr; + fLocale = nullptr; delete fPluralRules; fPluralRules = nullptr; @@ -266,7 +266,7 @@ CurrencyPluralInfo::initialize(const Locale& loc, UErrorCode& status) { fPluralRules = PluralRules::forLocale(loc, status); setupCurrencyPluralPattern(loc, status); } - + void CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status) { if (U_FAILURE(status)) { @@ -325,7 +325,7 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st LocalUResourceBundlePointer currRb(ures_open(U_ICUDATA_CURR, loc.getName(), &ec)); LocalUResourceBundlePointer currencyRes(ures_getByKeyWithFallback(currRb.getAlias(), gCurrUnitPtnTag, nullptr, &ec)); - + #ifdef CURRENCY_PLURAL_INFO_DEBUG std::cout << "in set up\n"; #endif @@ -351,13 +351,13 @@ CurrencyPluralInfo::setupCurrencyPluralPattern(const Locale& loc, UErrorCode& st pattern->extract(0, pattern->length(), result_1, "UTF-8"); std::cout << "pluralCount: " << pluralCount << "; pattern: " << result_1 << "\n"; #endif - pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), + pattern->findAndReplace(UnicodeString(TRUE, gPart0, 3), UnicodeString(numberStylePattern, numberStylePatternLen)); pattern->findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3)); if (hasSeparator) { UnicodeString negPattern(patternChars, ptnLength); - negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), + negPattern.findAndReplace(UnicodeString(TRUE, gPart0, 3), UnicodeString(negNumberStylePattern, negNumberStylePatternLen)); negPattern.findAndReplace(UnicodeString(TRUE, gPart1, 3), UnicodeString(TRUE, gTripleCurrencySign, 3)); pattern->append(gNumberPatternSeparator); diff --git a/deps/icu-small/source/i18n/currunit.cpp b/deps/icu-small/source/i18n/currunit.cpp index c1febf7df6d7e6..92bcf1268ac387 100644 --- a/deps/icu-small/source/i18n/currunit.cpp +++ b/deps/icu-small/source/i18n/currunit.cpp @@ -118,7 +118,7 @@ CurrencyUnit* CurrencyUnit::clone() const { CurrencyUnit::~CurrencyUnit() { } - + UOBJECT_DEFINE_RTTI_IMPLEMENTATION(CurrencyUnit) U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/dangical.cpp b/deps/icu-small/source/i18n/dangical.cpp index 54e2e99fa66711..57fe80220b9ab6 100644 --- a/deps/icu-small/source/i18n/dangical.cpp +++ b/deps/icu-small/source/i18n/dangical.cpp @@ -52,11 +52,11 @@ U_NAMESPACE_BEGIN //------------------------------------------------------------------------- DangiCalendar::DangiCalendar(const Locale& aLocale, UErrorCode& success) -: ChineseCalendar(aLocale, DANGI_EPOCH_YEAR, getDangiCalZoneAstroCalc(), success) +: ChineseCalendar(aLocale, DANGI_EPOCH_YEAR, getDangiCalZoneAstroCalc(success), success) { } -DangiCalendar::DangiCalendar (const DangiCalendar& other) +DangiCalendar::DangiCalendar (const DangiCalendar& other) : ChineseCalendar(other) { } @@ -71,64 +71,73 @@ DangiCalendar::clone() const return new DangiCalendar(*this); } -const char *DangiCalendar::getType() const { +const char *DangiCalendar::getType() const { return "dangi"; } /** * The time zone used for performing astronomical computations for - * Dangi calendar. In Korea various timezones have been used historically - * (cf. http://www.math.snu.ac.kr/~kye/others/lunar.html): - * - * - 1908/04/01: GMT+8 - * 1908/04/01 - 1911/12/31: GMT+8.5 - * 1912/01/01 - 1954/03/20: GMT+9 - * 1954/03/21 - 1961/08/09: GMT+8.5 - * 1961/08/10 - : GMT+9 - * - * Note that, in 1908-1911, the government did not apply the timezone change - * but used GMT+8. In addition, 1954-1961's timezone change does not affect - * the lunar date calculation. Therefore, the following simpler rule works: - * - * -1911: GMT+8 - * 1912-: GMT+9 - * - * Unfortunately, our astronomer's approximation doesn't agree with the - * references (http://www.math.snu.ac.kr/~kye/others/lunar.html and - * http://astro.kasi.re.kr/Life/ConvertSolarLunarForm.aspx?MenuID=115) - * in 1897/7/30. So the following ad hoc fix is used here: - * - * -1896: GMT+8 - * 1897: GMT+7 - * 1898-1911: GMT+8 - * 1912- : GMT+9 + * Dangi calendar. In Korea various timezones have been used historically + * (cf. http://www.math.snu.ac.kr/~kye/others/lunar.html): + * + * - 1908/04/01: GMT+8 + * 1908/04/01 - 1911/12/31: GMT+8.5 + * 1912/01/01 - 1954/03/20: GMT+9 + * 1954/03/21 - 1961/08/09: GMT+8.5 + * 1961/08/10 - : GMT+9 + * + * Note that, in 1908-1911, the government did not apply the timezone change + * but used GMT+8. In addition, 1954-1961's timezone change does not affect + * the lunar date calculation. Therefore, the following simpler rule works: + * + * -1911: GMT+8 + * 1912-: GMT+9 + * + * Unfortunately, our astronomer's approximation doesn't agree with the + * references (http://www.math.snu.ac.kr/~kye/others/lunar.html and + * http://astro.kasi.re.kr/Life/ConvertSolarLunarForm.aspx?MenuID=115) + * in 1897/7/30. So the following ad hoc fix is used here: + * + * -1896: GMT+8 + * 1897: GMT+7 + * 1898-1911: GMT+8 + * 1912- : GMT+9 */ -static void U_CALLCONV initDangiCalZoneAstroCalc(void) { - U_ASSERT(gDangiCalendarZoneAstroCalc == NULL); +static void U_CALLCONV initDangiCalZoneAstroCalc(UErrorCode &status) { + U_ASSERT(gDangiCalendarZoneAstroCalc == nullptr); const UDate millis1897[] = { (UDate)((1897 - 1970) * 365 * kOneDay) }; // some days of error is not a problem here const UDate millis1898[] = { (UDate)((1898 - 1970) * 365 * kOneDay) }; // some days of error is not a problem here const UDate millis1912[] = { (UDate)((1912 - 1970) * 365 * kOneDay) }; // this doesn't create an issue for 1911/12/20 - InitialTimeZoneRule* initialTimeZone = new InitialTimeZoneRule(UNICODE_STRING_SIMPLE("GMT+8"), 8*kOneHour, 0); - TimeZoneRule* rule1897 = new TimeArrayTimeZoneRule(UNICODE_STRING_SIMPLE("Korean 1897"), 7*kOneHour, 0, millis1897, 1, DateTimeRule::STANDARD_TIME); - TimeZoneRule* rule1898to1911 = new TimeArrayTimeZoneRule(UNICODE_STRING_SIMPLE("Korean 1898-1911"), 8*kOneHour, 0, millis1898, 1, DateTimeRule::STANDARD_TIME); - TimeZoneRule* ruleFrom1912 = new TimeArrayTimeZoneRule(UNICODE_STRING_SIMPLE("Korean 1912-"), 9*kOneHour, 0, millis1912, 1, DateTimeRule::STANDARD_TIME); - UErrorCode status = U_ZERO_ERROR; - RuleBasedTimeZone* dangiCalZoneAstroCalc = new RuleBasedTimeZone(UNICODE_STRING_SIMPLE("KOREA_ZONE"), initialTimeZone); // adopts initialTimeZone - dangiCalZoneAstroCalc->addTransitionRule(rule1897, status); // adopts rule1897 - dangiCalZoneAstroCalc->addTransitionRule(rule1898to1911, status); - dangiCalZoneAstroCalc->addTransitionRule(ruleFrom1912, status); + LocalPointer initialTimeZone(new InitialTimeZoneRule( + UnicodeString(u"GMT+8"), 8*kOneHour, 0), status); + + LocalPointer rule1897(new TimeArrayTimeZoneRule( + UnicodeString(u"Korean 1897"), 7*kOneHour, 0, millis1897, 1, DateTimeRule::STANDARD_TIME), status); + + LocalPointer rule1898to1911(new TimeArrayTimeZoneRule( + UnicodeString(u"Korean 1898-1911"), 8*kOneHour, 0, millis1898, 1, DateTimeRule::STANDARD_TIME), status); + + LocalPointer ruleFrom1912(new TimeArrayTimeZoneRule( + UnicodeString(u"Korean 1912-"), 9*kOneHour, 0, millis1912, 1, DateTimeRule::STANDARD_TIME), status); + + LocalPointer dangiCalZoneAstroCalc(new RuleBasedTimeZone( + UnicodeString(u"KOREA_ZONE"), initialTimeZone.orphan()), status); // adopts initialTimeZone + + if (U_FAILURE(status)) { + return; + } + dangiCalZoneAstroCalc->addTransitionRule(rule1897.orphan(), status); // adopts rule1897 + dangiCalZoneAstroCalc->addTransitionRule(rule1898to1911.orphan(), status); + dangiCalZoneAstroCalc->addTransitionRule(ruleFrom1912.orphan(), status); dangiCalZoneAstroCalc->complete(status); if (U_SUCCESS(status)) { - gDangiCalendarZoneAstroCalc = dangiCalZoneAstroCalc; - } else { - delete dangiCalZoneAstroCalc; - gDangiCalendarZoneAstroCalc = NULL; + gDangiCalendarZoneAstroCalc = dangiCalZoneAstroCalc.orphan(); } ucln_i18n_registerCleanup(UCLN_I18N_DANGI_CALENDAR, calendar_dangi_cleanup); } -const TimeZone* DangiCalendar::getDangiCalZoneAstroCalc(void) const { - umtx_initOnce(gDangiCalendarInitOnce, &initDangiCalZoneAstroCalc); +const TimeZone* DangiCalendar::getDangiCalZoneAstroCalc(UErrorCode &status) const { + umtx_initOnce(gDangiCalendarInitOnce, &initDangiCalZoneAstroCalc, status); return gDangiCalendarZoneAstroCalc; } @@ -138,3 +147,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DangiCalendar) U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/dangical.h b/deps/icu-small/source/i18n/dangical.h index 4f2cf384f57664..9d0437264ef175 100644 --- a/deps/icu-small/source/i18n/dangical.h +++ b/deps/icu-small/source/i18n/dangical.h @@ -27,7 +27,7 @@ U_NAMESPACE_BEGIN *

      DangiCalendar is a concrete subclass of {@link Calendar} * that implements a traditional Korean lunisolar calendar.

      * - *

      DangiCalendar usually should be instantiated using + *

      DangiCalendar usually should be instantiated using * {@link com.ibm.icu.util.Calendar#getInstance(ULocale)} passing in a ULocale * with the tag "@calendar=dangi".

      * @@ -66,7 +66,7 @@ class DangiCalendar : public ChineseCalendar { * Clone. * @internal */ - virtual DangiCalendar* clone() const; + virtual DangiCalendar* clone() const override; //---------------------------------------------------------------------- // Internal methods & astronomical calculations @@ -74,16 +74,16 @@ class DangiCalendar : public ChineseCalendar { private: - const TimeZone* getDangiCalZoneAstroCalc(void) const; + const TimeZone* getDangiCalZoneAstroCalc(UErrorCode &status) const; // UObject stuff - public: + public: /** * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -104,11 +104,11 @@ class DangiCalendar : public ChineseCalendar { * @return calendar type * @internal */ - const char * getType() const; + const char * getType() const override; private: - + DangiCalendar(); // default constructor not implemented }; @@ -116,3 +116,6 @@ U_NAMESPACE_END #endif #endif + + + diff --git a/deps/icu-small/source/i18n/datefmt.cpp b/deps/icu-small/source/i18n/datefmt.cpp index 413139db84c50d..fed8f79aa0f8cb 100644 --- a/deps/icu-small/source/i18n/datefmt.cpp +++ b/deps/icu-small/source/i18n/datefmt.cpp @@ -65,9 +65,17 @@ const DateFmtBestPattern *LocaleCacheKey::createObject( return NULL; } -class U_I18N_API DateFmtBestPatternKey : public LocaleCacheKey { +class U_I18N_API DateFmtBestPatternKey : public LocaleCacheKey { private: UnicodeString fSkeleton; +protected: + virtual bool equals(const CacheKeyBase &other) const override { + if (!LocaleCacheKey::equals(other)) { + return false; + } + // We know that this and other are of same class if we get this far. + return operator==(static_cast(other)); + } public: DateFmtBestPatternKey( const Locale &loc, @@ -79,33 +87,23 @@ class U_I18N_API DateFmtBestPatternKey : public LocaleCacheKey(other), fSkeleton(other.fSkeleton) { } virtual ~DateFmtBestPatternKey(); - virtual int32_t hashCode() const { + virtual int32_t hashCode() const override { return (int32_t)(37u * (uint32_t)LocaleCacheKey::hashCode() + (uint32_t)fSkeleton.hashCode()); } - virtual UBool operator==(const CacheKeyBase &other) const { - // reflexive - if (this == &other) { - return TRUE; - } - if (!LocaleCacheKey::operator==(other)) { - return FALSE; - } - // We know that this and other are of same class if we get this far. - const DateFmtBestPatternKey &realOther = - static_cast(other); - return (realOther.fSkeleton == fSkeleton); + inline bool operator==(const DateFmtBestPatternKey &other) const { + return fSkeleton == other.fSkeleton; } - virtual CacheKeyBase *clone() const { + virtual CacheKeyBase *clone() const override { return new DateFmtBestPatternKey(*this); } virtual const DateFmtBestPattern *createObject( - const void * /*unused*/, UErrorCode &status) const { + const void * /*unused*/, UErrorCode &status) const override { LocalPointer dtpg( DateTimePatternGenerator::createInstance(fLoc, status)); if (U_FAILURE(status)) { return NULL; } - + LocalPointer pattern( new DateFmtBestPattern( dtpg->getBestPattern(fSkeleton, status)), @@ -174,7 +172,7 @@ DateFormat::~DateFormat() //---------------------------------------------------------------------- -UBool +bool DateFormat::operator==(const Format& other) const { // This protected comparison operator should only be called by subclasses @@ -726,10 +724,10 @@ UDisplayContext DateFormat::getContext(UDisplayContextType type, UErrorCode& sta //---------------------------------------------------------------------- -DateFormat& +DateFormat& DateFormat::setBooleanAttribute(UDateFormatBooleanAttribute attr, - UBool newValue, - UErrorCode &status) { + UBool newValue, + UErrorCode &status) { if(!fBoolFlags.isValidValue(newValue)) { status = U_ILLEGAL_ARGUMENT_ERROR; } else { @@ -741,7 +739,7 @@ DateFormat::setBooleanAttribute(UDateFormatBooleanAttribute attr, //---------------------------------------------------------------------- -UBool +UBool DateFormat::getBooleanAttribute(UDateFormatBooleanAttribute attr, UErrorCode &/*status*/) const { return static_cast(fBoolFlags.get(attr)); diff --git a/deps/icu-small/source/i18n/dayperiodrules.cpp b/deps/icu-small/source/i18n/dayperiodrules.cpp index e364ecb708cf66..efe92dd794b642 100644 --- a/deps/icu-small/source/i18n/dayperiodrules.cpp +++ b/deps/icu-small/source/i18n/dayperiodrules.cpp @@ -50,7 +50,7 @@ struct DayPeriodRulesDataSink : public ResourceSink { } virtual ~DayPeriodRulesDataSink(); - virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) override { ResourceTable dayPeriodData = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } @@ -282,7 +282,7 @@ struct DayPeriodRulesDataSink : public ResourceSink { struct DayPeriodRulesCountSink : public ResourceSink { virtual ~DayPeriodRulesCountSink(); - virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) override { ResourceTable rules = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } diff --git a/deps/icu-small/source/i18n/dcfmtsym.cpp b/deps/icu-small/source/i18n/dcfmtsym.cpp index 6f19182e2bfcf7..4f5bae4e11e936 100644 --- a/deps/icu-small/source/i18n/dcfmtsym.cpp +++ b/deps/icu-small/source/i18n/dcfmtsym.cpp @@ -92,6 +92,7 @@ static const char *gNumberElementKeys[DecimalFormatSymbols::kFormatSymbolCount] NULL, /* eight digit - get it from the numbering system */ NULL, /* nine digit - get it from the numbering system */ "superscriptingExponent", /* Multiplication (x) symbol for exponents */ + "approximatelySign" /* Approximately sign symbol */ }; // ------------------------------------- @@ -164,8 +165,8 @@ DecimalFormatSymbols::operator=(const DecimalFormatSymbols& rhs) locale = rhs.locale; uprv_strcpy(validLocale, rhs.validLocale); uprv_strcpy(actualLocale, rhs.actualLocale); - fIsCustomCurrencySymbol = rhs.fIsCustomCurrencySymbol; - fIsCustomIntlCurrencySymbol = rhs.fIsCustomIntlCurrencySymbol; + fIsCustomCurrencySymbol = rhs.fIsCustomCurrencySymbol; + fIsCustomIntlCurrencySymbol = rhs.fIsCustomIntlCurrencySymbol; fCodePointZero = rhs.fCodePointZero; currPattern = rhs.currPattern; } @@ -174,29 +175,29 @@ DecimalFormatSymbols::operator=(const DecimalFormatSymbols& rhs) // ------------------------------------- -UBool +bool DecimalFormatSymbols::operator==(const DecimalFormatSymbols& that) const { if (this == &that) { - return TRUE; - } - if (fIsCustomCurrencySymbol != that.fIsCustomCurrencySymbol) { - return FALSE; - } - if (fIsCustomIntlCurrencySymbol != that.fIsCustomIntlCurrencySymbol) { - return FALSE; + return true; } + if (fIsCustomCurrencySymbol != that.fIsCustomCurrencySymbol) { + return false; + } + if (fIsCustomIntlCurrencySymbol != that.fIsCustomIntlCurrencySymbol) { + return false; + } for(int32_t i = 0; i < (int32_t)kFormatSymbolCount; ++i) { if(fSymbols[(ENumberFormatSymbol)i] != that.fSymbols[(ENumberFormatSymbol)i]) { - return FALSE; + return false; } } for(int32_t i = 0; i < (int32_t)UNUM_CURRENCY_SPACING_COUNT; ++i) { if(currencySpcBeforeSym[i] != that.currencySpcBeforeSym[i]) { - return FALSE; + return false; } if(currencySpcAfterSym[i] != that.currencySpcAfterSym[i]) { - return FALSE; + return false; } } // No need to check fCodePointZero since it is based on fSymbols @@ -221,7 +222,7 @@ struct DecFmtSymDataSink : public ResourceSink { // Destination for data, modified via setters. DecimalFormatSymbols& dfs; // Boolean array of whether or not we have seen a particular symbol yet. - // Can't simpy check fSymbols because it is pre-populated with defaults. + // Can't simply check fSymbols because it is pre-populated with defaults. UBool seenSymbol[DecimalFormatSymbols::kFormatSymbolCount]; // Constructor/Destructor @@ -231,7 +232,7 @@ struct DecFmtSymDataSink : public ResourceSink { virtual ~DecFmtSymDataSink(); virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { ResourceTable symbolsTable = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } for (int32_t j = 0; symbolsTable.getKeyAndValue(j, key, value); ++j) { @@ -286,7 +287,7 @@ struct CurrencySpacingSink : public ResourceSink { virtual ~CurrencySpacingSink(); virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { ResourceTable spacingTypesTable = value.getTable(errorCode); for (int32_t i = 0; spacingTypesTable.getKeyAndValue(i, key, value); ++i) { UBool beforeCurrency; @@ -506,9 +507,10 @@ DecimalFormatSymbols::initialize() { fSymbols[kInfinitySymbol] = (UChar)0x221e; // 'oo' infinite fSymbols[kNaNSymbol] = (UChar)0xfffd; // SUB NaN fSymbols[kSignificantDigitSymbol] = (UChar)0x0040; // '@' significant digit - fSymbols[kMonetaryGroupingSeparatorSymbol].remove(); // + fSymbols[kMonetaryGroupingSeparatorSymbol].remove(); // fSymbols[kExponentMultiplicationSymbol] = (UChar)0xd7; // 'x' multiplication symbol for exponents - fIsCustomCurrencySymbol = FALSE; + fSymbols[kApproximatelySignSymbol] = u'~'; // '~' approximately sign + fIsCustomCurrencySymbol = FALSE; fIsCustomIntlCurrencySymbol = FALSE; fCodePointZero = 0x30; U_ASSERT(fCodePointZero == fSymbols[kZeroDigitSymbol].char32At(0)); diff --git a/deps/icu-small/source/i18n/decContext.cpp b/deps/icu-small/source/i18n/decContext.cpp index e22823034fab88..421d65b43f99d2 100644 --- a/deps/icu-small/source/i18n/decContext.cpp +++ b/deps/icu-small/source/i18n/decContext.cpp @@ -429,3 +429,4 @@ U_CAPI decContext * U_EXPORT2 uprv_decContextZeroStatus(decContext *context) { context->status=0; return context; } /* decContextZeroStatus */ + diff --git a/deps/icu-small/source/i18n/decContext.h b/deps/icu-small/source/i18n/decContext.h index 5f89a516d95c88..59ab65e59271ac 100644 --- a/deps/icu-small/source/i18n/decContext.h +++ b/deps/icu-small/source/i18n/decContext.h @@ -20,7 +20,7 @@ /* ------------------------------------------------------------------ */ /* Modified version, for use from within ICU. - * Renamed public functions, to avoid an unwanted export of the + * Renamed public functions, to avoid an unwanted export of the * standard names from the ICU library. * * Use ICU's uprv_malloc() and uprv_free() diff --git a/deps/icu-small/source/i18n/decNumber.cpp b/deps/icu-small/source/i18n/decNumber.cpp index 2f9ffafd571062..71477d8202cbed 100644 --- a/deps/icu-small/source/i18n/decNumber.cpp +++ b/deps/icu-small/source/i18n/decNumber.cpp @@ -20,7 +20,7 @@ /* ------------------------------------------------------------------ */ /* Modified version, for use from within ICU. - * Renamed public functions, to avoid an unwanted export of the + * Renamed public functions, to avoid an unwanted export of the * standard names from the ICU library. * * Use ICU's uprv_malloc() and uprv_free() @@ -3776,7 +3776,7 @@ static void decToString(const decNumber *dn, char *string, Flag eng) { /* Finally add the E-part, if needed. It will never be 0, has a base maximum and minimum of +999999999 through -999999999, but - could range down to -1999999998 for anormal numbers */ + could range down to -1999999998 for abnormal numbers */ if (e!=0) { Flag had=0; /* 1=had non-zero */ *c='E'; c++; @@ -3831,7 +3831,7 @@ static void decToString(const decNumber *dn, char *string, Flag eng) { /* */ /* Addition, especially x=x+1, is speed-critical. */ /* The static buffer is larger than might be expected to allow for */ -/* calls from higher-level funtions (notable exp). */ +/* calls from higher-level functions (notable exp). */ /* ------------------------------------------------------------------ */ static decNumber * decAddOp(decNumber *res, const decNumber *lhs, const decNumber *rhs, decContext *set, @@ -4247,7 +4247,7 @@ static decNumber * decAddOp(decNumber *res, const decNumber *lhs, /* long subtractions. These are acc and var1 respectively. */ /* var1 is a copy of the lhs coefficient, var2 is the rhs coefficient.*/ /* The static buffers may be larger than might be expected to allow */ -/* for calls from higher-level funtions (notable exp). */ +/* for calls from higher-level functions (notable exp). */ /* ------------------------------------------------------------------ */ static decNumber * decDivideOp(decNumber *res, const decNumber *lhs, const decNumber *rhs, @@ -5616,7 +5616,7 @@ static const uShort LNnn[90]={9016, 8652, 8316, 8008, 7724, 7456, 7208, /* would certainly save at least one if it were made ten times */ /* bigger, too (for truncated fractions 0.100 through 0.999). */ /* However, for most practical evaluations, at least four or five */ -/* iterations will be neede -- so this would only speed up by */ +/* iterations will be needed -- so this would only speed up by */ /* 20-25% and that probably does not justify increasing the table */ /* size. */ /* */ diff --git a/deps/icu-small/source/i18n/decNumber.h b/deps/icu-small/source/i18n/decNumber.h index 7f5091d275311c..ddcc50e2efe770 100644 --- a/deps/icu-small/source/i18n/decNumber.h +++ b/deps/icu-small/source/i18n/decNumber.h @@ -20,7 +20,7 @@ /* ------------------------------------------------------------------ */ /* Modified version, for use from within ICU. - * Renamed public functions, to avoid an unwanted export of the + * Renamed public functions, to avoid an unwanted export of the * standard names from the ICU library. * * Use ICU's uprv_malloc() and uprv_free() diff --git a/deps/icu-small/source/i18n/decimfmt.cpp b/deps/icu-small/source/i18n/decimfmt.cpp index 275fe888a1b498..bca33366792705 100644 --- a/deps/icu-small/source/i18n/decimfmt.cpp +++ b/deps/icu-small/source/i18n/decimfmt.cpp @@ -137,7 +137,7 @@ DecimalFormat::setAttribute(UNumberFormatAttribute attr, int32_t newValue, UErro if (U_FAILURE(status)) { return *this; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return *this; } @@ -269,9 +269,9 @@ DecimalFormat::setAttribute(UNumberFormatAttribute attr, int32_t newValue, UErro int32_t DecimalFormat::getAttribute(UNumberFormatAttribute attr, UErrorCode& status) const { if (U_FAILURE(status)) { return -1; } - + if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return -1; } @@ -439,7 +439,7 @@ DecimalFormat::DecimalFormat(const DecimalFormat& source) : NumberFormat(source) return; // no way to report an error. } UErrorCode status = U_ZERO_ERROR; - fields->symbols.adoptInsteadAndCheckErrorCode(new DecimalFormatSymbols(*source.fields->symbols), status); + fields->symbols.adoptInsteadAndCheckErrorCode(new DecimalFormatSymbols(*source.getDecimalFormatSymbols()), status); // In order to simplify error handling logic in the various getters/setters/etc, we do not allow // any partially populated DecimalFormatFields object. We must have a fully complete fields object // or else we set it to nullptr. @@ -463,7 +463,7 @@ DecimalFormat& DecimalFormat::operator=(const DecimalFormat& rhs) { fields->properties = rhs.fields->properties; fields->exportedProperties.clear(); UErrorCode status = U_ZERO_ERROR; - LocalPointer dfs(new DecimalFormatSymbols(*rhs.fields->symbols), status); + LocalPointer dfs(new DecimalFormatSymbols(*rhs.getDecimalFormatSymbols()), status); if (U_FAILURE(status)) { // We failed to allocate DecimalFormatSymbols, release fields and its members. // We must have a fully complete fields object, we cannot have partially populated members. @@ -497,7 +497,7 @@ DecimalFormat* DecimalFormat::clone() const { return nullptr; } -UBool DecimalFormat::operator==(const Format& other) const { +bool DecimalFormat::operator==(const Format& other) const { auto* otherDF = dynamic_cast(&other); if (otherDF == nullptr) { return false; @@ -507,7 +507,7 @@ UBool DecimalFormat::operator==(const Format& other) const { if (fields == nullptr || otherDF->fields == nullptr) { return false; } - return fields->properties == otherDF->fields->properties && *fields->symbols == *otherDF->fields->symbols; + return fields->properties == otherDF->fields->properties && *getDecimalFormatSymbols() == *otherDF->getDecimalFormatSymbols(); } UnicodeString& DecimalFormat::format(double number, UnicodeString& appendTo, FieldPosition& pos) const { @@ -534,7 +534,7 @@ UnicodeString& DecimalFormat::format(double number, UnicodeString& appendTo, Fie return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -558,7 +558,7 @@ DecimalFormat::format(double number, UnicodeString& appendTo, FieldPositionItera return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -614,7 +614,7 @@ UnicodeString& DecimalFormat::format(int64_t number, UnicodeString& appendTo, Fi return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -638,7 +638,7 @@ DecimalFormat::format(int64_t number, UnicodeString& appendTo, FieldPositionIter return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -662,7 +662,7 @@ DecimalFormat::format(StringPiece number, UnicodeString& appendTo, FieldPosition return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -682,7 +682,7 @@ UnicodeString& DecimalFormat::format(const DecimalQuantity& number, UnicodeStrin return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -703,7 +703,7 @@ DecimalFormat::format(const DecimalQuantity& number, UnicodeString& appendTo, Fi return appendTo; // don't overwrite status if it's already a failure. } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; appendTo.setToBogus(); return appendTo; @@ -794,7 +794,11 @@ const DecimalFormatSymbols* DecimalFormat::getDecimalFormatSymbols(void) const { if (fields == nullptr) { return nullptr; } - return fields->symbols.getAlias(); + if (!fields->symbols.isNull()) { + return fields->symbols.getAlias(); + } else { + return fields->formatter.getDecimalFormatSymbols(); + } } void DecimalFormat::adoptDecimalFormatSymbols(DecimalFormatSymbols* symbolsToAdopt) { @@ -1073,7 +1077,7 @@ void DecimalFormat::setFormatWidth(int32_t width) { UnicodeString DecimalFormat::getPadCharacterString() const { if (fields == nullptr || fields->properties.padString.isBogus()) { // Readonly-alias the static string kFallbackPaddingString - return {TRUE, kFallbackPaddingString, -1}; + return {true, kFallbackPaddingString, -1}; } else { return fields->properties.padString; } @@ -1304,7 +1308,7 @@ void DecimalFormat::setFormatFailIfMoreThanMaxDigits(UBool value) { UnicodeString& DecimalFormat::toPattern(UnicodeString& result) const { if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. result.setToBogus(); return result; } @@ -1318,6 +1322,7 @@ UnicodeString& DecimalFormat::toPattern(UnicodeString& result) const { !tprops.currency.isNull() || !tprops.currencyPluralInfo.fPtr.isNull() || !tprops.currencyUsage.isNull() || + tprops.currencyAsDecimal || AffixUtils::hasCurrencySymbols(tprops.positivePrefixPattern, localStatus) || AffixUtils::hasCurrencySymbols(tprops.positiveSuffixPattern, localStatus) || AffixUtils::hasCurrencySymbols(tprops.negativePrefixPattern, localStatus) || @@ -1333,13 +1338,13 @@ UnicodeString& DecimalFormat::toPattern(UnicodeString& result) const { UnicodeString& DecimalFormat::toLocalizedPattern(UnicodeString& result) const { if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. result.setToBogus(); return result; } ErrorCode localStatus; result = toPattern(result); - result = PatternStringUtils::convertLocalized(result, *fields->symbols, true, localStatus); + result = PatternStringUtils::convertLocalized(result, *getDecimalFormatSymbols(), true, localStatus); return result; } @@ -1352,7 +1357,7 @@ void DecimalFormat::applyPattern(const UnicodeString& pattern, UErrorCode& statu // don't overwrite status if it's already a failure. if (U_FAILURE(status)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return; } @@ -1370,12 +1375,12 @@ void DecimalFormat::applyLocalizedPattern(const UnicodeString& localizedPattern, // don't overwrite status if it's already a failure. if (U_FAILURE(status)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return; } UnicodeString pattern = PatternStringUtils::convertLocalized( - localizedPattern, *fields->symbols, false, status); + localizedPattern, *getDecimalFormatSymbols(), false, status); applyPattern(pattern, status); } @@ -1480,12 +1485,12 @@ UBool DecimalFormat::areSignificantDigitsUsed() const { } else { dfp = &fields->properties; } - return dfp->minimumSignificantDigits != -1 || dfp->maximumSignificantDigits != -1; + return dfp->minimumSignificantDigits != -1 || dfp->maximumSignificantDigits != -1; } void DecimalFormat::setSignificantDigitsUsed(UBool useSignificantDigits) { if (fields == nullptr) { return; } - + // These are the default values from the old implementation. if (useSignificantDigits) { if (fields->properties.minimumSignificantDigits != -1 || @@ -1509,7 +1514,7 @@ void DecimalFormat::setCurrency(const char16_t* theCurrency, UErrorCode& ec) { // don't overwrite ec if it's already a failure. if (U_FAILURE(ec)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. ec = U_MEMORY_ALLOCATION_ERROR; return; } @@ -1521,7 +1526,7 @@ void DecimalFormat::setCurrency(const char16_t* theCurrency, UErrorCode& ec) { NumberFormat::setCurrency(theCurrency, ec); // to set field for compatibility fields->properties.currency = currencyUnit; // In Java, the DecimalFormatSymbols is mutable. Why not in C++? - LocalPointer newSymbols(new DecimalFormatSymbols(*fields->symbols), ec); + LocalPointer newSymbols(new DecimalFormatSymbols(*getDecimalFormatSymbols()), ec); newSymbols->setCurrency(currencyUnit.getISOCurrency(), ec); fields->symbols.adoptInsteadAndCheckErrorCode(newSymbols.orphan(), ec); touch(ec); @@ -1536,7 +1541,7 @@ void DecimalFormat::setCurrencyUsage(UCurrencyUsage newUsage, UErrorCode* ec) { // don't overwrite ec if it's already a failure. if (U_FAILURE(*ec)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. *ec = U_MEMORY_ALLOCATION_ERROR; return; } @@ -1561,7 +1566,7 @@ DecimalFormat::formatToDecimalQuantity(double number, DecimalQuantity& output, U // don't overwrite status if it's already a failure. if (U_FAILURE(status)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return; } @@ -1573,7 +1578,7 @@ void DecimalFormat::formatToDecimalQuantity(const Formattable& number, DecimalQu // don't overwrite status if it's already a failure. if (U_FAILURE(status)) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return; } @@ -1587,7 +1592,7 @@ const number::LocalizedNumberFormatter* DecimalFormat::toNumberFormatter(UErrorC // We sometimes need to return nullptr here (see ICU-20380) if (U_FAILURE(status)) { return nullptr; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. status = U_MEMORY_ALLOCATION_ERROR; return nullptr; } @@ -1600,7 +1605,7 @@ void DecimalFormat::touch(UErrorCode& status) { return; } if (fields == nullptr) { - // We only get here if an OOM error happend during construction, copy construction, assignment, or modification. + // We only get here if an OOM error happened during construction, copy construction, assignment, or modification. // For regular construction, the caller should have checked the status variable for errors. // For copy construction, there is unfortunately nothing to report the error, so we need to guard against // this possible bad state here and set the status to an error. @@ -1608,20 +1613,26 @@ void DecimalFormat::touch(UErrorCode& status) { return; } - // In C++, fields->symbols is the source of truth for the locale. - Locale locale = fields->symbols->getLocale(); - + // In C++, fields->symbols (or, if it's null, the DecimalFormatSymbols owned by the underlying LocalizedNumberFormatter) + // is the source of truth for the locale. + const DecimalFormatSymbols* symbols = getDecimalFormatSymbols(); + Locale locale = symbols->getLocale(); + // Note: The formatter is relatively cheap to create, and we need it to populate fields->exportedProperties, // so automatically recompute it here. The parser is a bit more expensive and is not needed until the // parse method is called, so defer that until needed. // TODO: Only update the pieces that changed instead of re-computing the whole formatter? - + // Since memory has already been allocated for the formatter, we can move assign a stack-allocated object // and don't need to call new. (Which is slower and could possibly fail). + // [Note that "symbols" above might point to the DecimalFormatSymbols object owned by fields->formatter. + // That's okay, because NumberPropertyMapper::create() will clone it before fields->formatter's assignment + // operator deletes it. But it does mean that "symbols" can't be counted on to be good after this line.] fields->formatter = NumberPropertyMapper::create( - fields->properties, *fields->symbols, fields->warehouse, fields->exportedProperties, status + fields->properties, *symbols, fields->warehouse, fields->exportedProperties, status ).locale(locale); - + fields->symbols.adoptInstead(nullptr); // the fields->symbols property is only temporary, until we can copy it into a new LocalizedNumberFormatter + // Do this after fields->exportedProperties are set up setupFastFormat(); @@ -1668,7 +1679,7 @@ const numparse::impl::NumberParserImpl* DecimalFormat::getParser(UErrorCode& sta } // Try computing the parser on our own - auto* temp = NumberParserImpl::createParserFromProperties(fields->properties, *fields->symbols, false, status); + auto* temp = NumberParserImpl::createParserFromProperties(fields->properties, *getDecimalFormatSymbols(), false, status); if (U_FAILURE(status)) { return nullptr; } @@ -1701,7 +1712,7 @@ const numparse::impl::NumberParserImpl* DecimalFormat::getCurrencyParser(UErrorC } // Try computing the parser on our own - auto* temp = NumberParserImpl::createParserFromProperties(fields->properties, *fields->symbols, true, status); + auto* temp = NumberParserImpl::createParserFromProperties(fields->properties, *getDecimalFormatSymbols(), true, status); if (temp == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; // although we may still dereference, call sites should be guarded @@ -1775,11 +1786,13 @@ void DecimalFormat::setupFastFormat() { return; } + const DecimalFormatSymbols* symbols = getDecimalFormatSymbols(); + // Grouping (secondary grouping is forbidden in equalsDefaultExceptFastFormat): bool groupingUsed = fields->properties.groupingUsed; int32_t groupingSize = fields->properties.groupingSize; bool unusualGroupingSize = groupingSize > 0 && groupingSize != 3; - const UnicodeString& groupingString = fields->symbols->getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol); + const UnicodeString& groupingString = symbols->getConstSymbol(DecimalFormatSymbols::kGroupingSeparatorSymbol); if (groupingUsed && (unusualGroupingSize || groupingString.length() != 1)) { trace("no fast format: grouping\n"); fields->canUseFastFormat = false; @@ -1805,8 +1818,8 @@ void DecimalFormat::setupFastFormat() { } // Other symbols: - const UnicodeString& minusSignString = fields->symbols->getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol); - UChar32 codePointZero = fields->symbols->getCodePointZero(); + const UnicodeString& minusSignString = symbols->getConstSymbol(DecimalFormatSymbols::kMinusSignSymbol); + UChar32 codePointZero = symbols->getCodePointZero(); if (minusSignString.length() != 1 || U16_LENGTH(codePointZero) != 1) { trace("no fast format: symbols\n"); fields->canUseFastFormat = false; diff --git a/deps/icu-small/source/i18n/double-conversion-bignum-dtoa.cpp b/deps/icu-small/source/i18n/double-conversion-bignum-dtoa.cpp index 372e17dc7bd638..638e9cb0469750 100644 --- a/deps/icu-small/source/i18n/double-conversion-bignum-dtoa.cpp +++ b/deps/icu-small/source/i18n/double-conversion-bignum-dtoa.cpp @@ -290,7 +290,7 @@ static void GenerateShortestDigits(Bignum* numerator, Bignum* denominator, // Let v = numerator / denominator < 10. // Then we generate 'count' digits of d = x.xxxxx... (without the decimal point) -// from left to right. Once 'count' digits have been produced we decide wether +// from left to right. Once 'count' digits have been produced we decide whether // to round up or down. Remainders of exactly .5 round upwards. Numbers such // as 9.999999 propagate a carry all the way, and change the // exponent (decimal_point), when rounding upwards. diff --git a/deps/icu-small/source/i18n/double-conversion-double-to-string.h b/deps/icu-small/source/i18n/double-conversion-double-to-string.h index 73ff48f109ecd5..1fae2e87715a45 100644 --- a/deps/icu-small/source/i18n/double-conversion-double-to-string.h +++ b/deps/icu-small/source/i18n/double-conversion-double-to-string.h @@ -138,7 +138,7 @@ class DoubleToStringConverter { // Example with max_leading_padding_zeroes_in_precision_mode = 6. // ToPrecision(0.0000012345, 2) -> "0.0000012" // ToPrecision(0.00000012345, 2) -> "1.2e-7" - // Similarily the converter may add up to + // Similarly the converter may add up to // max_trailing_padding_zeroes_in_precision_mode in precision mode to avoid // returning an exponential representation. A zero added by the // EMIT_TRAILING_ZERO_AFTER_POINT flag is counted for this limit. @@ -196,7 +196,7 @@ class DoubleToStringConverter { // Example with decimal_in_shortest_low = -6, // decimal_in_shortest_high = 21, // EMIT_POSITIVE_EXPONENT_SIGN activated, and - // EMIT_TRAILING_DECIMAL_POINT deactived: + // EMIT_TRAILING_DECIMAL_POINT deactivated: // ToShortest(0.000001) -> "0.000001" // ToShortest(0.0000001) -> "1e-7" // ToShortest(111111111111111111111.0) -> "111111111111111110000" @@ -320,7 +320,7 @@ class DoubleToStringConverter { // Example with max_leading_padding_zeroes_in_precision_mode = 6. // ToPrecision(0.0000012345, 2) -> "0.0000012" // ToPrecision(0.00000012345, 2) -> "1.2e-7" - // Similarily the converter may add up to + // Similarly the converter may add up to // max_trailing_padding_zeroes_in_precision_mode in precision mode to avoid // returning an exponential representation. A zero added by the // EMIT_TRAILING_ZERO_AFTER_POINT flag is counted for this limit. diff --git a/deps/icu-small/source/i18n/double-conversion-fast-dtoa.cpp b/deps/icu-small/source/i18n/double-conversion-fast-dtoa.cpp index 87a3d536bf111f..06e4cf12559da0 100644 --- a/deps/icu-small/source/i18n/double-conversion-fast-dtoa.cpp +++ b/deps/icu-small/source/i18n/double-conversion-fast-dtoa.cpp @@ -579,7 +579,7 @@ static bool Grisu3(double v, // the difference between w and boundary_minus/plus (a power of 2) and to // compute scaled_boundary_minus/plus by subtracting/adding from // scaled_w. However the code becomes much less readable and the speed - // enhancements are not terriffic. + // enhancements are not terrific. DiyFp scaled_boundary_minus = DiyFp::Times(boundary_minus, ten_mk); DiyFp scaled_boundary_plus = DiyFp::Times(boundary_plus, ten_mk); @@ -587,7 +587,7 @@ static bool Grisu3(double v, // v == (double) (scaled_w * 10^-mk). // Set decimal_exponent == -mk and pass it to DigitGen. If scaled_w is not an // integer than it will be updated. For instance if scaled_w == 1.23 then - // the buffer will be filled with "123" und the decimal_exponent will be + // the buffer will be filled with "123" and the decimal_exponent will be // decreased by 2. int kappa; bool result = DigitGen(scaled_boundary_minus, scaled_w, scaled_boundary_plus, diff --git a/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp b/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp index 3275b9e552f66b..c72bb26277435a 100644 --- a/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp +++ b/deps/icu-small/source/i18n/double-conversion-string-to-double.cpp @@ -800,6 +800,42 @@ float StringToDoubleConverter::StringToFloat( processed_characters_count)); } + +template<> +double StringToDoubleConverter::StringTo( + const char* buffer, + int length, + int* processed_characters_count) const { + return StringToDouble(buffer, length, processed_characters_count); +} + + +template<> +float StringToDoubleConverter::StringTo( + const char* buffer, + int length, + int* processed_characters_count) const { + return StringToFloat(buffer, length, processed_characters_count); +} + + +template<> +double StringToDoubleConverter::StringTo( + const uc16* buffer, + int length, + int* processed_characters_count) const { + return StringToDouble(buffer, length, processed_characters_count); +} + + +template<> +float StringToDoubleConverter::StringTo( + const uc16* buffer, + int length, + int* processed_characters_count) const { + return StringToFloat(buffer, length, processed_characters_count); +} + } // namespace double_conversion // ICU PATCH: Close ICU namespace diff --git a/deps/icu-small/source/i18n/double-conversion-string-to-double.h b/deps/icu-small/source/i18n/double-conversion-string-to-double.h index 2eb0c1f8979838..9f6f5307111ac5 100644 --- a/deps/icu-small/source/i18n/double-conversion-string-to-double.h +++ b/deps/icu-small/source/i18n/double-conversion-string-to-double.h @@ -100,7 +100,7 @@ class StringToDoubleConverter { // This *must* start with "0x" and separate the exponent with "p". // Examples: 0x1.2p3 == 9.0 // 0x10.1p0 == 16.0625 - // ALLOW_HEX and ALLOW_HEX_FLOATS are indendent. + // ALLOW_HEX and ALLOW_HEX_FLOATS are indented. // // empty_string_value is returned when an empty string is given as input. // If ALLOW_LEADING_SPACES or ALLOW_TRAILING_SPACES are set, then a string @@ -218,6 +218,18 @@ class StringToDoubleConverter { int length, int* processed_characters_count) const; + // Same as StringToDouble for T = double, and StringToFloat for T = float. + template + T StringTo(const char* buffer, + int length, + int* processed_characters_count) const; + + // Same as StringTo above but for 16 bit characters. + template + T StringTo(const uc16* buffer, + int length, + int* processed_characters_count) const; + private: const int flags_; const double empty_string_value_; diff --git a/deps/icu-small/source/i18n/double-conversion-strtod.cpp b/deps/icu-small/source/i18n/double-conversion-strtod.cpp index 9eeaa2e40fc73c..eea8203281a26d 100644 --- a/deps/icu-small/source/i18n/double-conversion-strtod.cpp +++ b/deps/icu-small/source/i18n/double-conversion-strtod.cpp @@ -566,7 +566,7 @@ float StrtofTrimmed(Vector trimmed, int exponent) { // low-precision (3 digits): // when read from input: 123 // when rounded from high precision: 124. - // To do this we simply look at the neigbors of the correct result and see + // To do this we simply look at the neighbors of the correct result and see // if they would round to the same float. If the guess is not correct we have // to look at four values (since two different doubles could be the correct // double). diff --git a/deps/icu-small/source/i18n/double-conversion-utils.h b/deps/icu-small/source/i18n/double-conversion-utils.h index c937463647135b..7f23e0a8250d2b 100644 --- a/deps/icu-small/source/i18n/double-conversion-utils.h +++ b/deps/icu-small/source/i18n/double-conversion-utils.h @@ -44,7 +44,7 @@ #include "uassert.h" #ifndef DOUBLE_CONVERSION_ASSERT #define DOUBLE_CONVERSION_ASSERT(condition) \ - U_ASSERT(condition); + U_ASSERT(condition) #endif #ifndef DOUBLE_CONVERSION_UNIMPLEMENTED #define DOUBLE_CONVERSION_UNIMPLEMENTED() (abort()) @@ -118,6 +118,7 @@ int main(int argc, char** argv) { defined(__ARMEL__) || defined(__avr32__) || defined(_M_ARM) || defined(_M_ARM64) || \ defined(__hppa__) || defined(__ia64__) || \ defined(__mips__) || \ + defined(__loongarch__) || \ defined(__nios2__) || defined(__ghs) || \ defined(__powerpc__) || defined(__ppc__) || defined(__ppc64__) || \ defined(_POWER) || defined(_ARCH_PPC) || defined(_ARCH_PPC64) || \ diff --git a/deps/icu-small/source/i18n/dtfmtsym.cpp b/deps/icu-small/source/i18n/dtfmtsym.cpp index 5a54e9ebbd4493..ab5f2b612c1f0e 100644 --- a/deps/icu-small/source/i18n/dtfmtsym.cpp +++ b/deps/icu-small/source/i18n/dtfmtsym.cpp @@ -392,8 +392,10 @@ DateFormatSymbols::copyData(const DateFormatSymbols& other) { fTimeSeparator.fastCopyFrom(other.fTimeSeparator); // fastCopyFrom() - see assignArray comments assignArray(fQuarters, fQuartersCount, other.fQuarters, other.fQuartersCount); assignArray(fShortQuarters, fShortQuartersCount, other.fShortQuarters, other.fShortQuartersCount); + assignArray(fNarrowQuarters, fNarrowQuartersCount, other.fNarrowQuarters, other.fNarrowQuartersCount); assignArray(fStandaloneQuarters, fStandaloneQuartersCount, other.fStandaloneQuarters, other.fStandaloneQuartersCount); assignArray(fStandaloneShortQuarters, fStandaloneShortQuartersCount, other.fStandaloneShortQuarters, other.fStandaloneShortQuartersCount); + assignArray(fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount, other.fStandaloneNarrowQuarters, other.fStandaloneNarrowQuartersCount); assignArray(fWideDayPeriods, fWideDayPeriodsCount, other.fWideDayPeriods, other.fWideDayPeriodsCount); assignArray(fNarrowDayPeriods, fNarrowDayPeriodsCount, @@ -485,8 +487,10 @@ void DateFormatSymbols::dispose() delete[] fNarrowAmPms; delete[] fQuarters; delete[] fShortQuarters; + delete[] fNarrowQuarters; delete[] fStandaloneQuarters; delete[] fStandaloneShortQuarters; + delete[] fStandaloneNarrowQuarters; delete[] fLeapMonthPatterns; delete[] fShortYearNames; delete[] fShortZodiacNames; @@ -535,12 +539,12 @@ DateFormatSymbols::arrayCompare(const UnicodeString* array1, return TRUE; } -UBool +bool DateFormatSymbols::operator==(const DateFormatSymbols& other) const { // First do cheap comparisons if (this == &other) { - return TRUE; + return true; } if (fErasCount == other.fErasCount && fEraNamesCount == other.fEraNamesCount && @@ -563,8 +567,10 @@ DateFormatSymbols::operator==(const DateFormatSymbols& other) const fNarrowAmPmsCount == other.fNarrowAmPmsCount && fQuartersCount == other.fQuartersCount && fShortQuartersCount == other.fShortQuartersCount && + fNarrowQuartersCount == other.fNarrowQuartersCount && fStandaloneQuartersCount == other.fStandaloneQuartersCount && fStandaloneShortQuartersCount == other.fStandaloneShortQuartersCount && + fStandaloneNarrowQuartersCount == other.fStandaloneNarrowQuartersCount && fLeapMonthPatternsCount == other.fLeapMonthPatternsCount && fShortYearNamesCount == other.fShortYearNamesCount && fShortZodiacNamesCount == other.fShortZodiacNamesCount && @@ -599,8 +605,10 @@ DateFormatSymbols::operator==(const DateFormatSymbols& other) const fTimeSeparator == other.fTimeSeparator && arrayCompare(fQuarters, other.fQuarters, fQuartersCount) && arrayCompare(fShortQuarters, other.fShortQuarters, fShortQuartersCount) && + arrayCompare(fNarrowQuarters, other.fNarrowQuarters, fNarrowQuartersCount) && arrayCompare(fStandaloneQuarters, other.fStandaloneQuarters, fStandaloneQuartersCount) && arrayCompare(fStandaloneShortQuarters, other.fStandaloneShortQuarters, fStandaloneShortQuartersCount) && + arrayCompare(fStandaloneNarrowQuarters, other.fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount) && arrayCompare(fLeapMonthPatterns, other.fLeapMonthPatterns, fLeapMonthPatternsCount) && arrayCompare(fShortYearNames, other.fShortYearNames, fShortYearNamesCount) && arrayCompare(fShortZodiacNames, other.fShortZodiacNames, fShortZodiacNamesCount) && @@ -617,22 +625,22 @@ DateFormatSymbols::operator==(const DateFormatSymbols& other) const // Compare the contents of fZoneStrings if (fZoneStrings == NULL && other.fZoneStrings == NULL) { if (fZSFLocale == other.fZSFLocale) { - return TRUE; + return true; } } else if (fZoneStrings != NULL && other.fZoneStrings != NULL) { if (fZoneStringsRowCount == other.fZoneStringsRowCount && fZoneStringsColCount == other.fZoneStringsColCount) { - UBool cmpres = TRUE; + bool cmpres = true; for (int32_t i = 0; (i < fZoneStringsRowCount) && cmpres; i++) { cmpres = arrayCompare(fZoneStrings[i], other.fZoneStrings[i], fZoneStringsColCount); } return cmpres; } } - return FALSE; + return false; } } - return FALSE; + return false; } //------------------------------------------------------ @@ -809,8 +817,8 @@ DateFormatSymbols::getQuarters(int32_t &count, DtContextType context, DtWidthTyp returnValue = fShortQuarters; break; case NARROW : - count = 0; - returnValue = NULL; + count = fNarrowQuartersCount; + returnValue = fNarrowQuarters; break; case DT_WIDTH_COUNT : break; @@ -828,8 +836,8 @@ DateFormatSymbols::getQuarters(int32_t &count, DtContextType context, DtWidthTyp returnValue = fStandaloneShortQuarters; break; case NARROW : - count = 0; - returnValue = NULL; + count = fStandaloneNarrowQuartersCount; + returnValue = fStandaloneNarrowQuarters; break; case DT_WIDTH_COUNT : break; @@ -1178,13 +1186,11 @@ DateFormatSymbols::setQuarters(const UnicodeString* quartersArray, int32_t count fShortQuartersCount = count; break; case NARROW : - /* if (fNarrowQuarters) delete[] fNarrowQuarters; fNarrowQuarters = newUnicodeStringArray(count); uprv_arrayCopy( quartersArray,fNarrowQuarters,count); fNarrowQuartersCount = count; - */ break; default : break; @@ -1207,13 +1213,11 @@ DateFormatSymbols::setQuarters(const UnicodeString* quartersArray, int32_t count fStandaloneShortQuartersCount = count; break; case NARROW : - /* if (fStandaloneNarrowQuarters) delete[] fStandaloneNarrowQuarters; fStandaloneNarrowQuarters = newUnicodeStringArray(count); uprv_arrayCopy( quartersArray,fStandaloneNarrowQuarters,count); fStandaloneNarrowQuartersCount = count; - */ break; default : break; @@ -1498,7 +1502,7 @@ struct CalendarDataSink : public ResourceSink { Hashtable arrays; Hashtable arraySizes; Hashtable maps; - /** + /** * Whenever there are aliases, the same object will be added twice to 'map'. * To avoid double deletion, 'maps' won't take ownership of the objects. Instead, * 'mapRefs' will own them and will delete them when CalendarDataSink is deleted. @@ -1541,7 +1545,7 @@ struct CalendarDataSink : public ResourceSink { aliasPathPairs.removeAllElements(); } - virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) override { if (U_FAILURE(errorCode)) { return; } U_ASSERT(!currentCalendarType.isEmpty()); @@ -1571,7 +1575,7 @@ struct CalendarDataSink : public ResourceSink { if (U_FAILURE(errorCode)) { return; } } LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); - resourcesToVisitNext->addElement(aliasRelativePathCopy.getAlias(), errorCode); + resourcesToVisitNext->addElementX(aliasRelativePathCopy.getAlias(), errorCode); if (U_FAILURE(errorCode)) { return; } // Only release ownership after resourcesToVisitNext takes it (no error happened): aliasRelativePathCopy.orphan(); @@ -1581,12 +1585,12 @@ struct CalendarDataSink : public ResourceSink { // Register same-calendar alias if (arrays.get(aliasRelativePath) == NULL && maps.get(aliasRelativePath) == NULL) { LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); - aliasPathPairs.addElement(aliasRelativePathCopy.getAlias(), errorCode); + aliasPathPairs.addElementX(aliasRelativePathCopy.getAlias(), errorCode); if (U_FAILURE(errorCode)) { return; } // Only release ownership after aliasPathPairs takes it (no error happened): aliasRelativePathCopy.orphan(); LocalPointer keyUStringCopy(new UnicodeString(keyUString), errorCode); - aliasPathPairs.addElement(keyUStringCopy.getAlias(), errorCode); + aliasPathPairs.addElementX(keyUStringCopy.getAlias(), errorCode); if (U_FAILURE(errorCode)) { return; } // Only release ownership after aliasPathPairs takes it (no error happened): keyUStringCopy.orphan(); @@ -1757,12 +1761,12 @@ struct CalendarDataSink : public ResourceSink { if (aliasType == SAME_CALENDAR) { // Store the alias path and the current path on aliasPathPairs LocalPointer aliasRelativePathCopy(new UnicodeString(aliasRelativePath), errorCode); - aliasPathPairs.addElement(aliasRelativePathCopy.getAlias(), errorCode); + aliasPathPairs.addElementX(aliasRelativePathCopy.getAlias(), errorCode); if (U_FAILURE(errorCode)) { return; } // Only release ownership after aliasPathPairs takes it (no error happened): aliasRelativePathCopy.orphan(); LocalPointer pathCopy(new UnicodeString(path), errorCode); - aliasPathPairs.addElement(pathCopy.getAlias(), errorCode); + aliasPathPairs.addElementX(pathCopy.getAlias(), errorCode); if (U_FAILURE(errorCode)) { return; } // Only release ownership after aliasPathPairs takes it (no error happened): pathCopy.orphan(); @@ -2067,10 +2071,14 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError fQuartersCount = 0; fShortQuarters = NULL; fShortQuartersCount = 0; + fNarrowQuarters = NULL; + fNarrowQuartersCount = 0; fStandaloneQuarters = NULL; fStandaloneQuartersCount = 0; fStandaloneShortQuarters = NULL; fStandaloneShortQuartersCount = 0; + fStandaloneNarrowQuarters = NULL; + fStandaloneNarrowQuartersCount = 0; fLeapMonthPatterns = NULL; fLeapMonthPatternsCount = 0; fShortYearNames = NULL; @@ -2103,7 +2111,7 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError if (U_FAILURE(status)) return; - // Create a CalendarDataSink to process this data and the resouce bundles + // Create a CalendarDataSink to process this data and the resource bundles CalendarDataSink calendarSink(status); UResourceBundle *rb = ures_open(NULL, locale.getBaseName(), &status); UResourceBundle *cb = ures_getByKey(rb, gCalendarTag, NULL, &status); @@ -2374,6 +2382,16 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError assignArray(fStandaloneShortQuarters, fStandaloneShortQuartersCount, fShortQuarters, fShortQuartersCount); } + // unlike the fields above, narrow format quarters fall back on narrow standalone quarters + initField(&fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesStandaloneTag, gNamesNarrowTag, status), status); + initField(&fNarrowQuarters, fNarrowQuartersCount, calendarSink, + buildResourcePath(path, gQuartersTag, gNamesFormatTag, gNamesNarrowTag, status), status); + if(status == U_MISSING_RESOURCE_ERROR) { + status = U_ZERO_ERROR; + assignArray(fNarrowQuarters, fNarrowQuartersCount, fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount); + } + // ICU 3.8 or later version no longer uses localized date-time pattern characters by default (ticket#5597) /* // fastCopyFrom()/setTo() - see assignArray comments @@ -2482,8 +2500,10 @@ DateFormatSymbols::initializeData(const Locale& locale, const char *type, UError initField(&fNarrowAmPms, fNarrowAmPmsCount, (const UChar *)gLastResortAmPmMarkers, kAmPmNum, kAmPmLen, status); initField(&fQuarters, fQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); initField(&fShortQuarters, fShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); + initField(&fNarrowQuarters, fNarrowQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); initField(&fStandaloneQuarters, fStandaloneQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); initField(&fStandaloneShortQuarters, fStandaloneShortQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); + initField(&fStandaloneNarrowQuarters, fStandaloneNarrowQuartersCount, (const UChar *)gLastResortQuarters, kQuarterNum, kQuarterLen, status); fLocalPatternChars.setTo(TRUE, gPatternChars, PATTERN_CHARS_LEN); } } diff --git a/deps/icu-small/source/i18n/dtitv_impl.h b/deps/icu-small/source/i18n/dtitv_impl.h index 9a161ea435d553..6fc16bb3e08d3c 100644 --- a/deps/icu-small/source/i18n/dtitv_impl.h +++ b/deps/icu-small/source/i18n/dtitv_impl.h @@ -19,7 +19,7 @@ * \file * \brief C++ API: Defines macros for interval format implementation */ - + #if !UCONFIG_NO_FORMATTING #include "unicode/unistr.h" @@ -95,5 +95,5 @@ #endif /* #if !UCONFIG_NO_FORMATTING */ -#endif +#endif //eof diff --git a/deps/icu-small/source/i18n/dtitvfmt.cpp b/deps/icu-small/source/i18n/dtitvfmt.cpp index 18253156ea7e0e..298fb62be0cc22 100644 --- a/deps/icu-small/source/i18n/dtitvfmt.cpp +++ b/deps/icu-small/source/i18n/dtitvfmt.cpp @@ -229,37 +229,37 @@ DateIntervalFormat::clone() const { } -UBool +bool DateIntervalFormat::operator==(const Format& other) const { - if (typeid(*this) != typeid(other)) {return FALSE;} + if (typeid(*this) != typeid(other)) {return false;} const DateIntervalFormat* fmt = (DateIntervalFormat*)&other; - if (this == fmt) {return TRUE;} - if (!Format::operator==(other)) {return FALSE;} - if ((fInfo != fmt->fInfo) && (fInfo == nullptr || fmt->fInfo == nullptr)) {return FALSE;} - if (fInfo && fmt->fInfo && (*fInfo != *fmt->fInfo )) {return FALSE;} + if (this == fmt) {return true;} + if (!Format::operator==(other)) {return false;} + if ((fInfo != fmt->fInfo) && (fInfo == nullptr || fmt->fInfo == nullptr)) {return false;} + if (fInfo && fmt->fInfo && (*fInfo != *fmt->fInfo )) {return false;} { Mutex lock(&gFormatterMutex); - if (fDateFormat != fmt->fDateFormat && (fDateFormat == nullptr || fmt->fDateFormat == nullptr)) {return FALSE;} - if (fDateFormat && fmt->fDateFormat && (*fDateFormat != *fmt->fDateFormat)) {return FALSE;} + if (fDateFormat != fmt->fDateFormat && (fDateFormat == nullptr || fmt->fDateFormat == nullptr)) {return false;} + if (fDateFormat && fmt->fDateFormat && (*fDateFormat != *fmt->fDateFormat)) {return false;} } // note: fFromCalendar and fToCalendar hold no persistent state, and therefore do not participate in operator ==. // fDateFormat has the primary calendar for the DateIntervalFormat. - if (fSkeleton != fmt->fSkeleton) {return FALSE;} - if (fDatePattern != fmt->fDatePattern && (fDatePattern == nullptr || fmt->fDatePattern == nullptr)) {return FALSE;} - if (fDatePattern && fmt->fDatePattern && (*fDatePattern != *fmt->fDatePattern)) {return FALSE;} - if (fTimePattern != fmt->fTimePattern && (fTimePattern == nullptr || fmt->fTimePattern == nullptr)) {return FALSE;} - if (fTimePattern && fmt->fTimePattern && (*fTimePattern != *fmt->fTimePattern)) {return FALSE;} - if (fDateTimeFormat != fmt->fDateTimeFormat && (fDateTimeFormat == nullptr || fmt->fDateTimeFormat == nullptr)) {return FALSE;} - if (fDateTimeFormat && fmt->fDateTimeFormat && (*fDateTimeFormat != *fmt->fDateTimeFormat)) {return FALSE;} - if (fLocale != fmt->fLocale) {return FALSE;} + if (fSkeleton != fmt->fSkeleton) {return false;} + if (fDatePattern != fmt->fDatePattern && (fDatePattern == nullptr || fmt->fDatePattern == nullptr)) {return false;} + if (fDatePattern && fmt->fDatePattern && (*fDatePattern != *fmt->fDatePattern)) {return false;} + if (fTimePattern != fmt->fTimePattern && (fTimePattern == nullptr || fmt->fTimePattern == nullptr)) {return false;} + if (fTimePattern && fmt->fTimePattern && (*fTimePattern != *fmt->fTimePattern)) {return false;} + if (fDateTimeFormat != fmt->fDateTimeFormat && (fDateTimeFormat == nullptr || fmt->fDateTimeFormat == nullptr)) {return false;} + if (fDateTimeFormat && fmt->fDateTimeFormat && (*fDateTimeFormat != *fmt->fDateTimeFormat)) {return false;} + if (fLocale != fmt->fLocale) {return false;} for (int32_t i = 0; i< DateIntervalInfo::kIPI_MAX_INDEX; ++i ) { - if (fIntervalPatterns[i].firstPart != fmt->fIntervalPatterns[i].firstPart) {return FALSE;} - if (fIntervalPatterns[i].secondPart != fmt->fIntervalPatterns[i].secondPart ) {return FALSE;} - if (fIntervalPatterns[i].laterDateFirst != fmt->fIntervalPatterns[i].laterDateFirst) {return FALSE;} + if (fIntervalPatterns[i].firstPart != fmt->fIntervalPatterns[i].firstPart) {return false;} + if (fIntervalPatterns[i].secondPart != fmt->fIntervalPatterns[i].secondPart ) {return false;} + if (fIntervalPatterns[i].laterDateFirst != fmt->fIntervalPatterns[i].laterDateFirst) {return false;} } - if (fCapitalizationContext != fmt->fCapitalizationContext) {return FALSE;} - return TRUE; + if (fCapitalizationContext != fmt->fCapitalizationContext) {return false;} + return true; } @@ -963,7 +963,7 @@ DateIntervalFormat::initializePattern(UErrorCode& status) { UnicodeString DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) const { UnicodeString result = skeleton; - + UChar hourMetachar = u'\0'; int32_t metacharStart = 0; int32_t metacharCount = 0; @@ -981,7 +981,7 @@ DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) c } } } - + if (hourMetachar != u'\0') { UErrorCode err = U_ZERO_ERROR; UChar hourChar = CAP_H; @@ -999,7 +999,7 @@ DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) c } convertedPattern.replace(firstQuotePos, (secondQuotePos - firstQuotePos) + 1, UnicodeString()); } - + if (convertedPattern.indexOf(LOW_H) != -1) { hourChar = LOW_H; } else if (convertedPattern.indexOf(CAP_K) != -1) { @@ -1007,14 +1007,14 @@ DateIntervalFormat::normalizeHourMetacharacters(const UnicodeString& skeleton) c } else if (convertedPattern.indexOf(LOW_K) != -1) { hourChar = LOW_K; } - + if (convertedPattern.indexOf(LOW_B) != -1) { dayPeriodChar = LOW_B; } else if (convertedPattern.indexOf(CAP_B) != -1) { dayPeriodChar = CAP_B; } } - + if (hourChar == CAP_H || hourChar == LOW_K) { result.replace(metacharStart, metacharCount, hourChar); } else { @@ -1823,20 +1823,20 @@ DateIntervalFormat::findReplaceInPattern(UnicodeString& targetString, } else { UnicodeString result; UnicodeString source = targetString; - + while (firstQuoteIndex >= 0) { int32_t secondQuoteIndex = source.indexOf(u'\'', firstQuoteIndex + 1); if (secondQuoteIndex == -1) { secondQuoteIndex = source.length() - 1; } - + UnicodeString unquotedText(source, 0, firstQuoteIndex); UnicodeString quotedText(source, firstQuoteIndex, secondQuoteIndex - firstQuoteIndex + 1); - + unquotedText.findAndReplace(strToReplace, strToReplaceWith); result += unquotedText; result += quotedText; - + source.remove(0, secondQuoteIndex + 1); firstQuoteIndex = source.indexOf(u'\''); } diff --git a/deps/icu-small/source/i18n/dtitvinf.cpp b/deps/icu-small/source/i18n/dtitvinf.cpp index 39fd44a392d694..6052894b5869cd 100644 --- a/deps/icu-small/source/i18n/dtitvinf.cpp +++ b/deps/icu-small/source/i18n/dtitvinf.cpp @@ -50,7 +50,6 @@ U_NAMESPACE_BEGIN UOBJECT_DEFINE_RTTI_IMPLEMENTATION(DateIntervalInfo) static const char gCalendarTag[]="calendar"; -static const char gGenericTag[]="generic"; static const char gGregorianTag[]="gregorian"; static const char gIntervalDateTimePatternTag[]="intervalFormats"; static const char gFallbackPatternTag[]="fallback"; @@ -165,13 +164,13 @@ DateIntervalInfo::~DateIntervalInfo() { } -UBool +bool DateIntervalInfo::operator==(const DateIntervalInfo& other) const { - UBool equal = ( + bool equal = ( fFallbackIntervalPattern == other.fFallbackIntervalPattern && fFirstDateInPtnIsLaterDate == other.fFirstDateInPtnIsLaterDate ); - if ( equal == TRUE ) { + if ( equal ) { equal = fIntervalPatterns->equals(*(other.fIntervalPatterns)); } @@ -240,7 +239,7 @@ struct DateIntervalInfo::DateIntervalSink : public ResourceSink { : dateIntervalInfo(diInfo), nextCalendarType(currentCalendarType, -1, US_INV) { } virtual ~DateIntervalSink(); - virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &errorCode) { + virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &errorCode) override { if (U_FAILURE(errorCode)) { return; } // Iterate over all the calendar entries and only pick the 'intervalFormats' table. @@ -435,23 +434,6 @@ DateIntervalInfo::initializeData(const Locale& locale, UErrorCode& status) if ( U_SUCCESS(status) ) { resStr = ures_getStringByKeyWithFallback(itvDtPtnResource, gFallbackPatternTag, &resStrLen, &status); - if ( U_FAILURE(status) ) { - // Try to find "fallback" from "generic" to work around the bug in - // ures_getByKeyWithFallback - UErrorCode localStatus = U_ZERO_ERROR; - UResourceBundle *genericCalBundle = - ures_getByKeyWithFallback(calBundle, gGenericTag, nullptr, &localStatus); - UResourceBundle *genericItvDtPtnResource = - ures_getByKeyWithFallback( - genericCalBundle, gIntervalDateTimePatternTag, nullptr, &localStatus); - resStr = ures_getStringByKeyWithFallback( - genericItvDtPtnResource, gFallbackPatternTag, &resStrLen, &localStatus); - ures_close(genericItvDtPtnResource); - ures_close(genericCalBundle); - if ( U_SUCCESS(localStatus) ) { - status = U_USING_FALLBACK_WARNING;; - } - } } if ( U_SUCCESS(status) && (resStr != nullptr)) { diff --git a/deps/icu-small/source/i18n/dtptngen.cpp b/deps/icu-small/source/i18n/dtptngen.cpp index 78273ef01e2281..6aee1750f90617 100644 --- a/deps/icu-small/source/i18n/dtptngen.cpp +++ b/deps/icu-small/source/i18n/dtptngen.cpp @@ -424,31 +424,31 @@ DateTimePatternGenerator::operator=(const DateTimePatternGenerator& other) { } -UBool +bool DateTimePatternGenerator::operator==(const DateTimePatternGenerator& other) const { if (this == &other) { - return TRUE; + return true; } if ((pLocale==other.pLocale) && (patternMap->equals(*other.patternMap)) && (dateTimeFormat==other.dateTimeFormat) && (decimal==other.decimal)) { for ( int32_t i=0 ; ioriginal.getFieldLength(typeValue); UBool patFieldIsNumeric = (row->type > 0); UBool skelFieldIsNumeric = (specifiedSkeleton->type[typeValue] > 0); @@ -1663,6 +1652,9 @@ DateTimePatternGenerator::adjustFieldTypes(const UnicodeString& pattern, && (typeValue!= UDATPG_YEAR_FIELD || reqFieldChar==CAP_Y)) ? reqFieldChar : field.charAt(0); + if (c == CAP_E && adjFieldLen < 3) { + c = LOW_E; + } if (typeValue == UDATPG_HOUR_FIELD && fDefaultHourFormatChar != 0) { // The adjustment here is required to match spec (https://www.unicode.org/reports/tr35/tr35-dates.html#dfst-hour). // It is necessary to match the hour-cycle preferred by the Locale. @@ -1953,7 +1945,7 @@ PatternMap::copyFrom(const PatternMap& other, UErrorCode& status) { if (prevElem != nullptr) { prevElem->next.adoptInstead(curElem); } else { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } prevElem = curElem; @@ -2797,10 +2789,10 @@ DTSkeletonEnumeration::DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum t } if ( !isCanonicalItem(s) ) { LocalPointer newElem(new UnicodeString(s), status); - if (U_FAILURE(status)) { + if (U_FAILURE(status)) { return; } - fSkeletons->addElement(newElem.getAlias(), status); + fSkeletons->addElementX(newElem.getAlias(), status); if (U_FAILURE(status)) { fSkeletons.adoptInstead(nullptr); return; @@ -2873,7 +2865,7 @@ DTRedundantEnumeration::add(const UnicodeString& pattern, UErrorCode& status) { if (U_FAILURE(status)) { return; } - fPatterns->addElement(newElem.getAlias(), status); + fPatterns->addElementX(newElem.getAlias(), status); if (U_FAILURE(status)) { fPatterns.adoptInstead(nullptr); return; @@ -2920,7 +2912,7 @@ DTRedundantEnumeration::~DTRedundantEnumeration() { delete s; } } - } + } } U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/dtptngen_impl.h b/deps/icu-small/source/i18n/dtptngen_impl.h index 9b9442d5787142..5caae11654bb19 100644 --- a/deps/icu-small/source/i18n/dtptngen_impl.h +++ b/deps/icu-small/source/i18n/dtptngen_impl.h @@ -134,20 +134,20 @@ class SkeletonFields : public UMemory { UnicodeString& appendTo(UnicodeString& string) const; UnicodeString& appendFieldTo(int32_t field, UnicodeString& string) const; UChar getFirstChar() const; - inline UBool operator==(const SkeletonFields& other) const; - inline UBool operator!=(const SkeletonFields& other) const; + inline bool operator==(const SkeletonFields& other) const; + inline bool operator!=(const SkeletonFields& other) const; private: int8_t chars[UDATPG_FIELD_COUNT]; int8_t lengths[UDATPG_FIELD_COUNT]; }; -inline UBool SkeletonFields::operator==(const SkeletonFields& other) const { +inline bool SkeletonFields::operator==(const SkeletonFields& other) const { return (uprv_memcmp(chars, other.chars, sizeof(chars)) == 0 && uprv_memcmp(lengths, other.lengths, sizeof(lengths)) == 0); } -inline UBool SkeletonFields::operator!=(const SkeletonFields& other) const { +inline bool SkeletonFields::operator!=(const SkeletonFields& other) const { return (! operator==(other)); } @@ -279,10 +279,10 @@ class DTSkeletonEnumeration : public StringEnumeration { DTSkeletonEnumeration(PatternMap& patternMap, dtStrEnum type, UErrorCode& status); virtual ~DTSkeletonEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: int32_t pos; UBool isCanonicalItem(const UnicodeString& item); @@ -294,10 +294,10 @@ class DTRedundantEnumeration : public StringEnumeration { DTRedundantEnumeration(); virtual ~DTRedundantEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; void add(const UnicodeString &pattern, UErrorCode& status); private: int32_t pos; diff --git a/deps/icu-small/source/i18n/dtrule.cpp b/deps/icu-small/source/i18n/dtrule.cpp index 6847f1d16e89ff..63949b63aa9d77 100644 --- a/deps/icu-small/source/i18n/dtrule.cpp +++ b/deps/icu-small/source/i18n/dtrule.cpp @@ -81,7 +81,7 @@ DateTimeRule::operator=(const DateTimeRule& right) { return *this; } -UBool +bool DateTimeRule::operator==(const DateTimeRule& that) const { return ((this == &that) || (typeid(*this) == typeid(that) && @@ -94,7 +94,7 @@ DateTimeRule::operator==(const DateTimeRule& that) const { fTimeRuleType == that.fTimeRuleType)); } -UBool +bool DateTimeRule::operator!=(const DateTimeRule& that) const { return !operator==(that); } diff --git a/deps/icu-small/source/i18n/erarules.cpp b/deps/icu-small/source/i18n/erarules.cpp index 7e21a71c333f6f..e375740bd6b10a 100644 --- a/deps/icu-small/source/i18n/erarules.cpp +++ b/deps/icu-small/source/i18n/erarules.cpp @@ -322,3 +322,5 @@ void EraRules::initCurrentEra() { U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ + + diff --git a/deps/icu-small/source/i18n/esctrn.h b/deps/icu-small/source/i18n/esctrn.h index 2a2c6dcfe9af10..a4282ea86a2c51 100644 --- a/deps/icu-small/source/i18n/esctrn.h +++ b/deps/icu-small/source/i18n/esctrn.h @@ -115,12 +115,12 @@ class EscapeTransliterator : public Transliterator { /** * Transliterator API. */ - virtual EscapeTransliterator* clone() const; + virtual EscapeTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -133,7 +133,7 @@ class EscapeTransliterator : public Transliterator { * Implements {@link Transliterator#handleTransliterate}. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; }; diff --git a/deps/icu-small/source/i18n/ethpccal.cpp b/deps/icu-small/source/i18n/ethpccal.cpp index 0b8ad0e81488c3..7c7c0ba37b7f69 100644 --- a/deps/icu-small/source/i18n/ethpccal.cpp +++ b/deps/icu-small/source/i18n/ethpccal.cpp @@ -66,7 +66,7 @@ EthiopicCalendar::setAmeteAlemEra(UBool onOff) { eraType = onOff ? AMETE_ALEM_ERA : AMETE_MIHRET_ERA; } - + UBool EthiopicCalendar::isAmeteAlemEra() const { @@ -138,7 +138,7 @@ EthiopicCalendar::handleGetLimit(UCalendarDateFields field, ELimitType limitType /** * The system maintains a static default century start date and Year. They are - * initialized the first time they are used. Once the system default century date + * initialized the first time they are used. Once the system default century date * and year are set, they do not change. */ static UDate gSystemDefaultCenturyStart = DBL_MIN; diff --git a/deps/icu-small/source/i18n/ethpccal.h b/deps/icu-small/source/i18n/ethpccal.h index 179a20e85302fb..0cc5b6c535ec3c 100644 --- a/deps/icu-small/source/i18n/ethpccal.h +++ b/deps/icu-small/source/i18n/ethpccal.h @@ -28,7 +28,7 @@ class EthiopicCalendar : public CECalendar { public: /** * Calendar type - use Amete Alem era for all the time or not - * @internal + * @internal */ enum EEraType { AMETE_MIHRET_ERA, @@ -40,68 +40,68 @@ class EthiopicCalendar : public CECalendar { * @internal */ enum EMonths { - /** + /** * Constant for መስከረም, the 1st month of the Ethiopic year. */ MESKEREM, - /** + /** * Constant for ጥቅምት, the 2nd month of the Ethiopic year. */ TEKEMT, - /** - * Constant for ኅዳር, the 3rd month of the Ethiopic year. + /** + * Constant for ኅዳር, the 3rd month of the Ethiopic year. */ HEDAR, - /** - * Constant for ታኅሣሥ, the 4th month of the Ethiopic year. + /** + * Constant for ታኅሣሥ, the 4th month of the Ethiopic year. */ TAHSAS, - /** - * Constant for ጥር, the 5th month of the Ethiopic year. + /** + * Constant for ጥር, the 5th month of the Ethiopic year. */ TER, - /** - * Constant for የካቲት, the 6th month of the Ethiopic year. + /** + * Constant for የካቲት, the 6th month of the Ethiopic year. */ YEKATIT, - /** - * Constant for መጋቢት, the 7th month of the Ethiopic year. + /** + * Constant for መጋቢት, the 7th month of the Ethiopic year. */ MEGABIT, - /** - * Constant for ሚያዝያ, the 8th month of the Ethiopic year. + /** + * Constant for ሚያዝያ, the 8th month of the Ethiopic year. */ MIAZIA, - /** - * Constant for ግንቦት, the 9th month of the Ethiopic year. + /** + * Constant for ግንቦት, the 9th month of the Ethiopic year. */ GENBOT, - /** - * Constant for ሰኔ, the 10th month of the Ethiopic year. + /** + * Constant for ሰኔ, the 10th month of the Ethiopic year. */ SENE, - /** - * Constant for ሐምሌ, the 11th month of the Ethiopic year. + /** + * Constant for ሐምሌ, the 11th month of the Ethiopic year. */ HAMLE, - /** - * Constant for ነሐሴ, the 12th month of the Ethiopic year. + /** + * Constant for ነሐሴ, the 12th month of the Ethiopic year. */ NEHASSA, - /** - * Constant for ጳጉሜን, the 13th month of the Ethiopic year. + /** + * Constant for ጳጉሜን, the 13th month of the Ethiopic year. */ PAGUMEN }; @@ -141,14 +141,14 @@ class EthiopicCalendar : public CECalendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual EthiopicCalendar* clone() const; + virtual EthiopicCalendar* clone() const override; /** * return the calendar type, "ethiopic" * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; /** * Set Alem or Mihret era. @@ -173,38 +173,38 @@ class EthiopicCalendar : public CECalendar { * Return the extended year defined by the current fields. * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Compute fields from the JD * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; /** * Calculate the limit for a specified type of limit and field * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; /** * Return the date offset from Julian * @internal */ - virtual int32_t getJDEpochOffset() const; + virtual int32_t getJDEpochOffset() const override; private: /** @@ -229,7 +229,7 @@ class EthiopicCalendar : public CECalendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -242,7 +242,7 @@ class EthiopicCalendar : public CECalendar { * @return The class ID for all objects of this class. * @internal */ - U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); + U_I18N_API static UClassID U_EXPORT2 getStaticClassID(void); #if 0 // We do not want to introduce this API in ICU4C. diff --git a/deps/icu-small/source/i18n/fmtable.cpp b/deps/icu-small/source/i18n/fmtable.cpp index 44c3087fb91aa6..7a9a81ded5dcd7 100644 --- a/deps/icu-small/source/i18n/fmtable.cpp +++ b/deps/icu-small/source/i18n/fmtable.cpp @@ -106,7 +106,7 @@ void Formattable::init() { fType = kLong; fDecimalStr = NULL; fDecimalQuantity = NULL; - fBogus.setToBogus(); + fBogus.setToBogus(); } // ------------------------------------- @@ -177,7 +177,7 @@ Formattable::Formattable(const UnicodeString& stringToCopy) // ------------------------------------- // Creates a formattable object with a UnicodeString* value. -// (adopting symantics) +// (adopting semantics) Formattable::Formattable(UnicodeString* stringToAdopt) { @@ -275,18 +275,18 @@ Formattable::operator=(const Formattable& source) // ------------------------------------- -UBool +bool Formattable::operator==(const Formattable& that) const { int32_t i; - if (this == &that) return TRUE; + if (this == &that) return true; - // Returns FALSE if the data types are different. - if (fType != that.fType) return FALSE; + // Returns false if the data types are different. + if (fType != that.fType) return false; // Compares the actual data values. - UBool equal = TRUE; + bool equal = true; switch (fType) { case kDate: equal = (fValue.fDate == that.fValue.fDate); @@ -303,20 +303,20 @@ Formattable::operator==(const Formattable& that) const break; case kArray: if (fValue.fArrayAndCount.fCount != that.fValue.fArrayAndCount.fCount) { - equal = FALSE; + equal = false; break; } // Checks each element for equality. for (i=0; i INT32_MAX) { @@ -450,10 +450,10 @@ Formattable::getInt64(UErrorCode& status) const if (U_FAILURE(status)) { return 0; } - + switch (fType) { - case Formattable::kLong: - case Formattable::kInt64: + case Formattable::kLong: + case Formattable::kInt64: return fValue.fInt64; case Formattable::kDouble: if (fValue.fDouble > (double)U_INT64_MAX) { @@ -472,7 +472,7 @@ Formattable::getInt64(UErrorCode& status) const } } else { return (int64_t)fValue.fDouble; - } + } case Formattable::kObject: if (fValue.fObject == NULL) { status = U_MEMORY_ALLOCATION_ERROR; @@ -496,9 +496,9 @@ Formattable::getDouble(UErrorCode& status) const if (U_FAILURE(status)) { return 0; } - + switch (fType) { - case Formattable::kLong: + case Formattable::kLong: case Formattable::kInt64: // loses precision return (double)fValue.fInt64; case Formattable::kDouble: @@ -623,8 +623,8 @@ Formattable::adoptObject(UObject* objectToAdopt) { } // ------------------------------------- -UnicodeString& -Formattable::getString(UnicodeString& result, UErrorCode& status) const +UnicodeString& +Formattable::getString(UnicodeString& result, UErrorCode& status) const { if (fType != kString) { setError(status, U_INVALID_FORMAT_ERROR); @@ -640,8 +640,8 @@ Formattable::getString(UnicodeString& result, UErrorCode& status) const } // ------------------------------------- -const UnicodeString& -Formattable::getString(UErrorCode& status) const +const UnicodeString& +Formattable::getString(UErrorCode& status) const { if (fType != kString) { setError(status, U_INVALID_FORMAT_ERROR); @@ -655,30 +655,30 @@ Formattable::getString(UErrorCode& status) const } // ------------------------------------- -UnicodeString& -Formattable::getString(UErrorCode& status) +UnicodeString& +Formattable::getString(UErrorCode& status) { if (fType != kString) { setError(status, U_INVALID_FORMAT_ERROR); return *getBogus(); } if (fValue.fString == NULL) { - setError(status, U_MEMORY_ALLOCATION_ERROR); - return *getBogus(); + setError(status, U_MEMORY_ALLOCATION_ERROR); + return *getBogus(); } return *fValue.fString; } // ------------------------------------- -const Formattable* -Formattable::getArray(int32_t& count, UErrorCode& status) const +const Formattable* +Formattable::getArray(int32_t& count, UErrorCode& status) const { if (fType != kArray) { setError(status, U_INVALID_FORMAT_ERROR); count = 0; return NULL; } - count = fValue.fArrayAndCount.fCount; + count = fValue.fArrayAndCount.fCount; return fValue.fArrayAndCount.fArray; } @@ -686,7 +686,7 @@ Formattable::getArray(int32_t& count, UErrorCode& status) const // Gets the bogus string, ensures mondo bogosity. UnicodeString* -Formattable::getBogus() const +Formattable::getBogus() const { return (UnicodeString*)&fBogus; /* cast away const :-( */ } @@ -845,7 +845,7 @@ FormattableStreamer::streamOut(ostream& stream, const Formattable& obj) UnicodeString buffer; switch(obj.getType()) { - case Formattable::kDate : + case Formattable::kDate : // Creates a DateFormat instance for formatting the // Date instance. if (defDateFormat == 0) { diff --git a/deps/icu-small/source/i18n/fmtableimp.h b/deps/icu-small/source/i18n/fmtableimp.h index 78b7caff548e82..2707d6ece2e2eb 100644 --- a/deps/icu-small/source/i18n/fmtableimp.h +++ b/deps/icu-small/source/i18n/fmtableimp.h @@ -16,7 +16,7 @@ U_NAMESPACE_BEGIN -/** +/** * Maximum int64_t value that can be stored in a double without chancing losing precision. * IEEE doubles have 53 bits of mantissa, 10 bits exponent, 1 bit sign. * IBM Mainframes have 56 bits of mantissa, 7 bits of base 16 exponent, 1 bit sign. diff --git a/deps/icu-small/source/i18n/format.cpp b/deps/icu-small/source/i18n/format.cpp index a010defff93c40..10856a4acba286 100644 --- a/deps/icu-small/source/i18n/format.cpp +++ b/deps/icu-small/source/i18n/format.cpp @@ -155,7 +155,7 @@ Format::parseObject(const UnicodeString& source, // ------------------------------------- -UBool +bool Format::operator==(const Format& that) const { // Subclasses: Call this method and then add more specific checks. @@ -167,7 +167,7 @@ Format::operator==(const Format& that) const * Simple function for initializing a UParseError from a UnicodeString. * * @param pattern The pattern to copy into the parseError - * @param pos The position in pattern where the error occured + * @param pos The position in pattern where the error occurred * @param parseError The UParseError object to fill in * @draft ICU 2.4 */ diff --git a/deps/icu-small/source/i18n/formatted_string_builder.cpp b/deps/icu-small/source/i18n/formatted_string_builder.cpp index b370f14f2ac4ff..734078644b88ef 100644 --- a/deps/icu-small/source/i18n/formatted_string_builder.cpp +++ b/deps/icu-small/source/i18n/formatted_string_builder.cpp @@ -277,7 +277,7 @@ int32_t FormattedStringBuilder::prepareForInsertHelper(int32_t index, int32_t co Field *oldFields = getFieldPtr(); if (fLength + count > oldCapacity) { if ((fLength + count) > INT32_MAX / 2) { - // If we continue, then newCapacity will overlow int32_t in the next line. + // If we continue, then newCapacity will overflow int32_t in the next line. status = U_INPUT_TOO_LONG_ERROR; return -1; } diff --git a/deps/icu-small/source/i18n/formattedval_impl.h b/deps/icu-small/source/i18n/formattedval_impl.h index c43c1020d1ef26..2b9a3970d2e4eb 100644 --- a/deps/icu-small/source/i18n/formattedval_impl.h +++ b/deps/icu-small/source/i18n/formattedval_impl.h @@ -96,7 +96,7 @@ class FormattedValueFieldPositionIteratorImpl : public UMemory, public Formatted /** * Computes the spans for duplicated values. * For example, if the string has fields: - * + * * ...aa..[b.cc]..d.[bb.e.c]..a.. * * then the spans will be the bracketed regions. @@ -169,6 +169,7 @@ class U_I18N_API FormattedValueStringBuilderImpl : public UMemory, public Format inline const FormattedStringBuilder& getStringRef() const { return fString; } + void resetString(); /** * Adds additional metadata used for span fields. diff --git a/deps/icu-small/source/i18n/formattedval_sbimpl.cpp b/deps/icu-small/source/i18n/formattedval_sbimpl.cpp index 9ec06daf3ea41e..70ffacac4b7416 100644 --- a/deps/icu-small/source/i18n/formattedval_sbimpl.cpp +++ b/deps/icu-small/source/i18n/formattedval_sbimpl.cpp @@ -96,6 +96,11 @@ void FormattedValueStringBuilderImpl::getAllFieldPositions(FieldPositionIterator } } +void FormattedValueStringBuilderImpl::resetString() { + fString.clear(); + spanIndicesCount = 0; +} + // Signal the end of the string using a field that doesn't exist and that is // different from kUndefinedField, which is used for "null field". static constexpr Field kEndField = Field(0xf, 0xf); @@ -283,27 +288,27 @@ bool FormattedValueStringBuilderImpl::nextPositionImpl(ConstrainedFieldPosition& void FormattedValueStringBuilderImpl::appendSpanInfo(UFieldCategory category, int32_t spanValue, int32_t start, int32_t length, UErrorCode& status) { if (U_FAILURE(status)) { return; } - U_ASSERT(spanIndices.getCapacity() >= spanValue); - if (spanIndices.getCapacity() == spanValue) { - if (!spanIndices.resize(spanValue * 2, spanValue)) { + U_ASSERT(spanIndices.getCapacity() >= spanIndicesCount); + if (spanIndices.getCapacity() == spanIndicesCount) { + if (!spanIndices.resize(spanIndicesCount * 2, spanIndicesCount)) { status = U_MEMORY_ALLOCATION_ERROR; return; } } - spanIndices[spanValue] = {category, spanValue, start, length}; + spanIndices[spanIndicesCount] = {category, spanValue, start, length}; spanIndicesCount++; } void FormattedValueStringBuilderImpl::prependSpanInfo(UFieldCategory category, int32_t spanValue, int32_t start, int32_t length, UErrorCode& status) { if (U_FAILURE(status)) { return; } - U_ASSERT(spanIndices.getCapacity() >= spanValue); - if (spanIndices.getCapacity() == spanValue) { - if (!spanIndices.resize(spanValue * 2, spanValue)) { + U_ASSERT(spanIndices.getCapacity() >= spanIndicesCount); + if (spanIndices.getCapacity() == spanIndicesCount) { + if (!spanIndices.resize(spanIndicesCount * 2, spanIndicesCount)) { status = U_MEMORY_ALLOCATION_ERROR; return; } } - for (int32_t i = spanValue - 1; i >= 0; i--) { + for (int32_t i = spanIndicesCount - 1; i >= 0; i--) { spanIndices[i+1] = spanIndices[i]; } spanIndices[0] = {category, spanValue, start, length}; diff --git a/deps/icu-small/source/i18n/formattedvalue.cpp b/deps/icu-small/source/i18n/formattedvalue.cpp index 79ecf0a841cf9b..1030661f2200fa 100644 --- a/deps/icu-small/source/i18n/formattedvalue.cpp +++ b/deps/icu-small/source/i18n/formattedvalue.cpp @@ -49,7 +49,7 @@ UBool ConstrainedFieldPosition::matchesField(int32_t category, int32_t field) co case UCFPOS_CONSTRAINT_FIELD: return fCategory == category && fField == field; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -209,6 +209,8 @@ ufmtval_getString( if (pLength != nullptr) { *pLength = readOnlyAlias.length(); } + // Note: this line triggers -Wreturn-local-addr, but it is safe because toTempString is + // defined to return memory owned by the ufmtval argument. return readOnlyAlias.getBuffer(); } diff --git a/deps/icu-small/source/i18n/fpositer.cpp b/deps/icu-small/source/i18n/fpositer.cpp index b6e1b58309b4e0..096896d7b38449 100644 --- a/deps/icu-small/source/i18n/fpositer.cpp +++ b/deps/icu-small/source/i18n/fpositer.cpp @@ -45,17 +45,17 @@ FieldPositionIterator::FieldPositionIterator(const FieldPositionIterator &rhs) } } -UBool FieldPositionIterator::operator==(const FieldPositionIterator &rhs) const { +bool FieldPositionIterator::operator==(const FieldPositionIterator &rhs) const { if (&rhs == this) { - return TRUE; + return true; } if (pos != rhs.pos) { - return FALSE; + return false; } if (!data) { return rhs.data == NULL; } - return rhs.data ? data->operator==(*rhs.data) : FALSE; + return rhs.data ? data->operator==(*rhs.data) : false; } void FieldPositionIterator::setData(UVector32 *adopt, UErrorCode& status) { @@ -111,3 +111,4 @@ UBool FieldPositionIterator::next(FieldPosition& fp) { U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ + diff --git a/deps/icu-small/source/i18n/funcrepl.cpp b/deps/icu-small/source/i18n/funcrepl.cpp index ceb456e1afc50c..7dd54ed8d2b6a7 100644 --- a/deps/icu-small/source/i18n/funcrepl.cpp +++ b/deps/icu-small/source/i18n/funcrepl.cpp @@ -70,7 +70,7 @@ FunctionReplacer* FunctionReplacer::clone() const { UnicodeReplacer* FunctionReplacer::toReplacer() const { FunctionReplacer *nonconst_this = const_cast(this); UnicodeReplacer *nonconst_base = static_cast(nonconst_this); - + return nonconst_base; } diff --git a/deps/icu-small/source/i18n/funcrepl.h b/deps/icu-small/source/i18n/funcrepl.h index fe41f6caaa6d10..529a10ebbf5377 100644 --- a/deps/icu-small/source/i18n/funcrepl.h +++ b/deps/icu-small/source/i18n/funcrepl.h @@ -70,13 +70,13 @@ class FunctionReplacer : public UnicodeFunctor, public UnicodeReplacer { /** * Implement UnicodeFunctor */ - virtual FunctionReplacer* clone() const; + virtual FunctionReplacer* clone() const override; /** * UnicodeFunctor API. Cast 'this' to a UnicodeReplacer* pointer * and return the pointer. */ - virtual UnicodeReplacer* toReplacer() const; + virtual UnicodeReplacer* toReplacer() const override; /** * UnicodeReplacer API @@ -84,28 +84,28 @@ class FunctionReplacer : public UnicodeFunctor, public UnicodeReplacer { virtual int32_t replace(Replaceable& text, int32_t start, int32_t limit, - int32_t& cursor); + int32_t& cursor) override; /** * UnicodeReplacer API */ virtual UnicodeString& toReplacerPattern(UnicodeString& rule, - UBool escapeUnprintable) const; + UBool escapeUnprintable) const override; /** * Implement UnicodeReplacer */ - virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const; + virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const override; /** * UnicodeFunctor API */ - virtual void setData(const TransliterationRuleData*); + virtual void setData(const TransliterationRuleData*) override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/gender.cpp b/deps/icu-small/source/i18n/gender.cpp index e3ec5ad27298f4..dc5def6ad35097 100644 --- a/deps/icu-small/source/i18n/gender.cpp +++ b/deps/icu-small/source/i18n/gender.cpp @@ -166,7 +166,7 @@ const GenderInfo* GenderInfo::loadInstance(const Locale& locale, UErrorCode& sta return &gObjs[NEUTRAL]; } if (uprv_strcmp(type_str, gMixedNeutralStr) == 0) { - return &gObjs[MIXED_NEUTRAL]; + return &gObjs[MIXED_NEUTRAL]; } if (uprv_strcmp(type_str, gMailTaintsStr) == 0) { return &gObjs[MALE_TAINTS]; diff --git a/deps/icu-small/source/i18n/gregocal.cpp b/deps/icu-small/source/i18n/gregocal.cpp index 36f7bb933285bd..31d36300aeb092 100644 --- a/deps/icu-small/source/i18n/gregocal.cpp +++ b/deps/icu-small/source/i18n/gregocal.cpp @@ -27,7 +27,7 @@ * add() from Java source. * 07/28/98 stephen Sync up with JDK 1.2 * 09/14/98 stephen Changed type of kOneDay, kOneWeek to double. -* Fixed bug in roll() +* Fixed bug in roll() * 10/15/99 aliu Fixed j31, incorrect WEEK_OF_YEAR computation. * 10/15/99 aliu Fixed j32, cannot set date to Feb 29 2000 AD. * {JDK bug 4210209 4209272} @@ -105,7 +105,7 @@ static const int32_t kGregorianCalendarLimits[UCAL_FIELD_COUNT][4] = { /* *
      -*                            Greatest       Least
      +*                            Greatest       Least 
       * Field name        Minimum   Minimum     Maximum     Maximum
       * ----------        -------   -------     -------     -------
       * ERA                     0         0           1           1
      @@ -321,7 +321,7 @@ UBool GregorianCalendar::isEquivalentTo(const Calendar& other) const
       void
       GregorianCalendar::setGregorianChange(UDate date, UErrorCode& status)
       {
      -    if (U_FAILURE(status))
      +    if (U_FAILURE(status)) 
               return;
       
           // Precompute two internal variables which we use to do the actual
      @@ -334,7 +334,7 @@ GregorianCalendar::setGregorianChange(UDate date, UErrorCode& status)
       
           // Handle the rare case of numeric overflow where the user specifies a time
           // outside of INT32_MIN .. INT32_MAX number of days.
      -
      +    
           if (cutoverDay <= INT32_MIN) {
               cutoverDay = INT32_MIN;
               fGregorianCutover = fNormalizedGregorianCutover = cutoverDay * kOneDay;
      @@ -358,7 +358,7 @@ GregorianCalendar::setGregorianChange(UDate date, UErrorCode& status)
               return;
           cal->setTime(date, status);
           fGregorianCutoverYear = cal->get(UCAL_YEAR, status);
      -    if (cal->get(UCAL_ERA, status) == BC)
      +    if (cal->get(UCAL_ERA, status) == BC) 
               fGregorianCutoverYear = 1 - fGregorianCutoverYear;
           fCutoverJulianDay = (int32_t)cutoverDay;
           delete cal;
      @@ -369,12 +369,12 @@ void GregorianCalendar::handleComputeFields(int32_t julianDay, UErrorCode& statu
           int32_t eyear, month, dayOfMonth, dayOfYear, unusedRemainder;
       
       
      -    if(U_FAILURE(status)) {
      -        return;
      +    if(U_FAILURE(status)) { 
      +        return; 
           }
       
       #if defined (U_DEBUG_CAL)
      -    fprintf(stderr, "%s:%d: jd%d- (greg's %d)- [cut=%d]\n",
      +    fprintf(stderr, "%s:%d: jd%d- (greg's %d)- [cut=%d]\n", 
               __FILE__, __LINE__, julianDay, getGregorianDayOfYear(), fCutoverJulianDay);
       #endif
       
      @@ -413,11 +413,11 @@ void GregorianCalendar::handleComputeFields(int32_t julianDay, UErrorCode& statu
               ++dayOfYear;
       #if defined (U_DEBUG_CAL)
               //     fprintf(stderr, "%d - %d[%d] + 1\n", dayOfYear, isLeap?kLeapNumDays[month]:kNumDays[month], month );
      -        //           fprintf(stderr, "%s:%d:  greg's HCF %d -> %d/%d/%d not %d/%d/%d\n",
      +        //           fprintf(stderr, "%s:%d:  greg's HCF %d -> %d/%d/%d not %d/%d/%d\n", 
               //                   __FILE__, __LINE__,julianDay,
               //          eyear,month,dayOfMonth,
               //          getGregorianYear(), getGregorianMonth(), getGregorianDayOfMonth()  );
      -        fprintf(stderr, "%s:%d: doy %d (greg's %d)- [cut=%d]\n",
      +        fprintf(stderr, "%s:%d: doy %d (greg's %d)- [cut=%d]\n", 
                   __FILE__, __LINE__, dayOfYear, getGregorianDayOfYear(), fCutoverJulianDay);
       #endif
       
      @@ -458,7 +458,7 @@ GregorianCalendar::getGregorianChange() const
       
       // -------------------------------------
       
      -UBool
      +UBool 
       GregorianCalendar::isLeapYear(int32_t year) const
       {
           // MSVC complains bitterly if we try to use Grego::isLeapYear here
      @@ -470,15 +470,15 @@ GregorianCalendar::isLeapYear(int32_t year) const
       
       // -------------------------------------
       
      -int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
      +int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField) 
       {
           fInvertGregorian = FALSE;
       
           int32_t jd = Calendar::handleComputeJulianDay(bestField);
       
           if((bestField == UCAL_WEEK_OF_YEAR) &&  // if we are doing WOY calculations, we are counting relative to Jan 1 *julian*
      -        (internalGet(UCAL_EXTENDED_YEAR)==fGregorianCutoverYear) &&
      -        jd >= fCutoverJulianDay) {
      +        (internalGet(UCAL_EXTENDED_YEAR)==fGregorianCutoverYear) && 
      +        jd >= fCutoverJulianDay) { 
                   fInvertGregorian = TRUE;  // So that the Julian Jan 1 will be used in handleComputeMonthStart
                   return Calendar::handleComputeJulianDay(bestField);
               }
      @@ -489,20 +489,20 @@ int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
               //if ((fIsGregorian==TRUE) != (jd >= fCutoverJulianDay)) {  /*  cutoverJulianDay)) { */
               if ((fIsGregorian==TRUE) != (jd >= fCutoverJulianDay)) {  /*  cutoverJulianDay)) { */
       #if defined (U_DEBUG_CAL)
      -            fprintf(stderr, "%s:%d: jd [invert] %d\n",
      +            fprintf(stderr, "%s:%d: jd [invert] %d\n", 
                       __FILE__, __LINE__, jd);
       #endif
                   fInvertGregorian = TRUE;
                   jd = Calendar::handleComputeJulianDay(bestField);
       #if defined (U_DEBUG_CAL)
      -            fprintf(stderr, "%s:%d:  fIsGregorian %s, fInvertGregorian %s - ",
      +            fprintf(stderr, "%s:%d:  fIsGregorian %s, fInvertGregorian %s - ", 
                       __FILE__, __LINE__,fIsGregorian?"T":"F", fInvertGregorian?"T":"F");
      -            fprintf(stderr, " jd NOW %d\n",
      +            fprintf(stderr, " jd NOW %d\n", 
                       jd);
       #endif
               } else {
       #if defined (U_DEBUG_CAL)
      -            fprintf(stderr, "%s:%d: jd [==] %d - %sfIsGregorian %sfInvertGregorian, %d\n",
      +            fprintf(stderr, "%s:%d: jd [==] %d - %sfIsGregorian %sfInvertGregorian, %d\n", 
                       __FILE__, __LINE__, jd, fIsGregorian?"T":"F", fInvertGregorian?"T":"F", bestField);
       #endif
               }
      @@ -511,14 +511,14 @@ int32_t GregorianCalendar::handleComputeJulianDay(UCalendarDateFields bestField)
                   int32_t gregShift = Grego::gregorianShift(internalGet(UCAL_EXTENDED_YEAR));
                   if (bestField == UCAL_DAY_OF_YEAR) {
       #if defined (U_DEBUG_CAL)
      -                fprintf(stderr, "%s:%d: [DOY%d] gregorian shift of JD %d += %d\n",
      +                fprintf(stderr, "%s:%d: [DOY%d] gregorian shift of JD %d += %d\n", 
                           __FILE__, __LINE__, fFields[bestField],jd, gregShift);
       #endif
                       jd -= gregShift;
                   } else if ( bestField == UCAL_WEEK_OF_MONTH ) {
                       int32_t weekShift = 14;
       #if defined (U_DEBUG_CAL)
      -                fprintf(stderr, "%s:%d: [WOY/WOM] gregorian week shift of %d += %d\n",
      +                fprintf(stderr, "%s:%d: [WOY/WOM] gregorian week shift of %d += %d\n", 
                           __FILE__, __LINE__, jd, weekShift);
       #endif
                       jd += weekShift; // shift by weeks for week based fields.
      @@ -546,7 +546,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
       
           nonConstThis->fIsGregorian = (eyear >= fGregorianCutoverYear);
       #if defined (U_DEBUG_CAL)
      -    fprintf(stderr, "%s:%d: (hcms%d/%d) fIsGregorian %s, fInvertGregorian %s\n",
      +    fprintf(stderr, "%s:%d: (hcms%d/%d) fIsGregorian %s, fInvertGregorian %s\n", 
               __FILE__, __LINE__, eyear,month, fIsGregorian?"T":"F", fInvertGregorian?"T":"F");
       #endif
           if (fInvertGregorian) {
      @@ -558,7 +558,7 @@ int32_t GregorianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month,
               // Julian calendar
               int32_t gregShift = Grego::gregorianShift(eyear);
       #if defined (U_DEBUG_CAL)
      -        fprintf(stderr, "%s:%d: (hcms%d/%d) gregorian shift of %d += %d\n",
      +        fprintf(stderr, "%s:%d: (hcms%d/%d) gregorian shift of %d += %d\n", 
                   __FILE__, __LINE__, eyear, month, julianDay, gregShift);
       #endif
               julianDay += gregShift;
      @@ -630,12 +630,12 @@ GregorianCalendar::yearLength() const
       * 3, we want it to go to Feb 28.  Adjustments which might run into this
       * problem call this method to retain the proper month.
       */
      -void
      -GregorianCalendar::pinDayOfMonth()
      +void 
      +GregorianCalendar::pinDayOfMonth() 
       {
           int32_t monthLen = monthLength(internalGet(UCAL_MONTH));
           int32_t dom = internalGet(UCAL_DATE);
      -    if(dom > monthLen)
      +    if(dom > monthLen) 
               set(UCAL_DATE, monthLen);
       }
       
      @@ -691,8 +691,8 @@ GregorianCalendar::boundsCheck(int32_t value, UCalendarDateFields field) const
       
       // -------------------------------------
       
      -UDate
      -GregorianCalendar::getEpochDay(UErrorCode& status)
      +UDate 
      +GregorianCalendar::getEpochDay(UErrorCode& status) 
       {
           complete(status);
           // Divide by 1000 (convert to seconds) in order to prevent overflow when
      @@ -784,7 +784,7 @@ double GregorianCalendar::computeJulianDayOfYear(UBool isGregorian,
       
       // -------------------------------------
       
      -double
      +double 
       GregorianCalendar::millisToJulianDay(UDate millis)
       {
           return (double)kEpochStartAsJulianDay + ClockMath::floorDivide(millis, (double)kOneDay);
      @@ -801,9 +801,9 @@ GregorianCalendar::julianDayToMillis(double julian)
       // -------------------------------------
       
       int32_t
      -GregorianCalendar::aggregateStamp(int32_t stamp_a, int32_t stamp_b)
      +GregorianCalendar::aggregateStamp(int32_t stamp_a, int32_t stamp_b) 
       {
      -    return (((stamp_a != kUnset && stamp_b != kUnset)
      +    return (((stamp_a != kUnset && stamp_b != kUnset) 
               ? uprv_max(stamp_a, stamp_b)
               : (int32_t)kUnset));
       }
      @@ -815,9 +815,9 @@ GregorianCalendar::aggregateStamp(int32_t stamp_a, int32_t stamp_b)
       * Note: This will be made public later. [LIU]
       */
       
      -void
      +void 
       GregorianCalendar::roll(EDateFields field, int32_t amount, UErrorCode& status) {
      -    roll((UCalendarDateFields) field, amount, status);
      +    roll((UCalendarDateFields) field, amount, status); 
       }
       
       void
      @@ -904,7 +904,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                                   }
       
           case UCAL_DAY_OF_MONTH:
      -        if( !inCutoverMonth ) {
      +        if( !inCutoverMonth ) { 
                   Calendar::roll(field, amount, status);
                   return;
               } else {
      @@ -919,7 +919,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                       msIntoMonth += monthLen;
                   }
       #if defined (U_DEBUG_CAL)
      -            fprintf(stderr, "%s:%d: roll DOM %d  -> %.0lf ms  \n",
      +            fprintf(stderr, "%s:%d: roll DOM %d  -> %.0lf ms  \n", 
                       __FILE__, __LINE__,amount, cMonthLen, cMonthStart+msIntoMonth);
       #endif
                   setTimeInMillis(cMonthStart + msIntoMonth, status);
      @@ -927,16 +927,16 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
               }
       
           case UCAL_WEEK_OF_MONTH:
      -        if( !inCutoverMonth ) {
      +        if( !inCutoverMonth ) { 
                   Calendar::roll(field, amount, status);
                   return;
               } else {
       #if defined (U_DEBUG_CAL)
      -            fprintf(stderr, "%s:%d: roll WOM %d ??????????????????? \n",
      +            fprintf(stderr, "%s:%d: roll WOM %d ??????????????????? \n", 
                       __FILE__, __LINE__,amount);
       #endif
                   // NOTE: following copied from  the old
      -            //     GregorianCalendar::roll( WEEK_OF_MONTH )  code
      +            //     GregorianCalendar::roll( WEEK_OF_MONTH )  code 
       
                   // This is tricky, because during the roll we may have to shift
                   // to a different day of the week.  For example:
      @@ -974,7 +974,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                   // Normalize the DAY_OF_WEEK so that 0 is the first day of the week
                   // in this locale.  We have dow in 0..6.
                   int32_t dow = internalGet(UCAL_DAY_OF_WEEK) - getFirstDayOfWeek();
      -            if (dow < 0)
      +            if (dow < 0) 
                       dow += 7;
       
                   // Find the day of month, compensating for cutover discontinuity.
      @@ -983,7 +983,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                   // Find the day of the week (normalized for locale) for the first
                   // of the month.
                   int32_t fdm = (dow - dom + 1) % 7;
      -            if (fdm < 0)
      +            if (fdm < 0) 
                       fdm += 7;
       
                   // Get the first day of the first full week of the month,
      @@ -1011,14 +1011,14 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                   // Now roll between start and (limit - 1).
                   int32_t gap = limit - start;
                   int32_t newDom = (dom + amount*7 - start) % gap;
      -            if (newDom < 0)
      +            if (newDom < 0) 
                       newDom += gap;
                   newDom += start;
       
                   // Finally, pin to the real start and end of the month.
      -            if (newDom < 1)
      +            if (newDom < 1) 
                       newDom = 1;
      -            if (newDom > monthLen)
      +            if (newDom > monthLen) 
                       newDom = monthLen;
       
                   // Set the DAY_OF_MONTH.  We rely on the fact that this field
      @@ -1031,7 +1031,7 @@ GregorianCalendar::roll(UCalendarDateFields field, int32_t amount, UErrorCode& s
                   // If we are in the cutover month, manipulate ms directly.  Don't do
                   // this in general because it doesn't work across DST boundaries
                   // (details, details).  This takes care of the discontinuity.
      -            setTimeInMillis(cMonthStart + (newDom-1)*kOneDay, status);
      +            setTimeInMillis(cMonthStart + (newDom-1)*kOneDay, status);                
                   return;
               }
       
      @@ -1212,7 +1212,7 @@ int32_t GregorianCalendar::handleGetExtendedYear() {
               year = handleGetExtendedYearFromWeekFields(internalGet(UCAL_YEAR_WOY), internalGet(UCAL_WEEK_OF_YEAR));
       #if defined (U_DEBUG_CAL)
               //    if(internalGet(UCAL_YEAR_WOY) != year) {
      -        fprintf(stderr, "%s:%d: hGEYFWF[%d,%d] ->  %d\n",
      +        fprintf(stderr, "%s:%d: hGEYFWF[%d,%d] ->  %d\n", 
                   __FILE__, __LINE__,internalGet(UCAL_YEAR_WOY),internalGet(UCAL_WEEK_OF_YEAR),year);
               //}
       #endif
      @@ -1240,7 +1240,7 @@ int32_t GregorianCalendar::handleGetExtendedYearFromWeekFields(int32_t yearWoy,
       UBool
       GregorianCalendar::inDaylightTime(UErrorCode& status) const
       {
      -    if (U_FAILURE(status) || !getTimeZone().useDaylightTime())
      +    if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) 
               return FALSE;
       
           // Force an update of the state of the Calendar.
      @@ -1269,7 +1269,7 @@ GregorianCalendar::getType() const {
       
       /**
        * The system maintains a static default century start date and Year.  They are
      - * initialized the first time they are used.  Once the system default century date
      + * initialized the first time they are used.  Once the system default century date 
        * and year are set, they do not change.
        */
       static UDate           gSystemDefaultCenturyStart       = DBL_MIN;
      diff --git a/deps/icu-small/source/i18n/gregoimp.cpp b/deps/icu-small/source/i18n/gregoimp.cpp
      index cc31e274131906..537aa19d8a40ed 100644
      --- a/deps/icu-small/source/i18n/gregoimp.cpp
      +++ b/deps/icu-small/source/i18n/gregoimp.cpp
      @@ -116,9 +116,9 @@ void Grego::dayToFields(double day, int32_t& year, int32_t& month,
           } else {
               ++year;
           }
      -
      +    
           UBool isLeap = isLeapYear(year);
      -
      +    
           // Gregorian day zero is a Monday.
           dow = (int32_t) uprv_fmod(day + 1, 7);
           dow += (dow < 0) ? (UCAL_SUNDAY + 7) : UCAL_SUNDAY;
      diff --git a/deps/icu-small/source/i18n/gregoimp.h b/deps/icu-small/source/i18n/gregoimp.h
      index edcae9dbcc65ff..b1a5bc22c22d28 100644
      --- a/deps/icu-small/source/i18n/gregoimp.h
      +++ b/deps/icu-small/source/i18n/gregoimp.h
      @@ -86,7 +86,7 @@ class ClockMath {
            * 0 <= remainder < divisor.
            *
            * Works around edge-case bugs.  Handles pathological input
      -     * (divident >> divisor) reasonably.
      +     * (dividend >> divisor) reasonably.
            *
            * Calling with a divisor <= 0 is disallowed.
            */
      @@ -179,7 +179,7 @@ class Grego {
            * @return the day number, with day 0 == Jan 1 1970
            */
           static double fieldsToDay(int32_t year, int32_t month, int32_t dom);
      -
      +    
           /**
            * Convert a 1970-epoch day number to proleptic Gregorian year,
            * month, day-of-month, and day-of-week.
      @@ -214,7 +214,7 @@ class Grego {
            * @param dom output parameter to receive day-of-month (1-based)
            * @param dow output parameter to receive day-of-week (1-based, 1==Sun)
            * @param doy output parameter to receive day-of-year (1-based)
      -     * @param mid output parameter to recieve millis-in-day
      +     * @param mid output parameter to receive millis-in-day
            */
           static void timeToFields(UDate time, int32_t& year, int32_t& month,
                                   int32_t& dom, int32_t& dow, int32_t& doy, int32_t& mid);
      @@ -252,9 +252,9 @@ class Grego {
            */
           static inline int32_t millisToJulianDay(double millis);
       
      -    /**
      +    /** 
            * Calculates the Gregorian day shift value for an extended year.
      -     * @param eyear Extended year
      +     * @param eyear Extended year 
            * @returns number of days to ADD to Julian in order to convert from J->G
            */
           static inline int32_t gregorianShift(int32_t eyear);
      diff --git a/deps/icu-small/source/i18n/hebrwcal.cpp b/deps/icu-small/source/i18n/hebrwcal.cpp
      index 98cbb4a1050d01..4d8e59cef95a41 100644
      --- a/deps/icu-small/source/i18n/hebrwcal.cpp
      +++ b/deps/icu-small/source/i18n/hebrwcal.cpp
      @@ -187,7 +187,7 @@ HebrewCalendar::HebrewCalendar(const HebrewCalendar& other) : Calendar(other) {
       /**
       * Add a signed amount to a specified field, using this calendar's rules.
       * For example, to add three days to the current date, you can call
      -* add(Calendar.DATE, 3).
      +* add(Calendar.DATE, 3). 
       * 

      * When adding to certain fields, the values of other fields may conflict and * need to be changed. For example, when adding one to the {@link #MONTH MONTH} field @@ -217,7 +217,7 @@ void HebrewCalendar::add(UCalendarDateFields field, int32_t amount, UErrorCode& return; } switch (field) { - case UCAL_MONTH: + case UCAL_MONTH: { // We can't just do a set(MONTH, get(MONTH) + amount). The // reason is ADAR_1. Suppose amount is +2 and we land in @@ -281,7 +281,7 @@ void HebrewCalendar::add(EDateFields field, int32_t amount, UErrorCode& status) * example, to roll the current date up by three days, you can call * roll(Calendar.DATE, 3). If the * field is rolled past its maximum allowable value, it will "wrap" back -* to its minimum and continue rolling. +* to its minimum and continue rolling. * For example, calling roll(Calendar.DATE, 10) * on a Hebrew calendar set to "25 Av 5758" will result in the date "5 Av 5758". *

      @@ -554,7 +554,7 @@ void HebrewCalendar::validateField(UCalendarDateFields field, UErrorCode &status *

    • DAY_OF_MONTH *
    • DAY_OF_YEAR *
    • EXTENDED_YEAR
    -* +* * Subclasses can refer to the DAY_OF_WEEK and DOW_LOCAL fields, * which will be set when this method is called. Subclasses can * also call the getGregorianXxx() methods to obtain Gregorian @@ -609,7 +609,7 @@ void HebrewCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status) internalSet(UCAL_EXTENDED_YEAR, year); internalSet(UCAL_MONTH, month); internalSet(UCAL_DAY_OF_MONTH, dayOfMonth); - internalSet(UCAL_DAY_OF_YEAR, dayOfYear); + internalSet(UCAL_DAY_OF_YEAR, dayOfYear); } //------------------------------------------------------------------------- @@ -670,7 +670,7 @@ UBool HebrewCalendar::inDaylightTime(UErrorCode& status) const { // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) + if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) return FALSE; // Force an update of the state of the Calendar. @@ -681,7 +681,7 @@ HebrewCalendar::inDaylightTime(UErrorCode& status) const /** * The system maintains a static default century start date and Year. They are - * initialized the first time they are used. Once the system default century date + * initialized the first time they are used. Once the system default century date * and year are set, they do not change. */ static UDate gSystemDefaultCenturyStart = DBL_MIN; @@ -730,3 +730,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(HebrewCalendar) U_NAMESPACE_END #endif // UCONFIG_NO_FORMATTING + diff --git a/deps/icu-small/source/i18n/hebrwcal.h b/deps/icu-small/source/i18n/hebrwcal.h index 34450ffa61855d..ae4401832d4679 100644 --- a/deps/icu-small/source/i18n/hebrwcal.h +++ b/deps/icu-small/source/i18n/hebrwcal.h @@ -89,26 +89,26 @@ class U_I18N_API HebrewCalendar : public Calendar { * @internal */ enum EEras { - /** - * Constant for Tishri, the 1st month of the Hebrew year. + /** + * Constant for Tishri, the 1st month of the Hebrew year. */ TISHRI, /** - * Constant for Heshvan, the 2nd month of the Hebrew year. + * Constant for Heshvan, the 2nd month of the Hebrew year. */ HESHVAN, /** - * Constant for Kislev, the 3rd month of the Hebrew year. + * Constant for Kislev, the 3rd month of the Hebrew year. */ KISLEV, /** - * Constant for Tevet, the 4th month of the Hebrew year. + * Constant for Tevet, the 4th month of the Hebrew year. */ TEVET, /** - * Constant for Shevat, the 5th month of the Hebrew year. + * Constant for Shevat, the 5th month of the Hebrew year. */ SHEVAT, @@ -119,38 +119,38 @@ class U_I18N_API HebrewCalendar : public Calendar { */ ADAR_1, - /** - * Constant for the Adar, the 7th month of the Hebrew year. + /** + * Constant for the Adar, the 7th month of the Hebrew year. */ ADAR, /** - * Constant for Nisan, the 8th month of the Hebrew year. + * Constant for Nisan, the 8th month of the Hebrew year. */ NISAN, /** - * Constant for Iyar, the 9th month of the Hebrew year. + * Constant for Iyar, the 9th month of the Hebrew year. */ IYAR, /** - * Constant for Sivan, the 10th month of the Hebrew year. + * Constant for Sivan, the 10th month of the Hebrew year. */ SIVAN, /** - * Constant for Tammuz, the 11th month of the Hebrew year. + * Constant for Tammuz, the 11th month of the Hebrew year. */ TAMUZ, /** - * Constant for Av, the 12th month of the Hebrew year. + * Constant for Av, the 12th month of the Hebrew year. */ AV, /** - * Constant for Elul, the 13th month of the Hebrew year. + * Constant for Elul, the 13th month of the Hebrew year. */ ELUL }; @@ -192,8 +192,8 @@ class U_I18N_API HebrewCalendar : public Calendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual HebrewCalendar* clone() const; - + virtual HebrewCalendar* clone() const override; + public: /** * Override Calendar Returns a unique class ID POLYMORPHICALLY. Pure virtual @@ -205,7 +205,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -226,7 +226,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; // Calendar API @@ -242,11 +242,11 @@ class U_I18N_API HebrewCalendar : public Calendar { * previously set in the time field is invalid, this will be set to * an error status. */ - virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode& status); + virtual void add(UCalendarDateFields field, int32_t amount, UErrorCode& status) override; /** * @deprecated ICU 2.6 use UCalendarDateFields instead of EDateFields */ - virtual void add(EDateFields field, int32_t amount, UErrorCode& status); + virtual void add(EDateFields field, int32_t amount, UErrorCode& status) override; /** @@ -260,7 +260,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * an error status. * @internal */ - virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status); + virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) override; /** * (Overrides Calendar) Rolls up or down by the given amount in the specified field. @@ -273,10 +273,10 @@ class U_I18N_API HebrewCalendar : public Calendar { * an error status. * @deprecated ICU 2.6. Use roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead. ` */ - virtual void roll(EDateFields field, int32_t amount, UErrorCode& status); + virtual void roll(EDateFields field, int32_t amount, UErrorCode& status) override; /** - * @internal + * @internal */ static UBool isLeapYear(int32_t year) ; @@ -303,7 +303,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * LEAST_MAXIMUM, or MAXIMUM * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * Return the number of days in the given month of the given extended @@ -312,7 +312,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * implementation than the default implementation in Calendar. * @internal */ - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; /** * Return the number of days in the given extended year of this @@ -321,7 +321,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * default implementation in Calendar. * @stable ICU 2.0 */ - virtual int32_t handleGetYearLength(int32_t eyear) const; + virtual int32_t handleGetYearLength(int32_t eyear) const override; /** * Subclasses may override this method to compute several fields * specific to each calendar system. These are: @@ -337,7 +337,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * a calendar with the specified Julian/Gregorian cutover date. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; /** * Return the extended year defined by the current fields. This will * use the UCAL_EXTENDED_YEAR field or the UCAL_YEAR and supra-year fields (such @@ -346,7 +346,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * @return the extended year * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Return the Julian day number of day before the first day of the * given month in the given extended year. Subclasses should override @@ -361,7 +361,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * @internal */ virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, - UBool useMonth) const; + UBool useMonth) const override; /** @@ -370,7 +370,7 @@ class U_I18N_API HebrewCalendar : public Calendar { * special handling for month validation for Hebrew calendar. * @internal */ - virtual void validateField(UCalendarDateFields field, UErrorCode &status); + virtual void validateField(UCalendarDateFields field, UErrorCode &status) override; protected: @@ -383,26 +383,26 @@ class U_I18N_API HebrewCalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; - /** - * Returns true because the Hebrew Calendar does have a default century - * @internal - */ - virtual UBool haveDefaultCentury() const; + /** + * Returns true because the Hebrew Calendar does have a default century + * @internal + */ + virtual UBool haveDefaultCentury() const override; - /** - * Returns the date of the start of the default century - * @return start of century - in milliseconds since epoch, 1970 - * @internal - */ - virtual UDate defaultCenturyStart() const; + /** + * Returns the date of the start of the default century + * @return start of century - in milliseconds since epoch, 1970 + * @internal + */ + virtual UDate defaultCenturyStart() const override; - /** - * Returns the year in which the default century begins - * @internal - */ - virtual int32_t defaultCenturyStartYear() const; + /** + * Returns the year in which the default century begins + * @internal + */ + virtual int32_t defaultCenturyStartYear() const override; private: // Calendar-specific implementation /** @@ -431,14 +431,14 @@ class U_I18N_API HebrewCalendar : public Calendar { static int32_t startOfYear(int32_t year, UErrorCode& status); static int32_t absoluteDayToDayOfWeek(int32_t day) ; - + /** - * @internal + * @internal */ int32_t yearType(int32_t year) const; /** - * @internal + * @internal */ static int32_t monthsInYear(int32_t year) ; }; @@ -447,5 +447,6 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ -#endif +#endif //eof + diff --git a/deps/icu-small/source/i18n/i18n.rc b/deps/icu-small/source/i18n/i18n.rc index 62fcbc738dd6f3..c31ef3ad5f78cd 100644 --- a/deps/icu-small/source/i18n/i18n.rc +++ b/deps/icu-small/source/i18n/i18n.rc @@ -18,7 +18,7 @@ #undef APSTUDIO_READONLY_SYMBOLS ///////////////////////////////////////////////////////////////////////////// -// +// LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL #pragma code_page(1252) @@ -29,17 +29,17 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE BEGIN "../common/msvcres.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE BEGIN "#include \0" END -3 TEXTINCLUDE +3 TEXTINCLUDE BEGIN "\r\n" "\0" @@ -107,3 +107,4 @@ END ///////////////////////////////////////////////////////////////////////////// #endif // not APSTUDIO_INVOKED + diff --git a/deps/icu-small/source/i18n/indiancal.cpp b/deps/icu-small/source/i18n/indiancal.cpp index 42a91c55e2f526..7bba7f5092059f 100644 --- a/deps/icu-small/source/i18n/indiancal.cpp +++ b/deps/icu-small/source/i18n/indiancal.cpp @@ -51,10 +51,10 @@ IndianCalendar::IndianCalendar(const IndianCalendar& other) : Calendar(other) { IndianCalendar::~IndianCalendar() { } -const char *IndianCalendar::getType() const { +const char *IndianCalendar::getType() const { return "indian"; } - + static const int32_t LIMITS[UCAL_FIELD_COUNT][4] = { // Minimum Greatest Least Maximum // Minimum Maximum @@ -91,13 +91,13 @@ int32_t IndianCalendar::handleGetLimit(UCalendarDateFields field, ELimitType lim } /* - * Determine whether the given gregorian year is a Leap year + * Determine whether the given gregorian year is a Leap year */ static UBool isGregorianLeap(int32_t year) { return Grego::isLeapYear(year); } - + //---------------------------------------------------------------------- // Calendar framework //---------------------------------------------------------------------- @@ -155,7 +155,7 @@ static int32_t* jdToGregorian(double jd, int32_t gregorianDate[3]) { return gregorianDate; } - + //------------------------------------------------------------------------- // Functions for converting from field values to milliseconds.... //------------------------------------------------------------------------- @@ -169,7 +169,7 @@ static double IndianToJD(int32_t year, int32_t month, int32_t date) { if(isGregorianLeap(gyear)) { leapMonth = 31; start = gregorianToJD(gyear, 2 /* The third month in 0 based month */, 21); - } + } else { leapMonth = 30; start = gregorianToJD(gyear, 2 /* The third month in 0 based month */, 22); @@ -205,10 +205,10 @@ static double IndianToJD(int32_t year, int32_t month, int32_t date) { */ int32_t IndianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, UBool /* useMonth */ ) const { - //month is 0 based; converting it to 1-based + //month is 0 based; converting it to 1-based int32_t imonth; - // If the month is out of range, adjust it into range, and adjust the extended eyar accordingly + // If the month is out of range, adjust it into range, and adjust the extended year accordingly if (month < 0 || month > 11) { eyear += (int32_t)ClockMath::floorDivide(month, 12, month); } @@ -216,9 +216,9 @@ int32_t IndianCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, UB if(month == 12){ imonth = 1; } else { - imonth = month + 1; + imonth = month + 1; } - + double jd = IndianToJD(eyear ,imonth, 1); return (int32_t)jd; @@ -249,7 +249,7 @@ int32_t IndianCalendar::handleGetExtendedYear() { *
  5. MONTH *
  6. DAY_OF_MONTH *
  7. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. @@ -296,7 +296,7 @@ void IndianCalendar::handleComputeFields(int32_t julianDay, UErrorCode& /* stat internalSet(UCAL_MONTH, IndianMonth); internalSet(UCAL_DAY_OF_MONTH, IndianDayOfMonth); internalSet(UCAL_DAY_OF_YEAR, yday + 1); // yday is 0-based -} +} UBool IndianCalendar::inDaylightTime(UErrorCode& status) const @@ -373,3 +373,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IndianCalendar) U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/indiancal.h b/deps/icu-small/source/i18n/indiancal.h index 1a06ebde408e9e..029515cf547b58 100644 --- a/deps/icu-small/source/i18n/indiancal.h +++ b/deps/icu-small/source/i18n/indiancal.h @@ -75,28 +75,28 @@ class U_I18N_API IndianCalendar : public Calendar { * @internal */ enum EEras { - /** - * Constant for Chaitra, the 1st month of the Indian year. + /** + * Constant for Chaitra, the 1st month of the Indian year. */ CHAITRA, /** - * Constant for Vaisakha, the 2nd month of the Indian year. + * Constant for Vaisakha, the 2nd month of the Indian year. */ VAISAKHA, /** - * Constant for Jyaistha, the 3rd month of the Indian year. + * Constant for Jyaistha, the 3rd month of the Indian year. */ JYAISTHA, /** - * Constant for Asadha, the 4th month of the Indian year. + * Constant for Asadha, the 4th month of the Indian year. */ ASADHA, /** - * Constant for Sravana, the 5th month of the Indian year. + * Constant for Sravana, the 5th month of the Indian year. */ SRAVANA, @@ -105,33 +105,33 @@ class U_I18N_API IndianCalendar : public Calendar { */ BHADRA, - /** - * Constant for the Asvina, the 7th month of the Indian year. + /** + * Constant for the Asvina, the 7th month of the Indian year. */ ASVINA, /** - * Constant for Kartika, the 8th month of the Indian year. + * Constant for Kartika, the 8th month of the Indian year. */ KARTIKA, /** - * Constant for Agrahayana, the 9th month of the Indian year. + * Constant for Agrahayana, the 9th month of the Indian year. */ AGRAHAYANA, /** - * Constant for Pausa, the 10th month of the Indian year. + * Constant for Pausa, the 10th month of the Indian year. */ PAUSA, /** - * Constant for Magha, the 11th month of the Indian year. + * Constant for Magha, the 11th month of the Indian year. */ MAGHA, /** - * Constant for Phalguna, the 12th month of the Indian year. + * Constant for Phalguna, the 12th month of the Indian year. */ PHALGUNA }; @@ -173,7 +173,7 @@ class U_I18N_API IndianCalendar : public Calendar { * @internal */ //void setCivil(ECivil beCivil, UErrorCode &status); - + /** * Returns true if this object is using the fixed-cycle civil * calendar, or false if using the religious, astronomical @@ -186,11 +186,11 @@ class U_I18N_API IndianCalendar : public Calendar { // TODO: copy c'tor, etc // clone - virtual IndianCalendar* clone() const; + virtual IndianCalendar* clone() const override; private: /** - * Determine whether a year is the gregorian year a leap year + * Determine whether a year is the gregorian year a leap year */ //static UBool isGregorianLeap(int32_t year); //---------------------------------------------------------------------- @@ -200,8 +200,8 @@ class U_I18N_API IndianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; - + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; + /** * Return the length (in days) of the given month. * @@ -209,13 +209,13 @@ class U_I18N_API IndianCalendar : public Calendar { * @param year The month(0-based) in Indian year * @internal */ - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; - + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; + /** * Return the number of days in the given Indian year * @internal */ - virtual int32_t handleGetYearLength(int32_t extendedYear) const; + virtual int32_t handleGetYearLength(int32_t extendedYear) const override; //------------------------------------------------------------------------- // Functions for converting from field values to milliseconds.... @@ -225,7 +225,7 @@ class U_I18N_API IndianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const; + virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const override; //------------------------------------------------------------------------- // Functions for converting from milliseconds to field values @@ -234,7 +234,7 @@ class U_I18N_API IndianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Override Calendar to compute several fields specific to the Indian @@ -246,22 +246,22 @@ class U_I18N_API IndianCalendar : public Calendar { *
  8. DAY_OF_MONTH *
  9. DAY_OF_YEAR *
  10. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; // UObject stuff - public: + public: /** * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -282,7 +282,7 @@ class U_I18N_API IndianCalendar : public Calendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; private: IndianCalendar(); // default constructor not implemented @@ -299,30 +299,33 @@ class U_I18N_API IndianCalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; /** * Returns true because the Indian Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; }; U_NAMESPACE_END #endif #endif + + + diff --git a/deps/icu-small/source/i18n/inputext.cpp b/deps/icu-small/source/i18n/inputext.cpp index 96e59b24d878ff..fa4939e8f4f1ae 100644 --- a/deps/icu-small/source/i18n/inputext.cpp +++ b/deps/icu-small/source/i18n/inputext.cpp @@ -68,7 +68,7 @@ void InputText::setDeclaredEncoding(const char* encoding, int32_t len) } } -UBool InputText::isSet() const +UBool InputText::isSet() const { return fRawInput != NULL; } @@ -76,7 +76,7 @@ UBool InputText::isSet() const /** * MungeInput - after getting a set of raw input data to be analyzed, preprocess * it by removing what appears to be html markup. -* +* * @internal */ void InputText::MungeInput(UBool fStripTags) { @@ -124,7 +124,7 @@ void InputText::MungeInput(UBool fStripTags) { // essentially nothing but markup abandon the markup stripping. // Detection will have to work on the unstripped input. // - if (openTags<5 || openTags/5 < badTags || + if (openTags<5 || openTags/5 < badTags || (fInputLen < 100 && fRawLength>600)) { int32_t limit = fRawLength; @@ -141,7 +141,7 @@ void InputText::MungeInput(UBool fStripTags) { } // - // Tally up the byte occurence statistics. + // Tally up the byte occurrence statistics. // These are available for use by the various detectors. // @@ -161,3 +161,4 @@ void InputText::MungeInput(UBool fStripTags) { U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/inputext.h b/deps/icu-small/source/i18n/inputext.h index 06ad627c622d47..fb92dc06343afa 100644 --- a/deps/icu-small/source/i18n/inputext.h +++ b/deps/icu-small/source/i18n/inputext.h @@ -23,7 +23,7 @@ #if !UCONFIG_NO_CONVERSION -U_NAMESPACE_BEGIN +U_NAMESPACE_BEGIN class InputText : public UMemory { @@ -35,7 +35,7 @@ class InputText : public UMemory void setText(const char *in, int32_t len); void setDeclaredEncoding(const char *encoding, int32_t len); - UBool isSet() const; + UBool isSet() const; void MungeInput(UBool fStripTags); // The text to be checked. Markup will have been @@ -44,14 +44,14 @@ class InputText : public UMemory int32_t fInputLen; // Length of the byte data in fInputBytes. // byte frequency statistics for the input text. // Value is percent, not absolute. - // Value is rounded up, so zero really means zero occurences. + // Value is rounded up, so zero really means zero occurrences. int16_t *fByteStats; UBool fC1Bytes; // True if any bytes in the range 0x80 - 0x9F are in the input;false by default char *fDeclaredEncoding; const uint8_t *fRawInput; // Original, untouched input bytes. // If user gave us a byte array, this is it. - // If user gave us a stream, it's read to a + // If user gave us a stream, it's read to a // buffer here. int32_t fRawLength; // Length of data in fRawInput array. diff --git a/deps/icu-small/source/i18n/islamcal.cpp b/deps/icu-small/source/i18n/islamcal.cpp index 6e21e51150ab88..de37e6b9398613 100644 --- a/deps/icu-small/source/i18n/islamcal.cpp +++ b/deps/icu-small/source/i18n/islamcal.cpp @@ -222,7 +222,7 @@ const char *IslamicCalendar::getType() const { sType = "islamic-umalqura"; break; default: - UPRV_UNREACHABLE; // out of range + UPRV_UNREACHABLE_EXIT; // out of range } return sType; } @@ -366,7 +366,7 @@ UBool IslamicCalendar::civilLeapYear(int32_t year) */ int32_t IslamicCalendar::yearStart(int32_t year) const{ if (cType == CIVIL || cType == TBLA || - (cType == UMALQURA && (year < UMALQURA_YEAR_START || year > UMALQURA_YEAR_END))) + (cType == UMALQURA && (year < UMALQURA_YEAR_START || year > UMALQURA_YEAR_END))) { return (year-1)*354 + ClockMath::floorDivide((3+11*(int64_t)year),(int64_t)30); } else if(cType==ASTRONOMICAL){ @@ -418,7 +418,7 @@ int32_t IslamicCalendar::trueMonthStart(int32_t month) const if (start==0) { // Make a guess at when the month started, using the average length - UDate origin = HIJRA_MILLIS + UDate origin = HIJRA_MILLIS + uprv_floor(month * CalendarAstronomer::SYNODIC_MONTH) * kOneDay; // moonAge will fail due to memory allocation error @@ -461,7 +461,7 @@ trueMonthStartEnd : /** * Return the "age" of the moon at the given time; this is the difference * in ecliptic latitude between the moon and the sun. This method simply -* calls CalendarAstronomer.moonAge, converts to degrees, +* calls CalendarAstronomer.moonAge, converts to degrees, * and adjusts the result to be in the range [-180, 180]. * * @param time The time at which the moon's age is desired, @@ -568,7 +568,7 @@ int32_t IslamicCalendar::handleComputeMonthStart(int32_t eyear, int32_t month, U month = (month % 12) + 11; } return monthStart(eyear, month) + ((cType == TBLA)? ASTRONOMICAL_EPOC: CIVIL_EPOC) - 1; -} +} //------------------------------------------------------------------------- // Functions for converting from milliseconds to field values @@ -597,7 +597,7 @@ int32_t IslamicCalendar::handleGetExtendedYear() { *
  11. DAY_OF_MONTH *
  12. DAY_OF_YEAR *
  13. EXTENDED_YEAR -* +* * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. @@ -654,14 +654,14 @@ void IslamicCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status) }else{ int y =UMALQURA_YEAR_START-1, m =0; long d = 1; - while(d > 0){ - y++; + while(d > 0){ + y++; d = days - yearStart(y) +1; if(d == handleGetYearLength(y)){ m=11; break; }else if(d < handleGetYearLength(y) ){ - int monthLen = handleGetMonthLength(y, m); + int monthLen = handleGetMonthLength(y, m); m=0; while(d > monthLen){ d -= monthLen; @@ -675,7 +675,7 @@ void IslamicCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status) month = m; } } else { // invalid 'civil' - UPRV_UNREACHABLE; // should not get here, out of range + UPRV_UNREACHABLE_EXIT; // should not get here, out of range } dayOfMonth = (days - monthStart(year, month)) + 1; @@ -689,14 +689,14 @@ void IslamicCalendar::handleComputeFields(int32_t julianDay, UErrorCode &status) internalSet(UCAL_EXTENDED_YEAR, year); internalSet(UCAL_MONTH, month); internalSet(UCAL_DAY_OF_MONTH, dayOfMonth); - internalSet(UCAL_DAY_OF_YEAR, dayOfYear); -} + internalSet(UCAL_DAY_OF_YEAR, dayOfYear); +} UBool IslamicCalendar::inDaylightTime(UErrorCode& status) const { // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) + if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) return FALSE; // Force an update of the state of the Calendar. @@ -707,7 +707,7 @@ IslamicCalendar::inDaylightTime(UErrorCode& status) const /** * The system maintains a static default century start date and Year. They are - * initialized the first time they are used. Once the system default century date + * initialized the first time they are used. Once the system default century date * and year are set, they do not change. */ static UDate gSystemDefaultCenturyStart = DBL_MIN; @@ -761,3 +761,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(IslamicCalendar) U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/islamcal.h b/deps/icu-small/source/i18n/islamcal.h index e12e04a6b9c8b4..a29b7daa086f44 100644 --- a/deps/icu-small/source/i18n/islamcal.h +++ b/deps/icu-small/source/i18n/islamcal.h @@ -32,7 +32,7 @@ U_NAMESPACE_BEGIN * is used as the civil calendar in most of the Arab world and the * liturgical calendar of the Islamic faith worldwide. This calendar * is also known as the "Hijri" calendar, since it starts at the time - * of Mohammed's emigration (or "hijra") to Medinah on Thursday, + * of Mohammed's emigration (or "hijra") to Medinah on Thursday, * July 15, 622 AD (Julian). *

    * The Islamic calendar is strictly lunar, and thus an Islamic year of twelve @@ -88,10 +88,10 @@ class U_I18N_API IslamicCalendar : public Calendar { //------------------------------------------------------------------------- // Constants... //------------------------------------------------------------------------- - + /** * Calendar type - civil or religious or um alqura - * @internal + * @internal */ enum ECalculationType { ASTRONOMICAL, @@ -99,86 +99,86 @@ class U_I18N_API IslamicCalendar : public Calendar { UMALQURA, TBLA }; - + /** * Constants for the months * @internal */ enum EMonths { /** - * Constant for Muharram, the 1st month of the Islamic year. + * Constant for Muharram, the 1st month of the Islamic year. * @internal */ MUHARRAM = 0, /** - * Constant for Safar, the 2nd month of the Islamic year. + * Constant for Safar, the 2nd month of the Islamic year. * @internal */ SAFAR = 1, /** - * Constant for Rabi' al-awwal (or Rabi' I), the 3rd month of the Islamic year. - * @internal + * Constant for Rabi' al-awwal (or Rabi' I), the 3rd month of the Islamic year. + * @internal */ RABI_1 = 2, /** - * Constant for Rabi' al-thani or (Rabi' II), the 4th month of the Islamic year. - * @internal + * Constant for Rabi' al-thani or (Rabi' II), the 4th month of the Islamic year. + * @internal */ RABI_2 = 3, /** - * Constant for Jumada al-awwal or (Jumada I), the 5th month of the Islamic year. - * @internal + * Constant for Jumada al-awwal or (Jumada I), the 5th month of the Islamic year. + * @internal */ JUMADA_1 = 4, /** - * Constant for Jumada al-thani or (Jumada II), the 6th month of the Islamic year. - * @internal + * Constant for Jumada al-thani or (Jumada II), the 6th month of the Islamic year. + * @internal */ JUMADA_2 = 5, /** - * Constant for Rajab, the 7th month of the Islamic year. - * @internal + * Constant for Rajab, the 7th month of the Islamic year. + * @internal */ RAJAB = 6, /** - * Constant for Sha'ban, the 8th month of the Islamic year. - * @internal + * Constant for Sha'ban, the 8th month of the Islamic year. + * @internal */ SHABAN = 7, /** - * Constant for Ramadan, the 9th month of the Islamic year. - * @internal + * Constant for Ramadan, the 9th month of the Islamic year. + * @internal */ RAMADAN = 8, /** - * Constant for Shawwal, the 10th month of the Islamic year. - * @internal + * Constant for Shawwal, the 10th month of the Islamic year. + * @internal */ SHAWWAL = 9, /** - * Constant for Dhu al-Qi'dah, the 11th month of the Islamic year. - * @internal + * Constant for Dhu al-Qi'dah, the 11th month of the Islamic year. + * @internal */ DHU_AL_QIDAH = 10, /** - * Constant for Dhu al-Hijjah, the 12th month of the Islamic year. - * @internal + * Constant for Dhu al-Hijjah, the 12th month of the Islamic year. + * @internal */ DHU_AL_HIJJAH = 11, - + ISLAMIC_MONTH_MAX - }; + }; //------------------------------------------------------------------------- @@ -217,7 +217,7 @@ class U_I18N_API IslamicCalendar : public Calendar { * @internal */ void setCalculationType(ECalculationType type, UErrorCode &status); - + /** * Returns true if this object is using the fixed-cycle civil * calendar, or false if using the religious, astronomical @@ -230,14 +230,14 @@ class U_I18N_API IslamicCalendar : public Calendar { // TODO: copy c'tor, etc // clone - virtual IslamicCalendar* clone() const; + virtual IslamicCalendar* clone() const override; private: /** * Determine whether a year is a leap year in the Islamic civil calendar */ static UBool civilLeapYear(int32_t year); - + /** * Return the day # on which the given year starts. Days are counted * from the Hijri epoch, origin 0. @@ -252,7 +252,7 @@ class U_I18N_API IslamicCalendar : public Calendar { * @param year The hijri month, 0-based */ int32_t monthStart(int32_t year, int32_t month) const; - + /** * Find the day number on which a particular month of the true/lunar * Islamic calendar starts. @@ -266,7 +266,7 @@ class U_I18N_API IslamicCalendar : public Calendar { /** * Return the "age" of the moon at the given time; this is the difference * in ecliptic latitude between the moon and the sun. This method simply - * calls CalendarAstronomer.moonAge, converts to degrees, + * calls CalendarAstronomer.moonAge, converts to degrees, * and adjusts the resultto be in the range [-180, 180]. * * @param time The time at which the moon's age is desired, @@ -277,7 +277,7 @@ class U_I18N_API IslamicCalendar : public Calendar { //------------------------------------------------------------------------- // Internal data.... // - + /** * CIVIL if this object uses the fixed-cycle Islamic civil calendar, * and ASTRONOMICAL if it approximates the true religious calendar using @@ -292,8 +292,8 @@ class U_I18N_API IslamicCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; - + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; + /** * Return the length (in days) of the given month. * @@ -301,14 +301,14 @@ class U_I18N_API IslamicCalendar : public Calendar { * @param year The hijri month, 0-based * @internal */ - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; - + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; + /** * Return the number of days in the given Islamic year * @internal */ - virtual int32_t handleGetYearLength(int32_t extendedYear) const; - + virtual int32_t handleGetYearLength(int32_t extendedYear) const override; + //------------------------------------------------------------------------- // Functions for converting from field values to milliseconds.... //------------------------------------------------------------------------- @@ -317,7 +317,7 @@ class U_I18N_API IslamicCalendar : public Calendar { /** * @internal */ - virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const; + virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const override; //------------------------------------------------------------------------- // Functions for converting from milliseconds to field values @@ -326,7 +326,7 @@ class U_I18N_API IslamicCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Override Calendar to compute several fields specific to the Islamic @@ -338,22 +338,22 @@ class U_I18N_API IslamicCalendar : public Calendar { *

  14. DAY_OF_MONTH *
  15. DAY_OF_YEAR *
  16. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; // UObject stuff - public: + public: /** * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -374,7 +374,7 @@ class U_I18N_API IslamicCalendar : public Calendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; private: IslamicCalendar(); // default constructor not implemented @@ -391,27 +391,27 @@ class U_I18N_API IslamicCalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; /** * Returns true because the Islamic Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; private: /** @@ -426,3 +426,6 @@ U_NAMESPACE_END #endif #endif + + + diff --git a/deps/icu-small/source/i18n/japancal.cpp b/deps/icu-small/source/i18n/japancal.cpp index e7e5f4fc5174f6..75a248f406ffe1 100644 --- a/deps/icu-small/source/i18n/japancal.cpp +++ b/deps/icu-small/source/i18n/japancal.cpp @@ -146,7 +146,7 @@ const char *JapaneseCalendar::getType() const return "japanese"; } -int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear) +int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear) { int32_t era = internalGetEra(); // TODO do we assume we can trust 'era'? What if it is denormalized? @@ -167,7 +167,7 @@ int32_t JapaneseCalendar::getDefaultMonthInYear(int32_t eyear) return month; } -int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month) +int32_t JapaneseCalendar::getDefaultDayInMonth(int32_t eyear, int32_t month) { int32_t era = internalGetEra(); int32_t day = 1; @@ -226,7 +226,7 @@ void JapaneseCalendar::handleComputeFields(int32_t julianDay, UErrorCode& status } /* -Disable pivoting +Disable pivoting */ UBool JapaneseCalendar::haveDefaultCentury() const { diff --git a/deps/icu-small/source/i18n/japancal.h b/deps/icu-small/source/i18n/japancal.h index d313fcd99ab508..88513440528b04 100644 --- a/deps/icu-small/source/i18n/japancal.h +++ b/deps/icu-small/source/i18n/japancal.h @@ -43,7 +43,7 @@ U_NAMESPACE_BEGIN * of that year were in the Showa era, e.g. "January 6, 64 Showa", while the rest * of the year was in the Heisei era, e.g. "January 7, 1 Heisei". This class * handles this distinction correctly when computing dates. However, in lenient - * mode either form of date is acceptable as input. + * mode either form of date is acceptable as input. *

    * In modern times, eras have started on January 8, 1868 AD, Gregorian (Meiji), * July 30, 1912 (Taisho), December 25, 1926 (Showa), and January 7, 1989 (Heisei). Constants @@ -67,7 +67,7 @@ class JapaneseCalendar : public GregorianCalendar { public: /** - * Check environment variable. + * Check environment variable. * @internal */ U_I18N_API static UBool U_EXPORT2 enableTentativeEra(void); @@ -116,20 +116,20 @@ class JapaneseCalendar : public GregorianCalendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual JapaneseCalendar* clone() const; + virtual JapaneseCalendar* clone() const override; /** - * Return the extended year defined by the current fields. In the + * Return the extended year defined by the current fields. In the * Japanese calendar case, this is equal to the equivalent extended Gregorian year. * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Return the maximum value that this field could have, given the current date. * @internal */ - virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const; + virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const override; public: @@ -143,7 +143,7 @@ class JapaneseCalendar : public GregorianCalendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -164,55 +164,55 @@ class JapaneseCalendar : public GregorianCalendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; /** * @return false - no default century in Japanese - * @internal + * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Not used - no default century. * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Not used - no default century. * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; private: JapaneseCalendar(); // default constructor not implemented protected: - /** + /** * Calculate the era for internal computation * @internal */ - virtual int32_t internalGetEra() const; + virtual int32_t internalGetEra() const override; /** * Compute fields from the JD * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode& status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode& status) override; /** * Calculate the limit for a specified type of limit and field * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /*** * Called by computeJulianDay. Returns the default month (0-based) for the year, - * taking year and era into account. Will return the first month of the given era, if + * taking year and era into account. Will return the first month of the given era, if * the current year is an ascension year. * @param eyear the extended year * @internal */ - virtual int32_t getDefaultMonthInYear(int32_t eyear); + virtual int32_t getDefaultMonthInYear(int32_t eyear) override; /*** * Called by computeJulianDay. Returns the default day (1-based) for the month, @@ -222,7 +222,7 @@ class JapaneseCalendar : public GregorianCalendar { * @param mon the month in the year * @internal */ - virtual int32_t getDefaultDayInMonth(int32_t eyear, int32_t month); + virtual int32_t getDefaultDayInMonth(int32_t eyear, int32_t month) override; }; U_NAMESPACE_END @@ -231,3 +231,4 @@ U_NAMESPACE_END #endif //eof + diff --git a/deps/icu-small/source/i18n/listformatter.cpp b/deps/icu-small/source/i18n/listformatter.cpp index e5c01c0ab32c2b..4142fa461dada8 100644 --- a/deps/icu-small/source/i18n/listformatter.cpp +++ b/deps/icu-small/source/i18n/listformatter.cpp @@ -444,7 +444,7 @@ struct ListFormatter::ListPatternsSink : public ResourceSink { } virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { aliasedStyle[0] = 0; if (value.getType() == URES_ALIAS) { setAliasedStyle(value.getAliasUnicodeString(errorCode)); diff --git a/deps/icu-small/source/i18n/measfmt.cpp b/deps/icu-small/source/i18n/measfmt.cpp index 6334c6f9fdf235..a9a56a3b58d9f8 100644 --- a/deps/icu-small/source/i18n/measfmt.cpp +++ b/deps/icu-small/source/i18n/measfmt.cpp @@ -364,7 +364,7 @@ MeasureFormat::MeasureFormat( const Locale &locale, UMeasureFormatWidth w, NumberFormat *nfToAdopt, - UErrorCode &status) + UErrorCode &status) : cache(NULL), numberFormat(NULL), pluralRules(NULL), @@ -427,12 +427,12 @@ MeasureFormat::~MeasureFormat() { delete listFormatter; } -UBool MeasureFormat::operator==(const Format &other) const { +bool MeasureFormat::operator==(const Format &other) const { if (this == &other) { // Same object, equal - return TRUE; + return true; } if (!Format::operator==(other)) { - return FALSE; + return false; } const MeasureFormat &rhs = static_cast(other); @@ -441,7 +441,7 @@ UBool MeasureFormat::operator==(const Format &other) const { // differing widths aren't equivalent if (fWidth != rhs.fWidth) { - return FALSE; + return false; } // Width the same check locales. // We don't need to check locales if both objects have same cache. @@ -451,10 +451,10 @@ UBool MeasureFormat::operator==(const Format &other) const { const char *rhsLocaleId = rhs.getLocaleID(status); if (U_FAILURE(status)) { // On failure, assume not equal - return FALSE; + return false; } if (uprv_strcmp(localeId, rhsLocaleId) != 0) { - return FALSE; + return false; } } // Locales same, check NumberFormat if shared data differs. @@ -649,7 +649,7 @@ UBool MeasureFormat::setMeasureFormatLocale(const Locale &locale, UErrorCode &st } initMeasureFormat(locale, fWidth, NULL, status); return U_SUCCESS(status); -} +} const NumberFormat &MeasureFormat::getNumberFormatInternal() const { return **numberFormat; diff --git a/deps/icu-small/source/i18n/measunit.cpp b/deps/icu-small/source/i18n/measunit.cpp index f57495e65a1b64..5ad3991974d59e 100644 --- a/deps/icu-small/source/i18n/measunit.cpp +++ b/deps/icu-small/source/i18n/measunit.cpp @@ -31,7 +31,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MeasureUnit) // the "End generated code" comment is auto generated code // and must not be edited manually. For instructions on how to correctly // update this code, refer to: -// http://site.icu-project.org/design/formatting/measureformat/updating-measure-unit +// https://icu.unicode.org/design/formatting/measureformat/updating-measure-unit // // Start generated code for measunit.cpp @@ -41,26 +41,26 @@ static const int32_t gOffsets[] = { 2, 7, 17, - 26, - 30, - 329, - 340, - 356, - 360, - 369, - 371, - 375, - 383, - 405, - 409, - 424, - 425, - 431, - 441, - 445, - 449, + 27, + 31, + 330, + 341, + 357, + 361, + 370, + 373, + 377, + 385, + 407, + 411, + 426, + 427, + 433, + 443, + 447, 451, - 485 + 453, + 487 }; static const int32_t kCurrencyOffset = 5; @@ -111,6 +111,7 @@ static const char * const gSubTypes[] = { "square-meter", "square-mile", "square-yard", + "item", "karat", "milligram-ofglucose-per-deciliter", "milligram-per-deciliter", @@ -463,6 +464,7 @@ static const char * const gSubTypes[] = { "kilojoule", "kilowatt-hour", "therm-us", + "kilowatt-hour-per-100-kilometer", "newton", "pound-force", "gigahertz", @@ -721,78 +723,86 @@ MeasureUnit MeasureUnit::getSquareYard() { return MeasureUnit(2, 9); } -MeasureUnit *MeasureUnit::createKarat(UErrorCode &status) { +MeasureUnit *MeasureUnit::createItem(UErrorCode &status) { return MeasureUnit::create(3, 0, status); } -MeasureUnit MeasureUnit::getKarat() { +MeasureUnit MeasureUnit::getItem() { return MeasureUnit(3, 0); } -MeasureUnit *MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode &status) { +MeasureUnit *MeasureUnit::createKarat(UErrorCode &status) { return MeasureUnit::create(3, 1, status); } -MeasureUnit MeasureUnit::getMilligramOfglucosePerDeciliter() { +MeasureUnit MeasureUnit::getKarat() { return MeasureUnit(3, 1); } -MeasureUnit *MeasureUnit::createMilligramPerDeciliter(UErrorCode &status) { +MeasureUnit *MeasureUnit::createMilligramOfglucosePerDeciliter(UErrorCode &status) { return MeasureUnit::create(3, 2, status); } -MeasureUnit MeasureUnit::getMilligramPerDeciliter() { +MeasureUnit MeasureUnit::getMilligramOfglucosePerDeciliter() { return MeasureUnit(3, 2); } -MeasureUnit *MeasureUnit::createMillimolePerLiter(UErrorCode &status) { +MeasureUnit *MeasureUnit::createMilligramPerDeciliter(UErrorCode &status) { return MeasureUnit::create(3, 3, status); } -MeasureUnit MeasureUnit::getMillimolePerLiter() { +MeasureUnit MeasureUnit::getMilligramPerDeciliter() { return MeasureUnit(3, 3); } -MeasureUnit *MeasureUnit::createMole(UErrorCode &status) { +MeasureUnit *MeasureUnit::createMillimolePerLiter(UErrorCode &status) { return MeasureUnit::create(3, 4, status); } -MeasureUnit MeasureUnit::getMole() { +MeasureUnit MeasureUnit::getMillimolePerLiter() { return MeasureUnit(3, 4); } -MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) { +MeasureUnit *MeasureUnit::createMole(UErrorCode &status) { return MeasureUnit::create(3, 5, status); } -MeasureUnit MeasureUnit::getPercent() { +MeasureUnit MeasureUnit::getMole() { return MeasureUnit(3, 5); } -MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) { +MeasureUnit *MeasureUnit::createPercent(UErrorCode &status) { return MeasureUnit::create(3, 6, status); } -MeasureUnit MeasureUnit::getPermille() { +MeasureUnit MeasureUnit::getPercent() { return MeasureUnit(3, 6); } -MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) { +MeasureUnit *MeasureUnit::createPermille(UErrorCode &status) { return MeasureUnit::create(3, 7, status); } -MeasureUnit MeasureUnit::getPartPerMillion() { +MeasureUnit MeasureUnit::getPermille() { return MeasureUnit(3, 7); } -MeasureUnit *MeasureUnit::createPermyriad(UErrorCode &status) { +MeasureUnit *MeasureUnit::createPartPerMillion(UErrorCode &status) { return MeasureUnit::create(3, 8, status); } -MeasureUnit MeasureUnit::getPermyriad() { +MeasureUnit MeasureUnit::getPartPerMillion() { return MeasureUnit(3, 8); } +MeasureUnit *MeasureUnit::createPermyriad(UErrorCode &status) { + return MeasureUnit::create(3, 9, status); +} + +MeasureUnit MeasureUnit::getPermyriad() { + return MeasureUnit(3, 9); +} + MeasureUnit *MeasureUnit::createLiterPer100Kilometers(UErrorCode &status) { return MeasureUnit::create(4, 0, status); } @@ -1145,22 +1155,30 @@ MeasureUnit MeasureUnit::getThermUs() { return MeasureUnit(9, 8); } -MeasureUnit *MeasureUnit::createNewton(UErrorCode &status) { +MeasureUnit *MeasureUnit::createKilowattHourPer100Kilometer(UErrorCode &status) { return MeasureUnit::create(10, 0, status); } -MeasureUnit MeasureUnit::getNewton() { +MeasureUnit MeasureUnit::getKilowattHourPer100Kilometer() { return MeasureUnit(10, 0); } -MeasureUnit *MeasureUnit::createPoundForce(UErrorCode &status) { +MeasureUnit *MeasureUnit::createNewton(UErrorCode &status) { return MeasureUnit::create(10, 1, status); } -MeasureUnit MeasureUnit::getPoundForce() { +MeasureUnit MeasureUnit::getNewton() { return MeasureUnit(10, 1); } +MeasureUnit *MeasureUnit::createPoundForce(UErrorCode &status) { + return MeasureUnit::create(10, 2, status); +} + +MeasureUnit MeasureUnit::getPoundForce() { + return MeasureUnit(10, 2); +} + MeasureUnit *MeasureUnit::createGigahertz(UErrorCode &status) { return MeasureUnit::create(11, 0, status); } @@ -2178,12 +2196,12 @@ const char *MeasureUnit::getIdentifier() const { return fImpl ? fImpl->identifier.data() : gSubTypes[getOffset()]; } -UBool MeasureUnit::operator==(const UObject& other) const { +bool MeasureUnit::operator==(const UObject& other) const { if (this == &other) { // Same object, equal - return TRUE; + return true; } if (typeid(*this) != typeid(other)) { // Different types, not equal - return FALSE; + return false; } const MeasureUnit &rhs = static_cast(other); return uprv_strcmp(getIdentifier(), rhs.getIdentifier()) == 0; diff --git a/deps/icu-small/source/i18n/measunit_extra.cpp b/deps/icu-small/source/i18n/measunit_extra.cpp index 76ada0e89cd668..8281119007949a 100644 --- a/deps/icu-small/source/i18n/measunit_extra.cpp +++ b/deps/icu-small/source/i18n/measunit_extra.cpp @@ -24,7 +24,6 @@ #include "unicode/bytestrie.h" #include "unicode/bytestriebuilder.h" #include "unicode/localpointer.h" -#include "unicode/measunit.h" #include "unicode/stringpiece.h" #include "unicode/stringtriebuilder.h" #include "unicode/ures.h" @@ -187,7 +186,7 @@ class SimpleUnitIdentifiersSink : public icu::ResourceSink { * @param noFallback Ignored. * @param status The standard ICU error code output parameter. */ - void put(const char * /*key*/, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) { + void put(const char * /*key*/, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) override { ResourceTable table = value.getTable(status); if (U_FAILURE(status)) return; @@ -275,7 +274,7 @@ class CategoriesSink : public icu::ResourceSink { explicit CategoriesSink(const UChar **out, int32_t &outSize, BytesTrieBuilder &trieBuilder) : outQuantitiesArray(out), outSize(outSize), trieBuilder(trieBuilder), outIndex(0) {} - void put(const char * /*key*/, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) { + void put(const char * /*key*/, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) override { ResourceArray array = value.getArray(status); if (U_FAILURE(status)) { return; @@ -335,9 +334,6 @@ char *gSerializedUnitExtrasStemTrie = nullptr; const UChar **gCategories = nullptr; // Number of items in `gCategories`. int32_t gCategoriesCount = 0; -// TODO: rather save an index into gCategories? -const char *kConsumption = "consumption"; -size_t kConsumptionLen = strlen("consumption"); // Serialized BytesTrie for mapping from base units to indices into gCategories. char *gSerializedUnitCategoriesTrie = nullptr; @@ -809,17 +805,13 @@ compareSingleUnits(const void* /*context*/, const void* left, const void* right) // Returns an index into the gCategories array, for the "unitQuantity" (aka // "type" or "category") associated with the given base unit identifier. Returns // -1 on failure, together with U_UNSUPPORTED_ERROR. -int32_t getUnitCategoryIndex(StringPiece baseUnitIdentifier, UErrorCode &status) { - umtx_initOnce(gUnitExtrasInitOnce, &initUnitExtras, status); - if (U_FAILURE(status)) { - return -1; - } - BytesTrie trie(gSerializedUnitCategoriesTrie); - UStringTrieResult result = trie.next(baseUnitIdentifier.data(), baseUnitIdentifier.length()); +int32_t getUnitCategoryIndex(BytesTrie &trie, StringPiece baseUnitIdentifier, UErrorCode &status) { + UStringTrieResult result = trie.reset().next(baseUnitIdentifier.data(), baseUnitIdentifier.length()); if (!USTRINGTRIE_HAS_VALUE(result)) { status = U_UNSUPPORTED_ERROR; return -1; } + return trie.getValue(); } @@ -847,29 +839,76 @@ umeas_getPrefixBase(UMeasurePrefix unitPrefix) { return 10; } -CharString U_I18N_API getUnitQuantity(StringPiece baseUnitIdentifier, UErrorCode &status) { +CharString U_I18N_API getUnitQuantity(const MeasureUnitImpl &baseMeasureUnitImpl, UErrorCode &status) { CharString result; - U_ASSERT(result.length() == 0); + MeasureUnitImpl baseUnitImpl = baseMeasureUnitImpl.copy(status); + UErrorCode localStatus = U_ZERO_ERROR; + umtx_initOnce(gUnitExtrasInitOnce, &initUnitExtras, status); if (U_FAILURE(status)) { return result; } - UErrorCode localStatus = U_ZERO_ERROR; - int32_t idx = getUnitCategoryIndex(baseUnitIdentifier, localStatus); + BytesTrie trie(gSerializedUnitCategoriesTrie); + + baseUnitImpl.serialize(status); + StringPiece identifier = baseUnitImpl.identifier.data(); + int32_t idx = getUnitCategoryIndex(trie, identifier, localStatus); + if (U_FAILURE(status)) { + return result; + } + + // In case the base unit identifier did not match any entry. if (U_FAILURE(localStatus)) { - // TODO(icu-units#130): support inverting any unit, with correct - // fallback logic: inversion and fallback may depend on presence or - // absence of a usage for that category. - if (uprv_strcmp(baseUnitIdentifier.data(), "meter-per-cubic-meter") == 0) { - result.append(kConsumption, (int32_t)kConsumptionLen, status); + localStatus = U_ZERO_ERROR; + baseUnitImpl.takeReciprocal(status); + baseUnitImpl.serialize(status); + identifier.set(baseUnitImpl.identifier.data()); + idx = getUnitCategoryIndex(trie, identifier, localStatus); + + if (U_FAILURE(status)) { return result; } + } + + // In case the reciprocal of the base unit identifier did not match any entry. + MeasureUnitImpl simplifiedUnit = baseMeasureUnitImpl.copyAndSimplify(status); + if (U_FAILURE(status)) { + return result; + } + if (U_FAILURE(localStatus)) { + localStatus = U_ZERO_ERROR; + simplifiedUnit.serialize(status); + identifier.set(simplifiedUnit.identifier.data()); + idx = getUnitCategoryIndex(trie, identifier, localStatus); + + if (U_FAILURE(status)) { + return result; + } + } + + // In case the simplified base unit identifier did not match any entry. + if (U_FAILURE(localStatus)) { + localStatus = U_ZERO_ERROR; + simplifiedUnit.takeReciprocal(status); + simplifiedUnit.serialize(status); + identifier.set(simplifiedUnit.identifier.data()); + idx = getUnitCategoryIndex(trie, identifier, localStatus); + + if (U_FAILURE(status)) { + return result; + } + } + + // If there is no match at all, throw an exception. + if (U_FAILURE(localStatus)) { status = U_INVALID_FORMAT_ERROR; return result; } + if (idx < 0 || idx >= gCategoriesCount) { status = U_INVALID_FORMAT_ERROR; return result; } + result.appendInvariantChars(gCategories[idx], u_strlen(gCategories[idx]), status); return result; } @@ -911,7 +950,7 @@ void SingleUnitImpl::appendNeutralIdentifier(CharString &result, UErrorCode &sta int32_t absPower = std::abs(this->dimensionality); U_ASSERT(absPower > 0); // "this function does not support the dimensionless single units"; - + if (absPower == 1) { // no-op } else if (absPower == 2) { @@ -989,6 +1028,33 @@ void MeasureUnitImpl::takeReciprocal(UErrorCode& /*status*/) { } } +MeasureUnitImpl MeasureUnitImpl::copyAndSimplify(UErrorCode &status) const { + MeasureUnitImpl result; + for (int32_t i = 0; i < singleUnits.length(); i++) { + const SingleUnitImpl &singleUnit = *this->singleUnits[i]; + + // The following `for` loop will cause time complexity to be O(n^2). + // However, n is very small (number of units, generally, at maximum equal to 10) + bool unitExist = false; + for (int32_t j = 0; j < result.singleUnits.length(); j++) { + if (uprv_strcmp(result.singleUnits[j]->getSimpleUnitID(), singleUnit.getSimpleUnitID()) == + 0 && + result.singleUnits[j]->unitPrefix == singleUnit.unitPrefix) { + unitExist = true; + result.singleUnits[j]->dimensionality = + result.singleUnits[j]->dimensionality + singleUnit.dimensionality; + break; + } + } + + if (!unitExist) { + result.appendSingleUnit(singleUnit, status); + } + } + + return result; +} + bool MeasureUnitImpl::appendSingleUnit(const SingleUnitImpl &singleUnit, UErrorCode &status) { identifier.clear(); diff --git a/deps/icu-small/source/i18n/measunit_impl.h b/deps/icu-small/source/i18n/measunit_impl.h index 5028210ab09b3d..c60ff2fc33bdc9 100644 --- a/deps/icu-small/source/i18n/measunit_impl.h +++ b/deps/icu-small/source/i18n/measunit_impl.h @@ -29,13 +29,14 @@ static const char kDefaultCurrency8[] = "XXX"; * empty. * * This only supports base units: other units must be resolved to base units - * before passing to this function, otherwise U_UNSUPPORTED_ERROR status will be + * before passing to this function, otherwise U_UNSUPPORTED_ERROR status may be * returned. * * Categories are found in `unitQuantities` in the `units` resource (see * `units.txt`). */ -CharString U_I18N_API getUnitQuantity(StringPiece baseUnitIdentifier, UErrorCode &status); +// TODO: make this function accepts any `MeasureUnit` as Java and move it to the `UnitsData` class. +CharString U_I18N_API getUnitQuantity(const MeasureUnitImpl &baseMeasureUnitImpl, UErrorCode &status); /** * A struct representing a single unit (optional SI or binary prefix, and dimensionality). @@ -96,6 +97,7 @@ struct U_I18N_API SingleUnitImpl : public UMemory { if (dimensionality > 0 && other.dimensionality < 0) { return -1; } + // Sort by official quantity order int32_t thisQuantity = this->getUnitCategoryIndex(); int32_t otherQuantity = other.getUnitCategoryIndex(); @@ -105,6 +107,7 @@ struct U_I18N_API SingleUnitImpl : public UMemory { if (thisQuantity > otherQuantity) { return 1; } + // If quantity order didn't help, then we go by index. if (index < other.index) { return -1; @@ -112,15 +115,39 @@ struct U_I18N_API SingleUnitImpl : public UMemory { if (index > other.index) { return 1; } - // TODO: revisit if the spec dictates prefix sort order - it doesn't - // currently. For now we're sorting binary prefixes before SI prefixes, - // as per enum values order. - if (unitPrefix < other.unitPrefix) { + + // When comparing binary prefixes vs SI prefixes, instead of comparing the actual values, we can + // multiply the binary prefix power by 3 and compare the powers. if they are equal, we can can + // compare the bases. + // NOTE: this methodology will fail if the binary prefix more than or equal 98. + int32_t unitBase = umeas_getPrefixBase(unitPrefix); + int32_t otherUnitBase = umeas_getPrefixBase(other.unitPrefix); + + // Values for comparison purposes only. + int32_t unitPower = unitBase == 1024 /* Binary Prefix */ ? umeas_getPrefixPower(unitPrefix) * 3 + : umeas_getPrefixPower(unitPrefix); + int32_t otherUnitPower = + otherUnitBase == 1024 /* Binary Prefix */ ? umeas_getPrefixPower(other.unitPrefix) * 3 + : umeas_getPrefixPower(other.unitPrefix); + + // NOTE: if the unitPower is less than the other, + // we return 1 not -1. Thus because we want th sorting order + // for the bigger prefix to be before the smaller. + // Example: megabyte should come before kilobyte. + if (unitPower < otherUnitPower) { + return 1; + } + if (unitPower > otherUnitPower) { return -1; } - if (unitPrefix > other.unitPrefix) { + + if (unitBase < otherUnitBase) { return 1; } + if (unitBase > otherUnitBase) { + return -1; + } + return 0; } @@ -211,7 +238,7 @@ class U_I18N_API MeasureUnitImpl : public UMemory { /** * Extract the MeasureUnitImpl from a MeasureUnit, or parse if it is not present. - * + * * @param measureUnit The source MeasureUnit. * @param memory A place to write the new MeasureUnitImpl if parsing is required. * @param status Set if an error occurs. @@ -251,10 +278,10 @@ class U_I18N_API MeasureUnitImpl : public UMemory { /** * Extracts the list of all the individual units inside the `MeasureUnitImpl` with their indices. - * For example: + * For example: * - if the `MeasureUnitImpl` is `foot-per-hour` - * it will return a list of 1 {(0, `foot-per-hour`)} - * - if the `MeasureUnitImpl` is `foot-and-inch` + * it will return a list of 1 {(0, `foot-per-hour`)} + * - if the `MeasureUnitImpl` is `foot-and-inch` * it will return a list of 2 {(0, `foot`), (1, `inch`)} */ MaybeStackVector @@ -263,6 +290,16 @@ class U_I18N_API MeasureUnitImpl : public UMemory { /** Mutates this MeasureUnitImpl to take the reciprocal. */ void takeReciprocal(UErrorCode& status); + /** + * Returns a simplified version of the unit. + * NOTE: the simplification happen when there are two units equals in their base unit and their + * prefixes. + * + * Example 1: "square-meter-per-meter" --> "meter" + * Example 2: "square-millimeter-per-meter" --> "square-millimeter-per-meter" + */ + MeasureUnitImpl copyAndSimplify(UErrorCode &status) const; + /** * Mutates this MeasureUnitImpl to append a single unit. * @@ -271,6 +308,11 @@ class U_I18N_API MeasureUnitImpl : public UMemory { */ bool appendSingleUnit(const SingleUnitImpl& singleUnit, UErrorCode& status); + /** + * Normalizes a MeasureUnitImpl and generate the identifier string in place. + */ + void serialize(UErrorCode &status); + /** The complexity, either SINGLE, COMPOUND, or MIXED. */ UMeasureUnitComplexity complexity = UMEASURE_UNIT_SINGLE; @@ -288,12 +330,6 @@ class U_I18N_API MeasureUnitImpl : public UMemory { */ CharString identifier; - private: - /** - * Normalizes a MeasureUnitImpl and generate the identifier string in place. - */ - void serialize(UErrorCode &status); - // For calling serialize // TODO(icu-units#147): revisit serialization friend class number::impl::LongNameHandler; diff --git a/deps/icu-small/source/i18n/measure.cpp b/deps/icu-small/source/i18n/measure.cpp index 23adba100707aa..b9c47fd401596d 100644 --- a/deps/icu-small/source/i18n/measure.cpp +++ b/deps/icu-small/source/i18n/measure.cpp @@ -60,12 +60,12 @@ Measure::~Measure() { delete unit; } -UBool Measure::operator==(const UObject& other) const { +bool Measure::operator==(const UObject& other) const { if (this == &other) { // Same object, equal - return TRUE; + return true; } if (typeid(*this) != typeid(other)) { // Different types, not equal - return FALSE; + return false; } const Measure &m = static_cast(other); return number == m.number && diff --git a/deps/icu-small/source/i18n/msgfmt.cpp b/deps/icu-small/source/i18n/msgfmt.cpp index d2631776e83bb0..b8cb2e2ca560fe 100644 --- a/deps/icu-small/source/i18n/msgfmt.cpp +++ b/deps/icu-small/source/i18n/msgfmt.cpp @@ -389,10 +389,10 @@ MessageFormat::operator=(const MessageFormat& that) return *this; } -UBool +bool MessageFormat::operator==(const Format& rhs) const { - if (this == &rhs) return TRUE; + if (this == &rhs) return true; MessageFormat& that = (MessageFormat&)rhs; @@ -400,37 +400,37 @@ MessageFormat::operator==(const Format& rhs) const if (!Format::operator==(rhs) || msgPattern != that.msgPattern || fLocale != that.fLocale) { - return FALSE; + return false; } // Compare hashtables. if ((customFormatArgStarts == NULL) != (that.customFormatArgStarts == NULL)) { - return FALSE; + return false; } if (customFormatArgStarts == NULL) { - return TRUE; + return true; } UErrorCode ec = U_ZERO_ERROR; const int32_t count = uhash_count(customFormatArgStarts); const int32_t rhs_count = uhash_count(that.customFormatArgStarts); if (count != rhs_count) { - return FALSE; + return false; } int32_t idx = 0, rhs_idx = 0, pos = UHASH_FIRST, rhs_pos = UHASH_FIRST; for (; idx < count && rhs_idx < rhs_count && U_SUCCESS(ec); ++idx, ++rhs_idx) { const UHashElement* cur = uhash_nextElement(customFormatArgStarts, &pos); const UHashElement* rhs_cur = uhash_nextElement(that.customFormatArgStarts, &rhs_pos); if (cur->key.integer != rhs_cur->key.integer) { - return FALSE; + return false; } const Format* format = (const Format*)uhash_iget(cachedFormatters, cur->key.integer); const Format* rhs_format = (const Format*)uhash_iget(that.cachedFormatters, rhs_cur->key.integer); if (*format != *rhs_format) { - return FALSE; + return false; } } - return TRUE; + return true; } // ------------------------------------- @@ -637,7 +637,7 @@ MessageFormat::adoptFormats(Format** newFormats, // ------------------------------------- // Sets the new formats array and updates the array count. -// This MessageFormat instance maks a copy of the new formats. +// This MessageFormat instance makes a copy of the new formats. void MessageFormat::setFormats(const Format** newFormats, @@ -862,7 +862,7 @@ MessageFormat::getFormatNames(UErrorCode& status) { fFormatNames->setDeleter(uprv_deleteUObject); for (int32_t partIndex = 0; (partIndex = nextTopLevelArgStart(partIndex)) >= 0;) { - fFormatNames->addElement(new UnicodeString(getArgName(partIndex + 1)), status); + fFormatNames->addElementX(new UnicodeString(getArgName(partIndex + 1)), status); } StringEnumeration* nameEnumerator = new FormatNameEnumeration(fFormatNames, status); @@ -1869,8 +1869,8 @@ UBool MessageFormat::equalFormats(const void* left, const void* right) { } -UBool MessageFormat::DummyFormat::operator==(const Format&) const { - return TRUE; +bool MessageFormat::DummyFormat::operator==(const Format&) const { + return true; } MessageFormat::DummyFormat* MessageFormat::DummyFormat::clone() const { diff --git a/deps/icu-small/source/i18n/msgfmt_impl.h b/deps/icu-small/source/i18n/msgfmt_impl.h index 0f77d12d0bb6e1..57988389132a67 100644 --- a/deps/icu-small/source/i18n/msgfmt_impl.h +++ b/deps/icu-small/source/i18n/msgfmt_impl.h @@ -17,7 +17,7 @@ #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING - + #include "unicode/msgfmt.h" #include "uvector.h" #include "unicode/strenum.h" @@ -29,10 +29,10 @@ class FormatNameEnumeration : public StringEnumeration { FormatNameEnumeration(UVector *fFormatNames, UErrorCode& status); virtual ~FormatNameEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: int32_t pos; UVector *fFormatNames; diff --git a/deps/icu-small/source/i18n/name2uni.cpp b/deps/icu-small/source/i18n/name2uni.cpp index 8e13b0025475ed..ffbbf152d33240 100644 --- a/deps/icu-small/source/i18n/name2uni.cpp +++ b/deps/icu-small/source/i18n/name2uni.cpp @@ -220,7 +220,7 @@ void NameUnicodeTransliterator::handleTransliterate(Replaceable& text, UTransPos openPos = -1; // close off candidate continue; // *** reprocess char32At(cursor) } - + // Check if c is a legal char. We assume here that // legal.contains(OPEN_DELIM) is FALSE, so when we abort a // name, we don't have to go back to openPos+1. @@ -232,7 +232,7 @@ void NameUnicodeTransliterator::handleTransliterate(Replaceable& text, UTransPos mode = 0; } } - + // Invalid character else { --cursor; // Backup and reprocess this character @@ -244,7 +244,7 @@ void NameUnicodeTransliterator::handleTransliterate(Replaceable& text, UTransPos cursor += U16_LENGTH(c); } - + offsets.contextLimit += limit - offsets.limit; offsets.limit = limit; // In incremental mode, only advance the cursor up to the last diff --git a/deps/icu-small/source/i18n/name2uni.h b/deps/icu-small/source/i18n/name2uni.h index 44ad85fb822cb3..6881c6bc85745c 100644 --- a/deps/icu-small/source/i18n/name2uni.h +++ b/deps/icu-small/source/i18n/name2uni.h @@ -49,12 +49,12 @@ class NameUnicodeTransliterator : public Transliterator { * Transliterator API. * @return A copy of the object. */ - virtual NameUnicodeTransliterator* clone() const; + virtual NameUnicodeTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -73,7 +73,7 @@ class NameUnicodeTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; /** * Set of characters which occur in Unicode character names. diff --git a/deps/icu-small/source/i18n/nfrlist.h b/deps/icu-small/source/i18n/nfrlist.h index db28c4d36f8d18..3eb1882b2f957e 100644 --- a/deps/icu-small/source/i18n/nfrlist.h +++ b/deps/icu-small/source/i18n/nfrlist.h @@ -38,7 +38,7 @@ class NFRuleList : public UMemory { uint32_t fCount; uint32_t fCapacity; public: - NFRuleList(uint32_t capacity = 10) + NFRuleList(uint32_t capacity = 10) : fStuff(capacity ? (NFRule**)uprv_malloc(capacity * sizeof(NFRule*)) : NULL) , fCount(0) , fCapacity(capacity) {} @@ -52,9 +52,9 @@ class NFRuleList : public UMemory { } NFRule* operator[](uint32_t index) const { return fStuff != NULL ? fStuff[index] : NULL; } NFRule* remove(uint32_t index) { - if (fStuff == NULL) { - return NULL; - } + if (fStuff == NULL) { + return NULL; + } NFRule* result = fStuff[index]; fCount -= 1; for (uint32_t i = index; i < fCount; ++i) { // assumes small arrays @@ -68,10 +68,10 @@ class NFRuleList : public UMemory { fStuff = (NFRule**)uprv_realloc(fStuff, fCapacity * sizeof(NFRule*)); // assume success } if (fStuff != NULL) { - fStuff[fCount++] = thing; + fStuff[fCount++] = thing; } else { - fCapacity = 0; - fCount = 0; + fCapacity = 0; + fCount = 0; } } uint32_t size() const { return fCount; } diff --git a/deps/icu-small/source/i18n/nfrs.cpp b/deps/icu-small/source/i18n/nfrs.cpp index 11056dbc68281e..df04e33e04ff12 100644 --- a/deps/icu-small/source/i18n/nfrs.cpp +++ b/deps/icu-small/source/i18n/nfrs.cpp @@ -344,7 +344,7 @@ util_equalRules(const NFRule* rule1, const NFRule* rule2) return FALSE; } -UBool +bool NFRuleSet::operator==(const NFRuleSet& rhs) const { if (rules.size() == rhs.rules.size() && @@ -354,19 +354,19 @@ NFRuleSet::operator==(const NFRuleSet& rhs) const // ...then compare the non-numerical rule lists... for (int i = 0; i < NON_NUMERICAL_RULE_LENGTH; i++) { if (!util_equalRules(nonNumericalRules[i], rhs.nonNumericalRules[i])) { - return FALSE; + return false; } } // ...then compare the rule lists... for (uint32_t i = 0; i < rules.size(); ++i) { if (*rules[i] != *rhs.rules[i]) { - return FALSE; + return false; } } - return TRUE; + return true; } - return FALSE; + return false; } void @@ -630,7 +630,7 @@ NFRuleSet::findFractionRuleSetRule(double number) const // value, then the first one (the one we found above) is used if // the numerator of the fraction is 1 and the second one is used if // the numerator of the fraction is anything else (this lets us - // do things like "one third"/"two thirds" without haveing to define + // do things like "one third"/"two thirds" without having to define // a whole bunch of extra rule sets) if ((unsigned)(winner + 1) < rules.size() && rules[winner + 1]->getBaseValue() == rules[winner]->getBaseValue()) { @@ -762,7 +762,7 @@ NFRuleSet::parse(const UnicodeString& text, ParsePosition& pos, double upperBoun #ifdef RBNF_DEBUG fprintf(stderr, " exit\n"); #endif - // finally, update the parse postion we were passed to point to the + // finally, update the parse position we were passed to point to the // first character we didn't use, and return the result that // corresponds to that string of characters pos = highWaterMark; @@ -821,7 +821,7 @@ int64_t util64_fromDouble(double d) { } else if (d > mant) { d = mant; } - UBool neg = d < 0; + UBool neg = d < 0; if (neg) { d = -d; } @@ -852,12 +852,12 @@ uint64_t util64_pow(uint32_t base, uint16_t exponent) { return result; } -static const uint8_t asciiDigits[] = { +static const uint8_t asciiDigits[] = { 0x30u, 0x31u, 0x32u, 0x33u, 0x34u, 0x35u, 0x36u, 0x37u, 0x38u, 0x39u, 0x61u, 0x62u, 0x63u, 0x64u, 0x65u, 0x66u, 0x67u, 0x68u, 0x69u, 0x6au, 0x6bu, 0x6cu, 0x6du, 0x6eu, 0x6fu, 0x70u, 0x71u, 0x72u, 0x73u, 0x74u, 0x75u, 0x76u, - 0x77u, 0x78u, 0x79u, 0x7au, + 0x77u, 0x78u, 0x79u, 0x7au, }; static const UChar kUMinus = (UChar)0x002d; @@ -938,7 +938,7 @@ int64_t util64_utoi(const UChar* str, uint32_t radix) } uint32_t util64_toa(int64_t w, char* buf, uint32_t len, uint32_t radix, UBool raw) -{ +{ if (radix > 36) { radix = 36; } else if (radix < 2) { @@ -984,7 +984,7 @@ uint32_t util64_toa(int64_t w, char* buf, uint32_t len, uint32_t radix, UBool ra #endif uint32_t util64_tou(int64_t w, UChar* buf, uint32_t len, uint32_t radix, UBool raw) -{ +{ if (radix > 36) { radix = 36; } else if (radix < 2) { diff --git a/deps/icu-small/source/i18n/nfrs.h b/deps/icu-small/source/i18n/nfrs.h index e9b955ddff142d..a6ad3a3bb7f05d 100644 --- a/deps/icu-small/source/i18n/nfrs.h +++ b/deps/icu-small/source/i18n/nfrs.h @@ -40,8 +40,8 @@ class NFRuleSet : public UMemory { ~NFRuleSet(); - UBool operator==(const NFRuleSet& rhs) const; - UBool operator!=(const NFRuleSet& rhs) const { return !operator==(rhs); } + bool operator==(const NFRuleSet& rhs) const; + bool operator!=(const NFRuleSet& rhs) const { return !operator==(rhs); } UBool isPublic() const { return fIsPublic; } @@ -66,7 +66,7 @@ class NFRuleSet : public UMemory { const NFRule * findNormalRule(int64_t number) const; const NFRule * findDoubleRule(double number) const; const NFRule * findFractionRuleSetRule(double number) const; - + friend class NFSubstitution; private: diff --git a/deps/icu-small/source/i18n/nfrule.cpp b/deps/icu-small/source/i18n/nfrule.cpp index cba41d14bb1fa8..4bb0785127f7ec 100644 --- a/deps/icu-small/source/i18n/nfrule.cpp +++ b/deps/icu-small/source/i18n/nfrule.cpp @@ -115,7 +115,7 @@ NFRule::makeRules(UnicodeString& description, // we know we're making at least one rule, so go ahead and // new it up and initialize its basevalue and divisor // (this also strips the rule descriptor, if any, off the - // descripton string) + // description string) NFRule* rule1 = new NFRule(rbnf, description, status); /* test for NULL */ if (rule1 == 0) { @@ -193,7 +193,7 @@ NFRule::makeRules(UnicodeString& description, rule2->radix = rule1->radix; rule2->exponent = rule1->exponent; - // rule2's rule text omits the stuff in brackets: initalize + // rule2's rule text omits the stuff in brackets: initialize // its rule text and substitutions accordingly sbuf.append(description, 0, brack1); if (brack2 + 1 < description.length()) { @@ -631,7 +631,7 @@ util_equalSubstitutions(const NFSubstitution* sub1, const NFSubstitution* sub2) * @param that The rule to compare this one against * @return True is the two rules are functionally equivalent */ -UBool +bool NFRule::operator==(const NFRule& rhs) const { return baseValue == rhs.baseValue @@ -1107,14 +1107,14 @@ NFRule::stripPrefix(UnicodeString& text, const UnicodeString& prefix, ParsePosit { // if the prefix text is empty, dump out without doing anything if (prefix.length() != 0) { - UErrorCode status = U_ZERO_ERROR; + UErrorCode status = U_ZERO_ERROR; // use prefixLength() to match the beginning of // "text" against "prefix". This function returns the // number of characters from "text" that matched (or 0 if // we didn't match the whole prefix) int32_t pfl = prefixLength(text, prefix, status); if (U_FAILURE(status)) { // Memory allocation error. - return; + return; } if (pfl != 0) { // if we got a successful match, update the parse position @@ -1170,9 +1170,9 @@ NFRule::matchToDelimiter(const UnicodeString& text, // use "sub"'s doParse() method to match the text before the // instance of "delimiter" we just found. if (!allIgnorable(delimiter, status)) { - if (U_FAILURE(status)) { //Memory allocation error. - return 0; - } + if (U_FAILURE(status)) { //Memory allocation error. + return 0; + } ParsePosition tempPP; Formattable result; @@ -1533,7 +1533,7 @@ NFRule::findTextLenient(const UnicodeString& str, // in JDK 1.2, CollationElementIterator provides us with an // API to map between character offsets and collation elements // and we can do this by marching through the string comparing - // collation elements. We can't do that in JDK 1.1. Insted, + // collation elements. We can't do that in JDK 1.1. Instead, // we have to go through this horrible slow mess: int32_t p = startingAt; int32_t keyLen = 0; diff --git a/deps/icu-small/source/i18n/nfrule.h b/deps/icu-small/source/i18n/nfrule.h index 12431c0dba33e8..5e615e485c8077 100644 --- a/deps/icu-small/source/i18n/nfrule.h +++ b/deps/icu-small/source/i18n/nfrule.h @@ -45,17 +45,17 @@ class NFRule : public UMemory { }; static void makeRules(UnicodeString& definition, - NFRuleSet* ruleSet, - const NFRule* predecessor, - const RuleBasedNumberFormat* rbnf, + NFRuleSet* ruleSet, + const NFRule* predecessor, + const RuleBasedNumberFormat* rbnf, NFRuleList& ruleList, UErrorCode& status); NFRule(const RuleBasedNumberFormat* rbnf, const UnicodeString &ruleText, UErrorCode &status); ~NFRule(); - UBool operator==(const NFRule& rhs) const; - UBool operator!=(const NFRule& rhs) const { return !operator==(rhs); } + bool operator==(const NFRule& rhs) const; + bool operator!=(const NFRule& rhs) const { return !operator==(rhs); } ERuleType getType() const { return (ERuleType)(baseValue <= kNoBase ? (ERuleType)baseValue : kOtherRule); } void setType(ERuleType ruleType) { baseValue = (int32_t)ruleType; } @@ -70,9 +70,9 @@ class NFRule : public UMemory { void doFormat(int64_t number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const; void doFormat(double number, UnicodeString& toAppendTo, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - UBool doParse(const UnicodeString& text, - ParsePosition& pos, - UBool isFractional, + UBool doParse(const UnicodeString& text, + ParsePosition& pos, + UBool isFractional, double upperBound, uint32_t nonNumericalExecutedRuleMask, Formattable& result) const; @@ -81,7 +81,7 @@ class NFRule : public UMemory { void _appendRuleText(UnicodeString& result) const; - int32_t findTextLenient(const UnicodeString& str, const UnicodeString& key, + int32_t findTextLenient(const UnicodeString& str, const UnicodeString& key, int32_t startingAt, int32_t* resultCount) const; void setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErrorCode& status); @@ -90,18 +90,18 @@ class NFRule : public UMemory { void parseRuleDescriptor(UnicodeString& descriptor, UErrorCode& status); void extractSubstitutions(const NFRuleSet* ruleSet, const UnicodeString &ruleText, const NFRule* predecessor, UErrorCode& status); NFSubstitution* extractSubstitution(const NFRuleSet* ruleSet, const NFRule* predecessor, UErrorCode& status); - + int16_t expectedExponent() const; int32_t indexOfAnyRulePrefix() const; double matchToDelimiter(const UnicodeString& text, int32_t startPos, double baseValue, - const UnicodeString& delimiter, ParsePosition& pp, const NFSubstitution* sub, + const UnicodeString& delimiter, ParsePosition& pp, const NFSubstitution* sub, uint32_t nonNumericalExecutedRuleMask, double upperBound) const; void stripPrefix(UnicodeString& text, const UnicodeString& prefix, ParsePosition& pp) const; int32_t prefixLength(const UnicodeString& str, const UnicodeString& prefix, UErrorCode& status) const; UBool allIgnorable(const UnicodeString& str, UErrorCode& status) const; - int32_t findText(const UnicodeString& str, const UnicodeString& key, + int32_t findText(const UnicodeString& str, const UnicodeString& key, int32_t startingAt, int32_t* resultCount) const; private: @@ -126,3 +126,4 @@ U_NAMESPACE_END // NFRULE_H #endif + diff --git a/deps/icu-small/source/i18n/nfsubs.cpp b/deps/icu-small/source/i18n/nfsubs.cpp index e3ea3938835ea3..70ac18be468635 100644 --- a/deps/icu-small/source/i18n/nfsubs.cpp +++ b/deps/icu-small/source/i18n/nfsubs.cpp @@ -58,15 +58,15 @@ class SameValueSubstitution : public NFSubstitution { UErrorCode& status); virtual ~SameValueSubstitution(); - virtual int64_t transformNumber(int64_t number) const { return number; } - virtual double transformNumber(double number) const { return number; } - virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const { return newRuleValue; } - virtual double calcUpperBound(double oldUpperBound) const { return oldUpperBound; } - virtual UChar tokenChar() const { return (UChar)0x003d; } // '=' + virtual int64_t transformNumber(int64_t number) const override { return number; } + virtual double transformNumber(double number) const override { return number; } + virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const override { return newRuleValue; } + virtual double calcUpperBound(double oldUpperBound) const override { return oldUpperBound; } + virtual UChar tokenChar() const override { return (UChar)0x003d; } // '=' public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; SameValueSubstitution::~SameValueSubstitution() {} @@ -88,7 +88,7 @@ class MultiplierSubstitution : public NFSubstitution { } virtual ~MultiplierSubstitution(); - virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) { + virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) override { divisor = util64_pow(radix, exponent); if(divisor == 0) { @@ -96,13 +96,13 @@ class MultiplierSubstitution : public NFSubstitution { } } - virtual UBool operator==(const NFSubstitution& rhs) const; + virtual bool operator==(const NFSubstitution& rhs) const override; - virtual int64_t transformNumber(int64_t number) const { + virtual int64_t transformNumber(int64_t number) const override { return number / divisor; } - virtual double transformNumber(double number) const { + virtual double transformNumber(double number) const override { if (getRuleSet()) { return uprv_floor(number / divisor); } else { @@ -110,17 +110,17 @@ class MultiplierSubstitution : public NFSubstitution { } } - virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const { + virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const override { return newRuleValue * divisor; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return static_cast(divisor); } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return static_cast(divisor); } - virtual UChar tokenChar() const { return (UChar)0x003c; } // '<' + virtual UChar tokenChar() const override { return (UChar)0x003c; } // '<' public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; MultiplierSubstitution::~MultiplierSubstitution() {} @@ -137,7 +137,7 @@ class ModulusSubstitution : public NFSubstitution { UErrorCode& status); virtual ~ModulusSubstitution(); - virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) { + virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status) override { divisor = util64_pow(radix, exponent); if (divisor == 0) { @@ -145,37 +145,37 @@ class ModulusSubstitution : public NFSubstitution { } } - virtual UBool operator==(const NFSubstitution& rhs) const; + virtual bool operator==(const NFSubstitution& rhs) const override; - virtual void doSubstitution(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; + virtual void doSubstitution(int64_t number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const override; + virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const override; - virtual int64_t transformNumber(int64_t number) const { return number % divisor; } - virtual double transformNumber(double number) const { return uprv_fmod(number, static_cast(divisor)); } + virtual int64_t transformNumber(int64_t number) const override { return number % divisor; } + virtual double transformNumber(double number) const override { return uprv_fmod(number, static_cast(divisor)); } - virtual UBool doParse(const UnicodeString& text, + virtual UBool doParse(const UnicodeString& text, ParsePosition& parsePosition, double baseValue, double upperBound, UBool lenientParse, uint32_t nonNumericalExecutedRuleMask, - Formattable& result) const; + Formattable& result) const override; - virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const { + virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const override { return oldRuleValue - uprv_fmod(oldRuleValue, static_cast(divisor)) + newRuleValue; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return static_cast(divisor); } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return static_cast(divisor); } - virtual UBool isModulusSubstitution() const { return TRUE; } + virtual UBool isModulusSubstitution() const override { return TRUE; } - virtual UChar tokenChar() const { return (UChar)0x003e; } // '>' + virtual UChar tokenChar() const override { return (UChar)0x003e; } // '>' - virtual void toString(UnicodeString& result) const; + virtual void toString(UnicodeString& result) const override; public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; ModulusSubstitution::~ModulusSubstitution() {} @@ -189,15 +189,15 @@ class IntegralPartSubstitution : public NFSubstitution { : NFSubstitution(_pos, _ruleSet, description, status) {} virtual ~IntegralPartSubstitution(); - virtual int64_t transformNumber(int64_t number) const { return number; } - virtual double transformNumber(double number) const { return uprv_floor(number); } - virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const { return newRuleValue + oldRuleValue; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return DBL_MAX; } - virtual UChar tokenChar() const { return (UChar)0x003c; } // '<' + virtual int64_t transformNumber(int64_t number) const override { return number; } + virtual double transformNumber(double number) const override { return uprv_floor(number); } + virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const override { return newRuleValue + oldRuleValue; } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return DBL_MAX; } + virtual UChar tokenChar() const override { return (UChar)0x003c; } // '<' public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; IntegralPartSubstitution::~IntegralPartSubstitution() {} @@ -213,12 +213,12 @@ class FractionalPartSubstitution : public NFSubstitution { UErrorCode& status); virtual ~FractionalPartSubstitution(); - virtual UBool operator==(const NFSubstitution& rhs) const; + virtual bool operator==(const NFSubstitution& rhs) const override; - virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - virtual void doSubstitution(int64_t /*number*/, UnicodeString& /*toInsertInto*/, int32_t /*_pos*/, int32_t /*recursionCount*/, UErrorCode& /*status*/) const {} - virtual int64_t transformNumber(int64_t /*number*/) const { return 0; } - virtual double transformNumber(double number) const { return number - uprv_floor(number); } + virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const override; + virtual void doSubstitution(int64_t /*number*/, UnicodeString& /*toInsertInto*/, int32_t /*_pos*/, int32_t /*recursionCount*/, UErrorCode& /*status*/) const override {} + virtual int64_t transformNumber(int64_t /*number*/) const override { return 0; } + virtual double transformNumber(double number) const override { return number - uprv_floor(number); } virtual UBool doParse(const UnicodeString& text, ParsePosition& parsePosition, @@ -226,15 +226,15 @@ class FractionalPartSubstitution : public NFSubstitution { double upperBound, UBool lenientParse, uint32_t nonNumericalExecutedRuleMask, - Formattable& result) const; + Formattable& result) const override; - virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const { return newRuleValue + oldRuleValue; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return 0.0; } - virtual UChar tokenChar() const { return (UChar)0x003e; } // '>' + virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const override { return newRuleValue + oldRuleValue; } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return 0.0; } + virtual UChar tokenChar() const override { return (UChar)0x003e; } // '>' public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; FractionalPartSubstitution::~FractionalPartSubstitution() {} @@ -248,15 +248,15 @@ class AbsoluteValueSubstitution : public NFSubstitution { : NFSubstitution(_pos, _ruleSet, description, status) {} virtual ~AbsoluteValueSubstitution(); - virtual int64_t transformNumber(int64_t number) const { return number >= 0 ? number : -number; } - virtual double transformNumber(double number) const { return uprv_fabs(number); } - virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const { return -newRuleValue; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return DBL_MAX; } - virtual UChar tokenChar() const { return (UChar)0x003e; } // '>' + virtual int64_t transformNumber(int64_t number) const override { return number >= 0 ? number : -number; } + virtual double transformNumber(double number) const override { return uprv_fabs(number); } + virtual double composeRuleValue(double newRuleValue, double /*oldRuleValue*/) const override { return -newRuleValue; } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return DBL_MAX; } + virtual UChar tokenChar() const override { return (UChar)0x003e; } // '>' public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; AbsoluteValueSubstitution::~AbsoluteValueSubstitution() {} @@ -278,37 +278,37 @@ class NumeratorSubstitution : public NFSubstitution { NFRuleSet* _ruleSet, const UnicodeString& description, UErrorCode& status) - : NFSubstitution(_pos, _ruleSet, fixdesc(description), status), denominator(_denominator) + : NFSubstitution(_pos, _ruleSet, fixdesc(description), status), denominator(_denominator) { ldenominator = util64_fromDouble(denominator); withZeros = description.endsWith(LTLT, 2); } virtual ~NumeratorSubstitution(); - virtual UBool operator==(const NFSubstitution& rhs) const; + virtual bool operator==(const NFSubstitution& rhs) const override; - virtual int64_t transformNumber(int64_t number) const { return number * ldenominator; } - virtual double transformNumber(double number) const { return uprv_round(number * denominator); } + virtual int64_t transformNumber(int64_t number) const override { return number * ldenominator; } + virtual double transformNumber(double number) const override { return uprv_round(number * denominator); } - virtual void doSubstitution(int64_t /*number*/, UnicodeString& /*toInsertInto*/, int32_t /*_pos*/, int32_t /*recursionCount*/, UErrorCode& /*status*/) const {} - virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - virtual UBool doParse(const UnicodeString& text, + virtual void doSubstitution(int64_t /*number*/, UnicodeString& /*toInsertInto*/, int32_t /*_pos*/, int32_t /*recursionCount*/, UErrorCode& /*status*/) const override {} + virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const override; + virtual UBool doParse(const UnicodeString& text, ParsePosition& parsePosition, double baseValue, double upperBound, UBool /*lenientParse*/, uint32_t nonNumericalExecutedRuleMask, - Formattable& result) const; + Formattable& result) const override; - virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const { return newRuleValue / oldRuleValue; } - virtual double calcUpperBound(double /*oldUpperBound*/) const { return denominator; } - virtual UChar tokenChar() const { return (UChar)0x003c; } // '<' + virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const override { return newRuleValue / oldRuleValue; } + virtual double calcUpperBound(double /*oldUpperBound*/) const override { return denominator; } + virtual UChar tokenChar() const override { return (UChar)0x003c; } // '<' private: static const UChar LTLT[2]; public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; NumeratorSubstitution::~NumeratorSubstitution() {} @@ -515,7 +515,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(NFSubstitution) * @param The substitution to compare this one to * @return true if the two substitutions are functionally equivalent */ -UBool +bool NFSubstitution::operator==(const NFSubstitution& rhs) const { // compare class and all of the fields all substitutions have @@ -592,20 +592,20 @@ NFSubstitution::doSubstitution(int64_t number, UnicodeString& toInsertInto, int3 UnicodeString temp; numberFormat->format(numberToFormat, temp, status); toInsertInto.insert(_pos + this->pos, temp); - } - else { - // We have gone beyond double precision. Something has to give. - // We're favoring accuracy of the large number over potential rules - // that round like a CompactDecimalFormat, which is not a common use case. - // - // Perform a transformation on the number that is dependent - // on the type of substitution this is, then just call its - // rule set's format() method to format the result - int64_t numberToFormat = transformNumber(number); + } + else { + // We have gone beyond double precision. Something has to give. + // We're favoring accuracy of the large number over potential rules + // that round like a CompactDecimalFormat, which is not a common use case. + // + // Perform a transformation on the number that is dependent + // on the type of substitution this is, then just call its + // rule set's format() method to format the result + int64_t numberToFormat = transformNumber(number); UnicodeString temp; numberFormat->format(numberToFormat, temp, status); toInsertInto.insert(_pos + this->pos, temp); - } + } } } @@ -810,7 +810,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(SameValueSubstitution) UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MultiplierSubstitution) -UBool MultiplierSubstitution::operator==(const NFSubstitution& rhs) const +bool MultiplierSubstitution::operator==(const NFSubstitution& rhs) const { return NFSubstitution::operator==(rhs) && divisor == ((const MultiplierSubstitution*)&rhs)->divisor; @@ -845,7 +845,7 @@ ModulusSubstitution::ModulusSubstitution(int32_t _pos, } if (0 == description.compare(gGreaterGreaterGreaterThan, 3)) { - // the >>> token doesn't alter how this substituion calculates the + // the >>> token doesn't alter how this substitution calculates the // values it uses for formatting and parsing, but it changes // what's done with that value after it's obtained: >>> short- // circuits the rule-search process and goes straight to the @@ -856,7 +856,7 @@ ModulusSubstitution::ModulusSubstitution(int32_t _pos, UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ModulusSubstitution) -UBool ModulusSubstitution::operator==(const NFSubstitution& rhs) const +bool ModulusSubstitution::operator==(const NFSubstitution& rhs) const { return NFSubstitution::operator==(rhs) && divisor == ((const ModulusSubstitution*)&rhs)->divisor && @@ -1075,7 +1075,7 @@ FractionalPartSubstitution::doSubstitution(double number, UnicodeString& toInser DecimalQuantity dl; dl.setToDouble(number); dl.roundToMagnitude(-20, UNUM_ROUND_HALFEVEN, status); // round to 20 fraction digits. - + UBool pad = FALSE; for (int32_t didx = dl.getLowerDisplayMagnitude(); didx<0; didx++) { // Loop iterates over fraction digits, starting with the LSD. @@ -1195,7 +1195,7 @@ FractionalPartSubstitution::doParse(const UnicodeString& text, } } -UBool +bool FractionalPartSubstitution::operator==(const NFSubstitution& rhs) const { return NFSubstitution::operator==(rhs) && @@ -1254,8 +1254,8 @@ NumeratorSubstitution::doSubstitution(double number, UnicodeString& toInsertInto } } -UBool -NumeratorSubstitution::doParse(const UnicodeString& text, +UBool +NumeratorSubstitution::doParse(const UnicodeString& text, ParsePosition& parsePosition, double baseValue, double upperBound, @@ -1327,7 +1327,7 @@ NumeratorSubstitution::doParse(const UnicodeString& text, return TRUE; } -UBool +bool NumeratorSubstitution::operator==(const NFSubstitution& rhs) const { return NFSubstitution::operator==(rhs) && @@ -1337,8 +1337,9 @@ NumeratorSubstitution::operator==(const NFSubstitution& rhs) const UOBJECT_DEFINE_RTTI_IMPLEMENTATION(NumeratorSubstitution) const UChar NumeratorSubstitution::LTLT[] = { 0x003c, 0x003c }; - + U_NAMESPACE_END /* U_HAVE_RBNF */ #endif + diff --git a/deps/icu-small/source/i18n/nfsubs.h b/deps/icu-small/source/i18n/nfsubs.h index 08de06f2a38e1e..0abd98be097d35 100644 --- a/deps/icu-small/source/i18n/nfsubs.h +++ b/deps/icu-small/source/i18n/nfsubs.h @@ -35,13 +35,13 @@ class NFSubstitution : public UObject { int32_t pos; const NFRuleSet* ruleSet; DecimalFormat* numberFormat; - + protected: NFSubstitution(int32_t pos, const NFRuleSet* ruleSet, const UnicodeString& description, UErrorCode& status); - + /** * Get the Ruleset of the object. * @return the Ruleset of the object. @@ -53,28 +53,28 @@ class NFSubstitution : public UObject { * @return the numberformat of this object. */ const DecimalFormat* getNumberFormat() const { return numberFormat; } - + public: - static NFSubstitution* makeSubstitution(int32_t pos, - const NFRule* rule, + static NFSubstitution* makeSubstitution(int32_t pos, + const NFRule* rule, const NFRule* predecessor, - const NFRuleSet* ruleSet, - const RuleBasedNumberFormat* rbnf, + const NFRuleSet* ruleSet, + const RuleBasedNumberFormat* rbnf, const UnicodeString& description, UErrorCode& status); - + /** * Destructor. */ virtual ~NFSubstitution(); - + /** * Return true if the given Format objects are semantically equal. * Objects of different subclasses are considered unequal. * @param rhs the object to be compared with. * @return true if the given Format objects are semantically equal. */ - virtual UBool operator==(const NFSubstitution& rhs) const; + virtual bool operator==(const NFSubstitution& rhs) const; /** * Return true if the given Format objects are semantically unequal. @@ -82,8 +82,8 @@ class NFSubstitution : public UObject { * @param rhs the object to be compared with. * @return true if the given Format objects are semantically unequal. */ - UBool operator!=(const NFSubstitution& rhs) const { return !operator==(rhs); } - + bool operator!=(const NFSubstitution& rhs) const { return !operator==(rhs); } + /** * Sets the substitution's divisor. Used by NFRule.setBaseValue(). * A no-op for all substitutions except multiplier and modulus @@ -92,19 +92,19 @@ class NFSubstitution : public UObject { * @param exponent The exponent of the divisor */ virtual void setDivisor(int32_t radix, int16_t exponent, UErrorCode& status); - + /** * Replaces result with the string describing the substitution. * @param result Output param which will receive the string. */ virtual void toString(UnicodeString& result) const; - + void setDecimalFormatSymbols(const DecimalFormatSymbols &newSymbols, UErrorCode& status); //----------------------------------------------------------------------- // formatting //----------------------------------------------------------------------- - + /** * Performs a mathematical operation on the number, formats it using * either ruleSet or decimalFormat, and inserts the result into @@ -128,7 +128,7 @@ class NFSubstitution : public UObject { * position to determine exactly where to insert the new text) */ virtual void doSubstitution(double number, UnicodeString& toInsertInto, int32_t pos, int32_t recursionCount, UErrorCode& status) const; - + protected: /** * Subclasses override this function to perform some kind of @@ -151,12 +151,12 @@ class NFSubstitution : public UObject { * @return The result of performing the opreration on the number */ virtual double transformNumber(double number) const = 0; - + public: //----------------------------------------------------------------------- // parsing //----------------------------------------------------------------------- - + /** * Parses a string using the rule set or DecimalFormat belonging * to this substitution. If there's a match, a mathematical @@ -186,14 +186,14 @@ class NFSubstitution : public UObject { * no match this is new Long(0) (not null), and parsePosition * is left unchanged. */ - virtual UBool doParse(const UnicodeString& text, - ParsePosition& parsePosition, + virtual UBool doParse(const UnicodeString& text, + ParsePosition& parsePosition, double baseValue, - double upperBound, + double upperBound, UBool lenientParse, uint32_t nonNumericalExecutedRuleMask, Formattable& result) const; - + /** * Derives a new value from the two values passed in. The two values * are typically either the base values of two rules (the one containing @@ -207,7 +207,7 @@ class NFSubstitution : public UObject { * partial parse result */ virtual double composeRuleValue(double newRuleValue, double oldRuleValue) const = 0; - + /** * Calculates an upper bound when searching for a rule that matches * this substitution. Rules with base values greater than or equal @@ -218,24 +218,24 @@ class NFSubstitution : public UObject { * this substitution. */ virtual double calcUpperBound(double oldUpperBound) const = 0; - + //----------------------------------------------------------------------- // simple accessors //----------------------------------------------------------------------- - + /** * Returns the substitution's position in the rule that owns it. * @return The substitution's position in the rule that owns it. */ int32_t getPos() const { return pos; } - + /** * Returns the character used in the textual representation of * substitutions of this type. Used by toString(). * @return This substitution's token character. */ virtual UChar tokenChar() const = 0; - + /** * Returns true if this is a modulus substitution. (We didn't do this * with instanceof partially because it causes source files to @@ -243,14 +243,14 @@ class NFSubstitution : public UObject { * @return true if this object is an instance of ModulusSubstitution */ virtual UBool isModulusSubstitution() const; - + private: NFSubstitution(const NFSubstitution &other); // forbid copying of this class NFSubstitution &operator=(const NFSubstitution &other); // forbid copying of this class public: static UClassID getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/nortrans.h b/deps/icu-small/source/i18n/nortrans.h index 198ed29c95e70f..01cb97ab38b4a1 100644 --- a/deps/icu-small/source/i18n/nortrans.h +++ b/deps/icu-small/source/i18n/nortrans.h @@ -44,12 +44,12 @@ class NormalizationTransliterator : public Transliterator { * Transliterator API. * @return A copy of the object. */ - virtual NormalizationTransliterator* clone() const; + virtual NormalizationTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -68,7 +68,7 @@ class NormalizationTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; public: /** diff --git a/deps/icu-small/source/i18n/nultrans.h b/deps/icu-small/source/i18n/nultrans.h index 36c92fa7b189d3..f5f2fbc9117419 100644 --- a/deps/icu-small/source/i18n/nultrans.h +++ b/deps/icu-small/source/i18n/nultrans.h @@ -45,19 +45,19 @@ class NullTransliterator : public Transliterator { * Transliterator API. * @internal Use transliterator factory methods instead since this class will be removed in that release. */ - virtual NullTransliterator* clone() const; + virtual NullTransliterator* clone() const override; /** * Implements {@link Transliterator#handleTransliterate}. * @internal Use transliterator factory methods instead since this class will be removed in that release. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/number_affixutils.cpp b/deps/icu-small/source/i18n/number_affixutils.cpp index a74ec2d634799e..f9c154c885cd8a 100644 --- a/deps/icu-small/source/i18n/number_affixutils.cpp +++ b/deps/icu-small/source/i18n/number_affixutils.cpp @@ -64,7 +64,7 @@ int32_t AffixUtils::estimateLength(const UnicodeString &patternString, UErrorCod } break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } offset += U16_LENGTH(cp); @@ -134,6 +134,9 @@ Field AffixUtils::getFieldForType(AffixPatternType type) { return {UFIELD_CATEGORY_NUMBER, UNUM_SIGN_FIELD}; case TYPE_PLUS_SIGN: return {UFIELD_CATEGORY_NUMBER, UNUM_SIGN_FIELD}; + case TYPE_APPROXIMATELY_SIGN: + // TODO: Introduce a new field for the approximately sign? + return {UFIELD_CATEGORY_NUMBER, UNUM_SIGN_FIELD}; case TYPE_PERCENT: return {UFIELD_CATEGORY_NUMBER, UNUM_PERCENT_FIELD}; case TYPE_PERMILLE: @@ -151,7 +154,7 @@ Field AffixUtils::getFieldForType(AffixPatternType type) { case TYPE_CURRENCY_OVERFLOW: return {UFIELD_CATEGORY_NUMBER, UNUM_CURRENCY_FIELD}; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -295,6 +298,8 @@ AffixTag AffixUtils::nextToken(AffixTag tag, const UnicodeString &patternString, return makeTag(offset + count, TYPE_MINUS_SIGN, STATE_BASE, 0); case u'+': return makeTag(offset + count, TYPE_PLUS_SIGN, STATE_BASE, 0); + case u'~': + return makeTag(offset + count, TYPE_APPROXIMATELY_SIGN, STATE_BASE, 0); case u'%': return makeTag(offset + count, TYPE_PERCENT, STATE_BASE, 0); case u'‰': @@ -385,7 +390,7 @@ AffixTag AffixUtils::nextToken(AffixTag tag, const UnicodeString &patternString, return makeTag(offset, TYPE_CURRENCY_OVERFLOW, STATE_BASE, 0); } default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } // End of string @@ -414,7 +419,7 @@ AffixTag AffixUtils::nextToken(AffixTag tag, const UnicodeString &patternString, case STATE_OVERFLOW_CURR: return makeTag(offset, TYPE_CURRENCY_OVERFLOW, STATE_BASE, 0); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } diff --git a/deps/icu-small/source/i18n/number_asformat.cpp b/deps/icu-small/source/i18n/number_asformat.cpp index 9d10d1f5580fbe..8f2314d6898e0d 100644 --- a/deps/icu-small/source/i18n/number_asformat.cpp +++ b/deps/icu-small/source/i18n/number_asformat.cpp @@ -32,7 +32,7 @@ LocalizedNumberFormatterAsFormat::LocalizedNumberFormatterAsFormat( LocalizedNumberFormatterAsFormat::~LocalizedNumberFormatterAsFormat() = default; -UBool LocalizedNumberFormatterAsFormat::operator==(const Format& other) const { +bool LocalizedNumberFormatterAsFormat::operator==(const Format& other) const { auto* _other = dynamic_cast(&other); if (_other == nullptr) { return false; diff --git a/deps/icu-small/source/i18n/number_asformat.h b/deps/icu-small/source/i18n/number_asformat.h index 3a2fe3185bee1c..394b9a811fd7d6 100644 --- a/deps/icu-small/source/i18n/number_asformat.h +++ b/deps/icu-small/source/i18n/number_asformat.h @@ -39,7 +39,7 @@ class U_I18N_API LocalizedNumberFormatterAsFormat : public Format { /** * Equals operator. */ - UBool operator==(const Format& other) const U_OVERRIDE; + bool operator==(const Format& other) const U_OVERRIDE; /** * Creates a copy of this object. diff --git a/deps/icu-small/source/i18n/number_capi.cpp b/deps/icu-small/source/i18n/number_capi.cpp index ef5f0a41ff07a4..b87dbd93e5fcde 100644 --- a/deps/icu-small/source/i18n/number_capi.cpp +++ b/deps/icu-small/source/i18n/number_capi.cpp @@ -116,7 +116,8 @@ unumf_formatInt(const UNumberFormatter* uformatter, int64_t value, UFormattedNum auto* result = UFormattedNumberApiHelper::validate(uresult, *ec); if (U_FAILURE(*ec)) { return; } - result->fData.getStringRef().clear(); + result->fData.resetString(); + result->fData.quantity.clear(); result->fData.quantity.setToLong(value); formatter->fFormatter.formatImpl(&result->fData, *ec); } @@ -128,7 +129,8 @@ unumf_formatDouble(const UNumberFormatter* uformatter, double value, UFormattedN auto* result = UFormattedNumberApiHelper::validate(uresult, *ec); if (U_FAILURE(*ec)) { return; } - result->fData.getStringRef().clear(); + result->fData.resetString(); + result->fData.quantity.clear(); result->fData.quantity.setToDouble(value); formatter->fFormatter.formatImpl(&result->fData, *ec); } @@ -140,7 +142,8 @@ unumf_formatDecimal(const UNumberFormatter* uformatter, const char* value, int32 auto* result = UFormattedNumberApiHelper::validate(uresult, *ec); if (U_FAILURE(*ec)) { return; } - result->fData.getStringRef().clear(); + result->fData.resetString(); + result->fData.quantity.clear(); result->fData.quantity.setToDecNumber({value, valueLen}, *ec); if (U_FAILURE(*ec)) { return; } formatter->fFormatter.formatImpl(&result->fData, *ec); @@ -223,3 +226,30 @@ unumf_close(UNumberFormatter* f) { #endif /* #if !UCONFIG_NO_FORMATTING */ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/deps/icu-small/source/i18n/number_compact.cpp b/deps/icu-small/source/i18n/number_compact.cpp index 8f898e704703a4..62692f444dff07 100644 --- a/deps/icu-small/source/i18n/number_compact.cpp +++ b/deps/icu-small/source/i18n/number_compact.cpp @@ -158,7 +158,7 @@ void CompactData::getUniquePatterns(UVector &output, UErrorCode &status) const { // The string was not found; add it to the UVector. // ANDY: This requires a const_cast. Why? - output.addElement(const_cast(pattern), status); + output.addElementX(const_cast(pattern), status); continue_outer: continue; diff --git a/deps/icu-small/source/i18n/number_currencysymbols.cpp b/deps/icu-small/source/i18n/number_currencysymbols.cpp index 9208427904cceb..da1812f49f0b71 100644 --- a/deps/icu-small/source/i18n/number_currencysymbols.cpp +++ b/deps/icu-small/source/i18n/number_currencysymbols.cpp @@ -76,7 +76,7 @@ UnicodeString CurrencySymbols::loadSymbol(UCurrNameStyle selector, UErrorCode& s if (symbol == isoCode) { return UnicodeString(isoCode, 3); } else { - return UnicodeString(TRUE, symbol, symbolLen); + return UnicodeString(true, symbol, symbolLen); } } @@ -104,7 +104,7 @@ UnicodeString CurrencySymbols::getPluralName(StandardPlural::Form plural, UError if (symbol == isoCode) { return UnicodeString(isoCode, 3); } else { - return UnicodeString(TRUE, symbol, symbolLen); + return UnicodeString(true, symbol, symbolLen); } } diff --git a/deps/icu-small/source/i18n/number_decimalquantity.cpp b/deps/icu-small/source/i18n/number_decimalquantity.cpp index 1f020ff87001cd..6a2847b1c18f19 100644 --- a/deps/icu-small/source/i18n/number_decimalquantity.cpp +++ b/deps/icu-small/source/i18n/number_decimalquantity.cpp @@ -289,6 +289,11 @@ void DecimalQuantity::adjustExponent(int delta) { exponent = exponent + delta; } +void DecimalQuantity::resetExponent() { + adjustMagnitude(exponent); + exponent = 0; +} + bool DecimalQuantity::hasIntegerValue() const { return scale >= 0; } @@ -534,7 +539,11 @@ void DecimalQuantity::_setToDecNum(const DecNum& decnum, UErrorCode& status) { if (decnum.isNegative()) { flags |= NEGATIVE_FLAG; } - if (!decnum.isZero()) { + if (decnum.isNaN()) { + flags |= NAN_FLAG; + } else if (decnum.isInfinity()) { + flags |= INFINITY_FLAG; + } else if (!decnum.isZero()) { readDecNumberToBcd(decnum); compact(); } @@ -634,6 +643,7 @@ DecNum& DecimalQuantity::toDecNum(DecNum& output, UErrorCode& status) const { // Special handling for zero if (precision == 0) { output.setTo("0", status); + return output; } // Use the BCD constructor. We need to do a little bit of work to convert, though. @@ -822,6 +832,7 @@ void DecimalQuantity::roundToMagnitude(int32_t magnitude, RoundingMode roundingM // Perform truncation if (position >= precision) { + U_ASSERT(trailingDigit == 0); setBcdToZero(); scale = magnitude; } else { @@ -839,6 +850,10 @@ void DecimalQuantity::roundToMagnitude(int32_t magnitude, RoundingMode roundingM // do not return: use the bubbling logic below } else { setDigitPos(0, 5); + // If the quantity was set to 0, we may need to restore a digit. + if (precision == 0) { + precision = 1; + } // compact not necessary: digit at position 0 is nonzero return; } @@ -916,7 +931,7 @@ UnicodeString DecimalQuantity::toPlainString() const { } if (lower > rReqPos) { lower = rReqPos; - } + } int32_t p = upper; if (p < 0) { sb.append(u'0'); diff --git a/deps/icu-small/source/i18n/number_decimalquantity.h b/deps/icu-small/source/i18n/number_decimalquantity.h index 839424775a0d8d..107c09a96a53d2 100644 --- a/deps/icu-small/source/i18n/number_decimalquantity.h +++ b/deps/icu-small/source/i18n/number_decimalquantity.h @@ -136,7 +136,7 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory { * this method with delta=-3 will change the value to "1.23456". * * @param delta The number of magnitudes of ten to change by. - * @return true if integer overflow occured; false otherwise. + * @return true if integer overflow occurred; false otherwise. */ bool adjustMagnitude(int32_t delta); @@ -166,6 +166,11 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory { */ void adjustExponent(int32_t delta); + /** + * Resets the DecimalQuantity to the value before adjustMagnitude and adjustExponent. + */ + void resetExponent(); + /** * @return Whether the value represented by this {@link DecimalQuantity} is * zero, infinity, or NaN. @@ -184,11 +189,11 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory { /** @return Whether the value represented by this {@link DecimalQuantity} is not a number. */ bool isNaN() const U_OVERRIDE; - /** + /** * Note: this method incorporates the value of {@code exponent} * (for cases such as compact notation) to return the proper long value * represented by the result. - * @param truncateIfOverflow if false and the number does NOT fit, fails with an assertion error. + * @param truncateIfOverflow if false and the number does NOT fit, fails with an assertion error. */ int64_t toLong(bool truncateIfOverflow = false) const; @@ -428,7 +433,9 @@ class U_I18N_API DecimalQuantity : public IFixedDecimal, public UMemory { /** * Sets the digit in the BCD list. This method only sets the digit; it is the caller's - * responsibility to call {@link #compact} after setting the digit. + * responsibility to call {@link #compact} after setting the digit, and to ensure + * that the precision field is updated to reflect the correct number of digits if a + * nonzero digit is added to the decimal. * * @param position The position of the digit to pop, counted in BCD units from the least * significant digit. If outside the range supported by the implementation, an AssertionError diff --git a/deps/icu-small/source/i18n/number_decimfmtprops.cpp b/deps/icu-small/source/i18n/number_decimfmtprops.cpp index 30481ce5bf0110..7fa58bbc7ab66c 100644 --- a/deps/icu-small/source/i18n/number_decimfmtprops.cpp +++ b/deps/icu-small/source/i18n/number_decimfmtprops.cpp @@ -21,7 +21,7 @@ char kRawDefaultProperties[sizeof(DecimalFormatProperties)]; icu::UInitOnce gDefaultPropertiesInitOnce = U_INITONCE_INITIALIZER; void U_CALLCONV initDefaultProperties(UErrorCode&) { - // can't fail, uses placement new into staticly allocated space. + // can't fail, uses placement new into statically allocated space. new(kRawDefaultProperties) DecimalFormatProperties(); // set to the default instance } @@ -40,6 +40,7 @@ void DecimalFormatProperties::clear() { decimalPatternMatchRequired = false; decimalSeparatorAlwaysShown = false; exponentSignAlwaysShown = false; + currencyAsDecimal = false; formatFailIfMoreThanMaxDigits = false; formatWidth = -1; groupingSize = -1; @@ -88,6 +89,7 @@ DecimalFormatProperties::_equals(const DecimalFormatProperties& other, bool igno eq = eq && currencyUsage == other.currencyUsage; eq = eq && decimalSeparatorAlwaysShown == other.decimalSeparatorAlwaysShown; eq = eq && exponentSignAlwaysShown == other.exponentSignAlwaysShown; + eq = eq && currencyAsDecimal == other.currencyAsDecimal; eq = eq && formatFailIfMoreThanMaxDigits == other.formatFailIfMoreThanMaxDigits; eq = eq && formatWidth == other.formatWidth; eq = eq && magnitudeMultiplier == other.magnitudeMultiplier; diff --git a/deps/icu-small/source/i18n/number_decimfmtprops.h b/deps/icu-small/source/i18n/number_decimfmtprops.h index 0ace241adae8ab..5f72f649842e66 100644 --- a/deps/icu-small/source/i18n/number_decimfmtprops.h +++ b/deps/icu-small/source/i18n/number_decimfmtprops.h @@ -105,6 +105,7 @@ struct U_I18N_API DecimalFormatProperties : public UMemory { bool decimalPatternMatchRequired; bool decimalSeparatorAlwaysShown; bool exponentSignAlwaysShown; + bool currencyAsDecimal; bool formatFailIfMoreThanMaxDigits; // ICU4C-only int32_t formatWidth; int32_t groupingSize; diff --git a/deps/icu-small/source/i18n/number_decnum.h b/deps/icu-small/source/i18n/number_decnum.h index 3bb8d107807967..94a0b31bcb5dd7 100644 --- a/deps/icu-small/source/i18n/number_decnum.h +++ b/deps/icu-small/source/i18n/number_decnum.h @@ -56,6 +56,13 @@ class U_I18N_API DecNum : public UMemory { bool isZero() const; + /** Is infinity or NaN */ + bool isSpecial() const; + + bool isInfinity() const; + + bool isNaN() const; + void toString(ByteSink& output, UErrorCode& status) const; inline CharString toCharString(UErrorCode& status) const { diff --git a/deps/icu-small/source/i18n/number_fluent.cpp b/deps/icu-small/source/i18n/number_fluent.cpp index a79f224829d805..fd486afb512249 100644 --- a/deps/icu-small/source/i18n/number_fluent.cpp +++ b/deps/icu-small/source/i18n/number_fluent.cpp @@ -698,6 +698,10 @@ int32_t LocalizedNumberFormatter::getCallCount() const { // Note: toFormat defined in number_asformat.cpp +const DecimalFormatSymbols* LocalizedNumberFormatter::getDecimalFormatSymbols() const { + return fMacros.symbols.getDecimalFormatSymbols(); +} + #if (U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN) && defined(_MSC_VER) // Warning 4661. #pragma warning(pop) diff --git a/deps/icu-small/source/i18n/number_formatimpl.cpp b/deps/icu-small/source/i18n/number_formatimpl.cpp index b2325aa8e591eb..96e3e9e7c69910 100644 --- a/deps/icu-small/source/i18n/number_formatimpl.cpp +++ b/deps/icu-small/source/i18n/number_formatimpl.cpp @@ -352,11 +352,12 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe, return nullptr; } fPatternModifier.adoptInstead(patternModifier); - patternModifier->setPatternInfo( - macros.affixProvider != nullptr ? macros.affixProvider - : static_cast(fPatternInfo.getAlias()), - kUndefinedField); - patternModifier->setPatternAttributes(fMicros.sign, isPermille); + const AffixPatternProvider* affixProvider = + macros.affixProvider != nullptr + ? macros.affixProvider + : static_cast(fPatternInfo.getAlias()); + patternModifier->setPatternInfo(affixProvider, kUndefinedField); + patternModifier->setPatternAttributes(fMicros.sign, isPermille, macros.approximately); if (patternModifier->needsPlurals()) { patternModifier->setSymbols( fMicros.symbols, @@ -375,6 +376,11 @@ NumberFormatterImpl::macrosToMicroGenerator(const MacroProps& macros, bool safe, return nullptr; } + // currencyAsDecimal + if (affixProvider->currencyAsDecimal()) { + fMicros.currencyAsDecimal = patternModifier->getCurrencySymbolForUnitWidth(status); + } + // Outer modifier (CLDR units and currency long names) if (isCldrUnit) { const char *unitDisplayCase = ""; @@ -524,15 +530,27 @@ int32_t NumberFormatterImpl::writeNumber(const MicroProps& micros, DecimalQuanti // Add the decimal point if (quantity.getLowerDisplayMagnitude() < 0 || micros.decimal == UNUM_DECIMAL_SEPARATOR_ALWAYS) { - length += string.insert( + if (!micros.currencyAsDecimal.isBogus()) { + length += string.insert( length + index, - micros.useCurrency ? micros.symbols->getSymbol( - DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol) : micros - .symbols - ->getSymbol( - DecimalFormatSymbols::ENumberFormatSymbol::kDecimalSeparatorSymbol), + micros.currencyAsDecimal, + {UFIELD_CATEGORY_NUMBER, UNUM_CURRENCY_FIELD}, + status); + } else if (micros.useCurrency) { + length += string.insert( + length + index, + micros.symbols->getSymbol( + DecimalFormatSymbols::ENumberFormatSymbol::kMonetarySeparatorSymbol), {UFIELD_CATEGORY_NUMBER, UNUM_DECIMAL_SEPARATOR_FIELD}, status); + } else { + length += string.insert( + length + index, + micros.symbols->getSymbol( + DecimalFormatSymbols::ENumberFormatSymbol::kDecimalSeparatorSymbol), + {UFIELD_CATEGORY_NUMBER, UNUM_DECIMAL_SEPARATOR_FIELD}, + status); + } } // Add the fraction digits diff --git a/deps/icu-small/source/i18n/number_formatimpl.h b/deps/icu-small/source/i18n/number_formatimpl.h index 5cd549e54a363f..d7be1468b6d7af 100644 --- a/deps/icu-small/source/i18n/number_formatimpl.h +++ b/deps/icu-small/source/i18n/number_formatimpl.h @@ -33,6 +33,12 @@ class NumberFormatterImpl : public UMemory { */ NumberFormatterImpl(const MacroProps ¯os, UErrorCode &status); + /** + * Default constructor; leaves the NumberFormatterImpl in an undefined state. + * Takes an error code to prevent the method from being called accidentally. + */ + NumberFormatterImpl(UErrorCode &) {} + /** * Builds and evaluates an "unsafe" MicroPropsGenerator, which is cheaper but can be used only once. */ @@ -109,12 +115,6 @@ class NumberFormatterImpl : public UMemory { LocalPointer fLongNameMultiplexer; LocalPointer fCompactHandler; - // Value objects possibly used by the number formatting pipeline: - struct Warehouse { - CurrencySymbols fCurrencySymbols; - } fWarehouse; - - NumberFormatterImpl(const MacroProps ¯os, bool safe, UErrorCode &status); MicroProps& preProcessUnsafe(DecimalQuantity &inValue, UErrorCode &status); diff --git a/deps/icu-small/source/i18n/number_grouping.cpp b/deps/icu-small/source/i18n/number_grouping.cpp index 6b1642cfd34abd..9ba639e67e2257 100644 --- a/deps/icu-small/source/i18n/number_grouping.cpp +++ b/deps/icu-small/source/i18n/number_grouping.cpp @@ -47,7 +47,7 @@ Grouper Grouper::forStrategy(UNumberGroupingStrategy grouping) { case UNUM_GROUPING_THOUSANDS: return {3, 3, 1, grouping}; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } diff --git a/deps/icu-small/source/i18n/number_longnames.cpp b/deps/icu-small/source/i18n/number_longnames.cpp index fd23a81a8df840..5a4cf6321c8a40 100644 --- a/deps/icu-small/source/i18n/number_longnames.cpp +++ b/deps/icu-small/source/i18n/number_longnames.cpp @@ -259,20 +259,16 @@ class InflectedPluralSink : public ResourceSink { // See ResourceSink::put(). void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) U_OVERRIDE { - ResourceTable pluralsTable = value.getTable(status); + int32_t pluralIndex = getIndex(key, status); if (U_FAILURE(status)) { return; } - for (int32_t i = 0; pluralsTable.getKeyAndValue(i, key, value); ++i) { - int32_t pluralIndex = getIndex(key, status); - if (U_FAILURE(status)) { return; } - if (!outArray[pluralIndex].isBogus()) { - // We already have a pattern - continue; - } - ResourceTable genderTable = value.getTable(status); - ResourceTable caseTable; // This instance has to outlive `value` - if (loadForPluralForm(genderTable, caseTable, value, status)) { - outArray[pluralIndex] = value.getUnicodeString(status); - } + if (!outArray[pluralIndex].isBogus()) { + // We already have a pattern + return; + } + ResourceTable genderTable = value.getTable(status); + ResourceTable caseTable; // This instance has to outlive `value` + if (loadForPluralForm(genderTable, caseTable, value, status)) { + outArray[pluralIndex] = value.getUnicodeString(status); } } @@ -370,18 +366,11 @@ void getInflectedMeasureData(StringPiece subKey, key.append(subKey, status); UErrorCode localStatus = status; - ures_getAllItemsWithFallback(unitsBundle.getAlias(), key.data(), sink, localStatus); + ures_getAllChildrenWithFallback(unitsBundle.getAlias(), key.data(), sink, localStatus); if (width == UNUM_UNIT_WIDTH_SHORT) { status = localStatus; return; } - - // TODO(ICU-13353): The fallback to short does not work in ICU4C. - // Manually fall back to short (this is done automatically in Java). - key.clear(); - key.append("unitsShort/", status); - key.append(subKey, status); - ures_getAllItemsWithFallback(unitsBundle.getAlias(), key.data(), sink, status); } class PluralTableSink : public ResourceSink { @@ -396,20 +385,16 @@ class PluralTableSink : public ResourceSink { } void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) U_OVERRIDE { - ResourceTable pluralsTable = value.getTable(status); + if (uprv_strcmp(key, "case") == 0) { + return; + } + int32_t index = getIndex(key, status); if (U_FAILURE(status)) { return; } - for (int32_t i = 0; pluralsTable.getKeyAndValue(i, key, value); ++i) { - if (uprv_strcmp(key, "case") == 0) { - continue; - } - int32_t index = getIndex(key, status); - if (U_FAILURE(status)) { return; } - if (!outArray[index].isBogus()) { - continue; - } - outArray[index] = value.getUnicodeString(status); - if (U_FAILURE(status)) { return; } + if (!outArray[index].isBogus()) { + return; } + outArray[index] = value.getUnicodeString(status); + if (U_FAILURE(status)) { return; } } private: @@ -490,7 +475,7 @@ void getMeasureData(const Locale &locale, // getInflectedMeasureData after homogenizing data format? Find a unit // test case that demonstrates the incorrect fallback logic (via // regional variant of an inflected language?) - ures_getAllItemsWithFallback(unitsBundle.getAlias(), caseKey.data(), sink, localStatus); + ures_getAllChildrenWithFallback(unitsBundle.getAlias(), caseKey.data(), sink, localStatus); } // TODO(icu-units#138): our fallback logic is not spec-compliant: we @@ -499,20 +484,13 @@ void getMeasureData(const Locale &locale, // either get the spec changed, or add unit tests that warn us if // case="nominative" data differs from no-case data? UErrorCode localStatus = U_ZERO_ERROR; - ures_getAllItemsWithFallback(unitsBundle.getAlias(), key.data(), sink, localStatus); + ures_getAllChildrenWithFallback(unitsBundle.getAlias(), key.data(), sink, localStatus); if (width == UNUM_UNIT_WIDTH_SHORT) { if (U_FAILURE(localStatus)) { status = localStatus; } return; } - - // TODO(ICU-13353): The fallback to short does not work in ICU4C. - // Manually fall back to short (this is done automatically in Java). - key.clear(); - key.append("unitsShort", status); - key.append(subKey, status); - ures_getAllItemsWithFallback(unitsBundle.getAlias(), key.data(), sink, status); } // NOTE: outArray MUST have a length of at least ARRAY_LENGTH. @@ -523,7 +501,7 @@ void getCurrencyLongNameData(const Locale &locale, const CurrencyUnit ¤cy, PluralTableSink sink(outArray); LocalUResourceBundlePointer unitsBundle(ures_open(U_ICUDATA_CURR, locale.getName(), &status)); if (U_FAILURE(status)) { return; } - ures_getAllItemsWithFallback(unitsBundle.getAlias(), "CurrencyUnitPatterns", sink, status); + ures_getAllChildrenWithFallback(unitsBundle.getAlias(), "CurrencyUnitPatterns", sink, status); if (U_FAILURE(status)) { return; } for (int32_t i = 0; i < StandardPlural::Form::COUNT; i++) { UnicodeString &pattern = outArray[i]; @@ -693,7 +671,7 @@ class DerivedComponents { * * * NOTE: If U_FAILURE(status), returns an empty string. - */ + */ UnicodeString getDeriveCompoundRule(Locale locale, const char *feature, const char *structure, UErrorCode &status) { StackUResourceBundle derivationsBundle, stackBundle; @@ -1702,7 +1680,7 @@ const Modifier *MixedUnitLongNameHandler::getModifier(Signum /*signum*/, // TODO(icu-units#28): investigate this method when investigating where // ModifierStore::getModifier() gets used. To be sure it remains // unreachable: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; return nullptr; } diff --git a/deps/icu-small/source/i18n/number_longnames.h b/deps/icu-small/source/i18n/number_longnames.h index bca55e010317dc..06949989d7fbcd 100644 --- a/deps/icu-small/source/i18n/number_longnames.h +++ b/deps/icu-small/source/i18n/number_longnames.h @@ -44,7 +44,7 @@ class LongNameHandler : public MicroPropsGenerator, public ModifierStore, public * * Mixed units are not supported, use MixedUnitLongNameHandler::forMeasureUnit. * - * This function uses a fillIn intead of returning a pointer, because we + * This function uses a fillIn instead of returning a pointer, because we * want to fill in instances in a MemoryPool (which cannot adopt pointers it * didn't create itself). * @@ -139,7 +139,7 @@ class MixedUnitLongNameHandler : public MicroPropsGenerator, public ModifierStor * Construct a localized MixedUnitLongNameHandler for the specified * MeasureUnit. It must be a MIXED unit. * - * This function uses a fillIn intead of returning a pointer, because we + * This function uses a fillIn instead of returning a pointer, because we * want to fill in instances in a MemoryPool (which cannot adopt pointers it * didn't create itself). * diff --git a/deps/icu-small/source/i18n/number_mapper.cpp b/deps/icu-small/source/i18n/number_mapper.cpp index e2a0d284b7cf5d..2d4d47a094d999 100644 --- a/deps/icu-small/source/i18n/number_mapper.cpp +++ b/deps/icu-small/source/i18n/number_mapper.cpp @@ -381,7 +381,10 @@ void PropertiesAffixPatternProvider::setTo(const DecimalFormatProperties& proper AffixUtils::hasCurrencySymbols(ppp, status) || AffixUtils::hasCurrencySymbols(psp, status) || AffixUtils::hasCurrencySymbols(npp, status) || - AffixUtils::hasCurrencySymbols(nsp, status)); + AffixUtils::hasCurrencySymbols(nsp, status) || + properties.currencyAsDecimal); + + fCurrencyAsDecimal = properties.currencyAsDecimal; } char16_t PropertiesAffixPatternProvider::charAt(int flags, int i) const { @@ -446,6 +449,10 @@ bool PropertiesAffixPatternProvider::hasBody() const { return true; } +bool PropertiesAffixPatternProvider::currencyAsDecimal() const { + return fCurrencyAsDecimal; +} + void CurrencyPluralInfoAffixProvider::setTo(const CurrencyPluralInfo& cpi, const DecimalFormatProperties& properties, @@ -506,5 +513,9 @@ bool CurrencyPluralInfoAffixProvider::hasBody() const { return affixesByPlural[StandardPlural::OTHER].hasBody(); } +bool CurrencyPluralInfoAffixProvider::currencyAsDecimal() const { + return affixesByPlural[StandardPlural::OTHER].currencyAsDecimal(); +} + #endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/deps/icu-small/source/i18n/number_mapper.h b/deps/icu-small/source/i18n/number_mapper.h index 9ecd776b3b4795..8879b7a94ea372 100644 --- a/deps/icu-small/source/i18n/number_mapper.h +++ b/deps/icu-small/source/i18n/number_mapper.h @@ -56,12 +56,15 @@ class PropertiesAffixPatternProvider : public AffixPatternProvider, public UMemo bool hasBody() const U_OVERRIDE; + bool currencyAsDecimal() const U_OVERRIDE; + private: UnicodeString posPrefix; UnicodeString posSuffix; UnicodeString negPrefix; UnicodeString negSuffix; bool isCurrencyPattern; + bool fCurrencyAsDecimal; PropertiesAffixPatternProvider() = default; // puts instance in valid but undefined state @@ -107,6 +110,8 @@ class CurrencyPluralInfoAffixProvider : public AffixPatternProvider, public UMem bool hasBody() const U_OVERRIDE; + bool currencyAsDecimal() const U_OVERRIDE; + private: PropertiesAffixPatternProvider affixesByPlural[StandardPlural::COUNT]; diff --git a/deps/icu-small/source/i18n/number_microprops.h b/deps/icu-small/source/i18n/number_microprops.h index a18d5fc470eda1..c34e7c17e97aa5 100644 --- a/deps/icu-small/source/i18n/number_microprops.h +++ b/deps/icu-small/source/i18n/number_microprops.h @@ -18,6 +18,7 @@ #include "number_roundingutils.h" #include "decNumber.h" #include "charstr.h" +#include "util.h" U_NAMESPACE_BEGIN namespace number { namespace impl { @@ -83,6 +84,9 @@ struct MicroProps : public MicroPropsGenerator { bool useCurrency; char nsName[9]; + // Currency symbol to be used as the decimal separator + UnicodeString currencyAsDecimal = ICU_Utility::makeBogusString(); + // No ownership: must point at a string which will outlive MicroProps // instances, e.g. a string with static storage duration, or just a string // that will never be deallocated or modified. diff --git a/deps/icu-small/source/i18n/number_modifiers.cpp b/deps/icu-small/source/i18n/number_modifiers.cpp index b7d825f499e4d2..b74bfd06fc8e76 100644 --- a/deps/icu-small/source/i18n/number_modifiers.cpp +++ b/deps/icu-small/source/i18n/number_modifiers.cpp @@ -92,13 +92,13 @@ bool ConstantAffixModifier::isStrong() const { bool ConstantAffixModifier::containsField(Field field) const { (void)field; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } void ConstantAffixModifier::getParameters(Parameters& output) const { (void)output; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } bool ConstantAffixModifier::semanticallyEquivalent(const Modifier& other) const { @@ -181,7 +181,7 @@ bool SimpleModifier::isStrong() const { bool SimpleModifier::containsField(Field field) const { (void)field; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } void SimpleModifier::getParameters(Parameters& output) const { diff --git a/deps/icu-small/source/i18n/number_modifiers.h b/deps/icu-small/source/i18n/number_modifiers.h index 375254310ca056..09af3f48813c88 100644 --- a/deps/icu-small/source/i18n/number_modifiers.h +++ b/deps/icu-small/source/i18n/number_modifiers.h @@ -273,7 +273,7 @@ class U_I18N_API EmptyModifier : public Modifier, public UMemory { }; /** - * This implementation of ModifierStore adopts Modifer pointers. + * This implementation of ModifierStore adopts Modifier pointers. */ class U_I18N_API AdoptingModifierStore : public ModifierStore, public UMemory { public: diff --git a/deps/icu-small/source/i18n/number_patternmodifier.cpp b/deps/icu-small/source/i18n/number_patternmodifier.cpp index 314e7cb75ee169..b6543b262b42db 100644 --- a/deps/icu-small/source/i18n/number_patternmodifier.cpp +++ b/deps/icu-small/source/i18n/number_patternmodifier.cpp @@ -28,9 +28,13 @@ void MutablePatternModifier::setPatternInfo(const AffixPatternProvider* patternI fField = field; } -void MutablePatternModifier::setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille) { +void MutablePatternModifier::setPatternAttributes( + UNumberSignDisplay signDisplay, + bool perMille, + bool approximately) { fSignDisplay = signDisplay; fPerMilleReplacesPercent = perMille; + fApproximately = approximately; } void MutablePatternModifier::setSymbols(const DecimalFormatSymbols* symbols, @@ -244,19 +248,19 @@ bool MutablePatternModifier::isStrong() const { bool MutablePatternModifier::containsField(Field field) const { (void)field; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } void MutablePatternModifier::getParameters(Parameters& output) const { (void)output; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } bool MutablePatternModifier::semanticallyEquivalent(const Modifier& other) const { (void)other; // This method is not currently used. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } int32_t MutablePatternModifier::insertPrefix(FormattedStringBuilder& sb, int position, UErrorCode& status) { @@ -277,6 +281,7 @@ void MutablePatternModifier::prepareAffix(bool isPrefix) { *fPatternInfo, isPrefix, PatternStringUtils::resolveSignDisplay(fSignDisplay, fSignum), + fApproximately, fPlural, fPerMilleReplacesPercent, currentAffix); @@ -289,28 +294,14 @@ UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const { return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kMinusSignSymbol); case AffixPatternType::TYPE_PLUS_SIGN: return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPlusSignSymbol); + case AffixPatternType::TYPE_APPROXIMATELY_SIGN: + return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kApproximatelySignSymbol); case AffixPatternType::TYPE_PERCENT: return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPercentSymbol); case AffixPatternType::TYPE_PERMILLE: return fSymbols->getSymbol(DecimalFormatSymbols::ENumberFormatSymbol::kPerMillSymbol); - case AffixPatternType::TYPE_CURRENCY_SINGLE: { - switch (fUnitWidth) { - case UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW: - return fCurrencySymbols.getNarrowCurrencySymbol(localStatus); - case UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT: - return fCurrencySymbols.getCurrencySymbol(localStatus); - case UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE: - return fCurrencySymbols.getIntlCurrencySymbol(localStatus); - case UNumberUnitWidth::UNUM_UNIT_WIDTH_FORMAL: - return fCurrencySymbols.getFormalCurrencySymbol(localStatus); - case UNumberUnitWidth::UNUM_UNIT_WIDTH_VARIANT: - return fCurrencySymbols.getVariantCurrencySymbol(localStatus); - case UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN: - return UnicodeString(); - default: - return fCurrencySymbols.getCurrencySymbol(localStatus); - } - } + case AffixPatternType::TYPE_CURRENCY_SINGLE: + return getCurrencySymbolForUnitWidth(localStatus); case AffixPatternType::TYPE_CURRENCY_DOUBLE: return fCurrencySymbols.getIntlCurrencySymbol(localStatus); case AffixPatternType::TYPE_CURRENCY_TRIPLE: @@ -324,13 +315,32 @@ UnicodeString MutablePatternModifier::getSymbol(AffixPatternType type) const { case AffixPatternType::TYPE_CURRENCY_QUINT: return UnicodeString(u"\uFFFD"); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; + } +} + +UnicodeString MutablePatternModifier::getCurrencySymbolForUnitWidth(UErrorCode& status) const { + switch (fUnitWidth) { + case UNumberUnitWidth::UNUM_UNIT_WIDTH_NARROW: + return fCurrencySymbols.getNarrowCurrencySymbol(status); + case UNumberUnitWidth::UNUM_UNIT_WIDTH_SHORT: + return fCurrencySymbols.getCurrencySymbol(status); + case UNumberUnitWidth::UNUM_UNIT_WIDTH_ISO_CODE: + return fCurrencySymbols.getIntlCurrencySymbol(status); + case UNumberUnitWidth::UNUM_UNIT_WIDTH_FORMAL: + return fCurrencySymbols.getFormalCurrencySymbol(status); + case UNumberUnitWidth::UNUM_UNIT_WIDTH_VARIANT: + return fCurrencySymbols.getVariantCurrencySymbol(status); + case UNumberUnitWidth::UNUM_UNIT_WIDTH_HIDDEN: + return UnicodeString(); + default: + return fCurrencySymbols.getCurrencySymbol(status); } } UnicodeString MutablePatternModifier::toUnicodeString() const { // Never called by AffixUtils - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } #endif /* #if !UCONFIG_NO_FORMATTING */ diff --git a/deps/icu-small/source/i18n/number_patternmodifier.h b/deps/icu-small/source/i18n/number_patternmodifier.h index 5ba842d5692460..4f825e1ed21916 100644 --- a/deps/icu-small/source/i18n/number_patternmodifier.h +++ b/deps/icu-small/source/i18n/number_patternmodifier.h @@ -116,8 +116,10 @@ class U_I18N_API MutablePatternModifier * Whether to force a plus sign on positive numbers. * @param perMille * Whether to substitute the percent sign in the pattern with a permille sign. + * @param approximately + * Whether to prepend approximately to the sign */ - void setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille); + void setPatternAttributes(UNumberSignDisplay signDisplay, bool perMille, bool approximately); /** * Sets locale-specific details that affect the symbols substituted into the pattern string affixes. @@ -193,6 +195,11 @@ class U_I18N_API MutablePatternModifier */ UnicodeString getSymbol(AffixPatternType type) const U_OVERRIDE; + /** + * Returns the currency symbol for the unit width specified in setSymbols() + */ + UnicodeString getCurrencySymbolForUnitWidth(UErrorCode& status) const; + UnicodeString toUnicodeString() const; private: @@ -204,6 +211,7 @@ class U_I18N_API MutablePatternModifier Field fField; UNumberSignDisplay fSignDisplay; bool fPerMilleReplacesPercent; + bool fApproximately; // Symbol details (initialized in setSymbols) const DecimalFormatSymbols *fSymbols; diff --git a/deps/icu-small/source/i18n/number_patternstring.cpp b/deps/icu-small/source/i18n/number_patternstring.cpp index ac9e8b7e8e4d75..e819d39e96769d 100644 --- a/deps/icu-small/source/i18n/number_patternstring.cpp +++ b/deps/icu-small/source/i18n/number_patternstring.cpp @@ -50,7 +50,7 @@ PatternParser::parseToExistingProperties(const UnicodeString& pattern, DecimalFo char16_t ParsedPatternInfo::charAt(int32_t flags, int32_t index) const { const Endpoints& endpoints = getEndpoints(flags); if (index < 0 || index >= endpoints.end - endpoints.start) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } return pattern.charAt(endpoints.start + index); } @@ -115,6 +115,10 @@ bool ParsedPatternInfo::hasBody() const { return positive.integerTotal > 0; } +bool ParsedPatternInfo::currencyAsDecimal() const { + return positive.hasCurrencyDecimal; +} + ///////////////////////////////////////////////////// /// BEGIN RECURSIVE DESCENT PARSER IMPLEMENTATION /// ///////////////////////////////////////////////////// @@ -127,8 +131,20 @@ UChar32 ParsedPatternInfo::ParserState::peek() { } } +UChar32 ParsedPatternInfo::ParserState::peek2() { + if (offset == pattern.length()) { + return -1; + } + int32_t cp1 = pattern.char32At(offset); + int32_t offset2 = offset + U16_LENGTH(cp1); + if (offset2 == pattern.length()) { + return -1; + } + return pattern.char32At(offset2); +} + UChar32 ParsedPatternInfo::ParserState::next() { - int codePoint = peek(); + int32_t codePoint = peek(); offset += U16_LENGTH(codePoint); return codePoint; } @@ -286,6 +302,35 @@ void ParsedPatternInfo::consumeFormat(UErrorCode& status) { currentSubpattern->widthExceptAffixes += 1; consumeFractionFormat(status); if (U_FAILURE(status)) { return; } + } else if (state.peek() == u'¤') { + // Check if currency is a decimal separator + switch (state.peek2()) { + case u'#': + case u'0': + case u'1': + case u'2': + case u'3': + case u'4': + case u'5': + case u'6': + case u'7': + case u'8': + case u'9': + break; + default: + // Currency symbol followed by a non-numeric character; + // treat as a normal affix. + return; + } + // Currency symbol is followed by a numeric character; + // treat as a decimal separator. + currentSubpattern->hasCurrencySign = true; + currentSubpattern->hasCurrencyDecimal = true; + currentSubpattern->hasDecimal = true; + currentSubpattern->widthExceptAffixes += 1; + state.next(); // consume the symbol + consumeFractionFormat(status); + if (U_FAILURE(status)) { return; } } } @@ -565,6 +610,9 @@ PatternParser::patternInfoToProperties(DecimalFormatProperties& properties, Pars properties.decimalSeparatorAlwaysShown = false; } + // Persist the currency as decimal separator + properties.currencyAsDecimal = positive.hasCurrencyDecimal; + // Scientific notation settings if (positive.exponentZeros > 0) { properties.exponentSignAlwaysShown = positive.exponentHasPlusSign; @@ -750,7 +798,11 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP } // Decimal separator if (magnitude == 0 && (alwaysShowDecimal || mN < 0)) { - sb.append(u'.'); + if (properties.currencyAsDecimal) { + sb.append(u'¤'); + } else { + sb.append(u'.'); + } } if (!useGrouping) { continue; @@ -820,7 +872,7 @@ UnicodeString PatternStringUtils::propertiesToPatternString(const DecimalFormatP // Copy the positive digit format into the negative. // This is optional; the pattern is the same as if '#' were appended here instead. // NOTE: It is not safe to append the UnicodeString to itself, so we need to copy. - // See http://bugs.icu-project.org/trac/ticket/13707 + // See https://unicode-org.atlassian.net/browse/ICU-13707 UnicodeString copy(sb); sb.append(copy, afterPrefixPos, beforeSuffixPos - afterPrefixPos); sb.append(affixProvider.get().getString(AffixPatternProvider::AFFIX_NEG_SUFFIX)); @@ -869,6 +921,7 @@ PatternStringUtils::convertLocalized(const UnicodeString& input, const DecimalFo UnicodeString table[LEN][2]; int standIdx = toLocalized ? 0 : 1; int localIdx = toLocalized ? 1 : 0; + // TODO: Add approximately sign here? table[0][standIdx] = u"%"; table[0][localIdx] = symbols.getConstSymbol(DecimalFormatSymbols::kPercentSymbol); table[1][standIdx] = u"‰"; @@ -1001,6 +1054,7 @@ PatternStringUtils::convertLocalized(const UnicodeString& input, const DecimalFo void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& patternInfo, bool isPrefix, PatternSignType patternSignType, + bool approximately, StandardPlural::Form plural, bool perMilleReplacesPercent, UnicodeString& output) { @@ -1012,7 +1066,7 @@ void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& // (If not, we will use the positive subpattern.) bool useNegativeAffixPattern = patternInfo.hasNegativeSubpattern() && (patternSignType == PATTERN_SIGN_TYPE_NEG - || (patternInfo.negativeHasMinusSign() && plusReplacesMinusSign)); + || (patternInfo.negativeHasMinusSign() && (plusReplacesMinusSign || approximately))); // Resolve the flags for the affix pattern. int flags = 0; @@ -1034,10 +1088,24 @@ void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& } else if (patternSignType == PATTERN_SIGN_TYPE_NEG) { prependSign = true; } else { - prependSign = plusReplacesMinusSign; + prependSign = plusReplacesMinusSign || approximately; } - // Compute the length of the affix pattern. + // What symbols should take the place of the sign placeholder? + const char16_t* signSymbols = u"-"; + if (approximately) { + if (plusReplacesMinusSign) { + signSymbols = u"~+"; + } else if (patternSignType == PATTERN_SIGN_TYPE_NEG) { + signSymbols = u"~-"; + } else { + signSymbols = u"~"; + } + } else if (plusReplacesMinusSign) { + signSymbols = u"+"; + } + + // Compute the number of tokens in the affix pattern (signSymbols is considered one token). int length = patternInfo.length(flags) + (prependSign ? 1 : 0); // Finally, set the result into the StringBuilder. @@ -1051,8 +1119,13 @@ void PatternStringUtils::patternInfoToStringBuilder(const AffixPatternProvider& } else { candidate = patternInfo.charAt(flags, index); } - if (plusReplacesMinusSign && candidate == u'-') { - candidate = u'+'; + if (candidate == u'-') { + if (u_strlen(signSymbols) == 1) { + candidate = signSymbols[0]; + } else { + output.append(signSymbols[0]); + candidate = signSymbols[1]; + } } if (perMilleReplacesPercent && candidate == u'%') { candidate = u'‰'; @@ -1127,7 +1200,7 @@ PatternSignType PatternStringUtils::resolveSignDisplay(UNumberSignDisplay signDi break; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; return PATTERN_SIGN_TYPE_POS; } diff --git a/deps/icu-small/source/i18n/number_patternstring.h b/deps/icu-small/source/i18n/number_patternstring.h index 3e962cc134f98f..94afda372296ae 100644 --- a/deps/icu-small/source/i18n/number_patternstring.h +++ b/deps/icu-small/source/i18n/number_patternstring.h @@ -62,6 +62,7 @@ struct U_I18N_API ParsedSubpatternInfo { bool hasPercentSign = false; bool hasPerMilleSign = false; bool hasCurrencySign = false; + bool hasCurrencyDecimal = false; bool hasMinusSign = false; bool hasPlusSign = false; @@ -104,6 +105,8 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor bool hasBody() const U_OVERRIDE; + bool currencyAsDecimal() const U_OVERRIDE; + private: struct U_I18N_API ParserState { const UnicodeString& pattern; // reference to the parent @@ -119,8 +122,13 @@ struct U_I18N_API ParsedPatternInfo : public AffixPatternProvider, public UMemor return *this; } + /** Returns the next code point, or -1 if string is too short. */ UChar32 peek(); + /** Returns the code point after the next code point, or -1 if string is too short. */ + UChar32 peek2(); + + /** Returns the next code point and then steps forward. */ UChar32 next(); // TODO: We don't currently do anything with the message string. @@ -243,9 +251,9 @@ class U_I18N_API PatternStringUtils { * it should not be ignored if maxFrac is 2 or more (but a roundingIncrement of * 0.005 is treated like 0.001 for significance). * - * This test is needed for both NumberPropertyMapper::oldToNew and + * This test is needed for both NumberPropertyMapper::oldToNew and * PatternStringUtils::propertiesToPatternString. In Java it cannot be - * exported by NumberPropertyMapper (package provate) so it is in + * exported by NumberPropertyMapper (package private) so it is in * PatternStringUtils, do the same in C. * * @param roundIncr @@ -308,6 +316,7 @@ class U_I18N_API PatternStringUtils { */ static void patternInfoToStringBuilder(const AffixPatternProvider& patternInfo, bool isPrefix, PatternSignType patternSignType, + bool approximately, StandardPlural::Form plural, bool perMilleReplacesPercent, UnicodeString& output); diff --git a/deps/icu-small/source/i18n/number_rounding.cpp b/deps/icu-small/source/i18n/number_rounding.cpp index 40392ee857e493..877df63c8f68ef 100644 --- a/deps/icu-small/source/i18n/number_rounding.cpp +++ b/deps/icu-small/source/i18n/number_rounding.cpp @@ -13,6 +13,7 @@ #include "double-conversion.h" #include "number_roundingutils.h" #include "number_skeletons.h" +#include "number_decnum.h" #include "putilimp.h" #include "string_segment.h" @@ -35,8 +36,10 @@ void number::impl::parseIncrementOption(const StringSegment &segment, // Utilize DecimalQuantity/decNumber to parse this for us. DecimalQuantity dq; UErrorCode localStatus = U_ZERO_ERROR; - dq.setToDecNumber({buffer.data(), buffer.length()}, localStatus); - if (U_FAILURE(localStatus)) { + DecNum decnum; + decnum.setTo({buffer.data(), buffer.length()}, localStatus); + dq.setToDecNum(decnum, localStatus); + if (U_FAILURE(localStatus) || decnum.isSpecial()) { // throw new SkeletonSyntaxException("Invalid rounding increment", segment, e); status = U_NUMBER_SKELETON_SYNTAX_ERROR; return; @@ -498,10 +501,10 @@ void RoundingImpl::apply(impl::DecimalQuantity &value, UErrorCode& status) const case Precision::RND_CURRENCY: // Call .withCurrency() before .apply()! - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } if (fPrecision.fTrailingZeroDisplay == UNUM_TRAILING_ZERO_AUTO || diff --git a/deps/icu-small/source/i18n/number_scientific.cpp b/deps/icu-small/source/i18n/number_scientific.cpp index 33862d7a887ef4..d365d982d4ce85 100644 --- a/deps/icu-small/source/i18n/number_scientific.cpp +++ b/deps/icu-small/source/i18n/number_scientific.cpp @@ -96,7 +96,7 @@ bool ScientificModifier::isStrong() const { bool ScientificModifier::containsField(Field field) const { (void)field; // This method is not used for inner modifiers. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } void ScientificModifier::getParameters(Parameters& output) const { @@ -115,7 +115,7 @@ bool ScientificModifier::semanticallyEquivalent(const Modifier& other) const { // Note: Visual Studio does not compile this function without full name space. Why? icu::number::impl::ScientificHandler::ScientificHandler(const Notation *notation, const DecimalFormatSymbols *symbols, - const MicroPropsGenerator *parent) : + const MicroPropsGenerator *parent) : fSettings(notation->fUnion.scientific), fSymbols(symbols), fParent(parent) {} void ScientificHandler::processQuantity(DecimalQuantity &quantity, MicroProps µs, diff --git a/deps/icu-small/source/i18n/number_scientific.h b/deps/icu-small/source/i18n/number_scientific.h index a55d5ed1d410de..a40a6e416d1929 100644 --- a/deps/icu-small/source/i18n/number_scientific.h +++ b/deps/icu-small/source/i18n/number_scientific.h @@ -52,7 +52,7 @@ class ScientificHandler : public UMemory, public MicroPropsGenerator, public Mul int32_t getMultiplier(int32_t magnitude) const U_OVERRIDE; private: - const Notation::ScientificSettings& fSettings; + const Notation::ScientificSettings fSettings; const DecimalFormatSymbols *fSymbols; const MicroPropsGenerator *fParent; diff --git a/deps/icu-small/source/i18n/number_skeletons.cpp b/deps/icu-small/source/i18n/number_skeletons.cpp index 97d74303a4358e..de70c5cedff3ca 100644 --- a/deps/icu-small/source/i18n/number_skeletons.cpp +++ b/deps/icu-small/source/i18n/number_skeletons.cpp @@ -74,6 +74,7 @@ void U_CALLCONV initNumberSkeletons(UErrorCode& status) { b.add(u"rounding-mode-half-down", STEM_ROUNDING_MODE_HALF_DOWN, status); b.add(u"rounding-mode-half-up", STEM_ROUNDING_MODE_HALF_UP, status); b.add(u"rounding-mode-unnecessary", STEM_ROUNDING_MODE_UNNECESSARY, status); + b.add(u"integer-width-trunc", STEM_INTEGER_WIDTH_TRUNC, status); b.add(u"group-off", STEM_GROUP_OFF, status); b.add(u"group-min2", STEM_GROUP_MIN2, status); b.add(u"group-auto", STEM_GROUP_AUTO, status); @@ -176,7 +177,7 @@ Notation stem_to_object::notation(skeleton::StemEnum stem) { case STEM_NOTATION_SIMPLE: return Notation::simple(); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -189,7 +190,7 @@ MeasureUnit stem_to_object::unit(skeleton::StemEnum stem) { case STEM_PERMILLE: return MeasureUnit::getPermille(); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -204,7 +205,7 @@ Precision stem_to_object::precision(skeleton::StemEnum stem) { case STEM_PRECISION_CURRENCY_CASH: return Precision::currency(UCURR_USAGE_CASH); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -233,7 +234,7 @@ UNumberFormatRoundingMode stem_to_object::roundingMode(skeleton::StemEnum stem) case STEM_ROUNDING_MODE_UNNECESSARY: return UNUM_ROUND_UNNECESSARY; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -348,7 +349,7 @@ void enum_to_stem_string::roundingMode(UNumberFormatRoundingMode value, UnicodeS sb.append(u"rounding-mode-unnecessary", -1); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -370,7 +371,7 @@ void enum_to_stem_string::groupingStrategy(UNumberGroupingStrategy value, Unicod sb.append(u"group-thousands", -1); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -398,7 +399,7 @@ void enum_to_stem_string::unitWidth(UNumberUnitWidth value, UnicodeString& sb) { sb.append(u"unit-width-hidden", -1); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -432,7 +433,7 @@ void enum_to_stem_string::signDisplay(UNumberSignDisplay value, UnicodeString& s sb.append(u"sign-accounting-negative", -1); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -446,7 +447,7 @@ enum_to_stem_string::decimalSeparatorDisplay(UNumberDecimalSeparatorDisplay valu sb.append(u"decimal-always", -1); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -700,6 +701,11 @@ skeleton::parseStem(const StringSegment& segment, const UCharsTrie& stemTrie, Se macros.roundingMode = stem_to_object::roundingMode(stem); return STATE_NULL; + case STEM_INTEGER_WIDTH_TRUNC: + CHECK_NULL(seen, integerWidth, status); + macros.integerWidth = IntegerWidth::zeroFillTo(0).truncateAt(0); + return STATE_NULL; + case STEM_GROUP_OFF: case STEM_GROUP_MIN2: case STEM_GROUP_AUTO: @@ -785,7 +791,7 @@ skeleton::parseStem(const StringSegment& segment, const UCharsTrie& stemTrie, Se return STATE_SCALE; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -1352,7 +1358,9 @@ bool blueprint_helpers::parseFracSigOption(const StringSegment& segment, MacroPr priority = UNUM_ROUNDING_PRIORITY_STRICT; offset++; } else { - U_ASSERT(offset < segment.length()); + // Invalid digits option for fraction rounder + status = U_NUMBER_SKELETON_SYNTAX_ERROR; + return false; } if (offset < segment.length()) { // Invalid digits option for fraction rounder @@ -1391,18 +1399,14 @@ void blueprint_helpers::parseIncrementOption(const StringSegment &segment, Macro number::impl::parseIncrementOption(segment, macros.precision, status); } -void blueprint_helpers::generateIncrementOption(double increment, int32_t trailingZeros, UnicodeString& sb, +void blueprint_helpers::generateIncrementOption(double increment, int32_t minFrac, UnicodeString& sb, UErrorCode&) { // Utilize DecimalQuantity/double_conversion to format this for us. DecimalQuantity dq; dq.setToDouble(increment); dq.roundToInfinity(); + dq.setMinFraction(minFrac); sb.append(dq.toPlainString()); - - // We might need to append extra trailing zeros for min fraction... - if (trailingZeros > 0) { - appendMultiple(sb, u'0', trailingZeros); - } } void blueprint_helpers::parseIntegerWidthOption(const StringSegment& segment, MacroProps& macros, @@ -1491,7 +1495,7 @@ void blueprint_helpers::parseScaleOption(const StringSegment& segment, MacroProp LocalPointer decnum(new DecNum(), status); if (U_FAILURE(status)) { return; } decnum->setTo({buffer.data(), buffer.length()}, status); - if (U_FAILURE(status)) { + if (U_FAILURE(status) || decnum->isSpecial()) { // This is a skeleton syntax error; don't let the low-level decnum error bubble up status = U_NUMBER_SKELETON_SYNTAX_ERROR; return; @@ -1626,7 +1630,7 @@ bool GeneratorHelpers::precision(const MacroProps& macros, UnicodeString& sb, UE sb.append(u"precision-increment/", -1); blueprint_helpers::generateIncrementOption( impl.fIncrement, - impl.fMinFrac - impl.fMaxFrac, + impl.fMinFrac, sb, status); } else if (macros.precision.fType == Precision::RND_CURRENCY) { @@ -1677,10 +1681,15 @@ bool GeneratorHelpers::integerWidth(const MacroProps& macros, UnicodeString& sb, // Error or Default return false; } + const auto& minMaxInt = macros.integerWidth.fUnion.minMaxInt; + if (minMaxInt.fMinInt == 0 && minMaxInt.fMaxInt == 0) { + sb.append(u"integer-width-trunc", -1); + return true; + } sb.append(u"integer-width/", -1); blueprint_helpers::generateIntegerWidthOption( - macros.integerWidth.fUnion.minMaxInt.fMinInt, - macros.integerWidth.fUnion.minMaxInt.fMaxInt, + minMaxInt.fMinInt, + minMaxInt.fMaxInt, sb, status); return true; diff --git a/deps/icu-small/source/i18n/number_skeletons.h b/deps/icu-small/source/i18n/number_skeletons.h index af636504283059..be41f1b3237a94 100644 --- a/deps/icu-small/source/i18n/number_skeletons.h +++ b/deps/icu-small/source/i18n/number_skeletons.h @@ -92,6 +92,7 @@ enum StemEnum { STEM_ROUNDING_MODE_HALF_DOWN, STEM_ROUNDING_MODE_HALF_UP, STEM_ROUNDING_MODE_UNNECESSARY, + STEM_INTEGER_WIDTH_TRUNC, STEM_GROUP_OFF, STEM_GROUP_MIN2, STEM_GROUP_AUTO, @@ -285,7 +286,7 @@ bool parseTrailingZeroOption(const StringSegment& segment, MacroProps& macros, U void parseIncrementOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status); void -generateIncrementOption(double increment, int32_t trailingZeros, UnicodeString& sb, UErrorCode& status); +generateIncrementOption(double increment, int32_t minFrac, UnicodeString& sb, UErrorCode& status); void parseIntegerWidthOption(const StringSegment& segment, MacroProps& macros, UErrorCode& status); diff --git a/deps/icu-small/source/i18n/number_types.h b/deps/icu-small/source/i18n/number_types.h index 8078851ba3fdb3..84846efb9242ac 100644 --- a/deps/icu-small/source/i18n/number_types.h +++ b/deps/icu-small/source/i18n/number_types.h @@ -62,26 +62,29 @@ enum AffixPatternType { // Represents a plus sign symbol '+'. TYPE_PLUS_SIGN = -2, + // Represents an approximately sign symbol '~'. + TYPE_APPROXIMATELY_SIGN = -3, + // Represents a percent sign symbol '%'. - TYPE_PERCENT = -3, + TYPE_PERCENT = -4, // Represents a permille sign symbol '‰'. - TYPE_PERMILLE = -4, + TYPE_PERMILLE = -5, // Represents a single currency symbol '¤'. - TYPE_CURRENCY_SINGLE = -5, + TYPE_CURRENCY_SINGLE = -6, // Represents a double currency symbol '¤¤'. - TYPE_CURRENCY_DOUBLE = -6, + TYPE_CURRENCY_DOUBLE = -7, // Represents a triple currency symbol '¤¤¤'. - TYPE_CURRENCY_TRIPLE = -7, + TYPE_CURRENCY_TRIPLE = -8, // Represents a quadruple currency symbol '¤¤¤¤'. - TYPE_CURRENCY_QUAD = -8, + TYPE_CURRENCY_QUAD = -9, // Represents a quintuple currency symbol '¤¤¤¤¤'. - TYPE_CURRENCY_QUINT = -9, + TYPE_CURRENCY_QUINT = -10, // Represents a sequence of six or more currency symbols. TYPE_CURRENCY_OVERFLOW = -15 @@ -137,6 +140,11 @@ class U_I18N_API AffixPatternProvider { * number instead of rendering the number. */ virtual bool hasBody() const = 0; + + /** + * True if the currency symbol should replace the decimal separator. + */ + virtual bool currencyAsDecimal() const = 0; }; diff --git a/deps/icu-small/source/i18n/number_usageprefs.cpp b/deps/icu-small/source/i18n/number_usageprefs.cpp index ed426da086e327..5d93d12cce78f1 100644 --- a/deps/icu-small/source/i18n/number_usageprefs.cpp +++ b/deps/icu-small/source/i18n/number_usageprefs.cpp @@ -133,7 +133,7 @@ void mixedMeasuresToMicros(const MaybeStackVector &measures, DecimalQua default: U_ASSERT(0 == "Found a Measure Number which is neither a double nor an int"); - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; break; } diff --git a/deps/icu-small/source/i18n/number_utils.cpp b/deps/icu-small/source/i18n/number_utils.cpp index bef7ea6c61f30b..ad7053214077b0 100644 --- a/deps/icu-small/source/i18n/number_utils.cpp +++ b/deps/icu-small/source/i18n/number_utils.cpp @@ -70,7 +70,7 @@ const char16_t* utils::getPatternForStyle(const Locale& locale, const char* nsNa break; default: patternKey = "decimalFormat"; // silence compiler error - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } LocalUResourceBundlePointer res(ures_open(nullptr, locale.getName(), &status)); if (U_FAILURE(status)) { return u""; } @@ -180,12 +180,6 @@ void DecNum::_setTo(const char* str, int32_t maxDigits, UErrorCode& status) { status = U_UNSUPPORTED_ERROR; return; } - - // For consistency with Java BigDecimal, no support for DecNum that is NaN or Infinity! - if (decNumberIsSpecial(fData.getAlias())) { - status = U_UNSUPPORTED_ERROR; - return; - } } void @@ -252,6 +246,18 @@ bool DecNum::isZero() const { return decNumberIsZero(fData.getAlias()); } +bool DecNum::isSpecial() const { + return decNumberIsSpecial(fData.getAlias()); +} + +bool DecNum::isInfinity() const { + return decNumberIsInfinite(fData.getAlias()); +} + +bool DecNum::isNaN() const { + return decNumberIsNaN(fData.getAlias()); +} + void DecNum::toString(ByteSink& output, UErrorCode& status) const { if (U_FAILURE(status)) { return; diff --git a/deps/icu-small/source/i18n/numfmt.cpp b/deps/icu-small/source/i18n/numfmt.cpp index bffefa5e3998b8..b8ce1c930f9dbe 100644 --- a/deps/icu-small/source/i18n/numfmt.cpp +++ b/deps/icu-small/source/i18n/numfmt.cpp @@ -122,7 +122,7 @@ static const UChar * const gLastResortNumberPatterns[UNUM_FORMAT_STYLE_COUNT] = gLastResortIsoCurrencyPat, // UNUM_CURRENCY_ISO gLastResortPluralCurrencyPat, // UNUM_CURRENCY_PLURAL gLastResortAccountingCurrencyPat, // UNUM_CURRENCY_ACCOUNTING - gLastResortCurrencyPat, // UNUM_CASH_CURRENCY + gLastResortCurrencyPat, // UNUM_CASH_CURRENCY NULL, // UNUM_DECIMAL_COMPACT_SHORT NULL, // UNUM_DECIMAL_COMPACT_LONG gLastResortCurrencyPat, // UNUM_CURRENCY_STANDARD @@ -285,7 +285,7 @@ NumberFormat::operator=(const NumberFormat& rhs) // ------------------------------------- -UBool +bool NumberFormat::operator==(const Format& that) const { // Format::operator== guarantees this cast is safe @@ -434,13 +434,13 @@ NumberFormat::format(int64_t number, // ------------------------------------- -// Decimal Number format() default implementation +// Decimal Number format() default implementation // Subclasses do not normally override this function, but rather the DigitList // formatting functions.. // The expected call chain from here is // this function -> // NumberFormat::format(Formattable -> -// DecimalFormat::format(DigitList +// DecimalFormat::format(DigitList // // Or, for subclasses of Formattable that do not know about DigitList, // this Function -> @@ -860,7 +860,7 @@ class ICUNumberFormatFactory : public ICUResourceBundleFactory { public: virtual ~ICUNumberFormatFactory(); protected: - virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /* service */, UErrorCode& status) const { + virtual UObject* handleCreate(const Locale& loc, int32_t kind, const ICUService* /* service */, UErrorCode& status) const override { return NumberFormat::makeInstance(loc, (UNumberFormatStyle)kind, status); } }; @@ -884,7 +884,7 @@ class NFFactory : public LocaleKeyFactory { virtual ~NFFactory(); - virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const + virtual UObject* create(const ICUServiceKey& key, const ICUService* service, UErrorCode& status) const override { if (handlesKey(key, status)) { const LocaleKey& lkey = (const LocaleKey&)key; @@ -907,7 +907,7 @@ class NFFactory : public LocaleKeyFactory { * otherwise). This can be called often and might need to be * cached if it is expensive to create. */ - virtual const Hashtable* getSupportedIDs(UErrorCode& status) const + virtual const Hashtable* getSupportedIDs(UErrorCode& status) const override { if (U_SUCCESS(status)) { if (!_ids) { @@ -943,11 +943,11 @@ class ICUNumberFormatService : public ICULocaleService { virtual ~ICUNumberFormatService(); - virtual UObject* cloneInstance(UObject* instance) const { + virtual UObject* cloneInstance(UObject* instance) const override { return ((NumberFormat*)instance)->clone(); } - virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /* actualID */, UErrorCode& status) const { + virtual UObject* handleDefault(const ICUServiceKey& key, UnicodeString* /* actualID */, UErrorCode& status) const override { LocaleKey& lkey = (LocaleKey&)key; int32_t kind = lkey.kind(); Locale loc; @@ -955,7 +955,7 @@ class ICUNumberFormatService : public ICULocaleService { return NumberFormat::makeInstance(loc, (UNumberFormatStyle)kind, status); } - virtual UBool isDefault() const { + virtual UBool isDefault() const override { return countFactories() == 1; } }; @@ -1066,7 +1066,7 @@ NumberFormat::createInstance(const Locale& loc, UNumberFormatStyle kind, UErrorC } return result; } - + // ------------------------------------- // Checks if the thousand/10 thousand grouping is used in the @@ -1412,7 +1412,7 @@ NumberFormat::makeInstance(const Locale& desiredLocale, if (U_FAILURE(status)) { return NULL; } - if(style==UNUM_CURRENCY || style == UNUM_CURRENCY_ISO || style == UNUM_CURRENCY_ACCOUNTING + if(style==UNUM_CURRENCY || style == UNUM_CURRENCY_ISO || style == UNUM_CURRENCY_ACCOUNTING || style == UNUM_CASH_CURRENCY || style == UNUM_CURRENCY_STANDARD){ const UChar* currPattern = symbolsToAdopt->getCurrencyPattern(); if(currPattern!=NULL){ diff --git a/deps/icu-small/source/i18n/numparse_affixes.cpp b/deps/icu-small/source/i18n/numparse_affixes.cpp index cef1685d03cd85..14140065983866 100644 --- a/deps/icu-small/source/i18n/numparse_affixes.cpp +++ b/deps/icu-small/source/i18n/numparse_affixes.cpp @@ -101,7 +101,7 @@ void AffixPatternMatcherBuilder::consumeToken(AffixPatternType type, UChar32 cp, addMatcher(fWarehouse.currency(status)); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } else if (fIgnorables != nullptr && fIgnorables->getSet()->contains(cp)) { @@ -294,18 +294,20 @@ void AffixMatcherWarehouse::createAffixMatchers(const AffixPatternProvider& patt } // Generate Prefix + // TODO: Handle approximately sign? bool hasPrefix = false; PatternStringUtils::patternInfoToStringBuilder( - patternInfo, true, type, StandardPlural::OTHER, false, sb); + patternInfo, true, type, false, StandardPlural::OTHER, false, sb); fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern( sb, *fTokenWarehouse, parseFlags, &hasPrefix, status); AffixPatternMatcher* prefix = hasPrefix ? &fAffixPatternMatchers[numAffixPatternMatchers++] : nullptr; // Generate Suffix + // TODO: Handle approximately sign? bool hasSuffix = false; PatternStringUtils::patternInfoToStringBuilder( - patternInfo, false, type, StandardPlural::OTHER, false, sb); + patternInfo, false, type, false, StandardPlural::OTHER, false, sb); fAffixPatternMatchers[numAffixPatternMatchers] = AffixPatternMatcher::fromAffixPattern( sb, *fTokenWarehouse, parseFlags, &hasSuffix, status); AffixPatternMatcher* suffix = hasSuffix ? &fAffixPatternMatchers[numAffixPatternMatchers++] diff --git a/deps/icu-small/source/i18n/numparse_affixes.h b/deps/icu-small/source/i18n/numparse_affixes.h index 511c73c745380d..a82b731ab5b752 100644 --- a/deps/icu-small/source/i18n/numparse_affixes.h +++ b/deps/icu-small/source/i18n/numparse_affixes.h @@ -52,7 +52,7 @@ class U_I18N_API CodePointMatcher : public NumberParseMatcher, public UMemory { // (See digitlst.h, pluralaffix.h, datefmt.h, and others for similar examples.) // Note: These need to be outside of the numparse::impl namespace, or Clang will generate a compile error. #if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN -template class U_I18N_API MaybeStackArray; +template class U_I18N_API MaybeStackArray; template class U_I18N_API MaybeStackArray; template class U_I18N_API MemoryPool; template class U_I18N_API numparse::impl::CompactUnicodeString<4>; diff --git a/deps/icu-small/source/i18n/numparse_currency.cpp b/deps/icu-small/source/i18n/numparse_currency.cpp index 6b53a73edf3b85..7bbb060f3de406 100644 --- a/deps/icu-small/source/i18n/numparse_currency.cpp +++ b/deps/icu-small/source/i18n/numparse_currency.cpp @@ -42,7 +42,7 @@ CombinedCurrencyMatcher::CombinedCurrencyMatcher(const CurrencySymbols& currency // TODO: Figure out how to make this faster and re-enable. // Computing the "lead code points" set for fastpathing is too slow to use in production. - // See http://bugs.icu-project.org/trac/ticket/13584 + // See https://unicode-org.atlassian.net/browse/ICU-13584 // // Compute the full set of characters that could be the first in a currency to allow for // // efficient smoke test. // fLeadCodePoints.add(fCurrency1.char32At(0)); diff --git a/deps/icu-small/source/i18n/numparse_decimal.cpp b/deps/icu-small/source/i18n/numparse_decimal.cpp index cf1e8156726d01..8b99fd7ad4fa10 100644 --- a/deps/icu-small/source/i18n/numparse_decimal.cpp +++ b/deps/icu-small/source/i18n/numparse_decimal.cpp @@ -88,7 +88,7 @@ DecimalMatcher::DecimalMatcher(const DecimalFormatSymbols& symbols, const Groupe grouping2 = grouper.getSecondary(); // Fraction grouping parsing is disabled for now but could be enabled later. - // See http://bugs.icu-project.org/trac/ticket/10794 + // See https://unicode-org.atlassian.net/browse/ICU-10794 // fractionGrouping = 0 != (parseFlags & PARSE_FLAG_FRACTION_GROUPING_ENABLED); } diff --git a/deps/icu-small/source/i18n/numparse_decimal.h b/deps/icu-small/source/i18n/numparse_decimal.h index ec6c76487e44fc..07c9afeccc9d64 100644 --- a/deps/icu-small/source/i18n/numparse_decimal.h +++ b/deps/icu-small/source/i18n/numparse_decimal.h @@ -39,7 +39,7 @@ class DecimalMatcher : public NumberParseMatcher, public UMemory { bool groupingDisabled; // Fraction grouping parsing is disabled for now but could be enabled later. - // See http://bugs.icu-project.org/trac/ticket/10794 + // See https://unicode-org.atlassian.net/browse/ICU-10794 // bool fractionGrouping; /** If true, do not accept numbers in the fraction */ diff --git a/deps/icu-small/source/i18n/numparse_impl.cpp b/deps/icu-small/source/i18n/numparse_impl.cpp index 4b76da1c149a74..91c60747f2129f 100644 --- a/deps/icu-small/source/i18n/numparse_impl.cpp +++ b/deps/icu-small/source/i18n/numparse_impl.cpp @@ -285,7 +285,7 @@ void NumberParserImpl::parseGreedy(StringSegment& segment, ParsedNumber& result, i++; continue; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } // NOTE: If we get here, the greedy parse completed without consuming the entire string. diff --git a/deps/icu-small/source/i18n/numrange_capi.cpp b/deps/icu-small/source/i18n/numrange_capi.cpp index a440a53fe6b173..bd3a9ef5e82528 100644 --- a/deps/icu-small/source/i18n/numrange_capi.cpp +++ b/deps/icu-small/source/i18n/numrange_capi.cpp @@ -115,7 +115,9 @@ unumrf_formatDoubleRange( auto* result = UFormattedNumberRangeApiHelper::validate(uresult, *ec); if (U_FAILURE(*ec)) { return; } - result->fData.getStringRef().clear(); + result->fData.resetString(); + result->fData.quantity1.clear(); + result->fData.quantity2.clear(); result->fData.quantity1.setToDouble(first); result->fData.quantity2.setToDouble(second); formatter->fFormatter.formatImpl(result->fData, first == second, *ec); @@ -132,7 +134,9 @@ unumrf_formatDecimalRange( auto* result = UFormattedNumberRangeApiHelper::validate(uresult, *ec); if (U_FAILURE(*ec)) { return; } - result->fData.getStringRef().clear(); + result->fData.resetString(); + result->fData.quantity1.clear(); + result->fData.quantity2.clear(); result->fData.quantity1.setToDecNumber({first, firstLen}, *ec); result->fData.quantity2.setToDecNumber({second, secondLen}, *ec); formatter->fFormatter.formatImpl(result->fData, first == second, *ec); diff --git a/deps/icu-small/source/i18n/numrange_impl.cpp b/deps/icu-small/source/i18n/numrange_impl.cpp index aa713f1398b502..3c440c193c7bd5 100644 --- a/deps/icu-small/source/i18n/numrange_impl.cpp +++ b/deps/icu-small/source/i18n/numrange_impl.cpp @@ -30,7 +30,8 @@ constexpr int8_t identity2d(UNumberRangeIdentityFallback a, UNumberRangeIdentity struct NumberRangeData { SimpleFormatter rangePattern; - SimpleFormatter approximatelyPattern; + // Note: approximatelyPattern is unused since ICU 69. + // SimpleFormatter approximatelyPattern; }; class NumberRangeDataSink : public ResourceSink { @@ -46,12 +47,16 @@ class NumberRangeDataSink : public ResourceSink { continue; // have already seen this pattern } fData.rangePattern = {value.getUnicodeString(status), status}; - } else if (uprv_strcmp(key, "approximately") == 0) { + } + /* + // Note: approximatelyPattern is unused since ICU 69. + else if (uprv_strcmp(key, "approximately") == 0) { if (hasApproxData()) { continue; // have already seen this pattern } fData.approximatelyPattern = {value.getUnicodeString(status), status}; } + */ } } @@ -59,21 +64,26 @@ class NumberRangeDataSink : public ResourceSink { return fData.rangePattern.getArgumentLimit() != 0; } + /* + // Note: approximatelyPattern is unused since ICU 69. bool hasApproxData() { return fData.approximatelyPattern.getArgumentLimit() != 0; } + */ bool isComplete() { - return hasRangeData() && hasApproxData(); + return hasRangeData() /* && hasApproxData() */; } void fillInDefaults(UErrorCode& status) { if (!hasRangeData()) { fData.rangePattern = {u"{0}–{1}", status}; } + /* if (!hasApproxData()) { fData.approximatelyPattern = {u"~{0}", status}; } + */ } private: @@ -116,7 +126,8 @@ NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros formatterImpl2(macros.formatter2.fMacros, status), fSameFormatters(macros.singleFormatter), fCollapse(macros.collapse), - fIdentityFallback(macros.identityFallback) { + fIdentityFallback(macros.identityFallback), + fApproximatelyFormatter(status) { const char* nsName = formatterImpl1.getRawMicroProps().nsName; if (uprv_strcmp(nsName, formatterImpl2.getRawMicroProps().nsName) != 0) { @@ -128,7 +139,16 @@ NumberRangeFormatterImpl::NumberRangeFormatterImpl(const RangeMacroProps& macros getNumberRangeData(macros.locale.getName(), nsName, data, status); if (U_FAILURE(status)) { return; } fRangeFormatter = data.rangePattern; - fApproximatelyModifier = {data.approximatelyPattern, kUndefinedField, false}; + + if (fSameFormatters && ( + fIdentityFallback == UNUM_IDENTITY_FALLBACK_APPROXIMATELY || + fIdentityFallback == UNUM_IDENTITY_FALLBACK_APPROXIMATELY_OR_SINGLE_VALUE)) { + MacroProps approximatelyMacros(macros.formatter1.fMacros); + approximatelyMacros.approximately = true; + // Use in-place construction because NumberFormatterImpl has internal self-pointers + fApproximatelyFormatter.~NumberFormatterImpl(); + new (&fApproximatelyFormatter) NumberFormatterImpl(approximatelyMacros, status); + } // TODO: Get locale from PluralRules instead? fPluralRanges = StandardPluralRanges::forLocale(macros.locale, status); @@ -209,7 +229,7 @@ void NumberRangeFormatterImpl::format(UFormattedNumberRangeData& data, bool equa break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -232,12 +252,14 @@ void NumberRangeFormatterImpl::formatApproximately (UFormattedNumberRangeData& d UErrorCode& status) const { if (U_FAILURE(status)) { return; } if (fSameFormatters) { - int32_t length = NumberFormatterImpl::writeNumber(micros1, data.quantity1, data.getStringRef(), 0, status); - // HEURISTIC: Desired modifier order: inner, middle, approximately, outer. - length += micros1.modInner->apply(data.getStringRef(), 0, length, status); - length += micros1.modMiddle->apply(data.getStringRef(), 0, length, status); - length += fApproximatelyModifier.apply(data.getStringRef(), 0, length, status); - micros1.modOuter->apply(data.getStringRef(), 0, length, status); + // Re-format using the approximately formatter: + MicroProps microsAppx; + data.quantity1.resetExponent(); + fApproximatelyFormatter.preProcess(data.quantity1, microsAppx, status); + int32_t length = NumberFormatterImpl::writeNumber(microsAppx, data.quantity1, data.getStringRef(), 0, status); + length += microsAppx.modInner->apply(data.getStringRef(), 0, length, status); + length += microsAppx.modMiddle->apply(data.getStringRef(), 0, length, status); + microsAppx.modOuter->apply(data.getStringRef(), 0, length, status); } else { formatRange(data, micros1, micros2, status); } @@ -363,7 +385,10 @@ void NumberRangeFormatterImpl::formatRange(UFormattedNumberRangeData& data, } length1 += NumberFormatterImpl::writeNumber(micros1, data.quantity1, string, UPRV_INDEX_0, status); - length2 += NumberFormatterImpl::writeNumber(micros2, data.quantity2, string, UPRV_INDEX_2, status); + // ICU-21684: Write the second number to a temp string to avoid repeated insert operations + FormattedStringBuilder tempString; + NumberFormatterImpl::writeNumber(micros2, data.quantity2, tempString, 0, status); + length2 += string.insert(UPRV_INDEX_2, tempString, status); // TODO: Support padding? diff --git a/deps/icu-small/source/i18n/numrange_impl.h b/deps/icu-small/source/i18n/numrange_impl.h index b81a311a5f393d..ac1d8a58972743 100644 --- a/deps/icu-small/source/i18n/numrange_impl.h +++ b/deps/icu-small/source/i18n/numrange_impl.h @@ -56,7 +56,7 @@ class NumberRangeFormatterImpl : public UMemory { UNumberRangeIdentityFallback fIdentityFallback; SimpleFormatter fRangeFormatter; - SimpleModifier fApproximatelyModifier; + NumberFormatterImpl fApproximatelyFormatter; StandardPluralRanges fPluralRanges; diff --git a/deps/icu-small/source/i18n/numsys.cpp b/deps/icu-small/source/i18n/numsys.cpp index d8b901c0d74b68..44aaf8e2a5f987 100644 --- a/deps/icu-small/source/i18n/numsys.cpp +++ b/deps/icu-small/source/i18n/numsys.cpp @@ -72,7 +72,7 @@ NumberingSystem::NumberingSystem() { * @draft ICU 4.2 */ -NumberingSystem::NumberingSystem(const NumberingSystem& other) +NumberingSystem::NumberingSystem(const NumberingSystem& other) : UObject(other) { *this=other; } @@ -128,7 +128,7 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { if ( count > 0 ) { // @numbers keyword was specified in the locale U_ASSERT(count < ULOC_KEYWORDS_CAPACITY); buffer[count] = '\0'; // Make sure it is null terminated. - if ( !uprv_strcmp(buffer,gDefault) || !uprv_strcmp(buffer,gNative) || + if ( !uprv_strcmp(buffer,gDefault) || !uprv_strcmp(buffer,gNative) || !uprv_strcmp(buffer,gTraditional) || !uprv_strcmp(buffer,gFinance)) { nsResolved = FALSE; } @@ -159,10 +159,10 @@ NumberingSystem::createInstance(const Locale & inLocale, UErrorCode& status) { u_UCharsToChars(nsName, buffer, count); buffer[count] = '\0'; // Make sure it is null terminated. nsResolved = TRUE; - } + } if (!nsResolved) { // Fallback behavior per TR35 - traditional falls back to native, finance and native fall back to default - if (!uprv_strcmp(buffer,gNative) || !uprv_strcmp(buffer,gFinance)) { + if (!uprv_strcmp(buffer,gNative) || !uprv_strcmp(buffer,gFinance)) { uprv_strcpy(buffer,gDefault); } else if (!uprv_strcmp(buffer,gTraditional)) { uprv_strcpy(buffer,gNative); @@ -314,7 +314,7 @@ U_CFUNC void initNumsysNames(UErrorCode &status) { const char *nsName = ures_getKey(nsCurrent.getAlias()); LocalPointer newElem(new UnicodeString(nsName, -1, US_INV), status); if (U_SUCCESS(status)) { - numsysNames->addElement(newElem.getAlias(), status); + numsysNames->addElementX(newElem.getAlias(), status); if (U_SUCCESS(status)) { newElem.orphan(); // on success, the numsysNames vector owns newElem. } diff --git a/deps/icu-small/source/i18n/numsys_impl.h b/deps/icu-small/source/i18n/numsys_impl.h index c0690b47d78802..e76e634dd23c07 100644 --- a/deps/icu-small/source/i18n/numsys_impl.h +++ b/deps/icu-small/source/i18n/numsys_impl.h @@ -17,7 +17,7 @@ #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING - + #include "unicode/numsys.h" #include "uvector.h" #include "unicode/strenum.h" diff --git a/deps/icu-small/source/i18n/olsontz.cpp b/deps/icu-small/source/i18n/olsontz.cpp index 67aa1f7af81d68..cae471a5a25c60 100644 --- a/deps/icu-small/source/i18n/olsontz.cpp +++ b/deps/icu-small/source/i18n/olsontz.cpp @@ -206,7 +206,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top, if (U_SUCCESS(ec)) { UnicodeString ruleID(TRUE, ruleIdUStr, len); UResourceBundle *rule = TimeZone::loadRule(top, ruleID, NULL, ec); - const int32_t *ruleData = ures_getIntVector(rule, &len, &ec); + const int32_t *ruleData = ures_getIntVector(rule, &len, &ec); if (U_SUCCESS(ec) && len == 11) { UnicodeString emptyStr; finalZone = new SimpleTimeZone( @@ -225,7 +225,7 @@ OlsonTimeZone::OlsonTimeZone(const UResourceBundle* top, finalStartYear = ruleYear; // Note: Setting finalStartYear to the finalZone is problematic. When a date is around - // year boundary, SimpleTimeZone may return false result when DST is observed at the + // year boundary, SimpleTimeZone may return false result when DST is observed at the // beginning of year. We could apply safe margin (day or two), but when one of recurrent // rules falls around year boundary, it could return false result. Without setting the // start year, finalZone works fine around the year boundary of the start year. @@ -311,7 +311,7 @@ OlsonTimeZone::~OlsonTimeZone() { /** * Returns true if the two TimeZone objects are equal. */ -UBool OlsonTimeZone::operator==(const TimeZone& other) const { +bool OlsonTimeZone::operator==(const TimeZone& other) const { return ((this == &other) || (typeid(*this) == typeid(other) && TimeZone::operator==(other) && @@ -440,7 +440,7 @@ void printTime(double ms) { int32_t year, month, dom, dow; double millis=0; double days = ClockMath::floorDivide(((double)ms), (double)U_MILLIS_PER_DAY, millis); - + Grego::dayToFields(days, year, month, dom, dow); U_DEBUG_TZ_MSG((" getHistoricalOffset: time %.1f (%04d.%02d.%02d+%.1fh)\n", ms, year, month+1, dom, (millis/kOneHour))); @@ -449,7 +449,7 @@ void printTime(double ms) { int64_t OlsonTimeZone::transitionTimeInSeconds(int16_t transIdx) const { - U_ASSERT(transIdx >= 0 && transIdx < transitionCount()); + U_ASSERT(transIdx >= 0 && transIdx < transitionCount()); if (transIdx < transitionCountPre32) { return (((int64_t)((uint32_t)transitionTimesPre32[transIdx << 1])) << 32) @@ -504,7 +504,7 @@ OlsonTimeZone::getHistoricalOffset(UDate date, UBool local, UBool dstToStd = dstBefore && !dstAfter; UBool stdToDst = !dstBefore && dstAfter; - + if (offsetAfter - offsetBefore >= 0) { // Positive transition, which makes a non-existing local time range if (((NonExistingTimeOpt & kStdDstMask) == kStandard && dstToStd) @@ -590,7 +590,7 @@ UBool OlsonTimeZone::useDaylightTime() const { } return FALSE; } -int32_t +int32_t OlsonTimeZone::getDSTSavings() const{ if (finalZone != NULL){ return finalZone->getDSTSavings(); @@ -622,7 +622,7 @@ OlsonTimeZone::hasSameRules(const TimeZone &other) const { if (typeMapData == z->typeMapData) { return TRUE; } - + // If the pointers are not equal, the zones may still // be equal if their rules and transitions are equal if ((finalZone == NULL && z->finalZone != NULL) @@ -695,7 +695,7 @@ OlsonTimeZone::deleteTransitionRules(void) { static void U_CALLCONV initRules(OlsonTimeZone *This, UErrorCode &status) { This->initTransitionRules(status); } - + void OlsonTimeZone::checkTransitionRules(UErrorCode& status) const { OlsonTimeZone *ncThis = const_cast(this); @@ -806,7 +806,7 @@ OlsonTimeZone::initTransitionRules(UErrorCode& status) { } } if (finalZone != NULL) { - // Get the first occurence of final rule starts + // Get the first occurrence of final rule starts UDate startTime = (UDate)finalStartMillis; TimeZoneRule *firstFinalRule = NULL; diff --git a/deps/icu-small/source/i18n/olsontz.h b/deps/icu-small/source/i18n/olsontz.h index 6bedb8792b0cd4..75d86781edd49a 100644 --- a/deps/icu-small/source/i18n/olsontz.h +++ b/deps/icu-small/source/i18n/olsontz.h @@ -44,52 +44,52 @@ class SimpleTimeZone; * * a. Zone (table). A zone is a table resource contains several * type of resources below: - * + * * - typeOffsets:intvector (Required) - * + * * Sets of UTC raw/dst offset pairs in seconds. Entries at * 2n represents raw offset and 2n+1 represents dst offset * paired with the raw offset at 2n. The very first pair represents * the initial zone offset (before the first transition) always. * - * - trans:intvector (Optional) - * + * - trans:intvector (Optional) + * * List of transition times represented by 32bit seconds from the * epoch (1970-01-01T00:00Z) in ascending order. - * + * * - transPre32/transPost32:intvector (Optional) - * + * * List of transition times before/after 32bit minimum seconds. * Each time is represented by a pair of 32bit integer. - * + * * - typeMap:bin (Optional) - * + * * Array of bytes representing the mapping between each transition * time (transPre32/trans/transPost32) and its corresponding offset * data (typeOffsets). - * + * * - finalRule:string (Optional) - * + * * If a recurrent transition rule is applicable to a zone forever * after the final transition time, finalRule represents the rule * in Rules data. - * + * * - finalRaw:int (Optional) - * + * * When finalRule is available, finalRaw is required and specifies * the raw (base) offset of the rule. - * + * * - finalYear:int (Optional) - * + * * When finalRule is available, finalYear is required and specifies * the start year of the rule. - * + * * - links:intvector (Optional) - * + * * When this zone data is shared with other zones, links specifies * all zones including the zone itself. Each zone is referenced by * integer index. - * + * * b. Link (int, length 1). A link zone is an int resource. The * integer is the zone number of the target zone. The key of this * resource is an alternate name for the target zone. This data @@ -146,12 +146,12 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { /** * Returns true if the two TimeZone objects are equal. */ - virtual UBool operator==(const TimeZone& other) const; + virtual bool operator==(const TimeZone& other) const override; /** * TimeZone API. */ - virtual OlsonTimeZone* clone() const; + virtual OlsonTimeZone* clone() const override; /** * TimeZone API. @@ -161,14 +161,14 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { /** * TimeZone API. */ - virtual UClassID getDynamicClassID() const; - + virtual UClassID getDynamicClassID() const override; + /** * TimeZone API. Do not call this; prefer getOffset(UDate,...). */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, - int32_t millis, UErrorCode& ec) const; + int32_t millis, UErrorCode& ec) const override; /** * TimeZone API. Do not call this; prefer getOffset(UDate,...). @@ -176,13 +176,13 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, int32_t monthLength, - UErrorCode& ec) const; + UErrorCode& ec) const override; /** * TimeZone API. */ virtual void getOffset(UDate date, UBool local, int32_t& rawOffset, - int32_t& dstOffset, UErrorCode& ec) const; + int32_t& dstOffset, UErrorCode& ec) const override; /** * BasicTimeZone API. @@ -190,14 +190,14 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { virtual void getOffsetFromLocal( UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, - int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const; + int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const override; /** * TimeZone API. This method has no effect since objects of this * class are quasi-immutable (the base class allows the ID to be * changed). */ - virtual void setRawOffset(int32_t offsetMillis); + virtual void setRawOffset(int32_t offsetMillis) override; /** * TimeZone API. For a historical zone, the raw offset can change @@ -205,7 +205,7 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * expected behavior, this method returns the raw offset for the * current moment in time. */ - virtual int32_t getRawOffset() const; + virtual int32_t getRawOffset() const override; /** * TimeZone API. For a historical zone, whether DST is used or @@ -213,22 +213,22 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * behavior, this method returns true if DST is observed at any * point in the current year. */ - virtual UBool useDaylightTime() const; + virtual UBool useDaylightTime() const override; /** * TimeZone API. */ - virtual UBool inDaylightTime(UDate date, UErrorCode& ec) const; + virtual UBool inDaylightTime(UDate date, UErrorCode& ec) const override; /** * TimeZone API. */ - virtual int32_t getDSTSavings() const; + virtual int32_t getDSTSavings() const override; /** * TimeZone API. Also comare historic transitions. */ - virtual UBool hasSameRules(const TimeZone& other) const; + virtual UBool hasSameRules(const TimeZone& other) const override; /** * BasicTimeZone API. @@ -238,7 +238,7 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * @param result Receives the first transition after the base time. * @return true if the transition is found. */ - virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * BasicTimeZone API. @@ -248,7 +248,7 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * @param result Receives the most recent transition before the base time. * @return true if the transition is found. */ - virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * BasicTimeZone API. @@ -258,7 +258,7 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * @param status Receives error status code. * @return The number of TimeZoneRules representing time transitions. */ - virtual int32_t countTransitionRules(UErrorCode& status) const; + virtual int32_t countTransitionRules(UErrorCode& status) const override; /** * Gets the InitialTimeZoneRule and the set of TimeZoneRule @@ -276,7 +276,7 @@ class U_I18N_API OlsonTimeZone: public BasicTimeZone { * @param status Receives error status code. */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, - const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; + const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const override; /** * Internal API returning the canonical ID of this zone. diff --git a/deps/icu-small/source/i18n/persncal.cpp b/deps/icu-small/source/i18n/persncal.cpp index ba306653af28e0..d30577f337f79c 100644 --- a/deps/icu-small/source/i18n/persncal.cpp +++ b/deps/icu-small/source/i18n/persncal.cpp @@ -70,7 +70,7 @@ static const int32_t PERSIAN_EPOCH = 1948320; // Constructors... //------------------------------------------------------------------------- -const char *PersianCalendar::getType() const { +const char *PersianCalendar::getType() const { return "persian"; } @@ -113,7 +113,7 @@ UBool PersianCalendar::isLeapYear(int32_t year) ClockMath::floorDivide(25 * year + 11, 33, remainder); return (remainder < 8); } - + /** * Return the day # on which the given year starts. Days are counted * from the Persian epoch, origin 0. @@ -121,7 +121,7 @@ UBool PersianCalendar::isLeapYear(int32_t year) int32_t PersianCalendar::yearStart(int32_t year) { return handleComputeMonthStart(year,0,FALSE); } - + /** * Return the day # on which the given month starts. Days are counted * from the Persian epoch, origin 0. @@ -132,7 +132,7 @@ int32_t PersianCalendar::yearStart(int32_t year) { int32_t PersianCalendar::monthStart(int32_t year, int32_t month) const { return handleComputeMonthStart(year,month,TRUE); } - + //---------------------------------------------------------------------- // Calendar framework //---------------------------------------------------------------------- @@ -159,7 +159,7 @@ int32_t PersianCalendar::handleGetMonthLength(int32_t extendedYear, int32_t mont int32_t PersianCalendar::handleGetYearLength(int32_t extendedYear) const { return isLeapYear(extendedYear) ? 366 : 365; } - + //------------------------------------------------------------------------- // Functions for converting from field values to milliseconds.... //------------------------------------------------------------------------- @@ -205,7 +205,7 @@ int32_t PersianCalendar::handleGetExtendedYear() { *

  17. DAY_OF_MONTH *
  18. DAY_OF_YEAR *
  19. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. */ @@ -231,13 +231,13 @@ void PersianCalendar::handleComputeFields(int32_t julianDay, UErrorCode &/*statu internalSet(UCAL_MONTH, month); internalSet(UCAL_DAY_OF_MONTH, dayOfMonth); internalSet(UCAL_DAY_OF_YEAR, dayOfYear); -} +} UBool PersianCalendar::inDaylightTime(UErrorCode& status) const { // copied from GregorianCalendar - if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) + if (U_FAILURE(status) || !getTimeZone().useDaylightTime()) return FALSE; // Force an update of the state of the Calendar. @@ -292,3 +292,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(PersianCalendar) U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/persncal.h b/deps/icu-small/source/i18n/persncal.h index f330ea8a0319b2..d0f2ee5ec209e0 100644 --- a/deps/icu-small/source/i18n/persncal.h +++ b/deps/icu-small/source/i18n/persncal.h @@ -58,79 +58,79 @@ class PersianCalendar : public Calendar { */ enum EMonths { /** - * Constant for Farvardin, the 1st month of the Persian year. + * Constant for Farvardin, the 1st month of the Persian year. * @internal */ FARVARDIN = 0, /** - * Constant for Ordibehesht, the 2nd month of the Persian year. + * Constant for Ordibehesht, the 2nd month of the Persian year. * @internal */ ORDIBEHESHT = 1, /** - * Constant for Khordad, the 3rd month of the Persian year. - * @internal + * Constant for Khordad, the 3rd month of the Persian year. + * @internal */ KHORDAD = 2, /** - * Constant for Tir, the 4th month of the Persian year. - * @internal + * Constant for Tir, the 4th month of the Persian year. + * @internal */ TIR = 3, /** - * Constant for Mordad, the 5th month of the Persian year. - * @internal + * Constant for Mordad, the 5th month of the Persian year. + * @internal */ MORDAD = 4, /** - * Constant for Shahrivar, the 6th month of the Persian year. - * @internal + * Constant for Shahrivar, the 6th month of the Persian year. + * @internal */ SHAHRIVAR = 5, /** - * Constant for Mehr, the 7th month of the Persian year. - * @internal + * Constant for Mehr, the 7th month of the Persian year. + * @internal */ MEHR = 6, /** - * Constant for Aban, the 8th month of the Persian year. - * @internal + * Constant for Aban, the 8th month of the Persian year. + * @internal */ ABAN = 7, /** - * Constant for Azar, the 9th month of the Persian year. - * @internal + * Constant for Azar, the 9th month of the Persian year. + * @internal */ AZAR = 8, /** - * Constant for Dei, the 10th month of the Persian year. - * @internal + * Constant for Dei, the 10th month of the Persian year. + * @internal */ DEI = 9, /** - * Constant for Bahman, the 11th month of the Persian year. - * @internal + * Constant for Bahman, the 11th month of the Persian year. + * @internal */ BAHMAN = 10, /** - * Constant for Esfand, the 12th month of the Persian year. - * @internal + * Constant for Esfand, the 12th month of the Persian year. + * @internal */ ESFAND = 11, - + PERSIAN_MONTH_MAX - }; + }; @@ -164,14 +164,14 @@ class PersianCalendar : public Calendar { // TODO: copy c'tor, etc // clone - virtual PersianCalendar* clone() const; + virtual PersianCalendar* clone() const override; private: /** * Determine whether a year is a leap year in the Persian calendar */ static UBool isLeapYear(int32_t year); - + /** * Return the day # on which the given year starts. Days are counted * from the Hijri epoch, origin 0. @@ -186,7 +186,7 @@ class PersianCalendar : public Calendar { * @param year The hijri shamsi month, 0-based */ int32_t monthStart(int32_t year, int32_t month) const; - + //---------------------------------------------------------------------- // Calendar framework //---------------------------------------------------------------------- @@ -194,8 +194,8 @@ class PersianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; - + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; + /** * Return the length (in days) of the given month. * @@ -203,14 +203,14 @@ class PersianCalendar : public Calendar { * @param year The hijri shamsi month, 0-based * @internal */ - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; - + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; + /** * Return the number of days in the given Persian year * @internal */ - virtual int32_t handleGetYearLength(int32_t extendedYear) const; - + virtual int32_t handleGetYearLength(int32_t extendedYear) const override; + //------------------------------------------------------------------------- // Functions for converting from field values to milliseconds.... //------------------------------------------------------------------------- @@ -219,7 +219,7 @@ class PersianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const; + virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, UBool useMonth) const override; //------------------------------------------------------------------------- // Functions for converting from milliseconds to field values @@ -228,7 +228,7 @@ class PersianCalendar : public Calendar { /** * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Override Calendar to compute several fields specific to the Persian @@ -240,22 +240,22 @@ class PersianCalendar : public Calendar { *
  20. DAY_OF_MONTH *
  21. DAY_OF_YEAR *
  22. EXTENDED_YEAR - * + * * The DAY_OF_WEEK and DOW_LOCAL fields are already set when this * method is called. The getGregorianXxx() methods return Gregorian * calendar equivalents for the given Julian day. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; // UObject stuff - public: + public: /** * @return The class ID for this object. All objects of a given class have the * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -276,7 +276,7 @@ class PersianCalendar : public Calendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; private: PersianCalendar(); // default constructor not implemented @@ -292,29 +292,32 @@ class PersianCalendar : public Calendar { * false, otherwise. * @internal */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; /** * Returns true because the Persian Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; }; U_NAMESPACE_END #endif #endif + + + diff --git a/deps/icu-small/source/i18n/plurfmt.cpp b/deps/icu-small/source/i18n/plurfmt.cpp index aac35c5b094ff9..65e275eeeb7536 100644 --- a/deps/icu-small/source/i18n/plurfmt.cpp +++ b/deps/icu-small/source/i18n/plurfmt.cpp @@ -381,13 +381,13 @@ PluralFormat::operator=(const PluralFormat& other) { return *this; } -UBool +bool PluralFormat::operator==(const Format& other) const { if (this == &other) { - return TRUE; + return true; } if (!Format::operator==(other)) { - return FALSE; + return false; } const PluralFormat& o = (const PluralFormat&)other; return @@ -400,7 +400,7 @@ PluralFormat::operator==(const Format& other) const { *pluralRulesWrapper.pluralRules == *o.pluralRulesWrapper.pluralRules); } -UBool +bool PluralFormat::operator!=(const Format& other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/plurrule.cpp b/deps/icu-small/source/i18n/plurrule.cpp index bc106acce23aef..d1918c4698138b 100644 --- a/deps/icu-small/source/i18n/plurrule.cpp +++ b/deps/icu-small/source/i18n/plurrule.cpp @@ -379,6 +379,14 @@ static double scaleForInt(double d) { return scale; } +static const double powers10[7] = {1.0, 10.0, 100.0, 1000.0, 10000.0, 100000.0, 1000000.0}; // powers of 10 for 0..6 +static double applyExponent(double source, int32_t exponent) { + if (exponent >= 0 && exponent <= 6) { + return source * powers10[exponent]; + } + return source * pow(10.0, exponent); +} + /** * Helper method for the overrides of getSamples() for double and FixedDecimal * return value types. Provide only one of an allocated array of doubles or @@ -416,7 +424,7 @@ getSamplesFromString(const UnicodeString &samples, double *destDbl, if (isDouble) { double sampleValue = fixed.source; if (fixed.visibleDecimalDigitCount == 0 || sampleValue != floor(sampleValue)) { - destDbl[sampleCount++] = sampleValue; + destDbl[sampleCount++] = applyExponent(sampleValue, fixed.exponent); } } else { destFd[sampleCount++] = fixed; @@ -547,40 +555,40 @@ PluralRules::getKeywordOther() const { return UnicodeString(TRUE, PLURAL_KEYWORD_OTHER, 5); } -UBool +bool PluralRules::operator==(const PluralRules& other) const { const UnicodeString *ptrKeyword; UErrorCode status= U_ZERO_ERROR; if ( this == &other ) { - return TRUE; + return true; } LocalPointer myKeywordList(getKeywords(status)); LocalPointer otherKeywordList(other.getKeywords(status)); if (U_FAILURE(status)) { - return FALSE; + return false; } if (myKeywordList->count(status)!=otherKeywordList->count(status)) { - return FALSE; + return false; } myKeywordList->reset(status); while ((ptrKeyword=myKeywordList->snext(status))!=nullptr) { if (!other.isKeyword(*ptrKeyword)) { - return FALSE; + return false; } } otherKeywordList->reset(status); while ((ptrKeyword=otherKeywordList->snext(status))!=nullptr) { if (!this->isKeyword(*ptrKeyword)) { - return FALSE; + return false; } } if (U_FAILURE(status)) { - return FALSE; + return false; } - return TRUE; + return true; } @@ -1037,7 +1045,7 @@ RuleChain::RuleChain(const RuleChain& other) : fIntegerSamples(other.fIntegerSamples), fDecimalSamplesUnbounded(other.fDecimalSamplesUnbounded), fIntegerSamplesUnbounded(other.fIntegerSamplesUnbounded), fInternalStatus(other.fInternalStatus) { if (U_FAILURE(this->fInternalStatus)) { - return; // stop early if the object we are copying from is invalid. + return; // stop early if the object we are copying from is invalid. } if (other.ruleHeader != nullptr) { this->ruleHeader = new OrConstraint(*(other.ruleHeader)); @@ -1545,7 +1553,7 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode status = U_MEMORY_ALLOCATION_ERROR; return; } - fKeywordNames.addElement(newElem, status); + fKeywordNames.addElementX(newElem, status); if (U_FAILURE(status)) { delete newElem; return; @@ -1562,7 +1570,7 @@ PluralKeywordEnumeration::PluralKeywordEnumeration(RuleChain *header, UErrorCode status = U_MEMORY_ALLOCATION_ERROR; return; } - fKeywordNames.addElement(newElem, status); + fKeywordNames.addElementX(newElem, status); if (U_FAILURE(status)) { delete newElem; return; @@ -1608,7 +1616,7 @@ PluralOperand tokenTypeToPluralOperand(tokenType tt) { case tVariableC: return PLURAL_OPERAND_E; default: - UPRV_UNREACHABLE; // unexpected. + UPRV_UNREACHABLE_EXIT; // unexpected. } } @@ -1619,7 +1627,7 @@ FixedDecimal::FixedDecimal(double n, int32_t v, int64_t f, int32_t e, int32_t c) FixedDecimal::FixedDecimal(double n, int32_t v, int64_t f, int32_t e) { init(n, v, f, e); // check values. TODO make into unit test. - // + // // long visiblePower = (int) Math.pow(10, v); // if (decimalDigits > visiblePower) { // throw new IllegalArgumentException(); @@ -1829,7 +1837,7 @@ int32_t FixedDecimal::decimals(double n) { // v is the number of visible fraction digits in the displayed form of the number. // Example: n = 1001.234, v = 6, result = 234000 // TODO: need to think through how this is used in the plural rule context. -// This function can easily encounter integer overflow, +// This function can easily encounter integer overflow, // and can easily return noise digits when the precision of a double is exceeded. int64_t FixedDecimal::getFractionalDigits(double n, int32_t v) { @@ -1873,15 +1881,15 @@ void FixedDecimal::adjustForMinFractionDigits(int32_t minFractionDigits) { double FixedDecimal::getPluralOperand(PluralOperand operand) const { switch(operand) { - case PLURAL_OPERAND_N: return source; - case PLURAL_OPERAND_I: return static_cast(intValue); + case PLURAL_OPERAND_N: return (exponent == 0 ? source : source * pow(10, exponent)); + case PLURAL_OPERAND_I: return (double) longValue(); case PLURAL_OPERAND_F: return static_cast(decimalDigits); case PLURAL_OPERAND_T: return static_cast(decimalDigitsWithoutTrailingZeros); case PLURAL_OPERAND_V: return visibleDecimalDigitCount; case PLURAL_OPERAND_E: return exponent; case PLURAL_OPERAND_C: return exponent; default: - UPRV_UNREACHABLE; // unexpected. + UPRV_UNREACHABLE_EXIT; // unexpected. } } @@ -1923,6 +1931,18 @@ UnicodeString FixedDecimal::toString() const { return UnicodeString(buffer, -1, US_INV); } +double FixedDecimal::doubleValue() const { + return (isNegative ? -source : source) * pow(10, exponent); +} + +int64_t FixedDecimal::longValue() const { + if (exponent == 0) { + return intValue; + } else { + return (long) (pow(10, exponent) * intValue); + } +} + PluralAvailableLocalesEnumeration::PluralAvailableLocalesEnumeration(UErrorCode &status) { fOpenStatus = status; diff --git a/deps/icu-small/source/i18n/plurrule_impl.h b/deps/icu-small/source/i18n/plurrule_impl.h index 69d44f83d4a0fa..7274da58f0652c 100644 --- a/deps/icu-small/source/i18n/plurrule_impl.h +++ b/deps/icu-small/source/i18n/plurrule_impl.h @@ -324,10 +324,14 @@ class U_I18N_API FixedDecimal: public IFixedDecimal, public UObject { static int64_t getFractionalDigits(double n, int32_t v); static int32_t decimals(double n); + FixedDecimal& operator=(const FixedDecimal& other) = default; bool operator==(const FixedDecimal &other) const; UnicodeString toString() const; + double doubleValue() const; + int64_t longValue() const; + double source; int32_t visibleDecimalDigitCount; int64_t decimalDigits; @@ -355,7 +359,7 @@ class AndConstraint : public UMemory { tokenType digitsType = none; // n | i | v | f constraint. AndConstraint *next = nullptr; // Internal error status, used for errors that occur during the copy constructor. - UErrorCode fInternalStatus = U_ZERO_ERROR; + UErrorCode fInternalStatus = U_ZERO_ERROR; AndConstraint() = default; AndConstraint(const AndConstraint& other); @@ -407,10 +411,10 @@ class PluralKeywordEnumeration : public StringEnumeration { PluralKeywordEnumeration(RuleChain *header, UErrorCode& status); virtual ~PluralKeywordEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: int32_t pos; UVector fKeywordNames; @@ -421,9 +425,9 @@ class U_I18N_API PluralAvailableLocalesEnumeration: public StringEnumeration { public: PluralAvailableLocalesEnumeration(UErrorCode &status); virtual ~PluralAvailableLocalesEnumeration(); - virtual const char* next(int32_t *resultLength, UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual const char* next(int32_t *resultLength, UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: UErrorCode fOpenStatus; UResourceBundle *fLocales = nullptr; diff --git a/deps/icu-small/source/i18n/quant.cpp b/deps/icu-small/source/i18n/quant.cpp index b0e7a3ed52c240..ed3393338775e9 100644 --- a/deps/icu-small/source/i18n/quant.cpp +++ b/deps/icu-small/source/i18n/quant.cpp @@ -58,7 +58,7 @@ Quantifier* Quantifier::clone() const { UnicodeMatcher* Quantifier::toMatcher() const { Quantifier *nonconst_this = const_cast(this); UnicodeMatcher *nonconst_base = static_cast(nonconst_this); - + return nonconst_base; } diff --git a/deps/icu-small/source/i18n/quant.h b/deps/icu-small/source/i18n/quant.h index df6924cc127ba6..427a6b048081ee 100644 --- a/deps/icu-small/source/i18n/quant.h +++ b/deps/icu-small/source/i18n/quant.h @@ -39,13 +39,13 @@ class Quantifier : public UnicodeFunctor, public UnicodeMatcher { * and return the pointer. * @return the UnicodeMatcher pointer. */ - virtual UnicodeMatcher* toMatcher() const; + virtual UnicodeMatcher* toMatcher() const override; /** * Implement UnicodeFunctor * @return a copy of the object. */ - virtual Quantifier* clone() const; + virtual Quantifier* clone() const override; /** * Implement UnicodeMatcher @@ -72,7 +72,7 @@ class Quantifier : public UnicodeFunctor, public UnicodeMatcher { virtual UMatchDegree matches(const Replaceable& text, int32_t& offset, int32_t limit, - UBool incremental); + UBool incremental) override; /** * Implement UnicodeMatcher @@ -81,29 +81,29 @@ class Quantifier : public UnicodeFunctor, public UnicodeMatcher { * @return A reference to 'result'. */ virtual UnicodeString& toPattern(UnicodeString& result, - UBool escapeUnprintable = false) const; + UBool escapeUnprintable = false) const override; /** * Implement UnicodeMatcher * @param v the given index value. * @return true if this rule matches the given index value. */ - virtual UBool matchesIndexValue(uint8_t v) const; + virtual UBool matchesIndexValue(uint8_t v) const override; /** * Implement UnicodeMatcher */ - virtual void addMatchSetTo(UnicodeSet& toUnionTo) const; + virtual void addMatchSetTo(UnicodeSet& toUnionTo) const override; /** * UnicodeFunctor API */ - virtual void setData(const TransliterationRuleData*); + virtual void setData(const TransliterationRuleData*) override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/quantityformatter.h b/deps/icu-small/source/i18n/quantityformatter.h index 30bef08634a3f4..841798cf889255 100644 --- a/deps/icu-small/source/i18n/quantityformatter.h +++ b/deps/icu-small/source/i18n/quantityformatter.h @@ -36,10 +36,10 @@ class FormattedStringBuilder; * There must be a pattern for the "other" variant. * Then use the format() method. *

    - * Concurrent calls only to const methods on a QuantityFormatter object are + * Concurrent calls only to const methods on a QuantityFormatter object are * safe, but concurrent const and non-const method calls on a QuantityFormatter * object are not safe and require synchronization. - * + * */ class U_I18N_API QuantityFormatter : public UMemory { public: @@ -94,7 +94,7 @@ class U_I18N_API QuantityFormatter : public UMemory { * Formats a number with this object appending the result to appendTo. * At least the "other" variant must be added to this object for this * method to work. - * + * * @param number the single number. * @param fmt formats the number * @param rules computes the plural variant to use. diff --git a/deps/icu-small/source/i18n/rbnf.cpp b/deps/icu-small/source/i18n/rbnf.cpp index c25e61e6b28d94..7f54fd7a33f062 100644 --- a/deps/icu-small/source/i18n/rbnf.cpp +++ b/deps/icu-small/source/i18n/rbnf.cpp @@ -83,34 +83,34 @@ class LocalizationInfo : public UMemory { protected: virtual ~LocalizationInfo(); uint32_t refcount; - + public: LocalizationInfo() : refcount(0) {} - + LocalizationInfo* ref(void) { ++refcount; return this; } - + LocalizationInfo* unref(void) { if (refcount && --refcount == 0) { delete this; } return NULL; } - - virtual UBool operator==(const LocalizationInfo* rhs) const; - inline UBool operator!=(const LocalizationInfo* rhs) const { return !operator==(rhs); } - + + virtual bool operator==(const LocalizationInfo* rhs) const; + inline bool operator!=(const LocalizationInfo* rhs) const { return !operator==(rhs); } + virtual int32_t getNumberOfRuleSets(void) const = 0; virtual const UChar* getRuleSetName(int32_t index) const = 0; virtual int32_t getNumberOfDisplayLocales(void) const = 0; virtual const UChar* getLocaleName(int32_t index) const = 0; virtual const UChar* getDisplayName(int32_t localeIndex, int32_t ruleIndex) const = 0; - + virtual int32_t indexForLocale(const UChar* locale) const; virtual int32_t indexForRuleSet(const UChar* ruleset) const; - + // virtual UClassID getDynamicClassID() const = 0; // static UClassID getStaticClassID(void); }; @@ -120,7 +120,7 @@ LocalizationInfo::~LocalizationInfo() {} //UOBJECT_DEFINE_ABSTRACT_RTTI_IMPLEMENTATION(LocalizationInfo) // if both strings are NULL, this returns TRUE -static UBool +static UBool streq(const UChar* lhs, const UChar* rhs) { if (rhs == lhs) { return TRUE; @@ -131,18 +131,18 @@ streq(const UChar* lhs, const UChar* rhs) { return FALSE; } -UBool +bool LocalizationInfo::operator==(const LocalizationInfo* rhs) const { if (rhs) { if (this == rhs) { - return TRUE; + return true; } - + int32_t rsc = getNumberOfRuleSets(); if (rsc == rhs->getNumberOfRuleSets()) { for (int i = 0; i < rsc; ++i) { if (!streq(getRuleSetName(i), rhs->getRuleSetName(i))) { - return FALSE; + return false; } } int32_t dlc = getNumberOfDisplayLocales(); @@ -152,19 +152,19 @@ LocalizationInfo::operator==(const LocalizationInfo* rhs) const { int32_t ix = rhs->indexForLocale(locale); // if no locale, ix is -1, getLocaleName returns null, so streq returns false if (!streq(locale, rhs->getLocaleName(ix))) { - return FALSE; + return false; } for (int j = 0; j < rsc; ++j) { if (!streq(getDisplayName(i, j), rhs->getDisplayName(ix, j))) { - return FALSE; + return false; } } } - return TRUE; + return true; } } } - return FALSE; + return false; } int32_t @@ -199,22 +199,22 @@ class VArray { Fn_Deleter deleter; public: VArray() : buf(NULL), cap(0), size(0), deleter(NULL) {} - + VArray(Fn_Deleter del) : buf(NULL), cap(0), size(0), deleter(del) {} - + ~VArray() { if (deleter) { for (int i = 0; i < size; ++i) { (*deleter)(buf[i]); } } - uprv_free(buf); + uprv_free(buf); } - + int32_t length() { return size; } - + void add(void* elem, UErrorCode& status) { if (U_SUCCESS(status)) { if (size == cap) { @@ -242,7 +242,7 @@ class VArray { buf[size++] = elem; } } - + void** release(void) { void** result = buf; buf = NULL; @@ -266,20 +266,20 @@ friend class LocDataParser; : info(i), data(d), numRuleSets(numRS), numLocales(numLocs) { } - + public: static StringLocalizationInfo* create(const UnicodeString& info, UParseError& perror, UErrorCode& status); - + virtual ~StringLocalizationInfo(); - virtual int32_t getNumberOfRuleSets(void) const { return numRuleSets; } - virtual const UChar* getRuleSetName(int32_t index) const; - virtual int32_t getNumberOfDisplayLocales(void) const { return numLocales; } - virtual const UChar* getLocaleName(int32_t index) const; - virtual const UChar* getDisplayName(int32_t localeIndex, int32_t ruleIndex) const; - + virtual int32_t getNumberOfRuleSets(void) const override { return numRuleSets; } + virtual const UChar* getRuleSetName(int32_t index) const override; + virtual int32_t getNumberOfDisplayLocales(void) const override { return numLocales; } + virtual const UChar* getLocaleName(int32_t index) const override; + virtual const UChar* getDisplayName(int32_t localeIndex, int32_t ruleIndex) const override; + // virtual UClassID getDynamicClassID() const; // static UClassID getStaticClassID(void); - + private: void init(UErrorCode& status) const; }; @@ -304,20 +304,20 @@ class LocDataParser { UChar ch; UParseError& pe; UErrorCode& ec; - + public: - LocDataParser(UParseError& parseError, UErrorCode& status) + LocDataParser(UParseError& parseError, UErrorCode& status) : data(NULL), e(NULL), p(NULL), ch(0xffff), pe(parseError), ec(status) {} ~LocDataParser() {} - + /* * On a successful parse, return a StringLocalizationInfo*, otherwise delete locData, set perror and status, * and return NULL. The StringLocalizationInfo will adopt locData if it is created. */ StringLocalizationInfo* parse(UChar* data, int32_t len); - + private: - + inline void inc(void) { ++p; ch = 0xffff; @@ -347,9 +347,9 @@ class LocDataParser { return *list == c; } void parseError(const char* msg); - + StringLocalizationInfo* doParse(void); - + UChar** nextArray(int32_t& requiredLength); UChar* nextString(void); }; @@ -367,17 +367,17 @@ class LocDataParser { } UPRV_BLOCK_MACRO_END #define EXPLANATION_ARG #endif + - -static const UChar DQUOTE_STOPLIST[] = { +static const UChar DQUOTE_STOPLIST[] = { QUOTE, 0 }; -static const UChar SQUOTE_STOPLIST[] = { +static const UChar SQUOTE_STOPLIST[] = { TICK, 0 }; -static const UChar NOQUOTE_STOPLIST[] = { +static const UChar NOQUOTE_STOPLIST[] = { SPACE, COMMA, CLOSE_ANGLE, OPEN_ANGLE, TICK, QUOTE, 0 }; @@ -461,11 +461,11 @@ LocDataParser::doParse(void) { if (U_SUCCESS(ec)) { int32_t numLocs = array.length() - 2; // subtract first, NULL UChar*** result = (UChar***)array.release(); - + return new StringLocalizationInfo(data, result, requiredLength-2, numLocs); // subtract first, NULL } } - + ERROR("Unknown error"); } @@ -474,7 +474,7 @@ LocDataParser::nextArray(int32_t& requiredLength) { if (U_FAILURE(ec)) { return NULL; } - + skipWhitespace(); if (!checkInc(OPEN_ANGLE)) { ERROR("Missing open angle"); @@ -514,7 +514,7 @@ LocDataParser::nextArray(int32_t& requiredLength) { ec = U_ILLEGAL_ARGUMENT_ERROR; ERROR("Array not of required length"); } - + return (UChar**)array.release(); } ERROR("Unknown Error"); @@ -523,7 +523,7 @@ LocDataParser::nextArray(int32_t& requiredLength) { UChar* LocDataParser::nextString() { UChar* result = NULL; - + skipWhitespace(); if (p < e) { const UChar* terminators; @@ -540,7 +540,7 @@ LocDataParser::nextString() { if (p == e) { ERROR("Unexpected end of data"); } - + UChar x = *p; if (p > start) { ch = x; @@ -588,7 +588,7 @@ void LocDataParser::parseError(const char* EXPLANATION_ARG) u_strncpy(pe.postContext, p, (int32_t)(limit-p)); pe.postContext[limit-p] = 0; pe.offset = (int32_t)(p - data); - + #ifdef RBNF_DEBUG fprintf(stderr, "%s at or near character %ld: ", EXPLANATION_ARG, p-data); @@ -597,7 +597,7 @@ void LocDataParser::parseError(const char* EXPLANATION_ARG) msg.append((UChar)0x002f); /* SOLIDUS/SLASH */ msg.append(p, limit-p); msg.append(UNICODE_STRING_SIMPLE("'")); - + char buf[128]; int32_t len = msg.extract(0, msg.length(), buf, 128); if (len >= 128) { @@ -608,12 +608,12 @@ void LocDataParser::parseError(const char* EXPLANATION_ARG) fprintf(stderr, "%s\n", buf); fflush(stderr); #endif - + uprv_free(data); data = NULL; p = NULL; e = NULL; - + if (U_SUCCESS(ec)) { ec = U_PARSE_ERROR; } @@ -621,17 +621,17 @@ void LocDataParser::parseError(const char* EXPLANATION_ARG) //UOBJECT_DEFINE_RTTI_IMPLEMENTATION(StringLocalizationInfo) -StringLocalizationInfo* +StringLocalizationInfo* StringLocalizationInfo::create(const UnicodeString& info, UParseError& perror, UErrorCode& status) { if (U_FAILURE(status)) { return NULL; } - + int32_t len = info.length(); if (len == 0) { return NULL; // no error; } - + UChar* p = (UChar*)uprv_malloc(len * sizeof(UChar)); if (!p) { status = U_MEMORY_ALLOCATION_ERROR; @@ -641,7 +641,7 @@ StringLocalizationInfo::create(const UnicodeString& info, UParseError& perror, U if (!U_FAILURE(status)) { status = U_ZERO_ERROR; // clear warning about non-termination } - + LocDataParser parser(perror, status); return parser.parse(p, len); } @@ -683,7 +683,7 @@ StringLocalizationInfo::getDisplayName(int32_t localeIndex, int32_t ruleIndex) c // ---------- -RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, +RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, const UnicodeString& locs, const Locale& alocale, UParseError& perror, UErrorCode& status) : fRuleSets(NULL) @@ -708,7 +708,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, init(description, locinfo, perror, status); } -RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, +RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, const UnicodeString& locs, UParseError& perror, UErrorCode& status) : fRuleSets(NULL) @@ -733,7 +733,7 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, init(description, locinfo, perror, status); } -RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, +RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, LocalizationInfo* info, const Locale& alocale, UParseError& perror, UErrorCode& status) : fRuleSets(NULL) @@ -757,9 +757,9 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, init(description, info, perror, status); } -RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, - UParseError& perror, - UErrorCode& status) +RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, + UParseError& perror, + UErrorCode& status) : fRuleSets(NULL) , ruleSetDescriptions(NULL) , numRuleSets(0) @@ -781,10 +781,10 @@ RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, init(description, NULL, perror, status); } -RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, +RuleBasedNumberFormat::RuleBasedNumberFormat(const UnicodeString& description, const Locale& aLocale, - UParseError& perror, - UErrorCode& status) + UParseError& perror, + UErrorCode& status) : fRuleSets(NULL) , ruleSetDescriptions(NULL) , numRuleSets(0) @@ -936,11 +936,11 @@ RuleBasedNumberFormat::clone() const return new RuleBasedNumberFormat(*this); } -UBool +bool RuleBasedNumberFormat::operator==(const Format& other) const { if (this == &other) { - return TRUE; + return true; } if (typeid(*this) == typeid(other)) { @@ -950,10 +950,10 @@ RuleBasedNumberFormat::operator==(const Format& other) const // the info here is just derived from that. if (locale == rhs.locale && lenient == rhs.lenient && - (localizations == NULL - ? rhs.localizations == NULL - : (rhs.localizations == NULL - ? FALSE + (localizations == NULL + ? rhs.localizations == NULL + : (rhs.localizations == NULL + ? false : *localizations == rhs.localizations))) { NFRuleSet** p = fRuleSets; @@ -961,7 +961,7 @@ RuleBasedNumberFormat::operator==(const Format& other) const if (p == NULL) { return q == NULL; } else if (q == NULL) { - return FALSE; + return false; } while (*p && *q && (**p == **q)) { ++p; @@ -971,7 +971,7 @@ RuleBasedNumberFormat::operator==(const Format& other) const } } - return FALSE; + return false; } UnicodeString @@ -1026,7 +1026,7 @@ RuleBasedNumberFormat::getNumberOfRuleSetNames() const return result; } -int32_t +int32_t RuleBasedNumberFormat::getNumberOfRuleSetDisplayNameLocales(void) const { if (localizations) { return localizations->getNumberOfDisplayLocales(); @@ -1034,7 +1034,7 @@ RuleBasedNumberFormat::getNumberOfRuleSetDisplayNameLocales(void) const { return 0; } -Locale +Locale RuleBasedNumberFormat::getRuleSetDisplayNameLocale(int32_t index, UErrorCode& status) const { if (U_FAILURE(status)) { return Locale(""); @@ -1063,10 +1063,10 @@ RuleBasedNumberFormat::getRuleSetDisplayNameLocale(int32_t index, UErrorCode& st return retLocale; } -UnicodeString +UnicodeString RuleBasedNumberFormat::getRuleSetDisplayName(int32_t index, const Locale& localeParam) { if (localizations && index >= 0 && index < localizations->getNumberOfRuleSets()) { - UnicodeString localeName(localeParam.getBaseName(), -1, UnicodeString::kInvariant); + UnicodeString localeName(localeParam.getBaseName(), -1, UnicodeString::kInvariant); int32_t len = localeName.length(); UChar* localeStr = localeName.getBuffer(len + 1); while (len >= 0) { @@ -1076,8 +1076,8 @@ RuleBasedNumberFormat::getRuleSetDisplayName(int32_t index, const Locale& locale UnicodeString name(TRUE, localizations->getDisplayName(ix, index), -1); return name; } - - // trim trailing portion, skipping over ommitted sections + + // trim trailing portion, skipping over omitted sections do { --len;} while (len > 0 && localeStr[len] != 0x005f); // underscore while (len > 0 && localeStr[len-1] == 0x005F) --len; } @@ -1089,7 +1089,7 @@ RuleBasedNumberFormat::getRuleSetDisplayName(int32_t index, const Locale& locale return bogus; } -UnicodeString +UnicodeString RuleBasedNumberFormat::getRuleSetDisplayName(const UnicodeString& ruleSetName, const Locale& localeParam) { if (localizations) { UnicodeString rsn(ruleSetName); @@ -1408,7 +1408,7 @@ RuleBasedNumberFormat::setLenient(UBool enabled) #endif -void +void RuleBasedNumberFormat::setDefaultRuleSet(const UnicodeString& ruleSetName, UErrorCode& status) { if (U_SUCCESS(status)) { if (ruleSetName.isEmpty()) { @@ -1440,7 +1440,7 @@ RuleBasedNumberFormat::getDefaultRuleSetName() const { return result; } -void +void RuleBasedNumberFormat::initDefaultRuleSet() { defaultRuleSet = NULL; @@ -1501,7 +1501,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali } // start by stripping the trailing whitespace from all the rules - // (this is all the whitespace follwing each semicolon in the + // (this is all the whitespace following each semicolon in the // description). This allows us to look for rule-set boundaries // by searching for ";%" without having to worry about whitespace // between the ; and the % @@ -1612,7 +1612,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali // by appending more rule sets to the end) // {dlf} Initialization of a fraction rule set requires the default rule - // set to be known. For purposes of initialization, this is always the + // set to be known. For purposes of initialization, this is always the // last public rule set, no matter what the localization data says. initDefaultRuleSet(); @@ -1631,7 +1631,7 @@ RuleBasedNumberFormat::init(const UnicodeString& rules, LocalizationInfo* locali // The C code keeps the localization array as is, rather than building // a separate array of the public rule set names, so we have less work // to do here-- but we still need to check the names. - + if (localizationInfos) { // confirm the names, if any aren't in the rules, that's an error // it is ok if the rules contain public rule sets that are not in this list @@ -1658,10 +1658,10 @@ RuleBasedNumberFormat::setContext(UDisplayContext value, UErrorCode& status) { NumberFormat::setContext(value, status); if (U_SUCCESS(status)) { - if (!capitalizationInfoSet && - (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE)) { - initCapitalizationContextInfo(locale); - capitalizationInfoSet = TRUE; + if (!capitalizationInfoSet && + (value==UDISPCTX_CAPITALIZATION_FOR_UI_LIST_OR_MENU || value==UDISPCTX_CAPITALIZATION_FOR_STANDALONE)) { + initCapitalizationContextInfo(locale); + capitalizationInfoSet = TRUE; } #if !UCONFIG_NO_BREAK_ITERATION if ( capitalizationBrkIter == NULL && (value==UDISPCTX_CAPITALIZATION_FOR_BEGINNING_OF_SENTENCE || diff --git a/deps/icu-small/source/i18n/rbt.cpp b/deps/icu-small/source/i18n/rbt.cpp index 65199478449014..1de53e6071c477 100644 --- a/deps/icu-small/source/i18n/rbt.cpp +++ b/deps/icu-small/source/i18n/rbt.cpp @@ -62,7 +62,7 @@ void RuleBasedTransliterator::_construct(const UnicodeString& rules, * @param rules rules, separated by ';' * @param direction either FORWARD or REVERSE. * @param adoptedFilter the filter for this transliterator. - * @param parseError Struct to recieve information on position + * @param parseError Struct to receive information on position * of error if an error is encountered * @param status Output param set to success/failure code. * @exception IllegalArgumentException if rules are malformed @@ -235,16 +235,16 @@ RuleBasedTransliterator::handleTransliterate(Replaceable& text, UTransPosition& } // Transliterator locking. Rule-based Transliterators are not thread safe; concurrent - // operations must be prevented. + // operations must be prevented. // A Complication: compound transliterators can result in recursive entries to this - // function, sometimes with different "This" objects, always with the same text. + // function, sometimes with different "This" objects, always with the same text. // Double-locking must be prevented in these cases. - // + // UBool lockedMutexAtThisLevel = FALSE; // Test whether this request is operating on the same text string as - // some other transliteration that is still in progress and holding the + // some other transliteration that is still in progress and holding the // transliteration mutex. If so, do not lock the transliteration // mutex again. // @@ -265,7 +265,7 @@ RuleBasedTransliterator::handleTransliterate(Replaceable& text, UTransPosition& gLockedText = &text; lockedMutexAtThisLevel = TRUE; } - + // Check to make sure we don't dereference a null pointer. if (fData != NULL) { while (index.start < index.limit && diff --git a/deps/icu-small/source/i18n/rbt.h b/deps/icu-small/source/i18n/rbt.h index 4d9991c48f8b72..8a43c90d462bee 100644 --- a/deps/icu-small/source/i18n/rbt.h +++ b/deps/icu-small/source/i18n/rbt.h @@ -144,7 +144,7 @@ class RuleBasedTransliterator : public Transliterator { * Implement Transliterator API. * @internal Use transliterator factory methods instead since this class will be removed in that release. */ - virtual RuleBasedTransliterator* clone() const; + virtual RuleBasedTransliterator* clone() const override; protected: /** @@ -152,7 +152,7 @@ class RuleBasedTransliterator : public Transliterator { * @internal Use transliterator factory methods instead since this class will be removed in that release. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offsets, - UBool isIncremental) const; + UBool isIncremental) const override; public: /** @@ -168,19 +168,19 @@ class RuleBasedTransliterator : public Transliterator { * @internal Use transliterator factory methods instead since this class will be removed in that release. */ virtual UnicodeString& toRules(UnicodeString& result, - UBool escapeUnprintable) const; + UBool escapeUnprintable) const override; protected: /** * Implement Transliterator framework */ - virtual void handleGetSourceSet(UnicodeSet& result) const; + virtual void handleGetSourceSet(UnicodeSet& result) const override; public: /** * Override Transliterator framework */ - virtual UnicodeSet& getTargetSet(UnicodeSet& result) const; + virtual UnicodeSet& getTargetSet(UnicodeSet& result) const override; /** * Return the class ID for this class. This is useful only for @@ -200,12 +200,12 @@ class RuleBasedTransliterator : public Transliterator { * is to implement a simple version of RTTI, since not all C++ * compilers support genuine RTTI. Polymorphic operator==() and * clone() methods call this method. - * + * * @return The class ID for this object. All objects of a given * class have the same class ID. Objects of other classes have * different class IDs. */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; private: diff --git a/deps/icu-small/source/i18n/rbt_data.cpp b/deps/icu-small/source/i18n/rbt_data.cpp index 7a9707b988b42e..f3985fc7685d03 100644 --- a/deps/icu-small/source/i18n/rbt_data.cpp +++ b/deps/icu-small/source/i18n/rbt_data.cpp @@ -51,7 +51,7 @@ TransliterationRuleData::TransliterationRuleData(const TransliterationRuleData& new UnicodeString(*(const UnicodeString*)e->value.pointer); // Exit out if value could not be created. if (value == NULL) { - return; + return; } variableNames.put(*(UnicodeString*)e->key.pointer, value, status); } @@ -72,7 +72,7 @@ TransliterationRuleData::TransliterationRuleData(const TransliterationRuleData& } } } - // Remove the array and exit if memory allocation error occured. + // Remove the array and exit if memory allocation error occurred. if (U_FAILURE(status)) { for (int32_t n = i-1; n >= 0; n--) { delete variables[n]; diff --git a/deps/icu-small/source/i18n/rbt_pars.cpp b/deps/icu-small/source/i18n/rbt_pars.cpp index 69465aecb9b142..2f207a8deb01e5 100644 --- a/deps/icu-small/source/i18n/rbt_pars.cpp +++ b/deps/icu-small/source/i18n/rbt_pars.cpp @@ -148,12 +148,12 @@ class ParseData : public UMemory, public SymbolTable { virtual ~ParseData(); - virtual const UnicodeString* lookup(const UnicodeString& s) const; + virtual const UnicodeString* lookup(const UnicodeString& s) const override; - virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const; + virtual const UnicodeFunctor* lookupMatcher(UChar32 ch) const override; virtual UnicodeString parseReference(const UnicodeString& text, - ParsePosition& pos, int32_t limit) const; + ParsePosition& pos, int32_t limit) const override; /** * Return true if the given character is a matcher standin or a plain * character (non standin). @@ -369,10 +369,10 @@ int32_t RuleHalf::parse(const UnicodeString& rule, int32_t pos, int32_t limit, U if (cursorOffset > 0 && cursor != cursorOffsetPos) { return syntaxError(U_MISPLACED_CURSOR_OFFSET, rule, start, status); } - + return pos; } - + /** * Parse a section of one side of a rule, stopping at either * the limit, the END_OF_RULE character, an operator, or a @@ -409,7 +409,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l int32_t varStart = -1; // Most recent $variableReference int32_t varLimit = -1; int32_t bufStart = buf.length(); - + while (pos < limit && !done) { // Since all syntax characters are in the BMP, fetching // 16-bit code units suffices here. @@ -437,7 +437,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l if (U_FAILURE(status)) { return syntaxError(U_MALFORMED_SET, rule, start, status); } - pos = pp.getIndex(); + pos = pp.getIndex(); continue; } // Handle escapes @@ -505,7 +505,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l } switch (c) { - + //------------------------------------------------------ // Elements allowed within and out of segments //------------------------------------------------------ @@ -522,15 +522,15 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l // bufSegStart is the offset in buf to the first // character of the segment we are parsing. int32_t bufSegStart = buf.length(); - + // Record segment number now, since nextSegmentNumber // will be incremented during the call to parseSection // if there are nested segments. int32_t segmentNumber = nextSegmentNumber++; // 1-based - + // Parse the segment pos = parseSection(rule, pos, limit, buf, UnicodeString(TRUE, ILLEGAL_SEG, -1), TRUE, status); - + // After parsing a segment, the relevant characters are // in buf, starting at offset bufSegStart. Extract them // into a string matcher, and replace them with a @@ -541,7 +541,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l if (m == NULL) { return syntaxError(U_MEMORY_ALLOCATION_ERROR, rule, start, status); } - + // Record and associate object and segment number parser.setSegmentObject(segmentNumber, m, status); buf.truncate(bufSegStart); @@ -559,20 +559,20 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l !ICU_Utility::parseChar(rule, iref, SEGMENT_OPEN)) { return syntaxError(U_INVALID_FUNCTION, rule, start, status); } - + Transliterator *t = single->createInstance(); delete single; if (t == NULL) { return syntaxError(U_INVALID_FUNCTION, rule, start, status); } - + // bufSegStart is the offset in buf to the first // character of the segment we are parsing. int32_t bufSegStart = buf.length(); - + // Parse the segment pos = parseSection(rule, iref, limit, buf, UnicodeString(TRUE, ILLEGAL_FUNC, -1), TRUE, status); - + // After parsing a segment, the relevant characters are // in buf, starting at offset bufSegStart. UnicodeString output; @@ -582,7 +582,7 @@ int32_t RuleHalf::parseSection(const UnicodeString& rule, int32_t pos, int32_t l if (r == NULL) { return syntaxError(U_MEMORY_ALLOCATION_ERROR, rule, start, status); } - + // Replace the buffer contents with a stand-in buf.truncate(bufSegStart); buf.append(parser.generateStandInFor(r, status)); @@ -864,7 +864,7 @@ TransliteratorParser::parse(const UnicodeString& rules, /** * Return the compound filter parsed by parse(). Caller owns result. - */ + */ UnicodeSet* TransliteratorParser::orphanCompoundFilter() { UnicodeSet* f = compoundFilter; compoundFilter = NULL; @@ -893,7 +893,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, UBool parsingIDs = TRUE; int32_t ruleCount = 0; - + while (!dataVector.isEmpty()) { delete (TransliterationRuleData*)(dataVector.orphanElementAt(0)); } @@ -956,7 +956,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, // keep track of how many rules we've seen ++ruleCount; - + // We've found the start of a rule or ID. c is its first // character, and pos points past c. --pos; @@ -972,13 +972,17 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, } int32_t p = pos; - + if (!parsingIDs) { if (curData != NULL) { + U_ASSERT(!dataVector.hasDeleter()); if (direction == UTRANS_FORWARD) dataVector.addElement(curData, status); else dataVector.insertElementAt(curData, 0, status); + if (U_FAILURE(status)) { + delete curData; + } curData = NULL; } parsingIDs = TRUE; @@ -1031,10 +1035,14 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, status = U_MEMORY_ALLOCATION_ERROR; return; } + U_ASSERT(idBlockVector.hasDeleter()); if (direction == UTRANS_FORWARD) - idBlockVector.addElement(tempstr, status); + idBlockVector.adoptElement(tempstr, status); else idBlockVector.insertElementAt(tempstr, 0, status); + if (U_FAILURE(status)) { + return; + } idBlockResult.remove(); parsingIDs = FALSE; curData = new TransliterationRuleData(status); @@ -1069,21 +1077,31 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, tempstr = new UnicodeString(idBlockResult); // NULL pointer check if (tempstr == NULL) { + // TODO: Testing, forcing this path, shows many memory leaks. ICU-21701 + // intltest translit/TransliteratorTest/TestInstantiation status = U_MEMORY_ALLOCATION_ERROR; return; } if (direction == UTRANS_FORWARD) - idBlockVector.addElement(tempstr, status); + idBlockVector.adoptElement(tempstr, status); else idBlockVector.insertElementAt(tempstr, 0, status); + if (U_FAILURE(status)) { + return; + } } else if (!parsingIDs && curData != NULL) { - if (direction == UTRANS_FORWARD) + if (direction == UTRANS_FORWARD) { dataVector.addElement(curData, status); - else + } else { dataVector.insertElementAt(curData, 0, status); + } + if (U_FAILURE(status)) { + delete curData; + curData = nullptr; + } } - + if (U_SUCCESS(status)) { // Convert the set vector to an array int32_t i, dataVectorSize = dataVector.size(); @@ -1106,7 +1124,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, data->variables[j] = static_cast(variablesVector.elementAt(j)); } - + data->variableNames.removeAll(); int32_t p = UHASH_FIRST; const UHashElement* he = variableNames.nextElement(p); @@ -1129,7 +1147,7 @@ void TransliteratorParser::parseRules(const UnicodeString& rule, (direction == UTRANS_REVERSE && compoundFilterOffset != ruleCount)) { status = U_MISPLACED_COMPOUND_FILTER; } - } + } for (i = 0; i < dataVectorSize; i++) { TransliterationRuleData* data = (TransliterationRuleData*)dataVector.elementAt(i); @@ -1149,7 +1167,7 @@ void TransliteratorParser::setVariableRange(int32_t start, int32_t end, UErrorCo status = U_MALFORMED_PRAGMA; return; } - + curData->variablesBase = (UChar) start; if (dataVector.size() == 0) { variableNext = (UChar) start; @@ -1214,12 +1232,12 @@ UBool TransliteratorParser::resemblesPragma(const UnicodeString& rule, int32_t p */ int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos, int32_t limit, UErrorCode& status) { int32_t array[2]; - + // resemblesPragma() has already returned true, so we // know that pos points to /use\s/i; we can skip 4 characters // immediately pos += 4; - + // Here are the pragmas we recognize: // use variable range 0xE000 0xEFFF; // use maximum backup 16; @@ -1230,25 +1248,25 @@ int32_t TransliteratorParser::parsePragma(const UnicodeString& rule, int32_t pos setVariableRange(array[0], array[1], status); return p; } - + p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_MAXIMUM_BACKUP, -1), array); if (p >= 0) { pragmaMaximumBackup(array[0]); return p; } - + p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_NFD_RULES, -1), NULL); if (p >= 0) { pragmaNormalizeRules(UNORM_NFD); return p; } - + p = ICU_Utility::parsePattern(rule, pos, limit, UnicodeString(TRUE, PRAGMA_NFC_RULES, -1), NULL); if (p >= 0) { pragmaNormalizeRules(UNORM_NFC); return p; } - + // Syntax error: unable to parse pragma return -1; } @@ -1345,7 +1363,7 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos, if (left->anchorStart || left->anchorEnd || right->anchorStart || right->anchorEnd) { return syntaxError(U_MALFORMED_VARIABLE_DEFINITION, rule, start, status); - } + } // We allow anything on the right, including an empty string. UnicodeString* value = new UnicodeString(right->text); // NULL pointer check @@ -1379,7 +1397,7 @@ int32_t TransliteratorParser::parseRule(const UnicodeString& rule, int32_t pos, syntaxError(U_INTERNAL_TRANSLITERATOR_ERROR, rule, start, status); // will never happen } } - + // If the direction we want doesn't match the rule // direction, do nothing. if (op != FWDREV_RULE_OP && @@ -1477,20 +1495,20 @@ int32_t TransliteratorParser::syntaxError(UErrorCode parseErrorCode, { parseError.offset = pos; parseError.line = 0 ; /* we are not using line numbers */ - + // for pre-context const int32_t LEN = U_PARSE_CONTEXT_LEN - 1; int32_t start = uprv_max(pos - LEN, 0); int32_t stop = pos; - + rule.extract(start,stop-start,parseError.preContext); //null terminate the buffer parseError.preContext[stop-start] = 0; - + //for post-context start = pos; stop = uprv_min(pos + LEN, rule.length()); - + rule.extract(start,stop-start,parseError.postContext); //null terminate the buffer parseError.postContext[stop-start]= 0; @@ -1523,7 +1541,7 @@ UChar TransliteratorParser::parseSet(const UnicodeString& rule, */ UChar TransliteratorParser::generateStandInFor(UnicodeFunctor* adopted, UErrorCode& status) { // assert(obj != null); - + // Look up previous stand-in, if any. This is a short list // (typical n is 0, 1, or 2); linear search is optimal. for (int32_t i=0; ivariablesBase + i); } } - + if (variableNext >= variableLimit) { delete adopted; status = U_VARIABLE_RANGE_EXHAUSTED; return 0; } variablesVector.addElement(adopted, status); + if (U_FAILURE(status)) { + delete adopted; + return 0; + } return variableNext++; } @@ -1577,13 +1599,17 @@ void TransliteratorParser::setSegmentObject(int32_t seg, StringMatcher* adopted, if (segmentObjects.size() < seg) { segmentObjects.setSize(seg, status); } + if (U_FAILURE(status)) { + return; + } int32_t index = getSegmentStandin(seg, status) - curData->variablesBase; if (segmentObjects.elementAt(seg-1) != NULL || variablesVector.elementAt(index) != NULL) { // should never happen - status = U_INTERNAL_TRANSLITERATOR_ERROR; + if (U_SUCCESS(status)) {status = U_INTERNAL_TRANSLITERATOR_ERROR;} return; } + // Note: neither segmentObjects or variablesVector has an object deleter function. segmentObjects.setElementAt(adopted, seg-1); variablesVector.setElementAt(adopted, index); } diff --git a/deps/icu-small/source/i18n/rbt_pars.h b/deps/icu-small/source/i18n/rbt_pars.h index 9336d410d351e5..d1a4cd6997c6da 100644 --- a/deps/icu-small/source/i18n/rbt_pars.h +++ b/deps/icu-small/source/i18n/rbt_pars.h @@ -84,8 +84,8 @@ class TransliteratorParser : public UMemory { * Temporary table of variable names. When parsing is complete, this is * copied into data.variableNames. */ - Hashtable variableNames; - + Hashtable variableNames; + /** * String of standins for segments. Used during the parsing of a single * rule. segmentStandins.charAt(0) is the standin for "$1" and corresponds @@ -95,7 +95,7 @@ class TransliteratorParser : public UMemory { /** * Vector of StringMatcher objects for segments. Used during the - * parsing of a single rule. + * parsing of a single rule. * segmentStandins.charAt(0) is the standin for "$1" and corresponds * to StringMatcher object segmentObjects.elementAt(0), etc. */ @@ -156,7 +156,7 @@ class TransliteratorParser : public UMemory { * call returns. * @param rules rules, separated by ';' * @param direction either FORWARD or REVERSE. - * @param pe Struct to recieve information on position + * @param pe Struct to receive information on position * of error if an error is encountered * @param ec Output param set to success/failure code. */ @@ -168,7 +168,7 @@ class TransliteratorParser : public UMemory { /** * Return the compound filter parsed by parse(). Caller owns result. * @return the compound filter parsed by parse(). - */ + */ UnicodeSet* orphanCompoundFilter(); private: @@ -328,7 +328,7 @@ class TransliteratorParser : public UMemory { * Copy constructor */ TransliteratorParser(const TransliteratorParser&); - + /** * Assignment operator */ diff --git a/deps/icu-small/source/i18n/rbt_rule.cpp b/deps/icu-small/source/i18n/rbt_rule.cpp index cd7bd5d9dfb655..6cc5325c467eab 100644 --- a/deps/icu-small/source/i18n/rbt_rule.cpp +++ b/deps/icu-small/source/i18n/rbt_rule.cpp @@ -126,7 +126,7 @@ TransliterationRule::TransliterationRule(const UnicodeString& input, return; } } - + key = NULL; if (keyLength > 0) { key = new StringMatcher(pattern, anteContextLength, anteContextLength + keyLength, @@ -137,7 +137,7 @@ TransliterationRule::TransliterationRule(const UnicodeString& input, return; } } - + int32_t postContextLength = pattern.length() - keyLength - anteContextLength; postContext = NULL; if (postContextLength > 0) { @@ -259,7 +259,7 @@ UBool TransliterationRule::masks(const TransliterationRule& r2) const { * r1: aakkkpppp * r2: aaakkkkkpppp * ^ - * + * * The strings must be aligned at the first character of the * key. The length of r1 to the left of the alignment point * must be <= the length of r2 to the left; ditto for the @@ -337,10 +337,10 @@ static inline int32_t posAfter(const Replaceable& str, int32_t pos) { * context and key characters match, but the text is not long * enough to match all of them. A full match means all context * and key characters match. - * + * * If a full match is obtained, perform a replacement, update pos, * and return U_MATCH. Otherwise both text and pos are unchanged. - * + * * @param text the text * @param pos the position indices * @param incremental if TRUE, test for partial matches that may @@ -383,7 +383,7 @@ UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, // 32-bit code points. This works because stand-ins are // always in the BMP and because we are doing a literal match // operation, which can be done 16-bits at a time. - + int32_t anteLimit = posBefore(text, pos.contextStart); UMatchDegree match; @@ -401,13 +401,13 @@ UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, minOText = posAfter(text, oText); // ------------------------ Start Anchor ------------------------ - + if (((flags & ANCHOR_START) != 0) && oText != anteLimit) { return U_MISMATCH; } // -------------------- Key and Post Context -------------------- - + oText = pos.start; if (key != NULL) { @@ -433,9 +433,9 @@ UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, return match; } } - + // ------------------------- Stop Anchor ------------------------ - + if (((flags & ANCHOR_END)) != 0) { if (oText != pos.contextLimit) { return U_MISMATCH; @@ -444,7 +444,7 @@ UMatchDegree TransliterationRule::matchAndReplace(Replaceable& text, return U_PARTIAL_MATCH; } } - + // =========================== REPLACE ========================== // We have a full match. The key is between pos.start and diff --git a/deps/icu-small/source/i18n/rbt_rule.h b/deps/icu-small/source/i18n/rbt_rule.h index 76feeee3913e6a..b927f5d6c05c11 100644 --- a/deps/icu-small/source/i18n/rbt_rule.h +++ b/deps/icu-small/source/i18n/rbt_rule.h @@ -261,10 +261,10 @@ class TransliterationRule : public UMemory { * context and key characters match, but the text is not long * enough to match all of them. A full match means all context * and key characters match. - * + * * If a full match is obtained, perform a replacement, update pos, * and return U_MATCH. Otherwise both text and pos are unchanged. - * + * * @param text the text * @param pos the position indices * @param incremental if true, test for partial matches that may diff --git a/deps/icu-small/source/i18n/rbt_set.cpp b/deps/icu-small/source/i18n/rbt_set.cpp index 939c0ea39ade63..abc4413c2c6f61 100644 --- a/deps/icu-small/source/i18n/rbt_set.cpp +++ b/deps/icu-small/source/i18n/rbt_set.cpp @@ -143,19 +143,19 @@ static void maskingError(const icu::TransliterationRule& rule1, int32_t len; parseError.line = parseError.offset = -1; - + // for pre-context rule1.toRule(r, FALSE); len = uprv_min(r.length(), U_PARSE_CONTEXT_LEN-1); r.extract(0, len, parseError.preContext); - parseError.preContext[len] = 0; - + parseError.preContext[len] = 0; + //for post-context r.truncate(0); rule2.toRule(r, FALSE); len = uprv_min(r.length(), U_PARSE_CONTEXT_LEN-1); r.extract(0, len, parseError.postContext); - parseError.postContext[len] = 0; + parseError.postContext[len] = 0; } U_NAMESPACE_BEGIN @@ -197,7 +197,7 @@ TransliterationRuleSet::TransliterationRuleSet(const TransliterationRuleSet& oth status = U_MEMORY_ALLOCATION_ERROR; break; } - ruleVector->addElement(tempTranslitRule, status); + ruleVector->addElementX(tempTranslitRule, status); if (U_FAILURE(status)) { break; } @@ -251,7 +251,7 @@ void TransliterationRuleSet::addRule(TransliterationRule* adoptedRule, delete adoptedRule; return; } - ruleVector->addElement(adoptedRule, status); + ruleVector->addElementX(adoptedRule, status); int32_t len; if ((len = adoptedRule->getContextLength()) > maxContextLength) { @@ -316,16 +316,16 @@ void TransliterationRuleSet::freeze(UParseError& parseError,UErrorCode& status) for (j=0; j= 0) { if (indexValue[j] == x) { - v.addElement(ruleVector->elementAt(j), status); + v.addElementX(ruleVector->elementAt(j), status); } } else { // If the indexValue is < 0, then the first key character is // a set, and we must use the more time-consuming // matchesIndexValue check. In practice this happens - // rarely, so we seldom tread this code path. + // rarely, so we seldom treat this code path. TransliterationRule* r = (TransliterationRule*) ruleVector->elementAt(j); if (r->matchesIndexValue((uint8_t)x)) { - v.addElement(r, status); + v.addElementX(r, status); } } } @@ -396,7 +396,7 @@ void TransliterationRuleSet::freeze(UParseError& parseError,UErrorCode& status) * @param text the text to be transliterated * @param pos the position indices, which will be updated * @param incremental if TRUE, assume new text may be inserted - * at index.limit, and return FALSE if thre is a partial match. + * at index.limit, and return FALSE if there is a partial match. * @return TRUE unless a U_PARTIAL_MATCH has been obtained, * indicating that transliteration should stop until more text * arrives. diff --git a/deps/icu-small/source/i18n/rbt_set.h b/deps/icu-small/source/i18n/rbt_set.h index b1163a0193f862..3a2890e8ec7973 100644 --- a/deps/icu-small/source/i18n/rbt_set.h +++ b/deps/icu-small/source/i18n/rbt_set.h @@ -120,7 +120,7 @@ class TransliterationRuleSet : public UMemory { * @param status Output parameter filled in with success or failure status. */ virtual void freeze(UParseError& parseError, UErrorCode& status); - + /** * Transliterate the given text with the given UTransPosition * indices. Return true if the transliteration should continue @@ -129,7 +129,7 @@ class TransliterationRuleSet : public UMemory { * @param text the text to be transliterated * @param index the position indices, which will be updated * @param isIncremental if true, assume new text may be inserted - * at index.limit, and return false if thre is a partial match. + * at index.limit, and return false if thrre is a partial match. * @return true unless a U_PARTIAL_MATCH has been obtained, * indicating that transliteration should stop until more text * arrives. diff --git a/deps/icu-small/source/i18n/rbtz.cpp b/deps/icu-small/source/i18n/rbtz.cpp index 9d8eea9263a280..495d8310d00298 100644 --- a/deps/icu-small/source/i18n/rbtz.cpp +++ b/deps/icu-small/source/i18n/rbtz.cpp @@ -25,12 +25,19 @@ U_NAMESPACE_BEGIN /** * A struct representing a time zone transition */ -struct Transition { +struct Transition : public UMemory { UDate time; TimeZoneRule* from; TimeZoneRule* to; }; +U_CDECL_BEGIN +static void U_CALLCONV +deleteTransition(void* obj) { + delete static_cast(obj); +} +U_CDECL_END + static UBool compareRules(UVector* rules1, UVector* rules2) { if (rules1 == NULL && rules2 == NULL) { return TRUE; @@ -88,59 +95,61 @@ RuleBasedTimeZone::operator=(const RuleBasedTimeZone& right) { return *this; } -UBool +bool RuleBasedTimeZone::operator==(const TimeZone& that) const { if (this == &that) { - return TRUE; + return true; } - if (typeid(*this) != typeid(that) - || BasicTimeZone::operator==(that) == FALSE) { - return FALSE; + if (typeid(*this) != typeid(that) || !BasicTimeZone::operator==(that)) { + return false; } RuleBasedTimeZone *rbtz = (RuleBasedTimeZone*)&that; if (*fInitialRule != *(rbtz->fInitialRule)) { - return FALSE; + return false; } if (compareRules(fHistoricRules, rbtz->fHistoricRules) && compareRules(fFinalRules, rbtz->fFinalRules)) { - return TRUE; + return true; } - return FALSE; + return false; } -UBool +bool RuleBasedTimeZone::operator!=(const TimeZone& that) const { return !operator==(that); } void RuleBasedTimeZone::addTransitionRule(TimeZoneRule* rule, UErrorCode& status) { + LocalPointerlpRule(rule); if (U_FAILURE(status)) { return; } AnnualTimeZoneRule* atzrule = dynamic_cast(rule); - if (atzrule != NULL && atzrule->getEndYear() == AnnualTimeZoneRule::MAX_YEAR) { + if (atzrule != nullptr && atzrule->getEndYear() == AnnualTimeZoneRule::MAX_YEAR) { // A final rule - if (fFinalRules == NULL) { - fFinalRules = new UVector(status); + if (fFinalRules == nullptr) { + LocalPointer lpFinalRules(new UVector(uprv_deleteUObject, nullptr, status), status); if (U_FAILURE(status)) { return; } + fFinalRules = lpFinalRules.orphan(); } else if (fFinalRules->size() >= 2) { // Cannot handle more than two final rules status = U_INVALID_STATE_ERROR; return; } - fFinalRules->addElement((void*)rule, status); + fFinalRules->adoptElement(lpRule.orphan(), status); } else { // Non-final rule - if (fHistoricRules == NULL) { - fHistoricRules = new UVector(status); + if (fHistoricRules == nullptr) { + LocalPointer lpHistoricRules(new UVector(uprv_deleteUObject, nullptr, status), status); if (U_FAILURE(status)) { return; } + fHistoricRules = lpHistoricRules.orphan(); } - fHistoricRules->addElement((void*)rule, status); + fHistoricRules->adoptElement(lpRule.orphan(), status); } // Mark dirty, so transitions are recalculated at next complete() call fUpToDate = FALSE; @@ -176,7 +185,6 @@ RuleBasedTimeZone::complete(UErrorCode& status) { return; } - UBool *done = NULL; // Create a TimezoneTransition and add to the list if (fHistoricRules != NULL || fFinalRules != NULL) { TimeZoneRule *curRule = fInitialRule; @@ -187,13 +195,13 @@ RuleBasedTimeZone::complete(UErrorCode& status) { if (fHistoricRules != NULL && fHistoricRules->size() > 0) { int32_t i; int32_t historicCount = fHistoricRules->size(); - done = (UBool*)uprv_malloc(sizeof(UBool) * historicCount); + LocalMemory done((bool *)uprv_malloc(sizeof(bool) * historicCount)); if (done == NULL) { status = U_MEMORY_ALLOCATION_ERROR; goto cleanup; } for (i = 0; i < historicCount; i++) { - done[i] = FALSE; + done[i] = false; } while (TRUE) { int32_t curStdOffset = curRule->getRawOffset(); @@ -214,7 +222,7 @@ RuleBasedTimeZone::complete(UErrorCode& status) { avail = r->getNextStart(lastTransitionTime, curStdOffset, curDstSavings, false, tt); if (!avail) { // No more transitions from this rule - skip this rule next time - done[i] = TRUE; + done[i] = true; } else { r->getName(name); if (*r == *curRule || @@ -267,20 +275,21 @@ RuleBasedTimeZone::complete(UErrorCode& status) { } if (fHistoricTransitions == NULL) { - fHistoricTransitions = new UVector(status); + LocalPointer lpHistoricTransitions( + new UVector(deleteTransition, nullptr, status), status); if (U_FAILURE(status)) { goto cleanup; } + fHistoricTransitions = lpHistoricTransitions.orphan(); } - Transition *trst = (Transition*)uprv_malloc(sizeof(Transition)); - if (trst == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; + LocalPointer trst(new Transition, status); + if (U_FAILURE(status)) { goto cleanup; } trst->time = nextTransitionTime; trst->from = curRule; trst->to = nextRule; - fHistoricTransitions->addElement(trst, status); + fHistoricTransitions->adoptElement(trst.orphan(), status); if (U_FAILURE(status)) { goto cleanup; } @@ -290,10 +299,12 @@ RuleBasedTimeZone::complete(UErrorCode& status) { } if (fFinalRules != NULL) { if (fHistoricTransitions == NULL) { - fHistoricTransitions = new UVector(status); + LocalPointer lpHistoricTransitions( + new UVector(deleteTransition, nullptr, status), status); if (U_FAILURE(status)) { goto cleanup; } + fHistoricTransitions = lpHistoricTransitions.orphan(); } // Append the first transition for each TimeZoneRule *rule0 = (TimeZoneRule*)fFinalRules->elementAt(0); @@ -306,16 +317,10 @@ RuleBasedTimeZone::complete(UErrorCode& status) { status = U_INVALID_STATE_ERROR; goto cleanup; } - Transition *final0 = (Transition*)uprv_malloc(sizeof(Transition)); - if (final0 == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; - } - Transition *final1 = (Transition*)uprv_malloc(sizeof(Transition)); - if (final1 == NULL) { - uprv_free(final0); - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanup; + LocalPointer final0(new Transition, status); + LocalPointer final1(new Transition, status); + if (U_FAILURE(status)) { + goto cleanup; } if (tt0 < tt1) { final0->time = tt0; @@ -332,27 +337,18 @@ RuleBasedTimeZone::complete(UErrorCode& status) { final1->from = rule1; final1->to = rule0; } - fHistoricTransitions->addElement(final0, status); - if (U_FAILURE(status)) { - goto cleanup; - } - fHistoricTransitions->addElement(final1, status); + fHistoricTransitions->adoptElement(final0.orphan(), status); + fHistoricTransitions->adoptElement(final1.orphan(), status); if (U_FAILURE(status)) { goto cleanup; } } } fUpToDate = TRUE; - if (done != NULL) { - uprv_free(done); - } return; cleanup: deleteTransitions(); - if (done != NULL) { - uprv_free(done); - } fUpToDate = FALSE; } @@ -449,7 +445,7 @@ RuleBasedTimeZone::getOffsetInternal(UDate date, UBool local, } if (rule == NULL) { // no final rules or the given time is before the first transition - // specified by the final rules -> use the last rule + // specified by the final rules -> use the last rule rule = ((Transition*)fHistoricTransitions->elementAt(idx))->to; } } else { @@ -629,16 +625,10 @@ RuleBasedTimeZone::deleteRules(void) { delete fInitialRule; fInitialRule = NULL; if (fHistoricRules != NULL) { - while (!fHistoricRules->isEmpty()) { - delete (TimeZoneRule*)(fHistoricRules->orphanElementAt(0)); - } delete fHistoricRules; fHistoricRules = NULL; } if (fFinalRules != NULL) { - while (!fFinalRules->isEmpty()) { - delete (AnnualTimeZoneRule*)(fFinalRules->orphanElementAt(0)); - } delete fFinalRules; fFinalRules = NULL; } @@ -647,10 +637,6 @@ RuleBasedTimeZone::deleteRules(void) { void RuleBasedTimeZone::deleteTransitions(void) { if (fHistoricTransitions != NULL) { - while (!fHistoricTransitions->isEmpty()) { - Transition *trs = (Transition*)fHistoricTransitions->orphanElementAt(0); - uprv_free(trs); - } delete fHistoricTransitions; } fHistoricTransitions = NULL; @@ -658,32 +644,24 @@ RuleBasedTimeZone::deleteTransitions(void) { UVector* RuleBasedTimeZone::copyRules(UVector* source) { - if (source == NULL) { - return NULL; + if (source == nullptr) { + return nullptr; } UErrorCode ec = U_ZERO_ERROR; int32_t size = source->size(); - UVector *rules = new UVector(size, ec); + LocalPointer rules(new UVector(uprv_deleteUObject, nullptr, size, ec), ec); if (U_FAILURE(ec)) { - return NULL; + return nullptr; } int32_t i; for (i = 0; i < size; i++) { - rules->addElement(((TimeZoneRule*)source->elementAt(i))->clone(), ec); + LocalPointer rule(((TimeZoneRule*)source->elementAt(i))->clone(), ec); + rules->adoptElement(rule.orphan(), ec); if (U_FAILURE(ec)) { - break; + return nullptr; } } - if (U_FAILURE(ec)) { - // In case of error, clean up - for (i = 0; i < rules->size(); i++) { - TimeZoneRule *rule = (TimeZoneRule*)rules->orphanElementAt(i); - delete rule; - } - delete rules; - return NULL; - } - return rules; + return rules.orphan(); } TimeZoneRule* @@ -749,7 +727,7 @@ RuleBasedTimeZone::findNext(UDate base, UBool inclusive, UDate& transitionTime, result = *tzt; found = TRUE; } else { - int32_t idx = fHistoricTransitions->size() - 1; + int32_t idx = fHistoricTransitions->size() - 1; tzt = (Transition*)fHistoricTransitions->elementAt(idx); tt = tzt->time; if (inclusive && tt == base) { @@ -832,7 +810,7 @@ RuleBasedTimeZone::findPrev(UDate base, UBool inclusive, UDate& transitionTime, result = *tzt; found = TRUE; } else if (tt < base) { - int32_t idx = fHistoricTransitions->size() - 1; + int32_t idx = fHistoricTransitions->size() - 1; tzt = (Transition*)fHistoricTransitions->elementAt(idx); tt = tzt->time; if (inclusive && tt == base) { @@ -956,3 +934,4 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ //eof + diff --git a/deps/icu-small/source/i18n/regexcmp.cpp b/deps/icu-small/source/i18n/regexcmp.cpp index 6c3a9e10ba12f2..89cb6584251fff 100644 --- a/deps/icu-small/source/i18n/regexcmp.cpp +++ b/deps/icu-small/source/i18n/regexcmp.cpp @@ -53,7 +53,7 @@ U_NAMESPACE_BEGIN // //------------------------------------------------------------------------------ RegexCompile::RegexCompile(RegexPattern *rxp, UErrorCode &status) : - fParenStack(status), fSetStack(status), fSetOpStack(status) + fParenStack(status), fSetStack(uprv_deleteUObject, nullptr, status), fSetOpStack(status) { // Lazy init of all shared global sets (needed for init()'s empty text) RegexStaticSets::initGlobals(&status); @@ -278,11 +278,6 @@ void RegexCompile::compile( if (U_FAILURE(*fStatus)) { // Bail out if the pattern had errors. - // Set stack cleanup: a successful compile would have left it empty, - // but errors can leave temporary sets hanging around. - while (!fSetStack.empty()) { - delete (UnicodeSet *)fSetStack.pop(); - } return; } @@ -447,7 +442,7 @@ UBool RegexCompile::doParseActions(int32_t action) case doBadNamedCapture: error(U_REGEX_INVALID_CAPTURE_GROUP_NAME); break; - + case doOpenCaptureParen: // Open Capturing Paren, possibly named. // Compile to a @@ -473,7 +468,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_START_CAPTURE, varsLoc); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the two NOPs. Depending on what follows in the pattern, the // NOPs may be changed to SAVE_STATE or JMP ops, with a target // address of the end of the parenthesized group. @@ -515,7 +510,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_NOP, 0); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the two NOPs. fParenStack.push(fModeFlags, *fStatus); // Match mode state fParenStack.push(plain, *fStatus); // Begin a new frame. @@ -540,7 +535,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_STO_SP, varLoc); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the two NOPs. Depending on what follows in the pattern, the // NOPs may be changed to SAVE_STATE or JMP ops, with a target // address of the end of the parenthesized group. @@ -594,7 +589,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_NOP, 0); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the NOPs. fParenStack.push(fModeFlags, *fStatus); // Match mode state fParenStack.push(lookAhead, *fStatus); // Frame type. @@ -627,7 +622,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_STATE_SAVE, 0); // dest address will be patched later. appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the StateSave and NOP. fParenStack.push(fModeFlags, *fStatus); // Match mode state fParenStack.push(negLookAhead, *fStatus); // Frame type @@ -679,7 +674,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_NOP, 0); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the URX_LB_CONT and the NOP. fParenStack.push(fModeFlags, *fStatus); // Match mode state fParenStack.push(lookBehind, *fStatus); // Frame type @@ -734,7 +729,7 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_NOP, 0); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the URX_LB_CONT and the NOP. fParenStack.push(fModeFlags, *fStatus); // Match mode state fParenStack.push(lookBehindN, *fStatus); // Frame type @@ -748,7 +743,7 @@ UBool RegexCompile::doParseActions(int32_t action) case doConditionalExpr: // Conditionals such as (?(1)a:b) case doPerlInline: - // Perl inline-condtionals. (?{perl code}a|b) We're not perl, no way to do them. + // Perl inline-conditionals. (?{perl code}a|b) We're not perl, no way to do them. error(U_REGEX_UNIMPLEMENTED); break; @@ -1009,7 +1004,7 @@ UBool RegexCompile::doParseActions(int32_t action) case doIntervalInit: // The '{' opening an interval quantifier was just scanned. - // Init the counter varaiables that will accumulate the values as the digits + // Init the counter variables that will accumulate the values as the digits // are scanned. fIntervalLow = 0; fIntervalUpper = -1; @@ -1344,7 +1339,7 @@ UBool RegexCompile::doParseActions(int32_t action) error(U_MEMORY_ALLOCATION_ERROR); } break; - + case doContinueNamedBackRef: fCaptureName->append(fC.fChar); break; @@ -1372,7 +1367,7 @@ UBool RegexCompile::doParseActions(int32_t action) fCaptureName = NULL; break; } - + case doPossessivePlus: // Possessive ++ quantifier. // Compiles to @@ -1485,8 +1480,8 @@ UBool RegexCompile::doParseActions(int32_t action) case 0x78: /* 'x' */ bit = UREGEX_COMMENTS; break; case 0x2d: /* '-' */ fSetModeFlag = FALSE; break; default: - UPRV_UNREACHABLE; // Should never happen. Other chars are filtered out - // by the scanner. + UPRV_UNREACHABLE_EXIT; // Should never happen. Other chars are filtered out + // by the scanner. } if (fSetModeFlag) { fNewModeFlags |= bit; @@ -1522,9 +1517,9 @@ UBool RegexCompile::doParseActions(int32_t action) appendOp(URX_NOP, 0); appendOp(URX_NOP, 0); - // On the Parentheses stack, start a new frame and add the postions + // On the Parentheses stack, start a new frame and add the positions // of the two NOPs (a normal non-capturing () frame, except for the - // saving of the orignal mode flags.) + // saving of the original mode flags.) fParenStack.push(fModeFlags, *fStatus); fParenStack.push(flags, *fStatus); // Frame Marker fParenStack.push(fRXPat->fCompiledPat->size()-2, *fStatus); // The first NOP @@ -1656,13 +1651,16 @@ UBool RegexCompile::doParseActions(int32_t action) } case doSetBegin: - fixLiterals(FALSE); - fSetStack.push(new UnicodeSet(), *fStatus); - fSetOpStack.push(setStart, *fStatus); - if ((fModeFlags & UREGEX_CASE_INSENSITIVE) != 0) { - fSetOpStack.push(setCaseClose, *fStatus); + { + fixLiterals(FALSE); + LocalPointer lpSet(new UnicodeSet(), *fStatus); + fSetStack.push(lpSet.orphan(), *fStatus); + fSetOpStack.push(setStart, *fStatus); + if ((fModeFlags & UREGEX_CASE_INSENSITIVE) != 0) { + fSetOpStack.push(setCaseClose, *fStatus); + } + break; } - break; case doSetBeginDifference1: // We have scanned something like [[abc]-[ @@ -1860,7 +1858,7 @@ UBool RegexCompile::doParseActions(int32_t action) } default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } if (U_FAILURE(*fStatus)) { @@ -1967,17 +1965,17 @@ int32_t RegexCompile::buildOp(int32_t type, int32_t val) { return 0; } if (type < 0 || type > 255) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } if (val > 0x00ffffff) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } if (val < 0) { if (!(type == URX_RESERVED_OP_N || type == URX_RESERVED_OP)) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } if (URX_TYPE(val) != 0xff) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } type = URX_RESERVED_OP_N; } @@ -2373,7 +2371,7 @@ void RegexCompile::handleCloseParen() { default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } // remember the next location in the compiled pattern. @@ -2396,7 +2394,7 @@ void RegexCompile::compileSet(UnicodeSet *theSet) return; } // Remove any strings from the set. - // There shoudn't be any, but just in case. + // There shouldn't be any, but just in case. // (Case Closure can add them; if we had a simple case closure available that // ignored strings, that would be better.) theSet->removeAllStrings(); @@ -2428,7 +2426,11 @@ void RegexCompile::compileSet(UnicodeSet *theSet) theSet->freeze(); int32_t setNumber = fRXPat->fSets->size(); fRXPat->fSets->addElement(theSet, *fStatus); - appendOp(URX_SETREF, setNumber); + if (U_SUCCESS(*fStatus)) { + appendOp(URX_SETREF, setNumber); + } else { + delete theSet; + } } } } @@ -2565,8 +2567,8 @@ UBool RegexCompile::compileInlineInterval() { //------------------------------------------------------------------------------ // -// caseInsensitiveStart given a single code point from a pattern string, determine the -// set of characters that could potentially begin a case-insensitive +// caseInsensitiveStart given a single code point from a pattern string, determine the +// set of characters that could potentially begin a case-insensitive // match of a string beginning with that character, using full Unicode // case insensitive matching. // @@ -2579,7 +2581,7 @@ UBool RegexCompile::compileInlineInterval() { // The pattern could match a string beginning with a German sharp-s // // To the ordinary case closure for a character c, we add all other -// characters cx where the case closure of cx incudes a string form that begins +// characters cx where the case closure of cx includes a string form that begins // with the original character c. // // This function could be made smarter. The full pattern string is available @@ -2593,48 +2595,49 @@ void RegexCompile::findCaseInsensitiveStarters(UChar32 c, UnicodeSet *starterCh // Machine Generated below. // It may need updating with new versions of Unicode. // Intltest test RegexTest::TestCaseInsensitiveStarters will fail if an update is needed. -// The update tool is here: svn+ssh://source.icu-project.org/repos/icu/tools/trunk/unicode/c/genregexcasing +// The update tool is here: +// https://github.com/unicode-org/icu/tree/main/tools/unicode/c/genregexcasing // Machine Generated Data. Do not hand edit. static const UChar32 RECaseFixCodePoints[] = { - 0x61, 0x66, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x77, 0x79, 0x2bc, - 0x3ac, 0x3ae, 0x3b1, 0x3b7, 0x3b9, 0x3c1, 0x3c5, 0x3c9, 0x3ce, 0x565, - 0x574, 0x57e, 0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07, - 0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27, 0x1f60, 0x1f61, + 0x61, 0x66, 0x68, 0x69, 0x6a, 0x73, 0x74, 0x77, 0x79, 0x2bc, + 0x3ac, 0x3ae, 0x3b1, 0x3b7, 0x3b9, 0x3c1, 0x3c5, 0x3c9, 0x3ce, 0x565, + 0x574, 0x57e, 0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07, + 0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27, 0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67, 0x1f70, 0x1f74, 0x1f7c, 0x110000}; static const int16_t RECaseFixStringOffsets[] = { - 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xd, 0xe, 0xf, 0x10, - 0x11, 0x12, 0x13, 0x17, 0x1b, 0x20, 0x21, 0x2a, 0x2e, 0x2f, - 0x30, 0x34, 0x35, 0x37, 0x39, 0x3b, 0x3d, 0x3f, 0x41, 0x43, - 0x45, 0x47, 0x49, 0x4b, 0x4d, 0x4f, 0x51, 0x53, 0x55, 0x57, + 0x0, 0x1, 0x6, 0x7, 0x8, 0x9, 0xd, 0xe, 0xf, 0x10, + 0x11, 0x12, 0x13, 0x17, 0x1b, 0x20, 0x21, 0x2a, 0x2e, 0x2f, + 0x30, 0x34, 0x35, 0x37, 0x39, 0x3b, 0x3d, 0x3f, 0x41, 0x43, + 0x45, 0x47, 0x49, 0x4b, 0x4d, 0x4f, 0x51, 0x53, 0x55, 0x57, 0x59, 0x5b, 0x5d, 0x5f, 0x61, 0x63, 0x65, 0x66, 0x67, 0}; static const int16_t RECaseFixCounts[] = { - 0x1, 0x5, 0x1, 0x1, 0x1, 0x4, 0x1, 0x1, 0x1, 0x1, - 0x1, 0x1, 0x4, 0x4, 0x5, 0x1, 0x9, 0x4, 0x1, 0x1, - 0x4, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, - 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, + 0x1, 0x5, 0x1, 0x1, 0x1, 0x4, 0x1, 0x1, 0x1, 0x1, + 0x1, 0x1, 0x4, 0x4, 0x5, 0x1, 0x9, 0x4, 0x1, 0x1, + 0x4, 0x1, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, + 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x2, 0x1, 0x1, 0x1, 0}; static const UChar RECaseFixData[] = { - 0x1e9a, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04, 0x1e96, 0x130, 0x1f0, 0xdf, - 0x1e9e, 0xfb05, 0xfb06, 0x1e97, 0x1e98, 0x1e99, 0x149, 0x1fb4, 0x1fc4, 0x1fb3, - 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc3, 0x1fc6, 0x1fc7, 0x1fcc, 0x390, 0x1fd2, 0x1fd3, - 0x1fd6, 0x1fd7, 0x1fe4, 0x3b0, 0x1f50, 0x1f52, 0x1f54, 0x1f56, 0x1fe2, 0x1fe3, - 0x1fe6, 0x1fe7, 0x1ff3, 0x1ff6, 0x1ff7, 0x1ffc, 0x1ff4, 0x587, 0xfb13, 0xfb14, - 0xfb15, 0xfb17, 0xfb16, 0x1f80, 0x1f88, 0x1f81, 0x1f89, 0x1f82, 0x1f8a, 0x1f83, - 0x1f8b, 0x1f84, 0x1f8c, 0x1f85, 0x1f8d, 0x1f86, 0x1f8e, 0x1f87, 0x1f8f, 0x1f90, - 0x1f98, 0x1f91, 0x1f99, 0x1f92, 0x1f9a, 0x1f93, 0x1f9b, 0x1f94, 0x1f9c, 0x1f95, - 0x1f9d, 0x1f96, 0x1f9e, 0x1f97, 0x1f9f, 0x1fa0, 0x1fa8, 0x1fa1, 0x1fa9, 0x1fa2, - 0x1faa, 0x1fa3, 0x1fab, 0x1fa4, 0x1fac, 0x1fa5, 0x1fad, 0x1fa6, 0x1fae, 0x1fa7, + 0x1e9a, 0xfb00, 0xfb01, 0xfb02, 0xfb03, 0xfb04, 0x1e96, 0x130, 0x1f0, 0xdf, + 0x1e9e, 0xfb05, 0xfb06, 0x1e97, 0x1e98, 0x1e99, 0x149, 0x1fb4, 0x1fc4, 0x1fb3, + 0x1fb6, 0x1fb7, 0x1fbc, 0x1fc3, 0x1fc6, 0x1fc7, 0x1fcc, 0x390, 0x1fd2, 0x1fd3, + 0x1fd6, 0x1fd7, 0x1fe4, 0x3b0, 0x1f50, 0x1f52, 0x1f54, 0x1f56, 0x1fe2, 0x1fe3, + 0x1fe6, 0x1fe7, 0x1ff3, 0x1ff6, 0x1ff7, 0x1ffc, 0x1ff4, 0x587, 0xfb13, 0xfb14, + 0xfb15, 0xfb17, 0xfb16, 0x1f80, 0x1f88, 0x1f81, 0x1f89, 0x1f82, 0x1f8a, 0x1f83, + 0x1f8b, 0x1f84, 0x1f8c, 0x1f85, 0x1f8d, 0x1f86, 0x1f8e, 0x1f87, 0x1f8f, 0x1f90, + 0x1f98, 0x1f91, 0x1f99, 0x1f92, 0x1f9a, 0x1f93, 0x1f9b, 0x1f94, 0x1f9c, 0x1f95, + 0x1f9d, 0x1f96, 0x1f9e, 0x1f97, 0x1f9f, 0x1fa0, 0x1fa8, 0x1fa1, 0x1fa9, 0x1fa2, + 0x1faa, 0x1fa3, 0x1fab, 0x1fa4, 0x1fac, 0x1fa5, 0x1fad, 0x1fa6, 0x1fae, 0x1fa7, 0x1faf, 0x1fb2, 0x1fc2, 0x1ff2, 0}; // End of machine generated data. if (c < UCHAR_MIN_VALUE || c > UCHAR_MAX_VALUE) { // This function should never be called with an invalid input character. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } else if (u_hasBinaryProperty(c, UCHAR_CASE_SENSITIVE)) { UChar32 caseFoldedC = u_foldCase(c, U_FOLD_CASE_DEFAULT); starterChars->set(caseFoldedC, caseFoldedC); @@ -2919,7 +2922,7 @@ void RegexCompile::matchStartType() { break; - case URX_BACKSLASH_X: // Grahpeme Cluster. Minimum is 1, max unbounded. + case URX_BACKSLASH_X: // Grapheme Cluster. Minimum is 1, max unbounded. case URX_DOTANY_ALL: // . matches one or two. case URX_DOTANY: case URX_DOTANY_UNIX: @@ -3127,10 +3130,10 @@ void RegexCompile::matchStartType() { case URX_LB_END: case URX_LBN_CONT: case URX_LBN_END: - UPRV_UNREACHABLE; // Shouldn't get here. These ops should be - // consumed by the scan in URX_LA_START and LB_START + UPRV_UNREACHABLE_EXIT; // Shouldn't get here. These ops should be + // consumed by the scan in URX_LA_START and LB_START default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -3286,7 +3289,7 @@ int32_t RegexCompile::minMatchLength(int32_t start, int32_t end) { case URX_BACKSLASH_R: case URX_BACKSLASH_V: case URX_ONECHAR_I: - case URX_BACKSLASH_X: // Grahpeme Cluster. Minimum is 1, max unbounded. + case URX_BACKSLASH_X: // Grapheme Cluster. Minimum is 1, max unbounded. case URX_DOTANY_ALL: // . matches one or two. case URX_DOTANY: case URX_DOTANY_UNIX: @@ -3406,7 +3409,7 @@ int32_t RegexCompile::minMatchLength(int32_t start, int32_t end) { loc++; op = (int32_t)fRXPat->fCompiledPat->elementAti(loc); if (URX_TYPE(op) == URX_LA_START) { - // The boilerplate for look-ahead includes two LA_END insturctions, + // The boilerplate for look-ahead includes two LA_END instructions, // Depth will be decremented by each one when it is seen. depth += 2; } @@ -3450,7 +3453,7 @@ int32_t RegexCompile::minMatchLength(int32_t start, int32_t end) { break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -3546,7 +3549,7 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) { // Call the max length unbounded, and stop further checking. case URX_BACKREF: // BackRef. Must assume that it might be a zero length match case URX_BACKREF_I: - case URX_BACKSLASH_X: // Grahpeme Cluster. Minimum is 1, max unbounded. + case URX_BACKSLASH_X: // Grapheme Cluster. Minimum is 1, max unbounded. currentLen = INT32_MAX; break; @@ -3682,7 +3685,7 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) { U_ASSERT(loopEndLoc >= loc+4); int64_t blockLen = maxMatchLength(loc+4, loopEndLoc-1); // Recursive call. - int64_t updatedLen = (int64_t)currentLen + blockLen * maxLoopCount; + int64_t updatedLen = (int64_t)currentLen + blockLen * maxLoopCount; if (updatedLen >= INT32_MAX) { currentLen = INT32_MAX; break; @@ -3696,7 +3699,7 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) { case URX_CTR_LOOP_NG: // These opcodes will be skipped over by code for URX_CTR_INIT. // We shouldn't encounter them here. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case URX_LOOP_SR_I: case URX_LOOP_DOT_I: @@ -3716,7 +3719,7 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) { // End of look-ahead ops should always be consumed by the processing at // the URX_LA_START op. - // UPRV_UNREACHABLE; + // UPRV_UNREACHABLE_EXIT; case URX_LB_START: { @@ -3735,7 +3738,7 @@ int32_t RegexCompile::maxMatchLength(int32_t start, int32_t end) { break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } @@ -3890,7 +3893,7 @@ void RegexCompile::stripNOPs() { default: // Some op is unaccounted for. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -3927,7 +3930,7 @@ void RegexCompile::error(UErrorCode e) { UErrorCode status = U_ZERO_ERROR; // throwaway status for extracting context // Fill in the context. - // Note: extractBetween() pins supplied indicies to the string bounds. + // Note: extractBetween() pins supplied indices to the string bounds. uprv_memset(fParseErr->preContext, 0, sizeof(fParseErr->preContext)); uprv_memset(fParseErr->postContext, 0, sizeof(fParseErr->postContext)); utext_extract(fRXPat->fPattern, fScanIndex-U_PARSE_CONTEXT_LEN+1, fScanIndex, fParseErr->preContext, U_PARSE_CONTEXT_LEN, &status); @@ -4057,7 +4060,7 @@ void RegexCompile::nextChar(RegexPatternChar &c) { // // We are in free-spacing and comments mode. // Scan through any white space and comments, until we - // reach a significant character or the end of inut. + // reach a significant character or the end of input. for (;;) { if (c.fChar == (UChar32)-1) { break; // End of Input @@ -4385,7 +4388,7 @@ static inline void addIdentifierIgnorable(UnicodeSet *set, UErrorCode& ec) { // // Create a Unicode Set from a Unicode Property expression. -// This is common code underlying both \p{...} ane [:...:] expressions. +// This is common code underlying both \p{...} and [:...:] expressions. // Includes trying the Java "properties" that aren't supported as // normal ICU UnicodeSet properties // @@ -4578,6 +4581,13 @@ UnicodeSet *RegexCompile::createSetForProperty(const UnicodeString &propName, UB } while (false); // End of do loop block. Code above breaks out of the block on success or hard failure. if (U_SUCCESS(status)) { + // ICU 70 adds emoji properties of strings, but as long as Java does not say how to + // deal with properties of strings and character classes with strings, we ignore them. + // Just in case something downstream might stumble over the strings, + // we remove them from the set. + // Note that when we support strings, the complement of a property (as with \P) + // should be implemented as .complement().removeAllStrings() (code point complement). + set->removeAllStrings(); U_ASSERT(set.isValid()); if (negated) { set->complement(); @@ -4611,6 +4621,13 @@ void RegexCompile::setEval(int32_t nextOp) { fSetOpStack.popi(); U_ASSERT(fSetStack.empty() == FALSE); rightOperand = (UnicodeSet *)fSetStack.peek(); + // ICU 70 adds emoji properties of strings, but createSetForProperty() removes all strings + // (see comments there). + // We also do not yet support string literals in character classes, + // so there should not be any strings. + // Note that when we support strings, the complement of a set (as with ^ or \P) + // should be implemented as .complement().removeAllStrings() (code point complement). + U_ASSERT(!rightOperand->hasStrings()); switch (pendingSetOperation) { case setNegation: rightOperand->complement(); @@ -4641,7 +4658,7 @@ void RegexCompile::setEval(int32_t nextOp) { delete rightOperand; break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } } @@ -4649,8 +4666,10 @@ void RegexCompile::setEval(int32_t nextOp) { void RegexCompile::setPushOp(int32_t op) { setEval(op); fSetOpStack.push(op, *fStatus); - fSetStack.push(new UnicodeSet(), *fStatus); + LocalPointer lpSet(new UnicodeSet(), *fStatus); + fSetStack.push(lpSet.orphan(), *fStatus); } U_NAMESPACE_END #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS + diff --git a/deps/icu-small/source/i18n/regexcmp.h b/deps/icu-small/source/i18n/regexcmp.h index 5804ff302674a1..9e1aa170f08689 100644 --- a/deps/icu-small/source/i18n/regexcmp.h +++ b/deps/icu-small/source/i18n/regexcmp.h @@ -59,7 +59,7 @@ class U_I18N_API RegexCompile : public UMemory { void compile(const UnicodeString &pat, UParseError &pp, UErrorCode &e); void compile(UText *pat, UParseError &pp, UErrorCode &e); - + virtual ~RegexCompile(); @@ -182,7 +182,7 @@ class U_I18N_API RegexCompile : public UMemory { // string will be cleared. int64_t fPatternLength; // Length of the input pattern string. - + UVector32 fParenStack; // parentheses stack. Each frame consists of // the positions of compiled pattern operations // needing fixup, followed by negative value. The @@ -209,7 +209,7 @@ class U_I18N_API RegexCompile : public UMemory { // initially scanned. Each new interval // encountered overwrites these values. // -1 for the upper interval value means none - // was specified (unlimited occurences.) + // was specified (unlimited occurrences.) int64_t fNameStartPos; // Starting position of a \N{NAME} name in a // pattern, valid while remainder of name is @@ -228,7 +228,7 @@ class U_I18N_API RegexCompile : public UMemory { // in this string while being scanned. }; -// Constant values to be pushed onto fSetOpStack while scanning & evalueating [set expressions] +// Constant values to be pushed onto fSetOpStack while scanning & evaluating [set expressions] // The high 16 bits are the operator precedence, and the low 16 are a code for the operation itself. enum SetOperations { diff --git a/deps/icu-small/source/i18n/regexcst.h b/deps/icu-small/source/i18n/regexcst.h index 526c253e3bcb8d..d44c2aec2be343 100644 --- a/deps/icu-small/source/i18n/regexcst.h +++ b/deps/icu-small/source/i18n/regexcst.h @@ -7,8 +7,8 @@ // It is generated by the Perl script "regexcst.pl" from // the rule parser state definitions file "regexcst.txt". // -// Copyright (C) 2002-2016 International Business Machines Corporation -// and others. All rights reserved. +// Copyright (C) 2002-2016 International Business Machines Corporation +// and others. All rights reserved. // //--------------------------------------------------------------------------------- #ifndef RBBIRPT_H @@ -152,208 +152,208 @@ static const struct RegexTableEl gRuleParseStateTable[] = { {doNOP, 0, 0, 0, TRUE} , {doPatStart, 255, 2,0, FALSE} // 1 start , {doLiteralChar, 254, 14,0, TRUE} // 2 term - , {doLiteralChar, 130, 14,0, TRUE} // 3 - , {doSetBegin, 91 /* [ */, 123, 205, TRUE} // 4 - , {doNOP, 40 /* ( */, 27,0, TRUE} // 5 - , {doDotAny, 46 /* . */, 14,0, TRUE} // 6 - , {doCaret, 94 /* ^ */, 14,0, TRUE} // 7 - , {doDollar, 36 /* $ */, 14,0, TRUE} // 8 - , {doNOP, 92 /* \ */, 89,0, TRUE} // 9 - , {doOrOperator, 124 /* | */, 2,0, TRUE} // 10 - , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 11 - , {doPatFinish, 253, 2,0, FALSE} // 12 - , {doRuleError, 255, 206,0, FALSE} // 13 + , {doLiteralChar, 130, 14,0, TRUE} // 3 + , {doSetBegin, 91 /* [ */, 123, 205, TRUE} // 4 + , {doNOP, 40 /* ( */, 27,0, TRUE} // 5 + , {doDotAny, 46 /* . */, 14,0, TRUE} // 6 + , {doCaret, 94 /* ^ */, 14,0, TRUE} // 7 + , {doDollar, 36 /* $ */, 14,0, TRUE} // 8 + , {doNOP, 92 /* \ */, 89,0, TRUE} // 9 + , {doOrOperator, 124 /* | */, 2,0, TRUE} // 10 + , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 11 + , {doPatFinish, 253, 2,0, FALSE} // 12 + , {doRuleError, 255, 206,0, FALSE} // 13 , {doNOP, 42 /* * */, 68,0, TRUE} // 14 expr-quant - , {doNOP, 43 /* + */, 71,0, TRUE} // 15 - , {doNOP, 63 /* ? */, 74,0, TRUE} // 16 - , {doIntervalInit, 123 /* { */, 77,0, TRUE} // 17 - , {doNOP, 40 /* ( */, 23,0, TRUE} // 18 - , {doNOP, 255, 20,0, FALSE} // 19 + , {doNOP, 43 /* + */, 71,0, TRUE} // 15 + , {doNOP, 63 /* ? */, 74,0, TRUE} // 16 + , {doIntervalInit, 123 /* { */, 77,0, TRUE} // 17 + , {doNOP, 40 /* ( */, 23,0, TRUE} // 18 + , {doNOP, 255, 20,0, FALSE} // 19 , {doOrOperator, 124 /* | */, 2,0, TRUE} // 20 expr-cont - , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 21 - , {doNOP, 255, 2,0, FALSE} // 22 + , {doCloseParen, 41 /* ) */, 255,0, TRUE} // 21 + , {doNOP, 255, 2,0, FALSE} // 22 , {doSuppressComments, 63 /* ? */, 25,0, TRUE} // 23 open-paren-quant - , {doNOP, 255, 27,0, FALSE} // 24 + , {doNOP, 255, 27,0, FALSE} // 24 , {doNOP, 35 /* # */, 50, 14, TRUE} // 25 open-paren-quant2 - , {doNOP, 255, 29,0, FALSE} // 26 + , {doNOP, 255, 29,0, FALSE} // 26 , {doSuppressComments, 63 /* ? */, 29,0, TRUE} // 27 open-paren - , {doOpenCaptureParen, 255, 2, 14, FALSE} // 28 + , {doOpenCaptureParen, 255, 2, 14, FALSE} // 28 , {doOpenNonCaptureParen, 58 /* : */, 2, 14, TRUE} // 29 open-paren-extended - , {doOpenAtomicParen, 62 /* > */, 2, 14, TRUE} // 30 - , {doOpenLookAhead, 61 /* = */, 2, 20, TRUE} // 31 - , {doOpenLookAheadNeg, 33 /* ! */, 2, 20, TRUE} // 32 - , {doNOP, 60 /* < */, 46,0, TRUE} // 33 - , {doNOP, 35 /* # */, 50, 2, TRUE} // 34 - , {doBeginMatchMode, 105 /* i */, 53,0, FALSE} // 35 - , {doBeginMatchMode, 100 /* d */, 53,0, FALSE} // 36 - , {doBeginMatchMode, 109 /* m */, 53,0, FALSE} // 37 - , {doBeginMatchMode, 115 /* s */, 53,0, FALSE} // 38 - , {doBeginMatchMode, 117 /* u */, 53,0, FALSE} // 39 - , {doBeginMatchMode, 119 /* w */, 53,0, FALSE} // 40 - , {doBeginMatchMode, 120 /* x */, 53,0, FALSE} // 41 - , {doBeginMatchMode, 45 /* - */, 53,0, FALSE} // 42 - , {doConditionalExpr, 40 /* ( */, 206,0, TRUE} // 43 - , {doPerlInline, 123 /* { */, 206,0, TRUE} // 44 - , {doBadOpenParenType, 255, 206,0, FALSE} // 45 + , {doOpenAtomicParen, 62 /* > */, 2, 14, TRUE} // 30 + , {doOpenLookAhead, 61 /* = */, 2, 20, TRUE} // 31 + , {doOpenLookAheadNeg, 33 /* ! */, 2, 20, TRUE} // 32 + , {doNOP, 60 /* < */, 46,0, TRUE} // 33 + , {doNOP, 35 /* # */, 50, 2, TRUE} // 34 + , {doBeginMatchMode, 105 /* i */, 53,0, FALSE} // 35 + , {doBeginMatchMode, 100 /* d */, 53,0, FALSE} // 36 + , {doBeginMatchMode, 109 /* m */, 53,0, FALSE} // 37 + , {doBeginMatchMode, 115 /* s */, 53,0, FALSE} // 38 + , {doBeginMatchMode, 117 /* u */, 53,0, FALSE} // 39 + , {doBeginMatchMode, 119 /* w */, 53,0, FALSE} // 40 + , {doBeginMatchMode, 120 /* x */, 53,0, FALSE} // 41 + , {doBeginMatchMode, 45 /* - */, 53,0, FALSE} // 42 + , {doConditionalExpr, 40 /* ( */, 206,0, TRUE} // 43 + , {doPerlInline, 123 /* { */, 206,0, TRUE} // 44 + , {doBadOpenParenType, 255, 206,0, FALSE} // 45 , {doOpenLookBehind, 61 /* = */, 2, 20, TRUE} // 46 open-paren-lookbehind - , {doOpenLookBehindNeg, 33 /* ! */, 2, 20, TRUE} // 47 - , {doBeginNamedCapture, 129, 64,0, FALSE} // 48 - , {doBadOpenParenType, 255, 206,0, FALSE} // 49 + , {doOpenLookBehindNeg, 33 /* ! */, 2, 20, TRUE} // 47 + , {doBeginNamedCapture, 129, 64,0, FALSE} // 48 + , {doBadOpenParenType, 255, 206,0, FALSE} // 49 , {doNOP, 41 /* ) */, 255,0, TRUE} // 50 paren-comment - , {doMismatchedParenErr, 253, 206,0, FALSE} // 51 - , {doNOP, 255, 50,0, TRUE} // 52 + , {doMismatchedParenErr, 253, 206,0, FALSE} // 51 + , {doNOP, 255, 50,0, TRUE} // 52 , {doMatchMode, 105 /* i */, 53,0, TRUE} // 53 paren-flag - , {doMatchMode, 100 /* d */, 53,0, TRUE} // 54 - , {doMatchMode, 109 /* m */, 53,0, TRUE} // 55 - , {doMatchMode, 115 /* s */, 53,0, TRUE} // 56 - , {doMatchMode, 117 /* u */, 53,0, TRUE} // 57 - , {doMatchMode, 119 /* w */, 53,0, TRUE} // 58 - , {doMatchMode, 120 /* x */, 53,0, TRUE} // 59 - , {doMatchMode, 45 /* - */, 53,0, TRUE} // 60 - , {doSetMatchMode, 41 /* ) */, 2,0, TRUE} // 61 - , {doMatchModeParen, 58 /* : */, 2, 14, TRUE} // 62 - , {doBadModeFlag, 255, 206,0, FALSE} // 63 + , {doMatchMode, 100 /* d */, 53,0, TRUE} // 54 + , {doMatchMode, 109 /* m */, 53,0, TRUE} // 55 + , {doMatchMode, 115 /* s */, 53,0, TRUE} // 56 + , {doMatchMode, 117 /* u */, 53,0, TRUE} // 57 + , {doMatchMode, 119 /* w */, 53,0, TRUE} // 58 + , {doMatchMode, 120 /* x */, 53,0, TRUE} // 59 + , {doMatchMode, 45 /* - */, 53,0, TRUE} // 60 + , {doSetMatchMode, 41 /* ) */, 2,0, TRUE} // 61 + , {doMatchModeParen, 58 /* : */, 2, 14, TRUE} // 62 + , {doBadModeFlag, 255, 206,0, FALSE} // 63 , {doContinueNamedCapture, 129, 64,0, TRUE} // 64 named-capture - , {doContinueNamedCapture, 128, 64,0, TRUE} // 65 - , {doOpenCaptureParen, 62 /* > */, 2, 14, TRUE} // 66 - , {doBadNamedCapture, 255, 206,0, FALSE} // 67 + , {doContinueNamedCapture, 128, 64,0, TRUE} // 65 + , {doOpenCaptureParen, 62 /* > */, 2, 14, TRUE} // 66 + , {doBadNamedCapture, 255, 206,0, FALSE} // 67 , {doNGStar, 63 /* ? */, 20,0, TRUE} // 68 quant-star - , {doPossessiveStar, 43 /* + */, 20,0, TRUE} // 69 - , {doStar, 255, 20,0, FALSE} // 70 + , {doPossessiveStar, 43 /* + */, 20,0, TRUE} // 69 + , {doStar, 255, 20,0, FALSE} // 70 , {doNGPlus, 63 /* ? */, 20,0, TRUE} // 71 quant-plus - , {doPossessivePlus, 43 /* + */, 20,0, TRUE} // 72 - , {doPlus, 255, 20,0, FALSE} // 73 + , {doPossessivePlus, 43 /* + */, 20,0, TRUE} // 72 + , {doPlus, 255, 20,0, FALSE} // 73 , {doNGOpt, 63 /* ? */, 20,0, TRUE} // 74 quant-opt - , {doPossessiveOpt, 43 /* + */, 20,0, TRUE} // 75 - , {doOpt, 255, 20,0, FALSE} // 76 + , {doPossessiveOpt, 43 /* + */, 20,0, TRUE} // 75 + , {doOpt, 255, 20,0, FALSE} // 76 , {doNOP, 128, 79,0, FALSE} // 77 interval-open - , {doIntervalError, 255, 206,0, FALSE} // 78 + , {doIntervalError, 255, 206,0, FALSE} // 78 , {doIntevalLowerDigit, 128, 79,0, TRUE} // 79 interval-lower - , {doNOP, 44 /* , */, 83,0, TRUE} // 80 - , {doIntervalSame, 125 /* } */, 86,0, TRUE} // 81 - , {doIntervalError, 255, 206,0, FALSE} // 82 + , {doNOP, 44 /* , */, 83,0, TRUE} // 80 + , {doIntervalSame, 125 /* } */, 86,0, TRUE} // 81 + , {doIntervalError, 255, 206,0, FALSE} // 82 , {doIntervalUpperDigit, 128, 83,0, TRUE} // 83 interval-upper - , {doNOP, 125 /* } */, 86,0, TRUE} // 84 - , {doIntervalError, 255, 206,0, FALSE} // 85 + , {doNOP, 125 /* } */, 86,0, TRUE} // 84 + , {doIntervalError, 255, 206,0, FALSE} // 85 , {doNGInterval, 63 /* ? */, 20,0, TRUE} // 86 interval-type - , {doPossessiveInterval, 43 /* + */, 20,0, TRUE} // 87 - , {doInterval, 255, 20,0, FALSE} // 88 + , {doPossessiveInterval, 43 /* + */, 20,0, TRUE} // 87 + , {doInterval, 255, 20,0, FALSE} // 88 , {doBackslashA, 65 /* A */, 2,0, TRUE} // 89 backslash - , {doBackslashB, 66 /* B */, 2,0, TRUE} // 90 - , {doBackslashb, 98 /* b */, 2,0, TRUE} // 91 - , {doBackslashd, 100 /* d */, 14,0, TRUE} // 92 - , {doBackslashD, 68 /* D */, 14,0, TRUE} // 93 - , {doBackslashG, 71 /* G */, 2,0, TRUE} // 94 - , {doBackslashh, 104 /* h */, 14,0, TRUE} // 95 - , {doBackslashH, 72 /* H */, 14,0, TRUE} // 96 - , {doNOP, 107 /* k */, 115,0, TRUE} // 97 - , {doNamedChar, 78 /* N */, 14,0, FALSE} // 98 - , {doProperty, 112 /* p */, 14,0, FALSE} // 99 - , {doProperty, 80 /* P */, 14,0, FALSE} // 100 - , {doBackslashR, 82 /* R */, 14,0, TRUE} // 101 - , {doEnterQuoteMode, 81 /* Q */, 2,0, TRUE} // 102 - , {doBackslashS, 83 /* S */, 14,0, TRUE} // 103 - , {doBackslashs, 115 /* s */, 14,0, TRUE} // 104 - , {doBackslashv, 118 /* v */, 14,0, TRUE} // 105 - , {doBackslashV, 86 /* V */, 14,0, TRUE} // 106 - , {doBackslashW, 87 /* W */, 14,0, TRUE} // 107 - , {doBackslashw, 119 /* w */, 14,0, TRUE} // 108 - , {doBackslashX, 88 /* X */, 14,0, TRUE} // 109 - , {doBackslashZ, 90 /* Z */, 2,0, TRUE} // 110 - , {doBackslashz, 122 /* z */, 2,0, TRUE} // 111 - , {doBackRef, 128, 14,0, TRUE} // 112 - , {doEscapeError, 253, 206,0, FALSE} // 113 - , {doEscapedLiteralChar, 255, 14,0, TRUE} // 114 + , {doBackslashB, 66 /* B */, 2,0, TRUE} // 90 + , {doBackslashb, 98 /* b */, 2,0, TRUE} // 91 + , {doBackslashd, 100 /* d */, 14,0, TRUE} // 92 + , {doBackslashD, 68 /* D */, 14,0, TRUE} // 93 + , {doBackslashG, 71 /* G */, 2,0, TRUE} // 94 + , {doBackslashh, 104 /* h */, 14,0, TRUE} // 95 + , {doBackslashH, 72 /* H */, 14,0, TRUE} // 96 + , {doNOP, 107 /* k */, 115,0, TRUE} // 97 + , {doNamedChar, 78 /* N */, 14,0, FALSE} // 98 + , {doProperty, 112 /* p */, 14,0, FALSE} // 99 + , {doProperty, 80 /* P */, 14,0, FALSE} // 100 + , {doBackslashR, 82 /* R */, 14,0, TRUE} // 101 + , {doEnterQuoteMode, 81 /* Q */, 2,0, TRUE} // 102 + , {doBackslashS, 83 /* S */, 14,0, TRUE} // 103 + , {doBackslashs, 115 /* s */, 14,0, TRUE} // 104 + , {doBackslashv, 118 /* v */, 14,0, TRUE} // 105 + , {doBackslashV, 86 /* V */, 14,0, TRUE} // 106 + , {doBackslashW, 87 /* W */, 14,0, TRUE} // 107 + , {doBackslashw, 119 /* w */, 14,0, TRUE} // 108 + , {doBackslashX, 88 /* X */, 14,0, TRUE} // 109 + , {doBackslashZ, 90 /* Z */, 2,0, TRUE} // 110 + , {doBackslashz, 122 /* z */, 2,0, TRUE} // 111 + , {doBackRef, 128, 14,0, TRUE} // 112 + , {doEscapeError, 253, 206,0, FALSE} // 113 + , {doEscapedLiteralChar, 255, 14,0, TRUE} // 114 , {doBeginNamedBackRef, 60 /* < */, 117,0, TRUE} // 115 named-backref - , {doBadNamedCapture, 255, 206,0, FALSE} // 116 + , {doBadNamedCapture, 255, 206,0, FALSE} // 116 , {doContinueNamedBackRef, 129, 119,0, TRUE} // 117 named-backref-2 - , {doBadNamedCapture, 255, 206,0, FALSE} // 118 + , {doBadNamedCapture, 255, 206,0, FALSE} // 118 , {doContinueNamedBackRef, 129, 119,0, TRUE} // 119 named-backref-3 - , {doContinueNamedBackRef, 128, 119,0, TRUE} // 120 - , {doCompleteNamedBackRef, 62 /* > */, 14,0, TRUE} // 121 - , {doBadNamedCapture, 255, 206,0, FALSE} // 122 + , {doContinueNamedBackRef, 128, 119,0, TRUE} // 120 + , {doCompleteNamedBackRef, 62 /* > */, 14,0, TRUE} // 121 + , {doBadNamedCapture, 255, 206,0, FALSE} // 122 , {doSetNegate, 94 /* ^ */, 126,0, TRUE} // 123 set-open - , {doSetPosixProp, 58 /* : */, 128,0, FALSE} // 124 - , {doNOP, 255, 126,0, FALSE} // 125 + , {doSetPosixProp, 58 /* : */, 128,0, FALSE} // 124 + , {doNOP, 255, 126,0, FALSE} // 125 , {doSetLiteral, 93 /* ] */, 141,0, TRUE} // 126 set-open2 - , {doNOP, 255, 131,0, FALSE} // 127 + , {doNOP, 255, 131,0, FALSE} // 127 , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 128 set-posix - , {doNOP, 58 /* : */, 131,0, FALSE} // 129 - , {doRuleError, 255, 206,0, FALSE} // 130 + , {doNOP, 58 /* : */, 131,0, FALSE} // 129 + , {doRuleError, 255, 206,0, FALSE} // 130 , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 131 set-start - , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 132 - , {doNOP, 92 /* \ */, 191,0, TRUE} // 133 - , {doNOP, 45 /* - */, 137,0, TRUE} // 134 - , {doNOP, 38 /* & */, 139,0, TRUE} // 135 - , {doSetLiteral, 255, 141,0, TRUE} // 136 + , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 132 + , {doNOP, 92 /* \ */, 191,0, TRUE} // 133 + , {doNOP, 45 /* - */, 137,0, TRUE} // 134 + , {doNOP, 38 /* & */, 139,0, TRUE} // 135 + , {doSetLiteral, 255, 141,0, TRUE} // 136 , {doRuleError, 45 /* - */, 206,0, FALSE} // 137 set-start-dash - , {doSetAddDash, 255, 141,0, FALSE} // 138 + , {doSetAddDash, 255, 141,0, FALSE} // 138 , {doRuleError, 38 /* & */, 206,0, FALSE} // 139 set-start-amp - , {doSetAddAmp, 255, 141,0, FALSE} // 140 + , {doSetAddAmp, 255, 141,0, FALSE} // 140 , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 141 set-after-lit - , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 142 - , {doNOP, 45 /* - */, 178,0, TRUE} // 143 - , {doNOP, 38 /* & */, 169,0, TRUE} // 144 - , {doNOP, 92 /* \ */, 191,0, TRUE} // 145 - , {doSetNoCloseError, 253, 206,0, FALSE} // 146 - , {doSetLiteral, 255, 141,0, TRUE} // 147 + , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 142 + , {doNOP, 45 /* - */, 178,0, TRUE} // 143 + , {doNOP, 38 /* & */, 169,0, TRUE} // 144 + , {doNOP, 92 /* \ */, 191,0, TRUE} // 145 + , {doSetNoCloseError, 253, 206,0, FALSE} // 146 + , {doSetLiteral, 255, 141,0, TRUE} // 147 , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 148 set-after-set - , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 149 - , {doNOP, 45 /* - */, 171,0, TRUE} // 150 - , {doNOP, 38 /* & */, 166,0, TRUE} // 151 - , {doNOP, 92 /* \ */, 191,0, TRUE} // 152 - , {doSetNoCloseError, 253, 206,0, FALSE} // 153 - , {doSetLiteral, 255, 141,0, TRUE} // 154 + , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 149 + , {doNOP, 45 /* - */, 171,0, TRUE} // 150 + , {doNOP, 38 /* & */, 166,0, TRUE} // 151 + , {doNOP, 92 /* \ */, 191,0, TRUE} // 152 + , {doSetNoCloseError, 253, 206,0, FALSE} // 153 + , {doSetLiteral, 255, 141,0, TRUE} // 154 , {doSetEnd, 93 /* ] */, 255,0, TRUE} // 155 set-after-range - , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 156 - , {doNOP, 45 /* - */, 174,0, TRUE} // 157 - , {doNOP, 38 /* & */, 176,0, TRUE} // 158 - , {doNOP, 92 /* \ */, 191,0, TRUE} // 159 - , {doSetNoCloseError, 253, 206,0, FALSE} // 160 - , {doSetLiteral, 255, 141,0, TRUE} // 161 + , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 156 + , {doNOP, 45 /* - */, 174,0, TRUE} // 157 + , {doNOP, 38 /* & */, 176,0, TRUE} // 158 + , {doNOP, 92 /* \ */, 191,0, TRUE} // 159 + , {doSetNoCloseError, 253, 206,0, FALSE} // 160 + , {doSetLiteral, 255, 141,0, TRUE} // 161 , {doSetBeginUnion, 91 /* [ */, 123, 148, TRUE} // 162 set-after-op - , {doSetOpError, 93 /* ] */, 206,0, FALSE} // 163 - , {doNOP, 92 /* \ */, 191,0, TRUE} // 164 - , {doSetLiteral, 255, 141,0, TRUE} // 165 + , {doSetOpError, 93 /* ] */, 206,0, FALSE} // 163 + , {doNOP, 92 /* \ */, 191,0, TRUE} // 164 + , {doSetLiteral, 255, 141,0, TRUE} // 165 , {doSetBeginIntersection1, 91 /* [ */, 123, 148, TRUE} // 166 set-set-amp - , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 167 - , {doSetAddAmp, 255, 141,0, FALSE} // 168 + , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 167 + , {doSetAddAmp, 255, 141,0, FALSE} // 168 , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 169 set-lit-amp - , {doSetAddAmp, 255, 141,0, FALSE} // 170 + , {doSetAddAmp, 255, 141,0, FALSE} // 170 , {doSetBeginDifference1, 91 /* [ */, 123, 148, TRUE} // 171 set-set-dash - , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 172 - , {doSetAddDash, 255, 141,0, FALSE} // 173 + , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 172 + , {doSetAddDash, 255, 141,0, FALSE} // 173 , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 174 set-range-dash - , {doSetAddDash, 255, 141,0, FALSE} // 175 + , {doSetAddDash, 255, 141,0, FALSE} // 175 , {doSetIntersection2, 38 /* & */, 162,0, TRUE} // 176 set-range-amp - , {doSetAddAmp, 255, 141,0, FALSE} // 177 + , {doSetAddAmp, 255, 141,0, FALSE} // 177 , {doSetDifference2, 45 /* - */, 162,0, TRUE} // 178 set-lit-dash - , {doSetAddDash, 91 /* [ */, 141,0, FALSE} // 179 - , {doSetAddDash, 93 /* ] */, 141,0, FALSE} // 180 - , {doNOP, 92 /* \ */, 183,0, TRUE} // 181 - , {doSetRange, 255, 155,0, TRUE} // 182 + , {doSetAddDash, 91 /* [ */, 141,0, FALSE} // 179 + , {doSetAddDash, 93 /* ] */, 141,0, FALSE} // 180 + , {doNOP, 92 /* \ */, 183,0, TRUE} // 181 + , {doSetRange, 255, 155,0, TRUE} // 182 , {doSetOpError, 115 /* s */, 206,0, FALSE} // 183 set-lit-dash-escape - , {doSetOpError, 83 /* S */, 206,0, FALSE} // 184 - , {doSetOpError, 119 /* w */, 206,0, FALSE} // 185 - , {doSetOpError, 87 /* W */, 206,0, FALSE} // 186 - , {doSetOpError, 100 /* d */, 206,0, FALSE} // 187 - , {doSetOpError, 68 /* D */, 206,0, FALSE} // 188 - , {doSetNamedRange, 78 /* N */, 155,0, FALSE} // 189 - , {doSetRange, 255, 155,0, TRUE} // 190 + , {doSetOpError, 83 /* S */, 206,0, FALSE} // 184 + , {doSetOpError, 119 /* w */, 206,0, FALSE} // 185 + , {doSetOpError, 87 /* W */, 206,0, FALSE} // 186 + , {doSetOpError, 100 /* d */, 206,0, FALSE} // 187 + , {doSetOpError, 68 /* D */, 206,0, FALSE} // 188 + , {doSetNamedRange, 78 /* N */, 155,0, FALSE} // 189 + , {doSetRange, 255, 155,0, TRUE} // 190 , {doSetProp, 112 /* p */, 148,0, FALSE} // 191 set-escape - , {doSetProp, 80 /* P */, 148,0, FALSE} // 192 - , {doSetNamedChar, 78 /* N */, 141,0, FALSE} // 193 - , {doSetBackslash_s, 115 /* s */, 155,0, TRUE} // 194 - , {doSetBackslash_S, 83 /* S */, 155,0, TRUE} // 195 - , {doSetBackslash_w, 119 /* w */, 155,0, TRUE} // 196 - , {doSetBackslash_W, 87 /* W */, 155,0, TRUE} // 197 - , {doSetBackslash_d, 100 /* d */, 155,0, TRUE} // 198 - , {doSetBackslash_D, 68 /* D */, 155,0, TRUE} // 199 - , {doSetBackslash_h, 104 /* h */, 155,0, TRUE} // 200 - , {doSetBackslash_H, 72 /* H */, 155,0, TRUE} // 201 - , {doSetBackslash_v, 118 /* v */, 155,0, TRUE} // 202 - , {doSetBackslash_V, 86 /* V */, 155,0, TRUE} // 203 - , {doSetLiteralEscaped, 255, 141,0, TRUE} // 204 + , {doSetProp, 80 /* P */, 148,0, FALSE} // 192 + , {doSetNamedChar, 78 /* N */, 141,0, FALSE} // 193 + , {doSetBackslash_s, 115 /* s */, 155,0, TRUE} // 194 + , {doSetBackslash_S, 83 /* S */, 155,0, TRUE} // 195 + , {doSetBackslash_w, 119 /* w */, 155,0, TRUE} // 196 + , {doSetBackslash_W, 87 /* W */, 155,0, TRUE} // 197 + , {doSetBackslash_d, 100 /* d */, 155,0, TRUE} // 198 + , {doSetBackslash_D, 68 /* D */, 155,0, TRUE} // 199 + , {doSetBackslash_h, 104 /* h */, 155,0, TRUE} // 200 + , {doSetBackslash_H, 72 /* H */, 155,0, TRUE} // 201 + , {doSetBackslash_v, 118 /* v */, 155,0, TRUE} // 202 + , {doSetBackslash_V, 86 /* V */, 155,0, TRUE} // 203 + , {doSetLiteralEscaped, 255, 141,0, TRUE} // 204 , {doSetFinish, 255, 14,0, FALSE} // 205 set-finish , {doExit, 255, 206,0, TRUE} // 206 errorDeath }; diff --git a/deps/icu-small/source/i18n/regexcst.pl b/deps/icu-small/source/i18n/regexcst.pl index 3ae259048aec43..7636757331d921 100755 --- a/deps/icu-small/source/i18n/regexcst.pl +++ b/deps/icu-small/source/i18n/regexcst.pl @@ -8,7 +8,7 @@ # ******************************************************************** # # regexcst.pl -# Compile the regular expression paser state table data into initialized C data. +# Compile the regular expression parser state table data into initialized C data. # Usage: # cd icu4c/source/i18n # perl regexcst.pl < regexcst.txt > regexcst.h @@ -222,7 +222,7 @@ print "U_NAMESPACE_BEGIN\n"; # -# Emit the constants for indicies of Unicode Sets +# Emit the constants for indices of Unicode Sets # Define one constant for each of the character classes encountered. # At the same time, store the index corresponding to the set name back into hash. # @@ -261,7 +261,7 @@ print " rbbiLastAction};\n\n"; # -# Emit the struct definition for transtion table elements. +# Emit the struct definition for transition table elements. # print "//-------------------------------------------------------------------------------\n"; print "//\n"; @@ -330,3 +330,6 @@ print "U_NAMESPACE_END\n"; print "#endif\n"; + + + diff --git a/deps/icu-small/source/i18n/regeximp.cpp b/deps/icu-small/source/i18n/regeximp.cpp index 454e7f836b3111..d55566962587e4 100644 --- a/deps/icu-small/source/i18n/regeximp.cpp +++ b/deps/icu-small/source/i18n/regeximp.cpp @@ -55,7 +55,7 @@ UChar32 CaseFoldingUTextIterator::next() { } return foldedC; } - + UBool CaseFoldingUTextIterator::inExpansion() { return fFoldChars != NULL; @@ -103,7 +103,7 @@ UChar32 CaseFoldingUCharIterator::next() { } return foldedC; } - + UBool CaseFoldingUCharIterator::inExpansion() { return fFoldChars != NULL; @@ -117,3 +117,4 @@ int64_t CaseFoldingUCharIterator::getIndex() { U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/regeximp.h b/deps/icu-small/source/i18n/regeximp.h index 9155cd3a31bbe1..bb0e1e838de651 100644 --- a/deps/icu-small/source/i18n/regeximp.h +++ b/deps/icu-small/source/i18n/regeximp.h @@ -26,7 +26,7 @@ U_NAMESPACE_BEGIN // For debugging, define REGEX_DEBUG // To define with configure, -// CPPFLAGS="-DREGEX_DEBUG" ./runConfigureICU --enable-debug --disable-release Linux +// CPPFLAGS="-DREGEX_DEBUG" ./runConfigureICU --enable-debug --disable-release Linux #ifdef REGEX_DEBUG // @@ -37,7 +37,7 @@ U_NAMESPACE_BEGIN #define REGEX_DUMP_DEBUG #define REGEX_RUN_DEBUG -// End of #defines inteded to be directly set. +// End of #defines intended to be directly set. #include #endif @@ -140,7 +140,7 @@ enum { URX_DOLLAR_M = 42, // $ in multi-line mode. URX_CARET_M = 43, // ^ in multi-line mode. URX_LB_START = 44, // LookBehind Start. - // Paramater is data location + // Parameter is data location URX_LB_CONT = 45, // LookBehind Continue. // Param 0: the data location // Param 1: The minimum length of the look-behind match @@ -243,7 +243,7 @@ enum { "DOLLAR_MD", \ "URX_BACKSLASH_H", \ "URX_BACKSLASH_R", \ - "URX_BACKSLASH_V" + "URX_BACKSLASH_V" // @@ -371,7 +371,7 @@ class CaseFoldingUTextIterator: public UMemory { UBool inExpansion(); // True if last char returned from next() and the // next to be returned both originated from a string - // folding of the same code point from the orignal UText. + // folding of the same code point from the original UText. private: UText &fUText; const UChar *fFoldChars; @@ -395,7 +395,7 @@ class CaseFoldingUCharIterator: public UMemory { UBool inExpansion(); // True if last char returned from next() and the // next to be returned both originated from a string - // folding of the same code point from the orignal UText. + // folding of the same code point from the original UText. int64_t getIndex(); // Return the current input buffer index. @@ -411,3 +411,4 @@ class CaseFoldingUCharIterator: public UMemory { U_NAMESPACE_END #endif + diff --git a/deps/icu-small/source/i18n/regexst.cpp b/deps/icu-small/source/i18n/regexst.cpp index 7e3992fc80339d..97e417ab5a8f34 100644 --- a/deps/icu-small/source/i18n/regexst.cpp +++ b/deps/icu-small/source/i18n/regexst.cpp @@ -84,7 +84,7 @@ RegexStaticSets::RegexStaticSets(UErrorCode *status) { fPropSets[URX_GC_T].applyPattern(UnicodeString(TRUE, gGC_TPattern, -1), *status).freeze(); fPropSets[URX_GC_LV].applyPattern(UnicodeString(TRUE, gGC_LVPattern, -1), *status).freeze(); fPropSets[URX_GC_LVT].applyPattern(UnicodeString(TRUE, gGC_LVTPattern, -1), *status).freeze(); - + // // "Normal" is the set of characters that don't need special handling @@ -121,10 +121,10 @@ RegexStaticSets::RegexStaticSets(UErrorCode *status) { fRuleSets[kRuleSet_digit_char-128].add(u'0', u'9').freeze(); fRuleSets[kRuleSet_ascii_letter-128].add(u'A', u'Z').add(u'a', u'z').freeze(); fRuleDigitsAlias = &fRuleSets[kRuleSet_digit_char-128]; - + // Finally, initialize an empty UText string for utility purposes fEmptyText = utext_openUChars(nullptr, nullptr, 0, status); - + } diff --git a/deps/icu-small/source/i18n/regexst.h b/deps/icu-small/source/i18n/regexst.h index 3de470e5db1b44..bcb393dd3f3c22 100644 --- a/deps/icu-small/source/i18n/regexst.h +++ b/deps/icu-small/source/i18n/regexst.h @@ -37,7 +37,7 @@ class RegexStaticSets : public UMemory { static RegexStaticSets *gStaticSets; // Ptr to all lazily initialized constant // shared sets. - RegexStaticSets(UErrorCode *status); + RegexStaticSets(UErrorCode *status); ~RegexStaticSets(); static void initGlobals(UErrorCode *status); @@ -57,3 +57,4 @@ class RegexStaticSets : public UMemory { U_NAMESPACE_END #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS #endif // REGEXST_H + diff --git a/deps/icu-small/source/i18n/region.cpp b/deps/icu-small/source/i18n/region.cpp index 8364bd1c1b2280..2e013708bb88e3 100644 --- a/deps/icu-small/source/i18n/region.cpp +++ b/deps/icu-small/source/i18n/region.cpp @@ -128,12 +128,12 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { buf[rangeMarkerLocation] = 0; while ( buf[rangeMarkerLocation-1] <= endRange ) { LocalPointer newRegion(new UnicodeString(buf), status); - allRegions->addElement(newRegion.orphan(),status); + allRegions->addElementX(newRegion.orphan(),status); buf[rangeMarkerLocation-1]++; } } else { LocalPointer newRegion(new UnicodeString(regionName), status); - allRegions->addElement(newRegion.orphan(),status); + allRegions->addElementX(newRegion.orphan(),status); } } @@ -147,38 +147,25 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { buf[rangeMarkerLocation] = 0; while ( buf[rangeMarkerLocation-1] <= endRange ) { LocalPointer newRegion(new UnicodeString(buf), status); - allRegions->addElement(newRegion.orphan(),status); + allRegions->addElementX(newRegion.orphan(),status); buf[rangeMarkerLocation-1]++; } } else { LocalPointer newRegion(new UnicodeString(regionName), status); - allRegions->addElement(newRegion.orphan(),status); + allRegions->addElementX(newRegion.orphan(),status); } } while ( ures_hasNext(regionUnknown.getAlias()) ) { LocalPointer regionName (new UnicodeString(ures_getNextUnicodeString(regionUnknown.getAlias(),NULL,&status),status)); - allRegions->addElement(regionName.orphan(),status); + allRegions->addElementX(regionName.orphan(),status); } while ( ures_hasNext(worldContainment.getAlias()) ) { UnicodeString *continentName = new UnicodeString(ures_getNextUnicodeString(worldContainment.getAlias(),NULL,&status)); - continents->addElement(continentName,status); + continents->addElementX(continentName,status); } - UResourceBundle *groupingBundle = nullptr; - while ( ures_hasNext(groupingContainment.getAlias()) ) { - groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status); - if (U_FAILURE(status)) { - break; - } - UnicodeString *groupingName = new UnicodeString(ures_getKey(groupingBundle), -1, US_INV); - if (groupingName) { - groupings->addElement(groupingName,status); - } - } - ures_close(groupingBundle); - for ( int32_t i = 0 ; i < allRegions->size() ; i++ ) { LocalPointer r(new Region(), status); if ( U_FAILURE(status) ) { @@ -203,6 +190,29 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { uhash_put(newRegionIDMap.getAlias(),idStrAlias,(void *)(r.orphan()),&status); // regionIDMap takes ownership } + UResourceBundle *groupingBundle = nullptr; + while ( ures_hasNext(groupingContainment.getAlias()) ) { + groupingBundle = ures_getNextResource(groupingContainment.getAlias(), groupingBundle, &status); + if (U_FAILURE(status)) { + break; + } + UnicodeString *groupingName = new UnicodeString(ures_getKey(groupingBundle), -1, US_INV); + groupings->addElementX(groupingName,status); + Region *grouping = (Region *) uhash_get(newRegionIDMap.getAlias(),groupingName); + if (grouping != NULL) { + for (int32_t i = 0; i < ures_getSize(groupingBundle); i++) { + UnicodeString child = ures_getUnicodeStringByIndex(groupingBundle, i, &status); + if (U_SUCCESS(status)) { + if (grouping->containedRegions == NULL) { + grouping->containedRegions = new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status); + } + grouping->containedRegions->addElementX(new UnicodeString(child), status); + } + } + } + } + ures_close(groupingBundle); + // Process the territory aliases while ( ures_hasNext(territoryAlias.getAlias()) ) { LocalUResourceBundlePointer res(ures_getNextResource(territoryAlias.getAlias(),NULL,&status)); @@ -218,7 +228,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { uhash_put(newRegionAliases.getAlias(),(void *)aliasFromStr.orphan(), (void *)aliasToRegion,&status); } else { if ( aliasFromRegion == NULL ) { // Deprecated region code not in the primary codes list - so need to create a deprecated region for it. - LocalPointer newRgn(new Region, status); + LocalPointer newRgn(new Region, status); if ( U_SUCCESS(status) ) { aliasFromRegion = newRgn.orphan(); } else { @@ -257,7 +267,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { Region *target = (Region *)uhash_get(newRegionIDMap.getAlias(),(void *)¤tRegion); if (target) { LocalPointer preferredValue(new UnicodeString(target->idStr), status); - aliasFromRegion->preferredValues->addElement((void *)preferredValue.orphan(),status); // may add null if err + aliasFromRegion->preferredValues->addElementX((void *)preferredValue.orphan(),status); // may add null if err } currentRegion.remove(); } @@ -354,7 +364,7 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { return; // error out } childStr->fastCopyFrom(childRegion->idStr); - parentRegion->containedRegions->addElement((void *)childStr.orphan(),status); + parentRegion->containedRegions->addElementX((void *)childStr.orphan(),status); // Set the parent region to be the containing region of the child. // Regions of type GROUPING can't be set as the parent, since another region @@ -378,9 +388,9 @@ void U_CALLCONV Region::loadRegionData(UErrorCode &status) { if( U_FAILURE(status) ) { return; // error out } - availableRegions[ar->fType]->addElement((void *)arString.orphan(),status); + availableRegions[ar->fType]->addElementX((void *)arString.orphan(),status); } - + ucln_i18n_registerCleanup(UCLN_I18N_REGION, region_cleanup); // copy hashtables numericCodeMap = newNumericCodeMap.orphan(); @@ -439,7 +449,7 @@ Region::~Region () { * Returns true if the two regions are equal. * Per PMC, just use pointer compare, since we have at most one instance of each Region. */ -UBool +bool Region::operator==(const Region &that) const { return (idStr == that.idStr); } @@ -448,7 +458,7 @@ Region::operator==(const Region &that) const { * Returns true if the two regions are NOT equal; that is, if operator ==() returns false. * Per PMC, just use pointer compare, since we have at most one instance of each Region. */ -UBool +bool Region::operator!=(const Region &that) const { return (idStr != that.idStr); } @@ -617,13 +627,13 @@ Region::getContainedRegions( URegionType type, UErrorCode &status ) const { const char *regionId = cr->next(NULL,status); const Region *r = Region::getInstance(regionId,status); if ( r->getType() == type) { - result->addElement((void *)&r->idStr,status); + result->addElementX((void *)&r->idStr,status); } else { StringEnumeration *children = r->getContainedRegions(type, status); for ( int32_t j = 0 ; j < children->count(status) ; j++ ) { const char *id2 = children->next(NULL,status); const Region *r2 = Region::getInstance(id2,status); - result->addElement((void *)&r2->idStr,status); + result->addElementX((void *)&r2->idStr,status); } delete children; } @@ -703,7 +713,7 @@ RegionNameEnumeration::RegionNameEnumeration(UVector *fNameList, UErrorCode& sta for ( int32_t i = 0 ; i < fNameList->size() ; i++ ) { UnicodeString* this_region_name = (UnicodeString *)fNameList->elementAt(i); UnicodeString* new_region_name = new UnicodeString(*this_region_name); - fRegionNames->addElement((void *)new_region_name,status); + fRegionNames->addElementX((void *)new_region_name,status); } } else { diff --git a/deps/icu-small/source/i18n/region_impl.h b/deps/icu-small/source/i18n/region_impl.h index c0702af7dfb3d1..62acaa4511b49f 100644 --- a/deps/icu-small/source/i18n/region_impl.h +++ b/deps/icu-small/source/i18n/region_impl.h @@ -17,7 +17,7 @@ #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING - + #include "uvector.h" #include "unicode/strenum.h" @@ -29,10 +29,10 @@ class RegionNameEnumeration : public StringEnumeration { RegionNameEnumeration(UVector *fNameList, UErrorCode& status); virtual ~RegionNameEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: int32_t pos; UVector *fRegionNames; diff --git a/deps/icu-small/source/i18n/reldatefmt.cpp b/deps/icu-small/source/i18n/reldatefmt.cpp index d41ff22b9c212a..6ef516079862e8 100644 --- a/deps/icu-small/source/i18n/reldatefmt.cpp +++ b/deps/icu-small/source/i18n/reldatefmt.cpp @@ -588,7 +588,7 @@ struct RelDateTimeFmtDataSink : public ResourceSink { } virtual void put(const char *key, ResourceValue &value, - UBool /*noFallback*/, UErrorCode &errorCode) { + UBool /*noFallback*/, UErrorCode &errorCode) override { // Main entry point to sink ResourceTable table = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } @@ -1126,7 +1126,7 @@ void RelativeDateTimeFormatter::formatRelativeImpl( // leaves some holes (even for data that is currently available, such as quarter). // When the new CLDR data is available, update the data storage accordingly, // rewrite this to use it directly, and rewrite the old format method to call this - // new one; that is covered by http://bugs.icu-project.org/trac/ticket/12171. + // new one; that is covered by https://unicode-org.atlassian.net/browse/ICU-12171. UDateDirection direction = UDAT_DIRECTION_COUNT; if (offset > -2.1 && offset < 2.1) { // Allow a 1% epsilon, so offsets in -1.01..-0.99 map to LAST @@ -1139,7 +1139,7 @@ void RelativeDateTimeFormatter::formatRelativeImpl( case 100/* 1*/: direction = UDAT_DIRECTION_NEXT; break; case 200/* 2*/: direction = UDAT_DIRECTION_NEXT_2; break; default: break; - } + } } UDateAbsoluteUnit absunit = UDAT_ABSOLUTE_UNIT_COUNT; switch (unit) { diff --git a/deps/icu-small/source/i18n/reldtfmt.cpp b/deps/icu-small/source/i18n/reldtfmt.cpp index 2bc59c5128b43a..5fdef1c0d676d4 100644 --- a/deps/icu-small/source/i18n/reldtfmt.cpp +++ b/deps/icu-small/source/i18n/reldtfmt.cpp @@ -135,7 +135,7 @@ RelativeDateFormat* RelativeDateFormat::clone() const { return new RelativeDateFormat(*this); } -UBool RelativeDateFormat::operator==(const Format& other) const { +bool RelativeDateFormat::operator==(const Format& other) const { if(DateFormat::operator==(other)) { // The DateFormat::operator== check for fCapitalizationContext equality above // is sufficient to check equality of all derived context-related data. @@ -146,7 +146,7 @@ UBool RelativeDateFormat::operator==(const Format& other) const { fTimePattern==that->fTimePattern && fLocale==that->fLocale ); } - return FALSE; + return false; } static const UChar APOSTROPHE = (UChar)0x0027; @@ -154,11 +154,11 @@ static const UChar APOSTROPHE = (UChar)0x0027; UnicodeString& RelativeDateFormat::format( Calendar& cal, UnicodeString& appendTo, FieldPosition& pos) const { - + UErrorCode status = U_ZERO_ERROR; UnicodeString relativeDayString; UDisplayContext capitalizationContext = getContext(UDISPCTX_TYPE_CAPITALIZATION, status); - + // calculate the difference, in days, between 'cal' and now. int dayDiff = dayDifference(cal, status); @@ -170,7 +170,7 @@ UnicodeString& RelativeDateFormat::format( Calendar& cal, relativeDayString.setTo(theString, len); } - if ( relativeDayString.length() > 0 && !fDatePattern.isEmpty() && + if ( relativeDayString.length() > 0 && !fDatePattern.isEmpty() && (fTimePattern.isEmpty() || fCombinedFormat == NULL || fCombinedHasDateAtStart)) { #if !UCONFIG_NO_BREAK_ITERATION // capitalize relativeDayString according to context for relative, set formatter no context @@ -221,8 +221,8 @@ UnicodeString& RelativeDateFormat::format( Calendar& cal, UnicodeString& -RelativeDateFormat::format(const Formattable& obj, - UnicodeString& appendTo, +RelativeDateFormat::format(const Formattable& obj, + UnicodeString& appendTo, FieldPosition& pos, UErrorCode& status) const { @@ -258,7 +258,7 @@ void RelativeDateFormat::parse( const UnicodeString& text, cal.setTime(Calendar::getNow(),status); cal.add(UCAL_DATE,fDates[n].offset, status); - if(U_FAILURE(status)) { + if(U_FAILURE(status)) { // failure in setting calendar field, set offset to beginning of rel day string pos.setErrorIndex(startIndex); } else { @@ -289,7 +289,7 @@ void RelativeDateFormat::parse( const UnicodeString& text, // Set the calendar to now+offset tempCal->setTime(Calendar::getNow(),status); tempCal->add(UCAL_DATE,fDates[n].offset, status); - if(U_FAILURE(status)) { + if(U_FAILURE(status)) { pos.setErrorIndex(startIndex); delete tempCal; return; @@ -485,7 +485,7 @@ struct RelDateFmtDataSink : public ResourceSink { virtual ~RelDateFmtDataSink(); virtual void put(const char *key, ResourceValue &value, - UBool /*noFallback*/, UErrorCode &errorCode) { + UBool /*noFallback*/, UErrorCode &errorCode) override { ResourceTable relDayTable = value.getTable(errorCode); int32_t n = 0; int32_t len = 0; @@ -582,7 +582,7 @@ int32_t RelativeDateFormat::dayDifference(Calendar &cal, UErrorCode &status) { nowCal->setTime(Calendar::getNow(), status); // For the day difference, we are interested in the difference in the (modified) julian day number - // which is midnight to midnight. Using fieldDifference() is NOT correct here, because + // which is midnight to midnight. Using fieldDifference() is NOT correct here, because // 6pm Jan 4th to 10am Jan 5th should be considered "tomorrow". int32_t dayDiff = cal.get(UCAL_JULIAN_DAY, status) - nowCal->get(UCAL_JULIAN_DAY, status); diff --git a/deps/icu-small/source/i18n/reldtfmt.h b/deps/icu-small/source/i18n/reldtfmt.h index b36171ce1c6b55..98b333a02be205 100644 --- a/deps/icu-small/source/i18n/reldtfmt.h +++ b/deps/icu-small/source/i18n/reldtfmt.h @@ -71,7 +71,7 @@ class RelativeDateFormat : public DateFormat { * @return A copy of the object. * @internal ICU 3.8 */ - virtual RelativeDateFormat* clone() const; + virtual RelativeDateFormat* clone() const override; /** * Return true if the given Format objects are semantically equal. Objects @@ -80,7 +80,7 @@ class RelativeDateFormat : public DateFormat { * @return true if the given Format objects are semantically equal. * @internal ICU 3.8 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; using DateFormat::format; @@ -103,7 +103,7 @@ class RelativeDateFormat : public DateFormat { */ virtual UnicodeString& format( Calendar& cal, UnicodeString& appendTo, - FieldPosition& pos) const; + FieldPosition& pos) const override; /** * Format an object to produce a string. This method handles Formattable @@ -122,7 +122,7 @@ class RelativeDateFormat : public DateFormat { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; /** @@ -146,7 +146,7 @@ class RelativeDateFormat : public DateFormat { */ virtual void parse( const UnicodeString& text, Calendar& cal, - ParsePosition& pos) const; + ParsePosition& pos) const override; /** * Parse a date/time string starting at the given parse position. For @@ -187,7 +187,7 @@ class RelativeDateFormat : public DateFormat { * @internal ICU 3.8 */ virtual UDate parse( const UnicodeString& text, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Return a single pattern string generated by combining the patterns for the @@ -242,10 +242,10 @@ class RelativeDateFormat : public DateFormat { * @param value The UDisplayContext value to set. * @param status Input/output status. If at entry this indicates a failure * status, the function will do nothing; otherwise this will be - * updated with any new status from the function. + * updated with any new status from the function. * @internal ICU 53 */ - virtual void setContext(UDisplayContext value, UErrorCode& status); + virtual void setContext(UDisplayContext value, UErrorCode& status) override; private: SimpleDateFormat *fDateTimeFormatter; @@ -327,7 +327,7 @@ class RelativeDateFormat : public DateFormat { * other classes have different class IDs. * @internal ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; diff --git a/deps/icu-small/source/i18n/rematch.cpp b/deps/icu-small/source/i18n/rematch.cpp index e358dbd1e983f8..7d6eaeed8bb22e 100644 --- a/deps/icu-small/source/i18n/rematch.cpp +++ b/deps/icu-small/source/i18n/rematch.cpp @@ -719,7 +719,7 @@ UBool RegexMatcher::find(UErrorCode &status) { if (findProgressInterrupt(startPos, status)) return FALSE; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_START: // Matches are only possible at the start of the input string @@ -767,7 +767,7 @@ UBool RegexMatcher::find(UErrorCode &status) { return FALSE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_STRING: case START_CHAR: @@ -799,7 +799,7 @@ UBool RegexMatcher::find(UErrorCode &status) { return FALSE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_LINE: { @@ -879,10 +879,15 @@ UBool RegexMatcher::find(UErrorCode &status) { } default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_ASSERT; + // Unknown value in fPattern->fStartType, should be from StartOfMatch enum. But + // we have reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. + // See ICU-21669. + status = U_INTERNAL_PROGRAM_ERROR; + return FALSE; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } @@ -993,7 +998,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { if (findProgressInterrupt(startPos, status)) return FALSE; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_START: // Matches are only possible at the start of the input string @@ -1035,7 +1040,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { return FALSE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_STRING: case START_CHAR: @@ -1064,7 +1069,7 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { return FALSE; } } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; case START_LINE: { @@ -1135,10 +1140,15 @@ UBool RegexMatcher::findUsingChunk(UErrorCode &status) { } default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_ASSERT; + // Unknown value in fPattern->fStartType, should be from StartOfMatch enum. But + // we have reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. + // See ICU-21669. + status = U_INTERNAL_PROGRAM_ERROR; + return FALSE; } - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } @@ -2005,7 +2015,7 @@ static UText *utext_extract_replace(UText *src, UText *dest, int64_t start, int6 return dest; } - // Caller did not provide a prexisting UText. + // Caller did not provide a preexisting UText. // Open a new one, and have it adopt the text buffer storage. if (U_FAILURE(*status)) { return NULL; @@ -3717,7 +3727,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { } if (success && inputItr.inExpansion()) { - // We otained a match by consuming part of a string obtained from + // We obtained a match by consuming part of a string obtained from // case-folding a single code point of the input text. // This does not count as an overall match. success = FALSE; @@ -3962,7 +3972,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { break; } - // Look-behind match is good. Restore the orignal input string region, + // Look-behind match is good. Restore the original input string region, // which had been truncated to pin the end of the lookbehind match to the // position being looked-behind. fActiveStart = fData[opValue+2]; @@ -4051,7 +4061,7 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { // Look-behind expression matched, which means look-behind test as // a whole Fails - // Restore the orignal input string length, which had been truncated + // Restore the original input string length, which had been truncated // inorder to pin the end of the lookbehind match // to the position being looked-behind. fActiveStart = fData[opValue+2]; @@ -4234,7 +4244,11 @@ void RegexMatcher::MatchAt(int64_t startIdx, UBool toEnd, UErrorCode &status) { default: // Trouble. The compiled pattern contains an entry with an // unrecognized type tag. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_ASSERT; + // Unknown opcode type in opType = URX_TYPE(pat[fp->fPatIdx]). But we have + // reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. + // See ICU-21669. + status = U_INTERNAL_PROGRAM_ERROR; } if (U_FAILURE(status)) { @@ -5187,7 +5201,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu } if (success && inputItr.inExpansion()) { - // We otained a match by consuming part of a string obtained from + // We obtained a match by consuming part of a string obtained from // case-folding a single code point of the input text. // This does not count as an overall match. success = FALSE; @@ -5409,7 +5423,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu break; } - // Look-behind match is good. Restore the orignal input string region, + // Look-behind match is good. Restore the original input string region, // which had been truncated to pin the end of the lookbehind match to the // position being looked-behind. fActiveStart = fData[opValue+2]; @@ -5489,7 +5503,7 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu // Look-behind expression matched, which means look-behind test as // a whole Fails - // Restore the orignal input string length, which had been truncated + // Restore the original input string length, which had been truncated // inorder to pin the end of the lookbehind match // to the position being looked-behind. fActiveStart = fData[opValue+2]; @@ -5672,7 +5686,11 @@ void RegexMatcher::MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &statu default: // Trouble. The compiled pattern contains an entry with an // unrecognized type tag. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_ASSERT; + // Unknown opcode type in opType = URX_TYPE(pat[fp->fPatIdx]). But we have + // reports of this in production code, don't use UPRV_UNREACHABLE_EXIT. + // See ICU-21669. + status = U_INTERNAL_PROGRAM_ERROR; } if (U_FAILURE(status)) { @@ -5712,3 +5730,4 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RegexMatcher) U_NAMESPACE_END #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS + diff --git a/deps/icu-small/source/i18n/remtrans.h b/deps/icu-small/source/i18n/remtrans.h index 13de01594a3fd9..398cc5177cd57c 100644 --- a/deps/icu-small/source/i18n/remtrans.h +++ b/deps/icu-small/source/i18n/remtrans.h @@ -47,7 +47,7 @@ class RemoveTransliterator : public Transliterator { * Transliterator API. * @return A copy of the object. */ - virtual RemoveTransliterator* clone() const; + virtual RemoveTransliterator* clone() const override; /** * Implements {@link Transliterator#handleTransliterate}. @@ -59,12 +59,12 @@ class RemoveTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/repattrn.cpp b/deps/icu-small/source/i18n/repattrn.cpp index 34886624891f49..8c94948d29a43c 100644 --- a/deps/icu-small/source/i18n/repattrn.cpp +++ b/deps/icu-small/source/i18n/repattrn.cpp @@ -118,8 +118,8 @@ RegexPattern &RegexPattern::operator = (const RegexPattern &other) { int32_t numSets = other.fSets->size(); fSets8 = new Regex8BitSet[numSets]; if (fSets8 == NULL) { - fDeferredStatus = U_MEMORY_ALLOCATION_ERROR; - return *this; + fDeferredStatus = U_MEMORY_ALLOCATION_ERROR; + return *this; } for (i=1; ifFlags == other.fFlags && this->fDeferredStatus == other.fDeferredStatus) { if (this->fPatternString != NULL && other.fPatternString != NULL) { return *(this->fPatternString) == *(other.fPatternString); } else if (this->fPattern == NULL) { if (other.fPattern == NULL) { - return TRUE; + return true; } } else if (other.fPattern != NULL) { UTEXT_SETNATIVEINDEX(this->fPattern, 0); @@ -305,7 +305,7 @@ UBool RegexPattern::operator ==(const RegexPattern &other) const { return utext_equals(this->fPattern, other.fPattern); } } - return FALSE; + return false; } //--------------------------------------------------------------------- @@ -663,7 +663,7 @@ int32_t RegexPattern::split(const UnicodeString &input, int32_t r = 0; // Check m's status to make sure all is ok. if (U_SUCCESS(m.fDeferredStatus)) { - r = m.split(input, dest, destCapacity, status); + r = m.split(input, dest, destCapacity, status); } return r; } @@ -684,7 +684,7 @@ int32_t RegexPattern::split(UText *input, int32_t r = 0; // Check m's status to make sure all is ok. if (U_SUCCESS(m.fDeferredStatus)) { - r = m.split(input, dest, destCapacity, status); + r = m.split(input, dest, destCapacity, status); } return r; } diff --git a/deps/icu-small/source/i18n/rulebasedcollator.cpp b/deps/icu-small/source/i18n/rulebasedcollator.cpp index 917482d65bb4d6..5e5cc3db626433 100644 --- a/deps/icu-small/source/i18n/rulebasedcollator.cpp +++ b/deps/icu-small/source/i18n/rulebasedcollator.cpp @@ -66,8 +66,8 @@ class FixedSortKeyByteSink : public SortKeyByteSink { virtual ~FixedSortKeyByteSink(); private: - virtual void AppendBeyondCapacity(const char *bytes, int32_t n, int32_t length); - virtual UBool Resize(int32_t appendCapacity, int32_t length); + virtual void AppendBeyondCapacity(const char *bytes, int32_t n, int32_t length) override; + virtual UBool Resize(int32_t appendCapacity, int32_t length) override; }; FixedSortKeyByteSink::~FixedSortKeyByteSink() {} @@ -98,8 +98,8 @@ class CollationKeyByteSink : public SortKeyByteSink { virtual ~CollationKeyByteSink(); private: - virtual void AppendBeyondCapacity(const char *bytes, int32_t n, int32_t length); - virtual UBool Resize(int32_t appendCapacity, int32_t length); + virtual void AppendBeyondCapacity(const char *bytes, int32_t n, int32_t length) override; + virtual UBool Resize(int32_t appendCapacity, int32_t length) override; CollationKey &key_; }; @@ -239,21 +239,21 @@ RuleBasedCollator &RuleBasedCollator::operator=(const RuleBasedCollator &other) UOBJECT_DEFINE_RTTI_IMPLEMENTATION(RuleBasedCollator) -UBool +bool RuleBasedCollator::operator==(const Collator& other) const { - if(this == &other) { return TRUE; } - if(!Collator::operator==(other)) { return FALSE; } + if(this == &other) { return true; } + if(!Collator::operator==(other)) { return false; } const RuleBasedCollator &o = static_cast(other); - if(*settings != *o.settings) { return FALSE; } - if(data == o.data) { return TRUE; } + if(*settings != *o.settings) { return false; } + if(data == o.data) { return true; } UBool thisIsRoot = data->base == NULL; UBool otherIsRoot = o.data->base == NULL; U_ASSERT(!thisIsRoot || !otherIsRoot); // otherwise their data pointers should be == - if(thisIsRoot != otherIsRoot) { return FALSE; } + if(thisIsRoot != otherIsRoot) { return false; } if((thisIsRoot || !tailoring->rules.isEmpty()) && (otherIsRoot || !o.tailoring->rules.isEmpty())) { // Shortcut: If both collators have valid rule strings, then compare those. - if(tailoring->rules == o.tailoring->rules) { return TRUE; } + if(tailoring->rules == o.tailoring->rules) { return true; } } // Different rule strings can result in the same or equivalent tailoring. // The rule strings are optional in ICU resource bundles, although included by default. @@ -261,14 +261,14 @@ RuleBasedCollator::operator==(const Collator& other) const { UErrorCode errorCode = U_ZERO_ERROR; LocalPointer thisTailored(getTailoredSet(errorCode)); LocalPointer otherTailored(o.getTailoredSet(errorCode)); - if(U_FAILURE(errorCode)) { return FALSE; } - if(*thisTailored != *otherTailored) { return FALSE; } + if(U_FAILURE(errorCode)) { return false; } + if(*thisTailored != *otherTailored) { return false; } // For completeness, we should compare all of the mappings; // or we should create a list of strings, sort it with one collator, // and check if both collators compare adjacent strings the same // (order & strength, down to quaternary); or similar. // Testing equality of collators seems unusual. - return TRUE; + return true; } int32_t @@ -830,7 +830,7 @@ class UTF16NFDIterator : public NFDIterator { public: UTF16NFDIterator(const UChar *text, const UChar *textLimit) : s(text), limit(textLimit) {} protected: - virtual UChar32 nextRawCodePoint() { + virtual UChar32 nextRawCodePoint() override { if(s == limit) { return U_SENTINEL; } UChar32 c = *s++; if(limit == NULL && c == 0) { @@ -882,7 +882,7 @@ class UTF8NFDIterator : public NFDIterator { UTF8NFDIterator(const uint8_t *text, int32_t textLength) : s(text), pos(0), length(textLength) {} protected: - virtual UChar32 nextRawCodePoint() { + virtual UChar32 nextRawCodePoint() override { if(pos == length || (s[pos] == 0 && length < 0)) { return U_SENTINEL; } UChar32 c; U8_NEXT_OR_FFFD(s, pos, length, c); @@ -899,7 +899,7 @@ class FCDUTF8NFDIterator : public NFDIterator { FCDUTF8NFDIterator(const CollationData *data, const uint8_t *text, int32_t textLength) : u8ci(data, FALSE, text, 0, textLength) {} protected: - virtual UChar32 nextRawCodePoint() { + virtual UChar32 nextRawCodePoint() override { UErrorCode errorCode = U_ZERO_ERROR; return u8ci.nextCodePoint(errorCode); } @@ -911,7 +911,7 @@ class UIterNFDIterator : public NFDIterator { public: UIterNFDIterator(UCharIterator &it) : iter(it) {} protected: - virtual UChar32 nextRawCodePoint() { + virtual UChar32 nextRawCodePoint() override { return uiter_next32(&iter); } private: @@ -923,7 +923,7 @@ class FCDUIterNFDIterator : public NFDIterator { FCDUIterNFDIterator(const CollationData *data, UCharIterator &it, int32_t startIndex) : uici(data, FALSE, it, startIndex) {} protected: - virtual UChar32 nextRawCodePoint() { + virtual UChar32 nextRawCodePoint() override { UErrorCode errorCode = U_ZERO_ERROR; return uici.nextCodePoint(errorCode); } @@ -1398,7 +1398,7 @@ class PartLevelCallback : public CollationKeys::LevelCallback { levelCapacity = sink.GetRemainingCapacity(); } virtual ~PartLevelCallback() {} - virtual UBool needToWrite(Collation::Level l) { + virtual UBool needToWrite(Collation::Level l) override { if(!sink.Overflowed()) { // Remember a level that will be at least partially written. level = l; diff --git a/deps/icu-small/source/i18n/scriptset.cpp b/deps/icu-small/source/i18n/scriptset.cpp index 18a3b263b71027..6a1db8c01c3562 100644 --- a/deps/icu-small/source/i18n/scriptset.cpp +++ b/deps/icu-small/source/i18n/scriptset.cpp @@ -44,13 +44,13 @@ ScriptSet & ScriptSet::operator =(const ScriptSet &other) { return *this; } -UBool ScriptSet::operator == (const ScriptSet &other) const { +bool ScriptSet::operator == (const ScriptSet &other) const { for (uint32_t i=0; ibreakIter = other.m_search_->breakIter; m_search_->isCanonicalMatch = other.m_search_->isCanonicalMatch; m_search_->isOverlap = other.m_search_->isOverlap; @@ -83,7 +83,7 @@ USearchAttributeValue SearchIterator::getAttribute( case USEARCH_OVERLAP : return (m_search_->isOverlap == TRUE ? USEARCH_ON : USEARCH_OFF); case USEARCH_CANONICAL_MATCH : - return (m_search_->isCanonicalMatch == TRUE ? USEARCH_ON : + return (m_search_->isCanonicalMatch == TRUE ? USEARCH_ON : USEARCH_OFF); case USEARCH_ELEMENT_COMPARISON : { @@ -98,7 +98,7 @@ USearchAttributeValue SearchIterator::getAttribute( return USEARCH_DEFAULT; } } - + int32_t SearchIterator::getMatchedStart() const { return m_search_->matchedIndex; @@ -108,20 +108,20 @@ int32_t SearchIterator::getMatchedLength() const { return m_search_->matchedLength; } - + void SearchIterator::getMatchedText(UnicodeString &result) const { int32_t matchedindex = m_search_->matchedIndex; int32_t matchedlength = m_search_->matchedLength; if (matchedindex != USEARCH_DONE && matchedlength != 0) { - result.setTo(m_search_->text + matchedindex, matchedlength); + result.setTo(m_search_->text + matchedindex, matchedlength); } else { result.remove(); } } - -void SearchIterator::setBreakIterator(BreakIterator *breakiter, + +void SearchIterator::setBreakIterator(BreakIterator *breakiter, UErrorCode &status) { if (U_SUCCESS(status)) { @@ -139,11 +139,11 @@ void SearchIterator::setBreakIterator(BreakIterator *breakiter, // any subclass of BreakIterator should work fine here... m_search_->breakIter = (UBreakIterator *) breakiter; #endif - + m_breakiterator_ = breakiter; } } - + const BreakIterator * SearchIterator::getBreakIterator(void) const { return m_breakiterator_; @@ -170,7 +170,7 @@ void SearchIterator::setText(CharacterIterator &text, UErrorCode &status) setText(m_text_, status); } } - + const UnicodeString & SearchIterator::getText(void) const { return m_text_; @@ -178,10 +178,10 @@ const UnicodeString & SearchIterator::getText(void) const // operator overloading ---------------------------------------------- -UBool SearchIterator::operator==(const SearchIterator &that) const +bool SearchIterator::operator==(const SearchIterator &that) const { if (this == &that) { - return TRUE; + return true; } return (m_breakiterator_ == that.m_breakiterator_ && m_search_->isCanonicalMatch == that.m_search_->isCanonicalMatch && @@ -191,7 +191,7 @@ UBool SearchIterator::operator==(const SearchIterator &that) const m_search_->matchedLength == that.m_search_->matchedLength && m_search_->textLength == that.m_search_->textLength && getOffset() == that.getOffset() && - (uprv_memcmp(m_search_->text, that.m_search_->text, + (uprv_memcmp(m_search_->text, that.m_search_->text, m_search_->textLength * sizeof(UChar)) == 0)); } @@ -206,7 +206,7 @@ int32_t SearchIterator::first(UErrorCode &status) return handleNext(0, status); } -int32_t SearchIterator::following(int32_t position, +int32_t SearchIterator::following(int32_t position, UErrorCode &status) { if (U_FAILURE(status)) { @@ -215,7 +215,7 @@ int32_t SearchIterator::following(int32_t position, setOffset(position, status); return handleNext(position, status); } - + int32_t SearchIterator::last(UErrorCode &status) { if (U_FAILURE(status)) { @@ -225,7 +225,7 @@ int32_t SearchIterator::last(UErrorCode &status) return handlePrev(m_search_->textLength, status); } -int32_t SearchIterator::preceding(int32_t position, +int32_t SearchIterator::preceding(int32_t position, UErrorCode &status) { if (U_FAILURE(status)) { @@ -244,19 +244,19 @@ int32_t SearchIterator::next(UErrorCode &status) m_search_->reset = FALSE; if (m_search_->isForwardSearching == TRUE) { int32_t textlength = m_search_->textLength; - if (offset == textlength || matchindex == textlength || - (matchindex != USEARCH_DONE && + if (offset == textlength || matchindex == textlength || + (matchindex != USEARCH_DONE && matchindex + matchlength >= textlength)) { // not enough characters to match setMatchNotFound(); - return USEARCH_DONE; + return USEARCH_DONE; } } else { - // switching direction. - // if matchedIndex == USEARCH_DONE, it means that either a + // switching direction. + // if matchedIndex == USEARCH_DONE, it means that either a // setOffset has been called or that previous ran off the text - // string. the iterator would have been set to offset 0 if a + // string. the iterator would have been set to offset 0 if a // match is not found. m_search_->isForwardSearching = TRUE; if (m_search_->matchedIndex != USEARCH_DONE) { @@ -293,13 +293,13 @@ int32_t SearchIterator::previous(UErrorCode &status) else { offset = getOffset(); } - + int32_t matchindex = m_search_->matchedIndex; if (m_search_->isForwardSearching == TRUE) { - // switching direction. - // if matchedIndex == USEARCH_DONE, it means that either a + // switching direction. + // if matchedIndex == USEARCH_DONE, it means that either a // setOffset has been called or that next ran off the text - // string. the iterator would have been set to offset textLength if + // string. the iterator would have been set to offset textLength if // a match is not found. m_search_->isForwardSearching = FALSE; if (matchindex != USEARCH_DONE) { @@ -310,7 +310,7 @@ int32_t SearchIterator::previous(UErrorCode &status) if (offset == 0 || matchindex == 0) { // not enough characters to match setMatchNotFound(); - return USEARCH_DONE; + return USEARCH_DONE; } } @@ -319,7 +319,7 @@ int32_t SearchIterator::previous(UErrorCode &status) matchindex += m_search_->matchedLength - 2; } - return handlePrev(matchindex, status); + return handlePrev(matchindex, status); } return handlePrev(offset, status); @@ -358,7 +358,7 @@ SearchIterator::SearchIterator() m_breakiterator_ = NULL; } -SearchIterator::SearchIterator(const UnicodeString &text, +SearchIterator::SearchIterator(const UnicodeString &text, BreakIterator *breakiter) : m_breakiterator_(breakiter), m_text_(text) @@ -376,7 +376,7 @@ SearchIterator::SearchIterator(const UnicodeString &text, m_search_->textLength = text.length(); } -SearchIterator::SearchIterator(CharacterIterator &text, +SearchIterator::SearchIterator(CharacterIterator &text, BreakIterator *breakiter) : m_breakiterator_(breakiter) { @@ -424,12 +424,12 @@ void SearchIterator::setMatchStart(int32_t position) m_search_->matchedIndex = position; } -void SearchIterator::setMatchNotFound() +void SearchIterator::setMatchNotFound() { setMatchStart(USEARCH_DONE); setMatchLength(0); UErrorCode status = U_ZERO_ERROR; - // by default no errors should be returned here since offsets are within + // by default no errors should be returned here since offsets are within // range. if (m_search_->isForwardSearching) { setOffset(m_search_->textLength, status); diff --git a/deps/icu-small/source/i18n/selfmt.cpp b/deps/icu-small/source/i18n/selfmt.cpp index 47e53d75dec36f..bb18e84ef65736 100644 --- a/deps/icu-small/source/i18n/selfmt.cpp +++ b/deps/icu-small/source/i18n/selfmt.cpp @@ -164,19 +164,19 @@ SelectFormat::operator=(const SelectFormat& other) { return *this; } -UBool +bool SelectFormat::operator==(const Format& other) const { if (this == &other) { - return TRUE; + return true; } if (!Format::operator==(other)) { - return FALSE; + return false; } const SelectFormat& o = (const SelectFormat&)other; return msgPattern == o.msgPattern; } -UBool +bool SelectFormat::operator!=(const Format& other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/selfmtimpl.h b/deps/icu-small/source/i18n/selfmtimpl.h index 74d6dc218135e7..a36d1a5c347fb4 100644 --- a/deps/icu-small/source/i18n/selfmtimpl.h +++ b/deps/icu-small/source/i18n/selfmtimpl.h @@ -1,10 +1,10 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** - * COPYRIGHT: + * COPYRIGHT: * Copyright (c) 1997-2011, International Business Machines Corporation and * others. All Rights Reserved. - * Copyright (C) 2010 , Yahoo! Inc. + * Copyright (C) 2010 , Yahoo! Inc. ******************************************************************** * File selectfmtimpl.h * diff --git a/deps/icu-small/source/i18n/simpletz.cpp b/deps/icu-small/source/i18n/simpletz.cpp index 0007d4aec8977e..d9b0cd8e1e629d 100644 --- a/deps/icu-small/source/i18n/simpletz.cpp +++ b/deps/icu-small/source/i18n/simpletz.cpp @@ -231,7 +231,7 @@ SimpleTimeZone::operator=(const SimpleTimeZone &right) // ------------------------------------- -UBool +bool SimpleTimeZone::operator==(const TimeZone& that) const { return ((this == &that) || @@ -289,7 +289,7 @@ SimpleTimeZone::setStartYear(int32_t year) * month, regardless of what day of the week it is (e.g., (-2, 0) is the * next-to-last day of the month). *

  23. If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the - * first specified day of the week on or after the specfied day of the month. + * first specified day of the week on or after the specified day of the month. * (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month * [or the 15th itself if the 15th is a Sunday].) *
  24. If dayOfWeek and DayOfWeekInMonth are both negative, they specify the @@ -305,7 +305,7 @@ SimpleTimeZone::setStartYear(int32_t year) * @param time the daylight savings starting time. Please see the member * description for an example. */ - + void SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UErrorCode& status) @@ -321,17 +321,17 @@ SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfWeekInMonth, int32_t da // ------------------------------------- -void -SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, - int32_t time, TimeMode mode, UErrorCode& status) +void +SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, + int32_t time, TimeMode mode, UErrorCode& status) { setStartRule(month, dayOfMonth, 0, time, mode, status); } // ------------------------------------- -void -SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, +void +SimpleTimeZone::setStartRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode& status) { setStartRule(month, after ? dayOfMonth : -dayOfMonth, @@ -373,8 +373,8 @@ SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfWeekInMonth, int32_t dayO // ------------------------------------- -void -SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, +void +SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, int32_t time, TimeMode mode, UErrorCode& status) { setEndRule(month, dayOfMonth, 0, time, mode, status); @@ -382,8 +382,8 @@ SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, // ------------------------------------- -void -SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, +void +SimpleTimeZone::setEndRule(int32_t month, int32_t dayOfMonth, int32_t dayOfWeek, int32_t time, TimeMode mode, UBool after, UErrorCode& status) { setEndRule(month, after ? dayOfMonth : -dayOfMonth, @@ -411,9 +411,9 @@ SimpleTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, return getOffset(era, year, month, day, dayOfWeek, millis, Grego::monthLength(year, month), status); } -int32_t +int32_t SimpleTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, - uint8_t dayOfWeek, int32_t millis, + uint8_t dayOfWeek, int32_t millis, int32_t /*monthLength*/, UErrorCode& status) const { // Check the month before calling Grego::monthLength(). This @@ -438,9 +438,9 @@ SimpleTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, status); } -int32_t +int32_t SimpleTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, - uint8_t dayOfWeek, int32_t millis, + uint8_t dayOfWeek, int32_t millis, int32_t monthLength, int32_t prevMonthLength, UErrorCode& status) const { @@ -466,7 +466,7 @@ SimpleTimeZone::getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, int32_t result = rawOffset; // Bail out if we are before the onset of daylight savings time - if(!useDaylight || year < startYear || era != GregorianCalendar::AD) + if(!useDaylight || year < startYear || era != GregorianCalendar::AD) return result; // Check for southern hemisphere. We assume that the start and end @@ -570,7 +570,7 @@ SimpleTimeZone::getOffsetFromLocal(UDate date, UTimeZoneLocalOption nonExistingT * @return 1 if the date is after the rule date, -1 if the date is before * the rule date, or 0 if the date is equal to the rule date. */ -int32_t +int32_t SimpleTimeZone::compareToRule(int8_t month, int8_t monthLen, int8_t prevMonthLen, int8_t dayOfMonth, int8_t dayOfWeek, int32_t millis, int32_t millisDelta, @@ -585,7 +585,7 @@ SimpleTimeZone::compareToRule(int8_t month, int8_t monthLen, int8_t prevMonthLen dayOfWeek = (int8_t)(1 + (dayOfWeek % 7)); // dayOfWeek is one-based if (dayOfMonth > monthLen) { dayOfMonth = 1; - /* When incrementing the month, it is desirible to overflow + /* When incrementing the month, it is desirable to overflow * from DECEMBER to DECEMBER+1, since we use the result to * compare against a real month. Wraparound of the value * leads to bug 4173604. */ @@ -631,7 +631,7 @@ SimpleTimeZone::compareToRule(int8_t month, int8_t monthLen, int8_t prevMonthLen if (ruleDay > 0) ruleDayOfMonth = 1 + (ruleDay - 1) * 7 + (7 + ruleDayOfWeek - (dayOfWeek - dayOfMonth + 1)) % 7; - + // if ruleDay is negative (we assume it's not zero here), we have to do // the same calculation figuring backward from the last day of the month. else @@ -686,8 +686,8 @@ SimpleTimeZone::setRawOffset(int32_t offsetMillis) // ------------------------------------- -void -SimpleTimeZone::setDSTSavings(int32_t millisSavedDuringDST, UErrorCode& status) +void +SimpleTimeZone::setDSTSavings(int32_t millisSavedDuringDST, UErrorCode& status) { if (millisSavedDuringDST == 0) { status = U_ILLEGAL_ARGUMENT_ERROR; @@ -700,7 +700,7 @@ SimpleTimeZone::setDSTSavings(int32_t millisSavedDuringDST, UErrorCode& status) // ------------------------------------- -int32_t +int32_t SimpleTimeZone::getDSTSavings() const { return dstSavings; @@ -745,7 +745,7 @@ UBool SimpleTimeZone::inDaylightTime(UDate date, UErrorCode& status) const * @param other the TimeZone object to be compared with * @return true if the given zone has the same rules and offset as this one */ -UBool +UBool SimpleTimeZone::hasSameRules(const TimeZone& other) const { if (this == &other) return TRUE; @@ -836,7 +836,7 @@ SimpleTimeZone::hasSameRules(const TimeZone& other) const * This method also recognizes a startDay or endDay of zero as indicating * no DST. */ -void +void SimpleTimeZone::decodeRules(UErrorCode& status) { decodeStartRule(status); @@ -867,8 +867,8 @@ SimpleTimeZone::decodeRules(UErrorCode& status) * While arguably the start range should still be 0..ONEDAY-1, we keep * the start and end ranges the same for consistency. */ -void -SimpleTimeZone::decodeStartRule(UErrorCode& status) +void +SimpleTimeZone::decodeStartRule(UErrorCode& status) { if(U_FAILURE(status)) return; @@ -922,8 +922,8 @@ SimpleTimeZone::decodeStartRule(UErrorCode& status) * analogous to decodeStartRule(). * @see decodeStartRule */ -void -SimpleTimeZone::decodeEndRule(UErrorCode& status) +void +SimpleTimeZone::decodeEndRule(UErrorCode& status) { if(U_FAILURE(status)) return; @@ -1140,14 +1140,14 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) { // For now, use ID + "(DST)" as the name dstRule = new AnnualTimeZoneRule(tzid+UnicodeString(DST_STR), getRawOffset(), getDSTSavings(), dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR); - + // Check for Null pointer if (dstRule == NULL) { status = U_MEMORY_ALLOCATION_ERROR; deleteTransitionRules(); return; } - + // Calculate the first DST start time dstRule->getFirstStart(getRawOffset(), 0, firstDstStart); @@ -1168,7 +1168,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) { dtRule = new DateTimeRule(endMonth, endDay, endDayOfWeek, false, endTime, timeRuleType); break; } - + // Check for Null pointer if (dtRule == NULL) { status = U_MEMORY_ALLOCATION_ERROR; @@ -1178,7 +1178,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) { // For now, use ID + "(STD)" as the name stdRule = new AnnualTimeZoneRule(tzid+UnicodeString(STD_STR), getRawOffset(), 0, dtRule, startYear, AnnualTimeZoneRule::MAX_YEAR); - + //Check for Null pointer if (stdRule == NULL) { status = U_MEMORY_ALLOCATION_ERROR; @@ -1212,7 +1212,7 @@ SimpleTimeZone::initTransitionRules(UErrorCode& status) { deleteTransitionRules(); return; } - + } else { // Create a TimeZoneRule for initial time initialRule = new InitialTimeZoneRule(tzid, getRawOffset(), 0); diff --git a/deps/icu-small/source/i18n/smpdtfmt.cpp b/deps/icu-small/source/i18n/smpdtfmt.cpp index a3ec7cb026591c..91748d82f9fd64 100644 --- a/deps/icu-small/source/i18n/smpdtfmt.cpp +++ b/deps/icu-small/source/i18n/smpdtfmt.cpp @@ -64,6 +64,7 @@ #include "uassert.h" #include "cmemory.h" #include "umutex.h" +#include "mutex.h" #include #include "smpdtfst.h" #include "sharednumberformat.h" @@ -227,7 +228,7 @@ static const int32_t gFieldRangeBias[] = { }; // When calendar uses hebr numbering (i.e. he@calendar=hebrew), -// offset the years within the current millenium down to 1-999 +// offset the years within the current millennium down to 1-999 static const int32_t HEBREW_CAL_CUR_MILLENIUM_START_YEAR = 5000; static const int32_t HEBREW_CAL_CUR_MILLENIUM_END_YEAR = 6000; @@ -594,11 +595,29 @@ SimpleDateFormat& SimpleDateFormat::operator=(const SimpleDateFormat& other) fLocale = other.fLocale; // TimeZoneFormat can now be set independently via setter. - // If it is NULL, it will be lazily initialized from locale + // If it is NULL, it will be lazily initialized from locale. delete fTimeZoneFormat; - fTimeZoneFormat = NULL; - if (other.fTimeZoneFormat) { - fTimeZoneFormat = new TimeZoneFormat(*other.fTimeZoneFormat); + fTimeZoneFormat = nullptr; + TimeZoneFormat *otherTZFormat; + { + // Synchronization is required here, when accessing other.fTimeZoneFormat, + // because another thread may be concurrently executing other.tzFormat(), + // a logically const function that lazily creates other.fTimeZoneFormat. + // + // Without synchronization, reordered memory writes could allow us + // to see a non-null fTimeZoneFormat before the object itself was + // fully initialized. In case of a race, it doesn't matter whether + // we see a null or a fully initialized other.fTimeZoneFormat, + // only that we avoid seeing a partially initialized object. + // + // Once initialized, no const function can modify fTimeZoneFormat, + // meaning that once we have safely grabbed the other.fTimeZoneFormat + // pointer, continued synchronization is not required to use it. + Mutex m(&LOCK); + otherTZFormat = other.fTimeZoneFormat; + } + if (otherTZFormat) { + fTimeZoneFormat = new TimeZoneFormat(*otherTZFormat); } #if !UCONFIG_NO_BREAK_ITERATION @@ -639,7 +658,7 @@ SimpleDateFormat::clone() const //---------------------------------------------------------------------- -UBool +bool SimpleDateFormat::operator==(const Format& other) const { if (DateFormat::operator==(other)) { @@ -654,7 +673,7 @@ SimpleDateFormat::operator==(const Format& other) const fHaveDefaultCentury == that->fHaveDefaultCentury && fDefaultCenturyStart == that->fDefaultCenturyStart); } - return FALSE; + return false; } //---------------------------------------------------------------------- @@ -1855,7 +1874,7 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, } } else { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } appendTo += zoneString; @@ -1863,7 +1882,10 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, break; case UDAT_QUARTER_FIELD: - if (count >= 4) + if (count >= 5) + _appendSymbol(appendTo, value/3, fSymbols->fNarrowQuarters, + fSymbols->fNarrowQuartersCount); + else if (count == 4) _appendSymbol(appendTo, value/3, fSymbols->fQuarters, fSymbols->fQuartersCount); else if (count == 3) @@ -1874,7 +1896,10 @@ SimpleDateFormat::subFormat(UnicodeString &appendTo, break; case UDAT_STANDALONE_QUARTER_FIELD: - if (count >= 4) + if (count >= 5) + _appendSymbol(appendTo, value/3, fSymbols->fStandaloneNarrowQuarters, + fSymbols->fStandaloneNarrowQuartersCount); + else if (count == 4) _appendSymbol(appendTo, value/3, fSymbols->fStandaloneQuarters, fSymbols->fStandaloneQuartersCount); else if (count == 3) @@ -2192,7 +2217,7 @@ SimpleDateFormat::zeroPaddingNumber( //---------------------------------------------------------------------- /** - * Return true if the given format character, occuring count + * Return true if the given format character, occurring count * times, represents a numeric field. */ UBool SimpleDateFormat::isNumeric(UChar formatChar, int32_t count) { @@ -2561,10 +2586,10 @@ SimpleDateFormat::parse(const UnicodeString& text, Calendar& cal, ParsePosition& if (btz != NULL) { if (tzTimeType == UTZFMT_TIME_TYPE_STANDARD) { btz->getOffsetFromLocal(localMillis, - BasicTimeZone::kStandard, BasicTimeZone::kStandard, raw, dst, status); + UCAL_TZ_LOCAL_STANDARD_FORMER, UCAL_TZ_LOCAL_STANDARD_LATTER, raw, dst, status); } else { btz->getOffsetFromLocal(localMillis, - BasicTimeZone::kDaylight, BasicTimeZone::kDaylight, raw, dst, status); + UCAL_TZ_LOCAL_DAYLIGHT_FORMER, UCAL_TZ_LOCAL_DAYLIGHT_LATTER, raw, dst, status); } } else { // No good way to resolve ambiguous time at transition, @@ -2831,7 +2856,7 @@ UBool SimpleDateFormat::matchLiterals(const UnicodeString &pattern, continue; // Do not update p. } } - // hack around oldleniency being a bit of a catch-all bucket and we're just adding support specifically for paritial matches + // hack around oldleniency being a bit of a catch-all bucket and we're just adding support specifically for partial matches if(partialMatchLenient && oldLeniency) { break; } @@ -3452,7 +3477,7 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC return pos.getIndex(); } else { // count >= 3 // i.e., QQQ or QQQQ - // Want to be able to parse both short and long forms. + // Want to be able to parse short, long, and narrow forms. // Try count == 4 first: int32_t newStart = 0; @@ -3466,6 +3491,11 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC fSymbols->fShortQuarters, fSymbols->fShortQuartersCount, cal)) > 0) return newStart; } + if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) || count == 5) { + if ((newStart = matchQuarterString(text, start, UCAL_MONTH, + fSymbols->fNarrowQuarters, fSymbols->fNarrowQuartersCount, cal)) > 0) + return newStart; + } if (!getBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, status)) return newStart; // else we allowing parsing as number, below @@ -3498,6 +3528,11 @@ int32_t SimpleDateFormat::subParse(const UnicodeString& text, int32_t& start, UC fSymbols->fStandaloneShortQuarters, fSymbols->fStandaloneShortQuartersCount, cal)) > 0) return newStart; } + if(getBooleanAttribute(UDAT_PARSE_MULTIPLE_PATTERNS_FOR_MATCH, status) || count == 5) { + if ((newStart = matchQuarterString(text, start, UCAL_MONTH, + fSymbols->fStandaloneNarrowQuarters, fSymbols->fStandaloneNarrowQuartersCount, cal)) > 0) + return newStart; + } if (!getBooleanAttribute(UDAT_PARSE_ALLOW_NUMERIC, status)) return newStart; // else we allowing parsing as number, below @@ -4308,19 +4343,10 @@ SimpleDateFormat::skipUWhiteSpace(const UnicodeString& text, int32_t pos) const // Lazy TimeZoneFormat instantiation, semantically const. TimeZoneFormat * SimpleDateFormat::tzFormat(UErrorCode &status) const { - if (fTimeZoneFormat == NULL) { - umtx_lock(&LOCK); - { - if (fTimeZoneFormat == NULL) { - TimeZoneFormat *tzfmt = TimeZoneFormat::createInstance(fLocale, status); - if (U_FAILURE(status)) { - return NULL; - } - - const_cast(this)->fTimeZoneFormat = tzfmt; - } - } - umtx_unlock(&LOCK); + Mutex m(&LOCK); + if (fTimeZoneFormat == nullptr && U_SUCCESS(status)) { + const_cast(this)->fTimeZoneFormat = + TimeZoneFormat::createInstance(fLocale, status); } return fTimeZoneFormat; } diff --git a/deps/icu-small/source/i18n/smpdtfst.cpp b/deps/icu-small/source/i18n/smpdtfst.cpp index ff0dec232d29f7..db59a4b4ab7f8f 100644 --- a/deps/icu-small/source/i18n/smpdtfst.cpp +++ b/deps/icu-small/source/i18n/smpdtfst.cpp @@ -110,7 +110,7 @@ UnicodeSet *SimpleDateFormatStaticSets::getIgnorables(UDateFormatField fieldInde if (U_FAILURE(status)) { return NULL; } - + switch (fieldIndex) { case UDAT_YEAR_FIELD: case UDAT_MONTH_FIELD: @@ -118,7 +118,7 @@ UnicodeSet *SimpleDateFormatStaticSets::getIgnorables(UDateFormatField fieldInde case UDAT_STANDALONE_DAY_FIELD: case UDAT_STANDALONE_MONTH_FIELD: return gStaticSets->fDateIgnorables; - + case UDAT_HOUR_OF_DAY1_FIELD: case UDAT_HOUR_OF_DAY0_FIELD: case UDAT_MINUTE_FIELD: @@ -126,7 +126,7 @@ UnicodeSet *SimpleDateFormatStaticSets::getIgnorables(UDateFormatField fieldInde case UDAT_HOUR1_FIELD: case UDAT_HOUR0_FIELD: return gStaticSets->fTimeIgnorables; - + default: return gStaticSets->fOtherIgnorables; } diff --git a/deps/icu-small/source/i18n/smpdtfst.h b/deps/icu-small/source/i18n/smpdtfst.h index ed8ce4371f6d6d..cc80909c88e93a 100644 --- a/deps/icu-small/source/i18n/smpdtfst.h +++ b/deps/icu-small/source/i18n/smpdtfst.h @@ -33,12 +33,12 @@ class SimpleDateFormatStaticSets : public UMemory public: SimpleDateFormatStaticSets(UErrorCode &status); ~SimpleDateFormatStaticSets(); - + static void initSets(UErrorCode *status); static UBool cleanup(); - + static UnicodeSet *getIgnorables(UDateFormatField fieldIndex); - + private: UnicodeSet *fDateIgnorables; UnicodeSet *fTimeIgnorables; diff --git a/deps/icu-small/source/i18n/sortkey.cpp b/deps/icu-small/source/i18n/sortkey.cpp index 430fd5d3500948..441d15d42635bd 100644 --- a/deps/icu-small/source/i18n/sortkey.cpp +++ b/deps/icu-small/source/i18n/sortkey.cpp @@ -137,7 +137,7 @@ CollationKey::setToBogus() return *this; } -UBool +bool CollationKey::operator==(const CollationKey& source) const { return getLength() == source.getLength() && @@ -278,7 +278,7 @@ CollationKey::hashCode() const U_NAMESPACE_END U_CAPI int32_t U_EXPORT2 -ucol_keyHashCode(const uint8_t *key, +ucol_keyHashCode(const uint8_t *key, int32_t length) { return icu::computeHashCode(key, length); diff --git a/deps/icu-small/source/i18n/strmatch.cpp b/deps/icu-small/source/i18n/strmatch.cpp index 97c0fba6f1ddb7..a20f7873fec73e 100644 --- a/deps/icu-small/source/i18n/strmatch.cpp +++ b/deps/icu-small/source/i18n/strmatch.cpp @@ -69,7 +69,7 @@ StringMatcher* StringMatcher::clone() const { UnicodeMatcher* StringMatcher::toMatcher() const { StringMatcher *nonconst_this = const_cast(this); UnicodeMatcher *nonconst_base = static_cast(nonconst_this); - + return nonconst_base; } @@ -80,7 +80,7 @@ UnicodeMatcher* StringMatcher::toMatcher() const { UnicodeReplacer* StringMatcher::toReplacer() const { StringMatcher *nonconst_this = const_cast(this); UnicodeReplacer *nonconst_base = static_cast(nonconst_this); - + return nonconst_base; } @@ -221,9 +221,9 @@ int32_t StringMatcher::replace(Replaceable& text, int32_t start, int32_t limit, int32_t& /*cursor*/) { - + int32_t outLen = 0; - + // Copy segment with out-of-band data int32_t dest = limit; // If there was no match, that means that a quantifier @@ -234,9 +234,9 @@ int32_t StringMatcher::replace(Replaceable& text, outLen = matchLimit - matchStart; } } - + text.handleReplaceBetween(start, limit, UnicodeString()); // delete original text - + return outLen; } diff --git a/deps/icu-small/source/i18n/strmatch.h b/deps/icu-small/source/i18n/strmatch.h index 84b1d47398fd60..6d2e392e654c7b 100644 --- a/deps/icu-small/source/i18n/strmatch.h +++ b/deps/icu-small/source/i18n/strmatch.h @@ -68,7 +68,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * @param o the object to be copied. */ StringMatcher(const StringMatcher& o); - + /** * Destructor */ @@ -78,21 +78,21 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * Implement UnicodeFunctor * @return a copy of the object. */ - virtual StringMatcher* clone() const; + virtual StringMatcher* clone() const override; /** * UnicodeFunctor API. Cast 'this' to a UnicodeMatcher* pointer * and return the pointer. * @return the UnicodeMatcher point. */ - virtual UnicodeMatcher* toMatcher() const; + virtual UnicodeMatcher* toMatcher() const override; /** * UnicodeFunctor API. Cast 'this' to a UnicodeReplacer* pointer * and return the pointer. * @return the UnicodeReplacer pointer. */ - virtual UnicodeReplacer* toReplacer() const; + virtual UnicodeReplacer* toReplacer() const override; /** * Implement UnicodeMatcher @@ -119,7 +119,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico virtual UMatchDegree matches(const Replaceable& text, int32_t& offset, int32_t limit, - UBool incremental); + UBool incremental) override; /** * Implement UnicodeMatcher @@ -128,7 +128,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * @return A reference to 'result'. */ virtual UnicodeString& toPattern(UnicodeString& result, - UBool escapeUnprintable = false) const; + UBool escapeUnprintable = false) const override; /** * Implement UnicodeMatcher @@ -137,20 +137,20 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * offset). This is used by RuleBasedTransliterator for * indexing. * @param v the given value - * @return true if this matcher will match a character c, + * @return true if this matcher will match a character c, * where c & 0xFF == v */ - virtual UBool matchesIndexValue(uint8_t v) const; + virtual UBool matchesIndexValue(uint8_t v) const override; /** * Implement UnicodeMatcher */ - virtual void addMatchSetTo(UnicodeSet& toUnionTo) const; + virtual void addMatchSetTo(UnicodeSet& toUnionTo) const override; /** * Implement UnicodeFunctor */ - virtual void setData(const TransliterationRuleData*); + virtual void setData(const TransliterationRuleData*) override; /** * Replace characters in 'text' from 'start' to 'limit' with the @@ -172,7 +172,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico virtual int32_t replace(Replaceable& text, int32_t start, int32_t limit, - int32_t& cursor); + int32_t& cursor) override; /** * Returns a string representation of this replacer. If the @@ -188,7 +188,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * @return a reference to 'result'. */ virtual UnicodeString& toReplacerPattern(UnicodeString& result, - UBool escapeUnprintable) const; + UBool escapeUnprintable) const override; /** * Remove any match data. This must be called before performing a @@ -199,7 +199,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -211,7 +211,7 @@ class StringMatcher : public UnicodeFunctor, public UnicodeMatcher, public Unico * into the given set. * @param toUnionTo the set into which to union the output characters */ - virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const; + virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const override; private: diff --git a/deps/icu-small/source/i18n/strrepl.cpp b/deps/icu-small/source/i18n/strrepl.cpp index e9e71ee540606a..9fafeb2659ce47 100644 --- a/deps/icu-small/source/i18n/strrepl.cpp +++ b/deps/icu-small/source/i18n/strrepl.cpp @@ -199,7 +199,7 @@ int32_t StringReplacer::replace(Replaceable& text, // Delete the old text (the key) text.handleReplaceBetween(start + outLen, limit + outLen, UnicodeString()); - } + } if (hasCursor) { // Adjust the cursor for positions outside the key. These diff --git a/deps/icu-small/source/i18n/strrepl.h b/deps/icu-small/source/i18n/strrepl.h index 7f74d0d94507f6..8063626a333bb9 100644 --- a/deps/icu-small/source/i18n/strrepl.h +++ b/deps/icu-small/source/i18n/strrepl.h @@ -111,13 +111,13 @@ class StringReplacer : public UnicodeFunctor, public UnicodeReplacer { /** * Implement UnicodeFunctor */ - virtual StringReplacer* clone() const; + virtual StringReplacer* clone() const override; /** * UnicodeFunctor API. Cast 'this' to a UnicodeReplacer* pointer * and return the pointer. */ - virtual UnicodeReplacer* toReplacer() const; + virtual UnicodeReplacer* toReplacer() const override; /** * UnicodeReplacer API @@ -125,23 +125,23 @@ class StringReplacer : public UnicodeFunctor, public UnicodeReplacer { virtual int32_t replace(Replaceable& text, int32_t start, int32_t limit, - int32_t& cursor); + int32_t& cursor) override; /** * UnicodeReplacer API */ virtual UnicodeString& toReplacerPattern(UnicodeString& result, - UBool escapeUnprintable) const; + UBool escapeUnprintable) const override; /** * Implement UnicodeReplacer */ - virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const; + virtual void addReplacementSetTo(UnicodeSet& toUnionTo) const override; /** * UnicodeFunctor API */ - virtual void setData(const TransliterationRuleData*); + virtual void setData(const TransliterationRuleData*) override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -151,7 +151,7 @@ class StringReplacer : public UnicodeFunctor, public UnicodeReplacer { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/stsearch.cpp b/deps/icu-small/source/i18n/stsearch.cpp index 003d86b64016f0..1bade8fbd1108b 100644 --- a/deps/icu-small/source/i18n/stsearch.cpp +++ b/deps/icu-small/source/i18n/stsearch.cpp @@ -205,17 +205,17 @@ StringSearch & StringSearch::operator=(const StringSearch &that) return *this; } -UBool StringSearch::operator==(const SearchIterator &that) const +bool StringSearch::operator==(const SearchIterator &that) const { if (this == &that) { - return TRUE; + return true; } if (SearchIterator::operator ==(that)) { StringSearch &thatsrch = (StringSearch &)that; return (this->m_pattern_ == thatsrch.m_pattern_ && this->m_strsrch_->collator == thatsrch.m_strsrch_->collator); } - return FALSE; + return false; } // public get and set methods ---------------------------------------- @@ -335,14 +335,14 @@ int32_t StringSearch::handleNext(int32_t position, UErrorCode &status) // the flipping direction issue has already been handled // in next() // for boundary check purposes. this will ensure that the - // next match will not preceed the current offset + // next match will not precede the current offset // note search->matchedIndex will always be set to something // in the code m_search_->matchedIndex = position - 1; } ucol_setOffset(m_strsrch_->textIter, position, &status); - + #if 0 for (;;) { if (m_search_->isCanonicalMatch) { @@ -380,22 +380,22 @@ int32_t StringSearch::handleNext(int32_t position, UErrorCode &status) // then we don't need to check the match boundaries here because // usearch_handleNextXXX will already have done it. if (m_search_->isCanonicalMatch) { - // *could* actually use exact here 'cause no extra accents allowed... - usearch_handleNextCanonical(m_strsrch_, &status); + // *could* actually use exact here 'cause no extra accents allowed... + usearch_handleNextCanonical(m_strsrch_, &status); } else { - usearch_handleNextExact(m_strsrch_, &status); + usearch_handleNextExact(m_strsrch_, &status); } - + if (U_FAILURE(status)) { - return USEARCH_DONE; + return USEARCH_DONE; } - + if (m_search_->matchedIndex == USEARCH_DONE) { - ucol_setOffset(m_strsrch_->textIter, m_search_->textLength, &status); + ucol_setOffset(m_strsrch_->textIter, m_search_->textLength, &status); } else { - ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex, &status); + ucol_setOffset(m_strsrch_->textIter, m_search_->matchedIndex, &status); } - + return m_search_->matchedIndex; #endif } @@ -431,7 +431,7 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status) setMatchNotFound(); return USEARCH_DONE; } - + for (;;) { if (m_search_->isCanonicalMatch) { // can't use exact here since extra accents are allowed. @@ -457,18 +457,18 @@ int32_t StringSearch::handlePrev(int32_t position, UErrorCode &status) } #else ucol_setOffset(m_strsrch_->textIter, position, &status); - + if (m_search_->isCanonicalMatch) { - // *could* use exact match here since extra accents *not* allowed! - usearch_handlePreviousCanonical(m_strsrch_, &status); + // *could* use exact match here since extra accents *not* allowed! + usearch_handlePreviousCanonical(m_strsrch_, &status); } else { - usearch_handlePreviousExact(m_strsrch_, &status); + usearch_handlePreviousExact(m_strsrch_, &status); } - + if (U_FAILURE(status)) { - return USEARCH_DONE; + return USEARCH_DONE; } - + return m_search_->matchedIndex; #endif } diff --git a/deps/icu-small/source/i18n/taiwncal.cpp b/deps/icu-small/source/i18n/taiwncal.cpp index 1a6a0e2e78d201..27352aa10c32b2 100644 --- a/deps/icu-small/source/i18n/taiwncal.cpp +++ b/deps/icu-small/source/i18n/taiwncal.cpp @@ -30,7 +30,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TaiwanCalendar) static const int32_t kTaiwanEraStart = 1911; // 1911 (Gregorian) -static const int32_t kGregorianEpoch = 1970; +static const int32_t kGregorianEpoch = 1970; TaiwanCalendar::TaiwanCalendar(const Locale& aLocale, UErrorCode& success) : GregorianCalendar(aLocale, success) @@ -135,7 +135,7 @@ void TaiwanCalendar::timeToFields(UDate theTime, UBool quick, UErrorCode& status /** * The system maintains a static default century start date and Year. They are - * initialized the first time they are used. Once the system default century date + * initialized the first time they are used. Once the system default century date * and year are set, they do not change. */ static UDate gSystemDefaultCenturyStart = DBL_MIN; diff --git a/deps/icu-small/source/i18n/taiwncal.h b/deps/icu-small/source/i18n/taiwncal.h index bf384fa714f05b..ab6b6aff099e28 100644 --- a/deps/icu-small/source/i18n/taiwncal.h +++ b/deps/icu-small/source/i18n/taiwncal.h @@ -91,7 +91,7 @@ class TaiwanCalendar : public GregorianCalendar { * @return return a polymorphic copy of this calendar. * @internal */ - virtual TaiwanCalendar* clone() const; + virtual TaiwanCalendar* clone() const override; public: /** @@ -104,7 +104,7 @@ class TaiwanCalendar : public GregorianCalendar { * same class ID. Objects of other classes have different class IDs. * @internal */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -125,7 +125,7 @@ class TaiwanCalendar : public GregorianCalendar { * @return calendar type * @internal */ - virtual const char * getType() const; + virtual const char * getType() const override; private: TaiwanCalendar(); // default constructor not implemented @@ -139,13 +139,13 @@ class TaiwanCalendar : public GregorianCalendar { * @return the extended year * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; /** * Subclasses may override this method to compute several fields - * specific to each calendar system. + * specific to each calendar system. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode& status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode& status) override; /** * Subclass API for defining limits of different types. * @param field one of the field numbers @@ -153,26 +153,26 @@ class TaiwanCalendar : public GregorianCalendar { * LEAST_MAXIMUM, or MAXIMUM * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * Returns true because the Taiwan Calendar does have a default century * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * Returns the date of the start of the default century * @return start of century - in milliseconds since epoch, 1970 * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * Returns the year in which the default century begins * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; }; U_NAMESPACE_END @@ -181,3 +181,4 @@ U_NAMESPACE_END #endif // _TAIWNCAL //eof + diff --git a/deps/icu-small/source/i18n/timezone.cpp b/deps/icu-small/source/i18n/timezone.cpp index fe564e6530e7b1..8115a45e0ac4d1 100644 --- a/deps/icu-small/source/i18n/timezone.cpp +++ b/deps/icu-small/source/i18n/timezone.cpp @@ -311,7 +311,7 @@ void U_CALLCONV initStaticTimeZones() { // be valid even if we can't load the time zone UDataMemory. ucln_i18n_registerCleanup(UCLN_I18N_TIMEZONE, timeZone_cleanup); - // new can't fail below, as we use placement new into staticly allocated space. + // new can't fail below, as we use placement new into statically allocated space. new(gRawGMT) SimpleTimeZone(0, UnicodeString(TRUE, GMT_ID, GMT_ID_LENGTH)); new(gRawUNKNOWN) SimpleTimeZone(0, UnicodeString(TRUE, UNKNOWN_ZONE_ID, UNKNOWN_ZONE_ID_LENGTH)); @@ -376,7 +376,7 @@ TimeZone::operator=(const TimeZone &right) // ------------------------------------- -UBool +bool TimeZone::operator==(const TimeZone& that) const { return typeid(*this) == typeid(that) && @@ -445,7 +445,7 @@ TimeZone::createTimeZone(const UnicodeString& ID) if (result == NULL) { U_DEBUG_TZ_MSG(("failed to load time zone with id - falling to Etc/Unknown(GMT)")); const TimeZone& unknown = getUnknown(); - // Unknown zone uses staticly allocated memory, so creation of it can never fail due to OOM. + // Unknown zone uses statically allocated memory, so creation of it can never fail due to OOM. result = unknown.clone(); } return result; @@ -530,7 +530,7 @@ TimeZone::detectHostTimeZone() static UMutex gDefaultZoneMutex; /** - * Initialize DEFAULT_ZONE from the system default time zone. + * Initialize DEFAULT_ZONE from the system default time zone. * Upon return, DEFAULT_ZONE will not be NULL, unless operator new() * returns NULL. */ @@ -544,7 +544,7 @@ static void U_CALLCONV initDefault() if (DEFAULT_ZONE != NULL) { return; } - + // NOTE: this code is safely single threaded, being only // run via umtx_initOnce(). // @@ -951,15 +951,15 @@ class TZEnumeration : public StringEnumeration { virtual ~TZEnumeration(); - virtual StringEnumeration *clone() const { + virtual StringEnumeration *clone() const override { return new TZEnumeration(*this); } - virtual int32_t count(UErrorCode& status) const { + virtual int32_t count(UErrorCode& status) const override { return U_FAILURE(status) ? 0 : len; } - virtual const UnicodeString* snext(UErrorCode& status) { + virtual const UnicodeString* snext(UErrorCode& status) override { if (U_SUCCESS(status) && map != NULL && pos < len) { getID(map[pos], status); ++pos; @@ -968,13 +968,13 @@ class TZEnumeration : public StringEnumeration { return 0; } - virtual void reset(UErrorCode& /*status*/) { + virtual void reset(UErrorCode& /*status*/) override { pos = 0; } public: static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; TZEnumeration::~TZEnumeration() { @@ -994,22 +994,41 @@ TimeZone::createTimeZoneIDEnumeration( return TZEnumeration::create(zoneType, region, rawOffset, ec); } +StringEnumeration* U_EXPORT2 +TimeZone::createEnumeration(UErrorCode& status) { + return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, NULL, NULL, status); +} + +StringEnumeration* U_EXPORT2 +TimeZone::createEnumerationForRawOffset(int32_t rawOffset, UErrorCode& status) { + return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, NULL, &rawOffset, status); +} + +StringEnumeration* U_EXPORT2 +TimeZone::createEnumerationForRegion(const char* region, UErrorCode& status) { + return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, region, NULL, status); +} + +// +// Next 3 methods are equivalent to above, but ignores UErrorCode. +// These methods were deprecated in ICU 70. + StringEnumeration* U_EXPORT2 TimeZone::createEnumeration() { UErrorCode ec = U_ZERO_ERROR; - return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, NULL, NULL, ec); + return createEnumeration(ec); } StringEnumeration* U_EXPORT2 TimeZone::createEnumeration(int32_t rawOffset) { UErrorCode ec = U_ZERO_ERROR; - return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, NULL, &rawOffset, ec); + return createEnumerationForRawOffset(rawOffset, ec); } StringEnumeration* U_EXPORT2 -TimeZone::createEnumeration(const char* country) { +TimeZone::createEnumeration(const char* region) { UErrorCode ec = U_ZERO_ERROR; - return TZEnumeration::create(UCAL_ZONE_TYPE_ANY, country, NULL, ec); + return createEnumerationForRegion(region, ec); } // --------------------------------------- @@ -1106,7 +1125,7 @@ TimeZone::dereferOlsonLink(const UnicodeString& id) { // open the zone bundle by index ures_getByKey(rb, kZONES, rb, &ec); - ures_getByIndex(rb, idx, rb, &ec); + ures_getByIndex(rb, idx, rb, &ec); if (U_SUCCESS(ec)) { if (ures_getType(rb) == URES_INT) { @@ -1244,7 +1263,7 @@ TimeZone::getDisplayName(UBool inDaylight, EDisplayType style, const Locale& loc tzfmt->format(UTZFMT_STYLE_GENERIC_SHORT, *this, date, result, &timeType); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } // Generic format many use Localized GMT as the final fallback. // When Localized GMT format is used, the result might not be @@ -1272,7 +1291,7 @@ TimeZone::getDisplayName(UBool inDaylight, EDisplayType style, const Locale& loc tzfmt->formatOffsetISO8601Basic(offset, FALSE, FALSE, FALSE, result, status); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } else { @@ -1287,7 +1306,7 @@ TimeZone::getDisplayName(UBool inDaylight, EDisplayType style, const Locale& loc nameType = inDaylight ? UTZNM_SHORT_DAYLIGHT : UTZNM_SHORT_STANDARD; break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } LocalPointer tznames(TimeZoneNames::createInstance(locale, status)); if (U_FAILURE(status)) { @@ -1691,7 +1710,7 @@ TimeZone::getIDForWindowsID(const UnicodeString& winid, const char* region, Unic const UChar *tzids = ures_getStringByKey(zones, region, &len, &tmperr); // use tmperr, because // regional mapping is optional if (U_SUCCESS(tmperr)) { - // first ID delimited by space is the defasult one + // first ID delimited by space is the default one const UChar *end = u_strchr(tzids, (UChar)0x20); if (end == NULL) { id.setTo(tzids, -1); diff --git a/deps/icu-small/source/i18n/titletrn.cpp b/deps/icu-small/source/i18n/titletrn.cpp index a6beac214915cc..9c39b4676ad1cf 100644 --- a/deps/icu-small/source/i18n/titletrn.cpp +++ b/deps/icu-small/source/i18n/titletrn.cpp @@ -88,7 +88,7 @@ void TitlecaseTransliterator::handleTransliterate( // Our mode; we are either converting letter toTitle or // toLower. UBool doTitle = TRUE; - + // Determine if there is a preceding context of cased case-ignorable*, // in which case we want to start in toLower mode. If the // prior context is anything else (including empty) then start @@ -106,7 +106,7 @@ void TitlecaseTransliterator::handleTransliterate( } // else (type<0) case-ignorable: continue } - + // Convert things after a cased character toLower; things // after an uncased, non-case-ignorable character toTitle. Case-ignorable // characters are copied directly and do not change the mode. diff --git a/deps/icu-small/source/i18n/titletrn.h b/deps/icu-small/source/i18n/titletrn.h index 4e45ac6f81fabc..8409519818af12 100644 --- a/deps/icu-small/source/i18n/titletrn.h +++ b/deps/icu-small/source/i18n/titletrn.h @@ -52,12 +52,12 @@ class TitlecaseTransliterator : public CaseMapTransliterator { * Transliterator API. * @return a copy of the object. */ - virtual TitlecaseTransliterator* clone() const; + virtual TitlecaseTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -76,7 +76,7 @@ class TitlecaseTransliterator : public CaseMapTransliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; private: /** diff --git a/deps/icu-small/source/i18n/tmunit.cpp b/deps/icu-small/source/i18n/tmunit.cpp index b96dfbb5726b6f..361aecb92eda33 100644 --- a/deps/icu-small/source/i18n/tmunit.cpp +++ b/deps/icu-small/source/i18n/tmunit.cpp @@ -19,25 +19,25 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeUnit) /* * There are only 7 time units. - * So, TimeUnit could be made as singleton + * So, TimeUnit could be made as singleton * (similar to uniset_props.cpp, or unorm.cpp, - * in which a static TimeUnit* array is created, and + * in which a static TimeUnit* array is created, and * the creatInstance() returns a const TimeUnit*). * But the constraint is TimeUnit is a data member of Measure. * But Measure (which is an existing API) does not expect it's "unit" member * as singleton. Meaure takes ownership of the "unit" member. * In its constructor, it does not take a const "unit" pointer. * Also, Measure can clone and destruct the "unit" pointer. - * In order to preserve the old behavior and let Measure handle singleton "unit", - * 1. a flag need to be added in Measure; + * In order to preserve the old behavior and let Measure handle singleton "unit", + * 1. a flag need to be added in Measure; * 2. a new constructor which takes const "unit" as parameter need to be added, * and this new constructor will set the flag on. * 3. clone and destructor need to check upon this flag to distinguish on how - * to handle the "unit". - * + * to handle the "unit". + * * Since TimeUnit is such a light weight object, comparing with the heavy weight * format operation, we decided to avoid the above complication. - * + * * So, both TimeUnit and CurrencyUnit (the 2 subclasses of MeasureUnit) are * immutable and non-singleton. * @@ -45,18 +45,18 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeUnit) * If an application needs to create a long list of TimeUnitAmount on the same * time unit but different number, for example, * 1 hour, 2 hour, 3 hour, ................. 10,000 hour, - * there might be performance hit because 10,000 TimeUnit object, + * there might be performance hit because 10,000 TimeUnit object, * although all are the same time unit, will be created in heap and deleted. * * To address this performance issue, if there is any in the future, - * we should and need to change TimeUnitAmount and CurrencyAmount to be + * we should and need to change TimeUnitAmount and CurrencyAmount to be * immutable by allowing a setter on the number. - * Or we need to add 2 parallel mutable classes in order to + * Or we need to add 2 parallel mutable classes in order to * preserve the existing API. * Or we can use freezable. */ -TimeUnit* U_EXPORT2 -TimeUnit::createInstance(TimeUnit::UTimeUnitFields timeUnitField, +TimeUnit* U_EXPORT2 +TimeUnit::createInstance(TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status) { if (U_FAILURE(status)) { return NULL; @@ -94,15 +94,15 @@ TimeUnit::TimeUnit(TimeUnit::UTimeUnitFields timeUnitField) { initTime("second"); break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } -TimeUnit::TimeUnit(const TimeUnit& other) +TimeUnit::TimeUnit(const TimeUnit& other) : MeasureUnit(other), fTimeUnitField(other.fTimeUnitField) { } -TimeUnit* +TimeUnit* TimeUnit::clone() const { return new TimeUnit(*this); } diff --git a/deps/icu-small/source/i18n/tmutamt.cpp b/deps/icu-small/source/i18n/tmutamt.cpp index a143bcf8f7c2ac..2753c29374a108 100644 --- a/deps/icu-small/source/i18n/tmutamt.cpp +++ b/deps/icu-small/source/i18n/tmutamt.cpp @@ -5,7 +5,7 @@ * Copyright (C) 2008, Google, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* - */ + */ #include "unicode/tmutamt.h" @@ -16,17 +16,17 @@ U_NAMESPACE_BEGIN UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeUnitAmount) -TimeUnitAmount::TimeUnitAmount(const Formattable& number, +TimeUnitAmount::TimeUnitAmount(const Formattable& number, TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status) : Measure(number, TimeUnit::createInstance(timeUnitField, status), status) { } -TimeUnitAmount::TimeUnitAmount(double amount, +TimeUnitAmount::TimeUnitAmount(double amount, TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status) -: Measure(Formattable(amount), +: Measure(Formattable(amount), TimeUnit::createInstance(timeUnitField, status), status) { } @@ -38,24 +38,24 @@ TimeUnitAmount::TimeUnitAmount(const TimeUnitAmount& other) } -TimeUnitAmount& +TimeUnitAmount& TimeUnitAmount::operator=(const TimeUnitAmount& other) { Measure::operator=(other); return *this; } -UBool +bool TimeUnitAmount::operator==(const UObject& other) const { return Measure::operator==(other); } -TimeUnitAmount* +TimeUnitAmount* TimeUnitAmount::clone() const { return new TimeUnitAmount(*this); } - + TimeUnitAmount::~TimeUnitAmount() { } @@ -71,7 +71,7 @@ TimeUnit::UTimeUnitFields TimeUnitAmount::getTimeUnitField() const { return getTimeUnit().getTimeUnitField(); } - + U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/tmutfmt.cpp b/deps/icu-small/source/i18n/tmutfmt.cpp index 231ea5799c3764..057bb634ebbb24 100644 --- a/deps/icu-small/source/i18n/tmutfmt.cpp +++ b/deps/icu-small/source/i18n/tmutfmt.cpp @@ -327,7 +327,7 @@ TimeUnitFormat::setup(UErrorCode& err) { } UnicodeString* pluralCount; while ((pluralCount = const_cast(keywords->snext(err))) != NULL) { - pluralCounts.addElement(pluralCount, err); + pluralCounts.addElementX(pluralCount, err); } readFromCurrentLocale(UTMUTFMT_FULL_STYLE, gUnitsTag, pluralCounts, err); checkConsistency(UTMUTFMT_FULL_STYLE, gUnitsTag, err); @@ -362,7 +362,7 @@ struct TimeUnitFormatReadSink : public ResourceSink { virtual ~TimeUnitFormatReadSink(); - virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) { + virtual void put(const char *key, ResourceValue &value, UBool, UErrorCode &errorCode) override { // Skip all put() calls except the first one -- discard all fallback data. if (beenHere) { return; diff --git a/deps/icu-small/source/i18n/tolowtrn.cpp b/deps/icu-small/source/i18n/tolowtrn.cpp index 02ec05cd52ad7a..289327874e3185 100644 --- a/deps/icu-small/source/i18n/tolowtrn.cpp +++ b/deps/icu-small/source/i18n/tolowtrn.cpp @@ -27,7 +27,7 @@ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(LowercaseTransliterator) /** * Constructs a transliterator. */ -LowercaseTransliterator::LowercaseTransliterator() : +LowercaseTransliterator::LowercaseTransliterator() : CaseMapTransliterator(UNICODE_STRING("Any-Lower", 9), ucase_toFullLower) { } diff --git a/deps/icu-small/source/i18n/tolowtrn.h b/deps/icu-small/source/i18n/tolowtrn.h index 2fbfb90e1bface..951128ec77eaa3 100644 --- a/deps/icu-small/source/i18n/tolowtrn.h +++ b/deps/icu-small/source/i18n/tolowtrn.h @@ -50,12 +50,12 @@ class LowercaseTransliterator : public CaseMapTransliterator { * Transliterator API. * @return a copy of the object. */ - virtual LowercaseTransliterator* clone() const; + virtual LowercaseTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/toupptrn.h b/deps/icu-small/source/i18n/toupptrn.h index e96ca8f0ba530a..755e9edfcb5748 100644 --- a/deps/icu-small/source/i18n/toupptrn.h +++ b/deps/icu-small/source/i18n/toupptrn.h @@ -50,12 +50,12 @@ class UppercaseTransliterator : public CaseMapTransliterator { * Transliterator API. * @return a copy of the object. */ - virtual UppercaseTransliterator* clone() const; + virtual UppercaseTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/translit.cpp b/deps/icu-small/source/i18n/translit.cpp index c2a15837bedb0d..c7d6b510576d24 100644 --- a/deps/icu-small/source/i18n/translit.cpp +++ b/deps/icu-small/source/i18n/translit.cpp @@ -249,7 +249,7 @@ void Transliterator::transliterate(Replaceable& text) const { * pending transliterations, clients should call {@link * #finishKeyboardTransliteration} after the last call to this * method has been made. - * + * * @param text the buffer holding transliterated and untransliterated text * @param index an array of three integers. * @@ -453,7 +453,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, // the changes made during the pass, extends the pass by one code point, // and tries again. //---------------------------------------------------------------------- - + // globalLimit is the limit value for the entire operation. We // set index.limit to the end of each unfiltered run before // calling handleTransliterate(), so we need to maintain the real @@ -461,7 +461,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, // update globalLimit for insertions or deletions that have // happened. int32_t globalLimit = index.limit; - + // If there is a non-null filter, then break the input text up. Say the // input text has the form: // xxxabcxxdefxx @@ -471,7 +471,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, // Each pass through the loop consumes a run of filtered // characters (which are ignored) and a subsequent run of // unfiltered characters (which are transliterated). - + for (;;) { if (filter != NULL) { @@ -507,7 +507,7 @@ void Transliterator::filteredTransliterate(Replaceable& text, // complete the transliteration for this run. UBool isIncrementalRun = (index.limit < globalLimit ? FALSE : incremental); - + int32_t delta; // Implement rollback. To understand the need for rollback, @@ -933,15 +933,15 @@ Transliterator::createInstance(const UnicodeString& ID, return NULL; } LocalPointer lpGlobalFilter(globalFilter); - + TransliteratorIDParser::instantiateList(list, status); if (U_FAILURE(status)) { return NULL; } - + U_ASSERT(list.size() > 0); Transliterator* t = NULL; - + if (list.size() > 1 || canonID.indexOf(ID_DELIM) >= 0) { // [NOTE: If it's a compoundID, we instantiate a CompoundTransliterator even if it only // has one child transliterator. This is so that toRules() will return the right thing @@ -1093,6 +1093,8 @@ Transliterator::createFromRules(const UnicodeString& ID, } else { UVector transliterators(status); + // TODO ICU-21701 missing U_FAILURE check here. + // Error and nullptr checking through this whole block looks suspect. int32_t passNumber = 1; int32_t limit = parser.idBlockVector.size(); @@ -1108,10 +1110,15 @@ Transliterator::createFromRules(const UnicodeString& ID, delete temp; return nullptr; } - if (temp != NULL && typeid(*temp) != typeid(NullTransliterator)) + if (temp != NULL && typeid(*temp) != typeid(NullTransliterator)) { transliterators.addElement(temp, status); - else + if (U_FAILURE(status)) { + delete temp; + return nullptr; + } + } else { delete temp; + } } } if (!parser.dataVector.isEmpty()) { @@ -1127,6 +1134,13 @@ Transliterator::createFromRules(const UnicodeString& ID, return t; } transliterators.addElement(temprbt, status); + if (U_FAILURE(status)) { + delete temprbt; + return t; + } + // TODO: ICU-21701 the transliterators vector will leak its contents if anything goes wrong. + // Under normal operation, the CompoundTransliterator constructor adopts the + // the contents of the vector. } } @@ -1290,7 +1304,7 @@ void Transliterator::_registerAlias(const UnicodeString& aliasID, /** * Unregisters a transliterator or class. This may be either * a system transliterator or a user transliterator or class. - * + * * @param ID the ID of the transliterator or class * @see #registerInstance @@ -1494,13 +1508,13 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { * is the ID of the system transliterator being defined. These * are public IDs enumerated by Transliterator.getAvailableIDs(), * unless the second field is "internal". - * + * * is a ResourceReader resource name. Currently these refer * to file names under com/ibm/text/resources. This string is passed * directly to ResourceReader, together with . - * + * * is either "FORWARD" or "REVERSE". - * + * * is a string to be passed directly to * Transliterator.getInstance(). The returned Transliterator object * then has its ID changed to and is returned. @@ -1546,10 +1560,10 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { // 'file' or 'internal'; // row[2]=resource, row[3]=direction { - + resString = ures_getStringByKey(res, "resource", &len, &lstatus); UBool visible = (type == 0x0066 /*f*/); - UTransDirection dir = + UTransDirection dir = (ures_getUnicodeStringByKey(res, "direction", &lstatus).charAt(0) == 0x0046 /*F*/) ? UTRANS_FORWARD : UTRANS_REVERSE; @@ -1575,7 +1589,7 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { // Manually add prototypes that the system knows about to the // cache. This is how new non-rule-based transliterators are // added to the system. - + // This is to allow for null pointer check NullTransliterator* tempNullTranslit = new NullTransliterator(); LowercaseTransliterator* tempLowercaseTranslit = new LowercaseTransliterator(); @@ -1589,7 +1603,7 @@ UBool Transliterator::initializeRegistry(UErrorCode &status) { #endif // Check for null pointers if (tempNullTranslit == NULL || tempLowercaseTranslit == NULL || tempUppercaseTranslit == NULL || - tempTitlecaseTranslit == NULL || tempUnicodeTranslit == NULL || + tempTitlecaseTranslit == NULL || tempUnicodeTranslit == NULL || #if !UCONFIG_NO_BREAK_ITERATION tempBreakTranslit == NULL || #endif diff --git a/deps/icu-small/source/i18n/transreg.cpp b/deps/icu-small/source/i18n/transreg.cpp index 8c90effcc2a348..726ad56f0f6f20 100644 --- a/deps/icu-small/source/i18n/transreg.cpp +++ b/deps/icu-small/source/i18n/transreg.cpp @@ -154,22 +154,23 @@ Transliterator* TransliteratorAlias::create(UParseError& pe, pos = aliasesOrRules.indexOf(noIDBlock, pos + 1); } - UVector transliterators(ec); + UVector transliterators(uprv_deleteUObject, nullptr, ec); UnicodeString idBlock; int32_t blockSeparatorPos = aliasesOrRules.indexOf((UChar)(0xffff)); while (blockSeparatorPos >= 0) { aliasesOrRules.extract(0, blockSeparatorPos, idBlock); aliasesOrRules.remove(0, blockSeparatorPos + 1); if (!idBlock.isEmpty()) - transliterators.addElement(Transliterator::createInstance(idBlock, UTRANS_FORWARD, pe, ec), ec); + transliterators.adoptElement(Transliterator::createInstance(idBlock, UTRANS_FORWARD, pe, ec), ec); if (!transes->isEmpty()) - transliterators.addElement(transes->orphanElementAt(0), ec); + transliterators.adoptElement(transes->orphanElementAt(0), ec); blockSeparatorPos = aliasesOrRules.indexOf((UChar)(0xffff)); } if (!aliasesOrRules.isEmpty()) - transliterators.addElement(Transliterator::createInstance(aliasesOrRules, UTRANS_FORWARD, pe, ec), ec); + transliterators.adoptElement(Transliterator::createInstance(aliasesOrRules, UTRANS_FORWARD, pe, ec), ec); while (!transes->isEmpty()) - transliterators.addElement(transes->orphanElementAt(0), ec); + transliterators.adoptElement(transes->orphanElementAt(0), ec); + transliterators.setDeleter(nullptr); if (U_SUCCESS(ec)) { t = new CompoundTransliterator(ID, transliterators, @@ -186,7 +187,7 @@ Transliterator* TransliteratorAlias::create(UParseError& pe, } break; case RULES: - UPRV_UNREACHABLE; // don't call create() if isRuleBased() returns TRUE! + UPRV_UNREACHABLE_EXIT; // don't call create() if isRuleBased() returns TRUE! } return t; } @@ -543,7 +544,7 @@ TransliteratorRegistry::TransliteratorRegistry(UErrorCode& status) : variantList.setComparer(uhash_compareCaselessUnicodeString); UnicodeString *emptyString = new UnicodeString(); if (emptyString != NULL) { - variantList.addElement(emptyString, status); + variantList.adoptElement(emptyString, status); } availableIDs.setDeleter(uprv_deleteUObject); availableIDs.setComparer(uhash_compareCaselessUnicodeString); @@ -592,7 +593,7 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID, if (entry->entryType == TransliteratorEntry::RULES_FORWARD || entry->entryType == TransliteratorEntry::RULES_REVERSE || entry->entryType == TransliteratorEntry::LOCALE_RULES) { - + if (parser.idBlockVector.isEmpty() && parser.dataVector.isEmpty()) { entry->u.data = 0; entry->entryType = TransliteratorEntry::ALIAS; @@ -611,6 +612,8 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID, entry->entryType = TransliteratorEntry::COMPOUND_RBT; entry->compoundFilter = parser.orphanCompoundFilter(); entry->u.dataVector = new UVector(status); + // TODO ICU-21701: missing check for nullptr and failed status. + // Unclear how best to bail out. entry->stringArg.remove(); int32_t limit = parser.idBlockVector.size(); @@ -626,6 +629,9 @@ Transliterator* TransliteratorRegistry::reget(const UnicodeString& ID, if (!parser.dataVector.isEmpty()) { TransliterationRuleData* data = (TransliterationRuleData*)parser.dataVector.orphanElementAt(0); entry->u.dataVector->addElement(data, status); + if (U_FAILURE(status)) { + delete data; + } entry->stringArg += (UChar)0xffff; // use U+FFFF to mark position of RBTs in ID block } } @@ -951,7 +957,7 @@ void TransliteratorRegistry::registerEntry(const UnicodeString& ID, if (newID != NULL) { // NUL-terminate the ID string newID->getTerminatedBuffer(); - availableIDs.addElement(newID, status); + availableIDs.adoptElement(newID, status); } } } else { @@ -992,7 +998,7 @@ void TransliteratorRegistry::registerSTV(const UnicodeString& source, } UnicodeString *variantEntry = new UnicodeString(variant); if (variantEntry != NULL) { - variantList.addElement(variantEntry, status); + variantList.adoptElement(variantEntry, status); if (U_SUCCESS(status)) { variantListIndex = variantList.size() - 1; } @@ -1194,12 +1200,12 @@ TransliteratorEntry* TransliteratorRegistry::find(const UnicodeString& ID) { * Top-level find method. Attempt to find a source-target/variant in * either the dynamic or the static (locale resource) store. Perform * fallback. - * + * * Lookup sequence for ss_SS_SSS-tt_TT_TTT/v: * * ss_SS_SSS-tt_TT_TTT/v -- in hashtable * ss_SS_SSS-tt_TT_TTT/v -- in ss_SS_SSS (no fallback) - * + * * repeat with t = tt_TT_TTT, tt_TT, tt, and tscript * * ss_SS_SSS-t/ * @@ -1214,7 +1220,7 @@ TransliteratorEntry* TransliteratorRegistry::find(const UnicodeString& ID) { TransliteratorEntry* TransliteratorRegistry::find(UnicodeString& source, UnicodeString& target, UnicodeString& variant) { - + TransliteratorSpec src(source); TransliteratorSpec trg(target); TransliteratorEntry* entry; @@ -1232,13 +1238,13 @@ TransliteratorEntry* TransliteratorRegistry::find(UnicodeString& source, } if (variant.length() != 0) { - + // Seek exact match in hashtable entry = findInDynamicStore(src, trg, variant); if (entry != 0) { return entry; } - + // Seek exact match in locale resources entry = findInStaticStore(src, trg, variant); if (entry != 0) { @@ -1254,7 +1260,7 @@ TransliteratorEntry* TransliteratorRegistry::find(UnicodeString& source, if (entry != 0) { return entry; } - + // Seek match in locale resources entry = findInStaticStore(src, trg, NO_VARIANT); if (entry != 0) { @@ -1320,7 +1326,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID return t; case TransliteratorEntry::COMPOUND_RBT: { - UVector* rbts = new UVector(entry->u.dataVector->size(), status); + UVector* rbts = new UVector(uprv_deleteUObject, nullptr, entry->u.dataVector->size(), status); // Check for null pointer if (rbts == NULL) { status = U_MEMORY_ALLOCATION_ERROR; @@ -1334,12 +1340,13 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID if (tl == 0) status = U_MEMORY_ALLOCATION_ERROR; else - rbts->addElement(tl, status); + rbts->adoptElement(tl, status); } if (U_FAILURE(status)) { delete rbts; return 0; } + rbts->setDeleter(nullptr); aliasReturn = new TransliteratorAlias(ID, entry->stringArg, rbts, entry->compoundFilter); } if (aliasReturn == 0) { @@ -1360,7 +1367,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID // we modify the registry with the parsed data and retry. { TransliteratorParser parser(status); - + // We use the file name, taken from another resource bundle // 2-d array at static init time, as a locale language. We're // just using the locale mechanism to map through to a file @@ -1369,7 +1376,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID //UResourceBundle *bundle = ures_openDirect(0, ch, &status); UnicodeString rules = entry->stringArg; //ures_close(bundle); - + //if (U_FAILURE(status)) { // We have a failure of some kind. Remove the ID from the // registry so we don't keep trying. NOTE: This will throw off @@ -1379,7 +1386,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID // or unrecoverable run time memory failures. // remove(ID); //} else { - + // If the status indicates a failure, then we don't have any // rules -- there is probably an installation error. The list // in the root locale should correspond to all the installed @@ -1395,7 +1402,7 @@ Transliterator* TransliteratorRegistry::instantiateEntry(const UnicodeString& ID } return 0; default: - UPRV_UNREACHABLE; // can't get here + UPRV_UNREACHABLE_EXIT; // can't get here } } U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/transreg.h b/deps/icu-small/source/i18n/transreg.h index 0a0698862be1ac..686e62ae33cd33 100644 --- a/deps/icu-small/source/i18n/transreg.h +++ b/deps/icu-small/source/i18n/transreg.h @@ -103,7 +103,7 @@ class TransliteratorAlias : public UMemory { // null, zero, empty. // 2. CompoundRBT // Here ID is the ID, aliasID is the idBlock, trans is the - // contained RBT, and idSplitPoint is the offet in aliasID + // contained RBT, and idSplitPoint is the offset in aliasID // where the contained RBT goes. compoundFilter is the // compound filter, and it is _not_ owned. // 3. Rules @@ -170,7 +170,7 @@ class TransliteratorRegistry : public UMemory { * @param ID the given ID * @param aliasReturn output param to receive TransliteratorAlias; * should be NULL on entry - * @param parseError Struct to recieve information on position + * @param parseError Struct to receive information on position * of error if an error is encountered * @param status Output param set to success/failure code. */ @@ -293,7 +293,7 @@ class TransliteratorRegistry : public UMemory { * Return a registered source specifier. * @param index which specifier to return, from 0 to n-1, where * n = countAvailableSources() - * @param result fill-in paramter to receive the source specifier. + * @param result fill-in parameter to receive the source specifier. * If index is out of range, result will be empty. * @return reference to result */ @@ -314,7 +314,7 @@ class TransliteratorRegistry : public UMemory { * @param index which specifier to return, from 0 to n-1, where * n = countAvailableTargets(source) * @param source the source specifier - * @param result fill-in paramter to receive the target specifier. + * @param result fill-in parameter to receive the target specifier. * If source is invalid or if index is out of range, result will * be empty. * @return reference to result @@ -345,7 +345,7 @@ class TransliteratorRegistry : public UMemory { * n = countAvailableVariants(source, target) * @param source the source specifier * @param target the target specifier - * @param result fill-in paramter to receive the variant + * @param result fill-in parameter to receive the variant * specifier. If source is invalid or if target is invalid or if * index is out of range, result will be empty. * @return reference to result @@ -417,11 +417,11 @@ class TransliteratorRegistry : public UMemory { public: Enumeration(const TransliteratorRegistry& reg); virtual ~Enumeration(); - virtual int32_t count(UErrorCode& status) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); + virtual int32_t count(UErrorCode& status) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; static UClassID U_EXPORT2 getStaticClassID(); - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: int32_t index; const TransliteratorRegistry& reg; diff --git a/deps/icu-small/source/i18n/tridpars.cpp b/deps/icu-small/source/i18n/tridpars.cpp index eb6c6bbba3a9a9..0ca168e7a3e30b 100644 --- a/deps/icu-small/source/i18n/tridpars.cpp +++ b/deps/icu-small/source/i18n/tridpars.cpp @@ -153,10 +153,10 @@ TransliteratorIDParser::parseSingleID(const UnicodeString& id, int32_t& pos, single = specsToID(specsA, FORWARD); // Null pointers check if (b == NULL || single == NULL) { - delete b; - delete single; - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; + delete b; + delete single; + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; } single->canonID.append(OPEN_REV) .append(b->canonID).append(CLOSE_REV); @@ -169,10 +169,10 @@ TransliteratorIDParser::parseSingleID(const UnicodeString& id, int32_t& pos, single = specsToID(specsB, FORWARD); // Check for null pointer. if (a == NULL || single == NULL) { - delete a; - delete single; - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; + delete a; + delete single; + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; } single->canonID.append(OPEN_REV) .append(a->canonID).append(CLOSE_REV); @@ -193,8 +193,8 @@ TransliteratorIDParser::parseSingleID(const UnicodeString& id, int32_t& pos, } // Check for NULL pointer if (single == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return NULL; + status = U_MEMORY_ALLOCATION_ERROR; + return NULL; } single->filter = specsA->filter; } @@ -364,6 +364,8 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d int32_t pos = 0; int32_t withParens = 1; list.removeAllElements(); + UObjectDeleter *save = list.setDeleter(_deleteSingleID); + UnicodeSet* filter; globalFilter = NULL; canonID.truncate(0); @@ -392,7 +394,7 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d break; } if (dir == FORWARD) { - list.addElement(single, ec); + list.adoptElement(single, ec); } else { list.insertElementAt(single, 0, ec); } @@ -442,10 +444,10 @@ UBool TransliteratorIDParser::parseCompoundID(const UnicodeString& id, int32_t d goto FAIL; } + list.setDeleter(save); return TRUE; FAIL: - UObjectDeleter *save = list.setDeleter(_deleteSingleID); list.removeAllElements(); list.setDeleter(save); delete globalFilter; @@ -494,9 +496,8 @@ void TransliteratorIDParser::instantiateList(UVector& list, ec = U_INVALID_ID; goto RETURN; } - tlist.addElement(t, ec); + tlist.adoptElement(t, ec); if (U_FAILURE(ec)) { - delete t; goto RETURN; } } @@ -509,10 +510,7 @@ void TransliteratorIDParser::instantiateList(UVector& list, // Should never happen ec = U_INTERNAL_TRANSLITERATOR_ERROR; } - tlist.addElement(t, ec); - if (U_FAILURE(ec)) { - delete t; - } + tlist.adoptElement(t, ec); } RETURN: @@ -525,9 +523,8 @@ void TransliteratorIDParser::instantiateList(UVector& list, while (tlist.size() > 0) { t = (Transliterator*) tlist.orphanElementAt(0); - list.addElement(t, ec); + list.adoptElement(t, ec); if (U_FAILURE(ec)) { - delete t; list.removeAllElements(); break; } @@ -664,16 +661,16 @@ void TransliteratorIDParser::registerSpecialInverse(const UnicodeString& target, UnicodeString *tempus = new UnicodeString(inverseTarget); // Used for null pointer check before usage. if (tempus == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return; + status = U_MEMORY_ALLOCATION_ERROR; + return; } SPECIAL_INVERSES->put(target, tempus, status); if (bidirectional) { - tempus = new UnicodeString(target); - if (tempus == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return; - } + tempus = new UnicodeString(target); + if (tempus == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } SPECIAL_INVERSES->put(inverseTarget, tempus, status); } } @@ -911,8 +908,8 @@ void U_CALLCONV TransliteratorIDParser::init(UErrorCode &status) { SPECIAL_INVERSES = new Hashtable(TRUE, status); if (SPECIAL_INVERSES == NULL) { - status = U_MEMORY_ALLOCATION_ERROR; - return; + status = U_MEMORY_ALLOCATION_ERROR; + return; } SPECIAL_INVERSES->setValueDeleter(uprv_deleteUObject); } diff --git a/deps/icu-small/source/i18n/tridpars.h b/deps/icu-small/source/i18n/tridpars.h index cd56146023162f..03d68ccac910c9 100644 --- a/deps/icu-small/source/i18n/tridpars.h +++ b/deps/icu-small/source/i18n/tridpars.h @@ -61,7 +61,7 @@ class TransliteratorIDParser /* not : public UObject because all methods are sta * 'sawSource' is true if there was an explicit source in the * parsed id. If there was no explicit source, then an implied * source of ANY is returned and 'sawSource' is set to false. - * + * * 'filter' is the parsed filter pattern, or null if there was no * filter. */ @@ -222,7 +222,7 @@ class TransliteratorIDParser /* not : public UObject because all methods are sta * @param source the given source. * @param target the given target. * @param variant the given variant - * @param isSourcePresent If true then the source is present. + * @param isSourcePresent If true then the source is present. * If the source is not present, ANY will be * given as the source, and isSourcePresent will be null * @return an array of 4 strings: source, target, variant, and diff --git a/deps/icu-small/source/i18n/tzfmt.cpp b/deps/icu-small/source/i18n/tzfmt.cpp index e70005a384085e..ef3cfad80ce1d6 100644 --- a/deps/icu-small/source/i18n/tzfmt.cpp +++ b/deps/icu-small/source/i18n/tzfmt.cpp @@ -106,7 +106,7 @@ static const UChar ALT_GMT_STRINGS[][4] = { }; // Order of GMT offset pattern parsing, *_HMS must be evaluated first -// because *_HM is most likely a substring of *_HMS +// because *_HM is most likely a substring of *_HMS static const int32_t PARSE_GMT_OFFSET_TYPES[] = { UTZFMT_PAT_POSITIVE_HMS, UTZFMT_PAT_NEGATIVE_HMS, @@ -270,7 +270,7 @@ GMTOffsetField::isValid(FieldType type, int32_t width) { case SECOND: return (width == 2); default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } return (width > 0); } @@ -296,7 +296,7 @@ inline uint8_t GMTOffsetField::getWidth() const { return fWidth; } - + inline const UChar* GMTOffsetField::getPatternText(void) const { return fText; @@ -316,7 +316,7 @@ U_CDECL_END // ------------------------------------------------------------------ UOBJECT_DEFINE_RTTI_IMPLEMENTATION(TimeZoneFormat) -TimeZoneFormat::TimeZoneFormat(const Locale& locale, UErrorCode& status) +TimeZoneFormat::TimeZoneFormat(const Locale& locale, UErrorCode& status) : fLocale(locale), fTimeZoneNames(NULL), fTimeZoneGenericNames(NULL), fDefParseOptionFlags(0), fTZDBTimeZoneNames(NULL) { @@ -482,11 +482,11 @@ TimeZoneFormat::operator=(const TimeZoneFormat& other) { } -UBool +bool TimeZoneFormat::operator==(const Format& other) const { TimeZoneFormat* tzfmt = (TimeZoneFormat*)&other; - UBool isEqual = + bool isEqual = fLocale == tzfmt->fLocale && fGMTPattern == tzfmt->fGMTPattern && fGMTZeroFormat == tzfmt->fGMTZeroFormat @@ -555,7 +555,7 @@ TimeZoneFormat::getDefaultParseOptions(void) const { } -UnicodeString& +UnicodeString& TimeZoneFormat::getGMTPattern(UnicodeString& pattern) const { return pattern.setTo(fGMTPattern); } @@ -595,7 +595,7 @@ TimeZoneFormat::setGMTOffsetPattern(UTimeZoneFormatGMTOffsetPatternType type, co required = FIELDS_HMS; break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } UVector* patternItems = parseOffsetPattern(pattern, required, status); @@ -828,7 +828,7 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par int32_t offset; // Styles using localized GMT format as fallback - UBool fallbackLocalizedGMT = + UBool fallbackLocalizedGMT = (style == UTZFMT_STYLE_SPECIFIC_LONG || style == UTZFMT_STYLE_GENERIC_LONG || style == UTZFMT_STYLE_GENERIC_LOCATION); UBool fallbackShortLocalizedGMT = (style == UTZFMT_STYLE_SPECIFIC_SHORT || style == UTZFMT_STYLE_GENERIC_SHORT); @@ -1033,7 +1033,7 @@ TimeZoneFormat::parse(UTimeZoneFormatStyle style, const UnicodeString& text, Par break; default: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } int32_t len = 0; @@ -2459,7 +2459,7 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re if (itemType != GMTOffsetField::TEXT) { if (GMTOffsetField::isValid(itemType, itemLength)) { GMTOffsetField* fld = GMTOffsetField::createTimeField(itemType, static_cast(itemLength), status); - result->addElement(fld, status); + result->addElementX(fld, status); if (U_FAILURE(status)) { break; } @@ -2485,7 +2485,7 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re if (itemType == GMTOffsetField::TEXT) { if (text.length() > 0) { GMTOffsetField* textfld = GMTOffsetField::createText(text, status); - result->addElement(textfld, status); + result->addElementX(textfld, status); if (U_FAILURE(status)) { break; } @@ -2494,7 +2494,7 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re } else { if (GMTOffsetField::isValid(itemType, itemLength)) { GMTOffsetField* fld = GMTOffsetField::createTimeField(itemType, static_cast(itemLength), status); - result->addElement(fld, status); + result->addElementX(fld, status); if (U_FAILURE(status)) { break; } @@ -2512,7 +2512,7 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re if (itemType != GMTOffsetField::TEXT) { if (GMTOffsetField::isValid(itemType, itemLength)) { GMTOffsetField* fld = GMTOffsetField::createTimeField(itemType, static_cast(itemLength), status); - result->addElement(fld, status); + result->addElementX(fld, status); if (U_FAILURE(status)) { break; } @@ -2532,12 +2532,12 @@ TimeZoneFormat::parseOffsetPattern(const UnicodeString& pattern, OffsetFields re if (itemType == GMTOffsetField::TEXT) { if (text.length() > 0) { GMTOffsetField* tfld = GMTOffsetField::createText(text, status); - result->addElement(tfld, status); + result->addElementX(tfld, status); } } else { if (GMTOffsetField::isValid(itemType, itemLength)) { GMTOffsetField* fld = GMTOffsetField::createTimeField(itemType, static_cast(itemLength), status); - result->addElement(fld, status); + result->addElementX(fld, status); } else { status = U_ILLEGAL_ARGUMENT_ERROR; } @@ -2729,7 +2729,7 @@ class ZoneIdMatchHandler : public TextTrieMapSearchResultHandler { ZoneIdMatchHandler(); virtual ~ZoneIdMatchHandler(); - UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status); + UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) override; const UChar* getID(); int32_t getMatchLen(); private: @@ -2737,7 +2737,7 @@ class ZoneIdMatchHandler : public TextTrieMapSearchResultHandler { const UChar* fID; }; -ZoneIdMatchHandler::ZoneIdMatchHandler() +ZoneIdMatchHandler::ZoneIdMatchHandler() : fLen(0), fID(NULL) { } @@ -2780,15 +2780,17 @@ static void U_CALLCONV initZoneIdTrie(UErrorCode &status) { status = U_MEMORY_ALLOCATION_ERROR; return; } - StringEnumeration *tzenum = TimeZone::createEnumeration(); - const UnicodeString *id; - while ((id = tzenum->snext(status)) != NULL) { - const UChar* uid = ZoneMeta::findTimeZoneID(*id); - if (uid) { - gZoneIdTrie->put(uid, const_cast(uid), status); + StringEnumeration *tzenum = TimeZone::createEnumeration(status); + if (U_SUCCESS(status)) { + const UnicodeString *id; + while ((id = tzenum->snext(status)) != NULL) { + const UChar* uid = ZoneMeta::findTimeZoneID(*id); + if (uid) { + gZoneIdTrie->put(uid, const_cast(uid), status); + } } + delete tzenum; } - delete tzenum; } @@ -2803,7 +2805,7 @@ TimeZoneFormat::parseZoneID(const UnicodeString& text, ParsePosition& pos, Unico if (U_SUCCESS(status)) { LocalPointer handler(new ZoneIdMatchHandler()); - gZoneIdTrie->search(text, start, handler.getAlias(), status); + gZoneIdTrie->search(text, start, handler.getAlias(), status); len = handler->getMatchLen(); if (len > 0) { tzID.setTo(handler->getID(), -1); @@ -2853,7 +2855,7 @@ TimeZoneFormat::parseShortZoneID(const UnicodeString& text, ParsePosition& pos, if (U_SUCCESS(status)) { LocalPointer handler(new ZoneIdMatchHandler()); - gShortZoneIdTrie->search(text, start, handler.getAlias(), status); + gShortZoneIdTrie->search(text, start, handler.getAlias(), status); len = handler->getMatchLen(); if (len > 0) { tzID.setTo(handler->getID(), -1); diff --git a/deps/icu-small/source/i18n/tzgnames.cpp b/deps/icu-small/source/i18n/tzgnames.cpp index e056461dc30a63..ed5f42d7bc1d6d 100644 --- a/deps/icu-small/source/i18n/tzgnames.cpp +++ b/deps/icu-small/source/i18n/tzgnames.cpp @@ -195,7 +195,7 @@ class GNameSearchHandler : public TextTrieMapSearchResultHandler { GNameSearchHandler(uint32_t types); virtual ~GNameSearchHandler(); - UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status); + UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) override; UVector* getMatches(int32_t& maxMatchLen); private: @@ -244,7 +244,7 @@ GNameSearchHandler::handleMatch(int32_t matchLength, const CharacterNode *node, gmatch->gnameInfo = nameinfo; gmatch->matchLength = matchLength; gmatch->timeType = UTZFMT_TIME_TYPE_UNKNOWN; - fResults->addElement(gmatch, status); + fResults->addElementX(gmatch, status); if (U_FAILURE(status)) { uprv_free(gmatch); } else { @@ -328,7 +328,7 @@ class TZGNCore : public UMemory { // --------------------------------------------------- -// TZGNCore - core implmentation of TimeZoneGenericNames +// TZGNCore - core implementation of TimeZoneGenericNames // // TimeZoneGenericNames is parallel to TimeZoneNames, // but handles run-time generated time zone names. @@ -554,7 +554,7 @@ TZGNCore::getGenericLocationName(const UnicodeString& tzCanonicalID) { // If this is not the primary zone in the country, // use the exemplar city name. - // getExemplarLocationName should retur non-empty string + // getExemplarLocationName should return non-empty string // if the time zone is associated with a region UnicodeString city; @@ -1287,7 +1287,7 @@ TimeZoneGenericNames::createInstance(const Locale& locale, UErrorCode& status) { return instance; } -UBool +bool TimeZoneGenericNames::operator==(const TimeZoneGenericNames& other) const { // Just compare if the other object also use the same // ref entry diff --git a/deps/icu-small/source/i18n/tzgnames.h b/deps/icu-small/source/i18n/tzgnames.h index bcdf0f399ba8a1..26112c5db65f70 100644 --- a/deps/icu-small/source/i18n/tzgnames.h +++ b/deps/icu-small/source/i18n/tzgnames.h @@ -10,8 +10,8 @@ #define __TZGNAMES_H /** - * \file - * \brief C API: Time zone generic names classe + * \file + * \brief C API: Time zone generic names classes */ #include "unicode/utypes.h" @@ -45,8 +45,8 @@ class U_I18N_API TimeZoneGenericNames : public UMemory { static TimeZoneGenericNames* createInstance(const Locale& locale, UErrorCode& status); - virtual UBool operator==(const TimeZoneGenericNames& other) const; - virtual UBool operator!=(const TimeZoneGenericNames& other) const {return !operator==(other);} + virtual bool operator==(const TimeZoneGenericNames& other) const; + virtual bool operator!=(const TimeZoneGenericNames& other) const {return !operator==(other);} virtual TimeZoneGenericNames* clone() const; UnicodeString& getDisplayName(const TimeZone& tz, UTimeZoneGenericNameType type, diff --git a/deps/icu-small/source/i18n/tznames.cpp b/deps/icu-small/source/i18n/tznames.cpp index d789c123630260..5c504d01cb6342 100644 --- a/deps/icu-small/source/i18n/tznames.cpp +++ b/deps/icu-small/source/i18n/tznames.cpp @@ -104,24 +104,24 @@ class TimeZoneNamesDelegate : public TimeZoneNames { TimeZoneNamesDelegate(const Locale& locale, UErrorCode& status); virtual ~TimeZoneNamesDelegate(); - virtual UBool operator==(const TimeZoneNames& other) const; - virtual UBool operator!=(const TimeZoneNames& other) const {return !operator==(other);} - virtual TimeZoneNamesDelegate* clone() const; + virtual bool operator==(const TimeZoneNames& other) const override; + virtual bool operator!=(const TimeZoneNames& other) const {return !operator==(other);} + virtual TimeZoneNamesDelegate* clone() const override; - StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const; - StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const; - UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const; - UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const; + StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const override; + StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const override; + UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const override; + UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const override; - UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const; - UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const; + UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const override; + UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const override; - UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const; + UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const override; - void loadAllDisplayNames(UErrorCode& status); - void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const; + void loadAllDisplayNames(UErrorCode& status) override; + void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const override; - MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const; + MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const override; private: TimeZoneNamesDelegate(); TimeZoneNamesCacheEntry* fTZnamesCacheEntry; @@ -219,10 +219,10 @@ TimeZoneNamesDelegate::~TimeZoneNamesDelegate() { umtx_unlock(&gTimeZoneNamesLock); } -UBool +bool TimeZoneNamesDelegate::operator==(const TimeZoneNames& other) const { if (this == &other) { - return TRUE; + return true; } // Just compare if the other object also use the same // cache entry @@ -230,7 +230,7 @@ TimeZoneNamesDelegate::operator==(const TimeZoneNames& other) const { if (rhs) { return fTZnamesCacheEntry == rhs->fTZnamesCacheEntry; } - return FALSE; + return false; } TimeZoneNamesDelegate* @@ -345,7 +345,7 @@ TimeZoneNames::getDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, return name; } -// Empty default implementation, to be overriden in tznames_impl.cpp. +// Empty default implementation, to be overridden in tznames_impl.cpp. void TimeZoneNames::loadAllDisplayNames(UErrorCode& /*status*/) { } @@ -419,7 +419,7 @@ TimeZoneNames::MatchInfoCollection::addZone(UTimeZoneNameType nameType, int32_t status = U_MEMORY_ALLOCATION_ERROR; return; } - matches(status)->addElement(matchInfo, status); + matches(status)->addElementX(matchInfo, status); if (U_FAILURE(status)) { delete matchInfo; } @@ -436,7 +436,7 @@ TimeZoneNames::MatchInfoCollection::addMetaZone(UTimeZoneNameType nameType, int3 status = U_MEMORY_ALLOCATION_ERROR; return; } - matches(status)->addElement(matchInfo, status); + matches(status)->addElementX(matchInfo, status); if (U_FAILURE(status)) { delete matchInfo; } diff --git a/deps/icu-small/source/i18n/tznames_impl.cpp b/deps/icu-small/source/i18n/tznames_impl.cpp index 180b7fefbf3623..d450b7456489bf 100644 --- a/deps/icu-small/source/i18n/tznames_impl.cpp +++ b/deps/icu-small/source/i18n/tznames_impl.cpp @@ -155,12 +155,12 @@ CharacterNode::addValue(void *value, UObjectDeleter *valueDeleter, UErrorCode &s } return; } - values->addElement(fValues, status); + values->addElementX(fValues, status); fValues = values; fHasValuesVector = TRUE; } // Add the new value. - ((UVector *)fValues)->addElement(value, status); + ((UVector *)fValues)->addElementX(value, status); } } @@ -174,7 +174,7 @@ TextTrieMapSearchResultHandler::~TextTrieMapSearchResultHandler(){ // TextTrieMap class implementation // --------------------------------------------------- TextTrieMap::TextTrieMap(UBool ignoreCase, UObjectDeleter *valueDeleter) -: fIgnoreCase(ignoreCase), fNodes(NULL), fNodesCapacity(0), fNodesCount(0), +: fIgnoreCase(ignoreCase), fNodes(NULL), fNodesCapacity(0), fNodesCount(0), fLazyContents(NULL), fIsEmpty(TRUE), fValueDeleter(valueDeleter) { } @@ -189,7 +189,7 @@ TextTrieMap::~TextTrieMap() { if (fValueDeleter) { fValueDeleter(fLazyContents->elementAt(i+1)); } - } + } delete fLazyContents; } } @@ -206,7 +206,7 @@ int32_t TextTrieMap::isEmpty() const { // We defer actually building the TextTrieMap node structure until the first time a // search is performed. put() simply saves the parameters in case we do // eventually need to build it. -// +// void TextTrieMap::put(const UnicodeString &key, void *value, ZNStringPool &sp, UErrorCode &status) { const UChar *s = sp.get(key, status); @@ -233,7 +233,7 @@ TextTrieMap::put(const UChar *key, void *value, UErrorCode &status) { U_ASSERT(fLazyContents != NULL); UChar *s = const_cast(key); - fLazyContents->addElement(s, status); + fLazyContents->addElementX(s, status); if (U_FAILURE(status)) { if (fValueDeleter) { fValueDeleter((void*) key); @@ -241,7 +241,7 @@ TextTrieMap::put(const UChar *key, void *value, UErrorCode &status) { return; } - fLazyContents->addElement(value, status); + fLazyContents->addElementX(value, status); } void @@ -373,7 +373,7 @@ void TextTrieMap::buildTrie(UErrorCode &status) { putImpl(keyString, val, status); } delete fLazyContents; - fLazyContents = NULL; + fLazyContents = NULL; } } @@ -470,9 +470,9 @@ ZNStringPool::ZNStringPool(UErrorCode &status) { return; } - fHash = uhash_open(uhash_hashUChars /* keyHash */, - uhash_compareUChars /* keyComp */, - uhash_compareUChars /* valueComp */, + fHash = uhash_open(uhash_hashUChars /* keyHash */, + uhash_compareUChars /* keyComp */, + uhash_compareUChars /* valueComp */, &status); if (U_FAILURE(status)) { return; @@ -521,19 +521,19 @@ const UChar *ZNStringPool::get(const UChar *s, UErrorCode &status) { } fChunks->fNext = oldChunk; } - + UChar *destString = &fChunks->fStrings[fChunks->fLimit]; u_strcpy(destString, s); fChunks->fLimit += (length + 1); uhash_put(fHash, destString, destString, &status); return destString; -} +} // // ZNStringPool::adopt() Put a string into the hash, but do not copy the string data // into the pool's storage. Used for strings from resource bundles, -// which will perisist for the life of the zone string formatter, and +// which will persist for the life of the zone string formatter, and // therefore can be used directly without copying. const UChar *ZNStringPool::adopt(const UChar * s, UErrorCode &status) { const UChar *pooledString; @@ -550,7 +550,7 @@ const UChar *ZNStringPool::adopt(const UChar * s, UErrorCode &status) { return s; } - + const UChar *ZNStringPool::get(const UnicodeString &s, UErrorCode &status) { UnicodeString &nonConstStr = const_cast(s); return this->get(nonConstStr.getTerminatedBuffer(), status); @@ -776,7 +776,7 @@ struct ZNames::ZNamesLoader : public ResourceSink { clear(); ures_getAllItemsWithFallback(zoneStrings, key, *this, localStatus); - // Ignore errors, but propogate possible warnings. + // Ignore errors, but propagate possible warnings. if (U_SUCCESS(localStatus)) { errorCode = localStatus; } @@ -794,7 +794,7 @@ struct ZNames::ZNamesLoader : public ResourceSink { } virtual void put(const char* key, ResourceValue& value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { ResourceTable namesTable = value.getTable(errorCode); if (U_FAILURE(errorCode)) { return; } for (int32_t i = 0; namesTable.getKeyAndValue(i, key, value); ++i) { @@ -857,10 +857,10 @@ class MetaZoneIDsEnumeration : public StringEnumeration { MetaZoneIDsEnumeration(UVector* mzIDs); virtual ~MetaZoneIDsEnumeration(); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; - virtual const UnicodeString* snext(UErrorCode& status); - virtual void reset(UErrorCode& status); - virtual int32_t count(UErrorCode& status) const; + virtual UClassID getDynamicClassID(void) const override; + virtual const UnicodeString* snext(UErrorCode& status) override; + virtual void reset(UErrorCode& status) override; + virtual int32_t count(UErrorCode& status) const override; private: int32_t fLen; int32_t fPos; @@ -870,11 +870,11 @@ class MetaZoneIDsEnumeration : public StringEnumeration { UOBJECT_DEFINE_RTTI_IMPLEMENTATION(MetaZoneIDsEnumeration) -MetaZoneIDsEnumeration::MetaZoneIDsEnumeration() +MetaZoneIDsEnumeration::MetaZoneIDsEnumeration() : fLen(0), fPos(0), fMetaZoneIDs(NULL), fLocalVector(NULL) { } -MetaZoneIDsEnumeration::MetaZoneIDsEnumeration(const UVector& mzIDs) +MetaZoneIDsEnumeration::MetaZoneIDsEnumeration(const UVector& mzIDs) : fPos(0), fMetaZoneIDs(&mzIDs), fLocalVector(NULL) { fLen = fMetaZoneIDs->size(); } @@ -920,7 +920,7 @@ class ZNameSearchHandler : public TextTrieMapSearchResultHandler { ZNameSearchHandler(uint32_t types); virtual ~ZNameSearchHandler(); - UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status); + UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) override; TimeZoneNames::MatchInfoCollection* getMatches(int32_t& maxMatchLen); private: @@ -929,7 +929,7 @@ class ZNameSearchHandler : public TextTrieMapSearchResultHandler { TimeZoneNames::MatchInfoCollection* fResults; }; -ZNameSearchHandler::ZNameSearchHandler(uint32_t types) +ZNameSearchHandler::ZNameSearchHandler(uint32_t types) : fTypes(types), fMaxMatchLen(0), fResults(NULL) { } @@ -1104,13 +1104,13 @@ TimeZoneNamesImpl::cleanup() { } } -UBool +bool TimeZoneNamesImpl::operator==(const TimeZoneNames& other) const { if (this == &other) { - return TRUE; + return true; } // No implementation for now - return FALSE; + return false; } TimeZoneNamesImpl* @@ -1165,7 +1165,7 @@ TimeZoneNamesImpl::_getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCod OlsonToMetaMappingEntry *map = (OlsonToMetaMappingEntry *)mappings->elementAt(i); const UChar *mzID = map->mzid; if (!mzIDs->contains((void *)mzID)) { - mzIDs->addElement((void *)mzID, status); + mzIDs->addElementX((void *)mzID, status); } } if (U_SUCCESS(status)) { @@ -1194,7 +1194,7 @@ TimeZoneNamesImpl::getReferenceZoneID(const UnicodeString& mzID, const char* reg return TimeZoneNamesImpl::_getReferenceZoneID(mzID, region, tzID); } -// static implementaion of getReferenceZoneID +// static implementation of getReferenceZoneID UnicodeString& TimeZoneNamesImpl::_getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) { ZoneMeta::getZoneIdByMetazone(mzID, UnicodeString(region, -1, US_INV), tzID); @@ -1560,7 +1560,7 @@ struct TimeZoneNamesImpl::ZoneStringsLoader : public ResourceSink { } virtual void put(const char *key, ResourceValue &value, UBool noFallback, - UErrorCode &status) { + UErrorCode &status) override { ResourceTable timeZonesTable = value.getTable(status); if (U_FAILURE(status)) { return; } for (int32_t i = 0; timeZonesTable.getKeyAndValue(i, key, value); ++i) { @@ -1891,7 +1891,7 @@ class TZDBNameSearchHandler : public TextTrieMapSearchResultHandler { TZDBNameSearchHandler(uint32_t types, const char* region); virtual ~TZDBNameSearchHandler(); - UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status); + UBool handleMatch(int32_t matchLength, const CharacterNode *node, UErrorCode &status) override; TimeZoneNames::MatchInfoCollection* getMatches(int32_t& maxMatchLen); private: @@ -1901,7 +1901,7 @@ class TZDBNameSearchHandler : public TextTrieMapSearchResultHandler { const char* fRegion; }; -TZDBNameSearchHandler::TZDBNameSearchHandler(uint32_t types, const char* region) +TZDBNameSearchHandler::TZDBNameSearchHandler(uint32_t types, const char* region) : fTypes(types), fMaxMatchLen(0), fResults(NULL), fRegion(region) { } @@ -2156,13 +2156,13 @@ TZDBTimeZoneNames::TZDBTimeZoneNames(const Locale& locale) TZDBTimeZoneNames::~TZDBTimeZoneNames() { } -UBool +bool TZDBTimeZoneNames::operator==(const TimeZoneNames& other) const { if (this == &other) { - return TRUE; + return true; } // No implementation for now - return FALSE; + return false; } TZDBTimeZoneNames* diff --git a/deps/icu-small/source/i18n/tznames_impl.h b/deps/icu-small/source/i18n/tznames_impl.h index 417c0511f81f8a..d047fa3541870e 100644 --- a/deps/icu-small/source/i18n/tznames_impl.h +++ b/deps/icu-small/source/i18n/tznames_impl.h @@ -74,7 +74,7 @@ class U_I18N_API ZNStringPool: public UMemory { */ struct CharacterNode { // No constructor or destructor. - // We malloc and free an uninitalized array of CharacterNode objects + // We malloc and free an uninitialized array of CharacterNode objects // and clear and delete them ourselves. void clear(); @@ -173,24 +173,24 @@ class TimeZoneNamesImpl : public TimeZoneNames { virtual ~TimeZoneNamesImpl(); - virtual UBool operator==(const TimeZoneNames& other) const; - virtual TimeZoneNamesImpl* clone() const; + virtual bool operator==(const TimeZoneNames& other) const override; + virtual TimeZoneNamesImpl* clone() const override; - StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const; - StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const; + StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const override; + StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const override; - UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const; - UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const; + UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const override; + UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const override; - UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const; - UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const; + UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const override; + UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const override; - UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const; + UnicodeString& getExemplarLocationName(const UnicodeString& tzID, UnicodeString& name) const override; - TimeZoneNames::MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const; + TimeZoneNames::MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const override; - void loadAllDisplayNames(UErrorCode& status); - void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const; + void loadAllDisplayNames(UErrorCode& status) override; + void getDisplayNames(const UnicodeString& tzID, const UTimeZoneNameType types[], int32_t numTypes, UDate date, UnicodeString dest[], UErrorCode& status) const override; static UnicodeString& getDefaultExemplarLocationName(const UnicodeString& tzID, UnicodeString& name); @@ -235,19 +235,19 @@ class TZDBTimeZoneNames : public TimeZoneNames { TZDBTimeZoneNames(const Locale& locale); virtual ~TZDBTimeZoneNames(); - virtual UBool operator==(const TimeZoneNames& other) const; - virtual TZDBTimeZoneNames* clone() const; + virtual bool operator==(const TimeZoneNames& other) const override; + virtual TZDBTimeZoneNames* clone() const override; - StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const; - StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const; + StringEnumeration* getAvailableMetaZoneIDs(UErrorCode& status) const override; + StringEnumeration* getAvailableMetaZoneIDs(const UnicodeString& tzID, UErrorCode& status) const override; - UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const; - UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const; + UnicodeString& getMetaZoneID(const UnicodeString& tzID, UDate date, UnicodeString& mzID) const override; + UnicodeString& getReferenceZoneID(const UnicodeString& mzID, const char* region, UnicodeString& tzID) const override; - UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const; - UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const; + UnicodeString& getMetaZoneDisplayName(const UnicodeString& mzID, UTimeZoneNameType type, UnicodeString& name) const override; + UnicodeString& getTimeZoneDisplayName(const UnicodeString& tzID, UTimeZoneNameType type, UnicodeString& name) const override; - TimeZoneNames::MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const; + TimeZoneNames::MatchInfoCollection* find(const UnicodeString& text, int32_t start, uint32_t types, UErrorCode& status) const override; // When TZDBNames for the metazone is not available, this method returns NULL, // but does NOT set U_MISSING_RESOURCE_ERROR to status. diff --git a/deps/icu-small/source/i18n/tzrule.cpp b/deps/icu-small/source/i18n/tzrule.cpp index c4bf386fd4996c..a60fffbe020295 100644 --- a/deps/icu-small/source/i18n/tzrule.cpp +++ b/deps/icu-small/source/i18n/tzrule.cpp @@ -53,7 +53,7 @@ TimeZoneRule::operator=(const TimeZoneRule& right) { return *this; } -UBool +bool TimeZoneRule::operator==(const TimeZoneRule& that) const { return ((this == &that) || (typeid(*this) == typeid(that) && @@ -62,7 +62,7 @@ TimeZoneRule::operator==(const TimeZoneRule& that) const { fDSTSavings == that.fDSTSavings)); } -UBool +bool TimeZoneRule::operator!=(const TimeZoneRule& that) const { return !operator==(that); } @@ -120,14 +120,14 @@ InitialTimeZoneRule::operator=(const InitialTimeZoneRule& right) { return *this; } -UBool +bool InitialTimeZoneRule::operator==(const TimeZoneRule& that) const { return ((this == &that) || (typeid(*this) == typeid(that) && TimeZoneRule::operator==(that))); } -UBool +bool InitialTimeZoneRule::operator!=(const TimeZoneRule& that) const { return !operator==(that); } @@ -182,7 +182,7 @@ const int32_t AnnualTimeZoneRule::MAX_YEAR = 0x7FFFFFFF; /* max signed int32 */ AnnualTimeZoneRule::AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, - int32_t dstSavings, + int32_t dstSavings, const DateTimeRule& dateTimeRule, int32_t startYear, int32_t endYear) @@ -192,7 +192,7 @@ AnnualTimeZoneRule::AnnualTimeZoneRule(const UnicodeString& name, AnnualTimeZoneRule::AnnualTimeZoneRule(const UnicodeString& name, int32_t rawOffset, - int32_t dstSavings, + int32_t dstSavings, DateTimeRule* dateTimeRule, int32_t startYear, int32_t endYear) @@ -226,13 +226,13 @@ AnnualTimeZoneRule::operator=(const AnnualTimeZoneRule& right) { return *this; } -UBool +bool AnnualTimeZoneRule::operator==(const TimeZoneRule& that) const { if (this == &that) { - return TRUE; + return true; } if (typeid(*this) != typeid(that)) { - return FALSE; + return false; } AnnualTimeZoneRule *atzr = (AnnualTimeZoneRule*)&that; return (*fDateTimeRule == *(atzr->fDateTimeRule) && @@ -240,7 +240,7 @@ AnnualTimeZoneRule::operator==(const TimeZoneRule& that) const { fEndYear == atzr->fEndYear); } -UBool +bool AnnualTimeZoneRule::operator!=(const TimeZoneRule& that) const { return !operator==(that); } @@ -440,36 +440,36 @@ TimeArrayTimeZoneRule::operator=(const TimeArrayTimeZoneRule& right) { UErrorCode status = U_ZERO_ERROR; initStartTimes(right.fStartTimes, right.fNumStartTimes, status); //TODO - status? - fTimeRuleType = right.fTimeRuleType; + fTimeRuleType = right.fTimeRuleType; } return *this; } -UBool +bool TimeArrayTimeZoneRule::operator==(const TimeZoneRule& that) const { if (this == &that) { - return TRUE; + return true; } - if (typeid(*this) != typeid(that) || TimeZoneRule::operator==(that) == FALSE) { - return FALSE; + if (typeid(*this) != typeid(that) || !TimeZoneRule::operator==(that)) { + return false; } TimeArrayTimeZoneRule *tatzr = (TimeArrayTimeZoneRule*)&that; if (fTimeRuleType != tatzr->fTimeRuleType || fNumStartTimes != tatzr->fNumStartTimes) { - return FALSE; + return false; } // Compare start times - UBool res = TRUE; + bool res = true; for (int32_t i = 0; i < fNumStartTimes; i++) { if (fStartTimes[i] != tatzr->fStartTimes[i]) { - res = FALSE; + res = false; break; } } return res; } -UBool +bool TimeArrayTimeZoneRule::operator!=(const TimeZoneRule& that) const { return !operator==(that); } @@ -626,3 +626,4 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ //eof + diff --git a/deps/icu-small/source/i18n/tztrans.cpp b/deps/icu-small/source/i18n/tztrans.cpp index 3199b78ea833e9..900e4be5408e1b 100644 --- a/deps/icu-small/source/i18n/tztrans.cpp +++ b/deps/icu-small/source/i18n/tztrans.cpp @@ -63,28 +63,28 @@ TimeZoneTransition::operator=(const TimeZoneTransition& right) { return *this; } -UBool +bool TimeZoneTransition::operator==(const TimeZoneTransition& that) const { if (this == &that) { - return TRUE; + return true; } if (typeid(*this) != typeid(that)) { - return FALSE; + return false; } if (fTime != that.fTime) { - return FALSE; + return false; } if ((fFrom == NULL && that.fFrom == NULL) || (fFrom != NULL && that.fFrom != NULL && *fFrom == *(that.fFrom))) { if ((fTo == NULL && that.fTo == NULL) || (fTo != NULL && that.fTo != NULL && *fTo == *(that.fTo))) { - return TRUE; + return true; } } - return FALSE; + return false; } -UBool +bool TimeZoneTransition::operator!=(const TimeZoneTransition& that) const { return !operator==(that); } diff --git a/deps/icu-small/source/i18n/ucal.cpp b/deps/icu-small/source/i18n/ucal.cpp index 39a9508ca93443..33f72589c502c8 100644 --- a/deps/icu-small/source/i18n/ucal.cpp +++ b/deps/icu-small/source/i18n/ucal.cpp @@ -157,8 +157,8 @@ ucal_open( const UChar* zoneID, if (U_FAILURE(*status)) { return nullptr; } - - LocalPointer zone( (zoneID==nullptr) ? TimeZone::createDefault() + + LocalPointer zone( (zoneID==nullptr) ? TimeZone::createDefault() : _createTimeZone(zoneID, len, status), *status); if (U_FAILURE(*status)) { @@ -193,12 +193,12 @@ ucal_close(UCalendar *cal) } } -U_CAPI UCalendar* U_EXPORT2 +U_CAPI UCalendar* U_EXPORT2 ucal_clone(const UCalendar* cal, UErrorCode* status) { if(U_FAILURE(*status)) return 0; - + Calendar* res = ((Calendar*)cal)->clone(); if(res == 0) { @@ -283,7 +283,7 @@ ucal_getTimeZoneDisplayName(const UCalendar* cal, } U_CAPI UBool U_EXPORT2 -ucal_inDaylightTime( const UCalendar* cal, +ucal_inDaylightTime( const UCalendar* cal, UErrorCode* status ) { @@ -570,7 +570,7 @@ ucal_getLimit( const UCalendar* cal, } U_CAPI const char * U_EXPORT2 -ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status) +ucal_getLocaleByType(const UCalendar *cal, ULocDataLocaleType type, UErrorCode* status) { if (cal == nullptr) { if (U_SUCCESS(*status)) { @@ -667,7 +667,7 @@ static const UEnumeration defaultKeywordValues = { ulist_close_keyword_values_iterator, ulist_count_keyword_values, uenum_unextDefault, - ulist_next_keyword_value, + ulist_next_keyword_value, ulist_reset_keyword_values_iterator }; @@ -698,7 +698,7 @@ ucal_getKeywordValuesForLocale(const char * /* key */, const char* locale, UBool // Resolve region char prefRegion[ULOC_COUNTRY_CAPACITY]; (void)ulocimp_getRegionForSupplementalData(locale, TRUE, prefRegion, sizeof(prefRegion), status); - + // Read preferred calendar values from supplementalData calendarPreference UResourceBundle *rb = ures_openDirect(nullptr, "supplementalData", status); ures_getByKey(rb, "calendarPreferenceData", rb, status); @@ -768,7 +768,7 @@ ucal_getKeywordValuesForLocale(const char * /* key */, const char* locale, UBool return en; } -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucal_getTimeZoneTransitionDate(const UCalendar* cal, UTimeZoneTransitionType type, UDate* transition, UErrorCode* status) { diff --git a/deps/icu-small/source/i18n/ucln_in.cpp b/deps/icu-small/source/i18n/ucln_in.cpp index 74c8acfab13ea4..f29cbe41dde05f 100644 --- a/deps/icu-small/source/i18n/ucln_in.cpp +++ b/deps/icu-small/source/i18n/ucln_in.cpp @@ -62,3 +62,4 @@ void ucln_i18n_registerCleanup(ECleanupI18NType type, ucln_registerAutomaticCleanup(); #endif } + diff --git a/deps/icu-small/source/i18n/ucol.cpp b/deps/icu-small/source/i18n/ucol.cpp index 7d3392da223503..f59333ede3c890 100644 --- a/deps/icu-small/source/i18n/ucol.cpp +++ b/deps/icu-small/source/i18n/ucol.cpp @@ -369,7 +369,7 @@ ucol_getStrength(const UCollator *coll) return ucol_getAttribute(coll, UCOL_STRENGTH, &status); } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getReorderCodes(const UCollator *coll, int32_t *dest, int32_t destCapacity, @@ -381,7 +381,7 @@ ucol_getReorderCodes(const UCollator *coll, return Collator::fromUCollator(coll)->getReorderCodes(dest, destCapacity, *status); } -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucol_setReorderCodes(UCollator* coll, const int32_t* reorderCodes, int32_t reorderCodesLength, @@ -393,7 +393,7 @@ ucol_setReorderCodes(UCollator* coll, Collator::fromUCollator(coll)->setReorderCodes(reorderCodes, reorderCodesLength, *status); } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getEquivalentReorderCodes(int32_t reorderCode, int32_t* dest, int32_t destCapacity, diff --git a/deps/icu-small/source/i18n/ucol_res.cpp b/deps/icu-small/source/i18n/ucol_res.cpp index aa4027eb87212b..b277cf3b280a5f 100644 --- a/deps/icu-small/source/i18n/ucol_res.cpp +++ b/deps/icu-small/source/i18n/ucol_res.cpp @@ -623,7 +623,7 @@ struct KeywordsSink : public ResourceSink { virtual ~KeywordsSink(); virtual void put(const char *key, ResourceValue &value, UBool /*noFallback*/, - UErrorCode &errorCode) { + UErrorCode &errorCode) override { if (U_FAILURE(errorCode)) { return; } ResourceTable collations = value.getTable(errorCode); for (int32_t i = 0; collations.getKeyAndValue(i, key, value); ++i) { diff --git a/deps/icu-small/source/i18n/ucol_sit.cpp b/deps/icu-small/source/i18n/ucol_sit.cpp index d6bbf97b310bd3..4dc81aebcc942d 100644 --- a/deps/icu-small/source/i18n/ucol_sit.cpp +++ b/deps/icu-small/source/i18n/ucol_sit.cpp @@ -153,7 +153,7 @@ ucol_sit_letterToAttributeValue(char letter, UErrorCode *status) { *status = U_ILLEGAL_ARGUMENT_ERROR; #ifdef UCOL_TRACE_SIT fprintf(stderr, "%s:%d: unknown letter %c: %s\n", __FILE__, __LINE__, letter, u_errorName(*status)); -#endif +#endif return UCOL_DEFAULT; } @@ -209,7 +209,7 @@ _processCollatorOption(CollatorSpec *spec, uint32_t option, const char* string, if((*(++string) != '_' && *string) || U_FAILURE(*status)) { #ifdef UCOL_TRACE_SIT fprintf(stderr, "%s:%d: unknown collator option at '%s': %s\n", __FILE__, __LINE__, string, u_errorName(*status)); -#endif +#endif *status = U_ILLEGAL_ARGUMENT_ERROR; } return string; @@ -235,7 +235,7 @@ readHexCodeUnit(const char **string, UErrorCode *status) *status = U_ILLEGAL_ARGUMENT_ERROR; #ifdef UCOL_TRACE_SIT fprintf(stderr, "%s:%d: Bad hex char at '%s': %s\n", __FILE__, __LINE__, *string, u_errorName(*status)); -#endif +#endif return 0; } result = (result << 4) | (UChar)value; @@ -247,7 +247,7 @@ readHexCodeUnit(const char **string, UErrorCode *status) *status = U_ILLEGAL_ARGUMENT_ERROR; #ifdef UCOL_TRACE_SIT fprintf(stderr, "%s:%d: Short (only %d digits, wanted 4) at '%s': %s\n", __FILE__, __LINE__, noDigits,*string, u_errorName(*status)); -#endif +#endif } return result; } diff --git a/deps/icu-small/source/i18n/ucoleitr.cpp b/deps/icu-small/source/i18n/ucoleitr.cpp index 6842061bab0912..596ce032956d0c 100644 --- a/deps/icu-small/source/i18n/ucoleitr.cpp +++ b/deps/icu-small/source/i18n/ucoleitr.cpp @@ -11,7 +11,7 @@ * Modification History: * * Date Name Description -* 02/15/2001 synwee Modified all methods to process its own function +* 02/15/2001 synwee Modified all methods to process its own function * instead of calling the equivalent c++ api (coleitr.h) * 2012-2014 markus Rewritten in C++ again. ******************************************************************************/ @@ -313,7 +313,7 @@ ucol_reset(UCollationElements *elems) } U_CAPI int32_t U_EXPORT2 -ucol_next(UCollationElements *elems, +ucol_next(UCollationElements *elems, UErrorCode *status) { if (U_FAILURE(*status)) { @@ -397,7 +397,7 @@ UCollationPCE::previousProcessed( // buffer raw CEs up to non-ignorable primary RCEBuffer rceb; int32_t ce; - + // **** do we need to reset rceb, or will it always be empty at this point **** do { high = cei->getOffset(); @@ -433,14 +433,14 @@ UCollationPCE::previousProcessed( finish: if (pceBuffer.isEmpty()) { // **** Is -1 the right value for ixLow, ixHigh? **** - if (ixLow != NULL) { - *ixLow = -1; - } - - if (ixHigh != NULL) { - *ixHigh = -1 - ; - } + if (ixLow != NULL) { + *ixLow = -1; + } + + if (ixHigh != NULL) { + *ixHigh = -1 + ; + } return UCOL_PROCESSED_NULLORDER; } @@ -511,19 +511,19 @@ ucol_setOffset(UCollationElements *elems, } U_CAPI int32_t U_EXPORT2 -ucol_primaryOrder (int32_t order) +ucol_primaryOrder (int32_t order) { return (order >> 16) & 0xffff; } U_CAPI int32_t U_EXPORT2 -ucol_secondaryOrder (int32_t order) +ucol_secondaryOrder (int32_t order) { return (order >> 8) & 0xff; } U_CAPI int32_t U_EXPORT2 -ucol_tertiaryOrder (int32_t order) +ucol_tertiaryOrder (int32_t order) { return order & 0xff; } diff --git a/deps/icu-small/source/i18n/udat.cpp b/deps/icu-small/source/i18n/udat.cpp index 016805aab66fdd..d9549d04c57994 100644 --- a/deps/icu-small/source/i18n/udat.cpp +++ b/deps/icu-small/source/i18n/udat.cpp @@ -34,7 +34,7 @@ U_NAMESPACE_USE /** * Verify that fmt is a SimpleDateFormat. Invalid error if not. * @param fmt the UDateFormat, definitely a DateFormat, maybe something else - * @param status error code, will be set to failure if there is a familure or the fmt is NULL. + * @param status error code, will be set to failure if there is a failure or the fmt is NULL. */ static void verifyIsSimpleDateFormat(const UDateFormat* fmt, UErrorCode *status) { if(U_SUCCESS(*status) && @@ -425,8 +425,8 @@ udat_setLenient( UDateFormat* fmt, } U_CAPI UBool U_EXPORT2 -udat_getBooleanAttribute(const UDateFormat* fmt, - UDateFormatBooleanAttribute attr, +udat_getBooleanAttribute(const UDateFormat* fmt, + UDateFormatBooleanAttribute attr, UErrorCode* status) { if(U_FAILURE(*status)) return FALSE; @@ -435,9 +435,9 @@ udat_getBooleanAttribute(const UDateFormat* fmt, } U_CAPI void U_EXPORT2 -udat_setBooleanAttribute(UDateFormat *fmt, - UDateFormatBooleanAttribute attr, - UBool newValue, +udat_setBooleanAttribute(UDateFormat *fmt, + UDateFormatBooleanAttribute attr, + UBool newValue, UErrorCode* status) { if(U_FAILURE(*status)) return; @@ -457,7 +457,7 @@ udat_setCalendar(UDateFormat* fmt, ((DateFormat*)fmt)->setCalendar(*((Calendar*)calendarToSet)); } -U_CAPI const UNumberFormat* U_EXPORT2 +U_CAPI const UNumberFormat* U_EXPORT2 udat_getNumberFormatForField(const UDateFormat* fmt, UChar field) { UErrorCode status = U_ZERO_ERROR; @@ -472,7 +472,7 @@ udat_getNumberFormat(const UDateFormat* fmt) return (const UNumberFormat*) ((DateFormat*)fmt)->getNumberFormat(); } -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 udat_adoptNumberFormatForFields( UDateFormat* fmt, const UChar* fields, UNumberFormat* numberFormatToSet, @@ -480,7 +480,7 @@ udat_adoptNumberFormatForFields( UDateFormat* fmt, { verifyIsSimpleDateFormat(fmt, status); if (U_FAILURE(*status)) return; - + if (fields!=NULL) { UnicodeString overrideFields(fields); ((SimpleDateFormat*)fmt)->adoptNumberFormat(overrideFields, (NumberFormat*)numberFormatToSet, *status); @@ -587,7 +587,7 @@ udat_applyPattern( UDateFormat *format, if(U_FAILURE(status)) { return; } - + if(localized) ((SimpleDateFormat*)format)->applyLocalizedPattern(pat, status); else @@ -704,6 +704,10 @@ udat_getSymbols(const UDateFormat *fmt, res = syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED); break; + case UDAT_NARROW_QUARTERS: + res = syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::NARROW); + break; + case UDAT_STANDALONE_QUARTERS: res = syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE); break; @@ -712,6 +716,10 @@ udat_getSymbols(const UDateFormat *fmt, res = syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED); break; + case UDAT_STANDALONE_NARROW_QUARTERS: + res = syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::NARROW); + break; + case UDAT_CYCLIC_YEARS_WIDE: res = syms->getYearNames(count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE); break; @@ -842,6 +850,10 @@ udat_countSymbols( const UDateFormat *fmt, syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::ABBREVIATED); break; + case UDAT_NARROW_QUARTERS: + syms->getQuarters(count, DateFormatSymbols::FORMAT, DateFormatSymbols::NARROW); + break; + case UDAT_STANDALONE_QUARTERS: syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::WIDE); break; @@ -850,6 +862,10 @@ udat_countSymbols( const UDateFormat *fmt, syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::ABBREVIATED); break; + case UDAT_STANDALONE_NARROW_QUARTERS: + syms->getQuarters(count, DateFormatSymbols::STANDALONE, DateFormatSymbols::NARROW); + break; + case UDAT_CYCLIC_YEARS_WIDE: syms->getYearNames(count, DateFormatSymbols::FORMAT, DateFormatSymbols::WIDE); break; @@ -1048,6 +1064,13 @@ class DateFormatSymbolsSingleSetter /* not : public UObject because all methods setSymbol(syms->fShortQuarters, syms->fShortQuartersCount, index, value, valueLength, errorCode); } + static void + setNarrowQuarter(DateFormatSymbols *syms, int32_t index, + const UChar *value, int32_t valueLength, UErrorCode &errorCode) + { + setSymbol(syms->fNarrowQuarters, syms->fNarrowQuartersCount, index, value, valueLength, errorCode); + } + static void setStandaloneQuarter(DateFormatSymbols *syms, int32_t index, const UChar *value, int32_t valueLength, UErrorCode &errorCode) @@ -1062,6 +1085,13 @@ class DateFormatSymbolsSingleSetter /* not : public UObject because all methods setSymbol(syms->fStandaloneShortQuarters, syms->fStandaloneShortQuartersCount, index, value, valueLength, errorCode); } + static void + setStandaloneNarrowQuarter(DateFormatSymbols *syms, int32_t index, + const UChar *value, int32_t valueLength, UErrorCode &errorCode) + { + setSymbol(syms->fStandaloneNarrowQuarters, syms->fStandaloneNarrowQuartersCount, index, value, valueLength, errorCode); + } + static void setShortYearNames(DateFormatSymbols *syms, int32_t index, const UChar *value, int32_t valueLength, UErrorCode &errorCode) @@ -1179,6 +1209,10 @@ udat_setSymbols( UDateFormat *format, DateFormatSymbolsSingleSetter::setShortQuarter(syms, index, value, valueLength, *status); break; + case UDAT_NARROW_QUARTERS: + DateFormatSymbolsSingleSetter::setNarrowQuarter(syms, index, value, valueLength, *status); + break; + case UDAT_STANDALONE_QUARTERS: DateFormatSymbolsSingleSetter::setStandaloneQuarter(syms, index, value, valueLength, *status); break; @@ -1187,6 +1221,10 @@ udat_setSymbols( UDateFormat *format, DateFormatSymbolsSingleSetter::setStandaloneShortQuarter(syms, index, value, valueLength, *status); break; + case UDAT_STANDALONE_NARROW_QUARTERS: + DateFormatSymbolsSingleSetter::setStandaloneNarrowQuarter(syms, index, value, valueLength, *status); + break; + case UDAT_CYCLIC_YEARS_ABBREVIATED: DateFormatSymbolsSingleSetter::setShortYearNames(syms, index, value, valueLength, *status); break; @@ -1206,7 +1244,7 @@ udat_setSymbols( UDateFormat *format, default: *status = U_UNSUPPORTED_ERROR; break; - + } } @@ -1247,7 +1285,7 @@ udat_getContext(const UDateFormat* fmt, UDisplayContextType type, UErrorCode* st /** * Verify that fmt is a RelativeDateFormat. Invalid error if not. * @param fmt the UDateFormat, definitely a DateFormat, maybe something else - * @param status error code, will be set to failure if there is a familure or the fmt is NULL. + * @param status error code, will be set to failure if there is a failure or the fmt is NULL. */ static void verifyIsRelativeDateFormat(const UDateFormat* fmt, UErrorCode *status) { if(U_SUCCESS(*status) && @@ -1257,7 +1295,7 @@ static void verifyIsRelativeDateFormat(const UDateFormat* fmt, UErrorCode *statu } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 udat_toPatternRelativeDate(const UDateFormat *fmt, UChar *result, int32_t resultLength, @@ -1282,7 +1320,7 @@ udat_toPatternRelativeDate(const UDateFormat *fmt, return datePattern.extract(result, resultLength, *status); } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 udat_toPatternRelativeTime(const UDateFormat *fmt, UChar *result, int32_t resultLength, @@ -1307,7 +1345,7 @@ udat_toPatternRelativeTime(const UDateFormat *fmt, return timePattern.extract(result, resultLength, *status); } -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 udat_applyPatternRelative(UDateFormat *format, const UChar *datePattern, int32_t datePatternLength, diff --git a/deps/icu-small/source/i18n/uitercollationiterator.h b/deps/icu-small/source/i18n/uitercollationiterator.h index 3a7b1a0ec23b47..e0da353f268ba9 100644 --- a/deps/icu-small/source/i18n/uitercollationiterator.h +++ b/deps/icu-small/source/i18n/uitercollationiterator.h @@ -39,22 +39,22 @@ class U_I18N_API UIterCollationIterator : public CollationIterator { virtual ~UIterCollationIterator(); - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UChar handleGetTrailSurrogate(); + virtual UChar handleGetTrailSurrogate() override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; UCharIterator &iter; }; @@ -71,22 +71,23 @@ class U_I18N_API FCDUIterCollationIterator : public UIterCollationIterator { virtual ~FCDUIterCollationIterator(); - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UChar handleGetTrailSurrogate(); + virtual UChar handleGetTrailSurrogate() override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; + + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; private: /** diff --git a/deps/icu-small/source/i18n/ulocdata.cpp b/deps/icu-small/source/i18n/ulocdata.cpp index 3046167b328db8..68b9e0cf6344cf 100644 --- a/deps/icu-small/source/i18n/ulocdata.cpp +++ b/deps/icu-small/source/i18n/ulocdata.cpp @@ -104,8 +104,8 @@ U_CAPI USet* U_EXPORT2 ulocdata_getExemplarSet(ULocaleData *uld, USet *fillIn, uint32_t options, ULocaleDataExemplarSetType extype, UErrorCode *status){ - static const char* const exemplarSetTypes[] = { "ExemplarCharacters", - "AuxExemplarCharacters", + static const char* const exemplarSetTypes[] = { "ExemplarCharacters", + "AuxExemplarCharacters", "ExemplarCharactersIndex", "ExemplarCharactersPunctuation"}; const UChar *exemplarChars = NULL; @@ -195,15 +195,15 @@ static UResourceBundle * measurementTypeBundleForLocale(const char *localeID, co char region[ULOC_COUNTRY_CAPACITY]; UResourceBundle *rb; UResourceBundle *measTypeBundle = NULL; - + ulocimp_getRegionForSupplementalData(localeID, TRUE, region, ULOC_COUNTRY_CAPACITY, status); - + rb = ures_openDirect(NULL, "supplementalData", status); ures_getByKey(rb, "measurementData", rb, status); if (rb != NULL) { UResourceBundle *measDataBundle = ures_getByKey(rb, region, NULL, status); if (U_SUCCESS(*status)) { - measTypeBundle = ures_getByKey(measDataBundle, measurementType, NULL, status); + measTypeBundle = ures_getByKey(measDataBundle, measurementType, NULL, status); } if (*status == U_MISSING_RESOURCE_ERROR) { *status = U_ZERO_ERROR; diff --git a/deps/icu-small/source/i18n/umsg.cpp b/deps/icu-small/source/i18n/umsg.cpp index 2aae3a4d4393e3..c2d5a9a1f5a757 100644 --- a/deps/icu-small/source/i18n/umsg.cpp +++ b/deps/icu-small/source/i18n/umsg.cpp @@ -18,7 +18,7 @@ * * 08/5/2001 Ram Added C wrappers for C++ API. Changed implementation of old API's * Removed pattern parser. -* +* */ #include "unicode/utypes.h" @@ -67,8 +67,8 @@ u_formatMessage(const char *locale, ...) { va_list ap; - int32_t actLen; - //argument checking defered to subsequent method calls + int32_t actLen; + //argument checking deferred to subsequent method calls // start vararg processing va_start(ap, status); @@ -89,7 +89,7 @@ u_vformatMessage( const char *locale, UErrorCode *status) { - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls UMessageFormat *fmt = umsg_open(pattern,patternLength,locale,NULL,status); int32_t retVal = umsg_vformat(fmt,result,resultLength,ap,status); umsg_close(fmt); @@ -108,7 +108,7 @@ u_formatMessageWithError(const char *locale, { va_list ap; int32_t actLen; - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls // start vararg processing va_start(ap, status); @@ -130,7 +130,7 @@ u_vformatMessageWithError( const char *locale, UErrorCode *status) { - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls UMessageFormat *fmt = umsg_open(pattern,patternLength,locale,parseError,status); int32_t retVal = umsg_vformat(fmt,result,resultLength,ap,status); umsg_close(fmt); @@ -152,7 +152,7 @@ u_parseMessage( const char *locale, ...) { va_list ap; - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls // start vararg processing va_start(ap, status); @@ -171,7 +171,7 @@ u_vparseMessage(const char *locale, va_list ap, UErrorCode *status) { - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls UMessageFormat *fmt = umsg_open(pattern,patternLength,locale,NULL,status); int32_t count = 0; umsg_vparse(fmt,source,sourceLength,&count,ap,status); @@ -190,7 +190,7 @@ u_parseMessageWithError(const char *locale, { va_list ap; - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls // start vararg processing va_start(ap, status); @@ -209,7 +209,7 @@ u_vparseMessageWithError(const char *locale, UParseError *error, UErrorCode* status) { - //argument checking defered to subsequent method calls + //argument checking deferred to subsequent method calls UMessageFormat *fmt = umsg_open(pattern,patternLength,locale,error,status); int32_t count = 0; umsg_vparse(fmt,source,sourceLength,&count,ap,status); @@ -286,7 +286,7 @@ umsg_clone(const UMessageFormat *fmt, *status = U_MEMORY_ALLOCATION_ERROR; return 0; } - return retVal; + return retVal; } U_CAPI void U_EXPORT2 @@ -296,7 +296,7 @@ umsg_setLocale(UMessageFormat *fmt, const char* locale) if(fmt==NULL){ return; } - ((MessageFormat*)fmt)->setLocale(Locale(locale)); + ((MessageFormat*)fmt)->setLocale(Locale(locale)); } U_CAPI const char* U_EXPORT2 @@ -331,12 +331,12 @@ umsg_applyPattern(UMessageFormat *fmt, } // UnicodeString(pattern, -1) calls u_strlen(). - ((MessageFormat*)fmt)->applyPattern(UnicodeString(pattern,patternLength),*parseError,*status); + ((MessageFormat*)fmt)->applyPattern(UnicodeString(pattern,patternLength),*parseError,*status); } U_CAPI int32_t U_EXPORT2 umsg_toPattern(const UMessageFormat *fmt, - UChar* result, + UChar* result, int32_t resultLength, UErrorCode* status) { @@ -368,12 +368,12 @@ umsg_format( const UMessageFormat *fmt, ...) { va_list ap; - int32_t actLen; - //argument checking defered to last method call umsg_vformat which - //saves time when arguments are valid and we dont care when arguments are not + int32_t actLen; + //argument checking deferred to last method call umsg_vformat which + //saves time when arguments are valid and we don't care when arguments are not //since we return an error anyway - + // start vararg processing va_start(ap, status); @@ -411,7 +411,7 @@ umsg_vformat( const UMessageFormat *fmt, // iterate through the vararg list, and get the arguments out for(int32_t i = 0; i < count; ++i) { - + UChar *stringVal; double tDouble=0; int32_t tInt =0; @@ -422,12 +422,12 @@ umsg_vformat( const UMessageFormat *fmt, tempDate = va_arg(ap, UDate); args[i].setDate(tempDate); break; - + case Formattable::kDouble: tDouble =va_arg(ap, double); args[i].setDouble(tDouble); break; - + case Formattable::kLong: tInt = va_arg(ap, int32_t); args[i].setLong(tInt); @@ -437,7 +437,7 @@ umsg_vformat( const UMessageFormat *fmt, tInt64 = va_arg(ap, int64_t); args[i].setInt64(tInt64); break; - + case Formattable::kString: // For some reason, a temporary is needed stringVal = va_arg(ap, UChar*); @@ -447,7 +447,7 @@ umsg_vformat( const UMessageFormat *fmt, *status=U_ILLEGAL_ARGUMENT_ERROR; } break; - + case Formattable::kArray: // throw away this argument // this is highly platform-dependent, and probably won't work @@ -463,12 +463,12 @@ umsg_vformat( const UMessageFormat *fmt, default: // Unknown/unsupported argument type. - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } UnicodeString resultStr; FieldPosition fieldPosition(FieldPosition::DONT_CARE); - + /* format the message */ ((const MessageFormat*)fmt)->format(args,count,resultStr,fieldPosition,*status); @@ -490,8 +490,8 @@ umsg_parse( const UMessageFormat *fmt, ...) { va_list ap; - //argument checking defered to last method call umsg_vparse which - //saves time when arguments are valid and we dont care when arguments are not + //argument checking deferred to last method call umsg_vparse which + //saves time when arguments are valid and we don't care when arguments are not //since we return an error anyway // start vararg processing @@ -590,11 +590,11 @@ umsg_vparse(const UMessageFormat *fmt, // support kObject. When MessageFormat is changed to // understand MeasureFormats, modify this code to do the // right thing. [alan] - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; // better not happen! case Formattable::kArray: - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } } @@ -613,7 +613,7 @@ umsg_vparse(const UMessageFormat *fmt, #define MAppend(c) if (len < destCapacity) dest[len++] = c; else len++ -int32_t umsg_autoQuoteApostrophe(const UChar* pattern, +int32_t umsg_autoQuoteApostrophe(const UChar* pattern, int32_t patternLength, UChar* dest, int32_t destCapacity, diff --git a/deps/icu-small/source/i18n/unesctrn.cpp b/deps/icu-small/source/i18n/unesctrn.cpp index 604cb0a4ba007f..0636fe1d149b60 100644 --- a/deps/icu-small/source/i18n/unesctrn.cpp +++ b/deps/icu-small/source/i18n/unesctrn.cpp @@ -85,9 +85,9 @@ static UChar* copySpec(const UChar* spec) { } ++len; UChar *result = (UChar *)uprv_malloc(len*sizeof(UChar)); - // Check for memory allocation error. + // Check for memory allocation error. if (result != NULL) { - uprv_memcpy(result, spec, (size_t)len*sizeof(result[0])); + uprv_memcpy(result, spec, (size_t)len*sizeof(result[0])); } return result; } diff --git a/deps/icu-small/source/i18n/unesctrn.h b/deps/icu-small/source/i18n/unesctrn.h index 57dd8d32cf53f3..e905c5bc5f5c6c 100644 --- a/deps/icu-small/source/i18n/unesctrn.h +++ b/deps/icu-small/source/i18n/unesctrn.h @@ -77,12 +77,12 @@ class UnescapeTransliterator : public Transliterator { /** * Transliterator API. */ - virtual UnescapeTransliterator* clone() const; + virtual UnescapeTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -101,7 +101,7 @@ class UnescapeTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; }; diff --git a/deps/icu-small/source/i18n/uni2name.cpp b/deps/icu-small/source/i18n/uni2name.cpp index 729a1e5fa82a62..904da0207bc239 100644 --- a/deps/icu-small/source/i18n/uni2name.cpp +++ b/deps/icu-small/source/i18n/uni2name.cpp @@ -87,7 +87,7 @@ void UnicodeNameTransliterator::handleTransliterate(Replaceable& text, UTransPos offsets.start = offsets.limit; return; } - + int32_t cursor = offsets.start; int32_t limit = offsets.limit; diff --git a/deps/icu-small/source/i18n/uni2name.h b/deps/icu-small/source/i18n/uni2name.h index 99309c8e0f8785..1e01d784237a67 100644 --- a/deps/icu-small/source/i18n/uni2name.h +++ b/deps/icu-small/source/i18n/uni2name.h @@ -48,12 +48,12 @@ class UnicodeNameTransliterator : public Transliterator { /** * Transliterator API. */ - virtual UnicodeNameTransliterator* clone() const; + virtual UnicodeNameTransliterator* clone() const override; /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -72,7 +72,7 @@ class UnicodeNameTransliterator : public Transliterator { * pos.contextLimit. Otherwise, assume the text is complete. */ virtual void handleTransliterate(Replaceable& text, UTransPosition& offset, - UBool isIncremental) const; + UBool isIncremental) const override; private: /** diff --git a/deps/icu-small/source/i18n/unicode/alphaindex.h b/deps/icu-small/source/i18n/unicode/alphaindex.h index d72abce9acd3ec..d0cdd817fba64e 100644 --- a/deps/icu-small/source/i18n/unicode/alphaindex.h +++ b/deps/icu-small/source/i18n/unicode/alphaindex.h @@ -44,7 +44,7 @@ typedef enum UAlphabeticIndexLabelType { U_ALPHAINDEX_NORMAL = 0, /** - * Undeflow Label. The bucket with this label contains names + * Underflow Label. The bucket with this label contains names * in scripts that sort before any of the bucket labels in this index. * @stable ICU 4.8 */ @@ -61,7 +61,7 @@ typedef enum UAlphabeticIndexLabelType { U_ALPHAINDEX_INFLOW = 2, /** - * Overflow Label. Te bucket with this label contains names in scripts + * Overflow Label. The bucket with this label contains names in scripts * that sort after all of the bucket labels in this index. * @stable ICU 4.8 */ @@ -87,7 +87,7 @@ class UVector; * AlphabeticIndex supports the creation of a UI index appropriate for a given language. * It can support either direct use, or use with a client that doesn't support localized collation. * The following is an example of what an index might look like in a UI: - * + * *
      *  ... A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  ...
      *
    @@ -309,17 +309,17 @@ class U_I18N_API AlphabeticIndex: public UObject {
          */
          AlphabeticIndex(const Locale &locale, UErrorCode &status);
     
    -   /**
    +   /** 
          * Construct an AlphabeticIndex that uses a specific collator.
    -     *
    +     * 
          * The index will be created with no labels; the addLabels() function must be called
          * after creation to add the desired labels to the index.
    -     *
    -     * The index adopts the collator, and is responsible for deleting it.
    +     * 
    +     * The index adopts the collator, and is responsible for deleting it. 
          * The caller should make no further use of the collator after creating the index.
    -     *
    +     * 
          * @param collator The collator to use to order the contents of this index.
    -     * @param status Error code, will be set with the reason if the
    +     * @param status Error code, will be set with the reason if the 
          *               operation fails.
          * @stable ICU 51
          */
    @@ -330,7 +330,7 @@ class U_I18N_API AlphabeticIndex: public UObject {
          * that are already in the index; they do not replace the existing
          * ones.
          * @param additions The additional characters to add to the index, such as A-Z.
    -     * @param status Error code, will be set with the reason if the
    +     * @param status Error code, will be set with the reason if the 
          *               operation fails.
          * @return this, for chaining
          * @stable ICU 4.8
    @@ -345,7 +345,7 @@ class U_I18N_API AlphabeticIndex: public UObject {
          * when creating this Index.
          *
          * @param locale The locale whose index characters are to be added.
    -     * @param status Error code, will be set with the reason if the
    +     * @param status Error code, will be set with the reason if the 
          *               operation fails.
          * @return this, for chaining
          * @stable ICU 4.8
    @@ -647,7 +647,7 @@ class U_I18N_API AlphabeticIndex: public UObject {
     private:
          /**
           * No Copy constructor.
    -      * @internal
    +      * @internal (private)
           */
          AlphabeticIndex(const AlphabeticIndex &other);
     
    @@ -658,15 +658,15 @@ class U_I18N_API AlphabeticIndex: public UObject {
     
         /**
          * No Equality operators.
    -     * @internal
    +     * @internal (private)
          */
    -     virtual UBool operator==(const AlphabeticIndex& other) const;
    +     virtual bool operator==(const AlphabeticIndex& other) const;
     
         /**
          * Inequality operator.
    -     * @internal
    +     * @internal (private)
          */
    -     virtual UBool operator!=(const AlphabeticIndex& other) const;
    +     virtual bool operator!=(const AlphabeticIndex& other) const;
     
          // Common initialization, for use from all constructors.
          void init(const Locale *locale, UErrorCode &status);
    @@ -723,7 +723,7 @@ class U_I18N_API AlphabeticIndex: public UObject {
         /**
          * Holds all user records before they are distributed into buckets.
          * Type of contents is (Record *)
    -     * @internal
    +     * @internal (private)
          */
         UVector  *inputList_;
     
    diff --git a/deps/icu-small/source/i18n/unicode/basictz.h b/deps/icu-small/source/i18n/unicode/basictz.h
    index ea8720ed13cf41..250ea309279aa7 100644
    --- a/deps/icu-small/source/i18n/unicode/basictz.h
    +++ b/deps/icu-small/source/i18n/unicode/basictz.h
    @@ -10,7 +10,7 @@
     #define BASICTZ_H
     
     /**
    - * \file
    + * \file 
      * \brief C++ API: ICU TimeZone base class
      */
     
    @@ -49,7 +49,7 @@ class U_I18N_API BasicTimeZone: public TimeZone {
          * @return clone, or nullptr if an error occurred
          * @stable ICU 3.8
          */
    -    virtual BasicTimeZone* clone() const = 0;
    +    virtual BasicTimeZone* clone() const override = 0;
     
         /**
          * Gets the first time zone transition after the base time.
    @@ -84,7 +84,7 @@ class U_I18N_API BasicTimeZone: public TimeZone {
          *              changes will be ignored, except either of them is zero.
          *              For example, a transition from rawoffset 3:00/dstsavings 1:00
          *              to rawoffset 2:00/dstsavings 2:00 is excluded from the comparison,
    -     *              but a transtion from rawoffset 2:00/dstsavings 1:00 to
    +     *              but a transition from rawoffset 2:00/dstsavings 1:00 to
          *              rawoffset 3:00/dstsavings 0:00 is included.
          * @param ec    Output param to filled in with a success or an error.
          * @return      true if the other time zone has the equivalent transitions in the
    @@ -226,8 +226,11 @@ class U_I18N_API BasicTimeZone: public TimeZone {
         /**
          * Gets the set of TimeZoneRule instances applicable to the specified time and after.
          * @param start     The start date used for extracting time zone rules
    -     * @param initial   Receives the InitialTimeZone, always not NULL
    -     * @param transitionRules   Receives the transition rules, could be NULL
    +     * @param initial   Output parameter, receives the InitialTimeZone.
    +     *                  Always not nullptr (except in case of error)
    +     * @param transitionRules   Output parameter, a UVector of transition rules.
    +     *                  May be nullptr, if there are no transition rules.
    +     *                  The caller owns the returned vector; the UVector owns the rules.
          * @param status    Receives error status code
          */
         void getTimeZoneRulesAfter(UDate start, InitialTimeZoneRule*& initial, UVector*& transitionRules,
    diff --git a/deps/icu-small/source/i18n/unicode/calendar.h b/deps/icu-small/source/i18n/unicode/calendar.h
    index be774ab26fb619..c1bdf9282038b1 100644
    --- a/deps/icu-small/source/i18n/unicode/calendar.h
    +++ b/deps/icu-small/source/i18n/unicode/calendar.h
    @@ -449,21 +449,21 @@ class U_I18N_API Calendar : public UObject {
          * represented time, use equals() instead.
          *
          * @param that  The Calendar object to be compared with.
    -     * @return      True if the given Calendar is the same as this Calendar; false
    +     * @return      true if the given Calendar is the same as this Calendar; false
          *              otherwise.
          * @stable ICU 2.0
          */
    -    virtual UBool operator==(const Calendar& that) const;
    +    virtual bool operator==(const Calendar& that) const;
     
         /**
          * Compares the inequality of two Calendar objects.
          *
          * @param that  The Calendar object to be compared with.
    -     * @return      True if the given Calendar is not the same as this Calendar; false
    +     * @return      true if the given Calendar is not the same as this Calendar; false
          *              otherwise.
          * @stable ICU 2.0
          */
    -    UBool operator!=(const Calendar& that) const {return !operator==(that);}
    +    bool operator!=(const Calendar& that) const {return !operator==(that);}
     
         /**
          * Returns true if the given Calendar object is equivalent to this
    @@ -1341,7 +1341,7 @@ class U_I18N_API Calendar : public UObject {
          *           same class ID. Objects of other classes have different class IDs.
          * @stable ICU 2.0
          */
    -    virtual UClassID getDynamicClassID(void) const = 0;
    +    virtual UClassID getDynamicClassID(void) const override = 0;
     
         /**
          * Returns the calendar type name string for this Calendar object.
    diff --git a/deps/icu-small/source/i18n/unicode/choicfmt.h b/deps/icu-small/source/i18n/unicode/choicfmt.h
    index cb01fca253355d..0e7ae186d4d670 100644
    --- a/deps/icu-small/source/i18n/unicode/choicfmt.h
    +++ b/deps/icu-small/source/i18n/unicode/choicfmt.h
    @@ -251,7 +251,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          * @return a copy of this object
          * @deprecated ICU 49 Use MessageFormat instead, with plural and select arguments.
          */
    -    virtual ChoiceFormat* clone() const;
    +    virtual ChoiceFormat* clone() const override;
     
         /**
          * Returns true if the given Format objects are semantically equal.
    @@ -261,7 +261,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          * @return         true if other is the same as this.
          * @deprecated ICU 49 Use MessageFormat instead, with plural and select arguments.
          */
    -    virtual UBool operator==(const Format& other) const;
    +    virtual bool operator==(const Format& other) const override;
     
         /**
          * Sets the pattern.
    @@ -375,7 +375,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          */
         virtual UnicodeString& format(double number,
                                       UnicodeString& appendTo,
    -                                  FieldPosition& pos) const;
    +                                  FieldPosition& pos) const override;
         /**
          * Formats an int32_t number using this object's choices.
          *
    @@ -389,7 +389,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          */
         virtual UnicodeString& format(int32_t number,
                                       UnicodeString& appendTo,
    -                                  FieldPosition& pos) const;
    +                                  FieldPosition& pos) const override;
     
         /**
          * Formats an int64_t number using this object's choices.
    @@ -404,7 +404,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          */
         virtual UnicodeString& format(int64_t number,
                                       UnicodeString& appendTo,
    -                                  FieldPosition& pos) const;
    +                                  FieldPosition& pos) const override;
     
         /**
          * Formats an array of objects using this object's choices.
    @@ -444,7 +444,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
         */
         virtual void parse(const UnicodeString& text,
                            Formattable& result,
    -                       ParsePosition& parsePosition) const;
    +                       ParsePosition& parsePosition) const override;
     
         /**
          * Returns a unique class ID POLYMORPHICALLY. Part of ICU's "poor man's RTTI".
    @@ -454,7 +454,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
          *                  other classes have different class IDs.
          * @deprecated ICU 49 Use MessageFormat instead, with plural and select arguments.
          */
    -    virtual UClassID getDynamicClassID(void) const;
    +    virtual UClassID getDynamicClassID(void) const override;
     
         /**
          * Returns the class ID for this class.  This is useful only for
    @@ -528,7 +528,7 @@ class U_I18N_API ChoiceFormat: public NumberFormat {
                 const UnicodeString &source, int32_t sourceOffset);
     
         /**
    -     * Some of the ChoiceFormat constructors do not have a UErrorCode paramater.
    +     * Some of the ChoiceFormat constructors do not have a UErrorCode parameter.
          * We need _some_ way to provide one for the MessagePattern constructor.
          * Alternatively, the MessagePattern could be a pointer field, but that is
          * not nice either.
    diff --git a/deps/icu-small/source/i18n/unicode/coleitr.h b/deps/icu-small/source/i18n/unicode/coleitr.h
    index 2696b588278cde..4e68c6f1749a8a 100644
    --- a/deps/icu-small/source/i18n/unicode/coleitr.h
    +++ b/deps/icu-small/source/i18n/unicode/coleitr.h
    @@ -8,7 +8,7 @@
      */
     
     /**
    - * \file
    + * \file 
      * \brief C++ API: Collation Element Iterator.
      */
     
    @@ -25,7 +25,7 @@
     * 08/03/98    erm         Synched with 1.2 version CollationElementIterator.java
     * 12/10/99    aliu        Ported Thai collation support from Java.
     * 01/25/01    swquek      Modified into a C++ wrapper calling C APIs (ucoliter.h)
    -* 02/19/01    swquek      Removed CollationElementsIterator() since it is
    +* 02/19/01    swquek      Removed CollationElementsIterator() since it is 
     *                         private constructor and no calls are made to it
     * 2012-2014   markus      Rewritten in C++ again.
     */
    @@ -56,10 +56,10 @@ class UCollationPCE;
     class UVector32;
     
     /**
    -* The CollationElementIterator class is used as an iterator to walk through
    +* The CollationElementIterator class is used as an iterator to walk through     
     * each character of an international string. Use the iterator to return the
    -* ordering priority of the positioned character. The ordering priority of a
    -* character, which we refer to as a key, defines how a character is collated in
    +* ordering priority of the positioned character. The ordering priority of a 
    +* character, which we refer to as a key, defines how a character is collated in 
     * the given collation object.
     * For example, consider the following in Slovak and in traditional Spanish collation:
     * 
    @@ -69,9 +69,9 @@ class UVector32;
     * 
     \htmlonly       "æb"-> the first key is key('a'), the second key is key('e'), and
     *        the third key is key('b'). \endhtmlonly 
    * The key of a character, is an integer composed of primary order(short), -* secondary order(char), and tertiary order(char). Java strictly defines the +* secondary order(char), and tertiary order(char). Java strictly defines the * size and signedness of its primitive data types. Therefore, the static -* functions primaryOrder(), secondaryOrder(), and tertiaryOrder() return +* functions primaryOrder(), secondaryOrder(), and tertiaryOrder() return * int32_t to ensure the correctness of the key value. *

    Example of the iterator usage: (without error checking) *

    @@ -97,21 +97,21 @@ class UVector32;
     * the comparison level of the collator. The method previous() returns the
     * collation order of the previous character based on the comparison level of
     * the collator. The Collation Element Iterator moves only in one direction
    -* between calls to reset(), setOffset(), or setText(). That is, next()
    -* and previous() can not be inter-used. Whenever previous() is to be called after
    +* between calls to reset(), setOffset(), or setText(). That is, next() 
    +* and previous() can not be inter-used. Whenever previous() is to be called after 
     * next() or vice versa, reset(), setOffset() or setText() has to be called first
     * to reset the status, shifting pointers to either the end or the start of
     * the string (reset() or setText()), or the specified position (setOffset()).
     * Hence at the next call of next() or previous(), the first or last collation order,
    -* or collation order at the spefcifieid position will be returned. If a change of
    +* or collation order at the specified position will be returned. If a change of
     * direction is done without one of these calls, the result is undefined.
     * 

    * The result of a forward iterate (next()) and reversed result of the backward * iterate (previous()) on the same string are equivalent, if collation orders * with the value 0 are ignored. -* Character based on the comparison level of the collator. A collation order -* consists of primary order, secondary order and tertiary order. The data -* type of the collation order is int32_t. +* Character based on the comparison level of the collator. A collation order +* consists of primary order, secondary order and tertiary order. The data +* type of the collation order is int32_t. * * Note, CollationElementIterator should not be subclassed. * @see Collator @@ -119,13 +119,13 @@ class UVector32; * @version 1.8 Jan 16 2001 */ class U_I18N_API CollationElementIterator U_FINAL : public UObject { -public: +public: // CollationElementIterator public data member ------------------------------ enum { /** - * NULLORDER indicates that an error has occured while processing + * NULLORDER indicates that an error has occurred while processing * @stable ICU 2.0 */ NULLORDER = (int32_t)0xffffffff @@ -141,7 +141,7 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { */ CollationElementIterator(const CollationElementIterator& other); - /** + /** * Destructor * @stable ICU 2.0 */ @@ -156,7 +156,7 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { * @return true if "other" is the same as "this" * @stable ICU 2.0 */ - UBool operator==(const CollationElementIterator& other) const; + bool operator==(const CollationElementIterator& other) const; /** * Returns true if "other" is not the same as "this". @@ -165,7 +165,7 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { * @return true if "other" is not the same as "this" * @stable ICU 2.0 */ - UBool operator!=(const CollationElementIterator& other) const; + bool operator!=(const CollationElementIterator& other) const; /** * Resets the cursor to the beginning of the string. @@ -176,8 +176,8 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { /** * Gets the ordering priority of the next character in the string. * @param status the error code status. - * @return the next character's ordering. otherwise returns NULLORDER if an - * error has occured or if the end of string has been reached + * @return the next character's ordering. otherwise returns NULLORDER if an + * error has occurred or if the end of string has been reached * @stable ICU 2.0 */ int32_t next(UErrorCode& status); @@ -185,8 +185,8 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { /** * Get the ordering priority of the previous collation element in the string. * @param status the error code status. - * @return the previous element's ordering. otherwise returns NULLORDER if an - * error has occured or if the start of string has been reached + * @return the previous element's ordering. otherwise returns NULLORDER if an + * error has occurred or if the start of string has been reached * @stable ICU 2.0 */ int32_t previous(UErrorCode& status); @@ -216,11 +216,11 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { static inline int32_t tertiaryOrder(int32_t order); /** - * Return the maximum length of any expansion sequences that end with the + * Return the maximum length of any expansion sequences that end with the * specified comparison order. * @param order a collation order returned by previous or next. - * @return maximum size of the expansion sequences ending with the collation - * element or 1 if collation element does not occur at the end of any + * @return maximum size of the expansion sequences ending with the collation + * element or 1 if collation element does not occur at the end of any * expansion sequence * @stable ICU 2.0 */ @@ -279,7 +279,7 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -312,9 +312,9 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { friend class UCollationPCE; /** - * CollationElementIterator constructor. This takes the source string and the - * collation object. The cursor will walk thru the source string based on the - * predefined collation rules. If the source string is empty, NULLORDER will + * CollationElementIterator constructor. This takes the source string and the + * collation object. The cursor will walk thru the source string based on the + * predefined collation rules. If the source string is empty, NULLORDER will * be returned on the calls to next(). * @param sourceText the source string. * @param order the collation object. @@ -332,9 +332,9 @@ class U_I18N_API CollationElementIterator U_FINAL : public UObject { // but only contain the part of RBC== related to data and rules. /** - * CollationElementIterator constructor. This takes the source string and the - * collation object. The cursor will walk thru the source string based on the - * predefined collation rules. If the source string is empty, NULLORDER will + * CollationElementIterator constructor. This takes the source string and the + * collation object. The cursor will walk thru the source string based on the + * predefined collation rules. If the source string is empty, NULLORDER will * be returned on the calls to next(). * @param sourceText the source string. * @param order the collation object. diff --git a/deps/icu-small/source/i18n/unicode/coll.h b/deps/icu-small/source/i18n/unicode/coll.h index c750711fc158cf..9e0050ba6ce73e 100644 --- a/deps/icu-small/source/i18n/unicode/coll.h +++ b/deps/icu-small/source/i18n/unicode/coll.h @@ -253,7 +253,7 @@ class U_I18N_API Collator : public UObject { * @return true if other is the same as this. * @stable ICU 2.0 */ - virtual UBool operator==(const Collator& other) const; + virtual bool operator==(const Collator& other) const; /** * Returns true if "other" is not the same as "this". @@ -262,7 +262,7 @@ class U_I18N_API Collator : public UObject { * @return true if other is not the same as this. * @stable ICU 2.0 */ - virtual UBool operator!=(const Collator& other) const; + virtual bool operator!=(const Collator& other) const; /** * Makes a copy of this object. @@ -864,7 +864,7 @@ class U_I18N_API Collator : public UObject { * IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const = 0; + virtual UClassID getDynamicClassID(void) const override = 0; /** * Universal attribute setter @@ -1094,7 +1094,7 @@ class U_I18N_API Collator : public UObject { /** * Default constructor. * Constructor is different from the old default Collator constructor. - * The task for determing the default collation strength and normalization + * The task for determining the default collation strength and normalization * mode is left to the child class. * @stable ICU 2.0 */ diff --git a/deps/icu-small/source/i18n/unicode/curramt.h b/deps/icu-small/source/i18n/unicode/curramt.h index 9c8496381d7aa3..818b11ae5bd8e5 100644 --- a/deps/icu-small/source/i18n/unicode/curramt.h +++ b/deps/icu-small/source/i18n/unicode/curramt.h @@ -23,10 +23,10 @@ #include "unicode/currunit.h" /** - * \file + * \file * \brief C++ API: Currency Amount Object. */ - + U_NAMESPACE_BEGIN /** @@ -69,7 +69,7 @@ class U_I18N_API CurrencyAmount: public Measure { * @stable ICU 3.0 */ CurrencyAmount(const CurrencyAmount& other); - + /** * Assignment operator * @stable ICU 3.0 @@ -81,14 +81,14 @@ class U_I18N_API CurrencyAmount: public Measure { * have the same class as returned by getDynamicClassID(). * @stable ICU 3.0 */ - virtual CurrencyAmount* clone() const; + virtual CurrencyAmount* clone() const override; /** * Destructor * @stable ICU 3.0 */ virtual ~CurrencyAmount(); - + /** * Returns a unique class ID for this object POLYMORPHICALLY. * This method implements a simple form of RTTI used by ICU. @@ -97,7 +97,7 @@ class U_I18N_API CurrencyAmount: public Measure { * different class IDs. * @stable ICU 3.0 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * Returns the class ID for this class. This is used to compare to diff --git a/deps/icu-small/source/i18n/unicode/currpinf.h b/deps/icu-small/source/i18n/unicode/currpinf.h index 1b93be08316827..e3ca34b26f27a3 100644 --- a/deps/icu-small/source/i18n/unicode/currpinf.h +++ b/deps/icu-small/source/i18n/unicode/currpinf.h @@ -29,13 +29,13 @@ class PluralRules; class Hashtable; /** - * This class represents the information needed by - * DecimalFormat to format currency plural, - * such as "3.00 US dollars" or "1.00 US dollar". + * This class represents the information needed by + * DecimalFormat to format currency plural, + * such as "3.00 US dollars" or "1.00 US dollar". * DecimalFormat creates for itself an instance of - * CurrencyPluralInfo from its locale data. + * CurrencyPluralInfo from its locale data. * If you need to change any of these symbols, you can get the - * CurrencyPluralInfo object from your + * CurrencyPluralInfo object from your * DecimalFormat and modify it. * * Following are the information needed for currency plural format and parse: @@ -61,7 +61,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * @param status output param set to success/failure code on exit * @stable ICU 4.2 */ - CurrencyPluralInfo(const Locale& locale, UErrorCode& status); + CurrencyPluralInfo(const Locale& locale, UErrorCode& status); /** * Copy constructor @@ -92,7 +92,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * * @stable ICU 4.2 */ - UBool operator==(const CurrencyPluralInfo& info) const; + bool operator==(const CurrencyPluralInfo& info) const; /** @@ -100,7 +100,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * * @stable ICU 4.2 */ - UBool operator!=(const CurrencyPluralInfo& info) const; + bool operator!=(const CurrencyPluralInfo& info) const; /** @@ -120,7 +120,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { const PluralRules* getPluralRules() const; /** - * Given a plural count, gets currency plural pattern of this locale, + * Given a plural count, gets currency plural pattern of this locale, * used for currency plural format * * @param pluralCount currency plural count @@ -129,10 +129,10 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * @stable ICU 4.2 */ UnicodeString& getCurrencyPluralPattern(const UnicodeString& pluralCount, - UnicodeString& result) const; + UnicodeString& result) const; /** - * Get locale + * Get locale * * @return locale * @stable ICU 4.2 @@ -157,16 +157,16 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * Set currency plural pattern. * The currency plural pattern is set when CurrencyPluralInfo * instance is created. - * You can call this method to reset currency plural pattern only if + * You can call this method to reset currency plural pattern only if * you want to modify the default currency plural pattern of the locale. * - * @param pluralCount the plural count for which the currency pattern will + * @param pluralCount the plural count for which the currency pattern will * be overridden. * @param pattern the new currency plural pattern * @param status output param set to success/failure code on exit * @stable ICU 4.2 */ - void setCurrencyPluralPattern(const UnicodeString& pluralCount, + void setCurrencyPluralPattern(const UnicodeString& pluralCount, const UnicodeString& pattern, UErrorCode& status); @@ -184,7 +184,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { * * @stable ICU 4.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -198,7 +198,7 @@ class U_I18N_API CurrencyPluralInfo : public UObject { friend class DecimalFormatImpl; void initialize(const Locale& loc, UErrorCode& status); - + void setupCurrencyPluralPattern(const Locale& loc, UErrorCode& status); /* @@ -259,10 +259,10 @@ class U_I18N_API CurrencyPluralInfo : public UObject { }; -inline UBool +inline bool CurrencyPluralInfo::operator!=(const CurrencyPluralInfo& info) const { return !operator==(info); -} +} U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/currunit.h b/deps/icu-small/source/i18n/unicode/currunit.h index 090b964a0decee..8da3f1ffd8711a 100644 --- a/deps/icu-small/source/i18n/unicode/currunit.h +++ b/deps/icu-small/source/i18n/unicode/currunit.h @@ -22,10 +22,10 @@ #include "unicode/measunit.h" /** - * \file + * \file * \brief C++ API: Currency Unit Information. */ - + U_NAMESPACE_BEGIN /** @@ -94,7 +94,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit { * have the same class as returned by getDynamicClassID(). * @stable ICU 3.0 */ - virtual CurrencyUnit* clone() const; + virtual CurrencyUnit* clone() const override; /** * Destructor @@ -110,7 +110,7 @@ class U_I18N_API CurrencyUnit: public MeasureUnit { * different class IDs. * @stable ICU 3.0 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * Returns the class ID for this class. This is used to compare to diff --git a/deps/icu-small/source/i18n/unicode/datefmt.h b/deps/icu-small/source/i18n/unicode/datefmt.h index bbba0785edaccc..027fb1712f4164 100644 --- a/deps/icu-small/source/i18n/unicode/datefmt.h +++ b/deps/icu-small/source/i18n/unicode/datefmt.h @@ -52,7 +52,7 @@ class DateTimePatternGenerator; */ #if U_PF_WINDOWS <= U_PLATFORM && U_PLATFORM <= U_PF_CYGWIN && !defined(U_IN_DOXYGEN) template class U_I18N_API EnumSet; #endif /** \endcond */ @@ -229,13 +229,13 @@ class U_I18N_API DateFormat : public Format { * @return clone, or nullptr if an error occurred * @stable ICU 2.0 */ - virtual DateFormat* clone() const = 0; + virtual DateFormat* clone() const override = 0; /** * Equality operator. Returns true if the two formats have the same behavior. * @stable ICU 2.0 */ - virtual UBool operator==(const Format&) const; + virtual bool operator==(const Format&) const override; using Format::format; @@ -257,7 +257,7 @@ class U_I18N_API DateFormat : public Format { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Format an object to produce a string. This method handles Formattable @@ -277,7 +277,7 @@ class U_I18N_API DateFormat : public Format { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPositionIterator* posIter, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Formats a date into a date/time string. This is an abstract method which * concrete subclasses must implement. @@ -291,12 +291,12 @@ class U_I18N_API DateFormat : public Format { * statfieldPositionus.getEndIndex will be set to 0 and 4, respectively. *

    Notice * that if the same time field appears more than once in a pattern, the status will - * be set for the first occurence of that time field. For instance, + * be set for the first occurrence of that time field. For instance, * formatting a UDate to the time string "1 PM PDT (Pacific Daylight Time)" * using the pattern "h a z (zzzz)" and the alignment field * DateFormat::TIMEZONE_FIELD, the offsets fieldPosition.beginIndex and * fieldPosition.getEndIndex will be set to 5 and 8, respectively, for the first - * occurence of the timezone pattern character 'z'. + * occurrence of the timezone pattern character 'z'. * * @param cal Calendar set to the date and time to be formatted * into a date/time string. When the calendar type is @@ -349,12 +349,12 @@ class U_I18N_API DateFormat : public Format { * statfieldPositionus.getEndIndex will be set to 0 and 4, respectively. *

    Notice * that if the same time field appears more than once in a pattern, the status will - * be set for the first occurence of that time field. For instance, + * be set for the first occurrence of that time field. For instance, * formatting a UDate to the time string "1 PM PDT (Pacific Daylight Time)" * using the pattern "h a z (zzzz)" and the alignment field * DateFormat::TIMEZONE_FIELD, the offsets fieldPosition.beginIndex and * fieldPosition.getEndIndex will be set to 5 and 8, respectively, for the first - * occurence of the timezone pattern character 'z'. + * occurrence of the timezone pattern character 'z'. * * @param date UDate to be formatted into a date/time string. * @param appendTo Output parameter to receive result. @@ -523,7 +523,7 @@ class U_I18N_API DateFormat : public Format { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& parse_pos) const; + ParsePosition& parse_pos) const override; /** * Create a default date/time formatter that uses the SHORT style for both @@ -604,7 +604,7 @@ class U_I18N_API DateFormat : public Format { #endif /* U_HIDE_INTERNAL_API */ /** - * Creates a date/time formatter for the given skeleton and + * Creates a date/time formatter for the given skeleton and * default locale. * * @param skeleton The skeleton e.g "yMMMMd." Fields in the skeleton can @@ -680,20 +680,20 @@ class U_I18N_API DateFormat : public Format { * lenient parsing, the parser may use heuristics to interpret inputs that * do not precisely match this object's format. Without lenient parsing, * inputs must match this object's format more closely. - * - * Note: ICU 53 introduced finer grained control of leniency (and added - * new control points) making the preferred method a combination of - * setCalendarLenient() & setBooleanAttribute() calls. - * This method supports prior functionality but may not support all - * future leniency control & behavior of DateFormat. For control of pre 53 leniency, - * Calendar and DateFormat whitespace & numeric tolerance, this method is safe to - * use. However, mixing leniency control via this method and modification of the - * newer attributes via setBooleanAttribute() may produce undesirable + * + * Note: ICU 53 introduced finer grained control of leniency (and added + * new control points) making the preferred method a combination of + * setCalendarLenient() & setBooleanAttribute() calls. + * This method supports prior functionality but may not support all + * future leniency control & behavior of DateFormat. For control of pre 53 leniency, + * Calendar and DateFormat whitespace & numeric tolerance, this method is safe to + * use. However, mixing leniency control via this method and modification of the + * newer attributes via setBooleanAttribute() may produce undesirable * results. * * @param lenient True specifies date/time interpretation to be lenient. * @see Calendar::setLenient - * @stable ICU 2.0 + * @stable ICU 2.0 */ virtual void setLenient(UBool lenient); @@ -799,7 +799,7 @@ class U_I18N_API DateFormat : public Format { * @param value The UDisplayContext value to set. * @param status Input/output status. If at entry this indicates a failure * status, the function will do nothing; otherwise this will be - * updated with any new status from the function. + * updated with any new status from the function. * @stable ICU 53 */ virtual void setContext(UDisplayContext value, UErrorCode& status); @@ -810,7 +810,7 @@ class U_I18N_API DateFormat : public Format { * @param type The UDisplayContextType whose value to return * @param status Input/output status. If at entry this indicates a failure * status, the function will do nothing; otherwise this will be - * updated with any new status from the function. + * updated with any new status from the function. * @return The UDisplayContextValue for the specified type. * @stable ICU 53 */ @@ -828,8 +828,8 @@ class U_I18N_API DateFormat : public Format { */ virtual DateFormat& U_EXPORT2 setBooleanAttribute(UDateFormatBooleanAttribute attr, - UBool newvalue, - UErrorCode &status); + UBool newvalue, + UErrorCode &status); /** * Returns a boolean from this DateFormat @@ -892,7 +892,7 @@ class U_I18N_API DateFormat : public Format { */ static DateFormat* U_EXPORT2 create(EStyle timeStyle, EStyle dateStyle, const Locale& inLocale); - + /** * enum set of active boolean attributes for this instance */ diff --git a/deps/icu-small/source/i18n/unicode/dcfmtsym.h b/deps/icu-small/source/i18n/unicode/dcfmtsym.h index d0f844a51a369f..c5f7404416fda3 100644 --- a/deps/icu-small/source/i18n/unicode/dcfmtsym.h +++ b/deps/icu-small/source/i18n/unicode/dcfmtsym.h @@ -169,8 +169,14 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * @stable ICU 54 */ kExponentMultiplicationSymbol, +#ifndef U_HIDE_INTERNAL_API + /** Approximately sign. + * @internal + */ + kApproximatelySignSymbol, +#endif /* U_HIDE_INTERNAL_API */ /** count symbol constants */ - kFormatSymbolCount = kNineDigitSymbol + 2 + kFormatSymbolCount = kExponentMultiplicationSymbol + 2 }; /** @@ -255,7 +261,7 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * @return true if another object is semantically equal to this one. * @stable ICU 2.0 */ - UBool operator==(const DecimalFormatSymbols& other) const; + bool operator==(const DecimalFormatSymbols& other) const; /** * Return true if another object is semantically unequal to this one. @@ -264,7 +270,7 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * @return true if another object is semantically unequal to this one. * @stable ICU 2.0 */ - UBool operator!=(const DecimalFormatSymbols& other) const { return !operator==(other); } + bool operator!=(const DecimalFormatSymbols& other) const { return !operator==(other); } /** * Get one of the format symbols by its enum constant. @@ -284,12 +290,12 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * * @param symbol Constant to indicate a number format symbol. * @param value value of the format symbol - * @param propogateDigits If false, setting the zero digit will not automatically set 1-9. + * @param propagateDigits If false, setting the zero digit will not automatically set 1-9. * The default behavior is to automatically set 1-9 if zero is being set and the value * it is being set to corresponds to a known Unicode zero digit. * @stable ICU 2.0 */ - void setSymbol(ENumberFormatSymbol symbol, const UnicodeString &value, const UBool propogateDigits); + void setSymbol(ENumberFormatSymbol symbol, const UnicodeString &value, const UBool propagateDigits); #ifndef U_HIDE_INTERNAL_API /** @@ -353,7 +359,7 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -419,7 +425,7 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * * This is not currently stable API, but if you think it should be stable, * post a comment on the following ticket and the ICU team will take a look: - * http://bugs.icu-project.org/trac/ticket/13580 + * https://unicode-org.atlassian.net/browse/ICU-13580 * * @param symbol Constant to indicate a number format symbol. * @return the format symbol by the param 'symbol' @@ -436,7 +442,7 @@ class U_I18N_API DecimalFormatSymbols : public UObject { * * This is not currently stable API, but if you think it should be stable, * post a comment on the following ticket and the ICU team will take a look: - * http://bugs.icu-project.org/trac/ticket/13580 + * https://unicode-org.atlassian.net/browse/ICU-13580 * * @param digit The digit, an integer between 0 and 9 inclusive. * If outside the range 0 to 9, the zero digit is returned. diff --git a/deps/icu-small/source/i18n/unicode/decimfmt.h b/deps/icu-small/source/i18n/unicode/decimfmt.h index b0da8efb1e68b5..ab6cd14e187ec3 100644 --- a/deps/icu-small/source/i18n/unicode/decimfmt.h +++ b/deps/icu-small/source/i18n/unicode/decimfmt.h @@ -909,7 +909,7 @@ class U_I18N_API DecimalFormat : public NumberFormat { * @return true if the given Format objects are semantically equal. * @stable ICU 2.0 */ - UBool operator==(const Format& other) const U_OVERRIDE; + bool operator==(const Format& other) const U_OVERRIDE; using NumberFormat::format; @@ -1831,13 +1831,13 @@ class U_I18N_API DecimalFormat : public NumberFormat { * This means a minimum of 2 integer digits, 1 fraction digit, and * a maximum of 2 fraction digits. *

    -     * .      Example: "#,#00.0#;(#,#00.0#)" for negatives in parantheses.
    +     * .      Example: "#,#00.0#;(#,#00.0#)" for negatives in parentheses.
          * 
    * In negative patterns, the minimum and maximum counts are ignored; * these are presumed to be set in the positive pattern. * * @param pattern The pattern to be applied. - * @param parseError Struct to recieve information on position + * @param parseError Struct to receive information on position * of error if an error is encountered * @param status Output param set to success/failure code on * exit. If the pattern is invalid, this will be @@ -1873,13 +1873,13 @@ class U_I18N_API DecimalFormat : public NumberFormat { * This means a minimum of 2 integer digits, 1 fraction digit, and * a maximum of 2 fraction digits. * - * Example: "#,#00.0#;(#,#00.0#)" for negatives in parantheses. + * Example: "#,#00.0#;(#,#00.0#)" for negatives in parentheses. * * In negative patterns, the minimum and maximum counts are ignored; * these are presumed to be set in the positive pattern. * * @param pattern The localized pattern to be applied. - * @param parseError Struct to recieve information on position + * @param parseError Struct to receive information on position * of error if an error is encountered * @param status Output param set to success/failure code on * exit. If the pattern is invalid, this will be @@ -2072,7 +2072,7 @@ class U_I18N_API DecimalFormat : public NumberFormat { * You can use the returned LocalizedNumberFormatter to format numbers and * get a FormattedNumber, which contains a string as well as additional * annotations about the formatted value. - * + * * If a memory allocation failure occurs, the return value of this method * might be null. If you are concerned about correct recovery from * out-of-memory situations, use this pattern: diff --git a/deps/icu-small/source/i18n/unicode/dtfmtsym.h b/deps/icu-small/source/i18n/unicode/dtfmtsym.h index f368eaef551434..200b3a6ef17a11 100644 --- a/deps/icu-small/source/i18n/unicode/dtfmtsym.h +++ b/deps/icu-small/source/i18n/unicode/dtfmtsym.h @@ -174,7 +174,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * @return true if other is semantically equal to this. * @stable ICU 2.0 */ - UBool operator==(const DateFormatSymbols& other) const; + bool operator==(const DateFormatSymbols& other) const; /** * Return true if another object is semantically unequal to this one. @@ -183,7 +183,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * @return true if other is semantically unequal to this. * @stable ICU 2.0 */ - UBool operator!=(const DateFormatSymbols& other) const { return !operator==(other); } + bool operator!=(const DateFormatSymbols& other) const { return !operator==(other); } /** * Gets abbreviated era strings. For example: "AD" and "BC". @@ -388,8 +388,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * Gets quarter strings by width and context. For example: "1st Quarter", "2nd Quarter", etc. * @param count Filled in with length of the array. * @param context The formatting context, either FORMAT or STANDALONE - * @param width The width of returned strings, either WIDE or ABBREVIATED. There - * are no NARROW quarters. + * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW. * @return the quarter strings. (DateFormatSymbols retains ownership.) * @stable ICU 3.6 */ @@ -401,8 +400,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * @param quarters The new quarter strings. (not adopted; caller retains ownership) * @param count Filled in with length of the array. * @param context The formatting context, either FORMAT or STANDALONE - * @param width The width of returned strings, either WIDE or ABBREVIATED. There - * are no NARROW quarters. + * @param width The width of returned strings, either WIDE, ABBREVIATED, or NARROW. * @stable ICU 3.6 */ void setQuarters(const UnicodeString* quarters, int32_t count, DtContextType context, DtWidthType width); @@ -554,7 +552,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { /** * Sets timezone strings. These strings are stored in a 2-dimensional array. *

    Note: SimpleDateFormat no longer use the zone strings stored in - * a DateFormatSymbols. Therefore, the time zone strings set by this mthod + * a DateFormatSymbols. Therefore, the time zone strings set by this method * have no effects in an instance of SimpleDateFormat for formatting time * zones. * @param strings The timezone strings as a 2-d array to be copied. (not adopted; caller retains ownership) @@ -599,7 +597,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const; /* The following type and kCapContextUsageTypeCount cannot be #ifndef U_HIDE_INTERNAL_API, - they are needed for .h file declarations. */ + they are needed for .h file declarations. */ /** * Constants for capitalization context usage types. * @internal @@ -630,7 +628,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -775,6 +773,13 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { UnicodeString *fShortQuarters; int32_t fShortQuartersCount; + /** + * Narrow quarters. For example: "1", "2", etc. + * (In many, but not all, locales, this is the same as "Q", but there are locales for which this isn't true.) + */ + UnicodeString *fNarrowQuarters; + int32_t fNarrowQuartersCount; + /** * Standalone quarter strings. For example: "1st quarter", "2nd quarter", etc. */ @@ -787,6 +792,13 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { UnicodeString *fStandaloneShortQuarters; int32_t fStandaloneShortQuartersCount; + /** + * Standalone narrow quarter strings. For example: "1", "2", etc. + * (In many, but not all, locales, this is the same as "q", but there are locales for which this isn't true.) + */ + UnicodeString *fStandaloneNarrowQuarters; + int32_t fStandaloneNarrowQuartersCount; + /** * All leap month patterns, for example "{0}bis". */ @@ -816,7 +828,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * entry containing the localized names for a single TimeZone. * * Each such row contains (with i ranging from 0..n-1): - * + * * zoneStrings[i][0] - time zone ID * example: America/Los_Angeles * zoneStrings[i][1] - long name of zone in standard time @@ -902,7 +914,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { int32_t fStandaloneNarrowDayPeriodsCount; private: - /** valid/actual locale information + /** valid/actual locale information * these are always ICU locales, so the length should not be a problem */ char validLocale[ULOC_FULLNAME_CAPACITY]; @@ -926,7 +938,7 @@ class U_I18N_API DateFormatSymbols U_FINAL : public UObject { * Copy or alias an array in another object, as appropriate. * * @param dstArray the copy destination array. - * @param dstCount fill in with the lenth of 'dstArray'. + * @param dstCount fill in with the length of 'dstArray'. * @param srcArray the source array to be copied. * @param srcCount the length of items to be copied from the 'srcArray'. */ diff --git a/deps/icu-small/source/i18n/unicode/dtitvfmt.h b/deps/icu-small/source/i18n/unicode/dtitvfmt.h index 4a1ab801a04c9d..85a1b365d83f4a 100644 --- a/deps/icu-small/source/i18n/unicode/dtitvfmt.h +++ b/deps/icu-small/source/i18n/unicode/dtitvfmt.h @@ -434,7 +434,7 @@ class U_I18N_API DateIntervalFormat : public Format { * @return A copy of the object. * @stable ICU 4.0 */ - virtual DateIntervalFormat* clone() const; + virtual DateIntervalFormat* clone() const override; /** * Return true if the given Format objects are semantically equal. Objects @@ -443,7 +443,7 @@ class U_I18N_API DateIntervalFormat : public Format { * @return true if the given Format objects are semantically equal. * @stable ICU 4.0 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; /** * Return true if the given Format objects are not semantically equal. @@ -452,7 +452,7 @@ class U_I18N_API DateIntervalFormat : public Format { * @return true if the given Format objects are not semantically equal. * @stable ICU 4.0 */ - UBool operator!=(const Format& other) const; + bool operator!=(const Format& other) const; using Format::format; @@ -479,7 +479,7 @@ class U_I18N_API DateIntervalFormat : public Format { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& fieldPosition, - UErrorCode& status) const ; + UErrorCode& status) const override; @@ -595,7 +595,7 @@ class U_I18N_API DateIntervalFormat : public Format { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& parse_pos) const; + ParsePosition& parse_pos) const override; /** @@ -652,7 +652,6 @@ class U_I18N_API DateIntervalFormat : public Format { */ virtual void setTimeZone(const TimeZone& zone); -#ifndef U_FORCE_HIDE_DRAFT_API /** * Set a particular UDisplayContext value in the formatter, such as * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. This causes the formatted @@ -663,7 +662,7 @@ class U_I18N_API DateIntervalFormat : public Format { * @param status Input/output status. If at entry this indicates a failure * status, the function will do nothing; otherwise this will be * updated with any new status from the function. - * @draft ICU 68 + * @stable ICU 68 */ virtual void setContext(UDisplayContext value, UErrorCode& status); @@ -675,10 +674,9 @@ class U_I18N_API DateIntervalFormat : public Format { * status, the function will do nothing; otherwise this will be * updated with any new status from the function. * @return The UDisplayContextValue for the specified type. - * @draft ICU 68 + * @stable ICU 68 */ virtual UDisplayContext getContext(UDisplayContextType type, UErrorCode& status) const; -#endif // U_FORCE_HIDE_DRAFT_API /** * Return the class ID for this class. This is useful only for comparing to @@ -704,7 +702,7 @@ class U_I18N_API DateIntervalFormat : public Format { * other classes have different class IDs. * @stable ICU 4.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; protected: @@ -742,7 +740,7 @@ class U_I18N_API DateIntervalFormat : public Format { * Whether the first date in interval pattern is later date or not. * Fallback format set the default ordering. * And for a particular interval pattern, the order can be - * overriden by prefixing the interval pattern with "latestFirst:" or + * overridden by prefixing the interval pattern with "latestFirst:" or * "earliestFirst:" * For example, given 2 date, Jan 10, 2007 to Feb 10, 2007. * if the fallback format is "{0} - {1}", @@ -893,7 +891,7 @@ class U_I18N_API DateIntervalFormat : public Format { void setFallbackPattern(UCalendarDateFields field, const UnicodeString& skeleton, UErrorCode& status); - + /** @@ -1199,7 +1197,7 @@ class U_I18N_API DateIntervalFormat : public Format { UDisplayContext fCapitalizationContext; }; -inline UBool +inline bool DateIntervalFormat::operator!=(const Format& other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/unicode/dtitvinf.h b/deps/icu-small/source/i18n/unicode/dtitvinf.h index 8452614bfb8d87..b5afc064678224 100644 --- a/deps/icu-small/source/i18n/unicode/dtitvinf.h +++ b/deps/icu-small/source/i18n/unicode/dtitvinf.h @@ -45,7 +45,7 @@ U_NAMESPACE_BEGIN *

    * For power users, who want to create their own date interval patterns, * or want to re-set date interval patterns, they could do so by - * directly creating DateIntervalInfo and manupulating it. + * directly creating DateIntervalInfo and manipulating it. * *

    * Logically, the interval patterns are mappings @@ -114,7 +114,7 @@ U_NAMESPACE_BEGIN * the first date in the interval pattern for this locale is earlier date. * If the fallback format is "{1} - {0}", it means the first date is the * later date. - * For a particular interval pattern, the default order can be overriden + * For a particular interval pattern, the default order can be overridden * by prefixing "latestFirst:" or "earliestFirst:" to the interval pattern. * For example, if the fallback format is "{0}-{1}", * but for skeleton "yMMMd", the interval pattern when day is different is @@ -214,7 +214,7 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { * @return true if other is semantically equal to this. * @stable ICU 4.0 */ - virtual UBool operator==(const DateIntervalInfo& other) const; + virtual bool operator==(const DateIntervalInfo& other) const; /** * Return true if another object is semantically unequal to this one. @@ -223,7 +223,7 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { * @return true if other is semantically unequal to this. * @stable ICU 4.0 */ - UBool operator!=(const DateIntervalInfo& other) const; + bool operator!=(const DateIntervalInfo& other) const; @@ -319,7 +319,7 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { * * @stable ICU 4.0 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -406,7 +406,7 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { * and the best match skeleton. * * TODO (xji): set field weight or - * isolate the funtionality in DateTimePatternGenerator + * isolate the functionality in DateTimePatternGenerator * @param skeleton input skeleton * @param bestMatchDistanceInfo the difference between input skeleton * and best match skeleton. @@ -508,7 +508,7 @@ class U_I18N_API DateIntervalInfo U_FINAL : public UObject { };// end class DateIntervalInfo -inline UBool +inline bool DateIntervalInfo::operator!=(const DateIntervalInfo& other) const { return !operator==(other); } @@ -521,3 +521,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif + diff --git a/deps/icu-small/source/i18n/unicode/dtptngen.h b/deps/icu-small/source/i18n/unicode/dtptngen.h index dab7dcfb3dc61a..250a0e089fed6b 100644 --- a/deps/icu-small/source/i18n/unicode/dtptngen.h +++ b/deps/icu-small/source/i18n/unicode/dtptngen.h @@ -120,7 +120,7 @@ class U_I18N_API DateTimePatternGenerator : public UObject { * @return true if other is semantically equal to this. * @stable ICU 3.8 */ - UBool operator==(const DateTimePatternGenerator& other) const; + bool operator==(const DateTimePatternGenerator& other) const; /** * Return true if another object is semantically unequal to this one. @@ -129,7 +129,7 @@ class U_I18N_API DateTimePatternGenerator : public UObject { * @return true if other is semantically unequal to this. * @stable ICU 3.8 */ - UBool operator!=(const DateTimePatternGenerator& other) const; + bool operator!=(const DateTimePatternGenerator& other) const; /** * Utility to return a unique skeleton from a given pattern. For example, @@ -202,7 +202,7 @@ class U_I18N_API DateTimePatternGenerator : public UObject { /** * Adds a pattern to the generator. If the pattern has the same skeleton as * an existing pattern, and the override parameter is set, then the previous - * value is overriden. Otherwise, the previous value is retained. In either + * value is overridden. Otherwise, the previous value is retained. In either * case, the conflicting status is set and previous vale is stored in * conflicting pattern. *

    @@ -495,9 +495,9 @@ class U_I18N_API DateTimePatternGenerator : public UObject { /** * Get the default hour cycle for a locale. Uses the locale that the * DateTimePatternGenerator was initially created with. - * + * * Cannot be used on an empty DateTimePatternGenerator instance. - * + * * @param status Output param set to success/failure code on exit, which * which must not indicate a failure before the function call. * Set to U_UNSUPPORTED_ERROR if used on an empty instance. @@ -507,13 +507,13 @@ class U_I18N_API DateTimePatternGenerator : public UObject { UDateFormatHourCycle getDefaultHourCycle(UErrorCode& status) const; #endif /* #if !UCONFIG_NO_FORMATTING */ - + /** * ICU "poor man's RTTI", returns a UClassID for the actual class. * * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/icu-small/source/i18n/unicode/dtrule.h b/deps/icu-small/source/i18n/unicode/dtrule.h index dba28bf2dc4ede..19e94bc981c817 100644 --- a/deps/icu-small/source/i18n/unicode/dtrule.h +++ b/deps/icu-small/source/i18n/unicode/dtrule.h @@ -14,7 +14,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: Rule for specifying date and time in an year */ @@ -27,7 +27,7 @@ U_NAMESPACE_BEGIN * DateTimeRule is a class representing a time in a year by * a rule specified by month, day of month, day of week and * time in the day. - * + * * @stable ICU 3.8 */ class U_I18N_API DateTimeRule : public UObject { @@ -40,11 +40,11 @@ class U_I18N_API DateTimeRule : public UObject { enum DateRuleType { DOM = 0, /**< The exact day of month, for example, March 11. */ - DOW, /**< The Nth occurence of the day of week, + DOW, /**< The Nth occurrence of the day of week, for example, 2nd Sunday in March. */ - DOW_GEQ_DOM, /**< The first occurence of the day of week on or after the day of monnth, + DOW_GEQ_DOM, /**< The first occurrence of the day of week on or after the day of monnth, for example, first Sunday on or after March 8. */ - DOW_LEQ_DOM /**< The last occurence of the day of week on or before the day of month, + DOW_LEQ_DOM /**< The last occurrence of the day of week on or before the day of month, for example, first Sunday on or before March 14. */ }; @@ -62,7 +62,7 @@ class U_I18N_API DateTimeRule : public UObject { * Constructs a DateTimeRule by the day of month and * the time rule. The date rule type for an instance created by * this constructor is DOM. - * + * * @param month The rule month, for example, Calendar::JANUARY * @param dayOfMonth The day of month, 1-based. * @param millisInDay The milliseconds in the rule date. @@ -74,10 +74,10 @@ class U_I18N_API DateTimeRule : public UObject { int32_t millisInDay, TimeRuleType timeType); /** - * Constructs a DateTimeRule by the day of week and its oridinal + * Constructs a DateTimeRule by the day of week and its ordinal * number and the time rule. The date rule type for an instance created * by this constructor is DOW. - * + * * @param month The rule month, for example, Calendar::JANUARY. * @param weekInMonth The ordinal number of the day of week. Negative number * may be used for specifying a rule date counted from the @@ -96,7 +96,7 @@ class U_I18N_API DateTimeRule : public UObject { * on or after/before the day of month and the time rule. The date rule * type for an instance created by this constructor is either * DOM_GEQ_DOM or DOM_LEQ_DOM. - * + * * @param month The rule month, for example, Calendar::JANUARY * @param dayOfMonth The day of month, 1-based. * @param dayOfWeek The day of week, for example, Calendar::SUNDAY. @@ -144,7 +144,7 @@ class U_I18N_API DateTimeRule : public UObject { * @return true if the given DateTimeRule objects are semantically equal. * @stable ICU 3.8 */ - UBool operator==(const DateTimeRule& that) const; + bool operator==(const DateTimeRule& that) const; /** * Return true if the given DateTimeRule objects are semantically unequal. Objects @@ -153,7 +153,7 @@ class U_I18N_API DateTimeRule : public UObject { * @return true if the given DateTimeRule objects are semantically unequal. * @stable ICU 3.8 */ - UBool operator!=(const DateTimeRule& that) const; + bool operator!=(const DateTimeRule& that) const; /** * Gets the date rule type, such as DOM @@ -194,7 +194,7 @@ class U_I18N_API DateTimeRule : public UObject { int32_t getRuleDayOfWeek(void) const; /** - * Gets the ordinal number of the occurence of the day of week + * Gets the ordinal number of the occurrence of the day of week * in the month. When the date rule type is not DOW, * the value is always 0. * @return The rule day of week ordinal number in the month. @@ -243,7 +243,7 @@ class U_I18N_API DateTimeRule : public UObject { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/fieldpos.h b/deps/icu-small/source/i18n/unicode/fieldpos.h index 6c28d2d3159b66..b985f3b2f76db4 100644 --- a/deps/icu-small/source/i18n/unicode/fieldpos.h +++ b/deps/icu-small/source/i18n/unicode/fieldpos.h @@ -20,7 +20,7 @@ // ***************************************************************************** // This file was generated from the java source file FieldPosition.java // ***************************************************************************** - + #ifndef FIELDPOS_H #define FIELDPOS_H @@ -29,7 +29,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: FieldPosition identifies the fields in a formatted output. */ @@ -71,14 +71,14 @@ U_NAMESPACE_BEGIN * double doubleNum[] = {123456789.0, -12345678.9, 1234567.89, -123456.789, * 12345.6789, -1234.56789, 123.456789, -12.3456789, 1.23456789}; * int dNumSize = (int)(sizeof(doubleNum)/sizeof(double)); - * + * * UErrorCode status = U_ZERO_ERROR; * DecimalFormat* fmt = (DecimalFormat*) NumberFormat::createInstance(status); * fmt->setDecimalSeparatorAlwaysShown(true); - * + * * const int tempLen = 20; * char temp[tempLen]; - * + * * for (int i=0; i * If there is no match when parsing, a parse failure UErrorCode is - * retured for methods which take no ParsePosition. For the method + * returned for methods which take no ParsePosition. For the method * that takes a ParsePosition, the index parameter is left unchanged. *

    * User subclasses are not supported. While clients may write @@ -111,7 +111,7 @@ class U_I18N_API Format : public UObject { * Objects of different subclasses are considered unequal. * @stable ICU 2.0 */ - virtual UBool operator==(const Format& other) const = 0; + virtual bool operator==(const Format& other) const = 0; /** * Return true if the given Format objects are not semantically @@ -120,7 +120,7 @@ class U_I18N_API Format : public UObject { * @return Return true if the given Format objects are not semantically. * @stable ICU 2.0 */ - UBool operator!=(const Format& other) const { return !operator==(other); } + bool operator!=(const Format& other) const { return !operator==(other); } /** * Clone this object polymorphically. The caller is responsible @@ -245,7 +245,7 @@ class U_I18N_API Format : public UObject { UErrorCode& status) const; /** Get the locale for this format object. You can choose between valid and actual locale. - * @param type type of the locale we're looking for (valid or actual) + * @param type type of the locale we're looking for (valid or actual) * @param status error code for the operation * @return the locale * @stable ICU 2.8 @@ -254,7 +254,7 @@ class U_I18N_API Format : public UObject { #ifndef U_HIDE_INTERNAL_API /** Get the locale for this format object. You can choose between valid and actual locale. - * @param type type of the locale we're looking for (valid or actual) + * @param type type of the locale we're looking for (valid or actual) * @param status error code for the operation * @return the locale * @internal @@ -283,12 +283,12 @@ class U_I18N_API Format : public UObject { */ Format& operator=(const Format&); // Does nothing; for subclasses - + /** * Simple function for initializing a UParseError from a UnicodeString. * * @param pattern The pattern to copy into the parseError - * @param pos The position in pattern where the error occured + * @param pos The position in pattern where the error occurred * @param parseError The UParseError object to fill in * @stable ICU 2.4 */ diff --git a/deps/icu-small/source/i18n/unicode/formattedvalue.h b/deps/icu-small/source/i18n/unicode/formattedvalue.h index f4e588d01cbddf..5febea066180a0 100644 --- a/deps/icu-small/source/i18n/unicode/formattedvalue.h +++ b/deps/icu-small/source/i18n/unicode/formattedvalue.h @@ -20,7 +20,7 @@ U_NAMESPACE_BEGIN /** * \file * \brief C++ API: Abstract operations for localized strings. - * + * * This file contains declarations for classes that deal with formatted strings. A number * of APIs throughout ICU use these classes for expressing their localized output. */ @@ -65,7 +65,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory { /** * Sets a constraint on the field category. - * + * * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition, * positions are skipped unless they have the given category. * @@ -89,7 +89,7 @@ class U_I18N_API ConstrainedFieldPosition : public UMemory { /** * Sets a constraint on the category and field. - * + * * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition, * positions are skipped unless they have the given category and field. * diff --git a/deps/icu-small/source/i18n/unicode/fpositer.h b/deps/icu-small/source/i18n/unicode/fpositer.h index 35aa5da20f2cfa..0e38d0b78b3a48 100644 --- a/deps/icu-small/source/i18n/unicode/fpositer.h +++ b/deps/icu-small/source/i18n/unicode/fpositer.h @@ -84,7 +84,7 @@ class U_I18N_API FieldPositionIterator : public UObject { * equal array of run values. * @stable ICU 4.4 */ - UBool operator==(const FieldPositionIterator&) const; + bool operator==(const FieldPositionIterator&) const; /** * Returns the complement of the result of operator== @@ -92,7 +92,7 @@ class U_I18N_API FieldPositionIterator : public UObject { * @return the complement of the result of operator== * @stable ICU 4.4 */ - UBool operator!=(const FieldPositionIterator& rhs) const { return !operator==(rhs); } + bool operator!=(const FieldPositionIterator& rhs) const { return !operator==(rhs); } /** * If the current position is valid, updates the FieldPosition values, advances the iterator, @@ -104,7 +104,7 @@ class U_I18N_API FieldPositionIterator : public UObject { private: /** * Sets the data used by the iterator, and resets the position. - * Returns U_ILLEGAL_ARGUMENT_ERROR in status if the data is not valid + * Returns U_ILLEGAL_ARGUMENT_ERROR in status if the data is not valid * (length is not a multiple of 3, or start >= limit for any run). */ void setData(UVector32 *adopt, UErrorCode& status); diff --git a/deps/icu-small/source/i18n/unicode/gender.h b/deps/icu-small/source/i18n/unicode/gender.h index 5ae111a3aa816a..cf7fee963e1fe8 100644 --- a/deps/icu-small/source/i18n/unicode/gender.h +++ b/deps/icu-small/source/i18n/unicode/gender.h @@ -67,7 +67,7 @@ class U_I18N_API GenderInfo : public UObject { /** * Determines the gender of a list as a whole given the gender of each * of the elements. - * + * * @param genders the gender of each element in the list. * @param length the length of gender array. * @param status Output param set to success/failure code on exit, which diff --git a/deps/icu-small/source/i18n/unicode/gregocal.h b/deps/icu-small/source/i18n/unicode/gregocal.h index 139258d822a30c..4c2be18251faa9 100644 --- a/deps/icu-small/source/i18n/unicode/gregocal.h +++ b/deps/icu-small/source/i18n/unicode/gregocal.h @@ -35,13 +35,13 @@ #include "unicode/calendar.h" /** - * \file + * \file * \brief C++ API: Concrete class which provides the standard calendar. */ U_NAMESPACE_BEGIN -/** +/** * Concrete class which provides the standard calendar used by most of the world. *

    * The standard (Gregorian) calendar has 2 eras, BC and AD. @@ -78,9 +78,9 @@ U_NAMESPACE_BEGIN * \code * // get the supported ids for GMT-08:00 (Pacific Standard Time) * UErrorCode success = U_ZERO_ERROR; - * const StringEnumeration *ids = TimeZone::createEnumeration(-8 * 60 * 60 * 1000); + * const StringEnumeration *ids = TimeZone::createEnumeration(-8 * 60 * 60 * 1000, success); * // if no ids were returned, something is wrong. get out. - * if (ids == 0 || ids->count(success) == 0) { + * if (U_FAILURE(success)) { * return; * } * @@ -141,7 +141,7 @@ U_NAMESPACE_BEGIN * cout << "DST_OFFSET: " << (calendar->get( UCAL_DST_OFFSET, success )/(60*60*1000)) << endl; // in hours * * if (U_FAILURE(success)) { - * cout << "An error occured. success=" << u_errorName(success) << endl; + * cout << "An error occurred. success=" << u_errorName(success) << endl; * } * * delete ids; @@ -303,7 +303,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * @return return a polymorphic copy of this calendar. * @stable ICU 2.0 */ - virtual GregorianCalendar* clone() const; + virtual GregorianCalendar* clone() const override; /** * Sets the GregorianCalendar change date. This is the point when the switch from @@ -347,10 +347,10 @@ class U_I18N_API GregorianCalendar: public Calendar { * Returns true if the given Calendar object is equivalent to this * one. Calendar override. * - * @param other the Calendar to be compared with this Calendar + * @param other the Calendar to be compared with this Calendar * @stable ICU 2.4 */ - virtual UBool isEquivalentTo(const Calendar& other) const; + virtual UBool isEquivalentTo(const Calendar& other) const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -364,7 +364,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * an error status. * @deprecated ICU 2.6. Use roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) instead. */ - virtual void roll(EDateFields field, int32_t amount, UErrorCode& status); + virtual void roll(EDateFields field, int32_t amount, UErrorCode& status) override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -378,7 +378,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * an error status. * @stable ICU 2.6. */ - virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status); + virtual void roll(UCalendarDateFields field, int32_t amount, UErrorCode& status) override; #ifndef U_HIDE_DEPRECATED_API /** @@ -409,7 +409,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * @return the minimum value that this field could have, given the current date. * @stable ICU 3.0 */ - int32_t getActualMinimum(UCalendarDateFields field, UErrorCode &status) const; + int32_t getActualMinimum(UCalendarDateFields field, UErrorCode &status) const override; #ifndef U_HIDE_DEPRECATED_API /** @@ -434,7 +434,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * @return the maximum value that this field could have, given the current date. * @stable ICU 2.6 */ - virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const; + virtual int32_t getActualMaximum(UCalendarDateFields field, UErrorCode& status) const override; /** * (Overrides Calendar) Return true if the current date for this Calendar is in @@ -445,7 +445,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * false, otherwise. * @stable ICU 2.0 */ - virtual UBool inDaylightTime(UErrorCode& status) const; + virtual UBool inDaylightTime(UErrorCode& status) const override; public: @@ -459,7 +459,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * same class ID. Objects of other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return @@ -484,7 +484,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * @return legacy calendar type name string * @stable ICU 49 */ - virtual const char * getType() const; + virtual const char * getType() const override; private: GregorianCalendar(); // default constructor not implemented @@ -512,17 +512,17 @@ class U_I18N_API GregorianCalendar: public Calendar { * @internal */ virtual int32_t handleComputeMonthStart(int32_t eyear, int32_t month, - UBool useMonth) const; + UBool useMonth) const override; /** * Subclasses may override this. This method calls * handleGetMonthLength() to obtain the calendar-specific month * length. - * @param bestField which field to use to calculate the date + * @param bestField which field to use to calculate the date * @return julian day specified by calendar fields. * @internal */ - virtual int32_t handleComputeJulianDay(UCalendarDateFields bestField) ; + virtual int32_t handleComputeJulianDay(UCalendarDateFields bestField) override; /** * Return the number of days in the given month of the given extended @@ -531,7 +531,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * implementation than the default implementation in Calendar. * @internal */ - virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const; + virtual int32_t handleGetMonthLength(int32_t extendedYear, int32_t month) const override; /** * Return the number of days in the given extended year of this @@ -540,7 +540,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * default implementation in Calendar. * @stable ICU 2.0 */ - virtual int32_t handleGetYearLength(int32_t eyear) const; + virtual int32_t handleGetYearLength(int32_t eyear) const override; /** * return the length of the given month. @@ -567,7 +567,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * @internal */ int32_t yearLength(int32_t year) const; - + /** * return the length of the year field. * @return the length of the year field @@ -589,7 +589,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * Return the day number with respect to the epoch. January 1, 1970 (Gregorian) * is day zero. * @param status Fill-in parameter which receives the status of this operation. - * @return the day number with respect to the epoch. + * @return the day number with respect to the epoch. * @internal */ virtual UDate getEpochDay(UErrorCode& status); @@ -615,7 +615,7 @@ class U_I18N_API GregorianCalendar: public Calendar { * LEAST_MAXIMUM, or MAXIMUM * @internal */ - virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const; + virtual int32_t handleGetLimit(UCalendarDateFields field, ELimitType limitType) const override; /** * Return the extended year defined by the current fields. This will @@ -625,17 +625,17 @@ class U_I18N_API GregorianCalendar: public Calendar { * @return the extended year * @internal */ - virtual int32_t handleGetExtendedYear(); + virtual int32_t handleGetExtendedYear() override; - /** - * Subclasses may override this to convert from week fields + /** + * Subclasses may override this to convert from week fields * (YEAR_WOY and WEEK_OF_YEAR) to an extended year in the case * where YEAR, EXTENDED_YEAR are not set. * The Gregorian implementation assumes a yearWoy in gregorian format, according to the current era. * @return the extended year, UCAL_EXTENDED_YEAR * @internal */ - virtual int32_t handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t woy); + virtual int32_t handleGetExtendedYearFromWeekFields(int32_t yearWoy, int32_t woy) override; /** @@ -653,19 +653,19 @@ class U_I18N_API GregorianCalendar: public Calendar { * a calendar with the specified Julian/Gregorian cutover date. * @internal */ - virtual void handleComputeFields(int32_t julianDay, UErrorCode &status); + virtual void handleComputeFields(int32_t julianDay, UErrorCode &status) override; private: /** * Compute the julian day number of the given year. * @param isGregorian if true, using Gregorian calendar, otherwise using Julian calendar * @param year the given year. - * @param isLeap true if the year is a leap year. - * @return + * @param isLeap true if the year is a leap year. + * @return */ static double computeJulianDayOfYear(UBool isGregorian, int32_t year, UBool& isLeap); - + /** * Validates the values of the set time fields. True if they're all valid. * @return True if the set time fields are all valid. @@ -757,21 +757,21 @@ class U_I18N_API GregorianCalendar: public Calendar { /** * @return true if this calendar has the notion of a default century - * @internal + * @internal */ - virtual UBool haveDefaultCentury() const; + virtual UBool haveDefaultCentury() const override; /** * @return the start of the default century * @internal */ - virtual UDate defaultCenturyStart() const; + virtual UDate defaultCenturyStart() const override; /** * @return the beginning year of the default century - * @internal + * @internal */ - virtual int32_t defaultCenturyStartYear() const; + virtual int32_t defaultCenturyStartYear() const override; }; U_NAMESPACE_END @@ -782,3 +782,4 @@ U_NAMESPACE_END #endif // _GREGOCAL //eof + diff --git a/deps/icu-small/source/i18n/unicode/listformatter.h b/deps/icu-small/source/i18n/unicode/listformatter.h index 3cc750c8387499..d7ab1d20865a39 100644 --- a/deps/icu-small/source/i18n/unicode/listformatter.h +++ b/deps/icu-small/source/i18n/unicode/listformatter.h @@ -257,7 +257,7 @@ class U_I18N_API ListFormatter : public UObject{ #endif /* U_HIDE_INTERNAL_API */ private: - + /** * Creates a ListFormatter appropriate for a locale and style. * diff --git a/deps/icu-small/source/i18n/unicode/measfmt.h b/deps/icu-small/source/i18n/unicode/measfmt.h index f48dada2abf02a..893076145f5f31 100644 --- a/deps/icu-small/source/i18n/unicode/measfmt.h +++ b/deps/icu-small/source/i18n/unicode/measfmt.h @@ -23,7 +23,7 @@ #include "unicode/udat.h" /** - * \file + * \file * \brief C++ API: Compatibility APIs for measure formatting. */ @@ -40,10 +40,10 @@ enum UMeasureFormatWidth { // Wide, short, and narrow must be first and in this order. /** * Spell out measure units. - * @stable ICU 53 + * @stable ICU 53 */ UMEASFMT_WIDTH_WIDE, - + /** * Abbreviate measure units. * @stable ICU 53 @@ -72,7 +72,7 @@ enum UMeasureFormatWidth { #endif // U_HIDE_DEPRECATED_API }; /** @stable ICU 53 */ -typedef enum UMeasureFormatWidth UMeasureFormatWidth; +typedef enum UMeasureFormatWidth UMeasureFormatWidth; U_NAMESPACE_BEGIN @@ -148,13 +148,13 @@ class U_I18N_API MeasureFormat : public Format { * Return true if given Format objects are semantically equal. * @stable ICU 53 */ - virtual UBool operator==(const Format &other) const; + virtual bool operator==(const Format &other) const override; /** * Clones this object polymorphically. * @stable ICU 53 */ - virtual MeasureFormat *clone() const; + virtual MeasureFormat *clone() const override; /** * Formats object to produce a string. @@ -164,7 +164,7 @@ class U_I18N_API MeasureFormat : public Format { const Formattable &obj, UnicodeString &appendTo, FieldPosition &pos, - UErrorCode &status) const; + UErrorCode &status) const override; #ifndef U_FORCE_HIDE_DRAFT_API /** @@ -176,7 +176,7 @@ class U_I18N_API MeasureFormat : public Format { virtual void parseObject( const UnicodeString &source, Formattable &reslt, - ParsePosition &pos) const; + ParsePosition &pos) const override; #endif // U_FORCE_HIDE_DRAFT_API /** @@ -286,7 +286,7 @@ class U_I18N_API MeasureFormat : public Format { * other classes have different class IDs. * @stable ICU 53 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; protected: /** @@ -295,7 +295,7 @@ class U_I18N_API MeasureFormat : public Format { */ MeasureFormat(); -#ifndef U_HIDE_INTERNAL_API +#ifndef U_HIDE_INTERNAL_API /** * ICU use only. @@ -360,7 +360,7 @@ class U_I18N_API MeasureFormat : public Format { const MeasureFormatCacheData *cache; const SharedNumberFormat *numberFormat; const SharedPluralRules *pluralRules; - UMeasureFormatWidth fWidth; + UMeasureFormatWidth fWidth; // Declared outside of MeasureFormatSharedData because ListFormatter // objects are relatively cheap to copy; therefore, they don't need to be diff --git a/deps/icu-small/source/i18n/unicode/measunit.h b/deps/icu-small/source/i18n/unicode/measunit.h index 0985ba0706eaa4..61da62e71f2271 100644 --- a/deps/icu-small/source/i18n/unicode/measunit.h +++ b/deps/icu-small/source/i18n/unicode/measunit.h @@ -107,12 +107,14 @@ typedef enum UMeasurePrefix { */ UMEASURE_PREFIX_YOTTA = UMEASURE_PREFIX_ONE + 24, +#ifndef U_HIDE_INTERNAL_API /** * ICU use only. * Used to determine the set of base-10 SI prefixes. * @internal */ UMEASURE_PREFIX_INTERNAL_MAX_SI = UMEASURE_PREFIX_YOTTA, +#endif /* U_HIDE_INTERNAL_API */ /** * SI prefix: zetta, 10^21. @@ -433,14 +435,14 @@ class U_I18N_API MeasureUnit: public UObject { * to the given object. * @stable ICU 3.0 */ - virtual UBool operator==(const UObject& other) const; + virtual bool operator==(const UObject& other) const; /** * Inequality operator. Return true if this object is not equal * to the given object. * @stable ICU 53 */ - UBool operator!=(const UObject& other) const { + bool operator!=(const UObject& other) const { return !(*this == other); } @@ -577,7 +579,6 @@ class U_I18N_API MeasureUnit: public UObject { */ MeasureUnit product(const MeasureUnit& other, UErrorCode& status) const; -#ifndef U_HIDE_DRAFT_API /** * Gets the list of SINGLE units contained within a MIXED or COMPOUND unit. * @@ -591,10 +592,9 @@ class U_I18N_API MeasureUnit: public UObject { * * @param status Set if an error occurs. * @return A pair with the list of units as a LocalArray and the number of units in the list. - * @draft ICU 68 + * @stable ICU 68 */ inline std::pair, int32_t> splitToSingleUnits(UErrorCode& status) const; -#endif // U_HIDE_DRAFT_API /** * getAvailable gets all of the available units. @@ -664,7 +664,7 @@ class U_I18N_API MeasureUnit: public UObject { * other classes have different class IDs. * @stable ICU 53 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; #ifndef U_HIDE_INTERNAL_API /** @@ -955,6 +955,24 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getSquareYard(); +#ifndef U_HIDE_DRAFT_API + /** + * Returns by pointer, unit of concentr: item. + * Caller owns returned value and must free it. + * Also see {@link #getItem()}. + * @param status ICU error code. + * @draft ICU 70 + */ + static MeasureUnit *createItem(UErrorCode &status); + + /** + * Returns by value, unit of concentr: item. + * Also see {@link #createItem()}. + * @draft ICU 70 + */ + static MeasureUnit getItem(); +#endif /* U_HIDE_DRAFT_API */ + /** * Returns by pointer, unit of concentr: karat. * Caller owns returned value and must free it. @@ -1805,6 +1823,24 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getThermUs(); +#ifndef U_HIDE_DRAFT_API + /** + * Returns by pointer, unit of force: kilowatt-hour-per-100-kilometer. + * Caller owns returned value and must free it. + * Also see {@link #getKilowattHourPer100Kilometer()}. + * @param status ICU error code. + * @draft ICU 70 + */ + static MeasureUnit *createKilowattHourPer100Kilometer(UErrorCode &status); + + /** + * Returns by value, unit of force: kilowatt-hour-per-100-kilometer. + * Also see {@link #createKilowattHourPer100Kilometer()}. + * @draft ICU 70 + */ + static MeasureUnit getKilowattHourPer100Kilometer(); +#endif /* U_HIDE_DRAFT_API */ + /** * Returns by pointer, unit of force: newton. * Caller owns returned value and must free it. @@ -1901,23 +1937,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getMegahertz(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of graphics: dot. * Caller owns returned value and must free it. * Also see {@link #getDot()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createDot(UErrorCode &status); /** * Returns by value, unit of graphics: dot. * Also see {@link #createDot()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getDot(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of graphics: dot-per-centimeter. @@ -2079,23 +2113,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getDecimeter(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of length: earth-radius. * Caller owns returned value and must free it. * Also see {@link #getEarthRadius()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createEarthRadius(UErrorCode &status); /** * Returns by value, unit of length: earth-radius. * Also see {@link #createEarthRadius()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getEarthRadius(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of length: fathom. @@ -2385,41 +2417,37 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getYard(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of light: candela. * Caller owns returned value and must free it. * Also see {@link #getCandela()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createCandela(UErrorCode &status); /** * Returns by value, unit of light: candela. * Also see {@link #createCandela()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getCandela(); -#endif /* U_HIDE_DRAFT_API */ -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of light: lumen. * Caller owns returned value and must free it. * Also see {@link #getLumen()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createLumen(UErrorCode &status); /** * Returns by value, unit of light: lumen. * Also see {@link #createLumen()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getLumen(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of light: lux. @@ -2501,23 +2529,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getEarthMass(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of mass: grain. * Caller owns returned value and must free it. * Also see {@link #getGrain()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createGrain(UErrorCode &status); /** * Returns by value, unit of mass: grain. * Also see {@link #createGrain()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getGrain(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of mass: gram. @@ -3335,77 +3361,69 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getDeciliter(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: dessert-spoon. * Caller owns returned value and must free it. * Also see {@link #getDessertSpoon()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createDessertSpoon(UErrorCode &status); /** * Returns by value, unit of volume: dessert-spoon. * Also see {@link #createDessertSpoon()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getDessertSpoon(); -#endif /* U_HIDE_DRAFT_API */ -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: dessert-spoon-imperial. * Caller owns returned value and must free it. * Also see {@link #getDessertSpoonImperial()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createDessertSpoonImperial(UErrorCode &status); /** * Returns by value, unit of volume: dessert-spoon-imperial. * Also see {@link #createDessertSpoonImperial()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getDessertSpoonImperial(); -#endif /* U_HIDE_DRAFT_API */ -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: dram. * Caller owns returned value and must free it. * Also see {@link #getDram()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createDram(UErrorCode &status); /** * Returns by value, unit of volume: dram. * Also see {@link #createDram()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getDram(); -#endif /* U_HIDE_DRAFT_API */ -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: drop. * Caller owns returned value and must free it. * Also see {@link #getDrop()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createDrop(UErrorCode &status); /** * Returns by value, unit of volume: drop. * Also see {@link #createDrop()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getDrop(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of volume: fluid-ounce. @@ -3487,23 +3505,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getHectoliter(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: jigger. * Caller owns returned value and must free it. * Also see {@link #getJigger()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createJigger(UErrorCode &status); /** * Returns by value, unit of volume: jigger. * Also see {@link #createJigger()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getJigger(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of volume: liter. @@ -3553,23 +3569,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getMilliliter(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: pinch. * Caller owns returned value and must free it. * Also see {@link #getPinch()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createPinch(UErrorCode &status); /** * Returns by value, unit of volume: pinch. * Also see {@link #createPinch()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getPinch(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of volume: pint. @@ -3619,23 +3633,21 @@ class U_I18N_API MeasureUnit: public UObject { */ static MeasureUnit getQuart(); -#ifndef U_HIDE_DRAFT_API /** * Returns by pointer, unit of volume: quart-imperial. * Caller owns returned value and must free it. * Also see {@link #getQuartImperial()}. * @param status ICU error code. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit *createQuartImperial(UErrorCode &status); /** * Returns by value, unit of volume: quart-imperial. * Also see {@link #createQuartImperial()}. - * @draft ICU 68 + * @stable ICU 68 */ static MeasureUnit getQuartImperial(); -#endif /* U_HIDE_DRAFT_API */ /** * Returns by pointer, unit of volume: tablespoon. @@ -3724,15 +3736,13 @@ class U_I18N_API MeasureUnit: public UObject { friend class number::impl::LongNameHandler; }; -#ifndef U_HIDE_DRAFT_API -// inline impl of @draft ICU 68 method +// inline impl of @stable ICU 68 method inline std::pair, int32_t> MeasureUnit::splitToSingleUnits(UErrorCode& status) const { int32_t length; auto array = splitToSingleUnitsImpl(length, status); return std::make_pair(std::move(array), length); } -#endif // U_HIDE_DRAFT_API U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/measure.h b/deps/icu-small/source/i18n/unicode/measure.h index 0ed02626b13b8f..7b118acfcfaf5a 100644 --- a/deps/icu-small/source/i18n/unicode/measure.h +++ b/deps/icu-small/source/i18n/unicode/measure.h @@ -18,10 +18,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: MeasureUnit object. */ - + #if !UCONFIG_NO_FORMATTING #include "unicode/fmtable.h" @@ -81,13 +81,13 @@ class U_I18N_API Measure: public UObject { * @stable ICU 3.0 */ virtual ~Measure(); - + /** * Equality operator. Return true if this object is equal * to the given object. * @stable ICU 3.0 */ - UBool operator==(const UObject& other) const; + bool operator==(const UObject& other) const; /** * Return a reference to the numeric value of this object. The @@ -127,7 +127,7 @@ class U_I18N_API Measure: public UObject { * other classes have different class IDs. * @stable ICU 53 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; protected: /** diff --git a/deps/icu-small/source/i18n/unicode/msgfmt.h b/deps/icu-small/source/i18n/unicode/msgfmt.h index 14b57a114dc3a5..c949132fdae73b 100644 --- a/deps/icu-small/source/i18n/unicode/msgfmt.h +++ b/deps/icu-small/source/i18n/unicode/msgfmt.h @@ -420,7 +420,7 @@ class U_I18N_API MessageFormat : public Format { * result and should delete it when done. * @stable ICU 2.0 */ - virtual MessageFormat* clone() const; + virtual MessageFormat* clone() const override; /** * Returns true if the given Format objects are semantically equal. @@ -429,7 +429,7 @@ class U_I18N_API MessageFormat : public Format { * @return true if the given Format objects are semantically equal. * @stable ICU 2.0 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; /** * Sets the locale to be used for creating argument Format objects. @@ -589,7 +589,7 @@ class U_I18N_API MessageFormat : public Format { * arguments. If numbered, the formatName is the * corresponding UnicodeStrings (e.g. "0", "1", "2"...). * The returned Format object should not be deleted by the caller, - * nor should the ponter of other object . The pointer and its + * nor should the pointer of other object . The pointer and its * contents remain valid only until the next call to any method * of this class is made with this object. * @param formatName the name or number specifying a format @@ -715,7 +715,7 @@ class U_I18N_API MessageFormat : public Format { virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Formats the given array of arguments into a user-defined argument name @@ -790,7 +790,7 @@ class U_I18N_API MessageFormat : public Format { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& pos) const; + ParsePosition& pos) const override; /** * Convert an 'apostrophe-friendly' pattern into a standard @@ -850,7 +850,7 @@ class U_I18N_API MessageFormat : public Format { * other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for @@ -898,7 +898,7 @@ class U_I18N_API MessageFormat : public Format { public: PluralSelectorProvider(const MessageFormat &mf, UPluralType type); virtual ~PluralSelectorProvider(); - virtual UnicodeString select(void *ctx, double number, UErrorCode& ec) const; + virtual UnicodeString select(void *ctx, double number, UErrorCode& ec) const override; void reset(); private: @@ -1088,22 +1088,22 @@ class U_I18N_API MessageFormat : public Format { */ class U_I18N_API DummyFormat : public Format { public: - virtual UBool operator==(const Format&) const; - virtual DummyFormat* clone() const; + virtual bool operator==(const Format&) const override; + virtual DummyFormat* clone() const override; virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, UErrorCode& status) const; virtual UnicodeString& format(const Formattable&, UnicodeString& appendTo, FieldPosition&, - UErrorCode& status) const; + UErrorCode& status) const override; virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPositionIterator* posIter, - UErrorCode& status) const; + UErrorCode& status) const override; virtual void parseObject(const UnicodeString&, Formattable&, - ParsePosition&) const; + ParsePosition&) const override; }; friend class MessageFormatAdapter; // getFormatTypeList() access diff --git a/deps/icu-small/source/i18n/unicode/nounit.h b/deps/icu-small/source/i18n/unicode/nounit.h index cee45e352df473..96aca35d0132e9 100644 --- a/deps/icu-small/source/i18n/unicode/nounit.h +++ b/deps/icu-small/source/i18n/unicode/nounit.h @@ -18,8 +18,6 @@ #include "unicode/measunit.h" -#ifndef U_HIDE_DRAFT_API - /** * \file * \brief C++ API: units for percent and permille @@ -31,7 +29,7 @@ U_NAMESPACE_BEGIN * Dimensionless unit for percent and permille. * Prior to ICU 68, this namespace was a class with the same name. * @see NumberFormatter - * @draft ICU 68 + * @stable ICU 68 */ namespace NoUnit { /** @@ -42,7 +40,7 @@ namespace NoUnit { * Since ICU 68, this function returns the same value as the default MeasureUnit constructor. * * @return a MeasureUnit instance - * @draft ICU 68 + * @stable ICU 68 */ static inline MeasureUnit U_EXPORT2 base() { return MeasureUnit(); @@ -56,7 +54,7 @@ namespace NoUnit { * Since ICU 68, this function returns the same value as MeasureUnit::getPercent(). * * @return a MeasureUnit instance - * @draft ICU 68 + * @stable ICU 68 */ static inline MeasureUnit U_EXPORT2 percent() { return MeasureUnit::getPercent(); @@ -70,7 +68,7 @@ namespace NoUnit { * Since ICU 68, this function returns the same value as MeasureUnit::getPermille(). * * @return a MeasureUnit instance - * @draft ICU 68 + * @stable ICU 68 */ static inline MeasureUnit U_EXPORT2 permille() { return MeasureUnit::getPermille(); @@ -79,7 +77,6 @@ namespace NoUnit { U_NAMESPACE_END -#endif /* U_HIDE_DRAFT_API */ #endif /* #if !UCONFIG_NO_FORMATTING */ #endif /* U_SHOW_CPLUSPLUS_API */ diff --git a/deps/icu-small/source/i18n/unicode/numberformatter.h b/deps/icu-small/source/i18n/unicode/numberformatter.h index b987e64b937455..ece433b55f09ea 100644 --- a/deps/icu-small/source/i18n/unicode/numberformatter.h +++ b/deps/icu-small/source/i18n/unicode/numberformatter.h @@ -29,7 +29,7 @@ /** * \file * \brief C++ API: All-in-one formatter for localized numbers, currencies, and units. - * + * * For a full list of options, see icu::number::NumberFormatterSettings. * *

    @@ -1517,6 +1517,9 @@ struct U_I18N_API MacroProps : public UMemory {
         /** @internal */
         UNumberSignDisplay sign = UNUM_SIGN_COUNT;
     
    +    /** @internal */
    +    bool approximately = false;
    +
         /** @internal */
         UNumberDecimalSeparatorDisplay decimal = UNUM_DECIMAL_SEPARATOR_COUNT;
     
    @@ -2164,7 +2167,6 @@ class U_I18N_API NumberFormatterSettings {
          */
         Derived scale(const Scale &scale) &&;
     
    -#ifndef U_HIDE_DRAFT_API
         /**
          * Specifies the usage for which numbers will be formatted ("person-height",
          * "road", "rainfall", etc.)
    @@ -2203,9 +2205,9 @@ class U_I18N_API NumberFormatterSettings {
          * @param usage A `usage` parameter from the units resource. See the
          * unitPreferenceData in *source/data/misc/units.txt*, generated from
          * `unitPreferenceData` in [CLDR's
    -     * supplemental/units.xml](https://github.com/unicode-org/cldr/blob/master/common/supplemental/units.xml).
    +     * supplemental/units.xml](https://github.com/unicode-org/cldr/blob/main/common/supplemental/units.xml).
          * @return The fluent chain.
    -     * @draft ICU 68
    +     * @stable ICU 68
          */
         Derived usage(StringPiece usage) const &;
     
    @@ -2214,10 +2216,9 @@ class U_I18N_API NumberFormatterSettings {
          *
          * @param usage The unit `usage`.
          * @return The fluent chain.
    -     * @draft ICU 68
    +     * @stable ICU 68
          */
         Derived usage(StringPiece usage) &&;
    -#endif // U_HIDE_DRAFT_API
     
     #ifndef U_HIDE_DRAFT_API
     #ifndef U_HIDE_INTERNAL_API
    @@ -2486,6 +2487,12 @@ class U_I18N_API LocalizedNumberFormatter
     
     #ifndef U_HIDE_INTERNAL_API
     
    +            
    +    /**
    +     * @internal
    +     */
    +    const DecimalFormatSymbols* getDecimalFormatSymbols() const;
    +    
         /** Internal method.
          * @internal
          */
    @@ -2715,7 +2722,6 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
         template
         inline StringClass toDecimalNumber(UErrorCode& status) const;
     
    -#ifndef U_HIDE_DRAFT_API
     	/**
          * Gets the resolved output unit.
          *
    @@ -2725,10 +2731,11 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
          * as "foot-and-inch" or "hour-and-minute-and-second".
          *
          * @return `MeasureUnit`.
    -     * @draft ICU 68
    +     * @stable ICU 68
          */
         MeasureUnit getOutputUnit(UErrorCode& status) const;
     
    +#ifndef U_HIDE_INTERNAL_API
         /**
          * Gets the gender of the formatted output. Returns "" when the gender is
          * unknown, or for ungendered languages.
    @@ -2736,9 +2743,6 @@ class U_I18N_API FormattedNumber : public UMemory, public FormattedValue {
          * @internal ICU 69 technology preview.
          */
         const char *getGender(UErrorCode& status) const;
    -#endif // U_HIDE_DRAFT_API
    -
    -#ifndef U_HIDE_INTERNAL_API
     
         /**
          *  Gets the raw DecimalQuantity for plural rule selection.
    diff --git a/deps/icu-small/source/i18n/unicode/numberrangeformatter.h b/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
    index 432f2f6095dedf..363f7d48cfe169 100644
    --- a/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
    +++ b/deps/icu-small/source/i18n/unicode/numberrangeformatter.h
    @@ -608,12 +608,11 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
         /** @copydoc FormattedValue::nextPosition() */
         UBool nextPosition(ConstrainedFieldPosition& cfpos, UErrorCode& status) const U_OVERRIDE;
     
    -#ifndef U_HIDE_DRAFT_API
         /**
          * Extracts the formatted range as a pair of decimal numbers. This endpoint
          * is useful for obtaining the exact number being printed after scaling
          * and rounding have been applied by the number range formatting pipeline.
    -     *
    +     * 
          * The syntax of the unformatted numbers is a "numeric string"
          * as defined in the Decimal Arithmetic Specification, available at
          * http://speleotrove.com/decimal
    @@ -626,11 +625,10 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
          *         for example, std::string.
          * @param status Set if an error occurs.
          * @return A pair of StringClasses containing the numeric strings.
    -     * @draft ICU 68
    +     * @stable ICU 68
          */
         template
         inline std::pair getDecimalNumbers(UErrorCode& status) const;
    -#endif // U_HIDE_DRAFT_API
     
         /**
          * Returns whether the pair of numbers was successfully formatted as a range or whether an identity fallback was
    @@ -643,6 +641,15 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
          */
         UNumberRangeIdentityResult getIdentityResult(UErrorCode& status) const;
     
    +#ifndef U_HIDE_DRAFT_API
    +    /**
    +     * Default constructor; makes an empty FormattedNumberRange.
    +     * @draft ICU 70
    +     */
    +    FormattedNumberRange()
    +        : fData(nullptr), fErrorCode(U_INVALID_STATE_ERROR) {}
    +#endif  /* U_HIDE_DRAFT_API */
    +
         /**
          * Copying not supported; use move constructor instead.
          */
    @@ -705,8 +712,7 @@ class U_I18N_API FormattedNumberRange : public UMemory, public FormattedValue {
         friend struct impl::UFormattedNumberRangeImpl;
     };
     
    -#ifndef U_HIDE_DRAFT_API
    -// inline impl of @draft ICU 68 method
    +// inline impl of @stable ICU 68 method
     template
     std::pair FormattedNumberRange::getDecimalNumbers(UErrorCode& status) const {
         StringClass str1;
    @@ -716,7 +722,6 @@ std::pair FormattedNumberRange::getDecimalNumbers(UErr
         getDecimalNumbers(sink1, sink2, status);
         return std::make_pair(str1, str2);
     }
    -#endif // U_HIDE_DRAFT_API
     
     /**
      * See the main description in numberrangeformatter.h for documentation and examples.
    diff --git a/deps/icu-small/source/i18n/unicode/numfmt.h b/deps/icu-small/source/i18n/unicode/numfmt.h
    index 058ccb38c7f1a4..135fe5b66093a9 100644
    --- a/deps/icu-small/source/i18n/unicode/numfmt.h
    +++ b/deps/icu-small/source/i18n/unicode/numfmt.h
    @@ -16,7 +16,7 @@
     *   04/17/97    aliu        Changed DigitCount to int per code review.
     *    07/20/98    stephen        JDK 1.2 sync up. Added scientific support.
     *                            Changed naming conventions to match C++ guidelines
    -*                            Derecated Java style constants (eg, INTEGER_FIELD)
    +*                            Deprecated Java style constants (eg, INTEGER_FIELD)
     ********************************************************************************
     */
     
    @@ -79,7 +79,7 @@ class StringEnumeration;
      *    #include "unicode/unistr.h"
      *    #include "unicode/ustream.h"
      *    using namespace std;
    - *
    + *    
      *    int main() {
      *        double myNumber = 7.0;
      *        UnicodeString myString;
    @@ -266,7 +266,7 @@ class U_I18N_API NumberFormat : public Format {
          * @return clone, or nullptr if an error occurred
          * @stable ICU 2.0
          */
    -    virtual NumberFormat* clone() const = 0;
    +    virtual NumberFormat* clone() const override = 0;
     
         /**
          * Return true if the given Format objects are semantically equal.
    @@ -274,7 +274,7 @@ class U_I18N_API NumberFormat : public Format {
          * @return    true if the given Format objects are semantically equal.
          * @stable ICU 2.0
          */
    -    virtual UBool operator==(const Format& other) const;
    +    virtual bool operator==(const Format& other) const override;
     
     
         using Format::format;
    @@ -297,7 +297,7 @@ class U_I18N_API NumberFormat : public Format {
         virtual UnicodeString& format(const Formattable& obj,
                                       UnicodeString& appendTo,
                                       FieldPosition& pos,
    -                                  UErrorCode& status) const;
    +                                  UErrorCode& status) const override;
     
         /**
          * Format an object to produce a string.  This method handles
    @@ -318,7 +318,7 @@ class U_I18N_API NumberFormat : public Format {
         virtual UnicodeString& format(const Formattable& obj,
                                       UnicodeString& appendTo,
                                       FieldPositionIterator* posIter,
    -                                  UErrorCode& status) const;
    +                                  UErrorCode& status) const override;
     
         /**
          * Parse a string to produce an object.  This methods handles
    @@ -350,7 +350,7 @@ class U_I18N_API NumberFormat : public Format {
          */
         virtual void parseObject(const UnicodeString& source,
                                  Formattable& result,
    -                             ParsePosition& parse_pos) const;
    +                             ParsePosition& parse_pos) const override;
     
         /**
          * Format a double number. These methods call the NumberFormat
    @@ -685,7 +685,7 @@ class U_I18N_API NumberFormat : public Format {
          * true, the string "1234." would be parsed as the integer value
          * 1234 and parsing would stop at the "." character.  Of course,
          * the exact format accepted by the parse operation is locale
    -     * dependant and determined by sub-classes of NumberFormat.
    +     * dependent and determined by sub-classes of NumberFormat.
          * @return    true if this format will parse numbers as integers
          *            only.
          * @stable ICU 2.0
    @@ -1041,7 +1041,7 @@ class U_I18N_API NumberFormat : public Format {
     
         /**
          * Get the rounding mode. This will always return NumberFormat::ERoundingMode::kRoundUnnecessary
    -     * if the subclass does not support rounding.
    +     * if the subclass does not support rounding. 
          * @return A rounding mode
          * @stable ICU 60
          */
    @@ -1077,7 +1077,7 @@ class U_I18N_API NumberFormat : public Format {
          * other classes have different class IDs.
          * @stable ICU 2.0
          */
    -    virtual UClassID getDynamicClassID(void) const = 0;
    +    virtual UClassID getDynamicClassID(void) const override = 0;
     
     protected:
     
    @@ -1238,12 +1238,12 @@ class U_I18N_API SimpleNumberFormatFactory : public NumberFormatFactory {
         /**
          * @stable ICU 2.6
          */
    -    virtual UBool visible(void) const;
    +    virtual UBool visible(void) const override;
     
         /**
          * @stable ICU 2.6
          */
    -    virtual const UnicodeString * getSupportedIDs(int32_t &count, UErrorCode& status) const;
    +    virtual const UnicodeString * getSupportedIDs(int32_t &count, UErrorCode& status) const override;
     };
     #endif /* #if !UCONFIG_NO_SERVICE */
     
    diff --git a/deps/icu-small/source/i18n/unicode/numsys.h b/deps/icu-small/source/i18n/unicode/numsys.h
    index efdf0c0f669a35..4f839d0f354eff 100644
    --- a/deps/icu-small/source/i18n/unicode/numsys.h
    +++ b/deps/icu-small/source/i18n/unicode/numsys.h
    @@ -42,7 +42,7 @@ U_NAMESPACE_BEGIN
     constexpr const size_t kInternalNumSysNameCapacity = 8;
     
     /**
    - * Defines numbering systems. A numbering system describes the scheme by which
    + * Defines numbering systems. A numbering system describes the scheme by which 
      * numbers are to be presented to the end user.  In its simplest form, a numbering
      * system describes the set of digit characters that are to be used to display
      * numbers, such as Western digits, Thai digits, Arabic-Indic digits, etc., in a
    @@ -100,7 +100,7 @@ class U_I18N_API NumberingSystem : public UObject {
         static NumberingSystem* U_EXPORT2 createInstance(UErrorCode& status);
     
         /**
    -     * Create a numbering system using the specified radix, type, and description.
    +     * Create a numbering system using the specified radix, type, and description. 
          * @param radix         The radix (base) for this numbering system.
          * @param isAlgorithmic true if the numbering system is algorithmic rather than numeric.
          * @param description   The string representing the set of digits used in a numeric system, or the name of the RBNF
    @@ -192,7 +192,7 @@ class U_I18N_API NumberingSystem : public UObject {
          *
          * @stable ICU 4.2
          */
    -    virtual UClassID getDynamicClassID() const;
    +    virtual UClassID getDynamicClassID() const override;
     
     
     private:
    diff --git a/deps/icu-small/source/i18n/unicode/plurfmt.h b/deps/icu-small/source/i18n/unicode/plurfmt.h
    index fde2abcfae5ac2..db16054605731f 100644
    --- a/deps/icu-small/source/i18n/unicode/plurfmt.h
    +++ b/deps/icu-small/source/i18n/unicode/plurfmt.h
    @@ -70,7 +70,7 @@ class NFRule;
      *     use the predefined keywords. The whole plural formatting of messages can
      *     be done using localized patterns from resource bundles. For predefined plural
      *     rules, see the CLDR Language Plural Rules page at
    - *    http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html
    + *     https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html
      * 
      * 

    *

    Usage of PluralFormat

    @@ -389,7 +389,7 @@ class U_I18N_API PluralFormat : public Format { FieldPosition& pos, UErrorCode& status) const; -#ifndef U_HIDE_DEPRECATED_API +#ifndef U_HIDE_DEPRECATED_API /** * Sets the locale used by this PluraFormat object. * Note: Calling this method resets this PluraFormat object, @@ -434,7 +434,7 @@ class U_I18N_API PluralFormat : public Format { * @return true if other is semantically equal to this. * @stable ICU 4.0 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; /** * Return true if another object is semantically unequal to this one. @@ -443,19 +443,19 @@ class U_I18N_API PluralFormat : public Format { * @return true if other is semantically unequal to this. * @stable ICU 4.0 */ - virtual UBool operator!=(const Format& other) const; + virtual bool operator!=(const Format& other) const; /** * Clones this Format object polymorphically. The caller owns the * result and should delete it when done. * @stable ICU 4.0 */ - virtual PluralFormat* clone() const; + virtual PluralFormat* clone() const override; /** * Formats a plural message for a number taken from a Formattable object. * - * @param obj The object containing a number for which the + * @param obj The object containing a number for which the * plural message should be formatted. * The object must be of a numeric type. * @param appendTo output parameter to receive result. @@ -469,7 +469,7 @@ class U_I18N_API PluralFormat : public Format { UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Returns the pattern from applyPattern() or constructor(). @@ -505,7 +505,7 @@ class U_I18N_API PluralFormat : public Format { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& parse_pos) const; + ParsePosition& parse_pos) const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -520,7 +520,7 @@ class U_I18N_API PluralFormat : public Format { * * @stable ICU 4.0 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: /** @@ -548,7 +548,7 @@ class U_I18N_API PluralFormat : public Format { virtual ~PluralSelectorAdapter(); - virtual UnicodeString select(void *context, double number, UErrorCode& /*ec*/) const; + virtual UnicodeString select(void *context, double number, UErrorCode& /*ec*/) const override; void reset(); diff --git a/deps/icu-small/source/i18n/unicode/plurrule.h b/deps/icu-small/source/i18n/unicode/plurrule.h index 19956cd32c6180..e90cd66a7f7c4e 100644 --- a/deps/icu-small/source/i18n/unicode/plurrule.h +++ b/deps/icu-small/source/i18n/unicode/plurrule.h @@ -71,8 +71,8 @@ class UFormattedNumberRangeData; * default rule(other) is returned. * * For more information, details, and tips for writing rules, see the - * LDML spec, C.11 Language Plural Rules: - * http://www.unicode.org/draft/reports/tr35/tr35.html#Language_Plural_Rules + * LDML spec, Part 3.5 Language Plural Rules: + * https://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules * * Examples:
      *   "one: n is 1; few: n in 2..4"
    @@ -200,7 +200,7 @@ class UFormattedNumberRangeData; *

    * ICU defines plural rules for many locales based on CLDR Language Plural Rules. * For these predefined rules, see CLDR page at - * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html + * https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html *

    */ class U_I18N_API PluralRules : public UObject { @@ -373,25 +373,23 @@ class U_I18N_API PluralRules : public UObject { */ UnicodeString select(const number::FormattedNumber& number, UErrorCode& status) const; -#ifndef U_HIDE_DRAFT_API /** * Given a formatted number range, returns the overall plural form of the * range. For example, "3-5" returns "other" in English. * * To get a FormattedNumberRange, see NumberRangeFormatter. - * + * * This method only works if PluralRules was created with a locale. If it was created * from PluralRules::createRules(), this method sets status code U_UNSUPPORTED_ERROR. - * + * * @param range The number range onto which the rules will be applied. * @param status Set if an error occurs while selecting plural keyword. * This could happen if the FormattedNumberRange is invalid, * or if plural ranges data is unavailable. * @return The keyword of the selected rule. - * @draft ICU 68 + * @stable ICU 68 */ UnicodeString select(const number::FormattedNumberRange& range, UErrorCode& status) const; -#endif // U_HIDE_DRAFT_API #ifndef U_HIDE_INTERNAL_API /** @@ -534,21 +532,21 @@ class U_I18N_API PluralRules : public UObject { * Compares the equality of two PluralRules objects. * * @param other The other PluralRules object to be compared with. - * @return True if the given PluralRules is the same as this + * @return true if the given PluralRules is the same as this * PluralRules; false otherwise. * @stable ICU 4.0 */ - virtual UBool operator==(const PluralRules& other) const; + virtual bool operator==(const PluralRules& other) const; /** * Compares the inequality of two PluralRules objects. * * @param other The PluralRules object to be compared with. - * @return True if the given PluralRules is not the same as this + * @return true if the given PluralRules is not the same as this * PluralRules; false otherwise. * @stable ICU 4.0 */ - UBool operator!=(const PluralRules& other) const {return !operator==(other);} + bool operator!=(const PluralRules& other) const {return !operator==(other);} /** @@ -564,7 +562,7 @@ class U_I18N_API PluralRules : public UObject { * * @stable ICU 4.0 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: diff --git a/deps/icu-small/source/i18n/unicode/rbnf.h b/deps/icu-small/source/i18n/unicode/rbnf.h index ce60b9bec6853a..0a5a378e13b0b5 100644 --- a/deps/icu-small/source/i18n/unicode/rbnf.h +++ b/deps/icu-small/source/i18n/unicode/rbnf.h @@ -108,7 +108,7 @@ enum URBNFRuleSetTag { *

    In these rules, the base value is spelled out explicitly and set off from the * rule's output text with a colon. The rules are in a sorted list, and a rule is applicable * to all numbers from its own base value to one less than the next rule's base value. The - * ">>" token is called a substitution and tells the fomatter to + * ">>" token is called a substitution and tells the formatter to * isolate the number's ones digit, format it using this same set of rules, and place the * result at the position of the ">>" token. Text in brackets is omitted if * the number being formatted is an even multiple of 10 (the hyphen is a literal hyphen; 24 @@ -698,7 +698,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * @return A copy of the object. * @stable ICU 2.6 */ - virtual RuleBasedNumberFormat* clone() const; + virtual RuleBasedNumberFormat* clone() const override; /** * Return true if the given Format objects are semantically equal. @@ -707,7 +707,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * @return true if the given Format objects are semantically equal. * @stable ICU 2.6 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; //----------------------------------------------------------------------- // public API functions @@ -793,7 +793,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { */ virtual UnicodeString& format(int32_t number, UnicodeString& toAppendTo, - FieldPosition& pos) const; + FieldPosition& pos) const override; /** * Formats the specified 64-bit number using the default ruleset. @@ -805,7 +805,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { */ virtual UnicodeString& format(int64_t number, UnicodeString& toAppendTo, - FieldPosition& pos) const; + FieldPosition& pos) const override; /** * Formats the specified number using the default ruleset. * @param number The number to format. @@ -816,7 +816,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { */ virtual UnicodeString& format(double number, UnicodeString& toAppendTo, - FieldPosition& pos) const; + FieldPosition& pos) const override; /** * Formats the specified number using the named ruleset. @@ -888,13 +888,13 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { virtual UnicodeString& format(const number::impl::DecimalQuantity &number, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; public: using NumberFormat::parse; /** - * Parses the specfied string, beginning at the specified position, according + * Parses the specified string, beginning at the specified position, according * to this formatter's rules. This will match the string against all of the * formatter's public rule sets and return the value corresponding to the longest * parseable substring. This function's behavior is affected by the lenient @@ -909,7 +909,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { */ virtual void parse(const UnicodeString& text, Formattable& result, - ParsePosition& parsePosition) const; + ParsePosition& parsePosition) const override; #if !UCONFIG_NO_COLLATION @@ -946,7 +946,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * @see RuleBasedCollator * @stable ICU 2.0 */ - virtual void setLenient(UBool enabled); + virtual void setLenient(UBool enabled) override; /** * Returns true if lenient-parse mode is turned on. Lenient parsing is off @@ -955,7 +955,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * @see #setLenient * @stable ICU 2.0 */ - virtual inline UBool isLenient(void) const; + virtual inline UBool isLenient(void) const override; #endif @@ -984,24 +984,24 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * @param value The UDisplayContext value to set. * @param status Input/output status. If at entry this indicates a failure * status, the function will do nothing; otherwise this will be - * updated with any new status from the function. + * updated with any new status from the function. * @stable ICU 53 */ - virtual void setContext(UDisplayContext value, UErrorCode& status); + virtual void setContext(UDisplayContext value, UErrorCode& status) override; /** * Get the rounding mode. * @return A rounding mode * @stable ICU 60 */ - virtual ERoundingMode getRoundingMode(void) const; + virtual ERoundingMode getRoundingMode(void) const override; /** * Set the rounding mode. * @param roundingMode A rounding mode * @stable ICU 60 */ - virtual void setRoundingMode(ERoundingMode roundingMode); + virtual void setRoundingMode(ERoundingMode roundingMode) override; public: /** @@ -1016,7 +1016,7 @@ class U_I18N_API RuleBasedNumberFormat : public NumberFormat { * * @stable ICU 2.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Sets the decimal format symbols, which is generally not changed diff --git a/deps/icu-small/source/i18n/unicode/rbtz.h b/deps/icu-small/source/i18n/unicode/rbtz.h index 9fc0fd4657e7b8..1eca70c338bf60 100644 --- a/deps/icu-small/source/i18n/unicode/rbtz.h +++ b/deps/icu-small/source/i18n/unicode/rbtz.h @@ -14,7 +14,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: Rule based customizable time zone */ @@ -76,7 +76,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { *semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZone& that) const; + virtual bool operator==(const TimeZone& that) const override; /** * Return true if the given TimeZone objects are @@ -86,20 +86,21 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZone& that) const; + virtual bool operator!=(const TimeZone& that) const; /** - * Adds the TimeZoneRule which represents time transitions. - * The TimeZoneRule must have start times, that is, the result - * of isTransitionRule() must be true. Otherwise, U_ILLEGAL_ARGUMENT_ERROR + * Adds the `TimeZoneRule` which represents time transitions. + * The `TimeZoneRule` must have start times, that is, the result + * of `isTransitionRule()` must be true. Otherwise, U_ILLEGAL_ARGUMENT_ERROR * is set to the error code. - * The input TimeZoneRule is adopted by this - * RuleBasedTimeZone on successful completion of this method, - * thus, the caller must not delete it when no error is returned. - * After all rules are added, the caller must call complete() method to - * make this RuleBasedTimeZone ready to handle common time + * The input `TimeZoneRule` is adopted by this `RuleBasedTimeZone`; + * the caller must not delete it. Should an error condition prevent + * the successful adoption of the rule, this function will delete it. + * + * After all rules are added, the caller must call `complete()` method to + * make this `RuleBasedTimeZone` ready to handle common time * zone functions. - * @param rule The TimeZoneRule. + * @param rule The `TimeZoneRule`. * @param status Output param to filled in with a success or an error. * @stable ICU 3.8 */ @@ -123,7 +124,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @return A new copy of this TimeZone object. * @stable ICU 3.8 */ - virtual RuleBasedTimeZone* clone() const; + virtual RuleBasedTimeZone* clone() const override; /** * Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add @@ -150,7 +151,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, - uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const; + uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const override; /** * Gets the time zone offset, for current date, modified in case of @@ -173,7 +174,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, - int32_t monthLength, UErrorCode& status) const; + int32_t monthLength, UErrorCode& status) const override; /** * Returns the time zone raw and GMT offset for the given moment @@ -198,7 +199,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual void getOffset(UDate date, UBool local, int32_t& rawOffset, - int32_t& dstOffset, UErrorCode& ec) const; + int32_t& dstOffset, UErrorCode& ec) const override; /** * Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add @@ -207,7 +208,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @param offsetMillis The new raw GMT offset for this time zone. * @stable ICU 3.8 */ - virtual void setRawOffset(int32_t offsetMillis); + virtual void setRawOffset(int32_t offsetMillis) override; /** * Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add @@ -216,7 +217,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @return The TimeZone's raw GMT offset. * @stable ICU 3.8 */ - virtual int32_t getRawOffset(void) const; + virtual int32_t getRawOffset(void) const override; /** * Queries if this time zone uses daylight savings time. @@ -224,7 +225,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * false, otherwise. * @stable ICU 3.8 */ - virtual UBool useDaylightTime(void) const; + virtual UBool useDaylightTime(void) const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -240,7 +241,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * false, otherwise. * @deprecated ICU 2.4. Use Calendar::inDaylightTime() instead. */ - virtual UBool inDaylightTime(UDate date, UErrorCode& status) const; + virtual UBool inDaylightTime(UDate date, UErrorCode& status) const override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -251,7 +252,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * with the possible exception of the ID * @stable ICU 3.8 */ - virtual UBool hasSameRules(const TimeZone& other) const; + virtual UBool hasSameRules(const TimeZone& other) const override; /** * Gets the first time zone transition after the base time. @@ -261,7 +262,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Gets the most recent time zone transition before the base time. @@ -271,7 +272,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Returns the number of TimeZoneRules which represents time transitions, @@ -281,7 +282,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @return The number of TimeZoneRules representing time transitions. * @stable ICU 3.8 */ - virtual int32_t countTransitionRules(UErrorCode& status) const; + virtual int32_t countTransitionRules(UErrorCode& status) const override; /** * Gets the InitialTimeZoneRule and the set of TimeZoneRule @@ -300,7 +301,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, - const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; + const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const override; #ifndef U_FORCE_HIDE_DRAFT_API /** @@ -310,7 +311,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { virtual void getOffsetFromLocal( UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, - int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const; + int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const override; #endif /* U_FORCE_HIDE_DRAFT_API */ private: @@ -360,7 +361,7 @@ class U_I18N_API RuleBasedTimeZone : public BasicTimeZone { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/regex.h b/deps/icu-small/source/i18n/unicode/regex.h index 8ee74c39038163..f8e32922f4e3b1 100644 --- a/deps/icu-small/source/i18n/unicode/regex.h +++ b/deps/icu-small/source/i18n/unicode/regex.h @@ -119,7 +119,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * @return true if the objects are equivalent. * @stable ICU 2.4 */ - UBool operator==(const RegexPattern& that) const; + bool operator==(const RegexPattern& that) const; /** * Comparison operator. Two RegexPattern objects are considered equal if they @@ -129,7 +129,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * @return true if the objects are different. * @stable ICU 2.4 */ - inline UBool operator!=(const RegexPattern& that) const {return ! operator ==(that);} + inline bool operator!=(const RegexPattern& that) const {return ! operator ==(that);} /** * Assignment operator. After assignment, this RegexPattern will behave identically @@ -346,7 +346,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { */ virtual RegexMatcher *matcher(const UnicodeString &input, UErrorCode &status) const; - + private: /** * Cause a compilation error if an application accidentally attempts to @@ -426,8 +426,8 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * @stable ICU 2.4 */ virtual UnicodeString pattern() const; - - + + /** * Returns the regular expression from which this pattern was compiled. This method will work * even if the pattern was compiled from a UnicodeString. @@ -484,9 +484,9 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * * If the delimiter pattern includes capture groups, the captured text will * also appear in the destination array of output strings, interspersed - * with the fields. This is similar to Perl, but differs from Java, + * with the fields. This is similar to Perl, but differs from Java, * which ignores the presence of capture groups in the pattern. - * + * * Trailing empty fields will always be returned, assuming sufficient * destination capacity. This differs from the default behavior for Java * and Perl where trailing empty fields are not returned. @@ -528,9 +528,9 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * * If the delimiter pattern includes capture groups, the captured text will * also appear in the destination array of output strings, interspersed - * with the fields. This is similar to Perl, but differs from Java, + * with the fields. This is similar to Perl, but differs from Java, * which ignores the presence of capture groups in the pattern. - * + * * Trailing empty fields will always be returned, assuming sufficient * destination capacity. This differs from the default behavior for Java * and Perl where trailing empty fields are not returned. @@ -554,7 +554,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * of fields, the trailing part of the input string, including any * field delimiters, is placed in the last destination string. * @param status A reference to a UErrorCode to receive any errors. - * @return The number of destination strings used. + * @return The number of destination strings used. * * @stable ICU 4.6 */ @@ -569,7 +569,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { * * @stable ICU 2.4 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -601,7 +601,7 @@ class U_I18N_API RegexPattern U_FINAL : public UObject { // >= this value. For some patterns, this calculated // value may be less than the true shortest // possible match. - + int32_t fFrameSize; // Size of a state stack frame in the // execution engine. @@ -771,7 +771,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { /** - * Resets the matcher, then attempts to match the input beginning + * Resets the matcher, then attempts to match the input beginning * at the specified startIndex, and extending to the end of the input. * The input region is reset to include the entire input string. * A successful match must extend to the end of the input. @@ -785,7 +785,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { /** * Attempts to match the input string, starting from the beginning of the region, - * against the pattern. Like the matches() method, this function + * against the pattern. Like the matches() method, this function * always starts at the beginning of the input region; * unlike that function, it does not require that the entire region be matched. * @@ -911,7 +911,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * * @stable ICU 4.6 */ - virtual UText *group(UText *dest, int64_t &group_len, UErrorCode &status) const; + virtual UText *group(UText *dest, int64_t &group_len, UErrorCode &status) const; /** * Returns a shallow clone of the entire live input string with the UText current native index @@ -1123,14 +1123,14 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * without changing any other aspect of the matching state. * The new and previous text strings must have the same content. * - * This function is intended for use in environments where ICU is operating on + * This function is intended for use in environments where ICU is operating on * strings that may move around in memory. It provides a mechanism for notifying * ICU that the string has been relocated, and providing a new UText to access the * string in its new position. * * Note that the regular expression implementation never copies the underlying text - * of a string being matched, but always operates directly on the original text - * provided by the user. Refreshing simply drops the references to the old text + * of a string being matched, but always operates directly on the original text + * provided by the user. Refreshing simply drops the references to the old text * and replaces them with references to the new. * * Caution: this function is normally used only by very specialized, @@ -1140,7 +1140,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @param input The new (moved) text string. * @param status Receives errors detected by this function. * - * @stable ICU 4.8 + * @stable ICU 4.8 */ virtual RegexMatcher &refreshInputText(UText *input, UErrorCode &status); @@ -1168,7 +1168,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 2.4 */ virtual const UnicodeString &input() const; - + /** * Returns the input string being matched. This is the live input text; it should not be * altered or deleted. This method will work even if the input was originally supplied as @@ -1178,7 +1178,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 4.6 */ virtual UText *inputText() const; - + /** * Returns the input string being matched, either by copying it into the provided * UText parameter or by returning a shallow clone of the live input. Note that copying @@ -1190,7 +1190,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 4.6 */ virtual UText *getInput(UText *dest, UErrorCode &status) const; - + /** Sets the limits of this matcher's region. * The region is the part of the input string that will be searched to find a match. @@ -1212,14 +1212,14 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { */ virtual RegexMatcher ®ion(int64_t start, int64_t limit, UErrorCode &status); - /** + /** * Identical to region(start, limit, status) but also allows a start position without * resetting the region state. * @param regionStart The region start * @param regionLimit the limit of the region * @param startIndex The (native) index within the region bounds at which to begin searches. * @param status A reference to a UErrorCode to receive any errors. - * If startIndex is not within the specified region bounds, + * If startIndex is not within the specified region bounds, * U_INDEX_OUTOFBOUNDS_ERROR is returned. * @stable ICU 4.6 */ @@ -1296,14 +1296,14 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { **/ virtual RegexMatcher &useTransparentBounds(UBool b); - + /** * Return true if this matcher is using anchoring bounds. * By default, matchers use anchoring region bounds. * * @return true if this matcher is using anchoring bounds. * @stable ICU 4.0 - */ + */ virtual UBool hasAnchoringBounds() const; @@ -1396,7 +1396,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 4.6 */ virtual UText *replaceAll(UText *replacement, UText *dest, UErrorCode &status); - + /** * Replaces the first substring of the input that matches @@ -1419,7 +1419,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 2.4 */ virtual UnicodeString replaceFirst(const UnicodeString &replacement, UErrorCode &status); - + /** * Replaces the first substring of the input that matches @@ -1446,8 +1446,8 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 4.6 */ virtual UText *replaceFirst(UText *replacement, UText *dest, UErrorCode &status); - - + + /** * Implements a replace operation intended to be used as part of an * incremental find-and-replace. @@ -1477,8 +1477,8 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { */ virtual RegexMatcher &appendReplacement(UnicodeString &dest, const UnicodeString &replacement, UErrorCode &status); - - + + /** * Implements a replace operation intended to be used as part of an * incremental find-and-replace. @@ -1595,10 +1595,10 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { UText *dest[], int32_t destCapacity, UErrorCode &status); - + /** * Set a processing time limit for match operations with this Matcher. - * + * * Some patterns, when matching certain strings, can run in exponential time. * For practical purposes, the match operation may appear to be in an * infinite loop. @@ -1649,7 +1649,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * @stable ICU 4.0 */ virtual void setStackLimit(int32_t limit, UErrorCode &status); - + /** * Get the size of the heap storage available for use by the back tracking stack. * @@ -1681,7 +1681,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { /** * Get the callback function for this URegularExpression. * - * @param callback Out parameter, receives a pointer to the user-supplied + * @param callback Out parameter, receives a pointer to the user-supplied * callback function. * @param context Out parameter, receives the user context pointer that * was set when uregex_setMatchCallback() was called. @@ -1714,7 +1714,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { /** * Get the find progress callback function for this URegularExpression. * - * @param callback Out parameter, receives a pointer to the user-supplied + * @param callback Out parameter, receives a pointer to the user-supplied * callback function. * @param context Out parameter, receives the user context pointer that * was set when uregex_setFindProgressCallback() was called. @@ -1746,7 +1746,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: // Constructors and other object boilerplate are private. @@ -1783,9 +1783,9 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { // Call user find callback function, if set. Return true if operation should be interrupted. inline UBool findProgressInterrupt(int64_t matchIndex, UErrorCode &status); - + int64_t appendGroup(int32_t groupNum, UText *dest, UErrorCode &status) const; - + UBool findUsingChunk(UErrorCode &status); void MatchChunkAt(int32_t startIdx, UBool toEnd, UErrorCode &status); UBool isChunkWordBoundary(int32_t pos); @@ -1800,13 +1800,13 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { // Only created if the pattern contains backreferences. int64_t fInputLength; // Full length of the input text. int32_t fFrameSize; // The size of a frame in the backtrack stack. - + int64_t fRegionStart; // Start of the input region, default = 0. int64_t fRegionLimit; // End of input region, default to input.length. - + int64_t fAnchorStart; // Region bounds for anchoring operations (^ or $). int64_t fAnchorLimit; // See useAnchoringBounds - + int64_t fLookStart; // Region bounds for look-ahead/behind and int64_t fLookLimit; // and other boundary tests. See // useTransparentBounds @@ -1828,7 +1828,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { // or -1 if there was no previous match. int64_t fAppendPosition; // First position after the end of the previous // appendReplacement(). As described by the - // JavaDoc for Java Matcher, where it is called + // JavaDoc for Java Matcher, where it is called // "append position" UBool fHitEnd; // True if the last match touched the end of input. UBool fRequireEnd; // True if the last match required end-of-input @@ -1844,7 +1844,7 @@ class U_I18N_API RegexMatcher U_FINAL : public UObject { int32_t fTimeLimit; // Max time (in arbitrary steps) to let the // match engine run. Zero for unlimited. - + int32_t fTime; // Match time, accumulates while matching. int32_t fTickCounter; // Low bits counter for time. Counts down StateSaves. // Kept separately from fTime to keep as much diff --git a/deps/icu-small/source/i18n/unicode/region.h b/deps/icu-small/source/i18n/unicode/region.h index 66f5f920757348..ba4a650f4f9ca6 100644 --- a/deps/icu-small/source/i18n/unicode/region.h +++ b/deps/icu-small/source/i18n/unicode/region.h @@ -11,7 +11,7 @@ #define REGION_H /** - * \file + * \file * \brief C++ API: Region classes (territory containment) */ @@ -30,23 +30,23 @@ U_NAMESPACE_BEGIN /** - * Region is the class representing a Unicode Region Code, also known as a + * Region is the class representing a Unicode Region Code, also known as a * Unicode Region Subtag, which is defined based upon the BCP 47 standard. We often think of * "regions" as "countries" when defining the characteristics of a locale. Region codes There are different * types of region codes that are important to distinguish. *

    - * Macroregion - A code for a "macro geographical (continental) region, geographical sub-region, or - * selected economic and other grouping" as defined in - * UN M.49 (http://unstats.un.org/unsd/methods/m49/m49regin.htm). - * These are typically 3-digit codes, but contain some 2-letter codes, such as the LDML code QO + * Macroregion - A code for a "macro geographical (continental) region, geographical sub-region, or + * selected economic and other grouping" as defined in + * UN M.49 (http://unstats.un.org/unsd/methods/m49/m49regin.htm). + * These are typically 3-digit codes, but contain some 2-letter codes, such as the LDML code QO * added for Outlying Oceania. Not all UNM.49 codes are defined in LDML, but most of them are. * Macroregions are represented in ICU by one of three region types: WORLD ( region code 001 ), * CONTINENTS ( regions contained directly by WORLD ), and SUBCONTINENTS ( things contained directly * by a continent ). *

    * TERRITORY - A Region that is not a Macroregion. These are typically codes for countries, but also - * include areas that are not separate countries, such as the code "AQ" for Antarctica or the code - * "HK" for Hong Kong (SAR China). Overseas dependencies of countries may or may not have separate + * include areas that are not separate countries, such as the code "AQ" for Antarctica or the code + * "HK" for Hong Kong (SAR China). Overseas dependencies of countries may or may not have separate * codes. The codes are typically 2-letter codes aligned with the ISO 3166 standard, but BCP47 allows * for the use of 3-digit codes in the future. *

    @@ -57,7 +57,7 @@ U_NAMESPACE_BEGIN * usually due to a country splitting into multiple territories or changing its name. *

    * GROUPING - A widely understood grouping of territories that has a well defined membership such - * that a region code has been assigned for it. Some of these are UNM.49 codes that do't fall into + * that a region code has been assigned for it. Some of these are UNM.49 codes that do't fall into * the world/continent/sub-continent hierarchy, while others are just well known groupings that have * their own region code. Region "EU" (European Union) is one such region code that is a grouping. * Groupings will never be returned by the getContainingRegion() API, since a different type of region @@ -81,27 +81,27 @@ class U_I18N_API Region : public UObject { * Returns true if the two regions are equal. * @stable ICU 51 */ - UBool operator==(const Region &that) const; + bool operator==(const Region &that) const; /** * Returns true if the two regions are NOT equal; that is, if operator ==() returns false. * @stable ICU 51 */ - UBool operator!=(const Region &that) const; - + bool operator!=(const Region &that) const; + /** * Returns a pointer to a Region using the given region code. The region code can be either 2-letter ISO code, * 3-letter ISO code, UNM.49 numeric code, or other valid Unicode Region Code as defined by the LDML specification. * The identifier will be canonicalized internally using the supplemental metadata as defined in the CLDR. * If the region code is NULL or not recognized, the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ) - * @stable ICU 51 + * @stable ICU 51 */ static const Region* U_EXPORT2 getInstance(const char *region_code, UErrorCode &status); /** * Returns a pointer to a Region using the given numeric region code. If the numeric region code is not recognized, * the appropriate error code will be set ( U_ILLEGAL_ARGUMENT_ERROR ). - * @stable ICU 51 + * @stable ICU 51 */ static const Region* U_EXPORT2 getInstance (int32_t code, UErrorCode &status); @@ -110,12 +110,12 @@ class U_I18N_API Region : public UObject { * @stable ICU 55 */ static StringEnumeration* U_EXPORT2 getAvailable(URegionType type, UErrorCode &status); - + /** * Returns a pointer to the region that contains this region. Returns NULL if this region is code "001" (World) * or "ZZ" (Unknown region). For example, calling this method with region "IT" (Italy) returns the * region "039" (Southern Europe). - * @stable ICU 51 + * @stable ICU 51 */ const Region* getContainingRegion() const; @@ -125,7 +125,7 @@ class U_I18N_API Region : public UObject { * that matches the given type. Note: The URegionTypes = "URGN_GROUPING", "URGN_DEPRECATED", or "URGN_UNKNOWN" * are not appropriate for use in this API. NULL will be returned in this case. For example, calling this method * with region "IT" (Italy) for type "URGN_CONTINENT" returns the region "150" ( Europe ). - * @stable ICU 51 + * @stable ICU 51 */ const Region* getContainingRegion(URegionType type) const; @@ -148,10 +148,10 @@ class U_I18N_API Region : public UObject { * @stable ICU 55 */ StringEnumeration* getContainedRegions( URegionType type, UErrorCode &status ) const; - + /** * Returns true if this region contains the supplied other region anywhere in the region hierarchy. - * @stable ICU 51 + * @stable ICU 51 */ UBool contains(const Region &other) const; @@ -159,33 +159,33 @@ class U_I18N_API Region : public UObject { * For deprecated regions, return an enumeration over the IDs of the regions that are the preferred replacement * regions for this region. Returns null for a non-deprecated region. For example, calling this method with region * "SU" (Soviet Union) would return a list of the regions containing "RU" (Russia), "AM" (Armenia), "AZ" (Azerbaijan), etc... - * @stable ICU 55 + * @stable ICU 55 */ StringEnumeration* getPreferredValues(UErrorCode &status) const; /** * Return this region's canonical region code. - * @stable ICU 51 + * @stable ICU 51 */ const char* getRegionCode() const; /** * Return this region's numeric code. * Returns a negative value if the given region does not have a numeric code assigned to it. - * @stable ICU 51 + * @stable ICU 51 */ int32_t getNumericCode() const; /** * Returns the region type of this region. - * @stable ICU 51 + * @stable ICU 51 */ URegionType getType() const; #ifndef U_HIDE_INTERNAL_API /** * Cleans up statically allocated memory. - * @internal + * @internal */ static void cleanupRegionData(); #endif /* U_HIDE_INTERNAL_API */ @@ -209,7 +209,7 @@ class U_I18N_API Region : public UObject { * Initializes the region data from the ICU resource bundles. The region data * contains the basic relationships such as which regions are known, what the numeric * codes are, any known aliases, and the territory containment data. - * + * * If the region data has already loaded, then this method simply returns without doing * anything meaningful. */ diff --git a/deps/icu-small/source/i18n/unicode/reldatefmt.h b/deps/icu-small/source/i18n/unicode/reldatefmt.h index f3feeead87b6bc..2a3742fd63c392 100644 --- a/deps/icu-small/source/i18n/unicode/reldatefmt.h +++ b/deps/icu-small/source/i18n/unicode/reldatefmt.h @@ -560,7 +560,7 @@ class U_I18N_API RelativeDateTimeFormatter : public UObject { * * This method returns a String. To get more information about the * formatting result, use formatNumericToValue(). - * + * * @param offset The signed offset for the specified unit. This * will be formatted according to this object's * NumberFormat object. @@ -586,7 +586,7 @@ class U_I18N_API RelativeDateTimeFormatter : public UObject { * * This method returns a FormattedRelativeDateTime, which exposes more * information than the String returned by formatNumeric(). - * + * * @param offset The signed offset for the specified unit. This * will be formatted according to this object's * NumberFormat object. diff --git a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h index a56b8ca2685cf2..aa7e80543e4066 100644 --- a/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h +++ b/deps/icu-small/source/i18n/unicode/scientificnumberformatter.h @@ -19,7 +19,7 @@ #include "unicode/unistr.h" /** - * \file + * \file * \brief C++ API: Formats in scientific notation. */ @@ -159,14 +159,14 @@ class U_I18N_API ScientificNumberFormatter : public UObject { class U_I18N_API SuperscriptStyle : public Style { public: - virtual SuperscriptStyle *clone() const; + virtual SuperscriptStyle *clone() const override; protected: virtual UnicodeString &format( const UnicodeString &original, FieldPositionIterator &fpi, const UnicodeString &preExponent, UnicodeString &appendTo, - UErrorCode &status) const; + UErrorCode &status) const override; }; class U_I18N_API MarkupStyle : public Style { @@ -177,14 +177,14 @@ class U_I18N_API ScientificNumberFormatter : public UObject { : Style(), fBeginMarkup(beginMarkup), fEndMarkup(endMarkup) { } - virtual MarkupStyle *clone() const; + virtual MarkupStyle *clone() const override; protected: virtual UnicodeString &format( const UnicodeString &original, FieldPositionIterator &fpi, const UnicodeString &preExponent, UnicodeString &appendTo, - UErrorCode &status) const; + UErrorCode &status) const override; private: UnicodeString fBeginMarkup; UnicodeString fEndMarkup; @@ -219,4 +219,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ -#endif +#endif diff --git a/deps/icu-small/source/i18n/unicode/search.h b/deps/icu-small/source/i18n/unicode/search.h index 3074839b5fbafc..295a3ce67e9cf5 100644 --- a/deps/icu-small/source/i18n/unicode/search.h +++ b/deps/icu-small/source/i18n/unicode/search.h @@ -17,10 +17,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: SearchIterator object. */ - + #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION #include "unicode/uobject.h" @@ -42,27 +42,27 @@ U_NAMESPACE_BEGIN /** * - * SearchIterator is an abstract base class that provides + * SearchIterator is an abstract base class that provides * methods to search for a pattern within a text string. Instances of - * SearchIterator maintain a current position and scans over the - * target text, returning the indices the pattern is matched and the length + * SearchIterator maintain a current position and scans over the + * target text, returning the indices the pattern is matched and the length * of each match. *

    - * SearchIterator defines a protocol for text searching. - * Subclasses provide concrete implementations of various search algorithms. - * For example, StringSearch implements language-sensitive pattern - * matching based on the comparison rules defined in a - * RuleBasedCollator object. - *

    - * Other options for searching includes using a BreakIterator to restrict + * SearchIterator defines a protocol for text searching. + * Subclasses provide concrete implementations of various search algorithms. + * For example, StringSearch implements language-sensitive pattern + * matching based on the comparison rules defined in a + * RuleBasedCollator object. + *

    + * Other options for searching includes using a BreakIterator to restrict * the points at which matches are detected. *

    * SearchIterator provides an API that is similar to that of - * other text iteration classes such as BreakIterator. Using - * this class, it is easy to scan through text looking for all occurances of - * a given pattern. The following example uses a StringSearch - * object to find all instances of "fox" in the target string. Any other - * subclass of SearchIterator can be used in an identical + * other text iteration classes such as BreakIterator. Using + * this class, it is easy to scan through text looking for all occurrences of + * a given pattern. The following example uses a StringSearch + * object to find all instances of "fox" in the target string. Any other + * subclass of SearchIterator can be used in an identical * manner. *

    
      * UnicodeString target("The quick brown fox jumped over the lazy fox");
    @@ -70,7 +70,7 @@ U_NAMESPACE_BEGIN
      *
      * SearchIterator *iter  = new StringSearch(pattern, target);
      * UErrorCode      error = U_ZERO_ERROR;
    - * for (int pos = iter->first(error); pos != USEARCH_DONE;
    + * for (int pos = iter->first(error); pos != USEARCH_DONE; 
      *                               pos = iter->next(error)) {
      *     printf("Found match at %d pos, length is %d\n", pos, iter.getMatchedLength());
      * }
    @@ -85,9 +85,9 @@ class U_I18N_API SearchIterator : public UObject {
     
         // public constructors and destructors -------------------------------
     
    -    /**
    -    * Copy constructor that creates a SearchIterator instance with the same
    -    * behavior, and iterating over the same text.
    +    /** 
    +    * Copy constructor that creates a SearchIterator instance with the same 
    +    * behavior, and iterating over the same text. 
         * @param other the SearchIterator instance to be copied.
         * @stable ICU 2.0
         */
    @@ -102,14 +102,14 @@ class U_I18N_API SearchIterator : public UObject {
         // public get and set methods ----------------------------------------
     
         /**
    -     * Sets the index to point to the given position, and clears any state
    +     * Sets the index to point to the given position, and clears any state 
          * that's affected.
          * 

    - * This method takes the argument index and sets the position in the text - * string accordingly without checking if the index is pointing to a - * valid starting point to begin searching. + * This method takes the argument index and sets the position in the text + * string accordingly without checking if the index is pointing to a + * valid starting point to begin searching. * @param position within the text to be set. If position is less - * than or greater than the text range for searching, + * than or greater than the text range for searching, * an U_INDEX_OUTOFBOUNDS_ERROR will be returned * @param status for errors if it occurs * @stable ICU 2.0 @@ -127,7 +127,7 @@ class U_I18N_API SearchIterator : public UObject { virtual int32_t getOffset(void) const = 0; /** - * Sets the text searching attributes located in the enum + * Sets the text searching attributes located in the enum * USearchAttribute with values from the enum USearchAttributeValue. * USEARCH_DEFAULT can be used for all attributes for resetting. * @param attribute text attribute (enum USearchAttribute) to be set @@ -139,23 +139,23 @@ class U_I18N_API SearchIterator : public UObject { USearchAttributeValue value, UErrorCode &status); - /** + /** * Gets the text searching attributes * @param attribute text attribute (enum USearchAttribute) to be retrieve * @return text attribute value * @stable ICU 2.0 */ USearchAttributeValue getAttribute(USearchAttribute attribute) const; - + /** * Returns the index to the match in the text string that was searched. - * This call returns a valid result only after a successful call to + * This call returns a valid result only after a successful call to * first, next, previous, or last. - * Just after construction, or after a searching method returns + * Just after construction, or after a searching method returns * USEARCH_DONE, this method will return USEARCH_DONE. *

    * Use getMatchedLength to get the matched string length. - * @return index of a substring within the text string that is being + * @return index of a substring within the text string that is being * searched. * @see #first * @see #next @@ -166,10 +166,10 @@ class U_I18N_API SearchIterator : public UObject { int32_t getMatchedStart(void) const; /** - * Returns the length of text in the string which matches the search - * pattern. This call returns a valid result only after a successful call + * Returns the length of text in the string which matches the search + * pattern. This call returns a valid result only after a successful call * to first, next, previous, or last. - * Just after construction, or after a searching method returns + * Just after construction, or after a searching method returns * USEARCH_DONE, this method will return 0. * @return The length of the match in the target text, or 0 if there * is no match currently. @@ -180,13 +180,13 @@ class U_I18N_API SearchIterator : public UObject { * @stable ICU 2.0 */ int32_t getMatchedLength(void) const; - + /** - * Returns the text that was matched by the most recent call to + * Returns the text that was matched by the most recent call to * first, next, previous, or last. - * If the iterator is not pointing at a valid match (e.g. just after - * construction or after USEARCH_DONE has been returned, - * returns an empty string. + * If the iterator is not pointing at a valid match (e.g. just after + * construction or after USEARCH_DONE has been returned, + * returns an empty string. * @param result stores the matched string or an empty string if a match * is not found. * @see #first @@ -196,16 +196,16 @@ class U_I18N_API SearchIterator : public UObject { * @stable ICU 2.0 */ void getMatchedText(UnicodeString &result) const; - + /** * Set the BreakIterator that will be used to restrict the points - * at which matches are detected. The user is responsible for deleting + * at which matches are detected. The user is responsible for deleting * the breakiterator. - * @param breakiter A BreakIterator that will be used to restrict the - * points at which matches are detected. If a match is - * found, but the match's start or end index is not a - * boundary as determined by the BreakIterator, - * the match will be rejected and another will be searched + * @param breakiter A BreakIterator that will be used to restrict the + * points at which matches are detected. If a match is + * found, but the match's start or end index is not a + * boundary as determined by the BreakIterator, + * the match will be rejected and another will be searched * for. If this parameter is NULL, no break * detection is attempted. * @param status for errors if it occurs @@ -213,10 +213,10 @@ class U_I18N_API SearchIterator : public UObject { * @stable ICU 2.0 */ void setBreakIterator(BreakIterator *breakiter, UErrorCode &status); - + /** - * Returns the BreakIterator that is used to restrict the points at - * which matches are detected. This will be the same object that was + * Returns the BreakIterator that is used to restrict the points at + * which matches are detected. This will be the same object that was * passed to the constructor or to setBreakIterator. * Note that NULL is a legal value; it means that break * detection should not be attempted. @@ -227,34 +227,34 @@ class U_I18N_API SearchIterator : public UObject { const BreakIterator * getBreakIterator(void) const; /** - * Set the string text to be searched. Text iteration will hence begin at - * the start of the text string. This method is useful if you want to - * re-use an iterator to search for the same pattern within a different + * Set the string text to be searched. Text iteration will hence begin at + * the start of the text string. This method is useful if you want to + * re-use an iterator to search for the same pattern within a different * body of text. The user is responsible for deleting the text. * @param text string to be searched. - * @param status for errors. If the text length is 0, + * @param status for errors. If the text length is 0, * an U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ - virtual void setText(const UnicodeString &text, UErrorCode &status); + virtual void setText(const UnicodeString &text, UErrorCode &status); /** - * Set the string text to be searched. Text iteration will hence begin at - * the start of the text string. This method is useful if you want to - * re-use an iterator to search for the same pattern within a different + * Set the string text to be searched. Text iteration will hence begin at + * the start of the text string. This method is useful if you want to + * re-use an iterator to search for the same pattern within a different * body of text. *

    - * Note: No parsing of the text within the CharacterIterator - * will be done during searching for this version. The block of text + * Note: No parsing of the text within the CharacterIterator + * will be done during searching for this version. The block of text * in CharacterIterator will be used as it is. * The user is responsible for deleting the text. * @param text string iterator to be searched. - * @param status for errors if any. If the text length is 0 then an + * @param status for errors if any. If the text length is 0 then an * U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ virtual void setText(CharacterIterator &text, UErrorCode &status); - + /** * Return the string text to be searched. * @return text string to be searched. @@ -265,27 +265,27 @@ class U_I18N_API SearchIterator : public UObject { // operator overloading ---------------------------------------------- /** - * Equality operator. + * Equality operator. * @param that SearchIterator instance to be compared. - * @return true if both BreakIterators are of the same class, have the + * @return true if both BreakIterators are of the same class, have the * same behavior, terates over the same text and have the same * attributes. false otherwise. * @stable ICU 2.0 */ - virtual UBool operator==(const SearchIterator &that) const; + virtual bool operator==(const SearchIterator &that) const; /** - * Not-equal operator. + * Not-equal operator. * @param that SearchIterator instance to be compared. * @return false if operator== returns true, and vice versa. * @stable ICU 2.0 */ - UBool operator!=(const SearchIterator &that) const; + bool operator!=(const SearchIterator &that) const; // public methods ---------------------------------------------------- /** - * Returns a copy of SearchIterator with the same behavior, and + * Returns a copy of SearchIterator with the same behavior, and * iterating over the same text, as this one. Note that all data will be * replicated, except for the text string to be searched. * @return cloned object @@ -294,14 +294,14 @@ class U_I18N_API SearchIterator : public UObject { virtual SearchIterator* safeClone(void) const = 0; /** - * Returns the first index at which the string text matches the search - * pattern. The iterator is adjusted so that its current index (as - * returned by getOffset) is the match position if one + * Returns the first index at which the string text matches the search + * pattern. The iterator is adjusted so that its current index (as + * returned by getOffset) is the match position if one * was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE * @param status for errors if it occurs - * @return The character index of the first match, or + * @return The character index of the first match, or * USEARCH_DONE if there are no matches. * @see #getOffset * @stable ICU 2.0 @@ -309,33 +309,33 @@ class U_I18N_API SearchIterator : public UObject { int32_t first(UErrorCode &status); /** - * Returns the first index equal or greater than position at which the - * string text matches the search pattern. The iterator is adjusted so - * that its current index (as returned by getOffset) is the + * Returns the first index equal or greater than position at which the + * string text matches the search pattern. The iterator is adjusted so + * that its current index (as returned by getOffset) is the * match position if one was found. * If a match is not found, USEARCH_DONE will be returned and the * iterator will be adjusted to the index USEARCH_DONE. * @param position where search if to start from. If position is less - * than or greater than the text range for searching, + * than or greater than the text range for searching, * an U_INDEX_OUTOFBOUNDS_ERROR will be returned * @param status for errors if it occurs - * @return The character index of the first match following - * position, or USEARCH_DONE if there are no + * @return The character index of the first match following + * position, or USEARCH_DONE if there are no * matches. * @see #getOffset * @stable ICU 2.0 */ int32_t following(int32_t position, UErrorCode &status); - + /** - * Returns the last index in the target text at which it matches the - * search pattern. The iterator is adjusted so that its current index - * (as returned by getOffset) is the match position if one was + * Returns the last index in the target text at which it matches the + * search pattern. The iterator is adjusted so that its current index + * (as returned by getOffset) is the match position if one was * found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE. * @param status for errors if it occurs - * @return The index of the first match, or USEARCH_DONE if + * @return The index of the first match, or USEARCH_DONE if * there are no matches. * @see #getOffset * @stable ICU 2.0 @@ -343,11 +343,11 @@ class U_I18N_API SearchIterator : public UObject { int32_t last(UErrorCode &status); /** - * Returns the first index less than position at which the string - * text matches the search pattern. The iterator is adjusted so that its - * current index (as returned by getOffset) is the match - * position if one was found. If a match is not found, - * USEARCH_DONE will be returned and the iterator will be + * Returns the first index less than position at which the string + * text matches the search pattern. The iterator is adjusted so that its + * current index (as returned by getOffset) is the match + * position if one was found. If a match is not found, + * USEARCH_DONE will be returned and the iterator will be * adjusted to the index USEARCH_DONE *

    * When USEARCH_OVERLAP option is off, the last index of the @@ -356,11 +356,11 @@ class U_I18N_API SearchIterator : public UObject { * position. * * @param position where search is to start from. If position is less - * than or greater than the text range for searching, + * than or greater than the text range for searching, * an U_INDEX_OUTOFBOUNDS_ERROR will be returned * @param status for errors if it occurs - * @return The character index of the first match preceding - * position, or USEARCH_DONE if there are + * @return The character index of the first match preceding + * position, or USEARCH_DONE if there are * no matches. * @see #getOffset * @stable ICU 2.0 @@ -370,10 +370,10 @@ class U_I18N_API SearchIterator : public UObject { /** * Returns the index of the next point at which the text matches the * search pattern, starting from the current position - * The iterator is adjusted so that its current index (as returned by + * The iterator is adjusted so that its current index (as returned by * getOffset) is the match position if one was found. * If a match is not found, USEARCH_DONE will be returned and - * the iterator will be adjusted to a position after the end of the text + * the iterator will be adjusted to a position after the end of the text * string. * @param status for errors if it occurs * @return The index of the next match after the current position, @@ -384,9 +384,9 @@ class U_I18N_API SearchIterator : public UObject { int32_t next(UErrorCode &status); /** - * Returns the index of the previous point at which the string text + * Returns the index of the previous point at which the string text * matches the search pattern, starting at the current position. - * The iterator is adjusted so that its current index (as returned by + * The iterator is adjusted so that its current index (as returned by * getOffset) is the match position if one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE @@ -398,12 +398,12 @@ class U_I18N_API SearchIterator : public UObject { */ int32_t previous(UErrorCode &status); - /** + /** * Resets the iteration. - * Search will begin at the start of the text string if a forward - * iteration is initiated before a backwards iteration. Otherwise if a - * backwards iteration is initiated before a forwards iteration, the - * search will begin at the end of the text string. + * Search will begin at the start of the text string if a forward + * iteration is initiated before a backwards iteration. Otherwise if a + * backwards iteration is initiated before a forwards iteration, the + * search will begin at the end of the text string. * @stable ICU 2.0 */ virtual void reset(); @@ -426,7 +426,7 @@ class U_I18N_API SearchIterator : public UObject { * @stable ICU 2.0 */ BreakIterator *m_breakiterator_; - + /** * Unicode string version of the search text * @stable ICU 2.0 @@ -445,35 +445,35 @@ class U_I18N_API SearchIterator : public UObject { /** * Constructor for use by subclasses. * @param text The target text to be searched. - * @param breakiter A {@link BreakIterator} that is used to restrict the - * points at which matches are detected. If - * handleNext or handlePrev finds a - * match, but the match's start or end index is not a - * boundary as determined by the BreakIterator, - * the match is rejected and handleNext or - * handlePrev is called again. If this parameter - * is NULL, no break detection is attempted. + * @param breakiter A {@link BreakIterator} that is used to restrict the + * points at which matches are detected. If + * handleNext or handlePrev finds a + * match, but the match's start or end index is not a + * boundary as determined by the BreakIterator, + * the match is rejected and handleNext or + * handlePrev is called again. If this parameter + * is NULL, no break detection is attempted. * @see #handleNext * @see #handlePrev * @stable ICU 2.0 */ - SearchIterator(const UnicodeString &text, + SearchIterator(const UnicodeString &text, BreakIterator *breakiter = NULL); /** * Constructor for use by subclasses. *

    - * Note: No parsing of the text within the CharacterIterator - * will be done during searching for this version. The block of text + * Note: No parsing of the text within the CharacterIterator + * will be done during searching for this version. The block of text * in CharacterIterator will be used as it is. * @param text The target text to be searched. - * @param breakiter A {@link BreakIterator} that is used to restrict the - * points at which matches are detected. If - * handleNext or handlePrev finds a - * match, but the match's start or end index is not a - * boundary as determined by the BreakIterator, - * the match is rejected and handleNext or - * handlePrev is called again. If this parameter + * @param breakiter A {@link BreakIterator} that is used to restrict the + * points at which matches are detected. If + * handleNext or handlePrev finds a + * match, but the match's start or end index is not a + * boundary as determined by the BreakIterator, + * the match is rejected and handleNext or + * handlePrev is called again. If this parameter * is NULL, no break detection is attempted. * @see #handleNext * @see #handlePrev @@ -497,20 +497,20 @@ class U_I18N_API SearchIterator : public UObject { * subclasses to provide different search algorithms. *

    * If a match is found, the implementation should return the index at - * which the match starts and should call - * setMatchLength with the number of characters - * in the target text that make up the match. If no match is found, the + * which the match starts and should call + * setMatchLength with the number of characters + * in the target text that make up the match. If no match is found, the * method should return USEARCH_DONE. *

    - * @param position The index in the target text at which the search + * @param position The index in the target text at which the search * should start. * @param status for error codes if it occurs. - * @return index at which the match starts, else if match is not found + * @return index at which the match starts, else if match is not found * USEARCH_DONE is returned * @see #setMatchLength * @stable ICU 2.0 */ - virtual int32_t handleNext(int32_t position, UErrorCode &status) + virtual int32_t handleNext(int32_t position, UErrorCode &status) = 0; /** @@ -519,20 +519,20 @@ class U_I18N_API SearchIterator : public UObject { * subclasses to provide different search algorithms. *

    * If a match is found, the implementation should return the index at - * which the match starts and should call - * setMatchLength with the number of characters - * in the target text that make up the match. If no match is found, the + * which the match starts and should call + * setMatchLength with the number of characters + * in the target text that make up the match. If no match is found, the * method should return USEARCH_DONE. *

    - * @param position The index in the target text at which the search + * @param position The index in the target text at which the search * should start. * @param status for error codes if it occurs. - * @return index at which the match starts, else if match is not found + * @return index at which the match starts, else if match is not found * USEARCH_DONE is returned * @see #setMatchLength * @stable ICU 2.0 */ - virtual int32_t handlePrev(int32_t position, UErrorCode &status) + virtual int32_t handlePrev(int32_t position, UErrorCode &status) = 0; /** @@ -560,15 +560,15 @@ class U_I18N_API SearchIterator : public UObject { virtual void setMatchStart(int32_t position); /** - * sets match not found + * sets match not found * @stable ICU 2.0 */ void setMatchNotFound(); }; -inline UBool SearchIterator::operator!=(const SearchIterator &that) const +inline bool SearchIterator::operator!=(const SearchIterator &that) const { - return !operator==(that); + return !operator==(that); } U_NAMESPACE_END @@ -577,3 +577,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif + diff --git a/deps/icu-small/source/i18n/unicode/selfmt.h b/deps/icu-small/source/i18n/unicode/selfmt.h index 9b98f6db7adb76..bdce00e593ea6b 100644 --- a/deps/icu-small/source/i18n/unicode/selfmt.h +++ b/deps/icu-small/source/i18n/unicode/selfmt.h @@ -259,7 +259,7 @@ class U_I18N_API SelectFormat : public Format { * @return true if other is semantically equal to this. * @stable ICU 4.4 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; /** * Return true if another object is semantically unequal to this one. @@ -268,14 +268,14 @@ class U_I18N_API SelectFormat : public Format { * @return true if other is semantically unequal to this. * @stable ICU 4.4 */ - virtual UBool operator!=(const Format& other) const; + virtual bool operator!=(const Format& other) const; /** * Clones this Format object polymorphically. The caller owns the * result and should delete it when done. * @stable ICU 4.4 */ - virtual SelectFormat* clone() const; + virtual SelectFormat* clone() const override; /** * Format an object to produce a string. @@ -295,7 +295,7 @@ class U_I18N_API SelectFormat : public Format { UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, FieldPosition& pos, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Returns the pattern from applyPattern() or constructor. @@ -331,7 +331,7 @@ class U_I18N_API SelectFormat : public Format { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& parse_pos) const; + ParsePosition& parse_pos) const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -343,7 +343,7 @@ class U_I18N_API SelectFormat : public Format { * ICU "poor man's RTTI", returns a UClassID for the actual class. * @stable ICU 4.4 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; private: friend class MessageFormat; diff --git a/deps/icu-small/source/i18n/unicode/simpletz.h b/deps/icu-small/source/i18n/unicode/simpletz.h index eb888cea675ea0..f5c155de466923 100644 --- a/deps/icu-small/source/i18n/unicode/simpletz.h +++ b/deps/icu-small/source/i18n/unicode/simpletz.h @@ -31,10 +31,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: SimpleTimeZone is a concrete subclass of TimeZone. */ - + #if !UCONFIG_NO_FORMATTING #include "unicode/basictz.h" @@ -107,11 +107,11 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * the same ID, raw GMT offset, and DST rules. * * @param that The SimpleTimeZone object to be compared with. - * @return True if the given time zone is equal to this time zone; false + * @return true if the given time zone is equal to this time zone; false * otherwise. * @stable ICU 2.0 */ - virtual UBool operator==(const TimeZone& that) const; + virtual bool operator==(const TimeZone& that) const override; /** * Constructs a SimpleTimeZone with the given raw GMT offset and time zone ID, @@ -134,7 +134,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. *

    - * Various types of daylight-savings time rules can be specfied by using different + * Various types of daylight-savings time rules can be specified by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). @@ -175,7 +175,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. *

    - * Various types of daylight-savings time rules can be specfied by using different + * Various types of daylight-savings time rules can be specified by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). @@ -219,7 +219,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * TimeZone.createInstance() to create a TimeZone instead of creating a * SimpleTimeZone directly with this constructor. *

    - * Various types of daylight-savings time rules can be specfied by using different + * Various types of daylight-savings time rules can be specified by using different * values for startDay and startDayOfWeek and endDay and endDayOfWeek. For a * complete explanation of how these parameters work, see the documentation for * setStartRule(). @@ -293,7 +293,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * month, regardless of what day of the week it is (e.g., (-2, 0) is the * next-to-last day of the month).

  25. *
  26. If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the - * first specified day of the week on or after the specfied day of the month. + * first specified day of the week on or after the specified day of the month. * (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month * [or the 15th itself if the 15th is a Sunday].)
  27. *
  28. If dayOfWeek and DayOfWeekInMonth are both negative, they specify the @@ -337,7 +337,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * month, regardless of what day of the week it is (e.g., (-2, 0) is the * next-to-last day of the month).
  29. *
  30. If dayOfWeek is negative and dayOfWeekInMonth is positive, they specify the - * first specified day of the week on or after the specfied day of the month. + * first specified day of the week on or after the specified day of the month. * (e.g., (15, -SUNDAY) is the first Sunday after the 15th of the month * [or the 15th itself if the 15th is a Sunday].)
  31. *
  32. If dayOfWeek and DayOfWeekInMonth are both negative, they specify the @@ -571,7 +571,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @stable ICU 2.0 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, - uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const; + uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const override; /** * Gets the time zone offset, for current date, modified in case of @@ -590,7 +590,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t milliseconds, - int32_t monthLength, UErrorCode& status) const; + int32_t monthLength, UErrorCode& status) const override; /** * Gets the time zone offset, for current date, modified in case of * daylight savings. This is the offset to add *to* UTC to get local time. @@ -618,7 +618,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @stable ICU 2.8 */ virtual void getOffset(UDate date, UBool local, int32_t& rawOffset, - int32_t& dstOffset, UErrorCode& ec) const; + int32_t& dstOffset, UErrorCode& ec) const override; #ifndef U_FORCE_HIDE_DRAFT_API /** @@ -628,7 +628,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { virtual void getOffsetFromLocal( UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, - int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const; + int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const override; #endif /* U_FORCE_HIDE_DRAFT_API */ /** @@ -638,7 +638,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return The TimeZone's raw GMT offset. * @stable ICU 2.0 */ - virtual int32_t getRawOffset(void) const; + virtual int32_t getRawOffset(void) const override; /** * Sets the TimeZone's raw GMT offset (i.e., the number of milliseconds to add @@ -647,7 +647,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @param offsetMillis The new raw GMT offset for this time zone. * @stable ICU 2.0 */ - virtual void setRawOffset(int32_t offsetMillis); + virtual void setRawOffset(int32_t offsetMillis) override; /** * Sets the amount of time in ms that the clock is advanced during DST. @@ -668,7 +668,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * but not 0. * @stable ICU 2.0 */ - virtual int32_t getDSTSavings(void) const; + virtual int32_t getDSTSavings(void) const override; /** * Queries if this TimeZone uses Daylight Savings Time. @@ -676,7 +676,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return True if this TimeZone uses Daylight Savings Time; false otherwise. * @stable ICU 2.0 */ - virtual UBool useDaylightTime(void) const; + virtual UBool useDaylightTime(void) const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -693,7 +693,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * false otherwise. * @deprecated ICU 2.4. Use Calendar::inDaylightTime() instead. */ - virtual UBool inDaylightTime(UDate date, UErrorCode& status) const; + virtual UBool inDaylightTime(UDate date, UErrorCode& status) const override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -702,7 +702,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return true if the given zone has the same rules and offset as this one * @stable ICU 2.0 */ - UBool hasSameRules(const TimeZone& other) const; + UBool hasSameRules(const TimeZone& other) const override; /** * Clones TimeZone objects polymorphically. Clients are responsible for deleting @@ -711,7 +711,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return A new copy of this TimeZone object. * @stable ICU 2.0 */ - virtual SimpleTimeZone* clone() const; + virtual SimpleTimeZone* clone() const override; /** * Gets the first time zone transition after the base time. @@ -721,7 +721,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Gets the most recent time zone transition before the base time. @@ -731,7 +731,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Returns the number of TimeZoneRules which represents time transitions, @@ -741,7 +741,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @return The number of TimeZoneRules representing time transitions. * @stable ICU 3.8 */ - virtual int32_t countTransitionRules(UErrorCode& status) const; + virtual int32_t countTransitionRules(UErrorCode& status) const override; /** * Gets the InitialTimeZoneRule and the set of TimeZoneRule @@ -760,7 +760,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * @stable ICU 3.8 */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, - const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; + const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const override; public: @@ -775,7 +775,7 @@ class U_I18N_API SimpleTimeZone: public BasicTimeZone { * same class ID. Objects of other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Return the class ID for this class. This is useful only for comparing to a return diff --git a/deps/icu-small/source/i18n/unicode/smpdtfmt.h b/deps/icu-small/source/i18n/unicode/smpdtfmt.h index 3296c6b3ab75b6..733a1cff13b0bc 100644 --- a/deps/icu-small/source/i18n/unicode/smpdtfmt.h +++ b/deps/icu-small/source/i18n/unicode/smpdtfmt.h @@ -756,7 +756,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * names of the months), but not to provide the pattern. *

    * A numbering system override is a string containing either the name of a known numbering system, - * or a set of field and numbering system pairs that specify which fields are to be formattied with + * or a set of field and numbering system pairs that specify which fields are to be formatted with * the alternate numbering system. For example, to specify that all numeric fields in the specified * date or time pattern are to be rendered using Thai digits, simply specify the numbering system override * as "thai". To specify that just the year portion of the date be formatted using Hebrew numbering, @@ -797,7 +797,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * names of the months), but not to provide the pattern. *

    * A numbering system override is a string containing either the name of a known numbering system, - * or a set of field and numbering system pairs that specify which fields are to be formattied with + * or a set of field and numbering system pairs that specify which fields are to be formatted with * the alternate numbering system. For example, to specify that all numeric fields in the specified * date or time pattern are to be rendered using Thai digits, simply specify the numbering system override * as "thai". To specify that just the year portion of the date be formatted using Hebrew numbering, @@ -867,7 +867,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * @return A copy of the object. * @stable ICU 2.0 */ - virtual SimpleDateFormat* clone() const; + virtual SimpleDateFormat* clone() const override; /** * Return true if the given Format objects are semantically equal. Objects @@ -876,7 +876,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * @return true if the given Format objects are semantically equal. * @stable ICU 2.0 */ - virtual UBool operator==(const Format& other) const; + virtual bool operator==(const Format& other) const override; using DateFormat::format; @@ -899,7 +899,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { */ virtual UnicodeString& format( Calendar& cal, UnicodeString& appendTo, - FieldPosition& pos) const; + FieldPosition& pos) const override; /** * Format a date or time, which is the standard millis since 24:00 GMT, Jan @@ -922,7 +922,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { virtual UnicodeString& format( Calendar& cal, UnicodeString& appendTo, FieldPositionIterator* posIter, - UErrorCode& status) const; + UErrorCode& status) const override; using DateFormat::parse; @@ -954,7 +954,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { */ virtual void parse( const UnicodeString& text, Calendar& cal, - ParsePosition& pos) const; + ParsePosition& pos) const override; /** @@ -1097,7 +1097,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Set the calendar to be used by this date format. Initially, the default @@ -1108,7 +1108,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * @param calendarToAdopt Calendar object to be adopted. * @stable ICU 2.0 */ - virtual void adoptCalendar(Calendar* calendarToAdopt); + virtual void adoptCalendar(Calendar* calendarToAdopt) override; /* Cannot use #ifndef U_HIDE_INTERNAL_API for the following methods since they are virtual */ /** @@ -1144,7 +1144,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * updated with any new status from the function. * @stable ICU 53 */ - virtual void setContext(UDisplayContext value, UErrorCode& status); + virtual void setContext(UDisplayContext value, UErrorCode& status) override; /** * Overrides base class method and @@ -1153,7 +1153,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * @param formatToAdopt the NumbeferFormat used * @stable ICU 54 */ - void adoptNumberFormat(NumberFormat *formatToAdopt); + void adoptNumberFormat(NumberFormat *formatToAdopt) override; /** * Allow the user to set the NumberFormat for several fields @@ -1299,7 +1299,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { int32_t maxDigits) const; /** - * Return true if the given format character, occuring count + * Return true if the given format character, occurring count * times, represents a numeric field. */ static UBool isNumeric(char16_t formatChar, int32_t count); @@ -1386,7 +1386,7 @@ class U_I18N_API SimpleDateFormat: public DateFormat { * * @param pattern the pattern string * @param patternOffset the starting offset into the pattern text. On - * outupt will be set the offset of the first non-literal character in the pattern + * output will be set the offset of the first non-literal character in the pattern * @param text the text being parsed * @param textOffset the starting offset into the text. On output * will be set to the offset of the character after the match diff --git a/deps/icu-small/source/i18n/unicode/sortkey.h b/deps/icu-small/source/i18n/unicode/sortkey.h index 14902668a2d4f2..b1231f18b78402 100644 --- a/deps/icu-small/source/i18n/unicode/sortkey.h +++ b/deps/icu-small/source/i18n/unicode/sortkey.h @@ -28,10 +28,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file - * \brief C++ API: Keys for comparing strings multiple times. + * \file + * \brief C++ API: Keys for comparing strings multiple times. */ - + #if !UCONFIG_NO_COLLATION #include "unicode/uobject.h" @@ -145,7 +145,7 @@ class U_I18N_API CollationKey : public UObject { * @return Returns true if two collation keys are equal, false otherwise. * @stable ICU 2.0 */ - UBool operator==(const CollationKey& source) const; + bool operator==(const CollationKey& source) const; /** * Compare if two collation keys are not the same. @@ -153,7 +153,7 @@ class U_I18N_API CollationKey : public UObject { * @return Returns true if two collation keys are different, false otherwise. * @stable ICU 2.0 */ - UBool operator!=(const CollationKey& source) const; + bool operator!=(const CollationKey& source) const; /** @@ -186,7 +186,7 @@ class U_I18N_API CollationKey : public UObject { uint8_t* toByteArray(int32_t& count) const; #endif -#ifndef U_HIDE_DEPRECATED_API +#ifndef U_HIDE_DEPRECATED_API /** * Convenience method which does a string(bit-wise) comparison of the * two collation keys. @@ -237,7 +237,7 @@ class U_I18N_API CollationKey : public UObject { * ICU "poor man's RTTI", returns a UClassID for the actual class. * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -316,7 +316,7 @@ class U_I18N_API CollationKey : public UObject { } fUnion; }; -inline UBool +inline bool CollationKey::operator!=(const CollationKey& other) const { return !(*this == other); diff --git a/deps/icu-small/source/i18n/unicode/stsearch.h b/deps/icu-small/source/i18n/unicode/stsearch.h index 3cfd68d64771b9..c23e651d897511 100644 --- a/deps/icu-small/source/i18n/unicode/stsearch.h +++ b/deps/icu-small/source/i18n/unicode/stsearch.h @@ -17,10 +17,10 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: Service for searching text based on RuleBasedCollator. */ - + #if !UCONFIG_NO_COLLATION && !UCONFIG_NO_BREAK_ITERATION #include "unicode/tblcoll.h" @@ -29,7 +29,7 @@ U_NAMESPACE_BEGIN -/** +/** * * StringSearch is a SearchIterator that provides * language-sensitive text searching based on the comparison rules defined @@ -37,7 +37,7 @@ U_NAMESPACE_BEGIN * StringSearch ensures that language eccentricity can be * handled, e.g. for the German collator, characters ß and SS will be matched * if case is chosen to be ignored. - * See the + * See the * "ICU Collation Design Document" for more information. *

    * There are 2 match options for selection:
    @@ -46,7 +46,7 @@ U_NAMESPACE_BEGIN *
    * A pattern string P matches a text string S at the offsets [start, end] * if - *

    + * 
     
      * option 1. Some canonical equivalent of P matches some canonical equivalent
      *           of S'
      * option 2. P matches S' and if P starts or ends with a combining mark,
    @@ -55,10 +55,10 @@ U_NAMESPACE_BEGIN
      * 
    * Option 2. will be the default. *

    - * This search has APIs similar to that of other text iteration mechanisms - * such as the break iterators in BreakIterator. Using these - * APIs, it is easy to scan through text looking for all occurrences of - * a given pattern. This search iterator allows changing of direction by + * This search has APIs similar to that of other text iteration mechanisms + * such as the break iterators in BreakIterator. Using these + * APIs, it is easy to scan through text looking for all occurrences of + * a given pattern. This search iterator allows changing of direction by * calling a reset followed by a next or previous. * Though a direction change can occur without calling reset first, * this operation comes with some speed penalty. @@ -101,7 +101,7 @@ U_NAMESPACE_BEGIN * from getCollator and using the APIs in coll.h. * Lastly to update StringSearch to the new collator attributes, * reset has to be called. - *

    + *

    * Restriction:
    * Currently there are no composite characters that consists of a * character with combining class > 0 before a character with combining @@ -118,7 +118,7 @@ U_NAMESPACE_BEGIN * UErrorCode error = U_ZERO_ERROR; * StringSearch iter(pattern, target, Locale::getUS(), NULL, status); * for (int pos = iter.first(error); - * pos != USEARCH_DONE; + * pos != USEARCH_DONE; * pos = iter.next(error)) * { * printf("Found match at %d pos, length is %d\n", pos, iter.getMatchedLength()); @@ -139,120 +139,120 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator // public constructors and destructors -------------------------------- /** - * Creating a StringSearch instance using the argument locale - * language rule set. A collator will be created in the process, which - * will be owned by this instance and will be deleted during + * Creating a StringSearch instance using the argument locale + * language rule set. A collator will be created in the process, which + * will be owned by this instance and will be deleted during * destruction * @param pattern The text for which this object will search. * @param text The text in which to search for the pattern. - * @param locale A locale which defines the language-sensitive - * comparison rules used to determine whether text in the - * pattern and target matches. - * @param breakiter A BreakIterator object used to constrain - * the matches that are found. Matches whose start and end - * indices in the target text are not boundaries as - * determined by the BreakIterator are - * ignored. If this behavior is not desired, + * @param locale A locale which defines the language-sensitive + * comparison rules used to determine whether text in the + * pattern and target matches. + * @param breakiter A BreakIterator object used to constrain + * the matches that are found. Matches whose start and end + * indices in the target text are not boundaries as + * determined by the BreakIterator are + * ignored. If this behavior is not desired, * NULL can be passed in instead. * @param status for errors if any. If pattern or text is NULL, or if - * either the length of pattern or text is 0 then an + * either the length of pattern or text is 0 then an * U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ StringSearch(const UnicodeString &pattern, const UnicodeString &text, - const Locale &locale, + const Locale &locale, BreakIterator *breakiter, UErrorCode &status); /** - * Creating a StringSearch instance using the argument collator - * language rule set. Note, user retains the ownership of this collator, + * Creating a StringSearch instance using the argument collator + * language rule set. Note, user retains the ownership of this collator, * it does not get destroyed during this instance's destruction. * @param pattern The text for which this object will search. * @param text The text in which to search for the pattern. - * @param coll A RuleBasedCollator object which defines - * the language-sensitive comparison rules used to - * determine whether text in the pattern and target + * @param coll A RuleBasedCollator object which defines + * the language-sensitive comparison rules used to + * determine whether text in the pattern and target * matches. User is responsible for the clearing of this * object. - * @param breakiter A BreakIterator object used to constrain - * the matches that are found. Matches whose start and end - * indices in the target text are not boundaries as - * determined by the BreakIterator are - * ignored. If this behavior is not desired, + * @param breakiter A BreakIterator object used to constrain + * the matches that are found. Matches whose start and end + * indices in the target text are not boundaries as + * determined by the BreakIterator are + * ignored. If this behavior is not desired, * NULL can be passed in instead. - * @param status for errors if any. If either the length of pattern or + * @param status for errors if any. If either the length of pattern or * text is 0 then an U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ - StringSearch(const UnicodeString &pattern, + StringSearch(const UnicodeString &pattern, const UnicodeString &text, - RuleBasedCollator *coll, + RuleBasedCollator *coll, BreakIterator *breakiter, UErrorCode &status); /** - * Creating a StringSearch instance using the argument locale - * language rule set. A collator will be created in the process, which - * will be owned by this instance and will be deleted during + * Creating a StringSearch instance using the argument locale + * language rule set. A collator will be created in the process, which + * will be owned by this instance and will be deleted during * destruction *

    - * Note: No parsing of the text within the CharacterIterator - * will be done during searching for this version. The block of text + * Note: No parsing of the text within the CharacterIterator + * will be done during searching for this version. The block of text * in CharacterIterator will be used as it is. * @param pattern The text for which this object will search. * @param text The text iterator in which to search for the pattern. - * @param locale A locale which defines the language-sensitive - * comparison rules used to determine whether text in the - * pattern and target matches. User is responsible for + * @param locale A locale which defines the language-sensitive + * comparison rules used to determine whether text in the + * pattern and target matches. User is responsible for * the clearing of this object. - * @param breakiter A BreakIterator object used to constrain - * the matches that are found. Matches whose start and end - * indices in the target text are not boundaries as - * determined by the BreakIterator are - * ignored. If this behavior is not desired, + * @param breakiter A BreakIterator object used to constrain + * the matches that are found. Matches whose start and end + * indices in the target text are not boundaries as + * determined by the BreakIterator are + * ignored. If this behavior is not desired, * NULL can be passed in instead. - * @param status for errors if any. If either the length of pattern or + * @param status for errors if any. If either the length of pattern or * text is 0 then an U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ StringSearch(const UnicodeString &pattern, CharacterIterator &text, - const Locale &locale, + const Locale &locale, BreakIterator *breakiter, UErrorCode &status); /** - * Creating a StringSearch instance using the argument collator - * language rule set. Note, user retains the ownership of this collator, + * Creating a StringSearch instance using the argument collator + * language rule set. Note, user retains the ownership of this collator, * it does not get destroyed during this instance's destruction. *

    - * Note: No parsing of the text within the CharacterIterator - * will be done during searching for this version. The block of text + * Note: No parsing of the text within the CharacterIterator + * will be done during searching for this version. The block of text * in CharacterIterator will be used as it is. * @param pattern The text for which this object will search. * @param text The text in which to search for the pattern. - * @param coll A RuleBasedCollator object which defines - * the language-sensitive comparison rules used to - * determine whether text in the pattern and target + * @param coll A RuleBasedCollator object which defines + * the language-sensitive comparison rules used to + * determine whether text in the pattern and target * matches. User is responsible for the clearing of this * object. - * @param breakiter A BreakIterator object used to constrain - * the matches that are found. Matches whose start and end - * indices in the target text are not boundaries as - * determined by the BreakIterator are - * ignored. If this behavior is not desired, + * @param breakiter A BreakIterator object used to constrain + * the matches that are found. Matches whose start and end + * indices in the target text are not boundaries as + * determined by the BreakIterator are + * ignored. If this behavior is not desired, * NULL can be passed in instead. - * @param status for errors if any. If either the length of pattern or + * @param status for errors if any. If either the length of pattern or * text is 0 then an U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ StringSearch(const UnicodeString &pattern, CharacterIterator &text, - RuleBasedCollator *coll, + RuleBasedCollator *coll, BreakIterator *breakiter, UErrorCode &status); /** - * Copy constructor that creates a StringSearch instance with the same + * Copy constructor that creates a StringSearch instance with the same * behavior, and iterating over the same text. * @param that StringSearch instance to be copied. * @stable ICU 2.0 @@ -290,31 +290,31 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator StringSearch & operator=(const StringSearch &that); /** - * Equality operator. + * Equality operator. * @param that instance to be compared. - * @return true if both instances have the same attributes, - * breakiterators, collators and iterate over the same text + * @return true if both instances have the same attributes, + * breakiterators, collators and iterate over the same text * while looking for the same pattern. * @stable ICU 2.0 */ - virtual UBool operator==(const SearchIterator &that) const; + virtual bool operator==(const SearchIterator &that) const override; // public get and set methods ---------------------------------------- /** - * Sets the index to point to the given position, and clears any state + * Sets the index to point to the given position, and clears any state * that's affected. *

    - * This method takes the argument index and sets the position in the text - * string accordingly without checking if the index is pointing to a - * valid starting point to begin searching. + * This method takes the argument index and sets the position in the text + * string accordingly without checking if the index is pointing to a + * valid starting point to begin searching. * @param position within the text to be set. If position is less - * than or greater than the text range for searching, + * than or greater than the text range for searching, * an U_INDEX_OUTOFBOUNDS_ERROR will be returned * @param status for errors if it occurs * @stable ICU 2.0 */ - virtual void setOffset(int32_t position, UErrorCode &status); + virtual void setOffset(int32_t position, UErrorCode &status) override; /** * Return the current index in the text being searched. @@ -324,68 +324,68 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator * @return current index in the text being searched. * @stable ICU 2.0 */ - virtual int32_t getOffset(void) const; + virtual int32_t getOffset(void) const override; /** * Set the target text to be searched. - * Text iteration will hence begin at the start of the text string. - * This method is - * useful if you want to re-use an iterator to search for the same + * Text iteration will hence begin at the start of the text string. + * This method is + * useful if you want to re-use an iterator to search for the same * pattern within a different body of text. * @param text text string to be searched - * @param status for errors if any. If the text length is 0 then an + * @param status for errors if any. If the text length is 0 then an * U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ - virtual void setText(const UnicodeString &text, UErrorCode &status); - + virtual void setText(const UnicodeString &text, UErrorCode &status) override; + /** * Set the target text to be searched. - * Text iteration will hence begin at the start of the text string. - * This method is - * useful if you want to re-use an iterator to search for the same + * Text iteration will hence begin at the start of the text string. + * This method is + * useful if you want to re-use an iterator to search for the same * pattern within a different body of text. - * Note: No parsing of the text within the CharacterIterator - * will be done during searching for this version. The block of text + * Note: No parsing of the text within the CharacterIterator + * will be done during searching for this version. The block of text * in CharacterIterator will be used as it is. * @param text text string to be searched - * @param status for errors if any. If the text length is 0 then an + * @param status for errors if any. If the text length is 0 then an * U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ - virtual void setText(CharacterIterator &text, UErrorCode &status); + virtual void setText(CharacterIterator &text, UErrorCode &status) override; /** * Gets the collator used for the language rules. *

    * Caller may modify but must not delete the RuleBasedCollator! - * Modifications to this collator will affect the original collator passed in to + * Modifications to this collator will affect the original collator passed in to * the StringSearch> constructor or to setCollator, if any. * @return collator used for string search * @stable ICU 2.0 */ RuleBasedCollator * getCollator() const; - + /** - * Sets the collator used for the language rules. User retains the - * ownership of this collator, thus the responsibility of deletion lies + * Sets the collator used for the language rules. User retains the + * ownership of this collator, thus the responsibility of deletion lies * with the user. The iterator's position will not be changed by this method. - * @param coll collator + * @param coll collator * @param status for errors if any * @stable ICU 2.0 */ void setCollator(RuleBasedCollator *coll, UErrorCode &status); - + /** * Sets the pattern used for matching. * The iterator's position will not be changed by this method. * @param pattern search pattern to be found - * @param status for errors if any. If the pattern length is 0 then an + * @param status for errors if any. If the pattern length is 0 then an * U_ILLEGAL_ARGUMENT_ERROR is returned. * @stable ICU 2.0 */ void setPattern(const UnicodeString &pattern, UErrorCode &status); - + /** * Gets the search pattern. * @return pattern used for matching @@ -395,32 +395,32 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator // public methods ---------------------------------------------------- - /** + /** * Reset the iteration. - * Search will begin at the start of the text string if a forward - * iteration is initiated before a backwards iteration. Otherwise if - * a backwards iteration is initiated before a forwards iteration, the + * Search will begin at the start of the text string if a forward + * iteration is initiated before a backwards iteration. Otherwise if + * a backwards iteration is initiated before a forwards iteration, the * search will begin at the end of the text string. * @stable ICU 2.0 */ - virtual void reset(); + virtual void reset() override; /** - * Returns a copy of StringSearch with the same behavior, and + * Returns a copy of StringSearch with the same behavior, and * iterating over the same text, as this one. Note that all data will be * replicated, except for the user-specified collator and the * breakiterator. * @return cloned object * @stable ICU 2.0 */ - virtual StringSearch * safeClone() const; - + virtual StringSearch * safeClone() const override; + /** * ICU "poor man's RTTI", returns a UClassID for the actual class. * * @stable ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -435,27 +435,27 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator /** * Search forward for matching text, starting at a given location. - * Clients should not call this method directly; instead they should + * Clients should not call this method directly; instead they should * call {@link SearchIterator#next }. *

    * If a match is found, this method returns the index at which the match - * starts and calls {@link SearchIterator#setMatchLength } with the number - * of characters in the target text that make up the match. If no match + * starts and calls {@link SearchIterator#setMatchLength } with the number + * of characters in the target text that make up the match. If no match * is found, the method returns USEARCH_DONE. *

    - * The StringSearch is adjusted so that its current index - * (as returned by {@link #getOffset }) is the match position if one was + * The StringSearch is adjusted so that its current index + * (as returned by {@link #getOffset }) is the match position if one was * found. * If a match is not found, USEARCH_DONE will be returned and * the StringSearch will be adjusted to the index USEARCH_DONE. - * @param position The index in the target text at which the search + * @param position The index in the target text at which the search * starts * @param status for errors if any occurs - * @return The index at which the matched text in the target starts, or + * @return The index at which the matched text in the target starts, or * USEARCH_DONE if no match was found. * @stable ICU 2.0 */ - virtual int32_t handleNext(int32_t position, UErrorCode &status); + virtual int32_t handleNext(int32_t position, UErrorCode &status) override; /** * Search backward for matching text, starting at a given location. @@ -463,24 +463,24 @@ class U_I18N_API StringSearch U_FINAL : public SearchIterator * SearchIterator.previous(), which this method overrides. *

    * If a match is found, this method returns the index at which the match - * starts and calls {@link SearchIterator#setMatchLength } with the number - * of characters in the target text that make up the match. If no match + * starts and calls {@link SearchIterator#setMatchLength } with the number + * of characters in the target text that make up the match. If no match * is found, the method returns USEARCH_DONE. *

    - * The StringSearch is adjusted so that its current index - * (as returned by {@link #getOffset }) is the match position if one was + * The StringSearch is adjusted so that its current index + * (as returned by {@link #getOffset }) is the match position if one was * found. * If a match is not found, USEARCH_DONE will be returned and * the StringSearch will be adjusted to the index USEARCH_DONE. - * @param position The index in the target text at which the search + * @param position The index in the target text at which the search * starts. * @param status for errors if any occurs - * @return The index at which the matched text in the target starts, or + * @return The index at which the matched text in the target starts, or * USEARCH_DONE if no match was found. * @stable ICU 2.0 */ - virtual int32_t handlePrev(int32_t position, UErrorCode &status); - + virtual int32_t handlePrev(int32_t position, UErrorCode &status) override; + private : StringSearch(); // default constructor not implemented @@ -506,3 +506,4 @@ U_NAMESPACE_END #endif /* U_SHOW_CPLUSPLUS_API */ #endif + diff --git a/deps/icu-small/source/i18n/unicode/tblcoll.h b/deps/icu-small/source/i18n/unicode/tblcoll.h index 1709e836dd4e98..2de1af85392fc8 100644 --- a/deps/icu-small/source/i18n/unicode/tblcoll.h +++ b/deps/icu-small/source/i18n/unicode/tblcoll.h @@ -223,14 +223,14 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @return true if arguments is the same as this object. * @stable ICU 2.0 */ - virtual UBool operator==(const Collator& other) const; + virtual bool operator==(const Collator& other) const override; /** * Makes a copy of this object. * @return a copy of this object, owned by the caller * @stable ICU 2.0 */ - virtual RuleBasedCollator* clone() const; + virtual RuleBasedCollator* clone() const override; /** * Creates a collation element iterator for the source string. The caller of @@ -274,7 +274,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { **/ virtual UCollationResult compare(const UnicodeString& source, const UnicodeString& target, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Does the same thing as compare but limits the comparison to a specified @@ -292,7 +292,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { virtual UCollationResult compare(const UnicodeString& source, const UnicodeString& target, int32_t length, - UErrorCode &status) const; + UErrorCode &status) const override; /** * The comparison function compares the character data stored in two @@ -312,7 +312,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual UCollationResult compare(const char16_t* source, int32_t sourceLength, const char16_t* target, int32_t targetLength, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Compares two strings using the Collator. @@ -327,7 +327,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual UCollationResult compare(UCharIterator &sIter, UCharIterator &tIter, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Compares two UTF-8 strings using the Collator. @@ -344,7 +344,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual UCollationResult compareUTF8(const StringPiece &source, const StringPiece &target, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Transforms the string into a series of characters @@ -362,7 +362,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual CollationKey& getCollationKey(const UnicodeString& source, CollationKey& key, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Transforms a specified region of the string into a series of characters @@ -382,14 +382,14 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { virtual CollationKey& getCollationKey(const char16_t *source, int32_t sourceLength, CollationKey& key, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Generates the hash code for the rule-based collation object. * @return the hash code. * @stable ICU 2.0 */ - virtual int32_t hashCode() const; + virtual int32_t hashCode() const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -402,7 +402,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * was instantiated from rules, locale is empty. * @deprecated ICU 2.8 likely to change in ICU 3.0, based on feedback */ - virtual Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const; + virtual Locale getLocale(ULocDataLocaleType type, UErrorCode& status) const override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -417,7 +417,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @param info the version # information, the result will be filled in * @stable ICU 2.0 */ - virtual void getVersion(UVersionInfo info) const; + virtual void getVersion(UVersionInfo info) const override; #ifndef U_HIDE_DEPRECATED_API /** @@ -449,7 +449,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** * Returns the class ID for this class. This is useful only for comparing to @@ -511,7 +511,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @stable ICU 2.2 */ virtual void setAttribute(UColAttribute attr, UColAttributeValue value, - UErrorCode &status); + UErrorCode &status) override; /** * Universal attribute getter. @@ -521,7 +521,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @stable ICU 2.2 */ virtual UColAttributeValue getAttribute(UColAttribute attr, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Sets the variable top to the top of the specified reordering group. @@ -539,7 +539,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @see getMaxVariable * @stable ICU 53 */ - virtual Collator &setMaxVariable(UColReorderCode group, UErrorCode &errorCode); + virtual Collator &setMaxVariable(UColReorderCode group, UErrorCode &errorCode) override; /** * Returns the maximum reordering group whose characters are affected by UCOL_ALTERNATE_HANDLING. @@ -547,7 +547,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @see setMaxVariable * @stable ICU 53 */ - virtual UColReorderCode getMaxVariable() const; + virtual UColReorderCode getMaxVariable() const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -566,7 +566,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @return variable top primary weight * @deprecated ICU 53 Call setMaxVariable() instead. */ - virtual uint32_t setVariableTop(const char16_t *varTop, int32_t len, UErrorCode &status); + virtual uint32_t setVariableTop(const char16_t *varTop, int32_t len, UErrorCode &status) override; /** * Sets the variable top to the primary weight of the specified string. @@ -583,7 +583,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @return variable top primary weight * @deprecated ICU 53 Call setMaxVariable() instead. */ - virtual uint32_t setVariableTop(const UnicodeString &varTop, UErrorCode &status); + virtual uint32_t setVariableTop(const UnicodeString &varTop, UErrorCode &status) override; /** * Sets the variable top to the specified primary weight. @@ -596,7 +596,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @param status error code * @deprecated ICU 53 Call setMaxVariable() instead. */ - virtual void setVariableTop(uint32_t varTop, UErrorCode &status); + virtual void setVariableTop(uint32_t varTop, UErrorCode &status) override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -606,7 +606,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @see getMaxVariable * @stable ICU 2.0 */ - virtual uint32_t getVariableTop(UErrorCode &status) const; + virtual uint32_t getVariableTop(UErrorCode &status) const override; /** * Get a UnicodeSet that contains all the characters and sequences tailored in @@ -617,7 +617,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * in the root collator. The object must be disposed of by using delete * @stable ICU 2.4 */ - virtual UnicodeSet *getTailoredSet(UErrorCode &status) const; + virtual UnicodeSet *getTailoredSet(UErrorCode &status) const override; /** * Get the sort key as an array of bytes from a UnicodeString. @@ -634,7 +634,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @stable ICU 2.0 */ virtual int32_t getSortKey(const UnicodeString& source, uint8_t *result, - int32_t resultLength) const; + int32_t resultLength) const override; /** * Get the sort key as an array of bytes from a char16_t buffer. @@ -653,7 +653,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @stable ICU 2.2 */ virtual int32_t getSortKey(const char16_t *source, int32_t sourceLength, - uint8_t *result, int32_t resultLength) const; + uint8_t *result, int32_t resultLength) const override; /** * Retrieves the reordering codes for this collator. @@ -670,7 +670,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual int32_t getReorderCodes(int32_t *dest, int32_t destCapacity, - UErrorCode& status) const; + UErrorCode& status) const override; /** * Sets the ordering of scripts for this collator. @@ -685,7 +685,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual void setReorderCodes(const int32_t* reorderCodes, int32_t reorderCodesLength, - UErrorCode& status) ; + UErrorCode& status) override; /** * Implements ucol_strcollUTF8(). @@ -694,7 +694,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { virtual UCollationResult internalCompareUTF8( const char *left, int32_t leftLength, const char *right, int32_t rightLength, - UErrorCode &errorCode) const; + UErrorCode &errorCode) const override; /** Get the short definition string for a collator. This internal API harvests the collator's * locale and the attribute set and produces a string that can be used for opening @@ -722,7 +722,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { virtual int32_t internalGetShortDefinitionString(const char *locale, char *buffer, int32_t capacity, - UErrorCode &status) const; + UErrorCode &status) const override; /** * Implements ucol_nextSortKeyPart(). @@ -730,7 +730,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { */ virtual int32_t internalNextSortKeyPart( UCharIterator *iter, uint32_t state[2], - uint8_t *dest, int32_t count, UErrorCode &errorCode) const; + uint8_t *dest, int32_t count, UErrorCode &errorCode) const override; // Do not enclose the default constructor with #ifndef U_HIDE_INTERNAL_API /** @@ -806,7 +806,7 @@ class U_I18N_API RuleBasedCollator U_FINAL : public Collator { * @param actualLocale the actual locale * @internal */ - virtual void setLocales(const Locale& requestedLocale, const Locale& validLocale, const Locale& actualLocale); + virtual void setLocales(const Locale& requestedLocale, const Locale& validLocale, const Locale& actualLocale) override; private: friend class CollationElementIterator; diff --git a/deps/icu-small/source/i18n/unicode/timezone.h b/deps/icu-small/source/i18n/unicode/timezone.h index 73cae44d533365..382ad97d5bf381 100644 --- a/deps/icu-small/source/i18n/unicode/timezone.h +++ b/deps/icu-small/source/i18n/unicode/timezone.h @@ -34,7 +34,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: TimeZone object */ @@ -184,10 +184,10 @@ class U_I18N_API TimeZone : public UObject { * @param zoneType The system time zone type. * @param region The ISO 3166 two-letter country code or UN M.49 * three-digit area code. When NULL, no filtering - * done by region. + * done by region. * @param rawOffset An offset from GMT in milliseconds, ignoring * the effect of daylight savings time, if any. - * When NULL, no filtering done by zone offset. + * When NULL, no filtering done by zone offset. * @param ec Output param to filled in with a success or * an error. * @return an enumeration object, owned by the caller. @@ -199,15 +199,28 @@ class U_I18N_API TimeZone : public UObject { const int32_t* rawOffset, UErrorCode& ec); +#ifndef U_HIDE_DEPRECATED_API /** * Returns an enumeration over all recognized time zone IDs. (i.e., * all strings that createTimeZone() accepts) * * @return an enumeration object, owned by the caller. - * @stable ICU 2.4 + * @deprecated ICU 70 Use createEnumeration(UErrorCode&) instead. */ static StringEnumeration* U_EXPORT2 createEnumeration(); +#endif // U_HIDE_DEPRECATED_API + /** + * Returns an enumeration over all recognized time zone IDs. (i.e., + * all strings that createTimeZone() accepts) + * + * @param status Receives the status. + * @return an enumeration object, owned by the caller. + * @stable ICU 70 + */ + static StringEnumeration* U_EXPORT2 createEnumeration(UErrorCode& status); + +#ifndef U_HIDE_DEPRECATED_API /** * Returns an enumeration over time zone IDs with a given raw * offset from GMT. There may be several times zones with the @@ -223,21 +236,57 @@ class U_I18N_API TimeZone : public UObject { * @param rawOffset an offset from GMT in milliseconds, ignoring * the effect of daylight savings time, if any * @return an enumeration object, owned by the caller - * @stable ICU 2.4 + * @deprecated ICU 70 Use createEnumerationForRawOffset(int32_t,UErrorCode&) instead. */ static StringEnumeration* U_EXPORT2 createEnumeration(int32_t rawOffset); +#endif // U_HIDE_DEPRECATED_API + /** + * Returns an enumeration over time zone IDs with a given raw + * offset from GMT. There may be several times zones with the + * same GMT offset that differ in the way they handle daylight + * savings time. For example, the state of Arizona doesn't + * observe daylight savings time. If you ask for the time zone + * IDs corresponding to GMT-7:00, you'll get back an enumeration + * over two time zone IDs: "America/Denver," which corresponds to + * Mountain Standard Time in the winter and Mountain Daylight Time + * in the summer, and "America/Phoenix", which corresponds to + * Mountain Standard Time year-round, even in the summer. + * + * @param rawOffset an offset from GMT in milliseconds, ignoring + * the effect of daylight savings time, if any + * @param status Receives the status. + * @return an enumeration object, owned by the caller + * @stable ICU 70 + */ + static StringEnumeration* U_EXPORT2 createEnumerationForRawOffset(int32_t rawOffset, UErrorCode& status); + +#ifndef U_HIDE_DEPRECATED_API /** * Returns an enumeration over time zone IDs associated with the - * given country. Some zones are affiliated with no country + * given region. Some zones are affiliated with no region * (e.g., "UTC"); these may also be retrieved, as a group. * - * @param country The ISO 3166 two-letter country code, or NULL to - * retrieve zones not affiliated with any country. + * @param region The ISO 3166 two-letter country code, or NULL to + * retrieve zones not affiliated with any region. * @return an enumeration object, owned by the caller - * @stable ICU 2.4 + * @deprecated ICU 70 Use createEnumerationForRegion(const char*,UErrorCode&) instead. + */ + static StringEnumeration* U_EXPORT2 createEnumeration(const char* region); +#endif // U_HIDE_DEPRECATED_API + + /** + * Returns an enumeration over time zone IDs associated with the + * given region. Some zones are affiliated with no region + * (e.g., "UTC"); these may also be retrieved, as a group. + * + * @param region The ISO 3166 two-letter country code, or NULL to + * retrieve zones not affiliated with any region. + * @param status Receives the status. + * @return an enumeration object, owned by the caller + * @stable ICU 70 */ - static StringEnumeration* U_EXPORT2 createEnumeration(const char* country); + static StringEnumeration* U_EXPORT2 createEnumerationForRegion(const char* region, UErrorCode& status); /** * Returns the number of IDs in the equivalency group that @@ -282,9 +331,9 @@ class U_I18N_API TimeZone : public UObject { * system configuration. If the host system detection routines fail, * or if they specify a TimeZone or TimeZone offset which is not * recognized, then the special TimeZone "Etc/Unknown" is returned. - * + * * Note that ICU4C does not change the default time zone unless - * `TimeZone::adoptDefault(TimeZone*)` or + * `TimeZone::adoptDefault(TimeZone*)` or * `TimeZone::setDefault(const TimeZone&)` is explicitly called by a * user. This method does not update the current ICU's default, * and may return a different TimeZone from the one returned by @@ -454,22 +503,22 @@ class U_I18N_API TimeZone : public UObject { * IDs, but subclasses are expected to also compare the fields they add.) * * @param that The TimeZone object to be compared with. - * @return True if the given TimeZone is equal to this TimeZone; false + * @return true if the given TimeZone is equal to this TimeZone; false * otherwise. * @stable ICU 2.0 */ - virtual UBool operator==(const TimeZone& that) const; + virtual bool operator==(const TimeZone& that) const; /** * Returns true if the two TimeZones are NOT equal; that is, if operator==() returns * false. * * @param that The TimeZone object to be compared with. - * @return True if the given TimeZone is not equal to this TimeZone; false + * @return true if the given TimeZone is not equal to this TimeZone; false * otherwise. * @stable ICU 2.0 */ - UBool operator!=(const TimeZone& that) const {return !operator==(that);} + bool operator!=(const TimeZone& that) const {return !operator==(that);} /** * Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add @@ -698,7 +747,7 @@ class U_I18N_API TimeZone : public UObject { * @stable ICU 2.0 */ UnicodeString& getDisplayName(UBool inDaylight, EDisplayType style, const Locale& locale, UnicodeString& result) const; - + /** * Queries if this time zone uses daylight savings time. * @return true if this time zone uses daylight savings time, @@ -730,7 +779,7 @@ class U_I18N_API TimeZone : public UObject { * always returns a BasicTimeZone) provides a series of methods allowing * historic and future time zone rule iteration, so you can check if daylight saving * time is observed or not within a given period. - * + * * @stable ICU 2.0 */ virtual UBool useDaylightTime(void) const = 0; @@ -790,8 +839,8 @@ class U_I18N_API TimeZone : public UObject { * same class ID. Objects of other classes have different class IDs. * @stable ICU 2.0 */ - virtual UClassID getDynamicClassID(void) const = 0; - + virtual UClassID getDynamicClassID(void) const override = 0; + /** * Returns the amount of time to be added to local standard time * to get local wall clock time. @@ -816,7 +865,7 @@ class U_I18N_API TimeZone : public UObject { * When the time zone is not associated with a specific location, * for example - "Etc/UTC", "EST5EDT", then this method returns * "001" (UN M.49 area code for World). - * + * * @param id The system time zone ID. * @param region Output buffer for receiving the region code. * @param capacity The size of the output buffer. @@ -824,10 +873,10 @@ class U_I18N_API TimeZone : public UObject { * is not a known system time zone ID, * U_ILLEGAL_ARGUMENT_ERROR is set. * @return The length of the output region code. - * @stable ICU 4.8 - */ - static int32_t U_EXPORT2 getRegion(const UnicodeString& id, - char *region, int32_t capacity, UErrorCode& status); + * @stable ICU 4.8 + */ + static int32_t U_EXPORT2 getRegion(const UnicodeString& id, + char *region, int32_t capacity, UErrorCode& status); protected: @@ -923,7 +972,7 @@ class U_I18N_API TimeZone : public UObject { * Parses the given custom time zone identifier * @param id id A string of the form GMT[+-]hh:mm, GMT[+-]hhmm, or * GMT[+-]hh. - * @param sign Receves parsed sign, 1 for positive, -1 for negative. + * @param sign Receives parsed sign, 1 for positive, -1 for negative. * @param hour Receives parsed hour field * @param minute Receives parsed minute field * @param second Receives parsed second field @@ -951,7 +1000,7 @@ class U_I18N_API TimeZone : public UObject { * @param min offset minutes * @param sec offset seconds * @param negative sign of the offset, true for negative offset. - * @param id Receves the format result (normalized custom ID) + * @param id Receives the format result (normalized custom ID) * @return The reference to id */ static UnicodeString& formatCustomID(int32_t hour, int32_t min, int32_t sec, diff --git a/deps/icu-small/source/i18n/unicode/tmunit.h b/deps/icu-small/source/i18n/unicode/tmunit.h index 2e949ddfbd560d..24abb49f198274 100644 --- a/deps/icu-small/source/i18n/unicode/tmunit.h +++ b/deps/icu-small/source/i18n/unicode/tmunit.h @@ -73,7 +73,7 @@ class U_I18N_API TimeUnit: public MeasureUnit { * Override clone. * @stable ICU 4.2 */ - virtual TimeUnit* clone() const; + virtual TimeUnit* clone() const override; /** * Copy operator. @@ -95,7 +95,7 @@ class U_I18N_API TimeUnit: public MeasureUnit { * different class IDs. * @stable ICU 4.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * Returns the class ID for this class. This is used to compare to diff --git a/deps/icu-small/source/i18n/unicode/tmutamt.h b/deps/icu-small/source/i18n/unicode/tmutamt.h index bb9144e2d072dc..88e892fb0c26c2 100644 --- a/deps/icu-small/source/i18n/unicode/tmutamt.h +++ b/deps/icu-small/source/i18n/unicode/tmutamt.h @@ -5,7 +5,7 @@ * Copyright (C) 2009-2010, Google, International Business Machines Corporation and * * others. All Rights Reserved. * ******************************************************************************* - */ + */ #ifndef __TMUTAMT_H__ #define __TMUTAMT_H__ @@ -38,27 +38,27 @@ class U_I18N_API TimeUnitAmount: public Measure { public: /** * Construct TimeUnitAmount object with the given number and the - * given time unit. + * given time unit. * @param number a numeric object; number.isNumeric() must be true * @param timeUnitField the time unit field of a time unit - * @param status the input-output error code. + * @param status the input-output error code. * If the number is not numeric or the timeUnitField * is not valid, * then this will be set to a failing value: * U_ILLEGAL_ARGUMENT_ERROR. * @stable ICU 4.2 */ - TimeUnitAmount(const Formattable& number, + TimeUnitAmount(const Formattable& number, TimeUnit::UTimeUnitFields timeUnitField, UErrorCode& status); /** * Construct TimeUnitAmount object with the given numeric amount and the - * given time unit. + * given time unit. * @param amount a numeric amount. * @param timeUnitField the time unit field on which a time unit amount * object will be created. - * @param status the input-output error code. + * @param status the input-output error code. * If the timeUnitField is not valid, * then this will be set to a failing value: * U_ILLEGAL_ARGUMENT_ERROR. @@ -69,7 +69,7 @@ class U_I18N_API TimeUnitAmount: public Measure { /** - * Copy constructor + * Copy constructor * @stable ICU 4.2 */ TimeUnitAmount(const TimeUnitAmount& other); @@ -83,36 +83,36 @@ class U_I18N_API TimeUnitAmount: public Measure { /** - * Clone. + * Clone. * @return a polymorphic clone of this object. The result will have the same class as returned by getDynamicClassID(). * @stable ICU 4.2 */ - virtual TimeUnitAmount* clone() const; - + virtual TimeUnitAmount* clone() const override; + /** * Destructor * @stable ICU 4.2 */ virtual ~TimeUnitAmount(); - - /** - * Equality operator. + + /** + * Equality operator. * @param other the object to compare to. * @return true if this object is equal to the given object. * @stable ICU 4.2 */ - virtual UBool operator==(const UObject& other) const; + virtual bool operator==(const UObject& other) const; - /** - * Not-equality operator. + /** + * Not-equality operator. * @param other the object to compare to. * @return true if this object is not equal to the given object. * @stable ICU 4.2 */ - UBool operator!=(const UObject& other) const; + bool operator!=(const UObject& other) const; /** @@ -140,7 +140,7 @@ class U_I18N_API TimeUnitAmount: public Measure { * other classes have different class IDs. * @stable ICU 4.2 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; /** @@ -160,7 +160,7 @@ class U_I18N_API TimeUnitAmount: public Measure { -inline UBool +inline bool TimeUnitAmount::operator!=(const UObject& other) const { return !operator==(other); } diff --git a/deps/icu-small/source/i18n/unicode/tmutfmt.h b/deps/icu-small/source/i18n/unicode/tmutfmt.h index ad871f7c09fd4f..02e0563a010e63 100644 --- a/deps/icu-small/source/i18n/unicode/tmutfmt.h +++ b/deps/icu-small/source/i18n/unicode/tmutfmt.h @@ -126,7 +126,7 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { * @return A copy of the object. * @deprecated ICU 53 */ - virtual TimeUnitFormat* clone() const; + virtual TimeUnitFormat* clone() const override; /** * Assignment operator @@ -134,15 +134,6 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { */ TimeUnitFormat& operator=(const TimeUnitFormat& other); - /** - * Return true if the given Format objects are not semantically equal. - * Objects of different subclasses are considered unequal. - * @param other the object to be compared with. - * @return true if the given Format objects are not semantically equal. - * @deprecated ICU 53 - */ - UBool operator!=(const Format& other) const; - /** * Set the locale used for formatting or parsing. * @param locale the locale to be set @@ -167,7 +158,7 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { */ virtual void parseObject(const UnicodeString& source, Formattable& result, - ParsePosition& pos) const; + ParsePosition& pos) const override; /** * Return the class ID for this class. This is useful only for comparing to @@ -193,7 +184,7 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { * other classes have different class IDs. * @deprecated ICU 53 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; private: Hashtable* fTimeUnitToCountToPatterns[TimeUnit::UTIMEUNIT_FIELD_COUNT]; @@ -236,11 +227,6 @@ class U_I18N_API TimeUnitFormat: public MeasureFormat { friend struct TimeUnitFormatReadSink; }; -inline UBool -TimeUnitFormat::operator!=(const Format& other) const { - return !operator==(other); -} - U_NAMESPACE_END #endif /* U_HIDE_DEPRECATED_API */ diff --git a/deps/icu-small/source/i18n/unicode/translit.h b/deps/icu-small/source/i18n/unicode/translit.h index 0556b740fab792..56eb6448ca4589 100644 --- a/deps/icu-small/source/i18n/unicode/translit.h +++ b/deps/icu-small/source/i18n/unicode/translit.h @@ -18,7 +18,7 @@ /** * \file - * \brief C++ API: Tranforms text from one format to another. + * \brief C++ API: Transforms text from one format to another. */ #if !UCONFIG_NO_TRANSLITERATION @@ -157,7 +157,7 @@ class TransliteratorIDParser; * transliterator B decrements character values, then A * is an inverse of B and vice versa. If we compose A * with B in a compound transliterator, the result is the - * indentity transliterator, that is, a transliterator that does not + * identity transliterator, that is, a transliterator that does not * change its input text. * * The Transliterator method getInverse() @@ -219,7 +219,7 @@ class TransliteratorIDParser; * acts a template; future calls to {@link #createInstance } with the ID * of the registered object return clones of that object. Thus any * object passed to registerInstance() must implement - * clone() propertly. To register a transliterator subclass + * clone() properly. To register a transliterator subclass * without instantiating it (until it is needed), users may call * {@link #registerFactory }. In this case, the objects are * instantiated by invoking the zero-argument public constructor of @@ -317,7 +317,7 @@ class TransliteratorIDParser; * replacement. The cursor is the point in the text at which the * next replacement, if any, will be applied. The cursor is usually * placed within the replacement text; however, it can actually be - * placed into the precending or following context by using the + * placed into the preceding or following context by using the * special character '@'. Examples: * *

    @@ -1061,7 +1061,7 @@ class U_I18N_API Transliterator : public UObject {
          *
          * @param ID a valid ID, as enumerated by getAvailableIDs()
          * @param dir        either FORWARD or REVERSE.
    -     * @param parseError Struct to recieve information on position
    +     * @param parseError Struct to receive information on position
          *                   of error if an error is encountered
          * @param status     Output param to filled in with a success or an error.
          * @return A Transliterator object with the given ID
    @@ -1380,7 +1380,7 @@ class U_I18N_API Transliterator : public UObject {
          * Return a registered source specifier.
          * @param index which specifier to return, from 0 to n-1, where
          * n = countAvailableSources()
    -     * @param result fill-in paramter to receive the source specifier.
    +     * @param result fill-in parameter to receive the source specifier.
          * If index is out of range, result will be empty.
          * @return reference to result
          * @stable ICU 2.0
    @@ -1403,7 +1403,7 @@ class U_I18N_API Transliterator : public UObject {
          * @param index which specifier to return, from 0 to n-1, where
          * n = countAvailableTargets(source)
          * @param source the source specifier
    -     * @param result fill-in paramter to receive the target specifier.
    +     * @param result fill-in parameter to receive the target specifier.
          * If source is invalid or if index is out of range, result will
          * be empty.
          * @return reference to result
    @@ -1430,7 +1430,7 @@ class U_I18N_API Transliterator : public UObject {
          * n = countAvailableVariants(source, target)
          * @param source the source specifier
          * @param target the target specifier
    -     * @param result fill-in paramter to receive the variant
    +     * @param result fill-in parameter to receive the variant
          * specifier.  If source is invalid or if target is invalid or if
          * index is out of range, result will be empty.
          * @return reference to result
    @@ -1527,7 +1527,7 @@ class U_I18N_API Transliterator : public UObject {
          * different class IDs.
          * @stable ICU 2.0
          */
    -    virtual UClassID getDynamicClassID(void) const = 0;
    +    virtual UClassID getDynamicClassID(void) const override = 0;
     
     private:
         static UBool initializeRegistry(UErrorCode &status);
    diff --git a/deps/icu-small/source/i18n/unicode/tzfmt.h b/deps/icu-small/source/i18n/unicode/tzfmt.h
    index 4411865984b54e..6db8477026a931 100644
    --- a/deps/icu-small/source/i18n/unicode/tzfmt.h
    +++ b/deps/icu-small/source/i18n/unicode/tzfmt.h
    @@ -299,7 +299,7 @@ class U_I18N_API TimeZoneFormat : public Format {
          *                Objects of different subclasses are considered unequal.
          * @stable ICU 50
          */
    -    virtual UBool operator==(const Format& other) const;
    +    virtual bool operator==(const Format& other) const override;
     
         /**
          * Clone this object polymorphically. The caller is responsible
    @@ -307,7 +307,7 @@ class U_I18N_API TimeZoneFormat : public Format {
          * @return A copy of the object
          * @stable ICU 50
          */
    -    virtual TimeZoneFormat* clone() const;
    +    virtual TimeZoneFormat* clone() const override;
     
         /**
          * Creates an instance of TimeZoneFormat for the given locale.
    @@ -327,7 +327,7 @@ class U_I18N_API TimeZoneFormat : public Format {
         const TimeZoneNames* getTimeZoneNames() const;
     
         /**
    -     * Sets the time zone display name data to this format instnace.
    +     * Sets the time zone display name data to this format instance.
          * The caller should not delete the TimeZoenNames object after it is adopted
          * by this call.
          * @param tznames TimeZoneNames object to be adopted.
    @@ -336,7 +336,7 @@ class U_I18N_API TimeZoneFormat : public Format {
         void adoptTimeZoneNames(TimeZoneNames *tznames);
     
         /**
    -     * Sets the time zone display name data to this format instnace.
    +     * Sets the time zone display name data to this format instance.
          * @param tznames TimeZoneNames object to be set.
          * @stable ICU 50
          */
    @@ -355,7 +355,7 @@ class U_I18N_API TimeZoneFormat : public Format {
          * Sets the localized GMT format pattern. The pattern must contain
          * a single argument {0}, for example "GMT {0}".
          * @param pattern The localized GMT format pattern to be used by this object.
    -     * @param status Recieves the status.
    +     * @param status Receives the status.
          * @see #getGMTPattern
          * @stable ICU 50
          */
    @@ -437,7 +437,7 @@ class U_I18N_API TimeZoneFormat : public Format {
          * Sets the default parse options.
          * 

    Note: By default, an instance of TimeZoneFormat * created by {@link #createInstance} has no parse options set (UTZFMT_PARSE_OPTION_NONE). - * To specify multipe options, use bitwise flags of UTimeZoneFormatParseOption. + * To specify multiple options, use bitwise flags of UTimeZoneFormatParseOption. * @see #UTimeZoneFormatParseOption * @stable ICU 50 */ @@ -590,7 +590,7 @@ class U_I18N_API TimeZoneFormat : public Format { * @param text The text contains a time zone string at the position. * @param style The format style * @param pos The position. - * @param parseOptions The parse options repesented by bitwise flags of UTimeZoneFormatParseOption. + * @param parseOptions The parse options represented by bitwise flags of UTimeZoneFormatParseOption. * @param timeType The output argument for receiving the time type (standard/daylight/unknown), * or NULL if the information is not necessary. * @return A TimeZone, or null if the input could not be parsed. @@ -636,7 +636,7 @@ class U_I18N_API TimeZoneFormat : public Format { * @stable ICU 50 */ virtual UnicodeString& format(const Formattable& obj, UnicodeString& appendTo, - FieldPosition& pos, UErrorCode& status) const; + FieldPosition& pos, UErrorCode& status) const override; /** * Parse a string to produce an object. This methods handles parsing of @@ -650,7 +650,7 @@ class U_I18N_API TimeZoneFormat : public Format { * delete it when done. * @stable ICU 50 */ - virtual void parseObject(const UnicodeString& source, Formattable& result, ParsePosition& parse_pos) const; + virtual void parseObject(const UnicodeString& source, Formattable& result, ParsePosition& parse_pos) const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -662,7 +662,7 @@ class U_I18N_API TimeZoneFormat : public Format { * ICU "poor man's RTTI", returns a UClassID for the actual class. * @stable ICU 50 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; protected: /** @@ -1058,7 +1058,7 @@ class U_I18N_API TimeZoneFormat : public Format { * Returns the time zone ID of a match at the specified index within * the MatchInfoCollection. * @param matches the collection of matches - * @param idx the index withing matches + * @param idx the index within matches * @param tzID receives the resolved time zone ID * @return a reference to tzID. */ diff --git a/deps/icu-small/source/i18n/unicode/tznames.h b/deps/icu-small/source/i18n/unicode/tznames.h index 19858cd7e2cf6d..b32e9562d5e663 100644 --- a/deps/icu-small/source/i18n/unicode/tznames.h +++ b/deps/icu-small/source/i18n/unicode/tznames.h @@ -142,7 +142,7 @@ class U_I18N_API TimeZoneNames : public UObject { * @return Return true if the given Format objects are semantically equal. * @stable ICU 50 */ - virtual UBool operator==(const TimeZoneNames& other) const = 0; + virtual bool operator==(const TimeZoneNames& other) const = 0; /** * Return true if the given TimeZoneNames objects are not semantically @@ -151,7 +151,7 @@ class U_I18N_API TimeZoneNames : public UObject { * @return Return true if the given Format objects are not semantically equal. * @stable ICU 50 */ - UBool operator!=(const TimeZoneNames& other) const { return !operator==(other); } + bool operator!=(const TimeZoneNames& other) const { return !operator==(other); } /** * Clone this object polymorphically. The caller is responsible diff --git a/deps/icu-small/source/i18n/unicode/tzrule.h b/deps/icu-small/source/i18n/unicode/tzrule.h index 2a983ef58ac448..ab0b97b6fd26fe 100644 --- a/deps/icu-small/source/i18n/unicode/tzrule.h +++ b/deps/icu-small/source/i18n/unicode/tzrule.h @@ -10,7 +10,7 @@ #define TZRULE_H /** - * \file + * \file * \brief C++ API: Time zone rule classes */ @@ -30,7 +30,7 @@ U_NAMESPACE_BEGIN * TimeZoneRule is a class representing a rule for time zone. * TimeZoneRule has a set of time zone attributes, such as zone name, * raw offset (UTC offset for standard time) and daylight saving time offset. - * + * * @stable ICU 3.8 */ class U_I18N_API TimeZoneRule : public UObject { @@ -56,7 +56,7 @@ class U_I18N_API TimeZoneRule : public UObject { * @return true if the given TimeZoneRule objects are semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZoneRule& that) const; + virtual bool operator==(const TimeZoneRule& that) const; /** * Return true if the given TimeZoneRule objects are semantically unequal. Objects @@ -65,7 +65,7 @@ class U_I18N_API TimeZoneRule : public UObject { * @return true if the given TimeZoneRule objects are semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZoneRule& that) const; + virtual bool operator!=(const TimeZoneRule& that) const; /** * Fills in "name" with the name of this time zone. @@ -231,7 +231,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @return A copy of the object. * @stable ICU 3.8 */ - virtual InitialTimeZoneRule* clone() const; + virtual InitialTimeZoneRule* clone() const override; /** * Assignment operator. @@ -247,7 +247,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZoneRule& that) const; + virtual bool operator==(const TimeZoneRule& that) const override; /** * Return true if the given TimeZoneRule objects are semantically unequal. Objects @@ -256,7 +256,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZoneRule& that) const; + virtual bool operator!=(const TimeZoneRule& that) const override; /** * Gets the time when this rule takes effect in the given year. @@ -280,7 +280,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @return true if the other TimeZoneRule is equivalent to this one. * @stable ICU 3.8 */ - virtual UBool isEquivalentTo(const TimeZoneRule& that) const; + virtual UBool isEquivalentTo(const TimeZoneRule& that) const override; /** * Gets the very first time when this rule takes effect. @@ -293,7 +293,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the final time when this rule takes effect. @@ -306,7 +306,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the first time when this rule takes effect after the specified time. @@ -323,7 +323,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; /** * Gets the most recent time when this rule takes effect before the specified time. @@ -340,7 +340,7 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; public: /** @@ -367,14 +367,14 @@ class U_I18N_API InitialTimeZoneRule : public TimeZoneRule { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; /** * AnnualTimeZoneRule is a class used for representing a time zone * rule which takes effect annually. The calendar system used for the rule is * is based on Gregorian calendar - * + * * @stable ICU 3.8 */ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { @@ -442,7 +442,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @return A copy of the object. * @stable ICU 3.8 */ - virtual AnnualTimeZoneRule* clone() const; + virtual AnnualTimeZoneRule* clone() const override; /** * Assignment operator. @@ -458,7 +458,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZoneRule& that) const; + virtual bool operator==(const TimeZoneRule& that) const override; /** * Return true if the given TimeZoneRule objects are semantically unequal. Objects @@ -467,7 +467,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZoneRule& that) const; + virtual bool operator!=(const TimeZoneRule& that) const override; /** * Gets the start date/time rule used by this rule. @@ -515,7 +515,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @return true if the other TimeZoneRule is equivalent to this one. * @stable ICU 3.8 */ - virtual UBool isEquivalentTo(const TimeZoneRule& that) const; + virtual UBool isEquivalentTo(const TimeZoneRule& that) const override; /** * Gets the very first time when this rule takes effect. @@ -528,7 +528,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the final time when this rule takes effect. @@ -541,7 +541,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the first time when this rule takes effect after the specified time. @@ -558,7 +558,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; /** * Gets the most recent time when this rule takes effect before the specified time. @@ -575,7 +575,7 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; private: @@ -608,13 +608,13 @@ class U_I18N_API AnnualTimeZoneRule : public TimeZoneRule { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; /** * TimeArrayTimeZoneRule represents a time zone rule whose start times are * defined by an array of milliseconds since the standard base time. - * + * * @stable ICU 3.8 */ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { @@ -658,7 +658,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @return A copy of the object. * @stable ICU 3.8 */ - virtual TimeArrayTimeZoneRule* clone() const; + virtual TimeArrayTimeZoneRule* clone() const override; /** * Assignment operator. @@ -674,7 +674,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZoneRule& that) const; + virtual bool operator==(const TimeZoneRule& that) const override; /** * Return true if the given TimeZoneRule objects are semantically unequal. Objects @@ -683,13 +683,13 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @return true if the given TimeZoneRule objects are semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZoneRule& that) const; + virtual bool operator!=(const TimeZoneRule& that) const override; /** * Gets the time type of the start times used by this rule. The return value * is either DateTimeRule::WALL_TIME or STANDARD_TIME * or UTC_TIME. - * + * * @return The time type used of the start times used by this rule. * @stable ICU 3.8 */ @@ -721,7 +721,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @return true if the other TimeZoneRule is equivalent to this one. * @stable ICU 3.8 */ - virtual UBool isEquivalentTo(const TimeZoneRule& that) const; + virtual UBool isEquivalentTo(const TimeZoneRule& that) const override; /** * Gets the very first time when this rule takes effect. @@ -734,7 +734,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFirstStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the final time when this rule takes effect. @@ -747,7 +747,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * "result" is unchanged. * @stable ICU 3.8 */ - virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const; + virtual UBool getFinalStart(int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) const override; /** * Gets the first time when this rule takes effect after the specified time. @@ -764,7 +764,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getNextStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; /** * Gets the most recent time when this rule takes effect before the specified time. @@ -781,7 +781,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * @stable ICU 3.8 */ virtual UBool getPreviousStart(UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, - UBool inclusive, UDate& result) const; + UBool inclusive, UDate& result) const override; private: @@ -819,7 +819,7 @@ class U_I18N_API TimeArrayTimeZoneRule : public TimeZoneRule { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; diff --git a/deps/icu-small/source/i18n/unicode/tztrans.h b/deps/icu-small/source/i18n/unicode/tztrans.h index e87fea7c3cee7f..5adbeb35e43a66 100644 --- a/deps/icu-small/source/i18n/unicode/tztrans.h +++ b/deps/icu-small/source/i18n/unicode/tztrans.h @@ -10,7 +10,7 @@ #define TZTRANS_H /** - * \file + * \file * \brief C++ API: Time zone transition */ @@ -37,7 +37,7 @@ class U_I18N_API TimeZoneTransition : public UObject { /** * Constructs a TimeZoneTransition with the time and the rules before/after * the transition. - * + * * @param time The time of transition in milliseconds since the base time. * @param from The time zone rule used before the transition. * @param to The time zone rule used after the transition. @@ -86,7 +86,7 @@ class U_I18N_API TimeZoneTransition : public UObject { * @return true if the given TimeZoneTransition objects are semantically equal. * @stable ICU 3.8 */ - UBool operator==(const TimeZoneTransition& that) const; + bool operator==(const TimeZoneTransition& that) const; /** * Return true if the given TimeZoneTransition objects are semantically unequal. Objects @@ -95,7 +95,7 @@ class U_I18N_API TimeZoneTransition : public UObject { * @return true if the given TimeZoneTransition objects are semantically unequal. * @stable ICU 3.8 */ - UBool operator!=(const TimeZoneTransition& that) const; + bool operator!=(const TimeZoneTransition& that) const; /** * Returns the time of transition in milliseconds. @@ -187,7 +187,7 @@ class U_I18N_API TimeZoneTransition : public UObject { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/unicode/ucal.h b/deps/icu-small/source/i18n/unicode/ucal.h index 04c4a25de99951..94abae83919a85 100644 --- a/deps/icu-small/source/i18n/unicode/ucal.h +++ b/deps/icu-small/source/i18n/unicode/ucal.h @@ -171,7 +171,7 @@ */ typedef void* UCalendar; -/** Possible types of UCalendars +/** Possible types of UCalendars * @stable ICU 2.0 */ enum UCalendarType { @@ -196,25 +196,25 @@ enum UCalendarType { /** @stable ICU 2.0 */ typedef enum UCalendarType UCalendarType; -/** Possible fields in a UCalendar +/** Possible fields in a UCalendar * @stable ICU 2.0 */ enum UCalendarDateFields { - /** - * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar. + /** + * Field number indicating the era, e.g., AD or BC in the Gregorian (Julian) calendar. * This is a calendar-specific value. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_ERA, /** * Field number indicating the year. This is a calendar-specific value. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_YEAR, /** - * Field number indicating the month. This is a calendar-specific value. + * Field number indicating the month. This is a calendar-specific value. * The first month of the year is * JANUARY; the last depends on the number of months in a year. * @see #UCAL_JANUARY @@ -230,7 +230,7 @@ enum UCalendarDateFields { * @see #UCAL_NOVEMBER * @see #UCAL_DECEMBER * @see #UCAL_UNDECIMBER - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_MONTH, @@ -243,7 +243,7 @@ enum UCalendarDateFields { * the year. * @see ucal_getAttribute * @see ucal_setAttribute - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_WEEK_OF_YEAR, @@ -258,7 +258,7 @@ enum UCalendarDateFields { * @see ucal_setAttribute * @see #UCAL_FIRST_DAY_OF_WEEK * @see #UCAL_MINIMAL_DAYS_IN_FIRST_WEEK - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_WEEK_OF_MONTH, @@ -267,14 +267,14 @@ enum UCalendarDateFields { * day of the month. This is a synonym for DAY_OF_MONTH. * The first day of the month has value 1. * @see #UCAL_DAY_OF_MONTH - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_DATE, /** * Field number indicating the day * number within the current year. The first day of the year has value 1. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_DAY_OF_YEAR, @@ -290,7 +290,7 @@ enum UCalendarDateFields { * @see #UCAL_THURSDAY * @see #UCAL_FRIDAY * @see #UCAL_SATURDAY - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_DAY_OF_WEEK, @@ -315,7 +315,7 @@ enum UCalendarDateFields { * DAY_OF_WEEK_IN_MONTH 5 and the end of 4. * @see #UCAL_DAY_OF_WEEK * @see #UCAL_WEEK_OF_MONTH - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_DAY_OF_WEEK_IN_MONTH, @@ -326,7 +326,7 @@ enum UCalendarDateFields { * @see #UCAL_AM * @see #UCAL_PM * @see #UCAL_HOUR - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_AM_PM, @@ -337,7 +337,7 @@ enum UCalendarDateFields { * E.g., at 10:04:15.250 PM the HOUR is 10. * @see #UCAL_AM_PM * @see #UCAL_HOUR_OF_DAY - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_HOUR, @@ -346,7 +346,7 @@ enum UCalendarDateFields { * hour of the day. HOUR_OF_DAY is used for the 24-hour clock. * E.g., at 10:04:15.250 PM the HOUR_OF_DAY is 22. * @see #UCAL_HOUR - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_HOUR_OF_DAY, @@ -354,7 +354,7 @@ enum UCalendarDateFields { * Field number indicating the * minute within the hour. * E.g., at 10:04:15.250 PM the UCAL_MINUTE is 4. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_MINUTE, @@ -362,7 +362,7 @@ enum UCalendarDateFields { * Field number indicating the * second within the minute. * E.g., at 10:04:15.250 PM the UCAL_SECOND is 15. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_SECOND, @@ -370,26 +370,26 @@ enum UCalendarDateFields { * Field number indicating the * millisecond within the second. * E.g., at 10:04:15.250 PM the UCAL_MILLISECOND is 250. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_MILLISECOND, /** * Field number indicating the * raw offset from GMT in milliseconds. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_ZONE_OFFSET, /** * Field number indicating the * daylight savings offset in milliseconds. - * @stable ICU 2.6 + * @stable ICU 2.6 */ UCAL_DST_OFFSET, - + /** - * Field number + * Field number * indicating the extended year corresponding to the * UCAL_WEEK_OF_YEAR field. This may be one greater or less * than the value of UCAL_EXTENDED_YEAR. @@ -398,7 +398,7 @@ enum UCalendarDateFields { UCAL_YEAR_WOY, /** - * Field number + * Field number * indicating the localized day of week. This will be a value from 1 * to 7 inclusive, with 1 being the localized first day of the week. * @stable ICU 2.6 @@ -406,15 +406,15 @@ enum UCalendarDateFields { UCAL_DOW_LOCAL, /** - * Year of this calendar system, encompassing all supra-year fields. For example, + * Year of this calendar system, encompassing all supra-year fields. For example, * in Gregorian/Julian calendars, positive Extended Year values indicate years AD, - * 1 BC = 0 extended, 2 BC = -1 extended, and so on. - * @stable ICU 2.8 + * 1 BC = 0 extended, 2 BC = -1 extended, and so on. + * @stable ICU 2.8 */ UCAL_EXTENDED_YEAR, /** - * Field number + * Field number * indicating the modified Julian day number. This is different from * the conventional Julian day number in two regards. First, it * demarcates days at local zone midnight, rather than noon GMT. @@ -423,13 +423,13 @@ enum UCalendarDateFields { * the date-related fields. * @stable ICU 2.8 */ - UCAL_JULIAN_DAY, + UCAL_JULIAN_DAY, /** - * Ranges from 0 to 23:59:59.999 (regardless of DST). This field behaves exactly - * like a composite of all time-related fields, not including the zone fields. As such, + * Ranges from 0 to 23:59:59.999 (regardless of DST). This field behaves exactly + * like a composite of all time-related fields, not including the zone fields. As such, * it also reflects discontinuities of those fields on DST transition days. On a day - * of DST onset, it will jump forward. On a day of DST cessation, it will jump + * of DST onset, it will jump forward. On a day of DST cessation, it will jump * backward. This reflects the fact that it must be combined with the DST_OFFSET field * to obtain a unique local time value. * @stable ICU 2.8 @@ -470,7 +470,7 @@ typedef enum UCalendarDateFields UCalendarDateFields; * who create locale resources for the field of first-day-of-week should be aware of * this. For instance, in US locale, first-day-of-week is set to 1, i.e., UCAL_SUNDAY. */ -/** Possible days of the week in a UCalendar +/** Possible days of the week in a UCalendar * @stable ICU 2.0 */ enum UCalendarDaysOfWeek { @@ -531,7 +531,7 @@ enum UCalendarMonths { /** @stable ICU 2.0 */ typedef enum UCalendarMonths UCalendarMonths; -/** Possible AM/PM values in a UCalendar +/** Possible AM/PM values in a UCalendar * @stable ICU 2.0 */ enum UCalendarAMPMs { @@ -571,13 +571,13 @@ enum USystemTimeZoneType { /** @stable ICU 4.8 */ typedef enum USystemTimeZoneType USystemTimeZoneType; -/** +/** * Create an enumeration over system time zone IDs with the given - * filter conditions. + * filter conditions. * @param zoneType The system time zone type. * @param region The ISO 3166 two-letter country code or UN M.49 * three-digit area code. When NULL, no filtering - * done by region. + * done by region. * @param rawOffset An offset from GMT in milliseconds, ignoring the * effect of daylight savings time, if any. When NULL, * no filtering done by zone offset. @@ -586,7 +586,7 @@ typedef enum USystemTimeZoneType USystemTimeZoneType; * using enum_close(), or NULL upon failure. In case of failure, * *ec will indicate the error. * @stable ICU 4.8 - */ + */ U_CAPI UEnumeration* U_EXPORT2 ucal_openTimeZoneIDEnumeration(USystemTimeZoneType zoneType, const char* region, const int32_t* rawOffset, UErrorCode* ec); @@ -630,7 +630,7 @@ ucal_openCountryTimeZones(const char* country, UErrorCode* ec); * routines fail, or if they specify a TimeZone or TimeZone offset * which is not recognized, then the special TimeZone "Etc/Unknown" * is returned. - * + * * The default may be changed with `ucal_setDefaultTimeZone()` or with * the C++ TimeZone API, `TimeZone::adoptDefault(TimeZone*)`. * @@ -642,9 +642,9 @@ ucal_openCountryTimeZones(const char* country, UErrorCode* ec); * * @return The result string length, not including the terminating * null - * + * * @see #UCAL_UNKNOWN_ZONE_ID - * + * * @stable ICU 2.6 */ U_CAPI int32_t U_EXPORT2 @@ -668,27 +668,27 @@ ucal_setDefaultTimeZone(const UChar* zoneID, UErrorCode* ec); * system. If the host system detection routines fail, or if they specify * a TimeZone or TimeZone offset which is not recognized, then the special * TimeZone "Etc/Unknown" is returned. - * + * * Note that host time zone and the ICU default time zone can be different. - * + * * The ICU default time zone does not change once initialized unless modified * by calling `ucal_setDefaultTimeZone()` or with the C++ TimeZone API, * `TimeZone::adoptDefault(TimeZone*)`. - * + * * If the host operating system configuration has changed since ICU has * initialized then the returned value can be different than the ICU default * time zone, even if the default has not changed. * *

    This function is not thread safe.

    - * + * * @param result A buffer to receive the result, or NULL * @param resultCapacity The capacity of the result buffer * @param ec input/output error code * @return The result string length, not including the terminating * null - * + * * @see #UCAL_UNKNOWN_ZONE_ID - * + * * @stable ICU 65 */ U_CAPI int32_t U_EXPORT2 @@ -719,7 +719,7 @@ ucal_getDSTSavings(const UChar* zoneID, UErrorCode* ec); * @return The current date and time. * @stable ICU 2.0 */ -U_CAPI UDate U_EXPORT2 +U_CAPI UDate U_EXPORT2 ucal_getNow(void); /** @@ -731,7 +731,7 @@ ucal_getNow(void); * the UCalendar returned by the function is initialized with GMT zone with TimeZone ID * UCAL_UNKNOWN_ZONE_ID ("Etc/Unknown") without any errors/warnings. If you want * to check if a TimeZone ID is valid prior to this function, use ucal_getCanonicalTimeZoneID. - * + * * @param zoneID The desired TimeZone ID. If 0, use the default time zone. * @param len The length of zoneID, or -1 if null-terminated. * @param locale The desired locale @@ -745,7 +745,7 @@ ucal_getNow(void); * @see #UCAL_UNKNOWN_ZONE_ID * @stable ICU 2.0 */ -U_CAPI UCalendar* U_EXPORT2 +U_CAPI UCalendar* U_EXPORT2 ucal_open(const UChar* zoneID, int32_t len, const char* locale, @@ -758,7 +758,7 @@ ucal_open(const UChar* zoneID, * @param cal The UCalendar to close. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_close(UCalendar *cal); #if U_SHOW_CPLUSPLUS_API @@ -788,7 +788,7 @@ U_NAMESPACE_END * @return A pointer to a UCalendar identical to cal. * @stable ICU 4.0 */ -U_CAPI UCalendar* U_EXPORT2 +U_CAPI UCalendar* U_EXPORT2 ucal_clone(const UCalendar* cal, UErrorCode* status); @@ -801,30 +801,30 @@ ucal_clone(const UCalendar* cal, * @param status A pointer to an UErrorCode to receive any errors. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_setTimeZone(UCalendar* cal, const UChar* zoneID, int32_t len, UErrorCode* status); -/** - * Get the ID of the UCalendar's time zone. - * - * @param cal The UCalendar to query. - * @param result Receives the UCalendar's time zone ID. - * @param resultLength The maximum size of result. - * @param status Receives the status. - * @return The total buffer size needed; if greater than resultLength, the output was truncated. - * @stable ICU 51 - */ -U_CAPI int32_t U_EXPORT2 +/** + * Get the ID of the UCalendar's time zone. + * + * @param cal The UCalendar to query. + * @param result Receives the UCalendar's time zone ID. + * @param resultLength The maximum size of result. + * @param status Receives the status. + * @return The total buffer size needed; if greater than resultLength, the output was truncated. + * @stable ICU 51 + */ +U_CAPI int32_t U_EXPORT2 ucal_getTimeZoneID(const UCalendar *cal, UChar *result, int32_t resultLength, UErrorCode *status); /** - * Possible formats for a UCalendar's display name + * Possible formats for a UCalendar's display name * @stable ICU 2.0 */ enum UCalendarDisplayNameType { @@ -854,7 +854,7 @@ typedef enum UCalendarDisplayNameType UCalendarDisplayNameType; * @return The total buffer size needed; if greater than resultLength, the output was truncated. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_getTimeZoneDisplayName(const UCalendar* cal, UCalendarDisplayNameType type, const char* locale, @@ -870,7 +870,7 @@ ucal_getTimeZoneDisplayName(const UCalendar* cal, * @return true if cal is currently in daylight savings time, false otherwise * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucal_inDaylightTime(const UCalendar* cal, UErrorCode* status ); @@ -921,7 +921,7 @@ U_CAPI UDate U_EXPORT2 ucal_getGregorianChange(const UCalendar *cal, UErrorCode *pErrorCode); /** - * Types of UCalendar attributes + * Types of UCalendar attributes * @stable ICU 2.0 */ enum UCalendarAttribute { @@ -998,7 +998,7 @@ typedef enum UCalendarWallTimeOption UCalendarWallTimeOption; * @see ucal_setAttribute * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_getAttribute(const UCalendar* cal, UCalendarAttribute attr); @@ -1013,7 +1013,7 @@ ucal_getAttribute(const UCalendar* cal, * @see ucal_getAttribute * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_setAttribute(UCalendar* cal, UCalendarAttribute attr, int32_t newValue); @@ -1027,7 +1027,7 @@ ucal_setAttribute(UCalendar* cal, * @see ucal_countAvailable * @stable ICU 2.0 */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 ucal_getAvailable(int32_t localeIndex); /** @@ -1038,7 +1038,7 @@ ucal_getAvailable(int32_t localeIndex); * @see ucal_getAvailable * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_countAvailable(void); /** @@ -1052,7 +1052,7 @@ ucal_countAvailable(void); * @see ucal_setDateTime * @stable ICU 2.0 */ -U_CAPI UDate U_EXPORT2 +U_CAPI UDate U_EXPORT2 ucal_getMillis(const UCalendar* cal, UErrorCode* status); @@ -1067,7 +1067,7 @@ ucal_getMillis(const UCalendar* cal, * @see ucal_setDateTime * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_setMillis(UCalendar* cal, UDate dateTime, UErrorCode* status ); @@ -1086,7 +1086,7 @@ ucal_setMillis(UCalendar* cal, * @see ucal_setDateTime * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_setDate(UCalendar* cal, int32_t year, int32_t month, @@ -1110,7 +1110,7 @@ ucal_setDate(UCalendar* cal, * @see ucal_setDate * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_setDateTime(UCalendar* cal, int32_t year, int32_t month, @@ -1129,7 +1129,7 @@ ucal_setDateTime(UCalendar* cal, * @return true if cal1 and cal2 are equivalent, false otherwise. * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucal_equivalentTo(const UCalendar* cal1, const UCalendar* cal2); @@ -1151,7 +1151,7 @@ ucal_equivalentTo(const UCalendar* cal1, * @see ucal_roll * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_add(UCalendar* cal, UCalendarDateFields field, int32_t amount, @@ -1181,7 +1181,7 @@ ucal_add(UCalendar* cal, * @see ucal_add * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_roll(UCalendar* cal, UCalendarDateFields field, int32_t amount, @@ -1203,7 +1203,7 @@ ucal_roll(UCalendar* cal, * @see ucal_clear * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_get(const UCalendar* cal, UCalendarDateFields field, UErrorCode* status ); @@ -1223,7 +1223,7 @@ ucal_get(const UCalendar* cal, * @see ucal_clear * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_set(UCalendar* cal, UCalendarDateFields field, int32_t value); @@ -1243,7 +1243,7 @@ ucal_set(UCalendar* cal, * @see ucal_clear * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucal_isSet(const UCalendar* cal, UCalendarDateFields field); @@ -1261,7 +1261,7 @@ ucal_isSet(const UCalendar* cal, * @see ucal_clear * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_clearField(UCalendar* cal, UCalendarDateFields field); @@ -1275,11 +1275,11 @@ ucal_clearField(UCalendar* cal, * @see ucal_clearField * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucal_clear(UCalendar* calendar); /** - * Possible limit values for a UCalendar + * Possible limit values for a UCalendar * @stable ICU 2.0 */ enum UCalendarLimitType { @@ -1289,7 +1289,7 @@ enum UCalendarLimitType { UCAL_MAXIMUM, /** Greatest minimum value */ UCAL_GREATEST_MINIMUM, - /** Leaest maximum value */ + /** Least maximum value */ UCAL_LEAST_MAXIMUM, /** Actual minimum value */ UCAL_ACTUAL_MINIMUM, @@ -1314,7 +1314,7 @@ typedef enum UCalendarLimitType UCalendarLimitType; * @return The requested value. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_getLimit(const UCalendar* cal, UCalendarDateFields field, UCalendarLimitType type, @@ -1322,7 +1322,7 @@ ucal_getLimit(const UCalendar* cal, /** Get the locale for this calendar object. You can choose between valid and actual locale. * @param cal The calendar object - * @param type type of the locale we're looking for (valid or actual) + * @param type type of the locale we're looking for (valid or actual) * @param status error code for the operation * @return the locale name * @stable ICU 2.8 @@ -1399,24 +1399,24 @@ ucal_getKeywordValuesForLocale(const char* key, enum UCalendarWeekdayType { /** * Designates a full weekday (no part of the day is included in the weekend). - * @stable ICU 4.4 + * @stable ICU 4.4 */ UCAL_WEEKDAY, /** * Designates a full weekend day (the entire day is included in the weekend). - * @stable ICU 4.4 + * @stable ICU 4.4 */ UCAL_WEEKEND, /** * Designates a day that starts as a weekday and transitions to the weekend. * Call ucal_getWeekendTransition() to get the time of transition. - * @stable ICU 4.4 + * @stable ICU 4.4 */ UCAL_WEEKEND_ONSET, /** * Designates a day that starts as the weekend and transitions to a weekday. * Call ucal_getWeekendTransition() to get the time of transition. - * @stable ICU 4.4 + * @stable ICU 4.4 */ UCAL_WEEKEND_CEASE }; @@ -1488,7 +1488,7 @@ ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status); * * A typical way of using this function is to call it first with the largest field of interest, then * with progressively smaller fields. - * + * * @param cal The UCalendar to compare and update. * @param target The target date to compare to the current calendar setting. * @param field The field to compare; one of UCAL_ERA, UCAL_YEAR, UCAL_MONTH, @@ -1499,7 +1499,7 @@ ucal_isWeekend(const UCalendar *cal, UDate date, UErrorCode *status); * @return The date difference for the specified field. * @stable ICU 4.8 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucal_getFieldDifference(UCalendar* cal, UDate target, UCalendarDateFields field, @@ -1553,7 +1553,7 @@ typedef enum UTimeZoneTransitionType UTimeZoneTransitionType; /**< @stable ICU 5 * otherwise. * @stable ICU 50 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucal_getTimeZoneTransitionDate(const UCalendar* cal, UTimeZoneTransitionType type, UDate* transition, UErrorCode* status); diff --git a/deps/icu-small/source/i18n/unicode/ucol.h b/deps/icu-small/source/i18n/unicode/ucol.h index 6122cc1d59cbf3..6d22eb6069ec87 100644 --- a/deps/icu-small/source/i18n/unicode/ucol.h +++ b/deps/icu-small/source/i18n/unicode/ucol.h @@ -26,7 +26,7 @@ /** * \file - * \brief C API: Collator + * \brief C API: Collator * *

    Collator C API

    * @@ -34,12 +34,12 @@ * string comparison. You use this service to build * searching and sorting routines for natural language text. *

    - * For more information about the collation service see + * For more information about the collation service see * the User Guide. *

    - * Collation service provides correct sorting orders for most locales supported in ICU. + * Collation service provides correct sorting orders for most locales supported in ICU. * If specific data for a locale is not available, the orders eventually falls back - * to the CLDR root sort order. + * to the CLDR root sort order. *

    * Sort ordering may be customized by providing your own set of rules. For more on * this subject see the @@ -55,7 +55,7 @@ * For usage in C programs. */ struct UCollator; -/** structure representing a collator object instance +/** structure representing a collator object instance * @stable ICU 2.0 */ typedef struct UCollator UCollator; @@ -70,7 +70,7 @@ typedef struct UCollator UCollator; * target string in the ucol_strcoll() method. * @see ucol_strcoll() *

    - * Possible values for a comparison result + * Possible values for a comparison result * @stable ICU 2.0 */ typedef enum { @@ -85,8 +85,8 @@ typedef enum { /** Enum containing attribute values for controlling collation behavior. * Here are all the allowable values. Not every attribute can take every value. The only - * universal value is UCOL_DEFAULT, which resets the attribute value to the predefined - * value for that locale + * universal value is UCOL_DEFAULT, which resets the attribute value to the predefined + * value for that locale * @stable ICU 2.0 */ typedef enum { @@ -108,21 +108,21 @@ typedef enum { UCOL_IDENTICAL=15, UCOL_STRENGTH_LIMIT, - /** Turn the feature off - works for UCOL_FRENCH_COLLATION, + /** Turn the feature off - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MODE & UCOL_DECOMPOSITION_MODE*/ UCOL_OFF = 16, - /** Turn the feature on - works for UCOL_FRENCH_COLLATION, + /** Turn the feature on - works for UCOL_FRENCH_COLLATION, UCOL_CASE_LEVEL, UCOL_HIRAGANA_QUATERNARY_MODE & UCOL_DECOMPOSITION_MODE*/ UCOL_ON = 17, - + /** Valid for UCOL_ALTERNATE_HANDLING. Alternate handling will be shifted */ UCOL_SHIFTED = 20, /** Valid for UCOL_ALTERNATE_HANDLING. Alternate handling will be non ignorable */ UCOL_NON_IGNORABLE = 21, - /** Valid for UCOL_CASE_FIRST - + /** Valid for UCOL_CASE_FIRST - lower case sorts before upper case */ UCOL_LOWER_FIRST = 24, /** upper case sorts before lower case */ @@ -151,55 +151,55 @@ typedef enum { * A special reordering code that is used to specify the default * reordering codes for a locale. * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_DEFAULT = -1, /** * A special reordering code that is used to specify no reordering codes. * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_NONE = USCRIPT_UNKNOWN, /** * A special reordering code that is used to specify all other codes used for * reordering except for the codes lised as UColReorderCode values and those * listed explicitly in a reordering. * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_OTHERS = USCRIPT_UNKNOWN, /** * Characters with the space property. * This is equivalent to the rule value "space". * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_SPACE = 0x1000, /** * The first entry in the enumeration of reordering groups. This is intended for use in * range checking and enumeration of the reorder codes. * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_FIRST = UCOL_REORDER_CODE_SPACE, /** * Characters with the punctuation property. * This is equivalent to the rule value "punct". * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_PUNCTUATION = 0x1001, /** * Characters with the symbol property. * This is equivalent to the rule value "symbol". * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_SYMBOL = 0x1002, /** * Characters with the currency property. * This is equivalent to the rule value "currency". * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_CURRENCY = 0x1003, /** * Characters with the digit property. * This is equivalent to the rule value "digit". * @stable ICU 4.8 - */ + */ UCOL_REORDER_CODE_DIGIT = 0x1004, #ifndef U_HIDE_DEPRECATED_API /** @@ -215,7 +215,7 @@ typedef enum { * level to UCOL_PRIMARY to ignore secondary and tertiary differences. * Use this to set the strength of a Collator object. * Example of primary difference, "abc" < "abd" - * + * * Diacritical differences on the same base letter represent a secondary * difference. Set comparison level to UCOL_SECONDARY to ignore tertiary * differences. Use this to set the strength of a Collator object. @@ -231,7 +231,7 @@ typedef enum { * unicode spellings. UCOL_IDENTICAL. * For example, "ä" == "ä". * - * UCollationStrength is also used to determine the strength of sort keys + * UCollationStrength is also used to determine the strength of sort keys * generated from UCollator objects * These values can be now found in the UColAttributeValue enum. * @stable ICU 2.0 @@ -239,7 +239,7 @@ typedef enum { typedef UColAttributeValue UCollationStrength; /** Attributes that collation service understands. All the attributes can take UCOL_DEFAULT - * value, as well as the values specific to each one. + * value, as well as the values specific to each one. * @stable ICU 2.0 */ typedef enum { @@ -249,32 +249,32 @@ typedef enum { * weights in the order they appear. * @stable ICU 2.0 */ - UCOL_FRENCH_COLLATION, + UCOL_FRENCH_COLLATION, /** Attribute for handling variable elements. * Acceptable values are UCOL_NON_IGNORABLE (default) - * which treats all the codepoints with non-ignorable + * which treats all the codepoints with non-ignorable * primary weights in the same way, - * and UCOL_SHIFTED which causes codepoints with primary + * and UCOL_SHIFTED which causes codepoints with primary * weights that are equal or below the variable top value - * to be ignored on primary level and moved to the quaternary + * to be ignored on primary level and moved to the quaternary * level. * @stable ICU 2.0 */ - UCOL_ALTERNATE_HANDLING, + UCOL_ALTERNATE_HANDLING, /** Controls the ordering of upper and lower case letters. * Acceptable values are UCOL_OFF (default), which orders * upper and lower case letters in accordance to their tertiary - * weights, UCOL_UPPER_FIRST which forces upper case letters to - * sort before lower case letters, and UCOL_LOWER_FIRST which does + * weights, UCOL_UPPER_FIRST which forces upper case letters to + * sort before lower case letters, and UCOL_LOWER_FIRST which does * the opposite. * @stable ICU 2.0 */ - UCOL_CASE_FIRST, + UCOL_CASE_FIRST, /** Controls whether an extra case level (positioned before the third - * level) is generated or not. Acceptable values are UCOL_OFF (default), + * level) is generated or not. Acceptable values are UCOL_OFF (default), * when case level is not generated, and UCOL_ON which causes the case * level to be generated. Contents of the case level are affected by - * the value of UCOL_CASE_FIRST attribute. A simple way to ignore + * the value of UCOL_CASE_FIRST attribute. A simple way to ignore * accent differences in a string is to set the strength to UCOL_PRIMARY * and enable case level. * @stable ICU 2.0 @@ -282,14 +282,14 @@ typedef enum { UCOL_CASE_LEVEL, /** Controls whether the normalization check and necessary normalizations * are performed. When set to UCOL_OFF (default) no normalization check - * is performed. The correctness of the result is guaranteed only if the + * is performed. The correctness of the result is guaranteed only if the * input data is in so-called FCD form (see users manual for more info). * When set to UCOL_ON, an incremental check is performed to see whether * the input data is in the FCD form. If the data is not in the FCD form, * incremental NFD normalization is performed. * @stable ICU 2.0 */ - UCOL_NORMALIZATION_MODE, + UCOL_NORMALIZATION_MODE, /** An alias for UCOL_NORMALIZATION_MODE attribute. * @stable ICU 2.0 */ @@ -298,7 +298,7 @@ typedef enum { * UCOL_TERTIARY, UCOL_QUATERNARY or UCOL_IDENTICAL. The usual strength * for most locales (except Japanese) is tertiary. * - * Quaternary strength + * Quaternary strength * is useful when combined with shifted setting for alternate handling * attribute and for JIS X 4061 collation, when it is used to distinguish * between Katakana and Hiragana. @@ -306,13 +306,13 @@ typedef enum { * is affected only by the number of non-ignorable code points in * the string. * - * Identical strength is rarely useful, as it amounts + * Identical strength is rarely useful, as it amounts * to codepoints of the NFD form of the string. * @stable ICU 2.0 */ - UCOL_STRENGTH, + UCOL_STRENGTH, #ifndef U_HIDE_DEPRECATED_API - /** When turned on, this attribute positions Hiragana before all + /** When turned on, this attribute positions Hiragana before all * non-ignorables on quaternary level This is a sneaky way to produce JIS * sort order. * @@ -343,7 +343,7 @@ typedef enum { * * @stable ICU 2.8 */ - UCOL_NUMERIC_COLLATION = UCOL_STRENGTH + 2, + UCOL_NUMERIC_COLLATION = UCOL_STRENGTH + 2, /* Do not conditionalize the following with #ifndef U_HIDE_DEPRECATED_API, * it is needed for layout of RuleBasedCollator object. */ @@ -356,7 +356,7 @@ typedef enum { #endif // U_FORCE_HIDE_DEPRECATED_API } UColAttribute; -/** Options for retrieving the rule string +/** Options for retrieving the rule string * @stable ICU 2.0 */ typedef enum { @@ -365,7 +365,7 @@ typedef enum { * Same as calling the version of getRules() without UColRuleOption. * @stable ICU 2.0 */ - UCOL_TAILORING_ONLY, + UCOL_TAILORING_ONLY, /** * Retrieves the "UCA rules" concatenated with the tailoring rules. * The "UCA rules" are an approximation of the root collator's sort order. @@ -373,7 +373,7 @@ typedef enum { * See https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales * @stable ICU 2.0 */ - UCOL_FULL_RULES + UCOL_FULL_RULES } UColRuleOption ; /** @@ -386,11 +386,11 @@ typedef enum { * or in language tag syntax ("el-u-kf-upper"). * See User Guide: Collation API. * - * The UCollator pointer is used in all the calls to the Collation + * The UCollator pointer is used in all the calls to the Collation * service. After finished, collator must be disposed of by calling * {@link #ucol_close }. - * @param loc The locale containing the required collation rules. - * Special values for locales can be passed in - + * @param loc The locale containing the required collation rules. + * Special values for locales can be passed in - * if NULL is passed for the locale, the default locale * collation rules will be used. If empty string ("") or * "root" are passed, the root collator will be returned. @@ -401,7 +401,7 @@ typedef enum { * @see ucol_close * @stable ICU 2.0 */ -U_CAPI UCollator* U_EXPORT2 +U_CAPI UCollator* U_EXPORT2 ucol_open(const char *loc, UErrorCode *status); /** @@ -418,7 +418,7 @@ ucol_open(const char *loc, UErrorCode *status); * UCOL_DEFAULT (set the mode according to the rules) * @param strength The default collation strength; one of UCOL_PRIMARY, UCOL_SECONDARY, * UCOL_TERTIARY, UCOL_IDENTICAL,UCOL_DEFAULT_STRENGTH - can be also set in the rules. - * @param parseError A pointer to UParseError to recieve information about errors + * @param parseError A pointer to UParseError to receive information about errors * occurred during parsing. This argument can currently be set * to NULL, but at users own risk. Please provide a real structure. * @param status A pointer to a UErrorCode to receive any errors @@ -429,7 +429,7 @@ ucol_open(const char *loc, UErrorCode *status); * @see ucol_close * @stable ICU 2.0 */ -U_CAPI UCollator* U_EXPORT2 +U_CAPI UCollator* U_EXPORT2 ucol_openRules( const UChar *rules, int32_t rulesLength, UColAttributeValue normalizationMode, @@ -438,31 +438,31 @@ ucol_openRules( const UChar *rules, UErrorCode *status); #ifndef U_HIDE_DEPRECATED_API -/** +/** * Open a collator defined by a short form string. * The structure and the syntax of the string is defined in the "Naming collators" - * section of the users guide: + * section of the users guide: * https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme - * Attributes are overriden by the subsequent attributes. So, for "S2_S3", final + * Attributes are overridden by the subsequent attributes. So, for "S2_S3", final * strength will be 3. 3066bis locale overrides individual locale parts. - * The call to this function is equivalent to a call to ucol_open, followed by a + * The call to this function is equivalent to a call to ucol_open, followed by a * series of calls to ucol_setAttribute and ucol_setVariableTop. - * @param definition A short string containing a locale and a set of attributes. + * @param definition A short string containing a locale and a set of attributes. * Attributes not explicitly mentioned are left at the default * state for a locale. * @param parseError if not NULL, structure that will get filled with error's pre * and post context in case of error. - * @param forceDefaults if false, the settings that are the same as the collator + * @param forceDefaults if false, the settings that are the same as the collator * default settings will not be applied (for example, setting - * French secondary on a French collator would not be executed). - * If true, all the settings will be applied regardless of the + * French secondary on a French collator would not be executed). + * If true, all the settings will be applied regardless of the * collator default value. If the definition * strings are to be cached, should be set to false. - * @param status Error code. Apart from regular error conditions connected to + * @param status Error code. Apart from regular error conditions connected to * instantiating collators (like out of memory or similar), this * API will return an error if an invalid attribute or attribute/value * combination is specified. - * @return A pointer to a UCollator or 0 if an error occured (including an + * @return A pointer to a UCollator or 0 if an error occurred (including an * invalid attribute). * @see ucol_open * @see ucol_setAttribute @@ -482,11 +482,11 @@ ucol_openFromShortString( const char *definition, /** * Get a set containing the contractions defined by the collator. The set includes * both the root collator's contractions and the contractions defined by the collator. This set - * will contain only strings. If a tailoring explicitly suppresses contractions from + * will contain only strings. If a tailoring explicitly suppresses contractions from * the root collator (like Russian), removed contractions will not be in the resulting set. - * @param coll collator + * @param coll collator * @param conts the set to hold the result. It gets emptied before - * contractions are added. + * contractions are added. * @param status to hold the error code * @return the size of the contraction set * @@ -514,7 +514,7 @@ ucol_getContractionsAndExpansions( const UCollator *coll, USet *contractions, USet *expansions, UBool addPrefixes, UErrorCode *status); -/** +/** * Close a UCollator. * Once closed, a UCollator should not be used. Every open collator should * be closed. Otherwise, a memory leak will result. @@ -524,7 +524,7 @@ ucol_getContractionsAndExpansions( const UCollator *coll, * @see ucol_safeClone * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucol_close(UCollator *coll); #if U_SHOW_CPLUSPLUS_API @@ -561,31 +561,31 @@ U_NAMESPACE_END * @see ucol_equal * @stable ICU 2.0 */ -U_CAPI UCollationResult U_EXPORT2 +U_CAPI UCollationResult U_EXPORT2 ucol_strcoll( const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength); -/** -* Compare two strings in UTF-8. -* The strings will be compared using the options already specified. -* Note: When input string contains malformed a UTF-8 byte sequence, +/** +* Compare two strings in UTF-8. +* The strings will be compared using the options already specified. +* Note: When input string contains malformed a UTF-8 byte sequence, * this function treats these bytes as REPLACEMENT CHARACTER (U+FFFD). -* @param coll The UCollator containing the comparison rules. -* @param source The source UTF-8 string. -* @param sourceLength The length of source, or -1 if null-terminated. -* @param target The target UTF-8 string. -* @param targetLength The length of target, or -1 if null-terminated. -* @param status A pointer to a UErrorCode to receive any errors -* @return The result of comparing the strings; one of UCOL_EQUAL, -* UCOL_GREATER, UCOL_LESS -* @see ucol_greater -* @see ucol_greaterOrEqual -* @see ucol_equal -* @stable ICU 50 -*/ +* @param coll The UCollator containing the comparison rules. +* @param source The source UTF-8 string. +* @param sourceLength The length of source, or -1 if null-terminated. +* @param target The target UTF-8 string. +* @param targetLength The length of target, or -1 if null-terminated. +* @param status A pointer to a UErrorCode to receive any errors +* @return The result of comparing the strings; one of UCOL_EQUAL, +* UCOL_GREATER, UCOL_LESS +* @see ucol_greater +* @see ucol_greaterOrEqual +* @see ucol_equal +* @stable ICU 50 +*/ U_CAPI UCollationResult U_EXPORT2 ucol_strcollUTF8( const UCollator *coll, @@ -609,7 +609,7 @@ ucol_strcollUTF8( * @see ucol_equal * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucol_greater(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength); @@ -628,7 +628,7 @@ ucol_greater(const UCollator *coll, * @see ucol_equal * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucol_greaterOrEqual(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength); @@ -647,13 +647,13 @@ ucol_greaterOrEqual(const UCollator *coll, * @see ucol_greaterOrEqual * @stable ICU 2.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 ucol_equal(const UCollator *coll, const UChar *source, int32_t sourceLength, const UChar *target, int32_t targetLength); /** - * Compare two UTF-8 encoded trings. + * Compare two UTF-8 encoded strings. * The strings will be compared using the options already specified. * @param coll The UCollator containing the comparison rules. * @param sIter The source string iterator. @@ -664,7 +664,7 @@ ucol_equal(const UCollator *coll, * @see ucol_strcoll * @stable ICU 2.6 */ -U_CAPI UCollationResult U_EXPORT2 +U_CAPI UCollationResult U_EXPORT2 ucol_strcollIter( const UCollator *coll, UCharIterator *sIter, UCharIterator *tIter, @@ -679,19 +679,19 @@ ucol_strcollIter( const UCollator *coll, * @see ucol_setStrength * @stable ICU 2.0 */ -U_CAPI UCollationStrength U_EXPORT2 +U_CAPI UCollationStrength U_EXPORT2 ucol_getStrength(const UCollator *coll); /** * Set the collation strength used in a UCollator. * The strength influences how strings are compared. * @param coll The UCollator to set. - * @param strength The desired collation strength; one of UCOL_PRIMARY, + * @param strength The desired collation strength; one of UCOL_PRIMARY, * UCOL_SECONDARY, UCOL_TERTIARY, UCOL_QUATERNARY, UCOL_IDENTICAL, UCOL_DEFAULT * @see ucol_getStrength * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucol_setStrength(UCollator *coll, UCollationStrength strength); @@ -700,9 +700,9 @@ ucol_setStrength(UCollator *coll, * These reordering codes are a combination of UScript codes and UColReorderCode entries. * @param coll The UCollator to query. * @param dest The array to fill with the script ordering. - * @param destCapacity The length of dest. If it is 0, then dest may be NULL and the function + * @param destCapacity The length of dest. If it is 0, then dest may be NULL and the function * will only return the length of the result without writing any codes (pre-flighting). - * @param pErrorCode Must be a valid pointer to an error code value, which must not indicate a + * @param pErrorCode Must be a valid pointer to an error code value, which must not indicate a * failure before the function call. * @return The number of reordering codes written to the dest array. * @see ucol_setReorderCodes @@ -711,41 +711,41 @@ ucol_setStrength(UCollator *coll, * @see UColReorderCode * @stable ICU 4.8 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getReorderCodes(const UCollator* coll, int32_t* dest, int32_t destCapacity, UErrorCode *pErrorCode); -/** +/** * Sets the reordering codes for this collator. * Collation reordering allows scripts and some other groups of characters * to be moved relative to each other. This reordering is done on top of - * the DUCET/CLDR standard collation order. Reordering can specify groups to be placed + * the DUCET/CLDR standard collation order. Reordering can specify groups to be placed * at the start and/or the end of the collation order. These groups are specified using * UScript codes and UColReorderCode entries. * - *

    By default, reordering codes specified for the start of the order are placed in the + *

    By default, reordering codes specified for the start of the order are placed in the * order given after several special non-script blocks. These special groups of characters * are space, punctuation, symbol, currency, and digit. These special groups are represented with - * UColReorderCode entries. Script groups can be intermingled with + * UColReorderCode entries. Script groups can be intermingled with * these special non-script groups if those special groups are explicitly specified in the reordering. * - *

    The special code OTHERS stands for any script that is not explicitly + *

    The special code OTHERS stands for any script that is not explicitly * mentioned in the list of reordering codes given. Anything that is after OTHERS * will go at the very end of the reordering in the order given. * *

    The special reorder code DEFAULT will reset the reordering for this collator * to the default for this collator. The default reordering may be the DUCET/CLDR order or may be a reordering that - * was specified when this collator was created from resource data or from rules. The + * was specified when this collator was created from resource data or from rules. The * DEFAULT code must be the sole code supplied when it is used. * If not, then U_ILLEGAL_ARGUMENT_ERROR will be set. * *

    The special reorder code NONE will remove any reordering for this collator. - * The result of setting no reordering will be to have the DUCET/CLDR ordering used. The + * The result of setting no reordering will be to have the DUCET/CLDR ordering used. The * NONE code must be the sole code supplied when it is used. * * @param coll The UCollator to set. - * @param reorderCodes An array of script codes in the new order. This can be NULL if the + * @param reorderCodes An array of script codes in the new order. This can be NULL if the * length is also set to 0. An empty array will clear any reordering codes on the collator. * @param reorderCodesLength The length of reorderCodes. * @param pErrorCode Must be a valid pointer to an error code value, which must not indicate a @@ -755,8 +755,8 @@ ucol_getReorderCodes(const UCollator* coll, * @see UScriptCode * @see UColReorderCode * @stable ICU 4.8 - */ -U_CAPI void U_EXPORT2 + */ +U_CAPI void U_EXPORT2 ucol_setReorderCodes(UCollator* coll, const int32_t* reorderCodes, int32_t reorderCodesLength, @@ -772,7 +772,7 @@ ucol_setReorderCodes(UCollator* coll, * @param dest The array to fill with the script ordering. * @param destCapacity The length of dest. If it is 0, then dest may be NULL and the function * will only return the length of the result without writing any codes (pre-flighting). - * @param pErrorCode Must be a valid pointer to an error code value, which must not indicate + * @param pErrorCode Must be a valid pointer to an error code value, which must not indicate * a failure before the function call. * @return The number of reordering codes written to the dest array. * @see ucol_setReorderCodes @@ -781,7 +781,7 @@ ucol_setReorderCodes(UCollator* coll, * @see UColReorderCode * @stable ICU 4.8 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getEquivalentReorderCodes(int32_t reorderCode, int32_t* dest, int32_t destCapacity, @@ -799,7 +799,7 @@ ucol_getEquivalentReorderCodes(int32_t reorderCode, * the output was truncated. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getDisplayName( const char *objLoc, const char *dispLoc, UChar *result, @@ -815,7 +815,7 @@ ucol_getDisplayName( const char *objLoc, * @see ucol_countAvailable * @stable ICU 2.0 */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 ucol_getAvailable(int32_t localeIndex); /** @@ -826,7 +826,7 @@ ucol_getAvailable(int32_t localeIndex); * @see ucol_getAvailable * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_countAvailable(void); #if !UCONFIG_NO_SERVICE @@ -930,26 +930,26 @@ ucol_getFunctionalEquivalent(char* result, int32_t resultCapacity, * Get the collation tailoring rules from a UCollator. * The rules will follow the rule syntax. * @param coll The UCollator to query. - * @param length + * @param length * @return The collation tailoring rules. * @stable ICU 2.0 */ -U_CAPI const UChar* U_EXPORT2 -ucol_getRules( const UCollator *coll, +U_CAPI const UChar* U_EXPORT2 +ucol_getRules( const UCollator *coll, int32_t *length); #ifndef U_HIDE_DEPRECATED_API /** Get the short definition string for a collator. This API harvests the collator's - * locale and the attribute set and produces a string that can be used for opening + * locale and the attribute set and produces a string that can be used for opening * a collator with the same attributes using the ucol_openFromShortString API. * This string will be normalized. * The structure and the syntax of the string is defined in the "Naming collators" - * section of the users guide: + * section of the users guide: * https://unicode-org.github.io/icu/userguide/collation/concepts#collator-naming-scheme * This API supports preflighting. * @param coll a collator * @param locale a locale that will appear as a collators locale in the resulting - * short string definition. If NULL, the locale will be harvested + * short string definition. If NULL, the locale will be harvested * from the collator. * @param buffer space to hold the resulting string * @param capacity capacity of the buffer @@ -968,21 +968,21 @@ ucol_getShortDefinitionString(const UCollator *coll, /** Verifies and normalizes short definition string. * Normalized short definition string has all the option sorted by the argument name, - * so that equivalent definition strings are the same. + * so that equivalent definition strings are the same. * This API supports preflighting. * @param source definition string * @param destination space to hold the resulting string * @param capacity capacity of the buffer * @param parseError if not NULL, structure that will get filled with error's pre * and post context in case of error. - * @param status Error code. This API will return an error if an invalid attribute - * or attribute/value combination is specified. All the preflighting + * @param status Error code. This API will return an error if an invalid attribute + * or attribute/value combination is specified. All the preflighting * errors are also featured * @return length of the resulting normalized string. * * @see ucol_openFromShortString * @see ucol_getShortDefinitionString - * + * * @deprecated ICU 54 */ @@ -999,7 +999,7 @@ ucol_normalizeShortDefinitionString(const char *source, * Get a sort key for a string from a UCollator. * Sort keys may be compared using strcmp. * - * Note that sort keys are often less efficient than simply doing comparison. + * Note that sort keys are often less efficient than simply doing comparison. * For more details, see the ICU User Guide. * * Like ICU functions that write to an output buffer, the buffer contents @@ -1017,7 +1017,7 @@ ucol_normalizeShortDefinitionString(const char *source, * @see ucol_keyHashCode * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getSortKey(const UCollator *coll, const UChar *source, int32_t sourceLength, @@ -1034,29 +1034,29 @@ ucol_getSortKey(const UCollator *coll, * The generated sort key may or may not be compatible with * sort keys generated using ucol_getSortKey(). * @param coll The UCollator containing the collation rules. - * @param iter UCharIterator containing the string we need + * @param iter UCharIterator containing the string we need * the sort key to be calculated for. * @param state Opaque state of sortkey iteration. * @param dest Buffer to hold the resulting sortkey part * @param count number of sort key bytes required. * @param status error code indicator. * @return the actual number of bytes of a sortkey. It can be - * smaller than count if we have reached the end of + * smaller than count if we have reached the end of * the sort key. * @stable ICU 2.6 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_nextSortKeyPart(const UCollator *coll, UCharIterator *iter, uint32_t state[2], uint8_t *dest, int32_t count, UErrorCode *status); -/** enum that is taken by ucol_getBound API - * See below for explanation - * do not change the values assigned to the - * members of this enum. Underlying code - * depends on them having these numbers +/** enum that is taken by ucol_getBound API + * See below for explanation + * do not change the values assigned to the + * members of this enum. Underlying code + * depends on them having these numbers * @stable ICU 2.0 */ typedef enum { @@ -1077,11 +1077,11 @@ typedef enum { /** * Produce a bound for a given sortkey and a number of levels. - * Return value is always the number of bytes needed, regardless of + * Return value is always the number of bytes needed, regardless of * whether the result buffer was big enough or even valid.
    * Resulting bounds can be used to produce a range of strings that are * between upper and lower bounds. For example, if bounds are produced - * for a sortkey of string "smith", strings between upper and lower + * for a sortkey of string "smith", strings between upper and lower * bounds with one level would include "Smith", "SMITH", "sMiTh".
    * There are two upper bounds that can be produced. If UCOL_BOUND_UPPER * is produced, strings matched would be as above. However, if bound @@ -1091,28 +1091,28 @@ typedef enum { * TestBounds. * Sort keys may be compared using strcmp. * @param source The source sortkey. - * @param sourceLength The length of source, or -1 if null-terminated. - * (If an unmodified sortkey is passed, it is always null + * @param sourceLength The length of source, or -1 if null-terminated. + * (If an unmodified sortkey is passed, it is always null * terminated). - * @param boundType Type of bound required. It can be UCOL_BOUND_LOWER, which - * produces a lower inclusive bound, UCOL_BOUND_UPPER, that - * produces upper bound that matches strings of the same length - * or UCOL_BOUND_UPPER_LONG that matches strings that have the + * @param boundType Type of bound required. It can be UCOL_BOUND_LOWER, which + * produces a lower inclusive bound, UCOL_BOUND_UPPER, that + * produces upper bound that matches strings of the same length + * or UCOL_BOUND_UPPER_LONG that matches strings that have the * same starting substring as the source string. - * @param noOfLevels Number of levels required in the resulting bound (for most - * uses, the recommended value is 1). See users guide for + * @param noOfLevels Number of levels required in the resulting bound (for most + * uses, the recommended value is 1). See users guide for * explanation on number of levels a sortkey can have. * @param result A pointer to a buffer to receive the resulting sortkey. * @param resultLength The maximum size of result. - * @param status Used for returning error code if something went wrong. If the + * @param status Used for returning error code if something went wrong. If the * number of levels requested is higher than the number of levels - * in the source key, a warning (U_SORT_KEY_TOO_SHORT_WARNING) is + * in the source key, a warning (U_SORT_KEY_TOO_SHORT_WARNING) is * issued. - * @return The size needed to fully store the bound. + * @return The size needed to fully store the bound. * @see ucol_keyHashCode * @stable ICU 2.1 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getBound(const uint8_t *source, int32_t sourceLength, UColBoundMode boundType, @@ -1120,7 +1120,7 @@ ucol_getBound(const uint8_t *source, uint8_t *result, int32_t resultLength, UErrorCode *status); - + /** * Gets the version information for a Collator. Version is currently * an opaque 32-bit number which depends, among other things, on major @@ -1168,7 +1168,7 @@ ucol_getUCAVersion(const UCollator* coll, UVersionInfo info); * Example (uncompressed): *

    191B1D 01 050505 01 910505 00
      * 1F2123 01 050505 01 910505 00
    - * will be merged as + * will be merged as *
    191B1D 02 1F2123 01 050505 02 050505 01 910505 02 910505 00
    * * If the destination buffer is not big enough, then its contents are undefined. @@ -1189,7 +1189,7 @@ ucol_getUCAVersion(const UCollator* coll, UVersionInfo info); * in which cases the contents of dest is undefined * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, const uint8_t *src2, int32_t src2Length, uint8_t *dest, int32_t destCapacity); @@ -1197,7 +1197,7 @@ ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, /** * Universal attribute setter * @param coll collator which attributes are to be changed - * @param attr attribute type + * @param attr attribute type * @param value attribute value * @param status to indicate whether the operation went on smoothly or there were errors * @see UColAttribute @@ -1205,7 +1205,7 @@ ucol_mergeSortkeys(const uint8_t *src1, int32_t src1Length, * @see ucol_getAttribute * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, UErrorCode *status); /** @@ -1219,7 +1219,7 @@ ucol_setAttribute(UCollator *coll, UColAttribute attr, UColAttributeValue value, * @see ucol_setAttribute * @stable ICU 2.0 */ -U_CAPI UColAttributeValue U_EXPORT2 +U_CAPI UColAttributeValue U_EXPORT2 ucol_getAttribute(const UCollator *coll, UColAttribute attr, UErrorCode *status); /** @@ -1272,16 +1272,16 @@ ucol_getMaxVariable(const UCollator *coll); * @see ucol_restoreVariableTop * @deprecated ICU 53 Call ucol_setMaxVariable() instead. */ -U_DEPRECATED uint32_t U_EXPORT2 -ucol_setVariableTop(UCollator *coll, - const UChar *varTop, int32_t len, +U_DEPRECATED uint32_t U_EXPORT2 +ucol_setVariableTop(UCollator *coll, + const UChar *varTop, int32_t len, UErrorCode *status); #endif /* U_HIDE_DEPRECATED_API */ -/** - * Gets the variable top value of a Collator. +/** + * Gets the variable top value of a Collator. * @param coll collator which variable top needs to be retrieved - * @param status error code (not changed by function). If error code is set, + * @param status error code (not changed by function). If error code is set, * the return value is undefined. * @return the variable top primary weight * @see ucol_getMaxVariable @@ -1306,7 +1306,7 @@ U_CAPI uint32_t U_EXPORT2 ucol_getVariableTop(const UCollator *coll, UErrorCode * @see ucol_setVariableTop * @deprecated ICU 53 Call ucol_setMaxVariable() instead. */ -U_DEPRECATED void U_EXPORT2 +U_DEPRECATED void U_EXPORT2 ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *status); #endif /* U_HIDE_DEPRECATED_API */ @@ -1314,15 +1314,15 @@ ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *stat * Thread safe cloning operation. The result is a clone of a given collator. * @param coll collator to be cloned * @param stackBuffer Deprecated functionality as of ICU 52, use NULL.
    - * user allocated space for the new clone. - * If NULL new memory will be allocated. + * user allocated space for the new clone. + * If NULL new memory will be allocated. * If buffer is not large enough, new memory will be allocated. * Clients can use the U_COL_SAFECLONE_BUFFERSIZE. * @param pBufferSize Deprecated functionality as of ICU 52, use NULL or 1.
    - * pointer to size of allocated space. - * If *pBufferSize == 0, a sufficient size for use in cloning will + * pointer to size of allocated space. + * If *pBufferSize == 0, a sufficient size for use in cloning will * be returned ('pre-flighting') - * If *pBufferSize is not enough for a stack-based safe clone, + * If *pBufferSize is not enough for a stack-based safe clone, * new memory will be allocated. * @param status to indicate whether the operation went on smoothly or there were errors * An informational status value, U_SAFECLONE_ALLOCATED_ERROR, is used if any @@ -1333,7 +1333,7 @@ ucol_restoreVariableTop(UCollator *coll, const uint32_t varTop, UErrorCode *stat * @see ucol_close * @stable ICU 2.0 */ -U_CAPI UCollator* U_EXPORT2 +U_CAPI UCollator* U_EXPORT2 ucol_safeClone(const UCollator *coll, void *stackBuffer, int32_t *pBufferSize, @@ -1349,21 +1349,21 @@ ucol_safeClone(const UCollator *coll, #endif /* U_HIDE_DEPRECATED_API */ /** - * Returns current rules. Delta defines whether full rules are returned or just the tailoring. - * Returns number of UChars needed to store rules. If buffer is NULL or bufferLen is not enough + * Returns current rules. Delta defines whether full rules are returned or just the tailoring. + * Returns number of UChars needed to store rules. If buffer is NULL or bufferLen is not enough * to store rules, will store up to available space. * * ucol_getRules() should normally be used instead. * See https://unicode-org.github.io/icu/userguide/collation/customization#building-on-existing-locales * @param coll collator to get the rules from - * @param delta one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES. + * @param delta one of UCOL_TAILORING_ONLY, UCOL_FULL_RULES. * @param buffer buffer to store the result in. If NULL, you'll get no rules. * @param bufferLen length of buffer to store rules in. If less than needed you'll get only the part that fits in. * @return current rules * @stable ICU 2.0 * @see UCOL_FULL_RULES */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int32_t bufferLen); #ifndef U_HIDE_DEPRECATED_API @@ -1376,7 +1376,7 @@ ucol_getRulesEx(const UCollator *coll, UColRuleOption delta, UChar *buffer, int3 * locale. For description see the definition of * ULocDataLocaleType in uloc.h * @param status error code of the operation - * @return real locale name from which the collation data comes. + * @return real locale name from which the collation data comes. * If the collator was instantiated from rules, returns * NULL. * @deprecated ICU 2.8 Use ucol_getLocaleByType instead @@ -1394,7 +1394,7 @@ ucol_getLocale(const UCollator *coll, ULocDataLocaleType type, UErrorCode *statu * locale. For description see the definition of * ULocDataLocaleType in uloc.h * @param status error code of the operation - * @return real locale name from which the collation data comes. + * @return real locale name from which the collation data comes. * If the collator was instantiated from rules, returns * NULL. * @stable ICU 2.8 @@ -1403,7 +1403,7 @@ U_CAPI const char * U_EXPORT2 ucol_getLocaleByType(const UCollator *coll, ULocDataLocaleType type, UErrorCode *status); /** - * Get a Unicode set that contains all the characters and sequences tailored in + * Get a Unicode set that contains all the characters and sequences tailored in * this collator. The result must be disposed of by using uset_close. * @param coll The UCollator for which we want to get tailored chars * @param status error code of the operation @@ -1434,18 +1434,18 @@ ucol_getUnsafeSet( const UCollator *coll, /** Touches all resources needed for instantiating a collator from a short string definition, * thus filling up the cache. - * @param definition A short string containing a locale and a set of attributes. + * @param definition A short string containing a locale and a set of attributes. * Attributes not explicitly mentioned are left at the default * state for a locale. * @param parseError if not NULL, structure that will get filled with error's pre * and post context in case of error. - * @param forceDefaults if false, the settings that are the same as the collator + * @param forceDefaults if false, the settings that are the same as the collator * default settings will not be applied (for example, setting - * French secondary on a French collator would not be executed). - * If true, all the settings will be applied regardless of the + * French secondary on a French collator would not be executed). + * If true, all the settings will be applied regardless of the * collator default value. If the definition * strings are to be cached, should be set to false. - * @param status Error code. Apart from regular error conditions connected to + * @param status Error code. Apart from regular error conditions connected to * instantiating collators (like out of memory or similar), this * API will return an error if an invalid attribute or attribute/value * combination is specified. @@ -1459,7 +1459,7 @@ ucol_prepareShortStringOpen( const char *definition, UErrorCode *status); #endif /* U_HIDE_INTERNAL_API */ -/** Creates a binary image of a collator. This binary image can be stored and +/** Creates a binary image of a collator. This binary image can be stored and * later used to instantiate a collator using ucol_openBinary. * This API supports preflighting. * @param coll Collator @@ -1476,8 +1476,8 @@ ucol_cloneBinary(const UCollator *coll, UErrorCode *status); /** Opens a collator from a collator binary image created using - * ucol_cloneBinary. Binary image used in instantiation of the - * collator remains owned by the user and should stay around for + * ucol_cloneBinary. Binary image used in instantiation of the + * collator remains owned by the user and should stay around for * the lifetime of the collator. The API also takes a base collator * which must be the root collator. * @param bin binary image owned by the user and required through the @@ -1493,8 +1493,8 @@ ucol_cloneBinary(const UCollator *coll, * @stable ICU 3.2 */ U_CAPI UCollator* U_EXPORT2 -ucol_openBinary(const uint8_t *bin, int32_t length, - const UCollator *base, +ucol_openBinary(const uint8_t *bin, int32_t length, + const UCollator *base, UErrorCode *status); diff --git a/deps/icu-small/source/i18n/unicode/ucoleitr.h b/deps/icu-small/source/i18n/unicode/ucoleitr.h index e8bcd368d4f0a4..25efcf2a08e77e 100644 --- a/deps/icu-small/source/i18n/unicode/ucoleitr.h +++ b/deps/icu-small/source/i18n/unicode/ucoleitr.h @@ -11,7 +11,7 @@ * Modification History: * * Date Name Description -* 02/15/2001 synwee Modified all methods to process its own function +* 02/15/2001 synwee Modified all methods to process its own function * instead of calling the equivalent c++ api (coleitr.h) *******************************************************************************/ @@ -22,8 +22,8 @@ #if !UCONFIG_NO_COLLATION -/** - * This indicates an error has occurred during processing or if no more CEs is +/** + * This indicates an error has occurred during processing or if no more CEs is * to be returned. * @stable ICU 2.0 */ @@ -31,7 +31,7 @@ #include "unicode/ucol.h" -/** +/** * The UCollationElements struct. * For usage in C programs. * @stable ICU 2.0 @@ -42,10 +42,10 @@ typedef struct UCollationElements UCollationElements; * \file * \brief C API: UCollationElements * - * The UCollationElements API is used as an iterator to walk through each + * The UCollationElements API is used as an iterator to walk through each * character of an international string. Use the iterator to return the - * ordering priority of the positioned character. The ordering priority of a - * character, which we refer to as a key, defines how a character is collated + * ordering priority of the positioned character. The ordering priority of a + * character, which we refer to as a key, defines how a character is collated * in the given collation object. * For example, consider the following in Slovak and in traditional Spanish collation: *
    @@ -82,19 +82,19 @@ typedef struct UCollationElements UCollationElements;
      * ucol_next() returns the collation order of the next.
      * ucol_prev() returns the collation order of the previous character.
      * The Collation Element Iterator moves only in one direction between calls to
    - * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used.
    - * Whenever ucol_prev is to be called after ucol_next() or vice versa,
    - * ucol_reset has to be called first to reset the status, shifting pointers to
    - * either the end or the start of the string. Hence at the next call of
    - * ucol_prev or ucol_next, the first or last collation order will be returned.
    - * If a change of direction is done without a ucol_reset, the result is
    + * ucol_reset. That is, ucol_next() and ucol_prev can not be inter-used. 
    + * Whenever ucol_prev is to be called after ucol_next() or vice versa, 
    + * ucol_reset has to be called first to reset the status, shifting pointers to 
    + * either the end or the start of the string. Hence at the next call of 
    + * ucol_prev or ucol_next, the first or last collation order will be returned. 
    + * If a change of direction is done without a ucol_reset, the result is 
      * undefined.
    - * The result of a forward iterate (ucol_next) and reversed result of the
    - * backward iterate (ucol_prev) on the same string are equivalent, if
    + * The result of a forward iterate (ucol_next) and reversed result of the  
    + * backward iterate (ucol_prev) on the same string are equivalent, if 
      * collation orders with the value 0 are ignored.
    - * Character based on the comparison level of the collator.  A collation order
    - * consists of primary order, secondary order and tertiary order.  The data
    - * type of the collation order is int32_t.
    + * Character based on the comparison level of the collator.  A collation order 
    + * consists of primary order, secondary order and tertiary order.  The data 
    + * type of the collation order is int32_t. 
      *
      * @see UCollator
      */
    @@ -113,7 +113,7 @@ typedef struct UCollationElements UCollationElements;
      * @return a struct containing collation element information
      * @stable ICU 2.0
      */
    -U_CAPI UCollationElements* U_EXPORT2
    +U_CAPI UCollationElements* U_EXPORT2 
     ucol_openElements(const UCollator  *coll,
                       const UChar      *text,
                             int32_t    textLength,
    @@ -126,7 +126,7 @@ ucol_openElements(const UCollator  *coll,
      * @return       the hash code.
      * @stable ICU 2.0
      */
    -U_CAPI int32_t U_EXPORT2
    +U_CAPI int32_t U_EXPORT2 
     ucol_keyHashCode(const uint8_t* key, int32_t length);
     
     /**
    @@ -135,7 +135,7 @@ ucol_keyHashCode(const uint8_t* key, int32_t length);
      * @param elems The UCollationElements to close.
      * @stable ICU 2.0
      */
    -U_CAPI void U_EXPORT2
    +U_CAPI void U_EXPORT2 
     ucol_closeElements(UCollationElements *elems);
     
     /**
    @@ -147,7 +147,7 @@ ucol_closeElements(UCollationElements *elems);
      * @see ucol_previous
      * @stable ICU 2.0
      */
    -U_CAPI void U_EXPORT2
    +U_CAPI void U_EXPORT2 
     ucol_reset(UCollationElements *elems);
     
     /**
    @@ -155,41 +155,41 @@ ucol_reset(UCollationElements *elems);
      * A single character may contain more than one collation element.
      * @param elems The UCollationElements containing the text.
      * @param status A pointer to a UErrorCode to receive any errors.
    - * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER
    + * @return The next collation elements ordering, otherwise returns UCOL_NULLORDER 
      *         if an error has occurred or if the end of string has been reached
      * @stable ICU 2.0
      */
    -U_CAPI int32_t U_EXPORT2
    +U_CAPI int32_t U_EXPORT2 
     ucol_next(UCollationElements *elems, UErrorCode *status);
     
     /**
      * Get the ordering priority of the previous collation element in the text.
      * A single character may contain more than one collation element.
    - * Note that internally a stack is used to store buffered collation elements.
    + * Note that internally a stack is used to store buffered collation elements. 
      * @param elems The UCollationElements containing the text.
    - * @param status A pointer to a UErrorCode to receive any errors. Noteably
    + * @param status A pointer to a UErrorCode to receive any errors. Notably 
      *               a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack
      *               buffer has been exhausted.
    - * @return The previous collation elements ordering, otherwise returns
    - *         UCOL_NULLORDER if an error has occurred or if the start of string has
    + * @return The previous collation elements ordering, otherwise returns 
    + *         UCOL_NULLORDER if an error has occurred or if the start of string has 
      *         been reached.
      * @stable ICU 2.0
      */
    -U_CAPI int32_t U_EXPORT2
    +U_CAPI int32_t U_EXPORT2 
     ucol_previous(UCollationElements *elems, UErrorCode *status);
     
     /**
    - * Get the maximum length of any expansion sequences that end with the
    + * Get the maximum length of any expansion sequences that end with the 
      * specified comparison order.
      * This is useful for .... ?
      * @param elems The UCollationElements containing the text.
      * @param order A collation order returned by previous or next.
    - * @return maximum size of the expansion sequences ending with the collation
    - *         element or 1 if collation element does not occur at the end of any
    + * @return maximum size of the expansion sequences ending with the collation 
    + *         element or 1 if collation element does not occur at the end of any 
      *         expansion sequence
      * @stable ICU 2.0
      */
    -U_CAPI int32_t U_EXPORT2
    +U_CAPI int32_t U_EXPORT2 
     ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
     
     /**
    @@ -209,7 +209,7 @@ ucol_getMaxExpansion(const UCollationElements *elems, int32_t order);
      * @see ucol_getText
      * @stable ICU 2.0
      */
    -U_CAPI void U_EXPORT2
    +U_CAPI void U_EXPORT2 
     ucol_setText(      UCollationElements *elems,
                  const UChar              *text,
                        int32_t            textLength,
    @@ -224,7 +224,7 @@ ucol_setText(      UCollationElements *elems,
      * @see ucol_setOffset
      * @stable ICU 2.0
      */
    -U_CAPI int32_t U_EXPORT2
    +U_CAPI int32_t U_EXPORT2 
     ucol_getOffset(const UCollationElements *elems);
     
     /**
    @@ -239,7 +239,7 @@ ucol_getOffset(const UCollationElements *elems);
      * @see ucol_getOffset
      * @stable ICU 2.0
      */
    -U_CAPI void U_EXPORT2
    +U_CAPI void U_EXPORT2 
     ucol_setOffset(UCollationElements *elems,
                    int32_t             offset,
                    UErrorCode         *status);
    @@ -251,7 +251,7 @@ ucol_setOffset(UCollationElements *elems,
     * @stable ICU 2.6
     */
     U_CAPI int32_t U_EXPORT2
    -ucol_primaryOrder (int32_t order);
    +ucol_primaryOrder (int32_t order); 
     
     /**
     * Get the secondary order of a collation order.
    @@ -260,7 +260,7 @@ ucol_primaryOrder (int32_t order);
     * @stable ICU 2.6
     */
     U_CAPI int32_t U_EXPORT2
    -ucol_secondaryOrder (int32_t order);
    +ucol_secondaryOrder (int32_t order); 
     
     /**
     * Get the tertiary order of a collation order.
    @@ -269,7 +269,7 @@ ucol_secondaryOrder (int32_t order);
     * @stable ICU 2.6
     */
     U_CAPI int32_t U_EXPORT2
    -ucol_tertiaryOrder (int32_t order);
    +ucol_tertiaryOrder (int32_t order); 
     
     #endif /* #if !UCONFIG_NO_COLLATION */
     
    diff --git a/deps/icu-small/source/i18n/unicode/ucsdet.h b/deps/icu-small/source/i18n/unicode/ucsdet.h
    index 50281ad1fb54cb..8c62fde9d2eeed 100644
    --- a/deps/icu-small/source/i18n/unicode/ucsdet.h
    +++ b/deps/icu-small/source/i18n/unicode/ucsdet.h
    @@ -32,7 +32,7 @@
     #endif   // U_SHOW_CPLUSPLUS_API
     
     /**
    - * \file
    + * \file 
      * \brief C API: Charset Detection API
      *
      * This API provides a facility for detecting the
    @@ -53,7 +53,7 @@
      * Compact Encoding Detector, https://github.com/google/compact_enc_det.
      * It often gives more accurate results, especially with short input samples.
      */
    -
    + 
     
     struct UCharsetDetector;
     /**
    @@ -155,8 +155,8 @@ ucsdet_setDeclaredEncoding(UCharsetDetector *ucsd, const char *encoding, int32_t
     
     /**
      * Return the charset that best matches the supplied input data.
    - *
    - * Note though, that because the detection
    + * 
    + * Note though, that because the detection 
      * only looks at the start of the input data,
      * there is a possibility that the returned charset will fail to handle
      * the full set of input data.
    @@ -180,7 +180,7 @@ ucsdet_setDeclaredEncoding(UCharsetDetector *ucsd, const char *encoding, int32_t
      */
     U_CAPI const UCharsetMatch * U_EXPORT2
     ucsdet_detect(UCharsetDetector *ucsd, UErrorCode *status);
    -
    +    
     
     /**
      *  Find all charset matches that appear to be consistent with the input,
    @@ -193,14 +193,14 @@ ucsdet_detect(UCharsetDetector *ucsd, UErrorCode *status);
      *  

    * The returned UCharsetMatch objects are owned by the UCharsetDetector. * They will remain valid until the detector is closed or modified - * + * *

    - * Return an error if + * Return an error if *

      *
    • no charsets appear to match the input data.
    • *
    • no input text has been provided
    • *
    - * + * * @param ucsd the charset detector to be used. * @param matchesFound pointer to a variable that will be set to the * number of charsets identified that are consistent with @@ -300,7 +300,7 @@ ucsdet_getLanguage(const UCharsetMatch *ucsm, UErrorCode *status); * NUL character will be appended to the buffer if space is available. * * The number of UChars in the output string, not including the terminating - * NUL, is returned. + * NUL, is returned. * * If the supplied buffer is smaller than required to hold the output, * the contents of the buffer are undefined. The full output string length @@ -323,7 +323,7 @@ ucsdet_getUChars(const UCharsetMatch *ucsm, /** - * Get an iterator over the set of all detectable charsets - + * Get an iterator over the set of all detectable charsets - * over the charsets that are known to the charset detection * service. * @@ -418,3 +418,5 @@ ucsdet_setDetectableCharset(UCharsetDetector *ucsd, const char *encoding, UBool #endif #endif /* __UCSDET_H */ + + diff --git a/deps/icu-small/source/i18n/unicode/udat.h b/deps/icu-small/source/i18n/unicode/udat.h index 2963e5506c821d..0e6e6b76daa37d 100644 --- a/deps/icu-small/source/i18n/unicode/udat.h +++ b/deps/icu-small/source/i18n/unicode/udat.h @@ -1530,7 +1530,21 @@ typedef enum UDateFormatSymbolType { * udat_setSymbols not supported for UDAT_ZODIAC_NAMES_NARROW) * @stable ICU 54 */ - UDAT_ZODIAC_NAMES_NARROW + UDAT_ZODIAC_NAMES_NARROW, + +#ifndef U_HIDE_DRAFT_API + /** + * The narrow quarter names, for example 1 + * @draft ICU 70 + */ + UDAT_NARROW_QUARTERS, + + /** + * The narrow standalone quarter names, for example 1 + * @draft ICU 70 + */ + UDAT_STANDALONE_NARROW_QUARTERS +#endif // U_HIDE_DRAFT_API } UDateFormatSymbolType; struct UDateFormatSymbols; @@ -1566,7 +1580,7 @@ udat_getSymbols(const UDateFormat *fmt, /** * Count the number of particular symbols for an UDateFormat. -* This function is most useful as for detemining the loop termination condition +* This function is most useful as for determining the loop termination condition * for calls to {@link #udat_getSymbols }. * @param fmt The formatter to query. * @param type The type of symbols to count. One of UDAT_ERAS, UDAT_MONTHS, UDAT_SHORT_MONTHS, diff --git a/deps/icu-small/source/i18n/unicode/udateintervalformat.h b/deps/icu-small/source/i18n/unicode/udateintervalformat.h index 9ed53a87d68904..8439444d07961b 100644 --- a/deps/icu-small/source/i18n/unicode/udateintervalformat.h +++ b/deps/icu-small/source/i18n/unicode/udateintervalformat.h @@ -48,7 +48,7 @@ * - The skeleton MMMd will produce * for en_US, "Mar 4-8" * for en_GB, "4-8 Mar" - * + * * Note: the "-" characters in the above sample output will actually be * Unicode 2013, EN_DASH, in all but the last example. * @@ -301,7 +301,6 @@ udtitvfmt_formatCalendarToResult( UFormattedDateInterval* result, UErrorCode* status); -#ifndef U_HIDE_DRAFT_API /** * Set a particular UDisplayContext value in the formatter, such as * UDISPCTX_CAPITALIZATION_FOR_STANDALONE. This causes the formatted @@ -311,7 +310,7 @@ udtitvfmt_formatCalendarToResult( * @param formatter The formatter for which to set a UDisplayContext value. * @param value The UDisplayContext value to set. * @param status A pointer to an UErrorCode to receive any errors - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI void U_EXPORT2 udtitvfmt_setContext(UDateIntervalFormat* formatter, UDisplayContext value, UErrorCode* status); @@ -323,13 +322,11 @@ udtitvfmt_setContext(UDateIntervalFormat* formatter, UDisplayContext value, UErr * @param type The UDisplayContextType whose value to return * @param status A pointer to an UErrorCode to receive any errors * @return The UDisplayContextValue for the specified type. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI UDisplayContext U_EXPORT2 udtitvfmt_getContext(const UDateIntervalFormat* formatter, UDisplayContextType type, UErrorCode* status); -#endif /* U_HIDE_DRAFT_API */ - #endif /* #if !UCONFIG_NO_FORMATTING */ #endif diff --git a/deps/icu-small/source/i18n/unicode/udatpg.h b/deps/icu-small/source/i18n/unicode/udatpg.h index 893e1e6831ae34..efe4357bfeecd2 100644 --- a/deps/icu-small/source/i18n/unicode/udatpg.h +++ b/deps/icu-small/source/i18n/unicode/udatpg.h @@ -31,15 +31,15 @@ * \file * \brief C API: Wrapper for icu::DateTimePatternGenerator (unicode/dtptngen.h). * - * UDateTimePatternGenerator provides flexible generation of date format patterns, - * like "yy-MM-dd". The user can build up the generator by adding successive - * patterns. Once that is done, a query can be made using a "skeleton", which is - * a pattern which just includes the desired fields and lengths. The generator + * UDateTimePatternGenerator provides flexible generation of date format patterns, + * like "yy-MM-dd". The user can build up the generator by adding successive + * patterns. Once that is done, a query can be made using a "skeleton", which is + * a pattern which just includes the desired fields and lengths. The generator * will return the "best fit" pattern corresponding to that skeleton. *

    The main method people will use is udatpg_getBestPattern, since normally - * UDateTimePatternGenerator is pre-built with data from a particular locale. + * UDateTimePatternGenerator is pre-built with data from a particular locale. * However, generators can be built directly from other data as well. - *

    Issue: may be useful to also have a function that returns the list of + *

    Issue: may be useful to also have a function that returns the list of * fields in a pattern, in order, since we have that internally. * That would be useful for getting the UI order of field elements. */ @@ -218,13 +218,13 @@ udatpg_clone(const UDateTimePatternGenerator *dtpg, UErrorCode *pErrorCode); /** * Get the best pattern matching the input skeleton. It is guaranteed to * have all of the fields in the skeleton. - * + * * Note that this function uses a non-const UDateTimePatternGenerator: * It uses a stateful pattern parser which is set up for each generator object, * rather than creating one for each function call. * Consecutive calls to this function do not affect each other, * but this function cannot be used concurrently on a single generator object. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. * @param skeleton * The skeleton is a pattern containing only the variable fields. @@ -247,13 +247,13 @@ udatpg_getBestPattern(UDateTimePatternGenerator *dtpg, /** * Get the best pattern matching the input skeleton. It is guaranteed to * have all of the fields in the skeleton. - * + * * Note that this function uses a non-const UDateTimePatternGenerator: * It uses a stateful pattern parser which is set up for each generator object, * rather than creating one for each function call. * Consecutive calls to this function do not affect each other, * but this function cannot be used concurrently on a single generator object. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. * @param skeleton * The skeleton is a pattern containing only the variable fields. @@ -284,7 +284,7 @@ udatpg_getBestPatternWithOptions(UDateTimePatternGenerator *dtpg, /** * Get a unique skeleton from a given pattern. For example, * both "MMM-dd" and "dd/MMM" produce the skeleton "MMMdd". - * + * * Note that this function uses a non-const UDateTimePatternGenerator: * It uses a stateful pattern parser which is set up for each generator object, * rather than creating one for each function call. @@ -341,8 +341,8 @@ udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg, /** * Adds a pattern to the generator. If the pattern has the same skeleton as * an existing pattern, and the override parameter is set, then the previous - * value is overriden. Otherwise, the previous value is retained. In either - * case, the conflicting status is set and previous vale is stored in + * value is overridden. Otherwise, the previous value is retained. In either + * case, the conflicting status is set and previous vale is stored in * conflicting pattern. *

    * Note that single-field patterns (like "MMM") are automatically added, and @@ -351,14 +351,14 @@ udatpg_getBaseSkeleton(UDateTimePatternGenerator *unusedDtpg, * @param dtpg a pointer to UDateTimePatternGenerator. * @param pattern input pattern, such as "dd/MMM" * @param patternLength the length of pattern. - * @param override When existing values are to be overridden use true, + * @param override When existing values are to be overridden use true, * otherwise use false. * @param conflictingPattern Previous pattern with the same skeleton. * @param capacity the capacity of conflictingPattern. * @param pLength a pointer to the length of conflictingPattern. * @param pErrorCode a pointer to the UErrorCode which must not indicate a * failure before the function call. - * @return conflicting status. The value could be UDATPG_NO_CONFLICT, + * @return conflicting status. The value could be UDATPG_NO_CONFLICT, * UDATPG_BASE_CONFLICT or UDATPG_CONFLICT. * @stable ICU 3.8 */ @@ -533,7 +533,7 @@ udatpg_setDecimal(UDateTimePatternGenerator *dtpg, /** * Getter corresponding to setDecimal. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. * @param pLength A pointer that will receive the length of the decimal string. * @return corresponding to the decimal point. @@ -616,7 +616,7 @@ udatpg_replaceFieldTypesWithOptions(UDateTimePatternGenerator *dtpg, /** * Return a UEnumeration list of all the skeletons in canonical form. * Call udatpg_getPatternForSkeleton() to get the corresponding pattern. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. * @param pErrorCode a pointer to the UErrorCode which must not indicate a * failure before the function call @@ -642,9 +642,9 @@ udatpg_openBaseSkeletons(const UDateTimePatternGenerator *dtpg, UErrorCode *pErr /** * Get the pattern corresponding to a given skeleton. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. - * @param skeleton + * @param skeleton * @param skeletonLength pointer to the length of skeleton. * @param pLength pointer to the length of return pattern. * @return pattern corresponding to a given skeleton. @@ -660,9 +660,9 @@ udatpg_getPatternForSkeleton(const UDateTimePatternGenerator *dtpg, /** * Return the default hour cycle for a locale. Uses the locale that the * UDateTimePatternGenerator was initially created with. - * + * * Cannot be used on an empty UDateTimePatternGenerator instance. - * + * * @param dtpg a pointer to UDateTimePatternGenerator. * @param pErrorCode a pointer to the UErrorCode which must not indicate a * failure before the function call. Set to U_UNSUPPORTED_ERROR diff --git a/deps/icu-small/source/i18n/unicode/uformattable.h b/deps/icu-small/source/i18n/unicode/uformattable.h index 6b8bee1f3dfe7c..4c4a307a24b4a1 100644 --- a/deps/icu-small/source/i18n/unicode/uformattable.h +++ b/deps/icu-small/source/i18n/unicode/uformattable.h @@ -173,7 +173,7 @@ ufmt_getDouble(UFormattable* fmt, UErrorCode *status); * as appropriate, is returned and the status is set to * U_INVALID_FORMAT_ERROR. If this object is of type UFMT_INT64 and * it fits within a long, then no precision is lost. If it is of - * type kDouble or kDecimalNumber, then a conversion is peformed, with + * type kDouble or kDecimalNumber, then a conversion is performed, with * truncation of any fractional part. If the type is UFMT_OBJECT and * the object is a Measure, then the result of * getNumber().getLong(status) is returned. If this object is @@ -195,7 +195,7 @@ ufmt_getLong(UFormattable* fmt, UErrorCode *status); * the maximum or minimum int64 value, as appropriate, is returned * and the status is set to U_INVALID_FORMAT_ERROR. If the * magnitude fits in an int64, then a casting conversion is - * peformed, with truncation of any fractional part. If the type + * performed, with truncation of any fractional part. If the type * is UFMT_OBJECT and the object is a Measure, then the result of * getNumber().getDouble(status) is returned. If this object is * neither a numeric type nor a Measure, then 0 is returned and @@ -267,7 +267,7 @@ ufmt_getArrayItemByIndex(UFormattable* fmt, int32_t n, UErrorCode *status); * the full precision and range of the original input, unconstrained by * the limits of a double floating point or a 64 bit int. * - * This function is not thread safe, and therfore is not declared const, + * This function is not thread safe, and therefore is not declared const, * even though it is logically const. * The resulting buffer is owned by the UFormattable and is invalid if any other functions are * called on the UFormattable. diff --git a/deps/icu-small/source/i18n/unicode/uformattedvalue.h b/deps/icu-small/source/i18n/unicode/uformattedvalue.h index c964b3a74dd3a1..1a550e87589c10 100644 --- a/deps/icu-small/source/i18n/unicode/uformattedvalue.h +++ b/deps/icu-small/source/i18n/unicode/uformattedvalue.h @@ -13,7 +13,7 @@ /** * \file * \brief C API: Abstract operations for localized strings. - * + * * This file contains declarations for classes that deal with formatted strings. A number * of APIs throughout ICU use these classes for expressing their localized output. */ @@ -22,7 +22,7 @@ /** * All possible field categories in ICU. Every entry in this enum corresponds * to another enum that exists in ICU. - * + * * In the APIs that take a UFieldCategory, an int32_t type is used. Field * categories having any of the top four bits turned on are reserved as * private-use for external APIs implementing FormattedValue. This means that @@ -34,7 +34,7 @@ typedef enum UFieldCategory { /** * For an undefined field category. - * + * * @stable ICU 64 */ UFIELD_CATEGORY_UNDEFINED = 0, @@ -160,7 +160,7 @@ ucfpos_close(UConstrainedFieldPosition* ucfpos); /** * Sets a constraint on the field category. - * + * * When this instance of UConstrainedFieldPosition is passed to ufmtval_nextPosition, * positions are skipped unless they have the given category. * @@ -192,7 +192,7 @@ ucfpos_constrainCategory( /** * Sets a constraint on the category and field. - * + * * When this instance of UConstrainedFieldPosition is passed to ufmtval_nextPosition, * positions are skipped unless they have the given category and field. * diff --git a/deps/icu-small/source/i18n/unicode/ulistformatter.h b/deps/icu-small/source/i18n/unicode/ulistformatter.h index 28a1e580370006..8334c7852f0cc9 100644 --- a/deps/icu-small/source/i18n/unicode/ulistformatter.h +++ b/deps/icu-small/source/i18n/unicode/ulistformatter.h @@ -24,7 +24,7 @@ * \file * \brief C API: Format a list in a locale-appropriate way. * - * A UListFormatter is used to format a list of items in a locale-appropriate way, + * A UListFormatter is used to format a list of items in a locale-appropriate way, * using data from CLDR. * Example: Input data ["Alice", "Bob", "Charlie", "Delta"] will be formatted * as "Alice, Bob, Charlie, and Delta" in English. diff --git a/deps/icu-small/source/i18n/unicode/ulocdata.h b/deps/icu-small/source/i18n/unicode/ulocdata.h index 3977743e3238ec..3647df9596ae63 100644 --- a/deps/icu-small/source/i18n/unicode/ulocdata.h +++ b/deps/icu-small/source/i18n/unicode/ulocdata.h @@ -229,15 +229,15 @@ ulocdata_getMeasurementSystem(const char *localeID, UErrorCode *status); /** * Returns the element gives the normal business letter size, and customary units. * The units for the numbers are always in milli-meters. - * For US since 8.5 and 11 do not yeild an integral value when converted to milli-meters, + * For US since 8.5 and 11 do not yield an integral value when converted to milli-meters, * the values are rounded off. - * So for A4 size paper the height and width are 297 mm and 210 mm repectively, + * So for A4 size paper the height and width are 297 mm and 210 mm respectively, * and for US letter size the height and width are 279 mm and 216 mm respectively. * Please note that this API will change in ICU 3.6 and will use an ulocdata object. * * @param localeID The id of the locale for which the paper size information to be retrieved. - * @param height A pointer to int to recieve the height information. - * @param width A pointer to int to recieve the width information. + * @param height A pointer to int to receive the height information. + * @param width A pointer to int to receive the width information. * @param status Must be a valid pointer to an error code value, * which must not indicate a failure before the function call. * @stable ICU 2.8 @@ -247,7 +247,7 @@ ulocdata_getPaperSize(const char *localeID, int32_t *height, int32_t *width, UEr /** * Return the current CLDR version used by the library. - * @param versionArray fillin that will recieve the version number + * @param versionArray fill-in that will receive the version number * @param status error code - could be U_MISSING_RESOURCE_ERROR if the version was not found. * @stable ICU 4.2 */ diff --git a/deps/icu-small/source/i18n/unicode/umsg.h b/deps/icu-small/source/i18n/unicode/umsg.h index c087031c6d4e35..c955dc18ac4d4a 100644 --- a/deps/icu-small/source/i18n/unicode/umsg.h +++ b/deps/icu-small/source/i18n/unicode/umsg.h @@ -1,10 +1,10 @@ // © 2016 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html /******************************************************************** - * COPYRIGHT: + * COPYRIGHT: * Copyright (c) 1997-2011, International Business Machines Corporation and * others. All Rights Reserved. - * Copyright (C) 2010 , Yahoo! Inc. + * Copyright (C) 2010 , Yahoo! Inc. ******************************************************************** * * file name: umsg.h @@ -103,8 +103,8 @@ * u_uastrcpy(str, "MyDisk"); * u_uastrcpy(pattern, "The disk {1} contains {0,choice,0#no files|1#one file|1<{0,number,integer} files}"); * for(i=0; i<3; i++){ - * resultlength=0; - * resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str); + * resultlength=0; + * resultLengthOut=u_formatMessage( "en_US", pattern, u_strlen(pattern), NULL, resultlength, &status, testArgs[i], str); * if(status==U_BUFFER_OVERFLOW_ERROR){ * status=U_ZERO_ERROR; * resultlength=resultLengthOut+1; @@ -178,7 +178,7 @@ * @see u_parseMessage * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 u_formatMessage(const char *locale, const UChar *pattern, int32_t patternLength, @@ -205,7 +205,7 @@ u_formatMessage(const char *locale, * @see u_parseMessage * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 u_vformatMessage( const char *locale, const UChar *pattern, int32_t patternLength, @@ -230,7 +230,7 @@ u_vformatMessage( const char *locale, * @see u_formatMessage * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 u_parseMessage( const char *locale, const UChar *pattern, int32_t patternLength, @@ -255,7 +255,7 @@ u_parseMessage( const char *locale, * @see u_formatMessage * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 u_vparseMessage(const char *locale, const UChar *pattern, int32_t patternLength, @@ -284,7 +284,7 @@ u_vparseMessage(const char *locale, * @see u_parseMessage * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 u_formatMessageWithError( const char *locale, const UChar *pattern, int32_t patternLength, @@ -313,7 +313,7 @@ u_formatMessageWithError( const char *locale, * output was truncated. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 u_vformatMessageWithError( const char *locale, const UChar *pattern, int32_t patternLength, @@ -341,7 +341,7 @@ u_vformatMessageWithError( const char *locale, * @see u_formatMessage * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 u_parseMessageWithError(const char *locale, const UChar *pattern, int32_t patternLength, @@ -369,7 +369,7 @@ u_parseMessageWithError(const char *locale, * @see u_formatMessage * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 u_vparseMessageWithError(const char *locale, const UChar *pattern, int32_t patternLength, @@ -380,7 +380,7 @@ u_vparseMessageWithError(const char *locale, UErrorCode* status); /*----------------------- New experimental API --------------------------- */ -/** +/** * The message format object * @stable ICU 2.0 */ @@ -392,14 +392,14 @@ typedef void* UMessageFormat; * @param pattern A pattern specifying the format to use. * @param patternLength Length of the pattern to use * @param locale The locale for which the messages are formatted. - * @param parseError A pointer to UParseError struct to receive any errors - * occured during parsing. Can be NULL. + * @param parseError A pointer to UParseError struct to receive any errors + * occurred during parsing. Can be NULL. * @param status A pointer to an UErrorCode to receive any errors. - * @return A pointer to a UMessageFormat to use for formatting - * messages, or 0 if an error occurred. + * @return A pointer to a UMessageFormat to use for formatting + * messages, or 0 if an error occurred. * @stable ICU 2.0 */ -U_CAPI UMessageFormat* U_EXPORT2 +U_CAPI UMessageFormat* U_EXPORT2 umsg_open( const UChar *pattern, int32_t patternLength, const char *locale, @@ -412,7 +412,7 @@ umsg_open( const UChar *pattern, * @param format The formatter to close. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 umsg_close(UMessageFormat* format); #if U_SHOW_CPLUSPLUS_API @@ -442,7 +442,7 @@ U_NAMESPACE_END * @return A pointer to a UDateFormat identical to fmt. * @stable ICU 2.0 */ -U_CAPI UMessageFormat U_EXPORT2 +U_CAPI UMessageFormat U_EXPORT2 umsg_clone(const UMessageFormat *fmt, UErrorCode *status); @@ -453,7 +453,7 @@ umsg_clone(const UMessageFormat *fmt, * @param locale The locale the formatter should use. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 umsg_setLocale(UMessageFormat *fmt, const char* locale); @@ -464,7 +464,7 @@ umsg_setLocale(UMessageFormat *fmt, * @return the locale. * @stable ICU 2.0 */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 umsg_getLocale(const UMessageFormat *fmt); /** @@ -472,14 +472,14 @@ umsg_getLocale(const UMessageFormat *fmt); * @param fmt The formatter to use * @param pattern The pattern to be applied. * @param patternLength Length of the pattern to use - * @param parseError Struct to receive information on position + * @param parseError Struct to receive information on position * of error if an error is encountered.Can be NULL. * @param status Output param set to success/failure code on * exit. If the pattern is invalid, this will be * set to a failure result. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 umsg_applyPattern( UMessageFormat *fmt, const UChar* pattern, int32_t patternLength, @@ -493,13 +493,13 @@ umsg_applyPattern( UMessageFormat *fmt, * @param resultLength The maximum size of result. * @param status Output param set to success/failure code on * exit. If the pattern is invalid, this will be - * set to a failure result. + * set to a failure result. * @return the pattern of the format * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 umsg_toPattern(const UMessageFormat *fmt, - UChar* result, + UChar* result, int32_t resultLength, UErrorCode* status); @@ -512,13 +512,13 @@ umsg_toPattern(const UMessageFormat *fmt, * @param result A pointer to a buffer to receive the formatted message. * @param resultLength The maximum size of result. * @param status A pointer to an UErrorCode to receive any errors - * @param ... A variable-length argument list containing the arguments + * @param ... A variable-length argument list containing the arguments * specified in pattern. - * @return The total buffer size needed; if greater than resultLength, + * @return The total buffer size needed; if greater than resultLength, * the output was truncated. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 umsg_format( const UMessageFormat *fmt, UChar *result, int32_t resultLength, @@ -530,17 +530,17 @@ umsg_format( const UMessageFormat *fmt, * This function may perform re-ordering of the arguments depending on the * locale. For all numeric arguments, double is assumed unless the type is * explicitly integer. All choice format arguments must be of type double. - * @param fmt The formatter to use + * @param fmt The formatter to use * @param result A pointer to a buffer to receive the formatted message. * @param resultLength The maximum size of result. - * @param ap A variable-length argument list containing the arguments + * @param ap A variable-length argument list containing the arguments * @param status A pointer to an UErrorCode to receive any errors * specified in pattern. - * @return The total buffer size needed; if greater than resultLength, + * @return The total buffer size needed; if greater than resultLength, * the output was truncated. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 umsg_vformat( const UMessageFormat *fmt, UChar *result, int32_t resultLength, @@ -552,7 +552,7 @@ umsg_vformat( const UMessageFormat *fmt, * For numeric arguments, this function will always use doubles. Integer types * should not be passed. * This function is not able to parse all output from {@link #umsg_format }. - * @param fmt The formatter to use + * @param fmt The formatter to use * @param source The text to parse. * @param sourceLength The length of source, or -1 if null-terminated. * @param count Output param to receive number of elements returned. @@ -561,7 +561,7 @@ umsg_vformat( const UMessageFormat *fmt, * specified in pattern. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 umsg_parse( const UMessageFormat *fmt, const UChar *source, int32_t sourceLength, @@ -574,7 +574,7 @@ umsg_parse( const UMessageFormat *fmt, * For numeric arguments, this function will always use doubles. Integer types * should not be passed. * This function is not able to parse all output from {@link #umsg_format }. - * @param fmt The formatter to use + * @param fmt The formatter to use * @param source The text to parse. * @param sourceLength The length of source, or -1 if null-terminated. * @param count Output param to receive number of elements returned. @@ -584,7 +584,7 @@ umsg_parse( const UMessageFormat *fmt, * @see u_formatMessage * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 umsg_vparse(const UMessageFormat *fmt, const UChar *source, int32_t sourceLength, @@ -596,7 +596,7 @@ umsg_vparse(const UMessageFormat *fmt, /** * Convert an 'apostrophe-friendly' pattern into a standard * pattern. Standard patterns treat all apostrophes as - * quotes, which is problematic in some languages, e.g. + * quotes, which is problematic in some languages, e.g. * French, where apostrophe is commonly used. This utility * assumes that only an unpaired apostrophe immediately before * a brace is a true quote. Other unpaired apostrophes are paired, @@ -616,8 +616,8 @@ umsg_vparse(const UMessageFormat *fmt, * not * @stable ICU 3.4 */ -U_CAPI int32_t U_EXPORT2 -umsg_autoQuoteApostrophe(const UChar* pattern, +U_CAPI int32_t U_EXPORT2 +umsg_autoQuoteApostrophe(const UChar* pattern, int32_t patternLength, UChar* dest, int32_t destCapacity, diff --git a/deps/icu-small/source/i18n/unicode/unirepl.h b/deps/icu-small/source/i18n/unicode/unirepl.h index 891a1d527fd84a..7f6edcf61ad801 100644 --- a/deps/icu-small/source/i18n/unicode/unirepl.h +++ b/deps/icu-small/source/i18n/unicode/unirepl.h @@ -17,7 +17,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: UnicodeReplacer */ diff --git a/deps/icu-small/source/i18n/unicode/unum.h b/deps/icu-small/source/i18n/unicode/unum.h index 76c7d151357875..14f76168b61b5f 100644 --- a/deps/icu-small/source/i18n/unicode/unum.h +++ b/deps/icu-small/source/i18n/unicode/unum.h @@ -35,7 +35,7 @@ * \brief C API: Compatibility APIs for number formatting. * *

    Number Format C API

    - * + * *

    IMPORTANT: New users with are strongly encouraged to * see if unumberformatter.h fits their use case. Although not deprecated, * this header is provided for backwards compatibility only. @@ -143,7 +143,7 @@ */ typedef void* UNumberFormat; -/** The possible number format styles. +/** The possible number format styles. * @stable ICU 2.0 */ typedef enum UNumberFormatStyle { @@ -183,24 +183,24 @@ typedef enum UNumberFormatStyle { * @stable ICU 2.0 */ UNUM_SPELLOUT=5, - /** + /** * Ordinal rule-based format . The default ruleset can be specified/changed using * unum_setTextAttribute with UNUM_DEFAULT_RULESET; the available public rulesets * can be listed using unum_getTextAttribute with UNUM_PUBLIC_RULESETS. * @stable ICU 3.0 */ UNUM_ORDINAL=6, - /** - * Duration rule-based format + /** + * Duration rule-based format * @stable ICU 3.0 */ UNUM_DURATION=7, - /** + /** * Numbering system rule-based format * @stable ICU 4.2 */ UNUM_NUMBERING_SYSTEM=8, - /** + /** * Rule-based format defined by a pattern string. * @stable ICU 3.0 */ @@ -224,7 +224,7 @@ typedef enum UNumberFormatStyle { */ UNUM_CURRENCY_ACCOUNTING=12, /** - * Currency format with a currency symbol given CASH usage, e.g., + * Currency format with a currency symbol given CASH usage, e.g., * "NT$3" instead of "NT$3.23". * @stable ICU 54 */ @@ -298,7 +298,7 @@ typedef enum UNumberFormatRoundingMode { #endif /* U_HIDE_DEPRECATED_API */ UNUM_ROUND_HALFDOWN = UNUM_ROUND_HALFEVEN + 1, UNUM_ROUND_HALFUP, - /** + /** * ROUND_UNNECESSARY reports an error if formatted result is not exact. * @stable ICU 4.8 */ @@ -322,7 +322,7 @@ typedef enum UNumberFormatRoundingMode { #endif // U_HIDE_DRAFT_API } UNumberFormatRoundingMode; -/** The possible number format pad positions. +/** The possible number format pad positions. * @stable ICU 2.0 */ typedef enum UNumberFormatPadPosition { @@ -412,29 +412,27 @@ typedef enum UNumberFormatFields { } UNumberFormatFields; -#ifndef U_HIDE_DRAFT_API /** * Selectors with special numeric values to use locale default minimum grouping * digits for the DecimalFormat/UNumberFormat setMinimumGroupingDigits method. * Do not use these constants with the [U]NumberFormatter API. * - * @draft ICU 68 + * @stable ICU 68 */ typedef enum UNumberFormatMinimumGroupingDigits { /** * Display grouping using the default strategy for all locales. - * @draft ICU 68 + * @stable ICU 68 */ UNUM_MINIMUM_GROUPING_DIGITS_AUTO = -2, /** * Display grouping using locale defaults, except do not show grouping on * values smaller than 10000 (such that there is a minimum of two digits * before the first separator). - * @draft ICU 68 + * @stable ICU 68 */ UNUM_MINIMUM_GROUPING_DIGITS_MIN2 = -3, } UNumberFormatMinimumGroupingDigits; -#endif // U_HIDE_DRAFT_API /** * Create and return a new UNumberFormat for formatting and parsing @@ -455,7 +453,7 @@ typedef enum UNumberFormatMinimumGroupingDigits { *

    NOTE:: New users with are strongly encouraged to * use unumf_openForSkeletonAndLocale instead of unum_open. * - * @param pattern A pattern specifying the format to use. + * @param pattern A pattern specifying the format to use. * This parameter is ignored unless the style is * UNUM_PATTERN_DECIMAL or UNUM_PATTERN_RULEBASED. * @param patternLength The number of characters in the pattern, or -1 @@ -473,7 +471,7 @@ typedef enum UNumberFormatMinimumGroupingDigits { * @see DecimalFormat * @stable ICU 2.0 */ -U_CAPI UNumberFormat* U_EXPORT2 +U_CAPI UNumberFormat* U_EXPORT2 unum_open( UNumberFormatStyle style, const UChar* pattern, int32_t patternLength, @@ -488,7 +486,7 @@ unum_open( UNumberFormatStyle style, * @param fmt The formatter to close. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 unum_close(UNumberFormat* fmt); #if U_SHOW_CPLUSPLUS_API @@ -518,7 +516,7 @@ U_NAMESPACE_END * @return A pointer to a UNumberFormat identical to fmt. * @stable ICU 2.0 */ -U_CAPI UNumberFormat* U_EXPORT2 +U_CAPI UNumberFormat* U_EXPORT2 unum_clone(const UNumberFormat *fmt, UErrorCode *status); @@ -546,7 +544,7 @@ unum_clone(const UNumberFormat *fmt, * @see UFieldPosition * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_format( const UNumberFormat* fmt, int32_t number, UChar* result, @@ -578,7 +576,7 @@ unum_format( const UNumberFormat* fmt, * @see UFieldPosition * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_formatInt64(const UNumberFormat *fmt, int64_t number, UChar* result, @@ -610,7 +608,7 @@ unum_formatInt64(const UNumberFormat *fmt, * @see UFieldPosition * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_formatDouble( const UNumberFormat* fmt, double number, UChar* result, @@ -695,9 +693,9 @@ unum_formatDoubleForFields(const UNumberFormat* format, * @see unum_parseInt64 * @see unum_parseDouble * @see UFieldPosition -* @stable ICU 4.4 +* @stable ICU 4.4 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_formatDecimal( const UNumberFormat* fmt, const char * number, int32_t length, @@ -792,7 +790,7 @@ unum_formatUFormattable(const UNumberFormat* fmt, * @see unum_formatDouble * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_parse( const UNumberFormat* fmt, const UChar* text, int32_t textLength, @@ -818,7 +816,7 @@ unum_parse( const UNumberFormat* fmt, * @see unum_formatDouble * @stable ICU 2.8 */ -U_CAPI int64_t U_EXPORT2 +U_CAPI int64_t U_EXPORT2 unum_parseInt64(const UNumberFormat* fmt, const UChar* text, int32_t textLength, @@ -844,7 +842,7 @@ unum_parseInt64(const UNumberFormat* fmt, * @see unum_formatDouble * @stable ICU 2.0 */ -U_CAPI double U_EXPORT2 +U_CAPI double U_EXPORT2 unum_parseDouble( const UNumberFormat* fmt, const UChar* text, int32_t textLength, @@ -879,7 +877,7 @@ unum_parseDouble( const UNumberFormat* fmt, * @see unum_formatDouble * @stable ICU 4.4 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_parseDecimal(const UNumberFormat* fmt, const UChar* text, int32_t textLength, @@ -959,7 +957,7 @@ unum_parseToUFormattable(const UNumberFormat* fmt, * @see DecimalFormat * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 unum_applyPattern( UNumberFormat *format, UBool localized, const UChar *pattern, @@ -978,7 +976,7 @@ unum_applyPattern( UNumberFormat *format, * @see unum_countAvailable * @stable ICU 2.0 */ -U_CAPI const char* U_EXPORT2 +U_CAPI const char* U_EXPORT2 unum_getAvailable(int32_t localeIndex); /** @@ -990,7 +988,7 @@ unum_getAvailable(int32_t localeIndex); * @see unum_getAvailable * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_countAvailable(void); #if UCONFIG_HAVE_PARSEALLINPUT @@ -1067,7 +1065,7 @@ typedef enum UNumberFormatAttribute { */ UNUM_PARSE_ALL_INPUT = 20, #endif - /** + /** * Scale, which adjusts the position of the * decimal point when formatting. Amounts will be multiplied by 10 ^ (scale) * before they are formatted. The default value for the scale is 0 ( no adjustment ). @@ -1090,9 +1088,9 @@ typedef enum UNumberFormatAttribute { */ UNUM_MINIMUM_GROUPING_DIGITS = 22, - /** + /** * if this attribute is set to 0, it is set to UNUM_CURRENCY_STANDARD purpose, - * otherwise it is UNUM_CURRENCY_CASH purpose + * otherwise it is UNUM_CASH_CURRENCY purpose * Default: 0 (UNUM_CURRENCY_STANDARD purpose) * @stable ICU 54 */ @@ -1111,7 +1109,7 @@ typedef enum UNumberFormatAttribute { * @stable ICU 50 */ UNUM_FORMAT_FAIL_IF_MORE_THAN_MAX_DIGITS = 0x1000, - /** + /** * if this attribute is set to 1, specifies that, if the pattern doesn't contain an exponent, the exponent will not be parsed. If the pattern does contain an exponent, this attribute has no effect. * Has no effect on formatting. * Default: 0 (unset) @@ -1119,8 +1117,8 @@ typedef enum UNumberFormatAttribute { */ UNUM_PARSE_NO_EXPONENT = 0x1001, - /** - * if this attribute is set to 1, specifies that, if the pattern contains a + /** + * if this attribute is set to 1, specifies that, if the pattern contains a * decimal mark the input is required to have one. If this attribute is set to 0, * specifies that input does not have to contain a decimal mark. * Has no effect on formatting. @@ -1171,7 +1169,7 @@ typedef enum UNumberFormatAttribute { * @see unum_setTextAttribute * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_getAttribute(const UNumberFormat* fmt, UNumberFormatAttribute attr); @@ -1194,7 +1192,7 @@ unum_getAttribute(const UNumberFormat* fmt, * @see unum_setTextAttribute * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 unum_setAttribute( UNumberFormat* fmt, UNumberFormatAttribute attr, int32_t newValue); @@ -1214,7 +1212,7 @@ unum_setAttribute( UNumberFormat* fmt, * @see unum_setTextAttribute * @stable ICU 2.0 */ -U_CAPI double U_EXPORT2 +U_CAPI double U_EXPORT2 unum_getDoubleAttribute(const UNumberFormat* fmt, UNumberFormatAttribute attr); @@ -1232,7 +1230,7 @@ unum_getDoubleAttribute(const UNumberFormat* fmt, * @see unum_setTextAttribute * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 unum_setDoubleAttribute( UNumberFormat* fmt, UNumberFormatAttribute attr, double newValue); @@ -1289,7 +1287,7 @@ typedef enum UNumberFormatTextAttribute { * @see unum_setAttribute * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_getTextAttribute( const UNumberFormat* fmt, UNumberFormatTextAttribute tag, UChar* result, @@ -1312,7 +1310,7 @@ unum_getTextAttribute( const UNumberFormat* fmt, * @see unum_setAttribute * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 unum_setTextAttribute( UNumberFormat* fmt, UNumberFormatTextAttribute tag, const UChar* newValue, @@ -1335,7 +1333,7 @@ unum_setTextAttribute( UNumberFormat* fmt, * @see DecimalFormat * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_toPattern( const UNumberFormat* fmt, UBool isPatternLocalized, UChar* result, @@ -1383,7 +1381,7 @@ typedef enum UNumberFormatSymbol { /** Significant digit symbol * @stable ICU 3.0 */ UNUM_SIGNIFICANT_DIGIT_SYMBOL = 16, - /** The monetary grouping separator + /** The monetary grouping separator * @stable ICU 3.6 */ UNUM_MONETARY_GROUPING_SEPARATOR_SYMBOL = 17, @@ -1429,12 +1427,19 @@ typedef enum UNumberFormatSymbol { */ UNUM_EXPONENT_MULTIPLICATION_SYMBOL = 27, +#ifndef U_HIDE_INTERNAL_API + /** Approximately sign. + * @internal + */ + UNUM_APPROXIMATELY_SIGN_SYMBOL = 28, +#endif + #ifndef U_HIDE_DEPRECATED_API /** * One more than the highest normal UNumberFormatSymbol value. * @deprecated ICU 58 The numeric value may change over time, see ICU ticket #12420. */ - UNUM_FORMAT_SYMBOL_COUNT = 28 + UNUM_FORMAT_SYMBOL_COUNT = 29 #endif /* U_HIDE_DEPRECATED_API */ } UNumberFormatSymbol; @@ -1486,7 +1491,7 @@ unum_setSymbol(UNumberFormat *fmt, * Get the locale for this number format object. * You can choose between valid and actual locale. * @param fmt The formatter to get the locale from - * @param type type of the locale we're looking for (valid or actual) + * @param type type of the locale we're looking for (valid or actual) * @param status error code for the operation * @return the locale name * @stable ICU 2.8 @@ -1494,7 +1499,7 @@ unum_setSymbol(UNumberFormat *fmt, U_CAPI const char* U_EXPORT2 unum_getLocaleByType(const UNumberFormat *fmt, ULocDataLocaleType type, - UErrorCode* status); + UErrorCode* status); /** * Set a particular UDisplayContext value in the formatter, such as diff --git a/deps/icu-small/source/i18n/unicode/unumberformatter.h b/deps/icu-small/source/i18n/unicode/unumberformatter.h index 341d9e4ad9c628..cb980cd94ddfc8 100644 --- a/deps/icu-small/source/i18n/unicode/unumberformatter.h +++ b/deps/icu-small/source/i18n/unicode/unumberformatter.h @@ -204,7 +204,6 @@ typedef enum UNumberUnitWidth { */ UNUM_UNIT_WIDTH_ISO_CODE = 3, -#ifndef U_HIDE_DRAFT_API /** * Use the formal variant of the currency symbol; for example, "NT$" for the New Taiwan * dollar in zh-TW. @@ -212,7 +211,7 @@ typedef enum UNumberUnitWidth { *

    * Behavior of this option with non-currency units is not defined at this time. * - * @draft ICU 68 + * @stable ICU 68 */ UNUM_UNIT_WIDTH_FORMAL = 4, @@ -223,10 +222,9 @@ typedef enum UNumberUnitWidth { *

    * Behavior of this option with non-currency units is not defined at this time. * - * @draft ICU 68 + * @stable ICU 68 */ UNUM_UNIT_WIDTH_VARIANT = 5, -#endif // U_HIDE_DRAFT_API /** * Format the number according to the specified unit, but do not display the unit. For currencies, apply @@ -503,10 +501,10 @@ typedef enum UNumberDecimalSeparatorDisplay { #ifndef U_FORCE_HIDE_DRAFT_API /** * An enum declaring how to render trailing zeros. - * + * * - UNUM_TRAILING_ZERO_AUTO: 0.90, 1.00, 1.10 * - UNUM_TRAILING_ZERO_HIDE_IF_WHOLE: 0.90, 1, 1.10 - * + * * @draft ICU 69 */ typedef enum UNumberTrailingZeroDisplay { @@ -772,7 +770,6 @@ unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPosition UErrorCode* ec); -#ifndef U_HIDE_DRAFT_API /** * Extracts the formatted number as a "numeric string" conforming to the * syntax defined in the Decimal Arithmetic Specification, available at @@ -789,7 +786,7 @@ unumf_resultGetAllFieldPositions(const UFormattedNumber* uresult, UFieldPosition * If U_BUFFER_OVERFLOW_ERROR: Returns number of chars for * preflighting. * @return Number of chars in the data. Does not include a trailing NUL. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI int32_t U_EXPORT2 unumf_resultToDecimalNumber( @@ -797,7 +794,6 @@ unumf_resultToDecimalNumber( char* dest, int32_t destCapacity, UErrorCode* ec); -#endif // U_HIDE_DRAFT_API /** diff --git a/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h b/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h index e1c5a5760fd55a..4e92fe29e25059 100644 --- a/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h +++ b/deps/icu-small/source/i18n/unicode/unumberrangeformatter.h @@ -193,20 +193,18 @@ typedef enum UNumberRangeIdentityResult { * @internal */ UNUM_IDENTITY_RESULT_COUNT -#endif +#endif /* U_HIDE_INTERNAL_API */ } UNumberRangeIdentityResult; -#ifndef U_HIDE_DRAFT_API - struct UNumberRangeFormatter; /** * C-compatible version of icu::number::LocalizedNumberRangeFormatter. * * NOTE: This is a C-compatible API; C++ users should build against numberrangeformatter.h instead. * - * @draft ICU 68 + * @stable ICU 68 */ typedef struct UNumberRangeFormatter UNumberRangeFormatter; @@ -217,7 +215,7 @@ struct UFormattedNumberRange; * * NOTE: This is a C-compatible API; C++ users should build against numberrangeformatter.h instead. * - * @draft ICU 68 + * @stable ICU 68 */ typedef struct UFormattedNumberRange UFormattedNumberRange; @@ -241,7 +239,7 @@ typedef struct UFormattedNumberRange UFormattedNumberRange; * @param perror A parse error struct populated if an error occurs when parsing. Can be NULL. * If no error occurs, perror->offset will be set to -1. * @param ec Set if an error occurs. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI UNumberRangeFormatter* U_EXPORT2 unumrf_openForSkeletonWithCollapseAndIdentityFallback( @@ -260,7 +258,7 @@ unumrf_openForSkeletonWithCollapseAndIdentityFallback( * passed to a format function. * * @param ec Set if an error occurs. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI UFormattedNumberRange* U_EXPORT2 unumrf_openResult(UErrorCode* ec); @@ -279,7 +277,7 @@ unumrf_openResult(UErrorCode* ec); * @param second The second (usually larger) number in the range. * @param uresult The object that will be mutated to store the result; see unumrf_openResult. * @param ec Set if an error occurs. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI void U_EXPORT2 unumrf_formatDoubleRange( @@ -307,7 +305,7 @@ unumrf_formatDoubleRange( * @param secondLen The length of the second decimal number string. * @param uresult The object that will be mutated to store the result; see unumrf_openResult. * @param ec Set if an error occurs. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI void U_EXPORT2 unumrf_formatDecimalRange( @@ -332,7 +330,7 @@ unumrf_formatDecimalRange( * @param uresult The object containing the formatted number range. * @param ec Set if an error occurs. * @return A UFormattedValue owned by the input object. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI const UFormattedValue* U_EXPORT2 unumrf_resultAsValue(const UFormattedNumberRange* uresult, UErrorCode* ec); @@ -346,7 +344,7 @@ unumrf_resultAsValue(const UFormattedNumberRange* uresult, UErrorCode* ec); * @param uresult The object containing the formatted number range. * @param ec Set if an error occurs. * @return The identity result; see UNumberRangeIdentityResult. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI UNumberRangeIdentityResult U_EXPORT2 unumrf_resultGetIdentityResult( @@ -358,7 +356,7 @@ unumrf_resultGetIdentityResult( * Extracts the first formatted number as a decimal number. This endpoint * is useful for obtaining the exact number being printed after scaling * and rounding have been applied by the number range formatting pipeline. - * + * * The syntax of the unformatted number is a "numeric string" * as defined in the Decimal Arithmetic Specification, available at * http://speleotrove.com/decimal @@ -371,7 +369,7 @@ unumrf_resultGetIdentityResult( * If U_BUFFER_OVERFLOW_ERROR: Returns number of chars for * preflighting. * @return Number of chars in the data. Does not include a trailing NUL. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI int32_t U_EXPORT2 unumrf_resultGetFirstDecimalNumber( @@ -385,7 +383,7 @@ unumrf_resultGetFirstDecimalNumber( * Extracts the second formatted number as a decimal number. This endpoint * is useful for obtaining the exact number being printed after scaling * and rounding have been applied by the number range formatting pipeline. - * + * * The syntax of the unformatted number is a "numeric string" * as defined in the Decimal Arithmetic Specification, available at * http://speleotrove.com/decimal @@ -398,7 +396,7 @@ unumrf_resultGetFirstDecimalNumber( * If U_BUFFER_OVERFLOW_ERROR: Returns number of chars for * preflighting. * @return Number of chars in the data. Does not include a trailing NUL. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI int32_t U_EXPORT2 unumrf_resultGetSecondDecimalNumber( @@ -412,7 +410,7 @@ unumrf_resultGetSecondDecimalNumber( * Releases the UNumberFormatter created by unumf_openForSkeletonAndLocale(). * * @param uformatter An object created by unumf_openForSkeletonAndLocale(). - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI void U_EXPORT2 unumrf_close(UNumberRangeFormatter* uformatter); @@ -422,7 +420,7 @@ unumrf_close(UNumberRangeFormatter* uformatter); * Releases the UFormattedNumber created by unumf_openResult(). * * @param uresult An object created by unumf_openResult(). - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI void U_EXPORT2 unumrf_closeResult(UFormattedNumberRange* uresult); @@ -445,7 +443,7 @@ U_NAMESPACE_BEGIN * * @see LocalPointerBase * @see LocalPointer - * @draft ICU 68 + * @stable ICU 68 */ U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberRangeFormatterPointer, UNumberRangeFormatter, unumrf_close); @@ -462,14 +460,12 @@ U_DEFINE_LOCAL_OPEN_POINTER(LocalUNumberRangeFormatterPointer, UNumberRangeForma * * @see LocalPointerBase * @see LocalPointer - * @draft ICU 68 + * @stable ICU 68 */ U_DEFINE_LOCAL_OPEN_POINTER(LocalUFormattedNumberRangePointer, UFormattedNumberRange, unumrf_closeResult); U_NAMESPACE_END #endif // U_SHOW_CPLUSPLUS_API -#endif // U_HIDE_DRAFT_API - #endif /* #if !UCONFIG_NO_FORMATTING */ #endif //__UNUMBERRANGEFORMATTER_H__ diff --git a/deps/icu-small/source/i18n/unicode/unumsys.h b/deps/icu-small/source/i18n/unicode/unumsys.h index c767cf3d79a09c..fe713ea77a6c6d 100644 --- a/deps/icu-small/source/i18n/unicode/unumsys.h +++ b/deps/icu-small/source/i18n/unicode/unumsys.h @@ -24,7 +24,7 @@ * \file * \brief C API: UNumberingSystem, information about numbering systems * - * Defines numbering systems. A numbering system describes the scheme by which + * Defines numbering systems. A numbering system describes the scheme by which * numbers are to be presented to the end user. In its simplest form, a numbering * system describes the set of digit characters that are to be used to display * numbers, such as Western digits, Thai digits, Arabic-Indic digits, etc., in a diff --git a/deps/icu-small/source/i18n/unicode/upluralrules.h b/deps/icu-small/source/i18n/unicode/upluralrules.h index 71a45ddf85b5cd..983651b1cac069 100644 --- a/deps/icu-small/source/i18n/unicode/upluralrules.h +++ b/deps/icu-small/source/i18n/unicode/upluralrules.h @@ -39,8 +39,9 @@ struct UFormattedNumberRange; * returns the keyword for the first condition that matches the number. * If none match, the default rule(other) is returned. * - * For more information, see the LDML spec, C.11 Language Plural Rules: - * http://www.unicode.org/reports/tr35/#Language_Plural_Rules + * For more information, see the + * LDML spec, Part 3.5 Language Plural Rules: + * https://www.unicode.org/reports/tr35/tr35-numbers.html#Language_Plural_Rules * * Keywords: ICU locale data has 6 predefined values - * 'zero', 'one', 'two', 'few', 'many' and 'other'. Callers need to check @@ -48,7 +49,7 @@ struct UFormattedNumberRange; * * These are based on CLDR Language Plural Rules. For these * predefined rules, see the CLDR page at - * http://unicode.org/repos/cldr-tmp/trunk/diff/supplemental/language_plural_rules.html + * https://unicode-org.github.io/cldr-staging/charts/latest/supplemental/language_plural_rules.html */ /** @@ -180,7 +181,6 @@ uplrules_selectFormatted(const UPluralRules *uplrules, UChar *keyword, int32_t capacity, UErrorCode *status); -#ifndef U_HIDE_DRAFT_API /** * Given a formatted number range, returns the overall plural form of the * range. For example, "3-5" returns "other" in English. @@ -194,14 +194,13 @@ uplrules_selectFormatted(const UPluralRules *uplrules, * @param capacity The capacity of the keyword buffer. * @param status A pointer to a UErrorCode to receive any errors. * @return The length of the keyword. - * @draft ICU 68 + * @stable ICU 68 */ U_CAPI int32_t U_EXPORT2 uplrules_selectForRange(const UPluralRules *uplrules, const struct UFormattedNumberRange* urange, UChar *keyword, int32_t capacity, UErrorCode *status); -#endif // U_HIDE_DRAFT_API #ifndef U_HIDE_INTERNAL_API /** diff --git a/deps/icu-small/source/i18n/unicode/uregex.h b/deps/icu-small/source/i18n/unicode/uregex.h index 70956882471ab4..e946e632623a54 100644 --- a/deps/icu-small/source/i18n/unicode/uregex.h +++ b/deps/icu-small/source/i18n/unicode/uregex.h @@ -51,9 +51,9 @@ typedef struct URegularExpression URegularExpression; */ typedef enum URegexpFlag{ -#ifndef U_HIDE_DRAFT_API - /** Forces normalization of pattern and strings. - Not implemented yet, just a placeholder, hence draft. +#ifndef U_HIDE_DRAFT_API + /** Forces normalization of pattern and strings. + Not implemented yet, just a placeholder, hence draft. @draft ICU 2.4 */ UREGEX_CANON_EQ = 128, #endif /* U_HIDE_DRAFT_API */ @@ -66,10 +66,10 @@ typedef enum URegexpFlag{ /** If set, '.' matches line terminators, otherwise '.' matching stops at line end. * @stable ICU 2.4 */ UREGEX_DOTALL = 32, - - /** If set, treat the entire pattern as a literal string. - * Metacharacters or escape sequences in the input sequence will be given - * no special meaning. + + /** If set, treat the entire pattern as a literal string. + * Metacharacters or escape sequences in the input sequence will be given + * no special meaning. * * The flag UREGEX_CASE_INSENSITIVE retains its impact * on matching when used in conjunction with this flag. @@ -84,7 +84,7 @@ typedef enum URegexpFlag{ * otherwise, match only at start and end of input string. * @stable ICU 2.4 */ UREGEX_MULTILINE = 8, - + /** Unix-only line endings. * When this mode is enabled, only \\u000a is recognized as a line ending * in the behavior of ., ^, and $. @@ -117,9 +117,9 @@ typedef enum URegexpFlag{ * string form into an internal representation using the specified match mode flags. * The resulting regular expression handle can then be used to perform various * matching operations. + * * - * - * @param pattern The Regular Expression pattern to be compiled. + * @param pattern The Regular Expression pattern to be compiled. * @param patternLength The length of the pattern, or -1 if the pattern is * NUL terminated. * @param flags Flags that alter the default matching behavior for @@ -151,7 +151,7 @@ uregex_open( const UChar *pattern, * UText struct itself remains with the caller. This is to match the behavior of * uregex_open(). * - * @param pattern The Regular Expression pattern to be compiled. + * @param pattern The Regular Expression pattern to be compiled. * @param flags Flags that alter the default matching behavior for * the regular expression, UREGEX_CASE_INSENSITIVE, for * example. For default behavior, set this parameter to zero. @@ -178,8 +178,8 @@ uregex_openUText(UText *pattern, * This function is the same as uregex_open, except that the pattern * is supplied as an 8 bit char * string in the default code page. * - * @param pattern The Regular Expression pattern to be compiled, - * NUL terminated. + * @param pattern The Regular Expression pattern to be compiled, + * NUL terminated. * @param flags Flags that alter the default matching behavior for * the regular expression, UREGEX_CASE_INSENSITIVE, for * example. For default behavior, set this parameter to zero. @@ -210,7 +210,7 @@ uregex_openC( const char *pattern, * @param regexp The regular expression to be closed. * @stable ICU 3.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_close(URegularExpression *regexp); #if U_SHOW_CPLUSPLUS_API @@ -250,7 +250,7 @@ U_NAMESPACE_END * @return the cloned copy of the compiled regular expression. * @stable ICU 3.0 */ -U_CAPI URegularExpression * U_EXPORT2 +U_CAPI URegularExpression * U_EXPORT2 uregex_clone(const URegularExpression *regexp, UErrorCode *status); /** @@ -270,7 +270,7 @@ uregex_clone(const URegularExpression *regexp, UErrorCode *status); * will remain valid until the regular expression is closed. * @stable ICU 3.0 */ -U_CAPI const UChar * U_EXPORT2 +U_CAPI const UChar * U_EXPORT2 uregex_pattern(const URegularExpression *regexp, int32_t *patLength, UErrorCode *status); @@ -286,7 +286,7 @@ uregex_pattern(const URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_patternUText(const URegularExpression *regexp, UErrorCode *status); @@ -298,7 +298,7 @@ uregex_patternUText(const URegularExpression *regexp, * @see URegexpFlag * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_flags(const URegularExpression *regexp, UErrorCode *status); @@ -311,7 +311,7 @@ uregex_flags(const URegularExpression *regexp, * Regular expression matching operations work directly on the application's * string data. No copy is made. The subject string data must not be * altered after calling this function until after all regular expression - * operations involving this string data are completed. + * operations involving this string data are completed. *

    * Zero length strings are permitted. In this case, no subsequent match * operation will dereference the text string pointer. @@ -323,7 +323,7 @@ uregex_flags(const URegularExpression *regexp, * @param status Receives errors detected by this function. * @stable ICU 3.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_setText(URegularExpression *regexp, const UChar *text, int32_t textLength, @@ -338,7 +338,7 @@ uregex_setText(URegularExpression *regexp, * Regular expression matching operations work directly on the application's * string data; only a shallow clone is made. The subject string data must not be * altered after calling this function until after all regular expression - * operations involving this string data are completed. + * operations involving this string data are completed. * * @param regexp The compiled regular expression. * @param text The subject text string. @@ -346,13 +346,13 @@ uregex_setText(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_setUText(URegularExpression *regexp, UText *text, UErrorCode *status); /** - * Get the subject text that is currently associated with this + * Get the subject text that is currently associated with this * regular expression object. If the input was supplied using uregex_setText(), * that pointer will be returned. Otherwise, the characters in the input will * be extracted to a buffer and returned. In either case, ownership remains @@ -361,7 +361,7 @@ uregex_setUText(URegularExpression *regexp, * This function will work even if the input was originally specified as a UText. * * @param regexp The compiled regular expression. - * @param textLength The length of the string is returned in this output parameter. + * @param textLength The length of the string is returned in this output parameter. * A NULL pointer may be used here if the * text length is not needed, as would be the case if * the text is known in advance to be a NUL terminated @@ -371,13 +371,13 @@ uregex_setUText(URegularExpression *regexp, * this regular expression. * @stable ICU 3.0 */ -U_CAPI const UChar * U_EXPORT2 +U_CAPI const UChar * U_EXPORT2 uregex_getText(URegularExpression *regexp, int32_t *textLength, UErrorCode *status); /** - * Get the subject text that is currently associated with this + * Get the subject text that is currently associated with this * regular expression object. * * This function will work even if the input was originally specified as a UChar string. @@ -392,7 +392,7 @@ uregex_getText(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_getUText(URegularExpression *regexp, UText *dest, UErrorCode *status); @@ -402,19 +402,19 @@ uregex_getUText(URegularExpression *regexp, * without changing any other aspect of the matching state. * The new and previous text strings must have the same content. * - * This function is intended for use in environments where ICU is operating on + * This function is intended for use in environments where ICU is operating on * strings that may move around in memory. It provides a mechanism for notifying * ICU that the string has been relocated, and providing a new UText to access the * string in its new position. * * Note that the regular expression implementation never copies the underlying text - * of a string being matched, but always operates directly on the original text - * provided by the user. Refreshing simply drops the references to the old text + * of a string being matched, but always operates directly on the original text + * provided by the user. Refreshing simply drops the references to the old text * and replaces them with references to the new. * * Caution: this function is normally used only by very specialized - * system-level code. One example use case is with garbage collection - * that moves the text in memory. + * system-level code. One example use case is with garbage collection + * that moves the text in memory. * * @param regexp The compiled regular expression. * @param text The new (moved) text string. @@ -422,7 +422,7 @@ uregex_getUText(URegularExpression *regexp, * * @stable ICU 4.8 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_refreshUText(URegularExpression *regexp, UText *text, UErrorCode *status); @@ -447,7 +447,7 @@ uregex_refreshUText(URegularExpression *regexp, * @return true if there is a match * @stable ICU 3.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_matches(URegularExpression *regexp, int32_t startIndex, UErrorCode *status); @@ -473,7 +473,7 @@ uregex_matches(URegularExpression *regexp, * @return true if there is a match * @stable ICU 4.6 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_matches64(URegularExpression *regexp, int64_t startIndex, UErrorCode *status); @@ -486,7 +486,7 @@ uregex_matches64(URegularExpression *regexp, *

    If startIndex is >= 0 any input region that was set for this * URegularExpression is reset before the operation begins. * - *

    If the specified starting index == -1 the match begins at the start of the input + *

    If the specified starting index == -1 the match begins at the start of the input * region, or at the start of the full string if no region has been specified. * This corresponds directly with Matcher.lookingAt() in Java. * @@ -501,7 +501,7 @@ uregex_matches64(URegularExpression *regexp, * @return true if there is a match. * @stable ICU 3.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_lookingAt(URegularExpression *regexp, int32_t startIndex, UErrorCode *status); @@ -515,7 +515,7 @@ uregex_lookingAt(URegularExpression *regexp, *

    If startIndex is >= 0 any input region that was set for this * URegularExpression is reset before the operation begins. * - *

    If the specified starting index == -1 the match begins at the start of the input + *

    If the specified starting index == -1 the match begins at the start of the input * region, or at the start of the full string if no region has been specified. * This corresponds directly with Matcher.lookingAt() in Java. * @@ -530,7 +530,7 @@ uregex_lookingAt(URegularExpression *regexp, * @return true if there is a match. * @stable ICU 4.6 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_lookingAt64(URegularExpression *regexp, int64_t startIndex, UErrorCode *status); @@ -554,9 +554,9 @@ uregex_lookingAt64(URegularExpression *regexp, * @return true if a match is found. * @stable ICU 3.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_find(URegularExpression *regexp, - int32_t startIndex, + int32_t startIndex, UErrorCode *status); /** @@ -579,15 +579,15 @@ uregex_find(URegularExpression *regexp, * @return true if a match is found. * @stable ICU 4.6 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_find64(URegularExpression *regexp, - int64_t startIndex, + int64_t startIndex, UErrorCode *status); /** - * Find the next pattern match in the input string. Begin searching - * the input at the location following the end of he previous match, - * or at the start of the string (or region) if there is no + * Find the next pattern match in the input string. Begin searching + * the input at the location following the end of he previous match, + * or at the start of the string (or region) if there is no * previous match. If a match is found, uregex_start(), uregex_end(), and * uregex_group() will provide more information regarding the match. * @@ -597,7 +597,7 @@ uregex_find64(URegularExpression *regexp, * @see uregex_reset * @stable ICU 3.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_findNext(URegularExpression *regexp, UErrorCode *status); @@ -608,7 +608,7 @@ uregex_findNext(URegularExpression *regexp, * @return the number of capture groups * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_groupCount(URegularExpression *regexp, UErrorCode *status); @@ -674,7 +674,7 @@ uregex_groupNumberFromCName(URegularExpression *regexp, * or -1 if no applicable match. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_group(URegularExpression *regexp, int32_t groupNum, UChar *dest, @@ -703,7 +703,7 @@ uregex_group(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_groupUText(URegularExpression *regexp, int32_t groupNum, UText *dest, @@ -720,11 +720,11 @@ uregex_groupUText(URegularExpression *regexp, * @param regexp The compiled regular expression. * @param groupNum The capture group number * @param status A reference to a UErrorCode to receive any errors. - * @return the starting (native) position in the input of the text matched + * @return the starting (native) position in the input of the text matched * by the specified group. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_start(URegularExpression *regexp, int32_t groupNum, UErrorCode *status); @@ -740,11 +740,11 @@ uregex_start(URegularExpression *regexp, * @param regexp The compiled regular expression. * @param groupNum The capture group number * @param status A reference to a UErrorCode to receive any errors. - * @return the starting (native) position in the input of the text matched + * @return the starting (native) position in the input of the text matched * by the specified group. * @stable ICU 4.6 */ -U_CAPI int64_t U_EXPORT2 +U_CAPI int64_t U_EXPORT2 uregex_start64(URegularExpression *regexp, int32_t groupNum, UErrorCode *status); @@ -762,7 +762,7 @@ uregex_start64(URegularExpression *regexp, * @return the (native) index of the position following the last matched character. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_end(URegularExpression *regexp, int32_t groupNum, UErrorCode *status); @@ -781,7 +781,7 @@ uregex_end(URegularExpression *regexp, * @return the (native) index of the position following the last matched character. * @stable ICU 4.6 */ -U_CAPI int64_t U_EXPORT2 +U_CAPI int64_t U_EXPORT2 uregex_end64(URegularExpression *regexp, int32_t groupNum, UErrorCode *status); @@ -789,7 +789,7 @@ uregex_end64(URegularExpression *regexp, /** * Reset any saved state from the previous match. Has the effect of * causing uregex_findNext to begin at the specified index, and causing - * uregex_start(), uregex_end() and uregex_group() to return an error + * uregex_start(), uregex_end() and uregex_group() to return an error * indicating that there is no match information available. Clears any * match region that may have been set. * @@ -799,7 +799,7 @@ uregex_end64(URegularExpression *regexp, * @param status A reference to a UErrorCode to receive any errors. * @stable ICU 3.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_reset(URegularExpression *regexp, int32_t index, UErrorCode *status); @@ -808,7 +808,7 @@ uregex_reset(URegularExpression *regexp, * 64bit version of uregex_reset. * Reset any saved state from the previous match. Has the effect of * causing uregex_findNext to begin at the specified index, and causing - * uregex_start(), uregex_end() and uregex_group() to return an error + * uregex_start(), uregex_end() and uregex_group() to return an error * indicating that there is no match information available. Clears any * match region that may have been set. * @@ -818,7 +818,7 @@ uregex_reset(URegularExpression *regexp, * @param status A reference to a UErrorCode to receive any errors. * @stable ICU 4.6 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_reset64(URegularExpression *regexp, int64_t index, UErrorCode *status); @@ -826,7 +826,7 @@ uregex_reset64(URegularExpression *regexp, /** * Sets the limits of the matching region for this URegularExpression. * The region is the part of the input string that will be considered when matching. - * Invoking this method resets any saved state from the previous match, + * Invoking this method resets any saved state from the previous match, * then sets the region to start at the index specified by the start parameter * and end at the index specified by the end parameter. * @@ -853,7 +853,7 @@ uregex_setRegion(URegularExpression *regexp, * 64bit version of uregex_setRegion. * Sets the limits of the matching region for this URegularExpression. * The region is the part of the input string that will be considered when matching. - * Invoking this method resets any saved state from the previous match, + * Invoking this method resets any saved state from the previous match, * then sets the region to start at the index specified by the start parameter * and end at the index specified by the end parameter. * @@ -870,7 +870,7 @@ uregex_setRegion(URegularExpression *regexp, * @param status A pointer to a UErrorCode to receive any errors. * @stable ICU 4.6 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_setRegion64(URegularExpression *regexp, int64_t regionStart, int64_t regionLimit, @@ -885,12 +885,12 @@ uregex_setRegion64(URegularExpression *regexp, * @param regexp The compiled regular expression. * @param regionStart The (native) index to begin searches at. * @param regionLimit The (native) index to end searches at (exclusive). - * @param startIndex The index in the input text at which the next + * @param startIndex The index in the input text at which the next * match operation should begin. * @param status A pointer to a UErrorCode to receive any errors. * @stable ICU 4.6 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_setRegionAndStart(URegularExpression *regexp, int64_t regionStart, int64_t regionLimit, @@ -920,7 +920,7 @@ uregex_regionStart(const URegularExpression *regexp, * @return The starting (native) index of this matcher's region. * @stable ICU 4.6 */ -U_CAPI int64_t U_EXPORT2 +U_CAPI int64_t U_EXPORT2 uregex_regionStart64(const URegularExpression *regexp, UErrorCode *status); @@ -949,7 +949,7 @@ uregex_regionEnd(const URegularExpression *regexp, * @return The ending point (native) of this matcher's region. * @stable ICU 4.6 */ -U_CAPI int64_t U_EXPORT2 +U_CAPI int64_t U_EXPORT2 uregex_regionEnd64(const URegularExpression *regexp, UErrorCode *status); @@ -987,8 +987,8 @@ uregex_hasTransparentBounds(const URegularExpression *regexp, * @param status A pointer to a UErrorCode to receive any errors. * @stable ICU 4.0 **/ -U_CAPI void U_EXPORT2 -uregex_useTransparentBounds(URegularExpression *regexp, +U_CAPI void U_EXPORT2 +uregex_useTransparentBounds(URegularExpression *regexp, UBool b, UErrorCode *status); @@ -1050,7 +1050,7 @@ uregex_hitEnd(const URegularExpression *regexp, * @return true if more input could cause the most recent match to no longer match. * @stable ICU 4.0 */ -U_CAPI UBool U_EXPORT2 +U_CAPI UBool U_EXPORT2 uregex_requireEnd(const URegularExpression *regexp, UErrorCode *status); @@ -1063,7 +1063,7 @@ uregex_requireEnd(const URegularExpression *regexp, * with the given replacement string. This is a convenience function that * provides a complete find-and-replace-all operation. * - * This method scans the input string looking for matches of the pattern. + * This method scans the input string looking for matches of the pattern. * Input that is not part of any match is copied unchanged to the * destination buffer. Matched regions are replaced in the output * buffer by the replacement string. The replacement string may contain @@ -1082,7 +1082,7 @@ uregex_requireEnd(const URegularExpression *regexp, * is still the full length of the untruncated string. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_replaceAll(URegularExpression *regexp, const UChar *replacementText, int32_t replacementLength, @@ -1095,7 +1095,7 @@ uregex_replaceAll(URegularExpression *regexp, * with the given replacement string. This is a convenience function that * provides a complete find-and-replace-all operation. * - * This method scans the input string looking for matches of the pattern. + * This method scans the input string looking for matches of the pattern. * Input that is not part of any match is copied unchanged to the * destination buffer. Matched regions are replaced in the output * buffer by the replacement string. The replacement string may contain @@ -1111,7 +1111,7 @@ uregex_replaceAll(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_replaceAllUText(URegularExpression *regexp, UText *replacement, UText *dest, @@ -1122,7 +1122,7 @@ uregex_replaceAllUText(URegularExpression *regexp, * with the given replacement string. This is a convenience function that * provides a complete find-and-replace operation. * - * This method scans the input string looking for a match of the pattern. + * This method scans the input string looking for a match of the pattern. * All input that is not part of the match is copied unchanged to the * destination buffer. The matched region is replaced in the output * buffer by the replacement string. The replacement string may contain @@ -1141,7 +1141,7 @@ uregex_replaceAllUText(URegularExpression *regexp, * is still the full length of the untruncated string. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_replaceFirst(URegularExpression *regexp, const UChar *replacementText, int32_t replacementLength, @@ -1154,7 +1154,7 @@ uregex_replaceFirst(URegularExpression *regexp, * with the given replacement string. This is a convenience function that * provides a complete find-and-replace operation. * - * This method scans the input string looking for a match of the pattern. + * This method scans the input string looking for a match of the pattern. * All input that is not part of the match is copied unchanged to the * destination buffer. The matched region is replaced in the output * buffer by the replacement string. The replacement string may contain @@ -1170,7 +1170,7 @@ uregex_replaceFirst(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_replaceFirstUText(URegularExpression *regexp, UText *replacement, UText *dest, @@ -1199,7 +1199,7 @@ uregex_replaceFirstUText(URegularExpression *regexp, *

    For simple, prepackaged, non-incremental find-and-replace * operations, see replaceFirst() or replaceAll().

    * - * @param regexp The regular expression object. + * @param regexp The regular expression object. * @param replacementText The string that will replace the matched portion of the * input string as it is copied to the destination buffer. * The replacement text may contain references ($1, for @@ -1214,7 +1214,7 @@ uregex_replaceFirstUText(URegularExpression *regexp, * @param destCapacity The size of the output buffer, On return, this * parameter will be updated to reflect the space remaining * unused in the output buffer. - * @param status A reference to a UErrorCode to receive any errors. + * @param status A reference to a UErrorCode to receive any errors. * @return The length of the result string. In the event that * destCapacity is inadequate, the full length of the * untruncated output string is returned. @@ -1222,7 +1222,7 @@ uregex_replaceFirstUText(URegularExpression *regexp, * @stable ICU 3.0 * */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_appendReplacement(URegularExpression *regexp, const UChar *replacementText, int32_t replacementLength, @@ -1242,17 +1242,17 @@ uregex_appendReplacement(URegularExpression *regexp, *

    For simple, prepackaged, non-incremental find-and-replace * operations, see replaceFirst() or replaceAll().

    * - * @param regexp The regular expression object. + * @param regexp The regular expression object. * @param replacementText The string that will replace the matched portion of the * input string as it is copied to the destination buffer. * The replacement text may contain references ($1, for * example) to capture groups from the match. * @param dest A mutable UText that will receive the result. Must not be NULL. - * @param status A reference to a UErrorCode to receive any errors. + * @param status A reference to a UErrorCode to receive any errors. * * @stable ICU 4.6 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 uregex_appendReplacementUText(URegularExpression *regexp, UText *replacementText, UText *dest, @@ -1261,11 +1261,11 @@ uregex_appendReplacementUText(URegularExpression *regexp, /** * As the final step in a find-and-replace operation, append the remainder * of the input string, starting at the position following the last match, - * to the destination string. uregex_appendTail() is intended + * to the destination string. uregex_appendTail() is intended * to be invoked after one or more invocations of the * uregex_appendReplacement() function. * - * @param regexp The regular expression object. This is needed to + * @param regexp The regular expression object. This is needed to * obtain the input string and with the position * of the last match within it. * @param destBuf The buffer in which the results of the @@ -1275,14 +1275,14 @@ uregex_appendReplacementUText(URegularExpression *regexp, * @param destCapacity The size of the output buffer, On return, this * value will be updated to reflect the space remaining * unused in the output buffer. - * @param status A reference to a UErrorCode to receive any errors. + * @param status A reference to a UErrorCode to receive any errors. * @return The length of the result string. In the event that * destCapacity is inadequate, the full length of the * untruncated output string is returned. * * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_appendTail(URegularExpression *regexp, UChar **destBuf, int32_t *destCapacity, @@ -1291,11 +1291,11 @@ uregex_appendTail(URegularExpression *regexp, /** * As the final step in a find-and-replace operation, append the remainder * of the input string, starting at the position following the last match, - * to the destination string. uregex_appendTailUText() is intended + * to the destination string. uregex_appendTailUText() is intended * to be invoked after one or more invocations of the * uregex_appendReplacementUText() function. * - * @param regexp The regular expression object. This is needed to + * @param regexp The regular expression object. This is needed to * obtain the input string and with the position * of the last match within it. * @param dest A mutable UText that will receive the result. Must not be NULL. @@ -1306,7 +1306,7 @@ uregex_appendTail(URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI UText * U_EXPORT2 +U_CAPI UText * U_EXPORT2 uregex_appendTailUText(URegularExpression *regexp, UText *dest, UErrorCode *status); @@ -1323,9 +1323,9 @@ uregex_appendTailUText(URegularExpression *regexp, * * If the delimiter pattern includes capture groups, the captured text will * also appear in the destination array of output strings, interspersed - * with the fields. This is similar to Perl, but differs from Java, + * with the fields. This is similar to Perl, but differs from Java, * which ignores the presence of capture groups in the pattern. - * + * * Trailing empty fields will always be returned, assuming sufficient * destination capacity. This differs from the default behavior for Java * and Perl where trailing empty fields are not returned. @@ -1333,7 +1333,7 @@ uregex_appendTailUText(URegularExpression *regexp, * The number of strings produced by the split operation is returned. * This count includes the strings from capture groups in the delimiter pattern. * This behavior differs from Java, which ignores capture groups. - * + * * @param regexp The compiled regular expression. * @param destBuf A (UChar *) buffer to receive the fields that * are extracted from the input string. These @@ -1343,7 +1343,7 @@ uregex_appendTailUText(URegularExpression *regexp, * set to NULL. * @param destCapacity The capacity of the destBuf. * @param requiredCapacity The actual capacity required of the destBuf. - * If destCapacity is too small, requiredCapacity will return + * If destCapacity is too small, requiredCapacity will return * the total capacity required to hold all of the output, and * a U_BUFFER_OVERFLOW_ERROR will be returned. * @param destFields An array to be filled with the position of each @@ -1362,7 +1362,7 @@ uregex_appendTailUText(URegularExpression *regexp, * @return The number of fields into which the input string was split. * @stable ICU 3.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_split( URegularExpression *regexp, UChar *destBuf, int32_t destCapacity, @@ -1397,7 +1397,7 @@ uregex_split( URegularExpression *regexp, * * @stable ICU 4.6 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 uregex_splitUText(URegularExpression *regexp, UText *destFields[], int32_t destFieldsCapacity, @@ -1492,7 +1492,7 @@ uregex_getStackLimit(const URegularExpression *regexp, * @param context context pointer. The callback function will be invoked * with the context specified at the time that * uregex_setMatchCallback() is called. - * @param steps the accumulated processing time, in match steps, + * @param steps the accumulated processing time, in match steps, * for this matching operation. * @return true to continue the matching operation. * false to terminate the matching operation. @@ -1529,7 +1529,7 @@ uregex_setMatchCallback(URegularExpression *regexp, * Get the callback function for this URegularExpression. * * @param regexp The compiled regular expression. - * @param callback Out parameter, receives a pointer to the user-supplied + * @param callback Out parameter, receives a pointer to the user-supplied * callback function. * @param context Out parameter, receives the user context pointer that * was set when uregex_setMatchCallback() was called. @@ -1544,7 +1544,7 @@ uregex_getMatchCallback(const URegularExpression *regexp, /** * Function pointer for a regular expression find callback function. - * + * * When set, a callback function will be called during a find operation * and for operations that depend on find, such as findNext, split and some replace * operations like replaceFirst. @@ -1556,7 +1556,7 @@ uregex_getMatchCallback(const URegularExpression *regexp, * When invoked, this callback will specify the index at which a match operation is about * to be attempted, giving the application the opportunity to terminate a long-running * find operation. - * + * * If the call back function returns false, the find operation will be terminated early. * * Note: the callback function must not call other functions on this @@ -1600,7 +1600,7 @@ uregex_setFindProgressCallback(URegularExpression *regexp, * Get the find progress callback function for this URegularExpression. * * @param regexp The compiled regular expression. - * @param callback Out parameter, receives a pointer to the user-supplied + * @param callback Out parameter, receives a pointer to the user-supplied * callback function. * @param context Out parameter, receives the user context pointer that * was set when uregex_setFindProgressCallback() was called. diff --git a/deps/icu-small/source/i18n/unicode/uregion.h b/deps/icu-small/source/i18n/unicode/uregion.h index 4e4e6aac9f8fcc..25472ae6405b2c 100644 --- a/deps/icu-small/source/i18n/unicode/uregion.h +++ b/deps/icu-small/source/i18n/unicode/uregion.h @@ -17,7 +17,7 @@ * \file * \brief C API: URegion (territory containment and mapping) * - * URegion objects represent data associated with a particular Unicode Region Code, also known as a + * URegion objects represent data associated with a particular Unicode Region Code, also known as a * Unicode Region Subtag, which is defined based upon the BCP 47 standard. These include: * * Two-letter codes defined by ISO 3166-1, with special LDML treatment of certain private-use or * reserved codes; @@ -25,7 +25,7 @@ * URegion objects can also provide mappings to and from additional codes. There are different types * of regions that are important to distinguish: *

    - * Macroregion - A code for a "macro geographical (continental) region, geographical sub-region, or + * Macroregion - A code for a "macro geographical (continental) region, geographical sub-region, or * selected economic and other grouping" as defined in UN M.49. These are typically 3-digit codes, * but contain some 2-letter codes for LDML extensions, such as "QO" for Outlying Oceania. * Macroregions are represented in ICU by one of three region types: WORLD (code 001), @@ -33,8 +33,8 @@ * by a continent ). *

    * TERRITORY - A Region that is not a Macroregion. These are typically codes for countries, but also - * include areas that are not separate countries, such as the code "AQ" for Antarctica or the code - * "HK" for Hong Kong (SAR China). Overseas dependencies of countries may or may not have separate + * include areas that are not separate countries, such as the code "AQ" for Antarctica or the code + * "HK" for Hong Kong (SAR China). Overseas dependencies of countries may or may not have separate * codes. The codes are typically 2-letter codes aligned with ISO 3166, but BCP47 allows for the use * of 3-digit codes in the future. *

    @@ -45,7 +45,7 @@ * usually due to a country splitting into multiple territories or changing its name. *

    * GROUPING - A widely understood grouping of territories that has a well defined membership such - * that a region code has been assigned for it. Some of these are UN M.49 codes that don't fall into + * that a region code has been assigned for it. Some of these are UN M.49 codes that don't fall into * the world/continent/sub-continent hierarchy, while others are just well-known groupings that have * their own region code. Region "EU" (European Union) is one such region code that is a grouping. * Groupings will never be returned by the uregion_getContainingRegion, since a different type of region @@ -59,51 +59,51 @@ * URegionType is an enumeration defining the different types of regions. Current possible * values are URGN_WORLD, URGN_CONTINENT, URGN_SUBCONTINENT, URGN_TERRITORY, URGN_GROUPING, * URGN_DEPRECATED, and URGN_UNKNOWN. - * - * @stable ICU 51 + * + * @stable ICU 51 */ typedef enum URegionType { /** * Type representing the unknown region. - * @stable ICU 51 + * @stable ICU 51 */ URGN_UNKNOWN, /** * Type representing a territory. - * @stable ICU 51 + * @stable ICU 51 */ URGN_TERRITORY, /** * Type representing the whole world. - * @stable ICU 51 + * @stable ICU 51 */ URGN_WORLD, /** * Type representing a continent. - * @stable ICU 51 + * @stable ICU 51 */ URGN_CONTINENT, /** * Type representing a sub-continent. - * @stable ICU 51 + * @stable ICU 51 */ URGN_SUBCONTINENT, /** * Type representing a grouping of territories that is not to be used in * the normal WORLD/CONTINENT/SUBCONTINENT/TERRITORY containment tree. - * @stable ICU 51 + * @stable ICU 51 */ URGN_GROUPING, /** * Type representing a region whose code has been deprecated, usually * due to a country splitting into multiple territories or changing its name. - * @stable ICU 51 + * @stable ICU 51 */ URGN_DEPRECATED, diff --git a/deps/icu-small/source/i18n/unicode/ureldatefmt.h b/deps/icu-small/source/i18n/unicode/ureldatefmt.h index b66139461b53ad..3c448900437e45 100644 --- a/deps/icu-small/source/i18n/unicode/ureldatefmt.h +++ b/deps/icu-small/source/i18n/unicode/ureldatefmt.h @@ -81,7 +81,7 @@ typedef enum UDateRelativeDateTimeFormatterStyle { typedef enum URelativeDateTimeUnit { /** * Specifies that relative unit is year, e.g. "last year", - * "in 5 years". + * "in 5 years". * @stable ICU 57 */ UDAT_REL_UNIT_YEAR, @@ -153,7 +153,7 @@ typedef enum URelativeDateTimeUnit { UDAT_REL_UNIT_WEDNESDAY, /** * Specifies that relative unit is Thursday, e.g. "last Thursday", - * "this Thursday", "next Thursday", "in 5 Thursdays". + * "this Thursday", "next Thursday", "in 5 Thursdays". * @stable ICU 57 */ UDAT_REL_UNIT_THURSDAY, diff --git a/deps/icu-small/source/i18n/unicode/usearch.h b/deps/icu-small/source/i18n/unicode/usearch.h index 26c22b7353953d..fd0b84f672353d 100644 --- a/deps/icu-small/source/i18n/unicode/usearch.h +++ b/deps/icu-small/source/i18n/unicode/usearch.h @@ -27,62 +27,63 @@ * \file * \brief C API: StringSearch * - * C APIs for an engine that provides language-sensitive text searching based + * C APIs for an engine that provides language-sensitive text searching based * on the comparison rules defined in a UCollator data struct, - * see ucol.h. This ensures that language eccentricity can be - * handled, e.g. for the German collator, characters ß and SS will be matched - * if case is chosen to be ignored. - * See the + * see ucol.h. This ensures that language eccentricity can be + * handled, e.g. for the German collator, characters ß and SS will be matched + * if case is chosen to be ignored. + * See the * "ICU Collation Design Document" for more information. - *

    - * The implementation may use a linear search or a modified form of the Boyer-Moore - * search; for more information on the latter see + *

    + * As of ICU4C 4.0 / ICU4J 53, the implementation uses a linear search. In previous versions, + * a modified form of the Boyer-Moore searching algorithm was used. For more information + * on the modified Boyer-Moore algorithm see * - * "Efficient Text Searching in Java", published in Java Report + * "Efficient Text Searching in Java", published in Java Report * in February, 1999. *

    * There are 2 match options for selection:
    - * Let S' be the sub-string of a text string S between the offsets start and + * Let S' be the sub-string of a text string S between the offsets start and * end . *
    - * A pattern string P matches a text string S at the offsets + * A pattern string P matches a text string S at the offsets * if - *

    - * option 1. Some canonical equivalent of P matches some canonical equivalent
    + * 
     
    + * option 1. Some canonical equivalent of P matches some canonical equivalent 
      *           of S'
    - * option 2. P matches S' and if P starts or ends with a combining mark,
    - *           there exists no non-ignorable combining mark before or after S'
    - *           in S respectively.
    + * option 2. P matches S' and if P starts or ends with a combining mark, 
    + *           there exists no non-ignorable combining mark before or after S' 
    + *           in S respectively. 
      * 
    * Option 2. will be the default. *

    - * This search has APIs similar to that of other text iteration mechanisms - * such as the break iterators in ubrk.h. Using these - * APIs, it is easy to scan through text looking for all occurrences of - * a given pattern. This search iterator allows changing of direction by - * calling a reset followed by a next or previous. - * Though a direction change can occur without calling reset first, + * This search has APIs similar to that of other text iteration mechanisms + * such as the break iterators in ubrk.h. Using these + * APIs, it is easy to scan through text looking for all occurrences of + * a given pattern. This search iterator allows changing of direction by + * calling a reset followed by a next or previous. + * Though a direction change can occur without calling reset first, * this operation comes with some speed penalty. - * Generally, match results in the forward direction will match the result + * Generally, match results in the forward direction will match the result * matches in the backwards direction in the reverse order *

    - * usearch.h provides APIs to specify the starting position + * usearch.h provides APIs to specify the starting position * within the text string to be searched, e.g. usearch_setOffset, - * usearch_preceding and usearch_following. Since the - * starting position will be set as it is specified, please take note that - * there are some dangerous positions which the search may render incorrect + * usearch_preceding and usearch_following. Since the + * starting position will be set as it is specified, please take note that + * there are some dangerous positions which the search may render incorrect * results: *

      *
    • The midst of a substring that requires normalization. *
    • If the following match is to be found, the position should not be the - * second character which requires to be swapped with the preceding - * character. Vice versa, if the preceding match is to be found, - * position to search from should not be the first character which + * second character which requires to be swapped with the preceding + * character. Vice versa, if the preceding match is to be found, + * position to search from should not be the first character which * requires to be swapped with the next character. E.g certain Thai and * Lao characters require swapping. - *
    • If a following pattern match is to be found, any position within a - * contracting sequence except the first will fail. Vice versa if a - * preceding pattern match is to be found, a invalid starting point + *
    • If a following pattern match is to be found, any position within a + * contracting sequence except the first will fail. Vice versa if a + * preceding pattern match is to be found, a invalid starting point * would be any character within a contracting sequence except the last. *
    *

    @@ -91,9 +92,9 @@ * boundaries given by the breakiterator. For instance the pattern "e" will * not be found in the string "\u00e9" if a character break iterator is used. *

    - * Options are provided to handle overlapping matches. - * E.g. In English, overlapping matches produces the result 0 and 2 - * for the pattern "abab" in the text "ababab", where else mutually + * Options are provided to handle overlapping matches. + * E.g. In English, overlapping matches produces the result 0 and 2 + * for the pattern "abab" in the text "ababab", where else mutually * exclusive matches only produce the result of 0. *

    * Options are also provided to implement "asymmetric search" as described in @@ -101,19 +102,19 @@ * UTS #10 Unicode Collation Algorithm, specifically the USearchAttribute * USEARCH_ELEMENT_COMPARISON and its values. *

    - * Though collator attributes will be taken into consideration while - * performing matches, there are no APIs here for setting and getting the + * Though collator attributes will be taken into consideration while + * performing matches, there are no APIs here for setting and getting the * attributes. These attributes can be set by getting the collator * from usearch_getCollator and using the APIs in ucol.h. - * Lastly to update String Search to the new collator attributes, + * Lastly to update String Search to the new collator attributes, * usearch_reset() has to be called. - *

    + *

    * Restriction:
    * Currently there are no composite characters that consists of a - * character with combining class > 0 before a character with combining - * class == 0. However, if such a character exists in the future, the + * character with combining class > 0 before a character with combining + * class == 0. However, if such a character exists in the future, the * search mechanism does not guarantee the results for option 1. - * + * *

    * Example of use:
    *

    
    @@ -125,14 +126,14 @@
      * u_uastrcpy(target, tgtstr);
      * u_uastrcpy(pattern, patstr);
      *
    - * UStringSearch *search = usearch_open(pattern, -1, target, -1, "en_US",
    + * UStringSearch *search = usearch_open(pattern, -1, target, -1, "en_US", 
      *                                  NULL, &status);
      * if (U_SUCCESS(status)) {
    - *     for (int pos = usearch_first(search, &status);
    - *          pos != USEARCH_DONE;
    + *     for (int pos = usearch_first(search, &status); 
    + *          pos != USEARCH_DONE; 
      *          pos = usearch_next(search, &status))
      *     {
    - *         printf("Found match at %d pos, length is %d\n", pos,
    + *         printf("Found match at %d pos, length is %d\n", pos, 
      *                                        usearch_getMatchedLength(search));
      *     }
      * }
    @@ -143,7 +144,7 @@
      */
     
     /**
    -* DONE is returned by previous() and next() after all valid matches have
    +* DONE is returned by previous() and next() after all valid matches have 
     * been returned, and by first() and last() if there are no matches at all.
     * @stable ICU 2.4
     */
    @@ -170,7 +171,7 @@ typedef enum {
          */
         USEARCH_OVERLAP = 0,
     #ifndef U_HIDE_DEPRECATED_API
    -    /**
    +    /** 
          * Option for canonical matches; option 1 in header documentation.
          * The default value will be USEARCH_OFF.
          * Note: Setting this option to USEARCH_ON currently has no effect on
    @@ -178,7 +179,7 @@ typedef enum {
          * canonical match behavior, you must set UCOL_NORMALIZATION_MODE
          * appropriately (to UCOL_OFF or UCOL_ON) in the UCollator used by
          * the UStringSearch object.
    -     * @see usearch_openFromCollator
    +     * @see usearch_openFromCollator 
          * @see usearch_getCollator
          * @see usearch_setCollator
          * @see ucol_getAttribute
    @@ -186,7 +187,7 @@ typedef enum {
          */
         USEARCH_CANONICAL_MATCH = 1,
     #endif  /* U_HIDE_DEPRECATED_API */
    -    /**
    +    /** 
          * Option to control how collation elements are compared.
          * The default value will be USEARCH_STANDARD_ELEMENT_COMPARISON.
          * @stable ICU 4.4
    @@ -206,7 +207,7 @@ typedef enum {
     * @stable ICU 2.4
     */
     typedef enum {
    -    /**
    +    /** 
          * Default value for any USearchAttribute
          * @stable ICU 2.4
          */
    @@ -215,20 +216,20 @@ typedef enum {
          * Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH
          * @stable ICU 2.4
          */
    -    USEARCH_OFF,
    +    USEARCH_OFF, 
         /**
          * Value for USEARCH_OVERLAP and USEARCH_CANONICAL_MATCH
          * @stable ICU 2.4
          */
         USEARCH_ON,
    -    /**
    +    /** 
          * Value (default) for USEARCH_ELEMENT_COMPARISON;
          * standard collation element comparison at the specified collator
          * strength.
          * @stable ICU 4.4
          */
         USEARCH_STANDARD_ELEMENT_COMPARISON,
    -    /**
    +    /** 
          * Value for USEARCH_ELEMENT_COMPARISON;
          * collation element comparison is modified to effectively provide
          * behavior between the specified strength and strength - 1. Collation
    @@ -247,7 +248,7 @@ typedef enum {
          * @stable ICU 4.4
          */
         USEARCH_PATTERN_BASE_WEIGHT_IS_WILDCARD,
    -    /**
    +    /** 
          * Value for USEARCH_ELEMENT_COMPARISON.
          * collation element comparison is modified to effectively provide
          * behavior between the specified strength and strength - 1. Collation
    @@ -293,14 +294,14 @@ typedef enum {
     * @param textlength length of the text string, -1 for null-termination
     * @param locale name of locale for the rules to be used
     * @param breakiter A BreakIterator that will be used to restrict the points
    -*                  at which matches are detected. If a match is found, but
    -*                  the match's start or end index is not a boundary as
    -*                  determined by the BreakIterator, the match will
    -*                  be rejected and another will be searched for.
    -*                  If this parameter is NULL, no break detection is
    +*                  at which matches are detected. If a match is found, but 
    +*                  the match's start or end index is not a boundary as 
    +*                  determined by the BreakIterator, the match will 
    +*                  be rejected and another will be searched for. 
    +*                  If this parameter is NULL, no break detection is 
     *                  attempted.
     * @param status for errors if it occurs. If pattern or text is NULL, or if
    -*               patternlength or textlength is 0 then an
    +*               patternlength or textlength is 0 then an 
     *               U_ILLEGAL_ARGUMENT_ERROR is returned.
     * @return search iterator data structure, or NULL if there is an error.
     * @stable ICU 2.4
    @@ -381,16 +382,16 @@ U_NAMESPACE_END
     /* get and set methods -------------------------------------------------- */
     
     /**
    -* Sets the current position in the text string which the next search will
    -* start from. Clears previous states.
    -* This method takes the argument index and sets the position in the text
    -* string accordingly without checking if the index is pointing to a
    -* valid starting point to begin searching.
    +* Sets the current position in the text string which the next search will 
    +* start from. Clears previous states. 
    +* This method takes the argument index and sets the position in the text 
    +* string accordingly without checking if the index is pointing to a 
    +* valid starting point to begin searching. 
     * Search positions that may render incorrect results are highlighted in the
     * header comments
     * @param strsrch search iterator data struct
     * @param position position to start next search from. If position is less
    -*          than or greater than the text range for searching,
    +*          than or greater than the text range for searching, 
     *          an U_INDEX_OUTOFBOUNDS_ERROR will be returned
     * @param status error status if any.
     * @stable ICU 2.4
    @@ -401,14 +402,14 @@ U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch,
     
     /**
     * Return the current index in the string text being searched.
    -* If the iteration has gone past the end of the text (or past the beginning
    +* If the iteration has gone past the end of the text (or past the beginning 
     * for a backwards search), USEARCH_DONE is returned.
     * @param strsrch search iterator data struct
     * @see #USEARCH_DONE
     * @stable ICU 2.4
     */
     U_CAPI int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch);
    -
    +    
     /**
     * Sets the text searching attributes located in the enum USearchAttribute
     * with values from the enum USearchAttributeValue.
    @@ -425,7 +426,7 @@ U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch         *strsrch,
                                                USearchAttributeValue  value,
                                                UErrorCode            *status);
     
    -/**
    +/**    
     * Gets the text searching attributes.
     * @param strsrch search iterator data struct
     * @param attribute text attribute to be retrieve
    @@ -439,15 +440,15 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute(
     
     /**
     * Returns the index to the match in the text string that was searched.
    -* This call returns a valid result only after a successful call to
    -* usearch_first, usearch_next, usearch_previous,
    +* This call returns a valid result only after a successful call to 
    +* usearch_first, usearch_next, usearch_previous, 
     * or usearch_last.
    -* Just after construction, or after a searching method returns
    +* Just after construction, or after a searching method returns 
     * USEARCH_DONE, this method will return USEARCH_DONE.
     * 

    * Use usearch_getMatchedLength to get the matched string length. * @param strsrch search iterator data struct -* @return index to a substring within the text string that is being +* @return index to a substring within the text string that is being * searched. * @see #usearch_first * @see #usearch_next @@ -458,16 +459,16 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute( */ U_CAPI int32_t U_EXPORT2 usearch_getMatchedStart( const UStringSearch *strsrch); - + /** -* Returns the length of text in the string which matches the search pattern. -* This call returns a valid result only after a successful call to -* usearch_first, usearch_next, usearch_previous, +* Returns the length of text in the string which matches the search pattern. +* This call returns a valid result only after a successful call to +* usearch_first, usearch_next, usearch_previous, * or usearch_last. -* Just after construction, or after a searching method returns +* Just after construction, or after a searching method returns * USEARCH_DONE, this method will return 0. * @param strsrch search iterator data struct -* @return The length of the match in the string text, or 0 if there is no +* @return The length of the match in the string text, or 0 if there is no * match currently. * @see #usearch_first * @see #usearch_next @@ -480,17 +481,17 @@ U_CAPI int32_t U_EXPORT2 usearch_getMatchedLength( const UStringSearch *strsrch); /** -* Returns the text that was matched by the most recent call to -* usearch_first, usearch_next, usearch_previous, +* Returns the text that was matched by the most recent call to +* usearch_first, usearch_next, usearch_previous, * or usearch_last. -* If the iterator is not pointing at a valid match (e.g. just after +* If the iterator is not pointing at a valid match (e.g. just after * construction or after USEARCH_DONE has been returned, returns * an empty string. If result is not large enough to store the matched text, -* result will be filled with the partial text and an U_BUFFER_OVERFLOW_ERROR -* will be returned in status. result will be null-terminated whenever -* possible. If the buffer fits the matched text exactly, a null-termination +* result will be filled with the partial text and an U_BUFFER_OVERFLOW_ERROR +* will be returned in status. result will be null-terminated whenever +* possible. If the buffer fits the matched text exactly, a null-termination * is not possible, then a U_STRING_NOT_TERMINATED_ERROR set in status. -* Pre-flighting can be either done with length = 0 or the API +* Pre-flighting can be either done with length = 0 or the API * usearch_getMatchedLength. * @param strsrch search iterator data struct * @param result UChar buffer to store the matched string @@ -504,37 +505,37 @@ U_CAPI int32_t U_EXPORT2 usearch_getMatchedLength( * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch, - UChar *result, - int32_t resultCapacity, +U_CAPI int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch, + UChar *result, + int32_t resultCapacity, UErrorCode *status); #if !UCONFIG_NO_BREAK_ITERATION /** -* Set the BreakIterator that will be used to restrict the points at which +* Set the BreakIterator that will be used to restrict the points at which * matches are detected. * @param strsrch search iterator data struct * @param breakiter A BreakIterator that will be used to restrict the points -* at which matches are detected. If a match is found, but -* the match's start or end index is not a boundary as -* determined by the BreakIterator, the match will -* be rejected and another will be searched for. -* If this parameter is NULL, no break detection is +* at which matches are detected. If a match is found, but +* the match's start or end index is not a boundary as +* determined by the BreakIterator, the match will +* be rejected and another will be searched for. +* If this parameter is NULL, no break detection is * attempted. * @param status for errors if it occurs * @see #usearch_getBreakIterator * @stable ICU 2.4 */ -U_CAPI void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch, +U_CAPI void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch, UBreakIterator *breakiter, UErrorCode *status); /** -* Returns the BreakIterator that is used to restrict the points at which -* matches are detected. This will be the same object that was passed to the -* constructor or to usearch_setBreakIterator. Note that -* NULL +* Returns the BreakIterator that is used to restrict the points at which +* matches are detected. This will be the same object that was passed to the +* constructor or to usearch_setBreakIterator. Note that +* NULL * is a legal value; it means that break detection should not be attempted. * @param strsrch search iterator data struct * @return break iterator used @@ -543,12 +544,12 @@ U_CAPI void U_EXPORT2 usearch_setBreakIterator(UStringSearch *strsrch, */ U_CAPI const UBreakIterator * U_EXPORT2 usearch_getBreakIterator( const UStringSearch *strsrch); - + #endif /** -* Set the string text to be searched. Text iteration will hence begin at the -* start of the text string. This method is useful if you want to re-use an +* Set the string text to be searched. Text iteration will hence begin at the +* start of the text string. This method is useful if you want to re-use an * iterator to search for the same pattern within a different body of text. * * The UStringSearch retains a pointer to the text string. The caller must not @@ -557,13 +558,13 @@ U_CAPI const UBreakIterator * U_EXPORT2 usearch_getBreakIterator( * @param strsrch search iterator data struct * @param text new string to look for match * @param textlength length of the new string, -1 for null-termination -* @param status for errors if it occurs. If text is NULL, or textlength is 0 +* @param status for errors if it occurs. If text is NULL, or textlength is 0 * then an U_ILLEGAL_ARGUMENT_ERROR is returned with no change * done to strsrch. * @see #usearch_getText * @stable ICU 2.4 */ -U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, +U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, const UChar *text, int32_t textlength, UErrorCode *status); @@ -572,17 +573,17 @@ U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, * Return the string text to be searched. * @param strsrch search iterator data struct * @param length returned string text length -* @return string text +* @return string text * @see #usearch_setText * @stable ICU 2.4 */ -U_CAPI const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch, +U_CAPI const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch, int32_t *length); /** -* Gets the collator used for the language rules. +* Gets the collator used for the language rules. *

    -* Deleting the returned UCollator before calling +* Deleting the returned UCollator before calling * usearch_close would cause the string search to fail. * usearch_close will delete the collator if this search owns it. * @param strsrch search iterator data struct @@ -593,22 +594,22 @@ U_CAPI UCollator * U_EXPORT2 usearch_getCollator( const UStringSearch *strsrch); /** -* Sets the collator used for the language rules. User retains the ownership +* Sets the collator used for the language rules. User retains the ownership * of this collator, thus the responsibility of deletion lies with the user. -* This method causes internal data such as Boyer-Moore shift tables to -* be recalculated, but the iterator's position is unchanged. +* This method causes internal data such as the pattern collation elements +* and shift tables to be recalculated, but the iterator's position is unchanged. * @param strsrch search iterator data struct * @param collator to be used * @param status for errors if it occurs * @stable ICU 2.4 */ -U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, +U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, const UCollator *collator, UErrorCode *status); /** * Sets the pattern used for matching. -* Internal data like the Boyer Moore table will be recalculated, but the +* Internal data like the pattern collation elements will be recalculated, but the * iterator's position is unchanged. * * The UStringSearch retains a pointer to the pattern string. The caller must not @@ -617,12 +618,12 @@ U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, * @param strsrch search iterator data struct * @param pattern string * @param patternlength pattern length, -1 for null-terminated string -* @param status for errors if it occurs. If text is NULL, or textlength is 0 +* @param status for errors if it occurs. If text is NULL, or textlength is 0 * then an U_ILLEGAL_ARGUMENT_ERROR is returned with no change * done to strsrch. * @stable ICU 2.4 */ -U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, +U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, const UChar *pattern, int32_t patternlength, UErrorCode *status); @@ -630,46 +631,46 @@ U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, /** * Gets the search pattern * @param strsrch search iterator data struct -* @param length return length of the pattern, -1 indicates that the pattern +* @param length return length of the pattern, -1 indicates that the pattern * is null-terminated * @return pattern string * @stable ICU 2.4 */ U_CAPI const UChar * U_EXPORT2 usearch_getPattern( - const UStringSearch *strsrch, + const UStringSearch *strsrch, int32_t *length); /* methods ------------------------------------------------------------- */ /** -* Returns the first index at which the string text matches the search -* pattern. -* The iterator is adjusted so that its current index (as returned by +* Returns the first index at which the string text matches the search +* pattern. +* The iterator is adjusted so that its current index (as returned by * usearch_getOffset) is the match position if one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE. * @param strsrch search iterator data struct * @param status for errors if it occurs -* @return The character index of the first match, or +* @return The character index of the first match, or * USEARCH_DONE if there are no matches. * @see #usearch_getOffset * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, +U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, UErrorCode *status); /** * Returns the first index equal or greater than position at which * the string text -* matches the search pattern. The iterator is adjusted so that its current -* index (as returned by usearch_getOffset) is the match position if +* matches the search pattern. The iterator is adjusted so that its current +* index (as returned by usearch_getOffset) is the match position if * one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE *

    * Search positions that may render incorrect results are highlighted in the -* header comments. If position is less than or greater than the text range +* header comments. If position is less than or greater than the text range * for searching, an U_INDEX_OUTOFBOUNDS_ERROR will be returned * @param strsrch search iterator data struct * @param position to start the search at @@ -680,38 +681,38 @@ U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, - int32_t position, +U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, + int32_t position, UErrorCode *status); - + /** -* Returns the last index in the target text at which it matches the search -* pattern. The iterator is adjusted so that its current -* index (as returned by usearch_getOffset) is the match position if +* Returns the last index in the target text at which it matches the search +* pattern. The iterator is adjusted so that its current +* index (as returned by usearch_getOffset) is the match position if * one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE. * @param strsrch search iterator data struct * @param status for errors if it occurs -* @return The index of the first match, or USEARCH_DONE if there +* @return The index of the first match, or USEARCH_DONE if there * are no matches. * @see #usearch_getOffset * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, +U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, UErrorCode *status); /** -* Returns the first index less than position at which the string text -* matches the search pattern. The iterator is adjusted so that its current -* index (as returned by usearch_getOffset) is the match position if +* Returns the first index less than position at which the string text +* matches the search pattern. The iterator is adjusted so that its current +* index (as returned by usearch_getOffset) is the match position if * one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE *

    * Search positions that may render incorrect results are highlighted in the -* header comments. If position is less than or greater than the text range +* header comments. If position is less than or greater than the text range * for searching, an U_INDEX_OUTOFBOUNDS_ERROR will be returned. *

    * When USEARCH_OVERLAP option is off, the last index of the @@ -727,35 +728,35 @@ U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, - int32_t position, +U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, + int32_t position, UErrorCode *status); - + /** * Returns the index of the next point at which the string text matches the * search pattern, starting from the current position. -* The iterator is adjusted so that its current -* index (as returned by usearch_getOffset) is the match position if +* The iterator is adjusted so that its current +* index (as returned by usearch_getOffset) is the match position if * one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE * @param strsrch search iterator data struct * @param status for errors if it occurs -* @return The index of the next match after the current position, or +* @return The index of the next match after the current position, or * USEARCH_DONE if there are no more matches. * @see #usearch_first * @see #usearch_getOffset * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, +U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, UErrorCode *status); /** * Returns the index of the previous point at which the string text matches * the search pattern, starting at the current position. -* The iterator is adjusted so that its current -* index (as returned by usearch_getOffset) is the match position if +* The iterator is adjusted so that its current +* index (as returned by usearch_getOffset) is the match position if * one was found. * If a match is not found, USEARCH_DONE will be returned and * the iterator will be adjusted to the index USEARCH_DONE @@ -768,13 +769,13 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, * @see #USEARCH_DONE * @stable ICU 2.4 */ -U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, +U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, UErrorCode *status); - -/** + +/** * Reset the iteration. -* Search will begin at the start of the text string if a forward iteration -* is initiated before a backwards iteration. Otherwise if a backwards +* Search will begin at the start of the text string if a forward iteration +* is initiated before a backwards iteration. Otherwise if a backwards * iteration is initiated before a forwards iteration, the search will begin * at the end of the text string. * @param strsrch search iterator data struct @@ -805,7 +806,7 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch); * A match will not include a partial combining sequence. Combining * character sequences are considered to be inseparable units, * and either match the pattern completely, or are considered to not match - * at all. Thus, for example, an A followed a combining accent mark will + * at all. Thus, for example, an A followed a combining accent mark will * not be found when searching for a plain (unaccented) A. (unless * the collation strength has been set to ignore all accents). * @@ -817,7 +818,7 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch); * Characters that expand to multiple collation elements * (German sharp-S becoming 'ss', or the composed forms of accented * characters, for example) also must match completely. - * Searching for a single 's' in a string containing only a sharp-s will + * Searching for a single 's' in a string containing only a sharp-s will * find no match. * * @@ -832,7 +833,7 @@ U_CAPI void U_EXPORT2 usearch_reset(UStringSearch *strsrch); * in the input text. * This parameter may be NULL. * A value of -1 will be returned if no match was found. - * + * * @param status Report any errors. Note that no match found is not an error. * @return true if a match was found, false otherwise. * @@ -865,7 +866,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, * A match will not include a partial combining sequence. Combining * character sequences are considered to be inseparable units, * and either match the pattern completely, or are considered to not match - * at all. Thus, for example, an A followed a combining accent mark will + * at all. Thus, for example, an A followed a combining accent mark will * not be found when searching for a plain (unaccented) A. (unless * the collation strength has been set to ignore all accents). * @@ -877,7 +878,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, * Characters that expand to multiple collation elements * (German sharp-S becoming 'ss', or the composed forms of accented * characters, for example) also must match completely. - * Searching for a single 's' in a string containing only a sharp-s will + * Searching for a single 's' in a string containing only a sharp-s will * find no match. * * @@ -892,7 +893,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, * in the input text. * This parameter may be NULL. * A value of -1 will be returned if no match was found. - * + * * @param status Report any errors. Note that no match found is not an error. * @return true if a match was found, false otherwise. * diff --git a/deps/icu-small/source/i18n/unicode/uspoof.h b/deps/icu-small/source/i18n/unicode/uspoof.h index bf675bef51b51c..b674c91b2c246c 100644 --- a/deps/icu-small/source/i18n/unicode/uspoof.h +++ b/deps/icu-small/source/i18n/unicode/uspoof.h @@ -1134,7 +1134,7 @@ uspoof_getCheckResultNumerics(const USpoofCheckResult *checkResult, UErrorCode * * @param sc The USpoofChecker * @param id1 The first of the two identifiers to be compared for * confusability. The strings are in UTF-16 format. - * @param length1 the length of the first identifer, expressed in + * @param length1 the length of the first identifier, expressed in * 16 bit UTF-16 code units, or -1 if the string is * nul terminated. * @param id2 The second of the two identifiers to be compared for diff --git a/deps/icu-small/source/i18n/unicode/utmscale.h b/deps/icu-small/source/i18n/unicode/utmscale.h index b7dca15367dcfe..5a0bdc68c66195 100644 --- a/deps/icu-small/source/i18n/unicode/utmscale.h +++ b/deps/icu-small/source/i18n/unicode/utmscale.h @@ -14,7 +14,7 @@ #if !UCONFIG_NO_FORMATTING -/** +/** * \file * \brief C API: Universal Time Scale * @@ -217,7 +217,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_UNIX_TIME, - + /** * Used in IUC4C. Data is a double. Value * is milliseconds since January 1, 1970. @@ -225,7 +225,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_ICU4C_TIME, - + /** * Used in Windows for file times. Data is an int64_t. Value * is ticks (1 tick == 100 nanoseconds) since January 1, 1601. @@ -233,7 +233,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_WINDOWS_FILE_TIME, - + /** * Used in the .NET framework's System.DateTime structure. Data is an int64_t. Value * is ticks (1 tick == 100 nanoseconds) since January 1, 0001. @@ -241,7 +241,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_DOTNET_DATE_TIME, - + /** * Used in older Macintosh systems. Data is int32_t or int64_t. Value * is seconds since January 1, 1904. @@ -249,7 +249,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_MAC_OLD_TIME, - + /** * Used in newer Macintosh systems. Data is a double. Value * is seconds since January 1, 2001. @@ -257,7 +257,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_MAC_TIME, - + /** * Used in Excel. Data is an ?unknown?. Value * is days since December 31, 1899. @@ -265,7 +265,7 @@ typedef enum UDateTimeScale { * @stable ICU 3.2 */ UDTS_EXCEL_TIME, - + /** * Used in DB2. Data is an ?unknown?. Value * is days since December 31, 1899. @@ -305,7 +305,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the units vale * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -315,7 +315,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the epoch offset value * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -325,7 +325,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the minimum from value * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -335,7 +335,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the maximum from value * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -345,7 +345,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the minimum to value * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -355,7 +355,7 @@ typedef enum UTimeScaleValue { /** * The constant used to select the maximum to value * for a time scale. - * + * * @see utmscale_getTimeScaleValue * * @stable ICU 3.2 @@ -366,10 +366,10 @@ typedef enum UTimeScaleValue { /** * The constant used to select the epoch plus one value * for a time scale. - * + * * NOTE: This is an internal value. DO NOT USE IT. May not * actually be equal to the epoch offset value plus one. - * + * * @see utmscale_getTimeScaleValue * * @internal ICU 3.2 @@ -379,10 +379,10 @@ typedef enum UTimeScaleValue { /** * The constant used to select the epoch plus one value * for a time scale. - * + * * NOTE: This is an internal value. DO NOT USE IT. May not * actually be equal to the epoch offset value plus one. - * + * * @see utmscale_getTimeScaleValue * * @internal ICU 3.2 @@ -392,9 +392,9 @@ typedef enum UTimeScaleValue { /** * The constant used to select the units round value * for a time scale. - * + * * NOTE: This is an internal value. DO NOT USE IT. - * + * * @see utmscale_getTimeScaleValue * * @internal ICU 3.2 @@ -404,9 +404,9 @@ typedef enum UTimeScaleValue { /** * The constant used to select the minimum safe rounding value * for a time scale. - * + * * NOTE: This is an internal value. DO NOT USE IT. - * + * * @see utmscale_getTimeScaleValue * * @internal ICU 3.2 @@ -416,9 +416,9 @@ typedef enum UTimeScaleValue { /** * The constant used to select the maximum safe rounding value * for a time scale. - * + * * NOTE: This is an internal value. DO NOT USE IT. - * + * * @see utmscale_getTimeScaleValue * * @internal ICU 3.2 @@ -430,7 +430,7 @@ typedef enum UTimeScaleValue { #ifndef U_HIDE_DEPRECATED_API /** * The number of time scale values, in other words limit of this enum. - * + * * @see utmscale_getTimeScaleValue * @deprecated ICU 59 The numeric value may change over time, see ICU ticket #12420. */ @@ -441,12 +441,12 @@ typedef enum UTimeScaleValue { /** * Get a value associated with a particular time scale. - * + * * @param timeScale The time scale * @param value A constant representing the value to get * @param status The status code. Set to U_ILLEGAL_ARGUMENT_ERROR if arguments are invalid. * @return - the value. - * + * * @stable ICU 3.2 */ U_CAPI int64_t U_EXPORT2 @@ -460,7 +460,7 @@ U_CAPI int64_t U_EXPORT2 * @param otherTime The int64_t datetime * @param timeScale The time scale to convert from * @param status The status code. Set to U_ILLEGAL_ARGUMENT_ERROR if the conversion is out of range. - * + * * @return The datetime converted to the universal time scale * * @stable ICU 3.2 @@ -476,7 +476,7 @@ U_CAPI int64_t U_EXPORT2 * @param universalTime The datetime in the universal time scale * @param timeScale The time scale to convert to * @param status The status code. Set to U_ILLEGAL_ARGUMENT_ERROR if the conversion is out of range. - * + * * @return The datetime converted to the given time scale * * @stable ICU 3.2 @@ -487,3 +487,4 @@ U_CAPI int64_t U_EXPORT2 #endif /* #if !UCONFIG_NO_FORMATTING */ #endif + diff --git a/deps/icu-small/source/i18n/unicode/utrans.h b/deps/icu-small/source/i18n/unicode/utrans.h index e959378285cfb8..1ad7dbda62f679 100644 --- a/deps/icu-small/source/i18n/unicode/utrans.h +++ b/deps/icu-small/source/i18n/unicode/utrans.h @@ -81,7 +81,7 @@ typedef void* UTransliterator; * @stable ICU 2.0 */ typedef enum UTransDirection { - + /** * UTRANS_FORWARD means from <source> to <target> for a * transliterator with ID <source>-<target>. For a transliterator @@ -133,7 +133,7 @@ typedef struct UTransPosition { * @stable ICU 2.4 */ int32_t contextStart; - + /** * Ending index, exclusive, of the context to be considered for a * transliteration operation. The transliterator will ignore @@ -143,7 +143,7 @@ typedef struct UTransPosition { * @stable ICU 2.4 */ int32_t contextLimit; - + /** * Beginning index, inclusive, of the text to be transliterated. * INPUT/OUTPUT parameter: This parameter is advanced past @@ -152,7 +152,7 @@ typedef struct UTransPosition { * @stable ICU 2.4 */ int32_t start; - + /** * Ending index, exclusive, of the text to be transliterated. * INPUT/OUTPUT parameter: This parameter is updated to reflect @@ -169,9 +169,9 @@ typedef struct UTransPosition { ********************************************************************/ /** - * Open a custom transliterator, given a custom rules string - * OR - * a system transliterator, given its ID. + * Open a custom transliterator, given a custom rules string + * OR + * a system transliterator, given its ID. * Any non-NULL result from this function should later be closed with * utrans_close(). * @@ -215,7 +215,7 @@ utrans_openU(const UChar *id, * inverse of trans, or NULL if the open call fails. * @stable ICU 2.0 */ -U_CAPI UTransliterator* U_EXPORT2 +U_CAPI UTransliterator* U_EXPORT2 utrans_openInverse(const UTransliterator* trans, UErrorCode* status); @@ -229,7 +229,7 @@ utrans_openInverse(const UTransliterator* trans, * utrans_xxx() functions, or NULL if the clone call fails. * @stable ICU 2.0 */ -U_CAPI UTransliterator* U_EXPORT2 +U_CAPI UTransliterator* U_EXPORT2 utrans_clone(const UTransliterator* trans, UErrorCode* status); @@ -239,7 +239,7 @@ utrans_clone(const UTransliterator* trans, * @param trans the transliterator to be closed. * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_close(UTransliterator* trans); #if U_SHOW_CPLUSPLUS_API @@ -293,7 +293,7 @@ utrans_getUnicodeID(const UTransliterator *trans, * @param status a pointer to the UErrorCode * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_register(UTransliterator* adoptedTrans, UErrorCode* status); @@ -327,7 +327,7 @@ utrans_unregisterID(const UChar* id, int32_t idLength); * @see UnicodeSet * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_setFilter(UTransliterator* trans, const UChar* filterPattern, int32_t filterPatternLen, @@ -340,7 +340,7 @@ utrans_setFilter(UTransliterator* trans, * @return the number of system transliterators. * @stable ICU 2.0 */ -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 utrans_countAvailableIDs(void); /** @@ -382,7 +382,7 @@ utrans_openIDs(UErrorCode *pErrorCode); * @param status a pointer to the UErrorCode * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_trans(const UTransliterator* trans, UReplaceable* rep, const UReplaceableCallbacks* repFunc, @@ -433,7 +433,7 @@ utrans_trans(const UTransliterator* trans, * @param status a pointer to the UErrorCode * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_transIncremental(const UTransliterator* trans, UReplaceable* rep, const UReplaceableCallbacks* repFunc, @@ -470,7 +470,7 @@ utrans_transIncremental(const UTransliterator* trans, * @param status a pointer to the UErrorCode * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_transUChars(const UTransliterator* trans, UChar* text, int32_t* textLength, @@ -505,7 +505,7 @@ utrans_transUChars(const UTransliterator* trans, * @see utrans_transIncremental * @stable ICU 2.0 */ -U_CAPI void U_EXPORT2 +U_CAPI void U_EXPORT2 utrans_transIncrementalUChars(const UTransliterator* trans, UChar* text, int32_t* textLength, @@ -569,16 +569,16 @@ utrans_getSourceSet(const UTransliterator* trans, /** * Deprecated, use utrans_openU() instead. - * Open a custom transliterator, given a custom rules string - * OR - * a system transliterator, given its ID. + * Open a custom transliterator, given a custom rules string + * OR + * a system transliterator, given its ID. * Any non-NULL result from this function should later be closed with * utrans_close(). * * @param id a valid ID, as returned by utrans_getAvailableID() * @param dir the desired direction * @param rules the transliterator rules. See the C++ header rbt.h - * for rules syntax. If NULL then a system transliterator matching + * for rules syntax. If NULL then a system transliterator matching * the ID is returned. * @param rulesLength the length of the rules, or -1 if the rules * are zero-terminated. @@ -590,11 +590,11 @@ utrans_getSourceSet(const UTransliterator* trans, * utrans_xxx() functions, or NULL if the open call fails. * @deprecated ICU 2.8 Use utrans_openU() instead, see utrans.h */ -U_DEPRECATED UTransliterator* U_EXPORT2 +U_DEPRECATED UTransliterator* U_EXPORT2 utrans_open(const char* id, UTransDirection dir, const UChar* rules, /* may be Null */ - int32_t rulesLength, /* -1 if null-terminated */ + int32_t rulesLength, /* -1 if null-terminated */ UParseError* parseError, /* may be Null */ UErrorCode* status); @@ -613,7 +613,7 @@ utrans_open(const char* id, * zero-termination. This may be greater than bufCapacity. * @deprecated ICU 2.8 Use utrans_getUnicodeID() instead, see utrans.h */ -U_DEPRECATED int32_t U_EXPORT2 +U_DEPRECATED int32_t U_EXPORT2 utrans_getID(const UTransliterator* trans, char* buf, int32_t bufCapacity); @@ -627,7 +627,7 @@ utrans_getID(const UTransliterator* trans, * @param id a zero-terminated ID * @deprecated ICU 2.8 Use utrans_unregisterID() instead, see utrans.h */ -U_DEPRECATED void U_EXPORT2 +U_DEPRECATED void U_EXPORT2 utrans_unregister(const char* id); /** @@ -648,7 +648,7 @@ utrans_unregister(const char* id); * zero-termination. This may be greater than bufCapacity. * @deprecated ICU 2.8 Use utrans_openIDs() instead, see utrans.h */ -U_DEPRECATED int32_t U_EXPORT2 +U_DEPRECATED int32_t U_EXPORT2 utrans_getAvailableID(int32_t index, char* buf, int32_t bufCapacity); diff --git a/deps/icu-small/source/i18n/unicode/vtzone.h b/deps/icu-small/source/i18n/unicode/vtzone.h index c0a2a14c897077..e7d2f515410ee1 100644 --- a/deps/icu-small/source/i18n/unicode/vtzone.h +++ b/deps/icu-small/source/i18n/unicode/vtzone.h @@ -14,7 +14,7 @@ #if U_SHOW_CPLUSPLUS_API /** - * \file + * \file * \brief C++ API: RFC2445 VTIMEZONE support */ @@ -72,7 +72,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { *semantically equal. * @stable ICU 3.8 */ - virtual UBool operator==(const TimeZone& that) const; + virtual bool operator==(const TimeZone& that) const override; /** * Return true if the given TimeZone objects are @@ -82,7 +82,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * semantically unequal. * @stable ICU 3.8 */ - virtual UBool operator!=(const TimeZone& that) const; + virtual bool operator!=(const TimeZone& that) const; /** * Create a VTimeZone instance by the time zone ID. @@ -105,7 +105,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { /** * Create a VTimeZone instance by RFC2445 VTIMEZONE data - * + * * @param vtzdata The string including VTIMEZONE data block * @param status Output param to filled in with a success or an error. * @return A VTimeZone initialized by the VTIMEZONE data or @@ -187,7 +187,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @return A new copy of this TimeZone object. * @stable ICU 3.8 */ - virtual VTimeZone* clone() const; + virtual VTimeZone* clone() const override; /** * Returns the TimeZone's adjusted GMT offset (i.e., the number of milliseconds to add @@ -214,7 +214,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, - uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const; + uint8_t dayOfWeek, int32_t millis, UErrorCode& status) const override; /** * Gets the time zone offset, for current date, modified in case of @@ -237,7 +237,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { */ virtual int32_t getOffset(uint8_t era, int32_t year, int32_t month, int32_t day, uint8_t dayOfWeek, int32_t millis, - int32_t monthLength, UErrorCode& status) const; + int32_t monthLength, UErrorCode& status) const override; /** * Returns the time zone raw and GMT offset for the given moment @@ -262,7 +262,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual void getOffset(UDate date, UBool local, int32_t& rawOffset, - int32_t& dstOffset, UErrorCode& ec) const; + int32_t& dstOffset, UErrorCode& ec) const override; #ifndef U_FORCE_HIDE_DRAFT_API /** @@ -272,7 +272,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { virtual void getOffsetFromLocal( UDate date, UTimeZoneLocalOption nonExistingTimeOpt, UTimeZoneLocalOption duplicatedTimeOpt, - int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const; + int32_t& rawOffset, int32_t& dstOffset, UErrorCode& status) const override; #endif /* U_FORCE_HIDE_DRAFT_API */ /** @@ -282,7 +282,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @param offsetMillis The new raw GMT offset for this time zone. * @stable ICU 3.8 */ - virtual void setRawOffset(int32_t offsetMillis); + virtual void setRawOffset(int32_t offsetMillis) override; /** * Returns the TimeZone's raw GMT offset (i.e., the number of milliseconds to add @@ -291,7 +291,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @return The TimeZone's raw GMT offset. * @stable ICU 3.8 */ - virtual int32_t getRawOffset(void) const; + virtual int32_t getRawOffset(void) const override; /** * Queries if this time zone uses daylight savings time. @@ -299,7 +299,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * false, otherwise. * @stable ICU 3.8 */ - virtual UBool useDaylightTime(void) const; + virtual UBool useDaylightTime(void) const override; #ifndef U_FORCE_HIDE_DEPRECATED_API /** @@ -315,7 +315,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * false, otherwise. * @deprecated ICU 2.4. Use Calendar::inDaylightTime() instead. */ - virtual UBool inDaylightTime(UDate date, UErrorCode& status) const; + virtual UBool inDaylightTime(UDate date, UErrorCode& status) const override; #endif // U_FORCE_HIDE_DEPRECATED_API /** @@ -326,7 +326,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * with the possible exception of the ID * @stable ICU 3.8 */ - virtual UBool hasSameRules(const TimeZone& other) const; + virtual UBool hasSameRules(const TimeZone& other) const override; /** * Gets the first time zone transition after the base time. @@ -336,7 +336,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getNextTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Gets the most recent time zone transition before the base time. @@ -346,7 +346,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @return true if the transition is found. * @stable ICU 3.8 */ - virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const; + virtual UBool getPreviousTransition(UDate base, UBool inclusive, TimeZoneTransition& result) const override; /** * Returns the number of TimeZoneRules which represents time transitions, @@ -356,7 +356,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @return The number of TimeZoneRules representing time transitions. * @stable ICU 3.8 */ - virtual int32_t countTransitionRules(UErrorCode& status) const; + virtual int32_t countTransitionRules(UErrorCode& status) const override; /** * Gets the InitialTimeZoneRule and the set of TimeZoneRule @@ -375,7 +375,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * @stable ICU 3.8 */ virtual void getTimeZoneRules(const InitialTimeZoneRule*& initial, - const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const; + const TimeZoneRule* trsrules[], int32_t& trscount, UErrorCode& status) const override; private: enum { DEFAULT_VTIMEZONE_LINES = 100 }; @@ -461,7 +461,7 @@ class U_I18N_API VTimeZone : public BasicTimeZone { * other classes have different class IDs. * @stable ICU 3.8 */ - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; }; U_NAMESPACE_END diff --git a/deps/icu-small/source/i18n/units_complexconverter.cpp b/deps/icu-small/source/i18n/units_complexconverter.cpp index db56f5ded9cf98..78cefbf7ebb733 100644 --- a/deps/icu-small/source/i18n/units_complexconverter.cpp +++ b/deps/icu-small/source/i18n/units_complexconverter.cpp @@ -164,7 +164,7 @@ MaybeStackVector ComplexUnitsConverter::convert(double quantity, if (i < n - 1) { // If quantity is at the limits of double's precision from an // integer value, we take that integer value. - int64_t flooredQuantity = floor(quantity * (1 + DBL_EPSILON)); + int64_t flooredQuantity = static_cast(floor(quantity * (1 + DBL_EPSILON))); if (uprv_isNaN(quantity)) { // With clang on Linux: floor does not support NaN, resulting in // a giant negative number. For now, we produce "0 feet, NaN @@ -183,7 +183,7 @@ MaybeStackVector ComplexUnitsConverter::convert(double quantity, } else { quantity = remainder; } - } + } } applyRounder(intValues, quantity, rounder, status); @@ -244,20 +244,20 @@ void ComplexUnitsConverter::applyRounder(MaybeStackArray &intValues, } // Check if there's a carry, and bubble it back up the resulting intValues. - int64_t carry = floor(unitsConverters_[lastIndex]->convertInverse(quantity) * (1 + DBL_EPSILON)); + int64_t carry = static_cast(floor(unitsConverters_[lastIndex]->convertInverse(quantity) * (1 + DBL_EPSILON))); if (carry <= 0) { return; } - quantity -= unitsConverters_[lastIndex]->convert(carry); + quantity -= unitsConverters_[lastIndex]->convert(static_cast(carry)); intValues[lastIndex - 1] += carry; // We don't use the first converter: that one is for the input unit for (int32_t j = lastIndex - 1; j > 0; j--) { - carry = floor(unitsConverters_[j]->convertInverse(intValues[j]) * (1 + DBL_EPSILON)); + carry = static_cast(floor(unitsConverters_[j]->convertInverse(static_cast(intValues[j])) * (1 + DBL_EPSILON))); if (carry <= 0) { return; } - intValues[j] -= round(unitsConverters_[j]->convert(carry)); + intValues[j] -= static_cast(round(unitsConverters_[j]->convert(static_cast(carry)))); intValues[j - 1] += carry; } } diff --git a/deps/icu-small/source/i18n/units_converter.cpp b/deps/icu-small/source/i18n/units_converter.cpp index 2854ad30b3288f..7e946e584bb76a 100644 --- a/deps/icu-small/source/i18n/units_converter.cpp +++ b/deps/icu-small/source/i18n/units_converter.cpp @@ -461,7 +461,7 @@ Convertibility U_I18N_API extractConvertibility(const MeasureUnitImpl &source, if (source.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED || target.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED) { - status = U_INTERNAL_PROGRAM_ERROR; + status = U_ARGUMENT_TYPE_MISMATCH; return UNCONVERTIBLE; } @@ -514,7 +514,7 @@ void UnitsConverter::init(const ConversionRates &ratesInfo, UErrorCode &status) if (this->conversionRate_.source.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED || this->conversionRate_.target.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED) { - status = U_INTERNAL_PROGRAM_ERROR; + status = U_ARGUMENT_TYPE_MISMATCH; return; } @@ -522,13 +522,13 @@ void UnitsConverter::init(const ConversionRates &ratesInfo, UErrorCode &status) this->conversionRate_.target, ratesInfo, status); if (U_FAILURE(status)) return; if (unitsState == Convertibility::UNCONVERTIBLE) { - status = U_INTERNAL_PROGRAM_ERROR; + status = U_ARGUMENT_TYPE_MISMATCH; return; } loadConversionRate(conversionRate_, conversionRate_.source, conversionRate_.target, unitsState, ratesInfo, status); - + } int32_t UnitsConverter::compareTwoUnits(const MeasureUnitImpl &firstUnit, @@ -540,7 +540,7 @@ int32_t UnitsConverter::compareTwoUnits(const MeasureUnitImpl &firstUnit, if (firstUnit.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED || secondUnit.complexity == UMeasureUnitComplexity::UMEASURE_UNIT_MIXED) { - status = U_INTERNAL_PROGRAM_ERROR; + status = U_ARGUMENT_TYPE_MISMATCH; return 0; } @@ -550,7 +550,7 @@ int32_t UnitsConverter::compareTwoUnits(const MeasureUnitImpl &firstUnit, } if (unitsState == Convertibility::UNCONVERTIBLE || unitsState == Convertibility::RECIPROCAL) { - status = U_INTERNAL_PROGRAM_ERROR; + status = U_ARGUMENT_TYPE_MISMATCH; return 0; } diff --git a/deps/icu-small/source/i18n/units_converter.h b/deps/icu-small/source/i18n/units_converter.h index 1b83155a17b571..5c002f4147e6ab 100644 --- a/deps/icu-small/source/i18n/units_converter.h +++ b/deps/icu-small/source/i18n/units_converter.h @@ -75,7 +75,7 @@ struct U_I18N_API Factor { // Apply SI or binary prefix to the Factor. void applyPrefix(UMeasurePrefix unitPrefix); - // Does an in-place substition of the "symbolic constants" based on + // Does an in-place substitution of the "symbolic constants" based on // constantExponents (resetting the exponents). // // In ICU4J, see UnitConverter.Factor.getConversionRate(). @@ -208,7 +208,7 @@ class U_I18N_API UnitsConverter : public UMemory { /** * Initialises the object. - */ + */ void init(const ConversionRates &ratesInfo, UErrorCode &status); }; diff --git a/deps/icu-small/source/i18n/units_data.cpp b/deps/icu-small/source/i18n/units_data.cpp index 61f537479fa908..d1d1fc5bc05e4c 100644 --- a/deps/icu-small/source/i18n/units_data.cpp +++ b/deps/icu-small/source/i18n/units_data.cpp @@ -59,7 +59,7 @@ class ConversionRateDataSink : public ResourceSink { * @param noFallback Ignored. * @param status The standard ICU error code output parameter. */ - void put(const char *source, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) { + void put(const char *source, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) override { if (U_FAILURE(status)) { return; } if (uprv_strcmp(source, "convertUnits") != 0) { // This is very strict, however it is the cheapest way to be sure @@ -146,7 +146,7 @@ class UnitPreferencesSink : public ResourceSink { * @param status The standard ICU error code output parameter. Note: if an * error is returned, outPrefs and outMetadata may be inconsistent. */ - void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) { + void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) override { if (U_FAILURE(status)) { return; } if (uprv_strcmp(key, "unitPreferenceData") != 0) { // This is very strict, however it is the cheapest way to be sure diff --git a/deps/icu-small/source/i18n/units_router.cpp b/deps/icu-small/source/i18n/units_router.cpp index 51f66bfa892be7..0e6082fae5c438 100644 --- a/deps/icu-small/source/i18n/units_router.cpp +++ b/deps/icu-small/source/i18n/units_router.cpp @@ -66,9 +66,9 @@ void UnitsRouter::init(const MeasureUnit &inputUnit, StringPiece region, StringP UnitPreferences prefs(status); MeasureUnitImpl inputUnitImpl = MeasureUnitImpl::forMeasureUnitMaybeCopy(inputUnit, status); - MeasureUnit baseUnit = - (extractCompoundBaseUnit(inputUnitImpl, conversionRates, status)).build(status); - CharString category = getUnitQuantity(baseUnit.getIdentifier(), status); + MeasureUnitImpl baseUnitImpl = + (extractCompoundBaseUnit(inputUnitImpl, conversionRates, status)); + CharString category = getUnitQuantity(baseUnitImpl, status); if (U_FAILURE(status)) { return; } diff --git a/deps/icu-small/source/i18n/units_router.h b/deps/icu-small/source/i18n/units_router.h index c6e4e4f5288363..b3300f7e27737a 100644 --- a/deps/icu-small/source/i18n/units_router.h +++ b/deps/icu-small/source/i18n/units_router.h @@ -109,7 +109,7 @@ namespace units { * * NOTE: * the output units and their limits will be extracted from the units preferences database by knowing - * the followings: + * the following: * - input unit * - locale * - usage diff --git a/deps/icu-small/source/i18n/unum.cpp b/deps/icu-small/source/i18n/unum.cpp index de693fc7276244..7043f7adc12308 100644 --- a/deps/icu-small/source/i18n/unum.cpp +++ b/deps/icu-small/source/i18n/unum.cpp @@ -38,7 +38,7 @@ U_NAMESPACE_USE U_CAPI UNumberFormat* U_EXPORT2 -unum_open( UNumberFormatStyle style, +unum_open( UNumberFormatStyle style, const UChar* pattern, int32_t patternLength, const char* locale, @@ -93,11 +93,11 @@ unum_open( UNumberFormatStyle style, UParseError tErr; /* UnicodeString can handle the case when patternLength = -1. */ const UnicodeString pat(pattern, patternLength); - + if(parseErr==NULL){ parseErr = &tErr; } - + retVal = new RuleBasedNumberFormat(pat, Locale(locale), *parseErr, *status); } break; @@ -155,7 +155,7 @@ unum_clone(const UNumberFormat *fmt, { if(U_FAILURE(*status)) return 0; - + Format *res = 0; const NumberFormat* nf = reinterpret_cast(fmt); const DecimalFormat* df = dynamic_cast(nf); @@ -171,7 +171,7 @@ unum_clone(const UNumberFormat *fmt, *status = U_MEMORY_ALLOCATION_ERROR; return 0; } - + return (UNumberFormat*) res; } @@ -196,26 +196,26 @@ unum_formatInt64(const UNumberFormat* fmt, { if(U_FAILURE(*status)) return -1; - + UnicodeString res; if(!(result==NULL && resultLength==0)) { // NULL destination for pure preflighting: empty dummy string // otherwise, alias the destination buffer res.setTo(result, 0, resultLength); } - + FieldPosition fp; - + if(pos != 0) fp.setField(pos->field); - + ((const NumberFormat*)fmt)->format(number, res, fp, *status); if(pos != 0) { pos->beginIndex = fp.getBeginIndex(); pos->endIndex = fp.getEndIndex(); } - + return res.extract(result, resultLength, *status); } @@ -227,7 +227,7 @@ unum_formatDouble( const UNumberFormat* fmt, UFieldPosition *pos, /* 0 if ignore */ UErrorCode* status) { - + if(U_FAILURE(*status)) return -1; UnicodeString res; @@ -238,17 +238,17 @@ unum_formatDouble( const UNumberFormat* fmt, } FieldPosition fp; - + if(pos != 0) fp.setField(pos->field); - + ((const NumberFormat*)fmt)->format(number, res, fp, *status); - + if(pos != 0) { pos->beginIndex = fp.getBeginIndex(); pos->endIndex = fp.getEndIndex(); } - + return res.extract(result, resultLength, *status); } @@ -280,7 +280,7 @@ unum_formatDoubleForFields(const UNumberFormat* format, return res.extract(result, resultLength, *status); } -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_formatDecimal(const UNumberFormat* fmt, const char * number, int32_t length, @@ -324,7 +324,7 @@ unum_formatDecimal(const UNumberFormat* fmt, -U_CAPI int32_t U_EXPORT2 +U_CAPI int32_t U_EXPORT2 unum_formatDoubleCurrency(const UNumberFormat* fmt, double number, UChar* currency, @@ -340,7 +340,7 @@ unum_formatDoubleCurrency(const UNumberFormat* fmt, // otherwise, alias the destination buffer res.setTo(result, 0, resultLength); } - + FieldPosition fp; if (pos != 0) { fp.setField(pos->field); @@ -353,12 +353,12 @@ unum_formatDoubleCurrency(const UNumberFormat* fmt, } Formattable n(tempCurrAmnt); ((const NumberFormat*)fmt)->format(n, res, fp, *status); - + if (pos != 0) { pos->beginIndex = fp.getBeginIndex(); pos->endIndex = fp.getEndIndex(); } - + return res.extract(result, resultLength, *status); } @@ -372,15 +372,15 @@ parseRes(Formattable& res, { if(U_FAILURE(*status)) return; - + const UnicodeString src((UBool)(textLength == -1), text, textLength); ParsePosition pp; - + if(parsePos != 0) pp.setIndex(*parsePos); - + ((const NumberFormat*)fmt)->parse(src, res, pp); - + if(pp.getErrorIndex() != -1) { *status = U_PARSE_ERROR; if(parsePos != 0) { @@ -614,7 +614,7 @@ unum_setDoubleAttribute( UNumberFormat* fmt, { NumberFormat* nf = reinterpret_cast(fmt); DecimalFormat* df = dynamic_cast(nf); - if (df != NULL && attr == UNUM_ROUNDING_INCREMENT) { + if (df != NULL && attr == UNUM_ROUNDING_INCREMENT) { df->setRoundingIncrement(newValue); } } @@ -706,27 +706,27 @@ unum_setTextAttribute( UNumberFormat* fmt, case UNUM_POSITIVE_PREFIX: df->setPositivePrefix(val); break; - + case UNUM_POSITIVE_SUFFIX: df->setPositiveSuffix(val); break; - + case UNUM_NEGATIVE_PREFIX: df->setNegativePrefix(val); break; - + case UNUM_NEGATIVE_SUFFIX: df->setNegativeSuffix(val); break; - + case UNUM_PADDING_CHARACTER: df->setPadCharacter(val); break; - + case UNUM_CURRENCY_CODE: df->setCurrency(val.getTerminatedBuffer(), *status); break; - + default: *status = U_UNSUPPORTED_ERROR; break; @@ -751,7 +751,7 @@ unum_toPattern( const UNumberFormat* fmt, { if(U_FAILURE(*status)) return -1; - + UnicodeString pat; if(!(result==NULL && resultLength==0)) { // NULL destination for pure preflighting: empty dummy string @@ -838,15 +838,15 @@ unum_applyPattern( UNumberFormat *fmt, { UErrorCode tStatus = U_ZERO_ERROR; UParseError tParseError; - + if(parseError == NULL){ parseError = &tParseError; } - + if(status==NULL){ status = &tStatus; } - + int32_t len = (patternLength == -1 ? u_strlen(pattern) : patternLength); const UnicodeString pat((UChar*)pattern, len, len); diff --git a/deps/icu-small/source/i18n/uregex.cpp b/deps/icu-small/source/i18n/uregex.cpp index 763a78a14a9b4d..514159e8b7af35 100644 --- a/deps/icu-small/source/i18n/uregex.cpp +++ b/deps/icu-small/source/i18n/uregex.cpp @@ -1169,7 +1169,7 @@ uregex_replaceAll(URegularExpression *regexp2, uregex_reset(regexp2, 0, status); - // Note: Seperate error code variables for findNext() and appendReplacement() + // Note: Separate error code variables for findNext() and appendReplacement() // are used so that destination buffer overflow errors // in appendReplacement won't stop findNext() from working. // appendReplacement() and appendTail() special case incoming buffer @@ -1353,7 +1353,7 @@ int32_t RegexCImpl::appendReplacement(RegularExpression *regexp, } // - // Validate all paramters + // Validate all parameters // if (validateRE(regexp, TRUE, status) == FALSE) { return 0; @@ -1497,7 +1497,7 @@ int32_t RegexCImpl::appendReplacement(RegularExpression *regexp, // Scan for Named Capture Group, ${name}. UnicodeString groupName; U16_FWD_1(replacementText, replIdx, replacementLength); - while (U_SUCCESS(*status) && c32 != RIGHTBRACKET) { + while (U_SUCCESS(*status) && c32 != RIGHTBRACKET) { if (replIdx >= replacementLength) { *status = U_REGEX_INVALID_CAPTURE_GROUP_NAME; break; @@ -1977,3 +1977,4 @@ uregex_splitUText(URegularExpression *regexp2, #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS + diff --git a/deps/icu-small/source/i18n/uregexc.cpp b/deps/icu-small/source/i18n/uregexc.cpp index 8674b4f17f5876..c7d3bcd2c743fb 100644 --- a/deps/icu-small/source/i18n/uregexc.cpp +++ b/deps/icu-small/source/i18n/uregexc.cpp @@ -8,7 +8,7 @@ * file name: regexc.cpp * description: The purpose of this function is to separate the codepage * conversion from the rest of the uregex_ API. This can removes any -* dependency on codepage conversion, which reduces the overhead of +* dependency on codepage conversion, which reduces the overhead of */ #include "unicode/uregex.h" diff --git a/deps/icu-small/source/i18n/usearch.cpp b/deps/icu-small/source/i18n/usearch.cpp index 47da3d7364de3f..80b80fa3b43710 100644 --- a/deps/icu-small/source/i18n/usearch.cpp +++ b/deps/icu-small/source/i18n/usearch.cpp @@ -26,17 +26,13 @@ U_NAMESPACE_USE -// don't use Boyer-Moore -// (and if we decide to turn this on again there are several new TODOs that will need to be addressed) -#define BOYER_MOORE 0 - // internal definition --------------------------------------------------- #define LAST_BYTE_MASK_ 0xFF #define SECOND_LAST_BYTE_SHIFT_ 8 #define SUPPLEMENTARY_MIN_VALUE_ 0x10000 -static const Normalizer2Impl *g_nfcImpl = NULL; +static const Normalizer2Impl *g_nfcImpl = nullptr; // internal methods ------------------------------------------------- @@ -48,11 +44,11 @@ static const Normalizer2Impl *g_nfcImpl = NULL; */ static inline void setColEIterOffset(UCollationElements *elems, - int32_t offset) + int32_t offset, + UErrorCode &status) { // Note: Not "fast" any more after the 2013 collation rewrite. // We do not want to expose more internals than necessary. - UErrorCode status = U_ZERO_ERROR; ucol_setOffset(elems, offset, &status); } @@ -76,29 +72,10 @@ inline uint32_t getMask(UCollationStrength strength) } } -/** -* @param ce 32-bit collation element -* @return hash code -*/ -static -inline int hashFromCE32(uint32_t ce) -{ - int hc = (int)( - ((((((ce >> 24) * 37) + - (ce >> 16)) * 37) + - (ce >> 8)) * 37) + - ce); - hc %= MAX_TABLE_SIZE_; - if (hc < 0) { - hc += MAX_TABLE_SIZE_; - } - return hc; -} - U_CDECL_BEGIN static UBool U_CALLCONV usearch_cleanup(void) { - g_nfcImpl = NULL; + g_nfcImpl = nullptr; return TRUE; } U_CDECL_END @@ -112,7 +89,7 @@ U_CDECL_END static inline void initializeFCD(UErrorCode *status) { - if (g_nfcImpl == NULL) { + if (g_nfcImpl == nullptr) { g_nfcImpl = Normalizer2Factory::getNFCImpl(*status); ucln_i18n_registerCleanup(UCLN_I18N_USEARCH, usearch_cleanup); } @@ -175,18 +152,18 @@ inline int32_t getCE(const UStringSearch *strsrch, uint32_t sourcece) } /** -* Allocate a memory and returns NULL if it failed. +* Allocate a memory and returns nullptr if it failed. * Internal method, status assumed to be a success. * @param size to allocate * @param status output error if any, caller to check status before calling * method, status assumed to be success when passed in. -* @return newly allocated array, NULL otherwise +* @return newly allocated array, nullptr otherwise */ static inline void * allocateMemory(uint32_t size, UErrorCode *status) { uint32_t *result = (uint32_t *)uprv_malloc(size); - if (result == NULL) { + if (result == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; } return result; @@ -197,7 +174,7 @@ inline void * allocateMemory(uint32_t size, UErrorCode *status) * Creates a new array if we run out of space. The caller will have to * manually deallocate the newly allocated array. * Internal method, status assumed to be success, caller has to check status -* before calling this method. destination not to be NULL and has at least +* before calling this method. destination not to be nullptr and has at least * size destinationlength. * @param destination target array * @param offset destination offset to add value @@ -222,7 +199,7 @@ inline int32_t * addTouint32_tArray(int32_t *destination, int32_t *temp = (int32_t *)allocateMemory( sizeof(int32_t) * newlength, status); if (U_FAILURE(*status)) { - return NULL; + return nullptr; } uprv_memcpy(temp, destination, sizeof(int32_t) * (size_t)offset); *destinationlength = newlength; @@ -237,7 +214,7 @@ inline int32_t * addTouint32_tArray(int32_t *destination, * Creates a new array if we run out of space. The caller will have to * manually deallocate the newly allocated array. * Internal method, status assumed to be success, caller has to check status -* before calling this method. destination not to be NULL and has at least +* before calling this method. destination not to be nullptr and has at least * size destinationlength. * @param destination target array * @param offset destination offset to add value @@ -263,7 +240,7 @@ inline int64_t * addTouint64_tArray(int64_t *destination, sizeof(int64_t) * newlength, status); if (U_FAILURE(*status)) { - return NULL; + return nullptr; } uprv_memcpy(temp, destination, sizeof(int64_t) * (size_t)offset); @@ -286,11 +263,9 @@ inline int64_t * addTouint64_tArray(int64_t *destination, * @param strsrch string search data * @param status output error if any, caller to check status before calling * method, status assumed to be success when passed in. -* @return total number of expansions */ static -inline uint16_t initializePatternCETable(UStringSearch *strsrch, - UErrorCode *status) +inline void initializePatternCETable(UStringSearch *strsrch, UErrorCode *status) { UPattern *pattern = &(strsrch->pattern); uint32_t cetablesize = INITIAL_ARRAY_SIZE_; @@ -298,7 +273,7 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, uint32_t patternlength = pattern->textLength; UCollationElements *coleiter = strsrch->utilIter; - if (coleiter == NULL) { + if (coleiter == nullptr) { coleiter = ucol_openElements(strsrch->collator, pattern->text, patternlength, status); // status will be checked in ucol_next(..) later and if it is an @@ -310,7 +285,7 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, ucol_setText(coleiter, pattern->text, pattern->textLength, status); } if(U_FAILURE(*status)) { - return 0; + return; } if (pattern->ces != cetable && pattern->ces) { @@ -318,7 +293,6 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, } uint32_t offset = 0; - uint16_t result = 0; int32_t ce; while ((ce = ucol_next(coleiter, status)) != UCOL_NULLORDER && @@ -330,7 +304,7 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, patternlength - ucol_getOffset(coleiter) + 1, status); if (U_FAILURE(*status)) { - return 0; + return; } offset ++; if (cetable != temp && cetable != pattern->cesBuffer) { @@ -338,14 +312,11 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, } cetable = temp; } - result += (uint16_t)(ucol_getMaxExpansion(coleiter, ce) - 1); } cetable[offset] = 0; pattern->ces = cetable; pattern->cesLength = offset; - - return result; } /** @@ -358,11 +329,10 @@ inline uint16_t initializePatternCETable(UStringSearch *strsrch, * @param strsrch string search data * @param status output error if any, caller to check status before calling * method, status assumed to be success when passed in. -* @return total number of expansions */ static -inline uint16_t initializePatternPCETable(UStringSearch *strsrch, - UErrorCode *status) +inline void initializePatternPCETable(UStringSearch *strsrch, + UErrorCode *status) { UPattern *pattern = &(strsrch->pattern); uint32_t pcetablesize = INITIAL_ARRAY_SIZE_; @@ -370,26 +340,25 @@ inline uint16_t initializePatternPCETable(UStringSearch *strsrch, uint32_t patternlength = pattern->textLength; UCollationElements *coleiter = strsrch->utilIter; - if (coleiter == NULL) { + if (coleiter == nullptr) { coleiter = ucol_openElements(strsrch->collator, pattern->text, patternlength, status); - // status will be checked in ucol_next(..) later and if it is an - // error UCOL_NULLORDER the result of ucol_next(..) and 0 will be + // status will be checked in nextProcessed(..) later and if it is an error + // then UCOL_PROCESSED_NULLORDER is returned by nextProcessed(..), so 0 will be // returned. strsrch->utilIter = coleiter; } else { ucol_setText(coleiter, pattern->text, pattern->textLength, status); } if(U_FAILURE(*status)) { - return 0; + return; } - if (pattern->pces != pcetable && pattern->pces != NULL) { + if (pattern->pces != pcetable && pattern->pces != nullptr) { uprv_free(pattern->pces); } uint32_t offset = 0; - uint16_t result = 0; int64_t pce; icu::UCollationPCE iter(coleiter); @@ -397,7 +366,7 @@ inline uint16_t initializePatternPCETable(UStringSearch *strsrch, // ** Should processed CEs be signed or unsigned? // ** (the rest of the code in this file seems to play fast-and-loose with // ** whether a CE is signed or unsigned. For example, look at routine above this one.) - while ((pce = iter.nextProcessed(NULL, NULL, status)) != UCOL_PROCESSED_NULLORDER && + while ((pce = iter.nextProcessed(nullptr, nullptr, status)) != UCOL_PROCESSED_NULLORDER && U_SUCCESS(*status)) { int64_t *temp = addTouint64_tArray(pcetable, offset, &pcetablesize, pce, @@ -405,7 +374,7 @@ inline uint16_t initializePatternPCETable(UStringSearch *strsrch, status); if (U_FAILURE(*status)) { - return 0; + return; } offset += 1; @@ -415,28 +384,24 @@ inline uint16_t initializePatternPCETable(UStringSearch *strsrch, } pcetable = temp; - //result += (uint16_t)(ucol_getMaxExpansion(coleiter, ce) - 1); } pcetable[offset] = 0; pattern->pces = pcetable; pattern->pcesLength = offset; - - return result; } /** * Initializes the pattern struct. -* Internal method, status assumed to be success. * @param strsrch UStringSearch data storage * @param status output error if any, caller to check status before calling * method, status assumed to be success when passed in. -* @return expansionsize the total expansion size of the pattern */ static -inline int16_t initializePattern(UStringSearch *strsrch, UErrorCode *status) +inline void initializePattern(UStringSearch *strsrch, UErrorCode *status) { - if (U_FAILURE(*status)) { return 0; } + if (U_FAILURE(*status)) { return; } + UPattern *pattern = &(strsrch->pattern); const UChar *patterntext = pattern->text; int32_t length = pattern->textLength; @@ -456,90 +421,19 @@ inline int16_t initializePattern(UStringSearch *strsrch, UErrorCode *status) } // ** HACK ** - if (strsrch->pattern.pces != NULL) { + if (strsrch->pattern.pces != nullptr) { if (strsrch->pattern.pces != strsrch->pattern.pcesBuffer) { uprv_free(strsrch->pattern.pces); } - strsrch->pattern.pces = NULL; - } - - // since intializePattern is an internal method status is a success. - return initializePatternCETable(strsrch, status); -} - -/** -* Initializing shift tables, with the default values. -* If a corresponding default value is 0, the shift table is not set. -* @param shift table for forwards shift -* @param backshift table for backwards shift -* @param cetable table containing pattern ce -* @param cesize size of the pattern ces -* @param expansionsize total size of the expansions -* @param defaultforward the default forward value -* @param defaultbackward the default backward value -*/ -static -inline void setShiftTable(int16_t shift[], int16_t backshift[], - int32_t *cetable, int32_t cesize, - int16_t expansionsize, - int16_t defaultforward, - int16_t defaultbackward) -{ - // estimate the value to shift. to do that we estimate the smallest - // number of characters to give the relevant ces, ie approximately - // the number of ces minus their expansion, since expansions can come - // from a character. - int32_t count; - for (count = 0; count < MAX_TABLE_SIZE_; count ++) { - shift[count] = defaultforward; + strsrch->pattern.pces = nullptr; } - cesize --; // down to the last index - for (count = 0; count < cesize; count ++) { - // number of ces from right of array to the count - int temp = defaultforward - count - 1; - shift[hashFromCE32(cetable[count])] = temp > 1 ? static_cast(temp) : 1; - } - shift[hashFromCE32(cetable[cesize])] = 1; - // for ignorables we just shift by one. see test examples. - shift[hashFromCE32(0)] = 1; - for (count = 0; count < MAX_TABLE_SIZE_; count ++) { - backshift[count] = defaultbackward; - } - for (count = cesize; count > 0; count --) { - // the original value count does not seem to work - backshift[hashFromCE32(cetable[count])] = count > expansionsize ? - (int16_t)(count - expansionsize) : 1; - } - backshift[hashFromCE32(cetable[0])] = 1; - backshift[hashFromCE32(0)] = 1; + initializePatternCETable(strsrch, status); } /** -* Building of the pattern collation element list and the boyer moore strsrch -* table. -* The canonical match will only be performed after the default match fails. -* For both cases we need to remember the size of the composed and decomposed -* versions of the string. Since the Boyer-Moore shift calculations shifts by -* a number of characters in the text and tries to match the pattern from that -* offset, the shift value can not be too large in case we miss some -* characters. To choose a right shift size, we estimate the NFC form of the -* and use its size as a shift guide. The NFC form should be the small -* possible representation of the pattern. Anyways, we'll err on the smaller -* shift size. Hence the calculation for minlength. -* Canonical match will be performed slightly differently. We'll split the -* pattern into 3 parts, the prefix accents (PA), the middle string bounded by -* the first and last base character (MS), the ending accents (EA). Matches -* will be done on MS first, and only when we match MS then some processing -* will be required for the prefix and end accents in order to determine if -* they match PA and EA. Hence the default shift values -* for the canonical match will take the size of either end's accent into -* consideration. Forwards search will take the end accents into consideration -* for the default shift values and the backwards search will take the prefix -* accents into consideration. -* If pattern has no non-ignorable ce, we return a illegal argument error. -* Internal method, status assumed to be success. +* Initializes the pattern struct and builds the pattern collation element table. * @param strsrch UStringSearch data storage * @param status for output errors if it occurs, status is assumed to be a * success when it is passed in. @@ -547,2046 +441,100 @@ inline void setShiftTable(int16_t shift[], int16_t backshift[], static inline void initialize(UStringSearch *strsrch, UErrorCode *status) { - int16_t expandlength = initializePattern(strsrch, status); - if (U_SUCCESS(*status) && strsrch->pattern.cesLength > 0) { - UPattern *pattern = &strsrch->pattern; - int32_t cesize = pattern->cesLength; - - int16_t minlength = cesize > expandlength - ? (int16_t)cesize - expandlength : 1; - pattern->defaultShiftSize = minlength; - setShiftTable(pattern->shift, pattern->backShift, pattern->ces, - cesize, expandlength, minlength, minlength); - return; - } - strsrch->pattern.defaultShiftSize = 0; + initializePattern(strsrch, status); } -#if BOYER_MOORE -/** -* Check to make sure that the match length is at the end of the character by -* using the breakiterator. -* @param strsrch string search data -* @param start target text start offset -* @param end target text end offset -*/ -static -void checkBreakBoundary(const UStringSearch *strsrch, int32_t * /*start*/, - int32_t *end) -{ #if !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = strsrch->search->internalBreakIter; - if (breakiterator) { - int32_t matchend = *end; - //int32_t matchstart = *start; - - if (!ubrk_isBoundary(breakiterator, matchend)) { - *end = ubrk_following(breakiterator, matchend); - } - - /* Check the start of the matched text to make sure it doesn't have any accents - * before it. This code may not be necessary and so it is commented out */ - /*if (!ubrk_isBoundary(breakiterator, matchstart) && !ubrk_isBoundary(breakiterator, matchstart-1)) { - *start = ubrk_preceding(breakiterator, matchstart); - }*/ - } -#endif -} - -/** -* Determine whether the target text in UStringSearch bounded by the offset -* start and end is one or more whole units of text as -* determined by the breakiterator in UStringSearch. -* @param strsrch string search data -* @param start target text start offset -* @param end target text end offset -*/ -static -UBool isBreakUnit(const UStringSearch *strsrch, int32_t start, - int32_t end) +// If the caller provided a character breakiterator we'll return that, +// otherwise we lazily create the internal break iterator. +static UBreakIterator* getBreakIterator(UStringSearch *strsrch, UErrorCode &status) { -#if !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = strsrch->search->breakIter; - //TODO: Add here. - if (breakiterator) { - int32_t startindex = ubrk_first(breakiterator); - int32_t endindex = ubrk_last(breakiterator); - - // out-of-range indexes are never boundary positions - if (start < startindex || start > endindex || - end < startindex || end > endindex) { - return FALSE; - } - // otherwise, we can use following() on the position before the - // specified one and return true of the position we get back is the - // one the user specified - UBool result = (start == startindex || - ubrk_following(breakiterator, start - 1) == start) && - (end == endindex || - ubrk_following(breakiterator, end - 1) == end); - if (result) { - // iterates the individual ces - UCollationElements *coleiter = strsrch->utilIter; - const UChar *text = strsrch->search->text + - start; - UErrorCode status = U_ZERO_ERROR; - ucol_setText(coleiter, text, end - start, &status); - for (int32_t count = 0; count < strsrch->pattern.cesLength; - count ++) { - int32_t ce = getCE(strsrch, ucol_next(coleiter, &status)); - if (ce == UCOL_IGNORABLE) { - count --; - continue; - } - if (U_FAILURE(status) || ce != strsrch->pattern.ces[count]) { - return FALSE; - } - } - int32_t nextce = ucol_next(coleiter, &status); - while (ucol_getOffset(coleiter) == (end - start) - && getCE(strsrch, nextce) == UCOL_IGNORABLE) { - nextce = ucol_next(coleiter, &status); - } - if (ucol_getOffset(coleiter) == (end - start) - && nextce != UCOL_NULLORDER) { - // extra collation elements at the end of the match - return FALSE; - } - } - return result; + if (U_FAILURE(status)) { + return nullptr; } -#endif - return TRUE; -} -/** -* Getting the next base character offset if current offset is an accent, -* or the current offset if the current character contains a base character. -* accents the following base character will be returned -* @param text string -* @param textoffset current offset -* @param textlength length of text string -* @return the next base character or the current offset -* if the current character is contains a base character. -*/ -static -inline int32_t getNextBaseOffset(const UChar *text, - int32_t textoffset, - int32_t textlength) -{ - if (textoffset < textlength) { - int32_t temp = textoffset; - if (getFCD(text, &temp, textlength) >> SECOND_LAST_BYTE_SHIFT_) { - while (temp < textlength) { - int32_t result = temp; - if ((getFCD(text, &temp, textlength) >> - SECOND_LAST_BYTE_SHIFT_) == 0) { - return result; - } - } - return textlength; - } + if (strsrch->search->breakIter != nullptr) { + return strsrch->search->breakIter; } - return textoffset; -} -/** -* Gets the next base character offset depending on the string search pattern -* data -* @param strsrch string search data -* @param textoffset current offset, one offset away from the last character -* to search for. -* @return start index of the next base character or the current offset -* if the current character is contains a base character. -*/ -static -inline int32_t getNextUStringSearchBaseOffset(UStringSearch *strsrch, - int32_t textoffset) -{ - int32_t textlength = strsrch->search->textLength; - if (strsrch->pattern.hasSuffixAccents && - textoffset < textlength) { - int32_t temp = textoffset; - const UChar *text = strsrch->search->text; - U16_BACK_1(text, 0, temp); - if (getFCD(text, &temp, textlength) & LAST_BYTE_MASK_) { - return getNextBaseOffset(text, textoffset, textlength); - } + if (strsrch->search->internalBreakIter != nullptr) { + return strsrch->search->internalBreakIter; } - return textoffset; -} -/** -* Shifting the collation element iterator position forward to prepare for -* a following match. If the last character is a unsafe character, we'll only -* shift by 1 to capture contractions, normalization etc. -* Internal method, status assumed to be success. -* @param text strsrch string search data -* @param textoffset start text position to do search -* @param ce the text ce which failed the match. -* @param patternceindex index of the ce within the pattern ce buffer which -* failed the match -* @return final offset -*/ -static -inline int32_t shiftForward(UStringSearch *strsrch, - int32_t textoffset, - int32_t ce, - int32_t patternceindex) -{ - UPattern *pattern = &(strsrch->pattern); - if (ce != UCOL_NULLORDER) { - int32_t shift = pattern->shift[hashFromCE32(ce)]; - // this is to adjust for characters in the middle of the - // substring for matching that failed. - int32_t adjust = pattern->cesLength - patternceindex; - if (adjust > 1 && shift >= adjust) { - shift -= adjust - 1; - } - textoffset += shift; - } - else { - textoffset += pattern->defaultShiftSize; - } + // Need to create the internal break iterator. + strsrch->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, + ucol_getLocaleByType(strsrch->collator, ULOC_VALID_LOCALE, &status), + strsrch->search->text, strsrch->search->textLength, &status); - textoffset = getNextUStringSearchBaseOffset(strsrch, textoffset); - // check for unsafe characters - // * if it is the start or middle of a contraction: to be done after - // a initial match is found - // * thai or lao base consonant character: similar to contraction - // * high surrogate character: similar to contraction - // * next character is a accent: shift to the next base character - return textoffset; + return strsrch->search->internalBreakIter; } -#endif // #if BOYER_MOORE +#endif /** -* sets match not found +* Sets the match result to "not found", regardless of the incoming error status. +* If an error occurs while setting the result, it is reported back. +* * @param strsrch string search data +* @param status for output errors, if they occur. */ static -inline void setMatchNotFound(UStringSearch *strsrch) +inline void setMatchNotFound(UStringSearch *strsrch, UErrorCode &status) { - // this method resets the match result regardless of the error status. + UErrorCode localStatus = U_ZERO_ERROR; + strsrch->search->matchedIndex = USEARCH_DONE; strsrch->search->matchedLength = 0; if (strsrch->search->isForwardSearching) { - setColEIterOffset(strsrch->textIter, strsrch->search->textLength); - } - else { - setColEIterOffset(strsrch->textIter, 0); - } -} - -#if BOYER_MOORE -/** -* Gets the offset to the next safe point in text. -* ie. not the middle of a contraction, swappable characters or supplementary -* characters. -* @param collator collation sata -* @param text string to work with -* @param textoffset offset in string -* @param textlength length of text string -* @return offset to the next safe character -*/ -static -inline int32_t getNextSafeOffset(const UCollator *collator, - const UChar *text, - int32_t textoffset, - int32_t textlength) -{ - int32_t result = textoffset; // first contraction character - while (result != textlength && ucol_unsafeCP(text[result], collator)) { - result ++; - } - return result; -} - -/** -* This checks for accents in the potential match started with a . -* composite character. -* This is really painful... we have to check that composite character do not -* have any extra accents. We have to normalize the potential match and find -* the immediate decomposed character before the match. -* The first composite character would have been taken care of by the fcd -* checks in checkForwardExactMatch. -* This is the slow path after the fcd of the first character and -* the last character has been checked by checkForwardExactMatch and we -* determine that the potential match has extra non-ignorable preceding -* ces. -* E.g. looking for \u0301 acute in \u01FA A ring above and acute, -* checkExtraMatchAccent should fail since there is a middle ring in \u01FA -* Note here that accents checking are slow and cautioned in the API docs. -* Internal method, status assumed to be a success, caller should check status -* before calling this method -* @param strsrch string search data -* @param start index of the potential unfriendly composite character -* @param end index of the potential unfriendly composite character -* @param status output error status if any. -* @return TRUE if there is non-ignorable accents before at the beginning -* of the match, FALSE otherwise. -*/ - -static -UBool checkExtraMatchAccents(const UStringSearch *strsrch, int32_t start, - int32_t end, - UErrorCode *status) -{ - UBool result = FALSE; - if (strsrch->pattern.hasPrefixAccents) { - int32_t length = end - start; - int32_t offset = 0; - const UChar *text = strsrch->search->text + start; - - U16_FWD_1(text, offset, length); - // we are only concerned with the first composite character - if (unorm_quickCheck(text, offset, UNORM_NFD, status) == UNORM_NO) { - int32_t safeoffset = getNextSafeOffset(strsrch->collator, - text, 0, length); - if (safeoffset != length) { - safeoffset ++; - } - UChar *norm = NULL; - UChar buffer[INITIAL_ARRAY_SIZE_]; - int32_t size = unorm_normalize(text, safeoffset, UNORM_NFD, 0, - buffer, INITIAL_ARRAY_SIZE_, - status); - if (U_FAILURE(*status)) { - return FALSE; - } - if (size >= INITIAL_ARRAY_SIZE_) { - norm = (UChar *)allocateMemory((size + 1) * sizeof(UChar), - status); - // if allocation failed, status will be set to - // U_MEMORY_ALLOCATION_ERROR and unorm_normalize internally - // checks for it. - size = unorm_normalize(text, safeoffset, UNORM_NFD, 0, norm, - size, status); - if (U_FAILURE(*status) && norm != NULL) { - uprv_free(norm); - return FALSE; - } - } - else { - norm = buffer; - } - - UCollationElements *coleiter = strsrch->utilIter; - ucol_setText(coleiter, norm, size, status); - uint32_t firstce = strsrch->pattern.ces[0]; - UBool ignorable = TRUE; - uint32_t ce = UCOL_IGNORABLE; - while (U_SUCCESS(*status) && ce != firstce && ce != (uint32_t)UCOL_NULLORDER) { - offset = ucol_getOffset(coleiter); - if (ce != firstce && ce != UCOL_IGNORABLE) { - ignorable = FALSE; - } - ce = ucol_next(coleiter, status); - } - UChar32 codepoint; - U16_PREV(norm, 0, offset, codepoint); - result = !ignorable && (u_getCombiningClass(codepoint) != 0); - - if (norm != buffer) { - uprv_free(norm); - } - } - } - - return result; -} - -/** -* Used by exact matches, checks if there are accents before the match. -* This is really painful... we have to check that composite characters at -* the start of the matches have to not have any extra accents. -* We check the FCD of the character first, if it starts with an accent and -* the first pattern ce does not match the first ce of the character, we bail. -* Otherwise we try normalizing the first composite -* character and find the immediate decomposed character before the match to -* see if it is an non-ignorable accent. -* Now normalizing the first composite character is enough because we ensure -* that when the match is passed in here with extra beginning ces, the -* first or last ce that match has to occur within the first character. -* E.g. looking for \u0301 acute in \u01FA A ring above and acute, -* checkExtraMatchAccent should fail since there is a middle ring in \u01FA -* Note here that accents checking are slow and cautioned in the API docs. -* @param strsrch string search data -* @param start offset -* @param end offset -* @return TRUE if there are accents on either side of the match, -* FALSE otherwise -*/ -static -UBool hasAccentsBeforeMatch(const UStringSearch *strsrch, int32_t start, - int32_t end) -{ - if (strsrch->pattern.hasPrefixAccents) { - UCollationElements *coleiter = strsrch->textIter; - UErrorCode status = U_ZERO_ERROR; - // we have been iterating forwards previously - uint32_t ignorable = TRUE; - int32_t firstce = strsrch->pattern.ces[0]; - - setColEIterOffset(coleiter, start); - int32_t ce = getCE(strsrch, ucol_next(coleiter, &status)); - if (U_FAILURE(status)) { - return TRUE; - } - while (ce != firstce) { - if (ce != UCOL_IGNORABLE) { - ignorable = FALSE; - } - ce = getCE(strsrch, ucol_next(coleiter, &status)); - if (U_FAILURE(status) || ce == UCOL_NULLORDER) { - return TRUE; - } - } - if (!ignorable && inNormBuf(coleiter)) { - // within normalization buffer, discontiguous handled here - return TRUE; - } - - // within text - int32_t temp = start; - // original code - // accent = (getFCD(strsrch->search->text, &temp, - // strsrch->search->textLength) - // >> SECOND_LAST_BYTE_SHIFT_); - // however this code does not work well with VC7 .net in release mode. - // maybe the inlines for getFCD combined with shifting has bugs in - // VC7. anyways this is a work around. - UBool accent = getFCD(strsrch->search->text, &temp, - strsrch->search->textLength) > 0xFF; - if (!accent) { - return checkExtraMatchAccents(strsrch, start, end, &status); - } - if (!ignorable) { - return TRUE; - } - if (start > 0) { - temp = start; - U16_BACK_1(strsrch->search->text, 0, temp); - if (getFCD(strsrch->search->text, &temp, - strsrch->search->textLength) & LAST_BYTE_MASK_) { - setColEIterOffset(coleiter, start); - ce = ucol_previous(coleiter, &status); - if (U_FAILURE(status) || - (ce != UCOL_NULLORDER && ce != UCOL_IGNORABLE)) { - return TRUE; - } - } - } - } - - return FALSE; -} - -/** -* Used by exact matches, checks if there are accents bounding the match. -* Note this is the initial boundary check. If the potential match -* starts or ends with composite characters, the accents in those -* characters will be determined later. -* Not doing backwards iteration here, since discontiguos contraction for -* backwards collation element iterator, use up too many characters. -* E.g. looking for \u030A ring in \u01FA A ring above and acute, -* should fail since there is a acute at the end of \u01FA -* Note here that accents checking are slow and cautioned in the API docs. -* @param strsrch string search data -* @param start offset of match -* @param end end offset of the match -* @return TRUE if there are accents on either side of the match, -* FALSE otherwise -*/ -static -UBool hasAccentsAfterMatch(const UStringSearch *strsrch, int32_t start, - int32_t end) -{ - if (strsrch->pattern.hasSuffixAccents) { - const UChar *text = strsrch->search->text; - int32_t temp = end; - int32_t textlength = strsrch->search->textLength; - U16_BACK_1(text, 0, temp); - if (getFCD(text, &temp, textlength) & LAST_BYTE_MASK_) { - int32_t firstce = strsrch->pattern.ces[0]; - UCollationElements *coleiter = strsrch->textIter; - UErrorCode status = U_ZERO_ERROR; - int32_t ce; - setColEIterOffset(coleiter, start); - while ((ce = getCE(strsrch, ucol_next(coleiter, &status))) != firstce) { - if (U_FAILURE(status) || ce == UCOL_NULLORDER) { - return TRUE; - } - } - int32_t count = 1; - while (count < strsrch->pattern.cesLength) { - if (getCE(strsrch, ucol_next(coleiter, &status)) - == UCOL_IGNORABLE) { - // Thai can give an ignorable here. - count --; - } - if (U_FAILURE(status)) { - return TRUE; - } - count ++; - } - - ce = ucol_next(coleiter, &status); - if (U_FAILURE(status)) { - return TRUE; - } - if (ce != UCOL_NULLORDER && ce != UCOL_IGNORABLE) { - ce = getCE(strsrch, ce); - } - if (ce != UCOL_NULLORDER && ce != UCOL_IGNORABLE) { - if (ucol_getOffset(coleiter) <= end) { - return TRUE; - } - if (getFCD(text, &end, textlength) >> SECOND_LAST_BYTE_SHIFT_) { - return TRUE; - } - } - } - } - return FALSE; -} -#endif // #if BOYER_MOORE - -/** -* Checks if the offset runs out of the text string -* @param offset -* @param textlength of the text string -* @return TRUE if offset is out of bounds, FALSE otherwise -*/ -static -inline UBool isOutOfBounds(int32_t textlength, int32_t offset) -{ - return offset < 0 || offset > textlength; -} - -/** -* Checks for identical match -* @param strsrch string search data -* @param start offset of possible match -* @param end offset of possible match -* @return TRUE if identical match is found -*/ -static -inline UBool checkIdentical(const UStringSearch *strsrch, int32_t start, - int32_t end) -{ - if (strsrch->strength != UCOL_IDENTICAL) { - return TRUE; - } - - // Note: We could use Normalizer::compare() or similar, but for short strings - // which may not be in FCD it might be faster to just NFD them. - UErrorCode status = U_ZERO_ERROR; - UnicodeString t2, p2; - strsrch->nfd->normalize( - UnicodeString(FALSE, strsrch->search->text + start, end - start), t2, status); - strsrch->nfd->normalize( - UnicodeString(FALSE, strsrch->pattern.text, strsrch->pattern.textLength), p2, status); - // return FALSE if NFD failed - return U_SUCCESS(status) && t2 == p2; -} - -#if BOYER_MOORE -/** -* Checks to see if the match is repeated -* @param strsrch string search data -* @param start new match start index -* @param end new match end index -* @return TRUE if the the match is repeated, FALSE otherwise -*/ -static -inline UBool checkRepeatedMatch(UStringSearch *strsrch, - int32_t start, - int32_t end) -{ - int32_t lastmatchindex = strsrch->search->matchedIndex; - UBool result; - if (lastmatchindex == USEARCH_DONE) { - return FALSE; - } - if (strsrch->search->isForwardSearching) { - result = start <= lastmatchindex; + setColEIterOffset(strsrch->textIter, strsrch->search->textLength, localStatus); } else { - result = start >= lastmatchindex; - } - if (!result && !strsrch->search->isOverlap) { - if (strsrch->search->isForwardSearching) { - result = start < lastmatchindex + strsrch->search->matchedLength; - } - else { - result = end > lastmatchindex; - } + setColEIterOffset(strsrch->textIter, 0, localStatus); } - return result; -} - -/** -* Gets the collation element iterator's current offset. -* @param coleiter collation element iterator -* @param forwards flag TRUE if we are moving in th forwards direction -* @return current offset -*/ -static -inline int32_t getColElemIterOffset(const UCollationElements *coleiter, - UBool forwards) -{ - int32_t result = ucol_getOffset(coleiter); - // intricacies of the the backwards collation element iterator - if (FALSE && !forwards && inNormBuf(coleiter) && !isFCDPointerNull(coleiter)) { - result ++; - } - return result; -} - -/** -* Checks match for contraction. -* If the match ends with a partial contraction we fail. -* If the match starts too far off (because of backwards iteration) we try to -* chip off the extra characters depending on whether a breakiterator has -* been used. -* Internal method, error assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param start offset of potential match, to be modified if necessary -* @param end offset of potential match, to be modified if necessary -* @param status output error status if any -* @return TRUE if match passes the contraction test, FALSE otherwise -*/ - -static -UBool checkNextExactContractionMatch(UStringSearch *strsrch, - int32_t *start, - int32_t *end, UErrorCode *status) -{ - UCollationElements *coleiter = strsrch->textIter; - int32_t textlength = strsrch->search->textLength; - int32_t temp = *start; - const UCollator *collator = strsrch->collator; - const UChar *text = strsrch->search->text; - // This part checks if either ends of the match contains potential - // contraction. If so we'll have to iterate through them - // The start contraction needs to be checked since ucol_previous dumps - // all characters till the first safe character into the buffer. - // *start + 1 is used to test for the unsafe characters instead of *start - // because ucol_prev takes all unsafe characters till the first safe - // character ie *start. so by testing *start + 1, we can estimate if - // excess prefix characters has been included in the potential search - // results. - if ((*end < textlength && ucol_unsafeCP(text[*end], collator)) || - (*start + 1 < textlength - && ucol_unsafeCP(text[*start + 1], collator))) { - int32_t expansion = getExpansionPrefix(coleiter); - UBool expandflag = expansion > 0; - setColEIterOffset(coleiter, *start); - while (expansion > 0) { - // getting rid of the redundant ce, caused by setOffset. - // since backward contraction/expansion may have extra ces if we - // are in the normalization buffer, hasAccentsBeforeMatch would - // have taken care of it. - // E.g. the character \u01FA will have an expansion of 3, but if - // we are only looking for acute and ring \u030A and \u0301, we'll - // have to skip the first ce in the expansion buffer. - ucol_next(coleiter, status); - if (U_FAILURE(*status)) { - return FALSE; - } - if (ucol_getOffset(coleiter) != temp) { - *start = temp; - temp = ucol_getOffset(coleiter); - } - expansion --; - } - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t count = 0; - while (count < patterncelength) { - int32_t ce = getCE(strsrch, ucol_next(coleiter, status)); - if (ce == UCOL_IGNORABLE) { - continue; - } - if (expandflag && count == 0 && ucol_getOffset(coleiter) != temp) { - *start = temp; - temp = ucol_getOffset(coleiter); - } - if (U_FAILURE(*status) || ce != patternce[count]) { - (*end) ++; - *end = getNextUStringSearchBaseOffset(strsrch, *end); - return FALSE; - } - count ++; - } + // If an error occurred while setting the result to not found (ex: OOM), + // then we want to report that error back to the caller. + if (U_SUCCESS(status) && U_FAILURE(localStatus)) { + status = localStatus; } - return TRUE; } /** -* Checks and sets the match information if found. -* Checks -*

      -*
    • the potential match does not repeat the previous match -*
    • boundaries are correct -*
    • exact matches has no extra accents -*
    • identical matchesb -*
    • potential match does not end in the middle of a contraction -* <\ul> -* Otherwise the offset will be shifted to the next character. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param textoffset offset in the collation element text. the returned value -* will be the truncated end offset of the match or the new start -* search offset. -* @param status output error status if any -* @return TRUE if the match is valid, FALSE otherwise -*/ -static -inline UBool checkNextExactMatch(UStringSearch *strsrch, - int32_t *textoffset, UErrorCode *status) -{ - UCollationElements *coleiter = strsrch->textIter; - int32_t start = getColElemIterOffset(coleiter, FALSE); - - if (!checkNextExactContractionMatch(strsrch, &start, textoffset, status)) { - return FALSE; - } - - // this totally matches, however we need to check if it is repeating - if (!isBreakUnit(strsrch, start, *textoffset) || - checkRepeatedMatch(strsrch, start, *textoffset) || - hasAccentsBeforeMatch(strsrch, start, *textoffset) || - !checkIdentical(strsrch, start, *textoffset) || - hasAccentsAfterMatch(strsrch, start, *textoffset)) { - - (*textoffset) ++; - *textoffset = getNextUStringSearchBaseOffset(strsrch, *textoffset); - return FALSE; - } - - //Add breakiterator boundary check for primary strength search. - if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) { - checkBreakBoundary(strsrch, &start, textoffset); - } - - // totally match, we will get rid of the ending ignorables. - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = *textoffset - start; - return TRUE; -} - -/** -* Getting the previous base character offset, or the current offset if the -* current character is a base character -* @param text string -* @param textoffset one offset after the current character -* @return the offset of the next character after the base character or the first -* composed character with accents -*/ -static -inline int32_t getPreviousBaseOffset(const UChar *text, - int32_t textoffset) -{ - if (textoffset > 0) { - for (;;) { - int32_t result = textoffset; - U16_BACK_1(text, 0, textoffset); - int32_t temp = textoffset; - uint16_t fcd = getFCD(text, &temp, result); - if ((fcd >> SECOND_LAST_BYTE_SHIFT_) == 0) { - if (fcd & LAST_BYTE_MASK_) { - return textoffset; - } - return result; - } - if (textoffset == 0) { - return 0; - } - } - } - return textoffset; -} - -/** -* Getting the indexes of the accents that are not blocked in the argument -* accent array -* @param accents array of accents in nfd terminated by a 0. -* @param accentsindex array of indexes of the accents that are not blocked -*/ -static -inline int getUnblockedAccentIndex(UChar *accents, int32_t *accentsindex) -{ - int32_t index = 0; - int32_t length = u_strlen(accents); - UChar32 codepoint = 0; - int cclass = 0; - int result = 0; - int32_t temp; - while (index < length) { - temp = index; - U16_NEXT(accents, index, length, codepoint); - if (u_getCombiningClass(codepoint) != cclass) { - cclass = u_getCombiningClass(codepoint); - accentsindex[result] = temp; - result ++; - } - } - accentsindex[result] = length; - return result; -} - -/** -* Appends 3 UChar arrays to a destination array. -* Creates a new array if we run out of space. The caller will have to -* manually deallocate the newly allocated array. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. destination not to be NULL and has at least -* size destinationlength. -* @param destination target array -* @param destinationlength target array size, returning the appended length -* @param source1 null-terminated first array -* @param source2 second array -* @param source2length length of second array -* @param source3 null-terminated third array -* @param status error status if any -* @return new destination array, destination if there was no new allocation -*/ -static -inline UChar * addToUCharArray( UChar *destination, - int32_t *destinationlength, - const UChar *source1, - const UChar *source2, - int32_t source2length, - const UChar *source3, - UErrorCode *status) -{ - int32_t source1length = source1 ? u_strlen(source1) : 0; - int32_t source3length = source3 ? u_strlen(source3) : 0; - if (*destinationlength < source1length + source2length + source3length + - 1) - { - destination = (UChar *)allocateMemory( - (source1length + source2length + source3length + 1) * sizeof(UChar), - status); - // if error allocating memory, status will be - // U_MEMORY_ALLOCATION_ERROR - if (U_FAILURE(*status)) { - *destinationlength = 0; - return NULL; - } - } - if (source1length != 0) { - u_memcpy(destination, source1, source1length); - } - if (source2length != 0) { - uprv_memcpy(destination + source1length, source2, - sizeof(UChar) * source2length); - } - if (source3length != 0) { - uprv_memcpy(destination + source1length + source2length, source3, - sizeof(UChar) * source3length); - } - *destinationlength = source1length + source2length + source3length; - return destination; -} - -/** -* Running through a collation element iterator to see if the contents matches -* pattern in string search data -* @param strsrch string search data -* @param coleiter collation element iterator -* @return TRUE if a match if found, FALSE otherwise -*/ -static -inline UBool checkCollationMatch(const UStringSearch *strsrch, - UCollationElements *coleiter) -{ - int patternceindex = strsrch->pattern.cesLength; - int32_t *patternce = strsrch->pattern.ces; - UErrorCode status = U_ZERO_ERROR; - while (patternceindex > 0) { - int32_t ce = getCE(strsrch, ucol_next(coleiter, &status)); - if (ce == UCOL_IGNORABLE) { - continue; - } - if (U_FAILURE(status) || ce != *patternce) { - return FALSE; - } - patternce ++; - patternceindex --; - } - return TRUE; -} - -/** -* Rearranges the front accents to try matching. -* Prefix accents in the text will be grouped according to their combining -* class and the groups will be mixed and matched to try find the perfect -* match with the pattern. -* So for instance looking for "\u0301" in "\u030A\u0301\u0325" -* step 1: split "\u030A\u0301" into 6 other type of potential accent substrings -* "\u030A", "\u0301", "\u0325", "\u030A\u0301", "\u030A\u0325", -* "\u0301\u0325". -* step 2: check if any of the generated substrings matches the pattern. -* Internal method, status is assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search match -* @param start first offset of the accents to start searching -* @param end start of the last accent set -* @param status output error status if any -* @return USEARCH_DONE if a match is not found, otherwise return the starting -* offset of the match. Note this start includes all preceding accents. -*/ -static -int32_t doNextCanonicalPrefixMatch(UStringSearch *strsrch, - int32_t start, - int32_t end, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - int32_t textlength = strsrch->search->textLength; - int32_t tempstart = start; - - if ((getFCD(text, &tempstart, textlength) & LAST_BYTE_MASK_) == 0) { - // die... failed at a base character - return USEARCH_DONE; - } - - int32_t offset = getNextBaseOffset(text, tempstart, textlength); - start = getPreviousBaseOffset(text, tempstart); - - UChar accents[INITIAL_ARRAY_SIZE_]; - // normalizing the offensive string - unorm_normalize(text + start, offset - start, UNORM_NFD, 0, accents, - INITIAL_ARRAY_SIZE_, status); - if (U_FAILURE(*status)) { - return USEARCH_DONE; - } - - int32_t accentsindex[INITIAL_ARRAY_SIZE_]; - int32_t accentsize = getUnblockedAccentIndex(accents, - accentsindex); - int32_t count = (2 << (accentsize - 1)) - 1; - UChar buffer[INITIAL_ARRAY_SIZE_]; - UCollationElements *coleiter = strsrch->utilIter; - while (U_SUCCESS(*status) && count > 0) { - UChar *rearrange = strsrch->canonicalPrefixAccents; - // copy the base characters - for (int k = 0; k < accentsindex[0]; k ++) { - *rearrange ++ = accents[k]; - } - // forming all possible canonical rearrangement by dropping - // sets of accents - for (int i = 0; i <= accentsize - 1; i ++) { - int32_t mask = 1 << (accentsize - i - 1); - if (count & mask) { - for (int j = accentsindex[i]; j < accentsindex[i + 1]; j ++) { - *rearrange ++ = accents[j]; - } - } - } - *rearrange = 0; - int32_t matchsize = INITIAL_ARRAY_SIZE_; - UChar *match = addToUCharArray(buffer, &matchsize, - strsrch->canonicalPrefixAccents, - strsrch->search->text + offset, - end - offset, - strsrch->canonicalSuffixAccents, - status); - - // if status is a failure, ucol_setText does nothing. - // run the collator iterator through this match - ucol_setText(coleiter, match, matchsize, status); - if (U_SUCCESS(*status)) { - if (checkCollationMatch(strsrch, coleiter)) { - if (match != buffer) { - uprv_free(match); - } - return start; - } - } - count --; - } - return USEARCH_DONE; -} - -/** -* Gets the offset to the safe point in text before textoffset. -* ie. not the middle of a contraction, swappable characters or supplementary -* characters. -* @param collator collation sata -* @param text string to work with -* @param textoffset offset in string -* @param textlength length of text string -* @return offset to the previous safe character -*/ -static -inline uint32_t getPreviousSafeOffset(const UCollator *collator, - const UChar *text, - int32_t textoffset) -{ - int32_t result = textoffset; // first contraction character - while (result != 0 && ucol_unsafeCP(text[result - 1], collator)) { - result --; - } - if (result != 0) { - // the first contraction character is consider unsafe here - result --; - } - return result; -} - -/** -* Cleaning up after we passed the safe zone -* @param strsrch string search data -* @param safetext safe text array -* @param safebuffer safe text buffer -* @param coleiter collation element iterator for safe text -*/ -static -inline void cleanUpSafeText(const UStringSearch *strsrch, UChar *safetext, - UChar *safebuffer) -{ - if (safetext != safebuffer && safetext != strsrch->canonicalSuffixAccents) - { - uprv_free(safetext); - } -} - -/** -* Take the rearranged end accents and tries matching. If match failed at -* a separate preceding set of accents (separated from the rearranged on by -* at least a base character) then we rearrange the preceding accents and -* tries matching again. -* We allow skipping of the ends of the accent set if the ces do not match. -* However if the failure is found before the accent set, it fails. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param textoffset of the start of the rearranged accent -* @param status output error status if any -* @return USEARCH_DONE if a match is not found, otherwise return the starting -* offset of the match. Note this start includes all preceding accents. -*/ -static -int32_t doNextCanonicalSuffixMatch(UStringSearch *strsrch, - int32_t textoffset, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - const UCollator *collator = strsrch->collator; - int32_t safelength = 0; - UChar *safetext; - int32_t safetextlength; - UChar safebuffer[INITIAL_ARRAY_SIZE_]; - UCollationElements *coleiter = strsrch->utilIter; - int32_t safeoffset = textoffset; - - if (textoffset != 0 && ucol_unsafeCP(strsrch->canonicalSuffixAccents[0], - collator)) { - safeoffset = getPreviousSafeOffset(collator, text, textoffset); - safelength = textoffset - safeoffset; - safetextlength = INITIAL_ARRAY_SIZE_; - safetext = addToUCharArray(safebuffer, &safetextlength, NULL, - text + safeoffset, safelength, - strsrch->canonicalSuffixAccents, - status); - } - else { - safetextlength = u_strlen(strsrch->canonicalSuffixAccents); - safetext = strsrch->canonicalSuffixAccents; - } - - // if status is a failure, ucol_setText does nothing - ucol_setText(coleiter, safetext, safetextlength, status); - // status checked in loop below - - int32_t *ce = strsrch->pattern.ces; - int32_t celength = strsrch->pattern.cesLength; - int ceindex = celength - 1; - UBool isSafe = TRUE; // indication flag for position in safe zone - - while (ceindex >= 0) { - int32_t textce = ucol_previous(coleiter, status); - if (U_FAILURE(*status)) { - if (isSafe) { - cleanUpSafeText(strsrch, safetext, safebuffer); - } - return USEARCH_DONE; - } - if (textce == UCOL_NULLORDER) { - // check if we have passed the safe buffer - if (coleiter == strsrch->textIter) { - cleanUpSafeText(strsrch, safetext, safebuffer); - return USEARCH_DONE; - } - cleanUpSafeText(strsrch, safetext, safebuffer); - safetext = safebuffer; - coleiter = strsrch->textIter; - setColEIterOffset(coleiter, safeoffset); - // status checked at the start of the loop - isSafe = FALSE; - continue; - } - textce = getCE(strsrch, textce); - if (textce != UCOL_IGNORABLE && textce != ce[ceindex]) { - // do the beginning stuff - int32_t failedoffset = getColElemIterOffset(coleiter, FALSE); - if (isSafe && failedoffset >= safelength) { - // alas... no hope. failed at rearranged accent set - cleanUpSafeText(strsrch, safetext, safebuffer); - return USEARCH_DONE; - } - else { - if (isSafe) { - failedoffset += safeoffset; - cleanUpSafeText(strsrch, safetext, safebuffer); - } - - // try rearranging the front accents - int32_t result = doNextCanonicalPrefixMatch(strsrch, - failedoffset, textoffset, status); - if (result != USEARCH_DONE) { - // if status is a failure, ucol_setOffset does nothing - setColEIterOffset(strsrch->textIter, result); - } - if (U_FAILURE(*status)) { - return USEARCH_DONE; - } - return result; - } - } - if (textce == ce[ceindex]) { - ceindex --; - } - } - // set offset here - if (isSafe) { - int32_t result = getColElemIterOffset(coleiter, FALSE); - // sets the text iterator here with the correct expansion and offset - int32_t leftoverces = getExpansionPrefix(coleiter); - cleanUpSafeText(strsrch, safetext, safebuffer); - if (result >= safelength) { - result = textoffset; - } - else { - result += safeoffset; - } - setColEIterOffset(strsrch->textIter, result); - strsrch->textIter->iteratordata_.toReturn = - setExpansionPrefix(strsrch->textIter, leftoverces); - return result; - } - - return ucol_getOffset(coleiter); -} - -/** -* Trying out the substring and sees if it can be a canonical match. -* This will try normalizing the end accents and arranging them into canonical -* equivalents and check their corresponding ces with the pattern ce. -* Suffix accents in the text will be grouped according to their combining -* class and the groups will be mixed and matched to try find the perfect -* match with the pattern. -* So for instance looking for "\u0301" in "\u030A\u0301\u0325" -* step 1: split "\u030A\u0301" into 6 other type of potential accent substrings -* "\u030A", "\u0301", "\u0325", "\u030A\u0301", "\u030A\u0325", -* "\u0301\u0325". -* step 2: check if any of the generated substrings matches the pattern. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param textoffset end offset in the collation element text that ends with -* the accents to be rearranged -* @param status error status if any -* @return TRUE if the match is valid, FALSE otherwise -*/ -static -UBool doNextCanonicalMatch(UStringSearch *strsrch, - int32_t textoffset, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - int32_t temp = textoffset; - U16_BACK_1(text, 0, temp); - if ((getFCD(text, &temp, textoffset) & LAST_BYTE_MASK_) == 0) { - UCollationElements *coleiter = strsrch->textIter; - int32_t offset = getColElemIterOffset(coleiter, FALSE); - if (strsrch->pattern.hasPrefixAccents) { - offset = doNextCanonicalPrefixMatch(strsrch, offset, textoffset, - status); - if (U_SUCCESS(*status) && offset != USEARCH_DONE) { - setColEIterOffset(coleiter, offset); - return TRUE; - } - } - return FALSE; - } - - if (!strsrch->pattern.hasSuffixAccents) { - return FALSE; - } - - UChar accents[INITIAL_ARRAY_SIZE_]; - // offset to the last base character in substring to search - int32_t baseoffset = getPreviousBaseOffset(text, textoffset); - // normalizing the offensive string - unorm_normalize(text + baseoffset, textoffset - baseoffset, UNORM_NFD, - 0, accents, INITIAL_ARRAY_SIZE_, status); - // status checked in loop below - - int32_t accentsindex[INITIAL_ARRAY_SIZE_]; - int32_t size = getUnblockedAccentIndex(accents, accentsindex); - - // 2 power n - 1 plus the full set of accents - int32_t count = (2 << (size - 1)) - 1; - while (U_SUCCESS(*status) && count > 0) { - UChar *rearrange = strsrch->canonicalSuffixAccents; - // copy the base characters - for (int k = 0; k < accentsindex[0]; k ++) { - *rearrange ++ = accents[k]; - } - // forming all possible canonical rearrangement by dropping - // sets of accents - for (int i = 0; i <= size - 1; i ++) { - int32_t mask = 1 << (size - i - 1); - if (count & mask) { - for (int j = accentsindex[i]; j < accentsindex[i + 1]; j ++) { - *rearrange ++ = accents[j]; - } - } - } - *rearrange = 0; - int32_t offset = doNextCanonicalSuffixMatch(strsrch, baseoffset, - status); - if (offset != USEARCH_DONE) { - return TRUE; // match found - } - count --; - } - return FALSE; -} - -/** -* Gets the previous base character offset depending on the string search -* pattern data -* @param strsrch string search data -* @param textoffset current offset, current character -* @return the offset of the next character after this base character or itself -* if it is a composed character with accents -*/ -static -inline int32_t getPreviousUStringSearchBaseOffset(UStringSearch *strsrch, - int32_t textoffset) -{ - if (strsrch->pattern.hasPrefixAccents && textoffset > 0) { - const UChar *text = strsrch->search->text; - int32_t offset = textoffset; - if (getFCD(text, &offset, strsrch->search->textLength) >> - SECOND_LAST_BYTE_SHIFT_) { - return getPreviousBaseOffset(text, textoffset); - } - } - return textoffset; -} - -/** -* Checks match for contraction. -* If the match ends with a partial contraction we fail. -* If the match starts too far off (because of backwards iteration) we try to -* chip off the extra characters -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param start offset of potential match, to be modified if necessary -* @param end offset of potential match, to be modified if necessary -* @param status output error status if any -* @return TRUE if match passes the contraction test, FALSE otherwise -*/ -static -UBool checkNextCanonicalContractionMatch(UStringSearch *strsrch, - int32_t *start, - int32_t *end, - UErrorCode *status) -{ - UCollationElements *coleiter = strsrch->textIter; - int32_t textlength = strsrch->search->textLength; - int32_t temp = *start; - const UCollator *collator = strsrch->collator; - const UChar *text = strsrch->search->text; - // This part checks if either ends of the match contains potential - // contraction. If so we'll have to iterate through them - if ((*end < textlength && ucol_unsafeCP(text[*end], collator)) || - (*start + 1 < textlength - && ucol_unsafeCP(text[*start + 1], collator))) { - int32_t expansion = getExpansionPrefix(coleiter); - UBool expandflag = expansion > 0; - setColEIterOffset(coleiter, *start); - while (expansion > 0) { - // getting rid of the redundant ce, caused by setOffset. - // since backward contraction/expansion may have extra ces if we - // are in the normalization buffer, hasAccentsBeforeMatch would - // have taken care of it. - // E.g. the character \u01FA will have an expansion of 3, but if - // we are only looking for acute and ring \u030A and \u0301, we'll - // have to skip the first ce in the expansion buffer. - ucol_next(coleiter, status); - if (U_FAILURE(*status)) { - return FALSE; - } - if (ucol_getOffset(coleiter) != temp) { - *start = temp; - temp = ucol_getOffset(coleiter); - } - expansion --; - } - - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t count = 0; - int32_t textlength = strsrch->search->textLength; - while (count < patterncelength) { - int32_t ce = getCE(strsrch, ucol_next(coleiter, status)); - // status checked below, note that if status is a failure - // ucol_next returns UCOL_NULLORDER - if (ce == UCOL_IGNORABLE) { - continue; - } - if (expandflag && count == 0 && ucol_getOffset(coleiter) != temp) { - *start = temp; - temp = ucol_getOffset(coleiter); - } - - if (count == 0 && ce != patternce[0]) { - // accents may have extra starting ces, this occurs when a - // pure accent pattern is matched without rearrangement - // text \u0325\u0300 and looking for \u0300 - int32_t expected = patternce[0]; - if (getFCD(text, start, textlength) & LAST_BYTE_MASK_) { - ce = getCE(strsrch, ucol_next(coleiter, status)); - while (U_SUCCESS(*status) && ce != expected && - ce != UCOL_NULLORDER && - ucol_getOffset(coleiter) <= *end) { - ce = getCE(strsrch, ucol_next(coleiter, status)); - } - } - } - if (U_FAILURE(*status) || ce != patternce[count]) { - (*end) ++; - *end = getNextUStringSearchBaseOffset(strsrch, *end); - return FALSE; - } - count ++; - } - } - return TRUE; -} - -/** -* Checks and sets the match information if found. -* Checks -*
        -*
      • the potential match does not repeat the previous match -*
      • boundaries are correct -*
      • potential match does not end in the middle of a contraction -*
      • identical matches -* <\ul> -* Otherwise the offset will be shifted to the next character. -* Internal method, status assumed to be success, caller has to check the -* status before calling this method. -* @param strsrch string search data -* @param textoffset offset in the collation element text. the returned value -* will be the truncated end offset of the match or the new start -* search offset. -* @param status output error status if any -* @return TRUE if the match is valid, FALSE otherwise -*/ -static -inline UBool checkNextCanonicalMatch(UStringSearch *strsrch, - int32_t *textoffset, - UErrorCode *status) -{ - // to ensure that the start and ends are not composite characters - UCollationElements *coleiter = strsrch->textIter; - // if we have a canonical accent match - if ((strsrch->pattern.hasSuffixAccents && - strsrch->canonicalSuffixAccents[0]) || - (strsrch->pattern.hasPrefixAccents && - strsrch->canonicalPrefixAccents[0])) { - strsrch->search->matchedIndex = getPreviousUStringSearchBaseOffset( - strsrch, - ucol_getOffset(coleiter)); - strsrch->search->matchedLength = *textoffset - - strsrch->search->matchedIndex; - return TRUE; - } - - int32_t start = getColElemIterOffset(coleiter, FALSE); - if (!checkNextCanonicalContractionMatch(strsrch, &start, textoffset, - status) || U_FAILURE(*status)) { - return FALSE; - } - - start = getPreviousUStringSearchBaseOffset(strsrch, start); - // this totally matches, however we need to check if it is repeating - if (checkRepeatedMatch(strsrch, start, *textoffset) || - !isBreakUnit(strsrch, start, *textoffset) || - !checkIdentical(strsrch, start, *textoffset)) { - (*textoffset) ++; - *textoffset = getNextBaseOffset(strsrch->search->text, *textoffset, - strsrch->search->textLength); - return FALSE; - } - - strsrch->search->matchedIndex = start; - strsrch->search->matchedLength = *textoffset - start; - return TRUE; -} - -/** -* Shifting the collation element iterator position forward to prepare for -* a preceding match. If the first character is a unsafe character, we'll only -* shift by 1 to capture contractions, normalization etc. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param text strsrch string search data -* @param textoffset start text position to do search -* @param ce the text ce which failed the match. -* @param patternceindex index of the ce within the pattern ce buffer which -* failed the match -* @return final offset -*/ -static -inline int32_t reverseShift(UStringSearch *strsrch, - int32_t textoffset, - int32_t ce, - int32_t patternceindex) -{ - if (strsrch->search->isOverlap) { - if (textoffset != strsrch->search->textLength) { - textoffset --; - } - else { - textoffset -= strsrch->pattern.defaultShiftSize; - } - } - else { - if (ce != UCOL_NULLORDER) { - int32_t shift = strsrch->pattern.backShift[hashFromCE32(ce)]; - - // this is to adjust for characters in the middle of the substring - // for matching that failed. - int32_t adjust = patternceindex; - if (adjust > 1 && shift > adjust) { - shift -= adjust - 1; - } - textoffset -= shift; - } - else { - textoffset -= strsrch->pattern.defaultShiftSize; - } - } - textoffset = getPreviousUStringSearchBaseOffset(strsrch, textoffset); - return textoffset; -} - -/** -* Checks match for contraction. -* If the match starts with a partial contraction we fail. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param start offset of potential match, to be modified if necessary -* @param end offset of potential match, to be modified if necessary -* @param status output error status if any -* @return TRUE if match passes the contraction test, FALSE otherwise -*/ -static -UBool checkPreviousExactContractionMatch(UStringSearch *strsrch, - int32_t *start, - int32_t *end, UErrorCode *status) -{ - UCollationElements *coleiter = strsrch->textIter; - int32_t textlength = strsrch->search->textLength; - int32_t temp = *end; - const UCollator *collator = strsrch->collator; - const UChar *text = strsrch->search->text; - // This part checks if either if the start of the match contains potential - // contraction. If so we'll have to iterate through them - // Since we used ucol_next while previously looking for the potential - // match, this guarantees that our end will not be a partial contraction, - // or a partial supplementary character. - if (*start < textlength && ucol_unsafeCP(text[*start], collator)) { - int32_t expansion = getExpansionSuffix(coleiter); - UBool expandflag = expansion > 0; - setColEIterOffset(coleiter, *end); - while (U_SUCCESS(*status) && expansion > 0) { - // getting rid of the redundant ce - // since forward contraction/expansion may have extra ces - // if we are in the normalization buffer, hasAccentsBeforeMatch - // would have taken care of it. - // E.g. the character \u01FA will have an expansion of 3, but if - // we are only looking for A ring A\u030A, we'll have to skip the - // last ce in the expansion buffer - ucol_previous(coleiter, status); - if (U_FAILURE(*status)) { - return FALSE; - } - if (ucol_getOffset(coleiter) != temp) { - *end = temp; - temp = ucol_getOffset(coleiter); - } - expansion --; - } - - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t count = patterncelength; - while (count > 0) { - int32_t ce = getCE(strsrch, ucol_previous(coleiter, status)); - // status checked below, note that if status is a failure - // ucol_previous returns UCOL_NULLORDER - if (ce == UCOL_IGNORABLE) { - continue; - } - if (expandflag && count == 0 && - getColElemIterOffset(coleiter, FALSE) != temp) { - *end = temp; - temp = ucol_getOffset(coleiter); - } - if (U_FAILURE(*status) || ce != patternce[count - 1]) { - (*start) --; - *start = getPreviousBaseOffset(text, *start); - return FALSE; - } - count --; - } - } - return TRUE; -} - -/** -* Checks and sets the match information if found. -* Checks -*
          -*
        • the current match does not repeat the last match -*
        • boundaries are correct -*
        • exact matches has no extra accents -*
        • identical matches -* <\ul> -* Otherwise the offset will be shifted to the preceding character. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param collator -* @param coleiter collation element iterator -* @param text string -* @param textoffset offset in the collation element text. the returned value -* will be the truncated start offset of the match or the new start -* search offset. -* @param status output error status if any -* @return TRUE if the match is valid, FALSE otherwise -*/ -static -inline UBool checkPreviousExactMatch(UStringSearch *strsrch, - int32_t *textoffset, - UErrorCode *status) -{ - // to ensure that the start and ends are not composite characters - int32_t end = ucol_getOffset(strsrch->textIter); - if (!checkPreviousExactContractionMatch(strsrch, textoffset, &end, status) - || U_FAILURE(*status)) { - return FALSE; - } - - // this totally matches, however we need to check if it is repeating - // the old match - if (checkRepeatedMatch(strsrch, *textoffset, end) || - !isBreakUnit(strsrch, *textoffset, end) || - hasAccentsBeforeMatch(strsrch, *textoffset, end) || - !checkIdentical(strsrch, *textoffset, end) || - hasAccentsAfterMatch(strsrch, *textoffset, end)) { - (*textoffset) --; - *textoffset = getPreviousBaseOffset(strsrch->search->text, - *textoffset); - return FALSE; - } - - //Add breakiterator boundary check for primary strength search. - if (!strsrch->search->breakIter && strsrch->strength == UCOL_PRIMARY) { - checkBreakBoundary(strsrch, textoffset, &end); - } - - strsrch->search->matchedIndex = *textoffset; - strsrch->search->matchedLength = end - *textoffset; - return TRUE; -} - -/** -* Rearranges the end accents to try matching. -* Suffix accents in the text will be grouped according to their combining -* class and the groups will be mixed and matched to try find the perfect -* match with the pattern. -* So for instance looking for "\u0301" in "\u030A\u0301\u0325" -* step 1: split "\u030A\u0301" into 6 other type of potential accent substrings -* "\u030A", "\u0301", "\u0325", "\u030A\u0301", "\u030A\u0325", -* "\u0301\u0325". -* step 2: check if any of the generated substrings matches the pattern. -* Internal method, status assumed to be success, user has to check status -* before calling this method. -* @param strsrch string search match -* @param start offset of the first base character -* @param end start of the last accent set -* @param status only error status if any -* @return USEARCH_DONE if a match is not found, otherwise return the ending -* offset of the match. Note this start includes all following accents. -*/ -static -int32_t doPreviousCanonicalSuffixMatch(UStringSearch *strsrch, - int32_t start, - int32_t end, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - int32_t tempend = end; - - U16_BACK_1(text, 0, tempend); - if (!(getFCD(text, &tempend, strsrch->search->textLength) & - LAST_BYTE_MASK_)) { - // die... failed at a base character - return USEARCH_DONE; - } - end = getNextBaseOffset(text, end, strsrch->search->textLength); - - if (U_SUCCESS(*status)) { - UChar accents[INITIAL_ARRAY_SIZE_]; - int32_t offset = getPreviousBaseOffset(text, end); - // normalizing the offensive string - unorm_normalize(text + offset, end - offset, UNORM_NFD, 0, accents, - INITIAL_ARRAY_SIZE_, status); - - int32_t accentsindex[INITIAL_ARRAY_SIZE_]; - int32_t accentsize = getUnblockedAccentIndex(accents, - accentsindex); - int32_t count = (2 << (accentsize - 1)) - 1; - UChar buffer[INITIAL_ARRAY_SIZE_]; - UCollationElements *coleiter = strsrch->utilIter; - while (U_SUCCESS(*status) && count > 0) { - UChar *rearrange = strsrch->canonicalSuffixAccents; - // copy the base characters - for (int k = 0; k < accentsindex[0]; k ++) { - *rearrange ++ = accents[k]; - } - // forming all possible canonical rearrangement by dropping - // sets of accents - for (int i = 0; i <= accentsize - 1; i ++) { - int32_t mask = 1 << (accentsize - i - 1); - if (count & mask) { - for (int j = accentsindex[i]; j < accentsindex[i + 1]; j ++) { - *rearrange ++ = accents[j]; - } - } - } - *rearrange = 0; - int32_t matchsize = INITIAL_ARRAY_SIZE_; - UChar *match = addToUCharArray(buffer, &matchsize, - strsrch->canonicalPrefixAccents, - strsrch->search->text + start, - offset - start, - strsrch->canonicalSuffixAccents, - status); - - // run the collator iterator through this match - // if status is a failure ucol_setText does nothing - ucol_setText(coleiter, match, matchsize, status); - if (U_SUCCESS(*status)) { - if (checkCollationMatch(strsrch, coleiter)) { - if (match != buffer) { - uprv_free(match); - } - return end; - } - } - count --; - } - } - return USEARCH_DONE; -} - -/** -* Take the rearranged start accents and tries matching. If match failed at -* a separate following set of accents (separated from the rearranged on by -* at least a base character) then we rearrange the preceding accents and -* tries matching again. -* We allow skipping of the ends of the accent set if the ces do not match. -* However if the failure is found before the accent set, it fails. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param textoffset of the ends of the rearranged accent -* @param status output error status if any -* @return USEARCH_DONE if a match is not found, otherwise return the ending -* offset of the match. Note this start includes all following accents. -*/ -static -int32_t doPreviousCanonicalPrefixMatch(UStringSearch *strsrch, - int32_t textoffset, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - const UCollator *collator = strsrch->collator; - int32_t safelength = 0; - UChar *safetext; - int32_t safetextlength; - UChar safebuffer[INITIAL_ARRAY_SIZE_]; - int32_t safeoffset = textoffset; - - if (textoffset && - ucol_unsafeCP(strsrch->canonicalPrefixAccents[ - u_strlen(strsrch->canonicalPrefixAccents) - 1 - ], collator)) { - safeoffset = getNextSafeOffset(collator, text, textoffset, - strsrch->search->textLength); - safelength = safeoffset - textoffset; - safetextlength = INITIAL_ARRAY_SIZE_; - safetext = addToUCharArray(safebuffer, &safetextlength, - strsrch->canonicalPrefixAccents, - text + textoffset, safelength, - NULL, status); - } - else { - safetextlength = u_strlen(strsrch->canonicalPrefixAccents); - safetext = strsrch->canonicalPrefixAccents; - } - - UCollationElements *coleiter = strsrch->utilIter; - // if status is a failure, ucol_setText does nothing - ucol_setText(coleiter, safetext, safetextlength, status); - // status checked in loop below - - int32_t *ce = strsrch->pattern.ces; - int32_t celength = strsrch->pattern.cesLength; - int ceindex = 0; - UBool isSafe = TRUE; // safe zone indication flag for position - int32_t prefixlength = u_strlen(strsrch->canonicalPrefixAccents); - - while (ceindex < celength) { - int32_t textce = ucol_next(coleiter, status); - if (U_FAILURE(*status)) { - if (isSafe) { - cleanUpSafeText(strsrch, safetext, safebuffer); - } - return USEARCH_DONE; - } - if (textce == UCOL_NULLORDER) { - // check if we have passed the safe buffer - if (coleiter == strsrch->textIter) { - cleanUpSafeText(strsrch, safetext, safebuffer); - return USEARCH_DONE; - } - cleanUpSafeText(strsrch, safetext, safebuffer); - safetext = safebuffer; - coleiter = strsrch->textIter; - setColEIterOffset(coleiter, safeoffset); - // status checked at the start of the loop - isSafe = FALSE; - continue; - } - textce = getCE(strsrch, textce); - if (textce != UCOL_IGNORABLE && textce != ce[ceindex]) { - // do the beginning stuff - int32_t failedoffset = ucol_getOffset(coleiter); - if (isSafe && failedoffset <= prefixlength) { - // alas... no hope. failed at rearranged accent set - cleanUpSafeText(strsrch, safetext, safebuffer); - return USEARCH_DONE; - } - else { - if (isSafe) { - failedoffset = safeoffset - failedoffset; - cleanUpSafeText(strsrch, safetext, safebuffer); - } - - // try rearranging the end accents - int32_t result = doPreviousCanonicalSuffixMatch(strsrch, - textoffset, failedoffset, status); - if (result != USEARCH_DONE) { - // if status is a failure, ucol_setOffset does nothing - setColEIterOffset(strsrch->textIter, result); - } - if (U_FAILURE(*status)) { - return USEARCH_DONE; - } - return result; - } - } - if (textce == ce[ceindex]) { - ceindex ++; - } - } - // set offset here - if (isSafe) { - int32_t result = ucol_getOffset(coleiter); - // sets the text iterator here with the correct expansion and offset - int32_t leftoverces = getExpansionSuffix(coleiter); - cleanUpSafeText(strsrch, safetext, safebuffer); - if (result <= prefixlength) { - result = textoffset; - } - else { - result = textoffset + (safeoffset - result); - } - setColEIterOffset(strsrch->textIter, result); - setExpansionSuffix(strsrch->textIter, leftoverces); - return result; - } - - return ucol_getOffset(coleiter); -} - -/** -* Trying out the substring and sees if it can be a canonical match. -* This will try normalizing the starting accents and arranging them into -* canonical equivalents and check their corresponding ces with the pattern ce. -* Prefix accents in the text will be grouped according to their combining -* class and the groups will be mixed and matched to try find the perfect -* match with the pattern. -* So for instance looking for "\u0301" in "\u030A\u0301\u0325" -* step 1: split "\u030A\u0301" into 6 other type of potential accent substrings -* "\u030A", "\u0301", "\u0325", "\u030A\u0301", "\u030A\u0325", -* "\u0301\u0325". -* step 2: check if any of the generated substrings matches the pattern. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param textoffset start offset in the collation element text that starts -* with the accents to be rearranged -* @param status output error status if any -* @return TRUE if the match is valid, FALSE otherwise -*/ -static -UBool doPreviousCanonicalMatch(UStringSearch *strsrch, - int32_t textoffset, - UErrorCode *status) -{ - const UChar *text = strsrch->search->text; - int32_t temp = textoffset; - int32_t textlength = strsrch->search->textLength; - if ((getFCD(text, &temp, textlength) >> SECOND_LAST_BYTE_SHIFT_) == 0) { - UCollationElements *coleiter = strsrch->textIter; - int32_t offset = ucol_getOffset(coleiter); - if (strsrch->pattern.hasSuffixAccents) { - offset = doPreviousCanonicalSuffixMatch(strsrch, textoffset, - offset, status); - if (U_SUCCESS(*status) && offset != USEARCH_DONE) { - setColEIterOffset(coleiter, offset); - return TRUE; - } - } - return FALSE; - } - - if (!strsrch->pattern.hasPrefixAccents) { - return FALSE; - } - - UChar accents[INITIAL_ARRAY_SIZE_]; - // offset to the last base character in substring to search - int32_t baseoffset = getNextBaseOffset(text, textoffset, textlength); - // normalizing the offensive string - unorm_normalize(text + textoffset, baseoffset - textoffset, UNORM_NFD, - 0, accents, INITIAL_ARRAY_SIZE_, status); - // status checked in loop - - int32_t accentsindex[INITIAL_ARRAY_SIZE_]; - int32_t size = getUnblockedAccentIndex(accents, accentsindex); - - // 2 power n - 1 plus the full set of accents - int32_t count = (2 << (size - 1)) - 1; - while (U_SUCCESS(*status) && count > 0) { - UChar *rearrange = strsrch->canonicalPrefixAccents; - // copy the base characters - for (int k = 0; k < accentsindex[0]; k ++) { - *rearrange ++ = accents[k]; - } - // forming all possible canonical rearrangement by dropping - // sets of accents - for (int i = 0; i <= size - 1; i ++) { - int32_t mask = 1 << (size - i - 1); - if (count & mask) { - for (int j = accentsindex[i]; j < accentsindex[i + 1]; j ++) { - *rearrange ++ = accents[j]; - } - } - } - *rearrange = 0; - int32_t offset = doPreviousCanonicalPrefixMatch(strsrch, - baseoffset, status); - if (offset != USEARCH_DONE) { - return TRUE; // match found - } - count --; - } - return FALSE; -} - -/** -* Checks match for contraction. -* If the match starts with a partial contraction we fail. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. -* @param strsrch string search data -* @param start offset of potential match, to be modified if necessary -* @param end offset of potential match, to be modified if necessary -* @param status only error status if any -* @return TRUE if match passes the contraction test, FALSE otherwise -*/ -static -UBool checkPreviousCanonicalContractionMatch(UStringSearch *strsrch, - int32_t *start, - int32_t *end, UErrorCode *status) -{ - UCollationElements *coleiter = strsrch->textIter; - int32_t textlength = strsrch->search->textLength; - int32_t temp = *end; - const UCollator *collator = strsrch->collator; - const UChar *text = strsrch->search->text; - // This part checks if either if the start of the match contains potential - // contraction. If so we'll have to iterate through them - // Since we used ucol_next while previously looking for the potential - // match, this guarantees that our end will not be a partial contraction, - // or a partial supplementary character. - if (*start < textlength && ucol_unsafeCP(text[*start], collator)) { - int32_t expansion = getExpansionSuffix(coleiter); - UBool expandflag = expansion > 0; - setColEIterOffset(coleiter, *end); - while (expansion > 0) { - // getting rid of the redundant ce - // since forward contraction/expansion may have extra ces - // if we are in the normalization buffer, hasAccentsBeforeMatch - // would have taken care of it. - // E.g. the character \u01FA will have an expansion of 3, but if - // we are only looking for A ring A\u030A, we'll have to skip the - // last ce in the expansion buffer - ucol_previous(coleiter, status); - if (U_FAILURE(*status)) { - return FALSE; - } - if (ucol_getOffset(coleiter) != temp) { - *end = temp; - temp = ucol_getOffset(coleiter); - } - expansion --; - } - - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t count = patterncelength; - while (count > 0) { - int32_t ce = getCE(strsrch, ucol_previous(coleiter, status)); - // status checked below, note that if status is a failure - // ucol_previous returns UCOL_NULLORDER - if (ce == UCOL_IGNORABLE) { - continue; - } - if (expandflag && count == 0 && - getColElemIterOffset(coleiter, FALSE) != temp) { - *end = temp; - temp = ucol_getOffset(coleiter); - } - if (count == patterncelength && - ce != patternce[patterncelength - 1]) { - // accents may have extra starting ces, this occurs when a - // pure accent pattern is matched without rearrangement - int32_t expected = patternce[patterncelength - 1]; - U16_BACK_1(text, 0, *end); - if (getFCD(text, end, textlength) & LAST_BYTE_MASK_) { - ce = getCE(strsrch, ucol_previous(coleiter, status)); - while (U_SUCCESS(*status) && ce != expected && - ce != UCOL_NULLORDER && - ucol_getOffset(coleiter) <= *start) { - ce = getCE(strsrch, ucol_previous(coleiter, status)); - } - } - } - if (U_FAILURE(*status) || ce != patternce[count - 1]) { - (*start) --; - *start = getPreviousBaseOffset(text, *start); - return FALSE; - } - count --; - } - } - return TRUE; +* Checks if the offset runs out of the text string +* @param offset +* @param textlength of the text string +* @return TRUE if offset is out of bounds, FALSE otherwise +*/ +static +inline UBool isOutOfBounds(int32_t textlength, int32_t offset) +{ + return offset < 0 || offset > textlength; } /** -* Checks and sets the match information if found. -* Checks -*
            -*
          • the potential match does not repeat the previous match -*
          • boundaries are correct -*
          • potential match does not end in the middle of a contraction -*
          • identical matches -* <\ul> -* Otherwise the offset will be shifted to the next character. -* Internal method, status assumed to be success, caller has to check status -* before calling this method. +* Checks for identical match * @param strsrch string search data -* @param textoffset offset in the collation element text. the returned value -* will be the truncated start offset of the match or the new start -* search offset. -* @param status only error status if any -* @return TRUE if the match is valid, FALSE otherwise +* @param start offset of possible match +* @param end offset of possible match +* @return TRUE if identical match is found */ static -inline UBool checkPreviousCanonicalMatch(UStringSearch *strsrch, - int32_t *textoffset, - UErrorCode *status) +inline UBool checkIdentical(const UStringSearch *strsrch, int32_t start, int32_t end) { - // to ensure that the start and ends are not composite characters - UCollationElements *coleiter = strsrch->textIter; - // if we have a canonical accent match - if ((strsrch->pattern.hasSuffixAccents && - strsrch->canonicalSuffixAccents[0]) || - (strsrch->pattern.hasPrefixAccents && - strsrch->canonicalPrefixAccents[0])) { - strsrch->search->matchedIndex = *textoffset; - strsrch->search->matchedLength = - getNextUStringSearchBaseOffset(strsrch, - getColElemIterOffset(coleiter, FALSE)) - - *textoffset; + if (strsrch->strength != UCOL_IDENTICAL) { return TRUE; } - int32_t end = ucol_getOffset(coleiter); - if (!checkPreviousCanonicalContractionMatch(strsrch, textoffset, &end, - status) || - U_FAILURE(*status)) { - return FALSE; - } - - end = getNextUStringSearchBaseOffset(strsrch, end); - // this totally matches, however we need to check if it is repeating - if (checkRepeatedMatch(strsrch, *textoffset, end) || - !isBreakUnit(strsrch, *textoffset, end) || - !checkIdentical(strsrch, *textoffset, end)) { - (*textoffset) --; - *textoffset = getPreviousBaseOffset(strsrch->search->text, - *textoffset); - return FALSE; - } - - strsrch->search->matchedIndex = *textoffset; - strsrch->search->matchedLength = end - *textoffset; - return TRUE; + // Note: We could use Normalizer::compare() or similar, but for short strings + // which may not be in FCD it might be faster to just NFD them. + UErrorCode status = U_ZERO_ERROR; + UnicodeString t2, p2; + strsrch->nfd->normalize( + UnicodeString(FALSE, strsrch->search->text + start, end - start), t2, status); + strsrch->nfd->normalize( + UnicodeString(FALSE, strsrch->pattern.text, strsrch->pattern.textLength), p2, status); + // return FALSE if NFD failed + return U_SUCCESS(status) && t2 == p2; } -#endif // #if BOYER_MOORE // constructors and destructor ------------------------------------------- @@ -2599,12 +547,12 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern, UErrorCode *status) { if (U_FAILURE(*status)) { - return NULL; + return nullptr; } #if UCONFIG_NO_BREAK_ITERATION - if (breakiter != NULL) { + if (breakiter != nullptr) { *status = U_UNSUPPORTED_ERROR; - return NULL; + return nullptr; } #endif if (locale) { @@ -2615,11 +563,11 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern, patternlength, text, textlength, collator, breakiter, status); - if (result == NULL || U_FAILURE(*status)) { + if (result == nullptr || U_FAILURE(*status)) { if (collator) { ucol_close(collator); } - return NULL; + return nullptr; } else { result->ownCollator = TRUE; @@ -2627,7 +575,7 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_open(const UChar *pattern, return result; } *status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; + return nullptr; } U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( @@ -2640,29 +588,29 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( UErrorCode *status) { if (U_FAILURE(*status)) { - return NULL; + return nullptr; } #if UCONFIG_NO_BREAK_ITERATION - if (breakiter != NULL) { + if (breakiter != nullptr) { *status = U_UNSUPPORTED_ERROR; - return NULL; + return nullptr; } #endif - if (pattern == NULL || text == NULL || collator == NULL) { + if (pattern == nullptr || text == nullptr || collator == nullptr) { *status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; + return nullptr; } // string search does not really work when numeric collation is turned on if(ucol_getAttribute(collator, UCOL_NUMERIC_COLLATION, status) == UCOL_ON) { *status = U_UNSUPPORTED_ERROR; - return NULL; + return nullptr; } if (U_SUCCESS(*status)) { initializeFCD(status); if (U_FAILURE(*status)) { - return NULL; + return nullptr; } UStringSearch *result; @@ -2674,13 +622,13 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( } if (textlength <= 0 || patternlength <= 0) { *status = U_ILLEGAL_ARGUMENT_ERROR; - return NULL; + return nullptr; } result = (UStringSearch *)uprv_malloc(sizeof(UStringSearch)); - if (result == NULL) { + if (result == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; - return NULL; + return nullptr; } result->collator = collator; @@ -2695,14 +643,14 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( if (U_FAILURE(*status)) { uprv_free(result); - return NULL; + return nullptr; } result->search = (USearch *)uprv_malloc(sizeof(USearch)); - if (result->search == NULL) { + if (result->search == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; uprv_free(result); - return NULL; + return nullptr; } result->search->text = text; @@ -2710,12 +658,12 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( result->pattern.text = pattern; result->pattern.textLength = patternlength; - result->pattern.ces = NULL; - result->pattern.pces = NULL; + result->pattern.ces = nullptr; + result->pattern.pces = nullptr; result->search->breakIter = breakiter; #if !UCONFIG_NO_BREAK_ITERATION - result->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(result->collator, ULOC_VALID_LOCALE, status), text, textlength, status); + result->search->internalBreakIter = nullptr; // Lazily created. if (breakiter) { ubrk_setText(breakiter, text, textlength, status); } @@ -2724,13 +672,13 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( result->ownCollator = FALSE; result->search->matchedLength = 0; result->search->matchedIndex = USEARCH_DONE; - result->utilIter = NULL; + result->utilIter = nullptr; result->textIter = ucol_openElements(collator, text, textlength, status); - result->textProcessedIter = NULL; + result->textProcessedIter = nullptr; if (U_FAILURE(*status)) { usearch_close(result); - return NULL; + return nullptr; } result->search->isOverlap = FALSE; @@ -2743,12 +691,12 @@ U_CAPI UStringSearch * U_EXPORT2 usearch_openFromCollator( if (U_FAILURE(*status)) { usearch_close(result); - return NULL; + return nullptr; } return result; } - return NULL; + return nullptr; } U_CAPI void U_EXPORT2 usearch_close(UStringSearch *strsrch) @@ -2759,7 +707,7 @@ U_CAPI void U_EXPORT2 usearch_close(UStringSearch *strsrch) uprv_free(strsrch->pattern.ces); } - if (strsrch->pattern.pces != NULL && + if (strsrch->pattern.pces != nullptr && strsrch->pattern.pces != strsrch->pattern.pcesBuffer) { uprv_free(strsrch->pattern.pces); } @@ -2773,7 +721,7 @@ U_CAPI void U_EXPORT2 usearch_close(UStringSearch *strsrch) } #if !UCONFIG_NO_BREAK_ITERATION - if (strsrch->search->internalBreakIter) { + if (strsrch->search->internalBreakIter != nullptr) { ubrk_close(strsrch->search->internalBreakIter); } #endif @@ -2787,9 +735,9 @@ namespace { UBool initTextProcessedIter(UStringSearch *strsrch, UErrorCode *status) { if (U_FAILURE(*status)) { return FALSE; } - if (strsrch->textProcessedIter == NULL) { + if (strsrch->textProcessedIter == nullptr) { strsrch->textProcessedIter = new icu::UCollationPCE(strsrch->textIter); - if (strsrch->textProcessedIter == NULL) { + if (strsrch->textProcessedIter == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; return FALSE; } @@ -2804,7 +752,7 @@ UBool initTextProcessedIter(UStringSearch *strsrch, UErrorCode *status) { // set and get methods -------------------------------------------------- U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch, - int32_t position, + int32_t position, UErrorCode *status) { if (U_SUCCESS(*status) && strsrch) { @@ -2812,7 +760,7 @@ U_CAPI void U_EXPORT2 usearch_setOffset(UStringSearch *strsrch, *status = U_INDEX_OUTOFBOUNDS_ERROR; } else { - setColEIterOffset(strsrch->textIter, position); + setColEIterOffset(strsrch->textIter, position, *status); } strsrch->search->matchedIndex = USEARCH_DONE; strsrch->search->matchedLength = 0; @@ -2832,10 +780,10 @@ U_CAPI int32_t U_EXPORT2 usearch_getOffset(const UStringSearch *strsrch) return USEARCH_DONE; } -U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch, - USearchAttribute attribute, - USearchAttributeValue value, - UErrorCode *status) +U_CAPI void U_EXPORT2 usearch_setAttribute(UStringSearch *strsrch, + USearchAttribute attribute, + USearchAttributeValue value, + UErrorCode *status) { if (U_SUCCESS(*status) && strsrch) { switch (attribute) @@ -2895,7 +843,7 @@ U_CAPI USearchAttributeValue U_EXPORT2 usearch_getAttribute( U_CAPI int32_t U_EXPORT2 usearch_getMatchedStart( const UStringSearch *strsrch) { - if (strsrch == NULL) { + if (strsrch == nullptr) { return USEARCH_DONE; } return strsrch->search->matchedIndex; @@ -2910,8 +858,8 @@ U_CAPI int32_t U_EXPORT2 usearch_getMatchedText(const UStringSearch *strsrch, if (U_FAILURE(*status)) { return USEARCH_DONE; } - if (strsrch == NULL || resultCapacity < 0 || (resultCapacity > 0 && - result == NULL)) { + if (strsrch == nullptr || resultCapacity < 0 || (resultCapacity > 0 && + result == nullptr)) { *status = U_ILLEGAL_ARGUMENT_ERROR; return USEARCH_DONE; } @@ -2964,7 +912,7 @@ usearch_getBreakIterator(const UStringSearch *strsrch) if (strsrch) { return strsrch->search->breakIter; } - return NULL; + return nullptr; } #endif @@ -2975,7 +923,7 @@ U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, UErrorCode *status) { if (U_SUCCESS(*status)) { - if (strsrch == NULL || text == NULL || textlength < -1 || + if (strsrch == nullptr || text == nullptr || textlength < -1 || textlength == 0) { *status = U_ILLEGAL_ARGUMENT_ERROR; } @@ -2990,11 +938,13 @@ U_CAPI void U_EXPORT2 usearch_setText( UStringSearch *strsrch, strsrch->search->matchedLength = 0; strsrch->search->reset = TRUE; #if !UCONFIG_NO_BREAK_ITERATION - if (strsrch->search->breakIter != NULL) { + if (strsrch->search->breakIter != nullptr) { ubrk_setText(strsrch->search->breakIter, text, textlength, status); } - ubrk_setText(strsrch->search->internalBreakIter, text, textlength, status); + if (strsrch->search->internalBreakIter != nullptr) { + ubrk_setText(strsrch->search->internalBreakIter, text, textlength, status); + } #endif } } @@ -3007,7 +957,7 @@ U_CAPI const UChar * U_EXPORT2 usearch_getText(const UStringSearch *strsrch, *length = strsrch->search->textLength; return strsrch->search->text; } - return NULL; + return nullptr; } U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, @@ -3015,17 +965,17 @@ U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, UErrorCode *status) { if (U_SUCCESS(*status)) { - if (collator == NULL) { + if (collator == nullptr) { *status = U_ILLEGAL_ARGUMENT_ERROR; return; } if (strsrch) { delete strsrch->textProcessedIter; - strsrch->textProcessedIter = NULL; + strsrch->textProcessedIter = nullptr; ucol_closeElements(strsrch->textIter); ucol_closeElements(strsrch->utilIter); - strsrch->textIter = strsrch->utilIter = NULL; + strsrch->textIter = strsrch->utilIter = nullptr; if (strsrch->ownCollator && (strsrch->collator != collator)) { ucol_close((UCollator *)strsrch->collator); strsrch->ownCollator = FALSE; @@ -3034,9 +984,10 @@ U_CAPI void U_EXPORT2 usearch_setCollator( UStringSearch *strsrch, strsrch->strength = ucol_getStrength(collator); strsrch->ceMask = getMask(strsrch->strength); #if !UCONFIG_NO_BREAK_ITERATION - ubrk_close(strsrch->search->internalBreakIter); - strsrch->search->internalBreakIter = ubrk_open(UBRK_CHARACTER, ucol_getLocaleByType(collator, ULOC_VALID_LOCALE, status), - strsrch->search->text, strsrch->search->textLength, status); + if (strsrch->search->internalBreakIter != nullptr) { + ubrk_close(strsrch->search->internalBreakIter); + strsrch->search->internalBreakIter = nullptr; // Lazily created. + } #endif // if status is a failure, ucol_getAttribute returns UCOL_DEFAULT strsrch->toShift = @@ -3069,7 +1020,7 @@ U_CAPI UCollator * U_EXPORT2 usearch_getCollator(const UStringSearch *strsrch) if (strsrch) { return (UCollator *)strsrch->collator; } - return NULL; + return nullptr; } U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, @@ -3078,7 +1029,7 @@ U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, UErrorCode *status) { if (U_SUCCESS(*status)) { - if (strsrch == NULL || pattern == NULL) { + if (strsrch == nullptr || pattern == nullptr) { *status = U_ILLEGAL_ARGUMENT_ERROR; } else { @@ -3098,19 +1049,19 @@ U_CAPI void U_EXPORT2 usearch_setPattern( UStringSearch *strsrch, U_CAPI const UChar* U_EXPORT2 usearch_getPattern(const UStringSearch *strsrch, - int32_t *length) + int32_t *length) { if (strsrch) { *length = strsrch->pattern.textLength; return strsrch->pattern.text; } - return NULL; + return nullptr; } -// miscellanous methods -------------------------------------------------- +// miscellaneous methods -------------------------------------------------- U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, - UErrorCode *status) + UErrorCode *status) { if (strsrch && U_SUCCESS(*status)) { strsrch->search->isForwardSearching = TRUE; @@ -3123,8 +1074,8 @@ U_CAPI int32_t U_EXPORT2 usearch_first(UStringSearch *strsrch, } U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, - int32_t position, - UErrorCode *status) + int32_t position, + UErrorCode *status) { if (strsrch && U_SUCCESS(*status)) { strsrch->search->isForwardSearching = TRUE; @@ -3138,7 +1089,7 @@ U_CAPI int32_t U_EXPORT2 usearch_following(UStringSearch *strsrch, } U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, - UErrorCode *status) + UErrorCode *status) { if (strsrch && U_SUCCESS(*status)) { strsrch->search->isForwardSearching = FALSE; @@ -3151,8 +1102,8 @@ U_CAPI int32_t U_EXPORT2 usearch_last(UStringSearch *strsrch, } U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, - int32_t position, - UErrorCode *status) + int32_t position, + UErrorCode *status) { if (strsrch && U_SUCCESS(*status)) { strsrch->search->isForwardSearching = FALSE; @@ -3188,7 +1139,7 @@ U_CAPI int32_t U_EXPORT2 usearch_preceding(UStringSearch *strsrch, * element iterator before using this method. */ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, - UErrorCode *status) + UErrorCode *status) { if (U_SUCCESS(*status) && strsrch) { // note offset is either equivalent to the start of the previous match @@ -3198,26 +1149,14 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, search->reset = FALSE; int32_t textlength = search->textLength; if (search->isForwardSearching) { -#if BOYER_MOORE - if (offset == textlength - || (!search->isOverlap && - (offset + strsrch->pattern.defaultShiftSize > textlength || - (search->matchedIndex != USEARCH_DONE && - offset + search->matchedLength >= textlength)))) { - // not enough characters to match - setMatchNotFound(strsrch); - return USEARCH_DONE; - } -#else if (offset == textlength || (! search->isOverlap && (search->matchedIndex != USEARCH_DONE && offset + search->matchedLength > textlength))) { // not enough characters to match - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return USEARCH_DONE; } -#endif } else { // switching direction. @@ -3243,7 +1182,7 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, } search->matchedLength = 0; - setColEIterOffset(strsrch->textIter, search->matchedIndex); + setColEIterOffset(strsrch->textIter, search->matchedIndex, *status); // status checked below if (search->matchedIndex == textlength) { search->matchedIndex = USEARCH_DONE; @@ -3262,7 +1201,7 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, } else { // for boundary check purposes. this will ensure that the - // next match will not preceed the current offset + // next match will not precede the current offset // note search->matchedIndex will always be set to something // in the code search->matchedIndex = offset - 1; @@ -3281,13 +1220,11 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, return USEARCH_DONE; } -#if !BOYER_MOORE if (search->matchedIndex == USEARCH_DONE) { ucol_setOffset(strsrch->textIter, search->textLength, status); } else { ucol_setOffset(strsrch->textIter, search->matchedIndex, status); } -#endif return search->matchedIndex; } @@ -3296,7 +1233,7 @@ U_CAPI int32_t U_EXPORT2 usearch_next(UStringSearch *strsrch, } U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, - UErrorCode *status) + UErrorCode *status) { if (U_SUCCESS(*status) && strsrch) { int32_t offset; @@ -3305,7 +1242,7 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, offset = search->textLength; search->isForwardSearching = FALSE; search->reset = FALSE; - setColEIterOffset(strsrch->textIter, offset); + setColEIterOffset(strsrch->textIter, offset, *status); } else { offset = usearch_getOffset(strsrch); @@ -3324,24 +1261,13 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, } } else { -#if BOYER_MOORE - if (offset == 0 || matchedindex == 0 || - (!search->isOverlap && - (offset < strsrch->pattern.defaultShiftSize || - (matchedindex != USEARCH_DONE && - matchedindex < strsrch->pattern.defaultShiftSize)))) { - // not enough characters to match - setMatchNotFound(strsrch); - return USEARCH_DONE; - } -#else + // Could check pattern length, but the // linear search will do the right thing if (offset == 0 || matchedindex == 0) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return USEARCH_DONE; } -#endif } if (U_SUCCESS(*status)) { @@ -3349,12 +1275,12 @@ U_CAPI int32_t U_EXPORT2 usearch_previous(UStringSearch *strsrch, search->matchedIndex = (matchedindex == USEARCH_DONE ? offset : matchedindex); if (search->matchedIndex == 0) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); // status checked below } else { // move by codepoints U16_BACK_1(search->text, 0, search->matchedIndex); - setColEIterOffset(strsrch->textIter, search->matchedIndex); + setColEIterOffset(strsrch->textIter, search->matchedIndex, *status); // status checked below search->matchedLength = 0; } @@ -3509,7 +1435,7 @@ CEIBuffer::CEIBuffer(UStringSearch *ss, UErrorCode *status) { if (bufSize>DEFAULT_CEBUFFER_SIZE) { buf = (CEI *)uprv_malloc(bufSize * sizeof(CEI)); - if (buf == NULL) { + if (buf == nullptr) { *status = U_MEMORY_ALLOCATION_ERROR; } } @@ -3544,12 +1470,13 @@ const CEI *CEIBuffer::get(int32_t index) { // Verify that it is the next one in sequence, which is all // that is allowed. if (index != limitIx) { - U_ASSERT(FALSE); - // TODO: In ICU 64 the above assert was changed to use UPRV_UNREACHABLE instead - // which unconditionally calls abort(). However, there were cases where this was - // being hit. This change is reverted for now, restoring the existing behavior. + UPRV_UNREACHABLE_ASSERT; + // TODO: In ICU 64 the above was changed from U_ASSERT to UPRV_UNREACHABLE, + // which unconditionally called abort(). However, there were cases in which it + // was being hit, so it was changed back to U_ASSERT per ICU-20680. In ICU 70, + // we now use the new UPRV_UNREACHABLE_ASSERT to better indicate the situation. // ICU-20792 tracks the follow-up work/further investigation on this. - return NULL; + return nullptr; } // Manage the circular CE buffer indexing @@ -3586,12 +1513,13 @@ const CEI *CEIBuffer::getPrevious(int32_t index) { // Verify that it is the next one in sequence, which is all // that is allowed. if (index != limitIx) { - U_ASSERT(FALSE); - // TODO: In ICU 64 the above assert was changed to use UPRV_UNREACHABLE instead - // which unconditionally calls abort(). However, there were cases where this was - // being hit. This change is reverted for now, restoring the existing behavior. + UPRV_UNREACHABLE_ASSERT; + // TODO: In ICU 64 the above was changed from U_ASSERT to UPRV_UNREACHABLE, + // which unconditionally called abort(). However, there were cases in which it + // was being hit, so it was changed back to U_ASSERT per ICU-20680. In ICU 70, + // we now use the new UPRV_UNREACHABLE_ASSERT to better indicate the situation. // ICU-20792 tracks the follow-up work/further investigation on this. - return NULL; + return nullptr; } // Manage the circular CE buffer indexing @@ -3626,7 +1554,10 @@ U_NAMESPACE_END * has an external break iterator, use that. Otherwise use the internal character * break iterator. */ -static int32_t nextBoundaryAfter(UStringSearch *strsrch, int32_t startIndex) { +static int32_t nextBoundaryAfter(UStringSearch *strsrch, int32_t startIndex, UErrorCode &status) { + if (U_FAILURE(status)) { + return startIndex; + } #if 0 const UChar *text = strsrch->search->text; int32_t textLen = strsrch->search->textLength; @@ -3665,17 +1596,12 @@ static int32_t nextBoundaryAfter(UStringSearch *strsrch, int32_t startIndex) { } return indexOfLastCharChecked; #elif !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = strsrch->search->breakIter; - - if (breakiterator == NULL) { - breakiterator = strsrch->search->internalBreakIter; - } - - if (breakiterator != NULL) { - return ubrk_following(breakiterator, startIndex); + UBreakIterator *breakiterator = getBreakIterator(strsrch, status); + if (U_FAILURE(status)) { + return startIndex; } - return startIndex; + return ubrk_following(breakiterator, startIndex); #else // **** or should we use the original code? **** return startIndex; @@ -3688,7 +1614,10 @@ static int32_t nextBoundaryAfter(UStringSearch *strsrch, int32_t startIndex) { * has an external break iterator, test using that, otherwise test * using the internal character break iterator. */ -static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index) { +static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index, UErrorCode &status) { + if (U_FAILURE(status)) { + return TRUE; + } #if 0 const UChar *text = strsrch->search->text; int32_t textLen = strsrch->search->textLength; @@ -3716,13 +1645,12 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index) { UBool combining = !(gcProperty==U_GCB_CONTROL || gcProperty==U_GCB_LF || gcProperty==U_GCB_CR); return !combining; #elif !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = strsrch->search->breakIter; - - if (breakiterator == NULL) { - breakiterator = strsrch->search->internalBreakIter; + UBreakIterator *breakiterator = getBreakIterator(strsrch, status); + if (U_FAILURE(status)) { + return TRUE; } - return (breakiterator != NULL && ubrk_isBoundary(breakiterator, index)); + return ubrk_isBoundary(breakiterator, index); #else // **** or use the original code? **** return TRUE; @@ -3730,12 +1658,15 @@ static UBool isBreakBoundary(UStringSearch *strsrch, int32_t index) { } #if 0 -static UBool onBreakBoundaries(const UStringSearch *strsrch, int32_t start, int32_t end) +static UBool onBreakBoundaries(const UStringSearch *strsrch, int32_t start, int32_t end, UErrorCode &status) { -#if !UCONFIG_NO_BREAK_ITERATION - UBreakIterator *breakiterator = strsrch->search->breakIter; + if (U_FAILURE(status)) { + return TRUE; + } - if (breakiterator != NULL) { +#if !UCONFIG_NO_BREAK_ITERATION + UBreakIterator *breakiterator = getBreakIterator(strsrch, status); + if (U_SUCCESS(status)) { int32_t startindex = ubrk_first(breakiterator); int32_t endindex = ubrk_last(breakiterator); @@ -3770,7 +1701,7 @@ static UCompareCEsResult compareCE64s(int64_t targCE, int64_t patCE, int16_t com if (compareType == 0) { return U_CE_NO_MATCH; } - + int64_t targCEshifted = targCE >> 32; int64_t patCEshifted = patCE >> 32; int64_t mask; @@ -3801,7 +1732,7 @@ static UCompareCEsResult compareCE64s(int64_t targCE, int64_t patCE, int16_t com return (patLev2 == U_CE_LEVEL2_BASE || (compareType == USEARCH_ANY_BASE_WEIGHT_IS_WILDCARD && targLev2 == U_CE_LEVEL2_BASE) )? U_CE_MATCH: U_CE_NO_MATCH; } - + mask = 0xFFFF0000; int32_t targLev3 = (int32_t)(targCE & mask); int32_t patLev3 = (int32_t)(patCE & mask); @@ -3813,10 +1744,6 @@ static UCompareCEsResult compareCE64s(int64_t targCE, int64_t patCE, int16_t com return U_CE_MATCH; } -#if BOYER_MOORE -// TODO: #if BOYER_MOORE, need 32-bit version of compareCE64s -#endif - namespace { UChar32 codePointAt(const USearch &search, int32_t index) { @@ -3852,7 +1779,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, // TODO: reject search patterns beginning with a combining char. #ifdef USEARCH_DEBUG - if (getenv("USEARCH_DEBUG") != NULL) { + if (getenv("USEARCH_DEBUG") != nullptr) { printf("Pattern CEs\n"); for (int ii=0; iipattern.cesLength; ii++) { printf(" %8x", strsrch->pattern.ces[ii]); @@ -3867,21 +1794,26 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, if(strsrch->pattern.cesLength == 0 || startIdx < 0 || startIdx > strsrch->search->textLength || - strsrch->pattern.ces == NULL) { + strsrch->pattern.ces == nullptr) { *status = U_ILLEGAL_ARGUMENT_ERROR; return FALSE; } - if (strsrch->pattern.pces == NULL) { + if (strsrch->pattern.pces == nullptr) { initializePatternPCETable(strsrch, status); } ucol_setOffset(strsrch->textIter, startIdx, status); CEIBuffer ceb(strsrch, status); + // An out-of-memory (OOM) failure can occur in the initializePatternPCETable function + // or CEIBuffer constructor above, so we need to check the status. + if (U_FAILURE(*status)) { + return FALSE; + } int32_t targetIx = 0; - const CEI *targetCEI = NULL; + const CEI *targetCEI = nullptr; int32_t patIx; UBool found; @@ -3900,7 +1832,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, // 2. An int64_t CE weight is determined for each resulting unit (high 16 bits are primary strength, next // 16 bits are secondary, next 16 (the high 16 bits of the low 32-bit half) are tertiary. Any of these // fields that are for strengths below that of the collator are set to 0. If this makes the int64_t - // CE weight 0 (as for a combining diacritic with secondary weight when the collator strentgh is primary), + // CE weight 0 (as for a combining diacritic with secondary weight when the collator strength is primary), // then the CE is deleted, so the following code sees only CEs that are relevant. // For each CE, the lowIndex and highIndex correspond to where this CE begins and ends in the original text. // If lowIndex==highIndex, either the CE resulted from an expansion/decomposition of one of the original text @@ -3915,14 +1847,14 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, int64_t patCE = 0; // For targetIx > 0, this ceb.get gets a CE that is as far back in the ring buffer // (compared to the last CE fetched for the previous targetIx value) as we need to go - // for this targetIx value, so if it is non-NULL then other ceb.get calls should be OK. + // for this targetIx value, so if it is non-nullptr then other ceb.get calls should be OK. const CEI *firstCEI = ceb.get(targetIx); - if (firstCEI == NULL) { + if (firstCEI == nullptr) { *status = U_INTERNAL_PROGRAM_ERROR; found = FALSE; break; } - + for (patIx=0; patIxpattern.pcesLength; patIx++) { patCE = strsrch->pattern.pces[patIx]; targetCEI = ceb.get(targetIx+patIx+targetIxOffset); @@ -3946,7 +1878,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, } targetIxOffset += strsrch->pattern.pcesLength; // this is now the offset in target CE space to end of the match so far - if (!found && ((targetCEI == NULL) || (targetCEI->ce != UCOL_PROCESSED_NULLORDER))) { + if (!found && ((targetCEI == nullptr) || (targetCEI->ce != UCOL_PROCESSED_NULLORDER))) { // No match at this targetIx. Try again at the next. continue; } @@ -4018,9 +1950,12 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, // to something else. // This type of match should be rejected for not completely consuming a // combining sequence. - if (!isBreakBoundary(strsrch, mStart)) { + if (!isBreakBoundary(strsrch, mStart, *status)) { found = FALSE; } + if (U_FAILURE(*status)) { + break; + } // Check for the start of the match being within an Collation Element Expansion, // meaning that the first char of the match is only partially matched. @@ -4044,10 +1979,10 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, // tests in any case) // * the match limit is a normalization boundary UBool allowMidclusterMatch = FALSE; - if (strsrch->search->text != NULL && strsrch->search->textLength > maxLimit) { + if (strsrch->search->text != nullptr && strsrch->search->textLength > maxLimit) { allowMidclusterMatch = - strsrch->search->breakIter == NULL && - nextCEI != NULL && (((nextCEI->ce) >> 32) & 0xFFFF0000UL) != 0 && + strsrch->search->breakIter == nullptr && + nextCEI != nullptr && (((nextCEI->ce) >> 32) & 0xFFFF0000UL) != 0 && maxLimit >= lastCEI->highIndex && nextCEI->highIndex > maxLimit && (strsrch->nfd->hasBoundaryBefore(codePointAt(*strsrch->search, maxLimit)) || strsrch->nfd->hasBoundaryAfter(codePointBefore(*strsrch->search, maxLimit))); @@ -4070,10 +2005,10 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, // at the break boundary, move the position to the next boundary will result // incorrect match length when there are ignorable characters exist between // the position and the next character produces CE(s). See ticket#8482. - if (minLimit == lastCEI->highIndex && isBreakBoundary(strsrch, minLimit)) { + if (minLimit == lastCEI->highIndex && isBreakBoundary(strsrch, minLimit, *status)) { mLimit = minLimit; } else { - int32_t nba = nextBoundaryAfter(strsrch, minLimit); + int32_t nba = nextBoundaryAfter(strsrch, minLimit, *status); // Note that we can have nba < maxLimit && nba >= minLImit, in which // case we want to set mLimit to nba regardless of allowMidclusterMatch // (i.e. we back off mLimit to the previous breakIterator boundary). @@ -4083,8 +2018,12 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, } } + if (U_FAILURE(*status)) { + break; + } + #ifdef USEARCH_DEBUG - if (getenv("USEARCH_DEBUG") != NULL) { + if (getenv("USEARCH_DEBUG") != nullptr) { printf("minLimit, maxLimit, mLimit = %d, %d, %d\n", minLimit, maxLimit, mLimit); } #endif @@ -4096,9 +2035,12 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, found = FALSE; } - if (!isBreakBoundary(strsrch, mLimit)) { + if (!isBreakBoundary(strsrch, mLimit, *status)) { found = FALSE; } + if (U_FAILURE(*status)) { + break; + } } if (! checkIdentical(strsrch, mStart, mLimit)) { @@ -4111,7 +2053,7 @@ U_CAPI UBool U_EXPORT2 usearch_search(UStringSearch *strsrch, } #ifdef USEARCH_DEBUG - if (getenv("USEARCH_DEBUG") != NULL) { + if (getenv("USEARCH_DEBUG") != nullptr) { printf("Target CEs [%d .. %d]\n", ceb.firstIx, ceb.limitIx); int32_t lastToPrint = ceb.limitIx+2; for (int ii=ceb.firstIx; iipattern.cesLength; ii++) { printf(" %8x", strsrch->pattern.ces[ii]); @@ -4162,17 +2109,17 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, #endif // Input parameter sanity check. - // TODO: should input indicies clip to the text length + // TODO: should input indices clip to the text length // in the same way that UText does. - if(strsrch->pattern.cesLength == 0 || + if(strsrch->pattern.cesLength == 0 || startIdx < 0 || startIdx > strsrch->search->textLength || - strsrch->pattern.ces == NULL) { + strsrch->pattern.ces == nullptr) { *status = U_ILLEGAL_ARGUMENT_ERROR; return FALSE; } - if (strsrch->pattern.pces == NULL) { + if (strsrch->pattern.pces == nullptr) { initializePatternPCETable(strsrch, status); } @@ -4189,8 +2136,11 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, * consider for the match. */ if (startIdx < strsrch->search->textLength) { - UBreakIterator *bi = strsrch->search->internalBreakIter; - int32_t next = ubrk_following(bi, startIdx); + UBreakIterator *breakiterator = getBreakIterator(strsrch, *status); + if (U_FAILURE(*status)) { + return FALSE; + } + int32_t next = ubrk_following(breakiterator, startIdx); ucol_setOffset(strsrch->textIter, next, status); @@ -4203,8 +2153,12 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, ucol_setOffset(strsrch->textIter, startIdx, status); } + // An out-of-memory (OOM) failure can occur above, so we need to check the status. + if (U_FAILURE(*status)) { + return FALSE; + } - const CEI *targetCEI = NULL; + const CEI *targetCEI = nullptr; int32_t patIx; UBool found; @@ -4227,9 +2181,9 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, found = TRUE; // For targetIx > limitIx, this ceb.getPrevious gets a CE that is as far back in the ring buffer // (compared to the last CE fetched for the previous targetIx value) as we need to go - // for this targetIx value, so if it is non-NULL then other ceb.getPrevious calls should be OK. + // for this targetIx value, so if it is non-nullptr then other ceb.getPrevious calls should be OK. const CEI *lastCEI = ceb.getPrevious(targetIx); - if (lastCEI == NULL) { + if (lastCEI == nullptr) { *status = U_INTERNAL_PROGRAM_ERROR; found = FALSE; break; @@ -4260,7 +2214,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, } } - if (!found && ((targetCEI == NULL) || (targetCEI->ce != UCOL_PROCESSED_NULLORDER))) { + if (!found && ((targetCEI == nullptr) || (targetCEI->ce != UCOL_PROCESSED_NULLORDER))) { // No match at this targetIx. Try again at the next. continue; } @@ -4285,9 +2239,12 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, // to something else. // This type of match should be rejected for not completely consuming a // combining sequence. - if (!isBreakBoundary(strsrch, mStart)) { + if (!isBreakBoundary(strsrch, mStart, *status)) { found = FALSE; } + if (U_FAILURE(*status)) { + break; + } // Look at the high index of the first CE in the match. If it's the same as the // low index, the first CE in the match is in the middle of an expansion. @@ -4327,10 +2284,10 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, // tests in any case) // * the match limit is a normalization boundary UBool allowMidclusterMatch = FALSE; - if (strsrch->search->text != NULL && strsrch->search->textLength > maxLimit) { + if (strsrch->search->text != nullptr && strsrch->search->textLength > maxLimit) { allowMidclusterMatch = - strsrch->search->breakIter == NULL && - nextCEI != NULL && (((nextCEI->ce) >> 32) & 0xFFFF0000UL) != 0 && + strsrch->search->breakIter == nullptr && + nextCEI != nullptr && (((nextCEI->ce) >> 32) & 0xFFFF0000UL) != 0 && maxLimit >= lastCEI->highIndex && nextCEI->highIndex > maxLimit && (strsrch->nfd->hasBoundaryBefore(codePointAt(*strsrch->search, maxLimit)) || strsrch->nfd->hasBoundaryAfter(codePointBefore(*strsrch->search, maxLimit))); @@ -4346,7 +2303,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, // Advance the match end position to the first acceptable match boundary. // This advances the index over any combining characters. if (minLimit < maxLimit) { - int32_t nba = nextBoundaryAfter(strsrch, minLimit); + int32_t nba = nextBoundaryAfter(strsrch, minLimit, *status); // Note that we can have nba < maxLimit && nba >= minLImit, in which // case we want to set mLimit to nba regardless of allowMidclusterMatch // (i.e. we back off mLimit to the previous breakIterator boundary). @@ -4363,9 +2320,12 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, } // Make sure the end of the match is on a break boundary - if (!isBreakBoundary(strsrch, mLimit)) { + if (!isBreakBoundary(strsrch, mLimit, *status)) { found = FALSE; } + if (U_FAILURE(*status)) { + break; + } } } else { @@ -4373,12 +2333,12 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, // The maximum position is detected by boundary after // the last non-ignorable CE. Combining sequence // across the start index will be truncated. - int32_t nba = nextBoundaryAfter(strsrch, minLimit); + int32_t nba = nextBoundaryAfter(strsrch, minLimit, *status); mLimit = maxLimit = (nba > 0) && (startIdx > nba) ? nba : startIdx; } #ifdef USEARCH_DEBUG - if (getenv("USEARCH_DEBUG") != NULL) { + if (getenv("USEARCH_DEBUG") != nullptr) { printf("minLimit, maxLimit, mLimit = %d, %d, %d\n", minLimit, maxLimit, mLimit); } #endif @@ -4394,7 +2354,7 @@ U_CAPI UBool U_EXPORT2 usearch_searchBackwards(UStringSearch *strsrch, } #ifdef USEARCH_DEBUG - if (getenv("USEARCH_DEBUG") != NULL) { + if (getenv("USEARCH_DEBUG") != nullptr) { printf("Target CEs [%d .. %d]\n", ceb.firstIx, ceb.limitIx); int32_t lastToPrint = ceb.limitIx+2; for (int ii=ceb.firstIx; iitextIter; - int32_t textlength = strsrch->search->textLength; - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t textoffset = ucol_getOffset(coleiter); - - // status used in setting coleiter offset, since offset is checked in - // shiftForward before setting the coleiter offset, status never - // a failure - textoffset = shiftForward(strsrch, textoffset, UCOL_NULLORDER, - patterncelength); - while (textoffset <= textlength) - { - uint32_t patternceindex = patterncelength - 1; - int32_t targetce; - UBool found = FALSE; - int32_t lastce = UCOL_NULLORDER; - - setColEIterOffset(coleiter, textoffset); - - for (;;) { - // finding the last pattern ce match, imagine composite characters - // for example: search for pattern A in text \u00C0 - // we'll have to skip \u0300 the grave first before we get to A - targetce = ucol_previous(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (targetce == UCOL_IGNORABLE && inNormBuf(coleiter)) { - // this is for the text \u0315\u0300 that requires - // normalization and pattern \u0300, where \u0315 is ignorable - continue; - } - if (lastce == UCOL_NULLORDER || lastce == UCOL_IGNORABLE) { - lastce = targetce; - } - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - if (targetce == patternce[patternceindex]) { - // the first ce can be a contraction - found = TRUE; - break; - } - if (!hasExpansion(coleiter)) { - found = FALSE; - break; - } - } - - //targetce = lastce; - - while (found && patternceindex > 0) { - lastce = targetce; - targetce = ucol_previous(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (targetce == UCOL_IGNORABLE) { - continue; - } - - patternceindex --; - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - found = found && targetce == patternce[patternceindex]; - } - - targetce = lastce; - - if (!found) { - if (U_FAILURE(*status)) { - break; - } - textoffset = shiftForward(strsrch, textoffset, lastce, - patternceindex); - // status checked at loop. - patternceindex = patterncelength; - continue; - } - - if (checkNextExactMatch(strsrch, &textoffset, status)) { - // status checked in ucol_setOffset - setColEIterOffset(coleiter, strsrch->search->matchedIndex); - return TRUE; - } - } - setMatchNotFound(strsrch); - return FALSE; -#else int32_t textOffset = ucol_getOffset(strsrch->textIter); int32_t start = -1; int32_t end = -1; @@ -4532,112 +2405,18 @@ UBool usearch_handleNextExact(UStringSearch *strsrch, UErrorCode *status) strsrch->search->matchedLength = end - start; return TRUE; } else { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#endif } UBool usearch_handleNextCanonical(UStringSearch *strsrch, UErrorCode *status) { if (U_FAILURE(*status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#if BOYER_MOORE - UCollationElements *coleiter = strsrch->textIter; - int32_t textlength = strsrch->search->textLength; - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t textoffset = ucol_getOffset(coleiter); - UBool hasPatternAccents = - strsrch->pattern.hasSuffixAccents || strsrch->pattern.hasPrefixAccents; - - textoffset = shiftForward(strsrch, textoffset, UCOL_NULLORDER, - patterncelength); - strsrch->canonicalPrefixAccents[0] = 0; - strsrch->canonicalSuffixAccents[0] = 0; - - while (textoffset <= textlength) - { - int32_t patternceindex = patterncelength - 1; - int32_t targetce; - UBool found = FALSE; - int32_t lastce = UCOL_NULLORDER; - - setColEIterOffset(coleiter, textoffset); - - for (;;) { - // finding the last pattern ce match, imagine composite characters - // for example: search for pattern A in text \u00C0 - // we'll have to skip \u0300 the grave first before we get to A - targetce = ucol_previous(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (lastce == UCOL_NULLORDER || lastce == UCOL_IGNORABLE) { - lastce = targetce; - } - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - if (targetce == patternce[patternceindex]) { - // the first ce can be a contraction - found = TRUE; - break; - } - if (!hasExpansion(coleiter)) { - found = FALSE; - break; - } - } - - while (found && patternceindex > 0) { - targetce = ucol_previous(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (targetce == UCOL_IGNORABLE) { - continue; - } - - patternceindex --; - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - found = found && targetce == patternce[patternceindex]; - } - - // initializing the rearranged accent array - if (hasPatternAccents && !found) { - strsrch->canonicalPrefixAccents[0] = 0; - strsrch->canonicalSuffixAccents[0] = 0; - if (U_FAILURE(*status)) { - break; - } - found = doNextCanonicalMatch(strsrch, textoffset, status); - } - - if (!found) { - if (U_FAILURE(*status)) { - break; - } - textoffset = shiftForward(strsrch, textoffset, lastce, - patternceindex); - // status checked at loop - patternceindex = patterncelength; - continue; - } - - if (checkNextCanonicalMatch(strsrch, &textoffset, status)) { - setColEIterOffset(coleiter, strsrch->search->matchedIndex); - return TRUE; - } - } - setMatchNotFound(strsrch); - return FALSE; -#else int32_t textOffset = ucol_getOffset(strsrch->textIter); int32_t start = -1; int32_t end = -1; @@ -4647,114 +2426,18 @@ UBool usearch_handleNextCanonical(UStringSearch *strsrch, UErrorCode *status) strsrch->search->matchedLength = end - start; return TRUE; } else { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#endif } UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) { if (U_FAILURE(*status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#if BOYER_MOORE - UCollationElements *coleiter = strsrch->textIter; - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t textoffset = ucol_getOffset(coleiter); - - // shifting it check for setting offset - // if setOffset is called previously or there was no previous match, we - // leave the offset as it is. - if (strsrch->search->matchedIndex != USEARCH_DONE) { - textoffset = strsrch->search->matchedIndex; - } - - textoffset = reverseShift(strsrch, textoffset, UCOL_NULLORDER, - patterncelength); - - while (textoffset >= 0) - { - int32_t patternceindex = 1; - int32_t targetce; - UBool found = FALSE; - int32_t firstce = UCOL_NULLORDER; - - // if status is a failure, ucol_setOffset does nothing - setColEIterOffset(coleiter, textoffset); - - for (;;) { - // finding the first pattern ce match, imagine composite - // characters. for example: search for pattern \u0300 in text - // \u00C0, we'll have to skip A first before we get to - // \u0300 the grave accent - targetce = ucol_next(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (firstce == UCOL_NULLORDER || firstce == UCOL_IGNORABLE) { - firstce = targetce; - } - if (targetce == UCOL_IGNORABLE && strsrch->strength != UCOL_PRIMARY) { - continue; - } - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - if (targetce == patternce[0]) { - found = TRUE; - break; - } - if (!hasExpansion(coleiter)) { - // checking for accents in composite character - found = FALSE; - break; - } - } - - //targetce = firstce; - - while (found && (patternceindex < patterncelength)) { - firstce = targetce; - targetce = ucol_next(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (targetce == UCOL_IGNORABLE) { - continue; - } - - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - found = found && targetce == patternce[patternceindex]; - patternceindex ++; - } - - targetce = firstce; - - if (!found) { - if (U_FAILURE(*status)) { - break; - } - - textoffset = reverseShift(strsrch, textoffset, targetce, - patternceindex); - patternceindex = 0; - continue; - } - - if (checkPreviousExactMatch(strsrch, &textoffset, status)) { - setColEIterOffset(coleiter, textoffset); - return TRUE; - } - } - setMatchNotFound(strsrch); - return FALSE; -#else int32_t textOffset; if (strsrch->search->isOverlap) { @@ -4764,18 +2447,18 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) // move the start position at the end of possible match initializePatternPCETable(strsrch, status); if (!initTextProcessedIter(strsrch, status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } for (int32_t nPCEs = 0; nPCEs < strsrch->pattern.pcesLength - 1; nPCEs++) { - int64_t pce = strsrch->textProcessedIter->nextProcessed(NULL, NULL, status); + int64_t pce = strsrch->textProcessedIter->nextProcessed(nullptr, nullptr, status); if (pce == UCOL_PROCESSED_NULLORDER) { // at the end of the text break; } } if (U_FAILURE(*status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } textOffset = ucol_getOffset(strsrch->textIter); @@ -4792,122 +2475,19 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status) strsrch->search->matchedLength = end - start; return TRUE; } else { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#endif } UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, UErrorCode *status) { if (U_FAILURE(*status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#if BOYER_MOORE - UCollationElements *coleiter = strsrch->textIter; - int32_t *patternce = strsrch->pattern.ces; - int32_t patterncelength = strsrch->pattern.cesLength; - int32_t textoffset = ucol_getOffset(coleiter); - UBool hasPatternAccents = - strsrch->pattern.hasSuffixAccents || strsrch->pattern.hasPrefixAccents; - - // shifting it check for setting offset - // if setOffset is called previously or there was no previous match, we - // leave the offset as it is. - if (strsrch->search->matchedIndex != USEARCH_DONE) { - textoffset = strsrch->search->matchedIndex; - } - - textoffset = reverseShift(strsrch, textoffset, UCOL_NULLORDER, - patterncelength); - strsrch->canonicalPrefixAccents[0] = 0; - strsrch->canonicalSuffixAccents[0] = 0; - - while (textoffset >= 0) - { - int32_t patternceindex = 1; - int32_t targetce; - UBool found = FALSE; - int32_t firstce = UCOL_NULLORDER; - - setColEIterOffset(coleiter, textoffset); - for (;;) { - // finding the first pattern ce match, imagine composite - // characters. for example: search for pattern \u0300 in text - // \u00C0, we'll have to skip A first before we get to - // \u0300 the grave accent - targetce = ucol_next(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (firstce == UCOL_NULLORDER || firstce == UCOL_IGNORABLE) { - firstce = targetce; - } - - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - if (targetce == patternce[0]) { - // the first ce can be a contraction - found = TRUE; - break; - } - if (!hasExpansion(coleiter)) { - // checking for accents in composite character - found = FALSE; - break; - } - } - - targetce = firstce; - - while (found && patternceindex < patterncelength) { - targetce = ucol_next(coleiter, status); - if (U_FAILURE(*status) || targetce == UCOL_NULLORDER) { - found = FALSE; - break; - } - targetce = getCE(strsrch, targetce); - if (targetce == UCOL_IGNORABLE) { - continue; - } - - // TODO: #if BOYER_MOORE, replace with code using 32-bit version of compareCE64s - found = found && targetce == patternce[patternceindex]; - patternceindex ++; - } - - // initializing the rearranged accent array - if (hasPatternAccents && !found) { - strsrch->canonicalPrefixAccents[0] = 0; - strsrch->canonicalSuffixAccents[0] = 0; - if (U_FAILURE(*status)) { - break; - } - found = doPreviousCanonicalMatch(strsrch, textoffset, status); - } - - if (!found) { - if (U_FAILURE(*status)) { - break; - } - textoffset = reverseShift(strsrch, textoffset, targetce, - patternceindex); - patternceindex = 0; - continue; - } - - if (checkPreviousCanonicalMatch(strsrch, &textoffset, status)) { - setColEIterOffset(coleiter, textoffset); - return TRUE; - } - } - setMatchNotFound(strsrch); - return FALSE; -#else int32_t textOffset; if (strsrch->search->isOverlap) { @@ -4917,18 +2497,18 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, // move the start position at the end of possible match initializePatternPCETable(strsrch, status); if (!initTextProcessedIter(strsrch, status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } for (int32_t nPCEs = 0; nPCEs < strsrch->pattern.pcesLength - 1; nPCEs++) { - int64_t pce = strsrch->textProcessedIter->nextProcessed(NULL, NULL, status); + int64_t pce = strsrch->textProcessedIter->nextProcessed(nullptr, nullptr, status); if (pce == UCOL_PROCESSED_NULLORDER) { // at the end of the text break; } } if (U_FAILURE(*status)) { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } textOffset = ucol_getOffset(strsrch->textIter); @@ -4945,10 +2525,9 @@ UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, strsrch->search->matchedLength = end - start; return TRUE; } else { - setMatchNotFound(strsrch); + setMatchNotFound(strsrch, *status); return FALSE; } -#endif } #endif /* #if !UCONFIG_NO_COLLATION */ diff --git a/deps/icu-small/source/i18n/uspoof.cpp b/deps/icu-small/source/i18n/uspoof.cpp index e2360924d02658..dd4618baa703cb 100644 --- a/deps/icu-small/source/i18n/uspoof.cpp +++ b/deps/icu-small/source/i18n/uspoof.cpp @@ -82,63 +82,66 @@ void U_CALLCONV initializeStatics(UErrorCode &status) { u"\\u04FF\\u0510-\\u0529\\u052E\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0586" u"\\u05B4\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u063F\\u0641-\\u0655\\u0660-" u"\\u0669\\u0670-\\u0672\\u0674\\u0679-\\u068D\\u068F-\\u06A0\\u06A2-\\u06D3" - u"\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u08A0-\\u08AC" - u"\\u08B2\\u08B6-\\u08C7\\u0901-\\u094D\\u094F\\u0950\\u0956\\u0957\\u0960-" - u"\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-\\u097F\\u0981-\\u0983\\u0985-" - u"\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9" - u"\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09E0-\\u09E3\\u09E6-" - u"\\u09F1\\u09FE\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28" - u"\\u0A2A-\\u0A30\\u0A32\\u0A35\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47" - u"\\u0A48\\u0A4B-\\u0A4D\\u0A5C\\u0A66-\\u0A74\\u0A81-\\u0A83\\u0A85-\\u0A8D" - u"\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9" - u"\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-" - u"\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-" - u"\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B43\\u0B47" - u"\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B5F-\\u0B61\\u0B66-\\u0B6F\\u0B71" - u"\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A" - u"\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-" - u"\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C01-" - u"\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C33\\u0C35-\\u0C39\\u0C3D-" - u"\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C60\\u0C61\\u0C66-" - u"\\u0C6F\\u0C80\\u0C82\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8" - u"\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD" - u"\\u0CD5\\u0CD6\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00\\u0D02" - u"\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-" - u"\\u0D48\\u0D4A-\\u0D4E\\u0D54-\\u0D57\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-" - u"\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D8E\\u0D91-\\u0D96\\u0D9A-\\u0DA5\\u0DA7-" - u"\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6" - u"\\u0DD8-\\u0DDE\\u0DF2\\u0E01-\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-" - u"\\u0E59\\u0E81\\u0E82\\u0E84\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-" - u"\\u0EB2\\u0EB4-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9" - u"\\u0EDE\\u0EDF\\u0F00\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-" - u"\\u0F47\\u0F49-\\u0F4C\\u0F4E-\\u0F51\\u0F53-\\u0F56\\u0F58-\\u0F5B\\u0F5D-" - u"\\u0F68\\u0F6A-\\u0F6C\\u0F71\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0F82-\\u0F84" - u"\\u0F86-\\u0F92\\u0F94-\\u0F97\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6" - u"\\u0FA8-\\u0FAB\\u0FAD-\\u0FB8\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-" - u"\\u109D\\u10C7\\u10CD\\u10D0-\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-" - u"\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288" - u"\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-" - u"\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-" - u"\\u135F\\u1380-\\u138F\\u1780-\\u17A2\\u17A5-\\u17A7\\u17A9-\\u17B3\\u17B6-" - u"\\u17CA\\u17D2\\u17D7\\u17DC\\u17E0-\\u17E9\\u1C90-\\u1CBA\\u1CBD-\\u1CBF" - u"\\u1E00-\\u1E99\\u1E9E\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-" - u"\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70" - u"\\u1F72\\u1F74\\u1F76\\u1F78\\u1F7A\\u1F7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA" - u"\\u1FBC\\u1FC2-\\u1FC4\\u1FC6-\\u1FC8\\u1FCA\\u1FCC\\u1FD0-\\u1FD2\\u1FD6-" - u"\\u1FDA\\u1FE0-\\u1FE2\\u1FE4-\\u1FEA\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FF8" - u"\\u1FFA\\u1FFC\\u2D27\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE" - u"\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6" - u"\\u2DD8-\\u2DDE\\u3005-\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E" - u"\\u30A1-\\u30FA\\u30FC-\\u30FE\\u3105-\\u312D\\u312F\\u31A0-\\u31BF\\u3400-" - u"\\u4DBF\\u4E00-\\u9FFC\\uA67F\\uA717-\\uA71F\\uA788\\uA78D\\uA792\\uA793" - u"\\uA7AA\\uA7AE\\uA7B8\\uA7B9\\uA7C2-\\uA7CA\\uA9E7-\\uA9FE\\uAA60-\\uAA76" - u"\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26" - u"\\uAB28-\\uAB2E\\uAB66\\uAB67\\uAC00-\\uD7A3\\uFA0E\\uFA0F\\uFA11\\uFA13" - u"\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00011301\\U00011303" - u"\\U0001133B\\U0001133C\\U00016FF0\\U00016FF1\\U0001B150-\\U0001B152" - u"\\U0001B164-\\U0001B167\\U00020000-\\U0002A6DD\\U0002A700-\\U0002B734" - u"\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1\\U0002CEB0-\\U0002EBE0" - u"\\U00030000-\\U0003134A]"; + u"\\u06D5\\u06E5\\u06E6\\u06EE-\\u06FC\\u06FF\\u0750-\\u07B1\\u0870-\\u0887" + u"\\u0889-\\u088E\\u08A0-\\u08AC\\u08B2\\u08B5-\\u08C9\\u0901-\\u094D\\u094F" + u"\\u0950\\u0956\\u0957\\u0960-\\u0963\\u0966-\\u096F\\u0971-\\u0977\\u0979-" + u"\\u097F\\u0981-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-" + u"\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE" + u"\\u09D7\\u09E0-\\u09E3\\u09E6-\\u09F1\\u09FE\\u0A01-\\u0A03\\u0A05-\\u0A0A" + u"\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A35\\u0A38\\u0A39" + u"\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A5C\\u0A66-\\u0A74" + u"\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0" + u"\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD" + u"\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0AFA-\\u0AFF\\u0B01-\\u0B03\\u0B05-" + u"\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-" + u"\\u0B39\\u0B3C-\\u0B43\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B55-\\u0B57\\u0B5F-" + u"\\u0B61\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90" + u"\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-" + u"\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0" + u"\\u0BD7\\u0BE6-\\u0BEF\\u0C01-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-" + u"\\u0C33\\u0C35-\\u0C39\\u0C3C-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55" + u"\\u0C56\\u0C5D\\u0C60\\u0C61\\u0C66-\\u0C6F\\u0C80\\u0C82\\u0C83\\u0C85-" + u"\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-" + u"\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDD\\u0CE0-\\u0CE3" + u"\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D00\\u0D02\\u0D03\\u0D05-\\u0D0C\\u0D0E-" + u"\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D43\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D54-" + u"\\u0D57\\u0D60\\u0D61\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-" + u"\\u0D8E\\u0D91-\\u0D96\\u0D9A-\\u0DA5\\u0DA7-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD" + u"\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDE\\u0DF2\\u0E01-" + u"\\u0E32\\u0E34-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84" + u"\\u0E86-\\u0E8A\\u0E8C-\\u0EA3\\u0EA5\\u0EA7-\\u0EB2\\u0EB4-\\u0EBD\\u0EC0-" + u"\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDE\\u0EDF\\u0F00\\u0F20-" + u"\\u0F29\\u0F35\\u0F37\\u0F3E-\\u0F42\\u0F44-\\u0F47\\u0F49-\\u0F4C\\u0F4E-" + u"\\u0F51\\u0F53-\\u0F56\\u0F58-\\u0F5B\\u0F5D-\\u0F68\\u0F6A-\\u0F6C\\u0F71" + u"\\u0F72\\u0F74\\u0F7A-\\u0F80\\u0F82-\\u0F84\\u0F86-\\u0F92\\u0F94-\\u0F97" + u"\\u0F99-\\u0F9C\\u0F9E-\\u0FA1\\u0FA3-\\u0FA6\\u0FA8-\\u0FAB\\u0FAD-\\u0FB8" + u"\\u0FBA-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10C7\\u10CD\\u10D0-" + u"\\u10F0\\u10F7-\\u10FA\\u10FD-\\u10FF\\u1200-\\u1248\\u124A-\\u124D\\u1250-" + u"\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0" + u"\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-" + u"\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u1780-" + u"\\u17A2\\u17A5-\\u17A7\\u17A9-\\u17B3\\u17B6-\\u17CD\\u17D0\\u17D2\\u17D7" + u"\\u17DC\\u17E0-\\u17E9\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1E00-\\u1E99\\u1E9E" + u"\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D" + u"\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F70\\u1F72\\u1F74\\u1F76" + u"\\u1F78\\u1F7A\\u1F7C\\u1F80-\\u1FB4\\u1FB6-\\u1FBA\\u1FBC\\u1FC2-\\u1FC4" + u"\\u1FC6-\\u1FC8\\u1FCA\\u1FCC\\u1FD0-\\u1FD2\\u1FD6-\\u1FDA\\u1FE0-\\u1FE2" + u"\\u1FE4-\\u1FEA\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FF8\\u1FFA\\u1FFC\\u2D27" + u"\\u2D2D\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-" + u"\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3005-" + u"\\u3007\\u3041-\\u3096\\u3099\\u309A\\u309D\\u309E\\u30A1-\\u30FA\\u30FC-" + u"\\u30FE\\u3105-\\u312D\\u312F\\u31A0-\\u31BF\\u3400-\\u4DBF\\u4E00-\\u9FFF" + u"\\uA67F\\uA717-\\uA71F\\uA788\\uA78D\\uA792\\uA793\\uA7AA\\uA7AE\\uA7B8" + u"\\uA7B9\\uA7C0-\\uA7CA\\uA7D0\\uA7D1\\uA7D3\\uA7D5-\\uA7D9\\uA9E7-\\uA9FE" + u"\\uAA60-\\uAA76\\uAA7A-\\uAA7F\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16" + u"\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB66\\uAB67\\uAC00-\\uD7A3\\uFA0E\\uFA0F" + u"\\uFA11\\uFA13\\uFA14\\uFA1F\\uFA21\\uFA23\\uFA24\\uFA27-\\uFA29\\U00011301" + u"\\U00011303\\U0001133B\\U0001133C\\U00016FF0\\U00016FF1\\U0001B11F-" + u"\\U0001B122\\U0001B150-\\U0001B152\\U0001B164-\\U0001B167\\U0001DF00-" + u"\\U0001DF1E\\U0001E7E0-\\U0001E7E6\\U0001E7E8-\\U0001E7EB\\U0001E7ED" + u"\\U0001E7EE\\U0001E7F0-\\U0001E7FE\\U00020000-\\U0002A6DF\\U0002A700-" + u"\\U0002B738\\U0002B740-\\U0002B81D\\U0002B820-\\U0002CEA1\\U0002CEB0-" + u"\\U0002EBE0\\U00030000-\\U0003134A]"; gRecommendedSet = new UnicodeSet(UnicodeString(recommendedPat), status); if (gRecommendedSet == NULL) { @@ -258,10 +261,10 @@ uspoof_setChecks(USpoofChecker *sc, int32_t checks, UErrorCode *status) { return; } - // Verify that the requested checks are all ones (bits) that + // Verify that the requested checks are all ones (bits) that // are acceptable, known values. if (checks & ~(USPOOF_ALL_CHECKS | USPOOF_AUX_INFO)) { - *status = U_ILLEGAL_ARGUMENT_ERROR; + *status = U_ILLEGAL_ARGUMENT_ERROR; return; } @@ -442,7 +445,7 @@ uspoof_areConfusable(const USpoofChecker *sc, *status = U_ILLEGAL_ARGUMENT_ERROR; return 0; } - + UnicodeString id1Str((length1==-1), id1, length1); // Aliasing constructor UnicodeString id2Str((length2==-1), id2, length2); // Aliasing constructor return uspoof_areConfusableUnicodeString(sc, id1Str, id2Str, status); @@ -467,7 +470,7 @@ uspoof_areConfusableUTF8(const USpoofChecker *sc, int32_t results = uspoof_areConfusableUnicodeString(sc, id1Str, id2Str, status); return results; } - + U_CAPI int32_t U_EXPORT2 uspoof_areConfusableUnicodeString(const USpoofChecker *sc, @@ -481,9 +484,9 @@ uspoof_areConfusableUnicodeString(const USpoofChecker *sc, // // See section 4 of UAX 39 for the algorithm for checking whether two strings are confusable, // and for definitions of the types (single, whole, mixed-script) of confusables. - + // We only care about a few of the check flags. Ignore the others. - // If no tests relavant to this function have been specified, return an error. + // If no tests relevant to this function have been specified, return an error. // TODO: is this really the right thing to do? It's probably an error on the caller's part, // but logically we would just return 0 (no error). if ((This->fChecks & USPOOF_CONFUSABLE) == 0) { @@ -603,14 +606,14 @@ int32_t checkImpl(const SpoofImpl* This, const UnicodeString& id, CheckResult* c gNfdNormalizer->normalize(id, nfdText, *status); int32_t nfdLength = nfdText.length(); - // scan for more than one occurence of the same non-spacing mark + // scan for more than one occurrence of the same non-spacing mark // in a sequence of non-spacing marks. int32_t i; UChar32 c; UChar32 firstNonspacingMark = 0; - UBool haveMultipleMarks = FALSE; + UBool haveMultipleMarks = FALSE; UnicodeSet marksSeenSoFar; // Set of combining marks in a single combining sequence. - + for (i=0; i( static_cast(left.pointer)); - const SPUString *sR = const_cast( - static_cast(right.pointer)); + const SPUString *sR = const_cast( + static_cast(right.pointer)); int32_t lenL = sL->fStr->length(); int32_t lenR = sR->fStr->length(); if (lenL < lenR) { @@ -145,7 +145,7 @@ SPUString *SPUStringPool::addString(UnicodeString *src, UErrorCode &status) { return NULL; } uhash_put(fHash, src, hashedString, &status); - fVec->addElement(hashedString, status); + fVec->addElementX(hashedString, status); } return hashedString; } @@ -475,3 +475,4 @@ void ConfusabledataBuilder::outputData(UErrorCode &status) { #endif #endif // !UCONFIG_NO_REGULAR_EXPRESSIONS + diff --git a/deps/icu-small/source/i18n/uspoof_conf.h b/deps/icu-small/source/i18n/uspoof_conf.h index ad040edf105271..600d7ea42a430d 100644 --- a/deps/icu-small/source/i18n/uspoof_conf.h +++ b/deps/icu-small/source/i18n/uspoof_conf.h @@ -25,7 +25,7 @@ #if !UCONFIG_NO_NORMALIZATION -#if !UCONFIG_NO_REGULAR_EXPRESSIONS +#if !UCONFIG_NO_REGULAR_EXPRESSIONS #include "unicode/uregex.h" #include "uhash.h" @@ -60,7 +60,7 @@ class SPUStringPool : public UMemory { public: SPUStringPool(UErrorCode &status); ~SPUStringPool(); - + // Add a string. Return the string from the table. // If the input parameter string is already in the table, delete the // input parameter and return the existing string. @@ -98,7 +98,7 @@ class ConfusabledataBuilder : public UMemory { UVector *fKeyVec; UVector *fValueVec; UnicodeString *fStringTable; - + SPUStringPool *stringPool; URegularExpression *fParseLine; URegularExpression *fParseHexNum; @@ -110,7 +110,7 @@ class ConfusabledataBuilder : public UMemory { // Add an entry to the key and value tables being built // input: data from SLTable, MATable, etc. - // outut: entry added to fKeyVec and fValueVec + // output: entry added to fKeyVec and fValueVec void addKeyEntry(UChar32 keyChar, // The key character UHashtable *table, // The table, one of SATable, MATable, etc. int32_t tableFlag, // One of USPOOF_SA_TABLE_FLAG, etc. @@ -130,5 +130,5 @@ class ConfusabledataBuilder : public UMemory { U_NAMESPACE_END #endif -#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS +#endif // !UCONFIG_NO_REGULAR_EXPRESSIONS #endif // __USPOOF_BUILDCONF_H__ diff --git a/deps/icu-small/source/i18n/uspoof_impl.cpp b/deps/icu-small/source/i18n/uspoof_impl.cpp index 3c1f84a19ba929..b283d813210d9d 100644 --- a/deps/icu-small/source/i18n/uspoof_impl.cpp +++ b/deps/icu-small/source/i18n/uspoof_impl.cpp @@ -73,7 +73,7 @@ void SpoofImpl::construct(UErrorCode& status) { // Copy Constructor, used by the user level clone() function. SpoofImpl::SpoofImpl(const SpoofImpl &src, UErrorCode &status) : - fChecks(USPOOF_ALL_CHECKS), fSpoofData(NULL), fAllowedCharsSet(NULL) , + fChecks(USPOOF_ALL_CHECKS), fSpoofData(NULL), fAllowedCharsSet(NULL) , fAllowedLocales(NULL) { if (U_FAILURE(status)) { return; @@ -170,7 +170,7 @@ void SpoofImpl::setAllowedLocales(const char *localesList, UErrorCode &status) { if (fAllowedLocales == NULL || tmpSet == NULL) { status = U_MEMORY_ALLOCATION_ERROR; return; - } + } tmpSet->freeze(); delete fAllowedCharsSet; fAllowedCharsSet = tmpSet; @@ -178,14 +178,14 @@ void SpoofImpl::setAllowedLocales(const char *localesList, UErrorCode &status) { return; } - + // Add all common and inherited characters to the set of allowed chars. UnicodeSet tempSet; tempSet.applyIntPropertyValue(UCHAR_SCRIPT, USCRIPT_COMMON, status); allowedChars.addAll(tempSet); tempSet.applyIntPropertyValue(UCHAR_SCRIPT, USCRIPT_INHERITED, status); allowedChars.addAll(tempSet); - + // If anything went wrong, we bail out without changing // the state of the spoof checker. if (U_FAILURE(status)) { @@ -554,7 +554,7 @@ uspoof_cleanupDefaultData(void) { static void U_CALLCONV uspoof_loadDefaultData(UErrorCode& status) { UDataMemory *udm = udata_openChoice(nullptr, "cfu", "confusables", - spoofDataIsAcceptable, + spoofDataIsAcceptable, nullptr, // context, would receive dataVersion if supplied. &status); if (U_FAILURE(status)) { return; } @@ -633,7 +633,7 @@ SpoofData::SpoofData(UErrorCode &status) { // Just in case it's not, round it up. uint32_t initialSize = (sizeof(SpoofDataHeader) + 15) & ~15; U_ASSERT(initialSize == sizeof(SpoofDataHeader)); - + fRawData = static_cast(uprv_malloc(initialSize)); fMemLimit = initialSize; if (fRawData == NULL) { @@ -729,7 +729,7 @@ void *SpoofData::reserveSpace(int32_t numBytes, UErrorCode &status) { return NULL; } if (!fDataOwned) { - UPRV_UNREACHABLE; + UPRV_UNREACHABLE_EXIT; } numBytes = (numBytes + 15) & ~15; // Round up to a multiple of 16 @@ -875,7 +875,7 @@ uspoof_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *ou const uint8_t *inBytes =(const uint8_t *)inData+headerSize; SpoofDataHeader *spoofDH = (SpoofDataHeader *)inBytes; if (ds->readUInt32(spoofDH->fMagic) != USPOOF_MAGIC || - ds->readUInt32(spoofDH->fLength) < sizeof(SpoofDataHeader)) + ds->readUInt32(spoofDH->fLength) < sizeof(SpoofDataHeader)) { udata_printError(ds, "uspoof_swap(): Spoof Data header is invalid.\n"); *status=U_UNSUPPORTED_ERROR; @@ -955,3 +955,5 @@ uspoof_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *ou } #endif + + diff --git a/deps/icu-small/source/i18n/uspoof_impl.h b/deps/icu-small/source/i18n/uspoof_impl.h index e825f343da1915..e75ae262bddb4c 100644 --- a/deps/icu-small/source/i18n/uspoof_impl.h +++ b/deps/icu-small/source/i18n/uspoof_impl.h @@ -8,7 +8,7 @@ * * uspoof_impl.h * -* Implemenation header for spoof detection +* Implementation header for spoof detection * */ @@ -31,7 +31,7 @@ U_NAMESPACE_BEGIN -// The maximium length (in UTF-16 UChars) of the skeleton replacement string resulting from +// The maximum length (in UTF-16 UChars) of the skeleton replacement string resulting from // a single input code point. This is function of the unicode.org data. #define USPOOF_MAX_SKELETON_EXPANSION 20 @@ -66,7 +66,7 @@ class SpoofImpl : public UObject, /** Copy constructor, used by the user level uspoof_clone() function. */ SpoofImpl(const SpoofImpl &src, UErrorCode &status); - + USpoofChecker *asUSpoofChecker(); static SpoofImpl *validateThis(USpoofChecker *sc, UErrorCode &status); static const SpoofImpl *validateThis(const USpoofChecker *sc, UErrorCode &status); @@ -93,7 +93,7 @@ class SpoofImpl : public UObject, static UChar32 ScanHex(const UChar *s, int32_t start, int32_t limit, UErrorCode &status); static UClassID U_EXPORT2 getStaticClassID(void); - virtual UClassID getDynamicClassID(void) const; + virtual UClassID getDynamicClassID(void) const override; // // Data Members @@ -102,7 +102,7 @@ class SpoofImpl : public UObject, int32_t fChecks; // Bit vector of checks to perform. SpoofData *fSpoofData; - + const UnicodeSet *fAllowedCharsSet; // The UnicodeSet of allowed characters. // for this Spoof Checker. Defaults to all chars. @@ -211,7 +211,7 @@ class SpoofData: public UMemory { SpoofData(UErrorCode &status); // Create new spoof data wrapper. // Only used when building new data from rules. - + // Constructor for use when creating from prebuilt default data. // A UDataMemory is what the ICU internal data loading functions provide. // The udm is adopted by the SpoofData. @@ -231,7 +231,7 @@ class SpoofData: public UMemory { // Clone of a user-level spoof detector increments the ref count on the data. // Close of a user-level spoof detector decrements the ref count. // If the data is owned by us, it will be deleted when count goes to zero. - SpoofData *addReference(); + SpoofData *addReference(); void removeReference(); // Reset all fields to an initial state. @@ -248,7 +248,7 @@ class SpoofData: public UMemory { // Get the confusable skeleton transform for a single code point. // The result is a string with a length between 1 and 18 as of Unicode 9. // This is the main public endpoint for this class. - // @return The length in UTF-16 code units of the substition string. + // @return The length in UTF-16 code units of the substitution string. int32_t confusableLookup(UChar32 inChar, UnicodeString &dest) const; // Get the number of confusable entries in this SpoofData. @@ -301,7 +301,7 @@ struct SpoofDataHeader { int32_t fMagic; // (0x3845fdef) uint8_t fFormatVersion[4]; // Data Format. Same as the value in struct UDataInfo // if there is one associated with this data. - int32_t fLength; // Total lenght in bytes of this spoof data, + int32_t fLength; // Total length in bytes of this spoof data, // including all sections, not just the header. // The following four sections refer to data representing the confusable data @@ -340,3 +340,4 @@ uspoof_swap(const UDataSwapper *ds, const void *inData, int32_t length, void *ou #endif #endif /* USPOOFIM_H */ + diff --git a/deps/icu-small/source/i18n/usrchimp.h b/deps/icu-small/source/i18n/usrchimp.h index e056337caecdef..13d825f73be23c 100644 --- a/deps/icu-small/source/i18n/usrchimp.h +++ b/deps/icu-small/source/i18n/usrchimp.h @@ -43,7 +43,7 @@ #define isContinuation(CE) (((CE) & UCOL_CONTINUATION_MARKER) == UCOL_CONTINUATION_MARKER) /** - * This indicates an error has occured during processing or there are no more CEs + * This indicates an error has occurred during processing or there are no more CEs * to be returned. */ #define UCOL_PROCESSED_NULLORDER ((int64_t)U_INT64_MAX) @@ -100,8 +100,8 @@ class UCollationPCE : public UMemory { * @param ixLow a pointer to an int32_t to receive the iterator index before fetching the CE. * @param ixHigh a pointer to an int32_t to receive the iterator index after fetching the CE. * @param status A pointer to an UErrorCode to receive any errors. - * @return The next collation elements ordering, otherwise returns UCOL_PROCESSED_NULLORDER - * if an error has occured or if the end of string has been reached + * @return The next collation elements ordering, otherwise returns UCOL_PROCESSED_NULLORDER + * if an error has occurred or if the end of string has been reached */ int64_t nextProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status); /** @@ -110,11 +110,11 @@ class UCollationPCE : public UMemory { * * @param ixLow A pointer to an int32_t to receive the iterator index after fetching the CE * @param ixHigh A pointer to an int32_t to receiver the iterator index before fetching the CE - * @param status A pointer to an UErrorCode to receive any errors. Noteably + * @param status A pointer to an UErrorCode to receive any errors. Notably * a U_BUFFER_OVERFLOW_ERROR is returned if the internal stack * buffer has been exhausted. - * @return The previous collation elements ordering, otherwise returns - * UCOL_PROCESSED_NULLORDER if an error has occured or if the start of + * @return The previous collation elements ordering, otherwise returns + * UCOL_PROCESSED_NULLORDER if an error has occurred or if the start of * string has been reached. */ int64_t previousProcessed(int32_t *ixLow, int32_t *ixHigh, UErrorCode *status); @@ -127,7 +127,6 @@ class UCollationPCE : public UMemory { U_NAMESPACE_END #define INITIAL_ARRAY_SIZE_ 256 -#define MAX_TABLE_SIZE_ 257 struct USearch { // required since collation element iterator does not have a getText API @@ -136,13 +135,13 @@ struct USearch { UBool isOverlap; UBool isCanonicalMatch; int16_t elementComparisonType; - UBreakIterator *internalBreakIter; //internal character breakiterator - UBreakIterator *breakIter; + UBreakIterator *internalBreakIter; // internal character breakiterator, lazily created. + UBreakIterator *breakIter; // caller provided character breakiterator // value USEARCH_DONE is the default value - // if we are not at the start of the text or the end of the text, - // depending on the iteration direction and matchedIndex is USEARCH_DONE + // if we are not at the start of the text or the end of the text, + // depending on the iteration direction and matchedIndex is USEARCH_DONE // it means that we can't find any more matches in that particular direction - int32_t matchedIndex; + int32_t matchedIndex; int32_t matchedLength; UBool isForwardSearching; UBool reset; @@ -160,9 +159,6 @@ struct UPattern { int64_t pcesBuffer[INITIAL_ARRAY_SIZE_]; UBool hasPrefixAccents; UBool hasSuffixAccents; - int16_t defaultShiftSize; - int16_t shift[MAX_TABLE_SIZE_]; - int16_t backShift[MAX_TABLE_SIZE_]; }; struct UStringSearch { @@ -174,7 +170,7 @@ struct UStringSearch { // if we are at the start of the text. UCollationElements *textIter; icu::UCollationPCE *textProcessedIter; - // utility collation element, used throughout program for temporary + // utility collation element, used throughout program for temporary // iteration. UCollationElements *utilIter; UBool ownCollator; @@ -182,28 +178,26 @@ struct UStringSearch { uint32_t ceMask; uint32_t variableTop; UBool toShift; - UChar canonicalPrefixAccents[INITIAL_ARRAY_SIZE_]; - UChar canonicalSuffixAccents[INITIAL_ARRAY_SIZE_]; }; /** * Exact matches without checking for the ends for extra accents. * The match after the position within the collation element iterator is to be -* found. +* found. * After a match is found the offset in the collation element iterator will be * shifted to the start of the match. -* Implementation note: -* For tertiary we can't use the collator->tertiaryMask, that is a -* preprocessed mask that takes into account case options. since we are only +* Implementation note: +* For tertiary we can't use the collator->tertiaryMask, that is a +* preprocessed mask that takes into account case options. since we are only * concerned with exact matches, we don't need that. -* Alternate handling - since only the 16 most significant digits is only used, -* we can safely do a compare without masking if the ce is a variable, we mask -* and get only the primary values no shifting to quartenary is required since +* Alternate handling - since only the 16 most significant digits is only used, +* we can safely do a compare without masking if the ce is a variable, we mask +* and get only the primary values no shifting to quartenary is required since * all primary values less than variabletop will need to be masked off anyway. -* If the end character is composite and the pattern ce does not match the text -* ce, we skip it until we find a match in the end composite character or when +* If the end character is composite and the pattern ce does not match the text +* ce, we skip it until we find a match in the end composite character or when * it has passed the character. This is so that we can match pattern "a" with -* the text "\u00e6" +* the text "\u00e6" * @param strsrch string search data * @param status error status if any * @return true if an exact match is found, false otherwise @@ -213,7 +207,7 @@ UBool usearch_handleNextExact(UStringSearch *strsrch, UErrorCode *status); /** * Canonical matches. -* According to the definition, matches found here will include the whole span +* According to the definition, matches found here will include the whole span * of beginning and ending accents if it overlaps that region. * @param strsrch string search data * @param status error status if any @@ -234,14 +228,14 @@ UBool usearch_handlePreviousExact(UStringSearch *strsrch, UErrorCode *status); /** * Canonical matches. -* According to the definition, matches found here will include the whole span +* According to the definition, matches found here will include the whole span * of beginning and ending accents if it overlaps that region. * @param strsrch string search data * @param status error status if any * @return true if a canonical match is found, false otherwise */ U_CFUNC -UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, +UBool usearch_handlePreviousCanonical(UStringSearch *strsrch, UErrorCode *status); #endif /* #if !UCONFIG_NO_COLLATION */ diff --git a/deps/icu-small/source/i18n/utf16collationiterator.cpp b/deps/icu-small/source/i18n/utf16collationiterator.cpp index 7598b0ee521f6e..f1bdfabe738b0f 100644 --- a/deps/icu-small/source/i18n/utf16collationiterator.cpp +++ b/deps/icu-small/source/i18n/utf16collationiterator.cpp @@ -37,9 +37,9 @@ UTF16CollationIterator::UTF16CollationIterator(const UTF16CollationIterator &oth UTF16CollationIterator::~UTF16CollationIterator() {} -UBool +bool UTF16CollationIterator::operator==(const CollationIterator &other) const { - if(!CollationIterator::operator==(other)) { return FALSE; } + if(!CollationIterator::operator==(other)) { return false; } const UTF16CollationIterator &o = static_cast(other); // Compare the iterator state but not the text: Assume that the caller does that. return (pos - start) == (o.pos - o.start); @@ -171,14 +171,14 @@ FCDUTF16CollationIterator::FCDUTF16CollationIterator(const FCDUTF16CollationIter FCDUTF16CollationIterator::~FCDUTF16CollationIterator() {} -UBool +bool FCDUTF16CollationIterator::operator==(const CollationIterator &other) const { // Skip the UTF16CollationIterator and call its parent. - if(!CollationIterator::operator==(other)) { return FALSE; } + if(!CollationIterator::operator==(other)) { return false; } const FCDUTF16CollationIterator &o = static_cast(other); // Compare the iterator state but not the text: Assume that the caller does that. - if(checkDir != o.checkDir) { return FALSE; } - if(checkDir == 0 && (start == segmentStart) != (o.start == o.segmentStart)) { return FALSE; } + if(checkDir != o.checkDir) { return false; } + if(checkDir == 0 && (start == segmentStart) != (o.start == o.segmentStart)) { return false; } if(checkDir != 0 || start == segmentStart) { return (pos - rawStart) == (o.pos - o.rawStart); } else { diff --git a/deps/icu-small/source/i18n/utf16collationiterator.h b/deps/icu-small/source/i18n/utf16collationiterator.h index 6305d81c30c66b..6db70511b0d54a 100644 --- a/deps/icu-small/source/i18n/utf16collationiterator.h +++ b/deps/icu-small/source/i18n/utf16collationiterator.h @@ -42,11 +42,11 @@ class U_I18N_API UTF16CollationIterator : public CollationIterator { virtual ~UTF16CollationIterator(); - virtual UBool operator==(const CollationIterator &other) const; + virtual bool operator==(const CollationIterator &other) const override; - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; void setText(const UChar *s, const UChar *lim) { reset(); @@ -54,9 +54,9 @@ class U_I18N_API UTF16CollationIterator : public CollationIterator { limit = lim; } - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: // Copy constructor only for subclasses which set the pointers. @@ -64,15 +64,15 @@ class U_I18N_API UTF16CollationIterator : public CollationIterator { : CollationIterator(other), start(NULL), pos(NULL), limit(NULL) {} - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UChar handleGetTrailSurrogate(); + virtual UChar handleGetTrailSurrogate() override; - virtual UBool foundNULTerminator(); + virtual UBool foundNULTerminator() override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; // UTF-16 string pointers. // limit can be NULL for NUL-terminated strings. @@ -95,24 +95,24 @@ class U_I18N_API FCDUTF16CollationIterator : public UTF16CollationIterator { virtual ~FCDUTF16CollationIterator(); - virtual UBool operator==(const CollationIterator &other) const; + virtual bool operator==(const CollationIterator &other) const override; - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UBool foundNULTerminator(); + virtual UBool foundNULTerminator() override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; private: /** diff --git a/deps/icu-small/source/i18n/utf8collationiterator.h b/deps/icu-small/source/i18n/utf8collationiterator.h index 9059e72dcf9e63..09cfce4369f3f9 100644 --- a/deps/icu-small/source/i18n/utf8collationiterator.h +++ b/deps/icu-small/source/i18n/utf8collationiterator.h @@ -40,13 +40,13 @@ class U_I18N_API UTF8CollationIterator : public CollationIterator { virtual ~UTF8CollationIterator(); - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: /** @@ -59,15 +59,15 @@ class U_I18N_API UTF8CollationIterator : public CollationIterator { * Valid lead surrogates are returned from inside a normalized text segment, * where handleGetTrailSurrogate() will return the matching trail surrogate. */ - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UBool foundNULTerminator(); + virtual UBool foundNULTerminator() override; - virtual UBool forbidSurrogateCodePoints() const; + virtual UBool forbidSurrogateCodePoints() const override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; const uint8_t *u8; int32_t pos; @@ -87,24 +87,24 @@ class U_I18N_API FCDUTF8CollationIterator : public UTF8CollationIterator { virtual ~FCDUTF8CollationIterator(); - virtual void resetToOffset(int32_t newOffset); + virtual void resetToOffset(int32_t newOffset) override; - virtual int32_t getOffset() const; + virtual int32_t getOffset() const override; - virtual UChar32 nextCodePoint(UErrorCode &errorCode); + virtual UChar32 nextCodePoint(UErrorCode &errorCode) override; - virtual UChar32 previousCodePoint(UErrorCode &errorCode); + virtual UChar32 previousCodePoint(UErrorCode &errorCode) override; protected: - virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode); + virtual uint32_t handleNextCE32(UChar32 &c, UErrorCode &errorCode) override; - virtual UChar handleGetTrailSurrogate(); + virtual UChar handleGetTrailSurrogate() override; - virtual UBool foundNULTerminator(); + virtual UBool foundNULTerminator() override; - virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void forwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; - virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode); + virtual void backwardNumCodePoints(int32_t num, UErrorCode &errorCode) override; private: UBool nextHasLccc() const; diff --git a/deps/icu-small/source/i18n/utmscale.cpp b/deps/icu-small/source/i18n/utmscale.cpp index 461985937acca4..7bf6eec331a13a 100644 --- a/deps/icu-small/source/i18n/utmscale.cpp +++ b/deps/icu-small/source/i18n/utmscale.cpp @@ -57,7 +57,7 @@ U_CAPI int64_t U_EXPORT2 utmscale_fromInt64(int64_t otherTime, UDateTimeScale timeScale, UErrorCode *status) { const int64_t *data; - + if (status == NULL || U_FAILURE(*status)) { return 0; } @@ -73,7 +73,7 @@ utmscale_fromInt64(int64_t otherTime, UDateTimeScale timeScale, UErrorCode *stat *status = U_ILLEGAL_ARGUMENT_ERROR; return 0; } - + return (otherTime + data[UTSV_EPOCH_OFFSET_VALUE]) * data[UTSV_UNITS_VALUE]; } @@ -81,7 +81,7 @@ U_CAPI int64_t U_EXPORT2 utmscale_toInt64(int64_t universalTime, UDateTimeScale timeScale, UErrorCode *status) { const int64_t *data; - + if (status == NULL || U_FAILURE(*status)) { return 0; } @@ -97,19 +97,19 @@ utmscale_toInt64(int64_t universalTime, UDateTimeScale timeScale, UErrorCode *st *status = U_ILLEGAL_ARGUMENT_ERROR; return 0; } - + if (universalTime < 0) { if (universalTime < data[UTSV_MIN_ROUND_VALUE]) { return (universalTime + data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_PLUS_1_VALUE]; } - + return (universalTime - data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_VALUE]; } - + if (universalTime > data[UTSV_MAX_ROUND_VALUE]) { return (universalTime - data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_MINUS_1_VALUE]; } - + return (universalTime + data[UTSV_UNITS_ROUND_VALUE]) / data[UTSV_UNITS_VALUE] - data[UTSV_EPOCH_OFFSET_VALUE]; } diff --git a/deps/icu-small/source/i18n/utrans.cpp b/deps/icu-small/source/i18n/utrans.cpp index 31070dd43fbe4e..1cbba81d658265 100644 --- a/deps/icu-small/source/i18n/utrans.cpp +++ b/deps/icu-small/source/i18n/utrans.cpp @@ -52,13 +52,13 @@ class ReplaceableGlue : public Replaceable { virtual void handleReplaceBetween(int32_t start, int32_t limit, - const UnicodeString& text); + const UnicodeString& text) override; virtual void extractBetween(int32_t start, int32_t limit, - UnicodeString& target) const; + UnicodeString& target) const override; - virtual void copy(int32_t start, int32_t limit, int32_t dest); + virtual void copy(int32_t start, int32_t limit, int32_t dest) override; // virtual Replaceable *clone() const { return NULL; } same as default @@ -67,7 +67,7 @@ class ReplaceableGlue : public Replaceable { * * @draft ICU 2.2 */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -78,11 +78,11 @@ class ReplaceableGlue : public Replaceable { protected: - virtual int32_t getLength() const; + virtual int32_t getLength() const override; - virtual UChar getCharAt(int32_t offset) const; + virtual UChar getCharAt(int32_t offset) const override; - virtual UChar32 getChar32At(int32_t offset) const; + virtual UChar32 getChar32At(int32_t offset) const override; }; UOBJECT_DEFINE_RTTI_IMPLEMENTATION(ReplaceableGlue) @@ -147,11 +147,11 @@ utrans_openU(const UChar *id, return NULL; } UParseError temp; - + if(parseError == NULL){ parseError = &temp; } - + UnicodeString ID(idLength<0, id, idLength); // r-o alias if(rules==NULL){ @@ -159,7 +159,7 @@ utrans_openU(const UChar *id, Transliterator *trans = NULL; trans = Transliterator::createInstance(ID, dir, *parseError, *status); - + if(U_FAILURE(*status)){ return NULL; } @@ -170,8 +170,8 @@ utrans_openU(const UChar *id, rulesLength); // r-o alias Transliterator *trans = NULL; - trans = Transliterator::createFromRules(ID, ruleStr, dir, *parseError, *status); - if(U_FAILURE(*status)) { + trans = Transliterator::createFromRules(ID, ruleStr, dir, *parseError, *status); + if(U_FAILURE(*status)) { return NULL; } @@ -183,7 +183,7 @@ U_CAPI UTransliterator* U_EXPORT2 utrans_open(const char* id, UTransDirection dir, const UChar* rules, /* may be Null */ - int32_t rulesLength, /* -1 if null-terminated */ + int32_t rulesLength, /* -1 if null-terminated */ UParseError* parseError, /* may be Null */ UErrorCode* status) { UnicodeString ID(id, -1, US_INV); // use invariant converter @@ -449,7 +449,7 @@ utrans_transUChars(const UTransliterator* trans, *status = U_ILLEGAL_ARGUMENT_ERROR; return; } - + int32_t textLen = (textLength == NULL || *textLength < 0) ? u_strlen(text) : *textLength; // writeable alias: for this ct, len CANNOT be -1 (why?) diff --git a/deps/icu-small/source/i18n/vtzone.cpp b/deps/icu-small/source/i18n/vtzone.cpp index 94fa6a4158ae1d..9111e08848f99a 100644 --- a/deps/icu-small/source/i18n/vtzone.cpp +++ b/deps/icu-small/source/i18n/vtzone.cpp @@ -114,7 +114,7 @@ static int32_t parseAsciiDigits(const UnicodeString& str, int32_t start, int32_t } num = 10 * num + digit; } - return sign * num; + return sign * num; } static UnicodeString& appendAsciiDigits(int32_t number, uint8_t length, UnicodeString& str) { @@ -240,7 +240,7 @@ static UDate parseDateTimeString(const UnicodeString& str, int32_t offset, UErro break; } if (str.charAt(8) != 0x0054) { - // charcter "T" must be used for separating date and time + // character "T" must be used for separating date and time break; } if (length == 16) { @@ -369,9 +369,9 @@ static void getDefaultTZName(const UnicodeString &tzid, UBool isDST, UnicodeStri /* * Parse individual RRULE - * + * * On return - - * + * * month calculated by BYMONTH-1, or -1 when not found * dow day of week in BYDAY, or 0 when not found * wim day of week ordinal number in BYDAY, or 0 when not found @@ -479,7 +479,7 @@ static void parseRRULE(const UnicodeString& rrule, int32_t& month, int32_t& dow, goto rruleParseError; } } else if (attr.compare(ICAL_BYMONTHDAY, -1) == 0) { - // Note: BYMONTHDAY may contain multiple days delimitted by comma + // Note: BYMONTHDAY may contain multiple days delimited by comma // // A value of BYMONTHDAY could be negative, for example, -1 means // the last day in a month @@ -626,7 +626,7 @@ static TimeZoneRule* createRuleByRRULE(const UnicodeString& zonename, int rawOff if (tmp_until > until) { until = tmp_until; } - + // Check if BYMONTH + BYMONTHDAY + BYDAY rule if (tmp_month == -1 || tmp_dayOfWeek == 0 || tmp_daysCount == 0) { goto unsupportedRRule; @@ -663,7 +663,7 @@ static TimeZoneRule* createRuleByRRULE(const UnicodeString& zonename, int rawOff goto unsupportedRRule; } } - // If ealier month, go through days to find the earliest day + // If earlier month, go through days to find the earliest day if (tmp_month == earliestMonth) { for (j = 0; j < tmp_daysCount; j++) { tmp_days[j] = tmp_days[j] > 0 ? tmp_days[j] : MONTHLENGTH[tmp_month] + tmp_days[j] + 1; @@ -881,7 +881,7 @@ static DateTimeRule *toWallTimeRule(const DateTimeRule *rule, int32_t rawOffset, } /* - * Minumum implementations of stream writer/reader, writing/reading + * Minimum implementations of stream writer/reader, writing/reading * UnicodeString. For now, we do not want to introduce the dependency * on the ICU I/O stream in this module. But we want to keep the code * equivalent to the ICU4J implementation, which utilizes java.io.Writer/ @@ -983,7 +983,7 @@ VTimeZone::VTimeZone(const VTimeZone& source) if (U_SUCCESS(status)) { for (int32_t i = 0; i < size; i++) { UnicodeString *line = (UnicodeString*)source.vtzlines->elementAt(i); - vtzlines->addElement(line->clone(), status); + vtzlines->addElementX(line->clone(), status); if (U_FAILURE(status)) { break; } @@ -1028,7 +1028,7 @@ VTimeZone::operator=(const VTimeZone& right) { if (vtzlines != nullptr && U_SUCCESS(status)) { for (int32_t i = 0; i < size; i++) { UnicodeString *line = (UnicodeString*)right.vtzlines->elementAt(i); - vtzlines->addElement(line->clone(), status); + vtzlines->addElementX(line->clone(), status); if (U_FAILURE(status)) { break; } @@ -1047,13 +1047,13 @@ VTimeZone::operator=(const VTimeZone& right) { return *this; } -UBool +bool VTimeZone::operator==(const TimeZone& that) const { if (this == &that) { - return TRUE; + return true; } if (typeid(*this) != typeid(that) || !BasicTimeZone::operator==(that)) { - return FALSE; + return false; } VTimeZone *vtz = (VTimeZone*)&that; if (*tz == *(vtz->tz) @@ -1061,12 +1061,12 @@ VTimeZone::operator==(const TimeZone& that) const { && lastmod == vtz->lastmod /* && olsonzid = that.olsonzid */ /* && icutzver = that.icutzver */) { - return TRUE; + return true; } - return FALSE; + return false; } -UBool +bool VTimeZone::operator!=(const TimeZone& that) const { return !operator==(that); } @@ -1293,7 +1293,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupVtzlines; } - vtzlines->addElement(element.getAlias(), status); + vtzlines->addElementX(element.getAlias(), status); if (U_FAILURE(status)) { goto cleanupVtzlines; } @@ -1315,7 +1315,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupVtzlines; } - vtzlines->addElement(element.getAlias(), status); + vtzlines->addElementX(element.getAlias(), status); if (U_FAILURE(status)) { goto cleanupVtzlines; } @@ -1338,7 +1338,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupVtzlines; } - vtzlines->addElement(element.getAlias(), status); + vtzlines->addElementX(element.getAlias(), status); if (U_FAILURE(status)) { goto cleanupVtzlines; } @@ -1352,7 +1352,7 @@ VTimeZone::load(VTZReader& reader, UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupVtzlines; } - vtzlines->addElement(element.getAlias(), status); + vtzlines->addElementX(element.getAlias(), status); if (U_FAILURE(status)) { goto cleanupVtzlines; } @@ -1433,7 +1433,7 @@ VTimeZone::parse(UErrorCode& status) { } // Set the deleter to remove TimeZoneRule vectors to avoid memory leaks due to unowned TimeZoneRules. rules->setDeleter(deleteTimeZoneRule); - + dates = new UVector(uprv_deleteUObject, uhash_compareUnicodeString, status); if (dates == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; @@ -1441,7 +1441,7 @@ VTimeZone::parse(UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupParse; } - + for (n = 0; n < vtzlines->size(); n++) { UnicodeString *line = (UnicodeString*)vtzlines->elementAt(n); int32_t valueSep = line->indexOf(COLON); @@ -1527,7 +1527,7 @@ VTimeZone::parse(UErrorCode& status) { if (dstr == nullptr) { status = U_MEMORY_ALLOCATION_ERROR; } else { - dates->addElement(dstr, status); + dates->addElementX(dstr, status); } if (U_FAILURE(status)) { goto cleanupParse; @@ -1544,7 +1544,7 @@ VTimeZone::parse(UErrorCode& status) { if (U_FAILURE(status)) { goto cleanupParse; } - dates->addElement(element.getAlias(), status); + dates->addElementX(element.getAlias(), status); if (U_FAILURE(status)) { goto cleanupParse; } @@ -1582,7 +1582,7 @@ VTimeZone::parse(UErrorCode& status) { } else { // This is rare case.. just use 1 hour DST savings rawOffset = toOffset - DEF_DSTSAVINGS; - dstSavings = DEF_DSTSAVINGS; + dstSavings = DEF_DSTSAVINGS; } } else { rawOffset = toOffset; @@ -1609,7 +1609,7 @@ VTimeZone::parse(UErrorCode& status) { if (startAvail && actualStart < firstStart) { // save from offset information for the earliest rule firstStart = actualStart; - // If this is STD, assume the time before this transtion + // If this is STD, assume the time before this transition // is DST when the difference is 1 hour. This might not be // accurate, but VTIMEZONE data does not have such info. if (dstSavings > 0) { @@ -1626,7 +1626,7 @@ VTimeZone::parse(UErrorCode& status) { } } } - rules->addElement(rule, status); + rules->addElementX(rule, status); if (U_FAILURE(status)) { goto cleanupParse; } @@ -1732,7 +1732,7 @@ VTimeZone::parse(UErrorCode& status) { goto cleanupParse; } rules->removeElementAt(finalRuleIdx); - rules->addElement(newRule, status); + rules->addElementX(newRule, status); if (U_FAILURE(status)) { delete newRule; goto cleanupParse; @@ -1809,7 +1809,7 @@ VTimeZone::write(VTZWriter& writer, UErrorCode& status) const { icutzprop.append(u'['); icutzprop.append(icutzver); icutzprop.append(u']'); - customProps.addElement(&icutzprop, status); + customProps.addElementX(&icutzprop, status); } writeZone(writer, *tz, &customProps, status); } @@ -1862,7 +1862,7 @@ VTimeZone::write(UDate start, VTZWriter& writer, UErrorCode& status) const { icutzprop->append(ICU_TZINFO_PARTIAL, -1); appendMillis(start, *icutzprop); icutzprop->append((UChar)0x005D/*']'*/); - customProps.addElement(icutzprop, status); + customProps.addElementX(icutzprop, status); if (U_FAILURE(status)) { delete icutzprop; goto cleanupWritePartial; @@ -1876,10 +1876,7 @@ VTimeZone::write(UDate start, VTZWriter& writer, UErrorCode& status) const { delete initial; } if (transitionRules != nullptr) { - while (!transitionRules->isEmpty()) { - TimeZoneRule *tr = (TimeZoneRule*)transitionRules->orphanElementAt(0); - delete tr; - } + U_ASSERT(transitionRules->hasDeleter()); delete transitionRules; } } @@ -1897,23 +1894,25 @@ VTimeZone::writeSimple(UDate time, VTZWriter& writer, UErrorCode& status) const InitialTimeZoneRule *initial = nullptr; AnnualTimeZoneRule *std = nullptr, *dst = nullptr; getSimpleRulesNear(time, initial, std, dst, status); + LocalPointer lpInitial(initial); + LocalPointer lpStd(std); + LocalPointer lpDst(dst); if (U_SUCCESS(status)) { // Create a RuleBasedTimeZone with the subset rule getID(tzid); - RuleBasedTimeZone rbtz(tzid, initial); - if (std != nullptr && dst != nullptr) { - rbtz.addTransitionRule(std, status); - rbtz.addTransitionRule(dst, status); + RuleBasedTimeZone rbtz(tzid, lpInitial.orphan()); + if (lpStd.isValid() && lpDst.isValid()) { + rbtz.addTransitionRule(lpStd.orphan(), status); + rbtz.addTransitionRule(lpDst.orphan(), status); } if (U_FAILURE(status)) { - goto cleanupWriteSimple; + return; } if (olsonzid.length() > 0 && icutzver.length() > 0) { - UnicodeString *icutzprop = new UnicodeString(ICU_TZINFO_PROP); - if (icutzprop == nullptr) { - status = U_MEMORY_ALLOCATION_ERROR; - goto cleanupWriteSimple; + LocalPointer icutzprop(new UnicodeString(ICU_TZINFO_PROP), status); + if (U_FAILURE(status)) { + return; } icutzprop->append(olsonzid); icutzprop->append((UChar)0x005B/*'['*/); @@ -1921,26 +1920,10 @@ VTimeZone::writeSimple(UDate time, VTZWriter& writer, UErrorCode& status) const icutzprop->append(ICU_TZINFO_SIMPLE, -1); appendMillis(time, *icutzprop); icutzprop->append((UChar)0x005D/*']'*/); - customProps.addElement(icutzprop, status); - if (U_FAILURE(status)) { - delete icutzprop; - goto cleanupWriteSimple; - } + customProps.adoptElement(icutzprop.orphan(), status); } writeZone(writer, rbtz, &customProps, status); } - return; - -cleanupWriteSimple: - if (initial != nullptr) { - delete initial; - } - if (std != nullptr) { - delete std; - } - if (dst != nullptr) { - delete dst; - } } void @@ -2048,7 +2031,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, goto cleanupWriteZone; } } - } + } if (!sameRule) { // Reset this DST information dstName = name; @@ -2130,9 +2113,9 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, isDst = (dst != 0); UnicodeString tzid; basictz.getID(tzid); - getDefaultTZName(tzid, isDst, name); + getDefaultTZName(tzid, isDst, name); writeZonePropsByTime(w, isDst, name, - offset, offset, DEF_TZSTARTTIME - offset, FALSE, status); + offset, offset, DEF_TZSTARTTIME - offset, FALSE, status); if (U_FAILURE(status)) { goto cleanupWriteZone; } @@ -2220,7 +2203,7 @@ VTimeZone::writeZone(VTZWriter& w, BasicTimeZone& basictz, goto cleanupWriteZone; } } - } + } } writeFooter(w, status); @@ -2411,7 +2394,7 @@ VTimeZone::writeZonePropsByDOW_GEQ_DOM(VTZWriter& writer, UBool isDst, const Uni // Check if all days are in the same month int32_t startDay = dayOfMonth; int32_t currentMonthDays = 7; - + if (dayOfMonth <= 0) { // The start day is in previous month int32_t prevMonthDays = 1 - dayOfMonth; @@ -2437,7 +2420,7 @@ VTimeZone::writeZonePropsByDOW_GEQ_DOM(VTZWriter& writer, UBool isDst, const Uni currentMonthDays -= nextMonthDays; int32_t nextMonth = (month + 1) > 11 ? 0 : month + 1; - + writeZonePropsByDOW_GEQ_DOM_sub(writer, nextMonth, 1, dayOfWeek, nextMonthDays, MAX_MILLIS /* Do not use UNTIL */, fromOffset, status); if (U_FAILURE(status)) { @@ -2521,7 +2504,7 @@ VTimeZone::writeZonePropsByDOW_LEQ_DOM(VTZWriter& writer, UBool isDst, const Uni writeZonePropsByDOW(writer, isDst, zonename, fromOffset, toOffset, month, -1*((MONTHLENGTH[month] - dayOfMonth)/7 + 1), dayOfWeek, startTime, untilTime, status); } else if (month == UCAL_FEBRUARY && dayOfMonth == 29) { - // Specical case for February + // Special case for February writeZonePropsByDOW(writer, isDst, zonename, fromOffset, toOffset, UCAL_FEBRUARY, -1, dayOfWeek, startTime, untilTime, status); } else { @@ -2627,12 +2610,12 @@ VTimeZone::beginZoneProps(VTZWriter& writer, UBool isDst, const UnicodeString& z writer.write(COLON); writer.write(zonename); writer.write(ICAL_NEWLINE); - + // DTSTART writer.write(ICAL_DTSTART); writer.write(COLON); writer.write(getDateTimeString(startTime + fromOffset, dstr)); - writer.write(ICAL_NEWLINE); + writer.write(ICAL_NEWLINE); } /* diff --git a/deps/icu-small/source/i18n/vzone.cpp b/deps/icu-small/source/i18n/vzone.cpp index 6db3ba04c581f7..7e3a5544fd5e2f 100644 --- a/deps/icu-small/source/i18n/vzone.cpp +++ b/deps/icu-small/source/i18n/vzone.cpp @@ -8,7 +8,7 @@ */ /** - * \file + * \file * \brief C API: VTimeZone classes */ @@ -30,7 +30,7 @@ vzone_openID(const UChar* ID, int32_t idLength){ UnicodeString s(idLength==-1, ID, idLength); return (VZone*) (VTimeZone::createVTimeZoneByID(s)); } - + U_CAPI VZone* U_EXPORT2 vzone_openData(const UChar* vtzdata, int32_t vtzdataLength, UErrorCode& status) { UnicodeString s(vtzdataLength==-1, vtzdata, vtzdataLength); @@ -59,7 +59,7 @@ vzone_getTZURL(VZone* zone, UChar* & url, int32_t & urlLength) { urlLength = s.length(); memcpy(url,s.getBuffer(),urlLength); - + return b; } diff --git a/deps/icu-small/source/i18n/vzone.h b/deps/icu-small/source/i18n/vzone.h index 2e8433908c0330..d1b6d8d820457c 100644 --- a/deps/icu-small/source/i18n/vzone.h +++ b/deps/icu-small/source/i18n/vzone.h @@ -86,7 +86,7 @@ vzone_equals(const VZone* zone1, const VZone* zone2); /** * Gets the RFC2445 TZURL property value. When a vzone instance was - * created from VTIMEZONE data, the initial value is set by the TZURL + * created from VTIMEZONE data, the initial value is set by the TZURL * property value in the data. Otherwise, the initial value is not set. * @param zone, the vzone to use * @param url Receives the RFC2445 TZURL property value. @@ -107,8 +107,8 @@ vzone_setTZURL(VZone* zone, UChar* url, int32_t urlLength); /** * Gets the RFC2445 LAST-MODIFIED property value. When a vzone instance - * was created from VTIMEZONE data, the initial value is set by the - * LAST-MODIFIED property value in the data. Otherwise, the initial value + * was created from VTIMEZONE data, the initial value is set by the + * LAST-MODIFIED property value in the data. Otherwise, the initial value * is not set. * @param zone, the vzone to use * @param lastModified Receives the last modified date. @@ -323,7 +323,7 @@ vzone_getPreviousTransition(VZone* zone, UDate base, UBool inclusive, ZTrans* re * Returns the number of TimeZoneRules which represents time transitions, * for this time zone, that is, all TimeZoneRules for this time zone except * InitialTimeZoneRule. The return value range is 0 or any positive value. - * @param zone, the vzone to use + * @param zone, the vzone to use * @param status Receives error status code. * @return The number of TimeZoneRules representing time transitions. */ diff --git a/deps/icu-small/source/i18n/windtfmt.cpp b/deps/icu-small/source/i18n/windtfmt.cpp index b5cb8f367b662c..f6a990ea29e609 100644 --- a/deps/icu-small/source/i18n/windtfmt.cpp +++ b/deps/icu-small/source/i18n/windtfmt.cpp @@ -141,7 +141,7 @@ static UErrorCode GetEquivalentWindowsLocaleName(const Locale& locale, UnicodeSt // This means that it will fail for locales where ICU has a completely different // name (like ku vs ckb), and it will also not work for alternate sort locale // names like "de-DE-u-co-phonebk". - + // TODO: We could add some sort of exception table for cases like ku vs ckb. int length = ResolveLocaleName(bcp47Tag, windowsLocaleName, UPRV_LENGTHOF(windowsLocaleName)); @@ -167,7 +167,7 @@ Win32DateFormat::Win32DateFormat(DateFormat::EStyle timeStyle, DateFormat::EStyl // Note: In the previous code, it would look up the LCID for the locale, and if // the locale was not recognized then it would get an LCID of 0, which is a // synonym for LOCALE_USER_DEFAULT on Windows. - // If the above method fails, then fWindowsLocaleName will remain as nullptr, and + // If the above method fails, then fWindowsLocaleName will remain as nullptr, and // then we will pass nullptr to API GetLocaleInfoEx, which is the same as passing // LOCALE_USER_DEFAULT. @@ -406,3 +406,4 @@ U_NAMESPACE_END #endif /* #if !UCONFIG_NO_FORMATTING */ #endif // U_PLATFORM_USES_ONLY_WIN32_API + diff --git a/deps/icu-small/source/i18n/windtfmt.h b/deps/icu-small/source/i18n/windtfmt.h index f13a1ae687c342..7fe7f68f450e84 100644 --- a/deps/icu-small/source/i18n/windtfmt.h +++ b/deps/icu-small/source/i18n/windtfmt.h @@ -27,7 +27,7 @@ #include "unicode/locid.h" /** - * \file + * \file * \brief C++ API: Format dates using Windows API. */ diff --git a/deps/icu-small/source/i18n/winnmfmt.cpp b/deps/icu-small/source/i18n/winnmfmt.cpp index 2e44631c85074e..8b2a9a4f958536 100644 --- a/deps/icu-small/source/i18n/winnmfmt.cpp +++ b/deps/icu-small/source/i18n/winnmfmt.cpp @@ -213,7 +213,7 @@ Win32NumberFormat::Win32NumberFormat(const Locale &locale, UBool currency, UErro // Note: In the previous code, it would look up the LCID for the locale, and if // the locale was not recognized then it would get an LCID of 0, which is a // synonym for LOCALE_USER_DEFAULT on Windows. - // If the above method fails, then fWindowsLocaleName will remain as nullptr, and + // If the above method fails, then fWindowsLocaleName will remain as nullptr, and // then we will pass nullptr to API GetLocaleInfoEx, which is the same as passing // LOCALE_USER_DEFAULT. @@ -276,7 +276,7 @@ Win32NumberFormat &Win32NumberFormat::operator=(const Win32NumberFormat &other) this->fLCID = other.fLCID; this->fFractionDigitsSet = other.fFractionDigitsSet; this->fWindowsLocaleName = other.fWindowsLocaleName == NULL ? NULL : new UnicodeString(*other.fWindowsLocaleName); - + const wchar_t *localeName = nullptr; if (fWindowsLocaleName != nullptr) diff --git a/deps/icu-small/source/i18n/winnmfmt.h b/deps/icu-small/source/i18n/winnmfmt.h index 8cf59ccf48d740..99571d2013824d 100644 --- a/deps/icu-small/source/i18n/winnmfmt.h +++ b/deps/icu-small/source/i18n/winnmfmt.h @@ -27,7 +27,7 @@ #if !UCONFIG_NO_FORMATTING /** - * \file + * \file * \brief C++ API: Format numbers using Windows API. */ diff --git a/deps/icu-small/source/i18n/wintzimpl.cpp b/deps/icu-small/source/i18n/wintzimpl.cpp index 211d3564029db8..a6d93300638845 100644 --- a/deps/icu-small/source/i18n/wintzimpl.cpp +++ b/deps/icu-small/source/i18n/wintzimpl.cpp @@ -13,7 +13,7 @@ #include "unicode/utypes.h" -#if U_PLATFORM_USES_ONLY_WIN32_API && !UCONFIG_NO_FORMATTING +#if U_PLATFORM_USES_ONLY_WIN32_API && !UCONFIG_NO_FORMATTING #include "wintzimpl.h" @@ -51,7 +51,7 @@ static UBool getSystemTimeInformation(TimeZone *tz, SYSTEMTIME &daylightDate, SY standardBias = 0; daylightBias = 0; // Do not use DST. Set 0 to all stadardDate/daylightDate fields - standardDate.wYear = standardDate.wMonth = standardDate.wDayOfWeek = standardDate.wDay = + standardDate.wYear = standardDate.wMonth = standardDate.wDayOfWeek = standardDate.wDay = standardDate.wHour = standardDate.wMinute = standardDate.wSecond = standardDate.wMilliseconds = 0; daylightDate.wYear = daylightDate.wMonth = daylightDate.wDayOfWeek = daylightDate.wDay = daylightDate.wHour = daylightDate.wMinute = daylightDate.wSecond = daylightDate.wMilliseconds = 0; @@ -121,7 +121,7 @@ static UBool getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar UBool result = FALSE; UnicodeString id = UnicodeString(icuid, length); TimeZone *tz = TimeZone::createTimeZone(id); - + if (tz != NULL) { int32_t bias; int32_t daylightBias; @@ -145,7 +145,7 @@ static UBool getWindowsTimeZoneInfo(TIME_ZONE_INFORMATION *zoneInfo, const UChar } /* - * Given the timezone icuid, fill in zoneInfo by calling auxiliary functions that creates a timezone and extract the + * Given the timezone icuid, fill in zoneInfo by calling auxiliary functions that creates a timezone and extract the * information to put into zoneInfo. This includes bias and standard time date and daylight saving date. */ U_CAPI UBool U_EXPORT2 diff --git a/deps/icu-small/source/i18n/wintzimpl.h b/deps/icu-small/source/i18n/wintzimpl.h index c36f2ad5f5f057..772ea95bc52f3f 100644 --- a/deps/icu-small/source/i18n/wintzimpl.h +++ b/deps/icu-small/source/i18n/wintzimpl.h @@ -18,7 +18,7 @@ #if U_PLATFORM_USES_ONLY_WIN32_API /** - * \file + * \file * \brief C API: Utilities for dealing w/ Windows time zones. */ U_CDECL_BEGIN diff --git a/deps/icu-small/source/i18n/zonemeta.cpp b/deps/icu-small/source/i18n/zonemeta.cpp index 72c590f424723f..b8afa4760f1823 100644 --- a/deps/icu-small/source/i18n/zonemeta.cpp +++ b/deps/icu-small/source/i18n/zonemeta.cpp @@ -477,11 +477,11 @@ ZoneMeta::getCanonicalCountry(const UnicodeString &tzid, UnicodeString &country, UErrorCode ec = U_ZERO_ERROR; if (singleZone) { if (!gSingleZoneCountries->contains((void*)region)) { - gSingleZoneCountries->addElement((void*)region, ec); + gSingleZoneCountries->addElementX((void*)region, ec); } } else { if (!gMultiZonesCountries->contains((void*)region)) { - gMultiZonesCountries->addElement((void*)region, ec); + gMultiZonesCountries->addElementX((void*)region, ec); } } } @@ -696,7 +696,7 @@ ZoneMeta::createMetazoneMappings(const UnicodeString &tzid) { } } - mzMappings->addElement(entry, status); + mzMappings->addElementX(entry, status); if (U_FAILURE(status)) { break; } @@ -801,7 +801,7 @@ static void U_CALLCONV initAvailableMetaZoneIDs () { uMzID[len] = 0; UnicodeString *usMzID = new UnicodeString(uMzID); if (uhash_get(gMetaZoneIDTable, usMzID) == NULL) { - gMetaZoneIDs->addElement((void *)uMzID, status); + gMetaZoneIDs->addElementX((void *)uMzID, status); uhash_put(gMetaZoneIDTable, (void *)usMzID, (void *)uMzID, &status); } else { uprv_free(uMzID); diff --git a/deps/icu-small/source/i18n/zonemeta.h b/deps/icu-small/source/i18n/zonemeta.h index a5a446d8ccdad9..f21399342b9e67 100644 --- a/deps/icu-small/source/i18n/zonemeta.h +++ b/deps/icu-small/source/i18n/zonemeta.h @@ -40,7 +40,7 @@ class U_I18N_API ZoneMeta { /** * Return the canonical id for this tzid defined by CLDR, which might be the id itself. - * This overload method returns a persistent const UChar*, which is guranteed to persist + * This overload method returns a persistent const UChar*, which is guaranteed to persist * (a pointer to a resource). If the given system tzid is not known, U_ILLEGAL_ARGUMENT_ERROR * is set in the status. * @param tzid Zone ID diff --git a/deps/icu-small/source/i18n/zrule.cpp b/deps/icu-small/source/i18n/zrule.cpp index c13411fc8e3f49..bdf84965b5f420 100644 --- a/deps/icu-small/source/i18n/zrule.cpp +++ b/deps/icu-small/source/i18n/zrule.cpp @@ -8,7 +8,7 @@ */ /** - * \file + * \file * \brief C API: Time zone rule classes */ @@ -115,25 +115,25 @@ izrule_isEquivalentTo(IZRule* rule1, IZRule* rule2) { } U_CAPI UBool U_EXPORT2 -izrule_getFirstStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, +izrule_getFirstStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) { return ((const InitialTimeZoneRule*)rule)->InitialTimeZoneRule::getFirstStart(prevRawOffset, prevDSTSavings, result); } U_CAPI UBool U_EXPORT2 -izrule_getFinalStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, +izrule_getFinalStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result) { return ((InitialTimeZoneRule*)rule)->InitialTimeZoneRule::getFinalStart(prevRawOffset, prevDSTSavings, result); } U_CAPI UBool U_EXPORT2 -izrule_getNextStart(IZRule* rule, UDate base, int32_t prevRawOffset, +izrule_getNextStart(IZRule* rule, UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate& result) { return ((InitialTimeZoneRule*)rule)->InitialTimeZoneRule::getNextStart(base, prevRawOffset, prevDSTSavings, inclusive, result); } U_CAPI UBool U_EXPORT2 -izrule_getPreviousStart(IZRule* rule, UDate base, int32_t prevRawOffset, +izrule_getPreviousStart(IZRule* rule, UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate& result) { return ((InitialTimeZoneRule*)rule)->InitialTimeZoneRule::getPreviousStart(base, prevRawOffset, prevDSTSavings, inclusive, result); } diff --git a/deps/icu-small/source/i18n/zrule.h b/deps/icu-small/source/i18n/zrule.h index 272f954f06905b..f395ad4c3f3176 100644 --- a/deps/icu-small/source/i18n/zrule.h +++ b/deps/icu-small/source/i18n/zrule.h @@ -10,7 +10,7 @@ #define __ZRULE_H /** - * \file + * \file * \brief C API: Time zone rule classes */ @@ -195,12 +195,12 @@ izrule_isEquivalentTo(IZRule* rule1, IZRule* rule2); * "result" is unchanged. */ U_CAPI UBool U_EXPORT2 -izrule_getFirstStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, +izrule_getFirstStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result); /** * Gets the final time when this rule takes effect. - * @param rule The IZrule to use + * @param rule The IZrule to use * @param prevRawOffset The standard time offset from UTC before this rule * takes effect in milliseconds. * @param prevDSTSavings The amount of daylight saving offset from the @@ -210,7 +210,7 @@ izrule_getFirstStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings * "result" is unchanged. */ U_CAPI UBool U_EXPORT2 -izrule_getFinalStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, +izrule_getFinalStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings, UDate& result); /** @@ -228,7 +228,7 @@ izrule_getFinalStart(IZRule* rule, int32_t prevRawOffset, int32_t prevDSTSavings * "result" is unchanged. */ U_CAPI UBool U_EXPORT2 -izrule_getNextStart(IZRule* rule, UDate base, int32_t prevRawOffset, +izrule_getNextStart(IZRule* rule, UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate& result); /** @@ -246,7 +246,7 @@ izrule_getNextStart(IZRule* rule, UDate base, int32_t prevRawOffset, * "result" is unchanged. */ U_CAPI UBool U_EXPORT2 -izrule_getPreviousStart(IZRule* rule, UDate base, int32_t prevRawOffset, +izrule_getPreviousStart(IZRule* rule, UDate base, int32_t prevRawOffset, int32_t prevDSTSavings, UBool inclusive, UDate& result); diff --git a/deps/icu-small/source/i18n/ztrans.cpp b/deps/icu-small/source/i18n/ztrans.cpp index d2d93da1334b3e..9dbe9bb0b9426c 100644 --- a/deps/icu-small/source/i18n/ztrans.cpp +++ b/deps/icu-small/source/i18n/ztrans.cpp @@ -8,7 +8,7 @@ */ /** - * \file + * \file * \brief C API: Time zone transition classes */ diff --git a/deps/icu-small/source/i18n/ztrans.h b/deps/icu-small/source/i18n/ztrans.h index 8b63eb47e88bbb..b23bb4fc706e69 100644 --- a/deps/icu-small/source/i18n/ztrans.h +++ b/deps/icu-small/source/i18n/ztrans.h @@ -10,7 +10,7 @@ #define __ZTRANS_H /** - * \file + * \file * \brief C API: Time zone transition classes */ @@ -34,7 +34,7 @@ typedef struct ZTrans ZTrans; /** * Constructs a time zone transition with the time and the rules before/after * the transition. - * + * * @param time The time of transition in milliseconds since the base time. * @param from The time zone rule used before the transition. * @param to The time zone rule used after the transition. diff --git a/deps/icu-small/source/stubdata/BUILD b/deps/icu-small/source/stubdata/BUILD new file mode 100644 index 00000000000000..abb73519ec4b08 --- /dev/null +++ b/deps/icu-small/source/stubdata/BUILD @@ -0,0 +1,23 @@ +# © 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html + +# This file defines Bazel targets for the ICU4C "stubdata" library header and source files. + +load("@rules_cc//cc:defs.bzl", "cc_library") + +package( + default_visibility = ["//visibility:public"], +) + +# When compiling code in the `common` dir, the constant +# `U_COMMON_IMPLEMENTATION` needs to be defined. See +# https://unicode-org.github.io/icu/userguide/howtouseicu#c-with-your-own-build-system . + +cc_library( + name = "stubdata", + srcs = ["stubdata.cpp"], + deps = ["//icu4c/source/common:headers"], + local_defines = [ + "U_COMMON_IMPLEMENTATION", + ], +) diff --git a/deps/icu-small/source/stubdata/stubdata.cpp b/deps/icu-small/source/stubdata/stubdata.cpp index de49b9a733a66e..0fcab4faa82c0b 100644 --- a/deps/icu-small/source/stubdata/stubdata.cpp +++ b/deps/icu-small/source/stubdata/stubdata.cpp @@ -32,7 +32,7 @@ typedef struct { uint32_t count, reserved; /* const struct { - const char *const name; + const char *const name; const void *const data; } toc[1]; */ @@ -55,14 +55,14 @@ extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { #endif U_CHARSET_FAMILY, - sizeof(UChar), + sizeof(UChar), 0, /* reserved */ { /* data format identifier */ 0x54, 0x6f, 0x43, 0x50}, /* "ToCP" */ {1, 0, 0, 0}, /* format version major, minor, milli, micro */ {0, 0, 0, 0} /* dataVersion */ }, - {0,0,0,0,0,0,0,0}, /* Padding[8] */ + {0,0,0,0,0,0,0,0}, /* Padding[8] */ 0, /* count */ 0, /* Reserved */ { /* TOC structure */ @@ -72,3 +72,5 @@ extern "C" U_EXPORT const ICU_Data_Header U_ICUDATA_ENTRY_POINT = { /* } */ } }; + + diff --git a/deps/icu-small/source/tools/escapesrc/cptbl.h b/deps/icu-small/source/tools/escapesrc/cptbl.h index efaa9642e10e75..898e16c925d2f0 100644 --- a/deps/icu-small/source/tools/escapesrc/cptbl.h +++ b/deps/icu-small/source/tools/escapesrc/cptbl.h @@ -1,7 +1,7 @@ -// Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html +// Copyright (C) 2016 and later: Unicode, Inc. and others. License & terms of use: http://www.unicode.org/copyright.html // generated by tblgen. You weren't going to edit it by hand, were you? -static const char cp1047_8859_1[256] = { +static const char cp1047_8859_1[256] = { (char)0x00, /* 00 */ (char)0x01, /* 01 */ (char)0x02, /* 02 */ @@ -260,7 +260,7 @@ static const char cp1047_8859_1[256] = { (char)0x9F, /* FF */ }; -static const bool oldIllegal[256] = { +static const bool oldIllegal[256] = { false, /* U+0000 */ false, /* U+0001 */ false, /* U+0002 */ @@ -518,3 +518,4 @@ static const bool oldIllegal[256] = { false, /* U+00FE */ false, /* U+00FF */ }; + diff --git a/deps/icu-small/source/tools/escapesrc/escapesrc.cpp b/deps/icu-small/source/tools/escapesrc/escapesrc.cpp index a056098ecebca6..ce14022bfc13bc 100644 --- a/deps/icu-small/source/tools/escapesrc/escapesrc.cpp +++ b/deps/icu-small/source/tools/escapesrc/escapesrc.cpp @@ -37,7 +37,7 @@ * %.o: _%.cpp * $(COMPILE.cc) ... $@ $< * - * In the Makefiles, SKIP_ESCAPING=YES is used to prevent escapesrc.cpp + * In the Makefiles, SKIP_ESCAPING=YES is used to prevent escapesrc.cpp * from being itself escaped. */ @@ -136,7 +136,7 @@ bool appendUtf8(std::string &outstr, tmp[chars] = 0; unsigned int c; sscanf(tmp, "%X", &c); - UChar32 ch = c & 0x1FFFFF; + UChar32 ch = c & 0x1FFFFF; // now to append \\x%% etc uint8_t bytesNeeded = U8_LENGTH(ch); @@ -194,7 +194,7 @@ bool fixu8(std::string &linestr, size_t origpos, size_t &endpos) { outstr += ('\"'); linestr.replace(origpos, (endpos-origpos+1), outstr); - + return false; // OK } @@ -207,7 +207,7 @@ bool fixu8(std::string &linestr, size_t origpos, size_t &endpos) { */ bool fixAt(std::string &linestr, size_t pos) { size_t origpos = pos; - + if(linestr[pos] != 'u') { fprintf(stderr, "Not a 'u'?"); return true; @@ -216,12 +216,12 @@ bool fixAt(std::string &linestr, size_t pos) { pos++; // past 'u' bool utf8 = false; - + if(linestr[pos] == '8') { // u8" utf8 = true; pos++; } - + char quote = linestr[pos]; if(quote != '\'' && quote != '\"') { @@ -268,7 +268,7 @@ bool fixAt(std::string &linestr, size_t pos) { } } #endif - + // Proceed to decode utf-8 const uint8_t *s = (const uint8_t*) (linestr.c_str()); int32_t length = linestr.size(); @@ -368,7 +368,7 @@ int convert(const std::string &infile, const std::string &outfile) { fprintf(stderr, "escapesrc: %s -> %s\n", infile.c_str(), outfile.c_str()); std::ifstream inf; - + inf.open(infile.c_str(), std::ios::in); if(!inf.is_open()) { diff --git a/deps/icu-small/source/tools/escapesrc/tblgen.cpp b/deps/icu-small/source/tools/escapesrc/tblgen.cpp index 9bf59a9db9a5df..e94fa9036bc58e 100644 --- a/deps/icu-small/source/tools/escapesrc/tblgen.cpp +++ b/deps/icu-small/source/tools/escapesrc/tblgen.cpp @@ -37,12 +37,12 @@ int main(int argc, const char *argv[]) { } printf("};\n\n"); - // + // // UnicodeSet oldIllegal("[:print:]", status); // [a-zA-Z0-9_}{#)(><%:;.?*+-/^&|~!=,\\u005b\\u005d\\u005c]", status); UnicodeSet oldIllegal("[0-9 a-z A-Z " "_ \\{ \\} \\[ \\] # \\( \\) < > % \\: ; . " "? * + \\- / \\^ \\& | ~ ! = , \\ \" ' ]", status); - + /* http://www.lirmm.fr/~ducour/Doc-objets/ISO+IEC+14882-1998.pdf ( note: 1998 ) page 10, section 2.2 says: @@ -65,7 +65,7 @@ So basically: printable ASCII plus 0x00-0x1F, 0x7F-0x9F, was all illegal. Some discussion at http://unicode.org/mail-arch/unicode-ml/y2003-m10/0471.html */ - + printf("static const bool oldIllegal[256] = { \n"); @@ -75,6 +75,6 @@ Some discussion at http://unicode.org/mail-arch/unicode-ml/y2003-m10/0471.html i); } printf("};\n\n"); - + return 0; } diff --git a/deps/icu-small/source/tools/genrb/derb.cpp b/deps/icu-small/source/tools/genrb/derb.cpp index 997b400129532c..70546e1915bd5e 100644 --- a/deps/icu-small/source/tools/genrb/derb.cpp +++ b/deps/icu-small/source/tools/genrb/derb.cpp @@ -386,7 +386,7 @@ static void printHex(UFILE *out, uint8_t what) { static void printOutAlias(UFILE *out, UResourceBundle *parent, Resource r, const char *key, int32_t indent, const char *pname, UErrorCode *status) { static const UChar cr[] = { 0xA }; // LF int32_t len = 0; - const UChar* thestr = res_getAlias(&(parent->fResData), r, &len); + const UChar* thestr = res_getAlias(&(parent->getResData()), r, &len); UChar *string = quotedString(thestr); if(opt_truncate && len > truncsize) { char msg[128]; @@ -594,9 +594,9 @@ static void printOutBundle(UFILE *out, UResourceBundle *resource, int32_t indent for(i = 0; i < resSize; i++) { /* need to know if it's an alias */ if(isTable) { - r = res_getTableItemByIndex(&resource->fResData, resource->fRes, i, &key); + r = res_getTableItemByIndex(&resource->getResData(), resource->fRes, i, &key); } else { - r = res_getArrayItem(&resource->fResData, resource->fRes, i); + r = res_getArrayItem(&resource->getResData(), resource->fRes, i); } if(U_SUCCESS(*status)) { if(res_getPublicType(r) == URES_ALIAS) { diff --git a/deps/icu-small/source/tools/genrb/genrb.cpp b/deps/icu-small/source/tools/genrb/genrb.cpp index 6f3a13a0a6107c..a739b91143cd85 100644 --- a/deps/icu-small/source/tools/genrb/genrb.cpp +++ b/deps/icu-small/source/tools/genrb/genrb.cpp @@ -564,7 +564,7 @@ main(int argc, u_cleanup(); - /* Dont return warnings as a failure */ + /* Don't return warnings as a failure */ if (U_SUCCESS(status)) { return 0; } @@ -616,7 +616,7 @@ processFile(const char *filename, const char *cp, if(inputDir[dirlen-1] != U_FILE_SEP_CHAR) { /* * append the input dir to openFileName if the first char in - * filename is not file seperation char and the last char input directory is not '.'. + * filename is not file separation char and the last char input directory is not '.'. * This is to support : * genrb -s. /home/icu/data * genrb -s. icu/data diff --git a/deps/icu-small/source/tools/genrb/parse.cpp b/deps/icu-small/source/tools/genrb/parse.cpp index 5abe5d656733f9..7d5ffe1fc78d3a 100644 --- a/deps/icu-small/source/tools/genrb/parse.cpp +++ b/deps/icu-small/source/tools/genrb/parse.cpp @@ -683,7 +683,7 @@ class GenrbImporter : public icu::CollationRuleParser::Importer { virtual void getRules( const char *localeID, const char *collationType, UnicodeString &rules, - const char *&errorReason, UErrorCode &errorCode); + const char *&errorReason, UErrorCode &errorCode) override; private: const char *inputDir; diff --git a/deps/icu-small/source/tools/genrb/parse.h b/deps/icu-small/source/tools/genrb/parse.h index dfe3b8dda06e55..bcd8e798f9a618 100644 --- a/deps/icu-small/source/tools/genrb/parse.h +++ b/deps/icu-small/source/tools/genrb/parse.h @@ -25,7 +25,7 @@ #include "ucbuf.h" U_CDECL_BEGIN -/* One time parser initalisation */ +/* One time parser initialization */ void initParser(); /* Parse a ResourceBundle text file */ diff --git a/deps/icu-small/source/tools/genrb/prscmnts.cpp b/deps/icu-small/source/tools/genrb/prscmnts.cpp index d79d59e3916bc5..cb835cb8c33ddc 100644 --- a/deps/icu-small/source/tools/genrb/prscmnts.cpp +++ b/deps/icu-small/source/tools/genrb/prscmnts.cpp @@ -43,9 +43,9 @@ const char *patternStrings[UPC_LIMIT]={ "^note\\s*(.*)" }; -U_CFUNC int32_t -removeText(UChar *source, int32_t srcLen, - UnicodeString patString,uint32_t options, +U_CFUNC int32_t +removeText(UChar *source, int32_t srcLen, + UnicodeString patString,uint32_t options, UnicodeString replaceText, UErrorCode *status){ if(status == NULL || U_FAILURE(*status)){ @@ -62,8 +62,8 @@ removeText(UChar *source, int32_t srcLen, dest = myMatcher.replaceAll(replaceText,*status); - - + + return dest.extract(source, srcLen, *status); } @@ -71,11 +71,11 @@ U_CFUNC int32_t trim(UChar *src, int32_t srcLen, UErrorCode *status){ srcLen = removeText(src, srcLen, UnicodeString("^[ \\r\\n]+ "), 0, UnicodeString(), status); // remove leading new lines srcLen = removeText(src, srcLen, UnicodeString("^\\s+"), 0, UnicodeString(), status); // remove leading spaces - srcLen = removeText(src, srcLen, UnicodeString("\\s+$"), 0, UnicodeString(), status); // remvoe trailing spcaes + srcLen = removeText(src, srcLen, UnicodeString("\\s+$"), 0, UnicodeString(), status); // remove trailing spcaes return srcLen; } -U_CFUNC int32_t +U_CFUNC int32_t removeCmtText(UChar* source, int32_t srcLen, UErrorCode* status){ srcLen = trim(source, srcLen, status); UnicodeString patString("^\\s*?\\*\\s*?"); // remove pattern like " * " at the beginning of the line @@ -83,12 +83,12 @@ removeCmtText(UChar* source, int32_t srcLen, UErrorCode* status){ return removeText(source, srcLen, UnicodeString("[ \\r\\n]+"), 0, UnicodeString(" "), status);// remove new lines; } -U_CFUNC int32_t +U_CFUNC int32_t getText(const UChar* source, int32_t srcLen, UChar** dest, int32_t destCapacity, - UnicodeString patternString, + UnicodeString patternString, UErrorCode* status){ - + if(status == NULL || U_FAILURE(*status)){ return 0; } @@ -96,12 +96,12 @@ getText(const UChar* source, int32_t srcLen, UnicodeString stringArray[MAX_SPLIT_STRINGS]; RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), 0, *status); UnicodeString src (source,srcLen); - + if (U_FAILURE(*status)) { return 0; } pattern->split(src, stringArray, MAX_SPLIT_STRINGS, *status); - + RegexMatcher matcher(patternString, UREGEX_DOTALL, *status); if (U_FAILURE(*status)) { return 0; @@ -131,7 +131,7 @@ getDescription( const UChar* source, int32_t srcLen, UnicodeString stringArray[MAX_SPLIT_STRINGS]; RegexPattern *pattern = RegexPattern::compile(UnicodeString("@"), UREGEX_MULTILINE, *status); UnicodeString src(source, srcLen); - + if (U_FAILURE(*status)) { return 0; } @@ -145,9 +145,9 @@ getDescription( const UChar* source, int32_t srcLen, } U_CFUNC int32_t -getCount(const UChar* source, int32_t srcLen, +getCount(const UChar* source, int32_t srcLen, UParseCommentsOption option, UErrorCode *status){ - + if(status == NULL || U_FAILURE(*status)){ return 0; } @@ -161,12 +161,12 @@ getCount(const UChar* source, int32_t srcLen, return 0; } int32_t retLen = pattern->split(src, stringArray, MAX_SPLIT_STRINGS, *status); - + UnicodeString patternString(patternStrings[option]); RegexMatcher matcher(patternString, UREGEX_DOTALL, *status); if (U_FAILURE(*status)) { return 0; - } + } int32_t count = 0; for(int32_t i=0; isplit(src, stringArray, MAX_SPLIT_STRINGS, *status); - + UnicodeString patternString(patternStrings[option]); RegexMatcher matcher(patternString, UREGEX_DOTALL, *status); if (U_FAILURE(*status)) { return 0; - } + } int32_t count = 0; for(int32_t i=0; i=length) ? pad :length; - + /* Reverses the string */ for (j = 0; j < (num / 2); j++){ diff --git a/deps/icu-small/source/tools/genrb/read.c b/deps/icu-small/source/tools/genrb/read.c index 141e285d25efb9..7314f6b742fbf4 100644 --- a/deps/icu-small/source/tools/genrb/read.c +++ b/deps/icu-small/source/tools/genrb/read.c @@ -36,7 +36,7 @@ #define BADBOM 0xFFFE #define CR 0x000D #define LF 0x000A - + static int32_t lineCount; /* Protos */ @@ -188,7 +188,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, if(c == CR || c == LF){ isNLUnescaped = TRUE; } - } + } if(c==ESCAPE && !isFollowingCharEscaped){ isFollowingCharEscaped = TRUE; @@ -205,7 +205,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, isNLUnescaped = FALSE; } } - + if (U_FAILURE(*status)) { return TOK_ERROR; } @@ -219,7 +219,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, return TOK_ERROR; } } - + if(lastStringWasQuoted){ if(getShowWarning()){ warning(lineCount, "Mixing quoted and unquoted strings"); @@ -231,8 +231,8 @@ static enum ETokenType getStringToken(UCHARBUF* buf, } lastStringWasQuoted = FALSE; - - /* if we reach here we are mixing + + /* if we reach here we are mixing * quoted and unquoted strings * warn in normal mode and error in * pedantic mode @@ -252,7 +252,7 @@ static enum ETokenType getStringToken(UCHARBUF* buf, pTarget = target; ustr_uscat(token, pTarget,len, status); len=0; - + if (U_FAILURE(*status)) { return TOK_ERROR; } diff --git a/deps/icu-small/source/tools/genrb/reslist.cpp b/deps/icu-small/source/tools/genrb/reslist.cpp index 389ad19b38b88f..b9e0d7d8c438e3 100644 --- a/deps/icu-small/source/tools/genrb/reslist.cpp +++ b/deps/icu-small/source/tools/genrb/reslist.cpp @@ -954,11 +954,7 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg, if (writtenFilename) { int32_t off = 0, len = 0; if (outputDir) { - len = (int32_t)uprv_strlen(outputDir); - if (len > writtenFilenameLen) { - len = writtenFilenameLen; - } - uprv_strncpy(writtenFilename, outputDir, len); + uprv_strncpy(writtenFilename, outputDir, writtenFilenameLen); } if (writtenFilenameLen -= len) { off += len; @@ -977,14 +973,10 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg, if (len > writtenFilenameLen) { len = writtenFilenameLen; } - uprv_strncpy(writtenFilename + off, fLocale, len); + uprv_strncpy(writtenFilename + off, fLocale, writtenFilenameLen - off); if (writtenFilenameLen -= len) { off += len; - len = 5; - if (len > writtenFilenameLen) { - len = writtenFilenameLen; - } - uprv_strncpy(writtenFilename + off, ".res", len); + uprv_strncpy(writtenFilename + off, ".res", writtenFilenameLen - off); } } } diff --git a/deps/icu-small/source/tools/genrb/reslist.h b/deps/icu-small/source/tools/genrb/reslist.h index 400f0a97debea4..c9731880ea669e 100644 --- a/deps/icu-small/source/tools/genrb/reslist.h +++ b/deps/icu-small/source/tools/genrb/reslist.h @@ -124,7 +124,7 @@ struct SRBRoot { /* write a java resource file */ // TODO: C++ify -void bundle_write_java(struct SRBRoot *bundle, const char *outputDir, const char* outputEnc, char *writtenFilename, +void bundle_write_java(struct SRBRoot *bundle, const char *outputDir, const char* outputEnc, char *writtenFilename, int writtenFilenameLen, const char* packageName, const char* bundleName, UErrorCode *status); /* write a xml resource file */ @@ -219,7 +219,7 @@ struct SResource { /** * Applies the given filter with the given base path to this resource. * Removes child resources rejected by the filter recursively. - * + * * @param bundle Needed in order to access the key for this and child resources. */ virtual void applyFilter(const PathFilter& filter, ResKeyPath& path, const SRBRoot* bundle); @@ -294,9 +294,9 @@ class ArrayResource : public ContainerResource { void add(SResource *res); - virtual void handleWrite16(SRBRoot *bundle); - virtual void handlePreWrite(uint32_t *byteOffset); - virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset); + virtual void handleWrite16(SRBRoot *bundle) override; + virtual void handlePreWrite(uint32_t *byteOffset) override; + virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset) override; SResource *fLast; }; @@ -313,7 +313,7 @@ class PseudoListResource : public ContainerResource { void add(SResource *res); - virtual void handleWrite16(SRBRoot *bundle); + virtual void handleWrite16(SRBRoot *bundle) override; }; class StringBaseResource : public SResource { @@ -329,8 +329,8 @@ class StringBaseResource : public SResource { const UChar *getBuffer() const { return icu::toUCharPtr(fString.getBuffer()); } int32_t length() const { return fString.length(); } - virtual void handlePreWrite(uint32_t *byteOffset); - virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset); + virtual void handlePreWrite(uint32_t *byteOffset) override; + virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset) override; // TODO: private with getter? icu::UnicodeString fString; @@ -363,8 +363,8 @@ class StringResource : public StringBaseResource { return fNumCharsForLength + length() + 1; // +1 for the NUL } - virtual void handlePreflightStrings(SRBRoot *bundle, UHashtable *stringSet, UErrorCode &errorCode); - virtual void handleWrite16(SRBRoot *bundle); + virtual void handlePreflightStrings(SRBRoot *bundle, UHashtable *stringSet, UErrorCode &errorCode) override; + virtual void handleWrite16(SRBRoot *bundle) override; void writeUTF16v2(int32_t base, icu::UnicodeString &dest); @@ -401,8 +401,8 @@ class IntVectorResource : public SResource { void add(int32_t value, UErrorCode &errorCode); - virtual void handlePreWrite(uint32_t *byteOffset); - virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset); + virtual void handlePreWrite(uint32_t *byteOffset) override; + virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset) override; // TODO: UVector32 size_t fCount; @@ -417,8 +417,8 @@ class BinaryResource : public SResource { const UString* comment, UErrorCode &errorCode); virtual ~BinaryResource(); - virtual void handlePreWrite(uint32_t *byteOffset); - virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset); + virtual void handlePreWrite(uint32_t *byteOffset) override; + virtual void handleWrite(UNewDataMemory *mem, uint32_t *byteOffset) override; // TODO: CharString? uint32_t fLength; diff --git a/deps/icu-small/source/tools/genrb/rle.c b/deps/icu-small/source/tools/genrb/rle.c index c5d29ba1d24b6b..f737c454914153 100644 --- a/deps/icu-small/source/tools/genrb/rle.c +++ b/deps/icu-small/source/tools/genrb/rle.c @@ -405,3 +405,4 @@ rleStringToByteArray(uint16_t* src, int32_t srcLen, uint8_t* target, int32_t tgt return ai; } + diff --git a/deps/icu-small/source/tools/genrb/rle.h b/deps/icu-small/source/tools/genrb/rle.h index 9f580733d5846b..2684bbe6b29d79 100644 --- a/deps/icu-small/source/tools/genrb/rle.h +++ b/deps/icu-small/source/tools/genrb/rle.h @@ -62,7 +62,7 @@ usArrayToRLEString(const uint16_t* src,int32_t srcLen,uint16_t* buffer, int32_t * Construct an array of bytes from a run-length encoded string. */ int32_t -rleStringToByteArray(uint16_t* src, int32_t srcLen, uint8_t* target, int32_t tgtLen, UErrorCode* status); +rleStringToByteArray(uint16_t* src, int32_t srcLen, uint8_t* target, int32_t tgtLen, UErrorCode* status); /** * Construct an array of shorts from a run-length encoded string. */ diff --git a/deps/icu-small/source/tools/genrb/ustr.c b/deps/icu-small/source/tools/genrb/ustr.c index f1436ae8aec172..15f76a80ca2802 100644 --- a/deps/icu-small/source/tools/genrb/ustr.c +++ b/deps/icu-small/source/tools/genrb/ustr.c @@ -133,13 +133,13 @@ ustr_ncat(struct UString *dst, { if(U_FAILURE(*status) || dst == src) return; - + if(dst->fCapacity < (dst->fLength + n)) { ustr_resize(dst, ALLOCATION(dst->fLength + n), status); if(U_FAILURE(*status)) return; } - + uprv_memcpy(dst->fChars + dst->fLength, src->fChars, sizeof(UChar) * n); dst->fLength += src->fLength; @@ -165,7 +165,7 @@ ustr_ucat(struct UString *dst, dst->fLength += 1; dst->fChars[dst->fLength] = 0x0000; } -U_CFUNC void +U_CFUNC void ustr_u32cat(struct UString *dst, UChar32 c, UErrorCode *status){ if(c > 0x10FFFF){ *status = U_ILLEGAL_CHAR_FOUND; @@ -183,7 +183,7 @@ ustr_uscat(struct UString *dst, const UChar* src,int len, UErrorCode *status) { - if(U_FAILURE(*status)) + if(U_FAILURE(*status)) return; if(dst->fCapacity < (dst->fLength + len)) { diff --git a/deps/icu-small/source/tools/genrb/wrtjava.cpp b/deps/icu-small/source/tools/genrb/wrtjava.cpp index f1eb229760f12f..3ad0a94cf3d957 100644 --- a/deps/icu-small/source/tools/genrb/wrtjava.cpp +++ b/deps/icu-small/source/tools/genrb/wrtjava.cpp @@ -15,7 +15,7 @@ * Date Name Description * 01/11/02 Ram Creation. * 02/12/08 Spieth Fix errant 'new Object[][]{' insertion -* 02/19/08 Spieth Removed ICUListResourceBundle dependancy +* 02/19/08 Spieth Removed ICUListResourceBundle dependency ******************************************************************************* */ @@ -627,7 +627,7 @@ bundle_write_java(struct SRBRoot *bundle, const char *outputDir,const char* outp /*UBool j1 =FALSE;*/ /*outDir = outputDir;*/ - start = TRUE; /* Reset the start indictor*/ + start = TRUE; /* Reset the start indicator*/ bName = (bundleName==NULL) ? "LocaleElements" : bundleName; pName = (packageName==NULL)? "com.ibm.icu.impl.data" : packageName; diff --git a/deps/icu-small/source/tools/genrb/wrtxml.cpp b/deps/icu-small/source/tools/genrb/wrtxml.cpp index 58e055d5718c03..fa2105d908e798 100644 --- a/deps/icu-small/source/tools/genrb/wrtxml.cpp +++ b/deps/icu-small/source/tools/genrb/wrtxml.cpp @@ -135,7 +135,7 @@ static char* getID(const char* id, const char* curKey, char* result) { /* ICU is not endian portable, because ICU data generated on big endian machines can be * ported to big endian machines but not to little endian machines and vice versa. The - * conversion is not portable across platforms with different endianess. + * conversion is not portable across platforms with different endianness. */ uint32_t computeCRC(const char *ptr, uint32_t len, uint32_t lastcrc){ @@ -522,7 +522,7 @@ printComments(struct UString *src, const char *resName, UBool printTranslate, UE write_utf8_file(out,UnicodeString(">\n")); } }else if(getShowWarning()){ - fprintf(stderr, "Warning: Tranlate attribute for resource %s cannot be set. XLIFF prohibits it.\n", resName); + fprintf(stderr, "Warning: Translate attribute for resource %s cannot be set. XLIFF prohibits it.\n", resName); /* no translate attribute .. just close the tag */ write_utf8_file(out,UnicodeString(">\n")); } @@ -924,8 +924,6 @@ bin_write_xml(BinaryResource *res, const char* id, const char* /*language*/, UEr static void table_write_xml(TableResource *res, const char* id, const char* language, UBool isTopLevel, UErrorCode *status) { - uint32_t i = 0; - struct SResource *current = NULL; char* sid = NULL; @@ -940,7 +938,6 @@ table_write_xml(TableResource *res, const char* id, const char* language, UBool } current = res->fFirst; - i = 0; while (current != NULL) { res_write_xml(current, sid, language, FALSE, status); @@ -949,7 +946,6 @@ table_write_xml(TableResource *res, const char* id, const char* language, UBool return; } - i += 1; current = current->fNext; } diff --git a/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp b/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp new file mode 100644 index 00000000000000..ef933676115e1b --- /dev/null +++ b/deps/icu-small/source/tools/icuexportdata/icuexportdata.cpp @@ -0,0 +1,295 @@ +// © 2016 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html + +#include +#include +#include "toolutil.h" +#include "uoptions.h" +#include "cmemory.h" +#include "charstr.h" +#include "cstring.h" +#include "unicode/uchar.h" +#include "unicode/errorcode.h" +#include "unicode/uniset.h" +#include "unicode/putil.h" +#include "unicode/umutablecptrie.h" +#include "writesrc.h" + +U_NAMESPACE_USE + +/* + * Global - verbosity + */ +UBool VERBOSE = FALSE; +UBool QUIET = FALSE; + +UBool haveCopyright = TRUE; +UCPTrieType trieType = UCPTRIE_TYPE_SMALL; +const char* destdir = ""; + +void handleError(ErrorCode& status, const char* context) { + if (status.isFailure()) { + std::cerr << "Error: " << context << ": " << status.errorName() << std::endl; + exit(status.reset()); + } +} + +class PropertyValueNameGetter : public ValueNameGetter { +public: + PropertyValueNameGetter(UProperty prop) : property(prop) {} + ~PropertyValueNameGetter() override; + const char *getName(uint32_t value) override { + return u_getPropertyValueName(property, value, U_SHORT_PROPERTY_NAME); + } + +private: + UProperty property; +}; + +PropertyValueNameGetter::~PropertyValueNameGetter() {} + +void dumpBinaryProperty(UProperty uproperty, FILE* f) { + IcuToolErrorCode status("icuexportdata: dumpBinaryProperty"); + const char* fullPropName = u_getPropertyName(uproperty, U_LONG_PROPERTY_NAME); + const char* shortPropName = u_getPropertyName(uproperty, U_SHORT_PROPERTY_NAME); + const USet* uset = u_getBinaryPropertySet(uproperty, status); + handleError(status, fullPropName); + + fputs("[[binary_property]]\n", f); + fprintf(f, "long_name = \"%s\"\n", fullPropName); + if (shortPropName) fprintf(f, "short_name = \"%s\"\n", shortPropName); + usrc_writeUnicodeSet(f, uset, UPRV_TARGET_SYNTAX_TOML); +} + +void dumpEnumeratedProperty(UProperty uproperty, FILE* f) { + IcuToolErrorCode status("icuexportdata: dumpEnumeratedProperty"); + const char* fullPropName = u_getPropertyName(uproperty, U_LONG_PROPERTY_NAME); + const char* shortPropName = u_getPropertyName(uproperty, U_SHORT_PROPERTY_NAME); + const UCPMap* umap = u_getIntPropertyMap(uproperty, status); + handleError(status, fullPropName); + + fputs("[[enum_property]]\n", f); + fprintf(f, "long_name = \"%s\"\n", fullPropName); + if (shortPropName) fprintf(f, "short_name = \"%s\"\n", shortPropName); + PropertyValueNameGetter valueNameGetter(uproperty); + usrc_writeUCPMap(f, umap, &valueNameGetter, UPRV_TARGET_SYNTAX_TOML); + fputs("\n", f); + + U_ASSERT(u_getIntPropertyMinValue(uproperty) >= 0); + int32_t maxValue = u_getIntPropertyMaxValue(uproperty); + U_ASSERT(maxValue >= 0); + UCPTrieValueWidth width = UCPTRIE_VALUE_BITS_32; + if (maxValue <= 0xff) { + width = UCPTRIE_VALUE_BITS_8; + } else if (maxValue <= 0xffff) { + width = UCPTRIE_VALUE_BITS_16; + } + LocalUMutableCPTriePointer builder(umutablecptrie_fromUCPMap(umap, status)); + LocalUCPTriePointer utrie(umutablecptrie_buildImmutable( + builder.getAlias(), + trieType, + width, + status)); + handleError(status, fullPropName); + + fputs("[enum_property.code_point_trie]\n", f); + usrc_writeUCPTrie(f, shortPropName, utrie.getAlias(), UPRV_TARGET_SYNTAX_TOML); +} + +FILE* prepareOutputFile(const char* basename) { + IcuToolErrorCode status("icuexportdata"); + CharString outFileName; + if (destdir != nullptr && *destdir != 0) { + outFileName.append(destdir, status).ensureEndsWithFileSeparator(status); + } + outFileName.append(basename, status); + outFileName.append(".toml", status); + handleError(status, basename); + + FILE* f = fopen(outFileName.data(), "w"); + if (f == nullptr) { + std::cerr << "Unable to open file: " << outFileName.data() << std::endl; + exit(U_FILE_ACCESS_ERROR); + } + if (!QUIET) { + std::cout << "Writing to: " << outFileName.data() << std::endl; + } + + if (haveCopyright) { + usrc_writeCopyrightHeader(f, "#", 2021); + } + usrc_writeFileNameGeneratedBy(f, "#", basename, "icuexportdata.cpp"); + + return f; +} + +enum { + OPT_HELP_H, + OPT_HELP_QUESTION_MARK, + OPT_MODE, + OPT_TRIE_TYPE, + OPT_VERSION, + OPT_DESTDIR, + OPT_ALL, + OPT_INDEX, + OPT_COPYRIGHT, + OPT_VERBOSE, + OPT_QUIET, + + OPT_COUNT +}; + +#define UOPTION_MODE UOPTION_DEF("mode", 'm', UOPT_REQUIRES_ARG) +#define UOPTION_TRIE_TYPE UOPTION_DEF("trie-type", '\1', UOPT_REQUIRES_ARG) +#define UOPTION_ALL UOPTION_DEF("all", '\1', UOPT_NO_ARG) +#define UOPTION_INDEX UOPTION_DEF("index", '\1', UOPT_NO_ARG) + +static UOption options[]={ + UOPTION_HELP_H, + UOPTION_HELP_QUESTION_MARK, + UOPTION_MODE, + UOPTION_TRIE_TYPE, + UOPTION_VERSION, + UOPTION_DESTDIR, + UOPTION_ALL, + UOPTION_INDEX, + UOPTION_COPYRIGHT, + UOPTION_VERBOSE, + UOPTION_QUIET, +}; + +int main(int argc, char* argv[]) { + U_MAIN_INIT_ARGS(argc, argv); + + /* preset then read command line options */ + options[OPT_DESTDIR].value=u_getDataDirectory(); + argc=u_parseArgs(argc, argv, UPRV_LENGTHOF(options), options); + + if(options[OPT_VERSION].doesOccur) { + printf("icuexportdata version %s, ICU tool to dump data files for external consumers\n", + U_ICU_DATA_VERSION); + printf("%s\n", U_COPYRIGHT_STRING); + exit(0); + } + + /* error handling, printing usage message */ + if(argc<0) { + fprintf(stderr, + "error in command line argument \"%s\"\n", + argv[-argc]); + } else if(argc<2) { + argc=-1; + } + + /* get the options values */ + haveCopyright = options[OPT_COPYRIGHT].doesOccur; + destdir = options[OPT_DESTDIR].value; + VERBOSE = options[OPT_VERBOSE].doesOccur; + QUIET = options[OPT_QUIET].doesOccur; + + // Load list of Unicode properties + std::vector propNames; + for (int i=1; i(i); + const char* propName = u_getPropertyName(uprop, U_SHORT_PROPERTY_NAME); + if (propName == NULL) { + propName = u_getPropertyName(uprop, U_LONG_PROPERTY_NAME); + if (propName != NULL && VERBOSE) { + std::cerr << "Note: falling back to long name for: " << propName << std::endl; + } + } + if (propName != NULL) { + propNames.push_back(propName); + } + } + } + + if (propNames.empty() + || options[OPT_HELP_H].doesOccur + || options[OPT_HELP_QUESTION_MARK].doesOccur + || !options[OPT_MODE].doesOccur) { + FILE *stdfile=argc<0 ? stderr : stdout; + fprintf(stdfile, + "usage: %s -m uprops [-options] [--all | properties...]\n" + "\tdump Unicode property data to .toml files\n" + "options:\n" + "\t-h or -? or --help this usage text\n" + "\t-V or --version show a version message\n" + "\t-m or --mode mode: currently only 'uprops', but more may be added\n" + "\t --trie-type set the trie type (small or fast, default small)\n" + "\t-d or --destdir destination directory, followed by the path\n" + "\t --all write out all properties known to icuexportdata\n" + "\t --index write an _index.toml summarizing all data exported\n" + "\t-c or --copyright include a copyright notice\n" + "\t-v or --verbose Turn on verbose output\n" + "\t-q or --quiet do not display warnings and progress\n", + argv[0]); + return argc<0 ? U_ILLEGAL_ARGUMENT_ERROR : U_ZERO_ERROR; + } + + const char* mode = options[OPT_MODE].value; + if (uprv_strcmp(mode, "uprops") != 0) { + fprintf(stderr, "Invalid option for --mode (must be uprops)\n"); + return U_ILLEGAL_ARGUMENT_ERROR; + } + + if (options[OPT_TRIE_TYPE].doesOccur) { + if (uprv_strcmp(options[OPT_TRIE_TYPE].value, "fast") == 0) { + trieType = UCPTRIE_TYPE_FAST; + } else if (uprv_strcmp(options[OPT_TRIE_TYPE].value, "small") == 0) { + trieType = UCPTRIE_TYPE_SMALL; + } else { + fprintf(stderr, "Invalid option for --trie-type (must be small or fast)\n"); + return U_ILLEGAL_ARGUMENT_ERROR; + } + } + + for (const char* propName : propNames) { + UProperty propEnum = u_getPropertyEnum(propName); + if (propEnum == UCHAR_INVALID_CODE) { + std::cerr << "Error: Invalid property alias: " << propName << std::endl; + return U_ILLEGAL_ARGUMENT_ERROR; + } + + FILE* f = prepareOutputFile(propName); + + UVersionInfo versionInfo; + u_getUnicodeVersion(versionInfo); + char uvbuf[U_MAX_VERSION_STRING_LENGTH]; + u_versionToString(versionInfo, uvbuf); + fprintf(f, "icu_version = \"%s\"\nunicode_version = \"%s\"\n\n", + U_ICU_VERSION, + uvbuf); + + if (propEnum < UCHAR_BINARY_LIMIT) { + dumpBinaryProperty(propEnum, f); + } else if (UCHAR_INT_START <= propEnum && propEnum <= UCHAR_INT_LIMIT) { + dumpEnumeratedProperty(propEnum, f); + } else { + std::cerr << "Don't know how to write property: " << propEnum << std::endl; + return U_INTERNAL_PROGRAM_ERROR; + } + + fclose(f); + } + + if (options[OPT_INDEX].doesOccur) { + FILE* f = prepareOutputFile("_index"); + fprintf(f, "index = [\n"); + for (const char* propName : propNames) { + // At this point, propName is a valid property name, so it should be alphanum ASCII + fprintf(f, " { filename=\"%s.toml\" },\n", propName); + } + fprintf(f, "]\n"); + fclose(f); + } + + return 0; +} diff --git a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp index 41a13406cf1f31..8de99cb9ceabdc 100644 --- a/deps/icu-small/source/tools/pkgdata/pkgdata.cpp +++ b/deps/icu-small/source/tools/pkgdata/pkgdata.cpp @@ -586,7 +586,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { uprv_strcat(targetDir, PKGDATA_FILE_SEP_STRING); uprv_strcat(targetDir, o->shortName); } - + if(o->verbose) { fprintf(stdout, "# Install: Files mode, copying files to %s..\n", targetDir); } @@ -723,7 +723,7 @@ static int32_t pkg_executeOptions(UPKGOptions *o) { if(o->verbose) { fprintf(stdout, "# Generating assembly code %s of type %s ..\n", gencFilePath, genccodeAssembly); } - + /* Offset genccodeAssembly by 3 because "-a " */ if (genccodeAssembly && (uprv_strlen(genccodeAssembly)>3) && @@ -916,7 +916,7 @@ static int32_t initializePkgDataFlags(UPKGOptions *o) { /* - * Given the base libName and version numbers, generate the libary file names and store it in libFileNames. + * Given the base libName and version numbers, generate the library file names and store it in libFileNames. * Depending on the configuration, the library name may either end with version number or shared object suffix. */ static void createFileNames(UPKGOptions *o, const char mode, const char *version_major, const char *version, const char *libName, UBool reverseExt, UBool noVersion) { @@ -1051,7 +1051,7 @@ static int32_t pkg_createSymLinks(const char *targetDir, UBool specialHandling) uprv_strcmp(libFileNames[LIB_FILE_VERSION], libFileNames[LIB_FILE_VERSION_MAJOR]) == 0) { return result; } - + sprintf(cmd, "cd %s && %s %s && %s %s %s", targetDir, RM_CMD, @@ -1322,18 +1322,18 @@ static int32_t pkg_archiveLibrary(const char *targetDir, const char *version, UB targetDir, libFileNames[LIB_FILE_VERSION_TMP]); - result = runCommand(cmd); - if (result != 0) { + result = runCommand(cmd); + if (result != 0) { fprintf(stderr, "Error creating archive library. Failed command: %s\n", cmd); - return result; - } - - sprintf(cmd, "%s %s%s", - pkgDataFlags[RANLIB], - targetDir, + return result; + } + + sprintf(cmd, "%s %s%s", + pkgDataFlags[RANLIB], + targetDir, libFileNames[LIB_FILE_VERSION]); - - result = runCommand(cmd); + + result = runCommand(cmd); if (result != 0) { fprintf(stderr, "Error creating archive library. Failed command: %s\n", cmd); return result; @@ -1398,11 +1398,11 @@ static int32_t pkg_generateLibraryFile(const char *targetDir, const char mode, c result = runCommand(cmd); if (result == 0) { - sprintf(cmd, "%s %s%s", - pkgDataFlags[RANLIB], - targetDir, - libFileNames[LIB_FILE_VERSION]); - + sprintf(cmd, "%s %s%s", + pkgDataFlags[RANLIB], + targetDir, + libFileNames[LIB_FILE_VERSION]); + result = runCommand(cmd); } } else /* if (IN_DLL_MODE(mode)) */ { @@ -1613,10 +1613,10 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD #ifdef USE_SINGLE_CCODE_FILE char icudtAll[SMALL_BUFFER_MAX_SIZE] = ""; FileStream *icudtAllFile = NULL; - + sprintf(icudtAll, "%s%s%sall.c", o->tmpDir, - PKGDATA_FILE_SEP_STRING, + PKGDATA_FILE_SEP_STRING, libFileNames[LIB_FILE]); /* Remove previous icudtall.c file. */ if (T_FileStream_file_exists(icudtAll) && (result = remove(icudtAll)) != 0) { @@ -1651,24 +1651,24 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD const char *name; if (i == 0) { - /* The first iteration calls the gencmn function and initailizes the buffer. */ + /* The first iteration calls the gencmn function and initializes the buffer. */ createCommonDataFile(o->tmpDir, o->shortName, o->entryName, NULL, o->srcDir, o->comment, o->fileListFiles->str, 0, TRUE, o->verbose, gencmnFile); buffer[0] = 0; #ifdef USE_SINGLE_CCODE_FILE uprv_strcpy(tempObjectFile, gencmnFile); tempObjectFile[uprv_strlen(tempObjectFile) - 1] = 'o'; - + sprintf(cmd, "%s %s -o %s %s", pkgDataFlags[COMPILER], pkgDataFlags[LIBFLAGS], tempObjectFile, gencmnFile); - + result = runCommand(cmd); if (result != 0) { break; } - + sprintf(buffer, "%s",tempObjectFile); #endif } else { @@ -1740,7 +1740,7 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD #ifndef USE_SINGLE_CCODE_FILE uprv_strcpy(tempObjectFile, gencmnFile); tempObjectFile[uprv_strlen(tempObjectFile) - 1] = 'o'; - + sprintf(cmd, "%s %s -o %s %s", pkgDataFlags[COMPILER], pkgDataFlags[LIBFLAGS], @@ -1756,7 +1756,7 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD uprv_strcat(buffer, tempObjectFile); #endif - + if (i > 0) { list = list->next; listNames = listNames->next; @@ -1773,7 +1773,7 @@ static int32_t pkg_createWithoutAssemblyCode(UPKGOptions *o, const char *targetD pkgDataFlags[LIBFLAGS], tempObjectFile, icudtAll); - + result = runCommand(cmd); if (result == 0) { uprv_strcat(buffer, " "); @@ -1855,7 +1855,7 @@ static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, U #ifdef CYGWINMSVC uprv_strcat(libFilePath, o->libName); uprv_strcat(libFilePath, ".lib"); - + uprv_strcat(dllFilePath, o->libName); uprv_strcat(dllFilePath, o->version); #else @@ -1868,7 +1868,7 @@ static int32_t pkg_createWindowsDLL(const char mode, const char *gencFilePath, U uprv_strcat(dllFilePath, o->entryName); #endif uprv_strcat(dllFilePath, DLL_EXT); - + uprv_strcpy(tmpResFilePath, o->tmpDir); uprv_strcat(tmpResFilePath, PKGDATA_FILE_SEP_STRING); uprv_strcat(tmpResFilePath, ICUDATA_RES_FILE); @@ -2017,9 +2017,9 @@ static UPKGOptions *pkg_checkFlag(UPKGOptions *o) { return NULL; } else { sprintf(tmpbuffer, "%s%s ", o->entryName, UDATA_CMN_INTERMEDIATE_SUFFIX); - + T_FileStream_writeLine(f, tmpbuffer); - + T_FileStream_close(f); } } @@ -2059,7 +2059,7 @@ static UPKGOptions *pkg_checkFlag(UPKGOptions *o) { #endif // Don't really need a return value, just need to stop compiler warnings about // the unused parameter 'o' on platforms where it is not otherwise used. - return o; + return o; } static void loadLists(UPKGOptions *o, UErrorCode *status) diff --git a/deps/icu-small/source/tools/pkgdata/pkgtypes.h b/deps/icu-small/source/tools/pkgdata/pkgtypes.h index 3297d0a2daf4d5..8ae1ec45a2b0a8 100644 --- a/deps/icu-small/source/tools/pkgdata/pkgtypes.h +++ b/deps/icu-small/source/tools/pkgdata/pkgtypes.h @@ -36,7 +36,7 @@ typedef struct _CharList /* - * write CharList 'l' into stream 's' using deliminter 'delim' (delim can be NULL). quoted: -1 remove, 0 as is, 1 add quotes + * write CharList 'l' into stream 's' using delimiter 'delim' (delim can be NULL). quoted: -1 remove, 0 as is, 1 add quotes */ const char *pkg_writeCharList(FileStream *s, CharList *l, const char *delim, int32_t quoted); diff --git a/deps/icu-small/source/tools/toolutil/BUILD b/deps/icu-small/source/tools/toolutil/BUILD new file mode 100644 index 00000000000000..276c857f1246c8 --- /dev/null +++ b/deps/icu-small/source/tools/toolutil/BUILD @@ -0,0 +1,126 @@ +# © 2021 and later: Unicode, Inc. and others. +# License & terms of use: http://www.unicode.org/copyright.html + +# This Bazel build file defines targets that are dependencies for building +# the gennorm2 and genprops binaries. + +load("@rules_cc//cc:defs.bzl", "cc_binary", "cc_library") + +package( + default_visibility = ["//visibility:public"], +) + +cc_library( + name = "toolutil", + includes = ["."], + hdrs = ["toolutil.h"], + srcs = ["toolutil.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = ["//icu4c/source/common:platform"], +) + +cc_library( + name = "unewdata", + includes = ["."], + hdrs = ["unewdata.h"], + srcs = ["unewdata.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = [ + ":filestrm", + "//icu4c/source/common:platform", + ], +) + +cc_library( + name = "uoptions", + includes = ["."], + hdrs = ["uoptions.h"], + srcs = ["uoptions.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = ["//icu4c/source/common:platform"], +) + +cc_library( + name = "writesrc", + includes = ["."], + hdrs = ["writesrc.h"], + srcs = ["writesrc.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = [ + "//icu4c/source/common:bytestream", + "//icu4c/source/common:platform", + "//icu4c/source/common:uniset_core", + ], +) + +cc_library( + name = "uparse", + includes = ["."], + hdrs = ["uparse.h"], + srcs = ["uparse.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = [ + ":filestrm", + "//icu4c/source/common:platform", + ], +) + +cc_library( + name = "filestrm", + includes = ["."], + hdrs = ["filestrm.h"], + srcs = ["filestrm.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = ["//icu4c/source/common:platform"], +) + +cc_library( + name = "ppucd", + includes = ["."], + hdrs = ["ppucd.h"], + srcs = ["ppucd.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = [ + ":uparse", + "//icu4c/source/common:platform", + ], +) + +cc_library( + name = "denseranges", + includes = ["."], + hdrs = ["denseranges.h"], + srcs = ["denseranges.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = ["//icu4c/source/common:platform"], +) + +cc_library( + name = "collationinfo", + includes = ["."], + hdrs = ["collationinfo.h"], + srcs = ["collationinfo.cpp"], + local_defines = [ + "U_TOOLUTIL_IMPLEMENTATION", + ], + deps = [ + "//icu4c/source/common:platform", + "//icu4c/source/i18n:headers", + ], +) diff --git a/deps/icu-small/source/tools/toolutil/dbgutil.cpp b/deps/icu-small/source/tools/toolutil/dbgutil.cpp index 17fdfbb1444e29..399ec6d16c0703 100644 --- a/deps/icu-small/source/tools/toolutil/dbgutil.cpp +++ b/deps/icu-small/source/tools/toolutil/dbgutil.cpp @@ -113,7 +113,7 @@ U_CAPI int32_t U_EXPORT2 udbg_enumByString(UDebugEnumType type, const UnicodeSt } // from DataMap::utoi -U_CAPI int32_t +U_CAPI int32_t udbg_stoi(const UnicodeString &s) { char ch[256]; @@ -125,7 +125,7 @@ udbg_stoi(const UnicodeString &s) } -U_CAPI double +U_CAPI double udbg_stod(const UnicodeString &s) { char ch[256]; diff --git a/deps/icu-small/source/tools/toolutil/dbgutil.h b/deps/icu-small/source/tools/toolutil/dbgutil.h index 314a9ae885d5fa..43fe2171b4a84f 100644 --- a/deps/icu-small/source/tools/toolutil/dbgutil.h +++ b/deps/icu-small/source/tools/toolutil/dbgutil.h @@ -24,7 +24,7 @@ udbg_enumString(UDebugEnumType type, int32_t field); /** * @return enum offset, or UDBG_INVALID_ENUM on error - */ + */ U_CAPI int32_t U_EXPORT2 udbg_enumByString(UDebugEnumType type, const icu::UnicodeString& string); diff --git a/deps/icu-small/source/tools/toolutil/filestrm.cpp b/deps/icu-small/source/tools/toolutil/filestrm.cpp index a170c7b0f29e2e..a926848985a8e1 100644 --- a/deps/icu-small/source/tools/toolutil/filestrm.cpp +++ b/deps/icu-small/source/tools/toolutil/filestrm.cpp @@ -44,7 +44,7 @@ T_FileStream_open(const char* filename, const char* mode) U_CAPI FileStream* U_EXPORT2 T_FileStream_wopen(const wchar_t* filename, const wchar_t* mode) { - // TBD: _wfopen is believed to be MS-specific? + // TBD: _wfopen is believed to be MS-specific? #if U_PLATFORM_USES_ONLY_WIN32_API FILE* result = _wfopen(filename, mode); return (FileStream*)result; @@ -53,7 +53,7 @@ T_FileStream_wopen(const wchar_t* filename, const wchar_t* mode) char *fn, *md; FILE *result; - // convert from wchar_t to char + // convert from wchar_t to char fnMbsSize = wcstombs(NULL, filename, ((size_t)-1) >> 1); fn = (char*)uprv_malloc(fnMbsSize+2); wcstombs(fn, filename, fnMbsSize); @@ -182,7 +182,7 @@ T_FileStream_eof(FileStream* fileStream) } /* - Warning + Warning This function may not work consistently on all platforms (e.g. HP-UX, FreeBSD and MacOSX don't return an error when putc is used on a file opened as readonly) diff --git a/deps/icu-small/source/tools/toolutil/flagparser.cpp b/deps/icu-small/source/tools/toolutil/flagparser.cpp index c8d791c636d14a..65513f3611fa5c 100644 --- a/deps/icu-small/source/tools/toolutil/flagparser.cpp +++ b/deps/icu-small/source/tools/toolutil/flagparser.cpp @@ -64,7 +64,7 @@ parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, } if ((int32_t)uprv_strlen(buffer) == (currentBufferSize - 1) && buffer[currentBufferSize-2] != '\n') { - /* Allocate more space for buffer if it didnot read the entrire line */ + /* Allocate more space for buffer if it did not read the entire line */ allocateMoreSpace = TRUE; T_FileStream_rewind(f); break; @@ -98,7 +98,7 @@ parseFlagsFile(const char *fileName, char **flagBuffer, int32_t flagBufferSize, uprv_free(buffer); T_FileStream_close(f); - + if (U_FAILURE(*status) && *status != U_BUFFER_OVERFLOW_ERROR) { return -1; } diff --git a/deps/icu-small/source/tools/toolutil/package.h b/deps/icu-small/source/tools/toolutil/package.h index 5f74eb73ef5c9a..ea60c13a74a57b 100644 --- a/deps/icu-small/source/tools/toolutil/package.h +++ b/deps/icu-small/source/tools/toolutil/package.h @@ -199,3 +199,5 @@ class U_TOOLUTIL_API Package { U_NAMESPACE_END #endif + + diff --git a/deps/icu-small/source/tools/toolutil/pkg_genc.cpp b/deps/icu-small/source/tools/toolutil/pkg_genc.cpp index f9400c5058c206..17347bac5d77e9 100644 --- a/deps/icu-small/source/tools/toolutil/pkg_genc.cpp +++ b/deps/icu-small/source/tools/toolutil/pkg_genc.cpp @@ -191,7 +191,7 @@ static const struct AssemblyType { "\t.type Drodata.rodata,@object\n" "\t.size Drodata.rodata,0\n" "\t.globl %s\n" - "\t.align 16\n" + "\t.align 16\n" "%s:\n", ".4byte ","",HEX_0X diff --git a/deps/icu-small/source/tools/toolutil/pkgitems.cpp b/deps/icu-small/source/tools/toolutil/pkgitems.cpp index 16b18a3e27345f..af458677976b23 100644 --- a/deps/icu-small/source/tools/toolutil/pkgitems.cpp +++ b/deps/icu-small/source/tools/toolutil/pkgitems.cpp @@ -126,7 +126,7 @@ class NativeItem { * assemble the target item name from the source item name, an ID * and a suffix */ -static void +static void makeTargetName(const char *itemName, const char *id, int32_t idLength, const char *suffix, char *target, int32_t capacity, UErrorCode *pErrorCode) { @@ -160,7 +160,7 @@ makeTargetName(const char *itemName, const char *id, int32_t idLength, const cha memcpy(target+treeLength+idLength, suffix, suffixLength+1); // +1 includes the terminating NUL } -static void +static void checkIDSuffix(const char *itemName, const char *id, int32_t idLength, const char *suffix, CheckDependency check, void *context, UErrorCode *pErrorCode) { @@ -172,7 +172,7 @@ checkIDSuffix(const char *itemName, const char *id, int32_t idLength, const char } /* assemble the target item name from the item's parent item name */ -static void +static void checkParent(const char *itemName, CheckDependency check, void *context, UErrorCode *pErrorCode) { const char *itemID, *parent, *parentLimit, *suffix; @@ -260,7 +260,7 @@ checkAlias(const char *itemName, } // convert the Unicode string to char * - char localeID[32]; + char localeID[48]; if(length>=(int32_t)sizeof(localeID)) { fprintf(stderr, "icupkg/ures_enumDependencies(%s res=%08x) alias locale ID length %ld too long\n", itemName, res, (long)length); diff --git a/deps/icu-small/source/tools/toolutil/ppucd.cpp b/deps/icu-small/source/tools/toolutil/ppucd.cpp index b11efa7f7c4601..bf9058840742a7 100644 --- a/deps/icu-small/source/tools/toolutil/ppucd.cpp +++ b/deps/icu-small/source/tools/toolutil/ppucd.cpp @@ -29,6 +29,13 @@ U_NAMESPACE_BEGIN PropertyNames::~PropertyNames() {} +// TODO: Create a concrete subclass for the default PropertyNames implementation +// using the ICU library built-in property names API & data. +// Currently only the genprops tool uses PreparsedUCD, and provides its own +// PropertyNames implementation using its just-build property names data and its own code. +// At some point, we should use PreparsedUCD in tests, and then we will need the +// default implementation somewhere. +#if 0 int32_t PropertyNames::getPropertyEnum(const char *name) const { return u_getPropertyEnum(name); @@ -38,6 +45,7 @@ int32_t PropertyNames::getPropertyValueEnum(int32_t property, const char *name) const { return u_getPropertyValueEnum((UProperty)property, name); } +#endif UniProps::UniProps() : start(U_SENTINEL), end(U_SENTINEL), @@ -55,7 +63,7 @@ UniProps::~UniProps() {} const int32_t PreparsedUCD::kNumLineBuffers; PreparsedUCD::PreparsedUCD(const char *filename, UErrorCode &errorCode) - : icuPnames(new PropertyNames()), pnames(icuPnames), + : pnames(nullptr), file(NULL), defaultLineIndex(-1), blockLineIndex(-1), lineIndex(0), lineNumber(0), @@ -84,7 +92,6 @@ PreparsedUCD::~PreparsedUCD() { if(file!=stdin) { fclose(file); } - delete icuPnames; } // Same order as the LineType values. diff --git a/deps/icu-small/source/tools/toolutil/ppucd.h b/deps/icu-small/source/tools/toolutil/ppucd.h index 1f9fb295c1070b..7c9c34af6fb6e2 100644 --- a/deps/icu-small/source/tools/toolutil/ppucd.h +++ b/deps/icu-small/source/tools/toolutil/ppucd.h @@ -36,8 +36,8 @@ U_NAMESPACE_BEGIN class U_TOOLUTIL_API PropertyNames { public: virtual ~PropertyNames(); - virtual int32_t getPropertyEnum(const char *name) const; - virtual int32_t getPropertyValueEnum(int32_t property, const char *name) const; + virtual int32_t getPropertyEnum(const char *name) const = 0; + virtual int32_t getPropertyValueEnum(int32_t property, const char *name) const = 0; }; struct U_TOOLUTIL_API UniProps { @@ -102,7 +102,7 @@ class U_TOOLUTIL_API PreparsedUCD { /** Destructor. */ ~PreparsedUCD(); - /** Sets (aliases) a non-standard PropertyNames implementation. Caller retains ownership. */ + /** Sets (aliases) a PropertyNames implementation. Caller retains ownership. */ void setPropertyNames(const PropertyNames *pn) { pnames=pn; } /** @@ -159,7 +159,6 @@ class U_TOOLUTIL_API PreparsedUCD { static const int32_t kNumLineBuffers=3; - PropertyNames *icuPnames; // owned const PropertyNames *pnames; // aliased FILE *file; int32_t defaultLineIndex, blockLineIndex, lineIndex; diff --git a/deps/icu-small/source/tools/toolutil/swapimpl.cpp b/deps/icu-small/source/tools/toolutil/swapimpl.cpp index 926755a2aa8c36..8d669a93187b1c 100644 --- a/deps/icu-small/source/tools/toolutil/swapimpl.cpp +++ b/deps/icu-small/source/tools/toolutil/swapimpl.cpp @@ -45,6 +45,7 @@ /* swapping implementations in common */ +#include "emojiprops.h" #include "uresdata.h" #include "ucnv_io.h" #include "uprops.h" @@ -741,6 +742,115 @@ ulayout_swap(const UDataSwapper *ds, return headerSize + size; } +// Unicode emoji properties data swapping -------------------------------------- + +static int32_t U_CALLCONV +uemoji_swap(const UDataSwapper *ds, + const void *inData, int32_t length, void *outData, + UErrorCode *pErrorCode) { + // udata_swapDataHeader checks the arguments. + int32_t headerSize = udata_swapDataHeader(ds, inData, length, outData, pErrorCode); + if (pErrorCode == nullptr || U_FAILURE(*pErrorCode)) { + return 0; + } + + // Check data format and format version. + const UDataInfo *pInfo = (const UDataInfo *)((const char *)inData + 4); + if (!( + pInfo->dataFormat[0] == u'E' && + pInfo->dataFormat[1] == u'm' && + pInfo->dataFormat[2] == u'o' && + pInfo->dataFormat[3] == u'j' && + pInfo->formatVersion[0] == 1)) { + udata_printError(ds, + "uemoji_swap(): data format %02x.%02x.%02x.%02x (format version %02x) " + "is not recognized as emoji properties data\n", + pInfo->dataFormat[0], pInfo->dataFormat[1], + pInfo->dataFormat[2], pInfo->dataFormat[3], + pInfo->formatVersion[0]); + *pErrorCode = U_UNSUPPORTED_ERROR; + return 0; + } + + const uint8_t *inBytes = (const uint8_t *)inData + headerSize; + uint8_t *outBytes = (uint8_t *)outData + headerSize; + + const int32_t *inIndexes = (const int32_t *)inBytes; + + if (length >= 0) { + length -= headerSize; + // We expect to read at least EmojiProps::IX_TOTAL_SIZE. + if (length < 14 * 4) { + udata_printError(ds, + "uemoji_swap(): too few bytes (%d after header) for emoji properties data\n", + length); + *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + } + + // First offset after indexes[]. + int32_t cpTrieOffset = udata_readInt32(ds, inIndexes[EmojiProps::IX_CPTRIE_OFFSET]); + int32_t indexesLength = cpTrieOffset / 4; + if (indexesLength < 14) { + udata_printError(ds, + "uemoji_swap(): too few indexes (%d) for emoji properties data\n", + indexesLength); + *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + + // Read the data offsets before swapping anything. + int32_t indexes[EmojiProps::IX_TOTAL_SIZE + 1]; + indexes[0] = cpTrieOffset; + for (int32_t i = 1; i <= EmojiProps::IX_TOTAL_SIZE; ++i) { + indexes[i] = udata_readInt32(ds, inIndexes[i]); + } + int32_t size = indexes[EmojiProps::IX_TOTAL_SIZE]; + + if (length >= 0) { + if (length < size) { + udata_printError(ds, + "uemoji_swap(): too few bytes (%d after header) " + "for all of emoji properties data\n", + length); + *pErrorCode = U_INDEX_OUTOFBOUNDS_ERROR; + return 0; + } + + // Copy the data for inaccessible bytes. + if (inBytes != outBytes) { + uprv_memcpy(outBytes, inBytes, size); + } + + // Swap the int32_t indexes[]. + int32_t offset = 0; + int32_t top = cpTrieOffset; + ds->swapArray32(ds, inBytes, top - offset, outBytes, pErrorCode); + offset = top; + + // Swap the code point trie. + top = indexes[EmojiProps::IX_CPTRIE_OFFSET + 1]; + int32_t count = top - offset; + U_ASSERT(count >= 0); + if (count >= 16) { + utrie_swapAnyVersion(ds, inBytes + offset, count, outBytes + offset, pErrorCode); + } + offset = top; + + // Swap all of the string tries. + // They are all serialized as arrays of 16-bit units. + offset = indexes[EmojiProps::IX_BASIC_EMOJI_TRIE_OFFSET]; + top = indexes[EmojiProps::IX_RGI_EMOJI_ZWJ_SEQUENCE_TRIE_OFFSET + 1]; + ds->swapArray16(ds, inBytes + offset, top - offset, outBytes + offset, pErrorCode); + offset = top; + + U_ASSERT(offset == size); + } + + return headerSize + size; +} + /* Swap 'Test' data from gentest */ static int32_t U_CALLCONV test_swap(const UDataSwapper *ds, @@ -836,6 +946,8 @@ static const struct { { { ULAYOUT_FMT_0, ULAYOUT_FMT_1, ULAYOUT_FMT_2, ULAYOUT_FMT_3 }, ulayout_swap }, // dataFormat="Layo" + { { u'E', u'm', u'o', u'j' }, uemoji_swap }, + #if !UCONFIG_NO_COLLATION { { 0x55, 0x43, 0x6f, 0x6c }, ucol_swap }, /* dataFormat="UCol" */ { { 0x49, 0x6e, 0x76, 0x43 }, ucol_swapInverseUCA },/* dataFormat="InvC" */ diff --git a/deps/icu-small/source/tools/toolutil/toolutil.cpp b/deps/icu-small/source/tools/toolutil/toolutil.cpp index 0ce9b02115dd32..1fc68aa69c84ff 100644 --- a/deps/icu-small/source/tools/toolutil/toolutil.cpp +++ b/deps/icu-small/source/tools/toolutil/toolutil.cpp @@ -16,7 +16,7 @@ * created by: Markus W. Scherer * * 6/25/08 - Added Cygwin specific code in uprv_mkdir - Brian Rower -* +* * This file contains utility functions for ICU tools like genccode. */ @@ -30,6 +30,8 @@ #include #include +#include +#include #include "unicode/utypes.h" #ifndef U_TOOLUTIL_IMPLEMENTATION @@ -67,7 +69,6 @@ #include "cmemory.h" #include "cstring.h" #include "toolutil.h" -#include "unicode/ucal.h" U_NAMESPACE_BEGIN @@ -86,19 +87,11 @@ U_NAMESPACE_END static int32_t currentYear = -1; U_CAPI int32_t U_EXPORT2 getCurrentYear() { -#if !UCONFIG_NO_FORMATTING - UErrorCode status=U_ZERO_ERROR; - UCalendar *cal = NULL; - if(currentYear == -1) { - cal = ucal_open(NULL, -1, NULL, UCAL_TRADITIONAL, &status); - ucal_setMillis(cal, ucal_getNow(), &status); - currentYear = ucal_get(cal, UCAL_YEAR, &status); - ucal_close(cal); + time_t now = time(nullptr); + tm *fields = gmtime(&now); + currentYear = 1900 + fields->tm_year; } -#else - /* No formatting- no way to set the current year. */ -#endif return currentYear; } @@ -218,6 +211,37 @@ uprv_fileExists(const char *file) { } #endif +U_CAPI int32_t U_EXPORT2 +uprv_compareGoldenFiles( + const char* buffer, int32_t bufferLen, + const char* goldenFilePath, + bool overwrite) { + + if (overwrite) { + std::ofstream ofs; + ofs.open(goldenFilePath); + ofs.write(buffer, bufferLen); + ofs.close(); + return -1; + } + + std::ifstream ifs(goldenFilePath, std::ifstream::in); + int32_t pos = 0; + char c; + while ((c = ifs.get()) != std::char_traits::eof() && pos < bufferLen) { + if (c != buffer[pos]) { + // Files differ at this position + return pos; + } + pos++; + } + if (pos < bufferLen || c != std::char_traits::eof()) { + // Files are different lengths + return pos; + } + return -1; +} + /*U_CAPI UDate U_EXPORT2 uprv_getModificationDate(const char *pathname, UErrorCode *status) { @@ -226,7 +250,7 @@ uprv_getModificationDate(const char *pathname, UErrorCode *status) } // TODO: handle case where stat is not available struct stat st; - + if(stat(pathname,&st) != 0) { *status = U_FILE_ACCESS_ERROR; diff --git a/deps/icu-small/source/tools/toolutil/toolutil.h b/deps/icu-small/source/tools/toolutil/toolutil.h index 1d0d26c97477c5..1c9f06758ff60d 100644 --- a/deps/icu-small/source/tools/toolutil/toolutil.h +++ b/deps/icu-small/source/tools/toolutil/toolutil.h @@ -48,7 +48,7 @@ class U_TOOLUTIL_API IcuToolErrorCode : public ErrorCode { IcuToolErrorCode(const char *loc) : location(loc) {} virtual ~IcuToolErrorCode(); protected: - virtual void handleFailure() const; + virtual void handleFailure() const override; private: const char *location; }; @@ -87,13 +87,13 @@ findBasename(const char *filename); /** * Find the directory name of a pathname, that is, everything - * up to but not including the last file separator. + * up to but not including the last file separator. * * If successful, copies the directory name into the output buffer along with - * a terminating NULL. + * a terminating NULL. * * If there isn't a directory name in the path, it returns an empty string. - * @param path the full pathname to inspect. + * @param path the full pathname to inspect. * @param buffer the output buffer * @param bufLen the output buffer length * @param status error code- may return U_BUFFER_OVERFLOW_ERROR if bufLen is too small. @@ -126,6 +126,21 @@ U_CAPI UBool U_EXPORT2 uprv_fileExists(const char *file); #endif +/** + * Performs a golden data test. Asserts that the contents of the buffer is equal + * to the data in goldenFilePath. + * + * Pass the value of the -G flag to "overwrite"; if true, new goldens will be + * written to the filesystem. + * + * @return The first index at which the files differ, or -1 if they are the same. + */ +U_CAPI int32_t U_EXPORT2 +uprv_compareGoldenFiles( + const char* buffer, int32_t bufferLen, + const char* goldenFilePath, + bool overwrite); + /** * Return the modification date for the specified file or directory. * Return value is undefined if there was an error. diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.cpp b/deps/icu-small/source/tools/toolutil/ucbuf.cpp index 195963c78c5af9..c8e906f2d55324 100644 --- a/deps/icu-small/source/tools/toolutil/ucbuf.cpp +++ b/deps/icu-small/source/tools/toolutil/ucbuf.cpp @@ -64,7 +64,7 @@ ucbuf_autodetect_fs(FileStream* in, const char** cp, UConverter** conv, int32_t* numRead=T_FileStream_read(in, start, sizeof(start)); *cp = ucnv_detectUnicodeSignature(start, numRead, signatureLength, error); - + /* unread the bytes beyond what was consumed for U+FEFF */ T_FileStream_rewind(in); if (*signatureLength > 0) { @@ -94,7 +94,7 @@ ucbuf_autodetect_fs(FileStream* in, const char** cp, UConverter** conv, int32_t* } - return TRUE; + return TRUE; } static UBool ucbuf_isCPKnown(const char* cp){ if(ucnv_compareNames("UTF-8",cp)==0){ @@ -142,7 +142,7 @@ ucbuf_autodetect(const char* fileName, const char** cp,UConverter** conv, int32_ } /* open the file */ in= T_FileStream_open(fileName,"rb"); - + if(in == NULL){ *error=U_FILE_ACCESS_ERROR; return NULL; @@ -186,13 +186,13 @@ ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){ /* read the file */ inputRead=T_FileStream_read(buf->in,cbuf,cbufSize-offset); buf->remaining-=inputRead; - + }else{ cbufSize = T_FileStream_size(buf->in); cbuf = (char*)uprv_malloc(cbufSize); if (cbuf == NULL) { - *error = U_MEMORY_ALLOCATION_ERROR; - return NULL; + *error = U_MEMORY_ALLOCATION_ERROR; + return NULL; } inputRead= T_FileStream_read(buf->in,cbuf,cbufSize); buf->remaining-=inputRead; @@ -233,7 +233,7 @@ ucbuf_fillucbuf( UCHARBUF* buf,UErrorCode* error){ int32_t pos =0; /* use erro1 to preserve the error code */ UErrorCode error1 =U_ZERO_ERROR; - + if( buf->showWarning==TRUE){ fprintf(stderr,"\n###WARNING: Encountered abnormal bytes while" " converting input stream to target encoding: %s\n", @@ -422,7 +422,7 @@ ucbuf_getcx32(UCHARBUF* buf,UErrorCode* error) { char context[CONTEXT_LEN+1]; int32_t len = CONTEXT_LEN; if(length < len) { - len = length; + len = length; } context[len]= 0 ; /* null terminate the buffer */ u_UCharsToChars( buf->currentPos, context, len); @@ -437,7 +437,7 @@ ucbuf_getcx32(UCHARBUF* buf,UErrorCode* error) { /* unescaping failed so we just return * c1 and not consume the buffer * this is useful for rules with escapes - * in resouce bundles + * in resource bundles * eg: \' \\ \" */ return c1; @@ -449,7 +449,7 @@ ucbuf_getcx32(UCHARBUF* buf,UErrorCode* error) { U_CAPI UCHARBUF* U_EXPORT2 ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffered, UErrorCode* error){ - FileStream* in = NULL; + FileStream* in = NULL; int32_t fileSize=0; const char* knownCp; if(error==NULL || U_FAILURE(*error)){ @@ -461,10 +461,10 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere } if (!uprv_strcmp(fileName, "-")) { in = T_FileStream_stdin(); - }else{ + }else{ in = T_FileStream_open(fileName, "rb"); } - + if(in!=NULL){ UCHARBUF* buf =(UCHARBUF*) uprv_malloc(sizeof(UCHARBUF)); fileSize = T_FileStream_size(in); @@ -494,7 +494,7 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere T_FileStream_close(in); return NULL; } - + if((buf->conv==NULL) && (buf->showWarning==TRUE)){ fprintf(stderr,"###WARNING: No converter defined. Using codepage of system.\n"); } @@ -502,7 +502,7 @@ ucbuf_open(const char* fileName,const char** cp,UBool showWarning, UBool buffere if(buf->isBuffered){ buf->bufCapacity=MAX_U_BUF; }else{ - buf->bufCapacity=buf->remaining+buf->signatureLength+1/*for terminating nul*/; + buf->bufCapacity=buf->remaining+buf->signatureLength+1/*for terminating nul*/; } buf->buffer=(UChar*) uprv_malloc(U_SIZEOF_UCHAR * buf->bufCapacity ); if (buf->buffer == NULL) { @@ -663,8 +663,8 @@ ucbuf_resolveFileName(const char* inputDir, const char* fileName, char* target, target[0] = '\0'; /* - * append the input dir to openFileName if the first char in - * filename is not file seperation char and the last char input directory is not '.'. + * append the input dir to openFileName if the first char in + * filename is not file separation char and the last char input directory is not '.'. * This is to support : * genrb -s. /home/icu/data * genrb -s. icu/data @@ -685,7 +685,7 @@ ucbuf_resolveFileName(const char* inputDir, const char* fileName, char* target, *status = U_BUFFER_OVERFLOW_ERROR; return NULL; } - + uprv_strcpy(target, inputDir); } @@ -695,8 +695,8 @@ ucbuf_resolveFileName(const char* inputDir, const char* fileName, char* target, /* * Unicode TR 13 says any of the below chars is * a new line char in a readline function in addition - * to CR+LF combination which needs to be - * handled seperately + * to CR+LF combination which needs to be + * handled separately */ static UBool ucbuf_isCharNewLine(UChar c){ switch(c){ @@ -732,7 +732,7 @@ ucbuf_readline(UCHARBUF* buf,int32_t* len,UErrorCode* err){ }else{ ucbuf_fillucbuf(buf,err); if(U_FAILURE(*err)){ - return NULL; + return NULL; } } /* @@ -761,7 +761,7 @@ ucbuf_readline(UCHARBUF* buf,int32_t* len,UErrorCode* err){ */ for(;;){ c = *temp++; - + if(buf->currentPos==buf->bufLimit){ return NULL; /* end of file is reached return NULL */ } diff --git a/deps/icu-small/source/tools/toolutil/ucbuf.h b/deps/icu-small/source/tools/toolutil/ucbuf.h index a854150bfba95b..9214d419711213 100644 --- a/deps/icu-small/source/tools/toolutil/ucbuf.h +++ b/deps/icu-small/source/tools/toolutil/ucbuf.h @@ -124,7 +124,7 @@ ucbuf_rewind(UCHARBUF* buf,UErrorCode* err); /** * Returns a pointer to the internal converted buffer * @param buf Pointer to UCHARBUF structure - * @param len Pointer to int32_t to receive the lenth of buffer + * @param len Pointer to int32_t to receive the length of buffer * @param err is a pointer to a valid UErrorCode value. If this value * indicates a failure on entry, the function will immediately return. * On exit the value will indicate the success of the operation. @@ -215,3 +215,4 @@ ucbuf_resolveFileName(const char* inputDir, const char* fileName, char* target, #endif #endif + diff --git a/deps/icu-small/source/tools/toolutil/ucm.h b/deps/icu-small/source/tools/toolutil/ucm.h index 3af939758552d7..04e6b2030def41 100644 --- a/deps/icu-small/source/tools/toolutil/ucm.h +++ b/deps/icu-small/source/tools/toolutil/ucm.h @@ -299,3 +299,4 @@ U_CDECL_END #endif #endif + diff --git a/deps/icu-small/source/tools/toolutil/ucmstate.cpp b/deps/icu-small/source/tools/toolutil/ucmstate.cpp index 206c2f172eb1c5..1ff2d7d19323b3 100644 --- a/deps/icu-small/source/tools/toolutil/ucmstate.cpp +++ b/deps/icu-small/source/tools/toolutil/ucmstate.cpp @@ -101,7 +101,7 @@ parseState(const char *s, int32_t state[256], uint32_t *pFlags) { end=start; } - /* determine the state entrys for this range */ + /* determine the state entry for this range */ if(*s!=':' && *s!='.') { /* the default is: final state with valid entries */ entry=MBCS_ENTRY_FINAL(0, MBCS_STATE_VALID_16, 0); @@ -1050,3 +1050,4 @@ ucm_countChars(UCMStates *states, return count; } #endif + diff --git a/deps/icu-small/source/tools/toolutil/unewdata.cpp b/deps/icu-small/source/tools/toolutil/unewdata.cpp index 20f13be5b83ef1..43ff16b6eec8c5 100644 --- a/deps/icu-small/source/tools/toolutil/unewdata.cpp +++ b/deps/icu-small/source/tools/toolutil/unewdata.cpp @@ -71,9 +71,9 @@ udata_create(const char *dir, const char *type, const char *name, length = 0; /* Start with nothing */ if(dir != NULL && *dir !=0) /* Add directory length if one was given */ { - length += static_cast(strlen(dir)); + length += static_cast(strlen(dir)); - /* Add 1 if dir doesn't end with path sep */ + /* Add 1 if dir doesn't end with path sep */ if (dir[strlen(dir) - 1]!= dirSepChar) { length++; } @@ -88,8 +88,8 @@ udata_create(const char *dir, const char *type, const char *name, /* LDH buffer Length error check */ if(length > ((int32_t)sizeof(filename) - 1)) { - *pErrorCode = U_BUFFER_OVERFLOW_ERROR; - uprv_free(pData); + *pErrorCode = U_BUFFER_OVERFLOW_ERROR; + uprv_free(pData); return NULL; } @@ -283,3 +283,4 @@ udata_writeUString(UNewDataMemory *pData, const UChar *s, int32_t length) { * End: * */ + diff --git a/deps/icu-small/source/tools/toolutil/uoptions.h b/deps/icu-small/source/tools/toolutil/uoptions.h index a7a2e96c61b19f..d00e3da924ac66 100644 --- a/deps/icu-small/source/tools/toolutil/uoptions.h +++ b/deps/icu-small/source/tools/toolutil/uoptions.h @@ -57,7 +57,7 @@ struct UOption { void *context; /* parameter for the function */ char shortName; /* 'f' for -f */ char hasArg; /* enum value: option takes no/requires/may have argument */ - char doesOccur; /* boolean for "this one occured" */ + char doesOccur; /* boolean for "this one occurred" */ }; /* macro for an entry in a declaration of UOption[] */ @@ -130,7 +130,7 @@ struct UOption { * where the error was detected. * * The OS/400 compiler requires that argv either be "char* argv[]", - * or "const char* const argv[]", and it will not accept, + * or "const char* const argv[]", and it will not accept, * "const char* argv[]" as a definition for main(). * * @param argv This parameter is modified diff --git a/deps/icu-small/source/tools/toolutil/uparse.cpp b/deps/icu-small/source/tools/toolutil/uparse.cpp index a932c171246435..486fcc9a98530e 100644 --- a/deps/icu-small/source/tools/toolutil/uparse.cpp +++ b/deps/icu-small/source/tools/toolutil/uparse.cpp @@ -370,7 +370,7 @@ u_parseUTF8(const char *source, int32_t sLen, char *dest, int32_t destCapacity, if(sLen == -1) { sLen = (int32_t)strlen(source); } - + while(read < source+sLen) { sscanf(read, "%2x", &value); if(i < destCapacity) { diff --git a/deps/icu-small/source/tools/toolutil/writesrc.cpp b/deps/icu-small/source/tools/toolutil/writesrc.cpp index 1a1dd3964d34a2..143254a7f34518 100644 --- a/deps/icu-small/source/tools/toolutil/writesrc.cpp +++ b/deps/icu-small/source/tools/toolutil/writesrc.cpp @@ -23,13 +23,25 @@ #include "unicode/utypes.h" #include "unicode/putil.h" #include "unicode/ucptrie.h" +#include "unicode/errorcode.h" +#include "unicode/uniset.h" +#include "unicode/usetiter.h" +#include "unicode/utf16.h" #include "utrie2.h" #include "cstring.h" #include "writesrc.h" +#include "util.h" + +U_NAMESPACE_BEGIN + +ValueNameGetter::~ValueNameGetter() {} + +U_NAMESPACE_END + +U_NAMESPACE_USE static FILE * -usrc_createWithHeader(const char *path, const char *filename, - const char *header, const char *generator) { +usrc_createWithoutHeader(const char *path, const char *filename) { char buffer[1024]; const char *p; char *q; @@ -50,19 +62,7 @@ usrc_createWithHeader(const char *path, const char *filename, } f=fopen(p, "w"); - if(f!=NULL) { - const struct tm *lt; - time_t t; - - time(&t); - lt=localtime(&t); - if(generator==NULL) { - strftime(buffer, sizeof(buffer), "%Y-%m-%d", lt); - fprintf(f, header, filename, buffer); - } else { - fprintf(f, header, filename, generator); - } - } else { + if (f==NULL) { fprintf( stderr, "usrc_create(%s, %s): unable to create file\n", @@ -73,55 +73,72 @@ usrc_createWithHeader(const char *path, const char *filename, U_CAPI FILE * U_EXPORT2 usrc_create(const char *path, const char *filename, int32_t copyrightYear, const char *generator) { - const char *header; - char buffer[200]; - if(copyrightYear<=2016) { - header= - "// © 2016 and later: Unicode, Inc. and others.\n" - "// License & terms of use: http://www.unicode.org/copyright.html\n" - "//\n" - "// Copyright (C) 1999-2016, International Business Machines\n" - "// Corporation and others. All Rights Reserved.\n" - "//\n" - "// file name: %s\n" - "//\n" - "// machine-generated by: %s\n" - "\n\n"; - } else { - sprintf(buffer, - "// © %d and later: Unicode, Inc. and others.\n" - "// License & terms of use: http://www.unicode.org/copyright.html\n" - "//\n" - "// file name: %%s\n" - "//\n" - "// machine-generated by: %%s\n" - "\n\n", - (int)copyrightYear); - header=buffer; + FILE *f = usrc_createWithoutHeader(path, filename); + if (f == NULL) { + return f; } - return usrc_createWithHeader(path, filename, header, generator); + usrc_writeCopyrightHeader(f, "//", copyrightYear); + usrc_writeFileNameGeneratedBy(f, "//", filename, generator); + return f; } U_CAPI FILE * U_EXPORT2 -usrc_createTextData(const char *path, const char *filename, const char *generator) { - // TODO: Add parameter for the first year this file was generated, not before 2016. - static const char *header= - "# Copyright (C) 2016 and later: Unicode, Inc. and others.\n" - "# License & terms of use: http://www.unicode.org/copyright.html\n" - "# Copyright (C) 1999-2016, International Business Machines\n" - "# Corporation and others. All Rights Reserved.\n" - "#\n" - "# file name: %s\n" - "#\n" - "# machine-generated by: %s\n" - "\n\n"; - return usrc_createWithHeader(path, filename, header, generator); +usrc_createTextData(const char *path, const char *filename, int32_t copyrightYear, const char *generator) { + FILE *f = usrc_createWithoutHeader(path, filename); + if (f == NULL) { + return f; + } + usrc_writeCopyrightHeader(f, "#", copyrightYear); + usrc_writeFileNameGeneratedBy(f, "#", filename, generator); + return f; +} + +U_CAPI void U_EXPORT2 +usrc_writeCopyrightHeader(FILE *f, const char *prefix, int32_t copyrightYear) { + fprintf(f, + "%s Copyright (C) %d and later: Unicode, Inc. and others.\n" + "%s License & terms of use: http://www.unicode.org/copyright.html\n", + prefix, copyrightYear, prefix); + if (copyrightYear <= 2016) { + fprintf(f, + "%s Copyright (C) 1999-2016, International Business Machines\n" + "%s Corporation and others. All Rights Reserved.\n", + prefix, prefix); + } +} + +U_CAPI void U_EXPORT2 +usrc_writeFileNameGeneratedBy( + FILE *f, + const char *prefix, + const char *filename, + const char *generator) { + char buffer[1024]; + const struct tm *lt; + time_t t; + + const char *pattern = + "%s\n" + "%s file name: %s\n" + "%s\n" + "%s machine-generated by: %s\n" + "\n"; + + time(&t); + lt=localtime(&t); + if(generator==NULL) { + strftime(buffer, sizeof(buffer), "%Y-%m-%d", lt); + fprintf(f, pattern, prefix, prefix, filename, prefix, prefix, buffer); + } else { + fprintf(f, pattern, prefix, prefix, filename, prefix, prefix, generator); + } } U_CAPI void U_EXPORT2 usrc_writeArray(FILE *f, const char *prefix, const void *p, int32_t width, int32_t length, + const char *indent, const char *postfix) { const uint8_t *p8; const uint16_t *p16; @@ -155,6 +172,7 @@ usrc_writeArray(FILE *f, fputc(',', f); } else { fputs(",\n", f); + fputs(indent, f); col=0; } } @@ -186,11 +204,11 @@ usrc_writeUTrie2Arrays(FILE *f, const char *postfix) { if(pTrie->data32==NULL) { /* 16-bit trie */ - usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength+pTrie->dataLength, postfix); + usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength+pTrie->dataLength, "", postfix); } else { /* 32-bit trie */ - usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, postfix); - usrc_writeArray(f, data32Prefix, pTrie->data32, 32, pTrie->dataLength, postfix); + usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, "", postfix); + usrc_writeArray(f, data32Prefix, pTrie->data32, 32, pTrie->dataLength, "", postfix); } } @@ -211,7 +229,7 @@ usrc_writeUTrie2Struct(FILE *f, " %s+%ld,\n" /* data16 */ " NULL,\n", /* data32 */ indexName, - indexName, + indexName, (long)pTrie->indexLength); } else { /* 32-bit trie */ @@ -247,13 +265,15 @@ U_CAPI void U_EXPORT2 usrc_writeUCPTrieArrays(FILE *f, const char *indexPrefix, const char *dataPrefix, const UCPTrie *pTrie, - const char *postfix) { - usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, postfix); + const char *postfix, + UTargetSyntax syntax) { + const char* indent = (syntax == UPRV_TARGET_SYNTAX_TOML) ? " " : ""; + usrc_writeArray(f, indexPrefix, pTrie->index, 16, pTrie->indexLength, indent, postfix); int32_t width= pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 : pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 : pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0; - usrc_writeArray(f, dataPrefix, pTrie->data.ptr0, width, pTrie->dataLength, postfix); + usrc_writeArray(f, dataPrefix, pTrie->data.ptr0, width, pTrie->dataLength, indent, postfix); } U_CAPI void U_EXPORT2 @@ -261,24 +281,41 @@ usrc_writeUCPTrieStruct(FILE *f, const char *prefix, const UCPTrie *pTrie, const char *indexName, const char *dataName, - const char *postfix) { + const char *postfix, + UTargetSyntax syntax) { if(prefix!=NULL) { fputs(prefix, f); } - fprintf( - f, - " %s,\n" // index - " { %s },\n", // data (union) - indexName, - dataName); - fprintf( - f, + if (syntax == UPRV_TARGET_SYNTAX_CCODE) { + fprintf( + f, + " %s,\n" // index + " { %s },\n", // data (union) + indexName, + dataName); + } + const char* pattern = + (syntax == UPRV_TARGET_SYNTAX_CCODE) ? " %ld, %ld,\n" // indexLength, dataLength " 0x%lx, 0x%x,\n" // highStart, shifted12HighStart " %d, %d,\n" // type, valueWidth " 0, 0,\n" // reserved32, reserved16 " 0x%x, 0x%lx,\n" // index3NullOffset, dataNullOffset - " 0x%lx,\n", // nullValue + " 0x%lx,\n" // nullValue + : + "indexLength = %ld\n" + "dataLength = %ld\n" + "highStart = 0x%lx\n" + "shifted12HighStart = 0x%x\n" + "type = %d\n" + "valueWidth = %d\n" + "index3NullOffset = 0x%x\n" + "dataNullOffset = 0x%lx\n" + "nullValue = 0x%lx\n" + ; + fprintf( + f, + pattern, (long)pTrie->indexLength, (long)pTrie->dataLength, (long)pTrie->highStart, pTrie->shifted12HighStart, pTrie->type, pTrie->valueWidth, @@ -290,19 +327,107 @@ usrc_writeUCPTrieStruct(FILE *f, } U_CAPI void U_EXPORT2 -usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie) { +usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie, UTargetSyntax syntax) { int32_t width= pTrie->valueWidth==UCPTRIE_VALUE_BITS_16 ? 16 : pTrie->valueWidth==UCPTRIE_VALUE_BITS_32 ? 32 : pTrie->valueWidth==UCPTRIE_VALUE_BITS_8 ? 8 : 0; - char line[100], line2[100], line3[100]; - sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", name); - sprintf(line2, "static const uint%d_t %s_trieData[%%ld]={\n", (int)width, name); - usrc_writeUCPTrieArrays(f, line, line2, pTrie, "\n};\n\n"); - sprintf(line, "static const UCPTrie %s_trie={\n", name); - sprintf(line2, "%s_trieIndex", name); - sprintf(line3, "%s_trieData", name); - usrc_writeUCPTrieStruct(f, line, pTrie, line2, line3, "};\n\n"); + char line[100], line2[100], line3[100], line4[100]; + + switch (syntax) { + case UPRV_TARGET_SYNTAX_CCODE: + sprintf(line, "static const uint16_t %s_trieIndex[%%ld]={\n", name); + sprintf(line2, "static const uint%d_t %s_trieData[%%ld]={\n", (int)width, name); + sprintf(line3, "\n};\n\n"); + break; + case UPRV_TARGET_SYNTAX_TOML: + sprintf(line, "index = [\n "); + sprintf(line2, "data_%d = [\n ", (int)width); + sprintf(line3, "\n]\n"); + break; + default: + UPRV_UNREACHABLE_EXIT; + } + usrc_writeUCPTrieArrays(f, line, line2, pTrie, line3, syntax); + + switch (syntax) { + case UPRV_TARGET_SYNTAX_CCODE: + sprintf(line, "static const UCPTrie %s_trie={\n", name); + sprintf(line2, "%s_trieIndex", name); + sprintf(line3, "%s_trieData", name); + sprintf(line4, "};\n\n"); + break; + case UPRV_TARGET_SYNTAX_TOML: + line[0] = 0; + line2[0] = 0; + line3[0] = 0; + line4[0] = 0; + break; + default: + UPRV_UNREACHABLE_EXIT; + } + usrc_writeUCPTrieStruct(f, line, pTrie, line2, line3, line4, syntax); +} + +U_CAPI void U_EXPORT2 +usrc_writeUnicodeSet( + FILE *f, + const USet *pSet, + UTargetSyntax syntax) { + // ccode is not yet supported + U_ASSERT(syntax == UPRV_TARGET_SYNTAX_TOML); + + // Write out a list of ranges + const UnicodeSet* set = UnicodeSet::fromUSet(pSet); + UnicodeSetIterator it(*set); + fprintf(f, "# Inclusive ranges of the code points in the set.\n"); + fprintf(f, "ranges = [\n"); + bool seenFirstString = false; + while (it.nextRange()) { + if (it.isString()) { + if (!seenFirstString) { + seenFirstString = true; + fprintf(f, "]\nstrings = [\n"); + } + const UnicodeString& str = it.getString(); + fprintf(f, " "); + usrc_writeStringAsASCII(f, str.getBuffer(), str.length(), syntax); + fprintf(f, ",\n"); + } else { + U_ASSERT(!seenFirstString); + UChar32 start = it.getCodepoint(); + UChar32 end = it.getCodepointEnd(); + fprintf(f, " [0x%x, 0x%x],\n", start, end); + } + } + fprintf(f, "]\n"); +} + +U_CAPI void U_EXPORT2 +usrc_writeUCPMap( + FILE *f, + const UCPMap *pMap, + icu::ValueNameGetter *valueNameGetter, + UTargetSyntax syntax) { + // ccode is not yet supported + U_ASSERT(syntax == UPRV_TARGET_SYNTAX_TOML); + (void) syntax; // silence unused variable errors + + // Print out list of ranges + UChar32 start = 0, end; + uint32_t value; + fprintf(f, "# Code points `a` through `b` have value `v`, corresponding to `name`.\n"); + fprintf(f, "ranges = [\n"); + while ((end = ucpmap_getRange(pMap, start, UCPMAP_RANGE_NORMAL, 0, nullptr, nullptr, &value)) >= 0) { + if (valueNameGetter != nullptr) { + const char *name = valueNameGetter->getName(value); + fprintf(f, " {a=0x%x, b=0x%x, v=%u, name=\"%s\"},\n", start, end, value, name); + } else { + fprintf(f, " {a=0x%x, b=0x%x, v=%u},\n", start, end, value); + } + start = end + 1; + } + fprintf(f, "]\n"); } U_CAPI void U_EXPORT2 @@ -321,7 +446,7 @@ usrc_writeArrayOfMostlyInvChars(FILE *f, c=(uint8_t)p[i]; if(i>0) { /* Break long lines. Try to break at interesting places, to minimize revision diffs. */ - if( + if( /* Very long line. */ col>=32 || /* Long line, break after terminating NUL. */ @@ -343,3 +468,30 @@ usrc_writeArrayOfMostlyInvChars(FILE *f, fputs(postfix, f); } } + +U_CAPI void U_EXPORT2 +usrc_writeStringAsASCII(FILE *f, + const UChar* ptr, int32_t length, + UTargetSyntax) { + // For now, assume all UTargetSyntax values are valid here. + fprintf(f, "\""); + int32_t i = 0; + UChar32 cp; + while (i < length) { + U16_NEXT(ptr, i, length, cp); + if (cp == u'"') { + fprintf(f, "\\\""); + } else if (ICU_Utility::isUnprintable(cp)) { + UnicodeString u16result; + ICU_Utility::escapeUnprintable(u16result, cp); + std::string u8result; + u16result.toUTF8String(u8result); + fprintf(f, "%s", u8result.data()); + } else { + U_ASSERT(cp < 0x80); + char s[2] = {static_cast(cp), 0}; + fprintf(f, "%s", s); + } + } + fprintf(f, "\""); +} diff --git a/deps/icu-small/source/tools/toolutil/writesrc.h b/deps/icu-small/source/tools/toolutil/writesrc.h index 35ba256793c03a..784a9b9c7a7589 100644 --- a/deps/icu-small/source/tools/toolutil/writesrc.h +++ b/deps/icu-small/source/tools/toolutil/writesrc.h @@ -23,9 +23,21 @@ #include #include "unicode/utypes.h" +#include "unicode/ucpmap.h" #include "unicode/ucptrie.h" +#include "unicode/umutablecptrie.h" +#include "unicode/uset.h" #include "utrie2.h" +/** + * An input to some of the functions in this file specifying whether to write data + * as C/C++ code initializers or as TOML. + */ +typedef enum UTargetSyntax { + UPRV_TARGET_SYNTAX_CCODE = 0, + UPRV_TARGET_SYNTAX_TOML = 1, +} UTargetSyntax; + /** * Creates a source text file and writes a header comment with the ICU copyright. * Writes a C/Java-style comment with the generator name. @@ -38,7 +50,23 @@ usrc_create(const char *path, const char *filename, int32_t copyrightYear, const * Writes the comment with # lines, as used in scripts and text data. */ U_CAPI FILE * U_EXPORT2 -usrc_createTextData(const char *path, const char *filename, const char *generator); +usrc_createTextData(const char *path, const char *filename, int32_t copyrightYear, const char *generator); + +/** + * Writes the ICU copyright to a file stream, with configurable year and comment style. + */ +U_CAPI void U_EXPORT2 +usrc_writeCopyrightHeader(FILE *f, const char *prefix, int32_t copyrightYear); + +/** + * Writes information about the file being machine-generated. + */ +U_CAPI void U_EXPORT2 +usrc_writeFileNameGeneratedBy( + FILE *f, + const char *prefix, + const char *filename, + const char *generator); /** * Writes the contents of an array of 8/16/32-bit words. @@ -51,6 +79,7 @@ U_CAPI void U_EXPORT2 usrc_writeArray(FILE *f, const char *prefix, const void *p, int32_t width, int32_t length, + const char *indent, const char *postfix); /** @@ -83,7 +112,8 @@ U_CAPI void U_EXPORT2 usrc_writeUCPTrieArrays(FILE *f, const char *indexPrefix, const char *dataPrefix, const UCPTrie *pTrie, - const char *postfix); + const char *postfix, + UTargetSyntax syntax); /** * Writes the UCPTrie struct values. @@ -95,13 +125,50 @@ usrc_writeUCPTrieStruct(FILE *f, const char *prefix, const UCPTrie *pTrie, const char *indexName, const char *dataName, - const char *postfix); + const char *postfix, + UTargetSyntax syntax); /** * Writes the UCPTrie arrays and struct values. */ U_CAPI void U_EXPORT2 -usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie); +usrc_writeUCPTrie(FILE *f, const char *name, const UCPTrie *pTrie, UTargetSyntax syntax); + +/** + * Writes the UnicodeSet range and string lists. + */ +U_CAPI void U_EXPORT2 +usrc_writeUnicodeSet( + FILE *f, + const USet *pSet, + UTargetSyntax syntax); + +#ifdef __cplusplus + +U_NAMESPACE_BEGIN + +class U_TOOLUTIL_API ValueNameGetter { +public: + virtual ~ValueNameGetter(); + virtual const char *getName(uint32_t value) = 0; +}; + +U_NAMESPACE_END + +/** + * Writes the UCPMap ranges list. + * + * The "valueNameGetter" argument is optional; ignored if nullptr. + * If present, it will be used to look up value name strings. + */ +U_CAPI void U_EXPORT2 +usrc_writeUCPMap( + FILE *f, + const UCPMap *pMap, + icu::ValueNameGetter *valueNameGetter, + UTargetSyntax syntax); + +#endif // __cplusplus /** * Writes the contents of an array of mostly invariant characters. @@ -119,4 +186,13 @@ usrc_writeArrayOfMostlyInvChars(FILE *f, const char *p, int32_t length, const char *postfix); +/** + * Writes a syntactically valid Unicode string in all ASCII, escaping quotes + * and non-ASCII characters. + */ +U_CAPI void U_EXPORT2 +usrc_writeStringAsASCII(FILE *f, + const UChar* ptr, int32_t length, + UTargetSyntax syntax); + #endif diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.cpp b/deps/icu-small/source/tools/toolutil/xmlparser.cpp index d421a79ead6f2b..a6569903bcdf97 100644 --- a/deps/icu-small/source/tools/toolutil/xmlparser.cpp +++ b/deps/icu-small/source/tools/toolutil/xmlparser.cpp @@ -64,67 +64,67 @@ UXMLParser::UXMLParser(UErrorCode &status) : // This is a sloppy implementation - just look for the leading // allow for a possible leading BOM. mXMLDecl(UnicodeString("(?s)\\uFEFF?<\\?xml.+?\\?>", -1, US_INV), 0, status), - + // XML Comment production #15 // example: " // note, does not detect an illegal "--" within comments mXMLComment(UnicodeString("(?s)", -1, US_INV), 0, status), - + // XML Spaces // production [3] mXMLSP(UnicodeString(XML_SPACES "+", -1, US_INV), 0, status), - + // XML Doctype decl production #28 // example " // or " // TODO: we don't actually parse the DOCTYPE or internal subsets. // Some internal dtd subsets could confuse this simple-minded // attempt at skipping over them, specifically, occurrences - // of closeing square brackets. These could appear in comments, + // of closing square brackets. These could appear in comments, // or in parameter entity declarations, for example. mXMLDoctype(UnicodeString( "(?s)|\\[.*?\\].*?>)", -1, US_INV ), 0, status), - + // XML PI production #16 // example " mXMLPI(UnicodeString("(?s)<\\?.+?\\?>", -1, US_INV), 0, status), - + // XML Element Start Productions #40, #41 // example // capture #1: the tag name // mXMLElemStart (UnicodeString("(?s)<(" XML_NAME ")" // match "", -1, US_INV), 0, status), // match " >" - + // XML Element End production #42 // example mXMLElemEnd (UnicodeString("", -1, US_INV), 0, status), - + // XML Element Empty production #44 // example mXMLElemEmpty (UnicodeString("(?s)<(" XML_NAME ")" // match "", -1, US_INV), 0, status), // match " />" - + // XMLCharData. Everything but '<'. Note that & will be dealt with later. mXMLCharData(UnicodeString("(?s)[^<]*", -1, US_INV), 0, status), // Attribute name = "value". XML Productions 10, 40/41 - // Capture group 1 is name, + // Capture group 1 is name, // 2 is the attribute value, including the quotes. // // Note that attributes are scanned twice. The first time is with // the regex for an entire element start. There, the attributes - // are checked syntactically, but not separted out one by one. + // are checked syntactically, but not separated out one by one. // Here, we match a single attribute, and make its name and // attribute value available to the parser code. mAttrValue(UnicodeString(XML_SPACES "+(" XML_NAME ")" XML_SPACES "*=" XML_SPACES "*" @@ -501,8 +501,8 @@ UXMLParser::createElement(RegexMatcher &mEl, UErrorCode &status) { // that parsed the attribute, which couldn't conveniently strip them. attValue.remove(0,1); // one char from the beginning attValue.truncate(attValue.length()-1); // and one from the end. - - // XML Attribue value normalization. + + // XML Attribute value normalization. // This is one of the really screwy parts of the XML spec. // See http://www.w3.org/TR/2004/REC-xml11-20040204/#AVNormalize // Note that non-validating parsers must treat all entities as type CDATA @@ -569,7 +569,7 @@ UXMLParser::scanContent(UErrorCode &status) { // Normalize the new-lines. (Before char ref substitution) mNewLineNormalizer.reset(result); result = mNewLineNormalizer.replaceAll(fOneLF, status); - + // TODO: handle CDATA fPos = mXMLCharData.end(0, status); } @@ -592,7 +592,7 @@ UXMLParser::replaceCharRefs(UnicodeString &s, UErrorCode &status) { mAmps.reset(s); // See the initialization for the regex matcher mAmps. // Which entity we've matched is determined by which capture group has content, - // which is flaged by start() of that group not being -1. + // which is flagged by start() of that group not being -1. while (mAmps.find()) { if (mAmps.start(1, status) != -1) { replacement.setTo((UChar)x_AMP); @@ -824,3 +824,4 @@ UXMLElement::getChildElement(const UnicodeString &name) const { U_NAMESPACE_END #endif /* !UCONFIG_NO_REGULAR_EXPRESSIONS */ + diff --git a/deps/icu-small/source/tools/toolutil/xmlparser.h b/deps/icu-small/source/tools/toolutil/xmlparser.h index 72f7ec8fa84645..5a3a24c5ed92e5 100644 --- a/deps/icu-small/source/tools/toolutil/xmlparser.h +++ b/deps/icu-small/source/tools/toolutil/xmlparser.h @@ -116,7 +116,7 @@ class U_TOOLUTIL_API UXMLElement : public UObject { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. @@ -137,7 +137,7 @@ class U_TOOLUTIL_API UXMLElement : public UObject { const UXMLParser *fParser; const UnicodeString *fName; // The tag name of this element (owned by the UXMLParser) - UnicodeString fContent; // The text content of this node. All element content is + UnicodeString fContent; // The text content of this node. All element content is // concatenated even when there are intervening nested elements // (which doesn't happen with most xml files we care about) // Sections of content containing only white space are dropped, @@ -188,7 +188,7 @@ class U_TOOLUTIL_API UXMLParser : public UObject { /** * ICU "poor man's RTTI", returns a UClassID for the actual class. */ - virtual UClassID getDynamicClassID() const; + virtual UClassID getDynamicClassID() const override; /** * ICU "poor man's RTTI", returns a UClassID for this class. diff --git a/deps/nghttp2/lib/Makefile.in b/deps/nghttp2/lib/Makefile.in index 78e76e55d9683d..5653774d5d6a1c 100644 --- a/deps/nghttp2/lib/Makefile.in +++ b/deps/nghttp2/lib/Makefile.in @@ -362,6 +362,8 @@ LIBMRUBY_LIBS = @LIBMRUBY_LIBS@ LIBNGHTTP3_CFLAGS = @LIBNGHTTP3_CFLAGS@ LIBNGHTTP3_LIBS = @LIBNGHTTP3_LIBS@ LIBNGTCP2_CFLAGS = @LIBNGTCP2_CFLAGS@ +LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS = @LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@ +LIBNGTCP2_CRYPTO_BORINGSSL_LIBS = @LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@ LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS = @LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS@ LIBNGTCP2_CRYPTO_OPENSSL_LIBS = @LIBNGTCP2_CRYPTO_OPENSSL_LIBS@ LIBNGTCP2_LIBS = @LIBNGTCP2_LIBS@ @@ -408,6 +410,7 @@ PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PLATFORM_SITE_PKG = @PYTHON_PLATFORM_SITE_PKG@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ PYTHON_VERSION = @PYTHON_VERSION@ diff --git a/deps/nghttp2/lib/includes/Makefile.in b/deps/nghttp2/lib/includes/Makefile.in index 834eff24ab9c67..327e523197e4ca 100644 --- a/deps/nghttp2/lib/includes/Makefile.in +++ b/deps/nghttp2/lib/includes/Makefile.in @@ -271,6 +271,8 @@ LIBMRUBY_LIBS = @LIBMRUBY_LIBS@ LIBNGHTTP3_CFLAGS = @LIBNGHTTP3_CFLAGS@ LIBNGHTTP3_LIBS = @LIBNGHTTP3_LIBS@ LIBNGTCP2_CFLAGS = @LIBNGTCP2_CFLAGS@ +LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS = @LIBNGTCP2_CRYPTO_BORINGSSL_CFLAGS@ +LIBNGTCP2_CRYPTO_BORINGSSL_LIBS = @LIBNGTCP2_CRYPTO_BORINGSSL_LIBS@ LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS = @LIBNGTCP2_CRYPTO_OPENSSL_CFLAGS@ LIBNGTCP2_CRYPTO_OPENSSL_LIBS = @LIBNGTCP2_CRYPTO_OPENSSL_LIBS@ LIBNGTCP2_LIBS = @LIBNGTCP2_LIBS@ @@ -317,6 +319,7 @@ PYTHON_EXTRA_LDFLAGS = @PYTHON_EXTRA_LDFLAGS@ PYTHON_EXTRA_LIBS = @PYTHON_EXTRA_LIBS@ PYTHON_LIBS = @PYTHON_LIBS@ PYTHON_PLATFORM = @PYTHON_PLATFORM@ +PYTHON_PLATFORM_SITE_PKG = @PYTHON_PLATFORM_SITE_PKG@ PYTHON_PREFIX = @PYTHON_PREFIX@ PYTHON_SITE_PKG = @PYTHON_SITE_PKG@ PYTHON_VERSION = @PYTHON_VERSION@ diff --git a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h index 5f2454cfd7cbbb..c6082518c7b5fa 100644 --- a/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h +++ b/deps/nghttp2/lib/includes/nghttp2/nghttp2ver.h @@ -29,7 +29,7 @@ * @macro * Version number of the nghttp2 library release */ -#define NGHTTP2_VERSION "1.45.1" +#define NGHTTP2_VERSION "1.47.0" /** * @macro @@ -37,6 +37,6 @@ * release. This is a 24 bit number with 8 bits for major number, 8 bits * for minor and 8 bits for patch. Version 1.2.3 becomes 0x010203. */ -#define NGHTTP2_VERSION_NUM 0x012d01 +#define NGHTTP2_VERSION_NUM 0x012f00 #endif /* NGHTTP2VER_H */ diff --git a/deps/nghttp2/lib/nghttp2_buf.h b/deps/nghttp2/lib/nghttp2_buf.h index 06cce67a11bdea..45f62f16e271dc 100644 --- a/deps/nghttp2/lib/nghttp2_buf.h +++ b/deps/nghttp2/lib/nghttp2_buf.h @@ -99,7 +99,7 @@ void nghttp2_buf_free(nghttp2_buf *buf, nghttp2_mem *mem); * |new_cap|. If extensions took place, buffer pointers in |buf| will * change. * - * This function returns 0 if it succeeds, or one of the followings + * This function returns 0 if it succeeds, or one of the following * negative error codes: * * NGHTTP2_ERR_NOMEM diff --git a/deps/nghttp2/lib/nghttp2_frame.c b/deps/nghttp2/lib/nghttp2_frame.c index 382a26c818dd7b..3648b2389d7cbf 100644 --- a/deps/nghttp2/lib/nghttp2_frame.c +++ b/deps/nghttp2/lib/nghttp2_frame.c @@ -654,8 +654,6 @@ int nghttp2_frame_unpack_goaway_payload2(nghttp2_goaway *frame, var_gift_payloadlen = 0; } - payloadlen -= var_gift_payloadlen; - if (!var_gift_payloadlen) { var_gift_payload = NULL; } else { diff --git a/deps/nghttp2/lib/nghttp2_frame.h b/deps/nghttp2/lib/nghttp2_frame.h index 4b9222ac6dd685..3859926ebbcbac 100644 --- a/deps/nghttp2/lib/nghttp2_frame.h +++ b/deps/nghttp2/lib/nghttp2_frame.h @@ -46,7 +46,7 @@ #define NGHTTP2_MAX_FRAME_SIZE_MIN (1 << 14) #define NGHTTP2_MAX_PAYLOADLEN 16384 -/* The one frame buffer length for tranmission. We may use several of +/* The one frame buffer length for transmission. We may use several of them to support CONTINUATION. To account for Pad Length field, we allocate extra 1 byte, which saves extra large memcopying. */ #define NGHTTP2_FRAMEBUF_CHUNKLEN \ diff --git a/deps/nghttp2/lib/nghttp2_hd.c b/deps/nghttp2/lib/nghttp2_hd.c index 5e869315259921..30ee9b88920c0a 100644 --- a/deps/nghttp2/lib/nghttp2_hd.c +++ b/deps/nghttp2/lib/nghttp2_hd.c @@ -1263,6 +1263,8 @@ int nghttp2_hd_inflate_change_table_size( return NGHTTP2_ERR_INVALID_STATE; } + inflater->settings_hd_table_bufsize_max = settings_max_dynamic_table_size; + /* It seems that encoder is not required to send dynamic table size update if the table size is not changed after applying SETTINGS_HEADER_TABLE_SIZE. RFC 7541 is ambiguous here, but this @@ -1275,13 +1277,12 @@ int nghttp2_hd_inflate_change_table_size( /* Remember minimum value, and validate that encoder sends the value less than or equal to this. */ inflater->min_hd_table_bufsize_max = settings_max_dynamic_table_size; - } - inflater->settings_hd_table_bufsize_max = settings_max_dynamic_table_size; + inflater->ctx.hd_table_bufsize_max = settings_max_dynamic_table_size; - inflater->ctx.hd_table_bufsize_max = settings_max_dynamic_table_size; + hd_context_shrink_table_size(&inflater->ctx, NULL); + } - hd_context_shrink_table_size(&inflater->ctx, NULL); return 0; } diff --git a/deps/nghttp2/lib/nghttp2_map.c b/deps/nghttp2/lib/nghttp2_map.c index 5aab90b4daf473..e5db168ca2bc3b 100644 --- a/deps/nghttp2/lib/nghttp2_map.c +++ b/deps/nghttp2/lib/nghttp2_map.c @@ -189,6 +189,7 @@ static int map_resize(nghttp2_map *map, uint32_t new_tablelen, nghttp2_map_bucket *new_table; nghttp2_map_bucket *bkt; int rv; + (void)rv; new_table = nghttp2_mem_calloc(map->mem, new_tablelen, sizeof(nghttp2_map_bucket)); diff --git a/deps/nghttp2/lib/nghttp2_net.h b/deps/nghttp2/lib/nghttp2_net.h index 95ffee74a14fc9..582099b93dc0b8 100644 --- a/deps/nghttp2/lib/nghttp2_net.h +++ b/deps/nghttp2/lib/nghttp2_net.h @@ -42,7 +42,7 @@ #if defined(WIN32) /* Windows requires ws2_32 library for ntonl family functions. We define inline functions for those function so that we don't have - dependeny on that lib. */ + dependency on that lib. */ # ifdef _MSC_VER # define STIN static __inline diff --git a/deps/nghttp2/lib/nghttp2_outbound_item.h b/deps/nghttp2/lib/nghttp2_outbound_item.h index b5f503a312dd8c..bd4611b551bbbd 100644 --- a/deps/nghttp2/lib/nghttp2_outbound_item.h +++ b/deps/nghttp2/lib/nghttp2_outbound_item.h @@ -111,7 +111,7 @@ struct nghttp2_outbound_item { to this structure to avoid frequent memory allocation. */ nghttp2_ext_frame_payload ext_frame_payload; nghttp2_aux_data aux_data; - /* The priority used in priority comparion. Smaller is served + /* The priority used in priority comparison. Smaller is served earlier. For PING, SETTINGS and non-DATA frames (excluding response HEADERS frame) have dedicated cycle value defined above. For DATA frame, cycle is computed by taking into account of diff --git a/deps/nghttp2/lib/nghttp2_pq.h b/deps/nghttp2/lib/nghttp2_pq.h index 2d7b702ac18ad0..7b7b7392f8479c 100644 --- a/deps/nghttp2/lib/nghttp2_pq.h +++ b/deps/nghttp2/lib/nghttp2_pq.h @@ -114,7 +114,7 @@ typedef int (*nghttp2_pq_item_cb)(nghttp2_pq_entry *item, void *arg); void nghttp2_pq_update(nghttp2_pq *pq, nghttp2_pq_item_cb fun, void *arg); /* - * Applys |fun| to each item in |pq|. The |arg| is passed as arg + * Applies |fun| to each item in |pq|. The |arg| is passed as arg * parameter to callback function. This function must not change the * ordering key. If the return value from callback is nonzero, this * function returns 1 immediately without iterating remaining items. diff --git a/deps/nghttp2/lib/nghttp2_session.c b/deps/nghttp2/lib/nghttp2_session.c index 36f1179f72a225..380a47c1b1e82b 100644 --- a/deps/nghttp2/lib/nghttp2_session.c +++ b/deps/nghttp2/lib/nghttp2_session.c @@ -5341,7 +5341,7 @@ static ssize_t inbound_frame_compute_pad(nghttp2_inbound_frame *iframe) { /* * This function returns the effective payload length in the data of - * length |readlen| when the remaning payload is |payloadleft|. The + * length |readlen| when the remaining payload is |payloadleft|. The * |payloadleft| does not include |readlen|. If padding was started * strictly before this data chunk, this function returns -1. */ diff --git a/deps/nghttp2/lib/nghttp2_session.h b/deps/nghttp2/lib/nghttp2_session.h index 07bfbb6c90c8df..907b1704bc8412 100644 --- a/deps/nghttp2/lib/nghttp2_session.h +++ b/deps/nghttp2/lib/nghttp2_session.h @@ -408,7 +408,7 @@ int nghttp2_session_add_rst_stream(nghttp2_session *session, int32_t stream_id, uint32_t error_code); /* - * Adds PING frame. This is a convenient functin built on top of + * Adds PING frame. This is a convenient function built on top of * nghttp2_session_add_frame() to add PING easily. * * If the |opaque_data| is not NULL, it must point to 8 bytes memory diff --git a/deps/nghttp2/lib/nghttp2_stream.c b/deps/nghttp2/lib/nghttp2_stream.c index 96e1d9fe0f9b7e..f4c80a24b5e704 100644 --- a/deps/nghttp2/lib/nghttp2_stream.c +++ b/deps/nghttp2/lib/nghttp2_stream.c @@ -33,7 +33,7 @@ #include "nghttp2_frame.h" /* Maximum distance between any two stream's cycle in the same - prirority queue. Imagine stream A's cycle is A, and stream B's + priority queue. Imagine stream A's cycle is A, and stream B's cycle is B, and A < B. The cycle is unsigned 32 bit integer, it may get overflow. Because of how we calculate the next cycle value, if B - A is less than or equals to diff --git a/deps/nghttp2/lib/nghttp2_submit.c b/deps/nghttp2/lib/nghttp2_submit.c index 744a49cf6098ec..92fb03e8ca0f09 100644 --- a/deps/nghttp2/lib/nghttp2_submit.c +++ b/deps/nghttp2/lib/nghttp2_submit.c @@ -492,8 +492,6 @@ int nghttp2_session_set_local_window_size(nghttp2_session *session, return nghttp2_session_update_recv_stream_window_size(session, stream, 0, 1); } - - return 0; } int nghttp2_submit_altsvc(nghttp2_session *session, uint8_t flags, diff --git a/deps/npm/bin/npx-cli.js b/deps/npm/bin/npx-cli.js index 7a3fb39837d276..cb05e1cb706c6e 100755 --- a/deps/npm/bin/npx-cli.js +++ b/deps/npm/bin/npx-cli.js @@ -26,7 +26,7 @@ const removed = new Set([ const { definitions, shorthands } = require('../lib/utils/config/index.js') const npmSwitches = Object.entries(definitions) - .filter(([key, {type}]) => type === Boolean || + .filter(([key, { type }]) => type === Boolean || (Array.isArray(type) && type.includes(Boolean))) .map(([key]) => key) @@ -65,9 +65,9 @@ let i let sawRemovedFlags = false for (i = 3; i < process.argv.length; i++) { const arg = process.argv[i] - if (arg === '--') + if (arg === '--') { break - else if (/^-/.test(arg)) { + } else if (/^-/.test(arg)) { const [key, ...v] = arg.replace(/^-+/, '').split('=') switch (key) { @@ -87,8 +87,9 @@ for (i = 3; i < process.argv.length; i++) { // resolve shorthands and run again if (shorthands[key] && !removed.has(key)) { const a = [...shorthands[key]] - if (v.length) + if (v.length) { a.push(v.join('=')) + } process.argv.splice(i, 1, ...a) i-- continue @@ -109,8 +110,9 @@ for (i = 3; i < process.argv.length; i++) { if (removed.has(key)) { // also remove the value for the cut key. process.argv.splice(i + 1, 1) - } else + } else { i++ + } } } else { // found a positional arg, put -- in front of it, and we're done @@ -119,7 +121,8 @@ for (i = 3; i < process.argv.length; i++) { } } -if (sawRemovedFlags) +if (sawRemovedFlags) { console.error('See `npm help exec` for more information') +} cli(process) diff --git a/deps/npm/docs/content/commands/npm-access.md b/deps/npm/docs/content/commands/npm-access.md index 1f661c911f47dc..162e94f1fec029 100644 --- a/deps/npm/docs/content/commands/npm-access.md +++ b/deps/npm/docs/content/commands/npm-access.md @@ -6,21 +6,27 @@ description: Set access level on published packages ### Synopsis + + + + ```bash npm access public [] npm access restricted [] - npm access grant [] npm access revoke [] - npm access 2fa-required [] npm access 2fa-not-required [] - npm access ls-packages [||] npm access ls-collaborators [ []] npm access edit [] ``` + + + + + ### Description Used to set access controls on private packages. diff --git a/deps/npm/docs/content/commands/npm-adduser.md b/deps/npm/docs/content/commands/npm-adduser.md index 21a31ca940e524..06eeb379c4dd88 100644 --- a/deps/npm/docs/content/commands/npm-adduser.md +++ b/deps/npm/docs/content/commands/npm-adduser.md @@ -6,12 +6,21 @@ description: Add a registry user account ### Synopsis + + + + ```bash -npm adduser [--registry=url] [--scope=@orgname] [--auth-type=legacy] +npm adduser aliases: login, add-user ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-audit.md b/deps/npm/docs/content/commands/npm-audit.md index 58c614d793db29..323d38f64c14f9 100644 --- a/deps/npm/docs/content/commands/npm-audit.md +++ b/deps/npm/docs/content/commands/npm-audit.md @@ -6,13 +6,19 @@ description: Run a security audit ### Synopsis -```bash -npm audit [--json] [--production] [--audit-level=(low|moderate|high|critical)] -npm audit fix [--force|--package-lock-only|--dry-run|--production|--only=(dev|prod)] + + + -common options: [--production] [--only=(dev|prod)] +```bash +npm audit [fix] ``` + + + + + ### Description The audit command submits a description of the dependencies configured in diff --git a/deps/npm/docs/content/commands/npm-bin.md b/deps/npm/docs/content/commands/npm-bin.md index 2d7c1d5b8149ee..94b72cfd5c81ce 100644 --- a/deps/npm/docs/content/commands/npm-bin.md +++ b/deps/npm/docs/content/commands/npm-bin.md @@ -6,10 +6,19 @@ description: Display npm bin folder ### Synopsis + + + + ```bash -npm bin [-g|--global] +npm bin ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-bugs.md b/deps/npm/docs/content/commands/npm-bugs.md index f92241a14b95c0..aeddeb848e81b8 100644 --- a/deps/npm/docs/content/commands/npm-bugs.md +++ b/deps/npm/docs/content/commands/npm-bugs.md @@ -6,12 +6,21 @@ description: Report bugs for a package in a web browser ### Synopsis + + + + ```bash -npm bugs [ [ ...]] +npm bugs [] -aliases: issues +alias: issues ``` + + + + + ### Description This command tries to guess at the likely location of a package's bug diff --git a/deps/npm/docs/content/commands/npm-cache.md b/deps/npm/docs/content/commands/npm-cache.md index 6497a3988c9387..091e26e8a71828 100644 --- a/deps/npm/docs/content/commands/npm-cache.md +++ b/deps/npm/docs/content/commands/npm-cache.md @@ -6,18 +6,26 @@ description: Manipulates packages cache ### Synopsis -```bash -npm cache add ... -npm cache add ... -npm cache add ... -npm cache add @... - -npm cache clean -aliases: npm cache clear, npm cache rm + + + +```bash +npm cache add +npm cache add +npm cache add +npm cache add +npm cache add @ +npm cache clean [] +npm cache ls [@] npm cache verify ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-ci.md b/deps/npm/docs/content/commands/npm-ci.md index 1ce50c66d5fafa..4490fea9a0bb74 100644 --- a/deps/npm/docs/content/commands/npm-ci.md +++ b/deps/npm/docs/content/commands/npm-ci.md @@ -6,10 +6,21 @@ description: Install a project with a clean slate ### Synopsis + + + + ```bash npm ci + +aliases: clean-install, ic, install-clean, isntall-clean ``` + + + + + ### Description This command is similar to [`npm install`](/commands/npm-install), except diff --git a/deps/npm/docs/content/commands/npm-completion.md b/deps/npm/docs/content/commands/npm-completion.md index 9dbd960913f270..d73a98f2e50f78 100644 --- a/deps/npm/docs/content/commands/npm-completion.md +++ b/deps/npm/docs/content/commands/npm-completion.md @@ -6,10 +6,19 @@ description: Tab Completion for npm ### Synopsis + + + + ```bash -source <(npm completion) +npm completion ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-config.md b/deps/npm/docs/content/commands/npm-config.md index 2d77f045cbc472..a66a198ce42d17 100644 --- a/deps/npm/docs/content/commands/npm-config.md +++ b/deps/npm/docs/content/commands/npm-config.md @@ -6,18 +6,25 @@ description: Manage the npm configuration files ### Synopsis + + + + ```bash npm config set = [= ...] npm config get [ [ ...]] npm config delete [ ...] npm config list [--json] npm config edit -npm set = [= ...] -npm get [ [ ...]] alias: c ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-dedupe.md b/deps/npm/docs/content/commands/npm-dedupe.md index 377e17d814a6f6..b5a64831c0bbaa 100644 --- a/deps/npm/docs/content/commands/npm-dedupe.md +++ b/deps/npm/docs/content/commands/npm-dedupe.md @@ -6,13 +6,21 @@ description: Reduce duplication in the package tree ### Synopsis + + + + ```bash npm dedupe -npm ddp -aliases: ddp +alias: ddp ``` + + + + + ### Description Searches the local package tree and attempts to simplify the overall @@ -72,6 +80,12 @@ result in new modules being installed. Using `npm find-dupes` will run the command in `--dry-run` mode. +Note that by default `npm dedupe` will not update the semver values of direct +dependencies in your project `package.json`, if you want to also update +values in `package.json` you can run: `npm dedupe --save` (or add the +`save=true` option to a [configuration file](/configuring-npm/npmrc) +to make that the default behavior). + ### Configuration @@ -139,6 +153,24 @@ When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use `npm prune`. +This configuration does not affect `npm ci`. + + + + +#### `save` + +* Default: `true` unless when using `npm update` or `npm dedupe` where it + defaults to `false` +* Type: Boolean + +Save installed packages to a `package.json` file as dependencies. + +When used with the `npm rm` command, removes the dependency from +`package.json`. + +Will also prevent writing to `package-lock.json` if set to `false`. + diff --git a/deps/npm/docs/content/commands/npm-deprecate.md b/deps/npm/docs/content/commands/npm-deprecate.md index 438a54ec6e4f36..4345120d3744b3 100644 --- a/deps/npm/docs/content/commands/npm-deprecate.md +++ b/deps/npm/docs/content/commands/npm-deprecate.md @@ -6,10 +6,19 @@ description: Deprecate a version of a package ### Synopsis + + + + ```bash -npm deprecate [@] +npm deprecate [@] ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-diff.md b/deps/npm/docs/content/commands/npm-diff.md index 8d05df779f3ca5..c4c9eafdb3524d 100644 --- a/deps/npm/docs/content/commands/npm-diff.md +++ b/deps/npm/docs/content/commands/npm-diff.md @@ -6,14 +6,19 @@ description: The registry diff command ### Synopsis + + + + ```bash npm diff [...] -npm diff --diff= [...] -npm diff --diff= [--diff=] [...] -npm diff --diff= [--diff=] [...] -npm diff [--diff-ignore-all-space] [--diff-name-only] [...] ``` + + + + + ### Description Similar to its `git diff` counterpart, this command will print diff patches diff --git a/deps/npm/docs/content/commands/npm-dist-tag.md b/deps/npm/docs/content/commands/npm-dist-tag.md index a4e0243aac87b3..a0f306cd4970d5 100644 --- a/deps/npm/docs/content/commands/npm-dist-tag.md +++ b/deps/npm/docs/content/commands/npm-dist-tag.md @@ -6,14 +6,23 @@ description: Modify package distribution tags ### Synopsis + + + + ```bash npm dist-tag add @ [] npm dist-tag rm npm dist-tag ls [] -aliases: dist-tags +alias: dist-tags ``` + + + + + ### Description Add, remove, and enumerate distribution tags on a package: diff --git a/deps/npm/docs/content/commands/npm-docs.md b/deps/npm/docs/content/commands/npm-docs.md index 970d17aa829c6e..8d5a278286a88b 100644 --- a/deps/npm/docs/content/commands/npm-docs.md +++ b/deps/npm/docs/content/commands/npm-docs.md @@ -6,12 +6,21 @@ description: Open documentation for a package in a web browser ### Synopsis + + + + ```bash npm docs [ [ ...]] -aliases: home +alias: home ``` + + + + + ### Description This command tries to guess at the likely location of a package's diff --git a/deps/npm/docs/content/commands/npm-doctor.md b/deps/npm/docs/content/commands/npm-doctor.md index 0cce60c7b7b157..7fb63bab16e835 100644 --- a/deps/npm/docs/content/commands/npm-doctor.md +++ b/deps/npm/docs/content/commands/npm-doctor.md @@ -6,10 +6,19 @@ description: Check your npm environment ### Synopsis + + + + ```bash npm doctor ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-edit.md b/deps/npm/docs/content/commands/npm-edit.md index 5ae7f2481ae456..39fc49592c571c 100644 --- a/deps/npm/docs/content/commands/npm-edit.md +++ b/deps/npm/docs/content/commands/npm-edit.md @@ -6,10 +6,19 @@ description: Edit an installed package ### Synopsis + + + + ```bash -npm edit +npm edit [/...] ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-exec.md b/deps/npm/docs/content/commands/npm-exec.md index db23536628e476..3645e336b9da97 100644 --- a/deps/npm/docs/content/commands/npm-exec.md +++ b/deps/npm/docs/content/commands/npm-exec.md @@ -6,26 +6,23 @@ description: Run a command from a local or remote npm package ### Synopsis + + + + ```bash npm exec -- [@] [args...] npm exec --package=[@] -- [args...] npm exec -c ' [args...]' npm exec --package=foo -c ' [args...]' -npm exec [--ws] [-w [@] [args...] -npx -p [@] [args...] -npx -c ' [args...]' -npx -p [@] -c ' [args...]' -Run without --call or positional args to open interactive subshell +alias: x +``` -alias: npm x, npx + + -common options: ---package= (may be specified multiple times) --p is a shorthand for --package only when using npx executable --c --call= (may not be mixed with positional arguments) -``` + ### Description @@ -388,3 +385,4 @@ project. * [npm stop](/commands/npm-stop) * [npm config](/commands/npm-config) * [npm workspaces](/using-npm/workspaces) +* [npx](/commands/npx) diff --git a/deps/npm/docs/content/commands/npm-explain.md b/deps/npm/docs/content/commands/npm-explain.md index 5f05cac0f906b0..765221056585d9 100644 --- a/deps/npm/docs/content/commands/npm-explain.md +++ b/deps/npm/docs/content/commands/npm-explain.md @@ -6,12 +6,21 @@ description: Explain installed packages ### Synopsis + + + + ```bash npm explain alias: why ``` + + + + + ### Description This command will print the chain of dependencies causing a given package diff --git a/deps/npm/docs/content/commands/npm-explore.md b/deps/npm/docs/content/commands/npm-explore.md index 3979da9573db00..90753c7e09199f 100644 --- a/deps/npm/docs/content/commands/npm-explore.md +++ b/deps/npm/docs/content/commands/npm-explore.md @@ -6,10 +6,19 @@ description: Browse an installed package ### Synopsis + + + + ```bash npm explore [ -- ] ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-find-dupes.md b/deps/npm/docs/content/commands/npm-find-dupes.md index f7dc84f9c5306d..f7366fa6375d1e 100644 --- a/deps/npm/docs/content/commands/npm-find-dupes.md +++ b/deps/npm/docs/content/commands/npm-find-dupes.md @@ -6,10 +6,19 @@ description: Find duplication in the package tree ### Synopsis + + + + ```bash npm find-dupes ``` + + + + + ### Description Runs `npm dedupe` in `--dry-run` mode, making npm only output the @@ -82,6 +91,8 @@ When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use `npm prune`. +This configuration does not affect `npm ci`. + diff --git a/deps/npm/docs/content/commands/npm-fund.md b/deps/npm/docs/content/commands/npm-fund.md index 606b0a188c5549..5b96e91ab8ccb9 100644 --- a/deps/npm/docs/content/commands/npm-fund.md +++ b/deps/npm/docs/content/commands/npm-fund.md @@ -6,11 +6,19 @@ description: Retrieve funding information ### Synopsis + + + + ```bash -npm fund [] -npm fund [-w ] +npm fund [[<@scope>/]] ``` + + + + + ### Description This command retrieves information on how to fund the dependencies of a diff --git a/deps/npm/docs/content/commands/npm-help-search.md b/deps/npm/docs/content/commands/npm-help-search.md index 78553a14ecb01d..152f9f6bec16f1 100644 --- a/deps/npm/docs/content/commands/npm-help-search.md +++ b/deps/npm/docs/content/commands/npm-help-search.md @@ -6,10 +6,19 @@ description: Search npm help documentation ### Synopsis + + + + ```bash npm help-search ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-help.md b/deps/npm/docs/content/commands/npm-help.md index a8002eef17156c..83c595db696b9c 100644 --- a/deps/npm/docs/content/commands/npm-help.md +++ b/deps/npm/docs/content/commands/npm-help.md @@ -6,10 +6,21 @@ description: Get help on npm ### Synopsis + + + + ```bash npm help [] + +alias: hlep ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-hook.md b/deps/npm/docs/content/commands/npm-hook.md index c91bce3075e7b2..4a9805d02f9d43 100644 --- a/deps/npm/docs/content/commands/npm-hook.md +++ b/deps/npm/docs/content/commands/npm-hook.md @@ -6,13 +6,22 @@ description: Manage registry hooks ### Synopsis + + + + ```bash +npm hook add [--type=] npm hook ls [pkg] -npm hook add -npm hook update [secret] npm hook rm +npm hook update ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-init.md b/deps/npm/docs/content/commands/npm-init.md index a608061a96d8dc..d9c03aef41504b 100644 --- a/deps/npm/docs/content/commands/npm-init.md +++ b/deps/npm/docs/content/commands/npm-init.md @@ -6,13 +6,23 @@ description: Create a package.json file ### Synopsis + + + + ```bash -npm init [--yes|-y|--scope] -npm init <@scope> (same as `npm exec <@scope>/create`) -npm init [<@scope>/] (same as `npm exec [<@scope>/]create-`) -npm init [-w ] [args...] +npm init [--force|-f|--yes|-y|--scope] +npm init <@scope> (same as `npx <@scope>/create`) +npm init [<@scope>/] (same as `npx [<@scope>/]create-`) + +aliases: create, innit ``` + + + + + ### Description `npm init ` can be used to set up a new or existing npm @@ -38,6 +48,15 @@ strictly additive, so it will keep any fields and values that were already set. You can also use `-y`/`--yes` to skip the questionnaire altogether. If you pass `--scope`, it will create a scoped package. +*Note:* if a user already has the `create-` package +globally installed, that will be what `npm init` uses. If you want npm +to use the latest version, or another specific version you must specify +it: + +* `npm init foo@latest` # fetches and runs the latest `create-foo` from + the registry +* `npm init foo@1.2.3` # runs `create-foo@1.2.3` specifically + #### Forwarding additional options Any additional options will be passed directly to the command, so `npm init diff --git a/deps/npm/docs/content/commands/npm-install-ci-test.md b/deps/npm/docs/content/commands/npm-install-ci-test.md index 5c37ed8f56128b..5ad67604541d1e 100644 --- a/deps/npm/docs/content/commands/npm-install-ci-test.md +++ b/deps/npm/docs/content/commands/npm-install-ci-test.md @@ -6,12 +6,21 @@ description: Install a project with a clean slate and run tests ### Synopsis + + + + ```bash npm install-ci-test -alias: npm cit +alias: cit ``` + + + + + ### Description This command runs `npm ci` followed immediately by `npm test`. diff --git a/deps/npm/docs/content/commands/npm-install-test.md b/deps/npm/docs/content/commands/npm-install-test.md index c464e5bd0b8c64..ed39c6705a4848 100644 --- a/deps/npm/docs/content/commands/npm-install-test.md +++ b/deps/npm/docs/content/commands/npm-install-test.md @@ -6,20 +6,30 @@ description: Install package(s) and run tests ### Synopsis + + + + ```bash -npm install-test (with no args, in package dir) -npm install-test [<@scope>/] -npm install-test [<@scope>/]@ -npm install-test [<@scope>/]@ -npm install-test [<@scope>/]@ +npm install-test [<@scope>/] +npm install-test [<@scope>/]@ +npm install-test [<@scope>/]@ +npm install-test [<@scope>/]@ +npm install-test @npm: +npm install-test npm install-test npm install-test -npm install-test +npm install-test +npm install-test / -alias: npm it -common options: [--save|--save-dev|--save-optional] [--save-exact] [--dry-run] +alias: it ``` + + + + + ### Description This command runs an `npm install` followed immediately by an `npm test`. It @@ -32,13 +42,16 @@ takes exactly the same arguments as `npm install`. #### `save` -* Default: true +* Default: `true` unless when using `npm update` or `npm dedupe` where it + defaults to `false` * Type: Boolean -Save installed packages to a package.json file as dependencies. +Save installed packages to a `package.json` file as dependencies. When used with the `npm rm` command, removes the dependency from -package.json. +`package.json`. + +Will also prevent writing to `package-lock.json` if set to `false`. @@ -133,6 +146,8 @@ When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use `npm prune`. +This configuration does not affect `npm ci`. + diff --git a/deps/npm/docs/content/commands/npm-install.md b/deps/npm/docs/content/commands/npm-install.md index a103845d1a6758..6f12e5f5389973 100644 --- a/deps/npm/docs/content/commands/npm-install.md +++ b/deps/npm/docs/content/commands/npm-install.md @@ -6,23 +6,30 @@ description: Install a package ### Synopsis + + + + ```bash -npm install (with no args, in package dir) -npm install [<@scope>/] -npm install [<@scope>/]@ -npm install [<@scope>/]@ -npm install [<@scope>/]@ +npm install [<@scope>/] +npm install [<@scope>/]@ +npm install [<@scope>/]@ +npm install [<@scope>/]@ npm install @npm: -npm install :/ -npm install +npm install npm install npm install -npm install +npm install +npm install / -aliases: npm i, npm add -common options: [-P|--save-prod|-D|--save-dev|-O|--save-optional|--save-peer] [-E|--save-exact] [-B|--save-bundle] [--no-save] [--dry-run] +aliases: i, in, ins, inst, insta, instal, isnt, isnta, isntal, add ``` + + + + + ### Description This command installs a package and any packages that it depends on. If the @@ -58,7 +65,7 @@ into a tarball (b). * `npm install` (in a package directory, no arguments): - Install the dependencies in the local `node_modules` folder. + Install the dependencies to the local `node_modules` folder. In global mode (ie, with `-g` or `--global` appended to the command), it installs the current package context (ie, the current working @@ -78,11 +85,20 @@ into a tarball (b). * `npm install `: - Install the package in the directory as a symlink in the current - project. Its dependencies will be installed before it's linked. If - `` sits inside the root of your project, its dependencies may + If `` sits inside the root of your project, its dependencies will be installed and may be hoisted to the top-level `node_modules` as they would for other - types of dependencies. + types of dependencies. If `` sits outside the root of your project, + *npm will not install the package dependencies* in the directory ``, + but it will create a symlink to ``. + + > NOTE: If you want to install the content of a directory like a package from the registry instead of creating a link, you would need to use [`npm pack`](/commands/npm-pack) while in the `` directory, and then install the resulting tarball instead of the `` using `npm install ` + + Example: + + ```bash + npm install ../../other-package + npm install ./sub-package + ``` * `npm install `: @@ -416,13 +432,16 @@ These are some of the most common options related to installation. #### `save` -* Default: true +* Default: `true` unless when using `npm update` or `npm dedupe` where it + defaults to `false` * Type: Boolean -Save installed packages to a package.json file as dependencies. +Save installed packages to a `package.json` file as dependencies. When used with the `npm rm` command, removes the dependency from -package.json. +`package.json`. + +Will also prevent writing to `package-lock.json` if set to `false`. @@ -517,6 +536,8 @@ When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use `npm prune`. +This configuration does not affect `npm ci`. + diff --git a/deps/npm/docs/content/commands/npm-link.md b/deps/npm/docs/content/commands/npm-link.md index d4ef41ae964628..892b55496c9b6f 100644 --- a/deps/npm/docs/content/commands/npm-link.md +++ b/deps/npm/docs/content/commands/npm-link.md @@ -6,13 +6,22 @@ description: Symlink a package folder ### Synopsis + + + + ```bash npm link (in package dir) npm link [<@scope>/][@] -alias: npm ln +alias: ln ``` + + + + + ### Description This is handy for installing your own stuff, so that you can work on it and @@ -116,13 +125,16 @@ workspace(s). #### `save` -* Default: true +* Default: `true` unless when using `npm update` or `npm dedupe` where it + defaults to `false` * Type: Boolean -Save installed packages to a package.json file as dependencies. +Save installed packages to a `package.json` file as dependencies. When used with the `npm rm` command, removes the dependency from -package.json. +`package.json`. + +Will also prevent writing to `package-lock.json` if set to `false`. @@ -217,6 +229,8 @@ When package package-locks are disabled, automatic pruning of extraneous modules will also be disabled. To remove extraneous modules with package-locks disabled use `npm prune`. +This configuration does not affect `npm ci`. + diff --git a/deps/npm/docs/content/commands/npm-logout.md b/deps/npm/docs/content/commands/npm-logout.md index cb7c8496fb4791..f0dd5cb856eaee 100644 --- a/deps/npm/docs/content/commands/npm-logout.md +++ b/deps/npm/docs/content/commands/npm-logout.md @@ -6,10 +6,19 @@ description: Log out of the registry ### Synopsis + + + + ```bash -npm logout [--registry=] [--scope=<@scope>] +npm logout ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-ls.md b/deps/npm/docs/content/commands/npm-ls.md index 3b33f0a3605e08..0f06e131f414b2 100644 --- a/deps/npm/docs/content/commands/npm-ls.md +++ b/deps/npm/docs/content/commands/npm-ls.md @@ -6,12 +6,21 @@ description: List installed packages ### Synopsis + + + + ```bash npm ls [[<@scope>/] ...] -aliases: list, la, ll +alias: list ``` + + + + + ### Description This command will print to stdout all the versions of packages that are diff --git a/deps/npm/docs/content/commands/npm-org.md b/deps/npm/docs/content/commands/npm-org.md index 2f08f611529925..975581c860df64 100644 --- a/deps/npm/docs/content/commands/npm-org.md +++ b/deps/npm/docs/content/commands/npm-org.md @@ -6,12 +6,23 @@ description: Manage orgs ### Synopsis + + + + ```bash -npm org set [developer | admin | owner] -npm org rm -npm org ls [] +npm org set orgname username [developer | admin | owner] +npm org rm orgname username +npm org ls orgname [] + +alias: ogr ``` + + + + + Note: This command is unaware of workspaces. ### Example diff --git a/deps/npm/docs/content/commands/npm-outdated.md b/deps/npm/docs/content/commands/npm-outdated.md index 1b58a6afda64bb..6fa026550e7477 100644 --- a/deps/npm/docs/content/commands/npm-outdated.md +++ b/deps/npm/docs/content/commands/npm-outdated.md @@ -6,10 +6,19 @@ description: Check for outdated packages ### Synopsis + + + + ```bash npm outdated [[<@scope>/] ...] ``` + + + + + ### Description This command will check the registry to see if any (or, specific) installed diff --git a/deps/npm/docs/content/commands/npm-owner.md b/deps/npm/docs/content/commands/npm-owner.md index 74e7f84af6c804..0779984e19a9db 100644 --- a/deps/npm/docs/content/commands/npm-owner.md +++ b/deps/npm/docs/content/commands/npm-owner.md @@ -6,14 +6,23 @@ description: Manage package owners ### Synopsis + + + + ```bash npm owner add [<@scope>/] npm owner rm [<@scope>/] npm owner ls [<@scope>/] -aliases: author +alias: author ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-pack.md b/deps/npm/docs/content/commands/npm-pack.md index 53945986837b94..c834f643ac0bb1 100644 --- a/deps/npm/docs/content/commands/npm-pack.md +++ b/deps/npm/docs/content/commands/npm-pack.md @@ -6,10 +6,19 @@ description: Create a tarball from a package ### Synopsis + + + + ```bash -npm pack [[<@scope>/]...] [--dry-run] [--json] +npm pack [[<@scope>/]...] ``` + + + + + ### Configuration diff --git a/deps/npm/docs/content/commands/npm-ping.md b/deps/npm/docs/content/commands/npm-ping.md index 6f1c4582f058f0..161d7292f8c977 100644 --- a/deps/npm/docs/content/commands/npm-ping.md +++ b/deps/npm/docs/content/commands/npm-ping.md @@ -6,10 +6,19 @@ description: Ping npm registry ### Synopsis + + + + ```bash -npm ping [--registry ] +npm ping ``` + + + + + Note: This command is unaware of workspaces. ### Description @@ -18,11 +27,14 @@ Ping the configured or given npm registry and verify authentication. If it works it will output something like: ```bash -Ping success: {*Details about registry*} +npm notice PING https://registry.npmjs.org/ +npm notice PONG 255ms ``` -otherwise you will get: +otherwise you will get an error: ```bash -Ping error: {*Detail about error} +npm notice PING http://foo.com/ +npm ERR! code E404 +npm ERR! 404 Not Found - GET http://www.foo.com/-/ping?write=true ``` ### Configuration diff --git a/deps/npm/docs/content/commands/npm-pkg.md b/deps/npm/docs/content/commands/npm-pkg.md index beee9c1c4e78a9..8f6cbecf958fd9 100644 --- a/deps/npm/docs/content/commands/npm-pkg.md +++ b/deps/npm/docs/content/commands/npm-pkg.md @@ -6,12 +6,21 @@ description: Manages your package.json ### Synopsis + + + + ```bash -npm pkg get [ [. ...]] -npm pkg set = [.= ...] -npm pkg delete [. ...] +npm pkg set = [= ...] +npm pkg get [ [ ...]] +npm pkg delete [ ...] ``` + + + + + ### Description A command that automates the management of `package.json` files. diff --git a/deps/npm/docs/content/commands/npm-prefix.md b/deps/npm/docs/content/commands/npm-prefix.md index 276a9e9e699100..39328bcc88a143 100644 --- a/deps/npm/docs/content/commands/npm-prefix.md +++ b/deps/npm/docs/content/commands/npm-prefix.md @@ -6,10 +6,19 @@ description: Display prefix ### Synopsis + + + + ```bash npm prefix [-g] ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-profile.md b/deps/npm/docs/content/commands/npm-profile.md index cecc48518dbdb7..af1f9d8aa10633 100644 --- a/deps/npm/docs/content/commands/npm-profile.md +++ b/deps/npm/docs/content/commands/npm-profile.md @@ -6,14 +6,22 @@ description: Change settings on your registry profile ### Synopsis + + + + ```bash -npm profile get [--json|--parseable] [] -npm profile set [--json|--parseable] -npm profile set password -npm profile enable-2fa [auth-and-writes|auth-only] +npm profile enable-2fa [auth-only|auth-and-writes] npm profile disable-2fa +npm profile get [] +npm profile set ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-prune.md b/deps/npm/docs/content/commands/npm-prune.md index 658ab2610e0ed9..49420e5b9d99cb 100644 --- a/deps/npm/docs/content/commands/npm-prune.md +++ b/deps/npm/docs/content/commands/npm-prune.md @@ -6,10 +6,19 @@ description: Remove extraneous packages ### Synopsis + + + + ```bash -npm prune [[<@scope>/]...] [--production] [--dry-run] [--json] +npm prune [[<@scope>/]...] ``` + + + + + ### Description This command removes "extraneous" packages. If a package name is provided, diff --git a/deps/npm/docs/content/commands/npm-publish.md b/deps/npm/docs/content/commands/npm-publish.md index 6958b1066de7fd..ce6e1c1012c8e2 100644 --- a/deps/npm/docs/content/commands/npm-publish.md +++ b/deps/npm/docs/content/commands/npm-publish.md @@ -6,13 +6,19 @@ description: Publish a package ### Synopsis -```bash -npm publish [|] [--tag ] [--access ] [--otp otpcode] [--dry-run] + + + -Publishes '.' if no argument supplied -Sets tag 'latest' if no --tag specified +```bash +npm publish [] ``` + + + + + ### Description Publishes a package to the registry so that it can be installed by name. diff --git a/deps/npm/docs/content/commands/npm-rebuild.md b/deps/npm/docs/content/commands/npm-rebuild.md index 75e71c60e6810a..ecb4a7ce34c62a 100644 --- a/deps/npm/docs/content/commands/npm-rebuild.md +++ b/deps/npm/docs/content/commands/npm-rebuild.md @@ -6,12 +6,21 @@ description: Rebuild a package ### Synopsis + + + + ```bash npm rebuild [[<@scope>/][@] ...] alias: rb ``` + + + + + ### Description This command runs the `npm build` command on the matched folders. This is diff --git a/deps/npm/docs/content/commands/npm-repo.md b/deps/npm/docs/content/commands/npm-repo.md index cd47fde47127ee..e14f07012a2484 100644 --- a/deps/npm/docs/content/commands/npm-repo.md +++ b/deps/npm/docs/content/commands/npm-repo.md @@ -6,10 +6,19 @@ description: Open package repository page in the browser ### Synopsis + + + + ```bash npm repo [ [ ...]] ``` + + + + + ### Description This command tries to guess at the likely location of a package's diff --git a/deps/npm/docs/content/commands/npm-restart.md b/deps/npm/docs/content/commands/npm-restart.md index 80f8ab77ef0183..f01cd014e74357 100644 --- a/deps/npm/docs/content/commands/npm-restart.md +++ b/deps/npm/docs/content/commands/npm-restart.md @@ -6,10 +6,19 @@ description: Restart a package ### Synopsis + + + + ```bash npm restart [-- ] ``` + + + + + ### Description This restarts a project. It is equivalent to running `npm run-script diff --git a/deps/npm/docs/content/commands/npm-root.md b/deps/npm/docs/content/commands/npm-root.md index 98d1108d33f758..40b58e4b33d0b2 100644 --- a/deps/npm/docs/content/commands/npm-root.md +++ b/deps/npm/docs/content/commands/npm-root.md @@ -6,10 +6,19 @@ description: Display npm root ### Synopsis + + + + ```bash -npm root [-g] +npm root ``` + + + + + ### Description Print the effective `node_modules` folder to standard out. diff --git a/deps/npm/docs/content/commands/npm-run-script.md b/deps/npm/docs/content/commands/npm-run-script.md index 6dd602d03e00ad..79b7c9a25780e6 100644 --- a/deps/npm/docs/content/commands/npm-run-script.md +++ b/deps/npm/docs/content/commands/npm-run-script.md @@ -6,14 +6,21 @@ description: Run arbitrary package scripts ### Synopsis + + + + ```bash -npm run-script [--if-present] [--silent] [-- ] -npm run-script [--workspace=] -npm run-script [--workspaces] +npm run-script [-- ] aliases: run, rum, urn ``` + + + + + ### Description This runs an arbitrary command from a package's `"scripts"` object. If no diff --git a/deps/npm/docs/content/commands/npm-search.md b/deps/npm/docs/content/commands/npm-search.md index 252822e7198443..db6a12bafabf13 100644 --- a/deps/npm/docs/content/commands/npm-search.md +++ b/deps/npm/docs/content/commands/npm-search.md @@ -6,12 +6,21 @@ description: Search for packages ### Synopsis + + + + ```bash -npm search [-l|--long] [--json] [--parseable] [--no-description] [search terms ...] +npm search [search terms ...] aliases: s, se, find ``` + + + + + Note: This command is unaware of workspaces. ### Description diff --git a/deps/npm/docs/content/commands/npm-set-script.md b/deps/npm/docs/content/commands/npm-set-script.md index 869ceede045ae3..2d8e87db852196 100644 --- a/deps/npm/docs/content/commands/npm-set-script.md +++ b/deps/npm/docs/content/commands/npm-set-script.md @@ -7,10 +7,19 @@ description: Set tasks in the scripts section of package.json ### Synopsis An npm command that lets you create a task in the `scripts` section of the `package.json`. + + + + ```bash npm set-script [ + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/basics.any.js b/test/fixtures/wpt/webmessaging/broadcastchannel/basics.any.js new file mode 100644 index 00000000000000..68b4706028f5aa --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/basics.any.js @@ -0,0 +1,120 @@ +async_test(t => { + let c1 = new BroadcastChannel('eventType'); + let c2 = new BroadcastChannel('eventType'); + + c2.onmessage = t.step_func(e => { + assert_true(e instanceof MessageEvent); + assert_equals(e.target, c2); + assert_equals(e.type, 'message'); + assert_equals(e.origin, location.origin, 'origin'); + assert_equals(e.data, 'hello world'); + assert_equals(e.source, null, 'source'); + t.done(); + }); + c1.postMessage('hello world'); + }, 'postMessage results in correct event'); + +async_test(t => { + let c1 = new BroadcastChannel('order'); + let c2 = new BroadcastChannel('order'); + let c3 = new BroadcastChannel('order'); + + let events = []; + let doneCount = 0; + let handler = t.step_func(e => { + events.push(e); + if (e.data == 'done') { + doneCount++; + if (doneCount == 2) { + assert_equals(events.length, 6); + assert_equals(events[0].target, c2, 'target for event 0'); + assert_equals(events[0].data, 'from c1'); + assert_equals(events[1].target, c3, 'target for event 1'); + assert_equals(events[1].data, 'from c1'); + assert_equals(events[2].target, c1, 'target for event 2'); + assert_equals(events[2].data, 'from c3'); + assert_equals(events[3].target, c2, 'target for event 3'); + assert_equals(events[3].data, 'from c3'); + assert_equals(events[4].target, c1, 'target for event 4'); + assert_equals(events[4].data, 'done'); + assert_equals(events[5].target, c3, 'target for event 5'); + assert_equals(events[5].data, 'done'); + t.done(); + } + } + }); + c1.onmessage = handler; + c2.onmessage = handler; + c3.onmessage = handler; + + c1.postMessage('from c1'); + c3.postMessage('from c3'); + c2.postMessage('done'); + }, 'messages are delivered in port creation order'); + +async_test(t => { + let c1 = new BroadcastChannel('closed'); + let c2 = new BroadcastChannel('closed'); + let c3 = new BroadcastChannel('closed'); + + c2.onmessage = t.unreached_func(); + c2.close(); + c3.onmessage = t.step_func(() => t.done()); + c1.postMessage('test'); + }, 'messages aren\'t delivered to a closed port'); + + async_test(t => { + let c1 = new BroadcastChannel('closed'); + let c2 = new BroadcastChannel('closed'); + let c3 = new BroadcastChannel('closed'); + + c2.onmessage = t.unreached_func(); + c3.onmessage = t.step_func(() => t.done()); + c1.postMessage('test'); + c2.close(); +}, 'messages aren\'t delivered to a port closed after calling postMessage.'); + +async_test(t => { + let c1 = new BroadcastChannel('create-in-onmessage'); + let c2 = new BroadcastChannel('create-in-onmessage'); + + c2.onmessage = t.step_func(e => { + assert_equals(e.data, 'first'); + c2.close(); + let c3 = new BroadcastChannel('create-in-onmessage'); + c3.onmessage = t.step_func(event => { + assert_equals(event.data, 'done'); + t.done(); + }); + c1.postMessage('done'); + }); + c1.postMessage('first'); + c2.postMessage('second'); + }, 'closing and creating channels during message delivery works correctly'); + +async_test(t => { + let c1 = new BroadcastChannel('close-in-onmessage'); + let c2 = new BroadcastChannel('close-in-onmessage'); + let c3 = new BroadcastChannel('close-in-onmessage'); + let events = []; + c1.onmessage = e => events.push('c1: ' + e.data); + c2.onmessage = e => events.push('c2: ' + e.data); + c3.onmessage = e => events.push('c3: ' + e.data); + + // c2 closes itself when it receives the first message + c2.addEventListener('message', e => { + c2.close(); + }); + + c3.addEventListener('message', t.step_func(e => { + if (e.data == 'done') { + assert_array_equals(events, [ + 'c2: first', + 'c3: first', + 'c3: done']); + t.done(); + } + })); + c1.postMessage('first'); + c1.postMessage('done'); + }, 'Closing a channel in onmessage prevents already queued tasks from firing onmessage events'); diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/blobs.html b/test/fixtures/wpt/webmessaging/broadcastchannel/blobs.html new file mode 100644 index 00000000000000..1f0e2f1f1d6050 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/blobs.html @@ -0,0 +1,83 @@ + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/cross-origin.html b/test/fixtures/wpt/webmessaging/broadcastchannel/cross-origin.html new file mode 100644 index 00000000000000..ee4b2f21c8e3fe --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/cross-origin.html @@ -0,0 +1,38 @@ + + + + + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html b/test/fixtures/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html new file mode 100644 index 00000000000000..163e6c00a93a95 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/cross-partition.https.tentative.html @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/detached-iframe.html b/test/fixtures/wpt/webmessaging/broadcastchannel/detached-iframe.html new file mode 100644 index 00000000000000..b9b06c3a46463b --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/detached-iframe.html @@ -0,0 +1,174 @@ + + + + + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/interface.any.js b/test/fixtures/wpt/webmessaging/broadcastchannel/interface.any.js new file mode 100644 index 00000000000000..35e09d34b418d3 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/interface.any.js @@ -0,0 +1,65 @@ +test(() => assert_throws_js(TypeError, () => new BroadcastChannel()), + 'Should throw if no name is provided'); + +test(() => { + let c = new BroadcastChannel(null); + assert_equals(c.name, 'null'); + }, 'Null name should not throw'); + +test(() => { + let c = new BroadcastChannel(undefined); + assert_equals(c.name, 'undefined'); + }, 'Undefined name should not throw'); + +test(() => { + let c = new BroadcastChannel('fooBar'); + assert_equals(c.name, 'fooBar'); + }, 'Non-empty name should not throw'); + +test(() => { + let c = new BroadcastChannel(123); + assert_equals(c.name, '123'); + }, 'Non-string name should not throw'); + +test(() => { + let c = new BroadcastChannel(''); + assert_throws_js(TypeError, () => c.postMessage()); + }, 'postMessage without parameters should throw'); + +test(() => { + let c = new BroadcastChannel(''); + c.postMessage(null); + }, 'postMessage with null should not throw'); + +test(() => { + let c = new BroadcastChannel(''); + c.close(); + }, 'close should not throw'); + +test(() => { + let c = new BroadcastChannel(''); + c.close(); + c.close(); + }, 'close should not throw when called multiple times'); + +test(() => { + let c = new BroadcastChannel(''); + c.close(); + assert_throws_dom('InvalidStateError', () => c.postMessage('')); + }, 'postMessage after close should throw'); + +test(() => { + let c = new BroadcastChannel(''); + assert_not_equals(c.onmessage, undefined); + }, 'BroadcastChannel should have an onmessage event'); + +test(() => { + let c = new BroadcastChannel(''); + assert_throws_dom('DataCloneError', () => c.postMessage(Symbol())); + }, 'postMessage should throw with uncloneable data'); + +test(() => { + let c = new BroadcastChannel(''); + c.close(); + assert_throws_dom('InvalidStateError', () => c.postMessage(Symbol())); + }, 'postMessage should throw InvalidStateError after close, even with uncloneable data'); diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/opaque-origin.html b/test/fixtures/wpt/webmessaging/broadcastchannel/opaque-origin.html new file mode 100644 index 00000000000000..c10e0cb22256a0 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/opaque-origin.html @@ -0,0 +1,35 @@ + + + + + + + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/ordering.html b/test/fixtures/wpt/webmessaging/broadcastchannel/ordering.html new file mode 100644 index 00000000000000..2d521b9e0ccf94 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/ordering.html @@ -0,0 +1,116 @@ + + + + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/origin.window.js b/test/fixtures/wpt/webmessaging/broadcastchannel/origin.window.js new file mode 100644 index 00000000000000..7e9d602af194b7 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/origin.window.js @@ -0,0 +1,10 @@ +async_test(t => { + const crossOriginURL = new URL("resources/origin.html", self.location.href).href.replace("://", "://天気の良い日."), + frame = document.createElement("iframe"); + frame.src = crossOriginURL; + document.body.appendChild(frame); + t.add_cleanup(() => frame.remove()); + self.onmessage = t.step_func_done(e => { + assert_equals(e.data, self.origin.replace("://", "://xn--n8j6ds53lwwkrqhv28a.")); + }); +}, "Serialization of BroadcastChannel origin"); diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/cross-origin.html b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/cross-origin.html new file mode 100644 index 00000000000000..5078b6fc8e46f5 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/cross-origin.html @@ -0,0 +1,15 @@ + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/ordering.html b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/ordering.html new file mode 100644 index 00000000000000..b7f12d865ad2bf --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/ordering.html @@ -0,0 +1,78 @@ + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/origin.html b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/origin.html new file mode 100644 index 00000000000000..f57d582bbb878c --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/origin.html @@ -0,0 +1,8 @@ + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/sandboxed.html b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/sandboxed.html new file mode 100644 index 00000000000000..e32962cdfd4456 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/sandboxed.html @@ -0,0 +1,10 @@ + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/service-worker.js b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/service-worker.js new file mode 100644 index 00000000000000..a3d17b9c650adb --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/service-worker.js @@ -0,0 +1,15 @@ +let promise_func = null; +let promise = new Promise(resolve => promise_func = resolve); + +const SERVICE_WORKER_TEST_CHANNEL_NAME = 'service worker'; +const bc3 = new BroadcastChannel(SERVICE_WORKER_TEST_CHANNEL_NAME); +bc3.onmessage = e => { + bc3.postMessage('done'); + promise_func(); +}; +bc3.postMessage('from worker'); + +// Ensure that the worker stays alive for the duration of the test +self.addEventListener('install', evt => { + evt.waitUntil(promise); +}); diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/resources/worker.js b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/worker.js new file mode 100644 index 00000000000000..df23072bc99f95 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/resources/worker.js @@ -0,0 +1,37 @@ +var c; + +function handler(e, reply) { + if (e.data.ping) { + c.postMessage(e.data.ping); + return; + } + if (e.data.blob) { + (() => { + c.postMessage({blob: new Blob(e.data.blob)}); + })(); + // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to + // some sort of cross-browser GC trigger. + if (self.gc) self.gc(); + } + c = new BroadcastChannel(e.data.channel); + let messages = []; + c.onmessage = e => { + if (e.data === 'ready') { + // Ignore any 'ready' messages from the other thread since there could + // be some race conditions between this BroadcastChannel instance + // being created / ready to receive messages and the message being sent. + return; + } + messages.push(e.data); + if (e.data == 'done') + reply(messages); + }; + c.postMessage('from worker'); +} + +onmessage = e => handler(e, postMessage); + +onconnect = e => { + let port = e.ports[0]; + port.onmessage = e => handler(e, msg => port.postMessage(msg)); +}; diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/sandbox.html b/test/fixtures/wpt/webmessaging/broadcastchannel/sandbox.html new file mode 100644 index 00000000000000..aedf3c0d6fe64d --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/sandbox.html @@ -0,0 +1,16 @@ + + +Creating BroadcastChannel in an opaque origin + + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/service-worker.https.html b/test/fixtures/wpt/webmessaging/broadcastchannel/service-worker.https.html new file mode 100644 index 00000000000000..d605434ae1ccb0 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/service-worker.https.html @@ -0,0 +1,47 @@ + + + + + diff --git a/test/fixtures/wpt/webmessaging/broadcastchannel/workers.html b/test/fixtures/wpt/webmessaging/broadcastchannel/workers.html new file mode 100644 index 00000000000000..8b55492f3cffb3 --- /dev/null +++ b/test/fixtures/wpt/webmessaging/broadcastchannel/workers.html @@ -0,0 +1,375 @@ + + + + + diff --git a/test/fixtures/x509-escaping/.gitignore b/test/fixtures/x509-escaping/.gitignore new file mode 100644 index 00000000000000..504afef81fbadc --- /dev/null +++ b/test/fixtures/x509-escaping/.gitignore @@ -0,0 +1,2 @@ +node_modules/ +package-lock.json diff --git a/test/fixtures/x509-escaping/alt-0-cert.pem b/test/fixtures/x509-escaping/alt-0-cert.pem new file mode 100644 index 00000000000000..30e6fa6c3fa83a --- /dev/null +++ b/test/fixtures/x509-escaping/alt-0-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE5jCCAs6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +NTAzMDEGA1UdEQQqMCiCJmdvb2QuZXhhbXBsZS5jb20sIEROUzpldmlsLmV4YW1w +bGUuY29tMA0GCSqGSIb3DQEBCwUAA4ICAQAcsy+PIduM8NRrdqcTqufiajsAajQz +eB5+5+lZLi9MliXqoS4HsdrDMDevMa2cC+wB+XZW9SJXjtqrwXAxTAHtEyhsCi25 +XV0sJPWmZM+OQkGTtp7Ain12htr/t/DJ13YJpT03W6kYogA1kKJ5OMYMTcGT+7UB +zM4G2LUSrrSisxhfz9bF8Q9s1piG2gb5ACEQUiMLRrZXl8WLlaY59lloKyMa/9g6 +i3TgLxhp7XNS/bh/f2tDx+7ZgdtHUlkNhl1MycIVQRGK3BaZBEd+sDxS52kwym5I +CWLXGLutU3OeaNgqyvZuMvy//2oER3PysizyjwNoFlUbIz3zMnXvBeEjeGtEHsCJ +EBtX+xBWwMhUKE2QcMLxQaZNJCZFVFw8fDeEgFjTdEBcLsZ1PngT3jgXSHEWA+YL +C3rQhFMjyjy2h8u1sjySFrTlbZPm8gC3q/+LaXxhf5i5xiZOOcVfeYiWFUa5gQal +FaWj2SlQFaN2nidPaQO62vRIYn0Y/qbtUQAPkq4VVeycgxiuZaVVWCdct8UCYb9F +b9QSMpK4r99MKy+s41RiJodDJy0XraOxy7hUDjyObL2fuuPUK6mQAFGwWtajv3qq +vrRMvBEXdOPVmbETyzIosUHvOXT+v8WoCbC14mqMZTWVywRg7bD/NTHJDRIBrqvi +O6Zqbod3EImVnQ== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-1-cert.pem b/test/fixtures/x509-escaping/alt-1-cert.pem new file mode 100644 index 00000000000000..63883c2bbf7f91 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-1-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0zCCArugAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +IjAgMB4GA1UdEQQXMBWGE2h0dHA6Ly9leGFtcGxlLmNvbS8wDQYJKoZIhvcNAQEL +BQADggIBACFwNHWQ5w3UBbyq17emn7Z0BT0Zm5iFr8Qeik75WzbyzXd5QIeFWewB +qmiuaoKGGZ674sGcuomnIwoZBCoqvzbBBqBHp+O3/6pq59THQxeE6vhjKAe8oaih +emdigRmkX+Qi8UwUh76B51wHtkp6zAZnLDn8M67qmP7bjNrrMQeE81wRWYz9ssfd +N63dzu2BdD3EGl4CepdszpfUYLkz6iiDwFkc1NaBcQbBDoGqn2ubNXTHAyGGeL5a +ulDCND0FQtg+jhHHE3zXBqh1nPg/cXXRUG2zjxzUnaU2eMs5b4yqoLN/2n7fb7mV +HRh0T6X1HZcYpf5BSsgmr3Ngd/9b3sYRvNXBkVmKAu8dH7zguksczsvbL9r/u2YX +hgGjNT3xSphJbZTzqsACcoDo67EFkJ5p25f0N1i/rxk7O6uLMtrUqnzOXs6NXgEQ +8lyfVEgLFrXzdKXuk2l/6bwym80Eqdpjv5yCckCl24cFVpc15MRP3MPwIHrtoOLw +bdNZA5NUAnppLmG6zTdPPgBWEmf5+4ei9WjmpG1hq72/nJ1qM2dLIgV5nLggr1UH +i+vih+ujceBLVumAu/naP440xO5HRvpPfDWI+eU/wuXjUyAqe6YlYS+Txu/5YnFh +aMHO+PIgudWwGPhkABtrc/1jC+Yfy+GCtih10zBagoN9/DSugh0H +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-10-cert.pem b/test/fixtures/x509-escaping/alt-10-cert.pem new file mode 100644 index 00000000000000..14bec45d284e26 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-10-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExTCCAq2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +FDASMBAGA1UdEQQJMAeHBQAICAQEMA0GCSqGSIb3DQEBCwUAA4ICAQA+jnyjJ/9X +ENWXApq2g+GlWBM07KpsrxzwDXc6wsOnZCIiMoDqpcH96X8Q2Lahc4mZuz4yOZtv +z8Q9YUDTnJY+RtKYNDbxlz7wI1ASxKdP0X1qdzkYtHH752tG/zwVU2FSvqJLw+nl +rPJvQQ82/30BspejbW0JIfO7JnfN5BHPzzJp/V5tI1KQe+Wh0gEq6UvXjFrkCoeU +gaedPaG2RYDi1LWawRque7pnYzrcJCtc+wb8wiL1dRv7fDDmI7fFm3Bj6Rnid4/6 +/CxK3WqLBQrXoGnPGwI4iR17Rx08hPCL2V8NvDuJlagJe/Vc6LzOEixofoHGx4rG +Cm0AKubKbak/ML/rjyP2TiUmOhhm3Xdml3xexedErkgTLtlvmC0jesYuc4MeypNx +Q0eKRnChRGZYT9kaNgXZG1Scq63vpxKhayVvwU4ahGQS+nmuZdbRMEMIH6YkGxo/ +i5qmNxQPLMLE6HclSdDtUxN4ywQAQ49CaTCxVYq7dLTzpII3ldQ+KuefenaXrYGE +7TyqJBVdsTq0Bg2Ftf7GaoidJ/ZjjkB3Sj5uVQFMfU8uSATOolBOzh6fSiQJ60Zn +CtAAkb9uOwTl67Qijo4qAe9JRNqR9H5d65D0Vx+gdhcZVEriqIVhXVcgsvYQ55Ju +VGhc/foVd+vBuM3jXEdGR+DN/dEu+HZrhQ== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-11-cert.pem b/test/fixtures/x509-escaping/alt-11-cert.pem new file mode 100644 index 00000000000000..694cb7e9d8d879 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-11-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExjCCAq6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +FTATMBEGA1UdEQQKMAiHBgABAgMEBTANBgkqhkiG9w0BAQsFAAOCAgEAp2nxfYla +giNJ9S2owtp/5DxB3jIhQJzmdSxuUKVwWBffmzxrTkOoK/IcGkq3hu27GIy+ICFc +YkSsAE3DfboSTStxhkVZKMVv+e5tXPQ0i+Z+CSgHZbrnaA7nH0UPEgFFddhqogGw +LGE54iZ3D7ZYebTw/ELCIHNu9KeOStF7j04WXG7qRrqza5NmKqlxTC5tGoWAljzN +cdC2BdK7H2+6de3c4dBsYqcL2IgwNhA1uKIsDjJwwkOPmCEPl+7DjleI3IAKpROh +vX66DLaAsLEkoHsN7XTienHF8o/avIMGUfb0rtNLbwW8tzfjeAaJ7iTSm7ibhBLP +fK+n7Osh9QH+lG0K7M2zez7Kd3u+eNgTEG63gVR+zDZQwkA2Hy1o4zmZ+a3iCtdi +w6JGq3TT8nfPNO4kSoq7EYs6daPnGi3sqNRC20t4FZw0jOpvI4Uw7rPcTTqmAeAw +9H37WU3URD2EP8BpkoZiOShMHzNGqlC9qbqr5dd83Lkdz9gN4w3ipdbiiGFGPXhT +YubUecjwXoBUUI+be/edVbg7RtSSuplDv5l4bBSy+BG8JEUL6CKAUEtt2Tpt2SVD +AIaj0B19/DSYq1e4x8IBVBsI2RnEEpP70bdLiSYLhVhMdzp0PRqDVDE+zt4mm0lx +NRDSdNS1/rJEH1gLQEh4SGMs9iY5Vv+kx28= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-12-cert.pem b/test/fixtures/x509-escaping/alt-12-cert.pem new file mode 100644 index 00000000000000..7e48ebdf052c94 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-12-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0DCCArigAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +HzAdMBsGA1UdEQQUMBKHEAoLDA0ODwAAAAAAAHp7fH0wDQYJKoZIhvcNAQELBQAD +ggIBAEMU6XcjSdQ+EG22BsyAYin2d3g9Fd0gljsuyEyw2qwFE1zeNqz2sFX7GdmP +hEmUVdzQ0EQsHtKiO2BIhU5fkLoGIkJQT0MY/Tkc3xCLjVBG9ryHNjhv4aYfcvZ2 +K8LwWu5na5YtpmEHppFTmhQFHK9Yf2Jeh5Ms1VH2jwKR8iFM9dk0wcB74Y1WqyX0 +bhNUzv0ISvz/DK6rN0CM0OiZ7D1toMFJIslEcZD/MCZ0icFwRgGLzooDbm1xtixo +NjgdswdiL0cS/wgSdzu9eIugUQZU2KvUWYXGqYMDpn7iukiZSKQuFhZGcuK17zyR +y6TkDFe9rTxVtw9SAxjlo94rEqWN9Cns0n7tqAI/Wg6ILHUjUFwqSdrZQTEgH4O3 +tfhRkV4HCgP1Tzfz/20uMBqjCLbdt7xcSfLIiHgaxgwM0LGhH2Uk3oYinL2WIUDi +bZPI+1bzeyZ/tHw4sDxkGn3W3Nr44Td/5DAFz1lRMxAliVwHNzFTiY7IjCqmB0DL +z91agdgPMdh/huFvGJZHS/v7EXMSXyNLyIw+5JO12iwf4+pu8NLnOtMoHDB4yY0w +MEerc4e8SmygBQGF0MrcmirdT+7yiKRktZZFuyQoj4fBSKeBaBKUrnnk4UYw9H8f +j/EQwM87PmYjTwYPrJ0Kz5r4dmAUvq4z2ReLgM08Ve4SPa79 +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-13-cert.pem b/test/fixtures/x509-escaping/alt-13-cert.pem new file mode 100644 index 00000000000000..574ad1ca8f3cf9 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-13-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEzzCCAregAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +HjAcMBoGA1UdEQQTMBGBD2Zvb0BleGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOC +AgEAkx9jG86PMjL+/UxlhX0B/gIKHyTVrEt8j+/fn74uMnd7CV7toK6f5DANIxYp +3OJWAFYZ2lNS3MQMxpbjpd7D0BeNwhiJyBnRPhJ9KdsvdXnupF5ANNzr3oMioWwL +3WxvmQDEz35sorae5nzuZu8EpuwgodR0NCEmoPdW9JOUiB7k3Ku5goZHqlrdzM8f +YPbRDNOxSIpRqr5eqhEM9tEf+TF6qOM/NZJlXxtGDVdaDTbaULuCJGEW8TdVajnY +FfWWtIHwF64G5qJTgENqJjR1kkJy5vg2lFoDXE8MG+LvTHfyY0rMilncD2YOBLcj +gb3mBTxZGI2w2KZbchgEvA9+0heumAVJQPfdGs+pCUdvlhwWh8FCvu3aQb5X57OU +3D97vwvEs8Mxm0KHf0o0ZnTvaBWN5htX2bbpvYxGGB0SsWM8r1LIXj8bwGNdViV8 +UWNrg37XyGCppL1jXJ1q+DDKOvi0JR384ocRmS8mWUf9qiAMOqveix38rHezWlEm +4TCscq4tv135nM194D6uilzv4mUxLAMTX8Lvag1R3aKuOHio9lCGep4v776kALE6 +9/rekRGoMwNApoaC96x+V/dkbfnjWcxRXL5TvjDwVInl+RCcn6ijYZM0HYc+U1Dw +MwqBCbP2Y9Ee7xcnAgPbqH2svWG7XadQHAcOEDc/DFsPRG8= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-14-cert.pem b/test/fixtures/x509-escaping/alt-14-cert.pem new file mode 100644 index 00000000000000..0265b5992c1dbc --- /dev/null +++ b/test/fixtures/x509-escaping/alt-14-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE5TCCAs2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +NDAyMDAGA1UdEQQpMCeBJWZvb0BleGFtcGxlLmNvbSwgRE5TOmdvb2QuZXhhbXBs +ZS5jb20wDQYJKoZIhvcNAQELBQADggIBABf7bojDeoFEFyk/Xzo50sAL+5irJYzV +n//5aEvUotYxQt5coi7UnkKUgdiUhIXD8WaxD9KP3nUH+C3cxAQ+I7iVjFhjqFQB +X4c/ZjJA2QIX7VMWA3kpOFvR5N0HHest097Fi/HUEEXNkcUtCkRNtI2Msse9uz09 +DIv9P0IQ2TFgBRCTJwq2ZfVebHk/xoQ5fV9b0b39ts6ToiuMvGJVng2zz8fVNMah +hycCn0WSb6dPi9k0ItSvRTYL6vp9X842+Q0Xkq0FxQPUcvzN7D1tSmHXDM7nYXp3 +FB6DKASp0+nn+J88RXVSpO0JedEyRDEluxHJcan+hqhWJ4DgamlVTEPN3q5yE4lt +Jr/R5tnx0Lv0CxDTAfZLaFiKb2jz9nVhzbCh7t21mxyb2mOM+GAxRaIgxodeNJoY +QA6Ezz4cbjjA72Rgi+tBxy2abXpbbJ/vX7FUhs0ICFKZJHvFoxazgtSGgHHYNxhc +/+9o6Y9jhunwGn/MaoxWJsdSjZ8VX7HY0iOSU3z4d4PWvIz05n4sGoJET6s1JuKe +dZAAeQy0V5/EzxIu4GPGrzVtk2SQhNHVJZKponZeCRruruGT5Z1T+gF5YSqVM6BA +XA0ZVXwOEbZ5XRIzBBbaiX3Eeful50ILOiP/uxLlcZtTtOyT4wNBgijfJehRHbED +ppJk42EFZKb2 +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-15-cert.pem b/test/fixtures/x509-escaping/alt-15-cert.pem new file mode 100644 index 00000000000000..70a98fb90bb96f --- /dev/null +++ b/test/fixtures/x509-escaping/alt-15-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE4jCCAsqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +MTAvMC0GA1UdEQQmMCSkIjAgMQswCQYDVQQGEwJERTERMA8GA1UEBwwISGFubm92 +ZXIwDQYJKoZIhvcNAQELBQADggIBABIv7Wlg5F1gh0+0v/+LnushmLeypcXQGqkg +E2IxXC2VnZxq8xTFCHy/m1qTBLPJK5VIg5qmtstL9zIk9rOUshQvusvNLplC0j3o +GuQdQJNKV7rrzYYpUZO1en11q27AgDsO6lwSNg4U+mqzJxxIHc8IMeJpfaGTkUz/ +ZXXNz04JJalUff+W2436vSvu8Y82fD72/qNu6EMiOl0EHJFQ/7eCAlz6hSNleLT/ +N2GztApNzujbPgH7+PHOeVpwppDuXY1rkmPJMxCqkY8yOwyM5dMov0bjIN1f+QXv +7voxVGMTefUajKADaNGMShH5rhgjIWBgujvdCyLPr6W2R4S1QPzjx4X26eTX1G8V +/eTsJ6mMc+3cd6CEmEahUnc6LdEdwm+1SMRG2nejea4o8c+crwYX5KQVrqx92FqB +SdkdCtS6qlnxJVvSz+HW6lEM0EShvjKEz/udsnttALQjhxfB7AHNWA073o/OiH25 +Y9QpUudmWJjOoqRokN0SV4rDQnfNcLKIoVFPu+rG2CpBDjUsoxG3/aC8Owcd8Ceh +w+O/DqQXudXFS3RsePbz4rPfID9YtBHrihCE10B70DUutWPsbe5lKie3wJpQbqvl +zp5kkI5RffVU7OFD6os3+wPomdIG21Cf/fru56nV3FmkINCabLQddes7OarQcZ5y +xsumEzq+ +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-16-cert.pem b/test/fixtures/x509-escaping/alt-16-cert.pem new file mode 100644 index 00000000000000..64f852ceebb476 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-16-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE4jCCAsqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +MTAvMC0GA1UdEQQmMCSkIjAgMQswCQYDVQQGEwJERTERMA8GA1UEBwwITcO8bmNo +ZW4wDQYJKoZIhvcNAQELBQADggIBAEID22h5WK1YJrKUmmO0owley+tL519YwJbs +FwbwPz7+SJKA+UQNqVXYOGLwDJ6A6OzsV1TnJuwGotTmvNwr7eOVyLf03qggIYEj +5Twgk57gJmqE+Q8UXUq2ocALUcgReZhluhNoL1XYQMbDaHYwh9HSOP7udEszVQoE +m1D74cSiW803XnqPJGj0i1s9mD6AEewPl2k0mQ0hTMM3rlE1jOCj4Jx81tWH5KNY +LXn/LhFomeo/LAU4PCFTt65tAomKTNXq0GwuunU62fy8pwh9QUpD3Vfrkm4+08uz +WXSk9PeaF8tOs5pRwVMRr0GIdnQHa9GKuBBSZEvkGTxLM+cxO7jp5qSs2IRVpI5s +ztlJQcJpeTRNCEF7gM98nMqDqve/IySGle9s1RjpnBuSD9UKzbMGeBuZK8d0JfBt +7XF3i6Tu74EbBL/mP/0xoHausW9Yo8HZhXjm5k9P7m9xxlq2JSSXeQCLbKFT/SN+ +Q3bS6rh0HaqLP8Gd3OyU+aOOy13Tr167LEFNK6DlfSadITuHwRMNvCk8UIDRDzAZ +kXVXdT5UfUe4IJU6OPVsFfntTX6G8s2/K4WropnjD5NjBJ0ppvPgCBqEA03mCGVt +IunRhQypiA0+SilM7BX6jD97IcmnbSyQ6fUkIdDBTMlX3MoYXkT00gDT3y8D/aKw +KTd5SKbD +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-17-cert.pem b/test/fixtures/x509-escaping/alt-17-cert.pem new file mode 100644 index 00000000000000..f09f41b91841d5 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-17-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE9jCCAt6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +RTBDMEEGA1UdEQQ6MDikNjA0MQswCQYDVQQGEwJERTElMCMGA1UEBwwcQmVybGlu +LCBETlM6Z29vZC5leGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAchR9+hds +zMK0NKgiX32XxJJ79tlo2sRMCZqij8Lqfyz7JDlTMSvIVqcrmimlAMX5u8BxKRXG +99KzXhbJb6Hnj2i6fQobxpD6nKnPSUcoiiWccmp8jmcKQW7M6TuqOfEdEnKpf0BF +vNFBjXGxs0KqOArX/1d0DqYS1LTnxaC6NimgvjAqKVRm9mqj62pc9//ixCgHkqLJ +stuoSerbo/mO0ieY1wq9r9TZT1epacVrQpJFWeJWhow94WutMNesJSWLcxX63mH4 +j0LHEEkHLa1UkMzM2RkHTVhKrthCiuyrtqrglLsdPInU7ZYVONyUrR2D1tMy52mB +b1HzzP43pomBJtp3OeEZtBDwmmGgD8RBdVK/T9hcK02cvB1w1yr4LHUeYLMqrZaP +SJHQ7kv9AV5Os64SYW9+7cqjt1q4VmaEqcuCqvB6mORHWHnsa6PQ19myA7OdqNpT +WAK3D94tpbGPTzfhUCHk0w0fPzJ4A1+S6g4eHX4iQQxxDg9sXV4ZRvAEKnJhs2S7 +OhtXdfyu/1+lfaunN13SyxMwyyxHzylEU707Sisxse2usX1Zy2zxqD+LO/9iIu1S +76/rquhiOFRWxSpjb7ewpH97OGFmtzfH70vBBukn0alT4xjkje10NlBfzcFwHWQH +59nxPd5sUEqq+DxTjoAgwO91woU7UTs98lw= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-18-cert.pem b/test/fixtures/x509-escaping/alt-18-cert.pem new file mode 100644 index 00000000000000..341ac0b7cec24d --- /dev/null +++ b/test/fixtures/x509-escaping/alt-18-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIFBzCCAu+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +VjBUMFIGA1UdEQRLMEmkRzBFMQswCQYDVQQGEwJERTE2MDQGA1UEBwwtQmVybGlu +LCBETlM6Z29vZC5leGFtcGxlLmNvbQBldmlsLmV4YW1wbGUuY29tMA0GCSqGSIb3 +DQEBCwUAA4ICAQBFUk2Z1E5Q4mW7S8dLz5h78AmfNbwx9eNtECc8iLQq2Q0MuIzQ +noURyNSHhH2hkohU4afXjolCr54DkJNYogrBwHaNDt3Y3wqGQXc+BKRnqblfr1+A +1EoIaqRFjv/Mu2gB0H4U3vBRYriZu7BhQFXiQHAr6hWLG91B1eN1i+my9zOSoSZF +7BuemB/9F4wjvwmDJieSwOgGk3FhNV64Ce9M95RwDKNSJBTBqOTLoyvOw2jgs22m +MntqW9oRywGeHdJ5EucPBrZQKDNysNFj3We8H7PedGNlnG/QknE6pzpRgqbRCAax +hcvGQIaMcUJ3oWhJuPNscjsJ/nfaitz58nH5raj4O8JhlS1h49NpbJO/pAWMHh0d +ZruXspxdEwW17aMJJ365q0XyVysRHiwQuIQYCo8L7oVUsH5FUJ9xxPH22b+PG05r +EABdID+aDV7X/MNwBxgeBOFVOgE5bfrH8NBjkx/F7ID/hjcQDLVWWoFnpIjekebC +EeqTRl5TcnoN9Dc7zkfwmuYGoaYJrGhj7WRvfFgcw1Cr1xujiJtoKbEbMoeD45+H +SQ8MwBb37Gm3aBNakpVmJlp/QZSJY403hA8QrZdjnqoS4THrC0+gN2q71aZ9ZCZY +3+OPNg659ZcYvo1onBSA0p1WGKEAWdHKqZCVRdsl5LnRg4H5gEVW4gmhjA== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-19-cert.pem b/test/fixtures/x509-escaping/alt-19-cert.pem new file mode 100644 index 00000000000000..f16318420442e2 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-19-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIFCDCCAvCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +VzBVMFMGA1UdEQRMMEqkSDBGMQswCQYDVQQGEwJERTE3MDUGA1UEBwwuQmVybGlu +LCBETlM6Z29vZC5leGFtcGxlLmNvbVwAZXZpbC5leGFtcGxlLmNvbTANBgkqhkiG +9w0BAQsFAAOCAgEAWtSJOhwRpYdB/aq/AixRTIpwf5VR3MWaDNh7clpnpYhYoLDY +7dJ8cv3AR5dOScFXLrCZ2UYVD+tTPyt18opnYDT4h6If/U9TTHVu5tRSX0wGIdPc +j3zVVegty/HWMA5LfwygNTvZjgXhocckNND7hC42+BuXE2bqoqnkqMRer/R+9PmU +FXpyLk0aDl2QmspDAz86FYpEuxpMfmDNmM1nWDz+n+uBbeuriTttsFqFWkfOGoNN +/3tAmUjAt5IqkL+7rnDt6Lc9inY0z3uYGJEdqa0GJJFJ7U+8wcw8rUwvKETqAtW1 +mBOswkoCImPeNDpiqiotwl4cfrsb1+j9gNpYTP2oSurh/bF0mxGLoJa1iDeibwqg ++f6oWcCdYQ94ItvS3d+lNXT0MWM6HU6sHXf3+5SqvsvsKjUBRyy1Nvnug1bha6Qv +bdeErN0ZSGy12Vc90Y5fpl8kebmYiJc79OqvuTNDeRfgBm+U4ASAj/AEhtbN+wDd +HrUHbk/9U9h0UFRZ5s7Pqoy5PEoLRoFeA/jQQa/fLC8nl7YTSwidVgj8cyAy36sV +uaBNXrcgelqlR26SBynXM3APaFlv5IdSlF199swMCusQrGbiNajl21TUm+Iv+84g +x7rnUPnQ1grkLpMOBtGaraKc93e2VfH5bAZvyaIq99qdA10ERCtE2grvjik= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-2-cert.pem b/test/fixtures/x509-escaping/alt-2-cert.pem new file mode 100644 index 00000000000000..6ae58f56360276 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-2-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE2zCCAsOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +KjAoMCYGA1UdEQQfMB2GG2h0dHA6Ly9leGFtcGxlLmNvbS8/YT1iJmM9ZDANBgkq +hkiG9w0BAQsFAAOCAgEANTZFCjNmspLkZaVYkcAXfT2poPPWAu7wS/wG4VEmKwPV +A4dnFV2McXNW/iyABeoofeIjsjiYLpxTvz3teD2JJh+hidNED77PV7f4hj7vs4Dn +DGB3HKJvTD63AVOiPJ4bbfUyiuvLO5TwdxAGm+q9lsf/fWFraTF2qlnFwyWf6Qul ++NQo3bM8mErvntZMscq7wo0cOdAXA0bNqxKS+IDnc+HLxoEr2egbRJmEagMgV4/U ++AGVQ1sY+HrEszOPUA6NZ/OzLuXUT3swm+4rqJZEQ3AVr2BdqSzoiGHqqzmfKO33 +sODcYXuED0sUkIhRZE1vW+wXR94WQsT5C4MtHabNjpPLSH7cVjGvEfTX8DJH/F7p +OdMmXxvPey0wLGJwoZMMhG/XC8Nb1g+qCLLou9WuA7KHMibfiYdBnPcMDg3fwWwg +pYzrvK/S6f5h6TS8y9zKxCJwTdfC7f4KT6EjxQFhgHCm8oFupOLSEZKF0UmLMeOA +J504ZnGdhEG5p9AqQNBlyBsGGmSyQkSJg1BPB6U7wFBSwrXS+3b2ph4J5RivH68O +CKjR7yWl7M75LOa1dt133GmhPUUGHLsjHTnuCDVB0eHcgboonKTjCSAmckNKm/uw +tAUMkO3puty5JM38b8AwFRDXLnlWdSsNr9j243SHOfKyFWidjwglRpVGBhoECtA= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-20-cert.pem b/test/fixtures/x509-escaping/alt-20-cert.pem new file mode 100644 index 00000000000000..eca176f2df0c28 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-20-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE4jCCAsqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +MTAvMC0GA1UdEQQmMCSkIjAgMQswCQYDVQQGEwJERTERMA8GA1UEBwwIQmVybGlu +DQowDQYJKoZIhvcNAQELBQADggIBAKvkEHjR6lk0AlKiC7oltE+gp7SpVHdKs7I4 +zswnbZ1EcddA9D6hjemU+nIUriLkt8BxY+KxNtkwDm5mvXZn5E4XDXzRDsCdNZXE +qx9og9LhkhfGbPJ1LPutQ0VmqPwY17mRUeaLhNIwOmD7g++oVHYmZWqA8tHVB9f+ +gP5Ni2x/PX772Vt/hIpI14VoYIsMFs4Ewjc0Gc02DvOdsDT9eUmAo6GNOAbxeRS/ +D2D0w6CQhwJ+cemcAo0lGw8KemCYfqzL+MQd8wUGPsiZgm5wQACOp+ImL4guy2gX +h60W9Gtxu77jsjF7n0n4LlInylrZAgw09CkehUfF4+cP2kZDTcsuqOoCVYATAGxa +49ZvuRHoo5Ine5PcfuARS09LmxgI0fdsjaRvRELYIRWHTvE+zCLlNkxkpwXULgZZ +bpJ08L52P+jz+HJPeiHZnYKXgtXyGLpwG1danS600tqiMmDh0G9Ss+UzwhS+jhN5 +viIvpmns0zvI1Z1IWPw3y27pw7rmLVcFMbEZFK5mwHiT10iRrT4sxihWIT+sn6n5 +5baup/od4kSJABQy9LAuhhuZHyCfxC2yPYz70sP8qGVtY+rA3LNe0ns6pY1L77DR +QIRD/Mm2hql91+U222mxikdT4WQEheh2cLwdg/T1uo/SQDruliNZncdNbTGDmnhc +cg1mw5tk +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-21-cert.pem b/test/fixtures/x509-escaping/alt-21-cert.pem new file mode 100644 index 00000000000000..16d5e7265bc3f5 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-21-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE9DCCAtygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +QzBBMD8GA1UdEQQ4MDakNDAyMQswCQYDVQQGEwJERTEjMCEGA1UEBwwaQmVybGlu +L0NOPWdvb2QuZXhhbXBsZS5jb20wDQYJKoZIhvcNAQELBQADggIBAHdccJEkqezS +GSNNVIWv9XffNTrZnejms90h66UDC4O9shHMy0aNWgmGuu7uFi1BK4sTciXT+ZR5 +3+1ni3WKMhJ5Iu1aNlNeXULOlmuHKVJKrAj8BR7lflSFqj/MHnw22HU+BTmddZPj +F/OCl2W+O+eUNBTTmYI2+pZgmyyU9v8qEwLZn57qlpAJa4gpnSRYQS1xfSaUgAcM +xtZM/AE4F9mDFOdO86/RxXsYRyT0+sOGmaoJrlTWoKduoI7fhzQAIGHnhn9yBT60 +0K6LmCR2dXRyLxxVTy0Laiz487IXpQTJ8jo6c0wT6SeiQBlE0W3FTH3IM8Shzd7b +5tbix0bCR1pUT2Q46oaB4xkEweKNGKS46kIps6mpTav3TMhNDVyalUfF4fOu4FQu +RLB6B/I1TI1KHiTeD9xfNInBAdO9ewjWQ9spFei3EExZmvnnWKZIA82mjG/9Wcdh +HFK/uEylzo1Nsxujv2V6ueMYc0pF4XH2U1Azjxb0+pWUZhoy537Nlf8b+PO/GSG8 +del0yPwf6JP5AZdXfiV8vNqwEGCC/BEIPrbZ6Zz1q6lT+7GZAGkzbMYlfkzA1lXh +JteRIracA38WfQOHf3FOPYvTBOPlVHWB+tJbwlalYQqCPupMaaxxizCLPIsNvqdy +TAtC5Jbx6N1DdeyHpRuKRUe1M926oKTp +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-22-cert.pem b/test/fixtures/x509-escaping/alt-22-cert.pem new file mode 100644 index 00000000000000..5f89b00dfdce1f --- /dev/null +++ b/test/fixtures/x509-escaping/alt-22-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEyTCCArGgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +GDAWMBQGA1UdEQQNMAuICSqGSIb3DQEBCzANBgkqhkiG9w0BAQsFAAOCAgEAE8vG +nLYo/G+3Cuzir4toX726vLOkCEqZrkRE18dc3px/CgmEI/6+4lWjp3u/9MxER+kT +t5o5Xin+vmg5F+hocR16mMeX6pjD6tXJ+uzDacTxDgRBFdbqX4x8Fjiig0FXsr3H +jFBY2c4UcKszFlCTqjH1/RfwLYJPU6Q1WZM+1iJotSKnhK7y4A/3jho7sL0PPuMG +WEoxbTBmpAf+jPT+LRe2MY++VnVJHjlPba+S4Y9PHOzizQuIJs7YnhNIqA9So7Iv +eA7Lp8GID+w/eY4DEq4z6CIuCplKZTrrWH0kQbG1sV4J5+W+JL0DOXDk91JwkOPH +rWf6aOb3akFRk5Z/PrrcTAlqtApPQF4uGycQBo8KgcatZyP/3HZZHyyxhEjF9sw/ +STHm93GlCIwocJ+SkwjBmdupv6Yk8fRmA7LinjVvi7EnQQ7qcRE3oUCPPReDD96G +TuDsGkQbv5WQSh+0mBAiTFze3C6FSNcldQBrlWReqOj6pVWtUN49lpYOJ2XfLCQe +RjS7IUYNn7Ku3xXi2etgNzmJXcSnNXZkh+3henpFqkwEFJ5b5RgOHXULTwoqo9KS +YMs3eKHp62J6l0pQD+wTGUyVU8cJghJ0hR1WnNR7o32Bos2dfBmIQgET4ZH/P2+H +A2gtbJO5mRsTvuD+kZut1jxJvUzuO0yZoNpuUVQ= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-23-cert.pem b/test/fixtures/x509-escaping/alt-23-cert.pem new file mode 100644 index 00000000000000..5cd6795cded659 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-23-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExTCCAq2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +FDASMBAGA1UdEQQJMAeIBSvODwwiMA0GCSqGSIb3DQEBCwUAA4ICAQBps3VQshvW +9HDR2oDXSldWNW2SWksa+9npI4IEMDusiDbLdR0VBphw2R3iUuJ4IAPDc1s/SMi0 +1t1o92lC5zVeTq9LvOOC1KxwbZXDubFDmdsuJ/DYPDkaRoDqoH7eFsJuIyD/TKqm +HXPYmWmjUNv51SSLTTqPRz2TmLQVA1Iw7J7H3fz2LExsAtczx6gRZJPIZGdMx6do +E67SUp/2RPYtkEmmCELOxCAh/Pzm6pBPncI86AMTNwppl+FpqaH0LPrqMre40tTt +cQq/0XrMWRoWsS3VU8uor+aGTnNp5VT3ZLVmXZNyG7nISW7ERaGCeTZJRcqwjeH/ +yPxhQc7IpYCm5x+HN2sDuvVC7l/q1A7+CbO3jNR5Gb7aEEyGiKb5ZkElbsulfwom +JOg1K8+SBDGrErEf0MDCenKY2g0lhpKGBwu6O+RVmKbhlHEjt2/31/NCSBMLopdU +AmCNoBo3+KaRljo1lVf7tWbffNRCqsbPZPHtq9uXs0DliJTUroaJ584h92VrSLJB +SdAUVLAwzmwu2Pa4bp0STv5tJy1hFNJdVFQ4rgAfaFudXy41K9zqrDCB7RbzX7Yi +97TCDu/phzkoFpOZabqTrvcP13N0wfDeOx4Y9nx77aeqTAaQ0ooTG9IWrHmjuUKF +wpEXQBfkuXug5+xq/hlCllkPj67cIaldDQ== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-24-cert.pem b/test/fixtures/x509-escaping/alt-24-cert.pem new file mode 100644 index 00000000000000..2a858dd39a2db9 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-24-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1DCCArygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +IzAhMB8GA1UdEQQYMBagFAYIKwYBBQUHCAWgCAwGYWJjMTIzMA0GCSqGSIb3DQEB +CwUAA4ICAQCKRaPaQO4+oztra70h3g1qwmJurQ1vGBdcXh27nf9epFAwhU1zL5v7 +7wN7iclY15BX3w3WrZ+ag74AvQLG6WQkDY1JCmidEjjt2bmVTxIus0H9Bb2AlUEw +BtVYMJrr+fiWbfSwRxhMQa9BQ6ZcUA7EluYQFApo2m7GIcMc4x51L/bwzmsXYj4t +2tjnkU7clL+7GR/w/+ZB7nIe80j7wYvIbOfMS3Yxh+uu0aQCNdoh9Tsdtu1jtmJv +4lJ5aZIDABE/XIFVkWRyHv2ou14J/LXUKE3HPEhSKWu7GShrdTeS+gZpOixM+uPG +ieHah1GfJMS69P82Z72Cr7XWpQY0NKwMB+ePhTzz1LMBHQ5ySXQCViQRClRMc5K+ +cXZm8cs6oe4IEhMcf3kc/9xblgRWqxX7vsb6Gcrn1eXsfxco17S1yNBzTt75ybt9 +kvPmrWqpg+sQ0r4473DjEASoSCPwlzCpd7AHOw+XxSwsOUNXkEnXMa2v2VHBjx06 +QnrLenB/n7EQ5Vo9JLDMLM6ie4gfehHxfdyoBg21jN9eUPpKGnjARVvyfDWV+7rI +ZHU7wc2iMnqroAqm9FZ0YBqZ/eI8M4ZAYSvDKnGZQlUWfhdNDhI4FsHBPymMFtjW +ln5eFUNLMoitMGs12Ib+omr9WSTxRj97GvRkRTNK5Gxmo9Mi/Pkxng== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-25-cert.pem b/test/fixtures/x509-escaping/alt-25-cert.pem new file mode 100644 index 00000000000000..695b8ebba88ceb --- /dev/null +++ b/test/fixtures/x509-escaping/alt-25-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE6jCCAtKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +OTA3MDUGA1UdEQQuMCygKgYIKwYBBQUHCAWgHgwcYWJjMTIzLCBETlM6Z29vZC5l +eGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEAIgp7IrYYdLCoUqg7E4igLD3u +C68B896uoeenMmTKDfCzvB5svYKZlfIi3njJUZ2G6kgBNcSd/mwQ2ggex9AEUiGp +uaT7Dpev3RpwtCz5zpOZxN+B0LJk4hPzzE4sjJFrmHRgJVzADL5RdcEF7+GV81nP +X/cXviffkxSihAFALArAaOA6/hBoT6unvlDsY3cxgZWFl3ao76vTQFLs7ZNHYbHe +WDkkNpheWmNlOrVTEz0vjNCQz5wYOM6HJ0O3cxzR/6+OnhPQagZRCWApPopYGuxc +kXHAPbEkXpVzJTrNgHIvZ3l3JdJSHsh+DdGVz1NY4bogQNKCVa3xt+zLpUrr34XM +61Z91MekMijfjOsy7LGLSBdCPCZ00enXPkflDEhv1kRlbo/ZdYGHynzl6Xzu1A5B +nuwDbpsCzR6ij8fZDXGUS7F8Iemdfag4XTtrXnVXLgPpD/FMzJUx4kCIAjgh2MaP +0nUvZDVYt+GKGohCNDrSt2ByFtbYGaX5GeMIp8zW+GT8KUW/K7pp9PjsmzG6vvQd +kqxB45ddf87E8NoDWh/ptdj3pjfbDc5A1SeXKGXrt1TwgWHtUNW0zF8qOuG+PZ1P +u10lUx4gayyF3unaSLZwYu8nYq5C7mC9DjjnbjLhsh0VOIEEh+Q8vJH8OvZFkyti +l2ADXC+6evQTvqLwXi8= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-26-cert.pem b/test/fixtures/x509-escaping/alt-26-cert.pem new file mode 100644 index 00000000000000..1204d95a8a5793 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-26-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE5TCCAs2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +NDAyMDAGA1UdEQQpMCegJQYIKwYBBQUHCAWgGQwXZ29vZC5leGFtcGxlLmNvbQBh +YmMxMjMwDQYJKoZIhvcNAQELBQADggIBAKmgEHc9b/bscpyO5mTKrITyoYtbhz/P +0Uz2Uc4tKokUI9EBuuD/XX4EjtVzne9mssAAs9EhBSFmNhDjpAUYh9n2cFvAJQit +4d9EbaNbB3SuzG5onu8ZBtfLsABr5L5tQspO3tinamSM2ZuRo4dvcQ2a38C38LAQ +HBnvZ744Th3LckPMLTWNChe3E2jAt8Av0XA2yVJ/B+EeEaqSYDALKhI49CLeq96L +m/Vq/mqADborW51pMNFn7CAF1jxizQNHy6K0E95ziq8q/OL7j4+j8Erh4x7bcjrQ +X04Z+hrA9q5AjG++ieztKqGuGxHeSclqBhOdnU0UI528Vn0OXRxeMmbqMF+qhx17 +nHuxxs4z5CIdTwHA6LgMUpDxcOhdUctIj32gwZM3UHI8lmdRTWn13y/Ht6CpIXCL +1ohSXne5y34z4AKeJQpdUfwQD552Ui8B+bhH1JBm5phjLn1fboXCYiCgnPQ+SJzx +3hsIv7Fji7lfk1UPkr0s7Ze8b/seYS8nVB5rg4qXEwFDMo9zsjCEIyg0tKwj5Ani +HlYzqjjsIK50TPjXYOA9J+NHcBDCDa3r8TBtRGtQqOXQGzvWTqAyT8Uwn7jimmh+ +EGDr4PJSTJxv43EYL+of0sRHkOhnfFfJYF9vQLT+wD6l+6T1xNPE/gjX8DyQS9a3 +zOgdOiTp0AKH +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-27-cert.pem b/test/fixtures/x509-escaping/alt-27-cert.pem new file mode 100644 index 00000000000000..268abdd300914f --- /dev/null +++ b/test/fixtures/x509-escaping/alt-27-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0TCCArmgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +IDAeMBwGA1UdEQQVMBOgEQYFK84PDCKgCAwGYWJjMTIzMA0GCSqGSIb3DQEBCwUA +A4ICAQBtXT+t0fuBRClJdY6y01k1jqcsXEkmKOr4czznuiloGVEjpbjmxzxsgvzw +nz3od6Sx56SHG1xYbKDCapX9Ld2IDsPvpF2wdH2wpIS5DI7tQdBpLm7vr3vTYKwm +Wns+WKO5VBHDLCyuYvHNo37MJCAfBlr1ni7BCLOg3eycPiANJHPD2T9BnXlJm49K +166VMviuiLBEyO9tadhvQHGqCX3D4pW31zwsKHvS4wau15N4yt053Iac6eaysdTp +mspw5jX85tlQ9XxKNTftUVJU9Uzk2ll4A0Gvnq2FEjiqf6m3tye2nsqDI3C81Dwb +Y/+AeO7ZsVyLpIstfUBFmpLGPUoZ5MNmgrboGf8K8dPPgVbmbS0msrsI4LWSQb8P +R2hzj0F7bFvgbZad7rFXJW9FQOqTwvJrZBkkDpZpeNbhah14avV2Ftrc5+PtVfP0 +jB1L3nhc5KGpGL4xqE19K+GVR/KBREgiFD7B7NYUOPt9NjFTrbbC3XA8L0MC7PNh +ySDN/NCiIF9K9MtpC8BYuNBlRt5C82L37qPY4Tw3z9sCyXK5oOQ4xdbdDEWdwzc5 +F2S4zfQiB7y+C9RigOyGPChxBqDK/bCExrG1S2b95oP4QMuaL55iXnaG9ME8sCoa +cUd62cMPk7piQW29oFiQPYsStfo09u9JXbalKhol9oPrDtQfrQ== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-28-cert.pem b/test/fixtures/x509-escaping/alt-28-cert.pem new file mode 100644 index 00000000000000..147fba3aff2fae --- /dev/null +++ b/test/fixtures/x509-escaping/alt-28-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1DCCArygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +IzAhMB8GA1UdEQQYMBagFAYIKwYBBQUHCAegCBYGYWJjMTIzMA0GCSqGSIb3DQEB +CwUAA4ICAQA2KjgKCSLg/rDajrBTtVIu14rAP1pMwFZWrxcpTbN+fOs2dYQXZf7d +/GaozSMSchjPAJ8lTFfEB20Mur/E284LlQPuQKqHHn3gIh92VkHHBHjj0ohnfigg +eBHNMUisuGyNzKV7VI1+iwCoPBZC7ptbE4X08osVxxRESj+IT0TwtKDONTIIeogW +6VhsKTQ1HM6AMbhVe0Led/ENxFFMquB25GG/hVB4ZzPmsJZzNdZYNNMa34kNcMN3 +5OFcxWV/4Hc77JYsqM9fE9gBaKC9pQE0XwIrOMQSaGYx+GO8Ty33YlM+oYBt6TMH +/9oU8HVvEYW9GAyptNbXPOwyv/wikNBsJyDGfvuDoiTZ9iMFb/bEoWHSK/rYmAgk +D272zxiPS3YgaZkvhlYZ+60w5CCgXoN5L0Zq9yAOTv92/VHFnMPrTP7zfD+4eUHY +lg+A7pOCIUK4cIDUXQefn1dU5/8DHJ8aM+KQDBfkKOH3me3GzIKjtKQjhwYFiJ8L +vD4V6+nq90GasShQDKUbMVbCxfyqlvrXOP0an+FxdknadnD5hRT3UsU9SRxAdkXi +3er2sXpuULYqOst55Ahnj7D5uDN4KBoatZwFd1iw0CVPoox7ixZ2zOAkwVqzaEAq +0yWyIlELm9/FdF78fu6LPrFKI1H4MH+0TQrF4MiyJWPvET7t8WKJsA== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-29-cert.pem b/test/fixtures/x509-escaping/alt-29-cert.pem new file mode 100644 index 00000000000000..434bda3e8e7988 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-29-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1DCCArygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +IzAhMB8GA1UdEQQYMBagFAYIKwYBBQUHCAegCAwGYWJjMTIzMA0GCSqGSIb3DQEB +CwUAA4ICAQCIFfHE09aftJrS629ZBBRKjRiVcxN0/FjeEHWbnb+3Re/LoU/Y64BT +LmjMBB6wik3JxxUtLs2UYExQKfz3zmB+O99lR94of3V3RXPCe9Dz8C12iohYBvVO +q+WzXyg8g4zoIndn9+ByR+JJsuk+WVTZd50wRaRvssUB5yhpLaFdZpnLUBdV5J2d +shmefZxr0NgMb9p75wvWgZ2BiZQDeTR93+PWaZTMdSxZh6ynfG//5sxxw5fLm3pv +eVo3oQQ8px9j8G83ouiDZJn7XZgNfXYNq7wo3yaqXX0zlCE00K6tXGI6FkKJnVdQ +si+JYfGjzTM39JqFU9YYOOc3Gfw20iKIEQ0jnE0Z+z9Pv2GAel0UNdovluttxu9R +CJcPJOLS+TMd/sAwCAELvhPpeWsDLhfd+lG7ofE/nM6hzec6apWYyCqqlYIdE8WK +rtHXBIMGk/5Eo+2KDGQHgpMs/P8fNUL6FBx/i1pjm5nSHveDQryepEmOJq9NJCBW +1AJhE4jCXMv+43Fnr1OSATNiOd+1KfQ7KC5PFkpZLY4GDFZcbLBKYj1TWx4WzRnm +EW7cC/00Z3Cd76L5i+y1Xr44nbQcAMw6TlT6vvZjFCbCO+ZDUJSZBZMpWwBI/gAf +MNzYPltOGm+GZUuxib2MSF9Qy8c9NegENmsK+zyPT3N9mUHCl9nknA== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-3-cert.pem b/test/fixtures/x509-escaping/alt-3-cert.pem new file mode 100644 index 00000000000000..59185b64a4dc5d --- /dev/null +++ b/test/fixtures/x509-escaping/alt-3-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1jCCAr6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +JTAjMCEGA1UdEQQaMBiGFmh0dHA6Ly9leGFtcGxlLmNvbS9hLGIwDQYJKoZIhvcN +AQELBQADggIBAEKwv45Zp5xJEGENPrOIwrGmuBDMtBPmXtSKydKSNUgrv08u4dHL +n295L7jIwQ3SnRjS8PrZWD8RQ46hgFRY9pqk1uTys4jB7lki0eAUBC7oPn7q0GUv +ojdSwOEjp5bfXyuRv7Z+3y2gD8pcCZsqcCjF5Svim6Q3pXMLRKQFhzhzL9k/gsNF +lJ8KcLBECJSm5nUrZIRHPdIGYmWJG+t8CfS3E6OIyHILK1xCc1MasEpmYVoY9uzT +2W2z+3pvwQqfdXO+lEOsT9dnjM/WbnkQMTWAn+++YFtkvA4kON4b/cp9imnXok02 +vq7MCbN+b5CJXIhKMC5eNA36ez5hou0MUmnsNo9ai1gVJXRoL67YgUh1yMfcAaSM +Sfy3UBF++Az/yQo4AWtqWk4KPePdcsrYo9Fke1inUl+M12gkdIz+efbElHMqehbt +lunbyFI/7CY6/Tno+T1cDkQlTouHK8Ddb1cPhkJbE4euRuLGdtn2AcFSemYGtib0 +ffuhnEBF8M8enPVyLjYA/3sELkmmaHMtgDTm0+XYQJtjIbvGcY7+bftPZgbXPVGv +7+tiYjwarIexXN5yzMasgFI5+7qLSQJHcmwrzOm8K+Bzx34f20vwR4M2FJ6cqUeN +qzdN1HSNp8aYNilaFa3+hfGRG9CZnVP8up8BwYx736EMu0G3yAp6UqqJ +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-30-cert.pem b/test/fixtures/x509-escaping/alt-30-cert.pem new file mode 100644 index 00000000000000..1b67d1f7823ad1 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-30-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1TCCAr2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +JDAiMCAGA1UdEQQZMBegFQYIKwYBBQUHCAegCRYHYWJjAGRlZjANBgkqhkiG9w0B +AQsFAAOCAgEAgG06c7GRpPohHa1X/YQVQGWa/J/f3qok3cu1nrD2H5Dkw1eAVPcQ +lsng08lOxwSI0OgqJw0jl+ljLKuhHI3U68KbFmUO3Jw7uLDk1+UniRSNkfxVOrlc +7YTlmsxiDgQdX6/TAHu6bERx147NqVzB4/I6qpX7ouLv4E7xdQgjKuvhWlJ+Fg/0 +pQ7EleQymRN6Y8qO6RwEWYao5pypg8/22cE3jgXleLM+5qWHqJs2ZewPQf7uo4Bf +IwSUV5H0weftiSN+kOLYiNfUago108VHuk5sCIKr92q4WAJgA5C6ylcUWaJCKbCv +HQYR/QG10Mrn4JCzzni90aBHrQoYQ8msEDH1QKyMJiNz6XXzwBP6bvgPlB2f7nPW +ERpH45M2I4Z3dZYFw8bF7CcOIUuR0/Zu2WN22IhqhjVQSZPzdRWJt5Rr1mFUz+Nv +Ymdi0w68KyRUiuOpKNLczDDnYpc9EqGBprnMOxALS4mQn1ySBXbZAXnTTdEzN5fM +L4CXWUzIBVKv56Mn5YskhbCd+N8GV9Nj/A6dBwa004CQxbgAj+ndNWc7+h4iSNlz +9VPHK2Kju6j4fVpe10jzSoEs0nnrsPy5Lxa6C4KhXBBJ3cPl6wWNe2mgbEqG9Pq2 +KrCizuFkIfZTAeSrR+prZXLw6cjmKPPEtNbK2JbteL2SEDT/3AjmmZE= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-4-cert.pem b/test/fixtures/x509-escaping/alt-4-cert.pem new file mode 100644 index 00000000000000..086af8e02e2c19 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-4-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE2DCCAsCgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +JzAlMCMGA1UdEQQcMBqGGGh0dHA6Ly9leGFtcGxlLmNvbS9hJTJDYjANBgkqhkiG +9w0BAQsFAAOCAgEAPu7ubyZw1rOQJhFX6nBHyCYaBzaKxRZOHOFCjMrD/YQXPUNM +Hs+8ChOeQ4M82jTyiP7XgF8EumDcckDIlIYvGXGrCB/6VcCVL1vPPtzjSaiF3PlG +/dh0OlPvevr5Ajz7ZtFFwxeQ2EfsHiry8qnlDJSEjrh4Trcx9YzdkSZz8DaoODXz +ctR/p1JEnQ6h/Axa6hdqTzbzTsINN7gD5Wi3ObfQbK6Ug/CuH6Zr8bdTsmeGcnD0 +fqHptuLVNcROykneYziXDzcqGwrZnYaOF54a4ibV/OfrBcgEKeDwsCrLs3nztSC4 +whV7DXZwaLl2KWl4/suBNI1cIKbxII1xTFLTog+UYz0zSZGPrtbt7zrlM4yG033t +h9xIGUKebaNpQYkoxOc/+kKhbKCeL3klfxJoX+6Gf8DkTP7byX2HovfWV1rJbh57 +YZ04Bh69VmyxE4iyb1tAh5xh1bArCR9m96eXS/0KIZbykxltQGyHf1jpWw/4Wi3n +oadkpMcyNX76M1xBJ5u03JL8+LWrXuzf/ScWdmPUWulAEhbo4fn4oRwP2C3l0vVQ +iL482cIq1zF91lssRwQ17k38phulRdm+7W65/VI7hLoG6lXiSiHLH8e39hHO8Jey +Z+BBvn8x+aFgIvpBK/MX35s0gSrl/UiIZPU9glnktSsX5D+aaQynbuvbOW8= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-5-cert.pem b/test/fixtures/x509-escaping/alt-5-cert.pem new file mode 100644 index 00000000000000..04a918008c67b8 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-5-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE6jCCAtKgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +OTA3MDUGA1UdEQQuMCyGKmh0dHA6Ly9leGFtcGxlLmNvbS9hLCBETlM6Z29vZC5l +eGFtcGxlLmNvbTANBgkqhkiG9w0BAQsFAAOCAgEANAyZnL8f81Aax/0Rhw3CCdcQ +SXF3dpAolObQB8rlirRZ7yOY1v3Poj411aV0x9zM6mjOJZwarUTL7kbO7odQxGhB +x7O0DvUoG15VTvs0XLNHTPgnXtNjKOZ7XXVMzb46APfYSqdzMqhRWfy+Iaikp494 +urtqkVt05q2amzq7EXbXI8JQWhkJkhjBTowfZnpZUw4JeeqMNRZT9Ldv2XDZjaYS +lkHOLzTmSmm2mf1oxhKGcRCgUCr/pzVUfDA3RBz25a6PWAQt4b2r8k5jydWyOeCZ ++sjacoK5/E1PcdaOFJAjuAfbRMeK/gz2+yJwaB39Yh77t/9vQC0G6aiAmO0HxjJE +L6Lb8BG/QNYBS7gGhzKFVXVVv5yXRioO9vMv0i8uxShqD2Lo/MbrNtRgi3eMFESd +3NxUPXS1jMq2/SaXrENdKqNNi06LbnLaYpI3BLZ/Katq0V9ESlhcC2nT5uNBPiLr +DNSekaIGobbTDkuV896L7jqsQpU+sgs4XqaISGgk2wAfnwbfpeiBCL8oH9yCYAO0 +1YlevrMGjBNvhysoABv7qaorqeL97ffRhjOZ72/fm2axD5l9MvWEFIf7L5uOah0f +hF5vScQYgyWNuK8wjzT2tl0CuxvEyI7N4fkUEk+ZMkyI1Obx17p+d4SFyuq7wTXR +05oWMsCMDyzxvFDv92w= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-6-cert.pem b/test/fixtures/x509-escaping/alt-6-cert.pem new file mode 100644 index 00000000000000..664351995793fb --- /dev/null +++ b/test/fixtures/x509-escaping/alt-6-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEyzCCArOgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +GjAYMBYGA1UdEQQPMA2CC2V45G1wbGUuY29tMA0GCSqGSIb3DQEBCwUAA4ICAQBB +lBfIjUH7/PbpC00TWTOSR6sAzyBr681lSxYAgFLduDdfR/bTkI1p7txIAgennoUq ++9slIIMaR799BUtQDfAQRYdbsWiG/+5Lj3JXs33LPPTdW1C97LOPlnnbRJh1sjbi +UfGdxvdPA6iuyWhfwPZd+4IrcN+kefkvEnRkvDMGwmfmKQDjbu2mSIAIe+ECyLLu +wdSI2sPBSUKQEKk+dABYq9TcdxlA+OSPjgs5ZF3NK3s/or7ay2r/i8be5TswY4Up +IwByEk+7AST6ijwi3P8EN0HAyyuOfpBelWZCQgdEGt40Mpa58AwBGqdrCZ5wDAz5 +nBx6GscZUsqG9sVM71Tgq7Bc1b69FXUYAhmFucnXizHv1Ys0oGQVza1tkKbaLEFQ +WvXWc7zW/0hTzvmtogKn/oM6GoNcQiW8KCwaCJq1TTv7Tip9znfB496tDruOr+2w +HoqZTJ7ERklz0mlZ38ISTuaz+Qkn1KjBYh4tgP/wZIjIyppAaAr+JdqXzBejfb4M +6x0S1AG9QgvyR1xDv3Vljjkh3m55kktTWSOfjS6aSzomaAyVAgi/vhHkxhsoBhgQ +41+ffkhM9ps9wkmguwqOXsByQAZUQEJQigO39qYuGuJEDV8Bu8i/T5BuuJWP4BRF +X+now5ObP73ufyFwYGsSgblivHUX4z/zAt4kp4AMXw== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-7-cert.pem b/test/fixtures/x509-escaping/alt-7-cert.pem new file mode 100644 index 00000000000000..6c0f287a1be1f7 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-7-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0jCCArqgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +ITAfMB0GA1UdEQQWMBSCEiJldmlsLmV4YW1wbGUuY29tIjANBgkqhkiG9w0BAQsF +AAOCAgEAKmYr4QEnNq1Sy9lYePNRR60jufFXk44bczNT/wA6kvXKgv472V9wltVb +yJVvYUWkTO8ahlELNLfqRcuih6myV64WJoewog8mwby0lBYr6bAz86DdeN/B9rFD +OYnev1Ux4um45l42XP8acgJCoqn8+EE+H4AeMrz2xxHt+IDy4vUOowZna82f1Pcp +O+vhod2uXlukfnhofVK4lMHl4++4kECkmUYl8U+L/zXwzOb4S3Yksffmadgo7ERk +rJYLMLztvCk6TtP+p4NcvrE90dmss7R8hfw3asfjXsRbAMigdfSMKzGB2IHoHeV6 +fpmJy6kotfwulDrbr2QtrWOYdMrm1wT6ohT355KZQxcZr3VcK9gqEjcYafqIsXtA +wYAaorKXaz7UkmFCDbk/24UuHgNgCl4KkGsFNwW6whTMpb9WnvPR7F798tiIbOL+ +FK6yA1q3Z2500lmloQWcUFBX48DViG3bsTJ9wmQ28aPqHVd5gTmTm/7W2iRGx36N +PmbAk17J/bUzUSORgrPi2FLNNFg64x40pfdAyrF9ZBNcsVCFCUgOQHgMh4OjX/n7 +khmNbMYiOvJEoUbZ9flNr4AYY3ucpxQ2peTl4DNsVZZ8Xyh96h3URu63Ji9+xLrQ +jSUtNHUCJaC3E9yTaIDc8jMli9s5/ElDZRkPxRP8o4VOt9KcLvU= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-8-cert.pem b/test/fixtures/x509-escaping/alt-8-cert.pem new file mode 100644 index 00000000000000..201b520f8bf976 --- /dev/null +++ b/test/fixtures/x509-escaping/alt-8-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExDCCAqygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +EzARMA8GA1UdEQQIMAaHBAgICAgwDQYJKoZIhvcNAQELBQADggIBAHfvavrzBLuS +MMJwNkJGVt1W856zeZ6NZJ5vx2ZXziYxAkzw9N0pLHwgfzS8pXEPSZ6vMoeYMaH0 +zr/S5tHSMGEwOp/dIoxE4Hm1uMzugHFxNp34hvqsaDbwKMpQQzEPhN1QvAkD9IXL +H2wOLqm+ZaTkT3OvOyJoml56wyUJ0nU746RuXgJHTFiWsUTPqT9bvofedC80MUyH +MX2lA1oy8nzJa9h7JqsxOE4uccRhpCRf+PxeYvOdsUxyDWw8+rjwe4Ulr0yVjwnD +x9ha/fTl96mYXyJGLtQvZmkllrctxcs0o82+wMZWBw4iPH/VnI7dj36b2uIHdrrf +cVurEPcVE03zLwukjQPZh9otleTwmQI1wqg/Gm2OahXy/0f0fpBDQnPycczn8nFw +nj6avmHubWVvzmEoKmOtavGEAbUn7ntQfsvM5JpiM+ck3MDMP9i9cMZvWKH8Eial +ZnYcXkgAatWwp4Cbsv4H7LMNisKjrcY+r+MpaYYIpTRNp/s/P5bMCIVt07yosePg +m9VWy03+hQJmD4/THeJsjuczPSBtsoJiKoTJ5TndmpFaG6J6lBVvpXJhoiW/QIgX +u2QIb8Z6bRK/eQ8UVYm0/ZQLN+OOzYiQfm0AFbFpYhl46o6QNZ03P6GRLshv+N3E +CX66ucPLd4QJitUy39LZjMlC0YxTZUry +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/alt-9-cert.pem b/test/fixtures/x509-escaping/alt-9-cert.pem new file mode 100644 index 00000000000000..660e65b8ed7ebd --- /dev/null +++ b/test/fixtures/x509-escaping/alt-9-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExDCCAqygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +EzARMA8GA1UdEQQIMAaHBAgIBAQwDQYJKoZIhvcNAQELBQADggIBAIefUJjnOtt8 +viFkr3lupabUMwSgtBXVCp+M9xhKqcSnYReSgg/LcqVDaXmU4s23n0Bc0M51HQMG +puTpfr34ZUSQiLup9huELm5L+lcpYANJsKrBo+vz1w+fkPlcxXvXHpLzgb393XSJ +/Prn7lNBrrh9b74azUEhz1KPmFbbMs7IwlhE1+stQ107VeSGvKlAOmaYdnVG1PXl +AG7KJynpE5Ex8XF1ONQLneTdvo8gXZueb07SY+my5wrCQhSlh4/6Y2MnE9h+9ugx +BfdU72okDaYRH1MAfFeAsUE7Y52cQqm26b7nBz0+IeP+uk7oqDLF+PGHfjeUGXGW +aGFfaLk8Dl2gMg1DsRE8zcT215Dl4rqOtwbhW8kX7XzYE0sA7cnyZ0daLrrtxwe6 +MhrAOjYklRZpwUvy6E2IyipKwWSuKHLUk3mVxPrxVqvye2enZWW1PJeHNdL//Ogx +5Mm++BOTNR+61pg/UrATlO3GMK6ggAfkP8H1r3jp24hc/TkXRkoUuWZqtjC5+qwB +KVIPlr+/0zIhzDjNbN0TMgqv/Yz4/wCUjsmCPJu21C3+BP2O5ZD2e4hYe/X9kuhC +YGWTf8dpq0LgYgVHqwXo0gCU/Ich9KtaJmCgZRUrzMl1aIYhqpuR2EW8H1bs3a0P +/7wXhGudHCwm6j2H5/tbsREeYInl3mv4 +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/create-certs.js b/test/fixtures/x509-escaping/create-certs.js new file mode 100644 index 00000000000000..abb01756be56c0 --- /dev/null +++ b/test/fixtures/x509-escaping/create-certs.js @@ -0,0 +1,643 @@ +'use strict'; + +const asn1 = require('asn1.js'); +const crypto = require('crypto'); +const { writeFileSync } = require('fs'); +const rfc5280 = require('asn1.js-rfc5280'); +const BN = asn1.bignum; + +const oid = { + commonName: [2, 5, 4, 3], + countryName: [2, 5, 4, 6], + localityName: [2, 5, 4, 7], + rsaEncryption: [1, 2, 840, 113549, 1, 1, 1], + sha256WithRSAEncryption: [1, 2, 840, 113549, 1, 1, 11], + xmppAddr: [1, 3, 6, 1, 5, 5, 7, 8, 5], + srvName: [1, 3, 6, 1, 5, 5, 7, 8, 7], + ocsp: [1, 3, 6, 1, 5, 5, 7, 48, 1], + caIssuers: [1, 3, 6, 1, 5, 5, 7, 48, 2], + privateUnrecognized: [1, 3, 9999, 12, 34] +}; + +const digest = 'SHA256'; + +const { privateKey, publicKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 4096, + publicKeyEncoding: { + type: 'pkcs1', + format: 'der' + } +}); + +writeFileSync('server-key.pem', privateKey.export({ + type: 'pkcs8', + format: 'pem' +})); + +const now = Date.now(); +const days = 3650; + +function utilType(name, fn) { + return asn1.define(name, function() { + this[fn](); + }); +} + +const Null_ = utilType('Null_', 'null_'); +const null_ = Null_.encode('der'); + +const IA5String = utilType('IA5String', 'ia5str'); +const PrintableString = utilType('PrintableString', 'printstr'); +const UTF8String = utilType('UTF8String', 'utf8str'); + +const subjectCommonName = PrintableString.encode('evil.example.com', 'der'); + +const sans = [ + { type: 'dNSName', value: 'good.example.com, DNS:evil.example.com' }, + { type: 'uniformResourceIdentifier', value: 'http://example.com/' }, + { type: 'uniformResourceIdentifier', value: 'http://example.com/?a=b&c=d' }, + { type: 'uniformResourceIdentifier', value: 'http://example.com/a,b' }, + { type: 'uniformResourceIdentifier', value: 'http://example.com/a%2Cb' }, + { + type: 'uniformResourceIdentifier', + value: 'http://example.com/a, DNS:good.example.com' + }, + { type: 'dNSName', value: Buffer.from('exämple.com', 'latin1') }, + { type: 'dNSName', value: '"evil.example.com"' }, + { type: 'iPAddress', value: Buffer.from('08080808', 'hex') }, + { type: 'iPAddress', value: Buffer.from('08080404', 'hex') }, + { type: 'iPAddress', value: Buffer.from('0008080404', 'hex') }, + { type: 'iPAddress', value: Buffer.from('000102030405', 'hex') }, + { + type: 'iPAddress', + value: Buffer.from('0a0b0c0d0e0f0000000000007a7b7c7d', 'hex') + }, + { type: 'rfc822Name', value: 'foo@example.com' }, + { type: 'rfc822Name', value: 'foo@example.com, DNS:good.example.com' }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('Hannover', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('München', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('Berlin, DNS:good.example.com', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('Berlin, DNS:good.example.com\0evil.example.com', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode( + 'Berlin, DNS:good.example.com\\\0evil.example.com', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('Berlin\r\n', 'der') + } + ] + ] + } + }, + { + type: 'directoryName', + value: { + type: 'rdnSequence', + value: [ + [ + { + type: oid.countryName, + value: PrintableString.encode('DE', 'der') + } + ], + [ + { + type: oid.localityName, + value: UTF8String.encode('Berlin/CN=good.example.com', 'der') + } + ] + ] + } + }, + { + type: 'registeredID', + value: oid.sha256WithRSAEncryption + }, + { + type: 'registeredID', + value: oid.privateUnrecognized + }, + { + type: 'otherName', + value: { + 'type-id': oid.xmppAddr, + value: UTF8String.encode('abc123', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.xmppAddr, + value: UTF8String.encode('abc123, DNS:good.example.com', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.xmppAddr, + value: UTF8String.encode('good.example.com\0abc123', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.privateUnrecognized, + value: UTF8String.encode('abc123', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.srvName, + value: IA5String.encode('abc123', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.srvName, + value: UTF8String.encode('abc123', 'der') + } + }, + { + type: 'otherName', + value: { + 'type-id': oid.srvName, + value: IA5String.encode('abc\0def', 'der') + } + } +]; + +for (let i = 0; i < sans.length; i++) { + const san = sans[i]; + + const tbs = { + version: 'v3', + serialNumber: new BN('01', 16), + signature: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + issuer: { + type: 'rdnSequence', + value: [ + [ + { type: oid.commonName, value: subjectCommonName } + ] + ] + }, + validity: { + notBefore: { type: 'utcTime', value: now }, + notAfter: { type: 'utcTime', value: now + days * 86400000 } + }, + subject: { + type: 'rdnSequence', + value: [ + [ + { type: oid.commonName, value: subjectCommonName } + ] + ] + }, + subjectPublicKeyInfo: { + algorithm: { + algorithm: oid.rsaEncryption, + parameters: null_ + }, + subjectPublicKey: { + unused: 0, + data: publicKey + } + }, + extensions: [ + { + extnID: 'subjectAlternativeName', + critical: false, + extnValue: [san] + } + ] + }; + + // Self-sign the certificate. + const tbsDer = rfc5280.TBSCertificate.encode(tbs, 'der'); + const signature = crypto.createSign(digest).update(tbsDer).sign(privateKey); + + // Construct the signed certificate. + const cert = { + tbsCertificate: tbs, + signatureAlgorithm: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + signature: { + unused: 0, + data: signature + } + }; + + // Store the signed certificate. + const pem = rfc5280.Certificate.encode(cert, 'pem', { + label: 'CERTIFICATE' + }); + writeFileSync(`./alt-${i}-cert.pem`, `${pem}\n`); +} + +const infoAccessExtensions = [ + [ + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'uniformResourceIdentifier', + value: 'http://good.example.com/\nOCSP - URI:http://evil.example.com/', + }, + }, + ], + [ + { + accessMethod: oid.caIssuers, + accessLocation: { + type: 'uniformResourceIdentifier', + value: 'http://ca.example.com/\nOCSP - URI:http://evil.example.com', + }, + }, + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'dNSName', + value: 'good.example.com\nOCSP - URI:http://ca.nodejs.org/ca.cert', + }, + }, + ], + [ + { + accessMethod: oid.privateUnrecognized, + accessLocation: { + type: 'uniformResourceIdentifier', + value: 'http://ca.example.com/', + }, + }, + ], + [ + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'otherName', + value: { + 'type-id': oid.xmppAddr, + value: UTF8String.encode('good.example.com', 'der'), + }, + }, + }, + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'otherName', + value: { + 'type-id': oid.privateUnrecognized, + value: UTF8String.encode('abc123', 'der') + }, + }, + }, + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'otherName', + value: { + 'type-id': oid.srvName, + value: IA5String.encode('abc123', 'der') + } + } + }, + ], + [ + { + accessMethod: oid.ocsp, + accessLocation: { + type: 'otherName', + value: { + 'type-id': oid.xmppAddr, + value: UTF8String.encode('good.example.com\0abc123', 'der'), + }, + }, + }, + ], +]; + +for (let i = 0; i < infoAccessExtensions.length; i++) { + const infoAccess = infoAccessExtensions[i]; + + const tbs = { + version: 'v3', + serialNumber: new BN('01', 16), + signature: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + issuer: { + type: 'rdnSequence', + value: [ + [ + { type: oid.commonName, value: subjectCommonName } + ] + ] + }, + validity: { + notBefore: { type: 'utcTime', value: now }, + notAfter: { type: 'utcTime', value: now + days * 86400000 } + }, + subject: { + type: 'rdnSequence', + value: [ + [ + { type: oid.commonName, value: subjectCommonName } + ] + ] + }, + subjectPublicKeyInfo: { + algorithm: { + algorithm: oid.rsaEncryption, + parameters: null_ + }, + subjectPublicKey: { + unused: 0, + data: publicKey + } + }, + extensions: [ + { + extnID: 'authorityInformationAccess', + critical: false, + extnValue: infoAccess + } + ] + }; + + // Self-sign the certificate. + const tbsDer = rfc5280.TBSCertificate.encode(tbs, 'der'); + const signature = crypto.createSign(digest).update(tbsDer).sign(privateKey); + + // Construct the signed certificate. + const cert = { + tbsCertificate: tbs, + signatureAlgorithm: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + signature: { + unused: 0, + data: signature + } + }; + + // Store the signed certificate. + const pem = rfc5280.Certificate.encode(cert, 'pem', { + label: 'CERTIFICATE' + }); + writeFileSync(`./info-${i}-cert.pem`, `${pem}\n`); +} + +const subjects = [ + [ + [ + { type: oid.localityName, value: UTF8String.encode('Somewhere') } + ], + [ + { type: oid.commonName, value: UTF8String.encode('evil.example.com') } + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('Somewhere\0evil.example.com'), + } + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('Somewhere\nCN=evil.example.com') + } + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('Somewhere, CN = evil.example.com') + } + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('Somewhere/CN=evil.example.com') + } + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('M\u00fcnchen\\\nCN=evil.example.com') + } + ] + ], + [ + [ + { type: oid.localityName, value: UTF8String.encode('Somewhere') }, + { type: oid.commonName, value: UTF8String.encode('evil.example.com') }, + ] + ], + [ + [ + { + type: oid.localityName, + value: UTF8String.encode('Somewhere + CN=evil.example.com'), + } + ] + ], + [ + [ + { type: oid.localityName, value: UTF8String.encode('L1') }, + { type: oid.localityName, value: UTF8String.encode('L2') }, + ], + [ + { type: oid.localityName, value: UTF8String.encode('L3') }, + ] + ], + [ + [ + { type: oid.localityName, value: UTF8String.encode('L1') }, + ], + [ + { type: oid.localityName, value: UTF8String.encode('L2') }, + ], + [ + { type: oid.localityName, value: UTF8String.encode('L3') }, + ], + ], +]; + +for (let i = 0; i < subjects.length; i++) { + const tbs = { + version: 'v3', + serialNumber: new BN('01', 16), + signature: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + issuer: { + type: 'rdnSequence', + value: subjects[i] + }, + validity: { + notBefore: { type: 'utcTime', value: now }, + notAfter: { type: 'utcTime', value: now + days * 86400000 } + }, + subject: { + type: 'rdnSequence', + value: subjects[i] + }, + subjectPublicKeyInfo: { + algorithm: { + algorithm: oid.rsaEncryption, + parameters: null_ + }, + subjectPublicKey: { + unused: 0, + data: publicKey + } + } + }; + + // Self-sign the certificate. + const tbsDer = rfc5280.TBSCertificate.encode(tbs, 'der'); + const signature = crypto.createSign(digest).update(tbsDer).sign(privateKey); + + // Construct the signed certificate. + const cert = { + tbsCertificate: tbs, + signatureAlgorithm: { + algorithm: oid.sha256WithRSAEncryption, + parameters: null_ + }, + signature: { + unused: 0, + data: signature + } + }; + + // Store the signed certificate. + const pem = rfc5280.Certificate.encode(cert, 'pem', { + label: 'CERTIFICATE' + }); + writeFileSync(`./subj-${i}-cert.pem`, `${pem}\n`); +} diff --git a/test/fixtures/x509-escaping/google/intermediate.pem b/test/fixtures/x509-escaping/google/intermediate.pem new file mode 100644 index 00000000000000..9d2aeb32c4e5e5 --- /dev/null +++ b/test/fixtures/x509-escaping/google/intermediate.pem @@ -0,0 +1,11 @@ +-----BEGIN CERTIFICATE----- +MIIBjjCCATSgAwIBAgIBAjAKBggqhkjOPQQDAjAPMQ0wCwYDVQQDEwRSb290MCAX +DTAwMDEwMTAwMDAwMFoYDzIwOTkwMTAxMDAwMDAwWjAXMRUwEwYDVQQDEwxJbnRl +cm1lZGlhdGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjM +qxJVf/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkY +tM/Bo3cwdTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQlGcYbYohaK3S+XGeq +CTi4LLHeLTAfBgNVHSMEGDAWgBQlGcYbYohaK3S+XGeqCTi4LLHeLTAiBgNVHR4B +Af8EGDAWoBQwEoIQYXR0YWNrZXIuZXhhbXBsZTAKBggqhkjOPQQDAgNIADBFAiEA +uZhmF3buUdhzHjXLZQSOyT41DqUUX/VKBEraDu+gj+wCIG/R1arbHFRFnEuoVgZI +bihwUpUZjIZ5YwJcBu6yuXlZ +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/key.pem b/test/fixtures/x509-escaping/google/key.pem new file mode 100644 index 00000000000000..102a9d8816cd63 --- /dev/null +++ b/test/fixtures/x509-escaping/google/key.pem @@ -0,0 +1,5 @@ +-----BEGIN PRIVATE KEY----- +MIGHAgEAMBMGByqGSM49AgEGCCqGSM49AwEHBG0wawIBAQQgaNbpDxJET5xVHxd/ +ig5x2u2KUIe0jaCVWqarpIN/582hRANCAAR7DaOQvpvA47q2XxjMqxJVf/FvZm2f +tiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkYtM/B +-----END PRIVATE KEY----- diff --git a/test/fixtures/x509-escaping/google/leaf0.pem b/test/fixtures/x509-escaping/google/leaf0.pem new file mode 100644 index 00000000000000..ce19dc96994ac0 --- /dev/null +++ b/test/fixtures/x509-escaping/google/leaf0.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBajCCARCgAwIBAgIBAzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxJbnRlcm1l +ZGlhdGUwIBcNMDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMA8xDTALBgNV +BAMTBExlYWYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjM +qxJVf/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkY +tM/Bo1MwUTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCUZxhtiiFordL5cZ6oJ +OLgssd4tMCAGA1UdEQQZMBeCFWJsYWguYXR0YWNrZXIuZXhhbXBsZTAKBggqhkjO +PQQDAgNIADBFAiEA4NgHDxVrBjNW+So4MrRZMwDknvjRaBsB4j2IwVRKl4sCIDpg +Bhm4ZdHwlUYrALkXa3dFBy8kXBkVumY7UJpbB2mO +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/leaf1.pem b/test/fixtures/x509-escaping/google/leaf1.pem new file mode 100644 index 00000000000000..0b45056656cab1 --- /dev/null +++ b/test/fixtures/x509-escaping/google/leaf1.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBdTCCARygAwIBAgIBBDAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxJbnRlcm1l +ZGlhdGUwIBcNMDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMA8xDTALBgNV +BAMTBExlYWYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjM +qxJVf/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkY +tM/Bo18wXTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCUZxhtiiFordL5cZ6oJ +OLgssd4tMCwGA1UdEQQlMCOCCm5vZGVqcy5vcmeCFWJsYWguYXR0YWNrZXIuZXhh +bXBsZTAKBggqhkjOPQQDAgNHADBEAiAOFFOCfA6c/iZWxbDn5QMjNdtZbtJPBcRv +uEgSqWrGTAIgK5RK0xGK8UZb2aM2VjGNTYozlcwKaLgQukA+UnKrrJg= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/leaf2.pem b/test/fixtures/x509-escaping/google/leaf2.pem new file mode 100644 index 00000000000000..9cf03fae7d2ae6 --- /dev/null +++ b/test/fixtures/x509-escaping/google/leaf2.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBejCCASCgAwIBAgIBBTAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxJbnRlcm1l +ZGlhdGUwIBcNMDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMA8xDTALBgNV +BAMTBExlYWYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjM +qxJVf/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkY +tM/Bo2MwYTAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCUZxhtiiFordL5cZ6oJ +OLgssd4tMDAGA1UdEQQpMCeCJW5vZGVqcy5vcmcsIEROUzpibGFoLmF0dGFja2Vy +LmV4YW1wbGUwCgYIKoZIzj0EAwIDSAAwRQIgWfT1VXQA79PxgM0DsfeoiwZCc2Be +v3/RCRYoRky9DgICIQDUTjndnBQ0KeIWhuMjtSz1C5uPUYofKe7pV2qb/57kvA== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/leaf3.pem b/test/fixtures/x509-escaping/google/leaf3.pem new file mode 100644 index 00000000000000..55a64fdc898929 --- /dev/null +++ b/test/fixtures/x509-escaping/google/leaf3.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBZzCCAQ2gAwIBAgIBBjAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxJbnRlcm1l +ZGlhdGUwIBcNMDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMA8xDTALBgNV +BAMTBExlYWYwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjM +qxJVf/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkY +tM/Bo1AwTjAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCUZxhtiiFordL5cZ6oJ +OLgssd4tMB0GA1UdEQQWMBSGEmh0dHBzOi8vbm9kZWpzLm9yZzAKBggqhkjOPQQD +AgNIADBFAiEArZgaxFBuPYFWCXeFTkXhV57MKxG/tIJ2Z3Wzts2Im7QCICoukuRf +EsQN7g6h30fRuLOIdbfCCduc7YVpkkSlwe99 +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/leaf4.pem b/test/fixtures/x509-escaping/google/leaf4.pem new file mode 100644 index 00000000000000..668a659f45b540 --- /dev/null +++ b/test/fixtures/x509-escaping/google/leaf4.pem @@ -0,0 +1,10 @@ +-----BEGIN CERTIFICATE----- +MIIBdTCCARugAwIBAgIBBzAKBggqhkjOPQQDAjAXMRUwEwYDVQQDEwxJbnRlcm1l +ZGlhdGUwIBcNMDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMDwxHzAdBgNV +BAsMFm9yZyB1bml0CkNOPW5vZGVqcy5vcmcxGTAXBgNVBAMTEGF0dGFja2VyLmV4 +YW1wbGUwWTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjMqxJV +f/FvZm2ftiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkYtM/B +ozEwLzAMBgNVHRMBAf8EAjAAMB8GA1UdIwQYMBaAFCUZxhtiiFordL5cZ6oJOLgs +sd4tMAoGCCqGSM49BAMCA0gAMEUCIQCpchwik2NT0v8ifDT8aMqOLv5YwqB7oeOu +LincYQYMagIgZc2U7DBrdEAWNfuAJx4I+ZkluIcswcdnOhbriOrTSHg= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/google/root.pem b/test/fixtures/x509-escaping/google/root.pem new file mode 100644 index 00000000000000..68eb00ae862fbb --- /dev/null +++ b/test/fixtures/x509-escaping/google/root.pem @@ -0,0 +1,9 @@ +-----BEGIN CERTIFICATE----- +MIIBQTCB56ADAgECAgEBMAoGCCqGSM49BAMCMA8xDTALBgNVBAMTBFJvb3QwIBcN +MDAwMTAxMDAwMDAwWhgPMjA5OTAxMDEwMDAwMDBaMA8xDTALBgNVBAMTBFJvb3Qw +WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAR7DaOQvpvA47q2XxjMqxJVf/FvZm2f +tiFRXNJMe/fhSlDh2CybdkFIw2mE5g4ShW5UBJe+sohqy5V9WRkYtM/BozIwMDAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBQlGcYbYohaK3S+XGeqCTi4LLHeLTAK +BggqhkjOPQQDAgNJADBGAiEA+Y5oEpcG6aRK5qQFLYRi2FrOSSLF1/dI4HtBh0mk +GFoCIQD1DpNg6m5ZaogRW1mY1wmR5HFIr3gG8PYDRimQogXUxg== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/info-0-cert.pem b/test/fixtures/x509-escaping/info-0-cert.pem new file mode 100644 index 00000000000000..6872b9870a6cab --- /dev/null +++ b/test/fixtures/x509-escaping/info-0-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFDTCCAvWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +XDBaMFgGCCsGAQUFBwEBBEwwSjBIBggrBgEFBQcwAYY8aHR0cDovL2dvb2QuZXhh +bXBsZS5jb20vCk9DU1AgLSBVUkk6aHR0cDovL2V2aWwuZXhhbXBsZS5jb20vMA0G +CSqGSIb3DQEBCwUAA4ICAQAAd/bIBmSIOJg+Rp96/BDpsZQYgYTyBNWrnBkuHQ0M +bovgqEEI/5xiYGEzXhrzmWrUoG40PDeVrpCSsW5m+bsO4zDQeWW5mXejbr0Iwflf +TYDxwGUUakAcZ1c5yJ/ABjKy0Tocb9bSzln+tc+HNStp86bbgrhb/wjddn6ca21V +cuNFZbN+0SM0LxcWO8oGKXF0HFo0durGhamcH5B/D38FYkaVR5QXoOsWVqtPFjW2 +t67rmKS6XKaz2JhZDpWDZmDofCoFu/zlkPHXkq7yyrkJ/8qpJCznkZmLn+B1WA+y +SrSOYMpQ6RnzMx7wK5UafX5J+lMv16+LTb/n1KAd4zElcqt5eRPLcEuknIEgC2X/ +AY1ooyN/Xb4QnqvtTmhzIDb7lzzMowi5QrG3rRYMldxG2Rdqwjc8qa5Tgh7EsiU8 +A/n5X/6cxA1zoyakSHFXzGtazIkPc+zFfOaV1+gpJtd2vD2T+FrmkL1fgazuHXNZ +hAQq0RGZWPsCdxm7dG4w5bd3YgRKfD2ck+b9Imu0ta4pqMDHZYgncaeOuuHzHgXA +MIvxIG5JfwYUJLUqBUz8hwDVcNMpnscyn2msdpiwXK0AahucBQjbyZ6sovoxmgk5 +xLdnq2GTtdghwdkF9DYK0ZekDlk1XWbP0tR5Cevo6WlMx+cbEBG+OSfNd8/dFrkd +aw== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/info-1-cert.pem b/test/fixtures/x509-escaping/info-1-cert.pem new file mode 100644 index 00000000000000..05247873d85981 --- /dev/null +++ b/test/fixtures/x509-escaping/info-1-cert.pem @@ -0,0 +1,31 @@ +-----BEGIN CERTIFICATE----- +MIIFVTCCAz2gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +gaMwgaAwgZ0GCCsGAQUFBwEBBIGQMIGNMEUGCCsGAQUFBzAChjlodHRwOi8vY2Eu +ZXhhbXBsZS5jb20vCk9DU1AgLSBVUkk6aHR0cDovL2V2aWwuZXhhbXBsZS5jb20w +RAYIKwYBBQUHMAGCOGdvb2QuZXhhbXBsZS5jb20KT0NTUCAtIFVSSTpodHRwOi8v +Y2Eubm9kZWpzLm9yZy9jYS5jZXJ0MA0GCSqGSIb3DQEBCwUAA4ICAQCbwqw8YKIt +Ht9qegR076xpnxuiH0THPGsgazvhCmEr5YHJ68sR1LexjneQDhpNXcnpYpfk6J4d +Tu0ApMSbVypFyHcd88g0qVYI9JF+CTNnzut/Zn6xgnUjVjrSz6SZPhkMcBX9ahtY +tzswzcyTzso5Do5pxvCWDI+bshgIhC3CYNyAjyOyyhnQrwcOcoatlhDmX1fCk+dC +fhmzurBFNIz2gwDC7aRjcaUdTIlYnd6qHk5xLs3neBm44gNk17GazPIPo04LTKXs +ZYzvDEUAdJ2FJMiYqSvvEv4k9ozx5HtwtncZpu46El2PQRANgj1UhemYVmHfbdU+ +7Q+rCv+Loq2v76fddhc1cM3gCQ+6SW2QmRo2rShRGxpuSuZiTngwgdQEGrkQq7Sv +r695V7NlHWJgvv1r49wGmqWkviH5l6A0QdzL6TNYhwqCRsjxgsvCZUpOlZPASiME +jhwBIOMy1YUSdEMnBrbuemawvbfocSuUlHaodwLZvwMgqHvNz/8ebMyRyyZrnmCx +TYh8d0JIcA57VvfaZvvsPPV7TO7WLoJgbmuqM02JzzkJMh0fbt2oi1cqJL65V5Sn +z0sXh/A/BzB4QawI93f9m0hX7RtuT1SolTNVyhg7dm1MwfO8khpfz5LLgflVwgN8 +6egKc6L755SlqZRMT03txH2UCBizLz1gjA== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/info-2-cert.pem b/test/fixtures/x509-escaping/info-2-cert.pem new file mode 100644 index 00000000000000..06212d4e12a5da --- /dev/null +++ b/test/fixtures/x509-escaping/info-2-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE5DCCAsygAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +MzAxMC8GCCsGAQUFBwEBBCMwITAfBgUrzg8MIoYWaHR0cDovL2NhLmV4YW1wbGUu +Y29tLzANBgkqhkiG9w0BAQsFAAOCAgEABR5VyTZEQ0AQvdqlk+IDQT85qyf891eN +BREiSg5KCei9Kmubv3ZJGoNVwZgybr5sCi5GqWOtG7S0GXvzS6c2Qy+cW0R4DDYs +s6IIUn+ex1XygGrRHTDHu6tEUwSJMmOMKBh+iLjhtamD+YHjgOLG3MfadO5/9mvp +r412MPhU1VvQ3FC3dZmBUW2gIKNEU4mzwISgPkLJXmBsnxu8F9YqHPgppqsfJ9AF +KIc2nX7N3s8w9fCc03FrihdkE2C802jy71px5aPqa1xrIT/YBq/1fKTcYRAWF/pd +iy2G1v0pz0kYu2/yPIC/xlFcUgeFqR/biwxAD9T9rp7rq+dpIJA5BUCpXVULqhY1 +SVZ22WKS0NR5rbu4BPDMShTOiwaDSwFQtI0OxM0g5zVFVjFOc6YbFu7ZyfLQ582S +vgVU5/vaHANnEsCSUegXyLofqxTMPbM1rqibFmv2A4pm1Mp18ZFmqwh8cm6C0f7F +qjdzBuSkcktTCq/dLX5yTm9aocyzye9cfNBjiGUregJEF7sD3nzsokEGj+S320w2 +5yUl95xgrHr+5bdDUEox+trTeBnddC4VxrieeH+Wv45try0Go48yK7b1Aqfu9G4B +B/as+upQ+YjMG8mAe6JJ9JibpTvTmatYAsssEKT1vDZ5trqo4C5/utfbuyaf7qtx +O+jFfYToPtE= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/info-3-cert.pem b/test/fixtures/x509-escaping/info-3-cert.pem new file mode 100644 index 00000000000000..1825949bd38193 --- /dev/null +++ b/test/fixtures/x509-escaping/info-3-cert.pem @@ -0,0 +1,30 @@ +-----BEGIN CERTIFICATE----- +MIIFMDCCAxigAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +fzB9MHsGCCsGAQUFBwEBBG8wbTAqBggrBgEFBQcwAaAeBggrBgEFBQcIBaASDBBn +b29kLmV4YW1wbGUuY29tMB0GCCsGAQUFBzABoBEGBSvODwwioAgMBmFiYzEyMzAg +BggrBgEFBQcwAaAUBggrBgEFBQcIB6AIFgZhYmMxMjMwDQYJKoZIhvcNAQELBQAD +ggIBACR9nH4pRlcSIIF9DEExlJvLtkeFWHGIAYLBuauHmdzPdbq9Py9M5DOcc7yd +OQYVYwW26hASb+3CYzhRQaWKOR+T/OwP+QMUl5Y6nc3HzLdYTSen2LLAYHySXK3G +gTdOhmVQwdh+IzhpjLXC67/9gn/F1p73Ixv/0PBZzmC64DOp1ogso9RICu0xTAbo +h8mdN4/Tbh9Ikd89lb91x1Xf86NyC7ZvSA9dUO07/3B6B0kkqCdP9Ytlsrt2wbt3 +2TVPp+ghjbPjdLrJUi3fbdC2CgjV2oLiYr1h7qn7SmYPNgOpDPKBI4Cei7UO+Wow +yLCxBO0HgLZKcZorJFofekPjqtQYYj1sw3OEIcifMAmoHT7H57onfoQbRDpt57k2 +rHJKgzrRuT8Qbl3OHSkiWRE3u0S9kAg7QEq27e2fuvh23p+YHEiYIjAR9XLVh7/Q +EG5QDfDq3MvtgD/khAd36il61T5h8F4u3MhONFMuwJ/TYtGR6QINrv4DqLBM1pRr +LMApQYi0w/MCRj2wLeAro9NflE+PFDk+l44ojvnEUYAGUyIzWp80bjQrV7Up6sgQ +HehcmxxTrOmiqrfw08c1aHhmGeplmPpQEET1wIjnyj49sfdSPYxg5Lh+f/l79fLb +jFemE8otKfog84vNGbPFl/AHwxjKCeCA/MaNJz3y3RYVsZn6 +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/info-4-cert.pem b/test/fixtures/x509-escaping/info-4-cert.pem new file mode 100644 index 00000000000000..8f1e69afec7510 --- /dev/null +++ b/test/fixtures/x509-escaping/info-4-cert.pem @@ -0,0 +1,29 @@ +-----BEGIN CERTIFICATE----- +MIIE9jCCAt6gAwIBAgIBATANBgkqhkiG9w0BAQsFADAbMRkwFwYDVQQDExBldmls +LmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIxODE0NTczNVowGzEZ +MBcGA1UEAxMQZXZpbC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIP +ADCCAgoCggIBALERZ3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4Bv +WiayictqCJWtmsbsSli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGt +qJe4EOpret1jgkFqQJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1 +aRjqayh3TDU8NwuFlLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMN +DnVXZ3paRJTcps6d/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaY +BRPx6WFdepWr410GpzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3 +icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4Z +UoyzTvwN2i/uPqJxi/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tc +nedukufld8QEW7iMn7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61M +iLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUm +R7J4QEuQSEN2cZMOpn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAGj +RTBDMEEGCCsGAQUFBwEBBDUwMzAxBggrBgEFBQcwAaAlBggrBgEFBQcIBaAZDBdn +b29kLmV4YW1wbGUuY29tAGFiYzEyMzANBgkqhkiG9w0BAQsFAAOCAgEAQERLvjQB +E2fmTVgHbr4MVXPfse9Xxk9TK8/IhxDNnql4bor3xat5oP+tDHVRi2StajfIcJlX +C9blYOWg4w6QH3pmD6M7eQGOw7ntOUid4R2vhX3XiK3QB1h8lWSPFmSwBHA47mMJ +IkrKNIo9+M9b7M05YwbAENi3TPgT8h2Ej9V4DUjLIEhDcu8fSh3FkNpZ2HohZ2I3 +QPe23FB052jX7uPfeZ9gcjL/iGxuTuPbKWxzZ/Gy2RmS8xfLkJESvvQ8a0H4f7Ij +yjn7qYUkY6FoHxyg5BU34YNaJCmfgzRIE53Kv2FMPwj2JaXmIguR+mSDAbc0xjw3 +G3dRoCqhZugn8C6I5FhuXHdu6zSuuHtwOGEf07y5Im2sBsPVoq+Txh/mv3Zy9Ydy +0yCDuq87jKSZd7FKorHOEoQY94UMs33PYjS4h/hYWiysYUeR0mlbjr4gyv1KH6K8 +JERGpI/OE+vzfOtgj/Z46/+wn7jF0LBCin7Jn5Zw1a1TNsiHKAjqW/P4vJxxUW++ +FtYwJhI7XJehwNNFra9rSC5M4TkpaqAZnbPvWZWxWVJIEYFgNjnt+b/VOpRpv5bJ +7BOlVvP+56KF+vlmCnzVBmlHcr45sZUZ3mw3Sb6dcF0V0VaNQKw/F5EteQyafIIl +dvCwwV4OwLwPliPAvwYfVEI41Dv3mF4fN7k= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/package.json b/test/fixtures/x509-escaping/package.json new file mode 100644 index 00000000000000..37d9f2a9385c46 --- /dev/null +++ b/test/fixtures/x509-escaping/package.json @@ -0,0 +1,12 @@ +{ + "name": "x509-escaping", + "version": "1.0.0", + "description": "create certificates for x509-escaping test", + "main": "createCert.js", + "license": "SEE LICENSE IN ../../../LICENSE", + "private": true, + "dependencies": { + "asn1.js": "^5.4.1", + "asn1.js-rfc5280": "^3.0.0" + } +} diff --git a/test/fixtures/x509-escaping/server-key.pem b/test/fixtures/x509-escaping/server-key.pem new file mode 100644 index 00000000000000..db1d2652d0b76d --- /dev/null +++ b/test/fixtures/x509-escaping/server-key.pem @@ -0,0 +1,52 @@ +-----BEGIN PRIVATE KEY----- +MIIJQwIBADANBgkqhkiG9w0BAQEFAASCCS0wggkpAgEAAoICAQCxEWd00u9E9T/k +o6WcCKjhZ7tjnfVylnA7M0EHOwvdivgD46eAb1omsonLagiVrZrG7EpYuMhtz+g3 +Yv1d0nvFvv8ge9UIdnN8EDTDzLpJ3KbNqHURraiXuBDqa3rdY4JBakCcuYHl1bj1 +OTew7xl1FWc1je04rBTQGTFIRdmJZYyc9bIw9WkY6msod0w1PDcLhZS3emh/eYaL +4zAQWrVhQfWzf4rZzFaI/a5n0o75aUkTuvxDDQ51V2d6WkSU3KbOnf2JW+QJXfzs +NOeiYA9AnfY59evr4GEeG8VZdGuUG39uDCIWmAUT8elhXXqVq+NdBqc6VUNLDJbq +CmMx/Ecp48EHO6X5uXm0xViZIVPNIzqiiRhVt4nFfwPQZrTgaq2+tD7/zD1yED4O +1FhlDl5twH2N7+oG06HsEluQdLPrj7IedpneGVKMs078Ddov7j6icYv/RZHVetDl +rzDDHjLJWwxyAWzdGdkhtMGPd6B9i4TtF/PU3J3nbpLn5XfEBFu4jJ+w+5Wvk5a6 +0gF1ERy/OLBM/e8sro2sEBIpp1tN1wJVBZOtTIi4VVDhwDRQUiwb2d1Re7GQ7+mc +z5D/01qxW6S+w0IKrpwJUjR3mpa0OU98KfKVJkeyeEBLkEhDdnGTDqZ9E/ickGos +rW2gAAYKgzXk725dpxTdpLEosfDbpwIDAQABAoICAAwUElkTPHQZQKsBiL38jzyU +/WDduQ0AexZmuCRcoEIUBTgKsvXdYqpqGmEwUfaX2YuBOc8Uh8OJ357Ll1nrjjre +fPvDxrPllJodZuQGVpzMOuqjd5zlmi8DRNAg1cg9TfjVXSPzuYsqiYvcw9JDdRqa +A6jRDiIEBwVs+oIiFaU8MpvQXL/fNbSX5QhlHuMwwNZ93beoV3F+ojFvpWswLNg+ +DhsY86lIuYxttZRqdgtIZc49PpD6VoalmC7t8mivJofImi9g/8ytxx97umNGpzOy +ssWgY1/7NdS+czdXbDE1sPsaQ8cDxrDmGxPjswV7rK4/Um/1ufnoGXFMlRinS1lQ +nns4VAFefVUCk81LRyFb+X97NXPGC1p4zNlC1ZoihMgWKJBzH0uk5K/hURS/wDNZ +epm9ssnEQrFGJhEI+635srfn9SVRZ8xNh+oCguo5NaZm/BezC6iBQeoaBmVL2lY8 +KLztN/JQd6MMZi3CWhTn0ZAtVNMxGjU9/yrdWIkX9EV8Sw68fqLGoKQXI67AOynQ +5AnUyEjhVu7M39gYL71l7BVpuG7qaX8l4brzBcgzFldvuhuNCx0SW4gU2/Nx4OwY +BLOX1LOrpD+5M9YwcbtSxcxz97nP8efb3hUK3QD2iuZ9Fa6zKWsoreMb7Jku38i7 +e41lupAIkxxuxGBe1YrZAoIBAQDVF7Kru6tsaWtvJw5cbZpKxcuUHHQ0X3XRgA+H +uWfT8EbxmDpgcG8polqiYuXPFWcrElmtWeBCYXazGZocHRV8y+ri/9c2rMTH6Bni +TcYfsc4E8WY6adxfUqajgQ2zShdZbxZtBvSP50HheZ0a+L2qn2MWDUN/mbwYEmom +SonVx3MSJWm/Vrh5i4b/L/+9u7uumIjWYFK6pKdLerTfbXO7ZsNR9KDIOBLDnUcf ++6K2vcclZN7aga1S7wTsrX+k9C/OQuj8ONMWQHCxryp5RAmgtArTBrJZq8el1lcG +518Vo4QuOqsqTdAhqiImoPKe4NNCs1iTS9BdCqNYiF8sbmeJAoIBAQDUuL5ebQ68 +6vqTKYD47ZtCzeqziN3Y/0a1BsyZh0/snNmK5WIr4T0vX0Y/XG0EpkZdpW3odMBv +CemKs6Zm+pfOUGu20PTJcdSOXRbFiVYSeQnfa0l3iXZvY9Ottz/IU/mWPuU3hc18 +hOZD9tKiwYDzZREg6L4XRizfT70UkD2eTz4lGBjR092TTj8WqSaI9GF6d9B6Aw9Y +OCZdTqV7hPe0Rnvd1XiGsk68HN2Np47HHwwPsKMCYj8YNKmsUF8QSXmCkijlDeJW +bC6TjAHlvnN6n1LjaLwULUs9Rb2fkNUOqsgR+T8YlqbclJbzC7gW53M/68c9eOQ1 +Y01JnzsB3S2vAoIBAQDT8DP2djtzIg6GiNPRvfj9cWifMQWqqV8nNTU9Cnxn4MzO +sVcuX+VQBXgblj13D5SC1Ed5ELDplMJYM5iBabPbYX2GtGq6qG83XHOSD0SEdXWw +mN/SLUPPUwcGC+8yaPh8LO6jFY3cKmft9+T31Hnf35LPdfWyTZc0YexNlUkt5Kdg +XvGkKn5j9RAZcwXrEXMDnhZLEZZ2qBj0C2El71hyBS0ysBnRyWNwR1dcSgx1sJ8H +ZCH6NYvLtoqxU4Zm6684eHf9lA7uTL1JHC0kWzUwLqGtbTWp1h5FpL790NVTUkS/ +Lf7bnnTpZqt8vAtTVc0IxBPOvFLKlzALd+cg69XxAoIBAQCv6Sbkh2NMrzUQRZ42 +PKfMkuSoG2L6dABQ65J+0/swPHVZ+1830kf6yNsawqAU3DwMbSV6ujH4oUXUQcQ2 +HL01DCRHRn1nqQ6RvEF8kZnwJNAZRmu2wqKCcxc17Ph9/ZPEv7ZmN+w6MN0LDy4Z +EdRFcyq7AD1SmeG5ugMu4ilSpU1K96ZuvrnZezeI0dDgKNgDotlwTN9/oM95EfSf +NNJy7ma4iDPnj8S0o1pELnBQEkizIOtsqTpsFgDKUpyKp3golh3jbZvixAuwUHOx +PdHZca/mB1KhjONPhEDPl8HZIznYQzn+Z3cNqoM58lMF/di834ogN7zguYHMhDUT +0YhZAoIBAHlYhuni+gyrn4tyZgep68VXW7wQxSvgSj8cpZAuT/w0UKAU53J5QTWZ +aGHeICXvgvpalUL+2dGwASlOvPa52ekcOPd2+qKWyss0zA4ksI7mNE2vjFUcOr+S +n9QSNvu3E8dYAjzSIsizcQbPTlk6A/TmytNJ4x67ZVGCmKXw1ZzzSrxSbAIdY254 +TxSGchrfcy0ofXIL2HXq16FRmesORTJFkkyQaldzn4y7S6HJ/vGppImTfeac1MwG +jLYljIkIbt+nB1c8HeNvARmBa6M2pxB9f72oRMVqFdUUc5AxXuWP9v6xk227EuCq +TBORAafu9WxKVwUsHa1rE1uGgNEfRJ8= +-----END PRIVATE KEY----- diff --git a/test/fixtures/x509-escaping/subj-0-cert.pem b/test/fixtures/x509-escaping/subj-0-cert.pem new file mode 100644 index 00000000000000..ae853c893125be --- /dev/null +++ b/test/fixtures/x509-escaping/subj-0-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE1zCCAr+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAvMRIwEAYDVQQHDAlTb21l +d2hlcmUxGTAXBgNVBAMMEGV2aWwuZXhhbXBsZS5jb20wHhcNMjExMjIwMTQ1NzM1 +WhcNMzExMjE4MTQ1NzM1WjAvMRIwEAYDVQQHDAlTb21ld2hlcmUxGTAXBgNVBAMM +EGV2aWwuZXhhbXBsZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCxEWd00u9E9T/ko6WcCKjhZ7tjnfVylnA7M0EHOwvdivgD46eAb1omsonLagiV +rZrG7EpYuMhtz+g3Yv1d0nvFvv8ge9UIdnN8EDTDzLpJ3KbNqHURraiXuBDqa3rd +Y4JBakCcuYHl1bj1OTew7xl1FWc1je04rBTQGTFIRdmJZYyc9bIw9WkY6msod0w1 +PDcLhZS3emh/eYaL4zAQWrVhQfWzf4rZzFaI/a5n0o75aUkTuvxDDQ51V2d6WkSU +3KbOnf2JW+QJXfzsNOeiYA9AnfY59evr4GEeG8VZdGuUG39uDCIWmAUT8elhXXqV +q+NdBqc6VUNLDJbqCmMx/Ecp48EHO6X5uXm0xViZIVPNIzqiiRhVt4nFfwPQZrTg +aq2+tD7/zD1yED4O1FhlDl5twH2N7+oG06HsEluQdLPrj7IedpneGVKMs078Ddov +7j6icYv/RZHVetDlrzDDHjLJWwxyAWzdGdkhtMGPd6B9i4TtF/PU3J3nbpLn5XfE +BFu4jJ+w+5Wvk5a60gF1ERy/OLBM/e8sro2sEBIpp1tN1wJVBZOtTIi4VVDhwDRQ +Uiwb2d1Re7GQ7+mcz5D/01qxW6S+w0IKrpwJUjR3mpa0OU98KfKVJkeyeEBLkEhD +dnGTDqZ9E/ickGosrW2gAAYKgzXk725dpxTdpLEosfDbpwIDAQABMA0GCSqGSIb3 +DQEBCwUAA4ICAQAnszSuVqfEmpjf2VMvk9TUuiop0tejHP+hB30IURJqA9K51edx +IRszXXU4Sj8uHT88RpKxgDm/GcfEA0l2rWZ6Mal6pmUyjteJJPMVA6fgeNM8XvtJ +eoxi2wm8FzxXJrPK7fOMG5/fLb7ENUZYFRHVFJ+Gk290DP7x81Gzb5tcsolrVqW+ +TZdV2aBZya28NjgXncjinIlD61I6LzoQbDInab5nEPKMRuRTXMLfbAypXrPAbsfz ++Z6ZKhfNEo0/5cI4iG8MQXM1HgbFCkWOTPPeR53lo+1f9dN3IZ+1PYUjkOJzuxUZ +HIA+Dy+S1ocfK582LqohexhjeC5AL74rJJcgns9ORxz2GN1buIRTzi9XL2egp7cd ++XgZ3phpY4mIM0bH+DJ7eIqkM17WkEwJ3vazu7tEmIldc06Pmt2vFEcQB3T0bsw7 +lBZdwSEkqTb+IexaQerSyztuxKc2DhOLTqZfVPCd2LWhasNSHzGmanI3vmBy98MN +LZzo7+G1BDMyMsl3DwEiwOGYARXJklU1LxCj6nVCTymNToLXtF2xHcZuK94Pqol9 +n8zMCUYNOr7USWA25GwfpN65UHN7YXsOl9XIMWl+iVA5QepAI9sL0n3CyFW0ZXgn +DsZkfikYa+xhQSUANV4zDx1X8FxZmT0Op/+mhkvwL1+YKUHJy3WdXrIFgw== +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-1-cert.pem b/test/fixtures/x509-escaping/subj-1-cert.pem new file mode 100644 index 00000000000000..3e193e25c2cf2a --- /dev/null +++ b/test/fixtures/x509-escaping/subj-1-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMSMwIQYDVQQHDBpTb21l +d2hlcmUAZXZpbC5leGFtcGxlLmNvbTAeFw0yMTEyMjAxNDU3MzVaFw0zMTEyMTgx +NDU3MzVaMCUxIzAhBgNVBAcMGlNvbWV3aGVyZQBldmlsLmV4YW1wbGUuY29tMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLvRPU/5KOlnAio4We7 +Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjIbc/oN2L9XdJ7xb7/ +IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB5dW49Tk3sO8ZdRVn +NY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3pof3mGi+MwEFq1YUH1 +s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvkCV387DTnomAPQJ32 +OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVDSwyW6gpjMfxHKePB +Bzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9chA+DtRYZQ5ebcB9 +je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR1XrQ5a8wwx4yyVsM +cgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuVr5OWutIBdREcvziw +TP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXuxkO/pnM+Q/9NasVuk +vsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4nJBqLK1toAAGCoM1 +5O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAmjKOoKxLwPY4 +e65pYTUSBctPZ2juW5uNs8UvH5O32OC9RhENJBIIKn3B9Z/wkexR2zcvaQmJObLW +6mkR7O0tNgsXVYJFzLRBfjM/nyP6nafiCUekmoh9Kojq6x5IQQgEsK+Uw123kkoI +w/h3hBYBq8+CFPnYtBLZBVVFMNGaATXrYJPCcjVrtAHYxIWaDN2R+1DWLRIV72sF +hu4xGz0kmUbzforl/FA3gdgM7mwfZMF4+EoQZi5mShdWnyfzAHIbtahnA4lPNtx9 +vBqYIZ/a2ITsXmWc2KGs/rRG+SDLzg+H1Xudvu/y2d1ULpZQfT6bg6Ro855FiU9h +TyHHQGGqlC9/DjHy//wERsFEJZh5/j21LGyalEjgfOYtzPkjZlIweYr8LlHTrauo +/gWihriaaWAkD+2fwQ09CUHdvOG6yoT+j/E50FsekfqV3tKMwoZoph6dF1TWQg32 +JXV0akpd5ff1cca8sZgJfUksDfSkrwG7fl3tje30vQTlvNrhu2MCKFGQwyXed3qg +86lx+sTZjxMYvqWWysKTx8aIJ95XAK2jJ2OEVI2X6cdgoAp6aMkycbttik4hDoPJ +eAWaZo2UFs2MGoUbX9m4RzPqPuBHNFqoV6yRyS1K/3KWyxVVvamZY0Qgzmoi4coB +hRlTO6GDkF7u1YQ7eZi7pP7U8OcklfE= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-2-cert.pem b/test/fixtures/x509-escaping/subj-2-cert.pem new file mode 100644 index 00000000000000..e6a23dccddbd51 --- /dev/null +++ b/test/fixtures/x509-escaping/subj-2-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEyTCCArGgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQHDB1Tb21l +d2hlcmUKQ049ZXZpbC5leGFtcGxlLmNvbTAeFw0yMTEyMjAxNDU3MzVaFw0zMTEy +MTgxNDU3MzVaMCgxJjAkBgNVBAcMHVNvbWV3aGVyZQpDTj1ldmlsLmV4YW1wbGUu +Y29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLvRPU/5KOl +nAio4We7Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjIbc/oN2L9 +XdJ7xb7/IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB5dW49Tk3 +sO8ZdRVnNY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3pof3mGi+Mw +EFq1YUH1s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvkCV387DTn +omAPQJ32OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVDSwyW6gpj +MfxHKePBBzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9chA+DtRY +ZQ5ebcB9je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR1XrQ5a8w +wx4yyVsMcgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuVr5OWutIB +dREcvziwTP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXuxkO/pnM+Q +/9NasVukvsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4nJBqLK1t +oAAGCoM15O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAEMEW +EElTS/lgeoWvTruGEqmpwS86NE+j+Ws+VnUXnjo2RSqs4tSICkBzJsi4g/WHNa5V +TzD42MOmyQTUGaJ96Cpq8VmL8pE0mYKo1wXsi8WonDgaw0Eup6v9ga5kHPfKJBvV +dqEP+upiAbYXxlISj+xgOVW5WBJ3tBic1Iyg/oOKlHwXYA0IKc1MOLlvh0EdVqj7 +2cYodO7nuAmeFLpf5RDtGTNMWt/whoqv+vUb5iy2pDdDNMJdoa0hT/L4E+ibl0ZA +7W/RKkcXJ0RlZMA7rYGjQ2/lasHvMniHlfLZd2UtChVgs8hY/b1PCLubyiz1peCj +Q8Y4VoveePnxfovTPvcvMxPbNiCLPJtsPhWq1KPbOyBpKBc/mJ6I5DmszQB16Jb2 +fq6RfrrXjC1C+vYN4KCUGPbS+J4eZ0a04C4OdSGED02YSOpLIBnfNRMDyXZQ6Hhd +sZSvyOAD3UhugEloCV9cnFKVglbXaW3k97xeYg/86udVPrgiAEn7u3Lsr9U1wZ2x +wFgE4js1IzeIvIZOk9wDQHPolUiPaZUvMZXfM7+i9X9qX9AgtUAxnO0y0U9zXrUB +Xjdtfddb4XAHdrPnuBkCb/75JeQ4JroP3t59iY0SFuQ0TH9YkOJULrw7oTqqmLo+ +PAFMiK1/kbmpVsT92k2WLjPgrAXe+lslQPwXBNM= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-3-cert.pem b/test/fixtures/x509-escaping/subj-3-cert.pem new file mode 100644 index 00000000000000..48bee70c9b2620 --- /dev/null +++ b/test/fixtures/x509-escaping/subj-3-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEzzCCAregAwIBAgIBATANBgkqhkiG9w0BAQsFADArMSkwJwYDVQQHDCBTb21l +d2hlcmUsIENOID0gZXZpbC5leGFtcGxlLmNvbTAeFw0yMTEyMjAxNDU3MzVaFw0z +MTEyMTgxNDU3MzVaMCsxKTAnBgNVBAcMIFNvbWV3aGVyZSwgQ04gPSBldmlsLmV4 +YW1wbGUuY29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLv +RPU/5KOlnAio4We7Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjI +bc/oN2L9XdJ7xb7/IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB +5dW49Tk3sO8ZdRVnNY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3po +f3mGi+MwEFq1YUH1s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvk +CV387DTnomAPQJ32OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVD +SwyW6gpjMfxHKePBBzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9 +chA+DtRYZQ5ebcB9je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR +1XrQ5a8wwx4yyVsMcgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuV +r5OWutIBdREcvziwTP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXux +kO/pnM+Q/9NasVukvsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4 +nJBqLK1toAAGCoM15O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOC +AgEAFvcwnV5K6KH4jvYFUccZDEVZ2WFuZsqJVD5N4nX5KgHmnSzyDYgHRRZ4oGiN +eTgi+3B6S5TPRTMLUaO7hnFxilnfr3HlhsQhGVh+Qb+ovyL1evsrCu8CzmmFMJs1 +bHm/ct/HzDfNgrx7HEZbrpesNjka05UWhIewA/64IkSMFoGbrjb35WINpcHQNgvQ +X5YnUTk3U+DyDHGeRvZ9dsYBXnK7Q+s6lbS1Bvl3G65SZq9fxqtxLnwloP5ms62j +r7OLdQ/IDYFu0v/HKkA9Ms/NJyKtoPUXYyiP0qQPq2A9lDRW07goCaR7WApmU4Sr +uYQVAPCFbEJGQtjUVUrmEdlEuNaiaMM7+iB5WEXaQ8M8gRX+4U7lbk7HsRSsHlDn +9/1sAOxrWAnCffoYSrUwruD8SKVCTBlkYs5pPSIkfz/yzwNq5u6ebe5ATJBjIv+H +N4nflcrY18oMAz694f+94RUFat/5wX+WsnNT4Av+bVz6Gv5nbGJGXurUArrne5F9 +G+ESYu2KuGIRhxrOrBIvZapv9lITlBm9t8kChBbR9YZC4dD0+lu72h4xH3iXeeBl +MFmP1mk8zxuIwH6H/bM70B5NAHEw4U5guthnRU5YSK5EpvXhNl/JqdSp8xskfYCM +62dhRqgQNL0HZxKJO61bn3XBvVKLPNpCqBD5KQsI0R4wevM= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-4-cert.pem b/test/fixtures/x509-escaping/subj-4-cert.pem new file mode 100644 index 00000000000000..c23922d99190ae --- /dev/null +++ b/test/fixtures/x509-escaping/subj-4-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEyTCCArGgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQHDB1Tb21l +d2hlcmUvQ049ZXZpbC5leGFtcGxlLmNvbTAeFw0yMTEyMjAxNDU3MzVaFw0zMTEy +MTgxNDU3MzVaMCgxJjAkBgNVBAcMHVNvbWV3aGVyZS9DTj1ldmlsLmV4YW1wbGUu +Y29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLvRPU/5KOl +nAio4We7Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjIbc/oN2L9 +XdJ7xb7/IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB5dW49Tk3 +sO8ZdRVnNY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3pof3mGi+Mw +EFq1YUH1s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvkCV387DTn +omAPQJ32OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVDSwyW6gpj +MfxHKePBBzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9chA+DtRY +ZQ5ebcB9je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR1XrQ5a8w +wx4yyVsMcgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuVr5OWutIB +dREcvziwTP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXuxkO/pnM+Q +/9NasVukvsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4nJBqLK1t +oAAGCoM15O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAQD16 +wSsZodV3hk98VYDyXBuQdzrlF1zXm5n7Dx+ONGw62d3FRRaegbkwBfvUf7P+ZfR/ +qUFZQwWKYZ+hYos/gIvYuBRJSSg8nrGrHkp+AXIxQ6ZmgVAat3OnLdzG+k0Cras6 +vzRrEohL3JnXCBVZ+4MMnNrZFhGzQ9rHGJtrarkZ5NQMhH8VbfdtuKDpwS8O9mtI +MqoNTIViocqtBem8ZD5z+m9A5UT8DMKwL+gjDQQ3j/flfmAq5bcqZkkIrJol3mrp +4Ol1Hc4/tVMa1wsnEtYGWEOfBJqANY3m5IiEBHIyeP67NR68fdlZ+XFpdHNl5/LV +XwjGquv0jSE3CbKR1ez5sefn1fmCWVZi5mZV6O8jpT7Ztu1XL8jOxTxtCMKE6cCC +xgEL2HFG4JWeA/z5ZXT8U+4Bfiu1GXBMxF5LJc89DORTBRIWMR1IHca+nOb2zHNF +v4QOfqLKF+ko5D/ie9Xg1s49l6lI8NReg9NRRp2sc90Zxc0Pqz7wdNH2SMUC/+gR +kWhz77OhACeXpcRQVy0Bi64l5Or+05ZB2piK6OemcFUKIybKjxUbzuwZdrqj0vK6 +Tw1nemA1BCH8X+b1rz6kDKPycBAEdtMoRSFzbtZbdjBR1g0PLGeYn8rL2gsLMpaN +1XTCTb7BAAy0Ky4cpMduD+uYGbma9V4ER3RLdL8= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-5-cert.pem b/test/fixtures/x509-escaping/subj-5-cert.pem new file mode 100644 index 00000000000000..6c1c87e2ce9b73 --- /dev/null +++ b/test/fixtures/x509-escaping/subj-5-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEyTCCArGgAwIBAgIBATANBgkqhkiG9w0BAQsFADAoMSYwJAYDVQQHDB1Nw7xu +Y2hlblwKQ049ZXZpbC5leGFtcGxlLmNvbTAeFw0yMTEyMjAxNDU3MzVaFw0zMTEy +MTgxNDU3MzVaMCgxJjAkBgNVBAcMHU3DvG5jaGVuXApDTj1ldmlsLmV4YW1wbGUu +Y29tMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLvRPU/5KOl +nAio4We7Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjIbc/oN2L9 +XdJ7xb7/IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB5dW49Tk3 +sO8ZdRVnNY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3pof3mGi+Mw +EFq1YUH1s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvkCV387DTn +omAPQJ32OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVDSwyW6gpj +MfxHKePBBzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9chA+DtRY +ZQ5ebcB9je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR1XrQ5a8w +wx4yyVsMcgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuVr5OWutIB +dREcvziwTP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXuxkO/pnM+Q +/9NasVukvsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4nJBqLK1t +oAAGCoM15O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAipRw +3Q8C0CUYTQJlYTAdmATrboUFATpex+ZFhQgQPPWs/tUvf8zWU+DdDjFjrLNCY+ew +FaURBnNQ92AE3LVDayu3Jh6TMoHKMAnPOERaiMuHDoKr/T4JVk2vWSBck6aYbokl +7W7/ucMTVyPS9tLiuIwyJ+0dta+ucQSjIZj2RtCzsOtxdbUqt/7iTJrl8EjZGGbH +FTKSbFBY2mR9oFKhoyCaVV0Alw1//napqdzu93gNqZx3cXskA0T63GxyhjhVpFq8 +d1ILGB3yKAiIzc5epNKx8ZPSUddx7zK0FAXRtBGHcOTES3+kTljkxmXAFDGTrMk0 +fsWgKfDDkDEGaUHL43524HLnPUoQASdQ9Uk5r7TDkl/kATv5w+HpWKdd3sxcSH8m +UeUFCFdJbcOyqKfF7jz8kCe08Xt2sEW5tKZb4xWjI+mm01PCNeyCsaAw4OlSDUEm +63fCsXY/b+i0hOxdd/eusoq3B76ngOEGaEJ8jOvpxeyHuet9kDet5M48aQRE9S9x +HJWLL+80mFt4yiRHPUob/WP+4L7EnBjmiVBevEO0sptYLqymdRuCy4Ub4/QIQnNW +kFasltzL/WEe1TzpTNziqOk1jEHA06D5Euwy/mI+S0Y0uvFOYC+tVkspsCNikrTu +Fj0Lqyg5tqQJM3msSEfJvaJhUydaeIZp1Cr535Y= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-6-cert.pem b/test/fixtures/x509-escaping/subj-6-cert.pem new file mode 100644 index 00000000000000..82912d7c269f69 --- /dev/null +++ b/test/fixtures/x509-escaping/subj-6-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIE0zCCArugAwIBAgIBATANBgkqhkiG9w0BAQsFADAtMSswEAYDVQQHDAlTb21l +d2hlcmUwFwYDVQQDDBBldmlsLmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoX +DTMxMTIxODE0NTczNVowLTErMBAGA1UEBwwJU29tZXdoZXJlMBcGA1UEAwwQZXZp +bC5leGFtcGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALER +Z3TS70T1P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4BvWiayictqCJWtmsbs +Sli4yG3P6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGtqJe4EOpret1jgkFq +QJy5geXVuPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1aRjqayh3TDU8NwuF +lLd6aH95hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMNDnVXZ3paRJTcps6d +/Ylb5Ald/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaYBRPx6WFdepWr410G +pzpVQ0sMluoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3icV/A9BmtOBqrb60 +Pv/MPXIQPg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4ZUoyzTvwN2i/uPqJx +i/9FkdV60OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tcnedukufld8QEW7iM +n7D7la+TlrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61MiLhVUOHANFBSLBvZ +3VF7sZDv6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUmR7J4QEuQSEN2cZMO +pn0T+JyQaiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAEwDQYJKoZIhvcNAQEL +BQADggIBAAdRC4tmZb5tukc4pIdnzRyrzNq3uefQNLcrZpZaCKAWvey+AFOZw88N +nnjUT0A3bXA2YJPKQtRaSJG+UBH3xgRNOM0ttvKYqmzZDt/ygzxRlTMt80AVVyMG +P06D5UUZHEX6aUchS/noDI5jewZy23jINEAzQv8B72r8WjV/LwjbJ1IoBg08gJhO +QQCfeDaJ0sAQCL1tdlwiS6Q3N6rkC3jLzBHCzXP0FN5OF5rxr6nlfHiTOuhTdodR +p/UrLVADdvpXq6SegbTvZ7/KwNWzzAmOEx2MAHFQKh46S1+RHQE3L7SV9dqV2XCe +OxfBPPXTy+AiceKhVL0+jhdI/VWIdhTHSCeFuzrGbrLQwWLCDZ5AZjS/JaBXuVGl +WILzz3ZG6ekdqMY/qG8weDEFv49f03MGWoX27uhkz4qtumLzrXEspzL7GwUfnDZo +zyF9Jo9vJVNmiz/N2DnUd0X5hdHUsjnN8vPN+3u5kkvfXTgT9wUrMgzECu/tyC92 +GAX0MqY6lKJwTT+pxkZPUNGMbP8c3BuO9NVGPUeOA+/4sgsws+V0TDF7umNk2nq3 +vCuS+QFZXAR4Ns2xgIOMH8XQjRZ4qSp3HsFNehOqSQrFvcgjMLo0RcgiwgReUMl+ +Pnhjk+V4ttEIUe3UswaRHD9moG4sgCfFk/bafwCvdKonD6mBETMa +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-7-cert.pem b/test/fixtures/x509-escaping/subj-7-cert.pem new file mode 100644 index 00000000000000..fd645da96540be --- /dev/null +++ b/test/fixtures/x509-escaping/subj-7-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEzTCCArWgAwIBAgIBATANBgkqhkiG9w0BAQsFADAqMSgwJgYDVQQHDB9Tb21l +d2hlcmUgKyBDTj1ldmlsLmV4YW1wbGUuY29tMB4XDTIxMTIyMDE0NTczNVoXDTMx +MTIxODE0NTczNVowKjEoMCYGA1UEBwwfU29tZXdoZXJlICsgQ049ZXZpbC5leGFt +cGxlLmNvbTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALERZ3TS70T1 +P+SjpZwIqOFnu2Od9XKWcDszQQc7C92K+APjp4BvWiayictqCJWtmsbsSli4yG3P +6Ddi/V3Se8W+/yB71Qh2c3wQNMPMukncps2odRGtqJe4EOpret1jgkFqQJy5geXV +uPU5N7DvGXUVZzWN7TisFNAZMUhF2YlljJz1sjD1aRjqayh3TDU8NwuFlLd6aH95 +hovjMBBatWFB9bN/itnMVoj9rmfSjvlpSRO6/EMNDnVXZ3paRJTcps6d/Ylb5Ald +/Ow056JgD0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaYBRPx6WFdepWr410GpzpVQ0sM +luoKYzH8RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3icV/A9BmtOBqrb60Pv/MPXIQ +Pg7UWGUOXm3AfY3v6gbToewSW5B0s+uPsh52md4ZUoyzTvwN2i/uPqJxi/9FkdV6 +0OWvMMMeMslbDHIBbN0Z2SG0wY93oH2LhO0X89Tcnedukufld8QEW7iMn7D7la+T +lrrSAXURHL84sEz97yyujawQEimnW03XAlUFk61MiLhVUOHANFBSLBvZ3VF7sZDv +6ZzPkP/TWrFbpL7DQgqunAlSNHealrQ5T3wp8pUmR7J4QEuQSEN2cZMOpn0T+JyQ +aiytbaAABgqDNeTvbl2nFN2ksSix8NunAgMBAAEwDQYJKoZIhvcNAQELBQADggIB +AAG8vjV7c4B4yKO2BDhufVjkmzot97SPf4qR0qJATAV+Iifm5D2YL/dr36kyvTiK +JoPU/0vztcnh5X75YzvEtD4xh5zg3FQdAEpGx4zZkNXkJt2syz3V3DFG9Te4GH3n +/a39z4yn2J2MG2uXj+TTSJR23ICAgqNkj4EtrwvOouAqLCR/yZuYaUM6ZPmEYrHM +5wwiMCheDgMUYvFhTIKAwalnQitCGQCFr5WvTHU/0oVn498miZEU5LPAIiuhIQoA +UI/tro47evU/Nli8WY9UImLbcWkbIS7MogtWhjDQXd80G3sX+9DpVO43S2Cf4shB +yXl49bvqITMXdurSQrNKbfQ5aLDmKno4Qjs9wZMmi2xhIKczuB4bdtQDsC0/LiSr +oydiSP9uxYatT6SedzgkypTOL/5qtuh14Z7aRio5s4WrIDDJ1RVlWJGffq4hF+j/ +cu5OHo4cyvN42+bnyYzAWpOE7h8Nmi0D14zvm1FE3FKVSlBZzScBBungVdJkchAP +4JleXVqfH5skLgMiYCa3qocfUEfeKTCVXJUxaPIvBILtcOYzx75B0izsVlsd/dr+ +DqoIKN9aMGyuKR0QZtmW97eCxaH6Dm7lVuym56hiQrT3J0PL2iU+LU1R9UfLE/pL +RjUWW/gbxxNq8dbFybiUM7Sj+6tWuVvLygA04lMeDIDq +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-8-cert.pem b/test/fixtures/x509-escaping/subj-8-cert.pem new file mode 100644 index 00000000000000..edd4b460b13ba8 --- /dev/null +++ b/test/fixtures/x509-escaping/subj-8-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIEwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADAlMRYwCQYDVQQHDAJMMTAJ +BgNVBAcMAkwyMQswCQYDVQQHDAJMMzAeFw0yMTEyMjAxNDU3MzVaFw0zMTEyMTgx +NDU3MzVaMCUxFjAJBgNVBAcMAkwxMAkGA1UEBwwCTDIxCzAJBgNVBAcMAkwzMIIC +IjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAsRFndNLvRPU/5KOlnAio4We7 +Y531cpZwOzNBBzsL3Yr4A+OngG9aJrKJy2oIla2axuxKWLjIbc/oN2L9XdJ7xb7/ +IHvVCHZzfBA0w8y6Sdymzah1Ea2ol7gQ6mt63WOCQWpAnLmB5dW49Tk3sO8ZdRVn +NY3tOKwU0BkxSEXZiWWMnPWyMPVpGOprKHdMNTw3C4WUt3pof3mGi+MwEFq1YUH1 +s3+K2cxWiP2uZ9KO+WlJE7r8Qw0OdVdnelpElNymzp39iVvkCV387DTnomAPQJ32 +OfXr6+BhHhvFWXRrlBt/bgwiFpgFE/HpYV16lavjXQanOlVDSwyW6gpjMfxHKePB +Bzul+bl5tMVYmSFTzSM6ookYVbeJxX8D0Ga04GqtvrQ+/8w9chA+DtRYZQ5ebcB9 +je/qBtOh7BJbkHSz64+yHnaZ3hlSjLNO/A3aL+4+onGL/0WR1XrQ5a8wwx4yyVsM +cgFs3RnZIbTBj3egfYuE7Rfz1Nyd526S5+V3xARbuIyfsPuVr5OWutIBdREcvziw +TP3vLK6NrBASKadbTdcCVQWTrUyIuFVQ4cA0UFIsG9ndUXuxkO/pnM+Q/9NasVuk +vsNCCq6cCVI0d5qWtDlPfCnylSZHsnhAS5BIQ3Zxkw6mfRP4nJBqLK1toAAGCoM1 +5O9uXacU3aSxKLHw26cCAwEAATANBgkqhkiG9w0BAQsFAAOCAgEAGNhY0vKd8Os9 +75+HHQH03BugatuIykpSu+tj8OYr2/7VLT76qUaKdkAZV0m9TiS8MitHZieEbig3 +EozQtYrTZQbiFjiV8FudPsmAXZxcz1TdE25mZykWe24FmZNdeMQmoVRZYbg3gb/M +sTEDbnV3DoW6X8LWMlitaBpisxg/LqHakATvj6Otvts8RFhI1c/JFx8THuY14Fj1 +sJ8eFdwebPK35V4ZNtH8bevVo9MvnUS290fF1WDC1dnjZ1zYqHT7sPoGbCFF4kne +TF2Ef12BgUNtgJKnXeEV5Gull4iOQS8qTkWCIm8jbz1+9ap8nqVcGn60bkwiMmgz +hNyBW7c31MvEfedfCwFma/uV1yMB2nGwX47TMnTTjwc5b2I/lOrFOfeh2JD9QVZF +XFKRsVXqCwa3aLc1fc93M9kEHzKWzGgMjYvJzZEGsoqTil22NmQXIG7jKjLth7zF +4Sc/qBDXsLaqUaWQveZ9U6suFYr9u2X7h3KkciFtsZPFK+AZGO07z/4nWEeo4frV +RyltN38BmJxwBSxNEZFBiMJ9AEmg2EhgBXJbEhN9XCwpW2EEp+M09AfcebzKjJ+h +3Q7AWlTPawz/PQzzunZzNMkq7/6Y/dIFg/Ak8RIPkMVb3xE9oD0wMWigyiK05UUI +832NnZXih3qq15MfVS4eTSeKrNcFt3c= +-----END CERTIFICATE----- diff --git a/test/fixtures/x509-escaping/subj-9-cert.pem b/test/fixtures/x509-escaping/subj-9-cert.pem new file mode 100644 index 00000000000000..5490e2ea3e5aed --- /dev/null +++ b/test/fixtures/x509-escaping/subj-9-cert.pem @@ -0,0 +1,28 @@ +-----BEGIN CERTIFICATE----- +MIIExzCCAq+gAwIBAgIBATANBgkqhkiG9w0BAQsFADAnMQswCQYDVQQHDAJMMTEL +MAkGA1UEBwwCTDIxCzAJBgNVBAcMAkwzMB4XDTIxMTIyMDE0NTczNVoXDTMxMTIx +ODE0NTczNVowJzELMAkGA1UEBwwCTDExCzAJBgNVBAcMAkwyMQswCQYDVQQHDAJM +MzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALERZ3TS70T1P+SjpZwI +qOFnu2Od9XKWcDszQQc7C92K+APjp4BvWiayictqCJWtmsbsSli4yG3P6Ddi/V3S +e8W+/yB71Qh2c3wQNMPMukncps2odRGtqJe4EOpret1jgkFqQJy5geXVuPU5N7Dv +GXUVZzWN7TisFNAZMUhF2YlljJz1sjD1aRjqayh3TDU8NwuFlLd6aH95hovjMBBa +tWFB9bN/itnMVoj9rmfSjvlpSRO6/EMNDnVXZ3paRJTcps6d/Ylb5Ald/Ow056Jg +D0Cd9jn16+vgYR4bxVl0a5Qbf24MIhaYBRPx6WFdepWr410GpzpVQ0sMluoKYzH8 +RynjwQc7pfm5ebTFWJkhU80jOqKJGFW3icV/A9BmtOBqrb60Pv/MPXIQPg7UWGUO +Xm3AfY3v6gbToewSW5B0s+uPsh52md4ZUoyzTvwN2i/uPqJxi/9FkdV60OWvMMMe +MslbDHIBbN0Z2SG0wY93oH2LhO0X89Tcnedukufld8QEW7iMn7D7la+TlrrSAXUR +HL84sEz97yyujawQEimnW03XAlUFk61MiLhVUOHANFBSLBvZ3VF7sZDv6ZzPkP/T +WrFbpL7DQgqunAlSNHealrQ5T3wp8pUmR7J4QEuQSEN2cZMOpn0T+JyQaiytbaAA +BgqDNeTvbl2nFN2ksSix8NunAgMBAAEwDQYJKoZIhvcNAQELBQADggIBAEeFRIyV +5PdD7Xipg3byNhcCH6I8gADM+Ipnxic93COfQrWCKd/lnsJzxml7VhyANScUTx44 +wkYs+kW9Xi/tEViVwrsFzlTB3YwaAYPiGNtr98B4JBUfLneHSh8IUeeMUnBeLt4O +eqo3ts38hCfY3B3E2FtV9nRBKu91ZwE+pInWftdTJ6pIkltr+t9kPbVFW72hYfQJ +rdtyzIiSkTnJElcvNcWtsqEmTMLewgZz/bjbZkQh/LXQDT7oepZBZ5Qb4F8kwytb +wGC/OFoByWyXYfuPWKb2obdnbb5xa1vg8rLVdVgY25q+VeNItBB/FSzf0Pnxd9od +jVVtzvby57A0IT7XpTu8RFAkuWmZp4FO5kDyXLNgsd6md/qeqcO5V7dY6MSKeIXw +nMYTBWuxOZPMw2RnxjcfkEdN/5sDuYHnzuizkH+OiwPPfs2qa4EETaxo5xxmTcy+ +pDh0GEOIgyazpJnncgG1k1ABOcHevRaCpm8NuXexkfpAHEORNfOflRkJDICXSUxv +5o2VjOhqj8gRqLvpGBW3hCxVM/Of2Fzdye0ldoDhzcW0WxjzmcjcC5EEEVSapwok +K5+ZvVFjqW2j619UICFf95tCtB025AzWWwVVQ9rlnCWL0MOrOwe66vYERG2MUYAD +jcB7FUOjXh2+3Gkh1PzXiXCQatDLhIVt9Vus +-----END CERTIFICATE----- diff --git a/test/internet/test-dgram-broadcast-multi-process.js b/test/internet/test-dgram-broadcast-multi-process.js index 717b4dc01ea027..5972c5e24e537c 100644 --- a/test/internet/test-dgram-broadcast-multi-process.js +++ b/test/internet/test-dgram-broadcast-multi-process.js @@ -184,7 +184,9 @@ if (process.argv[2] !== 'child') { const buf = messages[i++]; if (!buf) { - try { sendSocket.close(); } catch {} + try { sendSocket.close(); } catch { + // Continue regardless of error. + } return; } diff --git a/test/internet/test-dgram-multicast-multi-process.js b/test/internet/test-dgram-multicast-multi-process.js index e19f8dc05b747a..6127748368c097 100644 --- a/test/internet/test-dgram-multicast-multi-process.js +++ b/test/internet/test-dgram-multicast-multi-process.js @@ -170,7 +170,9 @@ if (process.argv[2] !== 'child') { const buf = messages[i++]; if (!buf) { - try { sendSocket.close(); } catch {} + try { sendSocket.close(); } catch { + // Continue regardless of error. + } return; } diff --git a/test/internet/test-dgram-multicast-ssm-multi-process.js b/test/internet/test-dgram-multicast-ssm-multi-process.js index 5653559e243c7a..324c989a180fa0 100644 --- a/test/internet/test-dgram-multicast-ssm-multi-process.js +++ b/test/internet/test-dgram-multicast-ssm-multi-process.js @@ -164,7 +164,9 @@ if (process.argv[2] !== 'child') { const buf = messages[i++]; if (!buf) { - try { sendSocket.close(); } catch {} + try { sendSocket.close(); } catch { + // Continue regardless of error. + } return; } diff --git a/test/internet/test-dgram-multicast-ssmv6-multi-process.js b/test/internet/test-dgram-multicast-ssmv6-multi-process.js index e139d93a971a28..fd7b8dcd4ce011 100644 --- a/test/internet/test-dgram-multicast-ssmv6-multi-process.js +++ b/test/internet/test-dgram-multicast-ssmv6-multi-process.js @@ -164,7 +164,9 @@ if (process.argv[2] !== 'child') { const buf = messages[i++]; if (!buf) { - try { sendSocket.close(); } catch {} + try { sendSocket.close(); } catch { + // Continue regardless of error. + } return; } diff --git a/test/js-native-api/common.h b/test/js-native-api/common.h index ab6785fb199b01..73f60906630140 100644 --- a/test/js-native-api/common.h +++ b/test/js-native-api/common.h @@ -8,12 +8,13 @@ const napi_extended_error_info *error_info; \ napi_get_last_error_info((env), &error_info); \ bool is_pending; \ + const char* err_message = error_info->error_message; \ napi_is_exception_pending((env), &is_pending); \ /* If an exception is already pending, don't rethrow it */ \ if (!is_pending) { \ - const char* error_message = error_info->error_message != NULL ? \ - error_info->error_message : \ - "empty error message"; \ + const char* error_message = err_message != NULL ? \ + err_message : \ + "empty error message"; \ napi_throw_error((env), NULL, error_message); \ } \ } while (0) diff --git a/test/js-native-api/test_conversions/test.js b/test/js-native-api/test_conversions/test.js index 2fd6ace593840e..f7054f52744714 100644 --- a/test/js-native-api/test_conversions/test.js +++ b/test/js-native-api/test_conversions/test.js @@ -118,10 +118,10 @@ assert.deepStrictEqual(new String(''), test.toObject('')); assert.deepStrictEqual(new Number(0), test.toObject(0)); assert.deepStrictEqual(new Number(Number.NaN), test.toObject(Number.NaN)); assert.deepStrictEqual(new Object(testSym), test.toObject(testSym)); -assert.notDeepStrictEqual(test.toObject(false), false); -assert.notDeepStrictEqual(test.toObject(true), true); -assert.notDeepStrictEqual(test.toObject(''), ''); -assert.notDeepStrictEqual(test.toObject(0), 0); +assert.notStrictEqual(test.toObject(false), false); +assert.notStrictEqual(test.toObject(true), true); +assert.notStrictEqual(test.toObject(''), ''); +assert.notStrictEqual(test.toObject(0), 0); assert.ok(!Number.isNaN(test.toObject(Number.NaN))); assert.strictEqual(test.toString(''), ''); diff --git a/test/js-native-api/test_error/test.js b/test/js-native-api/test_error/test.js index 2dc6904c75a732..e39d4344b39b61 100644 --- a/test/js-native-api/test_error/test.js +++ b/test/js-native-api/test_error/test.js @@ -60,6 +60,10 @@ assert.throws(() => { test_error.throwTypeError(); }, /^TypeError: type error$/); +assert.throws(() => { + test_error.throwSyntaxError(); +}, /^SyntaxError: syntax error$/); + [42, {}, [], Symbol('xyzzy'), true, 'ball', undefined, null, NaN] .forEach((value) => assert.throws( () => test_error.throwArbitrary(value), @@ -90,6 +94,13 @@ assert.throws( message: 'TypeError [type error]' }); +assert.throws( + () => test_error.throwSyntaxErrorCode(), + { + code: 'ERR_TEST_CODE', + message: 'SyntaxError [syntax error]' + }); + let error = test_error.createError(); assert.ok(error instanceof Error, 'expected error to be an instance of Error'); assert.strictEqual(error.message, 'error'); @@ -104,6 +115,11 @@ assert.ok(error instanceof TypeError, 'expected error to be an instance of TypeError'); assert.strictEqual(error.message, 'type error'); +error = test_error.createSyntaxError(); +assert.ok(error instanceof SyntaxError, + 'expected error to be an instance of SyntaxError'); +assert.strictEqual(error.message, 'syntax error'); + error = test_error.createErrorCode(); assert.ok(error instanceof Error, 'expected error to be an instance of Error'); assert.strictEqual(error.code, 'ERR_TEST_CODE'); @@ -123,3 +139,10 @@ assert.ok(error instanceof TypeError, assert.strictEqual(error.message, 'TypeError [type error]'); assert.strictEqual(error.code, 'ERR_TEST_CODE'); assert.strictEqual(error.name, 'TypeError'); + +error = test_error.createSyntaxErrorCode(); +assert.ok(error instanceof SyntaxError, + 'expected error to be an instance of SyntaxError'); +assert.strictEqual(error.message, 'SyntaxError [syntax error]'); +assert.strictEqual(error.code, 'ERR_TEST_CODE'); +assert.strictEqual(error.name, 'SyntaxError'); diff --git a/test/js-native-api/test_error/test_error.c b/test/js-native-api/test_error/test_error.c index a164c38bea89b7..0dea66a51cc3a6 100644 --- a/test/js-native-api/test_error/test_error.c +++ b/test/js-native-api/test_error/test_error.c @@ -1,3 +1,4 @@ +#define NAPI_EXPERIMENTAL #include #include "../common.h" @@ -40,6 +41,11 @@ static napi_value throwTypeError(napi_env env, napi_callback_info info) { return NULL; } +static napi_value throwSyntaxError(napi_env env, napi_callback_info info) { + NODE_API_CALL(env, node_api_throw_syntax_error(env, NULL, "syntax error")); + return NULL; +} + static napi_value throwErrorCode(napi_env env, napi_callback_info info) { NODE_API_CALL(env, napi_throw_error(env, "ERR_TEST_CODE", "Error [error]")); return NULL; @@ -57,6 +63,11 @@ static napi_value throwTypeErrorCode(napi_env env, napi_callback_info info) { return NULL; } +static napi_value throwSyntaxErrorCode(napi_env env, napi_callback_info info) { + NODE_API_CALL(env, + node_api_throw_syntax_error(env, "ERR_TEST_CODE", "SyntaxError [syntax error]")); + return NULL; +} static napi_value createError(napi_env env, napi_callback_info info) { napi_value result; @@ -85,6 +96,15 @@ static napi_value createTypeError(napi_env env, napi_callback_info info) { return result; } +static napi_value createSyntaxError(napi_env env, napi_callback_info info) { + napi_value result; + napi_value message; + NODE_API_CALL(env, napi_create_string_utf8( + env, "syntax error", NAPI_AUTO_LENGTH, &message)); + NODE_API_CALL(env, node_api_create_syntax_error(env, NULL, message, &result)); + return result; +} + static napi_value createErrorCode(napi_env env, napi_callback_info info) { napi_value result; napi_value message; @@ -123,6 +143,19 @@ static napi_value createTypeErrorCode(napi_env env, napi_callback_info info) { return result; } +static napi_value createSyntaxErrorCode(napi_env env, napi_callback_info info) { + napi_value result; + napi_value message; + napi_value code; + NODE_API_CALL(env, + napi_create_string_utf8( + env, "SyntaxError [syntax error]", NAPI_AUTO_LENGTH, &message)); + NODE_API_CALL(env, napi_create_string_utf8( + env, "ERR_TEST_CODE", NAPI_AUTO_LENGTH, &code)); + NODE_API_CALL(env, node_api_create_syntax_error(env, code, message, &result)); + return result; +} + static napi_value throwArbitrary(napi_env env, napi_callback_info info) { napi_value arbitrary; size_t argc = 1; @@ -139,16 +172,20 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("throwError", throwError), DECLARE_NODE_API_PROPERTY("throwRangeError", throwRangeError), DECLARE_NODE_API_PROPERTY("throwTypeError", throwTypeError), + DECLARE_NODE_API_PROPERTY("throwSyntaxError", throwSyntaxError), DECLARE_NODE_API_PROPERTY("throwErrorCode", throwErrorCode), DECLARE_NODE_API_PROPERTY("throwRangeErrorCode", throwRangeErrorCode), DECLARE_NODE_API_PROPERTY("throwTypeErrorCode", throwTypeErrorCode), + DECLARE_NODE_API_PROPERTY("throwSyntaxErrorCode", throwSyntaxErrorCode), DECLARE_NODE_API_PROPERTY("throwArbitrary", throwArbitrary), DECLARE_NODE_API_PROPERTY("createError", createError), DECLARE_NODE_API_PROPERTY("createRangeError", createRangeError), DECLARE_NODE_API_PROPERTY("createTypeError", createTypeError), + DECLARE_NODE_API_PROPERTY("createSyntaxError", createSyntaxError), DECLARE_NODE_API_PROPERTY("createErrorCode", createErrorCode), DECLARE_NODE_API_PROPERTY("createRangeErrorCode", createRangeErrorCode), DECLARE_NODE_API_PROPERTY("createTypeErrorCode", createTypeErrorCode), + DECLARE_NODE_API_PROPERTY("createSyntaxErrorCode", createSyntaxErrorCode), }; NODE_API_CALL(env, napi_define_properties( diff --git a/test/js-native-api/test_number/test.js b/test/js-native-api/test_number/test.js index 8ab8ad5e8be7f3..33d2699bc563c1 100644 --- a/test/js-native-api/test_number/test.js +++ b/test/js-native-api/test_number/test.js @@ -19,10 +19,12 @@ testNumber(-1233); testNumber(986583); testNumber(-976675); +/* eslint-disable no-loss-of-precision */ testNumber( 98765432213456789876546896323445679887645323232436587988766545658); testNumber( -4350987086545760976737453646576078997096876957864353245245769809); +/* eslint-enable no-loss-of-precision */ testNumber(Number.MIN_SAFE_INTEGER); testNumber(Number.MAX_SAFE_INTEGER); testNumber(Number.MAX_SAFE_INTEGER + 10); diff --git a/test/js-native-api/test_object/test_null.js b/test/js-native-api/test_object/test_null.js index c94aa0fc84f19d..b6f07881080e7c 100644 --- a/test/js-native-api/test_object/test_null.js +++ b/test/js-native-api/test_object/test_null.js @@ -14,6 +14,7 @@ const expectedForProperty = { assert.deepStrictEqual(testNull.setProperty(), expectedForProperty); assert.deepStrictEqual(testNull.getProperty(), expectedForProperty); assert.deepStrictEqual(testNull.hasProperty(), expectedForProperty); +// eslint-disable-next-line no-prototype-builtins assert.deepStrictEqual(testNull.hasOwnProperty(), expectedForProperty); // It's OK not to want the result of a deletion. assert.deepStrictEqual(testNull.deleteProperty(), diff --git a/test/js-native-api/test_properties/test.js b/test/js-native-api/test_properties/test.js index 704002dfc74f3a..7311c615cb815f 100644 --- a/test/js-native-api/test_properties/test.js +++ b/test/js-native-api/test_properties/test.js @@ -35,12 +35,11 @@ assert.ok(!propertyNames.includes('readwriteAccessor2')); assert.ok(!propertyNames.includes('readonlyAccessor1')); assert.ok(!propertyNames.includes('readonlyAccessor2')); -// Validate property created with symbol -const start = 'Symbol('.length; -const end = start + 'NameKeySymbol'.length; -const symbolDescription = - String(Object.getOwnPropertySymbols(test_object)[0]).slice(start, end); -assert.strictEqual(symbolDescription, 'NameKeySymbol'); +// Validate properties created with symbol +const propertySymbols = Object.getOwnPropertySymbols(test_object); +assert.strictEqual(propertySymbols[0].toString(), 'Symbol(NameKeySymbol)'); +assert.strictEqual(propertySymbols[1].toString(), 'Symbol()'); +assert.strictEqual(propertySymbols[2], Symbol.for('NameKeySymbolFor')); // The napi_writable attribute should be ignored for accessors. const readwriteAccessor1Descriptor = diff --git a/test/js-native-api/test_properties/test_properties.c b/test/js-native-api/test_properties/test_properties.c index c778601aa7489b..2c1a513449d214 100644 --- a/test/js-native-api/test_properties/test_properties.c +++ b/test/js-native-api/test_properties/test_properties.c @@ -1,3 +1,4 @@ +#define NAPI_EXPERIMENTAL #include #include "../common.h" @@ -77,6 +78,16 @@ napi_value Init(napi_env env, napi_value exports) { NODE_API_CALL(env, napi_create_symbol(env, symbol_description, &name_symbol)); + napi_value name_symbol_descriptionless; + NODE_API_CALL(env, + napi_create_symbol(env, NULL, &name_symbol_descriptionless)); + + napi_value name_symbol_for; + NODE_API_CALL(env, node_api_symbol_for(env, + "NameKeySymbolFor", + NAPI_AUTO_LENGTH, + &name_symbol_for)); + napi_property_descriptor properties[] = { { "echo", 0, Echo, 0, 0, 0, napi_enumerable, 0 }, { "readwriteValue", 0, 0, 0, 0, number, napi_enumerable | napi_writable, 0 }, @@ -84,6 +95,8 @@ napi_value Init(napi_env env, napi_value exports) { { "hiddenValue", 0, 0, 0, 0, number, napi_default, 0}, { NULL, name_value, 0, 0, 0, number, napi_enumerable, 0}, { NULL, name_symbol, 0, 0, 0, number, napi_enumerable, 0}, + { NULL, name_symbol_descriptionless, 0, 0, 0, number, napi_enumerable, 0}, + { NULL, name_symbol_for, 0, 0, 0, number, napi_enumerable, 0}, { "readwriteAccessor1", 0, 0, GetValue, SetValue, 0, napi_default, 0}, { "readwriteAccessor2", 0, 0, GetValue, SetValue, 0, napi_writable, 0}, { "readonlyAccessor1", 0, 0, GetValue, NULL, 0, napi_default, 0}, diff --git a/test/js-native-api/test_reference/test.js b/test/js-native-api/test_reference/test.js index 0dc9e553300060..6f128b788706cd 100644 --- a/test/js-native-api/test_reference/test.js +++ b/test/js-native-api/test_reference/test.js @@ -21,6 +21,25 @@ async function runTests() { })(); test_reference.deleteReference(); + (() => { + const symbol = test_reference.createSymbolFor('testSymFor'); + test_reference.createReference(symbol, 0); + assert.strictEqual(test_reference.referenceValue, symbol); + assert.strictEqual(test_reference.referenceValue, Symbol.for('testSymFor')); + })(); + test_reference.deleteReference(); + + (() => { + const symbol = test_reference.createSymbolForEmptyString(); + test_reference.createReference(symbol, 0); + assert.strictEqual(test_reference.referenceValue, symbol); + assert.strictEqual(test_reference.referenceValue, Symbol.for('')); + })(); + test_reference.deleteReference(); + + assert.throws(() => test_reference.createSymbolForIncorrectLength(), + /Invalid argument/); + (() => { const value = test_reference.createExternal(); assert.strictEqual(test_reference.finalizeCount, 0); diff --git a/test/js-native-api/test_reference/test_reference.c b/test/js-native-api/test_reference/test_reference.c index 7b770cb8766775..4a224efbd8cf6d 100644 --- a/test/js-native-api/test_reference/test_reference.c +++ b/test/js-native-api/test_reference/test_reference.c @@ -1,3 +1,4 @@ +#define NAPI_EXPERIMENTAL #include #include #include @@ -49,6 +50,41 @@ static napi_value CreateSymbol(napi_env env, napi_callback_info info) { return result_symbol; } +static napi_value CreateSymbolFor(napi_env env, napi_callback_info info) { + + size_t argc = 1; + napi_value args[1]; + + char description[256]; + size_t description_length; + + NODE_API_CALL(env, napi_get_cb_info(env, info, &argc, args, NULL,NULL)); + NODE_API_ASSERT(env, argc == 1, "Expect one argument only (symbol description)"); + + NODE_API_CALL(env, napi_get_value_string_utf8(env, args[0], description, sizeof(description), &description_length)); + NODE_API_ASSERT(env, description_length <= 255, "Cannot accommodate descriptions longer than 255 bytes"); + + napi_value result_symbol; + + NODE_API_CALL(env, node_api_symbol_for(env, + description, + description_length, + &result_symbol)); + return result_symbol; +} + +static napi_value CreateSymbolForEmptyString(napi_env env, napi_callback_info info) { + napi_value result_symbol; + NODE_API_CALL(env, node_api_symbol_for(env, NULL, 0, &result_symbol)); + return result_symbol; +} + +static napi_value CreateSymbolForIncorrectLength(napi_env env, napi_callback_info info) { + napi_value result_symbol; + NODE_API_CALL(env, node_api_symbol_for(env, NULL, 5, &result_symbol)); + return result_symbol; +} + static napi_value CreateExternalWithFinalize(napi_env env, napi_callback_info info) { napi_value result; @@ -190,6 +226,9 @@ napi_value Init(napi_env env, napi_value exports) { DECLARE_NODE_API_PROPERTY("checkExternal", CheckExternal), DECLARE_NODE_API_PROPERTY("createReference", CreateReference), DECLARE_NODE_API_PROPERTY("createSymbol", CreateSymbol), + DECLARE_NODE_API_PROPERTY("createSymbolFor", CreateSymbolFor), + DECLARE_NODE_API_PROPERTY("createSymbolForEmptyString", CreateSymbolForEmptyString), + DECLARE_NODE_API_PROPERTY("createSymbolForIncorrectLength", CreateSymbolForIncorrectLength), DECLARE_NODE_API_PROPERTY("deleteReference", DeleteReference), DECLARE_NODE_API_PROPERTY("incrementRefcount", IncrementRefcount), DECLARE_NODE_API_PROPERTY("decrementRefcount", DecrementRefcount), diff --git a/test/js-native-api/test_symbol/test2.js b/test/js-native-api/test_symbol/test2.js index 2060409b9bf8df..642d3623cc51fc 100644 --- a/test/js-native-api/test_symbol/test2.js +++ b/test/js-native-api/test_symbol/test2.js @@ -6,10 +6,12 @@ const assert = require('assert'); const test_symbol = require(`./build/${common.buildType}/test_symbol`); const fooSym = test_symbol.New('foo'); +assert.strictEqual(fooSym.toString(), 'Symbol(foo)'); + const myObj = {}; myObj.foo = 'bar'; myObj[fooSym] = 'baz'; -Object.keys(myObj); // -> [ 'foo' ] -Object.getOwnPropertyNames(myObj); // -> [ 'foo' ] -Object.getOwnPropertySymbols(myObj); // -> [ Symbol(foo) ] -assert.strictEqual(Object.getOwnPropertySymbols(myObj)[0], fooSym); + +assert.deepStrictEqual(Object.keys(myObj), ['foo']); +assert.deepStrictEqual(Object.getOwnPropertyNames(myObj), ['foo']); +assert.deepStrictEqual(Object.getOwnPropertySymbols(myObj), [fooSym]); diff --git a/test/message/esm_display_syntax_error_import.mjs b/test/message/esm_display_syntax_error_import.mjs deleted file mode 100644 index 2173cb2b2e3a71..00000000000000 --- a/test/message/esm_display_syntax_error_import.mjs +++ /dev/null @@ -1,6 +0,0 @@ -/* eslint-disable no-unused-vars */ -import '../common/index.mjs'; -import { - foo, - notfound -} from '../fixtures/es-module-loaders/module-named-exports.mjs'; diff --git a/test/message/esm_display_syntax_error_import.out b/test/message/esm_display_syntax_error_import.out deleted file mode 100644 index babdcfc934bdd3..00000000000000 --- a/test/message/esm_display_syntax_error_import.out +++ /dev/null @@ -1,12 +0,0 @@ -file:///*/test/message/esm_display_syntax_error_import.mjs:5 - notfound - ^^^^^^^^ -SyntaxError: The requested module '../fixtures/es-module-loaders/module-named-exports.mjs' does not provide an export named 'notfound' - at ModuleJob._instantiate (node:internal/modules/esm/module_job:*:*) - at async ModuleJob.run (node:internal/modules/esm/module_job:*:*) - at async Promise.all (index 0) - at async ESMLoader.import (node:internal/modules/esm/loader:*:*) - at async loadESM (node:internal/process/esm_loader:*:*) - at async handleMainPromise (node:internal/modules/run_main:*:*) - -Node.js * diff --git a/test/message/esm_display_syntax_error_import_module.mjs b/test/message/esm_display_syntax_error_import_module.mjs deleted file mode 100644 index c0345c44fb3fda..00000000000000 --- a/test/message/esm_display_syntax_error_import_module.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import '../common/index.mjs'; -import '../fixtures/es-module-loaders/syntax-error-import.mjs'; diff --git a/test/message/esm_display_syntax_error_import_module.out b/test/message/esm_display_syntax_error_import_module.out deleted file mode 100644 index af95ab469f5a31..00000000000000 --- a/test/message/esm_display_syntax_error_import_module.out +++ /dev/null @@ -1,12 +0,0 @@ -file:///*/test/fixtures/es-module-loaders/syntax-error-import.mjs:1 -import { foo, notfound } from './module-named-exports.mjs'; - ^^^^^^^^ -SyntaxError: The requested module './module-named-exports.mjs' does not provide an export named 'notfound' - at ModuleJob._instantiate (node:internal/modules/esm/module_job:*:*) - at async ModuleJob.run (node:internal/modules/esm/module_job:*:*) - at async Promise.all (index 0) - at async ESMLoader.import (node:internal/modules/esm/loader:*:*) - at async loadESM (node:internal/process/esm_loader:*:*) - at async handleMainPromise (node:internal/modules/run_main:*:*) - -Node.js * diff --git a/test/message/esm_display_syntax_error_module.mjs b/test/message/esm_display_syntax_error_module.mjs deleted file mode 100644 index da40a4ead8d3c1..00000000000000 --- a/test/message/esm_display_syntax_error_module.mjs +++ /dev/null @@ -1,2 +0,0 @@ -import '../common/index.mjs'; -import '../fixtures/es-module-loaders/syntax-error.mjs'; diff --git a/test/message/esm_display_syntax_error_module.out b/test/message/esm_display_syntax_error_module.out deleted file mode 100644 index 622e85ec759214..00000000000000 --- a/test/message/esm_display_syntax_error_module.out +++ /dev/null @@ -1,9 +0,0 @@ -file:///*/test/fixtures/es-module-loaders/syntax-error.mjs:2 -await async () => 0; -^^^^^^^^^^^^^ - -SyntaxError: Malformed arrow function parameter list - at ESMLoader.moduleStrategy (node:internal/modules/esm/translators:*:*) - at ESMLoader.moduleProvider (node:internal/modules/esm/loader:*:*) - -Node.js * diff --git a/test/message/esm_loader_not_found.mjs b/test/message/esm_loader_not_found.mjs deleted file mode 100644 index 2b47e5a03ec9e6..00000000000000 --- a/test/message/esm_loader_not_found.mjs +++ /dev/null @@ -1,3 +0,0 @@ -// Flags: --experimental-loader i-dont-exist -import '../common/index.mjs'; -console.log('This should not be printed'); diff --git a/test/message/esm_loader_not_found.out b/test/message/esm_loader_not_found.out deleted file mode 100644 index 841e97d679ea3c..00000000000000 --- a/test/message/esm_loader_not_found.out +++ /dev/null @@ -1,20 +0,0 @@ -(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time -(Use `* --trace-warnings ...` to show where the warning was created) -node:internal/errors:* - ErrorCaptureStackTrace(err); - ^ -Error [ERR_MODULE_NOT_FOUND]: Cannot find package 'i-dont-exist' imported from * - at new NodeError (node:internal/errors:*:*) - at packageResolve (node:internal/modules/esm/resolve:*:*) - at moduleResolve (node:internal/modules/esm/resolve:*:*) - at defaultResolve (node:internal/modules/esm/resolve:*:*) - at ESMLoader.resolve (node:internal/modules/esm/loader:*:*) - at ESMLoader.getModuleJob (node:internal/modules/esm/loader:*:*) - at ESMLoader.import (node:internal/modules/esm/loader:*:*) - at initializeLoader (node:internal/process/esm_loader:*:*) - at loadESM (node:internal/process/esm_loader:*:*) - at runMainESM (node:internal/modules/run_main:*:*) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js * diff --git a/test/message/esm_loader_not_found_cjs_hint_bare.js b/test/message/esm_loader_not_found_cjs_hint_bare.js deleted file mode 100644 index 437fa2d3d430a1..00000000000000 --- a/test/message/esm_loader_not_found_cjs_hint_bare.js +++ /dev/null @@ -1,17 +0,0 @@ -'use strict'; - -require('../common'); -const { spawn } = require('child_process'); -const { join } = require('path'); -const { fixturesDir } = require('../common/fixtures'); - -spawn( - process.execPath, - [ - join(fixturesDir, 'esm_loader_not_found_cjs_hint_bare.mjs'), - ], - { - cwd: fixturesDir, - stdio: 'inherit' - } -); diff --git a/test/message/esm_loader_not_found_cjs_hint_bare.out b/test/message/esm_loader_not_found_cjs_hint_bare.out deleted file mode 100644 index eaa758742ff61d..00000000000000 --- a/test/message/esm_loader_not_found_cjs_hint_bare.out +++ /dev/null @@ -1,18 +0,0 @@ -node:internal/process/esm_loader:* - internalBinding('errors').triggerUncaughtException( - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*fixtures*node_modules*some_module*obj' imported from *test*fixtures*esm_loader_not_found_cjs_hint_bare.mjs -Did you mean to import some_module/obj.js? - at new NodeError (node:internal/errors:*:*) - at finalizeResolution (node:internal/modules/esm/resolve:*:*) - at moduleResolve (node:internal/modules/esm/resolve:*:*) - at defaultResolve (node:internal/modules/esm/resolve:*:*) - at ESMLoader.resolve (node:internal/modules/esm/loader:*:*) - at ESMLoader.getModuleJob (node:internal/modules/esm/loader:*:*) - at ModuleWrap. (node:internal/modules/esm/module_job:*:*) - at link (node:internal/modules/esm/module_job:*:*) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js * diff --git a/test/message/esm_loader_not_found_cjs_hint_relative.mjs b/test/message/esm_loader_not_found_cjs_hint_relative.mjs deleted file mode 100644 index 928186318bb09a..00000000000000 --- a/test/message/esm_loader_not_found_cjs_hint_relative.mjs +++ /dev/null @@ -1,3 +0,0 @@ -// Flags: --experimental-loader ./test/common/fixtures -import '../common/index.mjs'; -console.log('This should not be printed'); diff --git a/test/message/esm_loader_not_found_cjs_hint_relative.out b/test/message/esm_loader_not_found_cjs_hint_relative.out deleted file mode 100644 index 0bd9ab7336c202..00000000000000 --- a/test/message/esm_loader_not_found_cjs_hint_relative.out +++ /dev/null @@ -1,22 +0,0 @@ -(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time -(Use `* --trace-warnings ...` to show where the warning was created) -node:internal/process/esm_loader:* - internalBinding('errors').triggerUncaughtException( - ^ - -Error [ERR_MODULE_NOT_FOUND]: Cannot find module '*test*common*fixtures' imported from * -Did you mean to import ./test/common/fixtures.js? - at new NodeError (node:internal/errors:*:*) - at finalizeResolution (node:internal/modules/esm/resolve:*:*) - at moduleResolve (node:internal/modules/esm/resolve:*:*) - at defaultResolve (node:internal/modules/esm/resolve:*:*) - at ESMLoader.resolve (node:internal/modules/esm/loader:*:*) - at ESMLoader.getModuleJob (node:internal/modules/esm/loader:*:*) - at ESMLoader.import (node:internal/modules/esm/loader:*:*) - at initializeLoader (node:internal/process/esm_loader:*:*) - at loadESM (node:internal/process/esm_loader:*:*) - at runMainESM (node:internal/modules/run_main:*:*) { - code: 'ERR_MODULE_NOT_FOUND' -} - -Node.js * diff --git a/test/message/esm_loader_syntax_error.mjs b/test/message/esm_loader_syntax_error.mjs deleted file mode 100644 index 68cde42e585644..00000000000000 --- a/test/message/esm_loader_syntax_error.mjs +++ /dev/null @@ -1,3 +0,0 @@ -// Flags: --experimental-loader ./test/fixtures/es-module-loaders/syntax-error.mjs -import '../common/index.mjs'; -console.log('This should not be printed'); diff --git a/test/message/esm_loader_syntax_error.out b/test/message/esm_loader_syntax_error.out deleted file mode 100644 index fdced9fc96b9f3..00000000000000 --- a/test/message/esm_loader_syntax_error.out +++ /dev/null @@ -1,12 +0,0 @@ -(node:*) ExperimentalWarning: --experimental-loader is an experimental feature. This feature could change at any time -(Use `* --trace-warnings ...` to show where the warning was created) -file://*/test/fixtures/es-module-loaders/syntax-error.mjs:2 -await async () => 0; -^^^^^^^^^^^^^ - -SyntaxError: Malformed arrow function parameter list - at ESMLoader.moduleStrategy (node:internal/modules/esm/translators:*:*) - at ESMLoader.moduleProvider (node:internal/modules/esm/loader:*:*) - at async link (node:internal/modules/esm/module_job:*:*) - -Node.js * diff --git a/test/message/test-esm-loader-obsolete-hooks.mjs b/test/message/test-esm-loader-obsolete-hooks.mjs deleted file mode 100644 index 9a6a9c48057b40..00000000000000 --- a/test/message/test-esm-loader-obsolete-hooks.mjs +++ /dev/null @@ -1,4 +0,0 @@ -// Flags: --no-warnings --throw-deprecation --experimental-loader ./test/fixtures/es-module-loaders/hooks-obsolete.mjs -/* eslint-disable node-core/require-common-first, node-core/required-modules */ - -await import('whatever'); diff --git a/test/message/test-esm-loader-obsolete-hooks.out b/test/message/test-esm-loader-obsolete-hooks.out deleted file mode 100644 index 5453cefe2090dd..00000000000000 --- a/test/message/test-esm-loader-obsolete-hooks.out +++ /dev/null @@ -1,11 +0,0 @@ -node:internal/process/warning:* - throw warning; - ^ - -DeprecationWarning: Obsolete loader hook(s) supplied and will be ignored: dynamicInstantiate, getFormat, getSource, transformSource - at Function.pluckHooks (node:internal/modules/esm/loader:*:*) - at ESMLoader.addCustomLoaders (node:internal/modules/esm/loader:*:*) - at initializeLoader (node:internal/process/esm_loader:*:*) - at async loadESM (node:internal/process/esm_loader:*:*) - at async handleMainPromise (node:internal/modules/run_main:*:*) -Node.js * \ No newline at end of file diff --git a/test/message/util-inspect-error-cause.js b/test/message/util-inspect-error-cause.js new file mode 100644 index 00000000000000..23c2b20d8633b2 --- /dev/null +++ b/test/message/util-inspect-error-cause.js @@ -0,0 +1,48 @@ +'use strict'; + +require('../common'); + +const { inspect } = require('util'); + +class FoobarError extends Error { + status = 'Feeling good'; +} + +const cause1 = new TypeError('Inner error'); +const cause2 = new FoobarError('Individual message', { cause: cause1 }); +cause2.extraProperties = 'Yes!'; +const cause3 = new Error('Stack causes', { cause: cause2 }); + +const cause4 = new Error('Number error cause', { cause: 42 }); +const cause5 = new Error('Object cause', { + cause: { + message: 'Unique', + name: 'Error', + stack: 'Error: Unique\n' + + ' at Module._compile (node:internal/modules/cjs/loader:827:30)' + } +}); +const cause6 = new Error('undefined cause', { + cause: undefined +}); + +console.log(cause4); +console.log(cause5); +console.log(cause6); + +process.nextTick(() => { + const error = new RangeError('New Stack Frames', { cause: cause2 }); + const error2 = new RangeError('New Stack Frames', { cause: cause3 }); + + inspect.defaultOptions.colors = true; + + console.log(inspect(error)); + console.log(inspect(cause3)); + console.log(inspect(error2)); + + inspect.defaultOptions.colors = false; + + console.log(inspect(error)); + console.log(inspect(cause3)); + console.log(inspect(error2)); +}); diff --git a/test/message/util-inspect-error-cause.out b/test/message/util-inspect-error-cause.out new file mode 100644 index 00000000000000..c7a04f4a09309c --- /dev/null +++ b/test/message/util-inspect-error-cause.out @@ -0,0 +1,171 @@ +Error: Number error cause + at * + at * + at * + at * + at * + at * + at * { + [cause]: 42 +} +Error: Object cause + at * + at * + at * + at * + at * + at * + at * { + [cause]: { + message: 'Unique', + name: 'Error', + stack: 'Error: Unique\n' + + ' at Module._compile (node:internal/modules/cjs/loader:827:30)' + } +} +Error: undefined cause + at * + at * + at * + at * + at * + at * + at * { + [cause]: undefined +} +RangeError: New Stack Frames + at * +*[90m at *[39m { + [cause]: FoobarError: Individual message + at * + *[90m at *[39m + *[90m ... 4 lines matching cause stack trace ...*[39m + *[90m at *[39m { + status: *[32m'Feeling good'*[39m, + extraProperties: *[32m'Yes!'*[39m, + [cause]: TypeError: Inner error + at * + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + } +} +Error: Stack causes + at * +*[90m at *[39m +*[90m ... 4 lines matching cause stack trace ...*[39m +*[90m at *[39m { + [cause]: FoobarError: Individual message + at * + *[90m at *[39m + *[90m ... 4 lines matching cause stack trace ...*[39m + *[90m at *[39m { + status: *[32m'Feeling good'*[39m, + extraProperties: *[32m'Yes!'*[39m, + [cause]: TypeError: Inner error + at * + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + } +} +RangeError: New Stack Frames + at * +*[90m at *[39m { + [cause]: Error: Stack causes + at * + *[90m at *[39m + *[90m ... 4 lines matching cause stack trace ...*[39m + *[90m at *[39m { + [cause]: FoobarError: Individual message + at * + *[90m at *[39m + *[90m ... 4 lines matching cause stack trace ...*[39m + *[90m at *[39m { + status: *[32m'Feeling good'*[39m, + extraProperties: *[32m'Yes!'*[39m, + [cause]: TypeError: Inner error + at * + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + *[90m at *[39m + } + } +} +RangeError: New Stack Frames + at * + at * { + [cause]: FoobarError: Individual message + at * + at * + ... 4 lines matching cause stack trace ... + at * { + status: 'Feeling good', + extraProperties: 'Yes!', + [cause]: TypeError: Inner error + at * + at * + at * + at * + at * + at * + at * + } +} +Error: Stack causes + at * + at * + ... 4 lines matching cause stack trace ... + at * { + [cause]: FoobarError: Individual message + at * + at * + ... 4 lines matching cause stack trace ... + at * + status: 'Feeling good', + extraProperties: 'Yes!', + [cause]: TypeError: Inner error + at * + at * + at * + at * + at * + at * + at * + } +} +RangeError: New Stack Frames + at * + at * { + [cause]: Error: Stack causes + at * + at * + ... 4 lines matching cause stack trace ... + at * { + [cause]: FoobarError: Individual message + at * + at * + ... 4 lines matching cause stack trace ... + at * { + status: 'Feeling good', + extraProperties: 'Yes!', + [cause]: TypeError: Inner error + at * + at * + at * + at * + at * + at * + at * + } + } +} diff --git a/test/message/vm_dont_display_runtime_error.js b/test/message/vm_dont_display_runtime_error.js index 72568a21c7c339..49203684ed6609 100644 --- a/test/message/vm_dont_display_runtime_error.js +++ b/test/message/vm_dont_display_runtime_error.js @@ -30,7 +30,9 @@ try { filename: 'test.vm', displayErrors: false }); -} catch {} +} catch { + // Continue regardless of error. +} console.error('middle'); diff --git a/test/message/vm_dont_display_syntax_error.js b/test/message/vm_dont_display_syntax_error.js index 7e588c5095741a..38c49ad1a65315 100644 --- a/test/message/vm_dont_display_syntax_error.js +++ b/test/message/vm_dont_display_syntax_error.js @@ -30,7 +30,9 @@ try { filename: 'test.vm', displayErrors: false }); -} catch {} +} catch { + // Continue regardless of error. +} console.error('middle'); diff --git a/test/node-api/test_fatal/test_threads.js b/test/node-api/test_fatal/test_threads.js index fd56f60cbe832f..8c306694f5e259 100644 --- a/test/node-api/test_fatal/test_threads.js +++ b/test/node-api/test_fatal/test_threads.js @@ -8,8 +8,9 @@ const test_fatal = require(`./build/${common.buildType}/test_fatal`); // that crashes the process. if (process.argv[2] === 'child') { test_fatal.TestThread(); - // Busy loop to allow the work thread to abort. - while (true) {} + while (true) { + // Busy loop to allow the work thread to abort. + } } const p = child_process.spawnSync( diff --git a/test/node-api/test_fatal/test_threads_report.js b/test/node-api/test_fatal/test_threads_report.js index 83c6642bdc41eb..c2e635007db750 100644 --- a/test/node-api/test_fatal/test_threads_report.js +++ b/test/node-api/test_fatal/test_threads_report.js @@ -16,7 +16,7 @@ if (common.buildType === 'Debug') if (process.argv[2] === 'child') { test_fatal.TestThread(); // Busy loop to allow the work thread to abort. - while (true) {} + while (true); } tmpdir.refresh(); diff --git a/test/node-api/test_general/test.js b/test/node-api/test_general/test.js index dd409f010a3ada..77550c02927fb4 100644 --- a/test/node-api/test_general/test.js +++ b/test/node-api/test_general/test.js @@ -1,15 +1,46 @@ 'use strict'; const common = require('../../common'); +const tmpdir = require('../../common/tmpdir'); +const child_process = require('child_process'); +const fs = require('fs'); +const path = require('path'); +const url = require('url'); const filename = require.resolve(`./build/${common.buildType}/test_general`); const test_general = require(filename); const assert = require('assert'); -// TODO(gabrielschulhof): This test may need updating if/when the filename -// becomes a full-fledged URL. -assert.strictEqual(test_general.filename, `file://${filename}`); +tmpdir.refresh(); -const [ major, minor, patch, release ] = test_general.testGetNodeVersion(); -assert.strictEqual(process.version.split('-')[0], - `v${major}.${minor}.${patch}`); -assert.strictEqual(release, process.release.name); +{ + // TODO(gabrielschulhof): This test may need updating if/when the filename + // becomes a full-fledged URL. + assert.strictEqual(test_general.filename, url.pathToFileURL(filename).href); +} + +{ + const urlTestDir = path.join(tmpdir.path, 'foo%#bar'); + const urlTestFile = path.join(urlTestDir, path.basename(filename)); + fs.mkdirSync(urlTestDir, { recursive: true }); + fs.copyFileSync(filename, urlTestFile); + // Use a child process as indirection so that the native module is not loaded + // into this process and can be removed here. + const reportedFilename = child_process.spawnSync( + process.execPath, + ['-p', `require(${JSON.stringify(urlTestFile)}).filename`], + { encoding: 'utf8' }).stdout.trim(); + assert.doesNotMatch(reportedFilename, /foo%#bar/); + assert.strictEqual(reportedFilename, url.pathToFileURL(urlTestFile).href); + fs.rmSync(urlTestDir, { + force: true, + recursive: true, + maxRetries: 256 + }); +} + +{ + const [ major, minor, patch, release ] = test_general.testGetNodeVersion(); + assert.strictEqual(process.version.split('-')[0], + `v${major}.${minor}.${patch}`); + assert.strictEqual(release, process.release.name); +} diff --git a/test/parallel/parallel.status b/test/parallel/parallel.status index d1a52c520f4d69..403752346856cd 100644 --- a/test/parallel/parallel.status +++ b/test/parallel/parallel.status @@ -5,12 +5,16 @@ prefix parallel # sample-test : PASS,FLAKY [true] # This section applies to all platforms +# https://github.com/nodejs/node/issues/41123 +test-repl-sigint-nested-eval: PASS, FLAKY [$system==win32] # https://github.com/nodejs/node/issues/24497 test-timers-immediate-queue: PASS,FLAKY -# https://github.com/nodejs/node/issues/23277 -test-worker-memory: PASS,FLAKY +# https://github.com/nodejs/node/issues/41206 +test-crypto-keygen: PASS,FLAKY +# https://github.com/nodejs/node/issues/41201 +test-fs-rmdir-recursive: PASS, FLAKY [$system==linux] # https://github.com/nodejs/node/issues/39368 @@ -28,8 +32,6 @@ test-crypto-keygen: SKIP [$system==freebsd] # https://github.com/nodejs/node/issues/31727 test-fs-stat-bigint: PASS,FLAKY -# https://github.com/nodejs/node/issues/28803 -test-stdout-close-catch: PASS,FLAKY # https://github.com/nodejs/node/issues/31280 test-worker-message-port-message-before-close: PASS,FLAKY @@ -57,3 +59,11 @@ test-tls-env-extra-ca: SKIP test-dgram-error-message-address: SKIP # https://github.com/nodejs/node/issues/36929 test-crypto-secure-heap: SKIP +# https://github.com/nodejs/node/issues/39683 +test-dgram-connect: PASS, FLAKY +test-http-client-parse-error: PASS, FLAKY +test-http-multi-line-headers: PASS, FLAKY +test-http-server-unconsume: PASS, FLAKY +test-http-upgrade-advertise: PASS, FLAKY +test-tls-client-mindhsize: PASS, FLAKY +test-tls-write-error: PASS, FLAKY diff --git a/test/parallel/test-abortcontroller.js b/test/parallel/test-abortcontroller.js index 630a1c5708d765..aa7aa916e65d92 100644 --- a/test/parallel/test-abortcontroller.js +++ b/test/parallel/test-abortcontroller.js @@ -1,10 +1,21 @@ -// Flags: --no-warnings +// Flags: --no-warnings --expose-gc --expose-internals 'use strict'; const common = require('../common'); const { inspect } = require('util'); -const { ok, strictEqual, throws } = require('assert'); +const { + ok, + notStrictEqual, + strictEqual, + throws, +} = require('assert'); + +const { + kWeakHandler, +} = require('internal/event_target'); + +const { setTimeout: sleep } = require('timers/promises'); { // Tests that abort is fired with the correct event type on AbortControllers @@ -140,3 +151,103 @@ const { ok, strictEqual, throws } = require('assert'); strictEqual(inspect(ac, { depth: null }), 'AbortController { signal: AbortSignal { aborted: false } }'); } + +{ + // Test AbortSignal.reason + const ac = new AbortController(); + ac.abort('reason'); + strictEqual(ac.signal.reason, 'reason'); +} + +{ + // Test AbortSignal.reason + const signal = AbortSignal.abort('reason'); + strictEqual(signal.reason, 'reason'); +} + +{ + // Test AbortSignal timeout + const signal = AbortSignal.timeout(10); + ok(!signal.aborted); + setTimeout(common.mustCall(() => { + ok(signal.aborted); + strictEqual(signal.reason.name, 'TimeoutError'); + strictEqual(signal.reason.code, 23); + }), 20); +} + +{ + (async () => { + // Test AbortSignal timeout doesn't prevent the signal + // from being garbage collected. + let ref; + { + ref = new globalThis.WeakRef(AbortSignal.timeout(1_200_000)); + } + + await sleep(10); + globalThis.gc(); + strictEqual(ref.deref(), undefined); + })().then(common.mustCall()); + + (async () => { + // Test that an AbortSignal with a timeout is not gc'd while + // there is an active listener on it. + let ref; + function handler() {} + { + ref = new globalThis.WeakRef(AbortSignal.timeout(1_200_000)); + ref.deref().addEventListener('abort', handler); + } + + await sleep(10); + globalThis.gc(); + notStrictEqual(ref.deref(), undefined); + ok(ref.deref() instanceof AbortSignal); + + ref.deref().removeEventListener('abort', handler); + + await sleep(10); + globalThis.gc(); + strictEqual(ref.deref(), undefined); + })().then(common.mustCall()); + + (async () => { + // If the event listener is weak, however, it should not prevent gc + let ref; + function handler() {} + { + ref = new globalThis.WeakRef(AbortSignal.timeout(1_200_000)); + ref.deref().addEventListener('abort', handler, { [kWeakHandler]: {} }); + } + + await sleep(10); + globalThis.gc(); + strictEqual(ref.deref(), undefined); + })().then(common.mustCall()); + + // Setting a long timeout (20 minutes here) should not + // keep the Node.js process open (the timer is unref'd) + AbortSignal.timeout(1_200_000); +} + +{ + // Test AbortSignal.reason default + const signal = AbortSignal.abort(); + ok(signal.reason instanceof DOMException); + strictEqual(signal.reason.code, 20); + + const ac = new AbortController(); + ac.abort(); + ok(ac.signal.reason instanceof DOMException); + strictEqual(ac.signal.reason.code, 20); +} + +{ + // Test abortSignal.throwIfAborted() + throws(() => AbortSignal.abort().throwIfAborted(), { code: 20 }); + + // Does not throw because it's not aborted. + const ac = new AbortController(); + ac.signal.throwIfAborted(); +} diff --git a/test/parallel/test-abortsignal-cloneable.js b/test/parallel/test-abortsignal-cloneable.js new file mode 100644 index 00000000000000..e88af333fe9dd4 --- /dev/null +++ b/test/parallel/test-abortsignal-cloneable.js @@ -0,0 +1,78 @@ +'use strict'; + +const common = require('../common'); +const { ok, strictEqual } = require('assert'); +const { setImmediate: pause } = require('timers/promises'); + +function deferred() { + let res; + const promise = new Promise((resolve) => res = resolve); + return { res, promise }; +} + +(async () => { + const ac = new AbortController(); + const mc = new MessageChannel(); + + const deferred1 = deferred(); + const deferred2 = deferred(); + const resolvers = [deferred1, deferred2]; + + mc.port1.onmessage = common.mustCall(({ data }) => { + data.addEventListener('abort', common.mustCall(() => { + strictEqual(data.reason, 'boom'); + })); + resolvers.shift().res(); + }, 2); + + mc.port2.postMessage(ac.signal, [ac.signal]); + + // Can be cloned/transferd multiple times and they all still work + mc.port2.postMessage(ac.signal, [ac.signal]); + + mc.port2.close(); + + // Although we're using transfer semantics, the local AbortSignal + // is still usable locally. + ac.signal.addEventListener('abort', common.mustCall(() => { + strictEqual(ac.signal.reason, 'boom'); + })); + + await Promise.all([ deferred1.promise, deferred2.promise ]); + + ac.abort('boom'); + + // Because the postMessage used by the underlying AbortSignal + // takes at least one turn of the event loop to be processed, + // and because it is unref'd, it won't, by itself, keep the + // event loop open long enough for the test to complete, so + // we schedule two back to back turns of the event to ensure + // the loop runs long enough for the test to complete. + await pause(); + await pause(); + +})().then(common.mustCall()); + +{ + const signal = AbortSignal.abort('boom'); + ok(signal.aborted); + strictEqual(signal.reason, 'boom'); + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(({ data }) => { + ok(data instanceof AbortSignal); + ok(data.aborted); + strictEqual(data.reason, 'boom'); + mc.port1.close(); + }); + mc.port2.postMessage(signal, [signal]); +} + +{ + // The cloned AbortSignal does not keep the event loop open + // waiting for the abort to be triggered. + const ac = new AbortController(); + const mc = new MessageChannel(); + mc.port1.onmessage = common.mustCall(); + mc.port2.postMessage(ac.signal, [ac.signal]); + mc.port2.close(); +} diff --git a/test/parallel/test-assert-deep.js b/test/parallel/test-assert-deep.js index c74ca48d26cb74..97c3386fdfd15d 100644 --- a/test/parallel/test-assert-deep.js +++ b/test/parallel/test-assert-deep.js @@ -567,8 +567,10 @@ assertNotDeepOrStrict( // Handle sparse arrays. { + /* eslint-disable no-sparse-arrays */ assertDeepAndStrictEqual([1, , , 3], [1, , , 3]); assertNotDeepOrStrict([1, , , 3], [1, , , 3, , , ]); + /* eslint-enable no-sparse-arrays */ const a = new Array(3); const b = new Array(3); a[2] = true; @@ -856,11 +858,13 @@ assert.throws( } assert.throws( + // eslint-disable-next-line no-restricted-syntax () => assert.deepStrictEqual(4, '4'), { message: `${defaultMsgStart}\n4 !== '4'\n` } ); assert.throws( + // eslint-disable-next-line no-restricted-syntax () => assert.deepStrictEqual(true, 1), { message: `${defaultMsgStart}\ntrue !== 1\n` } ); @@ -1121,7 +1125,7 @@ assert.throws( { code: 'ERR_ASSERTION', name: 'AssertionError', - message: /a: \[Getter: 5]\n- a: \[Getter: 6]\n / + message: /a: \[Getter: 5]\n- {3}a: \[Getter: 6]\n {2}/ } ); diff --git a/test/parallel/test-assert-if-error.js b/test/parallel/test-assert-if-error.js index 76539bb69b44f0..9bc58cd73825a6 100644 --- a/test/parallel/test-assert-if-error.js +++ b/test/parallel/test-assert-if-error.js @@ -39,6 +39,18 @@ const stack = err.stack; })(); })(); +assert.throws( + () => { + const error = new Error(); + error.stack = 'Error: containing weird stack\nYes!\nI am part of a stack.'; + assert.ifError(error); + }, + (error) => { + assert(!error.stack.includes('Yes!')); + return true; + } +); + assert.throws( () => assert.ifError(new TypeError()), { diff --git a/test/parallel/test-assert.js b/test/parallel/test-assert.js index 72d259592548b3..24a72091c08399 100644 --- a/test/parallel/test-assert.js +++ b/test/parallel/test-assert.js @@ -1243,10 +1243,11 @@ assert.throws( { let threw = false; try { + // eslint-disable-next-line no-restricted-syntax assert.deepStrictEqual(Array(100).fill(1), 'foobar'); } catch (err) { threw = true; - assert.match(inspect(err), /actual: \[Array],\n expected: 'foobar',/); + assert.match(inspect(err), /actual: \[Array],\n {2}expected: 'foobar',/); } assert(threw); } diff --git a/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js b/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js index 78e38c1e9312d7..e38cefd20e4fec 100644 --- a/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js +++ b/test/parallel/test-async-hooks-run-in-async-scope-caught-exception.js @@ -5,5 +5,7 @@ const { AsyncResource } = require('async_hooks'); try { new AsyncResource('foo').runInAsyncScope(() => { throw new Error('bar'); }); -} catch {} +} catch { + // Continue regardless of error. +} // Should abort (fail the case) if async id is not matching. diff --git a/test/parallel/test-blob-createobjecturl.js b/test/parallel/test-blob-createobjecturl.js index a8fd377dd3ef70..70c64b138db1ac 100644 --- a/test/parallel/test-blob-createobjecturl.js +++ b/test/parallel/test-blob-createobjecturl.js @@ -29,6 +29,10 @@ const assert = require('assert'); Buffer.from(await otherBlob.arrayBuffer()).toString(), 'hello'); URL.revokeObjectURL(id); + + // should do nothing + URL.revokeObjectURL(id); + assert.strictEqual(resolveObjectURL(id), undefined); // Leaving a Blob registered should not cause an assert diff --git a/test/parallel/test-blob.js b/test/parallel/test-blob.js index 2ac91ac99c9bcc..53b9ddb0cb3e81 100644 --- a/test/parallel/test-blob.js +++ b/test/parallel/test-blob.js @@ -87,6 +87,15 @@ assert.throws(() => new Blob({}), { })); } +{ + const b = new Blob(['hello', new Uint8Array([0xed, 0xa0, 0x88])]); + assert.strictEqual(b.size, 8); + b.text().then(common.mustCall((text) => { + assert.strictEqual(text, 'hello\ufffd\ufffd\ufffd'); + assert.strictEqual(text.length, 8); + })); +} + { const b = new Blob( [ @@ -220,3 +229,18 @@ assert.throws(() => new Blob({}), { }); }); } + +(async () => { + const blob = new Blob([ + new Uint8Array([0x50, 0x41, 0x53, 0x53]), + new Int8Array([0x50, 0x41, 0x53, 0x53]), + new Uint16Array([0x4150, 0x5353]), + new Int16Array([0x4150, 0x5353]), + new Uint32Array([0x53534150]), + new Int32Array([0x53534150]), + new Float32Array([0xD341500000]), + ]); + + assert.strictEqual(blob.size, 28); + assert.strictEqual(blob.type, ''); +})().then(common.mustCall()); diff --git a/test/parallel/test-bootstrap-modules.js b/test/parallel/test-bootstrap-modules.js index 9ed1b90e318e7e..d29e2de66bdf4d 100644 --- a/test/parallel/test-bootstrap-modules.js +++ b/test/parallel/test-bootstrap-modules.js @@ -1,3 +1,4 @@ +// Flags: --expose-internals 'use strict'; // This list must be computed before we require any modules to @@ -8,22 +9,24 @@ const common = require('../common'); const assert = require('assert'); const expectedModules = new Set([ - 'Internal Binding errors', 'Internal Binding async_wrap', + 'Internal Binding block_list', 'Internal Binding buffer', 'Internal Binding config', 'Internal Binding constants', 'Internal Binding contextify', 'Internal Binding credentials', - 'Internal Binding fs', + 'Internal Binding errors', 'Internal Binding fs_dir', 'Internal Binding fs_event_wrap', + 'Internal Binding fs', 'Internal Binding heap_utils', 'Internal Binding messaging', 'Internal Binding module_wrap', 'Internal Binding native_module', 'Internal Binding options', 'Internal Binding performance', + 'Internal Binding pipe_wrap', 'Internal Binding process_methods', 'Internal Binding report', 'Internal Binding serdes', @@ -31,6 +34,7 @@ const expectedModules = new Set([ 'Internal Binding string_decoder', 'Internal Binding symbols', 'Internal Binding task_queue', + 'Internal Binding tcp_wrap', 'Internal Binding timers', 'Internal Binding trace_events', 'Internal Binding types', @@ -45,50 +49,58 @@ const expectedModules = new Set([ 'NativeModule internal/abort_controller', 'NativeModule internal/assert', 'NativeModule internal/async_hooks', + 'NativeModule internal/blocklist', 'NativeModule internal/bootstrap/pre_execution', 'NativeModule internal/buffer', 'NativeModule internal/console/constructor', 'NativeModule internal/console/global', 'NativeModule internal/constants', + 'NativeModule internal/dtrace', 'NativeModule internal/encoding', 'NativeModule internal/errors', 'NativeModule internal/event_target', 'NativeModule internal/fixed_queue', 'NativeModule internal/fs/dir', - 'NativeModule internal/fs/utils', 'NativeModule internal/fs/promises', 'NativeModule internal/fs/read_file_context', 'NativeModule internal/fs/rimraf', + 'NativeModule internal/fs/utils', 'NativeModule internal/fs/watchers', 'NativeModule internal/heap_utils', 'NativeModule internal/histogram', 'NativeModule internal/idna', 'NativeModule internal/linkedlist', - 'NativeModule internal/modules/run_main', - 'NativeModule internal/modules/package_json_reader', 'NativeModule internal/modules/cjs/helpers', 'NativeModule internal/modules/cjs/loader', + 'NativeModule internal/modules/esm/assert', 'NativeModule internal/modules/esm/create_dynamic_module', + 'NativeModule internal/modules/esm/fetch_module', + 'NativeModule internal/modules/esm/formats', 'NativeModule internal/modules/esm/get_format', 'NativeModule internal/modules/esm/get_source', - 'NativeModule internal/modules/esm/loader', + 'NativeModule internal/modules/esm/handle_process_exit', + 'NativeModule internal/modules/esm/initialize_import_meta', 'NativeModule internal/modules/esm/load', + 'NativeModule internal/modules/esm/loader', 'NativeModule internal/modules/esm/module_job', 'NativeModule internal/modules/esm/module_map', 'NativeModule internal/modules/esm/resolve', 'NativeModule internal/modules/esm/translators', - 'NativeModule internal/process/esm_loader', + 'NativeModule internal/modules/package_json_reader', + 'NativeModule internal/modules/run_main', + 'NativeModule internal/net', 'NativeModule internal/options', 'NativeModule internal/perf/event_loop_delay', 'NativeModule internal/perf/event_loop_utilization', 'NativeModule internal/perf/nodetiming', 'NativeModule internal/perf/observe', - 'NativeModule internal/perf/performance', 'NativeModule internal/perf/performance_entry', + 'NativeModule internal/perf/performance', 'NativeModule internal/perf/timerify', 'NativeModule internal/perf/usertiming', 'NativeModule internal/perf/utils', 'NativeModule internal/priority_queue', + 'NativeModule internal/process/esm_loader', 'NativeModule internal/process/execution', 'NativeModule internal/process/per_thread', 'NativeModule internal/process/promises', @@ -96,7 +108,9 @@ const expectedModules = new Set([ 'NativeModule internal/process/signal', 'NativeModule internal/process/task_queues', 'NativeModule internal/process/warning', + 'NativeModule internal/promise_hooks', 'NativeModule internal/querystring', + 'NativeModule internal/socketaddress', 'NativeModule internal/source_map/source_map_cache', 'NativeModule internal/stream_base_commons', 'NativeModule internal/streams/add-abort-signal', @@ -107,6 +121,7 @@ const expectedModules = new Set([ 'NativeModule internal/streams/end-of-stream', 'NativeModule internal/streams/from', 'NativeModule internal/streams/legacy', + 'NativeModule internal/streams/operators', 'NativeModule internal/streams/passthrough', 'NativeModule internal/streams/pipeline', 'NativeModule internal/streams/readable', @@ -122,18 +137,19 @@ const expectedModules = new Set([ 'NativeModule internal/util/inspect', 'NativeModule internal/util/iterable_weak_map', 'NativeModule internal/util/types', - 'NativeModule internal/webstreams/util', - 'NativeModule internal/webstreams/writablestream', - 'NativeModule internal/webstreams/readablestream', - 'NativeModule internal/webstreams/queuingstrategies', - 'NativeModule internal/webstreams/adapters', 'NativeModule internal/validators', 'NativeModule internal/vm/module', + 'NativeModule internal/webstreams/adapters', + 'NativeModule internal/webstreams/queuingstrategies', + 'NativeModule internal/webstreams/readablestream', + 'NativeModule internal/webstreams/util', + 'NativeModule internal/webstreams/writablestream', 'NativeModule internal/worker/io', 'NativeModule internal/worker/js_transferable', 'Internal Binding blob', 'NativeModule internal/blob', 'NativeModule async_hooks', + 'NativeModule net', 'NativeModule path', 'NativeModule perf_hooks', 'NativeModule querystring', @@ -190,6 +206,11 @@ if (process.env.NODE_V8_COVERAGE) { expectedModules.add('Internal Binding profiler'); } +const { internalBinding } = require('internal/test/binding'); +if (internalBinding('config').hasDtrace) { + expectedModules.add('Internal Binding dtrace'); +} + const difference = (setA, setB) => { return new Set([...setA].filter((x) => !setB.has(x))); }; diff --git a/test/parallel/test-broadcastchannel-custom-inspect.js b/test/parallel/test-broadcastchannel-custom-inspect.js new file mode 100644 index 00000000000000..409501cb16571e --- /dev/null +++ b/test/parallel/test-broadcastchannel-custom-inspect.js @@ -0,0 +1,40 @@ +'use strict'; + +require('../common'); +const { BroadcastChannel } = require('worker_threads'); +const { inspect } = require('util'); +const assert = require('assert'); + +// This test checks BroadcastChannel custom inspect outputs + +{ + const bc = new BroadcastChannel('name'); + assert.throws(() => bc[inspect.custom].call(), { + code: 'ERR_INVALID_THIS', + }); + bc.close(); +} + +{ + const bc = new BroadcastChannel('name'); + assert.strictEqual(inspect(bc, { depth: -1 }), 'BroadcastChannel'); + bc.close(); +} + +{ + const bc = new BroadcastChannel('name'); + assert.strictEqual( + inspect(bc), + "BroadcastChannel { name: 'name', active: true }" + ); + bc.close(); +} + +{ + const bc = new BroadcastChannel('name'); + assert.strictEqual( + inspect(bc, { depth: null }), + "BroadcastChannel { name: 'name', active: true }" + ); + bc.close(); +} diff --git a/test/parallel/test-btoa-atob-global.js b/test/parallel/test-btoa-atob-global.js deleted file mode 100644 index 06a6d3ed28f3f1..00000000000000 --- a/test/parallel/test-btoa-atob-global.js +++ /dev/null @@ -1,9 +0,0 @@ -'use strict'; - -require('../common'); - -const { strictEqual } = require('assert'); -const buffer = require('buffer'); - -strictEqual(globalThis.atob, buffer.atob); -strictEqual(globalThis.btoa, buffer.btoa); diff --git a/test/parallel/test-btoa-atob.js b/test/parallel/test-btoa-atob.js new file mode 100644 index 00000000000000..162406dd9f6b50 --- /dev/null +++ b/test/parallel/test-btoa-atob.js @@ -0,0 +1,14 @@ +'use strict'; + +require('../common'); + +const { strictEqual, throws } = require('assert'); +const buffer = require('buffer'); + +// Exported on the global object +strictEqual(globalThis.atob, buffer.atob); +strictEqual(globalThis.btoa, buffer.btoa); + +// Throws type error on no argument passed +throws(() => buffer.atob(), /TypeError/); +throws(() => buffer.btoa(), /TypeError/); diff --git a/test/parallel/test-buffer-fill.js b/test/parallel/test-buffer-fill.js index 00e65c82e91849..e91492a59e81b3 100644 --- a/test/parallel/test-buffer-fill.js +++ b/test/parallel/test-buffer-fill.js @@ -315,7 +315,7 @@ Buffer.alloc(8, ''); buf.fill('h'); for (let i = 0; i < buf.length; i++) - assert.strictEqual('h'.charCodeAt(0), buf[i]); + assert.strictEqual(buf[i], 'h'.charCodeAt(0)); buf.fill(0); for (let i = 0; i < buf.length; i++) diff --git a/test/parallel/test-buffer-readdouble.js b/test/parallel/test-buffer-readdouble.js index 4a86ebe4ce382f..504df8bd3923fb 100644 --- a/test/parallel/test-buffer-readdouble.js +++ b/test/parallel/test-buffer-readdouble.js @@ -35,6 +35,7 @@ assert.strictEqual(buffer.readDoubleLE(0), 1.0000000000000004); buffer[0] = 1; buffer[6] = 0; buffer[7] = 0; +// eslint-disable-next-line no-loss-of-precision assert.strictEqual(buffer.readDoubleBE(0), 7.291122019556398e-304); assert.strictEqual(buffer.readDoubleLE(0), 5e-324); diff --git a/test/parallel/test-child-process-constructor.js b/test/parallel/test-child-process-constructor.js index 0bd8dd85b0bd84..784304d3ecb8b4 100644 --- a/test/parallel/test-child-process-constructor.js +++ b/test/parallel/test-child-process-constructor.js @@ -78,7 +78,7 @@ child.spawn({ stdio: 'pipe' }); -assert.strictEqual(child.hasOwnProperty('pid'), true); +assert.strictEqual(Object.hasOwn(child, 'pid'), true); assert(Number.isInteger(child.pid)); // Try killing with invalid signal diff --git a/test/parallel/test-child-process-flush-stdio.js b/test/parallel/test-child-process-flush-stdio.js index a7c1ea21be22a4..7b9a2a049cb20b 100644 --- a/test/parallel/test-child-process-flush-stdio.js +++ b/test/parallel/test-child-process-flush-stdio.js @@ -27,7 +27,7 @@ const spawnWithReadable = () => { })); p.stdout.on('readable', () => { let buf; - while (buf = p.stdout.read()) + while ((buf = p.stdout.read()) !== null) buffer.push(buf); }); }; diff --git a/test/parallel/test-child-process-fork-url.mjs b/test/parallel/test-child-process-fork-url.mjs new file mode 100644 index 00000000000000..9261b875638e91 --- /dev/null +++ b/test/parallel/test-child-process-fork-url.mjs @@ -0,0 +1,11 @@ +import { mustCall } from '../common/index.mjs'; +import { fork } from 'child_process'; + +if (process.argv[2] === 'child') { + process.disconnect(); +} else { + const child = fork(new URL(import.meta.url), ['child']); + + child.on('disconnect', mustCall()); + child.once('exit', mustCall()); +} diff --git a/test/parallel/test-child-process-pipe-dataflow.js b/test/parallel/test-child-process-pipe-dataflow.js index 2e2edc65e9e0d5..e989ff135c8047 100644 --- a/test/parallel/test-child-process-pipe-dataflow.js +++ b/test/parallel/test-child-process-pipe-dataflow.js @@ -3,7 +3,6 @@ const common = require('../common'); const assert = require('assert'); const path = require('path'); const fs = require('fs'); -const os = require('os'); const spawn = require('child_process').spawn; const tmpdir = require('../common/tmpdir'); @@ -22,12 +21,13 @@ const MB = KB * KB; const file = path.resolve(tmpdir.path, 'data.txt'); const buf = Buffer.alloc(MB).fill('x'); - // Most OS commands that deal with data, attach special - // meanings to new line - for example, line buffering. - // So cut the buffer into lines at some points, forcing - // data flow to be split in the stream. + // Most OS commands that deal with data, attach special meanings to new line - + // for example, line buffering. So cut the buffer into lines at some points, + // forcing data flow to be split in the stream. Do not use os.EOL for \n as + // that is 2 characters on Windows and is sometimes converted to 1 character + // which causes the test to fail. for (let i = 1; i < KB; i++) - buf.write(os.EOL, i * KB); + buf.write('\n', i * KB); fs.writeFileSync(file, buf.toString()); cat = spawn('cat', [file]); diff --git a/test/parallel/test-child-process-spawnsync-timeout.js b/test/parallel/test-child-process-spawnsync-timeout.js index 2923d8c21cb017..aeb2be86608cf4 100644 --- a/test/parallel/test-child-process-spawnsync-timeout.js +++ b/test/parallel/test-child-process-spawnsync-timeout.js @@ -37,7 +37,7 @@ switch (process.argv[2]) { process.exit(1); }, SLEEP); break; - default: + default: { const start = Date.now(); const ret = spawnSync(process.execPath, [__filename, 'child'], { timeout: TIMER }); @@ -47,4 +47,5 @@ switch (process.argv[2]) { assert(end < SLEEP); assert(ret.status > 128 || ret.signal); break; + } } diff --git a/test/parallel/test-child-process-validate-stdio.js b/test/parallel/test-child-process-validate-stdio.js index 6775455fd6538c..d5958c694ff6ff 100644 --- a/test/parallel/test-child-process-validate-stdio.js +++ b/test/parallel/test-child-process-validate-stdio.js @@ -18,9 +18,9 @@ assert.throws(() => getValidStdio(600), expectedError); const stdio1 = []; const result = getValidStdio(stdio1, false); assert.strictEqual(stdio1.length, 3); - assert.strictEqual(result.hasOwnProperty('stdio'), true); - assert.strictEqual(result.hasOwnProperty('ipc'), true); - assert.strictEqual(result.hasOwnProperty('ipcFd'), true); + assert.strictEqual(Object.hasOwn(result, 'stdio'), true); + assert.strictEqual(Object.hasOwn(result, 'ipc'), true); + assert.strictEqual(Object.hasOwn(result, 'ipcFd'), true); } // Should throw if stdio has ipc and sync is true diff --git a/test/parallel/test-cli-bad-options.js b/test/parallel/test-cli-bad-options.js index 3fc8980c142509..1bdaf5ee939b9f 100644 --- a/test/parallel/test-cli-bad-options.js +++ b/test/parallel/test-cli-bad-options.js @@ -4,7 +4,7 @@ require('../common'); // Tests that node exits consistently on bad option syntax. const assert = require('assert'); -const spawn = require('child_process').spawnSync; +const { spawnSync } = require('child_process'); if (process.features.inspector) { requiresArgument('--inspect-port'); @@ -15,7 +15,7 @@ if (process.features.inspector) { requiresArgument('--eval'); function requiresArgument(option) { - const r = spawn(process.execPath, [option], { encoding: 'utf8' }); + const r = spawnSync(process.execPath, [option], { encoding: 'utf8' }); assert.strictEqual(r.status, 9); diff --git a/test/parallel/test-cluster-basic.js b/test/parallel/test-cluster-basic.js index 79d8640cf4f65c..e53b208ead4963 100644 --- a/test/parallel/test-cluster-basic.js +++ b/test/parallel/test-cluster-basic.js @@ -126,19 +126,19 @@ if (cluster.isWorker) { assert.strictEqual(arguments.length, 2); break; - case 'listening': + case 'listening': { assert.strictEqual(arguments.length, 1); assert.strictEqual(Object.keys(arguments[0]).length, 4); assert.strictEqual(arguments[0].address, '127.0.0.1'); assert.strictEqual(arguments[0].addressType, 4); - assert(arguments[0].hasOwnProperty('fd')); + assert(Object.hasOwn(arguments[0], 'fd')); assert.strictEqual(arguments[0].fd, undefined); const port = arguments[0].port; assert(Number.isInteger(port)); assert(port >= 1); assert(port <= 65535); break; - + } default: assert.strictEqual(arguments.length, 0); break; diff --git a/test/parallel/test-cluster-concurrent-disconnect.js b/test/parallel/test-cluster-concurrent-disconnect.js index 4920276745c180..d97db39a5bb38a 100644 --- a/test/parallel/test-cluster-concurrent-disconnect.js +++ b/test/parallel/test-cluster-concurrent-disconnect.js @@ -26,7 +26,11 @@ if (cluster.isPrimary) { // to send messages when the worker is disconnecting. worker.on('error', (err) => { assert.strictEqual(err.syscall, 'write'); - assert.strictEqual(err.code, 'EPIPE'); + if (common.isOSX) { + assert(['EPIPE', 'ENOTCONN'].includes(err.code), err); + } else { + assert.strictEqual(err.code, 'EPIPE'); + } }); worker.once('disconnect', common.mustCall(() => { diff --git a/test/parallel/test-cluster-dgram-1.js b/test/parallel/test-cluster-dgram-1.js index cd96c382c77346..71dcb2accb293c 100644 --- a/test/parallel/test-cluster-dgram-1.js +++ b/test/parallel/test-cluster-dgram-1.js @@ -72,7 +72,7 @@ function primary() { // Set up event handlers for every worker. Each worker sends a message when // it has received the expected number of packets. After that it disconnects. for (const key in cluster.workers) { - if (cluster.workers.hasOwnProperty(key)) + if (Object.hasOwn(cluster.workers, key)) setupWorker(cluster.workers[key]); } diff --git a/test/parallel/test-cluster-dgram-bind-fd.js b/test/parallel/test-cluster-dgram-bind-fd.js index b2efe58721c818..b819f251633a38 100644 --- a/test/parallel/test-cluster-dgram-bind-fd.js +++ b/test/parallel/test-cluster-dgram-bind-fd.js @@ -63,7 +63,7 @@ function primary() { // Set up event handlers for every worker. Each worker sends a message when // it has received the expected number of packets. After that it disconnects. for (const key in cluster.workers) { - if (cluster.workers.hasOwnProperty(key)) + if (Object.hasOwn(cluster.workers, key)) setupWorker(cluster.workers[key]); } diff --git a/test/parallel/test-cluster-kill-infinite-loop.js b/test/parallel/test-cluster-kill-infinite-loop.js index bd2384941b2122..57781b6972cadb 100644 --- a/test/parallel/test-cluster-kill-infinite-loop.js +++ b/test/parallel/test-cluster-kill-infinite-loop.js @@ -17,5 +17,5 @@ if (cluster.isPrimary) { assert.strictEqual(signal, 'SIGTERM'); })); } else { - while (true) {} + while (true); } diff --git a/test/parallel/test-cluster-net-listen-backlog.js b/test/parallel/test-cluster-net-listen-backlog.js new file mode 100644 index 00000000000000..090552fd1e1eeb --- /dev/null +++ b/test/parallel/test-cluster-net-listen-backlog.js @@ -0,0 +1,45 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +// Monkey-patch `net.Server.listen` +const net = require('net'); +const cluster = require('cluster'); + +// Force round-robin scheduling policy +// as Windows defaults to SCHED_NONE +// https://nodejs.org/docs/latest/api/cluster.html#clusterschedulingpolicy +cluster.schedulingPolicy = cluster.SCHED_RR; + +// Ensures that the `backlog` is used to create a `net.Server`. +const kExpectedBacklog = 127; +if (cluster.isMaster) { + const listen = net.Server.prototype.listen; + + net.Server.prototype.listen = common.mustCall( + function(...args) { + const options = args[0]; + if (typeof options === 'object') { + assert(options.backlog, kExpectedBacklog); + } else { + assert(args[1], kExpectedBacklog); + } + return listen.call(this, ...args); + } + ); + + const worker = cluster.fork(); + worker.on('message', () => { + worker.disconnect(); + }); +} else { + const server = net.createServer(); + + server.listen({ + host: common.localhostIPv4, + port: 0, + backlog: kExpectedBacklog, + }, common.mustCall(() => { + process.send(true); + })); +} diff --git a/test/parallel/test-common-expect-warning.js b/test/parallel/test-common-expect-warning.js new file mode 100644 index 00000000000000..dff32037fbb5b1 --- /dev/null +++ b/test/parallel/test-common-expect-warning.js @@ -0,0 +1,52 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const { spawn } = require('child_process'); + +if (process.argv[2] !== 'child') { + // Expected error not emitted. + { + const child = spawn( + process.execPath, [__filename, 'child', 0], { encoding: 'utf8' } + ); + child.on('exit', common.mustCall((status) => { + assert.notStrictEqual(status, 0); + })); + } + + // Expected error emitted. + { + const child = spawn( + process.execPath, [__filename, 'child', 1], { encoding: 'utf8' } + ); + child.on('exit', common.mustCall((status) => { + assert.strictEqual(status, 0); + })); + } + + // Expected error emitted too many times. + { + const child = spawn( + process.execPath, [__filename, 'child', 2], { encoding: 'utf8' } + ); + child.stderr.setEncoding('utf8'); + + let stderr = ''; + child.stderr.on('data', (data) => { + stderr += data; + }); + child.stderr.on('end', common.mustCall(() => { + assert.match(stderr, /Unexpected extra warning received/); + })); + child.on('exit', common.mustCall((status) => { + assert.notStrictEqual(status, 0); + })); + } +} else { + const iterations = +process.argv[3]; + common.expectWarning('fhqwhgads', 'fhqwhgads', 'fhqwhgads'); + for (let i = 0; i < iterations; i++) { + process.emitWarning('fhqwhgads', 'fhqwhgads', 'fhqwhgads'); + } +} diff --git a/test/parallel/test-console-group.js b/test/parallel/test-console-group.js index 9b7e836a436add..f1274a9bce6637 100644 --- a/test/parallel/test-console-group.js +++ b/test/parallel/test-console-group.js @@ -151,7 +151,7 @@ function teardown() { // Check that the kGroupIndent symbol property is not enumerable { const keys = Reflect.ownKeys(console) - .filter((val) => console.propertyIsEnumerable(val)) + .filter((val) => Object.prototype.propertyIsEnumerable.call(console, val)) .map((val) => val.toString()); assert(!keys.includes('Symbol(groupIndent)'), 'groupIndent should not be enumerable'); diff --git a/test/parallel/test-console-table.js b/test/parallel/test-console-table.js index ac414918dab09c..fb1de08323e325 100644 --- a/test/parallel/test-console-table.js +++ b/test/parallel/test-console-table.js @@ -276,3 +276,18 @@ test({ foo: '你好', bar: 'hello' }, ` │ bar │ 'hello' │ └─────────┴─────────┘ `); + +// Regression test for prototype pollution via console.table. Earlier versions +// of Node.js created an object with a non-null prototype within console.table +// and then wrote to object[column][index], which lead to an error as well as +// modifications to Object.prototype. +test([{ foo: 10 }, { foo: 20 }], ['__proto__'], ` +┌─────────┬───────────┐ +│ (index) │ __proto__ │ +├─────────┼───────────┤ +│ 0 │ │ +│ 1 │ │ +└─────────┴───────────┘ +`); +assert.strictEqual('0' in Object.prototype, false); +assert.strictEqual('1' in Object.prototype, false); diff --git a/test/parallel/test-crypto-dh-constructor.js b/test/parallel/test-crypto-dh-constructor.js new file mode 100644 index 00000000000000..c7eaca29347a2b --- /dev/null +++ b/test/parallel/test-crypto-dh-constructor.js @@ -0,0 +1,34 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); + +const size = common.hasFipsCrypto || common.hasOpenSSL3 ? 1024 : 256; +const dh1 = crypto.createDiffieHellman(size); +const p1 = dh1.getPrime('buffer'); + +{ + const DiffieHellman = crypto.DiffieHellman; + + const dh = DiffieHellman(p1, 'buffer'); + assert(dh instanceof DiffieHellman, 'DiffieHellman is expected to return a ' + + 'new instance when called without `new`'); +} + +{ + const DiffieHellmanGroup = crypto.DiffieHellmanGroup; + const dhg = DiffieHellmanGroup('modp5'); + assert(dhg instanceof DiffieHellmanGroup, 'DiffieHellmanGroup is expected ' + + 'to return a new instance when ' + + 'called without `new`'); +} + +{ + const ECDH = crypto.ECDH; + const ecdh = ECDH('prime256v1'); + assert(ecdh instanceof ECDH, 'ECDH is expected to return a new instance ' + + 'when called without `new`'); +} diff --git a/test/parallel/test-crypto-dh-curves.js b/test/parallel/test-crypto-dh-curves.js new file mode 100644 index 00000000000000..81a469c226c261 --- /dev/null +++ b/test/parallel/test-crypto-dh-curves.js @@ -0,0 +1,191 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); + +// Second OAKLEY group, see +// https://github.com/nodejs/node-v0.x-archive/issues/2338 and +// https://xml2rfc.tools.ietf.org/public/rfc/html/rfc2412.html#anchor49 +const p = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' + + '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' + + '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + + 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF'; +crypto.createDiffieHellman(p, 'hex'); + +// Confirm DH_check() results are exposed for optional examination. +const bad_dh = crypto.createDiffieHellman('02', 'hex'); +assert.notStrictEqual(bad_dh.verifyError, 0); + +const availableCurves = new Set(crypto.getCurves()); +const availableHashes = new Set(crypto.getHashes()); + +// Oakley curves do not clean up ERR stack, it was causing unexpected failure +// when accessing other OpenSSL APIs afterwards. +if (availableCurves.has('Oakley-EC2N-3')) { + crypto.createECDH('Oakley-EC2N-3'); + crypto.createHash('sha256'); +} + +// Test ECDH +if (availableCurves.has('prime256v1') && availableCurves.has('secp256k1')) { + const ecdh1 = crypto.createECDH('prime256v1'); + const ecdh2 = crypto.createECDH('prime256v1'); + const key1 = ecdh1.generateKeys(); + const key2 = ecdh2.generateKeys('hex'); + const secret1 = ecdh1.computeSecret(key2, 'hex', 'base64'); + const secret2 = ecdh2.computeSecret(key1, 'latin1', 'buffer'); + + assert.strictEqual(secret1, secret2.toString('base64')); + + // Point formats + assert.strictEqual(ecdh1.getPublicKey('buffer', 'uncompressed')[0], 4); + let firstByte = ecdh1.getPublicKey('buffer', 'compressed')[0]; + assert(firstByte === 2 || firstByte === 3); + firstByte = ecdh1.getPublicKey('buffer', 'hybrid')[0]; + assert(firstByte === 6 || firstByte === 7); + // Format value should be string + + assert.throws( + () => ecdh1.getPublicKey('buffer', 10), + { + code: 'ERR_CRYPTO_ECDH_INVALID_FORMAT', + name: 'TypeError', + message: 'Invalid ECDH format: 10' + }); + + // ECDH should check that point is on curve + const ecdh3 = crypto.createECDH('secp256k1'); + const key3 = ecdh3.generateKeys(); + + assert.throws( + () => ecdh2.computeSecret(key3, 'latin1', 'buffer'), + { + code: 'ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY', + name: 'Error', + message: 'Public key is not valid for specified curve' + }); + + // ECDH should allow .setPrivateKey()/.setPublicKey() + const ecdh4 = crypto.createECDH('prime256v1'); + + ecdh4.setPrivateKey(ecdh1.getPrivateKey()); + ecdh4.setPublicKey(ecdh1.getPublicKey()); + + assert.throws(() => { + ecdh4.setPublicKey(ecdh3.getPublicKey()); + }, { message: 'Failed to convert Buffer to EC_POINT' }); + + // Verify that we can use ECDH without having to use newly generated keys. + const ecdh5 = crypto.createECDH('secp256k1'); + + // Verify errors are thrown when retrieving keys from an uninitialized object. + assert.throws(() => { + ecdh5.getPublicKey(); + }, /^Error: Failed to get ECDH public key$/); + + assert.throws(() => { + ecdh5.getPrivateKey(); + }, /^Error: Failed to get ECDH private key$/); + + // A valid private key for the secp256k1 curve. + const cafebabeKey = 'cafebabe'.repeat(8); + // Associated compressed and uncompressed public keys (points). + const cafebabePubPtComp = + '03672a31bfc59d3f04548ec9b7daeeba2f61814e8ccc40448045007f5479f693a3'; + const cafebabePubPtUnComp = + '04672a31bfc59d3f04548ec9b7daeeba2f61814e8ccc40448045007f5479f693a3' + + '2e02c7f93d13dc2732b760ca377a5897b9dd41a1c1b29dc0442fdce6d0a04d1d'; + ecdh5.setPrivateKey(cafebabeKey, 'hex'); + assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); + // Show that the public point (key) is generated while setting the + // private key. + assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); + + // Compressed and uncompressed public points/keys for other party's + // private key. + // 0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF + const peerPubPtComp = + '02c6b754b20826eb925e052ee2c25285b162b51fdca732bcf67e39d647fb6830ae'; + const peerPubPtUnComp = + '04c6b754b20826eb925e052ee2c25285b162b51fdca732bcf67e39d647fb6830ae' + + 'b651944a574a362082a77e3f2b5d9223eb54d7f2f76846522bf75f3bedb8178e'; + + const sharedSecret = + '1da220b5329bbe8bfd19ceef5a5898593f411a6f12ea40f2a8eead9a5cf59970'; + + assert.strictEqual(ecdh5.computeSecret(peerPubPtComp, 'hex', 'hex'), + sharedSecret); + assert.strictEqual(ecdh5.computeSecret(peerPubPtUnComp, 'hex', 'hex'), + sharedSecret); + + // Verify that we still have the same key pair as before the computation. + assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); + assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); + + // Verify setting and getting compressed and non-compressed serializations. + ecdh5.setPublicKey(cafebabePubPtComp, 'hex'); + assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); + assert.strictEqual( + ecdh5.getPublicKey('hex', 'compressed'), + cafebabePubPtComp + ); + ecdh5.setPublicKey(cafebabePubPtUnComp, 'hex'); + assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); + assert.strictEqual( + ecdh5.getPublicKey('hex', 'compressed'), + cafebabePubPtComp + ); + + // Show why allowing the public key to be set on this type + // does not make sense. + ecdh5.setPublicKey(peerPubPtComp, 'hex'); + assert.strictEqual(ecdh5.getPublicKey('hex'), peerPubPtUnComp); + assert.throws(() => { + // Error because the public key does not match the private key anymore. + ecdh5.computeSecret(peerPubPtComp, 'hex', 'hex'); + }, /Invalid key pair/); + + // Set to a valid key to show that later attempts to set an invalid key are + // rejected. + ecdh5.setPrivateKey(cafebabeKey, 'hex'); + + // Some invalid private keys for the secp256k1 curve. + const errMessage = /Private key is not valid for specified curve/; + ['0000000000000000000000000000000000000000000000000000000000000000', + 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', + 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', + ].forEach((element) => { + assert.throws(() => { + ecdh5.setPrivateKey(element, 'hex'); + }, errMessage); + // Verify object state did not change. + assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); + }); +} + +// Use of invalid keys was not cleaning up ERR stack, and was causing +// unexpected failure in subsequent signing operations. +if (availableCurves.has('prime256v1') && availableHashes.has('sha256')) { + const curve = crypto.createECDH('prime256v1'); + const invalidKey = Buffer.alloc(65); + invalidKey.fill('\0'); + curve.generateKeys(); + assert.throws( + () => curve.computeSecret(invalidKey), + { + code: 'ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY', + name: 'Error', + message: 'Public key is not valid for specified curve' + }); + // Check that signing operations are not impacted by the above error. + const ecPrivateKey = + '-----BEGIN EC PRIVATE KEY-----\n' + + 'MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49\n' + + 'AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2\n' + + 'pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==\n' + + '-----END EC PRIVATE KEY-----'; + crypto.createSign('SHA256').sign(ecPrivateKey); +} diff --git a/test/parallel/test-crypto-dh-modp2-views.js b/test/parallel/test-crypto-dh-modp2-views.js new file mode 100644 index 00000000000000..8d01731af79394 --- /dev/null +++ b/test/parallel/test-crypto-dh-modp2-views.js @@ -0,0 +1,24 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); +const { modp2buf } = require('../common/crypto'); + +const modp2 = crypto.createDiffieHellmanGroup('modp2'); + +const views = common.getArrayBufferViews(modp2buf); +for (const buf of [modp2buf, ...views]) { + // Ensure specific generator (string with encoding) works as expected with + // any ArrayBufferViews as the first argument to createDiffieHellman(). + const exmodp2 = crypto.createDiffieHellman(buf, '02', 'hex'); + modp2.generateKeys(); + exmodp2.generateKeys(); + const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) + .toString('hex'); + const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) + .toString('hex'); + assert.strictEqual(modp2Secret, exmodp2Secret); +} diff --git a/test/parallel/test-crypto-dh-modp2.js b/test/parallel/test-crypto-dh-modp2.js new file mode 100644 index 00000000000000..19767d26f4e5fb --- /dev/null +++ b/test/parallel/test-crypto-dh-modp2.js @@ -0,0 +1,43 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); +const { modp2buf } = require('../common/crypto'); +const modp2 = crypto.createDiffieHellmanGroup('modp2'); + +{ + // Ensure specific generator (buffer) works as expected. + const exmodp2 = crypto.createDiffieHellman(modp2buf, Buffer.from([2])); + modp2.generateKeys(); + exmodp2.generateKeys(); + const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) + .toString('hex'); + const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) + .toString('hex'); + assert.strictEqual(modp2Secret, exmodp2Secret); +} + +{ + // Ensure specific generator (string without encoding) works as expected. + const exmodp2 = crypto.createDiffieHellman(modp2buf, '\x02'); + exmodp2.generateKeys(); + const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) + .toString('hex'); + const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) + .toString('hex'); + assert.strictEqual(modp2Secret, exmodp2Secret); +} + +{ + // Ensure specific generator (numeric) works as expected. + const exmodp2 = crypto.createDiffieHellman(modp2buf, 2); + exmodp2.generateKeys(); + const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) + .toString('hex'); + const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) + .toString('hex'); + assert.strictEqual(modp2Secret, exmodp2Secret); +} diff --git a/test/parallel/test-crypto-dh-shared.js b/test/parallel/test-crypto-dh-shared.js new file mode 100644 index 00000000000000..515405034d76b0 --- /dev/null +++ b/test/parallel/test-crypto-dh-shared.js @@ -0,0 +1,15 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); + +const alice = crypto.createDiffieHellmanGroup('modp5'); +const bob = crypto.createDiffieHellmanGroup('modp5'); +alice.generateKeys(); +bob.generateKeys(); +const aSecret = alice.computeSecret(bob.getPublicKey()).toString('hex'); +const bSecret = bob.computeSecret(alice.getPublicKey()).toString('hex'); +assert.strictEqual(aSecret, bSecret); diff --git a/test/parallel/test-crypto-dh-stateless.js b/test/parallel/test-crypto-dh-stateless.js index b7bd83cac1621f..2ccac322e23958 100644 --- a/test/parallel/test-crypto-dh-stateless.js +++ b/test/parallel/test-crypto-dh-stateless.js @@ -144,17 +144,13 @@ test(crypto.generateKeyPairSync('dh', { group: 'modp5' }), test(crypto.generateKeyPairSync('dh', { group: 'modp5' }), crypto.generateKeyPairSync('dh', { prime: group.getPrime() })); -const list = []; -// Same generator, but different primes. -// TODO(danbev) only commenting out this so that we can get our CI build -// to pass. I'll continue looking into the cause/change. -// [{ group: 'modp5' }, { group: 'modp18' }]]; +const list = [ + // Same generator, but different primes. + [{ group: 'modp5' }, { group: 'modp18' }]]; // TODO(danbev): Take a closer look if there should be a check in OpenSSL3 // when the dh parameters differ. if (!common.hasOpenSSL3) { - // Same generator, but different primes. - list.push([{ group: 'modp5' }, { group: 'modp18' }]); // Same primes, but different generator. list.push([{ group: 'modp5' }, { prime: group.getPrime(), generator: 5 }]); // Same generator, but different primes. @@ -167,7 +163,7 @@ for (const [params1, params2] of list) { crypto.generateKeyPairSync('dh', params2)); }, common.hasOpenSSL3 ? { name: 'Error', - code: 'ERR_OSSL_DH_INVALID_PUBLIC_KEY' + code: 'ERR_OSSL_MISMATCHING_DOMAIN_PARAMETERS' } : { name: 'Error', code: 'ERR_OSSL_EVP_DIFFERENT_PARAMETERS' diff --git a/test/parallel/test-crypto-dh.js b/test/parallel/test-crypto-dh.js index cae9301517c37c..18721fcf289e55 100644 --- a/test/parallel/test-crypto-dh.js +++ b/test/parallel/test-crypto-dh.js @@ -6,17 +6,17 @@ if (!common.hasCrypto) const assert = require('assert'); const crypto = require('crypto'); -// Test Diffie-Hellman with two parties sharing a secret, -// using various encodings as we go along const size = common.hasFipsCrypto || common.hasOpenSSL3 ? 1024 : 256; const dh1 = crypto.createDiffieHellman(size); const p1 = dh1.getPrime('buffer'); const dh2 = crypto.createDiffieHellman(p1, 'buffer'); -let key1 = dh1.generateKeys(); -let key2 = dh2.generateKeys('hex'); -let secret1 = dh1.computeSecret(key2, 'hex', 'base64'); -let secret2 = dh2.computeSecret(key1, 'latin1', 'buffer'); +const key1 = dh1.generateKeys(); +const key2 = dh2.generateKeys('hex'); +const secret1 = dh1.computeSecret(key2, 'hex', 'base64'); +const secret2 = dh2.computeSecret(key1, 'latin1', 'buffer'); +// Test Diffie-Hellman with two parties sharing a secret, +// using various encodings as we go along assert.strictEqual(secret2.toString('base64'), secret1); assert.strictEqual(dh1.verifyError, 0); assert.strictEqual(dh2.verifyError, 0); @@ -85,28 +85,6 @@ for (const g of [Buffer.from([]), assert.throws(() => crypto.createDiffieHellman('abcdef', 'hex', g), ex); } -{ - const DiffieHellman = crypto.DiffieHellman; - const dh = DiffieHellman(p1, 'buffer'); - assert(dh instanceof DiffieHellman, 'DiffieHellman is expected to return a ' + - 'new instance when called without `new`'); -} - -{ - const DiffieHellmanGroup = crypto.DiffieHellmanGroup; - const dhg = DiffieHellmanGroup('modp5'); - assert(dhg instanceof DiffieHellmanGroup, 'DiffieHellmanGroup is expected ' + - 'to return a new instance when ' + - 'called without `new`'); -} - -{ - const ECDH = crypto.ECDH; - const ecdh = ECDH('prime256v1'); - assert(ecdh instanceof ECDH, 'ECDH is expected to return a new instance ' + - 'when called without `new`'); -} - [ [0x1, 0x2], () => { }, @@ -191,264 +169,6 @@ assert.throws(() => { 'error:02800080:Diffie-Hellman routines::invalid secret' : 'Supplied key is too small' }); -// Create a shared using a DH group. -const alice = crypto.createDiffieHellmanGroup('modp5'); -const bob = crypto.createDiffieHellmanGroup('modp5'); -alice.generateKeys(); -bob.generateKeys(); -const aSecret = alice.computeSecret(bob.getPublicKey()).toString('hex'); -const bSecret = bob.computeSecret(alice.getPublicKey()).toString('hex'); -assert.strictEqual(aSecret, bSecret); - -// Ensure specific generator (buffer) works as expected. -// The values below (modp2/modp2buf) are for a 1024 bits long prime from -// RFC 2412 E.2, see https://tools.ietf.org/html/rfc2412. */ -const modp2 = crypto.createDiffieHellmanGroup('modp2'); -const modp2buf = Buffer.from([ - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xc9, 0x0f, - 0xda, 0xa2, 0x21, 0x68, 0xc2, 0x34, 0xc4, 0xc6, 0x62, 0x8b, - 0x80, 0xdc, 0x1c, 0xd1, 0x29, 0x02, 0x4e, 0x08, 0x8a, 0x67, - 0xcc, 0x74, 0x02, 0x0b, 0xbe, 0xa6, 0x3b, 0x13, 0x9b, 0x22, - 0x51, 0x4a, 0x08, 0x79, 0x8e, 0x34, 0x04, 0xdd, 0xef, 0x95, - 0x19, 0xb3, 0xcd, 0x3a, 0x43, 0x1b, 0x30, 0x2b, 0x0a, 0x6d, - 0xf2, 0x5f, 0x14, 0x37, 0x4f, 0xe1, 0x35, 0x6d, 0x6d, 0x51, - 0xc2, 0x45, 0xe4, 0x85, 0xb5, 0x76, 0x62, 0x5e, 0x7e, 0xc6, - 0xf4, 0x4c, 0x42, 0xe9, 0xa6, 0x37, 0xed, 0x6b, 0x0b, 0xff, - 0x5c, 0xb6, 0xf4, 0x06, 0xb7, 0xed, 0xee, 0x38, 0x6b, 0xfb, - 0x5a, 0x89, 0x9f, 0xa5, 0xae, 0x9f, 0x24, 0x11, 0x7c, 0x4b, - 0x1f, 0xe6, 0x49, 0x28, 0x66, 0x51, 0xec, 0xe6, 0x53, 0x81, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, -]); - -{ - const exmodp2 = crypto.createDiffieHellman(modp2buf, Buffer.from([2])); - modp2.generateKeys(); - exmodp2.generateKeys(); - const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) - .toString('hex'); - const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) - .toString('hex'); - assert.strictEqual(modp2Secret, exmodp2Secret); -} - -for (const buf of [modp2buf, ...common.getArrayBufferViews(modp2buf)]) { - // Ensure specific generator (string with encoding) works as expected with - // any ArrayBufferViews as the first argument to createDiffieHellman(). - const exmodp2 = crypto.createDiffieHellman(buf, '02', 'hex'); - exmodp2.generateKeys(); - const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) - .toString('hex'); - const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) - .toString('hex'); - assert.strictEqual(modp2Secret, exmodp2Secret); -} - -{ - // Ensure specific generator (string without encoding) works as expected. - const exmodp2 = crypto.createDiffieHellman(modp2buf, '\x02'); - exmodp2.generateKeys(); - const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) - .toString('hex'); - const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) - .toString('hex'); - assert.strictEqual(modp2Secret, exmodp2Secret); -} - -{ - // Ensure specific generator (numeric) works as expected. - const exmodp2 = crypto.createDiffieHellman(modp2buf, 2); - exmodp2.generateKeys(); - const modp2Secret = modp2.computeSecret(exmodp2.getPublicKey()) - .toString('hex'); - const exmodp2Secret = exmodp2.computeSecret(modp2.getPublicKey()) - .toString('hex'); - assert.strictEqual(modp2Secret, exmodp2Secret); -} - -// Second OAKLEY group, see -// https://github.com/nodejs/node-v0.x-archive/issues/2338 and -// https://xml2rfc.tools.ietf.org/public/rfc/html/rfc2412.html#anchor49 -const p = 'FFFFFFFFFFFFFFFFC90FDAA22168C234C4C6628B80DC1CD129024E088A67CC74' + - '020BBEA63B139B22514A08798E3404DDEF9519B3CD3A431B302B0A6DF25F1437' + - '4FE1356D6D51C245E485B576625E7EC6F44C42E9A637ED6B0BFF5CB6F406B7ED' + - 'EE386BFB5A899FA5AE9F24117C4B1FE649286651ECE65381FFFFFFFFFFFFFFFF'; -crypto.createDiffieHellman(p, 'hex'); - -// Confirm DH_check() results are exposed for optional examination. -const bad_dh = crypto.createDiffieHellman('02', 'hex'); -assert.notStrictEqual(bad_dh.verifyError, 0); - -const availableCurves = new Set(crypto.getCurves()); -const availableHashes = new Set(crypto.getHashes()); - -// Oakley curves do not clean up ERR stack, it was causing unexpected failure -// when accessing other OpenSSL APIs afterwards. -if (availableCurves.has('Oakley-EC2N-3')) { - crypto.createECDH('Oakley-EC2N-3'); - crypto.createHash('sha256'); -} - -// Test ECDH -if (availableCurves.has('prime256v1') && availableCurves.has('secp256k1')) { - const ecdh1 = crypto.createECDH('prime256v1'); - const ecdh2 = crypto.createECDH('prime256v1'); - key1 = ecdh1.generateKeys(); - key2 = ecdh2.generateKeys('hex'); - secret1 = ecdh1.computeSecret(key2, 'hex', 'base64'); - secret2 = ecdh2.computeSecret(key1, 'latin1', 'buffer'); - - assert.strictEqual(secret1, secret2.toString('base64')); - - // Point formats - assert.strictEqual(ecdh1.getPublicKey('buffer', 'uncompressed')[0], 4); - let firstByte = ecdh1.getPublicKey('buffer', 'compressed')[0]; - assert(firstByte === 2 || firstByte === 3); - firstByte = ecdh1.getPublicKey('buffer', 'hybrid')[0]; - assert(firstByte === 6 || firstByte === 7); - // Format value should be string - - assert.throws( - () => ecdh1.getPublicKey('buffer', 10), - { - code: 'ERR_CRYPTO_ECDH_INVALID_FORMAT', - name: 'TypeError', - message: 'Invalid ECDH format: 10' - }); - - // ECDH should check that point is on curve - const ecdh3 = crypto.createECDH('secp256k1'); - const key3 = ecdh3.generateKeys(); - - assert.throws( - () => ecdh2.computeSecret(key3, 'latin1', 'buffer'), - { - code: 'ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY', - name: 'Error', - message: 'Public key is not valid for specified curve' - }); - - // ECDH should allow .setPrivateKey()/.setPublicKey() - const ecdh4 = crypto.createECDH('prime256v1'); - - ecdh4.setPrivateKey(ecdh1.getPrivateKey()); - ecdh4.setPublicKey(ecdh1.getPublicKey()); - - assert.throws(() => { - ecdh4.setPublicKey(ecdh3.getPublicKey()); - }, { message: 'Failed to convert Buffer to EC_POINT' }); - - // Verify that we can use ECDH without having to use newly generated keys. - const ecdh5 = crypto.createECDH('secp256k1'); - - // Verify errors are thrown when retrieving keys from an uninitialized object. - assert.throws(() => { - ecdh5.getPublicKey(); - }, /^Error: Failed to get ECDH public key$/); - - assert.throws(() => { - ecdh5.getPrivateKey(); - }, /^Error: Failed to get ECDH private key$/); - - // A valid private key for the secp256k1 curve. - const cafebabeKey = 'cafebabe'.repeat(8); - // Associated compressed and uncompressed public keys (points). - const cafebabePubPtComp = - '03672a31bfc59d3f04548ec9b7daeeba2f61814e8ccc40448045007f5479f693a3'; - const cafebabePubPtUnComp = - '04672a31bfc59d3f04548ec9b7daeeba2f61814e8ccc40448045007f5479f693a3' + - '2e02c7f93d13dc2732b760ca377a5897b9dd41a1c1b29dc0442fdce6d0a04d1d'; - ecdh5.setPrivateKey(cafebabeKey, 'hex'); - assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); - // Show that the public point (key) is generated while setting the - // private key. - assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); - - // Compressed and uncompressed public points/keys for other party's - // private key. - // 0xDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEFDEADBEEF - const peerPubPtComp = - '02c6b754b20826eb925e052ee2c25285b162b51fdca732bcf67e39d647fb6830ae'; - const peerPubPtUnComp = - '04c6b754b20826eb925e052ee2c25285b162b51fdca732bcf67e39d647fb6830ae' + - 'b651944a574a362082a77e3f2b5d9223eb54d7f2f76846522bf75f3bedb8178e'; - - const sharedSecret = - '1da220b5329bbe8bfd19ceef5a5898593f411a6f12ea40f2a8eead9a5cf59970'; - - assert.strictEqual(ecdh5.computeSecret(peerPubPtComp, 'hex', 'hex'), - sharedSecret); - assert.strictEqual(ecdh5.computeSecret(peerPubPtUnComp, 'hex', 'hex'), - sharedSecret); - - // Verify that we still have the same key pair as before the computation. - assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); - assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); - - // Verify setting and getting compressed and non-compressed serializations. - ecdh5.setPublicKey(cafebabePubPtComp, 'hex'); - assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); - assert.strictEqual( - ecdh5.getPublicKey('hex', 'compressed'), - cafebabePubPtComp - ); - ecdh5.setPublicKey(cafebabePubPtUnComp, 'hex'); - assert.strictEqual(ecdh5.getPublicKey('hex'), cafebabePubPtUnComp); - assert.strictEqual( - ecdh5.getPublicKey('hex', 'compressed'), - cafebabePubPtComp - ); - - // Show why allowing the public key to be set on this type - // does not make sense. - ecdh5.setPublicKey(peerPubPtComp, 'hex'); - assert.strictEqual(ecdh5.getPublicKey('hex'), peerPubPtUnComp); - assert.throws(() => { - // Error because the public key does not match the private key anymore. - ecdh5.computeSecret(peerPubPtComp, 'hex', 'hex'); - }, /Invalid key pair/); - - // Set to a valid key to show that later attempts to set an invalid key are - // rejected. - ecdh5.setPrivateKey(cafebabeKey, 'hex'); - - // Some invalid private keys for the secp256k1 curve. - const errMessage = /Private key is not valid for specified curve/; - ['0000000000000000000000000000000000000000000000000000000000000000', - 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEBAAEDCE6AF48A03BBFD25E8CD0364141', - 'FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF', - ].forEach((element) => { - assert.throws(() => { - ecdh5.setPrivateKey(element, 'hex'); - }, errMessage); - // Verify object state did not change. - assert.strictEqual(ecdh5.getPrivateKey('hex'), cafebabeKey); - }); -} - -// Use of invalid keys was not cleaning up ERR stack, and was causing -// unexpected failure in subsequent signing operations. -if (availableCurves.has('prime256v1') && availableHashes.has('sha256')) { - const curve = crypto.createECDH('prime256v1'); - const invalidKey = Buffer.alloc(65); - invalidKey.fill('\0'); - curve.generateKeys(); - assert.throws( - () => curve.computeSecret(invalidKey), - { - code: 'ERR_CRYPTO_ECDH_INVALID_PUBLIC_KEY', - name: 'Error', - message: 'Public key is not valid for specified curve' - }); - // Check that signing operations are not impacted by the above error. - const ecPrivateKey = - '-----BEGIN EC PRIVATE KEY-----\n' + - 'MHcCAQEEIF+jnWY1D5kbVYDNvxxo/Y+ku2uJPDwS0r/VuPZQrjjVoAoGCCqGSM49\n' + - 'AwEHoUQDQgAEurOxfSxmqIRYzJVagdZfMMSjRNNhB8i3mXyIMq704m2m52FdfKZ2\n' + - 'pQhByd5eyj3lgZ7m7jbchtdgyOF8Io/1ng==\n' + - '-----END EC PRIVATE KEY-----'; - crypto.createSign('SHA256').sign(ecPrivateKey); -} - // Invalid test: curve argument is undefined assert.throws( () => crypto.createECDH(), @@ -456,7 +176,7 @@ assert.throws( code: 'ERR_INVALID_ARG_TYPE', name: 'TypeError', message: 'The "curve" argument must be of type string. ' + - 'Received undefined' + 'Received undefined' }); assert.throws( @@ -471,24 +191,7 @@ assert.throws( 'crypto.getDiffieHellman(\'unknown-group\') ' + 'failed to throw the expected error.' ); -assert.throws( - function() { - crypto.getDiffieHellman('modp1').setPrivateKey(''); - }, - new RegExp('^TypeError: crypto\\.getDiffieHellman\\(\\.\\.\\.\\)\\.' + - 'setPrivateKey is not a function$'), - 'crypto.getDiffieHellman(\'modp1\').setPrivateKey(\'\') ' + - 'failed to throw the expected error.' -); -assert.throws( - function() { - crypto.getDiffieHellman('modp1').setPublicKey(''); - }, - new RegExp('^TypeError: crypto\\.getDiffieHellman\\(\\.\\.\\.\\)\\.' + - 'setPublicKey is not a function$'), - 'crypto.getDiffieHellman(\'modp1\').setPublicKey(\'\') ' + - 'failed to throw the expected error.' -); + assert.throws( () => crypto.createDiffieHellman('', true), { diff --git a/test/parallel/test-crypto-engine.js b/test/parallel/test-crypto-engine.js deleted file mode 100644 index 8b33285b454eef..00000000000000 --- a/test/parallel/test-crypto-engine.js +++ /dev/null @@ -1,43 +0,0 @@ -'use strict'; -const common = require('../common'); - -if (!common.hasCrypto) - common.skip('missing crypto'); - -const assert = require('assert'); -const crypto = require('crypto'); -const invalidEngineName = 'xxx'; - -assert.throws( - () => crypto.setEngine(true), - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "id" argument must be of type string. Received type boolean' + - ' (true)' - }); - -assert.throws( - () => crypto.setEngine('/path/to/engine', 'notANumber'), - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "flags" argument must be of type number. Received type' + - " string ('notANumber')" - }); - -assert.throws( - () => crypto.setEngine(invalidEngineName), - { - code: 'ERR_CRYPTO_ENGINE_UNKNOWN', - name: 'Error', - message: `Engine "${invalidEngineName}" was not found` - }); - -assert.throws( - () => crypto.setEngine(invalidEngineName, crypto.constants.ENGINE_METHOD_RSA), - { - code: 'ERR_CRYPTO_ENGINE_UNKNOWN', - name: 'Error', - message: `Engine "${invalidEngineName}" was not found` - }); diff --git a/test/parallel/test-crypto-hmac.js b/test/parallel/test-crypto-hmac.js index cfaa041c0622d9..de0a59423d4b2a 100644 --- a/test/parallel/test-crypto-hmac.js +++ b/test/parallel/test-crypto-hmac.js @@ -422,8 +422,8 @@ assert.strictEqual( } { const h = crypto.createHmac('sha1', 'key').update('data'); - assert.deepStrictEqual(h.digest('latin1'), expected); - assert.deepStrictEqual(h.digest('latin1'), ''); + assert.strictEqual(h.digest('latin1'), expected); + assert.strictEqual(h.digest('latin1'), ''); } } @@ -440,8 +440,8 @@ assert.strictEqual( } { const h = crypto.createHmac('sha1', 'key'); - assert.deepStrictEqual(h.digest('latin1'), expected); - assert.deepStrictEqual(h.digest('latin1'), ''); + assert.strictEqual(h.digest('latin1'), expected); + assert.strictEqual(h.digest('latin1'), ''); } } diff --git a/test/parallel/test-crypto-key-objects.js b/test/parallel/test-crypto-key-objects.js index c564c4dcb43fac..40a982ea7b6cd6 100644 --- a/test/parallel/test-crypto-key-objects.js +++ b/test/parallel/test-crypto-key-objects.js @@ -21,6 +21,7 @@ const { privateDecrypt, privateEncrypt, getCurves, + generateKeySync, generateKeyPairSync, webcrypto, } = require('crypto'); @@ -545,9 +546,7 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', format: 'pem', passphrase: Buffer.alloc(1024, 'a') }), { - message: common.hasOpenSSL3 ? - 'error:07880109:common libcrypto routines::interrupted or cancelled' : - /bad decrypt/ + message: /bad decrypt/ }); const publicKey = createPublicKey(publicDsa); @@ -846,3 +845,51 @@ const privateDsa = fixtures.readKey('dsa_private_encrypted_1025.pem', assert(!isKeyObject(cryptoKey)); }); } + +{ + const first = Buffer.from('Hello'); + const second = Buffer.from('World'); + const keyObject = createSecretKey(first); + assert(createSecretKey(first).equals(createSecretKey(first))); + assert(!createSecretKey(first).equals(createSecretKey(second))); + + assert.throws(() => keyObject.equals(0), { + name: 'TypeError', + code: 'ERR_INVALID_ARG_TYPE', + message: 'The "otherKeyObject" argument must be an instance of KeyObject. Received type number (0)' + }); + + assert(keyObject.equals(keyObject)); + assert(!keyObject.equals(createPublicKey(publicPem))); + assert(!keyObject.equals(createPrivateKey(privatePem))); +} + +{ + const first = generateKeyPairSync('ed25519'); + const second = generateKeyPairSync('ed25519'); + const secret = generateKeySync('aes', { length: 128 }); + + assert(first.publicKey.equals(first.publicKey)); + assert(first.publicKey.equals(createPublicKey( + first.publicKey.export({ format: 'pem', type: 'spki' })))); + assert(!first.publicKey.equals(second.publicKey)); + assert(!first.publicKey.equals(second.privateKey)); + assert(!first.publicKey.equals(secret)); + + assert(first.privateKey.equals(first.privateKey)); + assert(first.privateKey.equals(createPrivateKey( + first.privateKey.export({ format: 'pem', type: 'pkcs8' })))); + assert(!first.privateKey.equals(second.privateKey)); + assert(!first.privateKey.equals(second.publicKey)); + assert(!first.privateKey.equals(secret)); +} + +{ + const first = generateKeyPairSync('ed25519'); + const second = generateKeyPairSync('ed448'); + + assert(!first.publicKey.equals(second.publicKey)); + assert(!first.publicKey.equals(second.privateKey)); + assert(!first.privateKey.equals(second.privateKey)); + assert(!first.privateKey.equals(second.publicKey)); +} diff --git a/test/parallel/test-crypto-modp1-error.js b/test/parallel/test-crypto-modp1-error.js new file mode 100644 index 00000000000000..38f78c158704b2 --- /dev/null +++ b/test/parallel/test-crypto-modp1-error.js @@ -0,0 +1,26 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); + +assert.throws( + function() { + crypto.getDiffieHellman('modp1').setPrivateKey(''); + }, + new RegExp('^TypeError: crypto\\.getDiffieHellman\\(\\.\\.\\.\\)\\.' + + 'setPrivateKey is not a function$'), + 'crypto.getDiffieHellman(\'modp1\').setPrivateKey(\'\') ' + + 'failed to throw the expected error.' +); +assert.throws( + function() { + crypto.getDiffieHellman('modp1').setPublicKey(''); + }, + new RegExp('^TypeError: crypto\\.getDiffieHellman\\(\\.\\.\\.\\)\\.' + + 'setPublicKey is not a function$'), + 'crypto.getDiffieHellman(\'modp1\').setPublicKey(\'\') ' + + 'failed to throw the expected error.' +); diff --git a/test/parallel/test-crypto-prime.js b/test/parallel/test-crypto-prime.js index 749221b4514ef3..2d3f39aec15a08 100644 --- a/test/parallel/test-crypto-prime.js +++ b/test/parallel/test-crypto-prime.js @@ -41,7 +41,7 @@ const pCheckPrime = promisify(checkPrime); }); }); -[-1, 0].forEach((i) => { +[-1, 0, 2 ** 31, 2 ** 31 + 1, 2 ** 32 - 1, 2 ** 32].forEach((i) => { assert.throws(() => generatePrime(i, common.mustNotCall()), { code: 'ERR_OUT_OF_RANGE' }); diff --git a/test/parallel/test-crypto-sign-verify.js b/test/parallel/test-crypto-sign-verify.js index 6893f0c0e6d49a..b2c14b1efcd68b 100644 --- a/test/parallel/test-crypto-sign-verify.js +++ b/test/parallel/test-crypto-sign-verify.js @@ -742,3 +742,17 @@ assert.throws( } } } + +// The sign function should not swallow OpenSSL errors. +// Regression test for https://github.com/nodejs/node/issues/40794. +{ + assert.throws(() => { + const { privateKey } = crypto.generateKeyPairSync('rsa', { + modulusLength: 512 + }); + crypto.sign('sha512', 'message', privateKey); + }, { + code: 'ERR_OSSL_RSA_DIGEST_TOO_BIG_FOR_RSA_KEY', + message: /digest too big for rsa key/ + }); +} diff --git a/test/parallel/test-crypto-x509.js b/test/parallel/test-crypto-x509.js index c85a79b4854369..d1782359277dc5 100644 --- a/test/parallel/test-crypto-x509.js +++ b/test/parallel/test-crypto-x509.js @@ -103,6 +103,12 @@ const der = Buffer.from( 'B0:BE:46:49:B8:29:63:E0:6F:63:C8:8A:57:9C:3F:9B:72:C6:F5:89:E3:0D:' + '84:AC:5B:08:9A:20:89:B6:8F:D6' ); + assert.strictEqual( + x509.fingerprint512, + 'D0:05:01:82:2C:D8:09:BE:27:94:E7:83:F1:88:BC:7A:8B:D0:39:97:54:B6:' + + 'D0:B4:46:5B:DE:13:5B:68:86:B6:F2:A8:95:22:D5:6E:8B:35:DA:89:29:CA:' + + 'A3:06:C5:CE:43:C1:7F:2D:7E:5F:44:A5:EE:A3:CB:97:05:A3:E3:68' + ); assert.strictEqual(x509.keyUsage, undefined); assert.strictEqual(x509.serialNumber, 'ECC9B856270DA9A8'); @@ -226,6 +232,11 @@ const der = Buffer.from( fingerprint256: 'B0:BE:46:49:B8:29:63:E0:6F:63:C8:8A:57:9C:3F:9B:72:' + 'C6:F5:89:E3:0D:84:AC:5B:08:9A:20:89:B6:8F:D6', + fingerprint512: + 'D0:05:01:82:2C:D8:09:BE:27:94:E7:83:F1:88:BC:7A:8B:' + + 'D0:39:97:54:B6:D0:B4:46:5B:DE:13:5B:68:86:B6:F2:A8:' + + '95:22:D5:6E:8B:35:DA:89:29:CA:A3:06:C5:CE:43:C1:7F:' + + '2D:7E:5F:44:A5:EE:A3:CB:97:05:A3:E3:68', serialNumber: 'ECC9B856270DA9A8' }; diff --git a/test/parallel/test-crypto.js b/test/parallel/test-crypto.js index 58441be4d093f0..a8ceb169de2b3d 100644 --- a/test/parallel/test-crypto.js +++ b/test/parallel/test-crypto.js @@ -121,6 +121,19 @@ function validateList(list) { const cryptoCiphers = crypto.getCiphers(); assert(crypto.getCiphers().includes('aes-128-cbc')); validateList(cryptoCiphers); +// Make sure all of the ciphers are supported by OpenSSL +for (const algo of cryptoCiphers) { + const { ivLength, keyLength, mode } = crypto.getCipherInfo(algo); + let options; + if (mode === 'ccm') + options = { authTagLength: 8 }; + else if (mode === 'ocb' || algo === 'chacha20-poly1305') + options = { authTagLength: 16 }; + crypto.createCipheriv(algo, + crypto.randomBytes(keyLength), + crypto.randomBytes(ivLength || 0), + options); +} // Assume that we have at least AES256-SHA. const tlsCiphers = tls.getCiphers(); @@ -140,6 +153,9 @@ assert(!crypto.getHashes().includes('SHA256')); assert(crypto.getHashes().includes('RSA-SHA1')); assert(!crypto.getHashes().includes('rsa-sha1')); validateList(crypto.getHashes()); +// Make sure all of the hashes are supported by OpenSSL +for (const algo of crypto.getHashes()) + crypto.createHash(algo); // Assume that we have at least secp384r1. assert.notStrictEqual(crypto.getCurves().length, 0); diff --git a/test/parallel/test-datetime-change-notify.js b/test/parallel/test-datetime-change-notify.js index 9cd6d7abfd898a..01843511907077 100644 --- a/test/parallel/test-datetime-change-notify.js +++ b/test/parallel/test-datetime-change-notify.js @@ -18,15 +18,15 @@ const cases = [ }, { timeZone: 'America/New_York', - expected: /Eastern (Standard|Daylight) Time/, + expected: /Eastern (?:Standard|Daylight) Time/, }, { timeZone: 'America/Los_Angeles', - expected: /Pacific (Standard|Daylight) Time/, + expected: /Pacific (?:Standard|Daylight) Time/, }, { timeZone: 'Europe/Dublin', - expected: /Irish/, + expected: /Irish Standard Time|Greenwich Mean Time/, }, ]; diff --git a/test/parallel/test-debugger-address.js b/test/parallel/test-debugger-address.js index 95dd1c6e3f8283..bffc28ac916e8d 100644 --- a/test/parallel/test-debugger-address.js +++ b/test/parallel/test-debugger-address.js @@ -65,7 +65,7 @@ function launchTarget(...args) { .then(() => { assert.match( cli.output, - /> 3 \+\+x;/, + /> 3 {3}\+\+x;/, 'marks the 3rd line'); }) .then(() => cleanup()) diff --git a/test/parallel/test-dgram-send-bad-arguments.js b/test/parallel/test-dgram-send-bad-arguments.js index 3e42f31b1af4b6..b30951d441cbd2 100644 --- a/test/parallel/test-dgram-send-bad-arguments.js +++ b/test/parallel/test-dgram-send-bad-arguments.js @@ -77,6 +77,47 @@ function checkArgs(connected) { message: 'Already connected' } ); + + const longArray = [1, 2, 3, 4, 5, 6, 7, 8]; + for (const input of ['hello', + Buffer.from('hello'), + Buffer.from('hello world').subarray(0, 5), + Buffer.from('hello world').subarray(4, 9), + Buffer.from('hello world').subarray(6), + new Uint8Array([1, 2, 3, 4, 5]), + new Uint8Array(longArray).subarray(0, 5), + new Uint8Array(longArray).subarray(2, 7), + new Uint8Array(longArray).subarray(3), + new DataView(new ArrayBuffer(5), 0), + new DataView(new ArrayBuffer(6), 1), + new DataView(new ArrayBuffer(7), 1, 5)]) { + assert.throws( + () => { sock.send(input, 6, 0); }, + { + code: 'ERR_BUFFER_OUT_OF_BOUNDS', + name: 'RangeError', + message: '"offset" is outside of buffer bounds', + } + ); + + assert.throws( + () => { sock.send(input, 0, 6); }, + { + code: 'ERR_BUFFER_OUT_OF_BOUNDS', + name: 'RangeError', + message: '"length" is outside of buffer bounds', + } + ); + + assert.throws( + () => { sock.send(input, 3, 4); }, + { + code: 'ERR_BUFFER_OUT_OF_BOUNDS', + name: 'RangeError', + message: '"length" is outside of buffer bounds', + } + ); + } } else { assert.throws(() => { sock.send(buf, 1, 1, -1, host); }, RangeError); assert.throws(() => { sock.send(buf, 1, 1, 0, host); }, RangeError); diff --git a/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js b/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js index cbc5b4d2e9a953..9498419b806ca8 100644 --- a/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js +++ b/test/parallel/test-diagnostics-channel-object-channel-pub-sub.js @@ -35,9 +35,12 @@ assert.ok(channel instanceof Channel); channel.publish(input); // Should not publish after subscriber is unsubscribed -channel.unsubscribe(subscriber); +assert.ok(channel.unsubscribe(subscriber)); assert.ok(!channel.hasSubscribers); +// unsubscribe() should return false when subscriber is not found +assert.ok(!channel.unsubscribe(subscriber)); + assert.throws(() => { channel.subscribe(null); }, { code: 'ERR_INVALID_ARG_TYPE' }); diff --git a/test/parallel/test-disable-proto-delete.js b/test/parallel/test-disable-proto-delete.js index 90cf9287bb9fc5..3a5b2313225e60 100644 --- a/test/parallel/test-disable-proto-delete.js +++ b/test/parallel/test-disable-proto-delete.js @@ -9,14 +9,14 @@ const { Worker, isMainThread } = require('worker_threads'); // eslint-disable-next-line no-proto assert.strictEqual(Object.prototype.__proto__, undefined); -assert(!Object.prototype.hasOwnProperty('__proto__')); +assert(!Object.hasOwn(Object.prototype, '__proto__')); const ctx = vm.createContext(); const ctxGlobal = vm.runInContext('this', ctx); // eslint-disable-next-line no-proto assert.strictEqual(ctxGlobal.Object.prototype.__proto__, undefined); -assert(!ctxGlobal.Object.prototype.hasOwnProperty('__proto__')); +assert(!Object.hasOwn(ctxGlobal.Object.prototype, '__proto__')); if (isMainThread) { new Worker(__filename); diff --git a/test/parallel/test-disable-proto-throw.js b/test/parallel/test-disable-proto-throw.js index a39cfef0d8bd43..524131a1059db6 100644 --- a/test/parallel/test-disable-proto-throw.js +++ b/test/parallel/test-disable-proto-throw.js @@ -7,7 +7,7 @@ const assert = require('assert'); const vm = require('vm'); const { Worker, isMainThread } = require('worker_threads'); -assert(Object.prototype.hasOwnProperty('__proto__')); +assert(Object.hasOwn(Object.prototype, '__proto__')); assert.throws(() => { // eslint-disable-next-line no-proto,no-unused-expressions diff --git a/test/parallel/test-dns-lookup-promises-options-deprecated.js b/test/parallel/test-dns-lookup-promises-options-deprecated.js new file mode 100644 index 00000000000000..6f3b9314b9db13 --- /dev/null +++ b/test/parallel/test-dns-lookup-promises-options-deprecated.js @@ -0,0 +1,32 @@ +// Flags: --expose-internals +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { internalBinding } = require('internal/test/binding'); +const cares = internalBinding('cares_wrap'); +cares.getaddrinfo = () => internalBinding('uv').UV_ENOMEM; + +// This test ensures that dns.lookup issue a DeprecationWarning +// when invalid options type is given + +const dnsPromises = require('dns/promises'); + +common.expectWarning({ + 'internal/test/binding': [ + 'These APIs are for internal testing only. Do not use them.', + ], + 'DeprecationWarning': { + DEP0153: 'Type coercion of dns.lookup options is deprecated' + } +}); + +assert.throws(() => { + dnsPromises.lookup('127.0.0.1', { hints: '-1' }); +}, { + code: 'ERR_INVALID_ARG_VALUE', + name: 'TypeError' +}); +dnsPromises.lookup('127.0.0.1', { family: '6' }); +dnsPromises.lookup('127.0.0.1', { all: 'true' }); +dnsPromises.lookup('127.0.0.1', { verbatim: 'true' }); +dnsPromises.lookup('127.0.0.1', '6'); diff --git a/test/parallel/test-dns-lookup.js b/test/parallel/test-dns-lookup.js index 14dfec61ee08f6..aa4a1b8abef6df 100644 --- a/test/parallel/test-dns-lookup.js +++ b/test/parallel/test-dns-lookup.js @@ -137,7 +137,7 @@ dns.lookup('127.0.0.1', { family: 4, all: false }, common.mustSucceed((result, addressType) => { - assert.deepStrictEqual(result, '127.0.0.1'); + assert.strictEqual(result, '127.0.0.1'); assert.strictEqual(addressType, 4); })); diff --git a/test/parallel/test-dns.js b/test/parallel/test-dns.js index a6e17c26531aca..6f3790d427d353 100644 --- a/test/parallel/test-dns.js +++ b/test/parallel/test-dns.js @@ -274,6 +274,7 @@ dns.lookup('', { await dnsPromises.lookup('', { hints: dns.ADDRCONFIG | dns.V4MAPPED | dns.ALL }); + await dnsPromises.lookup('', { verbatim: true }); })().then(common.mustCall()); { @@ -336,10 +337,10 @@ assert.throws(() => { { dns.resolveMx('foo.onion', function(err) { - assert.deepStrictEqual(err.code, 'ENOTFOUND'); - assert.deepStrictEqual(err.syscall, 'queryMx'); - assert.deepStrictEqual(err.hostname, 'foo.onion'); - assert.deepStrictEqual(err.message, 'queryMx ENOTFOUND foo.onion'); + assert.strictEqual(err.code, 'ENOTFOUND'); + assert.strictEqual(err.syscall, 'queryMx'); + assert.strictEqual(err.hostname, 'foo.onion'); + assert.strictEqual(err.message, 'queryMx ENOTFOUND foo.onion'); }); } diff --git a/test/parallel/test-domain-ee.js b/test/parallel/test-domain-ee.js index bc53f78445d7ac..a42ccff7181643 100644 --- a/test/parallel/test-domain-ee.js +++ b/test/parallel/test-domain-ee.js @@ -18,3 +18,11 @@ d.on('error', common.mustCall((err) => { d.add(e); e.emit('error', new Error('foobar')); + +{ + // Ensure initial params pass to origin `EventEmitter.init` function + const e = new EventEmitter({ captureRejections: true }); + const kCapture = Object.getOwnPropertySymbols(e) + .find((it) => it.description === 'kCapture'); + assert.strictEqual(e[kCapture], true); +} diff --git a/test/parallel/test-domain-with-abort-on-uncaught-exception.js b/test/parallel/test-domain-with-abort-on-uncaught-exception.js index 5eed67d28ffa58..5f10b19926b955 100644 --- a/test/parallel/test-domain-with-abort-on-uncaught-exception.js +++ b/test/parallel/test-domain-with-abort-on-uncaught-exception.js @@ -49,6 +49,7 @@ if (process.argv[2] === 'child') { try { throw new Error(domainErrHandlerExMessage); } catch { + // Continue regardless of error. } } else { throw new Error(domainErrHandlerExMessage); diff --git a/test/parallel/test-error-serdes.js b/test/parallel/test-error-serdes.js index 82db8582444af3..92d0864348a831 100644 --- a/test/parallel/test-error-serdes.js +++ b/test/parallel/test-error-serdes.js @@ -64,5 +64,5 @@ assert.strictEqual(cycle(Function), '[Function: Function]'); } serializeError(new DynamicError()); - assert.deepStrictEqual(called, true); + assert.strictEqual(called, true); } diff --git a/test/parallel/test-errors-aborterror.js b/test/parallel/test-errors-aborterror.js new file mode 100644 index 00000000000000..15da9f06f94b4d --- /dev/null +++ b/test/parallel/test-errors-aborterror.js @@ -0,0 +1,31 @@ +// Flags: --expose-internals +'use strict'; + +require('../common'); +const { + strictEqual, + throws, +} = require('assert'); +const { AbortError } = require('internal/errors'); + +{ + const err = new AbortError(); + strictEqual(err.message, 'The operation was aborted'); + strictEqual(err.cause, undefined); +} + +{ + const cause = new Error('boom'); + const err = new AbortError('bang', { cause }); + strictEqual(err.message, 'bang'); + strictEqual(err.cause, cause); +} + +{ + throws(() => new AbortError('', false), { + code: 'ERR_INVALID_ARG_TYPE' + }); + throws(() => new AbortError('', ''), { + code: 'ERR_INVALID_ARG_TYPE' + }); +} diff --git a/test/parallel/test-eslint-alphabetize-errors.js b/test/parallel/test-eslint-alphabetize-errors.js index df822f27409520..770602353a757b 100644 --- a/test/parallel/test-eslint-alphabetize-errors.js +++ b/test/parallel/test-eslint-alphabetize-errors.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); const RuleTester = require('../../tools/node_modules/eslint').RuleTester; diff --git a/test/parallel/test-eslint-async-iife-no-unused-result.js b/test/parallel/test-eslint-async-iife-no-unused-result.js index 6e7f60c183b830..c462a22ed2b039 100644 --- a/test/parallel/test-eslint-async-iife-no-unused-result.js +++ b/test/parallel/test-eslint-async-iife-no-unused-result.js @@ -1,7 +1,8 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); const RuleTester = require('../../tools/node_modules/eslint').RuleTester; diff --git a/test/parallel/test-eslint-crypto-check.js b/test/parallel/test-eslint-crypto-check.js index 164149131a9758..37089371a56597 100644 --- a/test/parallel/test-eslint-crypto-check.js +++ b/test/parallel/test-eslint-crypto-check.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-documented-deprecation-codes.js b/test/parallel/test-eslint-documented-deprecation-codes.js new file mode 100644 index 00000000000000..45fec7786a28ac --- /dev/null +++ b/test/parallel/test-eslint-documented-deprecation-codes.js @@ -0,0 +1,42 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +if (!common.hasIntl) + common.skip('missing Intl'); +common.skipIfEslintMissing(); + +const RuleTester = require('../../tools/node_modules/eslint').RuleTester; +const rule = require('../../tools/eslint-rules/documented-deprecation-codes'); + +const mdFile = 'doc/api/deprecations.md'; + +const invalidCode = 'UNDOCUMENTED INVALID CODE'; + +new RuleTester().run('documented-deprecation-codes', rule, { + valid: [ + ` + deprecate(function() { + return this.getHeaders(); + }, 'OutgoingMessage.prototype._headers is deprecated', 'DEP0066') + `, + ], + invalid: [ + { + code: ` + deprecate(function foo(){}, 'bar', '${invalidCode}'); + `, + errors: [ + { + message: `"${invalidCode}" does not match the expected pattern`, + line: 2 + }, + { + message: `"${invalidCode}" is not documented in ${mdFile}`, + line: 2 + }, + ] + }, + ] +}); diff --git a/test/parallel/test-eslint-documented-errors.js b/test/parallel/test-eslint-documented-errors.js index e8abd38a983e5b..6999c06986efdb 100644 --- a/test/parallel/test-eslint-documented-errors.js +++ b/test/parallel/test-eslint-documented-errors.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); const RuleTester = require('../../tools/node_modules/eslint').RuleTester; diff --git a/test/parallel/test-eslint-duplicate-requires.js b/test/parallel/test-eslint-duplicate-requires.js index 5932fac48e0991..bbb3be981aec10 100644 --- a/test/parallel/test-eslint-duplicate-requires.js +++ b/test/parallel/test-eslint-duplicate-requires.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-eslint-check.js b/test/parallel/test-eslint-eslint-check.js index 28ec2e1f10fdb3..3e0162bf2cda03 100644 --- a/test/parallel/test-eslint-eslint-check.js +++ b/test/parallel/test-eslint-eslint-check.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-inspector-check.js b/test/parallel/test-eslint-inspector-check.js index 2d945c3da33188..e6969e80eefc8e 100644 --- a/test/parallel/test-eslint-inspector-check.js +++ b/test/parallel/test-eslint-inspector-check.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); const RuleTester = require('../../tools/node_modules/eslint').RuleTester; diff --git a/test/parallel/test-eslint-lowercase-name-for-primitive.js b/test/parallel/test-eslint-lowercase-name-for-primitive.js index 11cba8f3f8e697..24b42001a4a957 100644 --- a/test/parallel/test-eslint-lowercase-name-for-primitive.js +++ b/test/parallel/test-eslint-lowercase-name-for-primitive.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-no-array-destructuring.js b/test/parallel/test-eslint-no-array-destructuring.js index be59ee69309755..d26e32a03e65d9 100644 --- a/test/parallel/test-eslint-no-array-destructuring.js +++ b/test/parallel/test-eslint-no-array-destructuring.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-no-unescaped-regexp-dot.js b/test/parallel/test-eslint-no-unescaped-regexp-dot.js index 7cf69877ca12ed..1443c6f862c9a5 100644 --- a/test/parallel/test-eslint-no-unescaped-regexp-dot.js +++ b/test/parallel/test-eslint-no-unescaped-regexp-dot.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-non-ascii-character.js b/test/parallel/test-eslint-non-ascii-character.js index 0b4a09f813431b..d1e3b0227eefa9 100644 --- a/test/parallel/test-eslint-non-ascii-character.js +++ b/test/parallel/test-eslint-non-ascii-character.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-prefer-assert-iferror.js b/test/parallel/test-eslint-prefer-assert-iferror.js index 5ccb7883393f46..2bbcc9021b6850 100644 --- a/test/parallel/test-eslint-prefer-assert-iferror.js +++ b/test/parallel/test-eslint-prefer-assert-iferror.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-prefer-assert-methods.js b/test/parallel/test-eslint-prefer-assert-methods.js index 3271f6ab1856b0..91380364b1854c 100644 --- a/test/parallel/test-eslint-prefer-assert-methods.js +++ b/test/parallel/test-eslint-prefer-assert-methods.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-prefer-common-mustnotcall.js b/test/parallel/test-eslint-prefer-common-mustnotcall.js index 5c360bb1ecbec6..d6796b504c1d3a 100644 --- a/test/parallel/test-eslint-prefer-common-mustnotcall.js +++ b/test/parallel/test-eslint-prefer-common-mustnotcall.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-prefer-common-mustsucceed.js b/test/parallel/test-eslint-prefer-common-mustsucceed.js index 302b6a0bee4f38..9b47a350e92224 100644 --- a/test/parallel/test-eslint-prefer-common-mustsucceed.js +++ b/test/parallel/test-eslint-prefer-common-mustsucceed.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-prefer-primordials.js b/test/parallel/test-eslint-prefer-primordials.js index 143ddd2b0d118f..30c8cd25355c5a 100644 --- a/test/parallel/test-eslint-prefer-primordials.js +++ b/test/parallel/test-eslint-prefer-primordials.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); @@ -81,6 +82,51 @@ new RuleTester({ code: 'const { Map } = primordials; new Map()', options: [{ name: 'Map', into: 'Safe' }], }, + { + code: ` + const { Function } = primordials; + const rename = Function; + const obj = { rename }; + `, + options: [{ name: 'Function' }], + }, + { + code: ` + const { Function } = primordials; + let rename; + rename = Function; + const obj = { rename }; + `, + options: [{ name: 'Function' }], + }, + { + code: 'function identifier() {}', + options: [{ name: 'identifier' }] + }, + { + code: 'function* identifier() {}', + options: [{ name: 'identifier' }] + }, + { + code: 'class identifier {}', + options: [{ name: 'identifier' }] + }, + { + code: 'new class { identifier(){} }', + options: [{ name: 'identifier' }] + }, + { + code: 'const a = { identifier: \'4\' }', + options: [{ name: 'identifier' }] + }, + { + code: 'identifier:{const a = 4}', + options: [{ name: 'identifier' }] + }, + { + code: 'switch(0){case identifier:}', + options: [{ name: 'identifier' }] + }, ], invalid: [ { @@ -158,6 +204,16 @@ new RuleTester({ options: [{ name: 'Reflect' }], errors: [{ message: /const { ReflectOwnKeys } = primordials/ }] }, + { + code: ` + const { Reflect } = primordials; + module.exports = function() { + const { ownKeys } = Reflect; + } + `, + options: [{ name: 'Reflect' }], + errors: [{ message: /const { ReflectOwnKeys } = primordials/ }] + }, { code: 'new Map()', options: [{ name: 'Map', into: 'Safe' }], @@ -171,5 +227,36 @@ new RuleTester({ options: [{ name: 'Function' }], errors: [{ message: /const { FunctionPrototype } = primordials/ }] }, + { + code: ` + const obj = { Function }; + `, + options: [{ name: 'Function' }], + errors: [{ message: /const { Function } = primordials/ }] + }, + { + code: ` + const rename = Function; + `, + options: [{ name: 'Function' }], + errors: [{ message: /const { Function } = primordials/ }] + }, + { + code: ` + const rename = Function; + const obj = { rename }; + `, + options: [{ name: 'Function' }], + errors: [{ message: /const { Function } = primordials/ }] + }, + { + code: ` + let rename; + rename = Function; + const obj = { rename }; + `, + options: [{ name: 'Function' }], + errors: [{ message: /const { Function } = primordials/ }] + }, ] }); diff --git a/test/parallel/test-eslint-prefer-util-format-errors.js b/test/parallel/test-eslint-prefer-util-format-errors.js index a6c2662a382418..8a717f0da1f5f3 100644 --- a/test/parallel/test-eslint-prefer-util-format-errors.js +++ b/test/parallel/test-eslint-prefer-util-format-errors.js @@ -3,8 +3,9 @@ /* eslint-disable no-template-curly-in-string */ const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-require-common-first.js b/test/parallel/test-eslint-require-common-first.js index b3d132e11fdc3f..83fbbba72c3c24 100644 --- a/test/parallel/test-eslint-require-common-first.js +++ b/test/parallel/test-eslint-require-common-first.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-eslint-required-modules.js b/test/parallel/test-eslint-required-modules.js index c891e2350711a4..a27409c0f9ea7a 100644 --- a/test/parallel/test-eslint-required-modules.js +++ b/test/parallel/test-eslint-required-modules.js @@ -1,8 +1,9 @@ 'use strict'; const common = require('../common'); -if (!common.hasCrypto) - common.skip('missing crypto'); +if ((!common.hasCrypto) || (!common.hasIntl)) { + common.skip('ESLint tests require crypto and Intl'); +} common.skipIfEslintMissing(); diff --git a/test/parallel/test-event-emitter-check-listener-leaks.js b/test/parallel/test-event-emitter-check-listener-leaks.js index 037d090e6332a4..04ef3ddab1b0d8 100644 --- a/test/parallel/test-event-emitter-check-listener-leaks.js +++ b/test/parallel/test-event-emitter-check-listener-leaks.js @@ -32,7 +32,7 @@ const events = require('events'); for (let i = 0; i < 10; i++) { e.on('default', common.mustNotCall()); } - assert.ok(!e._events.default.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.default, 'warned')); e.on('default', common.mustNotCall()); assert.ok(e._events.default.warned); @@ -40,32 +40,32 @@ const events = require('events'); const symbol = Symbol('symbol'); e.setMaxListeners(1); e.on(symbol, common.mustNotCall()); - assert.ok(!e._events[symbol].hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events[symbol], 'warned')); e.on(symbol, common.mustNotCall()); - assert.ok(e._events[symbol].hasOwnProperty('warned')); + assert.ok(Object.hasOwn(e._events[symbol], 'warned')); // specific e.setMaxListeners(5); for (let i = 0; i < 5; i++) { e.on('specific', common.mustNotCall()); } - assert.ok(!e._events.specific.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.specific, 'warned')); e.on('specific', common.mustNotCall()); assert.ok(e._events.specific.warned); // only one e.setMaxListeners(1); e.on('only one', common.mustNotCall()); - assert.ok(!e._events['only one'].hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events['only one'], 'warned')); e.on('only one', common.mustNotCall()); - assert.ok(e._events['only one'].hasOwnProperty('warned')); + assert.ok(Object.hasOwn(e._events['only one'], 'warned')); // unlimited e.setMaxListeners(0); for (let i = 0; i < 1000; i++) { e.on('unlimited', common.mustNotCall()); } - assert.ok(!e._events.unlimited.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.unlimited, 'warned')); } // process-wide @@ -76,16 +76,16 @@ const events = require('events'); for (let i = 0; i < 42; ++i) { e.on('fortytwo', common.mustNotCall()); } - assert.ok(!e._events.fortytwo.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.fortytwo, 'warned')); e.on('fortytwo', common.mustNotCall()); - assert.ok(e._events.fortytwo.hasOwnProperty('warned')); + assert.ok(Object.hasOwn(e._events.fortytwo, 'warned')); delete e._events.fortytwo.warned; events.EventEmitter.defaultMaxListeners = 44; e.on('fortytwo', common.mustNotCall()); - assert.ok(!e._events.fortytwo.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.fortytwo, 'warned')); e.on('fortytwo', common.mustNotCall()); - assert.ok(e._events.fortytwo.hasOwnProperty('warned')); + assert.ok(Object.hasOwn(e._events.fortytwo, 'warned')); } // But _maxListeners still has precedence over defaultMaxListeners @@ -94,9 +94,9 @@ const events = require('events'); const e = new events.EventEmitter(); e.setMaxListeners(1); e.on('uno', common.mustNotCall()); - assert.ok(!e._events.uno.hasOwnProperty('warned')); + assert.ok(!Object.hasOwn(e._events.uno, 'warned')); e.on('uno', common.mustNotCall()); - assert.ok(e._events.uno.hasOwnProperty('warned')); + assert.ok(Object.hasOwn(e._events.uno, 'warned')); // chainable assert.strictEqual(e, e.setMaxListeners(1)); diff --git a/test/parallel/test-event-emitter-subclass.js b/test/parallel/test-event-emitter-subclass.js index 1157f334594981..a6ef54e5fa7401 100644 --- a/test/parallel/test-event-emitter-subclass.js +++ b/test/parallel/test-event-emitter-subclass.js @@ -36,8 +36,6 @@ function MyEE(cb) { const myee = new MyEE(common.mustCall()); -myee.hasOwnProperty('usingDomains'); - Object.setPrototypeOf(ErrorEE.prototype, EventEmitter.prototype); Object.setPrototypeOf(ErrorEE, EventEmitter); function ErrorEE() { diff --git a/test/parallel/test-eventemitter-asyncresource.js b/test/parallel/test-eventemitter-asyncresource.js new file mode 100644 index 00000000000000..4cd2bc69207219 --- /dev/null +++ b/test/parallel/test-eventemitter-asyncresource.js @@ -0,0 +1,159 @@ +'use strict'; + +const common = require('../common'); +const { EventEmitterAsyncResource } = require('events'); +const { + createHook, + executionAsyncId, +} = require('async_hooks'); + +const { + deepStrictEqual, + strictEqual, + throws, +} = require('assert'); + +const { + setImmediate: tick, +} = require('timers/promises'); + +function makeHook(trackedTypes) { + const eventMap = new Map(); + + function log(asyncId, name) { + const entry = eventMap.get(asyncId); + if (entry !== undefined) entry.push({ name }); + } + + const hook = createHook({ + init(asyncId, type, triggerAsyncId, resource) { + if (trackedTypes.includes(type)) { + eventMap.set(asyncId, [ + { + name: 'init', + type, + triggerAsyncId, + resource, + }, + ]); + } + }, + + before(asyncId) { log(asyncId, 'before'); }, + after(asyncId) { log(asyncId, 'after'); }, + destroy(asyncId) { log(asyncId, 'destroy'); } + }).enable(); + + return { + done() { + hook.disable(); + return new Set(eventMap.values()); + }, + ids() { + return new Set(eventMap.keys()); + } + }; +} + +// Tracks emit() calls correctly using async_hooks +(async () => { + const tracer = makeHook(['Foo']); + + class Foo extends EventEmitterAsyncResource {} + + const origExecutionAsyncId = executionAsyncId(); + const foo = new Foo(); + + foo.on('someEvent', common.mustCall()); + foo.emit('someEvent'); + + deepStrictEqual([foo.asyncId], [...tracer.ids()]); + strictEqual(foo.triggerAsyncId, origExecutionAsyncId); + strictEqual(foo.asyncResource.eventEmitter, foo); + + foo.emitDestroy(); + + await tick(); + + deepStrictEqual(tracer.done(), new Set([ + [ + { + name: 'init', + type: 'Foo', + triggerAsyncId: origExecutionAsyncId, + resource: foo.asyncResource, + }, + { name: 'before' }, + { name: 'after' }, + { name: 'destroy' }, + ], + ])); +})().then(common.mustCall()); + +// Can explicitly specify name as positional arg +(async () => { + const tracer = makeHook(['ResourceName']); + + const origExecutionAsyncId = executionAsyncId(); + class Foo extends EventEmitterAsyncResource {} + + const foo = new Foo('ResourceName'); + + deepStrictEqual(tracer.done(), new Set([ + [ + { + name: 'init', + type: 'ResourceName', + triggerAsyncId: origExecutionAsyncId, + resource: foo.asyncResource, + }, + ], + ])); +})().then(common.mustCall()); + +// Can explicitly specify name as option +(async () => { + const tracer = makeHook(['ResourceName']); + + const origExecutionAsyncId = executionAsyncId(); + class Foo extends EventEmitterAsyncResource {} + + const foo = new Foo({ name: 'ResourceName' }); + + deepStrictEqual(tracer.done(), new Set([ + [ + { + name: 'init', + type: 'ResourceName', + triggerAsyncId: origExecutionAsyncId, + resource: foo.asyncResource, + }, + ], + ])); +})().then(common.mustCall()); + +// Member methods ERR_INVALID_THIS +throws( + () => EventEmitterAsyncResource.prototype.emit(), + { code: 'ERR_INVALID_THIS' } +); + +throws( + () => EventEmitterAsyncResource.prototype.emitDestroy(), + { code: 'ERR_INVALID_THIS' } +); + +throws( + () => Reflect.get(EventEmitterAsyncResource.prototype, 'asyncId', {}), + { code: 'ERR_INVALID_THIS' } +); + +throws( + () => Reflect.get(EventEmitterAsyncResource.prototype, 'triggerAsyncId', {}), + { code: 'ERR_INVALID_THIS' } +); + +throws( + () => Reflect.get(EventEmitterAsyncResource.prototype, 'asyncResource', {}), + { code: 'ERR_INVALID_THIS' } +); diff --git a/test/parallel/test-events-uncaught-exception-stack.js b/test/parallel/test-events-uncaught-exception-stack.js index 793a6b0c2ae5e9..e330f254aea3c5 100644 --- a/test/parallel/test-events-uncaught-exception-stack.js +++ b/test/parallel/test-events-uncaught-exception-stack.js @@ -9,7 +9,7 @@ process.on('uncaughtException', common.mustCall((err) => { const lines = err.stack.split('\n'); assert.strictEqual(lines[0], 'Error'); lines.slice(1).forEach((line) => { - assert.match(line, /^ at/); + assert.match(line, /^ {4}at/); }); })); diff --git a/test/parallel/test-eventtarget.js b/test/parallel/test-eventtarget.js index d3b1ee7358a104..0211dc964d253a 100644 --- a/test/parallel/test-eventtarget.js +++ b/test/parallel/test-eventtarget.js @@ -408,6 +408,13 @@ let asyncTest = Promise.resolve(); target.onfoo = common.mustCall(); target.dispatchEvent(new Event('foo')); } + +{ + const target = new EventTarget(); + defineEventHandler(target, 'foo'); + strictEqual(target.onfoo, null); +} + { const target = new EventTarget(); defineEventHandler(target, 'foo'); @@ -623,14 +630,14 @@ let asyncTest = Promise.resolve(); strictEqual(et.constructor.name, 'EventTarget'); } { - // Weak event handlers work + // Weak event listeners work const et = new EventTarget(); const listener = common.mustCall(); et.addEventListener('foo', listener, { [kWeakHandler]: et }); et.dispatchEvent(new Event('foo')); } { - // Weak event handlers can be removed and weakness is not part of the key + // Weak event listeners can be removed and weakness is not part of the key const et = new EventTarget(); const listener = common.mustNotCall(); et.addEventListener('foo', listener, { [kWeakHandler]: et }); diff --git a/test/parallel/test-fetch-disabled.mjs b/test/parallel/test-fetch-disabled.mjs new file mode 100644 index 00000000000000..839cdf8f2ac947 --- /dev/null +++ b/test/parallel/test-fetch-disabled.mjs @@ -0,0 +1,9 @@ +import '../common/index.mjs'; + +import assert from 'assert'; + +assert.strictEqual(typeof globalThis.fetch, 'undefined'); +assert.strictEqual(typeof globalThis.FormData, 'undefined'); +assert.strictEqual(typeof globalThis.Headers, 'undefined'); +assert.strictEqual(typeof globalThis.Request, 'undefined'); +assert.strictEqual(typeof globalThis.Response, 'undefined'); diff --git a/test/parallel/test-fetch.mjs b/test/parallel/test-fetch.mjs new file mode 100644 index 00000000000000..d435ec3fa6e2b5 --- /dev/null +++ b/test/parallel/test-fetch.mjs @@ -0,0 +1,33 @@ +// Flags: --experimental-fetch --no-warnings + +import '../common/index.mjs'; + +import assert from 'assert'; +import events from 'events'; +import http from 'http'; + +assert.strictEqual(typeof globalThis.fetch, 'function'); +assert.strictEqual(typeof globalThis.FormData, 'function'); +assert.strictEqual(typeof globalThis.Headers, 'function'); +assert.strictEqual(typeof globalThis.Request, 'function'); +assert.strictEqual(typeof globalThis.Response, 'function'); + +const server = http.createServer((req, res) => { + // TODO: Remove this once keep-alive behavior can be disabled from the client + // side. + res.setHeader('Keep-Alive', 'timeout=0, max=0'); + res.end('Hello world'); +}); +server.listen(0); +await events.once(server, 'listening'); +const port = server.address().port; + +const response = await fetch(`http://localhost:${port}`); + +assert(response instanceof Response); +assert.strictEqual(response.status, 200); +assert.strictEqual(response.statusText, 'OK'); +const body = await response.text(); +assert.strictEqual(body, 'Hello world'); + +server.close(); diff --git a/test/parallel/test-file-write-stream2.js b/test/parallel/test-file-write-stream2.js index 487b5d44054373..eac81b805b108a 100644 --- a/test/parallel/test-file-write-stream2.js +++ b/test/parallel/test-file-write-stream2.js @@ -56,7 +56,9 @@ process.on('exit', function() { function removeTestFile() { try { fs.unlinkSync(filepath); - } catch {} + } catch { + // Continue regardless of error. + } } diff --git a/test/parallel/test-fs-access.js b/test/parallel/test-fs-access.js index 9fa4dfcf1fe4d8..8cc1afe39a9dd7 100644 --- a/test/parallel/test-fs-access.js +++ b/test/parallel/test-fs-access.js @@ -60,6 +60,7 @@ if (!common.isWindows && process.getuid() === 0) { process.setuid('nobody'); hasWriteAccessForReadonlyFile = false; } catch { + // Continue regardless of error. } } @@ -82,10 +83,10 @@ fs.access(__filename, fs.R_OK, common.mustCall(function(...args) { fs.promises.access(__filename, fs.R_OK) .then(common.mustCall()) .catch(throwNextTick); -fs.access(readOnlyFile, fs.F_OK | fs.R_OK, common.mustCall(function(...args) { +fs.access(readOnlyFile, fs.R_OK, common.mustCall(function(...args) { assert.deepStrictEqual(args, [null]); })); -fs.promises.access(readOnlyFile, fs.F_OK | fs.R_OK) +fs.promises.access(readOnlyFile, fs.R_OK) .then(common.mustCall()) .catch(throwNextTick); @@ -153,7 +154,7 @@ assert.throws( // Regular access should not throw. fs.accessSync(__filename); -const mode = fs.F_OK | fs.R_OK | fs.W_OK; +const mode = fs.R_OK | fs.W_OK; fs.accessSync(readWriteFile, mode); // Invalid modes should throw. diff --git a/test/parallel/test-fs-cp.mjs b/test/parallel/test-fs-cp.mjs index 804b5a1f4c322c..dfe6254c6b6494 100644 --- a/test/parallel/test-fs-cp.mjs +++ b/test/parallel/test-fs-cp.mjs @@ -95,6 +95,77 @@ function nextdir() { } +// It throws error when verbatimSymlinks is not a boolean. +{ + const src = './test/fixtures/copy/kitchen-sink'; + [1, [], {}, null, 1n, undefined, null, Symbol(), '', () => {}] + .forEach((verbatimSymlinks) => { + assert.throws( + () => cpSync(src, src, { verbatimSymlinks }), + { code: 'ERR_INVALID_ARG_TYPE' } + ); + }); +} + + +// It throws an error when both dereference and verbatimSymlinks are enabled. +{ + const src = './test/fixtures/copy/kitchen-sink'; + assert.throws( + () => cpSync(src, src, { dereference: true, verbatimSymlinks: true }), + { code: 'ERR_INCOMPATIBLE_OPTION_PAIR' } + ); +} + + +// It resolves relative symlinks to their absolute path by default. +{ + const src = nextdir(); + mkdirSync(src, { recursive: true }); + writeFileSync(join(src, 'foo.js'), 'foo', 'utf8'); + symlinkSync('foo.js', join(src, 'bar.js')); + + const dest = nextdir(); + mkdirSync(dest, { recursive: true }); + + cpSync(src, dest, { recursive: true }); + const link = readlinkSync(join(dest, 'bar.js')); + assert.strictEqual(link, join(src, 'foo.js')); +} + + +// It resolves relative symlinks when verbatimSymlinks is false. +{ + const src = nextdir(); + mkdirSync(src, { recursive: true }); + writeFileSync(join(src, 'foo.js'), 'foo', 'utf8'); + symlinkSync('foo.js', join(src, 'bar.js')); + + const dest = nextdir(); + mkdirSync(dest, { recursive: true }); + + cpSync(src, dest, { recursive: true, verbatimSymlinks: false }); + const link = readlinkSync(join(dest, 'bar.js')); + assert.strictEqual(link, join(src, 'foo.js')); +} + + +// It does not resolve relative symlinks when verbatimSymlinks is true. +{ + const src = nextdir(); + mkdirSync(src, { recursive: true }); + writeFileSync(join(src, 'foo.js'), 'foo', 'utf8'); + symlinkSync('foo.js', join(src, 'bar.js')); + + const dest = nextdir(); + mkdirSync(dest, { recursive: true }); + + cpSync(src, dest, { recursive: true, verbatimSymlinks: true }); + const link = readlinkSync(join(dest, 'bar.js')); + assert.strictEqual(link, 'foo.js'); +} + + // It throws error when src and dest are identical. { const src = './test/fixtures/copy/kitchen-sink'; diff --git a/test/parallel/test-fs-promises-file-handle-chmod.js b/test/parallel/test-fs-promises-file-handle-chmod.js index 5a5f84be80ffd9..5c7414a9b1b134 100644 --- a/test/parallel/test-fs-promises-file-handle-chmod.js +++ b/test/parallel/test-fs-promises-file-handle-chmod.js @@ -19,7 +19,7 @@ async function validateFilePermission() { const fileHandle = await open(filePath, 'w+', 0o444); // File created with r--r--r-- 444 const statsBeforeMod = fs.statSync(filePath); - assert.deepStrictEqual(statsBeforeMod.mode & 0o444, 0o444); + assert.strictEqual(statsBeforeMod.mode & 0o444, 0o444); let expectedAccess; const newPermissions = 0o765; diff --git a/test/parallel/test-fs-promises-file-handle-read.js b/test/parallel/test-fs-promises-file-handle-read.js index 44ef2c6b815a3d..34a70c61d7e445 100644 --- a/test/parallel/test-fs-promises-file-handle-read.js +++ b/test/parallel/test-fs-promises-file-handle-read.js @@ -68,6 +68,34 @@ async function validateReadNoParams() { await fileHandle.read(); } +// Validates that the zero position is respected after the position has been +// moved. The test iterates over the xyz chars twice making sure that the values +// are read from the correct position. +async function validateReadWithPositionZero() { + const opts = { useConf: true }; + const filePath = fixtures.path('x.txt'); + const fileHandle = await open(filePath, 'r'); + const expectedSequence = ['x', 'y', 'z']; + + for (let i = 0; i < expectedSequence.length * 2; i++) { + const len = 1; + const pos = i % 3; + const buf = Buffer.alloc(len); + const { bytesRead } = await read(fileHandle, buf, 0, len, pos, opts); + assert.strictEqual(bytesRead, len); + assert.strictEqual(buf.toString(), expectedSequence[pos]); + } +} + +async function validateReadLength(len) { + const buf = Buffer.alloc(4); + const opts = { useConf: true }; + const filePath = fixtures.path('x.txt'); + const fileHandle = await open(filePath, 'r'); + const { bytesRead } = await read(fileHandle, buf, 0, len, 0, opts); + assert.strictEqual(bytesRead, len); +} + (async function() { tmpdir.refresh(); @@ -78,4 +106,7 @@ async function validateReadNoParams() { await validateLargeRead({ useConf: false }); await validateLargeRead({ useConf: true }); await validateReadNoParams(); + await validateReadWithPositionZero(); + await validateReadLength(0); + await validateReadLength(1); })().then(common.mustCall()); diff --git a/test/parallel/test-fs-promises-file-handle-truncate.js b/test/parallel/test-fs-promises-file-handle-truncate.js index ca83755f19e111..13db8f03155dfc 100644 --- a/test/parallel/test-fs-promises-file-handle-truncate.js +++ b/test/parallel/test-fs-promises-file-handle-truncate.js @@ -16,10 +16,10 @@ async function validateTruncate() { const buffer = Buffer.from(text, 'utf8'); await fileHandle.write(buffer, 0, buffer.length); - assert.deepStrictEqual((await readFile(filename)).toString(), text); + assert.strictEqual((await readFile(filename)).toString(), text); await fileHandle.truncate(5); - assert.deepStrictEqual((await readFile(filename)).toString(), 'Hello'); + assert.strictEqual((await readFile(filename)).toString(), 'Hello'); await fileHandle.close(); } diff --git a/test/parallel/test-fs-promises-readfile-with-fd.js b/test/parallel/test-fs-promises-readfile-with-fd.js index 3d4b1dc168fe30..999a0a4c94b941 100644 --- a/test/parallel/test-fs-promises-readfile-with-fd.js +++ b/test/parallel/test-fs-promises-readfile-with-fd.js @@ -22,10 +22,10 @@ async function readFileTest() { const buf = Buffer.alloc(5); const { bytesRead } = await handle.read(buf, 0, 5, null); assert.strictEqual(bytesRead, 5); - assert.deepStrictEqual(buf.toString(), 'Hello'); + assert.strictEqual(buf.toString(), 'Hello'); /* readFile() should read from position five, instead of zero. */ - assert.deepStrictEqual((await handle.readFile()).toString(), ' World'); + assert.strictEqual((await handle.readFile()).toString(), ' World'); await handle.close(); } diff --git a/test/parallel/test-fs-promises-watch.js b/test/parallel/test-fs-promises-watch.js index c8c2d9250bad03..055e798d0e49e4 100644 --- a/test/parallel/test-fs-promises-watch.js +++ b/test/parallel/test-fs-promises-watch.js @@ -47,9 +47,11 @@ for (const testCase of kCases) { const content1 = Date.now() + testCase.fileName.toLowerCase().repeat(1e4); fs.writeFileSync(testCase.filePath, content1); + let interval; async function test() { const watcher = watch(testCase[testCase.field]); for await (const { eventType, filename } of watcher) { + clearInterval(interval); assert.strictEqual(['rename', 'change'].includes(eventType), true); assert.strictEqual(filename, testCase.fileName); break; @@ -64,42 +66,54 @@ for (const testCase of kCases) { // Long content so it's actually flushed. toUpperCase so there's real change. const content2 = Date.now() + testCase.fileName.toUpperCase().repeat(1e4); - setImmediate(() => { + interval = setInterval(() => { fs.writeFileSync(testCase.filePath, ''); fs.writeFileSync(testCase.filePath, content2); - }); + }, 100); test().then(common.mustCall()); } assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch(1)) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch(1)) { } + }, { code: 'ERR_INVALID_ARG_TYPE' }); assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch(__filename, 1)) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch(__filename, 1)) { } + }, { code: 'ERR_INVALID_ARG_TYPE' }); assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch('', { persistent: 1 })) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch('', { persistent: 1 })) { } + }, { code: 'ERR_INVALID_ARG_TYPE' }); assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch('', { recursive: 1 })) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch('', { recursive: 1 })) { } + }, { code: 'ERR_INVALID_ARG_TYPE' }); assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch('', { encoding: 1 })) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch('', { encoding: 1 })) { } + }, { code: 'ERR_INVALID_ARG_VALUE' }); assert.rejects( - // eslint-disable-next-line no-unused-vars - async () => { for await (const _ of watch('', { signal: 1 })) {} }, + async () => { + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch('', { signal: 1 })) { } + }, { code: 'ERR_INVALID_ARG_TYPE' }); (async () => { @@ -107,8 +121,8 @@ assert.rejects( const { signal } = ac; setImmediate(() => ac.abort()); try { - // eslint-disable-next-line no-unused-vars - for await (const _ of watch(__filename, { signal })) {} + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of watch(__filename, { signal })) { } } catch (err) { assert.strictEqual(err.name, 'AbortError'); } diff --git a/test/parallel/test-fs-promises-writefile-with-fd.js b/test/parallel/test-fs-promises-writefile-with-fd.js index 35a493f8cdd25c..12ba9954c2f1b2 100644 --- a/test/parallel/test-fs-promises-writefile-with-fd.js +++ b/test/parallel/test-fs-promises-writefile-with-fd.js @@ -26,7 +26,7 @@ async function writeFileTest() { await handle.writeFile('World'); /* New content should be written at position five, instead of zero. */ - assert.deepStrictEqual(readFileSync(fn).toString(), 'HelloWorld'); + assert.strictEqual(readFileSync(fn).toString(), 'HelloWorld'); await handle.close(); } diff --git a/test/parallel/test-fs-promises.js b/test/parallel/test-fs-promises.js index 5da1e55ffd2586..03f71069897345 100644 --- a/test/parallel/test-fs-promises.js +++ b/test/parallel/test-fs-promises.js @@ -183,7 +183,7 @@ async function executeOnHandle(dest, func) { assert.strictEqual(ret.bytesRead, bufLen); assert.deepStrictEqual(ret.buffer, buf); await truncate(dest, 5); - assert.deepStrictEqual((await readFile(dest)).toString(), 'hello'); + assert.strictEqual((await readFile(dest)).toString(), 'hello'); }); } diff --git a/test/parallel/test-fs-readSync-optional-params.js b/test/parallel/test-fs-readSync-optional-params.js index 37d3d24911db51..00f1a5531cf6ea 100644 --- a/test/parallel/test-fs-readSync-optional-params.js +++ b/test/parallel/test-fs-readSync-optional-params.js @@ -5,23 +5,53 @@ const fixtures = require('../common/fixtures'); const fs = require('fs'); const assert = require('assert'); const filepath = fixtures.path('x.txt'); -const fd = fs.openSync(filepath, 'r'); const expected = Buffer.from('xyz\n'); function runTest(defaultBuffer, options) { - const result = fs.readSync(fd, defaultBuffer, options); - assert.strictEqual(result, expected.length); - assert.deepStrictEqual(defaultBuffer, expected); + let fd; + try { + fd = fs.openSync(filepath, 'r'); + const result = fs.readSync(fd, defaultBuffer, options); + assert.strictEqual(result, expected.length); + assert.deepStrictEqual(defaultBuffer, expected); + } finally { + if (fd != null) fs.closeSync(fd); + } } -// Test passing in an empty options object -runTest(Buffer.allocUnsafe(expected.length), { position: 0 }); +for (const options of [ -// Test not passing in any options object -runTest(Buffer.allocUnsafe(expected.length)); + // Test options object + { offset: 0 }, + { length: expected.length }, + { position: 0 }, + { offset: 0, length: expected.length }, + { offset: 0, position: 0 }, + { length: expected.length, position: 0 }, + { offset: 0, length: expected.length, position: 0 }, -// Test passing in options -runTest(Buffer.allocUnsafe(expected.length), { offset: 0, - length: expected.length, - position: 0 }); + { offset: null }, + { position: null }, + { position: -1 }, + { position: 0n }, + + // Test default params + {}, + null, + undefined, + + // Test if bad params are interpreted as default (not mandatory) + false, + true, + Infinity, + 42n, + Symbol(), + + // Test even more malicious corner cases + '4'.repeat(expected.length), + new String('4444'), + [4, 4, 4, 4], +]) { + runTest(Buffer.allocUnsafe(expected.length), options); +} diff --git a/test/parallel/test-fs-readfile-fd.js b/test/parallel/test-fs-readfile-fd.js index d7bf11c2d8d671..933b3c9748ed3c 100644 --- a/test/parallel/test-fs-readfile-fd.js +++ b/test/parallel/test-fs-readfile-fd.js @@ -64,11 +64,11 @@ function tempFdSync(callback) { // Read only five bytes, so that the position moves to five. const buf = Buffer.alloc(5); - assert.deepStrictEqual(fs.readSync(fd, buf, 0, 5), 5); - assert.deepStrictEqual(buf.toString(), 'Hello'); + assert.strictEqual(fs.readSync(fd, buf, 0, 5), 5); + assert.strictEqual(buf.toString(), 'Hello'); // readFileSync() should read from position five, instead of zero. - assert.deepStrictEqual(fs.readFileSync(fd).toString(), ' World'); + assert.strictEqual(fs.readFileSync(fd).toString(), ' World'); fs.closeSync(fd); } @@ -81,11 +81,11 @@ function tempFdSync(callback) { // Read only five bytes, so that the position moves to five. fs.read(fd, buf, 0, 5, null, common.mustSucceed((bytes) => { assert.strictEqual(bytes, 5); - assert.deepStrictEqual(buf.toString(), 'Hello'); + assert.strictEqual(buf.toString(), 'Hello'); fs.readFile(fd, common.mustSucceed((data) => { // readFile() should read from position five, instead of zero. - assert.deepStrictEqual(data.toString(), ' World'); + assert.strictEqual(data.toString(), ' World'); fs.closeSync(fd); })); diff --git a/test/parallel/test-fs-readv-promises.js b/test/parallel/test-fs-readv-promises.js index 1d12126e557683..ae3c92926ea221 100644 --- a/test/parallel/test-fs-readv-promises.js +++ b/test/parallel/test-fs-readv-promises.js @@ -35,11 +35,11 @@ const allocateEmptyBuffers = (combinedLength) => { let { bytesRead, buffers } = await handle.readv([Buffer.from('')], null); - assert.deepStrictEqual(bytesRead, 0); + assert.strictEqual(bytesRead, 0); assert.deepStrictEqual(buffers, [Buffer.from('')]); ({ bytesRead, buffers } = await handle.readv(bufferArr, null)); - assert.deepStrictEqual(bytesRead, expectedLength); + assert.strictEqual(bytesRead, expectedLength); assert.deepStrictEqual(buffers, bufferArr); assert(Buffer.concat(bufferArr).equals(await fs.readFile(filename))); handle.close(); @@ -54,11 +54,11 @@ const allocateEmptyBuffers = (combinedLength) => { const expectedLength = exptectedBuff.length; let { bytesRead, buffers } = await handle.readv([Buffer.from('')]); - assert.deepStrictEqual(bytesRead, 0); + assert.strictEqual(bytesRead, 0); assert.deepStrictEqual(buffers, [Buffer.from('')]); ({ bytesRead, buffers } = await handle.readv(bufferArr)); - assert.deepStrictEqual(bytesRead, expectedLength); + assert.strictEqual(bytesRead, expectedLength); assert.deepStrictEqual(buffers, bufferArr); assert(Buffer.concat(bufferArr).equals(await fs.readFile(filename))); handle.close(); diff --git a/test/parallel/test-fs-readv-sync.js b/test/parallel/test-fs-readv-sync.js index 9da39824d7f583..6a09de7466de5a 100644 --- a/test/parallel/test-fs-readv-sync.js +++ b/test/parallel/test-fs-readv-sync.js @@ -32,10 +32,10 @@ const allocateEmptyBuffers = (combinedLength) => { const bufferArr = allocateEmptyBuffers(exptectedBuff.length); let read = fs.readvSync(fd, [Buffer.from('')], 0); - assert.deepStrictEqual(read, 0); + assert.strictEqual(read, 0); read = fs.readvSync(fd, bufferArr, 0); - assert.deepStrictEqual(read, expectedLength); + assert.strictEqual(read, expectedLength); fs.closeSync(fd); @@ -49,10 +49,10 @@ const allocateEmptyBuffers = (combinedLength) => { const bufferArr = allocateEmptyBuffers(exptectedBuff.length); let read = fs.readvSync(fd, [Buffer.from('')]); - assert.deepStrictEqual(read, 0); + assert.strictEqual(read, 0); read = fs.readvSync(fd, bufferArr); - assert.deepStrictEqual(read, expectedLength); + assert.strictEqual(read, expectedLength); fs.closeSync(fd); diff --git a/test/parallel/test-fs-realpath.js b/test/parallel/test-fs-realpath.js index 488e4b4ceaada3..3e9f3512b802fc 100644 --- a/test/parallel/test-fs-realpath.js +++ b/test/parallel/test-fs-realpath.js @@ -108,7 +108,9 @@ function test_simple_relative_symlink(realpath, realpathSync, callback) { [ [entry, `../${path.basename(tmpDir)}/cycles/root.js`], ].forEach(function(t) { - try { fs.unlinkSync(t[0]); } catch {} + try { fs.unlinkSync(t[0]); } catch { + // Continue regardless of error. + } console.log('fs.symlinkSync(%j, %j, %j)', t[1], t[0], 'file'); fs.symlinkSync(t[1], t[0], 'file'); unlink.push(t[0]); @@ -134,7 +136,9 @@ function test_simple_absolute_symlink(realpath, realpathSync, callback) { [ [entry, expected], ].forEach(function(t) { - try { fs.unlinkSync(t[0]); } catch {} + try { fs.unlinkSync(t[0]); } catch { + // Continue regardless of error. + } console.error('fs.symlinkSync(%j, %j, %j)', t[1], t[0], type); fs.symlinkSync(t[1], t[0], type); unlink.push(t[0]); @@ -159,13 +163,17 @@ function test_deep_relative_file_symlink(realpath, realpathSync, callback) { expected); const linkPath1 = path.join(targetsAbsDir, 'nested-index', 'one', 'symlink1.js'); - try { fs.unlinkSync(linkPath1); } catch {} + try { fs.unlinkSync(linkPath1); } catch { + // Continue regardless of error. + } fs.symlinkSync(linkData1, linkPath1, 'file'); const linkData2 = '../one/symlink1.js'; const entry = path.join(targetsAbsDir, 'nested-index', 'two', 'symlink1-b.js'); - try { fs.unlinkSync(entry); } catch {} + try { fs.unlinkSync(entry); } catch { + // Continue regardless of error. + } fs.symlinkSync(linkData2, entry, 'file'); unlink.push(linkPath1); unlink.push(entry); @@ -186,13 +194,17 @@ function test_deep_relative_dir_symlink(realpath, realpathSync, callback) { const path1b = path.join(targetsAbsDir, 'nested-index', 'one'); const linkPath1b = path.join(path1b, 'symlink1-dir'); const linkData1b = path.relative(path1b, expected); - try { fs.unlinkSync(linkPath1b); } catch {} + try { fs.unlinkSync(linkPath1b); } catch { + // Continue regardless of error. + } fs.symlinkSync(linkData1b, linkPath1b, 'dir'); const linkData2b = '../one/symlink1-dir'; const entry = path.join(targetsAbsDir, 'nested-index', 'two', 'symlink12-dir'); - try { fs.unlinkSync(entry); } catch {} + try { fs.unlinkSync(entry); } catch { + // Continue regardless of error. + } fs.symlinkSync(linkData2b, entry, 'dir'); unlink.push(linkPath1b); unlink.push(entry); @@ -216,7 +228,9 @@ function test_cyclic_link_protection(realpath, realpathSync, callback) { [path.join(tmpDir, '/cycles/realpath-3b'), '../cycles/realpath-3c'], [path.join(tmpDir, '/cycles/realpath-3c'), '../cycles/realpath-3a'], ].forEach(function(t) { - try { fs.unlinkSync(t[0]); } catch {} + try { fs.unlinkSync(t[0]); } catch { + // Continue regardless of error. + } fs.symlinkSync(t[1], t[0], 'dir'); unlink.push(t[0]); }); @@ -243,7 +257,9 @@ function test_cyclic_link_overprotection(realpath, realpathSync, callback) { const link = `${folder}/cycles`; let testPath = cycles; testPath += '/folder/cycles'.repeat(10); - try { fs.unlinkSync(link); } catch {} + try { fs.unlinkSync(link); } catch { + // Continue regardless of error. + } fs.symlinkSync(cycles, link, 'dir'); unlink.push(link); assertEqualPath(realpathSync(testPath), path.resolve(expected)); @@ -271,7 +287,9 @@ function test_relative_input_cwd(realpath, realpathSync, callback) { ].forEach(function(t) { const fn = t[0]; console.error('fn=%j', fn); - try { fs.unlinkSync(fn); } catch {} + try { fs.unlinkSync(fn); } catch { + // Continue regardless of error. + } const b = path.basename(t[1]); const type = (b === 'root.js' ? 'file' : 'dir'); console.log('fs.symlinkSync(%j, %j, %j)', t[1], fn, type); @@ -309,8 +327,12 @@ function test_deep_symlink_mix(realpath, realpathSync, callback) { // $tmpDir/targets/cycles/root.js (hard) const entry = tmp('node-test-realpath-f1'); - try { fs.unlinkSync(tmp('node-test-realpath-d2/foo')); } catch {} - try { fs.rmdirSync(tmp('node-test-realpath-d2')); } catch {} + try { fs.unlinkSync(tmp('node-test-realpath-d2/foo')); } catch { + // Continue regardless of error. + } + try { fs.rmdirSync(tmp('node-test-realpath-d2')); } catch { + // Continue regardless of error. + } fs.mkdirSync(tmp('node-test-realpath-d2'), 0o700); try { [ @@ -325,7 +347,9 @@ function test_deep_symlink_mix(realpath, realpathSync, callback) { [`${targetsAbsDir}/nested-index/two/realpath-c`, `${tmpDir}/cycles/root.js`], ].forEach(function(t) { - try { fs.unlinkSync(t[0]); } catch {} + try { fs.unlinkSync(t[0]); } catch { + // Continue regardless of error. + } fs.symlinkSync(t[1], t[0]); unlink.push(t[0]); }); @@ -479,14 +503,18 @@ function test_abs_with_kids(realpath, realpathSync, cb) { ['/a/b/c/x.txt', '/a/link', ].forEach(function(file) { - try { fs.unlinkSync(root + file); } catch {} + try { fs.unlinkSync(root + file); } catch { + // Continue regardless of error. + } }); ['/a/b/c', '/a/b', '/a', '', ].forEach(function(folder) { - try { fs.rmdirSync(root + folder); } catch {} + try { fs.rmdirSync(root + folder); } catch { + // Continue regardless of error. + } }); } diff --git a/test/parallel/test-fs-rm.js b/test/parallel/test-fs-rm.js index 3fdfc8426248ac..e0e3fd88544fff 100644 --- a/test/parallel/test-fs-rm.js +++ b/test/parallel/test-fs-rm.js @@ -5,6 +5,7 @@ const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); const path = require('path'); +const { pathToFileURL } = require('url'); const { execSync } = require('child_process'); const { validateRmOptionsSync } = require('internal/fs/utils'); @@ -97,6 +98,11 @@ function removeAsync(dir) { makeNonEmptyDirectory(2, 10, 2, dir, false); removeAsync(dir); + // Same test using URL instead of a path + dir = nextDirPath(); + makeNonEmptyDirectory(2, 10, 2, dir, false); + removeAsync(pathToFileURL(dir)); + // Create a flat folder including symlinks dir = nextDirPath(); makeNonEmptyDirectory(1, 10, 2, dir, true); @@ -156,6 +162,16 @@ function removeAsync(dir) { fs.rmSync(filePath, { force: true }); } + // Should accept URL + const fileURL = pathToFileURL(path.join(tmpdir.path, 'rm-file.txt')); + fs.writeFileSync(fileURL, ''); + + try { + fs.rmSync(fileURL, { recursive: true }); + } finally { + fs.rmSync(fileURL, { force: true }); + } + // Recursive removal should succeed. fs.rmSync(dir, { recursive: true }); @@ -169,8 +185,8 @@ function removeAsync(dir) { makeNonEmptyDirectory(4, 10, 2, dir, true); // Removal should fail without the recursive option set to true. - assert.rejects(fs.promises.rm(dir), { syscall: 'rm' }); - assert.rejects(fs.promises.rm(dir, { recursive: false }), { + await assert.rejects(fs.promises.rm(dir), { syscall: 'rm' }); + await assert.rejects(fs.promises.rm(dir, { recursive: false }), { syscall: 'rm' }); @@ -178,10 +194,10 @@ function removeAsync(dir) { await fs.promises.rm(dir, { recursive: true }); // Attempted removal should fail now because the directory is gone. - assert.rejects(fs.promises.rm(dir), { syscall: 'stat' }); + await assert.rejects(fs.promises.rm(dir), { syscall: 'stat' }); // Should fail if target does not exist - assert.rejects(fs.promises.rm( + await assert.rejects(fs.promises.rm( path.join(tmpdir.path, 'noexist.txt'), { recursive: true } ), { @@ -191,7 +207,7 @@ function removeAsync(dir) { }); // Should not fail if target does not exist and force option is true - fs.promises.rm(path.join(tmpdir.path, 'noexist.txt'), { force: true }); + await fs.promises.rm(path.join(tmpdir.path, 'noexist.txt'), { force: true }); // Should delete file const filePath = path.join(tmpdir.path, 'rm-promises-file.txt'); @@ -202,6 +218,16 @@ function removeAsync(dir) { } finally { fs.rmSync(filePath, { force: true }); } + + // Should accept URL + const fileURL = pathToFileURL(path.join(tmpdir.path, 'rm-promises-file.txt')); + fs.writeFileSync(fileURL, ''); + + try { + await fs.promises.rm(fileURL, { recursive: true }); + } finally { + fs.rmSync(fileURL, { force: true }); + } })().then(common.mustCall()); // Test input validation. diff --git a/test/parallel/test-fs-rmdir-recursive.js b/test/parallel/test-fs-rmdir-recursive.js index 39934b5e42a11c..1359f50cfbb49c 100644 --- a/test/parallel/test-fs-rmdir-recursive.js +++ b/test/parallel/test-fs-rmdir-recursive.js @@ -141,8 +141,8 @@ function removeAsync(dir) { makeNonEmptyDirectory(4, 10, 2, dir, true); // Removal should fail without the recursive option set to true. - assert.rejects(fs.promises.rmdir(dir), { syscall: 'rmdir' }); - assert.rejects(fs.promises.rmdir(dir, { recursive: false }), { + await assert.rejects(fs.promises.rmdir(dir), { syscall: 'rmdir' }); + await assert.rejects(fs.promises.rmdir(dir, { recursive: false }), { syscall: 'rmdir' }); @@ -154,7 +154,7 @@ function removeAsync(dir) { { code: 'ENOENT' }); // Attempted removal should fail now because the directory is gone. - assert.rejects(fs.promises.rmdir(dir), { syscall: 'rmdir' }); + await assert.rejects(fs.promises.rmdir(dir), { syscall: 'rmdir' }); })().then(common.mustCall()); // Test input validation. diff --git a/test/parallel/test-fs-stat.js b/test/parallel/test-fs-stat.js index 92a6ec8fa3280c..dc4fc6df8c8067 100644 --- a/test/parallel/test-fs-stat.js +++ b/test/parallel/test-fs-stat.js @@ -27,8 +27,8 @@ const fs = require('fs'); fs.stat('.', common.mustSucceed(function(stats) { assert.ok(stats.mtime instanceof Date); - assert.ok(stats.hasOwnProperty('blksize')); - assert.ok(stats.hasOwnProperty('blocks')); + assert.ok(Object.hasOwn(stats, 'blksize')); + assert.ok(Object.hasOwn(stats, 'blocks')); // Confirm that we are not running in the context of the internal binding // layer. // Ref: https://github.com/nodejs/node/commit/463d6bac8b349acc462d345a6e298a76f7d06fb1 diff --git a/test/parallel/test-fs-watch.js b/test/parallel/test-fs-watch.js index 6fcf6c4df63fdc..479cc2b3e293e2 100644 --- a/test/parallel/test-fs-watch.js +++ b/test/parallel/test-fs-watch.js @@ -22,14 +22,14 @@ class WatchTestCase { } const cases = [ - // Watch on a directory should callback with a filename on supported systems + // Watch on a file should callback with a filename on supported systems new WatchTestCase( common.isLinux || common.isOSX || common.isWindows || common.isAIX, 'watch1', 'foo', 'filePath' ), - // Watch on a file should callback with a filename on supported systems + // Watch on a directory should callback with a filename on supported systems new WatchTestCase( common.isLinux || common.isOSX || common.isWindows, 'watch2', diff --git a/test/parallel/test-fs-write-file.js b/test/parallel/test-fs-write-file.js index 45cbde4a90eb88..812b144875b8f6 100644 --- a/test/parallel/test-fs-write-file.js +++ b/test/parallel/test-fs-write-file.js @@ -100,8 +100,5 @@ fs.open(filename4, 'w+', common.mustSucceed((fd) => { // Test read-only mode const filename = join(tmpdir.path, 'test6.txt'); fs.writeFileSync(filename, ''); - - // TODO: Correct the error type - const expectedError = common.isWindows ? /EPERM/ : /EBADF/; - fs.writeFile(filename, s, { flag: 'r' }, common.expectsError(expectedError)); + fs.writeFile(filename, s, { flag: 'r' }, common.expectsError(/EBADF/)); } diff --git a/test/parallel/test-fs-write-stream-err.js b/test/parallel/test-fs-write-stream-err.js index 6d6f25b21f0e27..003f315a3b7160 100644 --- a/test/parallel/test-fs-write-stream-err.js +++ b/test/parallel/test-fs-write-stream-err.js @@ -40,13 +40,14 @@ fs.write = function() { console.error('first write'); // First time is ok. return write.apply(fs, arguments); - case 1: + case 1: { // Then it breaks. console.error('second write'); const cb = arguments[arguments.length - 1]; return process.nextTick(function() { cb(err); }); + } default: // It should not be called again! throw new Error('BOOM!'); diff --git a/test/parallel/test-fs-writefile-with-fd.js b/test/parallel/test-fs-writefile-with-fd.js index 4cabdf347ba3ea..1af92c2a940da9 100644 --- a/test/parallel/test-fs-writefile-with-fd.js +++ b/test/parallel/test-fs-writefile-with-fd.js @@ -20,14 +20,14 @@ tmpdir.refresh(); const fd = fs.openSync(filename, 'w'); try { /* Write only five characters, so that the position moves to five. */ - assert.deepStrictEqual(fs.writeSync(fd, 'Hello'), 5); - assert.deepStrictEqual(fs.readFileSync(filename).toString(), 'Hello'); + assert.strictEqual(fs.writeSync(fd, 'Hello'), 5); + assert.strictEqual(fs.readFileSync(filename).toString(), 'Hello'); /* Write some more with writeFileSync(). */ fs.writeFileSync(fd, 'World'); /* New content should be written at position five, instead of zero. */ - assert.deepStrictEqual(fs.readFileSync(filename).toString(), 'HelloWorld'); + assert.strictEqual(fs.readFileSync(filename).toString(), 'HelloWorld'); } finally { fs.closeSync(fd); } @@ -54,12 +54,12 @@ process.on('beforeExit', common.mustCall(() => { /* Write only five characters, so that the position moves to five. */ fs.write(fd, 'Hello', common.mustSucceed((bytes) => { assert.strictEqual(bytes, 5); - assert.deepStrictEqual(fs.readFileSync(file).toString(), 'Hello'); + assert.strictEqual(fs.readFileSync(file).toString(), 'Hello'); /* Write some more with writeFile(). */ fs.writeFile(fd, 'World', common.mustSucceed(() => { /* New content should be written at position five, instead of zero. */ - assert.deepStrictEqual(fs.readFileSync(file).toString(), 'HelloWorld'); + assert.strictEqual(fs.readFileSync(file).toString(), 'HelloWorld'); })); })); })); @@ -68,14 +68,11 @@ process.on('beforeExit', common.mustCall(() => { // Test read-only file descriptor { - // TODO(pd4d10): https://github.com/nodejs/node/issues/38607 - const expectedError = common.isWindows ? /EPERM/ : /EBADF/; - const file = join(tmpdir.path, 'test.txt'); fs.open(file, 'r', common.mustSucceed((fd) => { fdsToCloseOnExit.push(fd); - fs.writeFile(fd, 'World', common.expectsError(expectedError)); + fs.writeFile(fd, 'World', common.expectsError(/EBADF/)); })); } diff --git a/test/parallel/test-fs-writev-promises.js b/test/parallel/test-fs-writev-promises.js index 02da6799699946..650f00dae74b69 100644 --- a/test/parallel/test-fs-writev-promises.js +++ b/test/parallel/test-fs-writev-promises.js @@ -22,7 +22,7 @@ tmpdir.refresh(); const expectedLength = bufferArr.length * buffer.byteLength; let { bytesWritten, buffers } = await handle.writev([Buffer.from('')], null); - assert.deepStrictEqual(bytesWritten, 0); + assert.strictEqual(bytesWritten, 0); assert.deepStrictEqual(buffers, [Buffer.from('')]); ({ bytesWritten, buffers } = await handle.writev(bufferArr, null)); assert.deepStrictEqual(bytesWritten, expectedLength); @@ -39,7 +39,7 @@ tmpdir.refresh(); const bufferArr = [buffer, buffer, buffer]; const expectedLength = bufferArr.length * buffer.byteLength; let { bytesWritten, buffers } = await handle.writev([Buffer.from('')]); - assert.deepStrictEqual(bytesWritten, 0); + assert.strictEqual(bytesWritten, 0); assert.deepStrictEqual(buffers, [Buffer.from('')]); ({ bytesWritten, buffers } = await handle.writev(bufferArr)); assert.deepStrictEqual(bytesWritten, expectedLength); @@ -47,4 +47,13 @@ tmpdir.refresh(); assert(Buffer.concat(bufferArr).equals(await fs.readFile(filename))); handle.close(); } + + { + // Writev with empty array behavior + const handle = await fs.open(getFileName(), 'w'); + const result = await handle.writev([]); + assert.strictEqual(result.bytesWritten, 0); + assert.strictEqual(result.buffers.length, 0); + handle.close(); + } })().then(common.mustCall()); diff --git a/test/parallel/test-fs-writev-sync.js b/test/parallel/test-fs-writev-sync.js index b01e85bcae19f7..1db437972ed29d 100644 --- a/test/parallel/test-fs-writev-sync.js +++ b/test/parallel/test-fs-writev-sync.js @@ -26,10 +26,10 @@ const getFileName = (i) => path.join(tmpdir.path, `writev_sync_${i}.txt`); const expectedLength = bufferArr.length * buffer.byteLength; let written = fs.writevSync(fd, [Buffer.from('')], null); - assert.deepStrictEqual(written, 0); + assert.strictEqual(written, 0); written = fs.writevSync(fd, bufferArr, null); - assert.deepStrictEqual(written, expectedLength); + assert.strictEqual(written, expectedLength); fs.closeSync(fd); @@ -46,21 +46,31 @@ const getFileName = (i) => path.join(tmpdir.path, `writev_sync_${i}.txt`); const expectedLength = bufferArr.length * buffer.byteLength; let written = fs.writevSync(fd, [Buffer.from('')]); - assert.deepStrictEqual(written, 0); + assert.strictEqual(written, 0); written = fs.writevSync(fd, bufferArr); - assert.deepStrictEqual(written, expectedLength); + assert.strictEqual(written, expectedLength); fs.closeSync(fd); assert(Buffer.concat(bufferArr).equals(fs.readFileSync(filename))); } +// fs.writevSync with empty array of buffers +{ + const filename = getFileName(3); + const fd = fs.openSync(filename, 'w'); + const written = fs.writevSync(fd, []); + assert.strictEqual(written, 0); + fs.closeSync(fd); + +} + /** * Testing with wrong input types */ { - const filename = getFileName(3); + const filename = getFileName(4); const fd = fs.openSync(filename, 'w'); [false, 'test', {}, [{}], ['sdf'], null, undefined].forEach((i) => { diff --git a/test/parallel/test-fs-writev.js b/test/parallel/test-fs-writev.js index a516f9c328f1b2..7ea52ef77ac4ee 100644 --- a/test/parallel/test-fs-writev.js +++ b/test/parallel/test-fs-writev.js @@ -57,11 +57,30 @@ const getFileName = (i) => path.join(tmpdir.path, `writev_${i}.txt`); fs.writev(fd, bufferArr, done); } + +// fs.writev with empty array of buffers +{ + const filename = getFileName(3); + const fd = fs.openSync(filename, 'w'); + const bufferArr = []; + let afterSyncCall = false; + + const done = common.mustSucceed((written, buffers) => { + assert.strictEqual(buffers.length, 0); + assert.strictEqual(written, 0); + assert(afterSyncCall); + fs.closeSync(fd); + }); + + fs.writev(fd, bufferArr, done); + afterSyncCall = true; +} + /** * Testing with wrong input types */ { - const filename = getFileName(3); + const filename = getFileName(4); const fd = fs.openSync(filename, 'w'); [false, 'test', {}, [{}], ['sdf'], null, undefined].forEach((i) => { diff --git a/test/parallel/test-global-webcrypto-classes.js b/test/parallel/test-global-webcrypto-classes.js new file mode 100644 index 00000000000000..083592bd92278c --- /dev/null +++ b/test/parallel/test-global-webcrypto-classes.js @@ -0,0 +1,13 @@ +// Flags: --experimental-global-webcrypto --expose-internals +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const webcrypto = require('internal/crypto/webcrypto'); + +assert.strictEqual(Crypto, webcrypto.Crypto); +assert.strictEqual(CryptoKey, webcrypto.CryptoKey); +assert.strictEqual(SubtleCrypto, webcrypto.SubtleCrypto); diff --git a/test/parallel/test-global-webcrypto.js b/test/parallel/test-global-webcrypto.js new file mode 100644 index 00000000000000..70f84a1b3a0643 --- /dev/null +++ b/test/parallel/test-global-webcrypto.js @@ -0,0 +1,13 @@ +// Flags: --experimental-global-webcrypto +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const crypto = require('crypto'); + +assert.strictEqual(globalThis.crypto, crypto.webcrypto); +assert.strictEqual(Crypto, crypto.webcrypto.constructor); +assert.strictEqual(SubtleCrypto, crypto.webcrypto.subtle.constructor); diff --git a/test/parallel/test-global.js b/test/parallel/test-global.js index 60df2c1d73f463..2425ceaff8a650 100644 --- a/test/parallel/test-global.js +++ b/test/parallel/test-global.js @@ -36,7 +36,9 @@ builtinModules.forEach((moduleName) => { // This could throw for e.g., crypto if the binary is not compiled // accordingly. require(moduleName); - } catch {} + } catch { + // Continue regardless of error. + } } }); diff --git a/test/parallel/test-handle-wrap-isrefed.js b/test/parallel/test-handle-wrap-isrefed.js index 2fb766ce72ea4b..d4ca0070929721 100644 --- a/test/parallel/test-handle-wrap-isrefed.js +++ b/test/parallel/test-handle-wrap-isrefed.js @@ -106,5 +106,31 @@ const { kStateSymbol } = require('internal/dgram'); false, 'tcp_wrap: not unrefed on close'))); } +// timers +{ + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + const timeout = setTimeout(() => {}, 500); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + timeout.unref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + timeout.ref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + const immediate = setImmediate(() => {}); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 1); + immediate.unref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + immediate.ref(); + strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 1); +} // See also test/pseudo-tty/test-handle-wrap-isrefed-tty.js diff --git a/test/parallel/test-http-agent-domain-reused-gc.js b/test/parallel/test-http-agent-domain-reused-gc.js index 9470b23b472662..b63c2d20210c37 100644 --- a/test/parallel/test-http-agent-domain-reused-gc.js +++ b/test/parallel/test-http-agent-domain-reused-gc.js @@ -55,7 +55,7 @@ server.emit('connection', serverSide); // HTTP Agent that only returns the fake connection. class TestAgent extends http.Agent { - createConnection = common.mustCall(() => wrappedClientSide) + createConnection = common.mustCall(() => wrappedClientSide); } const agent = new TestAgent({ keepAlive: true, maxSockets: 1 }); diff --git a/test/parallel/test-http-agent-getname.js b/test/parallel/test-http-agent-getname.js index ab946a4bde3ddf..14cfcfaabdf6f4 100644 --- a/test/parallel/test-http-agent-getname.js +++ b/test/parallel/test-http-agent-getname.js @@ -18,7 +18,13 @@ assert.strictEqual( 'localhost:80:192.168.1.1' ); -// empty +// empty argument +assert.strictEqual( + agent.getName(), + 'localhost::' +); + +// empty options assert.strictEqual( agent.getName({}), 'localhost::' diff --git a/test/parallel/test-http-agent-keepalive.js b/test/parallel/test-http-agent-keepalive.js index a1f902fab091e1..f7424634df1bd5 100644 --- a/test/parallel/test-http-agent-keepalive.js +++ b/test/parallel/test-http-agent-keepalive.js @@ -59,6 +59,7 @@ function checkDataAndSockets(body) { assert.strictEqual(body.toString(), 'hello world'); assert.strictEqual(agent.sockets[name].length, 1); assert.strictEqual(agent.freeSockets[name], undefined); + assert.strictEqual(agent.totalSocketCount, 1); } function second() { @@ -73,6 +74,7 @@ function second() { process.nextTick(common.mustCall(() => { assert.strictEqual(agent.sockets[name], undefined); assert.strictEqual(agent.freeSockets[name].length, 1); + assert.strictEqual(agent.totalSocketCount, 1); remoteClose(); })); })); @@ -82,8 +84,8 @@ function second() { function remoteClose() { // Mock remote server close the socket const req = get('/remote_close', common.mustCall((res) => { - assert.deepStrictEqual(req.reusedSocket, true); - assert.deepStrictEqual(res.statusCode, 200); + assert.strictEqual(req.reusedSocket, true); + assert.strictEqual(res.statusCode, 200); res.on('data', checkDataAndSockets); res.on('end', common.mustCall(() => { assert.strictEqual(agent.sockets[name].length, 1); @@ -91,10 +93,12 @@ function remoteClose() { process.nextTick(common.mustCall(() => { assert.strictEqual(agent.sockets[name], undefined); assert.strictEqual(agent.freeSockets[name].length, 1); + assert.strictEqual(agent.totalSocketCount, 1); // Waiting remote server close the socket setTimeout(common.mustCall(() => { assert.strictEqual(agent.sockets[name], undefined); assert.strictEqual(agent.freeSockets[name], undefined); + assert.strictEqual(agent.totalSocketCount, 0); remoteError(); }), common.platformTimeout(200)); })); @@ -110,10 +114,12 @@ function remoteError() { assert.strictEqual(err.message, 'socket hang up'); assert.strictEqual(agent.sockets[name].length, 1); assert.strictEqual(agent.freeSockets[name], undefined); + assert.strictEqual(agent.totalSocketCount, 1); // Wait socket 'close' event emit setTimeout(common.mustCall(() => { assert.strictEqual(agent.sockets[name], undefined); assert.strictEqual(agent.freeSockets[name], undefined); + assert.strictEqual(agent.totalSocketCount, 0); server.close(); }), common.platformTimeout(1)); })); @@ -132,6 +138,7 @@ server.listen(0, common.mustCall(() => { process.nextTick(common.mustCall(() => { assert.strictEqual(agent.sockets[name], undefined); assert.strictEqual(agent.freeSockets[name].length, 1); + assert.strictEqual(agent.totalSocketCount, 1); second(); })); })); diff --git a/test/parallel/test-http-agent-timeout.js b/test/parallel/test-http-agent-timeout.js index 07c189e9745330..5eb2abe9bb7e69 100644 --- a/test/parallel/test-http-agent-timeout.js +++ b/test/parallel/test-http-agent-timeout.js @@ -34,7 +34,7 @@ const http = require('http'); } { - // Ensure that timeouted sockets are not reused. + // Ensure that timed-out sockets are not reused. const agent = new http.Agent({ keepAlive: true, timeout: 50 }); diff --git a/test/parallel/test-http-chunked-smuggling.js b/test/parallel/test-http-chunked-smuggling.js index 6ea2614835c009..dbad45e1be319f 100644 --- a/test/parallel/test-http-chunked-smuggling.js +++ b/test/parallel/test-http-chunked-smuggling.js @@ -5,8 +5,8 @@ const http = require('http'); const net = require('net'); const assert = require('assert'); -// Verify that a request with a space before the content length will result -// in a 400 Bad Request. +// Verify that invalid chunk extensions cannot be used to perform HTTP request +// smuggling attacks. const server = http.createServer(common.mustCall((request, response) => { assert.notStrictEqual(request.url, '/admin'); @@ -23,7 +23,7 @@ function start() { 'Host: localhost:8080\r\n' + 'Transfer-Encoding: chunked\r\n' + '\r\n' + - '2 \n' + + '2;\n' + 'xx\r\n' + '4c\r\n' + '0\r\n' + diff --git a/test/parallel/test-http-client-default-headers-exist.js b/test/parallel/test-http-client-default-headers-exist.js index e19be4b7d70856..4c49bae8009cd5 100644 --- a/test/parallel/test-http-client-default-headers-exist.js +++ b/test/parallel/test-http-client-default-headers-exist.js @@ -41,7 +41,7 @@ const expectedMethods = Object.keys(expectedHeaders); const server = http.createServer(common.mustCall((req, res) => { res.end(); - assert(expectedHeaders.hasOwnProperty(req.method), + assert(Object.hasOwn(expectedHeaders, req.method), `${req.method} was an unexpected method`); const requestHeaders = Object.keys(req.headers); diff --git a/test/parallel/test-http-mutable-headers.js b/test/parallel/test-http-mutable-headers.js index 2210750e6c359b..9b31dd44dda0ef 100644 --- a/test/parallel/test-http-mutable-headers.js +++ b/test/parallel/test-http-mutable-headers.js @@ -41,15 +41,15 @@ const cookies = [ const s = http.createServer(common.mustCall((req, res) => { switch (test) { - case 'headers': + case 'headers': { // Check that header-related functions work before setting any headers const headers = res.getHeaders(); const exoticObj = Object.create(null); assert.deepStrictEqual(headers, exoticObj); assert.deepStrictEqual(res.getHeaderNames(), []); assert.deepStrictEqual(res.getRawHeaderNames(), []); - assert.deepStrictEqual(res.hasHeader('Connection'), false); - assert.deepStrictEqual(res.getHeader('Connection'), undefined); + assert.strictEqual(res.hasHeader('Connection'), false); + assert.strictEqual(res.getHeader('Connection'), undefined); assert.throws( () => res.setHeader(), @@ -141,7 +141,7 @@ const s = http.createServer(common.mustCall((req, res) => { assert.strictEqual(res.hasHeader('X-TEST-HEADER2'), false); assert.strictEqual(res.hasHeader('X-Test-Header2'), false); break; - + } case 'contentLength': res.setHeader('content-length', content.length); assert.strictEqual(res.getHeader('Content-Length'), content.length); diff --git a/test/parallel/test-http-outgoing-finish.js b/test/parallel/test-http-outgoing-finish.js index f7931ec0dfa7e2..0f71cccdf810af 100644 --- a/test/parallel/test-http-outgoing-finish.js +++ b/test/parallel/test-http-outgoing-finish.js @@ -49,7 +49,7 @@ function write(out) { let endCb = false; // First, write until it gets some backpressure - while (out.write(buf, common.mustSucceed())) {} + while (out.write(buf, common.mustSucceed())); // Now end, and make sure that we don't get the 'finish' event // before the tick where the cb gets called. We give it until diff --git a/test/parallel/test-http-outgoing-message-capture-rejection.js b/test/parallel/test-http-outgoing-message-capture-rejection.js index 9fe9bdb21331d8..a19176df415263 100644 --- a/test/parallel/test-http-outgoing-message-capture-rejection.js +++ b/test/parallel/test-http-outgoing-message-capture-rejection.js @@ -19,7 +19,7 @@ events.captureRejections = true; })); // Write until there is space in the buffer - while (res.write('hello')) {} + while (res.write('hello')); })); server.listen(0, common.mustCall(() => { @@ -87,6 +87,6 @@ events.captureRejections = true; })); // Write until there is space in the buffer - while (req.write('hello')) {} + while (req.write('hello')); })); } diff --git a/test/parallel/test-http-response-close.js b/test/parallel/test-http-response-close.js index 0435cd0ee37da5..848d316d8adfe7 100644 --- a/test/parallel/test-http-response-close.js +++ b/test/parallel/test-http-response-close.js @@ -78,3 +78,25 @@ const assert = require('assert'); }) ); } + +{ + const server = http.createServer( + common.mustCall((req, res) => { + res.on('close', common.mustCall()); + res.destroy(); + }) + ); + + server.listen( + 0, + common.mustCall(() => { + http.get( + { port: server.address().port }, + common.mustNotCall() + ) + .on('error', common.mustCall(() => { + server.close(); + })); + }) + ); +} diff --git a/test/parallel/test-http-response-splitting.js b/test/parallel/test-http-response-splitting.js index 2b3bf8d7fb38c6..88f94e6658b174 100644 --- a/test/parallel/test-http-response-splitting.js +++ b/test/parallel/test-http-response-splitting.js @@ -35,10 +35,11 @@ function test(res, code, key, value) { const server = http.createServer((req, res) => { switch (count++) { - case 0: + case 0: { const loc = url.parse(req.url, true).query.lang; test(res, 302, 'Location', `/foo?lang=${loc}`); break; + } case 1: test(res, 200, 'foo', x); break; diff --git a/test/parallel/test-http-server-capture-rejections.js b/test/parallel/test-http-server-capture-rejections.js index b437e27b589dfc..b11618a6159d65 100644 --- a/test/parallel/test-http-server-capture-rejections.js +++ b/test/parallel/test-http-server-capture-rejections.js @@ -25,7 +25,7 @@ events.captureRejections = true; req.on('response', common.mustCall((res) => { assert.strictEqual(res.statusCode, 500); - assert.strictEqual(res.headers.hasOwnProperty('content-type'), false); + assert.strictEqual(Object.hasOwn(res.headers, 'content-type'), false); let data = ''; res.setEncoding('utf8'); res.on('data', common.mustCall((chunk) => { diff --git a/test/parallel/test-http-sync-write-error-during-continue.js b/test/parallel/test-http-sync-write-error-during-continue.js index 5476160942dadc..f77026b00b5131 100644 --- a/test/parallel/test-http-sync-write-error-during-continue.js +++ b/test/parallel/test-http-sync-write-error-during-continue.js @@ -42,11 +42,11 @@ Connection: close // parser.finish() to be called while we are here in the 'continue' // callback, which is inside a parser.execute() call. - assert.strictEqual(chunk.length, 0); + assert.strictEqual(chunk.length, 4); clientSide.destroy(new Error('sometimes the code just doesn’t work'), cb); }); req.on('error', common.mustCall()); - req.end(); + req.end('data'); sync = false; })); diff --git a/test/parallel/test-http-upgrade-agent.js b/test/parallel/test-http-upgrade-agent.js index 28498819490b4f..d2969522433db1 100644 --- a/test/parallel/test-http-upgrade-agent.js +++ b/test/parallel/test-http-upgrade-agent.js @@ -61,7 +61,12 @@ server.listen(0, '127.0.0.1', common.mustCall(function() { const req = http.request(options); req.end(); + req.on('socket', common.mustCall(function() { + assert.strictEqual(req.agent.totalSocketCount, 1); + })); + req.on('upgrade', common.mustCall(function(res, socket, upgradeHead) { + assert.strictEqual(req.agent.totalSocketCount, 0); let recvData = upgradeHead; socket.on('data', function(d) { recvData += d; @@ -71,14 +76,13 @@ server.listen(0, '127.0.0.1', common.mustCall(function() { assert.strictEqual(recvData.toString(), 'nurtzo'); })); - console.log(res.headers); const expectedHeaders = { 'hello': 'world', 'connection': 'upgrade', 'upgrade': 'websocket' }; assert.deepStrictEqual(expectedHeaders, res.headers); // Make sure this request got removed from the pool. - assert(!(name in http.globalAgent.sockets)); + assert(!(name in req.agent.sockets)); req.on('close', common.mustCall(function() { socket.end(); diff --git a/test/parallel/test-http-upgrade-client.js b/test/parallel/test-http-upgrade-client.js index e86979fffd0d1c..fbeaf08c2c5582 100644 --- a/test/parallel/test-http-upgrade-client.js +++ b/test/parallel/test-http-upgrade-client.js @@ -82,7 +82,6 @@ server.listen(0, common.mustCall(function() { assert.strictEqual(recvData.toString(), expectedRecvData); })); - console.log(res.headers); const expectedHeaders = { hello: 'world', connection: 'upgrade', diff --git a/test/parallel/test-http.js b/test/parallel/test-http.js index b4916efcc96cb0..1d5b74b879750b 100644 --- a/test/parallel/test-http.js +++ b/test/parallel/test-http.js @@ -43,7 +43,7 @@ const server = http.Server(common.mustCall((req, res) => { break; case '/world': assert.strictEqual(req.method, 'POST'); - assert.deepStrictEqual(req.headers.cookie, 'abc=123; def=456; ghi=789'); + assert.strictEqual(req.headers.cookie, 'abc=123; def=456; ghi=789'); break; default: assert(false, `Unexpected request for ${req.url}`); diff --git a/test/parallel/test-http2-autoselect-protocol.js b/test/parallel/test-http2-autoselect-protocol.js new file mode 100644 index 00000000000000..abd35d4ba75a38 --- /dev/null +++ b/test/parallel/test-http2-autoselect-protocol.js @@ -0,0 +1,72 @@ +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const net = require('net'); +const http = require('http'); +const http2 = require('http2'); + +// Example test for HTTP/1 vs HTTP/2 protocol autoselection. +// Refs: https://github.com/nodejs/node/issues/34532 + +const h1Server = http.createServer(common.mustCall((req, res) => { + res.end('HTTP/1 Response'); +})); + +const h2Server = http2.createServer(common.mustCall((req, res) => { + res.end('HTTP/2 Response'); +})); + +const rawServer = net.createServer(common.mustCall(function listener(socket) { + const data = socket.read(3); + + if (!data) { // Repeat until data is available + socket.once('readable', () => listener(socket)); + return; + } + + // Put the data back, so the real server can handle it: + socket.unshift(data); + + if (data.toString('ascii') === 'PRI') { // Very dumb preface check + h2Server.emit('connection', socket); + } else { + h1Server.emit('connection', socket); + } +}, 2)); + +rawServer.listen(common.mustCall(() => { + const { port } = rawServer.address(); + + let done = 0; + { + // HTTP/2 Request + const client = http2.connect(`http://localhost:${port}`); + const req = client.request({ ':path': '/' }); + req.end(); + + let content = ''; + req.setEncoding('utf8'); + req.on('data', (chunk) => content += chunk); + req.on('end', common.mustCall(() => { + assert.strictEqual(content, 'HTTP/2 Response'); + if (++done === 2) rawServer.close(); + client.close(); + })); + } + + { + // HTTP/1 Request + http.get(`http://localhost:${port}`, common.mustCall((res) => { + let content = ''; + res.setEncoding('utf8'); + res.on('data', (chunk) => content += chunk); + res.on('end', common.mustCall(() => { + assert.strictEqual(content, 'HTTP/1 Response'); + if (++done === 2) rawServer.close(); + })); + })); + } +})); diff --git a/test/parallel/test-http2-binding.js b/test/parallel/test-http2-binding.js index e81a58dfe8a5c1..29f2901e85e6e0 100644 --- a/test/parallel/test-http2-binding.js +++ b/test/parallel/test-http2-binding.js @@ -107,7 +107,7 @@ const expectedHeaderNames = { HTTP2_HEADER_ACCEPT_LANGUAGE: 'accept-language', HTTP2_HEADER_ACCEPT_RANGES: 'accept-ranges', HTTP2_HEADER_ACCEPT: 'accept', - HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: 'access-control-allow-credentials', // eslint-disable-line max-len + HTTP2_HEADER_ACCESS_CONTROL_ALLOW_CREDENTIALS: 'access-control-allow-credentials', HTTP2_HEADER_ACCESS_CONTROL_ALLOW_HEADERS: 'access-control-allow-headers', HTTP2_HEADER_ACCESS_CONTROL_ALLOW_METHODS: 'access-control-allow-methods', HTTP2_HEADER_ACCESS_CONTROL_ALLOW_ORIGIN: 'access-control-allow-origin', diff --git a/test/parallel/test-http2-cancel-while-client-reading.js b/test/parallel/test-http2-cancel-while-client-reading.js index 0605a02e116626..189e128e6667ef 100644 --- a/test/parallel/test-http2-cancel-while-client-reading.js +++ b/test/parallel/test-http2-cancel-while-client-reading.js @@ -20,6 +20,7 @@ server.on('stream', common.mustCall(function(stream) { client_stream.pause(); client_stream.close(http2.constants.NGHTTP2_CANCEL); }); + stream.on('error', () => {}); })); server.listen(0, function() { diff --git a/test/parallel/test-http2-capture-rejection.js b/test/parallel/test-http2-capture-rejection.js index 4469c6b7e64d20..6d8cb224ce7919 100644 --- a/test/parallel/test-http2-capture-rejection.js +++ b/test/parallel/test-http2-capture-rejection.js @@ -90,8 +90,7 @@ events.captureRejections = true; req.on('response', common.mustCall((headers) => { assert.strictEqual(headers[':status'], 500); - assert.strictEqual(Object.hasOwnProperty.call(headers, 'content-type'), - false); + assert.strictEqual(Object.hasOwn(headers, 'content-type'), false); })); req.on('close', common.mustCall(() => { diff --git a/test/parallel/test-http2-compat-expect-continue.js b/test/parallel/test-http2-compat-expect-continue.js index cb90e51f3bc9d7..d0decb1472a9e1 100644 --- a/test/parallel/test-http2-compat-expect-continue.js +++ b/test/parallel/test-http2-compat-expect-continue.js @@ -6,49 +6,90 @@ if (!common.hasCrypto) const assert = require('assert'); const http2 = require('http2'); -const testResBody = 'other stuff!\n'; +{ + const testResBody = 'other stuff!\n'; -// Checks the full 100-continue flow from client sending 'expect: 100-continue' -// through server receiving it, sending back :status 100, writing the rest of -// the request to finally the client receiving to. + // Checks the full 100-continue flow from client sending 'expect: 100-continue' + // through server receiving it, sending back :status 100, writing the rest of + // the request to finally the client receiving to. -const server = http2.createServer(); + const server = http2.createServer(); -let sentResponse = false; + let sentResponse = false; -server.on('request', common.mustCall((req, res) => { - res.end(testResBody); - sentResponse = true; -})); + server.on('request', common.mustCall((req, res) => { + res.end(testResBody); + sentResponse = true; + })); + + server.listen(0); + + server.on('listening', common.mustCall(() => { + let body = ''; -server.listen(0); + const client = http2.connect(`http://localhost:${server.address().port}`); + const req = client.request({ + ':method': 'POST', + 'expect': '100-continue' + }); -server.on('listening', common.mustCall(() => { - let body = ''; + let gotContinue = false; + req.on('continue', common.mustCall(() => { + gotContinue = true; + })); - const client = http2.connect(`http://localhost:${server.address().port}`); - const req = client.request({ - ':method': 'POST', - 'expect': '100-continue' - }); + req.on('response', common.mustCall((headers) => { + assert.strictEqual(gotContinue, true); + assert.strictEqual(sentResponse, true); + assert.strictEqual(headers[':status'], 200); + req.end(); + })); - let gotContinue = false; - req.on('continue', common.mustCall(() => { - gotContinue = true; + req.setEncoding('utf8'); + req.on('data', common.mustCall((chunk) => { body += chunk; })); + req.on('end', common.mustCall(() => { + assert.strictEqual(body, testResBody); + client.close(); + server.close(); + })); })); +} + +{ + // Checks the full 100-continue flow from client sending 'expect: 100-continue' + // through server receiving it and ending the request. + + const server = http2.createServer(); - req.on('response', common.mustCall((headers) => { - assert.strictEqual(gotContinue, true); - assert.strictEqual(sentResponse, true); - assert.strictEqual(headers[':status'], 200); - req.end(); + server.on('request', common.mustCall((req, res) => { + res.end(); })); - req.setEncoding('utf8'); - req.on('data', common.mustCall((chunk) => { body += chunk; })); - req.on('end', common.mustCall(() => { - assert.strictEqual(body, testResBody); - client.close(); - server.close(); + server.listen(0); + + server.on('listening', common.mustCall(() => { + const client = http2.connect(`http://localhost:${server.address().port}`); + const req = client.request({ + ':path': '/', + 'expect': '100-continue' + }); + + let gotContinue = false; + req.on('continue', common.mustCall(() => { + gotContinue = true; + })); + + let gotResponse = false; + req.on('response', common.mustCall(() => { + gotResponse = true; + })); + + req.setEncoding('utf8'); + req.on('end', common.mustCall(() => { + assert.strictEqual(gotContinue, true); + assert.strictEqual(gotResponse, true); + client.close(); + server.close(); + })); })); -})); +} diff --git a/test/parallel/test-http2-compat-serverrequest-headers.js b/test/parallel/test-http2-compat-serverrequest-headers.js index 06f37c8a47ce19..2028e672a7f173 100644 --- a/test/parallel/test-http2-compat-serverrequest-headers.js +++ b/test/parallel/test-http2-compat-serverrequest-headers.js @@ -6,83 +6,148 @@ if (!common.hasCrypto) const assert = require('assert'); const h2 = require('http2'); -// Http2ServerRequest should have header helpers - -const server = h2.createServer(); -server.listen(0, common.mustCall(function() { - const port = server.address().port; - server.once('request', common.mustCall(function(request, response) { - const expected = { - ':path': '/foobar', - ':method': 'GET', - ':scheme': 'http', - ':authority': `localhost:${port}`, - 'foo-bar': 'abc123' - }; - - assert.strictEqual(request.path, undefined); - assert.strictEqual(request.method, expected[':method']); - assert.strictEqual(request.scheme, expected[':scheme']); - assert.strictEqual(request.url, expected[':path']); - assert.strictEqual(request.authority, expected[':authority']); - - const headers = request.headers; - for (const [name, value] of Object.entries(expected)) { - assert.strictEqual(headers[name], value); - } - - const rawHeaders = request.rawHeaders; - for (const [name, value] of Object.entries(expected)) { - const position = rawHeaders.indexOf(name); - assert.notStrictEqual(position, -1); - assert.strictEqual(rawHeaders[position + 1], value); - } - - request.url = '/one'; - assert.strictEqual(request.url, '/one'); - - // Third-party plugins for packages like express use query params to - // change the request method - request.method = 'POST'; - assert.strictEqual(request.method, 'POST'); - assert.throws( - () => request.method = ' ', - { - code: 'ERR_INVALID_ARG_VALUE', - name: 'TypeError', - message: "The argument 'method' is invalid. Received ' '" +{ + // Http2ServerRequest should have header helpers + + const server = h2.createServer(); + server.listen(0, common.mustCall(function() { + const port = server.address().port; + server.once('request', common.mustCall(function(request, response) { + const expected = { + ':path': '/foobar', + ':method': 'GET', + ':scheme': 'http', + ':authority': `localhost:${port}`, + 'foo-bar': 'abc123' + }; + + assert.strictEqual(request.path, undefined); + assert.strictEqual(request.method, expected[':method']); + assert.strictEqual(request.scheme, expected[':scheme']); + assert.strictEqual(request.url, expected[':path']); + assert.strictEqual(request.authority, expected[':authority']); + + const headers = request.headers; + for (const [name, value] of Object.entries(expected)) { + assert.strictEqual(headers[name], value); } - ); - assert.throws( - () => request.method = true, - { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: 'The "method" argument must be of type string. ' + - 'Received type boolean (true)' + + const rawHeaders = request.rawHeaders; + for (const [name, value] of Object.entries(expected)) { + const position = rawHeaders.indexOf(name); + assert.notStrictEqual(position, -1); + assert.strictEqual(rawHeaders[position + 1], value); } - ); - response.on('finish', common.mustCall(function() { - server.close(); + request.url = '/one'; + assert.strictEqual(request.url, '/one'); + + // Third-party plugins for packages like express use query params to + // change the request method + request.method = 'POST'; + assert.strictEqual(request.method, 'POST'); + assert.throws( + () => request.method = ' ', + { + code: 'ERR_INVALID_ARG_VALUE', + name: 'TypeError', + message: "The argument 'method' is invalid. Received ' '" + } + ); + assert.throws( + () => request.method = true, + { + code: 'ERR_INVALID_ARG_TYPE', + name: 'TypeError', + message: 'The "method" argument must be of type string. ' + + 'Received type boolean (true)' + } + ); + + response.on('finish', common.mustCall(function() { + server.close(); + })); + response.end(); + })); + + const url = `http://localhost:${port}`; + const client = h2.connect(url, common.mustCall(function() { + const headers = { + ':path': '/foobar', + ':method': 'GET', + ':scheme': 'http', + ':authority': `localhost:${port}`, + 'foo-bar': 'abc123' + }; + const request = client.request(headers); + request.on('end', common.mustCall(function() { + client.close(); + })); + request.end(); + request.resume(); })); - response.end(); })); +} + +{ + // Http2ServerRequest should keep pseudo-headers order and after them, + // in the same order, the others headers + + const server = h2.createServer(); + server.listen(0, common.mustCall(function() { + const port = server.address().port; + server.once('request', common.mustCall(function(request, response) { + const expected = { + ':path': '/foobar', + ':method': 'GET', + ':scheme': 'http', + ':authority': `localhost:${port}`, + 'foo1': 'abc1', + 'foo2': 'abc2' + }; + + assert.strictEqual(request.path, undefined); + assert.strictEqual(request.method, expected[':method']); + assert.strictEqual(request.scheme, expected[':scheme']); + assert.strictEqual(request.url, expected[':path']); + assert.strictEqual(request.authority, expected[':authority']); + + const headers = request.headers; + for (const [name, value] of Object.entries(expected)) { + assert.strictEqual(headers[name], value); + } + + const rawHeaders = request.rawHeaders; + let expectedPosition = 0; + for (const [name, value] of Object.entries(expected)) { + const position = rawHeaders.indexOf(name); + assert.strictEqual(position / 2, expectedPosition); + assert.strictEqual(rawHeaders[position + 1], value); + expectedPosition++; + } + + response.on('finish', common.mustCall(function() { + server.close(); + })); + response.end(); + })); - const url = `http://localhost:${port}`; - const client = h2.connect(url, common.mustCall(function() { - const headers = { - ':path': '/foobar', - ':method': 'GET', - ':scheme': 'http', - ':authority': `localhost:${port}`, - 'foo-bar': 'abc123' - }; - const request = client.request(headers); - request.on('end', common.mustCall(function() { - client.close(); + const url = `http://localhost:${port}`; + const client = h2.connect(url, common.mustCall(function() { + const headers = { + ':path': '/foobar', + ':method': 'GET', + 'foo1': 'abc1', + ':scheme': 'http', + 'foo2': 'abc2', + ':authority': `localhost:${port}` + }; + const request = client.request(headers); + request.on('end', common.mustCall(function() { + client.close(); + })); + request.end(); + request.resume(); })); - request.end(); - request.resume(); })); -})); +} diff --git a/test/parallel/test-http2-compat-serverrequest-host.js b/test/parallel/test-http2-compat-serverrequest-host.js index 36600f787ca2e3..e5593deb1ed2be 100644 --- a/test/parallel/test-http2-compat-serverrequest-host.js +++ b/test/parallel/test-http2-compat-serverrequest-host.js @@ -36,8 +36,8 @@ server.listen(0, common.mustCall(function() { assert.strictEqual(rawHeaders[position + 1], value); } - assert(!Object.hasOwnProperty.call(headers, ':authority')); - assert(!Object.hasOwnProperty.call(rawHeaders, ':authority')); + assert(!Object.hasOwn(headers, ':authority')); + assert(!Object.hasOwn(rawHeaders, ':authority')); response.on('finish', common.mustCall(function() { server.close(); diff --git a/test/parallel/test-http2-exceeds-server-trailer-size.js b/test/parallel/test-http2-exceeds-server-trailer-size.js new file mode 100644 index 00000000000000..87c1070afbb7a4 --- /dev/null +++ b/test/parallel/test-http2-exceeds-server-trailer-size.js @@ -0,0 +1,51 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { createServer, constants, connect } = require('http2'); + +const server = createServer(); + +server.on('stream', (stream, headers) => { + stream.respond(undefined, { waitForTrailers: true }); + + stream.on('data', common.mustNotCall()); + + stream.on('wantTrailers', common.mustCall(() => { + // Trigger a frame error by sending a trailer that is too large + stream.sendTrailers({ 'test-trailer': 'X'.repeat(64 * 1024) }); + })); + + stream.on('frameError', common.mustCall((frameType, errorCode) => { + assert.strictEqual(errorCode, constants.NGHTTP2_FRAME_SIZE_ERROR); + })); + + stream.on('error', common.expectsError({ + code: 'ERR_HTTP2_STREAM_ERROR', + })); + + stream.on('close', common.mustCall()); + + stream.end(); +}); + +server.listen(0, () => { + const clientSession = connect(`http://localhost:${server.address().port}`); + + clientSession.on('frameError', common.mustNotCall()); + clientSession.on('close', common.mustCall(() => { + server.close(); + })); + + const clientStream = clientSession.request(); + + clientStream.on('close', common.mustCall()); + // These events mustn't be called once the frame size error is from the server + clientStream.on('frameError', common.mustNotCall()); + clientStream.on('error', common.mustNotCall()); + + clientStream.end(); +}); diff --git a/test/parallel/test-http2-goaway-delayed-request.js b/test/parallel/test-http2-goaway-delayed-request.js new file mode 100644 index 00000000000000..7afadbe80186ee --- /dev/null +++ b/test/parallel/test-http2-goaway-delayed-request.js @@ -0,0 +1,22 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const http2 = require('http2'); + +const server = http2.createServer(); + +server.listen(0, () => { + const client = http2.connect(`http://localhost:${server.address().port}`); + client.on('close', common.mustCall(() => { + server.close(); + })); + + // The client.close() is executed before the socket is able to make request + const stream = client.request(); + stream.on('error', common.expectsError({ code: 'ERR_HTTP2_GOAWAY_SESSION' })); + + setImmediate(() => client.close()); +}); diff --git a/test/parallel/test-http2-goaway-opaquedata.js b/test/parallel/test-http2-goaway-opaquedata.js index 56c0ae168c0c8b..538522883a1cfe 100644 --- a/test/parallel/test-http2-goaway-opaquedata.js +++ b/test/parallel/test-http2-goaway-opaquedata.js @@ -22,8 +22,8 @@ server.on('close', common.mustCall()); server.listen(0, () => { const client = http2.connect(`http://localhost:${server.address().port}`); client.once('goaway', common.mustCall((code, lastStreamID, buf) => { - assert.deepStrictEqual(code, 0); - assert.deepStrictEqual(lastStreamID, 1); + assert.strictEqual(code, 0); + assert.strictEqual(lastStreamID, 1); assert.deepStrictEqual(data, buf); session.close(); server.close(); diff --git a/test/parallel/test-http2-multiheaders-raw.js b/test/parallel/test-http2-multiheaders-raw.js index 8e80a1c6312a91..9bd48a9528eab3 100644 --- a/test/parallel/test-http2-multiheaders-raw.js +++ b/test/parallel/test-http2-multiheaders-raw.js @@ -16,14 +16,14 @@ src.test = 'foo, bar, baz'; server.on('stream', common.mustCall((stream, headers, flags, rawHeaders) => { const expected = [ - ':path', - '/', - ':scheme', - 'http', - ':authority', - `localhost:${server.address().port}`, ':method', 'GET', + ':authority', + `localhost:${server.address().port}`, + ':scheme', + 'http', + ':path', + '/', 'www-authenticate', 'foo', 'www-authenticate', diff --git a/test/parallel/test-http2-multiheaders.js b/test/parallel/test-http2-multiheaders.js index 6611dcf054d42a..8171df52507350 100644 --- a/test/parallel/test-http2-multiheaders.js +++ b/test/parallel/test-http2-multiheaders.js @@ -29,16 +29,13 @@ src.__PROTO__ = 'bar'; src.__Proto__ = 'baz'; function checkHeaders(headers) { - assert.deepStrictEqual(headers.accept, - 'abc, def, ghijklmnop'); - assert.deepStrictEqual(headers['www-authenticate'], - 'foo, bar, baz'); - assert.deepStrictEqual(headers['proxy-authenticate'], - 'foo, bar, baz'); - assert.deepStrictEqual(headers['x-foo'], 'foo, bar, baz'); - assert.deepStrictEqual(headers.constructor, 'foo, bar, baz'); + assert.strictEqual(headers.accept, 'abc, def, ghijklmnop'); + assert.strictEqual(headers['www-authenticate'], 'foo, bar, baz'); + assert.strictEqual(headers['proxy-authenticate'], 'foo, bar, baz'); + assert.strictEqual(headers['x-foo'], 'foo, bar, baz'); + assert.strictEqual(headers.constructor, 'foo, bar, baz'); // eslint-disable-next-line no-proto - assert.deepStrictEqual(headers.__proto__, 'foo, bar, baz'); + assert.strictEqual(headers.__proto__, 'foo, bar, baz'); } server.on('stream', common.mustCall((stream, headers) => { diff --git a/test/parallel/test-http2-options-max-headers-block-length.js b/test/parallel/test-http2-options-max-headers-block-length.js index 11632c6e825c53..af1cc6f9bc4860 100644 --- a/test/parallel/test-http2-options-max-headers-block-length.js +++ b/test/parallel/test-http2-options-max-headers-block-length.js @@ -32,12 +32,12 @@ server.listen(0, common.mustCall(() => { })); req.on('frameError', common.mustCall((type, code) => { - assert.strictEqual(code, h2.constants.NGHTTP2_ERR_FRAME_SIZE_ERROR); + assert.strictEqual(code, h2.constants.NGHTTP2_FRAME_SIZE_ERROR); })); req.on('error', common.expectsError({ code: 'ERR_HTTP2_STREAM_ERROR', name: 'Error', - message: 'Stream closed with error code NGHTTP2_REFUSED_STREAM' + message: 'Stream closed with error code NGHTTP2_FRAME_SIZE_ERROR' })); })); diff --git a/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js b/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js new file mode 100644 index 00000000000000..e503e226ef2da1 --- /dev/null +++ b/test/parallel/test-http2-options-max-headers-exceeds-nghttp2.js @@ -0,0 +1,46 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); +const h2 = require('http2'); + +const server = h2.createServer(); + +server.on('stream', common.mustNotCall()); +server.on('error', common.mustNotCall()); + +server.listen(0, common.mustCall(() => { + + // Setting the maxSendHeaderBlockLength > nghttp2 threshold + // cause a 'sessionError' and no memory leak when session destroy + const options = { + maxSendHeaderBlockLength: 100000 + }; + + const client = h2.connect(`http://localhost:${server.address().port}`, + options); + client.on('error', common.expectsError({ + code: 'ERR_HTTP2_SESSION_ERROR', + name: 'Error', + message: 'Session closed with error code 9' + })); + + const req = client.request({ + // Greater than 65536 bytes + 'test-header': 'A'.repeat(90000) + }); + req.on('response', common.mustNotCall()); + + req.on('close', common.mustCall(() => { + client.close(); + server.close(); + })); + + req.on('error', common.expectsError({ + code: 'ERR_HTTP2_SESSION_ERROR', + name: 'Error', + message: 'Session closed with error code 9' + })); + req.end(); +})); diff --git a/test/parallel/test-http2-pipe-named-pipe.js b/test/parallel/test-http2-pipe-named-pipe.js index 7882f79657f701..0ef05da1935d8c 100644 --- a/test/parallel/test-http2-pipe-named-pipe.js +++ b/test/parallel/test-http2-pipe-named-pipe.js @@ -15,19 +15,22 @@ const path = require('path'); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); const loc = fixtures.path('person-large.jpg'); -const fn = path.join(tmpdir.path, 'http2-url-tests.js'); +const fn = path.join(tmpdir.path, 'person-large.jpg'); const server = http2.createServer(); server.on('stream', common.mustCall((stream) => { const dest = stream.pipe(fs.createWriteStream(fn)); - dest.on('finish', () => { - assert.strictEqual(fs.readFileSync(loc).length, - fs.readFileSync(fn).length); - }); - stream.respond(); - stream.end(); + stream.on('end', common.mustCall(() => { + stream.respond(); + stream.end(); + })); + + dest.on('finish', common.mustCall(() => { + assert.strictEqual(fs.readFileSync(fn).length, + fs.readFileSync(loc).length); + })); })); server.listen(common.PIPE, common.mustCall(() => { diff --git a/test/parallel/test-http2-removed-header-stays-removed.js b/test/parallel/test-http2-removed-header-stays-removed.js index 6ba7bba474d9b1..663249749a92b9 100644 --- a/test/parallel/test-http2-removed-header-stays-removed.js +++ b/test/parallel/test-http2-removed-header-stays-removed.js @@ -13,7 +13,7 @@ server.listen(0, common.mustCall(() => { const session = http2.connect(`http://localhost:${server.address().port}`); const req = session.request(); req.on('response', (headers, flags) => { - assert.deepStrictEqual(headers.date, 'snacks o clock'); + assert.strictEqual(headers.date, 'snacks o clock'); }); req.on('end', () => { session.close(); diff --git a/test/parallel/test-http2-response-splitting.js b/test/parallel/test-http2-response-splitting.js index a94b9ca4f72b35..791c3d74c21213 100644 --- a/test/parallel/test-http2-response-splitting.js +++ b/test/parallel/test-http2-response-splitting.js @@ -32,11 +32,12 @@ server.on('stream', common.mustCall((stream, headers) => { const obj = Object.create(null); switch (remaining--) { - case 3: + case 3: { const url = new URL(makeUrl(headers)); obj[':status'] = 302; obj.Location = `/foo?lang=${url.searchParams.get('lang')}`; break; + } case 2: obj.foo = x; break; diff --git a/test/parallel/test-http2-server-socket-destroy.js b/test/parallel/test-http2-server-socket-destroy.js index ffb7ea48dc3343..4e9a3f5ab375c0 100644 --- a/test/parallel/test-http2-server-socket-destroy.js +++ b/test/parallel/test-http2-server-socket-destroy.js @@ -62,5 +62,7 @@ server.on('listening', common.mustCall(async () => { try { await once(req, 'end'); - } catch {} + } catch { + // Continue regardless of error. + } })); diff --git a/test/parallel/test-http2-stream-client.js b/test/parallel/test-http2-stream-client.js index f975e90cbdac61..89a571b27efc22 100644 --- a/test/parallel/test-http2-stream-client.js +++ b/test/parallel/test-http2-stream-client.js @@ -12,9 +12,9 @@ server.on('stream', common.mustCall((stream) => { assert.strictEqual(stream.aborted, false); const insp = util.inspect(stream); assert.match(insp, /Http2Stream {/); - assert.match(insp, / state:/); - assert.match(insp, / readableState:/); - assert.match(insp, / writableState:/); + assert.match(insp, / {2}state:/); + assert.match(insp, / {2}readableState:/); + assert.match(insp, / {2}writableState:/); stream.end('ok'); })); server.listen(0, common.mustCall(() => { diff --git a/test/parallel/test-http2-util-headers-list.js b/test/parallel/test-http2-util-headers-list.js index a25336ee7a8473..322323960e545d 100644 --- a/test/parallel/test-http2-util-headers-list.js +++ b/test/parallel/test-http2-util-headers-list.js @@ -98,8 +98,8 @@ const { { const headers = { 'abc': 1, - ':status': 200, ':path': 'abc', + ':status': 200, 'xyz': [1, '2', { toString() { return '3'; } }, 4], 'foo': [], 'BAR': [1] @@ -116,8 +116,8 @@ const { { const headers = { 'abc': 1, - ':path': 'abc', ':status': [200], + ':path': 'abc', ':authority': [], 'xyz': [1, 2, 3, 4] }; @@ -132,10 +132,10 @@ const { { const headers = { 'abc': 1, - ':path': 'abc', + ':status': 200, 'xyz': [1, 2, 3, 4], '': 1, - ':status': 200, + ':path': 'abc', [Symbol('test')]: 1 // Symbol keys are ignored }; @@ -150,10 +150,10 @@ const { // Only own properties are used const base = { 'abc': 1 }; const headers = Object.create(base); - headers[':path'] = 'abc'; + headers[':status'] = 200; headers.xyz = [1, 2, 3, 4]; headers.foo = []; - headers[':status'] = 200; + headers[':path'] = 'abc'; assert.deepStrictEqual( mapToHeaders(headers), @@ -191,8 +191,8 @@ const { { const headers = { 'abc': 1, - ':path': 'abc', ':status': [200], + ':path': 'abc', ':authority': [], 'xyz': [1, 2, 3, 4], [sensitiveHeaders]: ['xyz'] diff --git a/test/parallel/test-https-agent-getname.js b/test/parallel/test-https-agent-getname.js index 6f8c32b299a669..2a13ab1c6f47ee 100644 --- a/test/parallel/test-https-agent-getname.js +++ b/test/parallel/test-https-agent-getname.js @@ -9,6 +9,12 @@ const https = require('https'); const agent = new https.Agent(); +// empty argument +assert.strictEqual( + agent.getName(), + 'localhost::::::::::::::::::::::' +); + // empty options assert.strictEqual( agent.getName({}), diff --git a/test/parallel/test-inspector-bindings.js b/test/parallel/test-inspector-bindings.js index 3e88c858f8de9e..1f1d3699146814 100644 --- a/test/parallel/test-inspector-bindings.js +++ b/test/parallel/test-inspector-bindings.js @@ -92,7 +92,7 @@ function testSampleDebugSession() { }); debuggedFunction(); - assert.deepStrictEqual(cbAsSecondArgCalled, true); + assert.strictEqual(cbAsSecondArgCalled, true); assert.deepStrictEqual(failures, []); assert.strictEqual(cur, 5); scopeCallback = null; diff --git a/test/parallel/test-internal-errors.js b/test/parallel/test-internal-errors.js index 7bcc7dcc330c2c..5f1be13801ef1a 100644 --- a/test/parallel/test-internal-errors.js +++ b/test/parallel/test-internal-errors.js @@ -85,8 +85,8 @@ assert.throws(() => { { const myError = new errors.codes.TEST_ERROR_1('foo'); assert.strictEqual(myError.code, 'TEST_ERROR_1'); - assert.strictEqual(myError.hasOwnProperty('code'), true); - assert.strictEqual(myError.hasOwnProperty('name'), false); + assert.strictEqual(Object.hasOwn(myError, 'code'), true); + assert.strictEqual(Object.hasOwn(myError, 'name'), false); assert.deepStrictEqual(Object.keys(myError), ['code']); const initialName = myError.name; myError.code = 'FHQWHGADS'; diff --git a/test/parallel/test-internal-module-map-asserts.js b/test/parallel/test-internal-module-map-asserts.js deleted file mode 100644 index 6f985faccd92bb..00000000000000 --- a/test/parallel/test-internal-module-map-asserts.js +++ /dev/null @@ -1,42 +0,0 @@ -// Flags: --expose-internals -'use strict'; - -require('../common'); -const assert = require('assert'); -const ModuleMap = require('internal/modules/esm/module_map'); - -// ModuleMap.get, ModuleMap.has and ModuleMap.set should only accept string -// values as url argument. -{ - const errorObj = { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: /^The "url" argument must be of type string/ - }; - - const moduleMap = new ModuleMap(); - - // As long as the assertion of "job" argument is done after the assertion of - // "url" argument this test suite is ok. Tried to mock the "job" parameter, - // but I think it's useless, and was not simple to mock... - const job = undefined; - - [{}, [], true, 1].forEach((value) => { - assert.throws(() => moduleMap.get(value), errorObj); - assert.throws(() => moduleMap.has(value), errorObj); - assert.throws(() => moduleMap.set(value, job), errorObj); - }); -} - -// ModuleMap.set, job argument should only accept ModuleJob values. -{ - const moduleMap = new ModuleMap(); - - [{}, [], true, 1].forEach((value) => { - assert.throws(() => moduleMap.set('', value), { - code: 'ERR_INVALID_ARG_TYPE', - name: 'TypeError', - message: /^The "job" argument must be an instance of ModuleJob/ - }); - }); -} diff --git a/test/parallel/test-intl.js b/test/parallel/test-intl.js index 956383c5281389..7d1742f2c7d1c6 100644 --- a/test/parallel/test-intl.js +++ b/test/parallel/test-intl.js @@ -104,6 +104,12 @@ if (!common.hasIntl) { const numberFormat = new Intl.NumberFormat(['en']).format(12345.67890); assert.strictEqual(numberFormat, '12,345.679'); } + // If list is specified and doesn't contain 'en-US' then return. + if (process.config.variables.icu_locales && !haveLocale('en-US')) { + common.printSkipMessage('detailed Intl tests because American English is ' + + 'not listed as supported.'); + return; + } // Number format resolved options { const numberFormat = new Intl.NumberFormat('en-US', { style: 'percent' }); diff --git a/test/parallel/test-listen-fd-detached-inherit.js b/test/parallel/test-listen-fd-detached-inherit.js index 81c07d1263e964..2a8e70f0f94230 100644 --- a/test/parallel/test-listen-fd-detached-inherit.js +++ b/test/parallel/test-listen-fd-detached-inherit.js @@ -69,7 +69,9 @@ function test() { process.kill(child.pid, 'SIGKILL'); try { parent.kill(); - } catch {} + } catch { + // Continue regardless of error. + } assert.strictEqual(s, 'hello from child\n'); assert.strictEqual(res.statusCode, 200); diff --git a/test/parallel/test-listen-fd-detached.js b/test/parallel/test-listen-fd-detached.js index efa08323047358..fba96a112f89b0 100644 --- a/test/parallel/test-listen-fd-detached.js +++ b/test/parallel/test-listen-fd-detached.js @@ -69,7 +69,9 @@ function test() { process.kill(child.pid, 'SIGKILL'); try { parent.kill(); - } catch {} + } catch { + // Continue regardless of error. + } assert.strictEqual(s, 'hello from child\n'); assert.strictEqual(res.statusCode, 200); diff --git a/test/parallel/test-macos-app-sandbox.js b/test/parallel/test-macos-app-sandbox.js index b6743e8ba50da4..7de50d4b4a2507 100644 --- a/test/parallel/test-macos-app-sandbox.js +++ b/test/parallel/test-macos-app-sandbox.js @@ -2,6 +2,8 @@ const common = require('../common'); if (process.platform !== 'darwin') common.skip('App Sandbox is only available on Darwin'); +if (process.config.variables.node_builtin_modules_path) + common.skip('App Sandbox cannot load modules from outside the sandbox'); const fixtures = require('../common/fixtures'); const tmpdir = require('../common/tmpdir'); diff --git a/test/parallel/test-module-version.js b/test/parallel/test-module-version.js index 61b84914e21677..0a8b2427c6e8b4 100644 --- a/test/parallel/test-module-version.js +++ b/test/parallel/test-module-version.js @@ -3,7 +3,7 @@ require('../common'); const assert = require('assert'); // check for existence -assert(process.config.variables.hasOwnProperty('node_module_version')); +assert(Object.hasOwn(process.config.variables, 'node_module_version')); // Ensure that `node_module_version` is an Integer > 0 assert(Number.isInteger(process.config.variables.node_module_version)); diff --git a/test/parallel/test-net-connect-keepalive.js b/test/parallel/test-net-connect-keepalive.js new file mode 100644 index 00000000000000..3e439c647c36be --- /dev/null +++ b/test/parallel/test-net-connect-keepalive.js @@ -0,0 +1,56 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); + +const truthyValues = [true, 1, 'true', {}, []]; +const delays = [[123, 0], [456123, 456], [-123000, 0], [undefined, 0]]; +const falseyValues = [false, 0, '']; + +const genSetKeepAlive = (desiredEnable, desiredDelay) => (enable, delay) => { + assert.strictEqual(enable, desiredEnable); + assert.strictEqual(delay, desiredDelay); +}; + +for (const value of truthyValues) { + for (const delay of delays) { + const server = net.createServer(); + + server.listen(0, common.mustCall(function() { + const port = server.address().port; + + const client = net.connect( + { port, keepAlive: value, keepAliveInitialDelay: delay[0] }, + common.mustCall(() => client.end()) + ); + + client._handle.setKeepAlive = common.mustCall( + genSetKeepAlive(true, delay[1]) + ); + + client.on('end', common.mustCall(function() { + server.close(); + })); + })); + } +} + +for (const value of falseyValues) { + const server = net.createServer(); + + server.listen(0, common.mustCall(function() { + const port = server.address().port; + + const client = net.connect( + { port, keepAlive: value }, + common.mustCall(() => client.end()) + ); + + client._handle.setKeepAlive = common.mustNotCall(); + + client.on('end', common.mustCall(function() { + server.close(); + })); + })); +} diff --git a/test/parallel/test-net-connect-nodelay.js b/test/parallel/test-net-connect-nodelay.js new file mode 100644 index 00000000000000..6810e339e2b6c4 --- /dev/null +++ b/test/parallel/test-net-connect-nodelay.js @@ -0,0 +1,49 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const net = require('net'); + +const truthyValues = [true, 1, 'true', {}, []]; +const falseyValues = [false, 0, '']; +const genSetNoDelay = (desiredArg) => (enable) => { + assert.strictEqual(enable, desiredArg); +}; + +for (const value of truthyValues) { + const server = net.createServer(); + + server.listen(0, common.mustCall(function() { + const port = server.address().port; + + const client = net.connect( + { port, noDelay: value }, + common.mustCall(() => client.end()) + ); + + client._handle.setNoDelay = common.mustCall(genSetNoDelay(true)); + + client.on('end', common.mustCall(function() { + server.close(); + })); + })); +} + +for (const value of falseyValues) { + const server = net.createServer(); + + server.listen(0, common.mustCall(function() { + const port = server.address().port; + + const client = net.connect( + { port, noDelay: value }, + common.mustCall(() => client.end()) + ); + + client._handle.setNoDelay = common.mustNotCall(); + + client.on('end', common.mustCall(function() { + server.close(); + })); + })); +} diff --git a/test/parallel/test-net-deprecated-setsimultaneousaccepts.js b/test/parallel/test-net-deprecated-setsimultaneousaccepts.js index 3778a9650fcc8d..dd6decdcce513f 100644 --- a/test/parallel/test-net-deprecated-setsimultaneousaccepts.js +++ b/test/parallel/test-net-deprecated-setsimultaneousaccepts.js @@ -1,6 +1,8 @@ // Flags: --no-warnings 'use strict'; +// Test that DEP0121 is emitted on the first call of _setSimultaneousAccepts(). + const { expectWarning } = require('../common'); diff --git a/test/parallel/test-net-server-max-connections.js b/test/parallel/test-net-server-max-connections.js index 705c99b7b9737a..ea9a8d29e9f1ed 100644 --- a/test/parallel/test-net-server-max-connections.js +++ b/test/parallel/test-net-server-max-connections.js @@ -68,7 +68,7 @@ function makeConnection(index) { if (closes === N / 2) { let cb; console.error('calling wait callback.'); - while (cb = waits.shift()) { + while ((cb = waits.shift()) !== undefined) { cb(); } server.close(); diff --git a/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js b/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js index ffca38f603b2a9..391c2ecea76841 100644 --- a/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js +++ b/test/parallel/test-net-server-simultaneous-accepts-produce-warning-once.js @@ -1,12 +1,19 @@ 'use strict'; +// Test that DEP0121 is emitted only once if _setSimultaneousAccepts() is called +// more than once. This test is similar to +// test-net-deprecated-setsimultaneousaccepts.js, but that test calls +// _setSimultaneousAccepts() only once. Unlike this test, that will confirm +// that the warning is emitted on the first call. This test doesn't check which +// call caused the warning to be emitted. + const { expectWarning } = require('../common'); -const net = require('net'); +const { _setSimultaneousAccepts } = require('net'); expectWarning( 'DeprecationWarning', 'net._setSimultaneousAccepts() is deprecated and will be removed.', 'DEP0121'); -net._setSimultaneousAccepts(); -net._setSimultaneousAccepts(); +_setSimultaneousAccepts(); +_setSimultaneousAccepts(); diff --git a/test/parallel/test-pending-deprecation.js b/test/parallel/test-pending-deprecation.js index c94c75560df695..e808b6085821d9 100644 --- a/test/parallel/test-pending-deprecation.js +++ b/test/parallel/test-pending-deprecation.js @@ -29,7 +29,7 @@ switch (process.argv[2]) { true ); break; - default: + default: { // Verify that the flag is off by default. const envvar = process.env.NODE_PENDING_DEPRECATION; assert.strictEqual( @@ -61,4 +61,5 @@ switch (process.argv[2]) { }).on('exit', common.mustCall((code) => { assert.strictEqual(code, 0, message('NODE_PENDING_DEPRECATION')); })); + } } diff --git a/test/parallel/test-perf-hooks-histogram.js b/test/parallel/test-perf-hooks-histogram.js index a60d3a94bbc136..2137c1b2a3bb11 100644 --- a/test/parallel/test-perf-hooks-histogram.js +++ b/test/parallel/test-perf-hooks-histogram.js @@ -1,54 +1,75 @@ 'use strict'; const common = require('../common'); -const assert = require('assert'); + +const { + ok, + strictEqual, + throws, +} = require('assert'); + const { createHistogram, monitorEventLoopDelay, } = require('perf_hooks'); + const { inspect } = require('util'); { const h = createHistogram(); - assert.strictEqual(h.min, 9223372036854776000); - assert.strictEqual(h.max, 0); - assert.strictEqual(h.exceeds, 0); - assert(Number.isNaN(h.mean)); - assert(Number.isNaN(h.stddev)); + strictEqual(h.min, 9223372036854776000); + strictEqual(h.minBigInt, 9223372036854775807n); + strictEqual(h.max, 0); + strictEqual(h.maxBigInt, 0n); + strictEqual(h.exceeds, 0); + strictEqual(h.exceedsBigInt, 0n); + ok(Number.isNaN(h.mean)); + ok(Number.isNaN(h.stddev)); + + strictEqual(h.count, 0); + strictEqual(h.countBigInt, 0n); h.record(1); + strictEqual(h.count, 1); + strictEqual(h.countBigInt, 1n); + [false, '', {}, undefined, null].forEach((i) => { - assert.throws(() => h.record(i), { + throws(() => h.record(i), { code: 'ERR_INVALID_ARG_TYPE' }); }); - assert.throws(() => h.record(0, Number.MAX_SAFE_INTEGER + 1), { + throws(() => h.record(0, Number.MAX_SAFE_INTEGER + 1), { code: 'ERR_OUT_OF_RANGE' }); - assert.strictEqual(h.min, 1); - assert.strictEqual(h.max, 1); - assert.strictEqual(h.exceeds, 0); - assert.strictEqual(h.mean, 1); - assert.strictEqual(h.stddev, 0); + strictEqual(h.min, 1); + strictEqual(h.minBigInt, 1n); + strictEqual(h.max, 1); + strictEqual(h.maxBigInt, 1n); + strictEqual(h.exceeds, 0); + strictEqual(h.mean, 1); + strictEqual(h.stddev, 0); + + strictEqual(h.percentile(1), 1); + strictEqual(h.percentile(100), 1); - assert.strictEqual(h.percentile(1), 1); - assert.strictEqual(h.percentile(100), 1); + strictEqual(h.percentileBigInt(1), 1n); + strictEqual(h.percentileBigInt(100), 1n); const mc = new MessageChannel(); mc.port1.onmessage = common.mustCall(({ data }) => { - assert.strictEqual(h.min, 1); - assert.strictEqual(h.max, 1); - assert.strictEqual(h.exceeds, 0); - assert.strictEqual(h.mean, 1); - assert.strictEqual(h.stddev, 0); + strictEqual(h.min, 1); + strictEqual(h.max, 1); + strictEqual(h.exceeds, 0); + strictEqual(h.mean, 1); + strictEqual(h.stddev, 0); data.record(2n); data.recordDelta(); - assert.strictEqual(h.max, 2); + strictEqual(h.max, 2); mc.port1.close(); }); @@ -57,13 +78,15 @@ const { inspect } = require('util'); { const e = monitorEventLoopDelay(); + strictEqual(e.count, 0); e.enable(); const mc = new MessageChannel(); mc.port1.onmessage = common.mustCall(({ data }) => { - assert(typeof data.min, 'number'); - assert(data.min > 0); - assert.strictEqual(data.disable, undefined); - assert.strictEqual(data.enable, undefined); + strictEqual(typeof data.min, 'number'); + ok(data.min > 0); + ok(data.count > 0); + strictEqual(data.disable, undefined); + strictEqual(data.enable, undefined); mc.port1.close(); }); setTimeout(() => mc.port2.postMessage(e), 100); @@ -71,12 +94,66 @@ const { inspect } = require('util'); { const h = createHistogram(); - assert(inspect(h, { depth: null }).startsWith('Histogram')); - assert.strictEqual(inspect(h, { depth: -1 }), '[RecordableHistogram]'); + ok(inspect(h, { depth: null }).startsWith('Histogram')); + strictEqual(inspect(h, { depth: -1 }), '[RecordableHistogram]'); } { // Tests that RecordableHistogram is impossible to construct manually const h = createHistogram(); - assert.throws(() => new h.constructor(), { code: 'ERR_ILLEGAL_CONSTRUCTOR' }); + throws(() => new h.constructor(), { code: 'ERR_ILLEGAL_CONSTRUCTOR' }); +} + +{ + [ + 'hello', + 1, + null, + ].forEach((i) => { + throws(() => createHistogram(i), { code: 'ERR_INVALID_ARG_TYPE' }); + }); + + [ + 'hello', + false, + null, + {}, + ].forEach((i) => { + throws(() => createHistogram({ lowest: i }), { + code: 'ERR_INVALID_ARG_TYPE', + }); + throws(() => createHistogram({ highest: i }), { + code: 'ERR_INVALID_ARG_TYPE', + }); + throws(() => createHistogram({ figures: i }), { + code: 'ERR_INVALID_ARG_TYPE', + }); + }); + + createHistogram({ lowest: 1, highest: 11, figures: 1 }); +} + +{ + const h1 = createHistogram(); + const h2 = createHistogram(); + + h1.record(1); + + strictEqual(h2.count, 0); + strictEqual(h1.count, 1); + + h2.add(h1); + + strictEqual(h2.count, 1); + + [ + 'hello', + 1, + false, + {}, + ].forEach((i) => { + throws(() => h1.add(i), { + code: 'ERR_INVALID_ARG_TYPE', + }); + }); } diff --git a/test/parallel/test-perf-hooks-usertiming.js b/test/parallel/test-perf-hooks-usertiming.js index e7ef26889eae0f..71cc28c0f9c3a3 100644 --- a/test/parallel/test-perf-hooks-usertiming.js +++ b/test/parallel/test-perf-hooks-usertiming.js @@ -42,14 +42,17 @@ assert.throws(() => mark(Symbol('a')), { const m = mark('a', { detail }); assert.strictEqual(m.name, 'a'); assert.strictEqual(m.entryType, 'mark'); - assert.deepStrictEqual(m.detail, null); + assert.strictEqual(m.detail, null); }); -[1, 'any', {}, []].forEach((detail) => { +[1, 'any', {}, [], /a/].forEach((detail) => { const m = mark('a', { detail }); assert.strictEqual(m.name, 'a'); assert.strictEqual(m.entryType, 'mark'); // Value of detail is structured cloned. assert.deepStrictEqual(m.detail, detail); + if (typeof detail === 'object') { + assert.notStrictEqual(m.detail, detail); + } }); clearMarks(); diff --git a/test/parallel/test-performance-eventlooputil.js b/test/parallel/test-performance-eventlooputil.js index 9ce7212729d574..3b0c36892ea486 100644 --- a/test/parallel/test-performance-eventlooputil.js +++ b/test/parallel/test-performance-eventlooputil.js @@ -37,7 +37,7 @@ setTimeout(mustCall(function r() { return setTimeout(mustCall(r), 5); const t = Date.now(); - while (Date.now() - t < SPIN_DUR) { } + while (Date.now() - t < SPIN_DUR); const elu2 = eventLoopUtilization(elu1); const elu3 = eventLoopUtilization(); diff --git a/test/parallel/test-performance-timeline.mjs b/test/parallel/test-performance-timeline.mjs new file mode 100644 index 00000000000000..57e0f6f0b7b6da --- /dev/null +++ b/test/parallel/test-performance-timeline.mjs @@ -0,0 +1,50 @@ +// This file may needs to be updated to wpt: +// https://github.com/web-platform-tests/wpt + +import '../common/index.mjs'; +import assert from 'assert'; + +import { performance } from 'perf_hooks'; +import { setTimeout } from 'timers/promises'; + +// Order by startTime +performance.mark('one'); +await setTimeout(50); +performance.mark('two'); +await setTimeout(50); +performance.mark('three'); +await setTimeout(50); +performance.measure('three', 'three'); +await setTimeout(50); +performance.measure('two', 'two'); +await setTimeout(50); +performance.measure('one', 'one'); +const entries = performance.getEntriesByType('measure'); +assert.deepStrictEqual(entries.map((x) => x.name), ['one', 'two', 'three']); +const allEntries = performance.getEntries(); +assert.deepStrictEqual(allEntries.map((x) => x.name), ['one', 'one', 'two', 'two', 'three', 'three']); + +performance.mark('a'); +await setTimeout(50); +performance.measure('a', 'a'); +await setTimeout(50); +performance.mark('a'); +await setTimeout(50); +performance.measure('a', 'one'); +const entriesByName = performance.getEntriesByName('a'); +assert.deepStrictEqual(entriesByName.map((x) => x.entryType), ['measure', 'mark', 'measure', 'mark']); + +// getEntriesBy[Name|Type](undefined) +performance.mark(undefined); +assert.strictEqual(performance.getEntriesByName(undefined).length, 1); +assert.strictEqual(performance.getEntriesByType(undefined).length, 0); +assert.throws(() => performance.getEntriesByName(), { + name: 'TypeError', + message: 'The "name" argument must be specified', + code: 'ERR_MISSING_ARGS' +}); +assert.throws(() => performance.getEntriesByType(), { + name: 'TypeError', + message: 'The "type" argument must be specified', + code: 'ERR_MISSING_ARGS' +}); diff --git a/test/parallel/test-policy-manifest.js b/test/parallel/test-policy-manifest.js new file mode 100644 index 00000000000000..a8494175f3e68f --- /dev/null +++ b/test/parallel/test-policy-manifest.js @@ -0,0 +1,25 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +common.requireNoPackageJSONAbove(); + +const assert = require('assert'); +const { spawnSync } = require('child_process'); +const fixtures = require('../common/fixtures.js'); + +const policyFilepath = fixtures.path('policy-manifest', 'invalid.json'); + +const result = spawnSync(process.execPath, [ + '--experimental-policy', + policyFilepath, + './fhqwhgads.js', +]); + +assert.notStrictEqual(result.status, 0); +const stderr = result.stderr.toString(); +assert.match(stderr, /ERR_MANIFEST_INVALID_SPECIFIER/); +assert.match(stderr, /pattern needs to have a single trailing "\*"/); diff --git a/test/parallel/test-process-config.js b/test/parallel/test-process-config.js index 0cb7e8e8d590d7..a48e107d4c22a3 100644 --- a/test/parallel/test-process-config.js +++ b/test/parallel/test-process-config.js @@ -31,7 +31,7 @@ const fs = require('fs'); const path = require('path'); // Check for existence of `process.config`. -assert(process.hasOwnProperty('config')); +assert(Object.hasOwn(process, 'config')); // Ensure that `process.config` is an Object. assert.strictEqual(Object(process.config), process.config); diff --git a/test/parallel/test-process-env-allowed-flags-are-documented.js b/test/parallel/test-process-env-allowed-flags-are-documented.js index 8a4e35997907c0..f4dd77e075b89b 100644 --- a/test/parallel/test-process-env-allowed-flags-are-documented.js +++ b/test/parallel/test-process-env-allowed-flags-are-documented.js @@ -15,7 +15,9 @@ const parseSection = (text, startMarker, endMarker) => { const match = text.match(regExp); assert(match, `Unable to locate text between '${startMarker}' and '${endMarker}'.`); - return match[1].split(/\r?\n/); + return match[1] + .split(/\r?\n/) + .filter((val) => val.trim() !== ''); }; const nodeOptionsLines = parseSection(cliText, @@ -24,6 +26,7 @@ const nodeOptionsLines = parseSection(cliText, const v8OptionsLines = parseSection(cliText, '', ''); + // Check the options are documented in alphabetical order. assert.deepStrictEqual(nodeOptionsLines, [...nodeOptionsLines].sort()); assert.deepStrictEqual(v8OptionsLines, [...v8OptionsLines].sort()); diff --git a/test/parallel/test-process-env-tz.js b/test/parallel/test-process-env-tz.js index da716299c9f622..b0188ab9c267f8 100644 --- a/test/parallel/test-process-env-tz.js +++ b/test/parallel/test-process-env-tz.js @@ -31,19 +31,19 @@ if (date.toString().includes('(Central European Time)') || common.skip('tzdata too old'); } -assert.strictEqual( - date.toString().replace('Central European Summer Time', 'CEST'), - 'Sat Apr 14 2018 14:34:56 GMT+0200 (CEST)'); +assert.match( + date.toString(), + /^Sat Apr 14 2018 14:34:56 GMT\+0200 \(.+\)$/); process.env.TZ = 'Europe/London'; -assert.strictEqual( - date.toString().replace('British Summer Time', 'BST'), - 'Sat Apr 14 2018 13:34:56 GMT+0100 (BST)'); +assert.match( + date.toString(), + /^Sat Apr 14 2018 13:34:56 GMT\+0100 \(.+\)$/); process.env.TZ = 'Etc/UTC'; -assert.strictEqual( - date.toString().replace('Coordinated Universal Time', 'UTC'), - 'Sat Apr 14 2018 12:34:56 GMT+0000 (UTC)'); +assert.match( + date.toString(), + /^Sat Apr 14 2018 12:34:56 GMT\+0000 \(.+\)$/); // Just check that deleting the environment variable doesn't crash the process. // We can't really check the result of date.toString() because we don't know diff --git a/test/parallel/test-process-env.js b/test/parallel/test-process-env.js index 2252ddea71675a..f0bff13d4c81f1 100644 --- a/test/parallel/test-process-env.js +++ b/test/parallel/test-process-env.js @@ -29,8 +29,7 @@ if (process.argv[2] === 'you-are-the-child') { assert.strictEqual('NODE_PROCESS_ENV_DELETED' in process.env, false); assert.strictEqual(process.env.NODE_PROCESS_ENV, '42'); assert.strictEqual(process.env.hasOwnProperty, 'asdf'); - const hasOwnProperty = Object.prototype.hasOwnProperty; - const has = hasOwnProperty.call(process.env, 'hasOwnProperty'); + const has = Object.hasOwn(process.env, 'hasOwnProperty'); assert.strictEqual(has, true); process.exit(0); } @@ -40,7 +39,7 @@ if (process.argv[2] === 'you-are-the-child') { assert.strictEqual(Object.prototype.hasOwnProperty, process.env.hasOwnProperty); - const has = process.env.hasOwnProperty('hasOwnProperty'); + const has = Object.hasOwn(process.env, 'hasOwnProperty'); assert.strictEqual(has, false); process.env.hasOwnProperty = 'asdf'; diff --git a/test/parallel/test-process-getactiveresources-track-active-handles.js b/test/parallel/test-process-getactiveresources-track-active-handles.js new file mode 100644 index 00000000000000..25a40bc64a102c --- /dev/null +++ b/test/parallel/test-process-getactiveresources-track-active-handles.js @@ -0,0 +1,44 @@ +'use strict'; + +require('../common'); +const assert = require('assert'); +const net = require('net'); +const NUM = 8; +const connections = []; +const clients = []; +let clients_counter = 0; + +const server = net.createServer(function listener(c) { + connections.push(c); +}).listen(0, makeConnection); + + +function makeConnection() { + if (clients_counter >= NUM) return; + net.connect(server.address().port, function connected() { + clientConnected(this); + makeConnection(); + }); +} + + +function clientConnected(client) { + clients.push(client); + if (++clients_counter >= NUM) + checkAll(); +} + + +function checkAll() { + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'TCPSocketWrap').length, + clients.length + connections.length); + + clients.forEach((item) => item.destroy()); + connections.forEach((item) => item.end()); + + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'TCPServerWrap').length, 1); + + server.close(); +} diff --git a/test/parallel/test-process-getactiveresources-track-active-requests.js b/test/parallel/test-process-getactiveresources-track-active-requests.js new file mode 100644 index 00000000000000..12957ff956fd4d --- /dev/null +++ b/test/parallel/test-process-getactiveresources-track-active-requests.js @@ -0,0 +1,11 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); +const fs = require('fs'); + +for (let i = 0; i < 12; i++) { + fs.open(__filename, 'r', common.mustCall()); +} + +assert.strictEqual(process.getActiveResourcesInfo().length, 12); diff --git a/test/parallel/test-process-getactiveresources-track-interval-lifetime.js b/test/parallel/test-process-getactiveresources-track-interval-lifetime.js new file mode 100644 index 00000000000000..1563673041abe4 --- /dev/null +++ b/test/parallel/test-process-getactiveresources-track-interval-lifetime.js @@ -0,0 +1,21 @@ +'use strict'; + +const common = require('../common'); + +const assert = require('assert'); + +assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + +let count = 0; +const interval = setInterval(common.mustCall(() => { + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + ++count; + if (count === 3) { + clearInterval(interval); + } +}, 3), 0); + +assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); diff --git a/test/parallel/test-process-getactiveresources-track-multiple-timers.js b/test/parallel/test-process-getactiveresources-track-multiple-timers.js new file mode 100644 index 00000000000000..8022566882d5de --- /dev/null +++ b/test/parallel/test-process-getactiveresources-track-multiple-timers.js @@ -0,0 +1,20 @@ +'use strict'; + +const common = require('../common'); +const assert = require('assert'); + +for (let i = 0; i < 10; ++i) { + for (let j = 0; j < 10; ++j) { + setTimeout(common.mustCall(), i); + } +} + +assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 100); + +for (let i = 0; i < 10; ++i) { + setImmediate(common.mustCall()); +} + +assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 10); diff --git a/test/parallel/test-process-getactiveresources-track-timer-lifetime.js b/test/parallel/test-process-getactiveresources-track-timer-lifetime.js new file mode 100644 index 00000000000000..72a830a1640c36 --- /dev/null +++ b/test/parallel/test-process-getactiveresources-track-timer-lifetime.js @@ -0,0 +1,41 @@ +'use strict'; + +const common = require('../common'); + +const assert = require('assert'); + +{ + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + + const timeout = setTimeout(common.mustCall(() => { + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); + clearTimeout(timeout); + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 0); + }), 0); + + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Timeout').length, 1); +} + +{ + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + + const immediate = setImmediate(common.mustCall(() => { + // TODO(RaisinTen): Change this test to the following when the Immediate is + // destroyed and unrefed after the callback gets executed. + // assert.strictEqual(process.getActiveResourcesInfo().filter( + // (type) => type === 'Immediate').length, 1); + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + clearImmediate(immediate); + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 0); + })); + + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'Immediate').length, 1); +} diff --git a/test/parallel/test-process-getactiveresources.js b/test/parallel/test-process-getactiveresources.js new file mode 100644 index 00000000000000..a2df7d580d15ea --- /dev/null +++ b/test/parallel/test-process-getactiveresources.js @@ -0,0 +1,9 @@ +'use strict'; + +require('../common'); + +const assert = require('assert'); + +setTimeout(() => {}, 0); + +assert.deepStrictEqual(process.getActiveResourcesInfo(), ['Timeout']); diff --git a/test/parallel/test-process-uid-gid.js b/test/parallel/test-process-uid-gid.js index 0e170620b7f237..23c51936e0c893 100644 --- a/test/parallel/test-process-uid-gid.js +++ b/test/parallel/test-process-uid-gid.js @@ -53,10 +53,18 @@ assert.throws(() => { // Passing -0 shouldn't crash the process // Refs: https://github.com/nodejs/node/issues/32750 -try { process.setuid(-0); } catch {} -try { process.seteuid(-0); } catch {} -try { process.setgid(-0); } catch {} -try { process.setegid(-0); } catch {} +try { process.setuid(-0); } catch { + // Continue regardless of error. +} +try { process.seteuid(-0); } catch { + // Continue regardless of error. +} +try { process.setgid(-0); } catch { + // Continue regardless of error. +} +try { process.setegid(-0); } catch { + // Continue regardless of error. +} // If we're not running as super user... if (process.getuid() !== 0) { diff --git a/test/parallel/test-promise-hook-create-hook.js b/test/parallel/test-promise-hook-create-hook.js new file mode 100644 index 00000000000000..543f67da486065 --- /dev/null +++ b/test/parallel/test-promise-hook-create-hook.js @@ -0,0 +1,82 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +for (const hook of ['init', 'before', 'after', 'settled']) { + assert.throws(() => { + promiseHooks.createHook({ + [hook]: async function() { } + }); + }, new RegExp(`The "${hook}Hook" argument must be of type function`)); + + assert.throws(() => { + promiseHooks.createHook({ + [hook]: async function*() { } + }); + }, new RegExp(`The "${hook}Hook" argument must be of type function`)); +} + +let init; +let initParent; +let before; +let after; +let settled; + +const stop = promiseHooks.createHook({ + init: common.mustCall((promise, parent) => { + init = promise; + initParent = parent; + }, 3), + before: common.mustCall((promise) => { + before = promise; + }, 2), + after: common.mustCall((promise) => { + after = promise; + }, 1), + settled: common.mustCall((promise) => { + settled = promise; + }, 2) +}); + +// Clears state on each check so only the delta needs to be checked. +function assertState(expectedInit, expectedInitParent, expectedBefore, + expectedAfter, expectedSettled) { + assert.strictEqual(init, expectedInit); + assert.strictEqual(initParent, expectedInitParent); + assert.strictEqual(before, expectedBefore); + assert.strictEqual(after, expectedAfter); + assert.strictEqual(settled, expectedSettled); + init = undefined; + initParent = undefined; + before = undefined; + after = undefined; + settled = undefined; +} + +const parent = Promise.resolve(1); +// After calling `Promise.resolve(...)`, the returned promise should have +// produced an init event with no parent and a settled event. +assertState(parent, undefined, undefined, undefined, parent); + +const child = parent.then(() => { + // When a callback to `promise.then(...)` is called, the promise it resolves + // to should have produced a before event to mark the start of this callback. + assertState(undefined, undefined, child, undefined, undefined); +}); +// After calling `promise.then(...)`, the returned promise should have +// produced an init event with a parent of the promise the `then(...)` +// was called on. +assertState(child, parent); + +const grandChild = child.then(() => { + // Since the check for the before event in the `then(...)` call producing the + // `child` promise, there should have been both a before event for this + // promise but also settled and after events for the `child` promise. + assertState(undefined, undefined, grandChild, child, child); + stop(); +}); +// After calling `promise.then(...)`, the returned promise should have +// produced an init event with a parent of the promise the `then(...)` +// was called on. +assertState(grandChild, child); diff --git a/test/parallel/test-promise-hook-exceptions.js b/test/parallel/test-promise-hook-exceptions.js new file mode 100644 index 00000000000000..d1251502d840b9 --- /dev/null +++ b/test/parallel/test-promise-hook-exceptions.js @@ -0,0 +1,31 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +const expected = []; + +function testHook(name) { + const hook = promiseHooks[name]; + const error = new Error(`${name} error`); + + const stop = hook(common.mustCall(() => { + stop(); + throw error; + })); + + expected.push(error); +} + +process.on('uncaughtException', common.mustCall((received) => { + assert.strictEqual(received, expected.shift()); +}, 4)); + +testHook('onInit'); +testHook('onSettled'); +testHook('onBefore'); +testHook('onAfter'); + +const stop = promiseHooks.onInit(common.mustCall(() => {}, 2)); + +Promise.resolve().then(stop); diff --git a/test/parallel/test-promise-hook-on-after.js b/test/parallel/test-promise-hook-on-after.js new file mode 100644 index 00000000000000..5785a8c40dc72a --- /dev/null +++ b/test/parallel/test-promise-hook-on-after.js @@ -0,0 +1,29 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +assert.throws(() => { + promiseHooks.onAfter(async function() { }); +}, /The "afterHook" argument must be of type function/); + +assert.throws(() => { + promiseHooks.onAfter(async function*() { }); +}, /The "afterHook" argument must be of type function/); + +let seen; + +const stop = promiseHooks.onAfter(common.mustCall((promise) => { + seen = promise; +}, 1)); + +const promise = Promise.resolve().then(() => { + assert.strictEqual(seen, undefined); +}); + +promise.then(() => { + assert.strictEqual(seen, promise); + stop(); +}); + +assert.strictEqual(seen, undefined); diff --git a/test/parallel/test-promise-hook-on-before.js b/test/parallel/test-promise-hook-on-before.js new file mode 100644 index 00000000000000..b732bc2494411a --- /dev/null +++ b/test/parallel/test-promise-hook-on-before.js @@ -0,0 +1,27 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +assert.throws(() => { + promiseHooks.onBefore(async function() { }); +}, /The "beforeHook" argument must be of type function/); + +assert.throws(() => { + promiseHooks.onBefore(async function*() { }); +}, /The "beforeHook" argument must be of type function/); + +let seen; + +const stop = promiseHooks.onBefore(common.mustCall((promise) => { + seen = promise; +}, 1)); + +const promise = Promise.resolve().then(() => { + assert.strictEqual(seen, promise); + stop(); +}); + +promise.then(); + +assert.strictEqual(seen, undefined); diff --git a/test/parallel/test-promise-hook-on-init.js b/test/parallel/test-promise-hook-on-init.js new file mode 100644 index 00000000000000..de49f7f34dc72d --- /dev/null +++ b/test/parallel/test-promise-hook-on-init.js @@ -0,0 +1,37 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +assert.throws(() => { + promiseHooks.onInit(async function() { }); +}, /The "initHook" argument must be of type function/); + +assert.throws(() => { + promiseHooks.onInit(async function*() { }); +}, /The "initHook" argument must be of type function/); + +let seenPromise; +let seenParent; + +const stop = promiseHooks.onInit(common.mustCall((promise, parent) => { + seenPromise = promise; + seenParent = parent; +}, 2)); + +const parent = Promise.resolve(); +assert.strictEqual(seenPromise, parent); +assert.strictEqual(seenParent, undefined); + +const child = parent.then(); +assert.strictEqual(seenPromise, child); +assert.strictEqual(seenParent, parent); + +seenPromise = undefined; +seenParent = undefined; + +stop(); + +Promise.resolve(); +assert.strictEqual(seenPromise, undefined); +assert.strictEqual(seenParent, undefined); diff --git a/test/parallel/test-promise-hook-on-resolve.js b/test/parallel/test-promise-hook-on-resolve.js new file mode 100644 index 00000000000000..45bfb8ca409d26 --- /dev/null +++ b/test/parallel/test-promise-hook-on-resolve.js @@ -0,0 +1,59 @@ +'use strict'; +const common = require('../common'); +const assert = require('assert'); +const { promiseHooks } = require('v8'); + +assert.throws(() => { + promiseHooks.onSettled(async function() { }); +}, /The "settledHook" argument must be of type function/); + +assert.throws(() => { + promiseHooks.onSettled(async function*() { }); +}, /The "settledHook" argument must be of type function/); + +let seen; + +const stop = promiseHooks.onSettled(common.mustCall((promise) => { + seen = promise; +}, 4)); + +// Constructor resolve triggers hook +const promise = new Promise((resolve, reject) => { + assert.strictEqual(seen, undefined); + setImmediate(() => { + resolve(); + assert.strictEqual(seen, promise); + seen = undefined; + + constructorReject(); + }); +}); + +// Constructor reject triggers hook +function constructorReject() { + const promise = new Promise((resolve, reject) => { + assert.strictEqual(seen, undefined); + setImmediate(() => { + reject(); + assert.strictEqual(seen, promise); + seen = undefined; + + simpleResolveReject(); + }); + }); + promise.catch(() => {}); +} + +// Sync resolve/reject helpers trigger hook +function simpleResolveReject() { + const resolved = Promise.resolve(); + assert.strictEqual(seen, resolved); + seen = undefined; + + const rejected = Promise.reject(); + assert.strictEqual(seen, rejected); + seen = undefined; + + stop(); + rejected.catch(() => {}); +} diff --git a/test/parallel/test-promise-unhandled-warn.js b/test/parallel/test-promise-unhandled-warn.js index aab07973be40aa..f13e6d29e2f087 100644 --- a/test/parallel/test-promise-unhandled-warn.js +++ b/test/parallel/test-promise-unhandled-warn.js @@ -2,6 +2,7 @@ 'use strict'; const common = require('../common'); +const assert = require('assert'); // Verify that ignoring unhandled rejection works fine and that no warning is // logged. @@ -12,11 +13,25 @@ new Promise(() => { Promise.reject('test'); +function lookForMeInStackTrace() { + Promise.reject(new class ErrorLike { + constructor() { + Error.captureStackTrace(this); + this.message = 'ErrorLike'; + } + }()); +} +lookForMeInStackTrace(); + // Unhandled rejections trigger two warning per rejection. One is the rejection // reason and the other is a note where this warning is coming from. -process.on('warning', common.mustCall(4)); +process.on('warning', common.mustCall((reason) => { + if (reason.message.includes('ErrorLike')) { + assert.match(reason.stack, /lookForMeInStackTrace/); + } +}, 6)); process.on('uncaughtException', common.mustNotCall('uncaughtException')); -process.on('rejectionHandled', common.mustCall(2)); +process.on('rejectionHandled', common.mustCall(3)); process.on('unhandledRejection', (reason, promise) => { // Handle promises but still warn! diff --git a/test/parallel/test-querystring-escape.js b/test/parallel/test-querystring-escape.js index fdc62c7cdb5a3a..5f3ea3aedc4d05 100644 --- a/test/parallel/test-querystring-escape.js +++ b/test/parallel/test-querystring-escape.js @@ -4,14 +4,14 @@ const assert = require('assert'); const qs = require('querystring'); -assert.deepStrictEqual(qs.escape(5), '5'); -assert.deepStrictEqual(qs.escape('test'), 'test'); -assert.deepStrictEqual(qs.escape({}), '%5Bobject%20Object%5D'); -assert.deepStrictEqual(qs.escape([5, 10]), '5%2C10'); -assert.deepStrictEqual(qs.escape('Ŋōđĕ'), '%C5%8A%C5%8D%C4%91%C4%95'); -assert.deepStrictEqual(qs.escape('testŊōđĕ'), 'test%C5%8A%C5%8D%C4%91%C4%95'); -assert.deepStrictEqual(qs.escape(`${String.fromCharCode(0xD800 + 1)}test`), - '%F0%90%91%B4est'); +assert.strictEqual(qs.escape(5), '5'); +assert.strictEqual(qs.escape('test'), 'test'); +assert.strictEqual(qs.escape({}), '%5Bobject%20Object%5D'); +assert.strictEqual(qs.escape([5, 10]), '5%2C10'); +assert.strictEqual(qs.escape('Ŋōđĕ'), '%C5%8A%C5%8D%C4%91%C4%95'); +assert.strictEqual(qs.escape('testŊōđĕ'), 'test%C5%8A%C5%8D%C4%91%C4%95'); +assert.strictEqual(qs.escape(`${String.fromCharCode(0xD800 + 1)}test`), + '%F0%90%91%B4est'); assert.throws( () => qs.escape(String.fromCharCode(0xD800 + 1)), diff --git a/test/parallel/test-readable-from.js b/test/parallel/test-readable-from.js index 24dee0dce20050..b844574dc9e347 100644 --- a/test/parallel/test-readable-from.js +++ b/test/parallel/test-readable-from.js @@ -126,7 +126,7 @@ async function toReadableOnDataNonObject() { } async function destroysTheStreamWhenThrowing() { - async function* generate() { + async function* generate() { // eslint-disable-line require-yield throw new Error('kaboom'); } diff --git a/test/parallel/test-readline-interface.js b/test/parallel/test-readline-interface.js index f253a443c05884..ad7eee7c42e485 100644 --- a/test/parallel/test-readline-interface.js +++ b/test/parallel/test-readline-interface.js @@ -674,6 +674,77 @@ function assertCursorRowsAndCols(rli, rows, cols) { rli.close(); } +// yank +{ + const [rli, fi] = getInterface({ terminal: true, prompt: '' }); + fi.emit('data', 'the quick brown fox'); + assertCursorRowsAndCols(rli, 0, 19); + + // Go to the start of the line + fi.emit('keypress', '.', { ctrl: true, name: 'a' }); + // Move forward one char + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + // Delete the right part + fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'delete' }); + assertCursorRowsAndCols(rli, 0, 1); + + // Yank + fi.emit('keypress', '.', { ctrl: true, name: 'y' }); + assertCursorRowsAndCols(rli, 0, 19); + + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, 'the quick brown fox'); + })); + + fi.emit('data', '\n'); + rli.close(); +} + +// yank pop +{ + const [rli, fi] = getInterface({ terminal: true, prompt: '' }); + fi.emit('data', 'the quick brown fox'); + assertCursorRowsAndCols(rli, 0, 19); + + // Go to the start of the line + fi.emit('keypress', '.', { ctrl: true, name: 'a' }); + // Move forward one char + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + // Delete the right part + fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'delete' }); + assertCursorRowsAndCols(rli, 0, 1); + // Yank + fi.emit('keypress', '.', { ctrl: true, name: 'y' }); + assertCursorRowsAndCols(rli, 0, 19); + + // Go to the start of the line + fi.emit('keypress', '.', { ctrl: true, name: 'a' }); + // Move forward four chars + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + fi.emit('keypress', '.', { ctrl: true, name: 'f' }); + // Delete the right part + fi.emit('keypress', '.', { ctrl: true, shift: true, name: 'delete' }); + assertCursorRowsAndCols(rli, 0, 4); + // Go to the start of the line + fi.emit('keypress', '.', { ctrl: true, name: 'a' }); + assertCursorRowsAndCols(rli, 0, 0); + + // Yank: 'quick brown fox|the ' + fi.emit('keypress', '.', { ctrl: true, name: 'y' }); + // Yank pop: 'he quick brown fox|the' + fi.emit('keypress', '.', { meta: true, name: 'y' }); + assertCursorRowsAndCols(rli, 0, 18); + + rli.on('line', common.mustCall((line) => { + assert.strictEqual(line, 'he quick brown foxthe '); + })); + + fi.emit('data', '\n'); + rli.close(); +} + // Close readline interface { const [rli, fi] = getInterface({ terminal: true, prompt: '' }); @@ -721,6 +792,40 @@ function assertCursorRowsAndCols(rli, rows, cols) { rli.close(); } +// Undo & Redo +{ + const [rli, fi] = getInterface({ terminal: true, prompt: '' }); + fi.emit('data', 'the quick brown fox'); + assertCursorRowsAndCols(rli, 0, 19); + + // Delete the last eight chars + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', ',', { ctrl: true, shift: false, name: 'k' }); + + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', '.', { ctrl: true, shift: false, name: 'b' }); + fi.emit('keypress', ',', { ctrl: true, shift: false, name: 'k' }); + + assertCursorRowsAndCols(rli, 0, 11); + // Perform undo twice + fi.emit('keypress', ',', { sequence: '\x1F' }); + assert.strictEqual(rli.line, 'the quick brown'); + fi.emit('keypress', ',', { sequence: '\x1F' }); + assert.strictEqual(rli.line, 'the quick brown fox'); + // Perform redo twice + fi.emit('keypress', ',', { sequence: '\x1E' }); + assert.strictEqual(rli.line, 'the quick brown'); + fi.emit('keypress', ',', { sequence: '\x1E' }); + assert.strictEqual(rli.line, 'the quick b'); + fi.emit('data', '\n'); + rli.close(); +} + // Clear the whole screen { const [rli, fi] = getInterface({ terminal: true, prompt: '' }); diff --git a/test/parallel/test-readline-keys.js b/test/parallel/test-readline-keys.js index 8ae0d680d5f039..01757b302a7991 100644 --- a/test/parallel/test-readline-keys.js +++ b/test/parallel/test-readline-keys.js @@ -136,7 +136,6 @@ addTest('a\x1baA\x1bA', [ ]); // xterm/gnome ESC [ letter (with modifiers) -/* eslint-disable max-len */ addTest('\x1b[2P\x1b[3P\x1b[4P\x1b[5P\x1b[6P\x1b[7P\x1b[8P\x1b[3Q\x1b[8Q\x1b[3R\x1b[8R\x1b[3S\x1b[8S', [ { name: 'f1', sequence: '\x1b[2P', code: '[P', shift: true, meta: false, ctrl: false }, { name: 'f1', sequence: '\x1b[3P', code: '[P', shift: false, meta: true, ctrl: false }, @@ -152,7 +151,6 @@ addTest('\x1b[2P\x1b[3P\x1b[4P\x1b[5P\x1b[6P\x1b[7P\x1b[8P\x1b[3Q\x1b[8Q\x1b[3R\ { name: 'f4', sequence: '\x1b[3S', code: '[S', meta: true }, { name: 'f4', sequence: '\x1b[8S', code: '[S', shift: true, meta: true, ctrl: true }, ]); -/* eslint-enable max-len */ // xterm/gnome ESC O letter addTest('\x1bOP\x1bOQ\x1bOR\x1bOS', [ @@ -250,7 +248,6 @@ addTest('\x1b[A\x1b[B\x1b[2A\x1b[2B', [ ]); // `rxvt` keys with modifiers. -// eslint-disable-next-line max-len addTest('\x1b[20~\x1b[2$\x1b[2^\x1b[3$\x1b[3^\x1b[5$\x1b[5^\x1b[6$\x1b[6^\x1b[7$\x1b[7^\x1b[8$\x1b[8^', [ { name: 'f9', sequence: '\x1b[20~', code: '[20~' }, { name: 'insert', sequence: '\x1b[2$', code: '[2$', shift: true }, diff --git a/test/parallel/test-readline-promises-csi.mjs b/test/parallel/test-readline-promises-csi.mjs index 1ba105fc198d95..71a3ad7a816bda 100644 --- a/test/parallel/test-readline-promises-csi.mjs +++ b/test/parallel/test-readline-promises-csi.mjs @@ -43,7 +43,7 @@ class TestWritable extends Writable { writable.data = ''; await readline.clearScreenDown().rollback(); - assert.deepStrictEqual(writable.data, ''); + assert.strictEqual(writable.data, ''); writable.data = ''; await readline.clearLine(-1).commit(); diff --git a/test/parallel/test-readline-promises-interface.js b/test/parallel/test-readline-promises-interface.js index 79803f99c19450..cf0543d7d255f7 100644 --- a/test/parallel/test-readline-promises-interface.js +++ b/test/parallel/test-readline-promises-interface.js @@ -797,6 +797,24 @@ for (let i = 0; i < 12; i++) { fi.emit('data', 'asdf\n'); } + // Ensure that options.signal.removeEventListener was called + { + const ac = new AbortController(); + const signal = ac.signal; + const [rli] = getInterface({ terminal }); + signal.removeEventListener = common.mustCall( + (event, onAbortFn) => { + assert.strictEqual(event, 'abort'); + assert.strictEqual(onAbortFn.name, 'onAbort'); + }); + + rli.question('hello?', { signal }).then(common.mustCall()); + + rli.write('bar\n'); + ac.abort(); + rli.close(); + } + // Sending a blank line { const [rli, fi] = getInterface({ terminal }); @@ -910,6 +928,30 @@ for (let i = 0; i < 12; i++) { rli.close(); } + (async () => { + const [rli] = getInterface({ terminal }); + const signal = AbortSignal.abort('boom'); + await assert.rejects(rli.question('hello', { signal }), { + cause: 'boom', + }); + rli.close(); + })().then(common.mustCall()); + + // Throw an error when question is executed with an aborted signal + { + const ac = new AbortController(); + const signal = ac.signal; + ac.abort(); + const [rli] = getInterface({ terminal }); + assert.rejects( + rli.question('hello?', { signal }), + { + name: 'AbortError' + } + ).then(common.mustCall()); + rli.close(); + } + // Can create a new readline Interface with a null output argument { const [rli, fi] = getInterface({ output: null, terminal }); diff --git a/test/parallel/test-readline-promises-tab-complete.js b/test/parallel/test-readline-promises-tab-complete.js index 45a4be359776b8..fd32900e71d096 100644 --- a/test/parallel/test-readline-promises-tab-complete.js +++ b/test/parallel/test-readline-promises-tab-complete.js @@ -42,11 +42,11 @@ common.skipIfDumbTerminal(); const width = getStringWidth(char) - 1; class FakeInput extends EventEmitter { - columns = ((width + 1) * 10 + (lineBreak ? 0 : 10)) * 3 + columns = ((width + 1) * 10 + (lineBreak ? 0 : 10)) * 3; write = common.mustCall((data) => { output += data; - }, 6) + }, 6); resume() {} pause() {} @@ -86,11 +86,11 @@ common.skipIfDumbTerminal(); { let output = ''; class FakeInput extends EventEmitter { - columns = 80 + columns = 80; write = common.mustCall((data) => { output += data; - }, 1) + }, 1); resume() {} pause() {} diff --git a/test/parallel/test-readline-tab-complete.js b/test/parallel/test-readline-tab-complete.js index be993911c6fe16..64df237d56ad44 100644 --- a/test/parallel/test-readline-tab-complete.js +++ b/test/parallel/test-readline-tab-complete.js @@ -31,11 +31,11 @@ common.skipIfDumbTerminal(); const width = getStringWidth(char) - 1; class FakeInput extends EventEmitter { - columns = ((width + 1) * 10 + (lineBreak ? 0 : 10)) * 3 + columns = ((width + 1) * 10 + (lineBreak ? 0 : 10)) * 3; write = common.mustCall((data) => { output += data; - }, 6) + }, 6); resume() {} pause() {} @@ -72,11 +72,11 @@ common.skipIfDumbTerminal(); { let output = ''; class FakeInput extends EventEmitter { - columns = 80 + columns = 80; write = common.mustCall((data) => { output += data; - }, 1) + }, 1); resume() {} pause() {} @@ -104,11 +104,11 @@ common.skipIfDumbTerminal(); { let output = ''; class FakeInput extends EventEmitter { - columns = 80 + columns = 80; write = common.mustCall((data) => { output += data; - }, 9) + }, 9); resume() {} pause() {} diff --git a/test/parallel/test-repl-definecommand.js b/test/parallel/test-repl-definecommand.js index 0057eb51ebdd4e..f3973f25d69412 100644 --- a/test/parallel/test-repl-definecommand.js +++ b/test/parallel/test-repl-definecommand.js @@ -35,7 +35,7 @@ r.defineCommand('say2', function() { }); inputStream.write('.help\n'); -assert.match(output, /\n\.say1 help for say1\n/); +assert.match(output, /\n\.say1 {5}help for say1\n/); assert.match(output, /\n\.say2\n/); inputStream.write('.say1 node developer\n'); assert.ok(output.startsWith('hello node developer\n'), diff --git a/test/parallel/test-repl-history-navigation.js b/test/parallel/test-repl-history-navigation.js index 527cf235bddd21..29cb7816f0feb0 100644 --- a/test/parallel/test-repl-history-navigation.js +++ b/test/parallel/test-repl-history-navigation.js @@ -393,7 +393,7 @@ const tests = [ // 10. Word right. Cleanup '\x1B[0K', '\x1B[3G', '\x1B[7C', ' // n', '\x1B[10G', // 11. ESCAPE - '\x1B[0K', ' // n', '\x1B[10G', '\x1B[0K', + '\x1B[0K', // 12. ENTER '\r\n', 'Uncaught ReferenceError: functio is not defined\n', diff --git a/test/parallel/test-repl-tab-complete-import.js b/test/parallel/test-repl-tab-complete-import.js index 414b5cc4eac103..1968caa5accf54 100644 --- a/test/parallel/test-repl-tab-complete-import.js +++ b/test/parallel/test-repl-tab-complete-import.js @@ -5,9 +5,7 @@ const ArrayStream = require('../common/arraystream'); const fixtures = require('../common/fixtures'); const assert = require('assert'); const { builtinModules } = require('module'); -const publicModules = builtinModules.filter( - (lib) => !lib.startsWith('_') && !lib.includes('/'), -); +const publicModules = builtinModules.filter((lib) => !lib.startsWith('_')); if (!common.isMainThread) common.skip('process.chdir is not available in Workers'); diff --git a/test/parallel/test-repl-tab-complete.js b/test/parallel/test-repl-tab-complete.js index 9597c2a3480f33..270fb768b030cf 100644 --- a/test/parallel/test-repl-tab-complete.js +++ b/test/parallel/test-repl-tab-complete.js @@ -31,9 +31,7 @@ const assert = require('assert'); const path = require('path'); const fixtures = require('../common/fixtures'); const { builtinModules } = require('module'); -const publicModules = builtinModules.filter( - (lib) => !lib.startsWith('_') && !lib.includes('/'), -); +const publicModules = builtinModules.filter((lib) => !lib.startsWith('_')); const hasInspector = process.features.inspector; @@ -560,6 +558,26 @@ testMe.complete('obj.', common.mustCall(function(error, data) { putIn.run(['.clear']); testMe.complete('Buffer.prototype.', common.mustCall()); +// Make sure repl gives correct autocomplete on literals +testMe.complete('``.a', common.mustCall((err, data) => { + assert.strictEqual(data[0].includes('``.at'), true); +})); +testMe.complete('\'\'.a', common.mustCall((err, data) => { + assert.strictEqual(data[0].includes('\'\'.at'), true); +})); +testMe.complete('"".a', common.mustCall((err, data) => { + assert.strictEqual(data[0].includes('"".at'), true); +})); +testMe.complete('("").a', common.mustCall((err, data) => { + assert.strictEqual(data[0].includes('("").at'), true); +})); +testMe.complete('[].a', common.mustCall((err, data) => { + assert.strictEqual(data[0].includes('[].at'), true); +})); +testMe.complete('{}.a', common.mustCall((err, data) => { + assert.deepStrictEqual(data[0], []); +})); + const testNonGlobal = repl.start({ input: putIn, output: putIn, diff --git a/test/parallel/test-repl-underscore.js b/test/parallel/test-repl-underscore.js index 8f4470b94963b3..3abd01ba9d0cbc 100644 --- a/test/parallel/test-repl-underscore.js +++ b/test/parallel/test-repl-underscore.js @@ -179,7 +179,7 @@ function testError() { // The sync error, with individual property echoes /^Uncaught Error: ENOENT: no such file or directory, scandir '.*nonexistent\?'/, /Object\.readdirSync/, - /^ errno: -(2|4058),$/, + /^ {2}errno: -(2|4058),$/, " syscall: 'scandir',", " code: 'ENOENT',", " path: '/nonexistent?'", diff --git a/test/parallel/test-repl.js b/test/parallel/test-repl.js index 3f4e87f8a9a529..b70fce93ba7c49 100644 --- a/test/parallel/test-repl.js +++ b/test/parallel/test-repl.js @@ -571,10 +571,10 @@ const errorTests = [ /^Uncaught Error: Cannot find module 'internal\/repl'/, /^Require stack:/, /^- /, - /^ at .*/, - /^ at .*/, - /^ at .*/, - /^ at .*/, + /^ {4}at .*/, + /^ {4}at .*/, + /^ {4}at .*/, + /^ {4}at .*/, " code: 'MODULE_NOT_FOUND',", " requireStack: [ '' ]", '}', @@ -776,12 +776,12 @@ const errorTests = [ ' group: [Function: group],', ' groupEnd: [Function: groupEnd],', ' table: [Function: table],', - / debug: \[Function: (debug|log)],/, - / info: \[Function: (info|log)],/, - / dirxml: \[Function: (dirxml|log)],/, - / error: \[Function: (error|warn)],/, - / groupCollapsed: \[Function: (groupCollapsed|group)],/, - / Console: \[Function: Console],?/, + / {2}debug: \[Function: (debug|log)],/, + / {2}info: \[Function: (info|log)],/, + / {2}dirxml: \[Function: (dirxml|log)],/, + / {2}error: \[Function: (error|warn)],/, + / {2}groupCollapsed: \[Function: (groupCollapsed|group)],/, + / {2}Console: \[Function: Console],?/, ...process.features.inspector ? [ ' profile: [Function: profile],', ' profileEnd: [Function: profileEnd],', diff --git a/test/parallel/test-revert-CVE-2021-44531.js b/test/parallel/test-revert-CVE-2021-44531.js new file mode 100644 index 00000000000000..fad2c4bfe1ee6d --- /dev/null +++ b/test/parallel/test-revert-CVE-2021-44531.js @@ -0,0 +1,50 @@ +// Flags: --security-revert=CVE-2021-44531 +'use strict'; +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const util = require('util'); + +const tls = require('tls'); + +const tests = [ + // Likewise for "URI:" Subject Alternative Names. + // See also https://github.com/nodejs/node/issues/8108. + { + host: '8.8.8.8', + cert: { subject: { CN: '8.8.8.8' }, subjectaltname: 'URI:http://8.8.8.8/' }, + error: 'IP: 8.8.8.8 is not in the cert\'s list: ' + }, + // Empty Subject w/URI name + { + host: 'a.b.a.com', cert: { + subjectaltname: 'URI:http://a.b.a.com/', + } + }, + // URI names + { + host: 'a.b.a.com', cert: { + subjectaltname: 'URI:http://a.b.a.com/', + subject: {} + } + }, + { + host: 'a.b.a.com', cert: { + subjectaltname: 'URI:http://*.b.a.com/', + subject: {} + }, + error: 'Host: a.b.a.com. is not in the cert\'s altnames: ' + + 'URI:http://*.b.a.com/' + }, +]; + +tests.forEach(function(test, i) { + const err = tls.checkServerIdentity(test.host, test.cert); + assert.strictEqual(err && err.reason, + test.error, + `Test# ${i} failed: ${util.inspect(test)} \n` + + `${test.error} != ${(err && err.reason)}`); +}); diff --git a/test/parallel/test-stdio-pipe-access.js b/test/parallel/test-stdio-pipe-access.js index 6093e60b8b10a5..ac0e22c399a1b9 100644 --- a/test/parallel/test-stdio-pipe-access.js +++ b/test/parallel/test-stdio-pipe-access.js @@ -18,12 +18,13 @@ switch (who) { { 'stdio': 'inherit' }); } break; - case 'parent': + case 'parent': { const middle = spawn(process.argv0, [process.argv[1], 'middle'], { 'stdio': 'pipe' }); middle.stdout.on('data', () => {}); break; + } case 'middle': spawn(process.argv0, [process.argv[1], 'bottom'], diff --git a/test/parallel/test-stdio-pipe-redirect.js b/test/parallel/test-stdio-pipe-redirect.js index fbde6ef8085457..8b48133c8b0317 100644 --- a/test/parallel/test-stdio-pipe-redirect.js +++ b/test/parallel/test-stdio-pipe-redirect.js @@ -13,7 +13,7 @@ const totalDots = 10000; const who = process.argv.length <= 2 ? 'parent' : process.argv[2]; switch (who) { - case 'parent': + case 'parent': { const consumer = spawn(process.argv0, [process.argv[1], 'consumer'], { stdio: ['pipe', 'ignore', 'inherit'], }); @@ -23,7 +23,8 @@ switch (who) { process.stdin.on('data', () => {}); producer.on('exit', process.exit); break; - case 'producer': + } + case 'producer': { const buffer = Buffer.alloc(writeSize, '.'); let written = 0; const write = () => { @@ -34,6 +35,7 @@ switch (who) { }; write(); break; + } case 'consumer': process.stdin.on('data', () => {}); break; diff --git a/test/parallel/test-stdio-pipe-stderr.js b/test/parallel/test-stdio-pipe-stderr.js index 9dc5c758cf6c50..9ec41b4159fdf6 100644 --- a/test/parallel/test-stdio-pipe-stderr.js +++ b/test/parallel/test-stdio-pipe-stderr.js @@ -4,7 +4,7 @@ const tmpdir = require('../common/tmpdir'); const assert = require('assert'); const fs = require('fs'); const join = require('path').join; -const spawn = require('child_process').spawnSync; +const { spawnSync } = require('child_process'); // Test that invoking node with require, and piping stderr to file, // does not result in exception, @@ -21,7 +21,7 @@ const stream = fs.createWriteStream(stderrOutputPath); fs.writeFileSync(fakeModulePath, '', 'utf8'); stream.on('open', () => { - spawn(process.execPath, { + spawnSync(process.execPath, { input: `require("${fakeModulePath.replace(/\\/g, '/')}")`, stdio: ['pipe', 'pipe', stream] }); diff --git a/test/parallel/test-stdout-to-file.js b/test/parallel/test-stdout-to-file.js index 014a304d3f0263..d66f382af5c1f8 100644 --- a/test/parallel/test-stdout-to-file.js +++ b/test/parallel/test-stdout-to-file.js @@ -19,7 +19,9 @@ function test(size, useBuffer, cb) { try { fs.unlinkSync(tmpFile); - } catch {} + } catch { + // Continue regardless of error. + } console.log(`${size} chars to ${tmpFile}...`); diff --git a/test/parallel/test-stream-asIndexedPairs.mjs b/test/parallel/test-stream-asIndexedPairs.mjs new file mode 100644 index 00000000000000..6f577caefd28dc --- /dev/null +++ b/test/parallel/test-stream-asIndexedPairs.mjs @@ -0,0 +1,53 @@ +import '../common/index.mjs'; +import { Readable } from 'stream'; +import { deepStrictEqual, rejects, throws } from 'assert'; + +{ + // asIndexedPairs with a synchronous stream + const pairs = await Readable.from([1, 2, 3]).asIndexedPairs().toArray(); + deepStrictEqual(pairs, [[0, 1], [1, 2], [2, 3]]); + const empty = await Readable.from([]).asIndexedPairs().toArray(); + deepStrictEqual(empty, []); +} + +{ + // asIndexedPairs works an asynchronous streams + const asyncFrom = (...args) => Readable.from(...args).map(async (x) => x); + const pairs = await asyncFrom([1, 2, 3]).asIndexedPairs().toArray(); + deepStrictEqual(pairs, [[0, 1], [1, 2], [2, 3]]); + const empty = await asyncFrom([]).asIndexedPairs().toArray(); + deepStrictEqual(empty, []); +} + +{ + // Does not enumerate an infinite stream + const infinite = () => Readable.from(async function* () { + while (true) yield 1; + }()); + const pairs = await infinite().asIndexedPairs().take(3).toArray(); + deepStrictEqual(pairs, [[0, 1], [1, 1], [2, 1]]); + const empty = await infinite().asIndexedPairs().take(0).toArray(); + deepStrictEqual(empty, []); +} + +{ + // AbortSignal + await rejects(async () => { + const ac = new AbortController(); + const { signal } = ac; + const p = Readable.from([1, 2, 3]).asIndexedPairs({ signal }).toArray(); + ac.abort(); + await p; + }, { name: 'AbortError' }); + + await rejects(async () => { + const signal = AbortSignal.abort(); + await Readable.from([1, 2, 3]).asIndexedPairs({ signal }).toArray(); + }, /AbortError/); +} + +{ + // Error cases + throws(() => Readable.from([1]).asIndexedPairs(1), /ERR_INVALID_ARG_TYPE/); + throws(() => Readable.from([1]).asIndexedPairs({ signal: true }), /ERR_INVALID_ARG_TYPE/); +} diff --git a/test/parallel/test-stream-base-prototype-accessors-enumerability.js b/test/parallel/test-stream-base-prototype-accessors-enumerability.js index d060a0cb84ce50..1a7f6808fe1780 100644 --- a/test/parallel/test-stream-base-prototype-accessors-enumerability.js +++ b/test/parallel/test-stream-base-prototype-accessors-enumerability.js @@ -14,8 +14,8 @@ const { internalBinding } = require('internal/test/binding'); const TTY = internalBinding('tty_wrap').TTY; { - assert.strictEqual(TTY.prototype.propertyIsEnumerable('bytesRead'), false); - assert.strictEqual(TTY.prototype.propertyIsEnumerable('fd'), false); - assert.strictEqual( - TTY.prototype.propertyIsEnumerable('_externalStream'), false); + const ttyIsEnumerable = Object.prototype.propertyIsEnumerable.bind(TTY); + assert.strictEqual(ttyIsEnumerable('bytesRead'), false); + assert.strictEqual(ttyIsEnumerable('fd'), false); + assert.strictEqual(ttyIsEnumerable('_externalStream'), false); } diff --git a/test/parallel/test-stream-compose.js b/test/parallel/test-stream-compose.js index c3d52e08e0048e..3b336a8c1c73b3 100644 --- a/test/parallel/test-stream-compose.js +++ b/test/parallel/test-stream-compose.js @@ -234,7 +234,7 @@ const assert = require('assert'); callback(null, chunk); }) }), - async function*(source) { + async function*(source) { // eslint-disable-line require-yield let tmp = ''; for await (const chunk of source) { tmp += chunk; diff --git a/test/parallel/test-stream-construct-async-error.js b/test/parallel/test-stream-construct-async-error.js index 8101ec93fc0d74..3fe81b4ebe2d6b 100644 --- a/test/parallel/test-stream-construct-async-error.js +++ b/test/parallel/test-stream-construct-async-error.js @@ -9,30 +9,9 @@ const { const { setTimeout } = require('timers/promises'); const assert = require('assert'); -{ - class Foo extends Duplex { - async _construct(cb) { - // eslint-disable-next-line no-restricted-syntax - await setTimeout(common.platformTimeout(1)); - cb(); - throw new Error('boom'); - } - } - - const foo = new Foo(); - foo.on('error', common.expectsError({ - message: 'boom' - })); - foo.on('close', common.mustCall(() => { - assert(foo._writableState.constructed); - assert(foo._readableState.constructed); - })); -} - { class Foo extends Duplex { async _destroy(err, cb) { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); throw new Error('boom'); } @@ -51,7 +30,6 @@ const assert = require('assert'); { class Foo extends Duplex { async _destroy(err, cb) { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); } } @@ -66,13 +44,12 @@ const assert = require('assert'); { class Foo extends Duplex { async _construct() { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); } _write = common.mustCall((chunk, encoding, cb) => { cb(); - }) + }); _read() {} } @@ -84,33 +61,29 @@ const assert = require('assert'); { class Foo extends Duplex { async _construct(callback) { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); callback(); } _write = common.mustCall((chunk, encoding, cb) => { cb(); - }) + }); _read() {} } const foo = new Foo(); foo.write('test', common.mustCall()); - foo.on('error', common.expectsError({ - code: 'ERR_MULTIPLE_CALLBACK' - })); + foo.on('error', common.mustNotCall()); } { class Foo extends Writable { _write = common.mustCall((chunk, encoding, cb) => { cb(); - }) + }); async _final() { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); } } @@ -124,10 +97,9 @@ const assert = require('assert'); class Foo extends Writable { _write = common.mustCall((chunk, encoding, cb) => { cb(); - }) + }); async _final(callback) { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); callback(); } @@ -142,10 +114,9 @@ const assert = require('assert'); class Foo extends Writable { _write = common.mustCall((chunk, encoding, cb) => { cb(); - }) + }); async _final() { - // eslint-disable-next-line no-restricted-syntax await setTimeout(common.platformTimeout(1)); throw new Error('boom'); } diff --git a/test/parallel/test-stream-consumers.js b/test/parallel/test-stream-consumers.js index 1a3b6ce00200d4..4abd0f842e82bf 100644 --- a/test/parallel/test-stream-consumers.js +++ b/test/parallel/test-stream-consumers.js @@ -13,6 +13,7 @@ const { } = require('stream/consumers'); const { + Readable, PassThrough } = require('stream'); @@ -66,19 +67,32 @@ const kArrayBuffer = text(passthrough).then(common.mustCall(async (str) => { assert.strictEqual(str.length, 10); - assert.deepStrictEqual(str, 'hellothere'); + assert.strictEqual(str, 'hellothere'); })); passthrough.write('hello'); setTimeout(() => passthrough.end('there'), 10); } +{ + const readable = new Readable({ + read() {} + }); + + text(readable).then((data) => { + assert.strictEqual(data, 'foo\ufffd\ufffd\ufffd'); + }); + + readable.push(new Uint8Array([0x66, 0x6f, 0x6f, 0xed, 0xa0, 0x80])); + readable.push(null); +} + { const passthrough = new PassThrough(); json(passthrough).then(common.mustCall(async (str) => { assert.strictEqual(str.length, 10); - assert.deepStrictEqual(str, 'hellothere'); + assert.strictEqual(str, 'hellothere'); })); passthrough.write('"hello'); @@ -126,7 +140,7 @@ const kArrayBuffer = text(readable).then(common.mustCall(async (str) => { assert.strictEqual(str.length, 10); - assert.deepStrictEqual(str, 'hellothere'); + assert.strictEqual(str, 'hellothere'); })); const writer = writable.getWriter(); @@ -144,7 +158,7 @@ const kArrayBuffer = json(readable).then(common.mustCall(async (str) => { assert.strictEqual(str.length, 10); - assert.deepStrictEqual(str, 'hellothere'); + assert.strictEqual(str, 'hellothere'); })); const writer = writable.getWriter(); diff --git a/test/parallel/test-stream-drop-take.js b/test/parallel/test-stream-drop-take.js new file mode 100644 index 00000000000000..cb55a4f7ee1813 --- /dev/null +++ b/test/parallel/test-stream-drop-take.js @@ -0,0 +1,102 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const { deepStrictEqual, rejects, throws } = require('assert'); + +const { from } = Readable; + +const fromAsync = (...args) => from(...args).map(async (x) => x); + +const naturals = () => from(async function*() { + let i = 1; + while (true) { + yield i++; + } +}()); + +{ + // Synchronous streams + (async () => { + deepStrictEqual(await from([1, 2, 3]).drop(2).toArray(), [3]); + deepStrictEqual(await from([1, 2, 3]).take(1).toArray(), [1]); + deepStrictEqual(await from([]).drop(2).toArray(), []); + deepStrictEqual(await from([]).take(1).toArray(), []); + deepStrictEqual(await from([1, 2, 3]).drop(1).take(1).toArray(), [2]); + deepStrictEqual(await from([1, 2]).drop(0).toArray(), [1, 2]); + deepStrictEqual(await from([1, 2]).take(0).toArray(), []); + })().then(common.mustCall()); + // Asynchronous streams + (async () => { + deepStrictEqual(await fromAsync([1, 2, 3]).drop(2).toArray(), [3]); + deepStrictEqual(await fromAsync([1, 2, 3]).take(1).toArray(), [1]); + deepStrictEqual(await fromAsync([]).drop(2).toArray(), []); + deepStrictEqual(await fromAsync([]).take(1).toArray(), []); + deepStrictEqual(await fromAsync([1, 2, 3]).drop(1).take(1).toArray(), [2]); + deepStrictEqual(await fromAsync([1, 2]).drop(0).toArray(), [1, 2]); + deepStrictEqual(await fromAsync([1, 2]).take(0).toArray(), []); + })().then(common.mustCall()); + // Infinite streams + // Asynchronous streams + (async () => { + deepStrictEqual(await naturals().take(1).toArray(), [1]); + deepStrictEqual(await naturals().drop(1).take(1).toArray(), [2]); + const next10 = [11, 12, 13, 14, 15, 16, 17, 18, 19, 20]; + deepStrictEqual(await naturals().drop(10).take(10).toArray(), next10); + deepStrictEqual(await naturals().take(5).take(1).toArray(), [1]); + })().then(common.mustCall()); +} + +{ + // Coercion + (async () => { + // The spec made me do this ^^ + deepStrictEqual(await naturals().take('cat').toArray(), []); + deepStrictEqual(await naturals().take('2').toArray(), [1, 2]); + deepStrictEqual(await naturals().take(true).toArray(), [1]); + })().then(common.mustCall()); +} + +{ + // Support for AbortSignal + const ac = new AbortController(); + rejects( + Readable.from([1, 2, 3]).take(1, { signal: ac.signal }).toArray(), { + name: 'AbortError', + }).then(common.mustCall()); + rejects( + Readable.from([1, 2, 3]).drop(1, { signal: ac.signal }).toArray(), { + name: 'AbortError', + }).then(common.mustCall()); + ac.abort(); +} + +{ + // Support for AbortSignal, already aborted + const signal = AbortSignal.abort(); + rejects( + Readable.from([1, 2, 3]).take(1, { signal }).toArray(), { + name: 'AbortError', + }).then(common.mustCall()); +} + +{ + // Error cases + const invalidArgs = [ + -1, + -Infinity, + -40, + ]; + + for (const example of invalidArgs) { + throws(() => from([]).take(example).toArray(), /ERR_OUT_OF_RANGE/); + } + + throws(() => Readable.from([1]).drop(1, 1), /ERR_INVALID_ARG_TYPE/); + throws(() => Readable.from([1]).drop(1, { signal: true }), /ERR_INVALID_ARG_TYPE/); + + throws(() => Readable.from([1]).take(1, 1), /ERR_INVALID_ARG_TYPE/); + throws(() => Readable.from([1]).take(1, { signal: true }), /ERR_INVALID_ARG_TYPE/); +} diff --git a/test/parallel/test-stream-duplex-from.js b/test/parallel/test-stream-duplex-from.js index 265b61dfd062f9..07ef2f9ccf7c3c 100644 --- a/test/parallel/test-stream-duplex-from.js +++ b/test/parallel/test-stream-duplex-from.js @@ -2,7 +2,8 @@ const common = require('../common'); const assert = require('assert'); -const { Duplex, Readable, Writable } = require('stream'); +const { Duplex, Readable, Writable, pipeline } = require('stream'); +const { Blob } = require('buffer'); { const d = Duplex.from({ @@ -118,3 +119,162 @@ const { Duplex, Readable, Writable } = require('stream'); assert.strictEqual(d.readable, false); })); } + +{ + // https://github.com/nodejs/node/issues/40497 + pipeline( + ['abc\ndef\nghi'], + Duplex.from(async function * (source) { + let rest = ''; + for await (const chunk of source) { + const lines = (rest + chunk.toString()).split('\n'); + rest = lines.pop(); + for (const line of lines) { + yield line; + } + } + yield rest; + }), + async function * (source) { // eslint-disable-line require-yield + let ret = ''; + for await (const x of source) { + ret += x; + } + assert.strictEqual(ret, 'abcdefghi'); + }, + common.mustCall(() => {}), + ); +} + +// Ensure that isDuplexNodeStream was called +{ + const duplex = new Duplex(); + assert.strictEqual(Duplex.from(duplex), duplex); +} + +// Ensure that Duplex.from works for blobs +{ + const blob = new Blob(['blob']); + const expecteByteLength = blob.size; + const duplex = Duplex.from(blob); + duplex.on('data', common.mustCall((arrayBuffer) => { + assert.strictEqual(arrayBuffer.byteLength, expecteByteLength); + })); +} + +// Ensure that given a promise rejection it emits an error +{ + const myErrorMessage = 'myCustomError'; + Duplex.from(Promise.reject(myErrorMessage)) + .on('error', common.mustCall((error) => { + assert.strictEqual(error, myErrorMessage); + })); +} + +// Ensure that given a promise rejection on an async function it emits an error +{ + const myErrorMessage = 'myCustomError'; + async function asyncFn() { + return Promise.reject(myErrorMessage); + } + + Duplex.from(asyncFn) + .on('error', common.mustCall((error) => { + assert.strictEqual(error, myErrorMessage); + })); +} + +// Ensure that Duplex.from throws an Invalid return value when function is void +{ + assert.throws(() => Duplex.from(() => {}), { + code: 'ERR_INVALID_RETURN_VALUE', + }); +} + +// Ensure data if a sub object has a readable stream it's duplexified +{ + const msg = Buffer.from('hello'); + const duplex = Duplex.from({ + readable: Readable({ + read() { + this.push(msg); + this.push(null); + } + }) + }).on('data', common.mustCall((data) => { + assert.strictEqual(data, msg); + })); + + assert.strictEqual(duplex.writable, false); +} + +// Ensure data if a sub object has a writable stream it's duplexified +{ + const msg = Buffer.from('hello'); + const duplex = Duplex.from({ + writable: Writable({ + write: common.mustCall((data) => { + assert.strictEqual(data, msg); + }) + }) + }); + + duplex.write(msg); + assert.strictEqual(duplex.readable, false); +} + +// Ensure data if a sub object has a writable and readable stream it's duplexified +{ + const msg = Buffer.from('hello'); + + const duplex = Duplex.from({ + readable: Readable({ + read() { + this.push(msg); + this.push(null); + } + }), + writable: Writable({ + write: common.mustCall((data) => { + assert.strictEqual(data, msg); + }) + }) + }); + + duplex.pipe(duplex) + .on('data', common.mustCall((data) => { + assert.strictEqual(data, msg); + assert.strictEqual(duplex.readable, true); + assert.strictEqual(duplex.writable, true); + })) + .on('end', common.mustCall()); +} + +// Ensure that given readable stream that throws an error it calls destroy +{ + const myErrorMessage = 'error!'; + const duplex = Duplex.from(Readable({ + read() { + throw new Error(myErrorMessage); + } + })); + duplex.on('error', common.mustCall((msg) => { + assert.strictEqual(msg.message, myErrorMessage); + })); +} + +// Ensure that given writable stream that throws an error it calls destroy +{ + const myErrorMessage = 'error!'; + const duplex = Duplex.from(Writable({ + write(chunk, enc, cb) { + cb(myErrorMessage); + } + })); + + duplex.on('error', common.mustCall((msg) => { + assert.strictEqual(msg, myErrorMessage); + })); + + duplex.write('test'); +} diff --git a/test/parallel/test-stream-duplex-writable-finished.js b/test/parallel/test-stream-duplex-writable-finished.js index 6d9e860b6150d5..20c0781a22273d 100644 --- a/test/parallel/test-stream-duplex-writable-finished.js +++ b/test/parallel/test-stream-duplex-writable-finished.js @@ -7,7 +7,7 @@ const assert = require('assert'); // basic { // Find it on Duplex.prototype - assert(Duplex.prototype.hasOwnProperty('writableFinished')); + assert(Object.hasOwn(Duplex.prototype, 'writableFinished')); } // event diff --git a/test/parallel/test-stream-filter.js b/test/parallel/test-stream-filter.js new file mode 100644 index 00000000000000..e434eb8c84ef9b --- /dev/null +++ b/test/parallel/test-stream-filter.js @@ -0,0 +1,176 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); +const { once } = require('events'); +const { setTimeout } = require('timers/promises'); + +{ + // Filter works on synchronous streams with a synchronous predicate + const stream = Readable.from([1, 2, 3, 4, 5]).filter((x) => x < 3); + const result = [1, 2]; + (async () => { + for await (const item of stream) { + assert.strictEqual(item, result.shift()); + } + })().then(common.mustCall()); +} + +{ + // Filter works on synchronous streams with an asynchronous predicate + const stream = Readable.from([1, 2, 3, 4, 5]).filter(async (x) => { + await Promise.resolve(); + return x > 3; + }); + const result = [4, 5]; + (async () => { + for await (const item of stream) { + assert.strictEqual(item, result.shift()); + } + })().then(common.mustCall()); +} + +{ + // Map works on asynchronous streams with a asynchronous mapper + const stream = Readable.from([1, 2, 3, 4, 5]).map(async (x) => { + await Promise.resolve(); + return x + x; + }).filter((x) => x > 5); + const result = [6, 8, 10]; + (async () => { + for await (const item of stream) { + assert.strictEqual(item, result.shift()); + } + })().then(common.mustCall()); +} + +{ + // Filter works on an infinite stream + const stream = Readable.from(async function* () { + while (true) yield 1; + }()).filter(common.mustCall(async (x) => { + return x < 3; + }, 5)); + (async () => { + let i = 1; + for await (const item of stream) { + assert.strictEqual(item, 1); + if (++i === 5) break; + } + })().then(common.mustCall()); +} + +{ + // Filter works on constructor created streams + let i = 0; + const stream = new Readable({ + read() { + if (i === 10) { + this.push(null); + return; + } + this.push(Uint8Array.from([i])); + i++; + }, + highWaterMark: 0, + }).filter(common.mustCall(async ([x]) => { + return x !== 5; + }, 10)); + (async () => { + const result = (await stream.toArray()).map((x) => x[0]); + const expected = [...Array(10).keys()].filter((x) => x !== 5); + assert.deepStrictEqual(result, expected); + })().then(common.mustCall()); +} + +{ + // Throwing an error during `filter` (sync) + const stream = Readable.from([1, 2, 3, 4, 5]).filter((x) => { + if (x === 3) { + throw new Error('boom'); + } + return true; + }); + assert.rejects( + stream.map((x) => x + x).toArray(), + /boom/, + ).then(common.mustCall()); +} + +{ + // Throwing an error during `filter` (async) + const stream = Readable.from([1, 2, 3, 4, 5]).filter(async (x) => { + if (x === 3) { + throw new Error('boom'); + } + return true; + }); + assert.rejects( + stream.filter(() => true).toArray(), + /boom/, + ).then(common.mustCall()); +} + +{ + // Concurrency + AbortSignal + const ac = new AbortController(); + let calls = 0; + const stream = Readable.from([1, 2, 3, 4]).filter(async (_, { signal }) => { + calls++; + await once(signal, 'abort'); + }, { signal: ac.signal, concurrency: 2 }); + // pump + assert.rejects(async () => { + for await (const item of stream) { + // nope + console.log(item); + } + }, { + name: 'AbortError', + }).then(common.mustCall()); + + setImmediate(() => { + ac.abort(); + assert.strictEqual(calls, 2); + }); +} + +{ + // Concurrency result order + const stream = Readable.from([1, 2]).filter(async (item, { signal }) => { + await setTimeout(10 - item, { signal }); + return true; + }, { concurrency: 2 }); + + (async () => { + const expected = [1, 2]; + for await (const item of stream) { + assert.strictEqual(item, expected.shift()); + } + })().then(common.mustCall()); +} + +{ + // Error cases + assert.throws(() => Readable.from([1]).filter(1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => Readable.from([1]).filter((x) => x, { + concurrency: 'Foo' + }), /ERR_OUT_OF_RANGE/); + assert.throws(() => Readable.from([1]).filter((x) => x, 1), /ERR_INVALID_ARG_TYPE/); +} +{ + // Test result is a Readable + const stream = Readable.from([1, 2, 3, 4, 5]).filter((x) => true); + assert.strictEqual(stream.readable, true); +} +{ + const stream = Readable.from([1, 2, 3, 4, 5]); + Object.defineProperty(stream, 'map', { + value: common.mustNotCall(() => {}), + }); + // Check that map isn't getting called. + stream.filter(() => true); +} diff --git a/test/parallel/test-stream-finished.js b/test/parallel/test-stream-finished.js index 8ada0c4c348cb7..17ba3c610fa095 100644 --- a/test/parallel/test-stream-finished.js +++ b/test/parallel/test-stream-finished.js @@ -7,7 +7,8 @@ const { Transform, finished, Duplex, - PassThrough + PassThrough, + Stream, } = require('stream'); const assert = require('assert'); const EE = require('events'); @@ -630,3 +631,28 @@ testClosed((opts) => new Writable({ write() {}, ...opts })); })); })); } + +{ + // Legacy Streams do not inherit from Readable or Writable. + // We cannot really assume anything about them, so we cannot close them + // automatically. + const s = new Stream(); + finished(s, common.mustNotCall()); +} + +{ + const server = http.createServer(common.mustCall(function(req, res) { + fs.createReadStream(__filename).pipe(res); + finished(res, common.mustCall(function(err) { + assert.strictEqual(err, undefined); + })); + })).listen(0, function() { + http.request( + { method: 'GET', port: this.address().port }, + common.mustCall(function(res) { + res.resume(); + server.close(); + }) + ).end(); + }); +} diff --git a/test/parallel/test-stream-flatMap.js b/test/parallel/test-stream-flatMap.js new file mode 100644 index 00000000000000..07c534a9c1f481 --- /dev/null +++ b/test/parallel/test-stream-flatMap.js @@ -0,0 +1,131 @@ +'use strict'; + +const common = require('../common'); +const fixtures = require('../common/fixtures'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); +const { setTimeout } = require('timers/promises'); +const { createReadStream } = require('fs'); + +function oneTo5() { + return Readable.from([1, 2, 3, 4, 5]); +} + +{ + // flatMap works on synchronous streams with a synchronous mapper + (async () => { + assert.deepStrictEqual( + await oneTo5().flatMap((x) => [x + x]).toArray(), + [2, 4, 6, 8, 10] + ); + assert.deepStrictEqual( + await oneTo5().flatMap(() => []).toArray(), + [] + ); + assert.deepStrictEqual( + await oneTo5().flatMap((x) => [x, x]).toArray(), + [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] + ); + })().then(common.mustCall()); +} + + +{ + // flatMap works on sync/async streams with an asynchronous mapper + (async () => { + assert.deepStrictEqual( + await oneTo5().flatMap(async (x) => [x, x]).toArray(), + [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] + ); + const asyncOneTo5 = oneTo5().map(async (x) => x); + assert.deepStrictEqual( + await asyncOneTo5.flatMap(async (x) => [x, x]).toArray(), + [1, 1, 2, 2, 3, 3, 4, 4, 5, 5] + ); + })().then(common.mustCall()); +} +{ + // flatMap works on a stream where mapping returns a stream + (async () => { + const result = await oneTo5().flatMap(async (x) => { + return Readable.from([x, x]); + }).toArray(); + assert.deepStrictEqual(result, [1, 1, 2, 2, 3, 3, 4, 4, 5, 5]); + })().then(common.mustCall()); + // flatMap works on an objectMode stream where mappign returns a stream + (async () => { + const result = await oneTo5().flatMap(() => { + return createReadStream(fixtures.path('x.txt')); + }).toArray(); + // The resultant stream is in object mode so toArray shouldn't flatten + assert.strictEqual(result.length, 5); + assert.deepStrictEqual( + Buffer.concat(result).toString(), + 'xyz\n'.repeat(5) + ); + + })().then(common.mustCall()); + +} + +{ + // Concurrency + AbortSignal + const ac = new AbortController(); + const stream = oneTo5().flatMap(common.mustNotCall(async (_, { signal }) => { + await setTimeout(100, { signal }); + }), { signal: ac.signal, concurrency: 2 }); + // pump + assert.rejects(async () => { + for await (const item of stream) { + // nope + console.log(item); + } + }, { + name: 'AbortError', + }).then(common.mustCall()); + + queueMicrotask(() => { + ac.abort(); + }); +} + +{ + // Already aborted AbortSignal + const stream = oneTo5().flatMap(common.mustNotCall(async (_, { signal }) => { + await setTimeout(100, { signal }); + }), { signal: AbortSignal.abort() }); + // pump + assert.rejects(async () => { + for await (const item of stream) { + // nope + console.log(item); + } + }, { + name: 'AbortError', + }).then(common.mustCall()); +} + +{ + // Error cases + assert.throws(() => Readable.from([1]).flatMap(1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => Readable.from([1]).flatMap((x) => x, { + concurrency: 'Foo' + }), /ERR_OUT_OF_RANGE/); + assert.throws(() => Readable.from([1]).flatMap((x) => x, 1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => Readable.from([1]).flatMap((x) => x, { signal: true }), /ERR_INVALID_ARG_TYPE/); +} +{ + // Test result is a Readable + const stream = oneTo5().flatMap((x) => x); + assert.strictEqual(stream.readable, true); +} +{ + const stream = oneTo5(); + Object.defineProperty(stream, 'map', { + value: common.mustNotCall(() => {}), + }); + // Check that map isn't getting called. + stream.flatMap(() => true); +} diff --git a/test/parallel/test-stream-forEach.js b/test/parallel/test-stream-forEach.js new file mode 100644 index 00000000000000..e3678352c41591 --- /dev/null +++ b/test/parallel/test-stream-forEach.js @@ -0,0 +1,139 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); +const { once } = require('events'); + +{ + // forEach works on synchronous streams with a synchronous predicate + const stream = Readable.from([1, 2, 3]); + const result = [1, 2, 3]; + (async () => { + await stream.forEach((value) => assert.strictEqual(value, result.shift())); + })().then(common.mustCall()); +} + +{ + // forEach works an asynchronous streams + const stream = Readable.from([1, 2, 3]).filter(async (x) => { + await Promise.resolve(); + return true; + }); + const result = [1, 2, 3]; + (async () => { + await stream.forEach((value) => assert.strictEqual(value, result.shift())); + })().then(common.mustCall()); +} + +{ + // forEach works on asynchronous streams with a asynchronous forEach fn + const stream = Readable.from([1, 2, 3]).filter(async (x) => { + await Promise.resolve(); + return true; + }); + const result = [1, 2, 3]; + (async () => { + await stream.forEach(async (value) => { + await Promise.resolve(); + assert.strictEqual(value, result.shift()); + }); + })().then(common.mustCall()); +} + +{ + // forEach works on an infinite stream + const ac = new AbortController(); + const { signal } = ac; + const stream = Readable.from(async function* () { + while (true) yield 1; + }(), { signal }); + let i = 0; + assert.rejects(stream.forEach(common.mustCall((x) => { + i++; + if (i === 10) ac.abort(); + assert.strictEqual(x, 1); + }, 10)), { name: 'AbortError' }).then(common.mustCall()); +} + +{ + // Emitting an error during `forEach` + const stream = Readable.from([1, 2, 3, 4, 5]); + assert.rejects(stream.forEach(async (x) => { + if (x === 3) { + stream.emit('error', new Error('boom')); + } + }), /boom/).then(common.mustCall()); +} + +{ + // Throwing an error during `forEach` (sync) + const stream = Readable.from([1, 2, 3, 4, 5]); + assert.rejects(stream.forEach((x) => { + if (x === 3) { + throw new Error('boom'); + } + }), /boom/).then(common.mustCall()); +} + +{ + // Throwing an error during `forEach` (async) + const stream = Readable.from([1, 2, 3, 4, 5]); + assert.rejects(stream.forEach(async (x) => { + if (x === 3) { + return Promise.reject(new Error('boom')); + } + }), /boom/).then(common.mustCall()); +} + +{ + // Concurrency + AbortSignal + const ac = new AbortController(); + let calls = 0; + const forEachPromise = + Readable.from([1, 2, 3, 4]).forEach(async (_, { signal }) => { + calls++; + await once(signal, 'abort'); + }, { signal: ac.signal, concurrency: 2 }); + // pump + assert.rejects(async () => { + await forEachPromise; + }, { + name: 'AbortError', + }).then(common.mustCall()); + + setImmediate(() => { + ac.abort(); + assert.strictEqual(calls, 2); + }); +} + +{ + // Error cases + assert.rejects(async () => { + await Readable.from([1]).forEach(1); + }, /ERR_INVALID_ARG_TYPE/).then(common.mustCall()); + assert.rejects(async () => { + await Readable.from([1]).forEach((x) => x, { + concurrency: 'Foo' + }); + }, /ERR_OUT_OF_RANGE/).then(common.mustCall()); + assert.rejects(async () => { + await Readable.from([1]).forEach((x) => x, 1); + }, /ERR_INVALID_ARG_TYPE/).then(common.mustCall()); +} +{ + // Test result is a Promise + const stream = Readable.from([1, 2, 3, 4, 5]).forEach((_) => true); + assert.strictEqual(typeof stream.then, 'function'); +} +{ + const stream = Readable.from([1, 2, 3, 4, 5]); + Object.defineProperty(stream, 'map', { + value: common.mustNotCall(() => {}), + }); + // Check that map isn't getting called. + stream.forEach(() => true); +} diff --git a/test/parallel/test-stream-iterator-helpers-test262-tests.mjs b/test/parallel/test-stream-iterator-helpers-test262-tests.mjs new file mode 100644 index 00000000000000..ab54abdd793928 --- /dev/null +++ b/test/parallel/test-stream-iterator-helpers-test262-tests.mjs @@ -0,0 +1,168 @@ +import { mustCall } from '../common/index.mjs'; +import { Readable } from 'stream'; +import assert from 'assert'; + +// These tests are manually ported from the draft PR for the test262 test suite +// Authored by Rick Waldron in https://github.com/tc39/test262/pull/2818/files + +// test262 license: +// The << Software identified by reference to the Ecma Standard* ("Software)">> +// is protected by copyright and is being made available under the +// "BSD License", included below. This Software may be subject to third party +// rights (rights from parties other than Ecma International), including patent +// rights, and no licenses under such third party rights are granted under this +// license even if the third party concerned is a member of Ecma International. +// SEE THE ECMA CODE OF CONDUCT IN PATENT MATTERS AVAILABLE AT +// http://www.ecma-international.org/memento/codeofconduct.htm FOR INFORMATION +// REGARDING THE LICENSING OF PATENT CLAIMS THAT ARE REQUIRED TO IMPLEMENT ECMA +// INTERNATIONAL STANDARDS* + +// Copyright (C) 2012-2013 Ecma International +// All rights reserved. + +// Redistribution and use in source and binary forms, with or without +// modification, are permitted provided that the following conditions are met: +// 1. Redistributions of source code must retain the above copyright notice, +// this list of conditions and the following disclaimer. +// 2. Redistributions in binary form must reproduce the above copyright +// notice, this list of conditions and the following disclaimer in the +// documentation and/or other materials provided with the distribution. +// 3. Neither the name of the authors nor Ecma International may be used to +// endorse or promote products derived from this software without specific +// prior written permission. + +// THIS SOFTWARE IS PROVIDED BY THE ECMA INTERNATIONAL "AS IS" AND ANY EXPRESS +// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES +// OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN +// NO EVENT SHALL ECMA INTERNATIONAL BE LIABLE FOR ANY DIRECT, INDIRECT, +// INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, +// OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF +// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, +// EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. +// +// * Ecma International Standards hereafter means Ecma International Standards +// as well as Ecma Technical Reports + + +// Note all the tests that check AsyncIterator's prototype itself and things +// that happen before stream conversion were not ported. +{ + // asIndexedPairs/is-function + assert.strictEqual(typeof Readable.prototype.asIndexedPairs, 'function'); + // asIndexedPairs/indexed-pairs.js + const iterator = Readable.from([0, 1]); + const indexedPairs = iterator.asIndexedPairs(); + + for await (const [i, v] of indexedPairs) { + assert.strictEqual(i, v); + } + // asIndexedPairs/length.js + assert.strictEqual(Readable.prototype.asIndexedPairs.length, 0); + // asIndexedPairs/name.js + assert.strictEqual(Readable.prototype.asIndexedPairs.name, 'asIndexedPairs'); + const descriptor = Object.getOwnPropertyDescriptor( + Readable.prototype, + 'asIndexedPairs' + ); + assert.strictEqual(descriptor.enumerable, false); + assert.strictEqual(descriptor.configurable, true); + // assert.strictEqual(descriptor.writable, true); +} +{ + // drop/length + assert.strictEqual(Readable.prototype.drop.length, 1); + const descriptor = Object.getOwnPropertyDescriptor( + Readable.prototype, + 'drop' + ); + assert.strictEqual(descriptor.enumerable, false); + assert.strictEqual(descriptor.configurable, true); + // assert.strictEqual(descriptor.writable, true); + // drop/limit-equals-total + const iterator = Readable.from([1, 2]).drop(2); + const result = await iterator[Symbol.asyncIterator]().next(); + assert.deepStrictEqual(result, { done: true, value: undefined }); + // drop/limit-greater-than-total.js + const iterator2 = Readable.from([1, 2]).drop(3); + const result2 = await iterator2[Symbol.asyncIterator]().next(); + assert.deepStrictEqual(result2, { done: true, value: undefined }); + // drop/limit-less-than-total.js + const iterator3 = Readable.from([1, 2]).drop(1); + const result3 = await iterator3[Symbol.asyncIterator]().next(); + assert.deepStrictEqual(result3, { done: false, value: 2 }); + // drop/limit-rangeerror + assert.throws(() => Readable.from([1]).drop(-1), RangeError); + assert.throws(() => { + Readable.from([1]).drop({ + valueOf() { + throw new Error('boom'); + } + }); + }, /boom/); + // drop/limit-tointeger + const two = await Readable.from([1, 2]).drop({ valueOf: () => 1 }).toArray(); + assert.deepStrictEqual(two, [2]); + // drop/name + assert.strictEqual(Readable.prototype.drop.name, 'drop'); + // drop/non-constructible + assert.throws(() => new Readable.prototype.drop(1), TypeError); + // drop/proto + const proto = Object.getPrototypeOf(Readable.prototype.drop); + assert.strictEqual(proto, Function.prototype); +} +{ + // every/abrupt-iterator-close + const stream = Readable.from([1, 2, 3]); + const e = new Error(); + await assert.rejects(stream.every(mustCall(() => { + throw e; + }, 1)), e); +} +{ + // every/callable-fn + await assert.rejects(Readable.from([1, 2]).every({}), TypeError); +} +{ + // every/callable + Readable.prototype.every.call(Readable.from([]), () => {}); + // eslint-disable-next-line array-callback-return + Readable.from([]).every(() => {}); + assert.throws(() => { + const r = Readable.from([]); + new r.every(() => {}); + }, TypeError); +} + +{ + // every/false + const iterator = Readable.from([1, 2, 3]); + const result = await iterator.every((v) => v === 1); + assert.strictEqual(result, false); +} +{ + // every/every + const iterator = Readable.from([1, 2, 3]); + const result = await iterator.every((v) => true); + assert.strictEqual(result, true); +} + +{ + // every/is-function + assert.strictEqual(typeof Readable.prototype.every, 'function'); +} +{ + // every/length + assert.strictEqual(Readable.prototype.every.length, 1); + // every/name + assert.strictEqual(Readable.prototype.every.name, 'every'); + // every/propdesc + const descriptor = Object.getOwnPropertyDescriptor( + Readable.prototype, + 'every' + ); + assert.strictEqual(descriptor.enumerable, false); + assert.strictEqual(descriptor.configurable, true); + assert.strictEqual(descriptor.writable, true); +} diff --git a/test/parallel/test-stream-map.js b/test/parallel/test-stream-map.js new file mode 100644 index 00000000000000..ba0571fe3a7b95 --- /dev/null +++ b/test/parallel/test-stream-map.js @@ -0,0 +1,189 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); +const { once } = require('events'); +const { setTimeout } = require('timers/promises'); + +{ + // Map works on synchronous streams with a synchronous mapper + const stream = Readable.from([1, 2, 3, 4, 5]).map((x) => x + x); + (async () => { + assert.deepStrictEqual(await stream.toArray(), [2, 4, 6, 8, 10]); + })().then(common.mustCall()); +} + +{ + // Map works on synchronous streams with an asynchronous mapper + const stream = Readable.from([1, 2, 3, 4, 5]).map(async (x) => { + await Promise.resolve(); + return x + x; + }); + (async () => { + assert.deepStrictEqual(await stream.toArray(), [2, 4, 6, 8, 10]); + })().then(common.mustCall()); +} + +{ + // Map works on asynchronous streams with a asynchronous mapper + const stream = Readable.from([1, 2, 3, 4, 5]).map(async (x) => { + return x + x; + }).map((x) => x + x); + (async () => { + assert.deepStrictEqual(await stream.toArray(), [4, 8, 12, 16, 20]); + })().then(common.mustCall()); +} + +{ + // Map works on an infinite stream + const stream = Readable.from(async function* () { + while (true) yield 1; + }()).map(common.mustCall(async (x) => { + return x + x; + }, 5)); + (async () => { + let i = 1; + for await (const item of stream) { + assert.strictEqual(item, 2); + if (++i === 5) break; + } + })().then(common.mustCall()); +} + +{ + // Map works on non-objectMode streams + const stream = new Readable({ + read() { + this.push(Uint8Array.from([1])); + this.push(Uint8Array.from([2])); + this.push(null); + } + }).map(async ([x]) => { + return x + x; + }).map((x) => x + x); + const result = [4, 8]; + (async () => { + for await (const item of stream) { + assert.strictEqual(item, result.shift()); + } + })().then(common.mustCall()); +} + +{ + // Does not care about data events + const source = new Readable({ + read() { + this.push(Uint8Array.from([1])); + this.push(Uint8Array.from([2])); + this.push(null); + } + }); + setImmediate(() => stream.emit('data', Uint8Array.from([1]))); + const stream = source.map(async ([x]) => { + return x + x; + }).map((x) => x + x); + const result = [4, 8]; + (async () => { + for await (const item of stream) { + assert.strictEqual(item, result.shift()); + } + })().then(common.mustCall()); +} + +{ + // Emitting an error during `map` + const stream = Readable.from([1, 2, 3, 4, 5]).map(async (x) => { + if (x === 3) { + stream.emit('error', new Error('boom')); + } + return x + x; + }); + assert.rejects( + stream.map((x) => x + x).toArray(), + /boom/, + ).then(common.mustCall()); +} + +{ + // Throwing an error during `map` (sync) + const stream = Readable.from([1, 2, 3, 4, 5]).map((x) => { + if (x === 3) { + throw new Error('boom'); + } + return x + x; + }); + assert.rejects( + stream.map((x) => x + x).toArray(), + /boom/, + ).then(common.mustCall()); +} + + +{ + // Throwing an error during `map` (async) + const stream = Readable.from([1, 2, 3, 4, 5]).map(async (x) => { + if (x === 3) { + throw new Error('boom'); + } + return x + x; + }); + assert.rejects( + stream.map((x) => x + x).toArray(), + /boom/, + ).then(common.mustCall()); +} + +{ + // Concurrency + AbortSignal + const ac = new AbortController(); + const range = Readable.from([1, 2, 3, 4, 5]); + const stream = range.map(common.mustCall(async (_, { signal }) => { + await once(signal, 'abort'); + throw signal.reason; + }, 2), { signal: ac.signal, concurrency: 2 }); + // pump + assert.rejects(async () => { + for await (const item of stream) { + assert.fail('should not reach here, got ' + item); + } + }, { + name: 'AbortError', + }).then(common.mustCall()); + + setImmediate(() => { + ac.abort(); + }); +} + +{ + // Concurrency result order + const stream = Readable.from([1, 2]).map(async (item, { signal }) => { + await setTimeout(10 - item, { signal }); + return item; + }, { concurrency: 2 }); + + (async () => { + const expected = [1, 2]; + for await (const item of stream) { + assert.strictEqual(item, expected.shift()); + } + })().then(common.mustCall()); +} + +{ + // Error cases + assert.throws(() => Readable.from([1]).map(1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => Readable.from([1]).map((x) => x, { + concurrency: 'Foo' + }), /ERR_OUT_OF_RANGE/); + assert.throws(() => Readable.from([1]).map((x) => x, 1), /ERR_INVALID_ARG_TYPE/); + assert.throws(() => Readable.from([1]).map((x) => x, { signal: true }), /ERR_INVALID_ARG_TYPE/); +} +{ + // Test result is a Readable + const stream = Readable.from([1, 2, 3, 4, 5]).map((x) => x); + assert.strictEqual(stream.readable, true); +} diff --git a/test/parallel/test-stream-passthrough-drain.js b/test/parallel/test-stream-passthrough-drain.js new file mode 100644 index 00000000000000..f5c98947e21e2e --- /dev/null +++ b/test/parallel/test-stream-passthrough-drain.js @@ -0,0 +1,8 @@ +'use strict'; +const common = require('../common'); +const { PassThrough } = require('stream'); + +const pt = new PassThrough({ highWaterMark: 0 }); +pt.on('drain', common.mustCall()); +pt.write('hello'); +pt.read(); diff --git a/test/parallel/test-stream-pipeline-uncaught.js b/test/parallel/test-stream-pipeline-uncaught.js index bfac4f1fee8d0b..8aa1c47b7fd3b1 100644 --- a/test/parallel/test-stream-pipeline-uncaught.js +++ b/test/parallel/test-stream-pipeline-uncaught.js @@ -16,7 +16,7 @@ process.on('uncaughtException', common.mustCall((err) => { const s = new PassThrough(); s.end('data'); pipeline(s, async function(source) { - for await (const chunk of source) {} // eslint-disable-line no-unused-vars + for await (const chunk of source) { } // eslint-disable-line no-unused-vars, no-empty }, common.mustSucceed(() => { throw new Error('error'); })); diff --git a/test/parallel/test-stream-pipeline.js b/test/parallel/test-stream-pipeline.js index 4b0f11ea41218a..bd676d9fe7e701 100644 --- a/test/parallel/test-stream-pipeline.js +++ b/test/parallel/test-stream-pipeline.js @@ -699,8 +699,8 @@ const tsp = require('timers/promises'); const ret = pipeline(async function*() { await Promise.resolve(); yield 'hello'; - }, async function*(source) { - for await (const chunk of source) {} + }, async function*(source) { // eslint-disable-line require-yield + for await (const chunk of source) { } // eslint-disable-line no-unused-vars, no-empty }, common.mustCall((err) => { assert.strictEqual(err, undefined); })); @@ -712,11 +712,11 @@ const tsp = require('timers/promises'); // AsyncFunction destination is not returned and error is // propagated. - const ret = pipeline(async function*() { + const ret = pipeline(async function*() { // eslint-disable-line require-yield await Promise.resolve(); throw new Error('kaboom'); - }, async function*(source) { - for await (const chunk of source) {} + }, async function*(source) { // eslint-disable-line require-yield + for await (const chunk of source) { } // eslint-disable-line no-unused-vars, no-empty }, common.mustCall((err) => { assert.strictEqual(err.message, 'kaboom'); })); @@ -726,7 +726,7 @@ const tsp = require('timers/promises'); { const s = new PassThrough(); - pipeline(async function*() { + pipeline(async function*() { // eslint-disable-line require-yield throw new Error('kaboom'); }, s, common.mustCall((err) => { assert.strictEqual(err.message, 'kaboom'); @@ -736,7 +736,7 @@ const tsp = require('timers/promises'); { const s = new PassThrough(); - pipeline(async function*() { + pipeline(async function*() { // eslint-disable-line require-yield throw new Error('kaboom'); }(), s, common.mustCall((err) => { assert.strictEqual(err.message, 'kaboom'); @@ -746,7 +746,7 @@ const tsp = require('timers/promises'); { const s = new PassThrough(); - pipeline(function*() { + pipeline(function*() { // eslint-disable-line require-yield throw new Error('kaboom'); }, s, common.mustCall((err, val) => { assert.strictEqual(err.message, 'kaboom'); @@ -756,7 +756,7 @@ const tsp = require('timers/promises'); { const s = new PassThrough(); - pipeline(function*() { + pipeline(function*() { // eslint-disable-line require-yield throw new Error('kaboom'); }(), s, common.mustCall((err, val) => { assert.strictEqual(err.message, 'kaboom'); @@ -771,7 +771,7 @@ const tsp = require('timers/promises'); yield 'hello'; yield 'world'; }, s, async function(source) { - for await (const chunk of source) { + for await (const chunk of source) { // eslint-disable-line no-unused-vars throw new Error('kaboom'); } }, common.mustCall((err, val) => { @@ -784,8 +784,8 @@ const tsp = require('timers/promises'); const s = new PassThrough(); const ret = pipeline(function() { return ['hello', 'world']; - }, s, async function*(source) { - for await (const chunk of source) { + }, s, async function*(source) { // eslint-disable-line require-yield + for await (const chunk of source) { // eslint-disable-line no-unused-vars throw new Error('kaboom'); } }, common.mustCall((err) => { @@ -1054,12 +1054,11 @@ const tsp = require('timers/promises'); const ws = new Writable({ write: common.mustNotCall() }); - pipeline(rs, async function*(stream) { - /* eslint no-unused-vars: off */ - for await (const chunk of stream) { + pipeline(rs, async function*(stream) { // eslint-disable-line require-yield + for await (const chunk of stream) { // eslint-disable-line no-unused-vars throw new Error('kaboom'); } - }, async function *(source) { + }, async function *(source) { // eslint-disable-line require-yield for await (const chunk of source) { res += chunk; } @@ -1394,7 +1393,7 @@ const tsp = require('timers/promises'); const ac = new AbortController(); const signal = ac.signal; pipelinep( - async function * ({ signal }) { + async function * ({ signal }) { // eslint-disable-line require-yield await tsp.setTimeout(1e6, signal); }, async function(source) { @@ -1406,3 +1405,124 @@ const tsp = require('timers/promises'); })); ac.abort(); } + +{ + async function run() { + let finished = false; + let text = ''; + const write = new Writable({ + write(data, enc, cb) { + text += data; + cb(); + } + }); + write.on('finish', () => { + finished = true; + }); + + await pipelinep([Readable.from('Hello World!'), write]); + assert(finished); + assert.strictEqual(text, 'Hello World!'); + } + + run(); +} + +{ + let finished = false; + let text = ''; + const write = new Writable({ + write(data, enc, cb) { + text += data; + cb(); + } + }); + write.on('finish', () => { + finished = true; + }); + + pipeline([Readable.from('Hello World!'), write], common.mustSucceed(() => { + assert(finished); + assert.strictEqual(text, 'Hello World!'); + })); +} + +{ + const pipelinePromise = promisify(pipeline); + + async function run() { + const read = new Readable({ + read() {} + }); + + const duplex = new PassThrough(); + + read.push(null); + + await pipelinePromise(read, duplex); + + assert.strictEqual(duplex.destroyed, false); + } + + run().then(common.mustCall()); +} + +{ + const pipelinePromise = promisify(pipeline); + + async function run() { + const read = new Readable({ + read() {} + }); + + const duplex = new PassThrough(); + + read.push(null); + + await pipelinePromise(read, duplex, { end: false }); + + assert.strictEqual(duplex.destroyed, false); + assert.strictEqual(duplex.writableEnded, false); + } + + run().then(common.mustCall()); +} + +{ + const s = new PassThrough({ objectMode: true }); + pipeline(async function*() { + await Promise.resolve(); + yield 'hello'; + yield 'world'; + yield 'world'; + }, s, async function(source) { + let ret = ''; + let n = 0; + for await (const chunk of source) { + if (n++ > 1) { + break; + } + ret += chunk; + } + return ret; + }, common.mustCall((err, val) => { + assert.strictEqual(err, undefined); + assert.strictEqual(val, 'helloworld'); + assert.strictEqual(s.destroyed, true); + })); +} + +{ + const s = new PassThrough({ objectMode: true }); + pipeline(async function*() { + await Promise.resolve(); + yield 'hello'; + yield 'world'; + yield 'world'; + }, s, async function(source) { + return null; + }, common.mustCall((err, val) => { + assert.strictEqual(err, undefined); + assert.strictEqual(val, null); + })); +} diff --git a/test/parallel/test-stream-push-order.js b/test/parallel/test-stream-push-order.js index ce4f336b0254d5..f026cb5b8a0b15 100644 --- a/test/parallel/test-stream-push-order.js +++ b/test/parallel/test-stream-push-order.js @@ -47,6 +47,6 @@ s.read(0); // ACTUALLY [1, 3, 5, 6, 4, 2] process.on('exit', function() { - assert.deepStrictEqual(s.readableBuffer.join(','), '1,2,3,4,5,6'); + assert.strictEqual(s.readableBuffer.join(','), '1,2,3,4,5,6'); console.log('ok'); }); diff --git a/test/parallel/test-stream-readable-aborted.js b/test/parallel/test-stream-readable-aborted.js index 8915e07de45373..9badffc51fc424 100644 --- a/test/parallel/test-stream-readable-aborted.js +++ b/test/parallel/test-stream-readable-aborted.js @@ -2,7 +2,7 @@ const common = require('../common'); const assert = require('assert'); -const { Readable } = require('stream'); +const { Readable, Duplex } = require('stream'); { const readable = new Readable({ @@ -55,3 +55,12 @@ const { Readable } = require('stream'); })); readable.resume(); } + +{ + const duplex = new Duplex({ + readable: false, + write() {} + }); + duplex.destroy(); + assert.strictEqual(duplex.readableAborted, false); +} diff --git a/test/parallel/test-stream-readable-async-iterators.js b/test/parallel/test-stream-readable-async-iterators.js index 45b27a155d0efd..87184662139ae5 100644 --- a/test/parallel/test-stream-readable-async-iterators.js +++ b/test/parallel/test-stream-readable-async-iterators.js @@ -243,8 +243,8 @@ async function tests() { let err; try { - // eslint-disable-next-line no-unused-vars - for await (const k of readable) {} + // eslint-disable-next-line no-unused-vars, no-empty + for await (const k of readable) { } } catch (e) { err = e; } @@ -461,12 +461,10 @@ async function tests() { this.push(null); } }); - // eslint-disable-next-line no-unused-vars - for await (const a of r) { - } - // eslint-disable-next-line no-unused-vars - for await (const b of r) { - } + // eslint-disable-next-line no-unused-vars, no-empty + for await (const a of r) { } + // eslint-disable-next-line no-unused-vars, no-empty + for await (const b of r) { } } { @@ -616,7 +614,7 @@ async function tests() { } }); - for await (const chunk of r) {} // eslint-disable-line no-unused-vars + for await (const chunk of r) { } // eslint-disable-line no-unused-vars, no-empty assert.strictEqual(r.destroyed, false); } @@ -649,8 +647,7 @@ async function tests() { assert.strictEqual(r.destroyed, false); }); - for await (const chunk of r) {} // eslint-disable-line no-unused-vars - + for await (const chunk of r) { } // eslint-disable-line no-unused-vars, no-empty assert.strictEqual(r.destroyed, true); } } @@ -812,8 +809,8 @@ async function tests() { let _err; try { - // eslint-disable-next-line no-unused-vars - for await (const chunk of res) {} + // eslint-disable-next-line no-unused-vars, no-empty + for await (const chunk of res) { } } catch (err) { _err = err; } diff --git a/test/parallel/test-stream-readable-destroy.js b/test/parallel/test-stream-readable-destroy.js index ffea6cb9c869f3..fa95b333a43761 100644 --- a/test/parallel/test-stream-readable-destroy.js +++ b/test/parallel/test-stream-readable-destroy.js @@ -314,8 +314,8 @@ const assert = require('assert'); assert.strictEqual(e.name, 'AbortError'); })); assert.rejects((async () => { - /* eslint-disable-next-line no-unused-vars */ - for await (const chunk of read) {} + // eslint-disable-next-line no-unused-vars, no-empty + for await (const chunk of read) { } })(), /AbortError/); setTimeout(() => controller.abort(), 0); } diff --git a/test/parallel/test-stream-readable-didRead.js b/test/parallel/test-stream-readable-didRead.js index c67289e65442c5..878340ba190786 100644 --- a/test/parallel/test-stream-readable-didRead.js +++ b/test/parallel/test-stream-readable-didRead.js @@ -1,15 +1,18 @@ 'use strict'; const common = require('../common'); const assert = require('assert'); -const { isDisturbed, Readable } = require('stream'); +const { isDisturbed, isErrored, Readable } = require('stream'); function noop() {} function check(readable, data, fn) { assert.strictEqual(readable.readableDidRead, false); assert.strictEqual(isDisturbed(readable), false); + assert.strictEqual(isErrored(readable), false); if (data === -1) { - readable.on('error', common.mustCall()); + readable.on('error', common.mustCall(() => { + assert.strictEqual(isErrored(readable), true); + })); readable.on('data', common.mustNotCall()); readable.on('end', common.mustNotCall()); } else { diff --git a/test/parallel/test-stream-readable-ended.js b/test/parallel/test-stream-readable-ended.js index f504330cb165fc..bdd714c9554b81 100644 --- a/test/parallel/test-stream-readable-ended.js +++ b/test/parallel/test-stream-readable-ended.js @@ -7,7 +7,7 @@ const assert = require('assert'); // basic { // Find it on Readable.prototype - assert(Readable.prototype.hasOwnProperty('readableEnded')); + assert(Object.hasOwn(Readable.prototype, 'readableEnded')); } // event diff --git a/test/parallel/test-stream-readable-object-multi-push-async.js b/test/parallel/test-stream-readable-object-multi-push-async.js index 17c84c7310e053..3bdbe4d3517c48 100644 --- a/test/parallel/test-stream-readable-object-multi-push-async.js +++ b/test/parallel/test-stream-readable-object-multi-push-async.js @@ -47,7 +47,7 @@ const BATCH = 10; readable.on('readable', () => { let data; console.log('readable emitted'); - while (data = readable.read()) { + while ((data = readable.read()) !== null) { console.log(data); } }); diff --git a/test/parallel/test-stream-readable-pause-and-resume.js b/test/parallel/test-stream-readable-pause-and-resume.js index 294ef2c35d4608..53229ec3339e5c 100644 --- a/test/parallel/test-stream-readable-pause-and-resume.js +++ b/test/parallel/test-stream-readable-pause-and-resume.js @@ -56,3 +56,19 @@ function readAndPause() { assert(readable.isPaused()); }); } + +{ + const { PassThrough } = require('stream'); + + const source3 = new PassThrough(); + const target3 = new PassThrough(); + + const chunk = Buffer.allocUnsafe(1000); + while (target3.write(chunk)); + + source3.pipe(target3); + target3.on('drain', common.mustCall(() => { + assert(!source3.isPaused()); + })); + target3.on('data', () => {}); +} diff --git a/test/parallel/test-stream-readable-reading-readingMore.js b/test/parallel/test-stream-readable-reading-readingMore.js index f616b460488e75..968bf5c63ae0d3 100644 --- a/test/parallel/test-stream-readable-reading-readingMore.js +++ b/test/parallel/test-stream-readable-reading-readingMore.js @@ -41,7 +41,7 @@ const Readable = require('stream').Readable; assert.strictEqual(state.ended, !state.reading); // Consume all the data - while (readable.read() !== null) {} + while (readable.read() !== null); if (expectedReadingMore.length === 0) // Reached end of stream process.nextTick(common.mustCall(onStreamEnd, 1)); diff --git a/test/parallel/test-stream-reduce.js b/test/parallel/test-stream-reduce.js new file mode 100644 index 00000000000000..56271c5e232627 --- /dev/null +++ b/test/parallel/test-stream-reduce.js @@ -0,0 +1,132 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); + +function sum(p, c) { + return p + c; +} + +{ + // Does the same thing as `(await stream.toArray()).reduce(...)` + (async () => { + const tests = [ + [[], sum, 0], + [[1], sum, 0], + [[1, 2, 3, 4, 5], sum, 0], + [[...Array(100).keys()], sum, 0], + [['a', 'b', 'c'], sum, ''], + [[1, 2], sum], + [[1, 2, 3], (x, y) => y], + ]; + for (const [values, fn, initial] of tests) { + const streamReduce = await Readable.from(values) + .reduce(fn, initial); + const arrayReduce = values.reduce(fn, initial); + assert.deepStrictEqual(streamReduce, arrayReduce); + } + // Does the same thing as `(await stream.toArray()).reduce(...)` with an + // asynchronous reducer + for (const [values, fn, initial] of tests) { + const streamReduce = await Readable.from(values) + .map(async (x) => x) + .reduce(fn, initial); + const arrayReduce = values.reduce(fn, initial); + assert.deepStrictEqual(streamReduce, arrayReduce); + } + })().then(common.mustCall()); +} +{ + // Works with an async reducer, with or without initial value + (async () => { + const six = await Readable.from([1, 2, 3]).reduce(async (p, c) => p + c, 0); + assert.strictEqual(six, 6); + })().then(common.mustCall()); + (async () => { + const six = await Readable.from([1, 2, 3]).reduce(async (p, c) => p + c); + assert.strictEqual(six, 6); + })().then(common.mustCall()); +} +{ + // Works lazily + assert.rejects(Readable.from([1, 2, 3, 4, 5, 6]) + .map(common.mustCall((x) => { + return x; + }, 3)) // Two consumed and one buffered by `map` due to default concurrency + .reduce(async (p, c) => { + if (p === 1) { + throw new Error('boom'); + } + return c; + }, 0) + , /boom/).then(common.mustCall()); +} + +{ + // Support for AbortSignal + const ac = new AbortController(); + assert.rejects(async () => { + await Readable.from([1, 2, 3]).reduce(async (p, c) => { + if (c === 3) { + await new Promise(() => {}); // Explicitly do not pass signal here + } + return Promise.resolve(); + }, 0, { signal: ac.signal }); + }, { + name: 'AbortError', + }).then(common.mustCall()); + ac.abort(); +} + + +{ + // Support for AbortSignal - pre aborted + const stream = Readable.from([1, 2, 3]); + assert.rejects(async () => { + await stream.reduce(async (p, c) => { + if (c === 3) { + await new Promise(() => {}); // Explicitly do not pass signal here + } + return Promise.resolve(); + }, 0, { signal: AbortSignal.abort() }); + }, { + name: 'AbortError', + }).then(common.mustCall(() => { + assert.strictEqual(stream.destroyed, true); + })); +} + +{ + // Support for AbortSignal - deep + const stream = Readable.from([1, 2, 3]); + assert.rejects(async () => { + await stream.reduce(async (p, c, { signal }) => { + signal.addEventListener('abort', common.mustCall(), { once: true }); + if (c === 3) { + await new Promise(() => {}); // Explicitly do not pass signal here + } + return Promise.resolve(); + }, 0, { signal: AbortSignal.abort() }); + }, { + name: 'AbortError', + }).then(common.mustCall(() => { + assert.strictEqual(stream.destroyed, true); + })); +} + +{ + // Error cases + assert.rejects(() => Readable.from([]).reduce(1), /TypeError/); + assert.rejects(() => Readable.from([]).reduce('5'), /TypeError/); + assert.rejects(() => Readable.from([]).reduce((x, y) => x + y, 0, 1), /ERR_INVALID_ARG_TYPE/); + assert.rejects(() => Readable.from([]).reduce((x, y) => x + y, 0, { signal: true }), /ERR_INVALID_ARG_TYPE/); +} + +{ + // Test result is a Promise + const result = Readable.from([1, 2, 3, 4, 5]).reduce(sum, 0); + assert.ok(result instanceof Promise); +} diff --git a/test/parallel/test-stream-some-find-every.mjs b/test/parallel/test-stream-some-find-every.mjs new file mode 100644 index 00000000000000..c4637d41deb181 --- /dev/null +++ b/test/parallel/test-stream-some-find-every.mjs @@ -0,0 +1,172 @@ +import * as common from '../common/index.mjs'; +import { setTimeout } from 'timers/promises'; +import { Readable } from 'stream'; +import assert from 'assert'; + + +function oneTo5() { + return Readable.from([1, 2, 3, 4, 5]); +} + +function oneTo5Async() { + return oneTo5().map(async (x) => { + await Promise.resolve(); + return x; + }); +} +{ + // Some, find, and every work with a synchronous stream and predicate + assert.strictEqual(await oneTo5().some((x) => x > 3), true); + assert.strictEqual(await oneTo5().every((x) => x > 3), false); + assert.strictEqual(await oneTo5().find((x) => x > 3), 4); + assert.strictEqual(await oneTo5().some((x) => x > 6), false); + assert.strictEqual(await oneTo5().every((x) => x < 6), true); + assert.strictEqual(await oneTo5().find((x) => x > 6), undefined); + assert.strictEqual(await Readable.from([]).some(() => true), false); + assert.strictEqual(await Readable.from([]).every(() => true), true); + assert.strictEqual(await Readable.from([]).find(() => true), undefined); +} + +{ + // Some, find, and every work with an asynchronous stream and synchronous predicate + assert.strictEqual(await oneTo5Async().some((x) => x > 3), true); + assert.strictEqual(await oneTo5Async().every((x) => x > 3), false); + assert.strictEqual(await oneTo5Async().find((x) => x > 3), 4); + assert.strictEqual(await oneTo5Async().some((x) => x > 6), false); + assert.strictEqual(await oneTo5Async().every((x) => x < 6), true); + assert.strictEqual(await oneTo5Async().find((x) => x > 6), undefined); +} + +{ + // Some, find, and every work on synchronous streams with an asynchronous predicate + assert.strictEqual(await oneTo5().some(async (x) => x > 3), true); + assert.strictEqual(await oneTo5().every(async (x) => x > 3), false); + assert.strictEqual(await oneTo5().find(async (x) => x > 3), 4); + assert.strictEqual(await oneTo5().some(async (x) => x > 6), false); + assert.strictEqual(await oneTo5().every(async (x) => x < 6), true); + assert.strictEqual(await oneTo5().find(async (x) => x > 6), undefined); +} + +{ + // Some, find, and every work on asynchronous streams with an asynchronous predicate + assert.strictEqual(await oneTo5Async().some(async (x) => x > 3), true); + assert.strictEqual(await oneTo5Async().every(async (x) => x > 3), false); + assert.strictEqual(await oneTo5Async().find(async (x) => x > 3), 4); + assert.strictEqual(await oneTo5Async().some(async (x) => x > 6), false); + assert.strictEqual(await oneTo5Async().every(async (x) => x < 6), true); + assert.strictEqual(await oneTo5Async().find(async (x) => x > 6), undefined); +} + +{ + async function checkDestroyed(stream) { + await setTimeout(); + assert.strictEqual(stream.destroyed, true); + } + + { + // Some, find, and every short circuit + const someStream = oneTo5(); + await someStream.some(common.mustCall((x) => x > 2, 3)); + await checkDestroyed(someStream); + + const everyStream = oneTo5(); + await everyStream.every(common.mustCall((x) => x < 3, 3)); + await checkDestroyed(everyStream); + + const findStream = oneTo5(); + await findStream.find(common.mustCall((x) => x > 1, 2)); + await checkDestroyed(findStream); + + // When short circuit isn't possible the whole stream is iterated + await oneTo5().some(common.mustCall(() => false, 5)); + await oneTo5().every(common.mustCall(() => true, 5)); + await oneTo5().find(common.mustCall(() => false, 5)); + } + + { + // Some, find, and every short circuit async stream/predicate + const someStream = oneTo5Async(); + await someStream.some(common.mustCall(async (x) => x > 2, 3)); + await checkDestroyed(someStream); + + const everyStream = oneTo5Async(); + await everyStream.every(common.mustCall(async (x) => x < 3, 3)); + await checkDestroyed(everyStream); + + const findStream = oneTo5Async(); + await findStream.find(common.mustCall(async (x) => x > 1, 2)); + await checkDestroyed(findStream); + + // When short circuit isn't possible the whole stream is iterated + await oneTo5Async().some(common.mustCall(async () => false, 5)); + await oneTo5Async().every(common.mustCall(async () => true, 5)); + await oneTo5Async().find(common.mustCall(async () => false, 5)); + } +} + +{ + // Concurrency doesn't affect which value is found. + const found = await Readable.from([1, 2]).find(async (val) => { + if (val === 1) { + await setTimeout(100); + } + return true; + }, { concurrency: 2 }); + assert.strictEqual(found, 1); +} + +{ + // Support for AbortSignal + for (const op of ['some', 'every', 'find']) { + { + const ac = new AbortController(); + assert.rejects(Readable.from([1, 2, 3])[op]( + () => new Promise(() => { }), + { signal: ac.signal } + ), { + name: 'AbortError', + }, `${op} should abort correctly with sync abort`).then(common.mustCall()); + ac.abort(); + } + { + // Support for pre-aborted AbortSignal + assert.rejects(Readable.from([1, 2, 3])[op]( + () => new Promise(() => { }), + { signal: AbortSignal.abort() } + ), { + name: 'AbortError', + }, `${op} should abort with pre-aborted abort controller`).then(common.mustCall()); + } + } +} +{ + // Error cases + for (const op of ['some', 'every', 'find']) { + assert.rejects(async () => { + await Readable.from([1])[op](1); + }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid function`).then(common.mustCall()); + assert.rejects(async () => { + await Readable.from([1])[op]((x) => x, { + concurrency: 'Foo' + }); + }, /ERR_OUT_OF_RANGE/, `${op} should throw for invalid concurrency`).then(common.mustCall()); + assert.rejects(async () => { + await Readable.from([1])[op]((x) => x, 1); + }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid concurrency`).then(common.mustCall()); + assert.rejects(async () => { + await Readable.from([1])[op]((x) => x, { + signal: true + }); + }, /ERR_INVALID_ARG_TYPE/, `${op} should throw for invalid signal`).then(common.mustCall()); + } +} +{ + for (const op of ['some', 'every', 'find']) { + const stream = oneTo5(); + Object.defineProperty(stream, 'map', { + value: common.mustNotCall(() => {}), + }); + // Check that map isn't getting called. + stream[op](() => {}); + } +} diff --git a/test/parallel/test-stream-toArray.js b/test/parallel/test-stream-toArray.js new file mode 100644 index 00000000000000..5c86410ed74c09 --- /dev/null +++ b/test/parallel/test-stream-toArray.js @@ -0,0 +1,93 @@ +'use strict'; + +const common = require('../common'); +const { + Readable, +} = require('stream'); +const assert = require('assert'); + +{ + // Works on a synchronous stream + (async () => { + const tests = [ + [], + [1], + [1, 2, 3], + Array(100).fill().map((_, i) => i), + ]; + for (const test of tests) { + const stream = Readable.from(test); + const result = await stream.toArray(); + assert.deepStrictEqual(result, test); + } + })().then(common.mustCall()); +} + +{ + // Works on a non-object-mode stream + (async () => { + const firstBuffer = Buffer.from([1, 2, 3]); + const secondBuffer = Buffer.from([4, 5, 6]); + const stream = Readable.from( + [firstBuffer, secondBuffer], + { objectMode: false }); + const result = await stream.toArray(); + assert.strictEqual(Array.isArray(result), true); + assert.deepStrictEqual(result, [firstBuffer, secondBuffer]); + })().then(common.mustCall()); +} + +{ + // Works on an asynchronous stream + (async () => { + const tests = [ + [], + [1], + [1, 2, 3], + Array(100).fill().map((_, i) => i), + ]; + for (const test of tests) { + const stream = Readable.from(test).map((x) => Promise.resolve(x)); + const result = await stream.toArray(); + assert.deepStrictEqual(result, test); + } + })().then(common.mustCall()); +} + +{ + // Support for AbortSignal + const ac = new AbortController(); + let stream; + assert.rejects(async () => { + stream = Readable.from([1, 2, 3]).map(async (x) => { + if (x === 3) { + await new Promise(() => {}); // Explicitly do not pass signal here + } + return Promise.resolve(x); + }); + await stream.toArray({ signal: ac.signal }); + }, { + name: 'AbortError', + }).then(common.mustCall(() => { + // Only stops toArray, does not destroy the stream + assert(stream.destroyed, false); + })); + ac.abort(); +} +{ + // Test result is a Promise + const result = Readable.from([1, 2, 3, 4, 5]).toArray(); + assert.strictEqual(result instanceof Promise, true); +} +{ + // Error cases + assert.rejects(async () => { + await Readable.from([1]).toArray(1); + }, /ERR_INVALID_ARG_TYPE/).then(common.mustCall()); + + assert.rejects(async () => { + await Readable.from([1]).toArray({ + signal: true + }); + }, /ERR_INVALID_ARG_TYPE/).then(common.mustCall()); +} diff --git a/test/parallel/test-stream-unshift-empty-chunk.js b/test/parallel/test-stream-unshift-empty-chunk.js index dbcafbfdcb7ad2..e8136a68e9e6aa 100644 --- a/test/parallel/test-stream-unshift-empty-chunk.js +++ b/test/parallel/test-stream-unshift-empty-chunk.js @@ -41,7 +41,7 @@ let readAll = false; const seen = []; r.on('readable', () => { let chunk; - while (chunk = r.read()) { + while ((chunk = r.read()) !== null) { seen.push(chunk.toString()); // Simulate only reading a certain amount of the data, // and then putting the rest of the chunk back into the diff --git a/test/parallel/test-stream-writable-final-async.js b/test/parallel/test-stream-writable-final-async.js new file mode 100644 index 00000000000000..c17b843322222e --- /dev/null +++ b/test/parallel/test-stream-writable-final-async.js @@ -0,0 +1,25 @@ +'use strict'; + +const common = require('../common'); +const { + Duplex, +} = require('stream'); +const { setTimeout } = require('timers/promises'); + +{ + class Foo extends Duplex { + async _final(callback) { + await setTimeout(common.platformTimeout(1)); + callback(); + } + + _read() {} + } + + const foo = new Foo(); + foo._write = common.mustCall((chunk, encoding, cb) => { + cb(); + }); + foo.end('test', common.mustCall()); + foo.on('error', common.mustNotCall()); +} diff --git a/test/parallel/test-stream-writable-final-throw.js b/test/parallel/test-stream-writable-final-throw.js new file mode 100644 index 00000000000000..e7dd21abc3c76c --- /dev/null +++ b/test/parallel/test-stream-writable-final-throw.js @@ -0,0 +1,23 @@ +'use strict'; + +const common = require('../common'); +const { + Duplex, +} = require('stream'); + +{ + class Foo extends Duplex { + _final(callback) { + throw new Error('fhqwhgads'); + } + + _read() {} + } + + const foo = new Foo(); + foo._write = common.mustCall((chunk, encoding, cb) => { + cb(); + }); + foo.end('test', common.expectsError({ message: 'fhqwhgads' })); + foo.on('error', common.mustCall()); +} diff --git a/test/parallel/test-stream-writable-finished.js b/test/parallel/test-stream-writable-finished.js index 862587784a4430..933a80a2f94930 100644 --- a/test/parallel/test-stream-writable-finished.js +++ b/test/parallel/test-stream-writable-finished.js @@ -7,7 +7,7 @@ const assert = require('assert'); // basic { // Find it on Writable.prototype - assert(Writable.prototype.hasOwnProperty('writableFinished')); + assert(Object.hasOwn(Writable.prototype, 'writableFinished')); } // event diff --git a/test/parallel/test-stream2-basic.js b/test/parallel/test-stream2-basic.js index 862e45417626c8..2670deda537c51 100644 --- a/test/parallel/test-stream2-basic.js +++ b/test/parallel/test-stream2-basic.js @@ -422,7 +422,7 @@ class TestWriter extends EE { { // Verify readableEncoding property - assert(R.prototype.hasOwnProperty('readableEncoding')); + assert(Object.hasOwn(R.prototype, 'readableEncoding')); const r = new R({ encoding: 'utf8' }); assert.strictEqual(r.readableEncoding, 'utf8'); @@ -430,7 +430,7 @@ class TestWriter extends EE { { // Verify readableObjectMode property - assert(R.prototype.hasOwnProperty('readableObjectMode')); + assert(Object.hasOwn(R.prototype, 'readableObjectMode')); const r = new R({ objectMode: true }); assert.strictEqual(r.readableObjectMode, true); @@ -438,7 +438,7 @@ class TestWriter extends EE { { // Verify writableObjectMode property - assert(W.prototype.hasOwnProperty('writableObjectMode')); + assert(Object.hasOwn(W.prototype, 'writableObjectMode')); const w = new W({ objectMode: true }); assert.strictEqual(w.writableObjectMode, true); diff --git a/test/parallel/test-stream2-objects.js b/test/parallel/test-stream2-objects.js index a713a5de189cfa..b7ad074628133d 100644 --- a/test/parallel/test-stream2-objects.js +++ b/test/parallel/test-stream2-objects.js @@ -60,7 +60,7 @@ function fromArray(list) { assert.deepStrictEqual(v1, { one: '1' }); assert.deepStrictEqual(v2, { two: '2' }); - assert.deepStrictEqual(v3, null); + assert.strictEqual(v3, null); } { diff --git a/test/parallel/test-structuredClone-global.js b/test/parallel/test-structuredClone-global.js index ae6120c04e0005..95dab1e8e8963b 100644 --- a/test/parallel/test-structuredClone-global.js +++ b/test/parallel/test-structuredClone-global.js @@ -5,10 +5,12 @@ require('../common'); const { - structuredClone: _structuredClone + structuredClone: _structuredClone, } = require('internal/structured_clone'); + const { - strictEqual + strictEqual, + throws, } = require('assert'); strictEqual(globalThis.structuredClone, _structuredClone); @@ -17,3 +19,5 @@ strictEqual(globalThis.structuredClone, undefined); // Restore the value for the known globals check. structuredClone = _structuredClone; + +throws(() => _structuredClone(), /ERR_MISSING_ARGS/); diff --git a/test/parallel/test-timers-immediate-promisified.js b/test/parallel/test-timers-immediate-promisified.js index 65c8411f1b2ffd..5808312b564e48 100644 --- a/test/parallel/test-timers-immediate-promisified.js +++ b/test/parallel/test-timers-immediate-promisified.js @@ -97,3 +97,10 @@ process.on('multipleResolves', common.mustNotCall()); assert.strictEqual(stderr, ''); })); } + +(async () => { + const signal = AbortSignal.abort('boom'); + await assert.rejects(timerPromises.setImmediate(undefined, { signal }), { + cause: 'boom', + }); +})().then(common.mustCall()); diff --git a/test/parallel/test-timers-interval-promisified.js b/test/parallel/test-timers-interval-promisified.js index 28a0d0b47cd182..e6550445f142eb 100644 --- a/test/parallel/test-timers-interval-promisified.js +++ b/test/parallel/test-timers-interval-promisified.js @@ -246,3 +246,15 @@ process.on('multipleResolves', common.mustNotCall()); setPromiseTimeout(time_unit * 3).then(() => post = true), ]).then(common.mustCall()); } + +(async () => { + const signal = AbortSignal.abort('boom'); + try { + const iterable = timerPromises.setInterval(2, undefined, { signal }); + // eslint-disable-next-line no-unused-vars, no-empty + for await (const _ of iterable) { } + assert.fail('should have failed'); + } catch (err) { + assert.strictEqual(err.cause, 'boom'); + } +})().then(common.mustCall()); diff --git a/test/parallel/test-timers-promises-scheduler.js b/test/parallel/test-timers-promises-scheduler.js new file mode 100644 index 00000000000000..7caf92fdf6a74d --- /dev/null +++ b/test/parallel/test-timers-promises-scheduler.js @@ -0,0 +1,50 @@ +'use strict'; + +const common = require('../common'); + +const { scheduler } = require('timers/promises'); +const { setTimeout } = require('timers'); +const { + strictEqual, + rejects, +} = require('assert'); + +async function testYield() { + await scheduler.yield(); + process.emit('foo'); +} +testYield().then(common.mustCall()); +queueMicrotask(common.mustCall(() => { + process.addListener('foo', common.mustCall()); +})); + +async function testWait() { + let value = 0; + setTimeout(() => value++, 10); + await scheduler.wait(15); + strictEqual(value, 1); +} + +testWait().then(common.mustCall()); + +async function testCancelableWait1() { + const ac = new AbortController(); + const wait = scheduler.wait(1e6, { signal: ac.signal }); + ac.abort(); + await rejects(wait, { + code: 'ABORT_ERR', + message: 'The operation was aborted', + }); +} + +testCancelableWait1().then(common.mustCall()); + +async function testCancelableWait2() { + const wait = scheduler.wait(10000, { signal: AbortSignal.abort() }); + await rejects(wait, { + code: 'ABORT_ERR', + message: 'The operation was aborted', + }); +} + +testCancelableWait2().then(common.mustCall()); diff --git a/test/parallel/test-timers-timeout-promisified.js b/test/parallel/test-timers-timeout-promisified.js index 0b9a6b6f19a1c2..4e3881acec1ce2 100644 --- a/test/parallel/test-timers-timeout-promisified.js +++ b/test/parallel/test-timers-timeout-promisified.js @@ -97,3 +97,10 @@ process.on('multipleResolves', common.mustNotCall()); assert.strictEqual(stderr, ''); })); } + +(async () => { + const signal = AbortSignal.abort('boom'); + await assert.rejects(timerPromises.setTimeout(1, undefined, { signal }), { + cause: 'boom', + }); +})().then(common.mustCall()); diff --git a/test/parallel/test-tls-0-dns-altname-revert-CVE-2021-44532.js b/test/parallel/test-tls-0-dns-altname-revert-CVE-2021-44532.js new file mode 100644 index 00000000000000..8624c46f8272e4 --- /dev/null +++ b/test/parallel/test-tls-0-dns-altname-revert-CVE-2021-44532.js @@ -0,0 +1,54 @@ +// Copyright Joyent, Inc. and other Node contributors. +// +// 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. +// Flags: --security-revert=CVE-2021-44532 +'use strict'; +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +// Check getPeerCertificate can properly handle '\0' for fix CVE-2009-2408. + +const assert = require('assert'); +const tls = require('tls'); +const fixtures = require('../common/fixtures'); + +const server = tls.createServer({ + key: fixtures.readSync(['0-dns', '0-dns-key.pem']), + cert: fixtures.readSync(['0-dns', '0-dns-cert.pem']) +}, common.mustCall((c) => { + c.once('data', common.mustCall(() => { + c.destroy(); + server.close(); + })); +})).listen(0, common.mustCall(() => { + const c = tls.connect(server.address().port, { + rejectUnauthorized: false + }, common.mustCall(() => { + const cert = c.getPeerCertificate(); + assert.strictEqual(cert.subjectaltname, + 'DNS:good.example.org\0.evil.example.com, ' + + 'DNS:just-another.example.com, ' + + 'IP Address:8.8.8.8, ' + + 'IP Address:8.8.4.4, ' + + 'DNS:last.example.com'); + c.write('ok'); + })); +})); diff --git a/test/parallel/test-tls-0-dns-altname.js b/test/parallel/test-tls-0-dns-altname.js index 4bc87e44cb60c1..e5cb8e3d487af1 100644 --- a/test/parallel/test-tls-0-dns-altname.js +++ b/test/parallel/test-tls-0-dns-altname.js @@ -44,7 +44,7 @@ const server = tls.createServer({ }, common.mustCall(() => { const cert = c.getPeerCertificate(); assert.strictEqual(cert.subjectaltname, - 'DNS:good.example.org\0.evil.example.com, ' + + 'DNS:"good.example.org\\u0000.evil.example.com", ' + 'DNS:just-another.example.com, ' + 'IP Address:8.8.8.8, ' + 'IP Address:8.8.4.4, ' + diff --git a/test/parallel/test-tls-check-server-identity.js b/test/parallel/test-tls-check-server-identity.js index ad79d93a3df6fd..fe81fc5285a3ce 100644 --- a/test/parallel/test-tls-check-server-identity.js +++ b/test/parallel/test-tls-check-server-identity.js @@ -134,7 +134,7 @@ const tests = [ { host: 'a.com', cert: { }, - error: 'Cert is empty' + error: 'Cert does not contain a DNS name' }, // Empty Subject w/DNS name @@ -148,7 +148,8 @@ const tests = [ { host: 'a.b.a.com', cert: { subjectaltname: 'URI:http://a.b.a.com/', - } + }, + error: 'Cert does not contain a DNS name' }, // Multiple CN fields @@ -265,15 +266,15 @@ const tests = [ host: 'a.b.a.com', cert: { subjectaltname: 'URI:http://a.b.a.com/', subject: {} - } + }, + error: 'Cert does not contain a DNS name' }, { host: 'a.b.a.com', cert: { subjectaltname: 'URI:http://*.b.a.com/', subject: {} }, - error: 'Host: a.b.a.com. is not in the cert\'s altnames: ' + - 'URI:http://*.b.a.com/' + error: 'Cert does not contain a DNS name' }, // IP addresses { @@ -281,8 +282,7 @@ const tests = [ subjectaltname: 'IP Address:127.0.0.1', subject: {} }, - error: 'Host: a.b.a.com. is not in the cert\'s altnames: ' + - 'IP Address:127.0.0.1' + error: 'Cert does not contain a DNS name' }, { host: '127.0.0.1', cert: { diff --git a/test/parallel/test-tls-connect-secure-context.js b/test/parallel/test-tls-connect-secure-context.js index afa98cf3313b6f..31941656c09a05 100644 --- a/test/parallel/test-tls-connect-secure-context.js +++ b/test/parallel/test-tls-connect-secure-context.js @@ -23,3 +23,31 @@ connect({ assert.ifError(err); return cleanup(); }); + +connect({ + client: { + servername: 'agent1', + secureContext: tls.createSecureContext({ + ca: keys.agent1.ca, + ciphers: null, + clientCertEngine: null, + crl: null, + dhparam: null, + passphrase: null, + pfx: null, + privateKeyIdentifier: null, + privateKeyEngine: null, + sessionIdContext: null, + sessionTimeout: null, + sigalgs: null, + ticketKeys: null, + }), + }, + server: { + cert: keys.agent1.cert, + key: keys.agent1.key, + }, +}, function(err, pair, cleanup) { + assert.ifError(err); + return cleanup(); +}); diff --git a/test/parallel/test-tls-passphrase.js b/test/parallel/test-tls-passphrase.js index ce77dd18a6e620..8d802400f6ee3b 100644 --- a/test/parallel/test-tls-passphrase.js +++ b/test/parallel/test-tls-passphrase.js @@ -223,8 +223,7 @@ server.listen(0, common.mustCall(function() { }, onSecureConnect()); })).unref(); -const errMessagePassword = common.hasOpenSSL3 ? - /Error: error:1400006B:UI routines::processing error/ : /bad decrypt/; +const errMessageDecrypt = /bad decrypt/; // Missing passphrase assert.throws(function() { @@ -234,7 +233,7 @@ assert.throws(function() { cert: cert, rejectUnauthorized: false }); -}, errMessagePassword); +}, errMessageDecrypt); assert.throws(function() { tls.connect({ @@ -243,7 +242,7 @@ assert.throws(function() { cert: cert, rejectUnauthorized: false }); -}, errMessagePassword); +}, errMessageDecrypt); assert.throws(function() { tls.connect({ @@ -252,9 +251,7 @@ assert.throws(function() { cert: cert, rejectUnauthorized: false }); -}, errMessagePassword); - -const errMessageDecrypt = /bad decrypt/; +}, errMessageDecrypt); // Invalid passphrase assert.throws(function() { diff --git a/test/parallel/test-tls-peer-certificate.js b/test/parallel/test-tls-peer-certificate.js index 523638d4a39649..5ca086723a6fa1 100644 --- a/test/parallel/test-tls-peer-certificate.js +++ b/test/parallel/test-tls-peer-certificate.js @@ -69,6 +69,12 @@ connect({ 'B0:BE:46:49:B8:29:63:E0:6F:63:C8:8A:57:9C:3F:9B:72:C6:F5:89:E3:0D:84:AC:' + '5B:08:9A:20:89:B6:8F:D6' ); + assert.strictEqual( + peerCert.fingerprint512, + 'D0:05:01:82:2C:D8:09:BE:27:94:E7:83:F1:88:BC:7A:8B:D0:39:97:54:B6:' + + 'D0:B4:46:5B:DE:13:5B:68:86:B6:F2:A8:95:22:D5:6E:8B:35:DA:89:29:CA:' + + 'A3:06:C5:CE:43:C1:7F:2D:7E:5F:44:A5:EE:A3:CB:97:05:A3:E3:68' + ); // SHA256 fingerprint of the public key assert.strictEqual( @@ -119,6 +125,12 @@ connect({ 'AB:08:3C:40:C7:07:D7:D1:79:32:92:3B:96:52:D0:38:4C:22:ED:CD:23:51:D0:A1:' + '67:AA:33:A0:D5:26:5C:41' ); + assert.strictEqual( + peerCert.fingerprint512, + '52:F4:86:64:69:0F:94:6F:78:DE:17:7A:5C:92:CA:0F:05:2E:6A:EE:4A:FF:8B:39:' + + 'D6:5E:7A:B8:08:77:B3:80:FC:40:A1:F4:58:CC:7A:DF:BB:3D:38:F9:02:77:50:2B:' + + '9A:0B:FB:79:B4:BD:E9:F5:9C:44:C8:5D:D5:F0:E2:BC' + ); assert.strictEqual( sha256(peerCert.pubkey).digest('hex'), @@ -128,7 +140,7 @@ connect({ assert.strictEqual(peerCert.nistCurve, 'P-256'); assert.strictEqual(peerCert.bits, 256); - assert.deepStrictEqual(peerCert.infoAccess, undefined); + assert.strictEqual(peerCert.infoAccess, undefined); const issuer = peerCert.issuerCertificate; assert.strictEqual(issuer.issuerCertificate, issuer); diff --git a/test/parallel/test-trace-atomics-wait.js b/test/parallel/test-trace-atomics-wait.js index 03b76791586d98..232c06be3032e6 100644 --- a/test/parallel/test-trace-atomics-wait.js +++ b/test/parallel/test-trace-atomics-wait.js @@ -90,6 +90,12 @@ values mismatched [Thread 1] Atomics.wait(
            + 4, -1, inf) started [Thread 1] Atomics.wait(
            + 4, -1, inf) did not wait because the \ values mismatched`, + `${begin} +[Thread 1] Atomics.wait(
            + 4, -1, inf) started +[Thread 0] Atomics.wait(
            + 4, 0, inf) started +[Thread 0] Atomics.wait(
            + 4, 0, inf) did not wait because the \ +values mismatched +[Thread 1] Atomics.wait(
            + 4, -1, inf) was woken up by another thread`, ]; assert(expectedTimelines.includes(actualTimeline)); diff --git a/test/parallel/test-trace-events-all.js b/test/parallel/test-trace-events-all.js index b9f9b70a61b81b..8e836561ff7091 100644 --- a/test/parallel/test-trace-events-all.js +++ b/test/parallel/test-trace-events-all.js @@ -27,7 +27,7 @@ proc.once('exit', common.mustCall(() => { return false; if (trace.cat !== 'v8') return false; - if (trace.name !== 'V8.GCScavenger') + if (!trace.name.startsWith('V8.')) return false; return true; })); diff --git a/test/parallel/test-trace-events-api.js b/test/parallel/test-trace-events-api.js index 1cd0210f39aeeb..5e0966fe7d78b7 100644 --- a/test/parallel/test-trace-events-api.js +++ b/test/parallel/test-trace-events-api.js @@ -161,16 +161,18 @@ function testApiInChildProcess(execArgs, cb) { traces.forEach((trace) => { assert.strictEqual(trace.pid, proc.pid); switch (trace.ph) { - case 'b': + case 'b': { const expectedBegin = expectedBegins.shift(); assert.strictEqual(trace.cat, expectedBegin.cat); assert.strictEqual(trace.name, expectedBegin.name); break; - case 'e': + } + case 'e': { const expectedEnd = expectedEnds.shift(); assert.strictEqual(trace.cat, expectedEnd.cat); assert.strictEqual(trace.name, expectedEnd.name); break; + } default: assert.fail('Unexpected trace event phase'); } diff --git a/test/parallel/test-trace-events-v8.js b/test/parallel/test-trace-events-v8.js index 5d06124d6879b5..e5fc8b6c726600 100644 --- a/test/parallel/test-trace-events-v8.js +++ b/test/parallel/test-trace-events-v8.js @@ -29,7 +29,7 @@ proc.once('exit', common.mustCall(() => { return false; if (trace.cat !== 'v8') return false; - if (trace.name !== 'V8.GCScavenger') + if (!trace.name.startsWith('V8.')) return false; return true; })); diff --git a/test/parallel/test-url-format-whatwg.js b/test/parallel/test-url-format-whatwg.js index 9c86a7ae2c6910..d1f0e0bcbddec2 100644 --- a/test/parallel/test-url-format-whatwg.js +++ b/test/parallel/test-url-format-whatwg.js @@ -7,16 +7,16 @@ if (!common.hasIntl) const assert = require('assert'); const url = require('url'); -const myURL = new URL('http://xn--lck1c3crb1723bpq4a.com/a?a=b#c'); +const myURL = new URL('http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c'); assert.strictEqual( url.format(myURL), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, {}), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); { @@ -36,82 +36,107 @@ assert.strictEqual( // Any falsy value other than undefined will be treated as false. // Any truthy value will be treated as true. +assert.strictEqual( + url.format(myURL, { auth: false }), + 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' +); + +assert.strictEqual( + url.format(myURL, { auth: '' }), + 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' +); + +assert.strictEqual( + url.format(myURL, { auth: 0 }), + 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' +); + +assert.strictEqual( + url.format(myURL, { auth: 1 }), + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' +); + +assert.strictEqual( + url.format(myURL, { auth: {} }), + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' +); + assert.strictEqual( url.format(myURL, { fragment: false }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b' ); assert.strictEqual( url.format(myURL, { fragment: '' }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b' ); assert.strictEqual( url.format(myURL, { fragment: 0 }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b' ); assert.strictEqual( url.format(myURL, { fragment: 1 }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { fragment: {} }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { search: false }), - 'http://xn--lck1c3crb1723bpq4a.com/a#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a#c' ); assert.strictEqual( url.format(myURL, { search: '' }), - 'http://xn--lck1c3crb1723bpq4a.com/a#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a#c' ); assert.strictEqual( url.format(myURL, { search: 0 }), - 'http://xn--lck1c3crb1723bpq4a.com/a#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a#c' ); assert.strictEqual( url.format(myURL, { search: 1 }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { search: {} }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { unicode: true }), - 'http://理容ナカムラ.com/a?a=b#c' + 'http://user:pass@理容ナカムラ.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { unicode: 1 }), - 'http://理容ナカムラ.com/a?a=b#c' + 'http://user:pass@理容ナカムラ.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { unicode: {} }), - 'http://理容ナカムラ.com/a?a=b#c' + 'http://user:pass@理容ナカムラ.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { unicode: false }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( url.format(myURL, { unicode: 0 }), - 'http://xn--lck1c3crb1723bpq4a.com/a?a=b#c' + 'http://user:pass@xn--lck1c3crb1723bpq4a.com/a?a=b#c' ); assert.strictEqual( - url.format(new URL('http://xn--0zwm56d.com:8080/path'), { unicode: true }), - 'http://测试.com:8080/path' + url.format(new URL('http://user:pass@xn--0zwm56d.com:8080/path'), { unicode: true }), + 'http://user:pass@测试.com:8080/path' ); diff --git a/test/parallel/test-url-parse-format.js b/test/parallel/test-url-parse-format.js index cbfc58b1123a72..e1cf80a2778abd 100644 --- a/test/parallel/test-url-parse-format.js +++ b/test/parallel/test-url-parse-format.js @@ -844,7 +844,7 @@ const parseTests = { hostname: 'a.b', hash: null, pathname: '/%09bc%0Adr%0Def%20g%22hq%27j%3Ckl%3E', - path: '/%09bc%0Adr%0Def%20g%22hq%27j%3Ckl%3E?mn%5Cop%5Eq=r%6099%7Bst%7Cuv%7Dwz', // eslint-disable-line max-len + path: '/%09bc%0Adr%0Def%20g%22hq%27j%3Ckl%3E?mn%5Cop%5Eq=r%6099%7Bst%7Cuv%7Dwz', search: '?mn%5Cop%5Eq=r%6099%7Bst%7Cuv%7Dwz', query: 'mn%5Cop%5Eq=r%6099%7Bst%7Cuv%7Dwz', href: 'http://a.b/%09bc%0Adr%0Def%20g%22hq%27j%3Ckl%3E?mn%5Cop%5Eq=r%6099%7Bst%7Cuv%7Dwz' @@ -946,7 +946,37 @@ const parseTests = { pathname: '/', path: '/', href: 'wss://www.example.com/' - } + }, + + '//fhqwhgads@example.com/everybody-to-the-limit': { + protocol: null, + slashes: true, + auth: 'fhqwhgads', + host: 'example.com', + port: null, + hostname: 'example.com', + hash: null, + search: null, + query: null, + pathname: '/everybody-to-the-limit', + path: '/everybody-to-the-limit', + href: '//fhqwhgads@example.com/everybody-to-the-limit' + }, + + '//fhqwhgads@example.com/everybody#to-the-limit': { + protocol: null, + slashes: true, + auth: 'fhqwhgads', + host: 'example.com', + port: null, + hostname: 'example.com', + hash: '#to-the-limit', + search: null, + query: null, + pathname: '/everybody', + path: '/everybody', + href: '//fhqwhgads@example.com/everybody#to-the-limit' + }, }; for (const u in parseTests) { diff --git a/test/parallel/test-util-format.js b/test/parallel/test-util-format.js index 3d6404076471dd..ab0d50f743fd98 100644 --- a/test/parallel/test-util-format.js +++ b/test/parallel/test-util-format.js @@ -74,6 +74,38 @@ assert.strictEqual( '1180591620717411303424n 12345678901234567890123n' ); +{ + const { numericSeparator } = util.inspect.defaultOptions; + util.inspect.defaultOptions.numericSeparator = true; + + assert.strictEqual( + util.format('%d', 1180591620717411303424), + '1.1805916207174113e+21' + ); + + assert.strictEqual( + util.format( + // eslint-disable-next-line no-loss-of-precision + '%d %s %i', 118059162071741130342, 118059162071741130342, 123_123_123), + '118_059_162_071_741_140_000 118_059_162_071_741_140_000 123_123_123' + ); + + assert.strictEqual( + util.format( + '%d %s', + 1_180_591_620_717_411_303_424n, + 12_345_678_901_234_567_890_123n + ), + '1_180_591_620_717_411_303_424n 12_345_678_901_234_567_890_123n' + ); + + assert.strictEqual( + util.format('%i', 1_180_591_620_717_411_303_424n), + '1_180_591_620_717_411_303_424n' + ); + + util.inspect.defaultOptions.numericSeparator = numericSeparator; +} // Integer format specifier assert.strictEqual(util.format('%i'), '%i'); assert.strictEqual(util.format('%i', 42.0), '42'); @@ -111,6 +143,13 @@ assert.strictEqual( '1180591620717411303424n 12345678901234567890123n' ); +assert.strictEqual( + util.formatWithOptions( + { numericSeparator: true }, + '%i %d', 1180591620717411303424n, 12345678901234567890123n), + '1_180_591_620_717_411_303_424n 12_345_678_901_234_567_890_123n' +); + // Float format specifier assert.strictEqual(util.format('%f'), '%f'); assert.strictEqual(util.format('%f', 42.0), '42'); diff --git a/test/parallel/test-util-inspect.js b/test/parallel/test-util-inspect.js index fe01c4c0f92858..43913c3ab4c9da 100644 --- a/test/parallel/test-util-inspect.js +++ b/test/parallel/test-util-inspect.js @@ -434,7 +434,7 @@ assert.strictEqual( // Array with extra properties. { - const arr = [1, 2, 3, , ]; + const arr = [1, 2, 3, , ]; // eslint-disable-line no-sparse-arrays arr.foo = 'bar'; assert.strictEqual(util.inspect(arr), "[ 1, 2, 3, <1 empty item>, foo: 'bar' ]"); @@ -660,6 +660,22 @@ assert.strictEqual(util.inspect(-5e-324), '-5e-324'); assert(ex.includes('[message]')); } +{ + const falsyCause1 = new Error('', { cause: false }); + delete falsyCause1.stack; + const falsyCause2 = new Error(undefined, { cause: null }); + falsyCause2.stack = ''; + const undefinedCause = new Error('', { cause: undefined }); + undefinedCause.stack = ''; + + assert.strictEqual(util.inspect(falsyCause1), '[Error] { [cause]: false }'); + assert.strictEqual(util.inspect(falsyCause2), '[Error] { [cause]: null }'); + assert.strictEqual( + util.inspect(undefinedCause), + '[Error] { [cause]: undefined }' + ); +} + { const tmp = Error.stackTraceLimit; Error.stackTraceLimit = 0; @@ -837,6 +853,48 @@ assert.strictEqual(util.inspect(Object.create(Date.prototype)), 'Date {}'); ); } +// Escape unpaired surrogate pairs. +{ + const edgeChar = String.fromCharCode(0xd799); + + for (let charCode = 0xD800; charCode < 0xDFFF; charCode++) { + const surrogate = String.fromCharCode(charCode); + + assert.strictEqual( + util.inspect(surrogate), + `'\\u${charCode.toString(16)}'` + ); + assert.strictEqual( + util.inspect(`${'a'.repeat(200)}${surrogate}`), + `'${'a'.repeat(200)}\\u${charCode.toString(16)}'` + ); + assert.strictEqual( + util.inspect(`${surrogate}${'a'.repeat(200)}`), + `'\\u${charCode.toString(16)}${'a'.repeat(200)}'` + ); + if (charCode < 0xdc00) { + const highSurrogate = surrogate; + const lowSurrogate = String.fromCharCode(charCode + 1024); + assert( + !util.inspect( + `${edgeChar}${highSurrogate}${lowSurrogate}${edgeChar}` + ).includes('\\u') + ); + assert.strictEqual( + (util.inspect( + `${highSurrogate}${highSurrogate}${lowSurrogate}` + ).match(/\\u/g) ?? []).length, + 1 + ); + } else { + assert.strictEqual( + util.inspect(`${edgeChar}${surrogate}${edgeChar}`), + `'${edgeChar}\\u${charCode.toString(16)}${edgeChar}'` + ); + } + } +} + // Test util.inspect.styles and util.inspect.colors. { function testColorStyle(style, input, implicit) { @@ -932,7 +990,7 @@ util.inspect({ hasOwnProperty: null }); assert.strictEqual(util.inspect(subject), "{ foo: 'bar' }"); - subject[util.inspect.custom] = common.mustCall((depth, opts) => { + subject[util.inspect.custom] = common.mustCall((depth, opts, inspect) => { const clone = { ...opts }; // This might change at some point but for now we keep the stylize function. // The function should either be documented or an alternative should be @@ -942,12 +1000,13 @@ util.inspect({ hasOwnProperty: null }); assert.strictEqual(opts.budget, undefined); assert.strictEqual(opts.indentationLvl, undefined); assert.strictEqual(opts.showHidden, false); + assert.strictEqual(inspect, util.inspect); assert.deepStrictEqual( - new Set(Object.keys(util.inspect.defaultOptions).concat(['stylize'])), + new Set(Object.keys(inspect.defaultOptions).concat(['stylize'])), new Set(Object.keys(opts)) ); opts.showHidden = true; - return { [util.inspect.custom]: common.mustCall((depth, opts2) => { + return { [inspect.custom]: common.mustCall((depth, opts2) => { assert.deepStrictEqual(clone, opts2); }) }; }); @@ -2083,6 +2142,7 @@ assert.strictEqual(util.inspect('"\'${a}'), "'\"\\'${a}'"); [function() {}, '[Function (anonymous)]'], [() => {}, '[Function (anonymous)]'], [[1, 2], '[ 1, 2 ]'], + // eslint-disable-next-line no-sparse-arrays [[, , 5, , , , ], '[ <2 empty items>, 5, <3 empty items> ]'], [{ a: 5 }, '{ a: 5 }'], [new Set([1, 2]), 'Set(2) { 1, 2 }'], @@ -2572,6 +2632,24 @@ assert.strictEqual( assert.strictEqual(out, expected); + // Array grouping should prevent lining up outer elements on a single line. + obj = [[[1, 2, 3, 4, 5, 6, 7, 8, 9]]]; + + out = util.inspect(obj, { compact: 3 }); + + expected = [ + '[', + ' [', + ' [', + ' 1, 2, 3, 4, 5,', + ' 6, 7, 8, 9', + ' ]', + ' ]', + ']', + ].join('\n'); + + assert.strictEqual(out, expected); + // Verify that array grouping and line consolidation does not happen together. obj = { a: { @@ -2612,7 +2690,6 @@ assert.strictEqual( expected = [ '[', - /* eslint-disable max-len */ ' \u001b[33m0\u001b[39m, \u001b[33m1\u001b[39m, \u001b[33m2\u001b[39m, \u001b[33m3\u001b[39m,', ' \u001b[33m4\u001b[39m, \u001b[33m5\u001b[39m, \u001b[33m6\u001b[39m, \u001b[33m7\u001b[39m,', ' \u001b[33m8\u001b[39m, \u001b[33m9\u001b[39m, \u001b[33m10\u001b[39m, \u001b[33m11\u001b[39m,', @@ -2628,7 +2705,6 @@ assert.strictEqual( ' \u001b[33m48\u001b[39m, \u001b[33m49\u001b[39m, \u001b[33m50\u001b[39m, \u001b[33m51\u001b[39m,', ' \u001b[33m52\u001b[39m, \u001b[33m53\u001b[39m, \u001b[33m54\u001b[39m, \u001b[33m55\u001b[39m,', ' \u001b[33m56\u001b[39m, \u001b[33m57\u001b[39m, \u001b[33m58\u001b[39m, \u001b[33m59\u001b[39m', - /* eslint-enable max-len */ ']', ].join('\n'); @@ -3104,3 +3180,58 @@ assert.strictEqual( "{ ['__proto__']: { a: 1 } }" ); } + +{ + const { numericSeparator } = util.inspect.defaultOptions; + util.inspect.defaultOptions.numericSeparator = true; + + assert.strictEqual( + // eslint-disable-next-line no-loss-of-precision + util.inspect(1234567891234567891234), + '1.234567891234568e+21' + ); + assert.strictEqual( + util.inspect(123456789.12345678), + '123_456_789.123_456_78' + ); + + assert.strictEqual(util.inspect(10_000_000), '10_000_000'); + assert.strictEqual(util.inspect(1_000_000), '1_000_000'); + assert.strictEqual(util.inspect(100_000), '100_000'); + assert.strictEqual(util.inspect(99_999.9), '99_999.9'); + assert.strictEqual(util.inspect(9_999), '9_999'); + assert.strictEqual(util.inspect(999), '999'); + assert.strictEqual(util.inspect(NaN), 'NaN'); + assert.strictEqual(util.inspect(Infinity), 'Infinity'); + assert.strictEqual(util.inspect(-Infinity), '-Infinity'); + + assert.strictEqual( + util.inspect(new Float64Array([100_000_000])), + 'Float64Array(1) [ 100_000_000 ]' + ); + assert.strictEqual( + util.inspect(new BigInt64Array([9_100_000_100n])), + 'BigInt64Array(1) [ 9_100_000_100n ]' + ); + + assert.strictEqual( + util.inspect(123456789), + '123_456_789' + ); + assert.strictEqual( + util.inspect(123456789n), + '123_456_789n' + ); + + util.inspect.defaultOptions.numericSeparator = numericSeparator; + + assert.strictEqual( + util.inspect(123456789.12345678, { numericSeparator: true }), + '123_456_789.123_456_78' + ); + + assert.strictEqual( + util.inspect(-123456789.12345678, { numericSeparator: true }), + '-123_456_789.123_456_78' + ); +} diff --git a/test/parallel/test-util-isDeepStrictEqual.js b/test/parallel/test-util-isDeepStrictEqual.js index 1ad64c2ff81a57..da266fc84ce0bb 100644 --- a/test/parallel/test-util-isDeepStrictEqual.js +++ b/test/parallel/test-util-isDeepStrictEqual.js @@ -409,8 +409,10 @@ notUtilIsDeepStrict( } // Handle sparse arrays +/* eslint-disable no-sparse-arrays */ utilIsDeepStrict([1, , , 3], [1, , , 3]); notUtilIsDeepStrict([1, , , 3], [1, , , 3, , , ]); +/* eslint-enable no-sparse-arrays */ // Handle different error messages { diff --git a/test/parallel/test-util-promisify.js b/test/parallel/test-util-promisify.js index 7edeb6e493993e..0fc2d650ee9272 100644 --- a/test/parallel/test-util-promisify.js +++ b/test/parallel/test-util-promisify.js @@ -83,7 +83,7 @@ const stat = promisify(fs.stat); callback(null, 'foo', 'bar'); } promisify(fn)().then(common.mustCall((value) => { - assert.deepStrictEqual(value, 'foo'); + assert.strictEqual(value, 'foo'); })); } diff --git a/test/parallel/test-vm-basic.js b/test/parallel/test-vm-basic.js index c6dadce9ad0263..13d212f0079ca7 100644 --- a/test/parallel/test-vm-basic.js +++ b/test/parallel/test-vm-basic.js @@ -323,6 +323,14 @@ const vm = require('vm'); global ); + // Test compileFunction produceCachedData option + const result = vm.compileFunction('console.log("Hello, World!")', [], { + produceCachedData: true, + }); + + assert.ok(result.cachedDataProduced); + assert.ok(result.cachedData.length > 0); + // Resetting value Error.stackTraceLimit = oldLimit; } diff --git a/test/parallel/test-vm-module-dynamic-import.js b/test/parallel/test-vm-module-dynamic-import.js index 2273497d27677c..cd318511401412 100644 --- a/test/parallel/test-vm-module-dynamic-import.js +++ b/test/parallel/test-vm-module-dynamic-import.js @@ -1,6 +1,6 @@ 'use strict'; -// Flags: --experimental-vm-modules --harmony-import-assertions +// Flags: --experimental-vm-modules const common = require('../common'); diff --git a/test/parallel/test-vm-module-link.js b/test/parallel/test-vm-module-link.js index 9805d8fe3eee9c..16694d5d846075 100644 --- a/test/parallel/test-vm-module-link.js +++ b/test/parallel/test-vm-module-link.js @@ -1,6 +1,6 @@ 'use strict'; -// Flags: --experimental-vm-modules --harmony-import-assertions +// Flags: --experimental-vm-modules const common = require('../common'); diff --git a/test/parallel/test-vm-parse-abort-on-uncaught-exception.js b/test/parallel/test-vm-parse-abort-on-uncaught-exception.js index 4fcff30321f671..64bbb4dd4fcb98 100644 --- a/test/parallel/test-vm-parse-abort-on-uncaught-exception.js +++ b/test/parallel/test-vm-parse-abort-on-uncaught-exception.js @@ -7,8 +7,12 @@ const vm = require('vm'); try { new vm.Script({ toString() { throw new Error('foo'); } }, {}); -} catch {} +} catch { + // Continue regardless of error. +} try { new vm.Script('[', {}); -} catch {} +} catch { + // Continue regardless of error. +} diff --git a/test/parallel/test-webcrypto-derivebits-ecdh.js b/test/parallel/test-webcrypto-derivebits-ecdh.js index 64cbae7cec6a03..166da81e3e4e6d 100644 --- a/test/parallel/test-webcrypto-derivebits-ecdh.js +++ b/test/parallel/test-webcrypto-derivebits-ecdh.js @@ -6,7 +6,8 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { subtle, getRandomValues } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; const kTests = [ { @@ -250,7 +251,7 @@ async function prepareKeys() { { // Public is a secret key - const keyData = getRandomValues(new Uint8Array(32)); + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); const key = await subtle.importKey( 'raw', keyData, diff --git a/test/parallel/test-webcrypto-derivekey-ecdh.js b/test/parallel/test-webcrypto-derivekey-ecdh.js index bdd9bd7588a763..42c8d250f42b06 100644 --- a/test/parallel/test-webcrypto-derivekey-ecdh.js +++ b/test/parallel/test-webcrypto-derivekey-ecdh.js @@ -6,7 +6,8 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { subtle, getRandomValues } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; const kTests = [ { @@ -226,7 +227,7 @@ async function prepareKeys() { { // Public is a secret key - const keyData = getRandomValues(new Uint8Array(32)); + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); const key = await subtle.importKey( 'raw', keyData, diff --git a/test/parallel/test-webcrypto-encrypt-decrypt-aes.js b/test/parallel/test-webcrypto-encrypt-decrypt-aes.js index 7adb18918d2205..885cded906b079 100644 --- a/test/parallel/test-webcrypto-encrypt-decrypt-aes.js +++ b/test/parallel/test-webcrypto-encrypt-decrypt-aes.js @@ -6,7 +6,8 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { getRandomValues, subtle } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; async function testEncrypt({ keyBuffer, algorithm, plaintext, result }) { // Using a copy of plaintext to prevent tampering of the original @@ -213,8 +214,8 @@ async function testDecrypt({ keyBuffer, algorithm, result }) { ['encrypt', 'decrypt'], ); - const iv = getRandomValues(new Uint8Array(12)); - const aad = getRandomValues(new Uint8Array(32)); + const iv = webcrypto.getRandomValues(new Uint8Array(12)); + const aad = webcrypto.getRandomValues(new Uint8Array(32)); const encrypted = await subtle.encrypt( { @@ -224,7 +225,7 @@ async function testDecrypt({ keyBuffer, algorithm, result }) { tagLength: 128 }, secretKey, - getRandomValues(new Uint8Array(32)) + webcrypto.getRandomValues(new Uint8Array(32)) ); await subtle.decrypt( diff --git a/test/parallel/test-webcrypto-encrypt-decrypt.js b/test/parallel/test-webcrypto-encrypt-decrypt.js index 50fa99a999cd92..cc997e7d2e6d26 100644 --- a/test/parallel/test-webcrypto-encrypt-decrypt.js +++ b/test/parallel/test-webcrypto-encrypt-decrypt.js @@ -6,14 +6,15 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { subtle, getRandomValues } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; // This is only a partial test. The WebCrypto Web Platform Tests // will provide much greater coverage. // Test Encrypt/Decrypt RSA-OAEP { - const buf = getRandomValues(new Uint8Array(50)); + const buf = webcrypto.getRandomValues(new Uint8Array(50)); async function test() { const ec = new TextEncoder(); @@ -44,8 +45,8 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; // Test Encrypt/Decrypt AES-CTR { - const buf = getRandomValues(new Uint8Array(50)); - const counter = getRandomValues(new Uint8Array(16)); + const buf = webcrypto.getRandomValues(new Uint8Array(50)); + const counter = webcrypto.getRandomValues(new Uint8Array(16)); async function test() { const key = await subtle.generateKey({ @@ -71,8 +72,8 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; // Test Encrypt/Decrypt AES-CBC { - const buf = getRandomValues(new Uint8Array(50)); - const iv = getRandomValues(new Uint8Array(16)); + const buf = webcrypto.getRandomValues(new Uint8Array(50)); + const iv = webcrypto.getRandomValues(new Uint8Array(16)); async function test() { const key = await subtle.generateKey({ @@ -98,8 +99,8 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; // Test Encrypt/Decrypt AES-GCM { - const buf = getRandomValues(new Uint8Array(50)); - const iv = getRandomValues(new Uint8Array(12)); + const buf = webcrypto.getRandomValues(new Uint8Array(50)); + const iv = webcrypto.getRandomValues(new Uint8Array(12)); async function test() { const key = await subtle.generateKey({ diff --git a/test/parallel/test-webcrypto-export-import.js b/test/parallel/test-webcrypto-export-import.js index d7db433b364011..b4fd26b0cda6ae 100644 --- a/test/parallel/test-webcrypto-export-import.js +++ b/test/parallel/test-webcrypto-export-import.js @@ -6,11 +6,12 @@ if (!common.hasCrypto) common.skip('missing crypto'); const assert = require('assert'); -const { subtle, getRandomValues } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); +const { subtle } = webcrypto; { async function test() { - const keyData = getRandomValues(new Uint8Array(32)); + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); await Promise.all([1, null, undefined, {}, []].map((format) => assert.rejects( subtle.importKey(format, keyData, {}, false, ['wrapKey']), { @@ -82,7 +83,7 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; // Import/Export HMAC Secret Key { async function test() { - const keyData = getRandomValues(new Uint8Array(32)); + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); const key = await subtle.importKey( 'raw', keyData, { @@ -112,7 +113,7 @@ const { subtle, getRandomValues } = require('crypto').webcrypto; // Import/Export AES Secret Key { async function test() { - const keyData = getRandomValues(new Uint8Array(32)); + const keyData = webcrypto.getRandomValues(new Uint8Array(32)); const key = await subtle.importKey( 'raw', keyData, { diff --git a/test/parallel/test-webcrypto-getRandomValues.js b/test/parallel/test-webcrypto-getRandomValues.js new file mode 100644 index 00000000000000..049cdcc847feb1 --- /dev/null +++ b/test/parallel/test-webcrypto-getRandomValues.js @@ -0,0 +1,11 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { getRandomValues } = require('crypto').webcrypto; + +assert.throws(() => getRandomValues(new Uint8Array()), { code: 'ERR_INVALID_THIS' }); diff --git a/test/parallel/test-webcrypto-random.js b/test/parallel/test-webcrypto-random.js index f2bf2c396fd20a..c3fc6aaab2eb1e 100644 --- a/test/parallel/test-webcrypto-random.js +++ b/test/parallel/test-webcrypto-random.js @@ -7,22 +7,23 @@ if (!common.hasCrypto) const { Buffer } = require('buffer'); const assert = require('assert'); -const { getRandomValues } = require('crypto').webcrypto; +const { webcrypto } = require('crypto'); [ undefined, null, '', 1, {}, [], new Float32Array(1), new Float64Array(1), + new DataView(new ArrayBuffer(1)), ].forEach((i) => { assert.throws( - () => getRandomValues(i), + () => webcrypto.getRandomValues(i), { name: 'TypeMismatchError', code: 17 }, ); }); { const buf = new Uint8Array(0); - getRandomValues(buf); + webcrypto.getRandomValues(buf); } const intTypedConstructors = [ @@ -32,6 +33,7 @@ const intTypedConstructors = [ Uint8Array, Uint16Array, Uint32Array, + Uint8ClampedArray, BigInt64Array, BigUint64Array, ]; @@ -39,7 +41,7 @@ const intTypedConstructors = [ for (const ctor of intTypedConstructors) { const buf = new ctor(10); const before = Buffer.from(buf.buffer).toString('hex'); - getRandomValues(buf); + webcrypto.getRandomValues(buf); const after = Buffer.from(buf.buffer).toString('hex'); assert.notStrictEqual(before, after); } @@ -47,7 +49,7 @@ for (const ctor of intTypedConstructors) { { const buf = new Uint16Array(10); const before = Buffer.from(buf).toString('hex'); - getRandomValues(new DataView(buf.buffer)); + webcrypto.getRandomValues(buf); const after = Buffer.from(buf).toString('hex'); assert.notStrictEqual(before, after); } @@ -61,7 +63,7 @@ for (const ctor of intTypedConstructors) { } if (kData !== undefined) { - assert.throws(() => getRandomValues(kData), { + assert.throws(() => webcrypto.getRandomValues(kData), { code: 22 }); } diff --git a/test/parallel/test-whatwg-encoding-custom-textdecoder.js b/test/parallel/test-whatwg-encoding-custom-textdecoder.js index 877cd43734451b..1fa65164c70678 100644 --- a/test/parallel/test-whatwg-encoding-custom-textdecoder.js +++ b/test/parallel/test-whatwg-encoding-custom-textdecoder.js @@ -191,3 +191,11 @@ if (common.hasIntl) { } ); } + +// Test TextDecoder for incomplete UTF-8 byte sequence. +{ + const decoder = new TextDecoder(); + const chunk = new Uint8Array([0x66, 0x6f, 0x6f, 0xed]); + const str = decoder.decode(chunk); + assert.strictEqual(str, 'foo\ufffd'); +} diff --git a/test/parallel/test-whatwg-readablebytestream.js b/test/parallel/test-whatwg-readablebytestream.js index eb4355505053ef..83ec85fae61405 100644 --- a/test/parallel/test-whatwg-readablebytestream.js +++ b/test/parallel/test-whatwg-readablebytestream.js @@ -234,5 +234,31 @@ class Source { } { + const stream = new ReadableStream({ + type: 'bytes', + pull(c) { + const v = new Uint8Array(c.byobRequest.view.buffer, 0, 3); + v.set([20, 21, 22]); + c.byobRequest.respondWithNewView(v); + }, + }); + const buffer = new ArrayBuffer(10); + const view = new Uint8Array(buffer, 0, 3); + view.set([10, 11, 12]); + const reader = stream.getReader({ mode: 'byob' }); + reader.read(view); +} +{ + const stream = new ReadableStream({ + type: 'bytes', + autoAllocateChunkSize: 10, + pull(c) { + const v = new Uint8Array(c.byobRequest.view.buffer, 0, 3); + v.set([20, 21, 22]); + c.byobRequest.respondWithNewView(v); + }, + }); + const reader = stream.getReader(); + reader.read(); } diff --git a/test/parallel/test-whatwg-readablestream.js b/test/parallel/test-whatwg-readablestream.js index c8b82fa9823786..cef3eca6ed2733 100644 --- a/test/parallel/test-whatwg-readablestream.js +++ b/test/parallel/test-whatwg-readablestream.js @@ -2,7 +2,7 @@ 'use strict'; const common = require('../common'); -const { isDisturbed } = require('stream'); +const { isDisturbed, isErrored, isReadable } = require('stream'); const assert = require('assert'); const { isPromise, @@ -80,6 +80,36 @@ const { assert(r.locked); } +{ + // Throw error and return rejected promise in `cancel()` method + // would execute same cleanup code + const r1 = new ReadableStream({ + cancel: () => { + return Promise.reject('Cancel Error'); + }, + }); + r1.cancel().finally(common.mustCall(() => { + const controllerState = r1[kState].controller[kState]; + + assert.strictEqual(controllerState.pullAlgorithm, undefined); + assert.strictEqual(controllerState.cancelAlgorithm, undefined); + assert.strictEqual(controllerState.sizeAlgorithm, undefined); + })).catch(() => {}); + + const r2 = new ReadableStream({ + cancel() { + throw new Error('Cancel Error'); + } + }); + r2.cancel().finally(common.mustCall(() => { + const controllerState = r2[kState].controller[kState]; + + assert.strictEqual(controllerState.pullAlgorithm, undefined); + assert.strictEqual(controllerState.cancelAlgorithm, undefined); + assert.strictEqual(controllerState.sizeAlgorithm, undefined); + })).catch(() => {}); +} + { const source = { start: common.mustCall((controller) => { @@ -1410,10 +1440,12 @@ class Source { assert.strictEqual( inspect(readable), - 'ReadableStream { locked: false, state: \'readable\' }'); + 'ReadableStream { locked: false, state: \'readable\', ' + + 'supportsBYOB: false }'); assert.strictEqual( inspect(readable, { depth: null }), - 'ReadableStream { locked: false, state: \'readable\' }'); + 'ReadableStream { locked: false, state: \'readable\', ' + + 'supportsBYOB: false }'); assert.strictEqual( inspect(readable, { depth: 0 }), 'ReadableStream [Object]'); @@ -1570,3 +1602,48 @@ class Source { isDisturbed(stream, true); })().then(common.mustCall()); } + +{ + const stream = new ReadableStream({ + pull: common.mustCall((controller) => { + controller.error(new Error()); + }), + }); + + const reader = stream.getReader(); + (async () => { + isErrored(stream, false); + await reader.read().catch(common.mustCall()); + isErrored(stream, true); + })().then(common.mustCall()); +} + +{ + const stream = new ReadableStream({ + pull: common.mustCall((controller) => { + controller.error(new Error()); + }), + }); + + const reader = stream.getReader(); + (async () => { + isReadable(stream, true); + await reader.read().catch(common.mustCall()); + isReadable(stream, false); + })().then(common.mustCall()); +} + +{ + const stream = new ReadableStream({ + type: 'bytes', + start(controller) { + controller.close(); + } + }); + + const buffer = new ArrayBuffer(1024); + const reader = stream.getReader({ mode: 'byob' }); + + reader.read(new DataView(buffer)) + .then(common.mustCall()); +} diff --git a/test/parallel/test-whatwg-readablestream.mjs b/test/parallel/test-whatwg-readablestream.mjs new file mode 100644 index 00000000000000..a3693f62439ce7 --- /dev/null +++ b/test/parallel/test-whatwg-readablestream.mjs @@ -0,0 +1,36 @@ +import { mustCall } from '../common/index.mjs'; +import { ReadableStream } from 'stream/web'; +import assert from 'assert'; + +{ + // Test tee() with close in the nextTick after enqueue + async function read(stream) { + const chunks = []; + for await (const chunk of stream) + chunks.push(chunk); + return Buffer.concat(chunks).toString(); + } + + const [r1, r2] = new ReadableStream({ + start(controller) { + process.nextTick(() => { + controller.enqueue(new Uint8Array([102, 111, 111, 98, 97, 114])); + + process.nextTick(() => { + controller.close(); + }); + }); + } + }).tee(); + + (async () => { + const [dataReader1, dataReader2] = await Promise.all([ + read(r1), + read(r2), + ]); + + assert.strictEqual(dataReader1, dataReader2); + assert.strictEqual(dataReader1, 'foobar'); + assert.strictEqual(dataReader2, 'foobar'); + })().then(mustCall()); +} diff --git a/test/parallel/test-whatwg-url-properties.js b/test/parallel/test-whatwg-url-properties.js index a387b0eb753e1a..067a32919571ac 100644 --- a/test/parallel/test-whatwg-url-properties.js +++ b/test/parallel/test-whatwg-url-properties.js @@ -68,7 +68,7 @@ function testMethod(target, name, methodName = stringifyName(name)) { assert.strictEqual(typeof value, 'function'); assert.strictEqual(value.name, methodName); assert.strictEqual( - Object.prototype.hasOwnProperty.call(value, 'prototype'), + Object.hasOwn(value, 'prototype'), false, ); } @@ -83,7 +83,7 @@ function testAccessor(target, name, readonly = false) { assert.strictEqual(typeof get, 'function'); assert.strictEqual(get.name, `get ${methodName}`); assert.strictEqual( - Object.prototype.hasOwnProperty.call(get, 'prototype'), + Object.hasOwn(get, 'prototype'), false, ); @@ -93,7 +93,7 @@ function testAccessor(target, name, readonly = false) { assert.strictEqual(typeof set, 'function'); assert.strictEqual(set.name, `set ${methodName}`); assert.strictEqual( - Object.prototype.hasOwnProperty.call(set, 'prototype'), + Object.hasOwn(set, 'prototype'), false, ); } diff --git a/test/parallel/test-whatwg-webstreams-adapters-to-streamduplex.js b/test/parallel/test-whatwg-webstreams-adapters-to-streamduplex.js index 4567c53c1e89a0..15ac9f832714e9 100644 --- a/test/parallel/test-whatwg-webstreams-adapters-to-streamduplex.js +++ b/test/parallel/test-whatwg-webstreams-adapters-to-streamduplex.js @@ -147,3 +147,20 @@ const { finished(duplex, common.mustCall()); pipeline(readable, duplex, writable, common.mustCall()); } + +{ + const transform = new TransformStream(); + const duplex = newStreamDuplexFromReadableWritablePair(transform); + duplex.setEncoding('utf-8'); + duplex.on('data', common.mustCall((data) => { + assert.strictEqual(data, 'hello'); + }, 5)); + + duplex.write(Buffer.from('hello')); + duplex.write(Buffer.from('hello')); + duplex.write(Buffer.from('hello')); + duplex.write(Buffer.from('hello')); + duplex.write(Buffer.from('hello')); + + duplex.end(); +} diff --git a/test/parallel/test-whatwg-webstreams-adapters-to-streamreadable.js b/test/parallel/test-whatwg-webstreams-adapters-to-streamreadable.js index 656d453ca8e73a..5e5eb7c4817ac0 100644 --- a/test/parallel/test-whatwg-webstreams-adapters-to-streamreadable.js +++ b/test/parallel/test-whatwg-webstreams-adapters-to-streamreadable.js @@ -143,7 +143,7 @@ class MySource { }); readable.on('data', common.mustCall((chunk) => { - assert.deepStrictEqual(chunk, 'hello'); + assert.strictEqual(chunk, 'hello'); })); readable.on('end', common.mustCall()); readable.on('close', common.mustCall()); diff --git a/test/parallel/test-whatwg-webstreams-adapters-to-streamwritable.js b/test/parallel/test-whatwg-webstreams-adapters-to-streamwritable.js index 8a3adf95aa930f..495eef73f79272 100644 --- a/test/parallel/test-whatwg-webstreams-adapters-to-streamwritable.js +++ b/test/parallel/test-whatwg-webstreams-adapters-to-streamwritable.js @@ -170,7 +170,7 @@ class TestSource { writable.on('finish', common.mustCall()); writable.on('close', common.mustCall(() => { assert.strictEqual(source.chunks.length, 1); - assert.deepStrictEqual(source.chunks[0], 'hello'); + assert.strictEqual(source.chunks[0], 'hello'); })); writable.write('hello', common.mustCall()); @@ -200,7 +200,7 @@ class TestSource { { const writableStream = new WritableStream({ - write: common.mustCall(2), + write: common.mustCall(5), close: common.mustCall(), }); const writable = newStreamWritableFromWritableStream(writableStream); @@ -208,6 +208,9 @@ class TestSource { finished(writable, common.mustCall()); writable.write('hello'); + writable.write('hello'); + writable.write('hello'); + writable.write('world'); writable.write('world'); writable.end(); } diff --git a/test/parallel/test-windows-failed-heap-allocation.js b/test/parallel/test-windows-failed-heap-allocation.js index 56a941ce58d072..be901b7dc2242c 100644 --- a/test/parallel/test-windows-failed-heap-allocation.js +++ b/test/parallel/test-windows-failed-heap-allocation.js @@ -19,8 +19,8 @@ const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); // --max-old-space-size=3 is the min 'old space' in V8, explodes fast -const cmd = `"${process.execPath}" --max-old-space-size=3 "${__filename}"`; -exec(`${cmd} heapBomb`, { cwd: tmpdir.path }, common.mustCall((err) => { +const cmd = `"${process.execPath}" --max-old-space-size=30 "${__filename}"`; +exec(`${cmd} heapBomb`, { cwd: tmpdir.path }, common.mustCall((err, stdout, stderr) => { const msg = `Wrong exit code of ${err.code}! Expected 134 for abort`; // Note: common.nodeProcessAborted() is not asserted here because it // returns true on 134 as well as 0x80000003 (V8's base::OS::Abort) diff --git a/test/parallel/test-worker-message-port-infinite-message-loop.js b/test/parallel/test-worker-message-port-infinite-message-loop.js index 640b3383ca62c3..0cd1cc06802055 100644 --- a/test/parallel/test-worker-message-port-infinite-message-loop.js +++ b/test/parallel/test-worker-message-port-infinite-message-loop.js @@ -6,7 +6,7 @@ const { MessageChannel } = require('worker_threads'); // Make sure that an infinite asynchronous .on('message')/postMessage loop // does not lead to a stack overflow and does not starve the event loop. -// We schedule timeouts both from before the the .on('message') handler and +// We schedule timeouts both from before the .on('message') handler and // inside of it, which both should run. const { port1, port2 } = new MessageChannel(); diff --git a/test/parallel/test-worker-message-port-receive-message.js b/test/parallel/test-worker-message-port-receive-message.js index 8e5dc91a0790ae..bafcd3f7a7042f 100644 --- a/test/parallel/test-worker-message-port-receive-message.js +++ b/test/parallel/test-worker-message-port-receive-message.js @@ -10,13 +10,13 @@ const message2 = { foo: 'bar' }; // Make sure receiveMessageOnPort() works in a FIFO way, the same way it does // when we’re using events. -assert.deepStrictEqual(receiveMessageOnPort(port2), undefined); +assert.strictEqual(receiveMessageOnPort(port2), undefined); port1.postMessage(message1); port1.postMessage(message2); assert.deepStrictEqual(receiveMessageOnPort(port2), { message: message1 }); assert.deepStrictEqual(receiveMessageOnPort(port2), { message: message2 }); -assert.deepStrictEqual(receiveMessageOnPort(port2), undefined); -assert.deepStrictEqual(receiveMessageOnPort(port2), undefined); +assert.strictEqual(receiveMessageOnPort(port2), undefined); +assert.strictEqual(receiveMessageOnPort(port2), undefined); // Make sure message handlers aren’t called. port2.on('message', common.mustNotCall()); diff --git a/test/parallel/test-worker-message-port-terminate-transfer-list.js b/test/parallel/test-worker-message-port-terminate-transfer-list.js index a066405d9d14de..a5c7a34c55ed72 100644 --- a/test/parallel/test-worker-message-port-terminate-transfer-list.js +++ b/test/parallel/test-worker-message-port-terminate-transfer-list.js @@ -18,6 +18,7 @@ if (!process.env.HAS_STARTED_WORKER) { // Make sure we don’t end up running JS after the infinite loop is broken. port1.postMessage({}, { + // eslint-disable-next-line require-yield transfer: (function*() { while (true); })() }); diff --git a/test/parallel/test-worker-workerdata-messageport.js b/test/parallel/test-worker-workerdata-messageport.js index 29a06a3196ae86..18f05731e8f635 100644 --- a/test/parallel/test-worker-workerdata-messageport.js +++ b/test/parallel/test-worker-workerdata-messageport.js @@ -28,7 +28,7 @@ const meowScript = () => 'meow'; { const uint8Array = new Uint8Array([ 1, 2, 3, 4 ]); - assert.deepStrictEqual(uint8Array.length, 4); + assert.strictEqual(uint8Array.length, 4); new Worker(` const { parentPort, workerData } = require('worker_threads'); parentPort.postMessage(workerData); @@ -41,7 +41,7 @@ const meowScript = () => 'meow'; (message) => assert.deepStrictEqual(message, Uint8Array.of(1, 2, 3, 4)) ); - assert.deepStrictEqual(uint8Array.length, 0); + assert.strictEqual(uint8Array.length, 0); } { diff --git a/test/parallel/test-x509-escaping-revert-CVE-2021-44532.js b/test/parallel/test-x509-escaping-revert-CVE-2021-44532.js new file mode 100644 index 00000000000000..2f31daad10de81 --- /dev/null +++ b/test/parallel/test-x509-escaping-revert-CVE-2021-44532.js @@ -0,0 +1,343 @@ +// Flags: --security-revert=CVE-2021-44532 +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { X509Certificate } = require('crypto'); +const tls = require('tls'); +const fixtures = require('../common/fixtures'); + +const { hasOpenSSL3 } = common; + +// Test escaping rules for subject alternative names. +{ + const expectedSANs = [ + 'DNS:good.example.com, DNS:evil.example.com', + // URIs should not require escaping. + 'URI:http://example.com/', + 'URI:http://example.com/?a=b&c=d', + // Unless they contain commas. + 'URI:http://example.com/a,b', + // Percent encoding should not require escaping. + 'URI:http://example.com/a%2Cb', + // Malicious attempts should be escaped. + 'URI:http://example.com/a, DNS:good.example.com', + // Non-ASCII characters in DNS names should be treated as Latin-1. + 'DNS:ex�mple.com', + // It should not be possible to cause unescaping without escaping. + 'DNS:"evil.example.com"', + // IPv4 addresses should be represented as usual. + 'IP Address:8.8.8.8', + 'IP Address:8.8.4.4', + // For backward-compatibility, include invalid IP address lengths. + hasOpenSSL3 ? 'IP Address:' : 'IP Address:', + hasOpenSSL3 ? 'IP Address:' : 'IP Address:', + // IPv6 addresses are represented as OpenSSL does. + 'IP Address:A0B:C0D:E0F:0:0:0:7A7B:7C7D', + // Regular email addresses don't require escaping. + 'email:foo@example.com', + // ... but should be escaped if they contain commas. + 'email:foo@example.com, DNS:good.example.com', + 'DirName:/C=DE/L=Hannover', + // TODO(tniessen): support UTF8 in DirName + 'DirName:/C=DE/L=M\\xC3\\xBCnchen', + 'DirName:/C=DE/L=Berlin, DNS:good.example.com', + 'DirName:/C=DE/L=Berlin, DNS:good.example.com\\x00' + + 'evil.example.com', + 'DirName:/C=DE/L=Berlin, DNS:good.example.com\\\\x00' + + 'evil.example.com', + // These next two tests might be surprising. OpenSSL applies its own rules + // first, which introduce backslashes, which activate node's escaping. + // Unfortunately, there are also differences between OpenSSL 1.1.1 and 3.0. + 'DirName:/C=DE/L=Berlin\\x0D\\x0A', + hasOpenSSL3 ? + 'DirName:/C=DE/L=Berlin\\/CN=good.example.com' : + 'DirName:/C=DE/L=Berlin/CN=good.example.com', + // TODO(tniessen): even OIDs that are well-known (such as the following, + // which is sha256WithRSAEncryption) should be represented numerically only. + 'Registered ID:sha256WithRSAEncryption', + // This is an OID that will likely never be assigned to anything, thus + // OpenSSL hould not know it. + 'Registered ID:1.3.9999.12.34', + hasOpenSSL3 ? + 'othername: XmppAddr::abc123' : + 'othername:', + hasOpenSSL3 ? + 'othername: XmppAddr::abc123, DNS:good.example.com' : + 'othername:', + hasOpenSSL3 ? + null : + 'othername:', + // This is unsupported because the OID is not recognized. + hasOpenSSL3 ? + 'othername: 1.3.9999.12.34::abc123' : + 'othername:', + hasOpenSSL3 ? 'othername: SRVName::abc123' : 'othername:', + // This is unsupported because it is an SRVName with a UTF8String value, + // which is not allowed for SRVName. + hasOpenSSL3 ? + null : 'othername:', + hasOpenSSL3 ? + null : + 'othername:', + ]; + + const serverKey = fixtures.readSync('x509-escaping/server-key.pem', 'utf8'); + + for (let i = 0; i < expectedSANs.length; i++) { + const pem = fixtures.readSync(`x509-escaping/alt-${i}-cert.pem`, 'utf8'); + + // Test the subjectAltName property of the X509Certificate API. + const cert = new X509Certificate(pem); + assert.strictEqual(cert.subjectAltName, expectedSANs[i]); + + // Test that the certificate obtained by checkServerIdentity has the correct + // subjectaltname property. + const server = tls.createServer({ + key: serverKey, + cert: pem, + }, common.mustCall((conn) => { + conn.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: pem, + servername: 'example.com', + checkServerIdentity: (hostname, peerCert) => { + assert.strictEqual(hostname, 'example.com'); + assert.strictEqual(peerCert.subjectaltname, expectedSANs[i]); + }, + }, common.mustCall()); + })); + } +} + +// Test escaping rules for authority info access. +{ + const expectedInfoAccess = [ + { + text: 'OCSP - URI:http://good.example.com/\n' + + 'OCSP - URI:http://evil.example.com/', + legacy: { + 'OCSP - URI': [ + 'http://good.example.com/', + 'http://evil.example.com/', + ], + }, + }, + { + text: 'CA Issuers - URI:http://ca.example.com/\n' + + 'OCSP - URI:http://evil.example.com\n' + + 'OCSP - DNS:good.example.com\n' + + 'OCSP - URI:http://ca.nodejs.org/ca.cert', + legacy: { + 'CA Issuers - URI': [ + 'http://ca.example.com/', + ], + 'OCSP - DNS': [ + 'good.example.com', + ], + 'OCSP - URI': [ + 'http://evil.example.com', + 'http://ca.nodejs.org/ca.cert', + ], + }, + }, + { + text: '1.3.9999.12.34 - URI:http://ca.example.com/', + legacy: { + '1.3.9999.12.34 - URI': [ + 'http://ca.example.com/', + ], + }, + }, + hasOpenSSL3 ? { + text: 'OCSP - othername: XmppAddr::good.example.com\n' + + 'OCSP - othername: 1.3.9999.12.34::abc123\n' + + 'OCSP - othername: SRVName::abc123', + legacy: { + 'OCSP - othername': [ + ' XmppAddr::good.example.com', + ' 1.3.9999.12.34::abc123', + ' SRVName::abc123', + ], + }, + } : { + text: 'OCSP - othername:\n' + + 'OCSP - othername:\n' + + 'OCSP - othername:', + legacy: { + 'OCSP - othername': [ + '', + '', + '', + ], + }, + }, + hasOpenSSL3 ? { + text: null, + legacy: null, + } : { + text: 'OCSP - othername:', + legacy: { + 'OCSP - othername': [ + '', + ] + }, + }, + ]; + + const serverKey = fixtures.readSync('x509-escaping/server-key.pem', 'utf8'); + + for (let i = 0; i < expectedInfoAccess.length; i++) { + const pem = fixtures.readSync(`x509-escaping/info-${i}-cert.pem`, 'utf8'); + const expected = expectedInfoAccess[i]; + + // Test the subjectAltName property of the X509Certificate API. + const cert = new X509Certificate(pem); + assert.strictEqual(cert.infoAccess, expected.text ? + `${expected.text}${hasOpenSSL3 ? '' : '\n'}` : + expected.text); + + // Test that the certificate obtained by checkServerIdentity has the correct + // subjectaltname property. + const server = tls.createServer({ + key: serverKey, + cert: pem, + }, common.mustCall((conn) => { + conn.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: pem, + servername: 'example.com', + checkServerIdentity: (hostname, peerCert) => { + assert.strictEqual(hostname, 'example.com'); + assert.deepStrictEqual(peerCert.infoAccess, + expected.legacy ? + Object.assign(Object.create(null), + expected.legacy) : + expected.legacy); + }, + }, common.mustCall()); + })); + } +} + +// The internal parsing logic must match the JSON specification exactly. +{ + // This list is partially based on V8's own JSON tests. + const invalidJSON = [ + '"\\a invalid escape"', + '"\\v invalid escape"', + '"\\\' invalid escape"', + '"\\x42 invalid escape"', + '"\\u202 invalid escape"', + '"\\012 invalid escape"', + '"Unterminated string', + '"Unterminated string\\"', + '"Unterminated string\\\\\\"', + '"\u0000 control character"', + '"\u001e control character"', + '"\u001f control character"', + ]; + + for (const invalidStringLiteral of invalidJSON) { + // Usually, checkServerIdentity returns an error upon verification failure. + // In this case, however, it should throw an error since this is not a + // verification error. Node.js itself will never produce invalid JSON string + // literals, so this can only happen when users construct invalid subject + // alternative name strings (that do not follow escaping rules). + assert.throws(() => { + tls.checkServerIdentity('example.com', { + subjectaltname: `DNS:${invalidStringLiteral}`, + }); + }, { + code: 'ERR_TLS_CERT_ALTNAME_FORMAT', + message: 'Invalid subject alternative name string' + }); + } +} + +// While node does not produce commas within SAN entries, it should parse them +// correctly (i.e., not simply split at commas). +{ + // Regardless of the quotes, splitting this SAN string at commas would + // cause checkServerIdentity to see 'DNS:b.example.com' and thus to accept + // the certificate for b.example.com. + const san = 'DNS:"a.example.com, DNS:b.example.com, DNS:c.example.com"'; + + // This is what node used to do, and which is not correct! + const hostname = 'b.example.com'; + assert.strictEqual(san.split(', ')[1], `DNS:${hostname}`); + + // The new implementation should parse the string correctly. + const err = tls.checkServerIdentity(hostname, { subjectaltname: san }); + assert(err); + assert.strictEqual(err.code, 'ERR_TLS_CERT_ALTNAME_INVALID'); + assert.strictEqual(err.message, 'Hostname/IP does not match certificate\'s ' + + 'altnames: Host: b.example.com. is not in ' + + 'the cert\'s altnames: DNS:"a.example.com, ' + + 'DNS:b.example.com, DNS:c.example.com"'); +} + +// The subject MUST be ignored if a dNSName subject alternative name exists. +{ + const key = fixtures.readKey('incorrect_san_correct_subject-key.pem'); + const cert = fixtures.readKey('incorrect_san_correct_subject-cert.pem'); + + // The hostname is the CN, but not a SAN entry. + const servername = 'good.example.com'; + const certX509 = new X509Certificate(cert); + assert.strictEqual(certX509.subject, `CN=${servername}`); + assert.strictEqual(certX509.subjectAltName, 'DNS:evil.example.com'); + + // Try connecting to a server that uses the self-signed certificate. + const server = tls.createServer({ key, cert }, common.mustNotCall()); + server.listen(common.mustCall(() => { + const { port } = server.address(); + const socket = tls.connect(port, { + ca: cert, + servername, + }, common.mustNotCall()); + socket.on('error', common.mustCall((err) => { + assert.strictEqual(err.code, 'ERR_TLS_CERT_ALTNAME_INVALID'); + assert.strictEqual(err.message, 'Hostname/IP does not match ' + + "certificate's altnames: Host: " + + "good.example.com. is not in the cert's" + + ' altnames: DNS:evil.example.com'); + })); + })).unref(); +} + +// The subject MUST NOT be ignored if no dNSName subject alternative name +// exists, even if other subject alternative names exist. +{ + const key = fixtures.readKey('irrelevant_san_correct_subject-key.pem'); + const cert = fixtures.readKey('irrelevant_san_correct_subject-cert.pem'); + + // The hostname is the CN, but there is no dNSName SAN entry. + const servername = 'good.example.com'; + const certX509 = new X509Certificate(cert); + assert.strictEqual(certX509.subject, `CN=${servername}`); + assert.strictEqual(certX509.subjectAltName, 'IP Address:1.2.3.4'); + + // Connect to a server that uses the self-signed certificate. + const server = tls.createServer({ key, cert }, common.mustCall((socket) => { + socket.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: cert, + servername, + }, common.mustCall(() => { + // Do nothing, the server will close the connection. + })); + })); +} diff --git a/test/parallel/test-x509-escaping.js b/test/parallel/test-x509-escaping.js new file mode 100644 index 00000000000000..99418e4c0bf21c --- /dev/null +++ b/test/parallel/test-x509-escaping.js @@ -0,0 +1,488 @@ +'use strict'; + +const common = require('../common'); +if (!common.hasCrypto) + common.skip('missing crypto'); + +const assert = require('assert'); +const { X509Certificate } = require('crypto'); +const tls = require('tls'); +const fixtures = require('../common/fixtures'); + +const { hasOpenSSL3 } = common; + +// Test that all certificate chains provided by the reporter are rejected. +{ + const rootPEM = fixtures.readSync('x509-escaping/google/root.pem'); + const intermPEM = fixtures.readSync('x509-escaping/google/intermediate.pem'); + const keyPEM = fixtures.readSync('x509-escaping/google/key.pem'); + + const numLeaves = 5; + + for (let i = 0; i < numLeaves; i++) { + const name = `x509-escaping/google/leaf${i}.pem`; + const leafPEM = fixtures.readSync(name, 'utf8'); + + const server = tls.createServer({ + key: keyPEM, + cert: leafPEM + intermPEM, + }, common.mustNotCall()).listen(common.mustCall(() => { + const { port } = server.address(); + const socket = tls.connect(port, { + ca: rootPEM, + servername: 'nodejs.org', + }, common.mustNotCall()); + socket.on('error', common.mustCall()); + })).unref(); + } +} + +// Test escaping rules for subject alternative names. +{ + const expectedSANs = [ + 'DNS:"good.example.com\\u002c DNS:evil.example.com"', + // URIs should not require escaping. + 'URI:http://example.com/', + 'URI:http://example.com/?a=b&c=d', + // Unless they contain commas. + 'URI:"http://example.com/a\\u002cb"', + // Percent encoding should not require escaping. + 'URI:http://example.com/a%2Cb', + // Malicious attempts should be escaped. + 'URI:"http://example.com/a\\u002c DNS:good.example.com"', + // Non-ASCII characters in DNS names should be treated as Latin-1. + 'DNS:"ex\\u00e4mple.com"', + // It should not be possible to cause unescaping without escaping. + 'DNS:"\\"evil.example.com\\""', + // IPv4 addresses should be represented as usual. + 'IP Address:8.8.8.8', + 'IP Address:8.8.4.4', + // For backward-compatibility, include invalid IP address lengths. + hasOpenSSL3 ? 'IP Address:' : 'IP Address:', + hasOpenSSL3 ? 'IP Address:' : 'IP Address:', + // IPv6 addresses are represented as OpenSSL does. + 'IP Address:A0B:C0D:E0F:0:0:0:7A7B:7C7D', + // Regular email addresses don't require escaping. + 'email:foo@example.com', + // ... but should be escaped if they contain commas. + 'email:"foo@example.com\\u002c DNS:good.example.com"', + 'DirName:/C=DE/L=Hannover', + // TODO(tniessen): support UTF8 in DirName + 'DirName:"/C=DE/L=M\\\\xC3\\\\xBCnchen"', + 'DirName:"/C=DE/L=Berlin\\u002c DNS:good.example.com"', + 'DirName:"/C=DE/L=Berlin\\u002c DNS:good.example.com\\\\x00' + + 'evil.example.com"', + 'DirName:"/C=DE/L=Berlin\\u002c DNS:good.example.com\\\\\\\\x00' + + 'evil.example.com"', + // These next two tests might be surprising. OpenSSL applies its own rules + // first, which introduce backslashes, which activate node's escaping. + // Unfortunately, there are also differences between OpenSSL 1.1.1 and 3.0. + 'DirName:"/C=DE/L=Berlin\\\\x0D\\\\x0A"', + hasOpenSSL3 ? + 'DirName:"/C=DE/L=Berlin\\\\/CN=good.example.com"' : + 'DirName:/C=DE/L=Berlin/CN=good.example.com', + // TODO(tniessen): even OIDs that are well-known (such as the following, + // which is sha256WithRSAEncryption) should be represented numerically only. + 'Registered ID:sha256WithRSAEncryption', + // This is an OID that will likely never be assigned to anything, thus + // OpenSSL should not know it. + 'Registered ID:1.3.9999.12.34', + hasOpenSSL3 ? + 'othername: XmppAddr::abc123' : + 'othername:', + hasOpenSSL3 ? + 'othername:" XmppAddr::abc123\\u002c DNS:good.example.com"' : + 'othername:', + hasOpenSSL3 ? + 'othername:" XmppAddr::good.example.com\\u0000abc123"' : + 'othername:', + // This is unsupported because the OID is not recognized. + 'othername:', + hasOpenSSL3 ? 'othername: SRVName::abc123' : 'othername:', + // This is unsupported because it is an SRVName with a UTF8String value, + // which is not allowed for SRVName. + 'othername:', + hasOpenSSL3 ? + 'othername:" SRVName::abc\\u0000def"' : + 'othername:', + ]; + + const serverKey = fixtures.readSync('x509-escaping/server-key.pem', 'utf8'); + + for (let i = 0; i < expectedSANs.length; i++) { + const pem = fixtures.readSync(`x509-escaping/alt-${i}-cert.pem`, 'utf8'); + + // Test the subjectAltName property of the X509Certificate API. + const cert = new X509Certificate(pem); + assert.strictEqual(cert.subjectAltName, expectedSANs[i]); + + // Test that the certificate obtained by checkServerIdentity has the correct + // subjectaltname property. + const server = tls.createServer({ + key: serverKey, + cert: pem, + }, common.mustCall((conn) => { + conn.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: pem, + servername: 'example.com', + checkServerIdentity: (hostname, peerCert) => { + assert.strictEqual(hostname, 'example.com'); + assert.strictEqual(peerCert.subjectaltname, expectedSANs[i]); + }, + }, common.mustCall()); + })); + } +} + +// Test escaping rules for authority info access. +{ + const expectedInfoAccess = [ + { + text: 'OCSP - URI:"http://good.example.com/\\u000a' + + 'OCSP - URI:http://evil.example.com/"', + legacy: { + 'OCSP - URI': [ + 'http://good.example.com/\nOCSP - URI:http://evil.example.com/', + ], + }, + }, + { + text: 'CA Issuers - URI:"http://ca.example.com/\\u000a' + + 'OCSP - URI:http://evil.example.com"\n' + + 'OCSP - DNS:"good.example.com\\u000a' + + 'OCSP - URI:http://ca.nodejs.org/ca.cert"', + legacy: { + 'CA Issuers - URI': [ + 'http://ca.example.com/\nOCSP - URI:http://evil.example.com', + ], + 'OCSP - DNS': [ + 'good.example.com\nOCSP - URI:http://ca.nodejs.org/ca.cert', + ], + }, + }, + { + text: '1.3.9999.12.34 - URI:http://ca.example.com/', + legacy: { + '1.3.9999.12.34 - URI': [ + 'http://ca.example.com/', + ], + }, + }, + hasOpenSSL3 ? { + text: 'OCSP - othername: XmppAddr::good.example.com\n' + + 'OCSP - othername:\n' + + 'OCSP - othername: SRVName::abc123', + legacy: { + 'OCSP - othername': [ + ' XmppAddr::good.example.com', + '', + ' SRVName::abc123', + ], + }, + } : { + text: 'OCSP - othername:\n' + + 'OCSP - othername:\n' + + 'OCSP - othername:', + legacy: { + 'OCSP - othername': [ + '', + '', + '', + ], + }, + }, + hasOpenSSL3 ? { + text: 'OCSP - othername:" XmppAddr::good.example.com\\u0000abc123"', + legacy: { + 'OCSP - othername': [ + ' XmppAddr::good.example.com\0abc123', + ], + }, + } : { + text: 'OCSP - othername:', + legacy: { + 'OCSP - othername': [ + '', + ], + }, + }, + ]; + + const serverKey = fixtures.readSync('x509-escaping/server-key.pem', 'utf8'); + + for (let i = 0; i < expectedInfoAccess.length; i++) { + const pem = fixtures.readSync(`x509-escaping/info-${i}-cert.pem`, 'utf8'); + const expected = expectedInfoAccess[i]; + + // Test the subjectAltName property of the X509Certificate API. + const cert = new X509Certificate(pem); + assert.strictEqual(cert.infoAccess, + `${expected.text}${hasOpenSSL3 ? '' : '\n'}`); + + // Test that the certificate obtained by checkServerIdentity has the correct + // subjectaltname property. + const server = tls.createServer({ + key: serverKey, + cert: pem, + }, common.mustCall((conn) => { + conn.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: pem, + servername: 'example.com', + checkServerIdentity: (hostname, peerCert) => { + assert.strictEqual(hostname, 'example.com'); + assert.deepStrictEqual(peerCert.infoAccess, + Object.assign(Object.create(null), + expected.legacy)); + }, + }, common.mustCall()); + })); + } +} + +// Test escaping rules for the subject field. +{ + const expectedSubjects = [ + { + text: 'L=Somewhere\nCN=evil.example.com', + legacy: { + L: 'Somewhere', + CN: 'evil.example.com', + }, + }, + { + text: 'L=Somewhere\\00evil.example.com', + legacy: { + L: 'Somewhere\0evil.example.com', + }, + }, + { + text: 'L=Somewhere\\0ACN=evil.example.com', + legacy: { + L: 'Somewhere\nCN=evil.example.com' + }, + }, + { + text: 'L=Somewhere\\, CN = evil.example.com', + legacy: { + L: 'Somewhere, CN = evil.example.com' + }, + }, + { + text: 'L=Somewhere/CN=evil.example.com', + legacy: { + L: 'Somewhere/CN=evil.example.com' + }, + }, + { + text: 'L=München\\\\\\0ACN=evil.example.com', + legacy: { + L: 'München\\\nCN=evil.example.com' + } + }, + { + text: 'L=Somewhere + CN=evil.example.com', + legacy: { + L: 'Somewhere', + CN: 'evil.example.com', + } + }, + { + text: 'L=Somewhere \\+ CN=evil.example.com', + legacy: { + L: 'Somewhere + CN=evil.example.com' + } + }, + // Observe that the legacy representation cannot properly distinguish + // between multi-value RDNs and multiple single-value RDNs. + { + text: 'L=L1 + L=L2\nL=L3', + legacy: { + L: ['L1', 'L2', 'L3'] + }, + }, + { + text: 'L=L1\nL=L2\nL=L3', + legacy: { + L: ['L1', 'L2', 'L3'] + }, + }, + ]; + + const serverKey = fixtures.readSync('x509-escaping/server-key.pem', 'utf8'); + + for (let i = 0; i < expectedSubjects.length; i++) { + const pem = fixtures.readSync(`x509-escaping/subj-${i}-cert.pem`, 'utf8'); + const expected = expectedSubjects[i]; + + // Test the subject property of the X509Certificate API. + const cert = new X509Certificate(pem); + assert.strictEqual(cert.subject, expected.text); + // The issuer MUST be the same as the subject since the cert is self-signed. + assert.strictEqual(cert.issuer, expected.text); + + // Test that the certificate obtained by checkServerIdentity has the correct + // subject property. + const server = tls.createServer({ + key: serverKey, + cert: pem, + }, common.mustCall((conn) => { + conn.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: pem, + servername: 'example.com', + checkServerIdentity: (hostname, peerCert) => { + assert.strictEqual(hostname, 'example.com'); + const expectedObject = Object.assign(Object.create(null), + expected.legacy); + assert.deepStrictEqual(peerCert.subject, expectedObject); + // The issuer MUST be the same as the subject since the cert is + // self-signed. Otherwise, OpenSSL would have already rejected the + // certificate while connecting to the TLS server. + assert.deepStrictEqual(peerCert.issuer, expectedObject); + }, + }, common.mustCall()); + })); + } +} + +// The internal parsing logic must match the JSON specification exactly. +{ + // This list is partially based on V8's own JSON tests. + const invalidJSON = [ + '"\\a invalid escape"', + '"\\v invalid escape"', + '"\\\' invalid escape"', + '"\\x42 invalid escape"', + '"\\u202 invalid escape"', + '"\\012 invalid escape"', + '"Unterminated string', + '"Unterminated string\\"', + '"Unterminated string\\\\\\"', + '"\u0000 control character"', + '"\u001e control character"', + '"\u001f control character"', + ]; + + for (const invalidStringLiteral of invalidJSON) { + // Usually, checkServerIdentity returns an error upon verification failure. + // In this case, however, it should throw an error since this is not a + // verification error. Node.js itself will never produce invalid JSON string + // literals, so this can only happen when users construct invalid subject + // alternative name strings (that do not follow escaping rules). + assert.throws(() => { + tls.checkServerIdentity('example.com', { + subjectaltname: `DNS:${invalidStringLiteral}`, + }); + }, { + code: 'ERR_TLS_CERT_ALTNAME_FORMAT', + message: 'Invalid subject alternative name string' + }); + } +} + +// While node does not produce commas within SAN entries, it should parse them +// correctly (i.e., not simply split at commas). +{ + // Regardless of the quotes, splitting this SAN string at commas would + // cause checkServerIdentity to see 'DNS:b.example.com' and thus to accept + // the certificate for b.example.com. + const san = 'DNS:"a.example.com, DNS:b.example.com, DNS:c.example.com"'; + + // This is what node used to do, and which is not correct! + const hostname = 'b.example.com'; + assert.strictEqual(san.split(', ')[1], `DNS:${hostname}`); + + // The new implementation should parse the string correctly. + const err = tls.checkServerIdentity(hostname, { subjectaltname: san }); + assert(err); + assert.strictEqual(err.code, 'ERR_TLS_CERT_ALTNAME_INVALID'); + assert.strictEqual(err.message, 'Hostname/IP does not match certificate\'s ' + + 'altnames: Host: b.example.com. is not in ' + + 'the cert\'s altnames: DNS:"a.example.com, ' + + 'DNS:b.example.com, DNS:c.example.com"'); +} + +// The subject MUST be ignored if a dNSName subject alternative name exists. +{ + const key = fixtures.readKey('incorrect_san_correct_subject-key.pem'); + const cert = fixtures.readKey('incorrect_san_correct_subject-cert.pem'); + + // The hostname is the CN, but not a SAN entry. + const servername = 'good.example.com'; + const certX509 = new X509Certificate(cert); + assert.strictEqual(certX509.subject, `CN=${servername}`); + assert.strictEqual(certX509.subjectAltName, 'DNS:evil.example.com'); + + // The newer X509Certificate API allows customizing this behavior: + assert.strictEqual(certX509.checkHost(servername), servername); + assert.strictEqual(certX509.checkHost(servername, { subject: 'default' }), + undefined); + assert.strictEqual(certX509.checkHost(servername, { subject: 'always' }), + servername); + assert.strictEqual(certX509.checkHost(servername, { subject: 'never' }), + undefined); + + // Try connecting to a server that uses the self-signed certificate. + const server = tls.createServer({ key, cert }, common.mustNotCall()); + server.listen(common.mustCall(() => { + const { port } = server.address(); + const socket = tls.connect(port, { + ca: cert, + servername, + }, common.mustNotCall()); + socket.on('error', common.mustCall((err) => { + assert.strictEqual(err.code, 'ERR_TLS_CERT_ALTNAME_INVALID'); + assert.strictEqual(err.message, 'Hostname/IP does not match ' + + "certificate's altnames: Host: " + + "good.example.com. is not in the cert's" + + ' altnames: DNS:evil.example.com'); + })); + })).unref(); +} + +// The subject MUST NOT be ignored if no dNSName subject alternative name +// exists, even if other subject alternative names exist. +{ + const key = fixtures.readKey('irrelevant_san_correct_subject-key.pem'); + const cert = fixtures.readKey('irrelevant_san_correct_subject-cert.pem'); + + // The hostname is the CN, but there is no dNSName SAN entry. + const servername = 'good.example.com'; + const certX509 = new X509Certificate(cert); + assert.strictEqual(certX509.subject, `CN=${servername}`); + assert.strictEqual(certX509.subjectAltName, 'IP Address:1.2.3.4'); + + // The newer X509Certificate API allows customizing this behavior: + assert.strictEqual(certX509.checkHost(servername), servername); + assert.strictEqual(certX509.checkHost(servername, { subject: 'default' }), + servername); + assert.strictEqual(certX509.checkHost(servername, { subject: 'always' }), + servername); + assert.strictEqual(certX509.checkHost(servername, { subject: 'never' }), + undefined); + + // Connect to a server that uses the self-signed certificate. + const server = tls.createServer({ key, cert }, common.mustCall((socket) => { + socket.destroy(); + server.close(); + })).listen(common.mustCall(() => { + const { port } = server.address(); + tls.connect(port, { + ca: cert, + servername, + }, common.mustCall(() => { + // Do nothing, the server will close the connection. + })); + })); +} diff --git a/test/parallel/test-zlib-brotli-flush.js b/test/parallel/test-zlib-brotli-flush.js index 6883fb903a6478..fd730bfacd3189 100644 --- a/test/parallel/test-zlib-brotli-flush.js +++ b/test/parallel/test-zlib-brotli-flush.js @@ -16,7 +16,7 @@ deflater.write(chunk, function() { deflater.flush(function() { const bufs = []; let buf; - while (buf = deflater.read()) + while ((buf = deflater.read()) !== null) bufs.push(buf); actualFull = Buffer.concat(bufs); }); diff --git a/test/parallel/test-zlib-flush.js b/test/parallel/test-zlib-flush.js index 965cb5c45b13ea..557775d5091a46 100644 --- a/test/parallel/test-zlib-flush.js +++ b/test/parallel/test-zlib-flush.js @@ -23,7 +23,7 @@ deflater.write(chunk, function() { deflater.flush(function() { const bufs = []; let buf; - while (buf = deflater.read()) + while ((buf = deflater.read()) !== null) bufs.push(buf); actualFull = Buffer.concat(bufs); }); diff --git a/test/parallel/test-zlib-params.js b/test/parallel/test-zlib-params.js index 293ceecf8fa02a..30d4f133ad43bd 100644 --- a/test/parallel/test-zlib-params.js +++ b/test/parallel/test-zlib-params.js @@ -21,7 +21,7 @@ deflater.write(chunk1, function() { deflater.end(chunk2, function() { const bufs = []; let buf; - while (buf = deflater.read()) + while ((buf = deflater.read()) !== null) bufs.push(buf); actual = Buffer.concat(bufs); }); diff --git a/test/parallel/test-zlib-reset-before-write.js b/test/parallel/test-zlib-reset-before-write.js index 57bd7083803810..afa207f12c1b30 100644 --- a/test/parallel/test-zlib-reset-before-write.js +++ b/test/parallel/test-zlib-reset-before-write.js @@ -26,7 +26,7 @@ for (const fn of [ }) .on('data', (chunk) => output.push(chunk)) .on('end', common.mustCall( - () => assert.deepStrictEqual(Buffer.concat(output).toString(), 'abc'))); + () => assert.strictEqual(Buffer.concat(output).toString(), 'abc'))); fn(deflate, () => { fn(inflate, () => { diff --git a/test/parallel/test-zlib-unzip-one-byte-chunks.js b/test/parallel/test-zlib-unzip-one-byte-chunks.js index 3d3d9c37ff0198..51af5153a4dd48 100644 --- a/test/parallel/test-zlib-unzip-one-byte-chunks.js +++ b/test/parallel/test-zlib-unzip-one-byte-chunks.js @@ -16,10 +16,10 @@ const unzip = zlib.createUnzip() }) .on('data', (data) => resultBuffers.push(data)) .on('finish', common.mustCall(() => { - assert.deepStrictEqual(Buffer.concat(resultBuffers).toString(), 'abcdef', - `'${Buffer.concat(resultBuffers).toString()}' ` + - 'should match \'abcdef\' after ' + - 'zipping and unzipping'); + const unzipped = Buffer.concat(resultBuffers).toString(); + assert.strictEqual(unzipped, 'abcdef', + `'${unzipped}' should match 'abcdef' after zipping ` + + 'and unzipping'); })); for (let i = 0; i < data.length; i++) { diff --git a/test/pseudo-tty/test-assert-position-indicator.js b/test/pseudo-tty/test-assert-position-indicator.js index e56299d2744761..68baecbd7b445a 100644 --- a/test/pseudo-tty/test-assert-position-indicator.js +++ b/test/pseudo-tty/test-assert-position-indicator.js @@ -7,12 +7,12 @@ process.stderr.columns = 20; // Confirm that there is no position indicator. assert.throws( - () => { assert.deepStrictEqual('a'.repeat(30), 'a'.repeat(31)); }, + () => { assert.strictEqual('a'.repeat(30), 'a'.repeat(31)); }, (err) => !err.message.includes('^') ); // Confirm that there is a position indicator. assert.throws( - () => { assert.deepStrictEqual('aaaa', 'aaaaa'); }, + () => { assert.strictEqual('aaaa', 'aaaaa'); }, (err) => err.message.includes('^') ); diff --git a/test/pseudo-tty/test-trace-sigint.js b/test/pseudo-tty/test-trace-sigint.js index 8b539bfc88d7b8..4c715973e8bf93 100644 --- a/test/pseudo-tty/test-trace-sigint.js +++ b/test/pseudo-tty/test-trace-sigint.js @@ -26,5 +26,5 @@ function main() { // Deactivate colors even if the tty does support colors. process.env.NODE_DISABLE_COLORS = '1'; process.kill(process.pid, 'SIGINT'); - while (true) {} + while (true); } diff --git a/test/pummel/pummel.status b/test/pummel/pummel.status index 5ff3cdbe0e5a7a..73ed079f66a5f8 100644 --- a/test/pummel/pummel.status +++ b/test/pummel/pummel.status @@ -7,6 +7,8 @@ prefix pummel [true] # This section applies to all platforms [$system==win32] +# https://github.com/nodejs/node/issues/40728 +test-fs-watch-non-recursive: PASS,FLAKY [$system==linux] # https://github.com/nodejs/node/issues/38226 @@ -23,3 +25,5 @@ test-crypto-timing-safe-equal-benchmarks: PASS,FLAKY [$system==aix] [$system==ibmi] +# https://github.com/nodejs/node/issues/39683 +test-regress-GH-892: PASS, FLAKY diff --git a/test/pummel/test-fs-watch-non-recursive.js b/test/pummel/test-fs-watch-non-recursive.js index 49071a965f1737..e0ef20bef0b4be 100644 --- a/test/pummel/test-fs-watch-non-recursive.js +++ b/test/pummel/test-fs-watch-non-recursive.js @@ -28,7 +28,7 @@ if (common.isIBMi) { const path = require('path'); const fs = require('fs'); - +const assert = require('assert'); const tmpdir = require('../common/tmpdir'); tmpdir.refresh(); @@ -38,13 +38,14 @@ const filepath = path.join(testsubdir, 'watch.txt'); fs.mkdirSync(testsubdir, 0o700); -// Need a grace period, else the mkdirSync() above fires off an event. -setTimeout(function() { - const watcher = fs.watch(testDir, { persistent: true }, common.mustNotCall()); - setTimeout(function() { - fs.writeFileSync(filepath, 'test'); - }, 100); - setTimeout(function() { - watcher.close(); - }, 500); -}, 50); +const watcher = fs.watch(testDir, { persistent: true }, (event, filename) => { + // This function may be called with the directory depending on timing but + // must not be called with the file.. + assert.strictEqual(filename, 'testsubdir'); +}); +setTimeout(() => { + fs.writeFileSync(filepath, 'test'); +}, 100); +setTimeout(() => { + watcher.close(); +}, 500); diff --git a/test/pummel/test-policy-integrity-dep.js b/test/pummel/test-policy-integrity-dep.js new file mode 100644 index 00000000000000..ec58462335cd56 --- /dev/null +++ b/test/pummel/test-policy-integrity-dep.js @@ -0,0 +1,365 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + if (policyPath === tmpPolicyPath) { + fs.writeFileSync(tmpPolicyPath, manifestBody); + } + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + policyPath, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + process.kill(process.pid, 'SIGKILL'); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension, packageType) { + if (extension === '.js') { + return packageType === 'module' ? 'module' : 'commonjs'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageType: ['no-package-json', 'module', 'commonjs'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const effectivePackageType = + permutation.packageType === 'module' ? 'module' : 'commonjs'; + const parentFormat = fileExtensionFormat( + permutation.parentExtension, + effectivePackageType + ); + const depFormat = fileExtensionFormat( + permutation.depExtension, + effectivePackageType + ); + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + + const packageJSON = { + main: depPath, + type: permutation.packageType, + }; + if (permutation.packageType === 'no-field') { + delete packageJSON.type; + } + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + const hasParent = permutation.preloads.includes('parent'); + if (hasParent) { + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + } + + if (permutation.packageType !== 'no-package-json') { + let packageBody = JSON.stringify(packageJSON, null, 2); + let packageIntegrities = hash('sha256', packageBody); + if ( + permutation.parentExtension !== '.js' || + permutation.depExtension !== '.js' + ) { + // NO PACKAGE LOOKUP + continue; + } + if (permutation.packageIntegrity === 'invalid') { + packageJSON['//'] = 'INVALID INTEGRITY'; + packageBody = JSON.stringify(packageJSON, null, 2); + shouldSucceed = false; + } else if (permutation.packageIntegrity === 'missing') { + packageIntegrities = []; + shouldSucceed = false; + } else if (permutation.packageIntegrity !== 'match') { + throw new Error('unreachable'); + } + resources['./package.json'] = { + body: packageBody, + integrities: packageIntegrities, + }; + } + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath: depPath, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-parent-commonjs.js b/test/pummel/test-policy-integrity-parent-commonjs.js new file mode 100644 index 00000000000000..39febab73ee419 --- /dev/null +++ b/test/pummel/test-policy-integrity-parent-commonjs.js @@ -0,0 +1,352 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + willDeletePolicy, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + const cliPolicy = willDeletePolicy ? tmpPolicyPath : policyPath; + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + if (cliPolicy === tmpPolicyPath) { + fs.writeFileSync(tmpPolicyPath, manifestBody); + } + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + cliPolicy, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'commonjs'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const entryPath = parentPath; + const packageJSON = { + main: entryPath, + type: 'commonjs', + }; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + let packageBody = JSON.stringify(packageJSON, null, 2); + let packageIntegrities = hash('sha256', packageBody); + if ( + permutation.parentExtension !== '.js' || + permutation.depExtension !== '.js' + ) { + // NO PACKAGE LOOKUP + continue; + } + if (permutation.packageIntegrity === 'invalid') { + packageJSON['//'] = 'INVALID INTEGRITY'; + packageBody = JSON.stringify(packageJSON, null, 2); + shouldSucceed = false; + } else if (permutation.packageIntegrity === 'missing') { + packageIntegrities = []; + shouldSucceed = false; + } else if (permutation.packageIntegrity !== 'match') { + throw new Error('unreachable'); + } + resources['./package.json'] = { + body: packageBody, + integrities: packageIntegrities, + }; + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath, + willDeletePolicy: false, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-parent-module.js b/test/pummel/test-policy-integrity-parent-module.js new file mode 100644 index 00000000000000..e60a606ea32bbe --- /dev/null +++ b/test/pummel/test-policy-integrity-parent-module.js @@ -0,0 +1,352 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + willDeletePolicy, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + const cliPolicy = willDeletePolicy ? tmpPolicyPath : policyPath; + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + if (cliPolicy === tmpPolicyPath) { + fs.writeFileSync(tmpPolicyPath, manifestBody); + } + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + cliPolicy, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'module'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const entryPath = parentPath; + const packageJSON = { + main: entryPath, + type: 'module', + }; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + let packageBody = JSON.stringify(packageJSON, null, 2); + let packageIntegrities = hash('sha256', packageBody); + if ( + permutation.parentExtension !== '.js' || + permutation.depExtension !== '.js' + ) { + // NO PACKAGE LOOKUP + continue; + } + if (permutation.packageIntegrity === 'invalid') { + packageJSON['//'] = 'INVALID INTEGRITY'; + packageBody = JSON.stringify(packageJSON, null, 2); + shouldSucceed = false; + } else if (permutation.packageIntegrity === 'missing') { + packageIntegrities = []; + shouldSucceed = false; + } else if (permutation.packageIntegrity !== 'match') { + throw new Error('unreachable'); + } + resources['./package.json'] = { + body: packageBody, + integrities: packageIntegrities, + }; + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath, + willDeletePolicy: false, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-parent-no-package-json.js b/test/pummel/test-policy-integrity-parent-no-package-json.js new file mode 100644 index 00000000000000..f2208744447827 --- /dev/null +++ b/test/pummel/test-policy-integrity-parent-no-package-json.js @@ -0,0 +1,324 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + willDeletePolicy, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + const cliPolicy = willDeletePolicy ? tmpPolicyPath : policyPath; + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + if (cliPolicy === tmpPolicyPath) { + fs.writeFileSync(tmpPolicyPath, manifestBody); + } + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + cliPolicy, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'commonjs'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const entryPath = parentPath; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath, + willDeletePolicy: false, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-worker-commonjs.js b/test/pummel/test-policy-integrity-worker-commonjs.js new file mode 100644 index 00000000000000..22a7d762466046 --- /dev/null +++ b/test/pummel/test-policy-integrity-worker-commonjs.js @@ -0,0 +1,375 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; +const workerSpawningBody = ` + const path = require('path'); + const { Worker } = require('worker_threads'); + if (!process.env.PARENT_FILE) { + console.error( + 'missing required PARENT_FILE env to determine worker entry point' + ); + process.exit(33); + } + if (!process.env.DELETABLE_POLICY_FILE) { + console.error( + 'missing required DELETABLE_POLICY_FILE env to check reloading' + ); + process.exit(33); + } + const w = new Worker(path.resolve(process.env.PARENT_FILE)); + w.on('exit', (status) => process.exit(status === 0 ? 0 : 1)); +`; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + + fs.writeFileSync(tmpPolicyPath, manifestBody); + + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + tmpPolicyPath, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'commonjs'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const workerSpawnerPath = './worker-spawner.cjs'; + const packageJSON = { + main: workerSpawnerPath, + type: 'commonjs', + }; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + resources[workerSpawnerPath] = { + body: workerSpawningBody, + integrities: hash('sha256', workerSpawningBody), + }; + + + let packageBody = JSON.stringify(packageJSON, null, 2); + let packageIntegrities = hash('sha256', packageBody); + if ( + permutation.parentExtension !== '.js' || + permutation.depExtension !== '.js' + ) { + // NO PACKAGE LOOKUP + continue; + } + if (permutation.packageIntegrity === 'invalid') { + packageJSON['//'] = 'INVALID INTEGRITY'; + packageBody = JSON.stringify(packageJSON, null, 2); + shouldSucceed = false; + } else if (permutation.packageIntegrity === 'missing') { + packageIntegrities = []; + shouldSucceed = false; + } else if (permutation.packageIntegrity !== 'match') { + throw new Error('unreachable'); + } + resources['./package.json'] = { + body: packageBody, + integrities: packageIntegrities, + }; + + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath: workerSpawnerPath, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-worker-module.js b/test/pummel/test-policy-integrity-worker-module.js new file mode 100644 index 00000000000000..e5d4e4cd45d300 --- /dev/null +++ b/test/pummel/test-policy-integrity-worker-module.js @@ -0,0 +1,373 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; +const workerSpawningBody = ` + const path = require('path'); + const { Worker } = require('worker_threads'); + if (!process.env.PARENT_FILE) { + console.error( + 'missing required PARENT_FILE env to determine worker entry point' + ); + process.exit(33); + } + if (!process.env.DELETABLE_POLICY_FILE) { + console.error( + 'missing required DELETABLE_POLICY_FILE env to check reloading' + ); + process.exit(33); + } + const w = new Worker(path.resolve(process.env.PARENT_FILE)); + w.on('exit', (status) => process.exit(status === 0 ? 0 : 1)); +`; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + + fs.writeFileSync(tmpPolicyPath, manifestBody); + + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + tmpPolicyPath, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'module'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const workerSpawnerPath = './worker-spawner.cjs'; + const packageJSON = { + main: workerSpawnerPath, + type: 'module', + }; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + resources[workerSpawnerPath] = { + body: workerSpawningBody, + integrities: hash('sha256', workerSpawningBody), + }; + + let packageBody = JSON.stringify(packageJSON, null, 2); + let packageIntegrities = hash('sha256', packageBody); + if ( + permutation.parentExtension !== '.js' || + permutation.depExtension !== '.js' + ) { + // NO PACKAGE LOOKUP + continue; + } + if (permutation.packageIntegrity === 'invalid') { + packageJSON['//'] = 'INVALID INTEGRITY'; + packageBody = JSON.stringify(packageJSON, null, 2); + shouldSucceed = false; + } else if (permutation.packageIntegrity === 'missing') { + packageIntegrities = []; + shouldSucceed = false; + } else if (permutation.packageIntegrity !== 'match') { + throw new Error('unreachable'); + } + resources['./package.json'] = { + body: packageBody, + integrities: packageIntegrities, + }; + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath: workerSpawnerPath, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity-worker-no-package-json.js b/test/pummel/test-policy-integrity-worker-no-package-json.js new file mode 100644 index 00000000000000..808687f40ea219 --- /dev/null +++ b/test/pummel/test-policy-integrity-worker-no-package-json.js @@ -0,0 +1,345 @@ +'use strict'; + +const common = require('../common'); + +if (!common.hasCrypto) { + common.skip('missing crypto'); +} + +if (process.config.variables.arm_version === '7') { + common.skip('Too slow for armv7 bots'); +} + +common.requireNoPackageJSONAbove(); + +const { debuglog } = require('util'); +const debug = debuglog('test'); +const tmpdir = require('../common/tmpdir'); +const assert = require('assert'); +const { spawnSync, spawn } = require('child_process'); +const crypto = require('crypto'); +const fs = require('fs'); +const path = require('path'); +const { pathToFileURL } = require('url'); + +const cpus = require('os').cpus().length; + +function hash(algo, body) { + const values = []; + { + const h = crypto.createHash(algo); + h.update(body); + values.push(`${algo}-${h.digest('base64')}`); + } + { + const h = crypto.createHash(algo); + h.update(body.replace('\n', '\r\n')); + values.push(`${algo}-${h.digest('base64')}`); + } + return values; +} + +const policyPath = './policy.json'; +const parentBody = { + commonjs: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + require(process.env.DEP_FILE) + `, + module: ` + if (!process.env.DEP_FILE) { + console.error( + 'missing required DEP_FILE env to determine dependency' + ); + process.exit(33); + } + import(process.env.DEP_FILE) + `, +}; +const workerSpawningBody = ` + const path = require('path'); + const { Worker } = require('worker_threads'); + if (!process.env.PARENT_FILE) { + console.error( + 'missing required PARENT_FILE env to determine worker entry point' + ); + process.exit(33); + } + if (!process.env.DELETABLE_POLICY_FILE) { + console.error( + 'missing required DELETABLE_POLICY_FILE env to check reloading' + ); + process.exit(33); + } + const w = new Worker(path.resolve(process.env.PARENT_FILE)); + w.on('exit', (status) => process.exit(status === 0 ? 0 : 1)); +`; + +let nextTestId = 1; +function newTestId() { + return nextTestId++; +} +tmpdir.refresh(); +common.requireNoPackageJSONAbove(tmpdir.path); + +let spawned = 0; +const toSpawn = []; +function queueSpawn(opts) { + toSpawn.push(opts); + drainQueue(); +} + +function drainQueue() { + if (spawned > cpus) { + return; + } + if (toSpawn.length) { + const config = toSpawn.shift(); + const { + shouldSucceed, + preloads, + entryPath, + onError, + resources, + parentPath, + depPath, + } = config; + const testId = newTestId(); + const configDirPath = path.join( + tmpdir.path, + `test-policy-integrity-permutation-${testId}` + ); + const tmpPolicyPath = path.join( + tmpdir.path, + `deletable-policy-${testId}.json` + ); + + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + fs.mkdirSync(configDirPath, { recursive: true }); + const manifest = { + onerror: onError, + resources: {}, + }; + const manifestPath = path.join(configDirPath, policyPath); + for (const [resourcePath, { body, integrities }] of Object.entries( + resources + )) { + const filePath = path.join(configDirPath, resourcePath); + if (integrities !== null) { + manifest.resources[pathToFileURL(filePath).href] = { + integrity: integrities.join(' '), + dependencies: true, + }; + } + fs.writeFileSync(filePath, body, 'utf8'); + } + const manifestBody = JSON.stringify(manifest); + fs.writeFileSync(manifestPath, manifestBody); + + fs.writeFileSync(tmpPolicyPath, manifestBody); + + const spawnArgs = [ + process.execPath, + [ + '--unhandled-rejections=strict', + '--experimental-policy', + tmpPolicyPath, + ...preloads.flatMap((m) => ['-r', m]), + entryPath, + '--', + testId, + configDirPath, + ], + { + env: { + ...process.env, + DELETABLE_POLICY_FILE: tmpPolicyPath, + PARENT_FILE: parentPath, + DEP_FILE: depPath, + }, + cwd: configDirPath, + stdio: 'pipe', + }, + ]; + spawned++; + const stdout = []; + const stderr = []; + const child = spawn(...spawnArgs); + child.stdout.on('data', (d) => stdout.push(d)); + child.stderr.on('data', (d) => stderr.push(d)); + child.on('exit', (status, signal) => { + spawned--; + try { + if (shouldSucceed) { + assert.strictEqual(status, 0); + } else { + assert.notStrictEqual(status, 0); + } + } catch (e) { + console.log( + 'permutation', + testId, + 'failed' + ); + console.dir( + { config, manifest }, + { depth: null } + ); + console.log('exit code:', status, 'signal:', signal); + console.log(`stdout: ${Buffer.concat(stdout)}`); + console.log(`stderr: ${Buffer.concat(stderr)}`); + throw e; + } + fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); + drainQueue(); + }); + } +} + +{ + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', policyPath, '--experimental-policy', policyPath], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); +} +{ + const enoentFilepath = path.join(tmpdir.path, 'enoent'); + try { + fs.unlinkSync(enoentFilepath); + } catch { + // Continue regardless of error. + } + const { status } = spawnSync( + process.execPath, + ['--experimental-policy', enoentFilepath, '-e', ''], + { + stdio: 'pipe', + } + ); + assert.notStrictEqual(status, 0, 'Should not allow missing policies'); +} + +/** + * @template {Record>} T + * @param {T} configurations + * @param {object} path + * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} + */ +function permutations(configurations, path = {}) { + const keys = Object.keys(configurations); + if (keys.length === 0) { + return path; + } + const config = keys[0]; + const { [config]: values, ...otherConfigs } = configurations; + return values.flatMap((value) => { + return permutations(otherConfigs, { ...path, [config]: value }); + }); +} +const tests = new Set(); +function fileExtensionFormat(extension) { + if (extension === '.js') { + return 'commonjs'; + } else if (extension === '.mjs') { + return 'module'; + } else if (extension === '.cjs') { + return 'commonjs'; + } + throw new Error('unknown format ' + extension); +} +for (const permutation of permutations({ + preloads: [[], ['parent'], ['dep']], + onError: ['log', 'exit'], + parentExtension: ['.js', '.mjs', '.cjs'], + parentIntegrity: ['match', 'invalid', 'missing'], + depExtension: ['.js', '.mjs', '.cjs'], + depIntegrity: ['match', 'invalid', 'missing'], + packageIntegrity: ['match', 'invalid', 'missing'], +})) { + let shouldSucceed = true; + const parentPath = `./parent${permutation.parentExtension}`; + const parentFormat = fileExtensionFormat(permutation.parentExtension); + const depFormat = fileExtensionFormat(permutation.depExtension); + + // non-sensical attempt to require ESM + if (depFormat === 'module' && parentFormat === 'commonjs') { + continue; + } + const depPath = `./dep${permutation.depExtension}`; + const workerSpawnerPath = './worker-spawner.cjs'; + + const resources = { + [depPath]: { + body: '', + integrities: hash('sha256', ''), + }, + }; + if (permutation.depIntegrity === 'invalid') { + resources[depPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.depIntegrity === 'missing') { + resources[depPath].integrities = null; + shouldSucceed = false; + } else if (permutation.depIntegrity !== 'match') { + throw new Error('unreachable'); + } + if (parentFormat !== 'commonjs') { + permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); + } + + resources[parentPath] = { + body: parentBody[parentFormat], + integrities: hash('sha256', parentBody[parentFormat]), + }; + if (permutation.parentIntegrity === 'invalid') { + resources[parentPath].body += '\n// INVALID INTEGRITY'; + shouldSucceed = false; + } else if (permutation.parentIntegrity === 'missing') { + resources[parentPath].integrities = null; + shouldSucceed = false; + } else if (permutation.parentIntegrity !== 'match') { + throw new Error('unreachable'); + } + + resources[workerSpawnerPath] = { + body: workerSpawningBody, + integrities: hash('sha256', workerSpawningBody), + }; + + if (permutation.onError === 'log') { + shouldSucceed = true; + } + tests.add( + JSON.stringify({ + onError: permutation.onError, + shouldSucceed, + entryPath: workerSpawnerPath, + preloads: permutation.preloads + .map((_) => { + return { + '': '', + 'parent': parentFormat === 'commonjs' ? parentPath : '', + 'dep': depFormat === 'commonjs' ? depPath : '', + }[_]; + }) + .filter(Boolean), + parentPath, + depPath, + resources, + }) + ); +} +debug(`spawning ${tests.size} policy integrity permutations`); + +for (const config of tests) { + const parsed = JSON.parse(config); + queueSpawn(parsed); +} diff --git a/test/pummel/test-policy-integrity.js b/test/pummel/test-policy-integrity.js deleted file mode 100644 index 1626a4a4158f90..00000000000000 --- a/test/pummel/test-policy-integrity.js +++ /dev/null @@ -1,399 +0,0 @@ -'use strict'; - -const common = require('../common'); - -if (!common.hasCrypto) { - common.skip('missing crypto'); -} - -if (process.config.variables.arm_version === '7') { - common.skip('Too slow for armv7 bots'); -} - -common.requireNoPackageJSONAbove(); - -const { debuglog } = require('util'); -const debug = debuglog('test'); -const tmpdir = require('../common/tmpdir'); -const assert = require('assert'); -const { spawnSync, spawn } = require('child_process'); -const crypto = require('crypto'); -const fs = require('fs'); -const path = require('path'); -const { pathToFileURL } = require('url'); - -const cpus = require('os').cpus().length; - -function hash(algo, body) { - const values = []; - { - const h = crypto.createHash(algo); - h.update(body); - values.push(`${algo}-${h.digest('base64')}`); - } - { - const h = crypto.createHash(algo); - h.update(body.replace('\n', '\r\n')); - values.push(`${algo}-${h.digest('base64')}`); - } - return values; -} - -const policyPath = './policy.json'; -const parentBody = { - commonjs: ` - if (!process.env.DEP_FILE) { - console.error( - 'missing required DEP_FILE env to determine dependency' - ); - process.exit(33); - } - require(process.env.DEP_FILE) - `, - module: ` - if (!process.env.DEP_FILE) { - console.error( - 'missing required DEP_FILE env to determine dependency' - ); - process.exit(33); - } - import(process.env.DEP_FILE) - `, -}; -const workerSpawningBody = ` - const path = require('path'); - const { Worker } = require('worker_threads'); - if (!process.env.PARENT_FILE) { - console.error( - 'missing required PARENT_FILE env to determine worker entry point' - ); - process.exit(33); - } - if (!process.env.DELETABLE_POLICY_FILE) { - console.error( - 'missing required DELETABLE_POLICY_FILE env to check reloading' - ); - process.exit(33); - } - const w = new Worker(path.resolve(process.env.PARENT_FILE)); - w.on('exit', (status) => process.exit(status === 0 ? 0 : 1)); -`; - -let nextTestId = 1; -function newTestId() { - return nextTestId++; -} -tmpdir.refresh(); -common.requireNoPackageJSONAbove(tmpdir.path); - -let spawned = 0; -const toSpawn = []; -function queueSpawn(opts) { - toSpawn.push(opts); - drainQueue(); -} - -function drainQueue() { - if (spawned > cpus) { - return; - } - if (toSpawn.length) { - const config = toSpawn.shift(); - const { - shouldSucceed, // = (() => { throw new Error('required')})(), - preloads, // = (() =>{ throw new Error('required')})(), - entryPath, // = (() => { throw new Error('required')})(), - willDeletePolicy, // = (() => { throw new Error('required')})(), - onError, // = (() => { throw new Error('required')})(), - resources, // = (() => { throw new Error('required')})(), - parentPath, - depPath, - } = config; - const testId = newTestId(); - const configDirPath = path.join( - tmpdir.path, - `test-policy-integrity-permutation-${testId}` - ); - const tmpPolicyPath = path.join( - tmpdir.path, - `deletable-policy-${testId}.json` - ); - const cliPolicy = willDeletePolicy ? tmpPolicyPath : policyPath; - fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); - fs.mkdirSync(configDirPath, { recursive: true }); - const manifest = { - onerror: onError, - resources: {}, - }; - const manifestPath = path.join(configDirPath, policyPath); - for (const [resourcePath, { body, integrities }] of Object.entries( - resources - )) { - const filePath = path.join(configDirPath, resourcePath); - if (integrities !== null) { - manifest.resources[pathToFileURL(filePath).href] = { - integrity: integrities.join(' '), - dependencies: true, - }; - } - fs.writeFileSync(filePath, body, 'utf8'); - } - const manifestBody = JSON.stringify(manifest); - fs.writeFileSync(manifestPath, manifestBody); - if (cliPolicy === tmpPolicyPath) { - fs.writeFileSync(tmpPolicyPath, manifestBody); - } - const spawnArgs = [ - process.execPath, - [ - '--unhandled-rejections=strict', - '--experimental-policy', - cliPolicy, - ...preloads.flatMap((m) => ['-r', m]), - entryPath, - '--', - testId, - configDirPath, - ], - { - env: { - ...process.env, - DELETABLE_POLICY_FILE: tmpPolicyPath, - PARENT_FILE: parentPath, - DEP_FILE: depPath, - }, - cwd: configDirPath, - stdio: 'pipe', - }, - ]; - spawned++; - const stdout = []; - const stderr = []; - const child = spawn(...spawnArgs); - child.stdout.on('data', (d) => stdout.push(d)); - child.stderr.on('data', (d) => stderr.push(d)); - child.on('exit', (status, signal) => { - spawned--; - try { - if (shouldSucceed) { - assert.strictEqual(status, 0); - } else { - assert.notStrictEqual(status, 0); - } - } catch (e) { - console.log( - 'permutation', - testId, - 'failed' - ); - console.dir( - { config, manifest }, - { depth: null } - ); - console.log('exit code:', status, 'signal:', signal); - console.log(`stdout: ${Buffer.concat(stdout)}`); - console.log(`stderr: ${Buffer.concat(stderr)}`); - throw e; - } - fs.rmSync(configDirPath, { maxRetries: 3, recursive: true, force: true }); - drainQueue(); - }); - } -} - -{ - const { status } = spawnSync( - process.execPath, - ['--experimental-policy', policyPath, '--experimental-policy', policyPath], - { - stdio: 'pipe', - } - ); - assert.notStrictEqual(status, 0, 'Should not allow multiple policies'); -} -{ - const enoentFilepath = path.join(tmpdir.path, 'enoent'); - try { - fs.unlinkSync(enoentFilepath); - } catch { } - const { status } = spawnSync( - process.execPath, - ['--experimental-policy', enoentFilepath, '-e', ''], - { - stdio: 'pipe', - } - ); - assert.notStrictEqual(status, 0, 'Should not allow missing policies'); -} - -/** - * @template {Record>} T - * @param {T} configurations - * @param {object} path - * @returns {Array<{[key: keyof T]: T[keyof configurations]}>} - */ -function permutations(configurations, path = {}) { - const keys = Object.keys(configurations); - if (keys.length === 0) { - return path; - } - const config = keys[0]; - const { [config]: values, ...otherConfigs } = configurations; - return values.flatMap((value) => { - return permutations(otherConfigs, { ...path, [config]: value }); - }); -} -const tests = new Set(); -function fileExtensionFormat(extension, packageType) { - if (extension === '.js') { - return packageType === 'module' ? 'module' : 'commonjs'; - } else if (extension === '.mjs') { - return 'module'; - } else if (extension === '.cjs') { - return 'commonjs'; - } - throw new Error('unknown format ' + extension); -} -for (const permutation of permutations({ - entry: ['worker', 'parent', 'dep'], - preloads: [[], ['parent'], ['dep']], - onError: ['log', 'exit'], - parentExtension: ['.js', '.mjs', '.cjs'], - parentIntegrity: ['match', 'invalid', 'missing'], - depExtension: ['.js', '.mjs', '.cjs'], - depIntegrity: ['match', 'invalid', 'missing'], - packageType: ['no-package-json', 'module', 'commonjs'], - packageIntegrity: ['match', 'invalid', 'missing'], -})) { - let shouldSucceed = true; - const parentPath = `./parent${permutation.parentExtension}`; - const effectivePackageType = - permutation.packageType === 'module' ? 'module' : 'commonjs'; - const parentFormat = fileExtensionFormat( - permutation.parentExtension, - effectivePackageType - ); - const depFormat = fileExtensionFormat( - permutation.depExtension, - effectivePackageType - ); - // non-sensical attempt to require ESM - if (depFormat === 'module' && parentFormat === 'commonjs') { - continue; - } - const depPath = `./dep${permutation.depExtension}`; - const workerSpawnerPath = './worker-spawner.cjs'; - const entryPath = { - dep: depPath, - parent: parentPath, - worker: workerSpawnerPath, - }[permutation.entry]; - const packageJSON = { - main: entryPath, - type: permutation.packageType, - }; - if (permutation.packageType === 'no-field') { - delete packageJSON.type; - } - const resources = { - [depPath]: { - body: '', - integrities: hash('sha256', ''), - }, - }; - if (permutation.depIntegrity === 'invalid') { - resources[depPath].body += '\n// INVALID INTEGRITY'; - shouldSucceed = false; - } else if (permutation.depIntegrity === 'missing') { - resources[depPath].integrities = null; - shouldSucceed = false; - } else if (permutation.depIntegrity === 'match') { - } else { - throw new Error('unreachable'); - } - if (parentFormat !== 'commonjs') { - permutation.preloads = permutation.preloads.filter((_) => _ !== 'parent'); - } - const hasParent = - permutation.entry !== 'dep' || permutation.preloads.includes('parent'); - if (hasParent) { - resources[parentPath] = { - body: parentBody[parentFormat], - integrities: hash('sha256', parentBody[parentFormat]), - }; - if (permutation.parentIntegrity === 'invalid') { - resources[parentPath].body += '\n// INVALID INTEGRITY'; - shouldSucceed = false; - } else if (permutation.parentIntegrity === 'missing') { - resources[parentPath].integrities = null; - shouldSucceed = false; - } else if (permutation.parentIntegrity === 'match') { - } else { - throw new Error('unreachable'); - } - } - if (permutation.entry === 'worker') { - resources[workerSpawnerPath] = { - body: workerSpawningBody, - integrities: hash('sha256', workerSpawningBody), - }; - } - if (permutation.packageType !== 'no-package-json') { - let packageBody = JSON.stringify(packageJSON, null, 2); - let packageIntegrities = hash('sha256', packageBody); - if ( - permutation.parentExtension !== '.js' || - permutation.depExtension !== '.js' - ) { - // NO PACKAGE LOOKUP - continue; - } - if (permutation.packageIntegrity === 'invalid') { - packageJSON['//'] = 'INVALID INTEGRITY'; - packageBody = JSON.stringify(packageJSON, null, 2); - shouldSucceed = false; - } else if (permutation.packageIntegrity === 'missing') { - packageIntegrities = []; - shouldSucceed = false; - } else if (permutation.packageIntegrity === 'match') { - } else { - throw new Error('unreachable'); - } - resources['./package.json'] = { - body: packageBody, - integrities: packageIntegrities, - }; - } - const willDeletePolicy = permutation.entry === 'worker'; - if (permutation.onError === 'log') { - shouldSucceed = true; - } - tests.add( - JSON.stringify({ - // hasParent, - // original: permutation, - onError: permutation.onError, - shouldSucceed, - entryPath, - willDeletePolicy, - preloads: permutation.preloads - .map((_) => { - return { - '': '', - 'parent': parentFormat === 'commonjs' ? parentPath : '', - 'dep': depFormat === 'commonjs' ? depPath : '', - }[_]; - }) - .filter(Boolean), - parentPath, - depPath, - resources, - }) - ); -} -debug(`spawning ${tests.size} policy integrity permutations`); - -for (const config of tests) { - const parsed = JSON.parse(config); - queueSpawn(parsed); -} diff --git a/test/pummel/test-vm-memleak.js b/test/pummel/test-vm-memleak.js index 419b4171d226e9..be29dfe867f293 100644 --- a/test/pummel/test-vm-memleak.js +++ b/test/pummel/test-vm-memleak.js @@ -39,6 +39,7 @@ const interval = setInterval(function() { try { vm.runInNewContext('throw 1;'); } catch { + // Continue regardless of error. } global.gc(); diff --git a/test/report/test-report-uv-handles.js b/test/report/test-report-uv-handles.js index 6a60aa4c4bcc84..daa2cc2c8f5802 100644 --- a/test/report/test-report-uv-handles.js +++ b/test/report/test-report-uv-handles.js @@ -161,10 +161,10 @@ if (process.argv[2] === 'child') { child.stdout.on('data', (chunk) => { stdout += chunk; }); child.on('exit', common.mustCall((code, signal) => { assert.strictEqual(stderr.trim(), ''); - assert.deepStrictEqual(code, 0, 'Process exited unexpectedly with code: ' + - `${code}`); - assert.deepStrictEqual(signal, null, 'Process should have exited cleanly,' + - ` but did not: ${signal}`); + assert.strictEqual(code, 0, 'Process exited unexpectedly with code: ' + + `${code}`); + assert.strictEqual(signal, null, 'Process should have exited cleanly,' + + ` but did not: ${signal}`); const reports = helper.findReports(child.pid, tmpdir.path); assert.deepStrictEqual(reports, [], report_msg, reports); diff --git a/test/sequential/sequential.status b/test/sequential/sequential.status index 07fbc03ae3faec..56f9667d7a3058 100644 --- a/test/sequential/sequential.status +++ b/test/sequential/sequential.status @@ -27,5 +27,12 @@ test-buffer-creation-regression: SKIP test-buffer-creation-regression: SKIP # https://github.com/nodejs/node/pull/30819 test-perf-hooks: SKIP +# https://github.com/nodejs/node/issues/39683 +test-tls-psk-client: PASS, FLAKY +test-tls-securepair-client: PASS, FLAKY [$arch==arm] + +[$arch==s390x] +# https://github.com/nodejs/node/issues/41286 +test-performance-eventloopdelay: PASS, FLAKY diff --git a/test/sequential/test-child-process-execsync.js b/test/sequential/test-child-process-execsync.js index bc589efb8b5b64..5512eaeed7af35 100644 --- a/test/sequential/test-child-process-execsync.js +++ b/test/sequential/test-child-process-execsync.js @@ -60,7 +60,7 @@ try { assert.ok(caught, 'execSync should throw'); const end = Date.now() - start; assert(end < SLEEP); - assert(err.status > 128 || err.signal); + assert(err.status > 128 || err.signal, `status: ${err.status}, signal: ${err.signal}`); } assert.throws(function() { diff --git a/test/sequential/test-cli-syntax-good.js b/test/sequential/test-cli-syntax-good.js index 262c30ccad6bce..44051c7a4a3617 100644 --- a/test/sequential/test-cli-syntax-good.js +++ b/test/sequential/test-cli-syntax-good.js @@ -17,6 +17,7 @@ const syntaxArgs = [ [ 'syntax/good_syntax.js', 'syntax/good_syntax', + 'syntax/good_syntax.mjs', 'syntax/good_syntax_shebang.js', 'syntax/good_syntax_shebang', 'syntax/illegal_if_not_wrapped.js', diff --git a/test/sequential/test-debugger-exceptions.js b/test/sequential/test-debugger-exceptions.js index 9b1163316268c7..f20f35d4808a47 100644 --- a/test/sequential/test-debugger-exceptions.js +++ b/test/sequential/test-debugger-exceptions.js @@ -27,8 +27,7 @@ const path = require('path'); }) // Making sure it will die by default: .then(() => cli.command('c')) - // TODO: Remove FATAL ERROR once node doesn't show a FATAL ERROR anymore. - .then(() => cli.waitFor(/disconnect|FATAL ERROR/)) + .then(() => cli.waitFor(/disconnect/)) // Next run: With `breakOnException` it pauses in both places. .then(() => cli.stepCommand('r')) @@ -66,9 +65,7 @@ const path = require('path'); assert.deepStrictEqual(cli.breakInfo, { filename: script, line: 1 }); }) .then(() => cli.command('c')) - // TODO: Remove FATAL ERROR once node doesn't show a FATAL ERROR anymore - .then(() => cli.waitFor(/disconnect|FATAL ERROR/)) - + .then(() => cli.waitFor(/disconnect/)) .then(() => cli.quit()) .then(null, onFatal); } diff --git a/test/sequential/test-debugger-exec.js b/test/sequential/test-debugger-exec.js index 68a9b37d09d6aa..4057dd03785e7c 100644 --- a/test/sequential/test-debugger-exec.js +++ b/test/sequential/test-debugger-exec.js @@ -27,6 +27,14 @@ const assert = require('assert'); 'works w/o paren' ); }) + .then(() => cli.command('p [typeof heartbeat, typeof process.exit]')) + .then(() => { + assert.match( + cli.output, + /\[ 'function', 'function' \]/, + 'works w/o paren, short' + ); + }) .then(() => cli.command('repl')) .then(() => { assert.match( @@ -54,6 +62,14 @@ const assert = require('assert'); 'works w/ paren' ); }) + .then(() => cli.command('p("[typeof heartbeat, typeof process.exit]")')) + .then(() => { + assert.match( + cli.output, + /\[ 'function', 'function' \]/, + 'works w/ paren, short' + ); + }) .then(() => cli.command('cont')) .then(() => cli.command('exec [typeof heartbeat, typeof process.exit]')) .then(() => { diff --git a/test/sequential/test-debugger-pid.js b/test/sequential/test-debugger-pid.js index 402c1f86dd4ed9..0056113ecaecd3 100644 --- a/test/sequential/test-debugger-pid.js +++ b/test/sequential/test-debugger-pid.js @@ -44,7 +44,7 @@ function launchTarget(...args) { .then(() => { assert.match( cli.output, - /> 3 \+\+x;/, + /> 3 {3}\+\+x;/, 'marks the 3rd line'); }) .then(() => cleanup()) diff --git a/test/sequential/test-diagnostic-dir-heap-prof.js b/test/sequential/test-diagnostic-dir-heap-prof.js index 10ce58f72b1d4b..0ec68ab49efdf7 100644 --- a/test/sequential/test-diagnostic-dir-heap-prof.js +++ b/test/sequential/test-diagnostic-dir-heap-prof.js @@ -44,7 +44,7 @@ function verifyFrames(output, file, func) { console.log(output.stderr.toString()); console.log(roots); } - assert.notDeepStrictEqual(frame, undefined); + assert.notStrictEqual(frame, undefined); } const kHeapProfInterval = 128; diff --git a/test/parallel/test-gc-http-client-onerror.js b/test/sequential/test-gc-http-client-onerror.js similarity index 100% rename from test/parallel/test-gc-http-client-onerror.js rename to test/sequential/test-gc-http-client-onerror.js diff --git a/test/sequential/test-gc-http-client.js b/test/sequential/test-gc-http-client.js index 2eea09652a50d9..7b9f9865ea9945 100644 --- a/test/sequential/test-gc-http-client.js +++ b/test/sequential/test-gc-http-client.js @@ -5,27 +5,27 @@ const common = require('../common'); const onGC = require('../common/ongc'); +const cpus = require('os').cpus().length; + function serverHandler(req, res) { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Hello World\n'); } const http = require('http'); -const todo = 300; +let createClients = true; let done = 0; let count = 0; let countGC = 0; -console.log(`We should do ${todo} requests`); - const server = http.createServer(serverHandler); server.listen(0, common.mustCall(() => { - for (let i = 0; i < 15; i++) - getall(); + for (let i = 0; i < cpus; i++) + getAll(); })); -function getall() { - if (count === todo) +function getAll() { + if (!createClients) return; const req = http.get({ @@ -37,7 +37,7 @@ function getall() { count++; onGC(req, { ongc }); - setImmediate(getall); + setImmediate(getAll); } function cb(res) { @@ -49,11 +49,19 @@ function ongc() { countGC++; } -setInterval(status, 100).unref(); +setImmediate(status); function status() { - global.gc(); - console.log('Done: %d/%d', done, todo); - console.log('Collected: %d/%d', countGC, count); - if (countGC === todo) server.close(); + if (done > 0) { + createClients = false; + global.gc(); + console.log(`done/collected/total: ${done}/${countGC}/${count}`); + if (countGC === count) { + server.close(); + } else { + setImmediate(status); + } + } else { + setImmediate(status); + } } diff --git a/test/sequential/test-heap-prof.js b/test/sequential/test-heap-prof.js index cf70fa926091a6..1dda8f367433e8 100644 --- a/test/sequential/test-heap-prof.js +++ b/test/sequential/test-heap-prof.js @@ -51,7 +51,7 @@ function verifyFrames(output, file, func) { console.log(output.stderr.toString()); console.log(roots); } - assert.notDeepStrictEqual(frame, undefined); + assert.notStrictEqual(frame, undefined); } // We need to set --heap-prof-interval to a small enough value to make diff --git a/test/sequential/test-net-connect-econnrefused.js b/test/sequential/test-net-connect-econnrefused.js index 4fd4f8b6943e3c..7dec16d2326dd1 100644 --- a/test/sequential/test-net-connect-econnrefused.js +++ b/test/sequential/test-net-connect-econnrefused.js @@ -54,9 +54,8 @@ function pummel() { function check() { setTimeout(common.mustCall(function() { - assert.strictEqual(process._getActiveRequests().length, 0); - const activeHandles = process._getActiveHandles(); - assert.ok(activeHandles.every((val) => val.constructor.name !== 'Socket')); + assert.strictEqual(process.getActiveResourcesInfo().filter( + (type) => type === 'TCPWRAP').length, 0); }), 0); } diff --git a/test/sequential/test-net-response-size.js b/test/sequential/test-net-response-size.js index c5d7e9b600e05d..c2dd8e0e95c1d7 100644 --- a/test/sequential/test-net-response-size.js +++ b/test/sequential/test-net-response-size.js @@ -65,7 +65,7 @@ if (process.argv[2] === 'server') { // Block the event loop for 1 second const start = (new Date()).getTime(); - while ((new Date()).getTime() < start + 1000) {} + while ((new Date()).getTime() < start + 1000); client.write(alittle); diff --git a/test/sequential/test-tls-psk-client.js b/test/sequential/test-tls-psk-client.js index af9629dab9dc23..24d38d042938c0 100644 --- a/test/sequential/test-tls-psk-client.js +++ b/test/sequential/test-tls-psk-client.js @@ -33,7 +33,7 @@ const cleanUp = (err) => { process.exitCode = err ? 1 : 0; }; -const timeout = setTimeout(() => cleanUp('Timeouted'), 5000); +const timeout = setTimeout(() => cleanUp('Timed out'), 5000); function waitForPort(port, cb) { const socket = net.connect(common.PORT, () => { diff --git a/test/sequential/test-tls-securepair-client.js b/test/sequential/test-tls-securepair-client.js index d5e2b7b7d2b08d..c9215c43ad6ddb 100644 --- a/test/sequential/test-tls-securepair-client.js +++ b/test/sequential/test-tls-securepair-client.js @@ -77,7 +77,7 @@ function test(keyPath, certPath, check, next) { serverStdoutBuffer += s; console.log(state); switch (state) { - case 'WAIT-ACCEPT': + case 'WAIT-ACCEPT': { const matches = serverStdoutBuffer.match(/ACCEPT .*?:(\d+)/); if (matches) { const port = matches[1]; @@ -85,7 +85,7 @@ function test(keyPath, certPath, check, next) { startClient(port); } break; - + } case 'WAIT-HELLO': if (/hello/.test(serverStdoutBuffer)) { diff --git a/test/tick-processor/test-tick-processor-unknown.js b/test/tick-processor/test-tick-processor-unknown.js index 42208f3bb36d36..d5e6a9359e52eb 100644 --- a/test/tick-processor/test-tick-processor-unknown.js +++ b/test/tick-processor/test-tick-processor-unknown.js @@ -14,7 +14,7 @@ const base = require('./tick-processor-base.js'); // Unknown checked for to prevent flakiness, if pattern is not found, // then a large number of unknown ticks should be present base.runTest({ - pattern: /LazyCompile.*\[eval]:1|.*% UNKNOWN/, + pattern: /LazyCompile.*\[eval]:1|.*% {2}UNKNOWN/, code: `function f() { for (let i = 0; i < 1000000; i++) { i++; diff --git a/test/wpt/status/url.json b/test/wpt/status/url.json index fdf562c2c89c99..bb5b0215febf69 100644 --- a/test/wpt/status/url.json +++ b/test/wpt/status/url.json @@ -12,9 +12,6 @@ "urlencoded-parser.any.js": { "fail": "missing Request and Response" }, - "urlsearchparams-constructor.any.js": { - "fail": "FormData is not defined" - }, "url-constructor.any.js": { "requires": ["small-icu"] }, diff --git a/test/wpt/status/webidl/ecmascript-binding/es-exceptions.json b/test/wpt/status/webidl/ecmascript-binding/es-exceptions.json new file mode 100644 index 00000000000000..0967ef424bce67 --- /dev/null +++ b/test/wpt/status/webidl/ecmascript-binding/es-exceptions.json @@ -0,0 +1 @@ +{} diff --git a/test/wpt/status/webmessaging/broadcastchannel.json b/test/wpt/status/webmessaging/broadcastchannel.json new file mode 100644 index 00000000000000..1cc693407a2359 --- /dev/null +++ b/test/wpt/status/webmessaging/broadcastchannel.json @@ -0,0 +1,26 @@ +{ + "basics.any.js": { + "fail": { + "unexpected": [ + "assert_equals: origin expected \"https://example.com\" but got \"\"", + "assert_equals: target for event 0 expected object \"[object EventTarget]\" but got object \"[object EventTarget]\"" + ] + } + }, + "interface.any.js": { + "fail": { + "unexpected": [ + "assert_throws_dom: function \"() => c.postMessage('')\" threw object \"Error: BroadcastChannel is closed.\" that is not a DOMException InvalidStateError: property \"code\" is equal to 0, expected 11", + "assert_not_equals: got disallowed value undefined", + "assert_throws_dom: function \"() => c.postMessage(new Symbol())\" threw object \"Error: BroadcastChannel is closed.\" that is not a DOMException InvalidStateError: property \"code\" is equal to 0, expected 11" + ] + } + }, + "origin.window.js": { + "fail": { + "expected": [ + "document is not defined" + ] + } + } +} diff --git a/test/wpt/test-broadcastchannel.js b/test/wpt/test-broadcastchannel.js new file mode 100644 index 00000000000000..988a6270a936d6 --- /dev/null +++ b/test/wpt/test-broadcastchannel.js @@ -0,0 +1,13 @@ +'use strict'; + +require('../common'); +const { WPTRunner } = require('../common/wpt'); + +const runner = new WPTRunner('webmessaging/broadcastchannel'); + +runner.setInitScript(` + const { BroadcastChannel } = require('worker_threads'); + global.BroadcastChannel = BroadcastChannel; +`); + +runner.runJsTests(); diff --git a/test/wpt/test-domexception.js b/test/wpt/test-domexception.js new file mode 100644 index 00000000000000..09018a25ac58d8 --- /dev/null +++ b/test/wpt/test-domexception.js @@ -0,0 +1,19 @@ +'use strict'; + +require('../common'); +const { WPTRunner } = require('../common/wpt'); + +const runner = new WPTRunner('webidl/ecmascript-binding/es-exceptions'); + +runner.setFlags(['--expose-internals']); +runner.setInitScript(` + const { internalBinding } = require('internal/test/binding'); + const { DOMException } = internalBinding('messaging'); + Object.defineProperty(global, 'DOMException', { + writable: true, + configurable: true, + value: DOMException, + }); +`); + +runner.runJsTests(); diff --git a/test/wpt/test-url.js b/test/wpt/test-url.js index cca2184b47720b..419c48715feab0 100644 --- a/test/wpt/test-url.js +++ b/test/wpt/test-url.js @@ -11,6 +11,15 @@ runner.setScriptModifier((obj) => { // created via `document.createElement`. So we need to ignore them and just // test `URL`. obj.code = obj.code.replace(/\["url", "a", "area"\]/, '[ "url" ]'); + } else if (typeof FormData === 'undefined' && + obj.filename.includes('urlsearchparams-constructor.any.js')) { + // TODO(XadillaX): Remove this `else if` after `FormData` is supported. + + // Ignore test named `URLSearchParams constructor, FormData.` because we do + // not have `FormData`. + obj.code = obj.code.replace( + /('URLSearchParams constructor, object\.'\);[\w\W]+)test\(function\(\) {[\w\W]*?}, 'URLSearchParams constructor, FormData\.'\);/, + '$1'); } }); runner.pretendGlobalThisAs('Window'); diff --git a/test/wpt/wpt.status b/test/wpt/wpt.status index de3b3024627a1b..d20d108ac9906d 100644 --- a/test/wpt/wpt.status +++ b/test/wpt/wpt.status @@ -5,6 +5,8 @@ prefix wpt # sample-test : PASS,FLAKY [true] # This section applies to all platforms +# https://github.com/nodejs/node/issues/40449 +test-user-timing: PASS,FLAKY [$system==win32] diff --git a/tools/.eslintrc.yaml b/tools/.eslintrc.yaml index d2fe553393693d..de30cf6d123f33 100644 --- a/tools/.eslintrc.yaml +++ b/tools/.eslintrc.yaml @@ -5,11 +5,11 @@ env: rules: camelcase: - error - - properties: 'never' + - properties: never ignoreDestructuring: true - allow: ['child_process'] + allow: [child_process] no-unused-vars: - error - - args: 'after-used' + - args: after-used prefer-arrow-callback: error no-var: error diff --git a/tools/actions/commit-queue.sh b/tools/actions/commit-queue.sh index 22f306cc36b684..16fbc7f2ef15fb 100755 --- a/tools/actions/commit-queue.sh +++ b/tools/actions/commit-queue.sh @@ -4,50 +4,27 @@ set -xe OWNER=$1 REPOSITORY=$2 -GITHUB_TOKEN=$3 -shift 3 +shift 2 UPSTREAM=origin DEFAULT_BRANCH=master -API_URL=https://api.github.com -COMMIT_QUEUE_LABEL='commit-queue' -COMMIT_QUEUE_FAILED_LABEL='commit-queue-failed' - -issueUrl() { - echo "$API_URL/repos/${OWNER}/${REPOSITORY}/issues/${1}" -} - -labelsUrl() { - echo "$(issueUrl "${1}")/labels" -} - -commentsUrl() { - echo "$(issueUrl "${1}")/comments" -} - -gitHubCurl() { - url=$1 - method=$2 - shift 2 - - curl -fsL --request "$method" \ - --url "$url" \ - --header "authorization: Bearer ${GITHUB_TOKEN}" \ - --header 'content-type: application/json' "$@" -} +COMMIT_QUEUE_LABEL="commit-queue" +COMMIT_QUEUE_FAILED_LABEL="commit-queue-failed" commit_queue_failed() { - gitHubCurl "$(labelsUrl "${1}")" POST --data '{"labels": ["'"${COMMIT_QUEUE_FAILED_LABEL}"'"]}' + pr=$1 + + gh pr edit "$pr" --add-label "${COMMIT_QUEUE_FAILED_LABEL}" # shellcheck disable=SC2154 cqurl="${GITHUB_SERVER_URL}/${OWNER}/${REPOSITORY}/actions/runs/${GITHUB_RUN_ID}" - jq -n --arg content "
            Commit Queue failed
            $(cat output)
            $cqurl
            " '{body: $content}' > output.json - cat output.json + body="
            Commit Queue failed
            $(cat output)
            $cqurl
            " + echo "$body" - gitHubCurl "$(commentsUrl "${1}")" POST --data @output.json + gh pr comment "$pr" --body "$body" - rm output output.json + rm output } # TODO(mmarchini): should this be set with whoever added the label for each PR? @@ -55,8 +32,9 @@ git config --local user.email "github-bot@iojs.org" git config --local user.name "Node.js GitHub Bot" for pr in "$@"; do + gh pr view "$pr" --json labels --jq ".labels" > labels.json # Skip PR if CI was requested - if gitHubCurl "$(labelsUrl "$pr")" GET | jq -e 'map(.name) | index("request-ci")'; then + if jq -e 'map(.name) | index("request-ci")' < labels.json; then echo "pr ${pr} skipped, waiting for CI to start" continue fi @@ -68,9 +46,17 @@ for pr in "$@"; do fi # Delete the commit queue label - gitHubCurl "$(labelsUrl "$pr")"/"$COMMIT_QUEUE_LABEL" DELETE + gh pr edit "$pr" --remove-label "$COMMIT_QUEUE_LABEL" + + if jq -e 'map(.name) | index("commit-queue-squash")' < labels.json; then + MULTIPLE_COMMIT_POLICY="--fixupAll" + elif jq -e 'map(.name) | index("commit-queue-rebase")' < labels.json; then + MULTIPLE_COMMIT_POLICY="" + else + MULTIPLE_COMMIT_POLICY="--oneCommitMax" + fi - git node land --autorebase --yes "$pr" >output 2>&1 || echo "Failed to land #${pr}" + git node land --autorebase --yes $MULTIPLE_COMMIT_POLICY "$pr" >output 2>&1 || echo "Failed to land #${pr}" # cat here otherwise we'll be supressing the output of git node land cat output @@ -84,17 +70,46 @@ for pr in "$@"; do git node land --abort --yes continue fi - - commits="$(git rev-parse $UPSTREAM/$DEFAULT_BRANCH)...$(git rev-parse HEAD)" - if ! git push $UPSTREAM $DEFAULT_BRANCH >> output 2>&1; then - commit_queue_failed "$pr" - continue + if [ -z "$MULTIPLE_COMMIT_POLICY" ]; then + start_sha=$(git rev-parse $UPSTREAM/$DEFAULT_BRANCH) + end_sha=$(git rev-parse HEAD) + commits="${start_sha}...${end_sha}" + + if ! git push $UPSTREAM $DEFAULT_BRANCH >> output 2>&1; then + commit_queue_failed "$pr" + continue + fi + else + # If there's only one commit, we can use the Squash and Merge feature from GitHub. + # TODO: use `gh pr merge` when the GitHub CLI allows to customize the commit title (https://github.com/cli/cli/issues/1023). + commit_title=$(git log -1 --pretty='format:%s') + commit_body=$(git log -1 --pretty='format:%b') + commit_head=$(grep 'Fetched commits as' output | cut -d. -f3 | xargs git rev-parse) + + jq -n \ + --arg title "${commit_title}" \ + --arg body "${commit_body}" \ + --arg head "${commit_head}" \ + '{merge_method:"squash",commit_title:$title,commit_message:$body,sha:$head}' > output.json + cat output.json + if ! gh api -X PUT "repos/${OWNER}/${REPOSITORY}/pulls/${pr}/merge" --input output.json > output; then + commit_queue_failed "$pr" + continue + fi + cat output + if ! commits="$(jq -r 'if .merged then .sha else error("not merged") end' < output)"; then + commit_queue_failed "$pr" + continue + fi + rm output.json fi rm output - gitHubCurl "$(commentsUrl "$pr")" POST --data '{"body": "Landed in '"$commits"'"}' + gh pr comment "$pr" --body "Landed in $commits" - gitHubCurl "$(issueUrl "$pr")" PATCH --data '{"state": "closed"}' + [ -z "$MULTIPLE_COMMIT_POLICY" ] && gh pr close "$pr" done + +rm -f labels.json diff --git a/tools/actions/start-ci.sh b/tools/actions/start-ci.sh index 72a04b6b321b1f..a34f2a9496fb26 100755 --- a/tools/actions/start-ci.sh +++ b/tools/actions/start-ci.sh @@ -2,31 +2,11 @@ set -xe -GITHUB_TOKEN=$1 -OWNER=$2 -REPOSITORY=$3 -API_URL=https://api.github.com -REQUEST_CI_LABEL='request-ci' -REQUEST_CI_FAILED_LABEL='request-ci-failed' -shift 3 - -issueUrl() { - echo "$API_URL/repos/${OWNER}/${REPOSITORY}/issues/${1}" -} - -labelsUrl() { - echo "$(issueUrl "${1}")/labels" -} - -commentsUrl() { - echo "$(issueUrl "${1}")/comments" -} +REQUEST_CI_LABEL="request-ci" +REQUEST_CI_FAILED_LABEL="request-ci-failed" for pr in "$@"; do - curl -sL --request DELETE \ - --url "$(labelsUrl "$pr")"/"$REQUEST_CI_LABEL" \ - --header "authorization: Bearer ${GITHUB_TOKEN}" \ - --header 'content-type: application/json' + gh pr edit "$pr" --remove-label "$REQUEST_CI_LABEL" ci_started=yes rm -f output; @@ -35,19 +15,11 @@ for pr in "$@"; do if [ "$ci_started" = "no" ]; then # Do we need to reset? - curl -sL --request PUT \ - --url "$(labelsUrl "$pr")" \ - --header "authorization: Bearer ${GITHUB_TOKEN}" \ - --header 'content-type: application/json' \ - --data '{"labels": ["'"${REQUEST_CI_FAILED_LABEL}"'"]}' - - jq -n --arg content "
            Couldn't start CI
            $(cat output)
            " '{body: $content}' > output.json - - curl -sL --request POST \ - --url "$(commentsUrl "$pr")" \ - --header "authorization: Bearer ${GITHUB_TOKEN}" \ - --header 'content-type: application/json' \ - --data @output.json + gh pr edit "$pr" --add-label "$REQUEST_CI_FAILED_LABEL" + + jq -n --arg content "
            Couldn't start CI
            $(cat output || true)
            " > output.json + + gh pr comment "$pr" --body-file output.json rm output.json; fi diff --git a/tools/code_cache/README.md b/tools/code_cache/README.md index f8428c24b0dd4b..8feb280caae585 100644 --- a/tools/code_cache/README.md +++ b/tools/code_cache/README.md @@ -2,7 +2,7 @@ This is the V8 code cache builder of Node.js. It pre-compiles all the JavaScript native modules of Node.js and serializes the code cache (including -the bytecodes) that will be embeded into the Node.js executable. When a Node.js +the bytecodes) that will be embedded into the Node.js executable. When a Node.js JavaScript native module is `require`d at runtime, Node.js can deserialize from the code cache instead of parsing the source code and generating the bytecode for it before execution, which should reduce the load time of these JavaScript diff --git a/tools/code_cache/mkcodecache.cc b/tools/code_cache/mkcodecache.cc index 9a0127184372bc..babf8535dbb3e7 100644 --- a/tools/code_cache/mkcodecache.cc +++ b/tools/code_cache/mkcodecache.cc @@ -28,6 +28,7 @@ int main(int argc, char* argv[]) { #endif // _WIN32 v8::V8::SetFlagsFromString("--random_seed=42"); + v8::V8::SetFlagsFromString("--harmony-import-assertions"); if (argc < 2) { std::cerr << "Usage: " << argv[0] << " \n"; diff --git a/tools/doc/allhtml.mjs b/tools/doc/allhtml.mjs index 8c2135dc8cbc8f..50f145034ccb7a 100644 --- a/tools/doc/allhtml.mjs +++ b/tools/doc/allhtml.mjs @@ -18,14 +18,11 @@ let apicontent = ''; // Identify files that should be skipped. As files are processed, they // are added to this list to prevent dupes. -const seen = { - 'all.html': true, - 'index.html': true -}; +const seen = new Set(['all.html', 'index.html']); for (const link of toc.match(//g)) { const href = /href="(.*?)"/.exec(link)[1]; - if (!htmlFiles.includes(href) || seen[href]) continue; + if (!htmlFiles.includes(href) || seen.has(href)) continue; const data = fs.readFileSync(new URL(`./${href}`, source), 'utf8'); // Split the doc. @@ -38,7 +35,7 @@ for (const link of toc.match(//g)) { .replace(/[\s\S]*?id="toc"[^>]*>\s*<\w+>.*?<\/\w+>\s*(', ` +
          • + Index +
          • +
          + `); + + return ` +
        • + + + Index + + +
          ${gtoc}
          +
        • + `; +} + +function tocPicker(id, content) { + if (id === 'index') { + return ''; + } + + return ` +
        • + + + Table of contents + + +
          ${content.tocPicker}
          +
        • + `; +} diff --git a/tools/doc/json.mjs b/tools/doc/json.mjs index ee8480114df612..1d2eab2e3cf466 100644 --- a/tools/doc/json.mjs +++ b/tools/doc/json.mjs @@ -128,7 +128,7 @@ export function jsonAPI({ filename }) { switch (current.type) { case 'ctor': case 'classMethod': - case 'method': + case 'method': { // Each item is an argument, unless the name is 'return', // in which case it's the return value. const sig = {}; @@ -142,7 +142,7 @@ export function jsonAPI({ filename }) { parseSignature(current.textRaw, sig); current.signatures = [sig]; break; - + } case 'property': // There should be only one item, which is the value. // Copy the data up to the section. diff --git a/tools/doc/links-mapper.json b/tools/doc/links-mapper.json index 7232539ca461f5..211ba70c0b5991 100644 --- a/tools/doc/links-mapper.json +++ b/tools/doc/links-mapper.json @@ -1,6 +1,6 @@ { "doc/api/synopsis.md": { - "command line options": "cli.html#command-line-options", + "command line options": "cli.html#options", "web server": "http.html" } -} \ No newline at end of file +} diff --git a/tools/doc/package-lock.json b/tools/doc/package-lock.json index 4fedbd4e742ccc..ac1745798cab1f 100644 --- a/tools/doc/package-lock.json +++ b/tools/doc/package-lock.json @@ -11,19 +11,19 @@ "node-doc-generator": "generate.js" }, "devDependencies": { - "highlight.js": "^11.2.0", + "highlight.js": "^11.4.0", "js-yaml": "^4.1.0", - "rehype-raw": "^6.1.0", - "rehype-stringify": "^9.0.2", - "remark-frontmatter": "^4.0.0", - "remark-gfm": "^2.0.0", - "remark-html": "^14.0.1", - "remark-parse": "^10.0.0", - "remark-rehype": "^9.0.0", - "to-vfile": "^7.2.2", - "unified": "^10.1.0", - "unist-util-select": "^4.0.0", - "unist-util-visit": "^4.0.0" + "rehype-raw": "^6.1.1", + "rehype-stringify": "^9.0.3", + "remark-frontmatter": "^4.0.1", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "to-vfile": "^7.2.3", + "unified": "^10.1.1", + "unist-util-select": "^4.0.1", + "unist-util-visit": "^4.1.0" }, "engines": { "node": ">=14.8.0" @@ -69,9 +69,9 @@ "dev": true }, "node_modules/@types/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", "dev": true }, "node_modules/@types/unist": { @@ -87,9 +87,9 @@ "dev": true }, "node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true, "funding": { "type": "github", @@ -103,9 +103,9 @@ "dev": true }, "node_modules/ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true, "funding": { "type": "github", @@ -113,9 +113,9 @@ } }, "node_modules/character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==", "dev": true, "funding": { "type": "github", @@ -123,9 +123,9 @@ } }, "node_modules/character-entities-html4": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.0.0.tgz", - "integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "dev": true, "funding": { "type": "github", @@ -133,19 +133,9 @@ } }, "node_modules/character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true, "funding": { "type": "github", @@ -169,9 +159,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "dependencies": { "ms": "2.1.2" @@ -185,6 +175,37 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "dev": true, + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, + "node_modules/dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "dev": true, + "engines": { + "node": ">=6" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true, + "engines": { + "node": ">=0.3.1" + } + }, "node_modules/escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -204,9 +225,9 @@ "dev": true }, "node_modules/fault": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz", - "integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", "dev": true, "dependencies": { "format": "^0.2.0" @@ -265,9 +286,9 @@ } }, "node_modules/hast-util-is-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", - "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -292,9 +313,9 @@ } }, "node_modules/hast-util-raw": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.0.tgz", - "integrity": "sha512-K2ofsY59XqrtBNUAkvT2vPdyNPUchjj1Z0FxUOwBadS6R5h9O3LaRZqpukQ+YfgQ/IMy9GGMB/Nlpzpu+cuuMA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.1.tgz", + "integrity": "sha512-wgtppqXVdXzkDXDFclLLdAyVUJSKMYYi6LWIAbA8oFqEdwksYIcPGM3RkKV1Dfn5GElvxhaOCs0jmCOMayxd3A==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -328,9 +349,9 @@ } }, "node_modules/hast-util-to-html": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.2.tgz", - "integrity": "sha512-ipLhUTMyyJi9F/LXaNDG9BrRdshP6obCfmUZYbE/+T639IdzqAOkKN4DyrEyID0gbb+rsC3PKf0XlviZwzomhw==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", + "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -341,7 +362,7 @@ "html-void-elements": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", + "stringify-entities": "^4.0.2", "unist-util-is": "^5.0.0" }, "funding": { @@ -395,18 +416,18 @@ } }, "node_modules/highlight.js": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.2.0.tgz", - "integrity": "sha512-JOySjtOEcyG8s4MLR2MNbLUyaXqUunmSnL2kdV/KuGJOmHZuAR5xC54Ko7goAXBWNhf09Vy3B+U7vR62UZ/0iw==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz", + "integrity": "sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA==", "dev": true, "engines": { "node": ">=12.0.0" } }, "node_modules/html-void-elements": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.0.tgz", - "integrity": "sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", "dev": true, "funding": { "type": "github", @@ -419,30 +440,6 @@ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", "dev": true }, - "node_modules/is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", - "dev": true, - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -466,26 +463,6 @@ "node": ">=4" } }, - "node_modules/is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", - "dev": true, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-plain-obj": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", @@ -510,10 +487,19 @@ "js-yaml": "bin/js-yaml.js" } }, + "node_modules/kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true, + "engines": { + "node": ">=6" + } + }, "node_modules/longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==", "dev": true, "funding": { "type": "github", @@ -521,9 +507,9 @@ } }, "node_modules/markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==", "dev": true, "funding": { "type": "github", @@ -576,21 +562,23 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz", - "integrity": "sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "mdast-util-to-string": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", "micromark": "^3.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0", - "parse-entities": "^3.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -611,12 +599,13 @@ } }, "node_modules/mdast-util-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", - "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", + "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", "dev": true, "dependencies": { "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", "mdast-util-gfm-strikethrough": "^1.0.0", "mdast-util-gfm-table": "^1.0.0", "mdast-util-gfm-task-list-item": "^1.0.0" @@ -627,9 +616,9 @@ } }, "node_modules/mdast-util-gfm-autolink-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.1.tgz", - "integrity": "sha512-dCUDNYXCytIonTHIUOZXp5S3FWd1XAt6IVH1fBfH6BbUF9U+9m1T9XllfHPvKJCccKNI+0RlYmQJ0rfMTDxEtA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", @@ -642,14 +631,29 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/mdast-util-gfm-footnote": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", + "dev": true, + "dependencies": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", - "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", + "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -657,13 +661,13 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", + "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", "dev": true, "dependencies": { "markdown-table": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -671,13 +675,13 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", "dev": true, "dependencies": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -685,9 +689,9 @@ } }, "node_modules/mdast-util-to-hast": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-11.2.1.tgz", - "integrity": "sha512-tvy3qzo/SKxkQ9smt7D7NX+4nAQng+eK4/A7PVUzAT4+n0NtgaDRyZA2DmGExAbW7xUX4O+4jkO2u94dNStssw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz", + "integrity": "sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -695,6 +699,7 @@ "@types/mdurl": "^1.0.0", "mdast-util-definitions": "^5.0.0", "mdurl": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", "unist-builder": "^3.0.0", "unist-util-generated": "^2.0.0", "unist-util-position": "^4.0.0", @@ -706,16 +711,16 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.2.tgz", - "integrity": "sha512-G8/IwiB2clO8tJsw/fBNNilZ8wDKJnnOts0a3Ls6DVKiy+K7wHGfZDMxLrYXW3QuHiNOZiSU1KduL1oBY4MQqQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", + "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "longest-streak": "^3.0.0", "mdast-util-to-string": "^3.0.0", - "parse-entities": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", "unist-util-visit": "^4.0.0", "zwitch": "^2.0.0" }, @@ -741,9 +746,9 @@ "dev": true }, "node_modules/micromark": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.5.tgz", - "integrity": "sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "dev": true, "funding": [ { @@ -758,6 +763,7 @@ "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", "micromark-core-commonmark": "^1.0.1", "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -771,13 +777,13 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0" + "uvu": "^0.5.0" } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz", - "integrity": "sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "dev": true, "funding": [ { @@ -790,6 +796,7 @@ } ], "dependencies": { + "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", "micromark-factory-label": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -804,7 +811,7 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0" + "uvu": "^0.5.0" } }, "node_modules/micromark-extension-frontmatter": { @@ -823,12 +830,13 @@ } }, "node_modules/micromark-extension-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", - "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dev": true, "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", "micromark-extension-gfm-strikethrough": "^1.0.0", "micromark-extension-gfm-table": "^1.0.0", "micromark-extension-gfm-tagfilter": "^1.0.0", @@ -842,15 +850,35 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", - "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/unified" + } + }, + "node_modules/micromark-extension-gfm-footnote": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", + "dev": true, + "dependencies": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -858,16 +886,17 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.1.tgz", - "integrity": "sha512-fzGYXWz9HPWH1uHqYwdyR8XpEtuoYVHUjTdPQTnl3ETVZOQe1NXMwE3RA7AMqeON52hG+kO9g1/P1+pLONBSMQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dev": true, "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", "micromark-util-resolve-all": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -875,15 +904,16 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", - "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dev": true, "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -891,9 +921,9 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dev": true, "dependencies": { "micromark-util-types": "^1.0.0" @@ -904,15 +934,16 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dev": true, "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" }, "funding": { "type": "opencollective", @@ -941,9 +972,9 @@ } }, "node_modules/micromark-factory-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz", - "integrity": "sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", "dev": true, "funding": [ { @@ -958,7 +989,8 @@ "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "node_modules/micromark-factory-space": { @@ -982,9 +1014,9 @@ } }, "node_modules/micromark-factory-title": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz", - "integrity": "sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", "dev": true, "funding": [ { @@ -1000,7 +1032,8 @@ "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "node_modules/micromark-factory-whitespace": { @@ -1124,10 +1157,32 @@ "micromark-util-symbol": "^1.0.0" } }, + "node_modules/micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "dev": true, + "funding": [ + { + "type": "GitHub Sponsors", + "url": "https://github.com/sponsors/unifiedjs" + }, + { + "type": "OpenCollective", + "url": "https://opencollective.com/unified" + } + ], + "dependencies": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, "node_modules/micromark-util-encode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", - "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", "dev": true, "funding": [ { @@ -1216,9 +1271,9 @@ } }, "node_modules/micromark-util-subtokenize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz", - "integrity": "sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", "dev": true, "funding": [ { @@ -1233,13 +1288,14 @@ "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "node_modules/micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "dev": true, "funding": [ { @@ -1253,9 +1309,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "dev": true, "funding": [ { @@ -1268,6 +1324,15 @@ } ] }, + "node_modules/mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", + "dev": true, + "engines": { + "node": ">=4" + } + }, "node_modules/ms": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", @@ -1286,24 +1351,6 @@ "url": "https://github.com/fb55/nth-check?sponsor=1" } }, - "node_modules/parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", - "dev": true, - "dependencies": { - "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", - "character-reference-invalid": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -1311,9 +1358,9 @@ "dev": true }, "node_modules/property-information": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz", - "integrity": "sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", + "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==", "dev": true, "funding": { "type": "github", @@ -1321,9 +1368,9 @@ } }, "node_modules/rehype-raw": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.0.tgz", - "integrity": "sha512-12j2UiiYJgZFdjnHDny77NY5BF3eW4Jsl0vtgL1DWdTzcHjPpbhumU+GtPUdivEWwQc8x9OdEuO0oxaGz7Tvyg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", + "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -1336,9 +1383,9 @@ } }, "node_modules/rehype-stringify": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.2.tgz", - "integrity": "sha512-BuVA6lAEYtOpXO2xuHLohAzz8UNoQAxAqYRqh4QEEtU39Co+P1JBZhw6wXA9hMWp+JLcmrxWH8+UKcNSr443Fw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.3.tgz", + "integrity": "sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", @@ -1351,9 +1398,9 @@ } }, "node_modules/remark-frontmatter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.0.tgz", - "integrity": "sha512-0J+2czWAS9sz9baJJel4tTUnNhMI7wYgih99Hxhdeq2GpdI1Ctu0iol6zAsWw5xa+jLsZXNiwEnnJAJo3XX3hw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz", + "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", @@ -1367,14 +1414,14 @@ } }, "node_modules/remark-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", - "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^1.0.0", - "micromark-extension-gfm": "^1.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", "unified": "^10.0.0" }, "funding": { @@ -1383,15 +1430,15 @@ } }, "node_modules/remark-html": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-14.0.1.tgz", - "integrity": "sha512-a/x5bTlFrkwYkz43zuJIk0m0IuS5Rx8zLztGwdzmAdUj0Hsi4C4nkJ8gTQRNXY/ET/gMrqQORMMI0arRItq/aQ==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.1.tgz", + "integrity": "sha512-7ta5UPRqj8nP0GhGMYUAghZ/DRno7dgq7alcW90A7+9pgJsXzGJlFgwF8HOP1b1tMgT3WwbeANN+CaTimMfyNQ==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", "hast-util-sanitize": "^4.0.0", "hast-util-to-html": "^8.0.0", - "mdast-util-to-hast": "^11.0.0", + "mdast-util-to-hast": "^12.0.0", "unified": "^10.0.0" }, "funding": { @@ -1400,9 +1447,9 @@ } }, "node_modules/remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "dev": true, "dependencies": { "@types/mdast": "^3.0.0", @@ -1415,14 +1462,14 @@ } }, "node_modules/remark-rehype": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-9.0.0.tgz", - "integrity": "sha512-SFA+mPWu45ynFPKeT3h5eNNVAYoMp3wizr3KSKh1IQ9L6dLSyD25/df6/vv8EW8ji3O3dnZGdbLQl592Tn+ydg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", "dev": true, "dependencies": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^11.0.0", + "mdast-util-to-hast": "^12.1.0", "unified": "^10.0.0" }, "funding": { @@ -1430,6 +1477,18 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "dependencies": { + "mri": "^1.1.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/space-separated-tokens": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", @@ -1441,13 +1500,13 @@ } }, "node_modules/stringify-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.1.tgz", - "integrity": "sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.2.tgz", + "integrity": "sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ==", "dev": true, "dependencies": { "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^2.0.0" + "character-entities-legacy": "^3.0.0" }, "funding": { "type": "github", @@ -1464,9 +1523,9 @@ } }, "node_modules/to-vfile": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.2.tgz", - "integrity": "sha512-7WL+coet3qyaYb5vrVrfLtOUHgNv9E1D5SIsyVKmHKcgZefy77WMQRk7FByqGKNInoHOlY6xkTGymo29AwjUKg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", "dev": true, "dependencies": { "is-buffer": "^2.0.0", @@ -1488,9 +1547,9 @@ } }, "node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -1550,11 +1609,12 @@ } }, "node_modules/unist-util-select": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.0.tgz", - "integrity": "sha512-UJsER0ubbBy8KR+5zZpcF/9/aApWOzjNqfseMjcw1h0wAUqbxAf56mMewspAqXtGKiwBylnYB+PbD/XqwcYrWg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.1.tgz", + "integrity": "sha512-zPozyEo5vr1csbHf1TqlQrnuLVJ0tNMo63og3HrnINh2+OIDAgQpqHVr+0BMw1DIVHJV8ft/e6BZqtvD1Y5enw==", "dev": true, "dependencies": { + "@types/unist": "^2.0.0", "css-selector-parser": "^1.0.0", "nth-check": "^2.0.0", "unist-util-is": "^5.0.0", @@ -1579,9 +1639,9 @@ } }, "node_modules/unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", + "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -1608,9 +1668,9 @@ } }, "node_modules/unist-util-visit/node_modules/unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", + "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -1621,10 +1681,28 @@ "url": "https://opencollective.com/unified" } }, + "node_modules/uvu": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz", + "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==", + "dev": true, + "dependencies": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + }, + "bin": { + "uvu": "bin.js" + }, + "engines": { + "node": ">=8" + } + }, "node_modules/vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz", + "integrity": "sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -1652,9 +1730,9 @@ } }, "node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz", + "integrity": "sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==", "dev": true, "dependencies": { "@types/unist": "^2.0.0", @@ -1666,9 +1744,9 @@ } }, "node_modules/web-namespaces": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.0.tgz", - "integrity": "sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "dev": true, "funding": { "type": "github", @@ -1727,9 +1805,9 @@ "dev": true }, "@types/parse5": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.1.tgz", - "integrity": "sha512-ARATsLdrGPUnaBvxLhUlnltcMgn7pQG312S8ccdYlnyijabrX9RN/KN/iGj9Am96CoW8e/K9628BA7Bv4XHdrA==", + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/@types/parse5/-/parse5-6.0.3.tgz", + "integrity": "sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==", "dev": true }, "@types/unist": { @@ -1745,9 +1823,9 @@ "dev": true }, "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "dev": true }, "boolbase": { @@ -1757,33 +1835,27 @@ "dev": true }, "ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "dev": true }, "character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==", "dev": true }, "character-entities-html4": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.0.0.tgz", - "integrity": "sha512-dwT2xh5ZhUAjyP96k57ilMKoTQyASaw9IAMR9U5c1lCu2RUni6O6jxfpUEdO2RcPT6TJFvr8pqsbami4Jk+2oA==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/character-entities-html4/-/character-entities-html4-2.1.0.tgz", + "integrity": "sha512-1v7fgQRj6hnSwFpq1Eu0ynr/CDEw0rXo2B61qXrLNdHZmPKgb7fqS1a2JwF0rISo9q77jDI8VMEHoApn8qDoZA==", "dev": true }, "character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", - "dev": true - }, - "character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-3.0.0.tgz", + "integrity": "sha512-RpPp0asT/6ufRm//AJVwpViZbGM/MkjQFxJccQRHmISF/22NBtsHqAWmL+/pmkPWoIUJdWyeVleTl1wydHATVQ==", "dev": true }, "comma-separated-tokens": { @@ -1799,14 +1871,35 @@ "dev": true }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dev": true, "requires": { "ms": "2.1.2" } }, + "decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "dev": true, + "requires": { + "character-entities": "^2.0.0" + } + }, + "dequal": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/dequal/-/dequal-2.0.2.tgz", + "integrity": "sha512-q9K8BlJVxK7hQYqa6XISGmBZbtQQWVXSrRrWreHC94rMt1QL/Impruc+7p2CYSYuVIUr+YCt6hjrs1kkdJRTug==", + "dev": true + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "dev": true + }, "escape-string-regexp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz", @@ -1820,9 +1913,9 @@ "dev": true }, "fault": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.0.tgz", - "integrity": "sha512-JsDj9LFcoC+4ChII1QpXPA7YIaY8zmqPYw7h9j5n7St7a0BBKfNnwEBAUQRBx70o2q4rs+BeSNHk8Exm6xE7fQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fault/-/fault-2.0.1.tgz", + "integrity": "sha512-WtySTkS4OKev5JtpHXnib4Gxiurzh5NCGvWrFaZ34m6JehfTUhKZvn9njTfw48t6JumVQOmrKqpmGcdwxnhqBQ==", "dev": true, "requires": { "format": "^0.2.0" @@ -1866,9 +1959,9 @@ } }, "hast-util-is-element": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.1.tgz", - "integrity": "sha512-ag0fiZfRWsPiR1udvnSbaazJLGv8qd8E+/e3rW8rUZhbKG4HNJmFL4QkEceN+22BgE+uozXY30z/s+2dL6Z++g==", + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/hast-util-is-element/-/hast-util-is-element-2.1.2.tgz", + "integrity": "sha512-thjnlGAnwP8ef/GSO1Q8BfVk2gundnc2peGQqEg2kUt/IqesiGg/5mSwN2fE7nLzy61pg88NG6xV+UrGOrx9EA==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -1885,9 +1978,9 @@ } }, "hast-util-raw": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.0.tgz", - "integrity": "sha512-K2ofsY59XqrtBNUAkvT2vPdyNPUchjj1Z0FxUOwBadS6R5h9O3LaRZqpukQ+YfgQ/IMy9GGMB/Nlpzpu+cuuMA==", + "version": "7.2.1", + "resolved": "https://registry.npmjs.org/hast-util-raw/-/hast-util-raw-7.2.1.tgz", + "integrity": "sha512-wgtppqXVdXzkDXDFclLLdAyVUJSKMYYi6LWIAbA8oFqEdwksYIcPGM3RkKV1Dfn5GElvxhaOCs0jmCOMayxd3A==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -1913,9 +2006,9 @@ } }, "hast-util-to-html": { - "version": "8.0.2", - "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.2.tgz", - "integrity": "sha512-ipLhUTMyyJi9F/LXaNDG9BrRdshP6obCfmUZYbE/+T639IdzqAOkKN4DyrEyID0gbb+rsC3PKf0XlviZwzomhw==", + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/hast-util-to-html/-/hast-util-to-html-8.0.3.tgz", + "integrity": "sha512-/D/E5ymdPYhHpPkuTHOUkSatxr4w1ZKrZsG0Zv/3C2SRVT0JFJG53VS45AMrBtYk0wp5A7ksEhiC8QaOZM95+A==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -1926,7 +2019,7 @@ "html-void-elements": "^2.0.0", "property-information": "^6.0.0", "space-separated-tokens": "^2.0.0", - "stringify-entities": "^4.0.0", + "stringify-entities": "^4.0.2", "unist-util-is": "^5.0.0" } }, @@ -1964,15 +2057,15 @@ } }, "highlight.js": { - "version": "11.2.0", - "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.2.0.tgz", - "integrity": "sha512-JOySjtOEcyG8s4MLR2MNbLUyaXqUunmSnL2kdV/KuGJOmHZuAR5xC54Ko7goAXBWNhf09Vy3B+U7vR62UZ/0iw==", + "version": "11.4.0", + "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-11.4.0.tgz", + "integrity": "sha512-nawlpCBCSASs7EdvZOYOYVkJpGmAOKMYZgZtUqSRqodZE0GRVcFKwo1RcpeOemqh9hyttTdd5wDBwHkuSyUfnA==", "dev": true }, "html-void-elements": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.0.tgz", - "integrity": "sha512-4OYzQQsBt0G9bJ/nM9/DDsjm4+fVdzAaPJJcWk5QwA3GIAPxQEeOR0rsI8HbDHQz5Gta8pVvGnnTNSbZVEVvkQ==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-void-elements/-/html-void-elements-2.0.1.tgz", + "integrity": "sha512-0quDb7s97CfemeJAnW9wC0hw78MtW7NU3hqtCD75g2vFlDLt36llsYD7uB7SUzojLMP24N5IatXf7ylGXiGG9A==", "dev": true }, "inline-style-parser": { @@ -1981,40 +2074,12 @@ "integrity": "sha512-7NXolsK4CAS5+xvdj5OMMbI962hU/wvwoxk+LWR9Ek9bVtyuuYScDN6eS0rUm6TxApFpw7CX1o4uJzcd4AyD3Q==", "dev": true }, - "is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", - "dev": true - }, - "is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", - "dev": true, - "requires": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - } - }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==", "dev": true }, - "is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", - "dev": true - }, - "is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", - "dev": true - }, "is-plain-obj": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-4.0.0.tgz", @@ -2030,16 +2095,22 @@ "argparse": "^2.0.1" } }, + "kleur": { + "version": "4.1.4", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-4.1.4.tgz", + "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==", + "dev": true + }, "longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==", "dev": true }, "markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==", "dev": true }, "mdast-util-definitions": { @@ -2078,21 +2149,23 @@ } }, "mdast-util-from-markdown": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.0.tgz", - "integrity": "sha512-uj2G60sb7z1PNOeElFwCC9b/Se/lFXuLhVKFOAY2EHz/VvgbupTQRNXPoZl7rGpXYL6BNZgcgaybrlSWbo7n/g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", "dev": true, "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", - "mdast-util-to-string": "^3.0.0", + "decode-named-character-reference": "^1.0.0", + "mdast-util-to-string": "^3.1.0", "micromark": "^3.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-decode-string": "^1.0.0", "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0", - "parse-entities": "^3.0.0", - "unist-util-stringify-position": "^3.0.0" + "unist-util-stringify-position": "^3.0.0", + "uvu": "^0.5.0" } }, "mdast-util-frontmatter": { @@ -2105,21 +2178,22 @@ } }, "mdast-util-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-1.0.0.tgz", - "integrity": "sha512-JY4qImsTqivQ0Gl3qvdaizCpomFaNrHnjEhNjNNKeNEA5jZHAJDYu1+yO4V9jn4/ti8GrKdAScaT4F71knoxsA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mdast-util-gfm/-/mdast-util-gfm-2.0.0.tgz", + "integrity": "sha512-wMwejlTN3EQADPFuvxe8lmGsay3+f6gSJKdAHR6KBJzpcxvsjJSILB9K6u6G7eQLC7iOTyVIHYGui9uBc9r1Tg==", "dev": true, "requires": { "mdast-util-gfm-autolink-literal": "^1.0.0", + "mdast-util-gfm-footnote": "^1.0.0", "mdast-util-gfm-strikethrough": "^1.0.0", "mdast-util-gfm-table": "^1.0.0", "mdast-util-gfm-task-list-item": "^1.0.0" } }, "mdast-util-gfm-autolink-literal": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.1.tgz", - "integrity": "sha512-dCUDNYXCytIonTHIUOZXp5S3FWd1XAt6IVH1fBfH6BbUF9U+9m1T9XllfHPvKJCccKNI+0RlYmQJ0rfMTDxEtA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-autolink-literal/-/mdast-util-gfm-autolink-literal-1.0.2.tgz", + "integrity": "sha512-FzopkOd4xTTBeGXhXSBU0OCDDh5lUj2rd+HQqG92Ld+jL4lpUfgX2AT2OHAVP9aEeDKp7G92fuooSZcYJA3cRg==", "dev": true, "requires": { "@types/mdast": "^3.0.0", @@ -2128,40 +2202,51 @@ "micromark-util-character": "^1.0.0" } }, + "mdast-util-gfm-footnote": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", + "dev": true, + "requires": { + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" + } + }, "mdast-util-gfm-strikethrough": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", - "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", + "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", "dev": true, "requires": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", + "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", "dev": true, "requires": { "markdown-table": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", "dev": true, "requires": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-to-hast": { - "version": "11.2.1", - "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-11.2.1.tgz", - "integrity": "sha512-tvy3qzo/SKxkQ9smt7D7NX+4nAQng+eK4/A7PVUzAT4+n0NtgaDRyZA2DmGExAbW7xUX4O+4jkO2u94dNStssw==", + "version": "12.1.1", + "resolved": "https://registry.npmjs.org/mdast-util-to-hast/-/mdast-util-to-hast-12.1.1.tgz", + "integrity": "sha512-qE09zD6ylVP14jV4mjLIhDBOrpFdShHZcEsYvvKGABlr9mGbV7mTlRWdoFxL/EYSTNDiC9GZXy7y8Shgb9Dtzw==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -2169,6 +2254,7 @@ "@types/mdurl": "^1.0.0", "mdast-util-definitions": "^5.0.0", "mdurl": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", "unist-builder": "^3.0.0", "unist-util-generated": "^2.0.0", "unist-util-position": "^4.0.0", @@ -2176,16 +2262,16 @@ } }, "mdast-util-to-markdown": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.2.tgz", - "integrity": "sha512-G8/IwiB2clO8tJsw/fBNNilZ8wDKJnnOts0a3Ls6DVKiy+K7wHGfZDMxLrYXW3QuHiNOZiSU1KduL1oBY4MQqQ==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", + "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", "dev": true, "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", "longest-streak": "^3.0.0", "mdast-util-to-string": "^3.0.0", - "parse-entities": "^3.0.0", + "micromark-util-decode-string": "^1.0.0", "unist-util-visit": "^4.0.0", "zwitch": "^2.0.0" } @@ -2203,13 +2289,14 @@ "dev": true }, "micromark": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.5.tgz", - "integrity": "sha512-QfjERBnPw0G9mxhOCkkbRP0n8SX8lIBLrEKeEVceviUukqVMv3hWE4AgNTOK/W6GWqtPvvIHg2Apl3j1Dxm6aQ==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "dev": true, "requires": { "@types/debug": "^4.0.0", "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", "micromark-core-commonmark": "^1.0.1", "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -2223,15 +2310,16 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0" + "uvu": "^0.5.0" } }, "micromark-core-commonmark": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.1.tgz", - "integrity": "sha512-vEOw8hcQ3nwHkKKNIyP9wBi8M50zjNajtmI+cCUWcVfJS+v5/3WCh4PLKf7PPRZFUutjzl4ZjlHwBWUKfb/SkA==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "dev": true, "requires": { + "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", "micromark-factory-label": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -2246,7 +2334,7 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0" + "uvu": "^0.5.0" } }, "micromark-extension-frontmatter": { @@ -2261,12 +2349,13 @@ } }, "micromark-extension-gfm": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-1.0.0.tgz", - "integrity": "sha512-OjqbQPL1Vec/4l5hnC8WnMNmWwgrT9JvzR2udqIGrGKecZsdwY9GAWZ5482CuD12SXuHNj8aS8epni6ip0Pwog==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dev": true, "requires": { "micromark-extension-gfm-autolink-literal": "^1.0.0", + "micromark-extension-gfm-footnote": "^1.0.0", "micromark-extension-gfm-strikethrough": "^1.0.0", "micromark-extension-gfm-table": "^1.0.0", "micromark-extension-gfm-tagfilter": "^1.0.0", @@ -2276,61 +2365,80 @@ } }, "micromark-extension-gfm-autolink-literal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.0.tgz", - "integrity": "sha512-t+K0aPK32mXypVTEKV+WRfoT/Rb7MERDgHZVRr56NXpyQQhgMk72QnK4NljYUlrgbuesH+MxiPQwThzqRDIwvA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dev": true, "requires": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" + } + }, + "micromark-extension-gfm-footnote": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", + "dev": true, + "requires": { + "micromark-core-commonmark": "^1.0.0", + "micromark-factory-space": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-normalize-identifier": "^1.0.0", + "micromark-util-sanitize-uri": "^1.0.0", + "micromark-util-symbol": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-strikethrough": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.1.tgz", - "integrity": "sha512-fzGYXWz9HPWH1uHqYwdyR8XpEtuoYVHUjTdPQTnl3ETVZOQe1NXMwE3RA7AMqeON52hG+kO9g1/P1+pLONBSMQ==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dev": true, "requires": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", "micromark-util-resolve-all": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-table": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.0.tgz", - "integrity": "sha512-OATRuHDgEAT/aaJJRSdU12V+s01kNSnJ0jumdfLq5mPy0F5DkR3zbTSFLH4tjVYM0/kEG6umxIhHY62mFe4z5Q==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dev": true, "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dev": true, "requires": { "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-3tkHCq1NNwijtwpjYba9+rl1yvQ4xYg8iQpUAfTJRyq8MtIEsBUF/vW6B9Gh8Qwy1hE2FmpyHhP4jnFAt61zLg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dev": true, "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-factory-destination": { @@ -2345,14 +2453,15 @@ } }, "micromark-factory-label": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.0.tgz", - "integrity": "sha512-XWEucVZb+qBCe2jmlOnWr6sWSY6NHx+wtpgYFsm4G+dufOf6tTQRRo0bdO7XSlGPu5fyjpJenth6Ksnc5Mwfww==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-label/-/micromark-factory-label-1.0.2.tgz", + "integrity": "sha512-CTIwxlOnU7dEshXDQ+dsr2n+yxpP0+fn271pu0bwDIS8uqfFcumXpj5mLn3hSC8iw2MUr6Gx8EcKng1dD7i6hg==", "dev": true, "requires": { "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-factory-space": { @@ -2366,15 +2475,16 @@ } }, "micromark-factory-title": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.0.tgz", - "integrity": "sha512-flvC7Gx0dWVWorXuBl09Cr3wB5FTuYec8pMGVySIp2ZlqTcIjN/lFohZcP0EG//krTptm34kozHk7aK/CleCfA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-factory-title/-/micromark-factory-title-1.0.2.tgz", + "integrity": "sha512-zily+Nr4yFqgMGRKLpTVsNl5L4PMu485fGFDOQJQBl2NFpjGte1e86zC0da93wf97jrc4+2G2GQudFMHn3IX+A==", "dev": true, "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-factory-whitespace": { @@ -2438,10 +2548,22 @@ "micromark-util-symbol": "^1.0.0" } }, + "micromark-util-decode-string": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", + "dev": true, + "requires": { + "decode-named-character-reference": "^1.0.0", + "micromark-util-character": "^1.0.0", + "micromark-util-decode-numeric-character-reference": "^1.0.0", + "micromark-util-symbol": "^1.0.0" + } + }, "micromark-util-encode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", - "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", "dev": true }, "micromark-util-html-tag-name": { @@ -2480,26 +2602,33 @@ } }, "micromark-util-subtokenize": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.0.tgz", - "integrity": "sha512-EsnG2qscmcN5XhkqQBZni/4oQbLFjz9yk3ZM/P8a3YUjwV6+6On2wehr1ALx0MxK3+XXXLTzuBKHDFeDFYRdgQ==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-subtokenize/-/micromark-util-subtokenize-1.0.2.tgz", + "integrity": "sha512-d90uqCnXp/cy4G881Ub4psE57Sf8YD0pim9QdjCRNjfas2M1u6Lbt+XZK9gnHL2XFhnozZiEdCa9CNfXSfQ6xA==", "dev": true, "requires": { "micromark-util-chunked": "^1.0.0", "micromark-util-symbol": "^1.0.0", - "micromark-util-types": "^1.0.0" + "micromark-util-types": "^1.0.0", + "uvu": "^0.5.0" } }, "micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "dev": true }, "micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", + "dev": true + }, + "mri": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mri/-/mri-1.2.0.tgz", + "integrity": "sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA==", "dev": true }, "ms": { @@ -2517,20 +2646,6 @@ "boolbase": "^1.0.0" } }, - "parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", - "dev": true, - "requires": { - "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", - "character-reference-invalid": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - } - }, "parse5": { "version": "6.0.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", @@ -2538,15 +2653,15 @@ "dev": true }, "property-information": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.0.1.tgz", - "integrity": "sha512-F4WUUAF7fMeF4/JUFHNBWDaKDXi2jbvqBW/y6o5wsf3j19wTZ7S60TmtB5HoBhtgw7NKQRMWuz5vk2PR0CygUg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/property-information/-/property-information-6.1.1.tgz", + "integrity": "sha512-hrzC564QIl0r0vy4l6MvRLhafmUowhO/O3KgVSoXIbbA2Sz4j8HGpJc6T2cubRVwMwpdiG/vKGfhT4IixmKN9w==", "dev": true }, "rehype-raw": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.0.tgz", - "integrity": "sha512-12j2UiiYJgZFdjnHDny77NY5BF3eW4Jsl0vtgL1DWdTzcHjPpbhumU+GtPUdivEWwQc8x9OdEuO0oxaGz7Tvyg==", + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/rehype-raw/-/rehype-raw-6.1.1.tgz", + "integrity": "sha512-d6AKtisSRtDRX4aSPsJGTfnzrX2ZkHQLE5kiUuGOeEoLpbEulFF4hj0mLPbsa+7vmguDKOVVEQdHKDSwoaIDsQ==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -2555,9 +2670,9 @@ } }, "rehype-stringify": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.2.tgz", - "integrity": "sha512-BuVA6lAEYtOpXO2xuHLohAzz8UNoQAxAqYRqh4QEEtU39Co+P1JBZhw6wXA9hMWp+JLcmrxWH8+UKcNSr443Fw==", + "version": "9.0.3", + "resolved": "https://registry.npmjs.org/rehype-stringify/-/rehype-stringify-9.0.3.tgz", + "integrity": "sha512-kWiZ1bgyWlgOxpqD5HnxShKAdXtb2IUljn3hQAhySeak6IOQPPt6DeGnsIh4ixm7yKJWzm8TXFuC/lPfcWHJqw==", "dev": true, "requires": { "@types/hast": "^2.0.0", @@ -2566,9 +2681,9 @@ } }, "remark-frontmatter": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.0.tgz", - "integrity": "sha512-0J+2czWAS9sz9baJJel4tTUnNhMI7wYgih99Hxhdeq2GpdI1Ctu0iol6zAsWw5xa+jLsZXNiwEnnJAJo3XX3hw==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/remark-frontmatter/-/remark-frontmatter-4.0.1.tgz", + "integrity": "sha512-38fJrB0KnmD3E33a5jZC/5+gGAC2WKNiPw1/fdXJvijBlhA7RCsvJklrYJakS0HedninvaCYW8lQGf9C918GfA==", "dev": true, "requires": { "@types/mdast": "^3.0.0", @@ -2578,34 +2693,34 @@ } }, "remark-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-2.0.0.tgz", - "integrity": "sha512-waIv4Tjcd2CTUDxKRYzuPyIHw1FoX4H2GjXAzXV9PxQWb+dU4fJivd/FZ+nxyzPARrqTjMIkwIwPoWNbpBhjcQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dev": true, "requires": { "@types/mdast": "^3.0.0", - "mdast-util-gfm": "^1.0.0", - "micromark-extension-gfm": "^1.0.0", + "mdast-util-gfm": "^2.0.0", + "micromark-extension-gfm": "^2.0.0", "unified": "^10.0.0" } }, "remark-html": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-14.0.1.tgz", - "integrity": "sha512-a/x5bTlFrkwYkz43zuJIk0m0IuS5Rx8zLztGwdzmAdUj0Hsi4C4nkJ8gTQRNXY/ET/gMrqQORMMI0arRItq/aQ==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/remark-html/-/remark-html-15.0.1.tgz", + "integrity": "sha512-7ta5UPRqj8nP0GhGMYUAghZ/DRno7dgq7alcW90A7+9pgJsXzGJlFgwF8HOP1b1tMgT3WwbeANN+CaTimMfyNQ==", "dev": true, "requires": { "@types/mdast": "^3.0.0", "hast-util-sanitize": "^4.0.0", "hast-util-to-html": "^8.0.0", - "mdast-util-to-hast": "^11.0.0", + "mdast-util-to-hast": "^12.0.0", "unified": "^10.0.0" } }, "remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "dev": true, "requires": { "@types/mdast": "^3.0.0", @@ -2614,17 +2729,26 @@ } }, "remark-rehype": { - "version": "9.0.0", - "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-9.0.0.tgz", - "integrity": "sha512-SFA+mPWu45ynFPKeT3h5eNNVAYoMp3wizr3KSKh1IQ9L6dLSyD25/df6/vv8EW8ji3O3dnZGdbLQl592Tn+ydg==", + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/remark-rehype/-/remark-rehype-10.1.0.tgz", + "integrity": "sha512-EFmR5zppdBp0WQeDVZ/b66CWJipB2q2VLNFMabzDSGR66Z2fQii83G5gTBbgGEnEEA0QRussvrFHxk1HWGJskw==", "dev": true, "requires": { "@types/hast": "^2.0.0", "@types/mdast": "^3.0.0", - "mdast-util-to-hast": "^11.0.0", + "mdast-util-to-hast": "^12.1.0", "unified": "^10.0.0" } }, + "sade": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", + "dev": true, + "requires": { + "mri": "^1.1.0" + } + }, "space-separated-tokens": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/space-separated-tokens/-/space-separated-tokens-2.0.1.tgz", @@ -2632,13 +2756,13 @@ "dev": true }, "stringify-entities": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.1.tgz", - "integrity": "sha512-gmMQxKXPWIO3NXNSPyWNhlYcBNGpPA/487D+9dLPnU4xBnIrnHdr8cv5rGJOS/1BRxEXRb7uKwg7BA36IWV7xg==", + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/stringify-entities/-/stringify-entities-4.0.2.tgz", + "integrity": "sha512-MTxTVcEkorNtBbNpoFJPEh0kKdM6+QbMjLbaxmvaPMmayOXdr/AIVIIJX7FReUVweRBFJfZepK4A4AKgwuFpMQ==", "dev": true, "requires": { "character-entities-html4": "^2.0.0", - "character-entities-legacy": "^2.0.0" + "character-entities-legacy": "^3.0.0" } }, "style-to-object": { @@ -2651,9 +2775,9 @@ } }, "to-vfile": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.2.tgz", - "integrity": "sha512-7WL+coet3qyaYb5vrVrfLtOUHgNv9E1D5SIsyVKmHKcgZefy77WMQRk7FByqGKNInoHOlY6xkTGymo29AwjUKg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", "dev": true, "requires": { "is-buffer": "^2.0.0", @@ -2667,9 +2791,9 @@ "dev": true }, "unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2709,11 +2833,12 @@ "dev": true }, "unist-util-select": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.0.tgz", - "integrity": "sha512-UJsER0ubbBy8KR+5zZpcF/9/aApWOzjNqfseMjcw1h0wAUqbxAf56mMewspAqXtGKiwBylnYB+PbD/XqwcYrWg==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/unist-util-select/-/unist-util-select-4.0.1.tgz", + "integrity": "sha512-zPozyEo5vr1csbHf1TqlQrnuLVJ0tNMo63og3HrnINh2+OIDAgQpqHVr+0BMw1DIVHJV8ft/e6BZqtvD1Y5enw==", "dev": true, "requires": { + "@types/unist": "^2.0.0", "css-selector-parser": "^1.0.0", "nth-check": "^2.0.0", "unist-util-is": "^5.0.0", @@ -2730,9 +2855,9 @@ } }, "unist-util-visit": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.0.0.tgz", - "integrity": "sha512-3HWTvrtU10/E7qgPznBfiOyG0TXj9W8c1GSfaI8L9GkaG1pLePiQPZ7E35a0R3ToQ/zcy4Im6aZ9WBgOTnv1MQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit/-/unist-util-visit-4.1.0.tgz", + "integrity": "sha512-n7lyhFKJfVZ9MnKtqbsqkQEk5P1KShj0+//V7mAcoI6bpbUjh3C/OG8HVD+pBihfh6Ovl01m8dkcv9HNqYajmQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2741,9 +2866,9 @@ }, "dependencies": { "unist-util-visit-parents": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.0.0.tgz", - "integrity": "sha512-CVaLOYPM/EaFTYMytbaju3Tw4QI3DHnHFnL358FkEu0hZOzSm/hqBdVwOQDR60jF5ZzhB1tlZlRH0ll/yekZIQ==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/unist-util-visit-parents/-/unist-util-visit-parents-5.1.0.tgz", + "integrity": "sha512-y+QVLcY5eR/YVpqDsLf/xh9R3Q2Y4HxkZTp7ViLDU6WtJCEcPmRzW1gpdWDCDIqIlhuPDXOgttqPlykrHYDekg==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2762,10 +2887,22 @@ "unist-util-is": "^5.0.0" } }, + "uvu": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz", + "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==", + "dev": true, + "requires": { + "dequal": "^2.0.0", + "diff": "^5.0.0", + "kleur": "^4.0.3", + "sade": "^1.7.3" + } + }, "vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.0.tgz", + "integrity": "sha512-Tj44nY/48OQvarrE4FAjUfrv7GZOYzPbl5OD65HxVKwLJKMPU7zmfV8cCgCnzKWnSfYG2f3pxu+ALqs7j22xQQ==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2785,9 +2922,9 @@ } }, "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.0.tgz", + "integrity": "sha512-4QJbBk+DkPEhBXq3f260xSaWtjE4gPKOfulzfMFF8ZNwaPZieWsg3iVlcmF04+eebzpcpeXOOFMfrYzJHVYg+g==", "dev": true, "requires": { "@types/unist": "^2.0.0", @@ -2795,9 +2932,9 @@ } }, "web-namespaces": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.0.tgz", - "integrity": "sha512-dE7ELZRVWh0ceQsRgkjLgsAvwTuv3kcjSY/hLjqL0llleUlQBDjE9JkB9FCBY5F2mnFEwiyJoowl8+NVGHe8dw==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/web-namespaces/-/web-namespaces-2.0.1.tgz", + "integrity": "sha512-bKr1DkiNa2krS7qxNtdrtHAmzuYGFQLiQ13TsorsdT6ULTkPLKuu5+GsFpDlg6JFjUTwX2DyhMPG2be8uPrqsQ==", "dev": true }, "zwitch": { diff --git a/tools/doc/package.json b/tools/doc/package.json index 444576a55f1288..af39f927b4dc56 100644 --- a/tools/doc/package.json +++ b/tools/doc/package.json @@ -7,19 +7,19 @@ "node": ">=14.8.0" }, "devDependencies": { - "highlight.js": "^11.2.0", + "highlight.js": "^11.4.0", "js-yaml": "^4.1.0", - "rehype-raw": "^6.1.0", - "rehype-stringify": "^9.0.2", - "remark-frontmatter": "^4.0.0", - "remark-gfm": "^2.0.0", - "remark-html": "^14.0.1", - "remark-parse": "^10.0.0", - "remark-rehype": "^9.0.0", - "to-vfile": "^7.2.2", - "unified": "^10.1.0", - "unist-util-select": "^4.0.0", - "unist-util-visit": "^4.0.0" + "rehype-raw": "^6.1.1", + "rehype-stringify": "^9.0.3", + "remark-frontmatter": "^4.0.1", + "remark-gfm": "^3.0.1", + "remark-html": "^15.0.1", + "remark-parse": "^10.0.1", + "remark-rehype": "^10.1.0", + "to-vfile": "^7.2.3", + "unified": "^10.1.1", + "unist-util-select": "^4.0.1", + "unist-util-visit": "^4.1.0" }, "bin": { "node-doc-generator": "generate.js" diff --git a/tools/doc/type-parser.mjs b/tools/doc/type-parser.mjs index 3cdee188c01e7e..e17bf077d70f3c 100644 --- a/tools/doc/type-parser.mjs +++ b/tools/doc/type-parser.mjs @@ -208,9 +208,13 @@ const customTypesMap = { 'Stream': 'stream.html#stream', 'stream.Duplex': 'stream.html#class-streamduplex', + 'Duplex': 'stream.html#class-streamduplex', 'stream.Readable': 'stream.html#class-streamreadable', + 'Readable': 'stream.html#class-streamreadable', 'stream.Transform': 'stream.html#class-streamtransform', + 'Transform': 'stream.html#class-streamtransform', 'stream.Writable': 'stream.html#class-streamwritable', + 'Writable': 'stream.html#class-streamwritable', 'Immediate': 'timers.html#class-immediate', 'Timeout': 'timers.html#class-timeout', @@ -266,6 +270,11 @@ const customTypesMap = { 'webstreams.md#class-textencoderstream', 'TextDecoderStream': 'webstreams.md#class-textdecoderstream', + + 'FormData': 'https://developer.mozilla.org/en-US/docs/Web/API/FormData', + 'Headers': 'https://developer.mozilla.org/en-US/docs/Web/API/Headers', + 'Response': 'https://developer.mozilla.org/en-US/docs/Web/API/Response', + 'Request': 'https://developer.mozilla.org/en-US/docs/Web/API/Request', }; const arrayPart = /(?:\[])+$/; diff --git a/tools/eslint-rules/crypto-check.js b/tools/eslint-rules/crypto-check.js index def002ef4c6eda..39d29bba6e0a3d 100644 --- a/tools/eslint-rules/crypto-check.js +++ b/tools/eslint-rules/crypto-check.js @@ -1,9 +1,6 @@ /** * @fileoverview Check that common.hasCrypto is used if crypto, tls, * https, or http2 modules are required. - * - * This rule can be ignored using // eslint-disable-line crypto-check - * * @author Daniel Bevenius */ 'use strict'; diff --git a/tools/eslint-rules/documented-deprecation-codes.js b/tools/eslint-rules/documented-deprecation-codes.js new file mode 100644 index 00000000000000..3317f3c983cc5e --- /dev/null +++ b/tools/eslint-rules/documented-deprecation-codes.js @@ -0,0 +1,37 @@ +'use strict'; + +const fs = require('fs'); +const path = require('path'); +const { isDefiningDeprecation } = require('./rules-utils.js'); + +const patternToMatch = /^DEP\d+$/; + +const mdFile = 'doc/api/deprecations.md'; +const doc = fs.readFileSync(path.resolve(__dirname, '../..', mdFile), 'utf8'); + +function isInDoc(code) { + return doc.includes(`### ${code}:`); +} + +function getDeprecationCode(node) { + return node.expression.arguments[2].value; +} + +module.exports = { + create: function(context) { + return { + ExpressionStatement: function(node) { + if (!isDefiningDeprecation(node) || !getDeprecationCode(node)) return; + const code = getDeprecationCode(node); + if (!patternToMatch.test(code)) { + const message = `"${code}" does not match the expected pattern`; + context.report({ node, message }); + } + if (!isInDoc(code)) { + const message = `"${code}" is not documented in ${mdFile}`; + context.report({ node, message }); + } + }, + }; + }, +}; diff --git a/tools/eslint-rules/no-duplicate-requires.js b/tools/eslint-rules/no-duplicate-requires.js index 8c4b7a4c273457..6e149edceb8d6e 100644 --- a/tools/eslint-rules/no-duplicate-requires.js +++ b/tools/eslint-rules/no-duplicate-requires.js @@ -10,18 +10,19 @@ const { isRequireCall, isString } = require('./rules-utils.js'); // Rule Definition //------------------------------------------------------------------------------ +const secondLevelTypes = [ + 'FunctionDeclaration', 'FunctionExpression', 'ArrowFunctionExpression', + 'ClassBody', 'MethodDefinition', +]; function isTopLevel(node) { - do { - if (node.type === 'FunctionDeclaration' || - node.type === 'FunctionExpression' || - node.type === 'ArrowFunctionExpression' || - node.type === 'ClassBody' || - node.type === 'MethodDefinition') { - return false; + while (!secondLevelTypes.includes(node.type)) { + node = node.parent; + if (!node) { + return true; } - } while (node = node.parent); - return true; + } + return false; } module.exports = (context) => { diff --git a/tools/eslint-rules/prefer-primordials.js b/tools/eslint-rules/prefer-primordials.js index 02b00a7e3b1f12..d2531556de225d 100644 --- a/tools/eslint-rules/prefer-primordials.js +++ b/tools/eslint-rules/prefer-primordials.js @@ -1,6 +1,6 @@ /** * @fileoverview We shouldn't use global built-in object for security and - * performance reason. This linter rule reports replacable codes + * performance reason. This linter rule reports replaceable codes * that can be replaced with primordials. * @author Leko */ @@ -54,11 +54,21 @@ function getDestructuringAssignmentParent(scope, node) { ) { return null; } - return declaration.defs[0].node.init.name; + return declaration.defs[0].node.init; } -const identifierSelector = - '[type!=VariableDeclarator][type!=MemberExpression]>Identifier'; +const parentSelectors = [ + // We want to select identifiers that refer to other references, not the ones + // that create a new reference. + 'ClassDeclaration', + 'FunctionDeclaration', + 'LabeledStatement', + 'MemberExpression', + 'MethodDefinition', + 'SwitchCase', + 'VariableDeclarator', +]; +const identifierSelector = parentSelectors.map((selector) => `[type!=${selector}]`).join('') + '>Identifier'; module.exports = { meta: { @@ -90,21 +100,29 @@ module.exports = { reported = new Set(); }, [identifierSelector](node) { + if (node.parent.type === 'Property' && node.parent.key === node) { + // If the identifier is the key for this property declaration, it + // can't be referring to a primordials member. + return; + } if (reported.has(node.range[0])) { return; } const name = node.name; - const parentName = getDestructuringAssignmentParent( + const parent = getDestructuringAssignmentParent( context.getScope(), node ); + const parentName = parent?.name; if (!isTarget(nameMap, name) && !isTarget(nameMap, parentName)) { return; } const defs = globalScope.set.get(name)?.defs; if (parentName && isTarget(nameMap, parentName)) { - if (!defs || defs[0].name.name !== 'primordials') { + if (defs?.[0].name.name !== 'primordials' && + !reported.has(parent.range[0]) && + parent.parent?.id?.type !== 'Identifier') { reported.add(node.range[0]); const into = renameMap.get(name); context.report({ @@ -147,7 +165,20 @@ module.exports = { } }); } - } + }, + VariableDeclarator(node) { + const name = node.init?.name; + if (name !== undefined && isTarget(nameMap, name) && + node.id.type === 'Identifier' && + !globalScope.set.get(name)?.defs.length) { + reported.add(node.init.range[0]); + context.report({ + node, + messageId: 'error', + data: { name }, + }); + } + }, }; } }; diff --git a/tools/eslint-rules/require-common-first.js b/tools/eslint-rules/require-common-first.js index 4096ee27710781..15a696586cbac7 100644 --- a/tools/eslint-rules/require-common-first.js +++ b/tools/eslint-rules/require-common-first.js @@ -17,8 +17,8 @@ module.exports = function(context) { /** * Function to check if the path is a module and return its name. - * @param {String} str The path to check - * @returns {String} module name + * @param {string} str The path to check + * @returns {string} module name */ function getModuleName(str) { if (str === '../common/index.mjs') { @@ -32,7 +32,7 @@ module.exports = function(context) { * Function to check if a node has an argument that is a module and * return its name. * @param {ASTNode} node The node to check - * @returns {undefined|String} module name or undefined + * @returns {undefined | string} module name or undefined */ function getModuleNameFromCall(node) { // Node has arguments and first argument is string diff --git a/tools/eslint-rules/required-modules.js b/tools/eslint-rules/required-modules.js index 06c998c7f5a182..93a5cb340edab2 100644 --- a/tools/eslint-rules/required-modules.js +++ b/tools/eslint-rules/required-modules.js @@ -27,8 +27,8 @@ module.exports = function(context) { /** * Function to check if the path is a required module and return its name. - * @param {String} str The path to check - * @returns {undefined|String} required module name or undefined + * @param {string} str The path to check + * @returns {undefined | string} required module name or undefined */ function getRequiredModuleName(str) { const match = requiredModules.find(([, test]) => { @@ -41,7 +41,7 @@ module.exports = function(context) { * Function to check if a node has an argument that is a required module and * return its name. * @param {ASTNode} node The node to check - * @returns {undefined|String} required module name or undefined + * @returns {undefined | string} required module name or undefined */ function getRequiredModuleNameFromCall(node) { // Node has arguments and first argument is string diff --git a/tools/eslint-rules/rules-utils.js b/tools/eslint-rules/rules-utils.js index 462ab7c2ff3ab8..c5362c96cdaebe 100644 --- a/tools/eslint-rules/rules-utils.js +++ b/tools/eslint-rules/rules-utils.js @@ -20,6 +20,14 @@ module.exports.isDefiningError = function(node) { node.expression.arguments.length !== 0; }; +module.exports.isDefiningDeprecation = function(node) { + return node.expression && + node.expression.type === 'CallExpression' && + node.expression.callee && + node.expression.callee.name.endsWith('deprecate') && + node.expression.arguments.length !== 0; +}; + /** * Returns true if any of the passed in modules are used in * require calls. @@ -30,9 +38,9 @@ module.exports.isRequired = function(node, modules) { }; /** -* Return true if common module is required -* in AST Node under inspection -*/ + * Return true if common module is required + * in AST Node under inspection + */ const commonModuleRegExp = new RegExp(/^(\.\.\/)*common(\.js)?$/); module.exports.isCommonModule = function(node) { return isRequireCall(node) && diff --git a/tools/find-inactive-collaborators.mjs b/tools/find-inactive-collaborators.mjs index 3925f210e7c5e3..71a00b970a9732 100755 --- a/tools/find-inactive-collaborators.mjs +++ b/tools/find-inactive-collaborators.mjs @@ -8,7 +8,7 @@ import cp from 'node:child_process'; import fs from 'node:fs'; import readline from 'node:readline'; -const SINCE = +process.argv[2] || 5000; +const SINCE = process.argv[2] || '18 months ago'; async function runGitCommand(cmd, mapFn) { const childProcess = cp.spawn('/bin/sh', ['-c', cmd], { @@ -42,20 +42,14 @@ async function runGitCommand(cmd, mapFn) { // Get all commit authors during the time period. const authors = await runGitCommand( - `git shortlog -n -s --email --max-count="${SINCE}" HEAD`, - (line) => line.trim().split('\t', 2)[1] -); - -// Get all commit landers during the time period. -const landers = await runGitCommand( - `git shortlog -n -s -c --email --max-count="${SINCE}" HEAD`, + `git shortlog -n -s --email --since="${SINCE}" HEAD`, (line) => line.trim().split('\t', 2)[1] ); // Get all approving reviewers of landed commits during the time period. const approvingReviewers = await runGitCommand( - `git log --max-count="${SINCE}" | egrep "^ Reviewed-By: "`, - (line) => /^ Reviewed-By: ([^<]+)/.exec(line)[1].trim() + `git log --since="${SINCE}" | egrep "^ Reviewed-By: "`, + (line) => /^ {4}Reviewed-By: ([^<]+)/.exec(line)[1].trim() ); async function getCollaboratorsFromReadme() { @@ -78,7 +72,7 @@ async function getCollaboratorsFromReadme() { foundCollaboratorHeading = true; } if (line.startsWith(' **') && isCollaborator) { - const [, name, email] = /^ \*\*([^*]+)\*\* \\<(.+)>/.exec(line); + const [, name, email] = /^ {2}\*\*([^*]+)\*\* <<(.+)>>/.exec(line); const mailmap = await runGitCommand( `git check-mailmap '${name} <${email}>'` ); @@ -142,7 +136,7 @@ async function moveCollaboratorToEmeritus(peopleToMove) { if (line.startsWith('* ')) { collaboratorFirstLine = line; } else if (line.startsWith(' **')) { - const [, name, email] = /^ \*\*([^*]+)\*\* \\<(.+)>/.exec(line); + const [, name, email] = /^ {2}\*\*([^*]+)\*\* <<(.+)>>/.exec(line); if (peopleToMove.some((entry) => { return entry.name === name && entry.email === email; })) { @@ -182,23 +176,22 @@ async function moveCollaboratorToEmeritus(peopleToMove) { // Get list of current collaborators from README.md. const collaborators = await getCollaboratorsFromReadme(); -console.log(`In the last ${SINCE} commits:\n`); +console.log(`Since ${SINCE}:\n`); console.log(`* ${authors.size.toLocaleString()} authors have made commits.`); -console.log(`* ${landers.size.toLocaleString()} landers have landed commits.`); console.log(`* ${approvingReviewers.size.toLocaleString()} reviewers have approved landed commits.`); console.log(`* ${collaborators.length.toLocaleString()} collaborators currently in the project.`); const inactive = collaborators.filter((collaborator) => !authors.has(collaborator.mailmap) && - !landers.has(collaborator.mailmap) && !approvingReviewers.has(collaborator.name) ); if (inactive.length) { console.log('\nInactive collaborators:\n'); console.log(inactive.map((entry) => `* ${entry.name}`).join('\n')); - console.log('\nGenerating new README.md file...'); - const newReadmeText = await moveCollaboratorToEmeritus(inactive); - fs.writeFileSync(new URL('../README.md', import.meta.url), newReadmeText); - console.log('Updated README.md generated. Please commit these changes.'); + if (process.env.GITHUB_ACTIONS) { + console.log('\nGenerating new README.md file...'); + const newReadmeText = await moveCollaboratorToEmeritus(inactive); + fs.writeFileSync(new URL('../README.md', import.meta.url), newReadmeText); + } } diff --git a/tools/find-inactive-tsc.mjs b/tools/find-inactive-tsc.mjs new file mode 100755 index 00000000000000..5c4c37038988b0 --- /dev/null +++ b/tools/find-inactive-tsc.mjs @@ -0,0 +1,273 @@ +#!/usr/bin/env node + +// Identify inactive TSC members. + +// From the TSC Charter: +// A TSC member is automatically removed from the TSC if, during a 3-month +// period, all of the following are true: +// * They attend fewer than 25% of the regularly scheduled meetings. +// * They do not participate in any TSC votes. + +import cp from 'node:child_process'; +import fs from 'node:fs'; +import path from 'node:path'; +import readline from 'node:readline'; + +const SINCE = process.argv[2] || '3 months ago'; + +async function runGitCommand(cmd, options = {}) { + const childProcess = cp.spawn('/bin/sh', ['-c', cmd], { + cwd: options.cwd ?? new URL('..', import.meta.url), + encoding: 'utf8', + stdio: ['inherit', 'pipe', 'inherit'], + }); + const lines = readline.createInterface({ + input: childProcess.stdout, + }); + const errorHandler = new Promise( + (_, reject) => childProcess.on('error', reject) + ); + let returnValue = options.mapFn ? new Set() : ''; + await Promise.race([errorHandler, Promise.resolve()]); + // If no mapFn, return the value. If there is a mapFn, use it to make a Set to + // return. + for await (const line of lines) { + await Promise.race([errorHandler, Promise.resolve()]); + if (options.mapFn) { + const val = options.mapFn(line); + if (val) { + returnValue.add(val); + } + } else { + returnValue += line; + } + } + return Promise.race([errorHandler, Promise.resolve(returnValue)]); +} + +async function getTscFromReadme() { + const readmeText = readline.createInterface({ + input: fs.createReadStream(new URL('../README.md', import.meta.url)), + crlfDelay: Infinity, + }); + const returnedArray = []; + let foundTscHeading = false; + for await (const line of readmeText) { + // If we've found the TSC heading already, stop processing at the next + // heading. + if (foundTscHeading && line.startsWith('#')) { + break; + } + + const isTsc = foundTscHeading && line.length; + + if (line === '### TSC (Technical Steering Committee)') { + foundTscHeading = true; + } + if (line.startsWith('* ') && isTsc) { + const handle = line.match(/^\* \[([^\]]+)]/)[1]; + returnedArray.push(handle); + } + } + + if (!foundTscHeading) { + throw new Error('Could not find TSC section of README'); + } + + return returnedArray; +} + +async function getAttendance(tscMembers, meetings) { + const attendance = {}; + for (const member of tscMembers) { + attendance[member] = 0; + } + for (const meeting of meetings) { + // Get the file contents. + const meetingFile = + await fs.promises.readFile(path.join('.tmp', meeting), 'utf8'); + // Extract the attendee list. + const startMarker = '## Present'; + const start = meetingFile.indexOf(startMarker) + startMarker.length; + const end = meetingFile.indexOf('## Agenda'); + meetingFile.substring(start, end).trim().split('\n') + .map((line) => { + const match = line.match(/@(\S+)/); + if (match) { + return match[1]; + } + // Using `console.warn` so that stdout output is not generated. + // The stdout output is consumed in find-inactive-tsc.yml. + console.warn(`Attendee entry does not contain GitHub handle: ${line}`); + return ''; + }) + .filter((handle) => tscMembers.includes(handle)) + .forEach((handle) => { attendance[handle]++; }); + } + return attendance; +} + +async function getVotingRecords(tscMembers, votes) { + const votingRecords = {}; + for (const member of tscMembers) { + votingRecords[member] = 0; + } + for (const vote of votes) { + // Get the vote data. + const voteData = JSON.parse( + await fs.promises.readFile(path.join('.tmp', vote), 'utf8') + ); + for (const member in voteData.votes) { + if (tscMembers.includes(member)) { + votingRecords[member]++; + } + } + } + return votingRecords; +} + +async function moveTscToEmeritus(peopleToMove) { + const readmeText = readline.createInterface({ + input: fs.createReadStream(new URL('../README.md', import.meta.url)), + crlfDelay: Infinity, + }); + let fileContents = ''; + let inTscSection = false; + let inTscEmeritusSection = false; + let memberFirstLine = ''; + const textToMove = []; + let moveToInactive = false; + for await (const line of readmeText) { + // If we've been processing TSC emeriti and we reach the end of + // the list, print out the remaining entries to be moved because they come + // alphabetically after the last item. + if (inTscEmeritusSection && line === '' && + fileContents.endsWith('>\n')) { + while (textToMove.length) { + fileContents += textToMove.pop(); + } + } + + // If we've found the TSC heading already, stop processing at the + // next heading. + if (line.startsWith('#')) { + inTscSection = false; + inTscEmeritusSection = false; + } + + const isTsc = inTscSection && line.length; + const isTscEmeritus = inTscEmeritusSection && line.length; + + if (line === '### TSC (Technical Steering Committee)') { + inTscSection = true; + } + if (line === '### TSC emeriti') { + inTscEmeritusSection = true; + } + + if (isTsc) { + if (line.startsWith('* ')) { + memberFirstLine = line; + const match = line.match(/^\* \[([^\]]+)/); + if (match && peopleToMove.includes(match[1])) { + moveToInactive = true; + } + } else if (line.startsWith(' **')) { + if (moveToInactive) { + textToMove.push(`${memberFirstLine}\n${line}\n`); + moveToInactive = false; + } else { + fileContents += `${memberFirstLine}\n${line}\n`; + } + } else { + fileContents += `${line}\n`; + } + } + + if (isTscEmeritus) { + if (line.startsWith('* ')) { + memberFirstLine = line; + } else if (line.startsWith(' **')) { + const currentLine = `${memberFirstLine}\n${line}\n`; + // If textToMove is empty, this still works because when undefined is + // used in a comparison with <, the result is always false. + while (textToMove[0] < currentLine) { + fileContents += textToMove.shift(); + } + fileContents += currentLine; + } else { + fileContents += `${line}\n`; + } + } + + if (!isTsc && !isTscEmeritus) { + fileContents += `${line}\n`; + } + } + + return fileContents; +} + +// Get current TSC members, then get TSC members at start of period. Only check +// TSC members who are on both lists. This way, we don't flag someone who has +// only been on the TSC for a week and therefore hasn't attended any meetings. +const tscMembersAtEnd = await getTscFromReadme(); + +const startCommit = await runGitCommand(`git rev-list -1 --before '${SINCE}' HEAD`); +await runGitCommand(`git checkout ${startCommit} -- README.md`); +const tscMembersAtStart = await getTscFromReadme(); +await runGitCommand('git reset HEAD README.md'); +await runGitCommand('git checkout -- README.md'); + +const tscMembers = tscMembersAtEnd.filter( + (memberAtEnd) => tscMembersAtStart.includes(memberAtEnd) +); + +// Get all meetings since SINCE. +// Assumes that the TSC repo is cloned in the .tmp dir. +const meetings = await runGitCommand( + `git whatchanged --since '${SINCE}' --name-only --pretty=format: meetings`, + { cwd: '.tmp', mapFn: (line) => line } +); + +// Get TSC meeting attendance. +const attendance = await getAttendance(tscMembers, meetings); +const lightAttendance = tscMembers.filter( + (member) => attendance[member] < meetings.size * 0.25 +); + +// Get all votes since SINCE. +// Assumes that the TSC repo is cloned in the .tmp dir. +const votes = await runGitCommand( + `git whatchanged --since '${SINCE}' --name-only --pretty=format: votes/*.json`, + { cwd: '.tmp', mapFn: (line) => line } +); + +// Check voting record. +const votingRecords = await getVotingRecords(tscMembers, votes); +const noVotes = tscMembers.filter( + (member) => votingRecords[member] === 0 +); + +const inactive = lightAttendance.filter((member) => noVotes.includes(member)); + +if (inactive.length) { + // The stdout output is consumed in find-inactive-tsc.yml. If format of output + // changes, find-inactive-tsc.yml may need to be updated. + console.log(`INACTIVE_TSC_HANDLES=${inactive.map((entry) => '@' + entry).join(' ')}`); + const commitDetails = inactive.map((entry) => { + let details = `Since ${SINCE}, `; + details += `${entry} attended ${attendance[entry]} out of ${meetings.size} meetings`; + details += ` and voted in ${votingRecords[entry]} of ${votes.size} votes.`; + return details; + }); + console.log(`DETAILS_FOR_COMMIT_BODY=${commitDetails.join(' ')}`); + + if (process.env.GITHUB_ACTIONS) { + // Using console.warn() to avoid messing with find-inactive-tsc which + // consumes stdout. + console.warn('Generating new README.md file...'); + const newReadmeText = await moveTscToEmeritus(inactive); + fs.writeFileSync(new URL('../README.md', import.meta.url), newReadmeText); + } +} diff --git a/tools/gyp/.github/workflows/Python_tests.yml b/tools/gyp/.github/workflows/Python_tests.yml index 92303b635f2cfa..40ff521a6fd0b5 100644 --- a/tools/gyp/.github/workflows/Python_tests.yml +++ b/tools/gyp/.github/workflows/Python_tests.yml @@ -11,7 +11,7 @@ jobs: max-parallel: 8 matrix: os: [macos-latest, ubuntu-latest] # , windows-latest] - python-version: [3.6, 3.7, 3.8, 3.9] + python-version: ["3.6", "3.7", "3.8", "3.9", "3.10"] steps: - uses: actions/checkout@v2 - name: Set up Python ${{ matrix.python-version }} diff --git a/tools/gyp/.github/workflows/node-gyp.yml b/tools/gyp/.github/workflows/node-gyp.yml index bd7c85ffda9169..0c26a3d7de3d0e 100644 --- a/tools/gyp/.github/workflows/node-gyp.yml +++ b/tools/gyp/.github/workflows/node-gyp.yml @@ -8,7 +8,7 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python: [3.6, 3.9] + python: ["3.6", "3.10"] runs-on: ${{ matrix.os }} steps: diff --git a/tools/gyp/CHANGELOG.md b/tools/gyp/CHANGELOG.md index b7d55ed65551b6..57d691c1812d38 100644 --- a/tools/gyp/CHANGELOG.md +++ b/tools/gyp/CHANGELOG.md @@ -1,5 +1,12 @@ # Changelog +### [0.10.1](https://www.github.com/nodejs/gyp-next/compare/v0.10.0...v0.10.1) (2021-11-24) + + +### Bug Fixes + +* **make:** only generate makefile for multiple toolsets if requested ([#133](https://www.github.com/nodejs/gyp-next/issues/133)) ([f463a77](https://www.github.com/nodejs/gyp-next/commit/f463a77705973289ea38fec1b244c922ac438e26)) + ## [0.10.0](https://www.github.com/nodejs/gyp-next/compare/v0.9.6...v0.10.0) (2021-08-26) diff --git a/tools/gyp/pylib/gyp/__init__.py b/tools/gyp/pylib/gyp/__init__.py index b1cc704dfdc6f5..f44859d1b005ee 100755 --- a/tools/gyp/pylib/gyp/__init__.py +++ b/tools/gyp/pylib/gyp/__init__.py @@ -104,8 +104,12 @@ def Load( default_variables.setdefault(key, val) output_dir = params["options"].generator_output or params["options"].toplevel_dir - default_variables.setdefault("PRODUCT_DIR_ABS", os.path.join(output_dir, - default_variables['CONFIGURATION_NAME'])) + if (default_variables['GENERATOR'] == 'ninja'): + default_variables.setdefault("PRODUCT_DIR_ABS", os.path.join(output_dir, + 'out', default_variables['build_type'])) + else: + default_variables.setdefault("PRODUCT_DIR_ABS", os.path.join(output_dir, + default_variables['build_type'])) # Give the generator the opportunity to set additional variables based on # the params it will receive in the output phase. diff --git a/tools/gyp/pylib/gyp/generator/make.py b/tools/gyp/pylib/gyp/generator/make.py index 4ea71ca9ac1e31..b15b1b83320235 100644 --- a/tools/gyp/pylib/gyp/generator/make.py +++ b/tools/gyp/pylib/gyp/generator/make.py @@ -50,7 +50,7 @@ } # Make supports multiple toolsets -generator_supports_multiple_toolsets = True +generator_supports_multiple_toolsets = gyp.common.CrossCompileRequested() # Request sorted dependencies in the order from dependents to dependencies. generator_wants_sorted_dependencies = False diff --git a/tools/gyp/setup.py b/tools/gyp/setup.py index cf9d7d2e56c49f..576880a7f7a9fc 100644 --- a/tools/gyp/setup.py +++ b/tools/gyp/setup.py @@ -15,7 +15,7 @@ setup( name="gyp-next", - version="0.10.0", + version="0.10.1", description="A fork of the GYP build system for use in the Node.js projects", long_description=long_description, long_description_content_type="text/markdown", diff --git a/tools/icu/README.md b/tools/icu/README.md index 544f4bf2152ff0..2e908e2cf44750 100644 --- a/tools/icu/README.md +++ b/tools/icu/README.md @@ -27,8 +27,8 @@ Note: ## See Also -* [docs/guides/maintaining-icu.md](../../doc/guides/maintaining-icu.md) for - information on maintaining ICU in Node.js +* [docs/guides/maintaining-icu.md](../../doc/contributing/maintaining-icu.md) + for information on maintaining ICU in Node.js * [docs/api/intl.md](../../doc/api/intl.md) for information on the internationalization-related APIs in Node.js diff --git a/tools/icu/current_ver.dep b/tools/icu/current_ver.dep index 4ab415d8757b24..d135e99146e041 100644 --- a/tools/icu/current_ver.dep +++ b/tools/icu/current_ver.dep @@ -1,6 +1,6 @@ [ { - "url": "https://github.com/unicode-org/icu/releases/download/release-69-1/icu4c-69_1-src.tgz", - "md5": "9403db682507369d0f60a25ea67014c4" + "url": "https://github.com/unicode-org/icu/releases/download/release-70-1/icu4c-70_1-src.tgz", + "md5": "65287befec8116d79af23a58aa50c60d" } ] diff --git a/tools/install.py b/tools/install.py index 0c3ca355f9b9d6..e51d1298559ad1 100755 --- a/tools/install.py +++ b/tools/install.py @@ -163,6 +163,8 @@ def files(action): if 'true' == variables.get('node_install_npm'): npm_files(action) + + if 'true' == variables.get('node_install_corepack'): corepack_files(action) headers(action) @@ -176,14 +178,18 @@ def wanted_v8_headers(files_arg, dest): 'deps/v8/include/libplatform/v8-tracing.h', 'deps/v8/include/v8.h', 'deps/v8/include/v8-array-buffer.h', + 'deps/v8/include/v8-callbacks.h', 'deps/v8/include/v8-container.h', 'deps/v8/include/v8-context.h', 'deps/v8/include/v8-data.h', 'deps/v8/include/v8-date.h', 'deps/v8/include/v8-debug.h', + 'deps/v8/include/v8-embedder-heap.h', 'deps/v8/include/v8-exception.h', 'deps/v8/include/v8-extension.h', 'deps/v8/include/v8-external.h', + 'deps/v8/include/v8-forward.h', + 'deps/v8/include/v8-function-callback.h', 'deps/v8/include/v8-function.h', 'deps/v8/include/v8-initialization.h', 'deps/v8/include/v8-internal.h', @@ -216,11 +222,18 @@ def wanted_v8_headers(files_arg, dest): 'deps/v8/include/v8-value.h', 'deps/v8/include/v8-version.h', 'deps/v8/include/v8-wasm.h', + 'deps/v8/include/v8-weak-callback-info.h', 'deps/v8/include/v8config.h', ] files_arg = [name for name in files_arg if name in v8_headers] action(files_arg, dest) + def wanted_zoslib_headers(files_arg, dest): + import glob + zoslib_headers = glob.glob(zoslibinc + '/*.h') + files_arg = [name for name in files_arg if name in zoslib_headers] + action(files_arg, dest) + action([ 'common.gypi', 'config.gypi', @@ -255,6 +268,14 @@ def wanted_v8_headers(files_arg, dest): 'deps/zlib/zlib.h', ], 'include/node/') + if sys.platform == 'zos': + zoslibinc = os.environ.get('ZOSLIB_INCLUDES') + if not zoslibinc: + raise RuntimeError('Environment variable ZOSLIB_INCLUDES is not set\n') + if not os.path.isfile(zoslibinc + '/zos-base.h'): + raise RuntimeError('ZOSLIB_INCLUDES is not set to a valid location\n') + subdir_files(zoslibinc, 'include/node/zoslib/', wanted_zoslib_headers) + def run(args): global node_prefix, install_path, target_defaults, variables diff --git a/tools/license-builder.sh b/tools/license-builder.sh index 30806de51f8ccf..4aa7224d8e396d 100755 --- a/tools/license-builder.sh +++ b/tools/license-builder.sh @@ -11,11 +11,12 @@ echo "$licensehead" > "$tmplicense" # addlicense addlicense() { + licenseTextTrimmed=$(echo "$3" | sed -e 's/^/ /' -e 's/^ $//' -e 's/ *$//' | sed -e '/./,$!d' | sed -e '/^$/N;/^\n$/D') echo " - ${1}, located at ${2}, is licensed as follows: \"\"\" -$(echo "$3" | sed -e 's/^/ /' -e 's/^ $//' -e 's/ *$//' | sed -e '/./,$!d' | sed -e '/^$/N;/^\n$/D') +${licenseTextTrimmed} \"\"\"\ " >> "$tmplicense" @@ -29,91 +30,110 @@ fi # Dependencies bundled in distributions -addlicense "Acorn" "deps/acorn" "$(cat "${rootdir}"/deps/acorn/acorn/LICENSE)" -addlicense "c-ares" "deps/cares" "$(tail -n +3 "${rootdir}"/deps/cares/LICENSE.md)" -addlicense "cjs-module-lexer" "deps/cjs-module-lexer" "$(cat "${rootdir}"/deps/cjs-module-lexer/LICENSE)" +licenseText="$(cat "${rootdir}"/deps/acorn/acorn/LICENSE)" +addlicense "Acorn" "deps/acorn" "$licenseText" +licenseText="$(tail -n +3 "${rootdir}"/deps/cares/LICENSE.md)" +addlicense "c-ares" "deps/cares" "$licenseText" +licenseText="$(cat "${rootdir}"/deps/cjs-module-lexer/LICENSE)" +addlicense "cjs-module-lexer" "deps/cjs-module-lexer" "$licenseText" if [ -f "${rootdir}/deps/icu/LICENSE" ]; then # ICU 57 and following. Drop the BOM - addlicense "ICU" "deps/icu" \ - "$(sed -e '1s/^[^a-zA-Z ]*ICU/ICU/' -e :a \ - -e 's/<[^>]*>//g;s/ / /g;s/ +$//;/]*>//g;s/ / /g;s/ +$//;/]*>//g;s/ / /g;s/ +$//;/]*>//g;s/ / /g;s/ +$//;/ * @license MIT */ - var isBuffer = function isBuffer (obj) { return obj != null && obj.constructor != null && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj) @@ -38,36 +33,25 @@ var hasOwn = Object.prototype.hasOwnProperty; var toStr = Object.prototype.toString; var defineProperty = Object.defineProperty; var gOPD = Object.getOwnPropertyDescriptor; - var isArray = function isArray(arr) { if (typeof Array.isArray === 'function') { return Array.isArray(arr); } - return toStr.call(arr) === '[object Array]'; }; - var isPlainObject$1 = function isPlainObject(obj) { if (!obj || toStr.call(obj) !== '[object Object]') { return false; } - var hasOwnConstructor = hasOwn.call(obj, 'constructor'); var hasIsPrototypeOf = obj.constructor && obj.constructor.prototype && hasOwn.call(obj.constructor.prototype, 'isPrototypeOf'); - // Not own constructor property must be Object if (obj.constructor && !hasOwnConstructor && !hasIsPrototypeOf) { return false; } - - // Own properties are enumerated firstly, so to speed up, - // if last one is own, then all properties are own. var key; - for (key in obj) { /**/ } - + for (key in obj) { } return typeof key === 'undefined' || hasOwn.call(obj, key); }; - -// If name is '__proto__', and Object.defineProperty is available, define __proto__ as an own property on target var setProperty = function setProperty(target, options) { if (defineProperty && options.name === '__proto__') { defineProperty(target, options.name, { @@ -80,52 +64,37 @@ var setProperty = function setProperty(target, options) { target[options.name] = options.newValue; } }; - -// Return undefined instead of __proto__ if '__proto__' is not an own property var getProperty = function getProperty(obj, name) { if (name === '__proto__') { if (!hasOwn.call(obj, name)) { return void 0; } else if (gOPD) { - // In early versions of node, obj['__proto__'] is buggy when obj has - // __proto__ as an own property. Object.getOwnPropertyDescriptor() works. return gOPD(obj, name).value; } } - return obj[name]; }; - var extend$1 = function extend() { var options, name, src, copy, copyIsArray, clone; var target = arguments[0]; var i = 1; var length = arguments.length; var deep = false; - - // Handle a deep copy situation if (typeof target === 'boolean') { deep = target; target = arguments[1] || {}; - // skip the boolean and the target i = 2; } if (target == null || (typeof target !== 'object' && typeof target !== 'function')) { target = {}; } - for (; i < length; ++i) { options = arguments[i]; - // Only deal with non-null/undefined values if (options != null) { - // Extend the base object for (name in options) { src = getProperty(target, name); copy = getProperty(options, name); - - // Prevent never-ending loop if (target !== copy) { - // Recurse if we're merging plain objects or arrays if (deep && copy && (isPlainObject$1(copy) || (copyIsArray = isArray(copy)))) { if (copyIsArray) { copyIsArray = false; @@ -133,11 +102,7 @@ var extend$1 = function extend() { } else { clone = src && isPlainObject$1(src) ? src : {}; } - - // Never move original objects, clone them setProperty(target, { name: name, newValue: extend(deep, clone, copy) }); - - // Don't bring in undefined values } else if (typeof copy !== 'undefined') { setProperty(target, { name: name, newValue: copy }); } @@ -145,8 +110,6 @@ var extend$1 = function extend() { } } } - - // Return the modified object return target; }; @@ -154,71 +117,34 @@ function isPlainObject(value) { if (Object.prototype.toString.call(value) !== '[object Object]') { return false; } - const prototype = Object.getPrototypeOf(value); return prototype === null || prototype === Object.prototype; } -/** - * @typedef {(error?: Error|null|undefined, ...output: any[]) => void} Callback - * @typedef {(...input: any[]) => any} Middleware - * - * @typedef {(...input: any[]) => void} Run Call all middleware. - * @typedef {(fn: Middleware) => Pipeline} Use Add `fn` (middleware) to the list. - * @typedef {{run: Run, use: Use}} Pipeline - */ - -/** - * Create new middleware. - * - * @returns {Pipeline} - */ function trough() { - /** @type {Middleware[]} */ const fns = []; - /** @type {Pipeline} */ const pipeline = {run, use}; - return pipeline - - /** @type {Run} */ function run(...values) { let middlewareIndex = -1; - /** @type {Callback} */ const callback = values.pop(); - if (typeof callback !== 'function') { throw new TypeError('Expected function as last argument, not ' + callback) } - next(null, ...values); - - /** - * Run the next `fn`, or we’re done. - * - * @param {Error|null|undefined} error - * @param {any[]} output - */ function next(error, ...output) { const fn = fns[++middlewareIndex]; let index = -1; - if (error) { callback(error); return } - - // Copy non-nullish input into values. while (++index < values.length) { if (output[index] === null || output[index] === undefined) { output[index] = values[index]; } } - - // Save the newly created `output` for the next call. values = output; - - // Next or done. if (fn) { wrap(fn, next)(...output); } else { @@ -226,65 +152,34 @@ function trough() { } } } - - /** @type {Use} */ function use(middelware) { if (typeof middelware !== 'function') { throw new TypeError( 'Expected `middelware` to be a function, not ' + middelware ) } - fns.push(middelware); return pipeline } } - -/** - * Wrap `middleware`. - * Can be sync or async; return a promise, receive a callback, or return new - * values and errors. - * - * @param {Middleware} middleware - * @param {Callback} callback - */ function wrap(middleware, callback) { - /** @type {boolean} */ let called; - return wrapped - - /** - * Call `middleware`. - * @param {any[]} parameters - * @returns {void} - */ function wrapped(...parameters) { const fnExpectsCallback = middleware.length > parameters.length; - /** @type {any} */ let result; - if (fnExpectsCallback) { parameters.push(done); } - try { - result = middleware(...parameters); + result = middleware.apply(this, parameters); } catch (error) { - /** @type {Error} */ - const exception = error; - - // Well, this is quite the pickle. - // `middleware` received a callback and called it synchronously, but that - // threw an error. - // The only thing left to do is to throw the thing instead. + const exception = (error); if (fnExpectsCallback && called) { throw exception } - return done(exception) } - if (!fnExpectsCallback) { if (result instanceof Promise) { result.then(then, done); @@ -295,131 +190,56 @@ function wrap(middleware, callback) { } } } - - /** - * Call `callback`, only once. - * @type {Callback} - */ function done(error, ...output) { if (!called) { called = true; callback(error, ...output); } } - - /** - * Call `done` with one value. - * - * @param {any} [value] - */ function then(value) { done(null, value); } } -var own$8 = {}.hasOwnProperty; - -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - */ - -/** - * Stringify one point, a position (start and end points), or a node’s - * positional information. - * - * @param {Node|Position|Point} [value] - * @returns {string} - */ function stringifyPosition(value) { - // Nothing. if (!value || typeof value !== 'object') { return '' } - - // Node. - if (own$8.call(value, 'position') || own$8.call(value, 'type')) { - // @ts-ignore looks like a node. + if ('position' in value || 'type' in value) { return position(value.position) } - - // Position. - if (own$8.call(value, 'start') || own$8.call(value, 'end')) { - // @ts-ignore looks like a position. + if ('start' in value || 'end' in value) { return position(value) } - - // Point. - if (own$8.call(value, 'line') || own$8.call(value, 'column')) { - // @ts-ignore looks like a point. + if ('line' in value || 'column' in value) { return point$1(value) } - - // ? return '' } - -/** - * @param {Point} point - * @returns {string} - */ function point$1(point) { return index(point && point.line) + ':' + index(point && point.column) } - -/** - * @param {Position} pos - * @returns {string} - */ function position(pos) { return point$1(pos && pos.start) + '-' + point$1(pos && pos.end) } - -/** - * @param {number} value - * @returns {number} - */ function index(value) { return value && typeof value === 'number' ? value : 1 } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - */ - class VFileMessage extends Error { - /** - * Constructor of a message for `reason` at `place` from `origin`. - * When an error is passed in as `reason`, copies the `stack`. - * - * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. - * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). - * @param {string} [origin] Place in code the message originates from (`string`, optional). - */ constructor(reason, place, origin) { - /** @type {[string?, string?]} */ - var parts = [null, null]; - /** @type {Position} */ - var position = { + const parts = [null, null]; + let position = { start: {line: null, column: null}, end: {line: null, column: null} }; - /** @type {number} */ - var index; - super(); - if (typeof place === 'string') { origin = place; - place = null; + place = undefined; } - if (typeof origin === 'string') { - index = origin.indexOf(':'); - + const index = origin.indexOf(':'); if (index === -1) { parts[1] = origin; } else { @@ -427,92 +247,36 @@ class VFileMessage extends Error { parts[1] = origin.slice(index + 1); } } - if (place) { - // Node. if ('type' in place || 'position' in place) { if (place.position) { position = place.position; } } - // Position. else if ('start' in place || 'end' in place) { - // @ts-ignore Looks like a position. position = place; } - // Point. else if ('line' in place || 'column' in place) { - // @ts-ignore Looks like a point. position.start = place; } } - - // Fields from `Error` this.name = stringifyPosition(place) || '1:1'; this.message = typeof reason === 'object' ? reason.message : reason; this.stack = typeof reason === 'object' ? reason.stack : ''; - - /** - * Reason for message. - * @type {string} - */ this.reason = this.message; - /** - * Starting line of error. - * @type {number?} - */ + this.fatal; this.line = position.start.line; - /** - * Starting column of error. - * @type {number?} - */ this.column = position.start.column; - /** - * Namespace of warning. - * @type {string?} - */ this.source = parts[0]; - /** - * Category of message. - * @type {string?} - */ this.ruleId = parts[1]; - /** - * Full range information, when available. - * Has start and end properties, both set to an object with line and column, set to number?. - * @type {Position?} - */ this.position = position; - - // The following fields are “well known”. - // Not standard. - // Feel free to add other non-standard fields to your messages. - - /* eslint-disable no-unused-expressions */ - /** - * You may add a file property with a path of a file (used throughout the VFile ecosystem). - * @type {string?} - */ + this.actual; + this.expected; this.file; - /** - * If true, marks associated file as no longer processable. - * @type {boolean?} - */ - this.fatal; - /** - * You may add a url property with a link to documentation for the message. - * @type {string?} - */ this.url; - /** - * You may add a note property with a long form description of the message (supported by vfile-reporter). - * @type {string?} - */ this.note; - /* eslint-enable no-unused-expressions */ } } - VFileMessage.prototype.file = ''; VFileMessage.prototype.name = ''; VFileMessage.prototype.reason = ''; @@ -525,395 +289,125 @@ VFileMessage.prototype.source = null; VFileMessage.prototype.ruleId = null; VFileMessage.prototype.position = null; -const proc = process$1; - -/** - * @typedef URL - * @property {string} hash - * @property {string} host - * @property {string} hostname - * @property {string} href - * @property {string} origin - * @property {string} password - * @property {string} pathname - * @property {string} port - * @property {string} protocol - * @property {string} search - * @property {any} searchParams - * @property {string} username - * @property {() => string} toString - * @property {() => string} toJSON - */ - -/** - * @param {unknown} fileURLOrPath - * @returns {fileURLOrPath is URL} - */ -// From: function isUrl(fileURLOrPath) { return ( fileURLOrPath !== null && typeof fileURLOrPath === 'object' && - // @ts-expect-error: indexable. fileURLOrPath.href && - // @ts-expect-error: indexable. fileURLOrPath.origin ) } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - * @typedef {import('./minurl.shared.js').URL} URL - * - * @typedef {'ascii'|'utf8'|'utf-8'|'utf16le'|'ucs2'|'ucs-2'|'base64'|'latin1'|'binary'|'hex'} BufferEncoding - * Encodings supported by the buffer class. - * This is a copy of the typing from Node, copied to prevent Node globals from - * being needed. - * Copied from: - * - * @typedef {string|Uint8Array} VFileValue - * Contents of the file. - * Can either be text, or a Buffer like structure. - * This does not directly use type `Buffer`, because it can also be used in a - * browser context. - * Instead this leverages `Uint8Array` which is the base type for `Buffer`, - * and a native JavaScript construct. - * - * @typedef {VFileValue|VFileOptions|VFile|URL} VFileCompatible - * Things that can be passed to the constructor. - * - * @typedef VFileCoreOptions - * @property {VFileValue} [value] - * @property {string} [cwd] - * @property {Array.} [history] - * @property {string|URL} [path] - * @property {string} [basename] - * @property {string} [stem] - * @property {string} [extname] - * @property {string} [dirname] - * @property {Object.} [data] - * - * @typedef {{[key: string]: unknown} & VFileCoreOptions} VFileOptions - * Configuration: a bunch of keys that will be shallow copied over to the new - * file. - * - * @typedef {Object.} VFileReporterSettings - * @typedef {(files: VFile[], options: T) => string} VFileReporter - */ - -// Order of setting (least specific to most), we need this because otherwise -// `{stem: 'a', path: '~/b.js'}` would throw, as a path is needed before a -// stem can be set. const order = ['history', 'path', 'basename', 'stem', 'extname', 'dirname']; - class VFile { - /** - * Create a new virtual file. - * - * If `options` is `string` or `Buffer`, treats it as `{value: options}`. - * If `options` is a `VFile`, shallow copies its data over to the new file. - * All other given fields are set on the newly created `VFile`. - * - * Path related properties are set in the following order (least specific to - * most specific): `history`, `path`, `basename`, `stem`, `extname`, - * `dirname`. - * - * It’s not possible to set either `dirname` or `extname` without setting - * either `history`, `path`, `basename`, or `stem` as well. - * - * @param {VFileCompatible} [value] - */ constructor(value) { - /** @type {VFileOptions} */ let options; - if (!value) { options = {}; } else if (typeof value === 'string' || isBuffer(value)) { - // @ts-expect-error Looks like a buffer. options = {value}; } else if (isUrl(value)) { options = {path: value}; } else { - // @ts-expect-error Looks like file or options. options = value; } - - /** - * Place to store custom information. - * It’s OK to store custom data directly on the file, moving it to `data` - * gives a little more privacy. - * @type {Object.} - */ this.data = {}; - - /** - * List of messages associated with the file. - * @type {Array.} - */ this.messages = []; - - /** - * List of file paths the file moved between. - * @type {Array.} - */ this.history = []; - - /** - * Base of `path`. - * Defaults to `process.cwd()` (`/` in browsers). - * @type {string} - */ this.cwd = proc.cwd(); - - /* eslint-disable no-unused-expressions */ - /** - * Raw value. - * @type {VFileValue} - */ this.value; - - // The below are non-standard, they are “well-known”. - // As in, used in several tools. - - /** - * Whether a file was saved to disk. - * This is used by vfile reporters. - * @type {boolean} - */ this.stored; - - /** - * Sometimes files have a non-string representation. - * This can be stored in the `result` field. - * One example is when turning markdown into React nodes. - * This is used by unified to store non-string results. - * @type {unknown} - */ this.result; - - /** - * Sometimes files have a source map associated with them. - * This can be stored in the `map` field. - * This should be a `RawSourceMap` type from the `source-map` module. - * @type {unknown} - */ this.map; - /* eslint-enable no-unused-expressions */ - - // Set path related properties in the correct order. let index = -1; - while (++index < order.length) { const prop = order[index]; - - // Note: we specifically use `in` instead of `hasOwnProperty` to accept - // `vfile`s too. if (prop in options && options[prop] !== undefined) { - // @ts-expect-error: TS is confused by the different types for `history`. this[prop] = prop === 'history' ? [...options[prop]] : options[prop]; } } - - /** @type {string} */ let prop; - - // Set non-path related properties. for (prop in options) { - // @ts-expect-error: fine to set other things. if (!order.includes(prop)) this[prop] = options[prop]; } } - - /** - * Access full path (`~/index.min.js`). - * - * @returns {string} - */ get path() { return this.history[this.history.length - 1] } - - /** - * Set full path (`~/index.min.js`). - * Cannot be nullified. - * - * @param {string|URL} path - */ set path(path) { if (isUrl(path)) { path = fileURLToPath(path); } - assertNonEmpty(path, 'path'); - if (this.path !== path) { this.history.push(path); } } - - /** - * Access parent path (`~`). - */ get dirname() { return typeof this.path === 'string' ? path$1.dirname(this.path) : undefined } - - /** - * Set parent path (`~`). - * Cannot be set if there's no `path` yet. - */ set dirname(dirname) { assertPath(this.basename, 'dirname'); this.path = path$1.join(dirname || '', this.basename); } - - /** - * Access basename (including extname) (`index.min.js`). - */ get basename() { return typeof this.path === 'string' ? path$1.basename(this.path) : undefined } - - /** - * Set basename (`index.min.js`). - * Cannot contain path separators. - * Cannot be nullified either (use `file.path = file.dirname` instead). - */ set basename(basename) { assertNonEmpty(basename, 'basename'); assertPart(basename, 'basename'); this.path = path$1.join(this.dirname || '', basename); } - - /** - * Access extname (including dot) (`.js`). - */ get extname() { return typeof this.path === 'string' ? path$1.extname(this.path) : undefined } - - /** - * Set extname (including dot) (`.js`). - * Cannot be set if there's no `path` yet and cannot contain path separators. - */ set extname(extname) { assertPart(extname, 'extname'); assertPath(this.dirname, 'extname'); - if (extname) { - if (extname.charCodeAt(0) !== 46 /* `.` */) { + if (extname.charCodeAt(0) !== 46 ) { throw new Error('`extname` must start with `.`') } - if (extname.includes('.', 1)) { throw new Error('`extname` cannot contain multiple dots') } } - this.path = path$1.join(this.dirname, this.stem + (extname || '')); } - - /** - * Access stem (w/o extname) (`index.min`). - */ get stem() { return typeof this.path === 'string' ? path$1.basename(this.path, this.extname) : undefined } - - /** - * Set stem (w/o extname) (`index.min`). - * Cannot be nullified, and cannot contain path separators. - */ set stem(stem) { assertNonEmpty(stem, 'stem'); assertPart(stem, 'stem'); this.path = path$1.join(this.dirname || '', stem + (this.extname || '')); } - - /** - * Serialize the file. - * - * @param {BufferEncoding} [encoding='utf8'] If `file.value` is a buffer, `encoding` is used to serialize buffers. - * @returns {string} - */ toString(encoding) { - // @ts-expect-error string’s don’t accept the parameter, but buffers do. return (this.value || '').toString(encoding) } - - /** - * Create a message and associates it w/ the file. - * - * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. - * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). - * @param {string} [origin] Place in code the message originates from (`string`, optional). - * @returns {VFileMessage} - */ message(reason, place, origin) { const message = new VFileMessage(reason, place, origin); - if (this.path) { message.name = this.path + ':' + message.name; message.file = this.path; } - message.fatal = false; - this.messages.push(message); - return message } - - /** - * Info: create a message, associate it with the file, and mark the fatality - * as `null`. - * Calls `message()` internally. - * - * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. - * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). - * @param {string} [origin] Place in code the message originates from (`string`, optional). - * @returns {VFileMessage} - */ info(reason, place, origin) { const message = this.message(reason, place, origin); - message.fatal = null; - return message } - - /** - * Fail: create a message, associate it with the file, mark the fatality as - * `true`. - * Note: fatal errors mean a file is no longer processable. - * Calls `message()` internally. - * - * @param {string|Error} reason Reason for message (`string` or `Error`). Uses the stack and message of the error if given. - * @param {Node|Position|Point} [place] Place at which the message occurred in a file (`Node`, `Position`, or `Point`, optional). - * @param {string} [origin] Place in code the message originates from (`string`, optional). - * @returns {never} - */ fail(reason, place, origin) { const message = this.message(reason, place, origin); - message.fatal = true; - throw message } } - -/** - * Assert that `part` is not a path (as in, does not contain `path.sep`). - * - * @param {string|undefined} part - * @param {string} name - * @returns {void} - */ function assertPart(part, name) { if (part && part.includes(path$1.sep)) { throw new Error( @@ -921,185 +415,87 @@ function assertPart(part, name) { ) } } - -/** - * Assert that `part` is not empty. - * - * @param {string|undefined} part - * @param {string} name - * @returns {asserts part is string} - */ function assertNonEmpty(part, name) { if (!part) { throw new Error('`' + name + '` cannot be empty') } } - -/** - * Assert `path` exists. - * - * @param {string|undefined} path - * @param {string} name - * @returns {asserts path is string} - */ function assertPath(path, name) { if (!path) { throw new Error('Setting `' + name + '` requires `path` to be set too') } } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('vfile').VFileCompatible} VFileCompatible - * @typedef {import('vfile').VFileValue} VFileValue - * @typedef {import('..').Processor} Processor - * @typedef {import('..').Plugin} Plugin - * @typedef {import('..').Preset} Preset - * @typedef {import('..').Pluggable} Pluggable - * @typedef {import('..').PluggableList} PluggableList - * @typedef {import('..').Transformer} Transformer - * @typedef {import('..').Parser} Parser - * @typedef {import('..').Compiler} Compiler - * @typedef {import('..').RunCallback} RunCallback - * @typedef {import('..').ProcessCallback} ProcessCallback - * - * @typedef Context - * @property {Node} tree - * @property {VFile} file - */ - -// Expose a frozen processor. const unified = base().freeze(); - const own$7 = {}.hasOwnProperty; - -// Function to create the first processor. -/** - * @returns {Processor} - */ function base() { const transformers = trough(); - /** @type {Processor['attachers']} */ const attachers = []; - /** @type {Record} */ let namespace = {}; - /** @type {boolean|undefined} */ let frozen; let freezeIndex = -1; - - // Data management. - // @ts-expect-error: overloads are handled. processor.data = data; processor.Parser = undefined; processor.Compiler = undefined; - - // Lock. processor.freeze = freeze; - - // Plugins. processor.attachers = attachers; - // @ts-expect-error: overloads are handled. processor.use = use; - - // API. processor.parse = parse; processor.stringify = stringify; - // @ts-expect-error: overloads are handled. processor.run = run; processor.runSync = runSync; - // @ts-expect-error: overloads are handled. processor.process = process; processor.processSync = processSync; - - // Expose. return processor - - // Create a new processor based on the processor in the current scope. - /** @type {Processor} */ function processor() { const destination = base(); let index = -1; - while (++index < attachers.length) { destination.use(...attachers[index]); } - destination.data(extend$1(true, {}, namespace)); - return destination } - - /** - * @param {string|Record} [key] - * @param {unknown} [value] - * @returns {unknown} - */ function data(key, value) { if (typeof key === 'string') { - // Set `key`. if (arguments.length === 2) { assertUnfrozen('data', frozen); namespace[key] = value; return processor } - - // Get `key`. return (own$7.call(namespace, key) && namespace[key]) || null } - - // Set space. if (key) { assertUnfrozen('data', frozen); namespace = key; return processor } - - // Get space. return namespace } - - /** @type {Processor['freeze']} */ function freeze() { if (frozen) { return processor } - while (++freezeIndex < attachers.length) { const [attacher, ...options] = attachers[freezeIndex]; - if (options[0] === false) { continue } - if (options[0] === true) { options[1] = undefined; } - - /** @type {Transformer|void} */ const transformer = attacher.call(processor, ...options); - if (typeof transformer === 'function') { transformers.use(transformer); } } - frozen = true; freezeIndex = Number.POSITIVE_INFINITY; - return processor } - - /** - * @param {Pluggable|null|undefined} [value] - * @param {...unknown} options - * @returns {Processor} - */ function use(value, ...options) { - /** @type {Record|undefined} */ let settings; - assertUnfrozen('use', frozen); - if (value === null || value === undefined) ; else if (typeof value === 'function') { addPlugin(value, ...options); } else if (typeof value === 'object') { @@ -1111,17 +507,10 @@ function base() { } else { throw new TypeError('Expected usable value, not `' + value + '`') } - if (settings) { namespace.settings = Object.assign(namespace.settings || {}, settings); } - return processor - - /** - * @param {import('..').Pluggable} value - * @returns {void} - */ function add(value) { if (typeof value === 'function') { addPlugin(value); @@ -1136,26 +525,14 @@ function base() { throw new TypeError('Expected usable value, not `' + value + '`') } } - - /** - * @param {Preset} result - * @returns {void} - */ function addPreset(result) { addList(result.plugins); - if (result.settings) { settings = Object.assign(settings || {}, result.settings); } } - - /** - * @param {PluggableList|null|undefined} [plugins] - * @returns {void} - */ function addList(plugins) { let index = -1; - if (plugins === null || plugins === undefined) ; else if (Array.isArray(plugins)) { while (++index < plugins.length) { const thing = plugins[index]; @@ -1165,106 +542,59 @@ function base() { throw new TypeError('Expected a list of plugins, not `' + plugins + '`') } } - - /** - * @param {Plugin} plugin - * @param {...unknown} [value] - * @returns {void} - */ function addPlugin(plugin, value) { let index = -1; - /** @type {Processor['attachers'][number]|undefined} */ let entry; - while (++index < attachers.length) { if (attachers[index][0] === plugin) { entry = attachers[index]; break } } - if (entry) { if (isPlainObject(entry[1]) && isPlainObject(value)) { value = extend$1(true, entry[1], value); } - entry[1] = value; } else { - // @ts-expect-error: fine. attachers.push([...arguments]); } } } - - /** @type {Processor['parse']} */ function parse(doc) { processor.freeze(); const file = vfile(doc); const Parser = processor.Parser; assertParser('parse', Parser); - if (newable(Parser, 'parse')) { - // @ts-expect-error: `newable` checks this. return new Parser(String(file), file).parse() } - - // @ts-expect-error: `newable` checks this. - return Parser(String(file), file) // eslint-disable-line new-cap + return Parser(String(file), file) } - - /** @type {Processor['stringify']} */ function stringify(node, doc) { processor.freeze(); const file = vfile(doc); const Compiler = processor.Compiler; assertCompiler('stringify', Compiler); assertNode(node); - if (newable(Compiler, 'compile')) { - // @ts-expect-error: `newable` checks this. return new Compiler(node, file).compile() } - - // @ts-expect-error: `newable` checks this. - return Compiler(node, file) // eslint-disable-line new-cap + return Compiler(node, file) } - - /** - * @param {Node} node - * @param {VFileCompatible|RunCallback} [doc] - * @param {RunCallback} [callback] - * @returns {Promise|void} - */ function run(node, doc, callback) { assertNode(node); processor.freeze(); - if (!callback && typeof doc === 'function') { callback = doc; doc = undefined; } - if (!callback) { return new Promise(executor) } - executor(null, callback); - - /** - * @param {null|((node: Node) => void)} resolve - * @param {(error: Error) => void} reject - * @returns {void} - */ function executor(resolve, reject) { - // @ts-expect-error: `doc` can’t be a callback anymore, we checked. transformers.run(node, vfile(doc), done); - - /** - * @param {Error|null} error - * @param {Node} tree - * @param {VFile} file - * @returns {void} - */ function done(error, tree, file) { tree = tree || node; if (error) { @@ -1272,199 +602,98 @@ function base() { } else if (resolve) { resolve(tree); } else { - // @ts-expect-error: `callback` is defined if `resolve` is not. callback(null, tree, file); } } } } - - /** @type {Processor['runSync']} */ function runSync(node, file) { - /** @type {Node|undefined} */ let result; - /** @type {boolean|undefined} */ let complete; - processor.run(node, file, done); - assertDone('runSync', 'run', complete); - - // @ts-expect-error: we either bailed on an error or have a tree. return result - - /** - * @param {Error|null} [error] - * @param {Node} [tree] - * @returns {void} - */ function done(error, tree) { bail(error); result = tree; complete = true; } } - - /** - * @param {VFileCompatible} doc - * @param {ProcessCallback} [callback] - * @returns {Promise|undefined} - */ function process(doc, callback) { processor.freeze(); assertParser('process', processor.Parser); assertCompiler('process', processor.Compiler); - if (!callback) { return new Promise(executor) } - executor(null, callback); - - /** - * @param {null|((file: VFile) => void)} resolve - * @param {(error?: Error|null|undefined) => void} reject - * @returns {void} - */ function executor(resolve, reject) { const file = vfile(doc); - processor.run(processor.parse(file), file, (error, tree, file) => { if (error || !tree || !file) { done(error); } else { - /** @type {unknown} */ const result = processor.stringify(tree, file); - if (result === undefined || result === null) ; else if (looksLikeAVFileValue(result)) { file.value = result; } else { file.result = result; } - done(error, file); } }); - - /** - * @param {Error|null|undefined} [error] - * @param {VFile|undefined} [file] - * @returns {void} - */ function done(error, file) { if (error || !file) { reject(error); } else if (resolve) { resolve(file); } else { - // @ts-expect-error: `callback` is defined if `resolve` is not. callback(null, file); } } } } - - /** @type {Processor['processSync']} */ function processSync(doc) { - /** @type {boolean|undefined} */ let complete; - processor.freeze(); assertParser('processSync', processor.Parser); assertCompiler('processSync', processor.Compiler); - const file = vfile(doc); - processor.process(file, done); - assertDone('processSync', 'process', complete); - return file - - /** - * @param {Error|null|undefined} [error] - * @returns {void} - */ function done(error) { complete = true; bail(error); } } } - -/** - * Check if `value` is a constructor. - * - * @param {unknown} value - * @param {string} name - * @returns {boolean} - */ function newable(value, name) { return ( typeof value === 'function' && - // Prototypes do exist. - // type-coverage:ignore-next-line value.prototype && - // A function with keys in its prototype is probably a constructor. - // Classes’ prototype methods are not enumerable, so we check if some value - // exists in the prototype. - // type-coverage:ignore-next-line (keys(value.prototype) || name in value.prototype) ) } - -/** - * Check if `value` is an object with keys. - * - * @param {Record} value - * @returns {boolean} - */ function keys(value) { - /** @type {string} */ let key; - for (key in value) { if (own$7.call(value, key)) { return true } } - return false } - -/** - * Assert a parser is available. - * - * @param {string} name - * @param {unknown} value - * @returns {asserts value is Parser} - */ function assertParser(name, value) { if (typeof value !== 'function') { throw new TypeError('Cannot `' + name + '` without `Parser`') } } - -/** - * Assert a compiler is available. - * - * @param {string} name - * @param {unknown} value - * @returns {asserts value is Compiler} - */ function assertCompiler(name, value) { if (typeof value !== 'function') { throw new TypeError('Cannot `' + name + '` without `Compiler`') } } - -/** - * Assert the processor is not frozen. - * - * @param {string} name - * @param {unknown} frozen - * @returns {asserts frozen is false} - */ function assertUnfrozen(name, frozen) { if (frozen) { throw new Error( @@ -1474,30 +703,11 @@ function assertUnfrozen(name, frozen) { ) } } - -/** - * Assert `node` is a unist node. - * - * @param {unknown} node - * @returns {asserts node is Node} - */ function assertNode(node) { - // `isPlainObj` unfortunately uses `any` instead of `unknown`. - // type-coverage:ignore-next-line if (!isPlainObject(node) || typeof node.type !== 'string') { throw new TypeError('Expected node, got `' + node + '`') - // Fine. } } - -/** - * Assert that `complete` is `true`. - * - * @param {string} name - * @param {string} asyncName - * @param {unknown} complete - * @returns {asserts complete is true} - */ function assertDone(name, asyncName, complete) { if (!complete) { throw new Error( @@ -1505,19 +715,9 @@ function assertDone(name, asyncName, complete) { ) } } - -/** - * @param {VFileCompatible} [value] - * @returns {VFile} - */ function vfile(value) { return looksLikeAVFile$1(value) ? value : new VFile(value) } - -/** - * @param {VFileCompatible} [value] - * @returns {value is VFile} - */ function looksLikeAVFile$1(value) { return Boolean( value && @@ -1526,520 +726,191 @@ function looksLikeAVFile$1(value) { 'messages' in value ) } - -/** - * @param {unknown} [value] - * @returns {value is VFileValue} - */ function looksLikeAVFileValue(value) { return typeof value === 'string' || isBuffer(value) } -/** - * @typedef Options - * @property {boolean} [includeImageAlt=true] - */ - -/** - * Get the text content of a node. - * Prefer the node’s plain-text fields, otherwise serialize its children, - * and if the given value is an array, serialize the nodes in it. - * - * @param {unknown} node - * @param {Options} [options] - * @returns {string} - */ function toString(node, options) { var {includeImageAlt = true} = options || {}; return one(node, includeImageAlt) } - -/** - * @param {unknown} node - * @param {boolean} includeImageAlt - * @returns {string} - */ function one(node, includeImageAlt) { return ( (node && typeof node === 'object' && - // @ts-ignore looks like a literal. (node.value || - // @ts-ignore looks like an image. (includeImageAlt ? node.alt : '') || - // @ts-ignore looks like a parent. ('children' in node && all(node.children, includeImageAlt)) || (Array.isArray(node) && all(node, includeImageAlt)))) || '' ) } - -/** - * @param {Array.} values - * @param {boolean} includeImageAlt - * @returns {string} - */ function all(values, includeImageAlt) { - /** @type {Array.} */ var result = []; var index = -1; - while (++index < values.length) { result[index] = one(values[index], includeImageAlt); } - return result.join('') } -/** - * Like `Array#splice`, but smarter for giant arrays. - * - * `Array#splice` takes all items to be inserted as individual argument which - * causes a stack overflow in V8 when trying to insert 100k items for instance. - * - * Otherwise, this does not return the removed items, and takes `items` as an - * array instead of rest parameters. - * - * @template {unknown} T - * @param {T[]} list - * @param {number} start - * @param {number} remove - * @param {T[]} items - * @returns {void} - */ function splice(list, start, remove, items) { const end = list.length; let chunkStart = 0; - /** @type {unknown[]} */ - - let parameters; // Make start between zero and `end` (included). - + let parameters; if (start < 0) { start = -start > end ? 0 : end + start; } else { start = start > end ? end : start; } - - remove = remove > 0 ? remove : 0; // No need to chunk the items if there’s only a couple (10k) items. - + remove = remove > 0 ? remove : 0; if (items.length < 10000) { parameters = Array.from(items); - parameters.unshift(start, remove) // @ts-expect-error Hush, it’s fine. + parameters.unshift(start, remove) ;[].splice.apply(list, parameters); } else { - // Delete `remove` items starting from `start` - if (remove) [].splice.apply(list, [start, remove]); // Insert the items in chunks to not cause stack overflows. - + if (remove) [].splice.apply(list, [start, remove]); while (chunkStart < items.length) { parameters = items.slice(chunkStart, chunkStart + 10000); - parameters.unshift(start, 0) // @ts-expect-error Hush, it’s fine. + parameters.unshift(start, 0) ;[].splice.apply(list, parameters); chunkStart += 10000; start += 10000; } } } -/** - * Append `items` (an array) at the end of `list` (another array). - * When `list` was empty, returns `items` instead. - * - * This prevents a potentially expensive operation when `list` is empty, - * and adds items in batches to prevent V8 from hanging. - * - * @template {unknown} T - * @param {T[]} list - * @param {T[]} items - * @returns {T[]} - */ - function push(list, items) { if (list.length > 0) { splice(list, list.length, 0, items); return list } - return items } -/** - * @typedef {import('micromark-util-types').NormalizedExtension} NormalizedExtension - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension - */ - const hasOwnProperty = {}.hasOwnProperty; - -/** - * Combine several syntax extensions into one. - * - * @param {Extension[]} extensions List of syntax extensions. - * @returns {NormalizedExtension} A single combined extension. - */ function combineExtensions(extensions) { - /** @type {NormalizedExtension} */ const all = {}; let index = -1; - while (++index < extensions.length) { syntaxExtension(all, extensions[index]); } - return all } - -/** - * Merge `extension` into `all`. - * - * @param {NormalizedExtension} all Extension to merge into. - * @param {Extension} extension Extension to merge. - * @returns {void} - */ function syntaxExtension(all, extension) { - /** @type {string} */ let hook; - for (hook in extension) { const maybe = hasOwnProperty.call(all, hook) ? all[hook] : undefined; const left = maybe || (all[hook] = {}); const right = extension[hook]; - /** @type {string} */ let code; - for (code in right) { if (!hasOwnProperty.call(left, code)) left[code] = []; const value = right[code]; constructs( - // @ts-expect-error Looks like a list. left[code], Array.isArray(value) ? value : value ? [value] : [] ); } } } - -/** - * Merge `list` into `existing` (both lists of constructs). - * Mutates `existing`. - * - * @param {unknown[]} existing - * @param {unknown[]} list - * @returns {void} - */ function constructs(existing, list) { let index = -1; - /** @type {unknown[]} */ const before = []; - while (++index < list.length) { (list[index].add === 'after' ? existing : before).push(list[index]); } - splice(existing, 0, 0, before); } -// This module is generated by `script/`. -// -// CommonMark handles attention (emphasis, strong) markers based on what comes -// before or after them. -// One such difference is if those characters are Unicode punctuation. -// This script is generated from the Unicode data. const unicodePunctuationRegex = /[!-/:-@[-`{-~\u00A1\u00A7\u00AB\u00B6\u00B7\u00BB\u00BF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]/; -/** - * @typedef {import('micromark-util-types').Code} Code - */ -/** - * Check whether the character code represents an ASCII alpha (`a` through `z`, - * case insensitive). - * - * An **ASCII alpha** is an ASCII upper alpha or ASCII lower alpha. - * - * An **ASCII upper alpha** is a character in the inclusive range U+0041 (`A`) - * to U+005A (`Z`). - * - * An **ASCII lower alpha** is a character in the inclusive range U+0061 (`a`) - * to U+007A (`z`). - */ - const asciiAlpha = regexCheck(/[A-Za-z]/); -/** - * Check whether the character code represents an ASCII digit (`0` through `9`). - * - * An **ASCII digit** is a character in the inclusive range U+0030 (`0`) to - * U+0039 (`9`). - */ - const asciiDigit = regexCheck(/\d/); -/** - * Check whether the character code represents an ASCII hex digit (`a` through - * `f`, case insensitive, or `0` through `9`). - * - * An **ASCII hex digit** is an ASCII digit (see `asciiDigit`), ASCII upper hex - * digit, or an ASCII lower hex digit. - * - * An **ASCII upper hex digit** is a character in the inclusive range U+0041 - * (`A`) to U+0046 (`F`). - * - * An **ASCII lower hex digit** is a character in the inclusive range U+0061 - * (`a`) to U+0066 (`f`). - */ - const asciiHexDigit = regexCheck(/[\dA-Fa-f]/); -/** - * Check whether the character code represents an ASCII alphanumeric (`a` - * through `z`, case insensitive, or `0` through `9`). - * - * An **ASCII alphanumeric** is an ASCII digit (see `asciiDigit`) or ASCII alpha - * (see `asciiAlpha`). - */ - const asciiAlphanumeric = regexCheck(/[\dA-Za-z]/); -/** - * Check whether the character code represents ASCII punctuation. - * - * An **ASCII punctuation** is a character in the inclusive ranges U+0021 - * EXCLAMATION MARK (`!`) to U+002F SLASH (`/`), U+003A COLON (`:`) to U+0040 AT - * SIGN (`@`), U+005B LEFT SQUARE BRACKET (`[`) to U+0060 GRAVE ACCENT - * (`` ` ``), or U+007B LEFT CURLY BRACE (`{`) to U+007E TILDE (`~`). - */ - const asciiPunctuation = regexCheck(/[!-/:-@[-`{-~]/); -/** - * Check whether the character code represents an ASCII atext. - * - * atext is an ASCII alphanumeric (see `asciiAlphanumeric`), or a character in - * the inclusive ranges U+0023 NUMBER SIGN (`#`) to U+0027 APOSTROPHE (`'`), - * U+002A ASTERISK (`*`), U+002B PLUS SIGN (`+`), U+002D DASH (`-`), U+002F - * SLASH (`/`), U+003D EQUALS TO (`=`), U+003F QUESTION MARK (`?`), U+005E - * CARET (`^`) to U+0060 GRAVE ACCENT (`` ` ``), or U+007B LEFT CURLY BRACE - * (`{`) to U+007E TILDE (`~`). - * - * See: - * **\[RFC5322]**: - * [Internet Message Format](https://tools.ietf.org/html/rfc5322). - * P. Resnick. - * IETF. - */ - const asciiAtext = regexCheck(/[#-'*+\--9=?A-Z^-~]/); -/** - * Check whether a character code is an ASCII control character. - * - * An **ASCII control** is a character in the inclusive range U+0000 NULL (NUL) - * to U+001F (US), or U+007F (DEL). - * - * @param {Code} code - * @returns {code is number} - */ - function asciiControl(code) { return ( - // Special whitespace codes (which have negative values), C0 and Control - // character DEL code !== null && (code < 32 || code === 127) ) } -/** - * Check whether a character code is a markdown line ending (see - * `markdownLineEnding`) or markdown space (see `markdownSpace`). - * - * @param {Code} code - * @returns {code is number} - */ - function markdownLineEndingOrSpace(code) { return code !== null && (code < 0 || code === 32) } -/** - * Check whether a character code is a markdown line ending. - * - * A **markdown line ending** is the virtual characters M-0003 CARRIAGE RETURN - * LINE FEED (CRLF), M-0004 LINE FEED (LF) and M-0005 CARRIAGE RETURN (CR). - * - * In micromark, the actual character U+000A LINE FEED (LF) and U+000D CARRIAGE - * RETURN (CR) are replaced by these virtual characters depending on whether - * they occurred together. - * - * @param {Code} code - * @returns {code is number} - */ - function markdownLineEnding(code) { return code !== null && code < -2 } -/** - * Check whether a character code is a markdown space. - * - * A **markdown space** is the concrete character U+0020 SPACE (SP) and the - * virtual characters M-0001 VIRTUAL SPACE (VS) and M-0002 HORIZONTAL TAB (HT). - * - * In micromark, the actual character U+0009 CHARACTER TABULATION (HT) is - * replaced by one M-0002 HORIZONTAL TAB (HT) and between 0 and 3 M-0001 VIRTUAL - * SPACE (VS) characters, depending on the column at which the tab occurred. - * - * @param {Code} code - * @returns {code is number} - */ - function markdownSpace(code) { return code === -2 || code === -1 || code === 32 } -/** - * Check whether the character code represents Unicode whitespace. - * - * Note that this does handle micromark specific markdown whitespace characters. - * See `markdownLineEndingOrSpace` to check that. - * - * A **Unicode whitespace** is a character in the Unicode `Zs` (Separator, - * Space) category, or U+0009 CHARACTER TABULATION (HT), U+000A LINE FEED (LF), - * U+000C (FF), or U+000D CARRIAGE RETURN (CR) (**\[UNICODE]**). - * - * See: - * **\[UNICODE]**: - * [The Unicode Standard](https://www.unicode.org/versions/). - * Unicode Consortium. - */ - const unicodeWhitespace = regexCheck(/\s/); -/** - * Check whether the character code represents Unicode punctuation. - * - * A **Unicode punctuation** is a character in the Unicode `Pc` (Punctuation, - * Connector), `Pd` (Punctuation, Dash), `Pe` (Punctuation, Close), `Pf` - * (Punctuation, Final quote), `Pi` (Punctuation, Initial quote), `Po` - * (Punctuation, Other), or `Ps` (Punctuation, Open) categories, or an ASCII - * punctuation (see `asciiPunctuation`). - * - * See: - * **\[UNICODE]**: - * [The Unicode Standard](https://www.unicode.org/versions/). - * Unicode Consortium. - */ -// Size note: removing ASCII from the regex and using `asciiPunctuation` here -// In fact adds to the bundle size. - const unicodePunctuation = regexCheck(unicodePunctuationRegex); -/** - * Create a code check from a regex. - * - * @param {RegExp} regex - * @returns {(code: Code) => code is number} - */ - function regexCheck(regex) { return check - /** - * Check whether a code matches the bound regex. - * - * @param {Code} code Character code - * @returns {code is number} Whether the character code matches the bound regex - */ - function check(code) { return code !== null && regex.test(String.fromCharCode(code)) } } -/** - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').State} State - */ -/** - * @param {Effects} effects - * @param {State} ok - * @param {string} type - * @param {number} [max=Infinity] - * @returns {State} - */ - function factorySpace(effects, ok, type, max) { const limit = max ? max - 1 : Number.POSITIVE_INFINITY; let size = 0; return start - /** @type {State} */ - function start(code) { if (markdownSpace(code)) { effects.enter(type); return prefix(code) } - return ok(code) } - /** @type {State} */ - function prefix(code) { if (markdownSpace(code) && size++ < limit) { effects.consume(code); return prefix } - effects.exit(type); return ok(code) } } -/** - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').Initializer} Initializer - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {InitialConstruct} */ const content$1 = { tokenize: initializeContent }; -/** @type {Initializer} */ - function initializeContent(effects) { const contentStart = effects.attempt( this.parser.constructs.contentInitial, afterContentStartConstruct, paragraphInitial ); - /** @type {Token} */ - let previous; return contentStart - /** @type {State} */ - function afterContentStartConstruct(code) { if (code === null) { effects.consume(code); return } - effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return factorySpace(effects, contentStart, 'linePrefix') } - /** @type {State} */ - function paragraphInitial(code) { effects.enter('paragraph'); return lineStart(code) } - /** @type {State} */ - function lineStart(code) { const token = effects.enter('chunkText', { contentType: 'text', previous }); - if (previous) { previous.next = token; } - previous = token; return data(code) } - /** @type {State} */ - function data(code) { if (code === null) { effects.exit('chunkText'); @@ -2047,69 +918,31 @@ function initializeContent(effects) { effects.consume(code); return } - if (markdownLineEnding(code)) { effects.consume(code); effects.exit('chunkText'); return lineStart - } // Data. - + } effects.consume(code); return data } } -/** - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').Initializer} Initializer - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Point} Point - */ -/** @type {InitialConstruct} */ - const document$1 = { tokenize: initializeDocument }; -/** @type {Construct} */ - const containerConstruct = { tokenize: tokenizeContainer }; -/** @type {Initializer} */ - function initializeDocument(effects) { const self = this; - /** @type {StackItem[]} */ - const stack = []; let continued = 0; - /** @type {TokenizeContext|undefined} */ - let childFlow; - /** @type {Token|undefined} */ - let childToken; - /** @type {number} */ - let lineStartOffset; return start - /** @type {State} */ - function start(code) { - // First we iterate through the open blocks, starting with the root - // document, and descending through last children down to the last open - // block. - // Each block imposes a condition that the line must satisfy if the block is - // to remain open. - // For example, a block quote requires a `>` character. - // A paragraph requires a non-blank line. - // In this phase we may match all or just some of the open blocks. - // But we cannot close unmatched blocks yet, because we may have a lazy - // continuation line. if (continued < stack.length) { const item = stack[continued]; self.containerState = item[1]; @@ -2118,31 +951,19 @@ function initializeDocument(effects) { documentContinue, checkNewContainers )(code) - } // Done. - + } return checkNewContainers(code) } - /** @type {State} */ - function documentContinue(code) { - continued++; // Note: this field is called `_closeFlow` but it also closes containers. - // Perhaps a good idea to rename it but it’s already used in the wild by - // extensions. - + continued++; if (self.containerState._closeFlow) { self.containerState._closeFlow = undefined; - if (childFlow) { closeFlow(); - } // Note: this algorithm for moving events around is similar to the - // algorithm when dealing with lazy lines in `writeToChild`. - + } const indexBeforeExits = self.events.length; let indexBeforeFlow = indexBeforeExits; - /** @type {Point|undefined} */ - - let point; // Find the flow chunk. - + let point; while (indexBeforeFlow--) { if ( self.events[indexBeforeFlow][0] === 'exit' && @@ -2152,56 +973,35 @@ function initializeDocument(effects) { break } } - - exitContainers(continued); // Fix positions. - + exitContainers(continued); let index = indexBeforeExits; - while (index < self.events.length) { self.events[index][1].end = Object.assign({}, point); index++; - } // Inject the exits earlier (they’re still also at the end). - + } splice( self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits) - ); // Discard the duplicate exits. - + ); self.events.length = index; return checkNewContainers(code) } - return start(code) } - /** @type {State} */ - function checkNewContainers(code) { - // Next, after consuming the continuation markers for existing blocks, we - // look for new block starts (e.g. `>` for a block quote). - // If we encounter a new block start, we close any blocks unmatched in - // step 1 before creating the new block as a child of the last matched - // block. if (continued === stack.length) { - // No need to `check` whether there’s a container, of `exitContainers` - // would be moot. - // We can instead immediately `attempt` to parse one. if (!childFlow) { return documentContinued(code) - } // If we have concrete content, such as block HTML or fenced code, - // we can’t have containers “pierce” into them, so we can immediately - // start. - + } if (childFlow.currentConstruct && childFlow.currentConstruct.concrete) { return flowStart(code) - } // If we do have flow, it could still be a blank line, - // but we’d be interrupting it w/ a new container if there’s a current - // construct. - - self.interrupt = Boolean(childFlow.currentConstruct); - } // Check if there is a new container. - + } + self.interrupt = Boolean( + childFlow.currentConstruct && !childFlow._gfmTableDynamicInterruptHack + ); + } self.containerState = {}; return effects.check( containerConstruct, @@ -2209,24 +1009,17 @@ function initializeDocument(effects) { thereIsNoNewContainer )(code) } - /** @type {State} */ - function thereIsANewContainer(code) { if (childFlow) closeFlow(); exitContainers(continued); return documentContinued(code) } - /** @type {State} */ - function thereIsNoNewContainer(code) { self.parser.lazy[self.now().line] = continued !== stack.length; lineStartOffset = self.now().offset; return flowStart(code) } - /** @type {State} */ - function documentContinued(code) { - // Try new containers. self.containerState = {}; return effects.attempt( containerConstruct, @@ -2234,16 +1027,11 @@ function initializeDocument(effects) { flowStart )(code) } - /** @type {State} */ - function containerContinue(code) { continued++; - stack.push([self.currentConstruct, self.containerState]); // Try another. - + stack.push([self.currentConstruct, self.containerState]); return documentContinued(code) } - /** @type {State} */ - function flowStart(code) { if (code === null) { if (childFlow) closeFlow(); @@ -2251,7 +1039,6 @@ function initializeDocument(effects) { effects.consume(code); return } - childFlow = childFlow || self.parser.flow(self.now()); effects.enter('chunkFlow', { contentType: 'flow', @@ -2260,8 +1047,6 @@ function initializeDocument(effects) { }); return flowContinue(code) } - /** @type {State} */ - function flowContinue(code) { if (code === null) { writeToChild(effects.exit('chunkFlow'), true); @@ -2269,25 +1054,16 @@ function initializeDocument(effects) { effects.consume(code); return } - if (markdownLineEnding(code)) { effects.consume(code); - writeToChild(effects.exit('chunkFlow')); // Get ready for the next line. - + writeToChild(effects.exit('chunkFlow')); continued = 0; self.interrupt = undefined; return start } - effects.consume(code); return flowContinue } - /** - * @param {Token} token - * @param {boolean} [eof] - * @returns {void} - */ - function writeToChild(token, eof) { const stream = self.sliceStream(token); if (eof) stream.push(null); @@ -2295,66 +1071,22 @@ function initializeDocument(effects) { if (childToken) childToken.next = token; childToken = token; childFlow.defineSkip(token.start); - childFlow.write(stream); // Alright, so we just added a lazy line: - // - // ```markdown - // > a - // b. - // - // Or: - // - // > ~~~c - // d - // - // Or: - // - // > | e | - // f - // ``` - // - // The construct in the second example (fenced code) does not accept lazy - // lines, so it marked itself as done at the end of its first line, and - // then the content construct parses `d`. - // Most constructs in markdown match on the first line: if the first line - // forms a construct, a non-lazy line can’t “unmake” it. - // - // The construct in the third example is potentially a GFM table, and - // those are *weird*. - // It *could* be a table, from the first line, if the following line - // matches a condition. - // In this case, that second line is lazy, which “unmakes” the first line - // and turns the whole into one content block. - // - // We’ve now parsed the non-lazy and the lazy line, and can figure out - // whether the lazy line started a new flow block. - // If it did, we exit the current containers between the two flow blocks. - + childFlow.write(stream); if (self.parser.lazy[token.start.line]) { let index = childFlow.events.length; - while (index--) { if ( - // The token starts before the line ending… - childFlow.events[index][1].start.offset < lineStartOffset && // …and either is not ended yet… - (!childFlow.events[index][1].end || // …or ends after it. + childFlow.events[index][1].start.offset < lineStartOffset && + (!childFlow.events[index][1].end || childFlow.events[index][1].end.offset > lineStartOffset) ) { - // Exit: there’s still something open, which means it’s a lazy line - // part of something. return } - } // Note: this algorithm for moving events around is similar to the - // algorithm when closing flow in `documentContinue`. - + } const indexBeforeExits = self.events.length; let indexBeforeFlow = indexBeforeExits; - /** @type {boolean|undefined} */ - let seen; - /** @type {Point|undefined} */ - - let point; // Find the previous chunk (the one before the lazy line). - + let point; while (indexBeforeFlow--) { if ( self.events[indexBeforeFlow][0] === 'exit' && @@ -2364,47 +1096,33 @@ function initializeDocument(effects) { point = self.events[indexBeforeFlow][1].end; break } - seen = true; } } - - exitContainers(continued); // Fix positions. - + exitContainers(continued); index = indexBeforeExits; - while (index < self.events.length) { self.events[index][1].end = Object.assign({}, point); index++; - } // Inject the exits earlier (they’re still also at the end). - + } splice( self.events, indexBeforeFlow + 1, 0, self.events.slice(indexBeforeExits) - ); // Discard the duplicate exits. - + ); self.events.length = index; } } - /** - * @param {number} size - * @returns {void} - */ - function exitContainers(size) { - let index = stack.length; // Exit open containers. - + let index = stack.length; while (index-- > size) { const entry = stack[index]; self.containerState = entry[1]; entry[0].exit.call(self, effects); } - stack.length = size; } - function closeFlow() { childFlow.write([null]); childToken = undefined; @@ -2412,8 +1130,6 @@ function initializeDocument(effects) { self.containerState._closeFlow = undefined; } } -/** @type {Tokenizer} */ - function tokenizeContainer(effects, ok, nok) { return factorySpace( effects, @@ -2423,22 +1139,6 @@ function tokenizeContainer(effects, ok, nok) { ) } -/** - * @typedef {import('micromark-util-types').Code} Code - */ - -/** - * Classify whether a character code represents whitespace, punctuation, or - * something else. - * - * Used for attention (emphasis, strong), whose sequences can open or close - * based on the class of surrounding characters. - * - * Note that eof (`null`) is seen as whitespace. - * - * @param {Code} code - * @returns {number|undefined} - */ function classifyCharacter(code) { if ( code === null || @@ -2447,118 +1147,54 @@ function classifyCharacter(code) { ) { return 1 } - if (unicodePunctuation(code)) { return 2 } } -/** - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').Resolver} Resolver - */ - -/** - * Call all `resolveAll`s. - * - * @param {{resolveAll?: Resolver}[]} constructs - * @param {Event[]} events - * @param {TokenizeContext} context - * @returns {Event[]} - */ function resolveAll(constructs, events, context) { - /** @type {Resolver[]} */ const called = []; let index = -1; - while (++index < constructs.length) { const resolve = constructs[index].resolveAll; - if (resolve && !called.includes(resolve)) { events = resolve(events, context); called.push(resolve); } } - return events } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').Code} Code - * @typedef {import('micromark-util-types').Point} Point - */ - -/** @type {Construct} */ const attention = { name: 'attention', tokenize: tokenizeAttention, resolveAll: resolveAllAttention }; -/** - * Take all events and resolve attention to emphasis or strong. - * - * @type {Resolver} - */ - function resolveAllAttention(events, context) { let index = -1; - /** @type {number} */ - let open; - /** @type {Token} */ - let group; - /** @type {Token} */ - let text; - /** @type {Token} */ - let openingSequence; - /** @type {Token} */ - let closingSequence; - /** @type {number} */ - let use; - /** @type {Event[]} */ - let nextEvents; - /** @type {number} */ - - let offset; // Walk through all events. - // - // Note: performance of this is fine on an mb of normal markdown, but it’s - // a bottleneck for malicious stuff. - + let offset; while (++index < events.length) { - // Find a token that can close. if ( events[index][0] === 'enter' && events[index][1].type === 'attentionSequence' && events[index][1]._close ) { - open = index; // Now walk back to find an opener. - + open = index; while (open--) { - // Find a token that can open the closer. if ( events[open][0] === 'exit' && events[open][1].type === 'attentionSequence' && - events[open][1]._open && // If the markers are the same: + events[open][1]._open && context.sliceSerialize(events[open][1]).charCodeAt(0) === context.sliceSerialize(events[index][1]).charCodeAt(0) ) { - // If the opening can close or the closing can open, - // and the close size *is not* a multiple of three, - // but the sum of the opening and closing size *is* multiple of three, - // then don’t match. if ( (events[open][1]._close || events[index][1]._open) && (events[index][1].end.offset - events[index][1].start.offset) % 3 && @@ -2571,8 +1207,7 @@ function resolveAllAttention(events, context) { ) ) { continue - } // Number of markers to use from the sequence. - + } use = events[open][1].end.offset - events[open][1].start.offset > 1 && events[index][1].end.offset - events[index][1].start.offset > 1 @@ -2604,22 +1239,19 @@ function resolveAllAttention(events, context) { }; events[open][1].end = Object.assign({}, openingSequence.start); events[index][1].start = Object.assign({}, closingSequence.end); - nextEvents = []; // If there are more markers in the opening, add them before. - + nextEvents = []; if (events[open][1].end.offset - events[open][1].start.offset) { nextEvents = push(nextEvents, [ ['enter', events[open][1], context], ['exit', events[open][1], context] ]); - } // Opening. - + } nextEvents = push(nextEvents, [ ['enter', group, context], ['enter', openingSequence, context], ['exit', openingSequence, context], ['enter', text, context] - ]); // Between. - + ]); nextEvents = push( nextEvents, resolveAll( @@ -2627,15 +1259,13 @@ function resolveAllAttention(events, context) { events.slice(open + 1, index), context ) - ); // Closing. - + ); nextEvents = push(nextEvents, [ ['exit', text, context], ['enter', closingSequence, context], ['exit', closingSequence, context], ['exit', group, context] - ]); // If there are more markers in the closing, add them after. - + ]); if (events[index][1].end.offset - events[index][1].start.offset) { offset = 2; nextEvents = push(nextEvents, [ @@ -2645,50 +1275,37 @@ function resolveAllAttention(events, context) { } else { offset = 0; } - splice(events, open - 1, index - open + 3, nextEvents); index = open + nextEvents.length - offset - 2; break } } } - } // Remove remaining sequences. - + } index = -1; - while (++index < events.length) { if (events[index][1].type === 'attentionSequence') { events[index][1].type = 'data'; } } - return events } -/** @type {Tokenizer} */ - function tokenizeAttention(effects, ok) { const attentionMarkers = this.parser.constructs.attentionMarkers.null; const previous = this.previous; const before = classifyCharacter(previous); - /** @type {NonNullable} */ - let marker; return start - /** @type {State} */ - function start(code) { effects.enter('attentionSequence'); marker = code; return sequence(code) } - /** @type {State} */ - function sequence(code) { if (code === marker) { effects.consume(code); return sequence } - const token = effects.exit('attentionSequence'); const after = classifyCharacter(code); const open = @@ -2700,41 +1317,19 @@ function tokenizeAttention(effects, ok) { return ok(code) } } -/** - * Move a point a bit. - * - * Note: `move` only works inside lines! It’s not possible to move past other - * chunks (replacement characters, tabs, or line endings). - * - * @param {Point} point - * @param {number} offset - * @returns {void} - */ - function movePoint(point, offset) { point.column += offset; point.offset += offset; point._bufferIndex += offset; } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const autolink = { name: 'autolink', tokenize: tokenizeAutolink }; -/** @type {Tokenizer} */ - function tokenizeAutolink(effects, ok, nok) { let size = 1; return start - /** @type {State} */ - function start(code) { effects.enter('autolink'); effects.enter('autolinkMarker'); @@ -2743,31 +1338,23 @@ function tokenizeAutolink(effects, ok, nok) { effects.enter('autolinkProtocol'); return open } - /** @type {State} */ - function open(code) { if (asciiAlpha(code)) { effects.consume(code); return schemeOrEmailAtext } - return asciiAtext(code) ? emailAtext(code) : nok(code) } - /** @type {State} */ - function schemeOrEmailAtext(code) { return code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code) ? schemeInsideOrEmailAtext(code) : emailAtext(code) } - /** @type {State} */ - function schemeInsideOrEmailAtext(code) { if (code === 58) { effects.consume(code); return urlInside } - if ( (code === 43 || code === 45 || code === 46 || asciiAlphanumeric(code)) && size++ < 32 @@ -2775,74 +1362,53 @@ function tokenizeAutolink(effects, ok, nok) { effects.consume(code); return schemeInsideOrEmailAtext } - return emailAtext(code) } - /** @type {State} */ - function urlInside(code) { if (code === 62) { effects.exit('autolinkProtocol'); return end(code) } - if (code === null || code === 32 || code === 60 || asciiControl(code)) { return nok(code) } - effects.consume(code); return urlInside } - /** @type {State} */ - function emailAtext(code) { if (code === 64) { effects.consume(code); size = 0; return emailAtSignOrDot } - if (asciiAtext(code)) { effects.consume(code); return emailAtext } - return nok(code) } - /** @type {State} */ - function emailAtSignOrDot(code) { return asciiAlphanumeric(code) ? emailLabel(code) : nok(code) } - /** @type {State} */ - function emailLabel(code) { if (code === 46) { effects.consume(code); size = 0; return emailAtSignOrDot } - if (code === 62) { - // Exit, then change the type. effects.exit('autolinkProtocol').type = 'autolinkEmail'; return end(code) } - return emailValue(code) } - /** @type {State} */ - function emailValue(code) { if ((code === 45 || asciiAlphanumeric(code)) && size++ < 63) { effects.consume(code); return code === 45 ? emailValue : emailLabel } - return nok(code) } - /** @type {State} */ - function end(code) { effects.enter('autolinkMarker'); effects.consume(code); @@ -2852,36 +1418,17 @@ function tokenizeAutolink(effects, ok, nok) { } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const blankLine = { tokenize: tokenizeBlankLine, partial: true }; -/** @type {Tokenizer} */ - function tokenizeBlankLine(effects, ok, nok) { return factorySpace(effects, afterWhitespace, 'linePrefix') - /** @type {State} */ - function afterWhitespace(code) { return code === null || markdownLineEnding(code) ? ok(code) : nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Exiter} Exiter - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const blockQuote = { name: 'blockQuote', tokenize: tokenizeBlockQuoteStart, @@ -2890,35 +1437,26 @@ const blockQuote = { }, exit: exit$1 }; -/** @type {Tokenizer} */ - function tokenizeBlockQuoteStart(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { if (code === 62) { const state = self.containerState; - if (!state.open) { effects.enter('blockQuote', { _container: true }); state.open = true; } - effects.enter('blockQuotePrefix'); effects.enter('blockQuoteMarker'); effects.consume(code); effects.exit('blockQuoteMarker'); return after } - return nok(code) } - /** @type {State} */ - function after(code) { if (markdownSpace(code)) { effects.enter('blockQuotePrefixWhitespace'); @@ -2927,13 +1465,10 @@ function tokenizeBlockQuoteStart(effects, ok, nok) { effects.exit('blockQuotePrefix'); return ok } - effects.exit('blockQuotePrefix'); return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeBlockQuoteContinuation(effects, ok, nok) { return factorySpace( effects, @@ -2942,29 +1477,16 @@ function tokenizeBlockQuoteContinuation(effects, ok, nok) { this.parser.constructs.disable.null.includes('codeIndented') ? undefined : 4 ) } -/** @type {Exiter} */ - function exit$1(effects) { effects.exit('blockQuote'); } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const characterEscape = { name: 'characterEscape', tokenize: tokenizeCharacterEscape }; -/** @type {Tokenizer} */ - function tokenizeCharacterEscape(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('characterEscape'); effects.enter('escapeMarker'); @@ -2972,8 +1494,6 @@ function tokenizeCharacterEscape(effects, ok, nok) { effects.exit('escapeMarker'); return open } - /** @type {State} */ - function open(code) { if (asciiPunctuation(code)) { effects.enter('characterEscapeValue'); @@ -2982,12 +1502,11 @@ function tokenizeCharacterEscape(effects, ok, nok) { effects.exit('characterEscape'); return ok } - return nok(code) } } -var characterEntities = { +const characterEntities = { AEli: 'Æ', AElig: 'Æ', AM: '&', @@ -5212,45 +3731,21 @@ var characterEntities = { zwnj: '‌' }; -var own$6 = {}.hasOwnProperty; - -/** - * @param {string} characters - * @returns {string|false} - */ -function decodeEntity(characters) { - return own$6.call(characterEntities, characters) - ? characterEntities[characters] - : false +const own$6 = {}.hasOwnProperty; +function decodeNamedCharacterReference(value) { + return own$6.call(characterEntities, value) ? characterEntities[value] : false } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const characterReference = { name: 'characterReference', tokenize: tokenizeCharacterReference }; -/** @type {Tokenizer} */ - function tokenizeCharacterReference(effects, ok, nok) { const self = this; let size = 0; - /** @type {number} */ - let max; - /** @type {(code: Code) => code is number} */ - let test; return start - /** @type {State} */ - function start(code) { effects.enter('characterReference'); effects.enter('characterReferenceMarker'); @@ -5258,8 +3753,6 @@ function tokenizeCharacterReference(effects, ok, nok) { effects.exit('characterReferenceMarker'); return open } - /** @type {State} */ - function open(code) { if (code === 35) { effects.enter('characterReferenceMarkerNumeric'); @@ -5267,14 +3760,11 @@ function tokenizeCharacterReference(effects, ok, nok) { effects.exit('characterReferenceMarkerNumeric'); return numeric } - effects.enter('characterReferenceValue'); max = 31; test = asciiAlphanumeric; return value(code) } - /** @type {State} */ - function numeric(code) { if (code === 88 || code === 120) { effects.enter('characterReferenceMarkerHexadecimal'); @@ -5285,69 +3775,46 @@ function tokenizeCharacterReference(effects, ok, nok) { test = asciiHexDigit; return value } - effects.enter('characterReferenceValue'); max = 7; test = asciiDigit; return value(code) } - /** @type {State} */ - function value(code) { - /** @type {Token} */ let token; - if (code === 59 && size) { token = effects.exit('characterReferenceValue'); - if ( test === asciiAlphanumeric && - !decodeEntity(self.sliceSerialize(token)) + !decodeNamedCharacterReference(self.sliceSerialize(token)) ) { return nok(code) } - effects.enter('characterReferenceMarker'); effects.consume(code); effects.exit('characterReferenceMarker'); effects.exit('characterReference'); return ok } - if (test(code) && size++ < max) { effects.consume(code); return value } - return nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const codeFenced = { name: 'codeFenced', tokenize: tokenizeCodeFenced, concrete: true }; -/** @type {Tokenizer} */ - function tokenizeCodeFenced(effects, ok, nok) { const self = this; - /** @type {Construct} */ - const closingFenceConstruct = { tokenize: tokenizeClosingFence, partial: true }; - /** @type {Construct} */ - const nonLazyLine = { tokenize: tokenizeNonLazyLine, partial: true @@ -5358,12 +3825,8 @@ function tokenizeCodeFenced(effects, ok, nok) { ? tail[2].sliceSerialize(tail[1], true).length : 0; let sizeOpen = 0; - /** @type {NonNullable} */ - let marker; return start - /** @type {State} */ - function start(code) { effects.enter('codeFenced'); effects.enter('codeFencedFence'); @@ -5371,85 +3834,65 @@ function tokenizeCodeFenced(effects, ok, nok) { marker = code; return sequenceOpen(code) } - /** @type {State} */ - function sequenceOpen(code) { if (code === marker) { effects.consume(code); sizeOpen++; return sequenceOpen } - effects.exit('codeFencedFenceSequence'); return sizeOpen < 3 ? nok(code) : factorySpace(effects, infoOpen, 'whitespace')(code) } - /** @type {State} */ - function infoOpen(code) { if (code === null || markdownLineEnding(code)) { return openAfter(code) } - effects.enter('codeFencedFenceInfo'); effects.enter('chunkString', { contentType: 'string' }); return info(code) } - /** @type {State} */ - function info(code) { if (code === null || markdownLineEndingOrSpace(code)) { effects.exit('chunkString'); effects.exit('codeFencedFenceInfo'); return factorySpace(effects, infoAfter, 'whitespace')(code) } - if (code === 96 && code === marker) return nok(code) effects.consume(code); return info } - /** @type {State} */ - function infoAfter(code) { if (code === null || markdownLineEnding(code)) { return openAfter(code) } - effects.enter('codeFencedFenceMeta'); effects.enter('chunkString', { contentType: 'string' }); return meta(code) } - /** @type {State} */ - function meta(code) { if (code === null || markdownLineEnding(code)) { effects.exit('chunkString'); effects.exit('codeFencedFenceMeta'); return openAfter(code) } - if (code === 96 && code === marker) return nok(code) effects.consume(code); return meta } - /** @type {State} */ - function openAfter(code) { effects.exit('codeFencedFence'); return self.interrupt ? ok(code) : contentStart(code) } - /** @type {State} */ - function contentStart(code) { if (code === null) { return after(code) } - if (markdownLineEnding(code)) { return effects.attempt( nonLazyLine, @@ -5468,48 +3911,34 @@ function tokenizeCodeFenced(effects, ok, nok) { after )(code) } - effects.enter('codeFlowValue'); return contentContinue(code) } - /** @type {State} */ - function contentContinue(code) { if (code === null || markdownLineEnding(code)) { effects.exit('codeFlowValue'); return contentStart(code) } - effects.consume(code); return contentContinue } - /** @type {State} */ - function after(code) { effects.exit('codeFenced'); return ok(code) } - /** @type {Tokenizer} */ - function tokenizeNonLazyLine(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return lineStart } - /** @type {State} */ - function lineStart(code) { return self.parser.lazy[self.now().line] ? nok(code) : ok(code) } } - /** @type {Tokenizer} */ - function tokenizeClosingFence(effects, ok, nok) { let size = 0; return factorySpace( @@ -5520,71 +3949,46 @@ function tokenizeCodeFenced(effects, ok, nok) { ? undefined : 4 ) - /** @type {State} */ - function closingSequenceStart(code) { effects.enter('codeFencedFence'); effects.enter('codeFencedFenceSequence'); return closingSequence(code) } - /** @type {State} */ - function closingSequence(code) { if (code === marker) { effects.consume(code); size++; return closingSequence } - if (size < sizeOpen) return nok(code) effects.exit('codeFencedFenceSequence'); return factorySpace(effects, closingSequenceEnd, 'whitespace')(code) } - /** @type {State} */ - function closingSequenceEnd(code) { if (code === null || markdownLineEnding(code)) { effects.exit('codeFencedFence'); return ok(code) } - return nok(code) } } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const codeIndented = { name: 'codeIndented', tokenize: tokenizeCodeIndented }; -/** @type {Construct} */ - const indentedContent = { tokenize: tokenizeIndentedContent, partial: true }; -/** @type {Tokenizer} */ - function tokenizeCodeIndented(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { effects.enter('codeIndented'); return factorySpace(effects, afterStartPrefix, 'linePrefix', 4 + 1)(code) } - /** @type {State} */ - function afterStartPrefix(code) { const tail = self.events[self.events.length - 1]; return tail && @@ -5593,62 +3997,44 @@ function tokenizeCodeIndented(effects, ok, nok) { ? afterPrefix(code) : nok(code) } - /** @type {State} */ - function afterPrefix(code) { if (code === null) { return after(code) } - if (markdownLineEnding(code)) { return effects.attempt(indentedContent, afterPrefix, after)(code) } - effects.enter('codeFlowValue'); return content(code) } - /** @type {State} */ - function content(code) { if (code === null || markdownLineEnding(code)) { effects.exit('codeFlowValue'); return afterPrefix(code) } - effects.consume(code); return content } - /** @type {State} */ - function after(code) { effects.exit('codeIndented'); return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeIndentedContent(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { - // If this is a lazy line, it can’t be code. if (self.parser.lazy[self.now().line]) { return nok(code) } - if (markdownLineEnding(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return start } - return factorySpace(effects, afterPrefix, 'linePrefix', 4 + 1)(code) } - /** @type {State} */ - function afterPrefix(code) { const tail = self.events[self.events.length - 1]; return tail && @@ -5661,45 +4047,26 @@ function tokenizeIndentedContent(effects, ok, nok) { } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Previous} Previous - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const codeText = { name: 'codeText', tokenize: tokenizeCodeText, resolve: resolveCodeText, previous: previous$1 }; -/** @type {Resolver} */ - function resolveCodeText(events) { let tailExitIndex = events.length - 4; let headEnterIndex = 3; - /** @type {number} */ - let index; - /** @type {number|undefined} */ - - let enter; // If we start and end with an EOL or a space. - + let enter; if ( (events[headEnterIndex][1].type === 'lineEnding' || events[headEnterIndex][1].type === 'space') && (events[tailExitIndex][1].type === 'lineEnding' || events[tailExitIndex][1].type === 'space') ) { - index = headEnterIndex; // And we have data. - + index = headEnterIndex; while (++index < tailExitIndex) { if (events[index][1].type === 'codeTextData') { - // Then we have padding. events[headEnterIndex][1].type = 'codeTextPadding'; events[tailExitIndex][1].type = 'codeTextPadding'; headEnterIndex += 2; @@ -5707,11 +4074,9 @@ function resolveCodeText(events) { break } } - } // Merge adjacent spaces and data. - + } index = headEnterIndex - 1; tailExitIndex++; - while (++index <= tailExitIndex) { if (enter === undefined) { if (index !== tailExitIndex && events[index][1].type !== 'lineEnding') { @@ -5722,94 +4087,66 @@ function resolveCodeText(events) { events[index][1].type === 'lineEnding' ) { events[enter][1].type = 'codeTextData'; - if (index !== enter + 2) { events[enter][1].end = events[index - 1][1].end; events.splice(enter + 2, index - enter - 2); tailExitIndex -= index - enter - 2; index = enter + 2; } - enter = undefined; } } - return events } -/** @type {Previous} */ - function previous$1(code) { - // If there is a previous code, there will always be a tail. return ( code !== 96 || this.events[this.events.length - 1][1].type === 'characterEscape' ) } -/** @type {Tokenizer} */ - function tokenizeCodeText(effects, ok, nok) { let sizeOpen = 0; - /** @type {number} */ - let size; - /** @type {Token} */ - let token; return start - /** @type {State} */ - function start(code) { effects.enter('codeText'); effects.enter('codeTextSequence'); return openingSequence(code) } - /** @type {State} */ - function openingSequence(code) { if (code === 96) { effects.consume(code); sizeOpen++; return openingSequence } - effects.exit('codeTextSequence'); return gap(code) } - /** @type {State} */ - function gap(code) { - // EOF. if (code === null) { return nok(code) - } // Closing fence? - // Could also be data. - + } if (code === 96) { token = effects.enter('codeTextSequence'); size = 0; return closingSequence(code) - } // Tabs don’t work, and virtual spaces don’t make sense. - + } if (code === 32) { effects.enter('space'); effects.consume(code); effects.exit('space'); return gap } - if (markdownLineEnding(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return gap - } // Data. - + } effects.enter('codeTextData'); return data(code) - } // In code. - - /** @type {State} */ - + } function data(code) { if ( code === null || @@ -5820,78 +4157,40 @@ function tokenizeCodeText(effects, ok, nok) { effects.exit('codeTextData'); return gap(code) } - effects.consume(code); return data - } // Closing fence. - - /** @type {State} */ - + } function closingSequence(code) { - // More. if (code === 96) { effects.consume(code); size++; return closingSequence - } // Done! - + } if (size === sizeOpen) { effects.exit('codeTextSequence'); effects.exit('codeText'); return ok(code) - } // More or less accents: mark as data. - + } token.type = 'codeTextData'; return data(code) } } -/** - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').Chunk} Chunk - * @typedef {import('micromark-util-types').Event} Event - */ - -/** - * Tokenize subcontent. - * - * @param {Event[]} events - * @returns {boolean} - */ function subtokenize(events) { - /** @type {Record} */ const jumps = {}; let index = -1; - /** @type {Event} */ - let event; - /** @type {number|undefined} */ - let lineIndex; - /** @type {number} */ - let otherIndex; - /** @type {Event} */ - let otherEvent; - /** @type {Event[]} */ - let parameters; - /** @type {Event[]} */ - let subevents; - /** @type {boolean|undefined} */ - let more; - while (++index < events.length) { while (index in jumps) { index = jumps[index]; } - - event = events[index]; // Add a hook for the GFM tasklist extension, which needs to know if text - // is in the first content of a list item. - + event = events[index]; if ( index && event[1].type === 'chunkFlow' && @@ -5899,14 +4198,12 @@ function subtokenize(events) { ) { subevents = event[1]._tokenizer.events; otherIndex = 0; - if ( otherIndex < subevents.length && subevents[otherIndex][1].type === 'lineEndingBlank' ) { otherIndex += 2; } - if ( otherIndex < subevents.length && subevents[otherIndex][1].type === 'content' @@ -5915,29 +4212,25 @@ function subtokenize(events) { if (subevents[otherIndex][1].type === 'content') { break } - if (subevents[otherIndex][1].type === 'chunkText') { subevents[otherIndex][1]._isInFirstContentOfListItem = true; otherIndex++; } } } - } // Enter. - + } if (event[0] === 'enter') { if (event[1].contentType) { Object.assign(jumps, subcontent(events, index)); index = jumps[index]; more = true; } - } // Exit. + } else if (event[1]._container) { otherIndex = index; lineIndex = undefined; - while (otherIndex--) { otherEvent = events[otherIndex]; - if ( otherEvent[1].type === 'lineEnding' || otherEvent[1].type === 'lineEndingBlank' @@ -5946,7 +4239,6 @@ function subtokenize(events) { if (lineIndex) { events[lineIndex][1].type = 'lineEndingBlank'; } - otherEvent[1].type = 'lineEnding'; lineIndex = otherIndex; } @@ -5954,186 +4246,108 @@ function subtokenize(events) { break } } - if (lineIndex) { - // Fix position. - event[1].end = Object.assign({}, events[lineIndex][1].start); // Switch container exit w/ line endings. - + event[1].end = Object.assign({}, events[lineIndex][1].start); parameters = events.slice(lineIndex, index); parameters.unshift(event); splice(events, lineIndex, index - lineIndex + 1, parameters); } } } - return !more } -/** - * Tokenize embedded tokens. - * - * @param {Event[]} events - * @param {number} eventIndex - * @returns {Record} - */ - function subcontent(events, eventIndex) { const token = events[eventIndex][1]; const context = events[eventIndex][2]; let startPosition = eventIndex - 1; - /** @type {number[]} */ - const startPositions = []; const tokenizer = token._tokenizer || context.parser[token.contentType](token.start); const childEvents = tokenizer.events; - /** @type {[number, number][]} */ - const jumps = []; - /** @type {Record} */ - const gaps = {}; - /** @type {Chunk[]} */ - let stream; - /** @type {Token|undefined} */ - let previous; let index = -1; - /** @type {Token|undefined} */ - let current = token; let adjust = 0; let start = 0; - const breaks = [start]; // Loop forward through the linked tokens to pass them in order to the - // subtokenizer. - + const breaks = [start]; while (current) { - // Find the position of the event for this token. while (events[++startPosition][1] !== current) { - // Empty. } - startPositions.push(startPosition); - if (!current._tokenizer) { stream = context.sliceStream(current); - if (!current.next) { stream.push(null); } - if (previous) { tokenizer.defineSkip(current.start); } - if (current._isInFirstContentOfListItem) { tokenizer._gfmTasklistFirstContentOfListItem = true; } - tokenizer.write(stream); - if (current._isInFirstContentOfListItem) { tokenizer._gfmTasklistFirstContentOfListItem = undefined; } - } // Unravel the next token. - + } previous = current; current = current.next; - } // Now, loop back through all events (and linked tokens), to figure out which - // parts belong where. - + } current = token; - while (++index < childEvents.length) { if ( - // Find a void token that includes a break. childEvents[index][0] === 'exit' && childEvents[index - 1][0] === 'enter' && childEvents[index][1].type === childEvents[index - 1][1].type && childEvents[index][1].start.line !== childEvents[index][1].end.line ) { start = index + 1; - breaks.push(start); // Help GC. - + breaks.push(start); current._tokenizer = undefined; current.previous = undefined; current = current.next; } - } // Help GC. - - tokenizer.events = []; // If there’s one more token (which is the cases for lines that end in an - // EOF), that’s perfect: the last point we found starts it. - // If there isn’t then make sure any remaining content is added to it. - + } + tokenizer.events = []; if (current) { - // Help GC. current._tokenizer = undefined; current.previous = undefined; } else { breaks.pop(); - } // Now splice the events from the subtokenizer into the current events, - // moving back to front so that splice indices aren’t affected. - + } index = breaks.length; - while (index--) { const slice = childEvents.slice(breaks[index], breaks[index + 1]); const start = startPositions.pop(); jumps.unshift([start, start + slice.length - 1]); splice(events, start, 2, slice); } - index = -1; - while (++index < jumps.length) { gaps[adjust + jumps[index][0]] = adjust + jumps[index][1]; adjust += jumps[index][1] - jumps[index][0] - 1; } - return gaps } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - */ - -/** - * No name because it must not be turned off. - * @type {Construct} - */ const content = { tokenize: tokenizeContent, resolve: resolveContent }; -/** @type {Construct} */ - const continuationConstruct = { tokenize: tokenizeContinuation, partial: true }; -/** - * Content is transparent: it’s parsed right now. That way, definitions are also - * parsed right now: before text in paragraphs (specifically, media) are parsed. - * - * @type {Resolver} - */ - function resolveContent(events) { subtokenize(events); return events } -/** @type {Tokenizer} */ - function tokenizeContent(effects, ok) { - /** @type {Token} */ let previous; return start - /** @type {State} */ - function start(code) { effects.enter('content'); previous = effects.enter('chunkContent', { @@ -6141,33 +4355,25 @@ function tokenizeContent(effects, ok) { }); return data(code) } - /** @type {State} */ - function data(code) { if (code === null) { return contentEnd(code) } - if (markdownLineEnding(code)) { return effects.check( continuationConstruct, contentContinue, contentEnd )(code) - } // Data. - + } effects.consume(code); return data } - /** @type {State} */ - function contentEnd(code) { effects.exit('chunkContent'); effects.exit('content'); return ok(code) } - /** @type {State} */ - function contentContinue(code) { effects.consume(code); effects.exit('chunkContent'); @@ -6179,13 +4385,9 @@ function tokenizeContent(effects, ok) { return data } } -/** @type {Tokenizer} */ - function tokenizeContinuation(effects, ok, nok) { const self = this; return startLookahead - /** @type {State} */ - function startLookahead(code) { effects.exit('chunkContent'); effects.enter('lineEnding'); @@ -6193,15 +4395,11 @@ function tokenizeContinuation(effects, ok, nok) { effects.exit('lineEnding'); return factorySpace(effects, prefixed, 'linePrefix') } - /** @type {State} */ - function prefixed(code) { if (code === null || markdownLineEnding(code)) { return nok(code) } - const tail = self.events[self.events.length - 1]; - if ( !self.parser.constructs.disable.null.includes('codeIndented') && tail && @@ -6210,29 +4408,10 @@ function tokenizeContinuation(effects, ok, nok) { ) { return ok(code) } - return effects.interrupt(self.parser.constructs.flow, nok, ok)(code) } } -/** - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').State} State - */ - -/** - * @param {Effects} effects - * @param {State} ok - * @param {State} nok - * @param {string} type - * @param {string} literalType - * @param {string} literalMarkerType - * @param {string} rawType - * @param {string} stringType - * @param {number} [max=Infinity] - * @returns {State} - */ -// eslint-disable-next-line max-params function factoryDestination( effects, ok, @@ -6247,8 +4426,6 @@ function factoryDestination( const limit = max || Number.POSITIVE_INFINITY; let balance = 0; return start - /** @type {State} */ - function start(code) { if (code === 60) { effects.enter(type); @@ -6258,11 +4435,9 @@ function factoryDestination( effects.exit(literalMarkerType); return destinationEnclosedBefore } - if (code === null || code === 41 || asciiControl(code)) { return nok(code) } - effects.enter(type); effects.enter(rawType); effects.enter(stringType); @@ -6271,8 +4446,6 @@ function factoryDestination( }); return destinationRaw(code) } - /** @type {State} */ - function destinationEnclosedBefore(code) { if (code === 62) { effects.enter(literalMarkerType); @@ -6282,48 +4455,37 @@ function factoryDestination( effects.exit(type); return ok } - effects.enter(stringType); effects.enter('chunkString', { contentType: 'string' }); return destinationEnclosed(code) } - /** @type {State} */ - function destinationEnclosed(code) { if (code === 62) { effects.exit('chunkString'); effects.exit(stringType); return destinationEnclosedBefore(code) } - if (code === null || code === 60 || markdownLineEnding(code)) { return nok(code) } - effects.consume(code); return code === 92 ? destinationEnclosedEscape : destinationEnclosed } - /** @type {State} */ - function destinationEnclosedEscape(code) { if (code === 60 || code === 62 || code === 92) { effects.consume(code); return destinationEnclosed } - return destinationEnclosed(code) } - /** @type {State} */ - function destinationRaw(code) { if (code === 40) { if (++balance > limit) return nok(code) effects.consume(code); return destinationRaw } - if (code === 41) { if (!balance--) { effects.exit('chunkString'); @@ -6332,11 +4494,9 @@ function factoryDestination( effects.exit(type); return ok(code) } - effects.consume(code); return destinationRaw } - if (code === null || markdownLineEndingOrSpace(code)) { if (balance) return nok(code) effects.exit('chunkString'); @@ -6345,49 +4505,24 @@ function factoryDestination( effects.exit(type); return ok(code) } - if (asciiControl(code)) return nok(code) effects.consume(code); return code === 92 ? destinationRawEscape : destinationRaw } - /** @type {State} */ - function destinationRawEscape(code) { if (code === 40 || code === 41 || code === 92) { effects.consume(code); return destinationRaw } - return destinationRaw(code) } } -/** - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').State} State - */ - -/** - * @this {TokenizeContext} - * @param {Effects} effects - * @param {State} ok - * @param {State} nok - * @param {string} type - * @param {string} markerType - * @param {string} stringType - * @returns {State} - */ -// eslint-disable-next-line max-params function factoryLabel(effects, ok, nok, type, markerType, stringType) { const self = this; let size = 0; - /** @type {boolean} */ - let data; return start - /** @type {State} */ - function start(code) { effects.enter(type); effects.enter(markerType); @@ -6396,20 +4531,11 @@ function factoryLabel(effects, ok, nok, type, markerType, stringType) { effects.enter(stringType); return atBreak } - /** @type {State} */ - function atBreak(code) { if ( code === null || code === 91 || (code === 93 && !data) || - /* To do: remove in the future once we’ve switched from - * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, - * which doesn’t need this */ - - /* Hidden footnotes hook */ - - /* c8 ignore next 3 */ (code === 94 && !size && '_hiddenFootnoteSupport' in self.parser.constructs) || @@ -6417,7 +4543,6 @@ function factoryLabel(effects, ok, nok, type, markerType, stringType) { ) { return nok(code) } - if (code === 93) { effects.exit(stringType); effects.enter(markerType); @@ -6426,21 +4551,17 @@ function factoryLabel(effects, ok, nok, type, markerType, stringType) { effects.exit(type); return ok } - if (markdownLineEnding(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return atBreak } - effects.enter('chunkString', { contentType: 'string' }); return label(code) } - /** @type {State} */ - function label(code) { if ( code === null || @@ -6452,46 +4573,23 @@ function factoryLabel(effects, ok, nok, type, markerType, stringType) { effects.exit('chunkString'); return atBreak(code) } - effects.consume(code); data = data || !markdownSpace(code); return code === 92 ? labelEscape : label } - /** @type {State} */ - function labelEscape(code) { if (code === 91 || code === 92 || code === 93) { effects.consume(code); size++; return label } - return label(code) } } -/** - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** - * @param {Effects} effects - * @param {State} ok - * @param {State} nok - * @param {string} type - * @param {string} markerType - * @param {string} stringType - * @returns {State} - */ -// eslint-disable-next-line max-params function factoryTitle(effects, ok, nok, type, markerType, stringType) { - /** @type {NonNullable} */ let marker; return start - /** @type {State} */ - function start(code) { effects.enter(type); effects.enter(markerType); @@ -6500,8 +4598,6 @@ function factoryTitle(effects, ok, nok, type, markerType, stringType) { marker = code === 40 ? 41 : code; return atFirstTitleBreak } - /** @type {State} */ - function atFirstTitleBreak(code) { if (code === marker) { effects.enter(markerType); @@ -6510,72 +4606,48 @@ function factoryTitle(effects, ok, nok, type, markerType, stringType) { effects.exit(type); return ok } - effects.enter(stringType); return atTitleBreak(code) } - /** @type {State} */ - function atTitleBreak(code) { if (code === marker) { effects.exit(stringType); return atFirstTitleBreak(marker) } - if (code === null) { return nok(code) - } // Note: blank lines can’t exist in content. - + } if (markdownLineEnding(code)) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return factorySpace(effects, atTitleBreak, 'linePrefix') } - effects.enter('chunkString', { contentType: 'string' }); return title(code) } - /** @type {State} */ - function title(code) { if (code === marker || code === null || markdownLineEnding(code)) { effects.exit('chunkString'); return atTitleBreak(code) } - effects.consume(code); return code === 92 ? titleEscape : title } - /** @type {State} */ - function titleEscape(code) { if (code === marker || code === 92) { effects.consume(code); return title } - return title(code) } } -/** - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').State} State - */ - -/** - * @param {Effects} effects - * @param {State} ok - */ function factoryWhitespace(effects, ok) { - /** @type {boolean} */ let seen; return start - /** @type {State} */ - function start(code) { if (markdownLineEnding(code)) { effects.enter('lineEnding'); @@ -6584,7 +4656,6 @@ function factoryWhitespace(effects, ok) { seen = true; return start } - if (markdownSpace(code)) { return factorySpace( effects, @@ -6592,59 +4663,32 @@ function factoryWhitespace(effects, ok) { seen ? 'linePrefix' : 'lineSuffix' )(code) } - return ok(code) } } -/** - * Normalize an identifier (such as used in definitions). - * - * @param {string} value - * @returns {string} - */ function normalizeIdentifier(value) { return ( - value // Collapse Markdown whitespace. - .replace(/[\t\n\r ]+/g, ' ') // Trim. - .replace(/^ | $/g, '') // Some characters are considered “uppercase”, but if their lowercase - // counterpart is uppercased will result in a different uppercase - // character. - // Hence, to get that form, we perform both lower- and uppercase. - // Upper case makes sure keys will not interact with default prototypal - // methods: no method is uppercase. + value + .replace(/[\t\n\r ]+/g, ' ') + .replace(/^ | $/g, '') .toLowerCase() .toUpperCase() ) } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const definition$1 = { name: 'definition', tokenize: tokenizeDefinition }; -/** @type {Construct} */ - const titleConstruct = { tokenize: tokenizeTitle, partial: true }; -/** @type {Tokenizer} */ - function tokenizeDefinition(effects, ok, nok) { const self = this; - /** @type {string} */ - let identifier; return start - /** @type {State} */ - function start(code) { effects.enter('definition'); return factoryLabel.call( @@ -6657,18 +4701,14 @@ function tokenizeDefinition(effects, ok, nok) { 'definitionLabelString' )(code) } - /** @type {State} */ - function labelAfter(code) { identifier = normalizeIdentifier( self.sliceSerialize(self.events[self.events.length - 1][1]).slice(1, -1) ); - if (code === 58) { effects.enter('definitionMarker'); effects.consume(code); - effects.exit('definitionMarker'); // Note: blank lines can’t exist in content. - + effects.exit('definitionMarker'); return factoryWhitespace( effects, factoryDestination( @@ -6687,38 +4727,26 @@ function tokenizeDefinition(effects, ok, nok) { ) ) } - return nok(code) } - /** @type {State} */ - function after(code) { if (code === null || markdownLineEnding(code)) { effects.exit('definition'); - if (!self.parser.defined.includes(identifier)) { self.parser.defined.push(identifier); } - return ok(code) } - return nok(code) } } -/** @type {Tokenizer} */ - function tokenizeTitle(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, before)(code) : nok(code) } - /** @type {State} */ - function before(code) { if (code === 34 || code === 39 || code === 40) { return factoryTitle( @@ -6730,89 +4758,54 @@ function tokenizeTitle(effects, ok, nok) { 'definitionTitleString' )(code) } - return nok(code) } - /** @type {State} */ - function after(code) { return code === null || markdownLineEnding(code) ? ok(code) : nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const hardBreakEscape = { name: 'hardBreakEscape', tokenize: tokenizeHardBreakEscape }; -/** @type {Tokenizer} */ - function tokenizeHardBreakEscape(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('hardBreakEscape'); effects.enter('escapeMarker'); effects.consume(code); return open } - /** @type {State} */ - function open(code) { if (markdownLineEnding(code)) { effects.exit('escapeMarker'); effects.exit('hardBreakEscape'); return ok(code) } - return nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const headingAtx = { name: 'headingAtx', tokenize: tokenizeHeadingAtx, resolve: resolveHeadingAtx }; -/** @type {Resolver} */ - function resolveHeadingAtx(events, context) { let contentEnd = events.length - 2; let contentStart = 3; - /** @type {Token} */ - let content; - /** @type {Token} */ - - let text; // Prefix whitespace, part of the opening. - + let text; if (events[contentStart][1].type === 'whitespace') { contentStart += 2; - } // Suffix whitespace, part of the closing. - + } if ( contentEnd - 2 > contentStart && events[contentEnd][1].type === 'whitespace' ) { contentEnd -= 2; } - if ( events[contentEnd][1].type === 'atxHeadingSequence' && (contentStart === contentEnd - 1 || @@ -6821,7 +4814,6 @@ function resolveHeadingAtx(events, context) { ) { contentEnd -= contentStart + 1 === contentEnd ? 2 : 4; } - if (contentEnd > contentStart) { content = { type: 'atxHeadingText', @@ -6832,7 +4824,6 @@ function resolveHeadingAtx(events, context) { type: 'chunkText', start: events[contentStart][1].start, end: events[contentEnd][1].end, - // @ts-expect-error Constants are fine to assign. contentType: 'text' }; splice(events, contentStart, contentEnd - contentStart + 1, [ @@ -6842,91 +4833,61 @@ function resolveHeadingAtx(events, context) { ['exit', content, context] ]); } - return events } -/** @type {Tokenizer} */ - function tokenizeHeadingAtx(effects, ok, nok) { const self = this; let size = 0; return start - /** @type {State} */ - function start(code) { effects.enter('atxHeading'); effects.enter('atxHeadingSequence'); return fenceOpenInside(code) } - /** @type {State} */ - function fenceOpenInside(code) { if (code === 35 && size++ < 6) { effects.consume(code); return fenceOpenInside } - if (code === null || markdownLineEndingOrSpace(code)) { effects.exit('atxHeadingSequence'); return self.interrupt ? ok(code) : headingBreak(code) } - return nok(code) } - /** @type {State} */ - function headingBreak(code) { if (code === 35) { effects.enter('atxHeadingSequence'); return sequence(code) } - if (code === null || markdownLineEnding(code)) { effects.exit('atxHeading'); return ok(code) } - if (markdownSpace(code)) { return factorySpace(effects, headingBreak, 'whitespace')(code) } - effects.enter('atxHeadingText'); return data(code) } - /** @type {State} */ - function sequence(code) { if (code === 35) { effects.consume(code); return sequence } - effects.exit('atxHeadingSequence'); return headingBreak(code) } - /** @type {State} */ - function data(code) { if (code === null || code === 35 || markdownLineEndingOrSpace(code)) { effects.exit('atxHeadingText'); return headingBreak(code) } - effects.consume(code); return data } } -/** - * List of lowercase HTML tag names which when parsing HTML (flow), result - * in more relaxed rules (condition 6): because they are known blocks, the - * HTML-like syntax doesn’t have to be strictly parsed. - * For tag names not in this list, a more strict algorithm (condition 7) is used - * to detect whether the HTML-like syntax is seen as HTML (flow) or not. - * - * This is copied from: - * . - */ const htmlBlockNames = [ 'address', 'article', @@ -6991,131 +4952,74 @@ const htmlBlockNames = [ 'track', 'ul' ]; - -/** - * List of lowercase HTML tag names which when parsing HTML (flow), result in - * HTML that can include lines w/o exiting, until a closing tag also in this - * list is found (condition 1). - * - * This module is copied from: - * . - * - * Note that `textarea` is not available in `CommonMark@0.29` but has been - * merged to the primary branch and is slated to be released in the next release - * of CommonMark. - */ const htmlRawNames = ['pre', 'script', 'style', 'textarea']; -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ -/** @type {Construct} */ - const htmlFlow = { name: 'htmlFlow', tokenize: tokenizeHtmlFlow, resolveTo: resolveToHtmlFlow, concrete: true }; -/** @type {Construct} */ - const nextBlankConstruct = { tokenize: tokenizeNextBlank, partial: true }; -/** @type {Resolver} */ - function resolveToHtmlFlow(events) { let index = events.length; - while (index--) { if (events[index][0] === 'enter' && events[index][1].type === 'htmlFlow') { break } } - if (index > 1 && events[index - 2][1].type === 'linePrefix') { - // Add the prefix start to the HTML token. - events[index][1].start = events[index - 2][1].start; // Add the prefix start to the HTML line token. - - events[index + 1][1].start = events[index - 2][1].start; // Remove the line prefix. - + events[index][1].start = events[index - 2][1].start; + events[index + 1][1].start = events[index - 2][1].start; events.splice(index - 2, 2); } - return events } -/** @type {Tokenizer} */ - function tokenizeHtmlFlow(effects, ok, nok) { const self = this; - /** @type {number} */ - let kind; - /** @type {boolean} */ - let startTag; - /** @type {string} */ - let buffer; - /** @type {number} */ - let index; - /** @type {Code} */ - let marker; return start - /** @type {State} */ - function start(code) { effects.enter('htmlFlow'); effects.enter('htmlFlowData'); effects.consume(code); return open } - /** @type {State} */ - function open(code) { if (code === 33) { effects.consume(code); return declarationStart } - if (code === 47) { effects.consume(code); return tagCloseStart } - if (code === 63) { effects.consume(code); - kind = 3; // While we’re in an instruction instead of a declaration, we’re on a `?` - // right now, so we do need to search for `>`, similar to declarations. - + kind = 3; return self.interrupt ? ok : continuationDeclarationInside } - if (asciiAlpha(code)) { effects.consume(code); buffer = String.fromCharCode(code); startTag = true; return tagName } - return nok(code) } - /** @type {State} */ - function declarationStart(code) { if (code === 45) { effects.consume(code); kind = 2; return commentOpenInside } - if (code === 91) { effects.consume(code); kind = 5; @@ -7123,27 +5027,20 @@ function tokenizeHtmlFlow(effects, ok, nok) { index = 0; return cdataOpenInside } - if (asciiAlpha(code)) { effects.consume(code); kind = 4; return self.interrupt ? ok : continuationDeclarationInside } - return nok(code) } - /** @type {State} */ - function commentOpenInside(code) { if (code === 45) { effects.consume(code); return self.interrupt ? ok : continuationDeclarationInside } - return nok(code) } - /** @type {State} */ - function cdataOpenInside(code) { if (code === buffer.charCodeAt(index++)) { effects.consume(code); @@ -7153,22 +5050,16 @@ function tokenizeHtmlFlow(effects, ok, nok) { : continuation : cdataOpenInside } - return nok(code) } - /** @type {State} */ - function tagCloseStart(code) { if (asciiAlpha(code)) { effects.consume(code); buffer = String.fromCharCode(code); return tagName } - return nok(code) } - /** @type {State} */ - function tagName(code) { if ( code === null || @@ -7184,77 +5075,57 @@ function tokenizeHtmlFlow(effects, ok, nok) { kind = 1; return self.interrupt ? ok(code) : continuation(code) } - if (htmlBlockNames.includes(buffer.toLowerCase())) { kind = 6; - if (code === 47) { effects.consume(code); return basicSelfClosing } - return self.interrupt ? ok(code) : continuation(code) } - - kind = 7; // Do not support complete HTML when interrupting - + kind = 7; return self.interrupt && !self.parser.lazy[self.now().line] ? nok(code) : startTag ? completeAttributeNameBefore(code) : completeClosingTagAfter(code) } - if (code === 45 || asciiAlphanumeric(code)) { effects.consume(code); buffer += String.fromCharCode(code); return tagName } - return nok(code) } - /** @type {State} */ - function basicSelfClosing(code) { if (code === 62) { effects.consume(code); return self.interrupt ? ok : continuation } - return nok(code) } - /** @type {State} */ - function completeClosingTagAfter(code) { if (markdownSpace(code)) { effects.consume(code); return completeClosingTagAfter } - return completeEnd(code) } - /** @type {State} */ - function completeAttributeNameBefore(code) { if (code === 47) { effects.consume(code); return completeEnd } - if (code === 58 || code === 95 || asciiAlpha(code)) { effects.consume(code); return completeAttributeName } - if (markdownSpace(code)) { effects.consume(code); return completeAttributeNameBefore } - return completeEnd(code) } - /** @type {State} */ - function completeAttributeName(code) { if ( code === 45 || @@ -7266,26 +5137,19 @@ function tokenizeHtmlFlow(effects, ok, nok) { effects.consume(code); return completeAttributeName } - return completeAttributeNameAfter(code) } - /** @type {State} */ - function completeAttributeNameAfter(code) { if (code === 61) { effects.consume(code); return completeAttributeValueBefore } - if (markdownSpace(code)) { effects.consume(code); return completeAttributeNameAfter } - return completeAttributeNameBefore(code) } - /** @type {State} */ - function completeAttributeValueBefore(code) { if ( code === null || @@ -7296,38 +5160,29 @@ function tokenizeHtmlFlow(effects, ok, nok) { ) { return nok(code) } - if (code === 34 || code === 39) { effects.consume(code); marker = code; return completeAttributeValueQuoted } - if (markdownSpace(code)) { effects.consume(code); return completeAttributeValueBefore } - marker = null; return completeAttributeValueUnquoted(code) } - /** @type {State} */ - function completeAttributeValueQuoted(code) { if (code === null || markdownLineEnding(code)) { return nok(code) } - if (code === marker) { effects.consume(code); return completeAttributeValueQuotedAfter } - effects.consume(code); return completeAttributeValueQuoted } - /** @type {State} */ - function completeAttributeValueUnquoted(code) { if ( code === null || @@ -7341,69 +5196,52 @@ function tokenizeHtmlFlow(effects, ok, nok) { ) { return completeAttributeNameAfter(code) } - effects.consume(code); return completeAttributeValueUnquoted } - /** @type {State} */ - function completeAttributeValueQuotedAfter(code) { if (code === 47 || code === 62 || markdownSpace(code)) { return completeAttributeNameBefore(code) } - return nok(code) } - /** @type {State} */ - function completeEnd(code) { if (code === 62) { effects.consume(code); return completeAfter } - return nok(code) } - /** @type {State} */ - function completeAfter(code) { if (markdownSpace(code)) { effects.consume(code); return completeAfter } - return code === null || markdownLineEnding(code) ? continuation(code) : nok(code) } - /** @type {State} */ - function continuation(code) { if (code === 45 && kind === 2) { effects.consume(code); return continuationCommentInside } - if (code === 60 && kind === 1) { effects.consume(code); return continuationRawTagOpen } - if (code === 62 && kind === 4) { effects.consume(code); return continuationClose } - if (code === 63 && kind === 3) { effects.consume(code); return continuationDeclarationInside } - if (code === 93 && kind === 5) { effects.consume(code); return continuationCharacterDataInside } - if (markdownLineEnding(code) && (kind === 6 || kind === 7)) { return effects.check( nextBlankConstruct, @@ -7411,27 +5249,20 @@ function tokenizeHtmlFlow(effects, ok, nok) { continuationAtLineEnding )(code) } - if (code === null || markdownLineEnding(code)) { return continuationAtLineEnding(code) } - effects.consume(code); return continuation } - /** @type {State} */ - function continuationAtLineEnding(code) { effects.exit('htmlFlowData'); return htmlContinueStart(code) } - /** @type {State} */ - function htmlContinueStart(code) { if (code === null) { return done(code) } - if (markdownLineEnding(code)) { return effects.attempt( { @@ -7442,109 +5273,81 @@ function tokenizeHtmlFlow(effects, ok, nok) { done )(code) } - effects.enter('htmlFlowData'); return continuation(code) } - /** @type {Tokenizer} */ - function htmlLineEnd(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); return lineStart } - /** @type {State} */ - function lineStart(code) { return self.parser.lazy[self.now().line] ? nok(code) : ok(code) } } - /** @type {State} */ - function continuationCommentInside(code) { if (code === 45) { effects.consume(code); return continuationDeclarationInside } - return continuation(code) } - /** @type {State} */ - function continuationRawTagOpen(code) { if (code === 47) { effects.consume(code); buffer = ''; return continuationRawEndTag } - return continuation(code) } - /** @type {State} */ - function continuationRawEndTag(code) { if (code === 62 && htmlRawNames.includes(buffer.toLowerCase())) { effects.consume(code); return continuationClose } - if (asciiAlpha(code) && buffer.length < 8) { effects.consume(code); buffer += String.fromCharCode(code); return continuationRawEndTag } - return continuation(code) } - /** @type {State} */ - function continuationCharacterDataInside(code) { if (code === 93) { effects.consume(code); return continuationDeclarationInside } - return continuation(code) } - /** @type {State} */ - function continuationDeclarationInside(code) { if (code === 62) { effects.consume(code); return continuationClose } - + if (code === 45 && kind === 2) { + effects.consume(code); + return continuationDeclarationInside + } return continuation(code) } - /** @type {State} */ - function continuationClose(code) { if (code === null || markdownLineEnding(code)) { effects.exit('htmlFlowData'); return done(code) } - effects.consume(code); return continuationClose } - /** @type {State} */ - function done(code) { effects.exit('htmlFlow'); return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeNextBlank(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.exit('htmlFlowData'); effects.enter('lineEndingBlank'); @@ -7554,323 +5357,226 @@ function tokenizeNextBlank(effects, ok, nok) { } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const htmlText = { name: 'htmlText', tokenize: tokenizeHtmlText }; -/** @type {Tokenizer} */ - function tokenizeHtmlText(effects, ok, nok) { const self = this; - /** @type {NonNullable|undefined} */ - let marker; - /** @type {string} */ - let buffer; - /** @type {number} */ - let index; - /** @type {State} */ - let returnState; return start - /** @type {State} */ - function start(code) { effects.enter('htmlText'); effects.enter('htmlTextData'); effects.consume(code); return open } - /** @type {State} */ - function open(code) { if (code === 33) { effects.consume(code); return declarationOpen } - if (code === 47) { effects.consume(code); return tagCloseStart } - if (code === 63) { effects.consume(code); return instruction } - if (asciiAlpha(code)) { effects.consume(code); return tagOpen } - return nok(code) } - /** @type {State} */ - function declarationOpen(code) { if (code === 45) { effects.consume(code); return commentOpen } - if (code === 91) { effects.consume(code); buffer = 'CDATA['; index = 0; return cdataOpen } - if (asciiAlpha(code)) { effects.consume(code); return declaration } - return nok(code) } - /** @type {State} */ - function commentOpen(code) { if (code === 45) { effects.consume(code); return commentStart } - return nok(code) } - /** @type {State} */ - function commentStart(code) { if (code === null || code === 62) { return nok(code) } - if (code === 45) { effects.consume(code); return commentStartDash } - return comment(code) } - /** @type {State} */ - function commentStartDash(code) { if (code === null || code === 62) { return nok(code) } - return comment(code) } - /** @type {State} */ - function comment(code) { if (code === null) { return nok(code) } - if (code === 45) { effects.consume(code); return commentClose } - if (markdownLineEnding(code)) { returnState = comment; return atLineEnding(code) } - effects.consume(code); return comment } - /** @type {State} */ - function commentClose(code) { if (code === 45) { effects.consume(code); return end } - return comment(code) } - /** @type {State} */ - function cdataOpen(code) { if (code === buffer.charCodeAt(index++)) { effects.consume(code); return index === buffer.length ? cdata : cdataOpen } - return nok(code) } - /** @type {State} */ - function cdata(code) { if (code === null) { return nok(code) } - if (code === 93) { effects.consume(code); return cdataClose } - if (markdownLineEnding(code)) { returnState = cdata; return atLineEnding(code) } - effects.consume(code); return cdata } - /** @type {State} */ - function cdataClose(code) { if (code === 93) { effects.consume(code); return cdataEnd } - return cdata(code) } - /** @type {State} */ - function cdataEnd(code) { if (code === 62) { return end(code) } - if (code === 93) { effects.consume(code); return cdataEnd } - return cdata(code) } - /** @type {State} */ - function declaration(code) { if (code === null || code === 62) { return end(code) } - if (markdownLineEnding(code)) { returnState = declaration; return atLineEnding(code) } - effects.consume(code); return declaration } - /** @type {State} */ - function instruction(code) { if (code === null) { return nok(code) } - if (code === 63) { effects.consume(code); return instructionClose } - if (markdownLineEnding(code)) { returnState = instruction; return atLineEnding(code) } - effects.consume(code); return instruction } - /** @type {State} */ - function instructionClose(code) { return code === 62 ? end(code) : instruction(code) } - /** @type {State} */ - function tagCloseStart(code) { if (asciiAlpha(code)) { effects.consume(code); return tagClose } - return nok(code) } - /** @type {State} */ - function tagClose(code) { if (code === 45 || asciiAlphanumeric(code)) { effects.consume(code); return tagClose } - return tagCloseBetween(code) } - /** @type {State} */ - function tagCloseBetween(code) { if (markdownLineEnding(code)) { returnState = tagCloseBetween; return atLineEnding(code) } - if (markdownSpace(code)) { effects.consume(code); return tagCloseBetween } - return end(code) } - /** @type {State} */ - function tagOpen(code) { if (code === 45 || asciiAlphanumeric(code)) { effects.consume(code); return tagOpen } - if (code === 47 || code === 62 || markdownLineEndingOrSpace(code)) { return tagOpenBetween(code) } - return nok(code) } - /** @type {State} */ - function tagOpenBetween(code) { if (code === 47) { effects.consume(code); return end } - if (code === 58 || code === 95 || asciiAlpha(code)) { effects.consume(code); return tagOpenAttributeName } - if (markdownLineEnding(code)) { returnState = tagOpenBetween; return atLineEnding(code) } - if (markdownSpace(code)) { effects.consume(code); return tagOpenBetween } - return end(code) } - /** @type {State} */ - function tagOpenAttributeName(code) { if ( code === 45 || @@ -7882,31 +5588,23 @@ function tokenizeHtmlText(effects, ok, nok) { effects.consume(code); return tagOpenAttributeName } - return tagOpenAttributeNameAfter(code) } - /** @type {State} */ - function tagOpenAttributeNameAfter(code) { if (code === 61) { effects.consume(code); return tagOpenAttributeValueBefore } - if (markdownLineEnding(code)) { returnState = tagOpenAttributeNameAfter; return atLineEnding(code) } - if (markdownSpace(code)) { effects.consume(code); return tagOpenAttributeNameAfter } - return tagOpenBetween(code) } - /** @type {State} */ - function tagOpenAttributeValueBefore(code) { if ( code === null || @@ -7917,58 +5615,44 @@ function tokenizeHtmlText(effects, ok, nok) { ) { return nok(code) } - if (code === 34 || code === 39) { effects.consume(code); marker = code; return tagOpenAttributeValueQuoted } - if (markdownLineEnding(code)) { returnState = tagOpenAttributeValueBefore; return atLineEnding(code) } - if (markdownSpace(code)) { effects.consume(code); return tagOpenAttributeValueBefore } - effects.consume(code); marker = undefined; return tagOpenAttributeValueUnquoted } - /** @type {State} */ - function tagOpenAttributeValueQuoted(code) { if (code === marker) { effects.consume(code); return tagOpenAttributeValueQuotedAfter } - if (code === null) { return nok(code) } - if (markdownLineEnding(code)) { returnState = tagOpenAttributeValueQuoted; return atLineEnding(code) } - effects.consume(code); return tagOpenAttributeValueQuoted } - /** @type {State} */ - function tagOpenAttributeValueQuotedAfter(code) { if (code === 62 || code === 47 || markdownLineEndingOrSpace(code)) { return tagOpenBetween(code) } - return nok(code) } - /** @type {State} */ - function tagOpenAttributeValueUnquoted(code) { if ( code === null || @@ -7980,18 +5664,12 @@ function tokenizeHtmlText(effects, ok, nok) { ) { return nok(code) } - if (code === 62 || markdownLineEndingOrSpace(code)) { return tagOpenBetween(code) } - effects.consume(code); return tagOpenAttributeValueUnquoted - } // We can’t have blank lines in content, so no need to worry about empty - // tokens. - - /** @type {State} */ - + } function atLineEnding(code) { effects.exit('htmlTextData'); effects.enter('lineEnding'); @@ -8006,14 +5684,10 @@ function tokenizeHtmlText(effects, ok, nok) { : 4 ) } - /** @type {State} */ - function afterPrefix(code) { effects.enter('htmlTextData'); return returnState(code) } - /** @type {State} */ - function end(code) { if (code === 62) { effects.consume(code); @@ -8021,99 +5695,58 @@ function tokenizeHtmlText(effects, ok, nok) { effects.exit('htmlText'); return ok } - return nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const labelEnd = { name: 'labelEnd', tokenize: tokenizeLabelEnd, resolveTo: resolveToLabelEnd, resolveAll: resolveAllLabelEnd }; -/** @type {Construct} */ - const resourceConstruct = { tokenize: tokenizeResource }; -/** @type {Construct} */ - const fullReferenceConstruct = { tokenize: tokenizeFullReference }; -/** @type {Construct} */ - const collapsedReferenceConstruct = { tokenize: tokenizeCollapsedReference }; -/** @type {Resolver} */ - function resolveAllLabelEnd(events) { let index = -1; - /** @type {Token} */ - let token; - while (++index < events.length) { token = events[index][1]; - if ( token.type === 'labelImage' || token.type === 'labelLink' || token.type === 'labelEnd' ) { - // Remove the marker. events.splice(index + 1, token.type === 'labelImage' ? 4 : 2); token.type = 'data'; index++; } } - return events } -/** @type {Resolver} */ - function resolveToLabelEnd(events, context) { let index = events.length; let offset = 0; - /** @type {Token} */ - let token; - /** @type {number|undefined} */ - let open; - /** @type {number|undefined} */ - let close; - /** @type {Event[]} */ - - let media; // Find an opening. - + let media; while (index--) { token = events[index][1]; - if (open) { - // If we see another link, or inactive link label, we’ve been here before. if ( token.type === 'link' || (token.type === 'labelLink' && token._inactive) ) { break - } // Mark other link openings as inactive, as we can’t have links in - // links. - + } if (events[index][0] === 'enter' && token.type === 'labelLink') { token._inactive = true; } @@ -8124,7 +5757,6 @@ function resolveToLabelEnd(events, context) { !token._balanced ) { open = index; - if (token.type !== 'labelLink') { offset = 2; break @@ -8134,7 +5766,6 @@ function resolveToLabelEnd(events, context) { close = index; } } - const group = { type: events[open][1].type === 'labelLink' ? 'link' : 'image', start: Object.assign({}, events[open][1].start), @@ -8153,12 +5784,9 @@ function resolveToLabelEnd(events, context) { media = [ ['enter', group, context], ['enter', label, context] - ]; // Opening marker. - - media = push(media, events.slice(open + 1, open + offset + 3)); // Text open. - - media = push(media, [['enter', text, context]]); // Between. - + ]; + media = push(media, events.slice(open + 1, open + offset + 3)); + media = push(media, [['enter', text, context]]); media = push( media, resolveAll( @@ -8166,33 +5794,23 @@ function resolveToLabelEnd(events, context) { events.slice(open + offset + 4, close - 3), context ) - ); // Text close, marker close, label close. - + ); media = push(media, [ ['exit', text, context], events[close - 2], events[close - 1], ['exit', label, context] - ]); // Reference, resource, or so. - - media = push(media, events.slice(close + 1)); // Media close. - + ]); + media = push(media, events.slice(close + 1)); media = push(media, [['exit', group, context]]); splice(events, open, events.length, media); return events } -/** @type {Tokenizer} */ - function tokenizeLabelEnd(effects, ok, nok) { const self = this; let index = self.events.length; - /** @type {Token} */ - let labelStart; - /** @type {boolean} */ - - let defined; // Find an opening. - + let defined; while (index--) { if ( (self.events[index][1].type === 'labelImage' || @@ -8203,15 +5821,11 @@ function tokenizeLabelEnd(effects, ok, nok) { break } } - return start - /** @type {State} */ - function start(code) { if (!labelStart) { return nok(code) - } // It’s a balanced bracket, but contains a link. - + } if (labelStart._inactive) return balanced(code) defined = self.parser.defined.includes( normalizeIdentifier( @@ -8228,18 +5842,14 @@ function tokenizeLabelEnd(effects, ok, nok) { effects.exit('labelEnd'); return afterLabelEnd } - /** @type {State} */ - function afterLabelEnd(code) { - // Resource: `[asd](fgh)`. if (code === 40) { return effects.attempt( resourceConstruct, ok, defined ? ok : balanced )(code) - } // Collapsed (`[asd][]`) or full (`[asd][fgh]`) reference? - + } if (code === 91) { return effects.attempt( fullReferenceConstruct, @@ -8248,23 +5858,16 @@ function tokenizeLabelEnd(effects, ok, nok) { ? effects.attempt(collapsedReferenceConstruct, ok, balanced) : balanced )(code) - } // Shortcut reference: `[asd]`? - + } return defined ? ok(code) : balanced(code) } - /** @type {State} */ - function balanced(code) { labelStart._balanced = true; return nok(code) } } -/** @type {Tokenizer} */ - function tokenizeResource(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('resource'); effects.enter('resourceMarker'); @@ -8272,13 +5875,10 @@ function tokenizeResource(effects, ok, nok) { effects.exit('resourceMarker'); return factoryWhitespace(effects, open) } - /** @type {State} */ - function open(code) { if (code === 41) { return end(code) } - return factoryDestination( effects, destinationAfter, @@ -8288,18 +5888,14 @@ function tokenizeResource(effects, ok, nok) { 'resourceDestinationLiteralMarker', 'resourceDestinationRaw', 'resourceDestinationString', - 3 + 32 )(code) } - /** @type {State} */ - function destinationAfter(code) { return markdownLineEndingOrSpace(code) ? factoryWhitespace(effects, between)(code) : end(code) } - /** @type {State} */ - function between(code) { if (code === 34 || code === 39 || code === 40) { return factoryTitle( @@ -8311,11 +5907,8 @@ function tokenizeResource(effects, ok, nok) { 'resourceTitleString' )(code) } - return end(code) } - /** @type {State} */ - function end(code) { if (code === 41) { effects.enter('resourceMarker'); @@ -8324,17 +5917,12 @@ function tokenizeResource(effects, ok, nok) { effects.exit('resource'); return ok } - return nok(code) } } -/** @type {Tokenizer} */ - function tokenizeFullReference(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { return factoryLabel.call( self, @@ -8346,8 +5934,6 @@ function tokenizeFullReference(effects, ok, nok) { 'referenceString' )(code) } - /** @type {State} */ - function afterLabel(code) { return self.parser.defined.includes( normalizeIdentifier( @@ -8358,12 +5944,8 @@ function tokenizeFullReference(effects, ok, nok) { : nok(code) } } -/** @type {Tokenizer} */ - function tokenizeCollapsedReference(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('reference'); effects.enter('referenceMarker'); @@ -8371,8 +5953,6 @@ function tokenizeCollapsedReference(effects, ok, nok) { effects.exit('referenceMarker'); return open } - /** @type {State} */ - function open(code) { if (code === 93) { effects.enter('referenceMarker'); @@ -8381,30 +5961,18 @@ function tokenizeCollapsedReference(effects, ok, nok) { effects.exit('reference'); return ok } - return nok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ -/** @type {Construct} */ - const labelStartImage = { name: 'labelStartImage', tokenize: tokenizeLabelStartImage, resolveAll: labelEnd.resolveAll }; -/** @type {Tokenizer} */ - function tokenizeLabelStartImage(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { effects.enter('labelImage'); effects.enter('labelImageMarker'); @@ -8412,8 +5980,6 @@ function tokenizeLabelStartImage(effects, ok, nok) { effects.exit('labelImageMarker'); return open } - /** @type {State} */ - function open(code) { if (code === 91) { effects.enter('labelMarker'); @@ -8422,44 +5988,23 @@ function tokenizeLabelStartImage(effects, ok, nok) { effects.exit('labelImage'); return after } - return nok(code) } - /** @type {State} */ - function after(code) { - /* To do: remove in the future once we’ve switched from - * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, - * which doesn’t need this */ - - /* Hidden footnotes hook */ - - /* c8 ignore next 3 */ return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ -/** @type {Construct} */ - const labelStartLink = { name: 'labelStartLink', tokenize: tokenizeLabelStartLink, resolveAll: labelEnd.resolveAll }; -/** @type {Tokenizer} */ - function tokenizeLabelStartLink(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { effects.enter('labelLink'); effects.enter('labelMarker'); @@ -8468,39 +6013,19 @@ function tokenizeLabelStartLink(effects, ok, nok) { effects.exit('labelLink'); return after } - /** @type {State} */ - function after(code) { - /* To do: remove in the future once we’ve switched from - * `micromark-extension-footnote` to `micromark-extension-gfm-footnote`, - * which doesn’t need this */ - - /* Hidden footnotes hook. */ - - /* c8 ignore next 3 */ return code === 94 && '_hiddenFootnoteSupport' in self.parser.constructs ? nok(code) : ok(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {Construct} */ const lineEnding = { name: 'lineEnding', tokenize: tokenizeLineEnding }; -/** @type {Tokenizer} */ - function tokenizeLineEnding(effects, ok) { return start - /** @type {State} */ - function start(code) { effects.enter('lineEnding'); effects.consume(code); @@ -8509,76 +6034,44 @@ function tokenizeLineEnding(effects, ok) { } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const thematicBreak$1 = { name: 'thematicBreak', tokenize: tokenizeThematicBreak }; -/** @type {Tokenizer} */ - function tokenizeThematicBreak(effects, ok, nok) { let size = 0; - /** @type {NonNullable} */ - let marker; return start - /** @type {State} */ - function start(code) { effects.enter('thematicBreak'); marker = code; return atBreak(code) } - /** @type {State} */ - function atBreak(code) { if (code === marker) { effects.enter('thematicBreakSequence'); return sequence(code) } - if (markdownSpace(code)) { return factorySpace(effects, atBreak, 'whitespace')(code) } - if (size < 3 || (code !== null && !markdownLineEnding(code))) { return nok(code) } - effects.exit('thematicBreak'); return ok(code) } - /** @type {State} */ - function sequence(code) { if (code === marker) { effects.consume(code); size++; return sequence } - effects.exit('thematicBreakSequence'); return atBreak(code) } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').Exiter} Exiter - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ -/** @type {Construct} */ - const list$1 = { name: 'list', tokenize: tokenizeListStart, @@ -8587,23 +6080,14 @@ const list$1 = { }, exit: tokenizeListEnd }; -/** @type {Construct} */ - const listItemPrefixWhitespaceConstruct = { tokenize: tokenizeListItemPrefixWhitespace, partial: true }; -/** @type {Construct} */ - const indentConstruct = { tokenize: tokenizeIndent$1, partial: true }; -/** - * @type {Tokenizer} - * @this {TokenizeContextWithState} - */ - function tokenizeListStart(effects, ok, nok) { const self = this; const tail = self.events[self.events.length - 1]; @@ -8613,15 +6097,12 @@ function tokenizeListStart(effects, ok, nok) { : 0; let size = 0; return start - /** @type {State} */ - function start(code) { const kind = self.containerState.type || (code === 42 || code === 43 || code === 45 ? 'listUnordered' : 'listOrdered'); - if ( kind === 'listUnordered' ? !self.containerState.marker || code === self.containerState.marker @@ -8633,31 +6114,25 @@ function tokenizeListStart(effects, ok, nok) { _container: true }); } - if (kind === 'listUnordered') { effects.enter('listItemPrefix'); return code === 42 || code === 45 ? effects.check(thematicBreak$1, nok, atMarker)(code) : atMarker(code) } - if (!self.interrupt || code === 49) { effects.enter('listItemPrefix'); effects.enter('listItemValue'); return inside(code) } } - return nok(code) } - /** @type {State} */ - function inside(code) { if (asciiDigit(code) && ++size < 10) { effects.consume(code); return inside } - if ( (!self.interrupt || size < 2) && (self.containerState.marker @@ -8667,20 +6142,15 @@ function tokenizeListStart(effects, ok, nok) { effects.exit('listItemValue'); return atMarker(code) } - return nok(code) } - /** - * @type {State} - **/ - function atMarker(code) { effects.enter('listItemMarker'); effects.consume(code); effects.exit('listItemMarker'); self.containerState.marker = self.containerState.marker || code; return effects.check( - blankLine, // Can’t be empty when interrupting. + blankLine, self.interrupt ? nok : onBlank, effects.attempt( listItemPrefixWhitespaceConstruct, @@ -8689,15 +6159,11 @@ function tokenizeListStart(effects, ok, nok) { ) ) } - /** @type {State} */ - function onBlank(code) { self.containerState.initialBlankLine = true; initialSize++; return endOfPrefix(code) } - /** @type {State} */ - function otherPrefix(code) { if (markdownSpace(code)) { effects.enter('listItemPrefixWhitespace'); @@ -8705,11 +6171,8 @@ function tokenizeListStart(effects, ok, nok) { effects.exit('listItemPrefixWhitespace'); return endOfPrefix } - return nok(code) } - /** @type {State} */ - function endOfPrefix(code) { self.containerState.size = initialSize + @@ -8717,23 +6180,14 @@ function tokenizeListStart(effects, ok, nok) { return ok(code) } } -/** - * @type {Tokenizer} - * @this {TokenizeContextWithState} - */ - function tokenizeListContinuation(effects, ok, nok) { const self = this; self.containerState._closeFlow = undefined; return effects.check(blankLine, onBlank, notBlank) - /** @type {State} */ - function onBlank(code) { self.containerState.furtherBlankLines = self.containerState.furtherBlankLines || - self.containerState.initialBlankLine; // We have a blank line. - // Still, try to consume at most the items size. - + self.containerState.initialBlankLine; return factorySpace( effects, ok, @@ -8741,25 +6195,18 @@ function tokenizeListContinuation(effects, ok, nok) { self.containerState.size + 1 )(code) } - /** @type {State} */ - function notBlank(code) { if (self.containerState.furtherBlankLines || !markdownSpace(code)) { self.containerState.furtherBlankLines = undefined; self.containerState.initialBlankLine = undefined; return notInCurrentItem(code) } - self.containerState.furtherBlankLines = undefined; self.containerState.initialBlankLine = undefined; return effects.attempt(indentConstruct, ok, notInCurrentItem)(code) } - /** @type {State} */ - function notInCurrentItem(code) { - // While we do continue, we signal that the flow should be closed. - self.containerState._closeFlow = true; // As we’re closing flow, we’re no longer interrupting. - + self.containerState._closeFlow = true; self.interrupt = undefined; return factorySpace( effects, @@ -8771,11 +6218,6 @@ function tokenizeListContinuation(effects, ok, nok) { )(code) } } -/** - * @type {Tokenizer} - * @this {TokenizeContextWithState} - */ - function tokenizeIndent$1(effects, ok, nok) { const self = this; return factorySpace( @@ -8784,8 +6226,6 @@ function tokenizeIndent$1(effects, ok, nok) { 'listItemIndent', self.containerState.size + 1 ) - /** @type {State} */ - function afterPrefix(code) { const tail = self.events[self.events.length - 1]; return tail && @@ -8795,19 +6235,9 @@ function tokenizeIndent$1(effects, ok, nok) { : nok(code) } } -/** - * @type {Exiter} - * @this {TokenizeContextWithState} - */ - function tokenizeListEnd(effects) { effects.exit(this.containerState.type); } -/** - * @type {Tokenizer} - * @this {TokenizeContextWithState} - */ - function tokenizeListItemPrefixWhitespace(effects, ok, nok) { const self = this; return factorySpace( @@ -8818,8 +6248,6 @@ function tokenizeListItemPrefixWhitespace(effects, ok, nok) { ? undefined : 4 + 1 ) - /** @type {State} */ - function afterPrefix(code) { const tail = self.events[self.events.length - 1]; return !markdownSpace(code) && @@ -8830,93 +6258,57 @@ function tokenizeListItemPrefixWhitespace(effects, ok, nok) { } } -/** - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ - -/** @type {Construct} */ const setextUnderline = { name: 'setextUnderline', tokenize: tokenizeSetextUnderline, resolveTo: resolveToSetextUnderline }; -/** @type {Resolver} */ - function resolveToSetextUnderline(events, context) { let index = events.length; - /** @type {number|undefined} */ - let content; - /** @type {number|undefined} */ - let text; - /** @type {number|undefined} */ - - let definition; // Find the opening of the content. - // It’ll always exist: we don’t tokenize if it isn’t there. - + let definition; while (index--) { if (events[index][0] === 'enter') { if (events[index][1].type === 'content') { content = index; break } - if (events[index][1].type === 'paragraph') { text = index; } - } // Exit + } else { if (events[index][1].type === 'content') { - // Remove the content end (if needed we’ll add it later) events.splice(index, 1); } - if (!definition && events[index][1].type === 'definition') { definition = index; } } } - const heading = { type: 'setextHeading', start: Object.assign({}, events[text][1].start), end: Object.assign({}, events[events.length - 1][1].end) - }; // Change the paragraph to setext heading text. - - events[text][1].type = 'setextHeadingText'; // If we have definitions in the content, we’ll keep on having content, - // but we need move it. - + }; + events[text][1].type = 'setextHeadingText'; if (definition) { events.splice(text, 0, ['enter', heading, context]); events.splice(definition + 1, 0, ['exit', events[content][1], context]); events[content][1].end = Object.assign({}, events[definition][1].end); } else { events[content][1] = heading; - } // Add the heading exit at the end. - + } events.push(['exit', heading, context]); return events } -/** @type {Tokenizer} */ - function tokenizeSetextUnderline(effects, ok, nok) { const self = this; let index = self.events.length; - /** @type {NonNullable} */ - let marker; - /** @type {boolean} */ - - let paragraph; // Find an opening. - + let paragraph; while (index--) { - // Skip enter/exit of line ending, line prefix, and content. - // We can now either have a definition or a paragraph. if ( self.events[index][1].type !== 'lineEnding' && self.events[index][1].type !== 'linePrefix' && @@ -8926,10 +6318,7 @@ function tokenizeSetextUnderline(effects, ok, nok) { break } } - return start - /** @type {State} */ - function start(code) { if (!self.parser.lazy[self.now().line] && (self.interrupt || paragraph)) { effects.enter('setextHeadingLine'); @@ -8937,50 +6326,33 @@ function tokenizeSetextUnderline(effects, ok, nok) { marker = code; return closingSequence(code) } - return nok(code) } - /** @type {State} */ - function closingSequence(code) { if (code === marker) { effects.consume(code); return closingSequence } - effects.exit('setextHeadingLineSequence'); return factorySpace(effects, closingSequenceEnd, 'lineSuffix')(code) } - /** @type {State} */ - function closingSequenceEnd(code) { if (code === null || markdownLineEnding(code)) { effects.exit('setextHeadingLine'); return ok(code) } - return nok(code) } } -/** - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').Initializer} Initializer - * @typedef {import('micromark-util-types').State} State - */ - -/** @type {InitialConstruct} */ const flow$1 = { tokenize: initializeFlow }; -/** @type {Initializer} */ - function initializeFlow(effects) { const self = this; const initial = effects.attempt( - // Try to parse a blank line. blankLine, - atBlankEnding, // Try to parse initial flow (essentially, only code). + atBlankEnding, effects.attempt( this.parser.constructs.flowInitial, afterConstruct, @@ -8996,28 +6368,22 @@ function initializeFlow(effects) { ) ); return initial - /** @type {State} */ - function atBlankEnding(code) { if (code === null) { effects.consume(code); return } - effects.enter('lineEndingBlank'); effects.consume(code); effects.exit('lineEndingBlank'); self.currentConstruct = undefined; return initial } - /** @type {State} */ - function afterConstruct(code) { if (code === null) { effects.consume(code); return } - effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); @@ -9026,24 +6392,11 @@ function initializeFlow(effects) { } } -/** - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Initializer} Initializer - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Code} Code - */ const resolver = { resolveAll: createResolver() }; const string$1 = initializeFactory('string'); const text$3 = initializeFactory('text'); -/** - * @param {'string'|'text'} field - * @returns {InitialConstruct} - */ - function initializeFactory(field) { return { tokenize: initializeText, @@ -9051,84 +6404,54 @@ function initializeFactory(field) { field === 'text' ? resolveAllLineSuffixes : undefined ) } - /** @type {Initializer} */ - function initializeText(effects) { const self = this; const constructs = this.parser.constructs[field]; const text = effects.attempt(constructs, start, notText); return start - /** @type {State} */ - function start(code) { return atBreak(code) ? text(code) : notText(code) } - /** @type {State} */ - function notText(code) { if (code === null) { effects.consume(code); return } - effects.enter('data'); effects.consume(code); return data } - /** @type {State} */ - function data(code) { if (atBreak(code)) { effects.exit('data'); return text(code) - } // Data. - + } effects.consume(code); return data } - /** - * @param {Code} code - * @returns {boolean} - */ - function atBreak(code) { if (code === null) { return true } - const list = constructs[code]; let index = -1; - if (list) { while (++index < list.length) { const item = list[index]; - if (!item.previous || item.previous.call(self, self.previous)) { return true } } } - return false } } } -/** - * @param {Resolver} [extraResolver] - * @returns {Resolver} - */ - function createResolver(extraResolver) { return resolveAllText - /** @type {Resolver} */ - function resolveAllText(events, context) { let index = -1; - /** @type {number|undefined} */ - - let enter; // A rather boring computation (to merge adjacent `data` events) which - // improves mm performance by 29%. - + let enter; while (++index <= events.length) { if (enter === undefined) { if (events[index] && events[index][1].type === 'data') { @@ -9136,35 +6459,19 @@ function createResolver(extraResolver) { index++; } } else if (!events[index] || events[index][1].type !== 'data') { - // Don’t do anything if there is one data token. if (index !== enter + 2) { events[enter][1].end = events[index - 1][1].end; events.splice(enter + 2, index - enter - 2); index = enter + 2; } - enter = undefined; } } - return extraResolver ? extraResolver(events, context) : events } } -/** - * A rather ugly set of instructions which again looks at chunks in the input - * stream. - * The reason to do this here is that it is *much* faster to parse in reverse. - * And that we can’t hook into `null` to split the line suffix before an EOF. - * To do: figure out if we can make this into a clean utility, or even in core. - * As it will be useful for GFMs literal autolink extension (and maybe even - * tables?) - * - * @type {Resolver} - */ - function resolveAllLineSuffixes(events, context) { - let eventIndex = -1; - + let eventIndex = 0; while (++eventIndex <= events.length) { if ( (eventIndex === events.length || @@ -9176,34 +6483,26 @@ function resolveAllLineSuffixes(events, context) { let index = chunks.length; let bufferIndex = -1; let size = 0; - /** @type {boolean|undefined} */ - let tabs; - while (index--) { const chunk = chunks[index]; - if (typeof chunk === 'string') { bufferIndex = chunk.length; - while (chunk.charCodeAt(bufferIndex - 1) === 32) { size++; bufferIndex--; } - if (bufferIndex) break bufferIndex = -1; - } // Number + } else if (chunk === -2) { tabs = true; size++; } else if (chunk === -1) ; else { - // Replacement character, exit. index++; break } } - if (size) { const token = { type: @@ -9222,7 +6521,6 @@ function resolveAllLineSuffixes(events, context) { end: Object.assign({}, data.end) }; data.end = Object.assign({}, token.start); - if (data.start.offset === data.end.offset) { Object.assign(data, token); } else { @@ -9235,44 +6533,13 @@ function resolveAllLineSuffixes(events, context) { eventIndex += 2; } } - eventIndex++; } } - return events } -/** - * @typedef {import('micromark-util-types').Code} Code - * @typedef {import('micromark-util-types').Chunk} Chunk - * @typedef {import('micromark-util-types').Point} Point - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').Effects} Effects - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Construct} Construct - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').ParseContext} ParseContext - */ - -/** - * Create a tokenizer. - * Tokenizers deal with one type of data (e.g., containers, flow, text). - * The parser is the object dealing with it all. - * `initialize` works like other constructs, except that only its `tokenize` - * function is used, in which case it doesn’t receive an `ok` or `nok`. - * `from` can be given to set the point before the first character, although - * when further lines are indented, they must be set with `defineSkip`. - * - * @param {ParseContext} parser - * @param {InitialConstruct} initialize - * @param {Omit} [from] - * @returns {TokenizeContext} - */ function createTokenizer(parser, initialize, from) { - /** @type {Point} */ let point = Object.assign( from ? Object.assign({}, from) @@ -9286,24 +6553,10 @@ function createTokenizer(parser, initialize, from) { _bufferIndex: -1 } ); - /** @type {Record} */ - const columnStart = {}; - /** @type {Construct[]} */ - const resolveAllConstructs = []; - /** @type {Chunk[]} */ - let chunks = []; - /** @type {Token[]} */ - let stack = []; - /** - * Tools used for tokenizing. - * - * @type {Effects} - */ - const effects = { consume, enter, @@ -9314,12 +6567,6 @@ function createTokenizer(parser, initialize, from) { interrupt: true }) }; - /** - * State and tools for resolving and serializing. - * - * @type {TokenizeContext} - */ - const context = { previous: null, code: null, @@ -9332,86 +6579,43 @@ function createTokenizer(parser, initialize, from) { defineSkip, write }; - /** - * The state function. - * - * @type {State|void} - */ - let state = initialize.tokenize.call(context, effects); - if (initialize.resolveAll) { resolveAllConstructs.push(initialize); } - return context - /** @type {TokenizeContext['write']} */ - function write(slice) { chunks = push(chunks, slice); - main(); // Exit if we’re not done, resolve might change stuff. - + main(); if (chunks[chunks.length - 1] !== null) { return [] } - - addResult(initialize, 0); // Otherwise, resolve, and exit. - + addResult(initialize, 0); context.events = resolveAll(resolveAllConstructs, context.events, context); return context.events - } // - // Tools. - // - - /** @type {TokenizeContext['sliceSerialize']} */ - + } function sliceSerialize(token, expandTabs) { return serializeChunks(sliceStream(token), expandTabs) } - /** @type {TokenizeContext['sliceStream']} */ - function sliceStream(token) { return sliceChunks(chunks, token) } - /** @type {TokenizeContext['now']} */ - function now() { return Object.assign({}, point) } - /** @type {TokenizeContext['defineSkip']} */ - function defineSkip(value) { columnStart[value.line] = value.column; accountForPotentialSkip(); - } // - // State management. - // - - /** - * Main loop (note that `_index` and `_bufferIndex` in `point` are modified by - * `consume`). - * Here is where we walk through the chunks, which either include strings of - * several characters, or numerical character codes. - * The reason to do this in a loop instead of a call is so the stack can - * drain. - * - * @returns {void} - */ - + } function main() { - /** @type {number} */ let chunkIndex; - while (point._index < chunks.length) { - const chunk = chunks[point._index]; // If we’re in a buffer chunk, loop through it. - + const chunk = chunks[point._index]; if (typeof chunk === 'string') { chunkIndex = point._index; - if (point._bufferIndex < 0) { point._bufferIndex = 0; } - while ( point._index === chunkIndex && point._bufferIndex < chunk.length @@ -9423,18 +6627,9 @@ function createTokenizer(parser, initialize, from) { } } } - /** - * Deal with one code. - * - * @param {Code} code - * @returns {void} - */ - function go(code) { state = state(code); } - /** @type {Effects['consume']} */ - function consume(code) { if (markdownLineEnding(code)) { point.line++; @@ -9444,28 +6639,19 @@ function createTokenizer(parser, initialize, from) { } else if (code !== -1) { point.column++; point.offset++; - } // Not in a string chunk. - + } if (point._bufferIndex < 0) { point._index++; } else { - point._bufferIndex++; // At end of string chunk. - // @ts-expect-error Points w/ non-negative `_bufferIndex` reference - // strings. - + point._bufferIndex++; if (point._bufferIndex === chunks[point._index].length) { point._bufferIndex = -1; point._index++; } - } // Expose the previous character. - - context.previous = code; // Mark as consumed. + } + context.previous = code; } - /** @type {Effects['enter']} */ - function enter(type, fields) { - /** @type {Token} */ - // @ts-expect-error Patch instead of assign required fields to help GC. const token = fields || {}; token.type = type; token.start = now(); @@ -9473,144 +6659,66 @@ function createTokenizer(parser, initialize, from) { stack.push(token); return token } - /** @type {Effects['exit']} */ - function exit(type) { const token = stack.pop(); token.end = now(); context.events.push(['exit', token, context]); return token } - /** - * Use results. - * - * @type {ReturnHandle} - */ - function onsuccessfulconstruct(construct, info) { addResult(construct, info.from); } - /** - * Discard results. - * - * @type {ReturnHandle} - */ - function onsuccessfulcheck(_, info) { info.restore(); } - /** - * Factory to attempt/check/interrupt. - * - * @param {ReturnHandle} onreturn - * @param {Record} [fields] - */ - function constructFactory(onreturn, fields) { return hook - /** - * Handle either an object mapping codes to constructs, a list of - * constructs, or a single construct. - * - * @param {Construct|Construct[]|ConstructRecord} constructs - * @param {State} returnState - * @param {State} [bogusState] - * @returns {State} - */ - function hook(constructs, returnState, bogusState) { - /** @type {Construct[]} */ let listOfConstructs; - /** @type {number} */ - let constructIndex; - /** @type {Construct} */ - let currentConstruct; - /** @type {Info} */ - let info; return Array.isArray(constructs) - ? /* c8 ignore next 1 */ + ? handleListOfConstructs(constructs) - : 'tokenize' in constructs // @ts-expect-error Looks like a construct. + : 'tokenize' in constructs ? handleListOfConstructs([constructs]) : handleMapOfConstructs(constructs) - /** - * Handle a list of construct. - * - * @param {ConstructRecord} map - * @returns {State} - */ - function handleMapOfConstructs(map) { return start - /** @type {State} */ - function start(code) { const def = code !== null && map[code]; const all = code !== null && map.null; const list = [ - // To do: add more extension tests. - - /* c8 ignore next 2 */ ...(Array.isArray(def) ? def : def ? [def] : []), ...(Array.isArray(all) ? all : all ? [all] : []) ]; return handleListOfConstructs(list)(code) } } - /** - * Handle a list of construct. - * - * @param {Construct[]} list - * @returns {State} - */ - function handleListOfConstructs(list) { listOfConstructs = list; constructIndex = 0; - if (list.length === 0) { return bogusState } - return handleConstruct(list[constructIndex]) } - /** - * Handle a single construct. - * - * @param {Construct} construct - * @returns {State} - */ - function handleConstruct(construct) { return start - /** @type {State} */ - function start(code) { - // To do: not needed to store if there is no bogus state, probably? - // Currently doesn’t work because `inspect` in document does a check - // w/o a bogus, which doesn’t make sense. But it does seem to help perf - // by not storing. info = store(); currentConstruct = construct; - if (!construct.partial) { context.currentConstruct = construct; } - if ( construct.name && context.parser.constructs.disable.null.includes(construct.name) ) { return nok() } - return construct.tokenize.call( - // If we do have fields, create an object w/ `context` as its - // prototype. - // This allows a “live binding”, which is needed for `interrupt`. fields ? Object.assign(Object.create(context), fields) : context, effects, ok, @@ -9618,36 +6726,23 @@ function createTokenizer(parser, initialize, from) { )(code) } } - /** @type {State} */ - function ok(code) { onreturn(currentConstruct, info); return returnState } - /** @type {State} */ - function nok(code) { info.restore(); - if (++constructIndex < listOfConstructs.length) { return handleConstruct(listOfConstructs[constructIndex]) } - return bogusState } } } - /** - * @param {Construct} construct - * @param {number} from - * @returns {void} - */ - function addResult(construct, from) { if (construct.resolveAll && !resolveAllConstructs.includes(construct)) { resolveAllConstructs.push(construct); } - if (construct.resolve) { splice( context.events, @@ -9656,17 +6751,10 @@ function createTokenizer(parser, initialize, from) { construct.resolve(context.events.slice(from), context) ); } - if (construct.resolveTo) { context.events = construct.resolveTo(context.events, context); } } - /** - * Store state. - * - * @returns {Info} - */ - function store() { const startPoint = now(); const startPrevious = context.previous; @@ -9677,12 +6765,6 @@ function createTokenizer(parser, initialize, from) { restore, from: startEventsIndex } - /** - * Restore state. - * - * @returns {void} - */ - function restore() { point = startPoint; context.previous = startPrevious; @@ -9692,13 +6774,6 @@ function createTokenizer(parser, initialize, from) { accountForPotentialSkip(); } } - /** - * Move the current point a bit forward in the line when it’s on a column - * skip. - * - * @returns {void} - */ - function accountForPotentialSkip() { if (point.line in columnStart && point.column < 2) { point.column = columnStart[point.line]; @@ -9706,65 +6781,32 @@ function createTokenizer(parser, initialize, from) { } } } -/** - * Get the chunks from a slice of chunks in the range of a token. - * - * @param {Chunk[]} chunks - * @param {Pick} token - * @returns {Chunk[]} - */ - function sliceChunks(chunks, token) { const startIndex = token.start._index; const startBufferIndex = token.start._bufferIndex; const endIndex = token.end._index; const endBufferIndex = token.end._bufferIndex; - /** @type {Chunk[]} */ - let view; - if (startIndex === endIndex) { - // @ts-expect-error `_bufferIndex` is used on string chunks. view = [chunks[startIndex].slice(startBufferIndex, endBufferIndex)]; } else { view = chunks.slice(startIndex, endIndex); - if (startBufferIndex > -1) { - // @ts-expect-error `_bufferIndex` is used on string chunks. view[0] = view[0].slice(startBufferIndex); } - if (endBufferIndex > 0) { - // @ts-expect-error `_bufferIndex` is used on string chunks. view.push(chunks[endIndex].slice(0, endBufferIndex)); } } - return view } -/** - * Get the string value of a slice of chunks. - * - * @param {Chunk[]} chunks - * @param {boolean} [expandTabs=false] - * @returns {string} - */ - function serializeChunks(chunks, expandTabs) { let index = -1; - /** @type {string[]} */ - const result = []; - /** @type {boolean|undefined} */ - let atTab; - while (++index < chunks.length) { const chunk = chunks[index]; - /** @type {string} */ - let value; - if (typeof chunk === 'string') { value = chunk; } else @@ -9773,46 +6815,33 @@ function serializeChunks(chunks, expandTabs) { value = '\r'; break } - case -4: { value = '\n'; break } - case -3: { value = '\r' + '\n'; break } - case -2: { value = expandTabs ? ' ' : '\t'; break } - case -1: { if (!expandTabs && atTab) continue value = ' '; break } - default: { - // Currently only replacement character. value = String.fromCharCode(chunk); } } - atTab = chunk === -2; result.push(value); } - return result.join('') } -/** - * @typedef {import('micromark-util-types').Extension} Extension - */ -/** @type {Extension['document']} */ - const document = { [42]: list$1, [43]: list$1, @@ -9829,20 +6858,14 @@ const document = { [57]: list$1, [62]: blockQuote }; -/** @type {Extension['contentInitial']} */ - const contentInitial = { [91]: definition$1 }; -/** @type {Extension['flowInitial']} */ - const flowInitial = { [-2]: codeIndented, [-1]: codeIndented, [32]: codeIndented }; -/** @type {Extension['flow']} */ - const flow = { [35]: headingAtx, [42]: thematicBreak$1, @@ -9853,14 +6876,10 @@ const flow = { [96]: codeFenced, [126]: codeFenced }; -/** @type {Extension['string']} */ - const string = { [38]: characterReference, [92]: characterEscape }; -/** @type {Extension['text']} */ - const text$2 = { [-5]: lineEnding, [-4]: lineEnding, @@ -9875,18 +6894,12 @@ const text$2 = { [95]: attention, [96]: codeText }; -/** @type {Extension['insideSpan']} */ - const insideSpan = { null: [attention, resolver] }; -/** @type {Extension['attentionMarkers']} */ - const attentionMarkers = { null: [42, 95] }; -/** @type {Extension['disable']} */ - const disable = { null: [] }; @@ -9904,27 +6917,10 @@ var defaultConstructs = /*#__PURE__*/Object.freeze({ disable: disable }); -/** - * @typedef {import('micromark-util-types').InitialConstruct} InitialConstruct - * @typedef {import('micromark-util-types').FullNormalizedExtension} FullNormalizedExtension - * @typedef {import('micromark-util-types').ParseOptions} ParseOptions - * @typedef {import('micromark-util-types').ParseContext} ParseContext - * @typedef {import('micromark-util-types').Create} Create - */ -/** - * @param {ParseOptions} [options] - * @returns {ParseContext} - */ - function parse$1(options = {}) { - /** @type {FullNormalizedExtension} */ - // @ts-expect-error `defaultConstructs` is full, so the result will be too. const constructs = combineExtensions( - // @ts-expect-error Same as above. [defaultConstructs].concat(options.extensions || []) ); - /** @type {ParseContext} */ - const parser = { defined: [], lazy: {}, @@ -9936,94 +6932,47 @@ function parse$1(options = {}) { text: create(text$3) }; return parser - /** - * @param {InitialConstruct} initial - */ - function create(initial) { return creator - /** @type {Create} */ - function creator(from) { return createTokenizer(parser, initial, from) } } } -/** - * @typedef {import('micromark-util-types').Encoding} Encoding - * @typedef {import('micromark-util-types').Value} Value - * @typedef {import('micromark-util-types').Chunk} Chunk - * @typedef {import('micromark-util-types').Code} Code - */ - -/** - * @callback Preprocessor - * @param {Value} value - * @param {Encoding} [encoding] - * @param {boolean} [end=false] - * @returns {Chunk[]} - */ const search = /[\0\t\n\r]/g; -/** - * @returns {Preprocessor} - */ - function preprocess() { let column = 1; let buffer = ''; - /** @type {boolean|undefined} */ - let start = true; - /** @type {boolean|undefined} */ - let atCarriageReturn; return preprocessor - /** @type {Preprocessor} */ - function preprocessor(value, encoding, end) { - /** @type {Chunk[]} */ const chunks = []; - /** @type {RegExpMatchArray|null} */ - let match; - /** @type {number} */ - let next; - /** @type {number} */ - let startPosition; - /** @type {number} */ - let endPosition; - /** @type {Code} */ - - let code; // @ts-expect-error `Buffer` does allow an encoding. - + let code; value = buffer + value.toString(encoding); startPosition = 0; buffer = ''; - if (start) { if (value.charCodeAt(0) === 65279) { startPosition++; } - start = undefined; } - while (startPosition < value.length) { search.lastIndex = startPosition; match = search.exec(value); endPosition = match && match.index !== undefined ? match.index : value.length; code = value.charCodeAt(endPosition); - if (!match) { buffer = value.slice(startPosition); break } - if (code === 10 && startPosition === endPosition && atCarriageReturn) { chunks.push(-3); atCarriageReturn = undefined; @@ -10032,217 +6981,100 @@ function preprocess() { chunks.push(-5); atCarriageReturn = undefined; } - if (startPosition < endPosition) { chunks.push(value.slice(startPosition, endPosition)); column += endPosition - startPosition; } - switch (code) { case 0: { chunks.push(65533); column++; break } - case 9: { next = Math.ceil(column / 4) * 4; chunks.push(-2); - while (column++ < next) chunks.push(-1); - break } - case 10: { chunks.push(-4); column = 1; break } - default: { atCarriageReturn = true; column = 1; } } } - startPosition = endPosition + 1; } - if (end) { if (atCarriageReturn) chunks.push(-5); if (buffer) chunks.push(buffer); chunks.push(null); } - return chunks } } -/** - * @typedef {import('micromark-util-types').Event} Event - */ -/** - * @param {Event[]} events - * @returns {Event[]} - */ - function postprocess(events) { while (!subtokenize(events)) { - // Empty } - return events } -/** - * Turn the number (in string form as either hexa- or plain decimal) coming from - * a numeric character reference into a character. - * - * @param {string} value - * Value to decode. - * @param {number} base - * Numeric base. - * @returns {string} - */ function decodeNumericCharacterReference(value, base) { const code = Number.parseInt(value, base); - if ( - // C0 except for HT, LF, FF, CR, space code < 9 || code === 11 || - (code > 13 && code < 32) || // Control character (DEL) of the basic block and C1 controls. - (code > 126 && code < 160) || // Lone high surrogates and low surrogates. - (code > 55295 && code < 57344) || // Noncharacters. + (code > 13 && code < 32) || + (code > 126 && code < 160) || + (code > 55295 && code < 57344) || (code > 64975 && code < 65008) || (code & 65535) === 65535 || - (code & 65535) === 65534 || // Out of range + (code & 65535) === 65534 || code > 1114111 ) { return '\uFFFD' } - return String.fromCharCode(code) } const characterEscapeOrReference = /\\([!-/:-@[-`{-~])|&(#(?:\d{1,7}|x[\da-f]{1,6})|[\da-z]{1,31});/gi; -/** - * Utility to decode markdown strings (which occur in places such as fenced - * code info strings, destinations, labels, and titles). - * The “string” content type allows character escapes and -references. - * This decodes those. - * - * @param {string} value - * @returns {string} - */ - function decodeString(value) { return value.replace(characterEscapeOrReference, decode) } -/** - * @param {string} $0 - * @param {string} $1 - * @param {string} $2 - * @returns {string} - */ - function decode($0, $1, $2) { if ($1) { - // Escape. return $1 - } // Reference. - + } const head = $2.charCodeAt(0); - if (head === 35) { const head = $2.charCodeAt(1); const hex = head === 120 || head === 88; return decodeNumericCharacterReference($2.slice(hex ? 2 : 1), hex ? 16 : 10) } - - return decodeEntity($2) || $0 + return decodeNamedCharacterReference($2) || $0 } -/** - * @typedef {import('micromark-util-types').Encoding} Encoding - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').ParseOptions} ParseOptions - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').TokenizeContext} TokenizeContext - * @typedef {import('micromark-util-types').Value} Value - * @typedef {import('unist').Parent} UnistParent - * @typedef {import('unist').Point} Point - * @typedef {import('mdast').PhrasingContent} PhrasingContent - * @typedef {import('mdast').Content} Content - * @typedef {Root|Content} Node - * @typedef {Extract} Parent - * @typedef {import('mdast').Break} Break - * @typedef {import('mdast').Blockquote} Blockquote - * @typedef {import('mdast').Code} Code - * @typedef {import('mdast').Definition} Definition - * @typedef {import('mdast').Emphasis} Emphasis - * @typedef {import('mdast').Heading} Heading - * @typedef {import('mdast').HTML} HTML - * @typedef {import('mdast').Image} Image - * @typedef {import('mdast').ImageReference} ImageReference - * @typedef {import('mdast').InlineCode} InlineCode - * @typedef {import('mdast').Link} Link - * @typedef {import('mdast').LinkReference} LinkReference - * @typedef {import('mdast').List} List - * @typedef {import('mdast').ListItem} ListItem - * @typedef {import('mdast').Paragraph} Paragraph - * @typedef {import('mdast').Root} Root - * @typedef {import('mdast').Strong} Strong - * @typedef {import('mdast').Text} Text - * @typedef {import('mdast').ThematicBreak} ThematicBreak - * - * @typedef {UnistParent & {type: 'fragment', children: PhrasingContent[]}} Fragment - */ const own$5 = {}.hasOwnProperty; -/** - * @param value Markdown to parse (`string` or `Buffer`). - * @param [encoding] Character encoding to understand `value` as when it’s a `Buffer` (`string`, default: `'utf8'`). - * @param [options] Configuration - */ - const fromMarkdown = - /** - * @type {( - * ((value: Value, encoding: Encoding, options?: Options) => Root) & - * ((value: Value, options?: Options) => Root) - * )} - */ - - /** - * @param {Value} value - * @param {Encoding} [encoding] - * @param {Options} [options] - * @returns {Root} - */ function (value, encoding, options) { if (typeof encoding !== 'string') { options = encoding; encoding = undefined; } - return compiler(options)( postprocess( parse$1(options).document().write(preprocess()(value, encoding, true)) ) ) }; -/** - * Note this compiler only understand complete buffering, not streaming. - * - * @param {Options} [options] - */ - function compiler(options = {}) { - /** @type {NormalizedExtension} */ - // @ts-expect-error: our base has all required fields, so the result will too. const config = configure$1( { transforms: [], @@ -10349,32 +7181,16 @@ function compiler(options = {}) { }, options.mdastExtensions || [] ); - /** @type {CompileData} */ - const data = {}; return compile - /** - * @param {Array.} events - * @returns {Root} - */ - function compile(events) { - /** @type {Root} */ let tree = { type: 'root', children: [] }; - /** @type {CompileContext['stack']} */ - const stack = [tree]; - /** @type {CompileContext['tokenStack']} */ - const tokenStack = []; - /** @type {Array.} */ - const listStack = []; - /** @type {Omit} */ - const context = { stack, tokenStack, @@ -10387,10 +7203,7 @@ function compiler(options = {}) { getData }; let index = -1; - while (++index < events.length) { - // We preprocess lists to add `listItem` tokens, and to infer whether - // items the list itself are spread out. if ( events[index][1].type === 'listOrdered' || events[index][1].type === 'listUnordered' @@ -10403,12 +7216,9 @@ function compiler(options = {}) { } } } - index = -1; - while (++index < events.length) { const handler = config[events[index][0]]; - if (own$5.call(handler, events[index][1].type)) { handler[events[index][1].type].call( Object.assign( @@ -10421,20 +7231,11 @@ function compiler(options = {}) { ); } } - if (tokenStack.length > 0) { - throw new Error( - 'Cannot close document, a token (`' + - tokenStack[tokenStack.length - 1].type + - '`, ' + - stringifyPosition({ - start: tokenStack[tokenStack.length - 1].start, - end: tokenStack[tokenStack.length - 1].end - }) + - ') is still open' - ) - } // Figure out `root` position. - + const tail = tokenStack[tokenStack.length - 1]; + const handler = tail[1] || defaultOnError; + handler.call(context, undefined, tail[0]); + } tree.position = { start: point( events.length > 0 @@ -10456,40 +7257,21 @@ function compiler(options = {}) { ) }; index = -1; - while (++index < config.transforms.length) { tree = config.transforms[index](tree) || tree; } - return tree } - /** - * @param {Array.} events - * @param {number} start - * @param {number} length - * @returns {number} - */ - function prepareList(events, start, length) { let index = start - 1; let containerBalance = -1; let listSpread = false; - /** @type {Token|undefined} */ - let listItem; - /** @type {number|undefined} */ - let lineIndex; - /** @type {number|undefined} */ - let firstBlankLineIndex; - /** @type {boolean|undefined} */ - let atMarker; - while (++index <= length) { const event = events[index]; - if ( event[1].type === 'listUnordered' || event[1].type === 'listOrdered' || @@ -10500,7 +7282,6 @@ function compiler(options = {}) { } else { containerBalance--; } - atMarker = undefined; } else if (event[1].type === 'lineEndingBlank') { if (event[0] === 'enter') { @@ -10512,7 +7293,6 @@ function compiler(options = {}) { ) { firstBlankLineIndex = index; } - atMarker = undefined; } } else if ( @@ -10524,7 +7304,6 @@ function compiler(options = {}) { ) ; else { atMarker = undefined; } - if ( (!containerBalance && event[0] === 'enter' && @@ -10537,21 +7316,17 @@ function compiler(options = {}) { if (listItem) { let tailIndex = index; lineIndex = undefined; - while (tailIndex--) { const tailEvent = events[tailIndex]; - if ( tailEvent[1].type === 'lineEnding' || tailEvent[1].type === 'lineEndingBlank' ) { if (tailEvent[0] === 'exit') continue - if (lineIndex) { events[lineIndex][1].type = 'lineEndingBlank'; listSpread = true; } - tailEvent[1].type = 'lineEnding'; lineIndex = tailIndex; } else if ( @@ -10564,15 +7339,12 @@ function compiler(options = {}) { break } } - if ( firstBlankLineIndex && (!lineIndex || firstBlankLineIndex < lineIndex) ) { - // @ts-expect-error Patched. listItem._spread = true; - } // Fix position. - + } listItem.end = Object.assign( {}, lineIndex ? events[lineIndex][1].start : event[1].end @@ -10580,16 +7352,13 @@ function compiler(options = {}) { events.splice(lineIndex || index, 0, ['exit', listItem, event[2]]); index++; length++; - } // Create a new list item. - + } if (event[1].type === 'listItemPrefix') { listItem = { type: 'listItem', - // @ts-expect-error Patched _spread: false, start: Object.assign({}, event[1].start) - }; // @ts-expect-error: `listItem` is most definitely defined, TS... - + }; events.splice(index, 0, ['enter', listItem, event[2]]); index++; length++; @@ -10597,34 +7366,16 @@ function compiler(options = {}) { atMarker = true; } } - } // @ts-expect-error Patched. - + } events[start][1]._spread = listSpread; return length } - /** - * @type {CompileContext['setData']} - * @param [value] - */ - function setData(key, value) { data[key] = value; } - /** - * @type {CompileContext['getData']} - * @template {string} K - * @param {K} key - * @returns {CompileData[K]} - */ - function getData(key) { return data[key] } - /** - * @param {Point} d - * @returns {Point} - */ - function point(d) { return { line: d.line, @@ -10632,78 +7383,39 @@ function compiler(options = {}) { offset: d.offset } } - /** - * @param {(token: Token) => Node} create - * @param {Handle} [and] - * @returns {Handle} - */ - function opener(create, and) { return open - /** - * @this {CompileContext} - * @param {Token} token - * @returns {void} - */ - function open(token) { enter.call(this, create(token), token); if (and) and.call(this, token); } } - /** @type {CompileContext['buffer']} */ - function buffer() { this.stack.push({ type: 'fragment', children: [] }); } - /** - * @type {CompileContext['enter']} - * @template {Node} N - * @this {CompileContext} - * @param {N} node - * @param {Token} token - * @returns {N} - */ - - function enter(node, token) { + function enter(node, token, errorHandler) { const parent = this.stack[this.stack.length - 1]; - // @ts-expect-error: Assume `Node` can exist as a child of `parent`. parent.children.push(node); this.stack.push(node); - this.tokenStack.push(token); // @ts-expect-error: `end` will be patched later. - + this.tokenStack.push([token, errorHandler]); node.position = { start: point(token.start) }; return node } - /** - * @param {Handle} [and] - * @returns {Handle} - */ - function closer(and) { return close - /** - * @this {CompileContext} - * @param {Token} token - * @returns {void} - */ - function close(token) { if (and) and.call(this, token); exit.call(this, token); } } - /** @type {CompileContext['exit']} */ - - function exit(token) { + function exit(token, onExitError) { const node = this.stack.pop(); const open = this.tokenStack.pop(); - if (!open) { throw new Error( 'Cannot close `' + @@ -10715,205 +7427,127 @@ function compiler(options = {}) { }) + '): it’s not open' ) - } else if (open.type !== token.type) { - throw new Error( - 'Cannot close `' + - token.type + - '` (' + - stringifyPosition({ - start: token.start, - end: token.end - }) + - '): a different token (`' + - open.type + - '`, ' + - stringifyPosition({ - start: open.start, - end: open.end - }) + - ') is open' - ) + } else if (open[0].type !== token.type) { + if (onExitError) { + onExitError.call(this, token, open[0]); + } else { + const handler = open[1] || defaultOnError; + handler.call(this, token, open[0]); + } } - node.position.end = point(token.end); return node } - /** - * @this {CompileContext} - * @returns {string} - */ - function resume() { return toString(this.stack.pop()) - } // - // Handlers. - // - - /** @type {Handle} */ - + } function onenterlistordered() { setData('expectingFirstListItemValue', true); } - /** @type {Handle} */ - function onenterlistitemvalue(token) { if (getData('expectingFirstListItemValue')) { const ancestor = - /** @type {List} */ this.stack[this.stack.length - 2]; ancestor.start = Number.parseInt(this.sliceSerialize(token), 10); setData('expectingFirstListItemValue'); } } - /** @type {Handle} */ - function onexitcodefencedfenceinfo() { const data = this.resume(); const node = - /** @type {Code} */ this.stack[this.stack.length - 1]; node.lang = data; } - /** @type {Handle} */ - function onexitcodefencedfencemeta() { const data = this.resume(); const node = - /** @type {Code} */ this.stack[this.stack.length - 1]; node.meta = data; } - /** @type {Handle} */ - function onexitcodefencedfence() { - // Exit if this is the closing fence. if (getData('flowCodeInside')) return this.buffer(); setData('flowCodeInside', true); } - /** @type {Handle} */ - function onexitcodefenced() { const data = this.resume(); const node = - /** @type {Code} */ this.stack[this.stack.length - 1]; node.value = data.replace(/^(\r?\n|\r)|(\r?\n|\r)$/g, ''); setData('flowCodeInside'); } - /** @type {Handle} */ - function onexitcodeindented() { const data = this.resume(); const node = - /** @type {Code} */ this.stack[this.stack.length - 1]; node.value = data.replace(/(\r?\n|\r)$/g, ''); } - /** @type {Handle} */ - function onexitdefinitionlabelstring(token) { - // Discard label, use the source content instead. const label = this.resume(); const node = - /** @type {Definition} */ this.stack[this.stack.length - 1]; node.label = label; node.identifier = normalizeIdentifier( this.sliceSerialize(token) ).toLowerCase(); } - /** @type {Handle} */ - function onexitdefinitiontitlestring() { const data = this.resume(); const node = - /** @type {Definition} */ this.stack[this.stack.length - 1]; node.title = data; } - /** @type {Handle} */ - function onexitdefinitiondestinationstring() { const data = this.resume(); const node = - /** @type {Definition} */ this.stack[this.stack.length - 1]; node.url = data; } - /** @type {Handle} */ - function onexitatxheadingsequence(token) { const node = - /** @type {Heading} */ this.stack[this.stack.length - 1]; - if (!node.depth) { const depth = this.sliceSerialize(token).length; node.depth = depth; } } - /** @type {Handle} */ - function onexitsetextheadingtext() { setData('setextHeadingSlurpLineEnding', true); } - /** @type {Handle} */ - function onexitsetextheadinglinesequence(token) { const node = - /** @type {Heading} */ this.stack[this.stack.length - 1]; node.depth = this.sliceSerialize(token).charCodeAt(0) === 61 ? 1 : 2; } - /** @type {Handle} */ - function onexitsetextheading() { setData('setextHeadingSlurpLineEnding'); } - /** @type {Handle} */ - function onenterdata(token) { const parent = - /** @type {Parent} */ this.stack[this.stack.length - 1]; - /** @type {Node} */ - let tail = parent.children[parent.children.length - 1]; - if (!tail || tail.type !== 'text') { - // Add a new text node. - tail = text(); // @ts-expect-error: we’ll add `end` later. - + tail = text(); tail.position = { start: point(token.start) - }; // @ts-expect-error: Assume `parent` accepts `text`. - + }; parent.children.push(tail); } - this.stack.push(tail); } - /** @type {Handle} */ - function onexitdata(token) { const tail = this.stack.pop(); tail.value += this.sliceSerialize(token); tail.position.end = point(token.end); } - /** @type {Handle} */ - function onexitlineending(token) { const context = this.stack[this.stack.length - 1]; - - // If we’re at a hard break, include the line ending in there. if (getData('atHardBreak')) { const tail = context.children[context.children.length - 1]; tail.position.end = point(token.end); setData('atHardBreak'); return } - if ( !getData('setextHeadingSlurpLineEnding') && config.canContainEols.includes(context.type) @@ -10922,148 +7556,96 @@ function compiler(options = {}) { onexitdata.call(this, token); } } - /** @type {Handle} */ - function onexithardbreak() { setData('atHardBreak', true); } - /** @type {Handle} */ - function onexithtmlflow() { const data = this.resume(); const node = - /** @type {HTML} */ this.stack[this.stack.length - 1]; node.value = data; } - /** @type {Handle} */ - function onexithtmltext() { const data = this.resume(); const node = - /** @type {HTML} */ this.stack[this.stack.length - 1]; node.value = data; } - /** @type {Handle} */ - function onexitcodetext() { const data = this.resume(); const node = - /** @type {InlineCode} */ this.stack[this.stack.length - 1]; node.value = data; } - /** @type {Handle} */ - function onexitlink() { const context = - /** @type {Link & {identifier: string, label: string}} */ - this.stack[this.stack.length - 1]; // To do: clean. - + this.stack[this.stack.length - 1]; if (getData('inReference')) { - context.type += 'Reference'; // @ts-expect-error: mutate. - - context.referenceType = getData('referenceType') || 'shortcut'; // @ts-expect-error: mutate. - + context.type += 'Reference'; + context.referenceType = getData('referenceType') || 'shortcut'; delete context.url; delete context.title; } else { - // @ts-expect-error: mutate. - delete context.identifier; // @ts-expect-error: mutate. - + delete context.identifier; delete context.label; } - setData('referenceType'); } - /** @type {Handle} */ - function onexitimage() { const context = - /** @type {Image & {identifier: string, label: string}} */ - this.stack[this.stack.length - 1]; // To do: clean. - + this.stack[this.stack.length - 1]; if (getData('inReference')) { - context.type += 'Reference'; // @ts-expect-error: mutate. - - context.referenceType = getData('referenceType') || 'shortcut'; // @ts-expect-error: mutate. - + context.type += 'Reference'; + context.referenceType = getData('referenceType') || 'shortcut'; delete context.url; delete context.title; } else { - // @ts-expect-error: mutate. - delete context.identifier; // @ts-expect-error: mutate. - + delete context.identifier; delete context.label; } - setData('referenceType'); } - /** @type {Handle} */ - function onexitlabeltext(token) { const ancestor = - /** @type {(Link|Image) & {identifier: string, label: string}} */ this.stack[this.stack.length - 2]; const string = this.sliceSerialize(token); ancestor.label = decodeString(string); ancestor.identifier = normalizeIdentifier(string).toLowerCase(); } - /** @type {Handle} */ - function onexitlabel() { const fragment = - /** @type {Fragment} */ this.stack[this.stack.length - 1]; const value = this.resume(); const node = - /** @type {(Link|Image) & {identifier: string, label: string}} */ - this.stack[this.stack.length - 1]; // Assume a reference. - + this.stack[this.stack.length - 1]; setData('inReference', true); - if (node.type === 'link') { - // @ts-expect-error: Assume static phrasing content. node.children = fragment.children; } else { node.alt = value; } } - /** @type {Handle} */ - function onexitresourcedestinationstring() { const data = this.resume(); const node = - /** @type {Link|Image} */ this.stack[this.stack.length - 1]; node.url = data; } - /** @type {Handle} */ - function onexitresourcetitlestring() { const data = this.resume(); const node = - /** @type {Link|Image} */ this.stack[this.stack.length - 1]; node.title = data; } - /** @type {Handle} */ - function onexitresource() { setData('inReference'); } - /** @type {Handle} */ - function onenterreference() { setData('referenceType', 'collapsed'); } - /** @type {Handle} */ - function onexitreferencestring(token) { const label = this.resume(); const node = - /** @type {LinkReference|ImageReference} */ this.stack[this.stack.length - 1]; node.label = label; node.identifier = normalizeIdentifier( @@ -11071,20 +7653,13 @@ function compiler(options = {}) { ).toLowerCase(); setData('referenceType', 'full'); } - /** @type {Handle} */ - function onexitcharacterreferencemarker(token) { setData('characterReferenceType', token.type); } - /** @type {Handle} */ - function onexitcharacterreferencevalue(token) { const data = this.sliceSerialize(token); const type = getData('characterReferenceType'); - /** @type {string} */ - let value; - if (type) { value = decodeNumericCharacterReference( data, @@ -11092,46 +7667,30 @@ function compiler(options = {}) { ); setData('characterReferenceType'); } else { - // @ts-expect-error `decodeEntity` can return false for invalid named - // character references, but everything we’ve tokenized is valid. - value = decodeEntity(data); + value = decodeNamedCharacterReference(data); } - const tail = this.stack.pop(); tail.value += value; tail.position.end = point(token.end); } - /** @type {Handle} */ - function onexitautolinkprotocol(token) { onexitdata.call(this, token); const node = - /** @type {Link} */ this.stack[this.stack.length - 1]; node.url = this.sliceSerialize(token); } - /** @type {Handle} */ - function onexitautolinkemail(token) { onexitdata.call(this, token); const node = - /** @type {Link} */ this.stack[this.stack.length - 1]; node.url = 'mailto:' + this.sliceSerialize(token); - } // - // Creaters. - // - - /** @returns {Blockquote} */ - + } function blockQuote() { return { type: 'blockquote', children: [] } } - /** @returns {Code} */ - function codeFlow() { return { type: 'code', @@ -11140,16 +7699,12 @@ function compiler(options = {}) { value: '' } } - /** @returns {InlineCode} */ - function codeText() { return { type: 'inlineCode', value: '' } } - /** @returns {Definition} */ - function definition() { return { type: 'definition', @@ -11159,41 +7714,30 @@ function compiler(options = {}) { url: '' } } - /** @returns {Emphasis} */ - function emphasis() { return { type: 'emphasis', children: [] } } - /** @returns {Heading} */ - function heading() { - // @ts-expect-error `depth` will be set later. return { type: 'heading', depth: undefined, children: [] } } - /** @returns {Break} */ - function hardBreak() { return { type: 'break' } } - /** @returns {HTML} */ - function html() { return { type: 'html', value: '' } } - /** @returns {Image} */ - function image() { return { type: 'image', @@ -11202,8 +7746,6 @@ function compiler(options = {}) { alt: null } } - /** @returns {Link} */ - function link() { return { type: 'link', @@ -11212,110 +7754,69 @@ function compiler(options = {}) { children: [] } } - /** - * @param {Token} token - * @returns {List} - */ - function list(token) { return { type: 'list', ordered: token.type === 'listOrdered', start: null, - // @ts-expect-error Patched. spread: token._spread, children: [] } } - /** - * @param {Token} token - * @returns {ListItem} - */ - function listItem(token) { return { type: 'listItem', - // @ts-expect-error Patched. spread: token._spread, checked: null, children: [] } } - /** @returns {Paragraph} */ - function paragraph() { return { type: 'paragraph', children: [] } } - /** @returns {Strong} */ - function strong() { return { type: 'strong', children: [] } } - /** @returns {Text} */ - function text() { return { type: 'text', value: '' } } - /** @returns {ThematicBreak} */ - function thematicBreak() { return { type: 'thematicBreak' } } } -/** - * @param {Extension} combined - * @param {Array.>} extensions - * @returns {Extension} - */ - function configure$1(combined, extensions) { let index = -1; - while (++index < extensions.length) { const value = extensions[index]; - if (Array.isArray(value)) { configure$1(combined, value); } else { extension(combined, value); } } - return combined } -/** - * @param {Extension} combined - * @param {Extension} extension - * @returns {void} - */ - function extension(combined, extension) { - /** @type {string} */ let key; - for (key in extension) { if (own$5.call(extension, key)) { const list = key === 'canContainEols' || key === 'transforms'; const maybe = own$5.call(combined, key) ? combined[key] : undefined; - /* c8 ignore next */ - const left = maybe || (combined[key] = list ? [] : {}); const right = extension[key]; - if (right) { if (list) { - // @ts-expect-error: `left` is an array. combined[key] = [...left, ...right]; } else { Object.assign(left, right); @@ -11324,326 +7825,221 @@ function extension(combined, extension) { } } } +function defaultOnError(left, right) { + if (left) { + throw new Error( + 'Cannot close `' + + left.type + + '` (' + + stringifyPosition({ + start: left.start, + end: left.end + }) + + '): a different token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is open' + ) + } else { + throw new Error( + 'Cannot close document, a token (`' + + right.type + + '`, ' + + stringifyPosition({ + start: right.start, + end: right.end + }) + + ') is still open' + ) + } +} -/** - * @typedef {import('mdast').Root} Root - * @typedef {import('mdast-util-from-markdown').Options} Options - */ - -/** @type {import('unified').Plugin<[Options?] | void[], string, Root>} */ function remarkParse(options) { - /** @type {import('unified').ParserFunction} */ const parser = (doc) => { - // Assume options. - const settings = /** @type {Options} */ (this.data('settings')); - + const settings = (this.data('settings')); return fromMarkdown( doc, Object.assign({}, settings, options, { - // Note: these options are not in the readme. - // The goal is for them to be set by plugins on `data` instead of being - // passed by users. extensions: this.data('micromarkExtensions') || [], mdastExtensions: this.data('fromMarkdownExtensions') || [] }) ) }; - Object.assign(this, {Parser: parser}); } var own$4 = {}.hasOwnProperty; - -/** - * @callback Handler - * @param {...unknown} value - * @return {unknown} - * - * @typedef {Record} Handlers - * - * @typedef {Object} Options - * @property {Handler} [unknown] - * @property {Handler} [invalid] - * @property {Handlers} [handlers] - */ - -/** - * Handle values based on a property. - * - * @param {string} key - * @param {Options} [options] - */ function zwitch(key, options) { var settings = options || {}; - - /** - * Handle one value. - * Based on the bound `key`, a respective handler will be called. - * If `value` is not an object, or doesn’t have a `key` property, the special - * “invalid” handler will be called. - * If `value` has an unknown `key`, the special “unknown” handler will be - * called. - * - * All arguments, and the context object, are passed through to the handler, - * and it’s result is returned. - * - * @param {...unknown} [value] - * @this {unknown} - * @returns {unknown} - * @property {Handler} invalid - * @property {Handler} unknown - * @property {Handlers} handlers - */ function one(value) { var fn = one.invalid; var handlers = one.handlers; - if (value && own$4.call(value, key)) { fn = own$4.call(handlers, value[key]) ? handlers[value[key]] : one.unknown; } - if (fn) { return fn.apply(this, arguments) } } - one.handlers = settings.handlers || {}; one.invalid = settings.invalid; one.unknown = settings.unknown; - return one } -/** - * @typedef {import('./types.js').Options} Options - * @typedef {import('./types.js').Context} Context - */ - -/** - * @param {Context} base - * @param {Options} extension - * @returns {Context} - */ function configure(base, extension) { let index = -1; - /** @type {string} */ let key; - - // First do subextensions. if (extension.extensions) { while (++index < extension.extensions.length) { configure(base, extension.extensions[index]); } } - for (key in extension) { if (key === 'extensions') ; else if (key === 'unsafe' || key === 'join') { - /* c8 ignore next 2 */ - // @ts-expect-error: hush. base[key] = [...(base[key] || []), ...(extension[key] || [])]; } else if (key === 'handlers') { base[key] = Object.assign(base[key], extension[key] || {}); } else { - // @ts-expect-error: hush. base.options[key] = extension[key]; } } - return base } -/** - * @typedef {import('../types.js').Node} Node - * @typedef {import('../types.js').Parent} Parent - * @typedef {import('../types.js').Join} Join - * @typedef {import('../types.js').Context} Context - */ +function track(options_) { + const options = options_ || {}; + const now = options.now || {}; + let lineShift = options.lineShift || 0; + let line = now.line || 1; + let column = now.column || 1; + return {move, current, shift} + function current() { + return {now: {line, column}, lineShift} + } + function shift(value) { + lineShift += value; + } + function move(value = '') { + const chunks = value.split(/\r?\n|\r/g); + const tail = chunks[chunks.length - 1]; + line += chunks.length - 1; + column = + chunks.length === 1 ? column + tail.length : 1 + tail.length + lineShift; + return value + } +} -/** - * @param {Parent} parent - * @param {Context} context - * @returns {string} - */ -function containerFlow(parent, context) { +function containerFlow(parent, context, safeOptions) { const indexStack = context.indexStack; const children = parent.children || []; - /** @type {Array.} */ + const tracker = track(safeOptions); const results = []; let index = -1; - indexStack.push(-1); - while (++index < children.length) { const child = children[index]; - indexStack[indexStack.length - 1] = index; - results.push( - context.handle(child, parent, context, {before: '\n', after: '\n'}) + tracker.move( + context.handle(child, parent, context, { + before: '\n', + after: '\n', + ...tracker.current() + }) + ) ); - if (child.type !== 'list') { context.bulletLastUsed = undefined; } - if (index < children.length - 1) { - results.push(between(child, children[index + 1])); + results.push(tracker.move(between(child, children[index + 1]))); } } - indexStack.pop(); - return results.join('') - - /** - * @param {Node} left - * @param {Node} right - * @returns {string} - */ function between(left, right) { let index = context.join.length; - while (index--) { const result = context.join[index](left, right, parent, context); - if (result === true || result === 1) { break } - if (typeof result === 'number') { return '\n'.repeat(1 + result) } - if (result === false) { return '\n\n\n\n' } } - return '\n\n' } } -/** - * @callback Map - * @param {string} value - * @param {number} line - * @param {boolean} blank - * @returns {string} - */ - const eol = /\r?\n|\r/g; - -/** - * @param {string} value - * @param {Map} map - * @returns {string} - */ function indentLines(value, map) { - /** @type {Array.} */ const result = []; let start = 0; let line = 0; - /** @type {RegExpExecArray|null} */ let match; - while ((match = eol.exec(value))) { one(value.slice(start, match.index)); result.push(match[0]); start = match.index + match[0].length; line++; } - one(value.slice(start)); - return result.join('') - - /** - * @param {string} value - */ function one(value) { result.push(map(value, line, !value)); } } -/** - * @typedef {import('mdast').Blockquote} Blockquote - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('../util/indent-lines.js').Map} Map - */ - -/** - * @type {Handle} - * @param {Blockquote} node - */ -function blockquote(node, _, context) { +function blockquote(node, _, context, safeOptions) { const exit = context.enter('blockquote'); - const value = indentLines(containerFlow(node, context), map$2); + const tracker = track(safeOptions); + tracker.move('> '); + tracker.shift(2); + const value = indentLines( + containerFlow(node, context, tracker.current()), + map$2 + ); exit(); return value } - -/** @type {Map} */ function map$2(line, _, blank) { return '>' + (blank ? '' : ' ') + line } -/** - * @typedef {import('../types.js').Unsafe} Unsafe - */ - -/** - * @param {Array.} stack - * @param {Unsafe} pattern - * @returns {boolean} - */ function patternInScope(stack, pattern) { return ( listInScope(stack, pattern.inConstruct, true) && !listInScope(stack, pattern.notInConstruct, false) ) } - -/** - * @param {Array.} stack - * @param {Unsafe['inConstruct']} list - * @param {boolean} none - * @returns {boolean} - */ function listInScope(stack, list, none) { if (!list) { return none } - if (typeof list === 'string') { list = [list]; } - let index = -1; - while (++index < list.length) { if (stack.includes(list[index])) { return true } } - return false } -/** - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('mdast').Break} Break - */ - -/** - * @type {Handle} - * @param {Break} _ - */ function hardBreak(_, _1, context, safe) { let index = -1; - while (++index < context.unsafe.length) { - // If we can’t put eols in this construct (setext headings, tables), use a - // space instead. if ( context.unsafe[index].character === '\n' && patternInScope(context.stack, context.unsafe[index]) @@ -11651,28 +8047,18 @@ function hardBreak(_, _1, context, safe) { return /[ \t]/.test(safe.before) ? '' : ' ' } } - return '\\\n' } -/** - * Get the count of the longest repeating streak of `character` in `value`. - * - * @param {string} value Content. - * @param {string} character Single character to look for - * @returns {number} Count of most frequent adjacent `character`s in `value` - */ function longestStreak(value, character) { - var source = String(value); - var index = source.indexOf(character); - var expected = index; - var count = 0; - var max = 0; - + const source = String(value); + let index = source.indexOf(character); + let expected = index; + let count = 0; + let max = 0; if (typeof character !== 'string' || character.length !== 1) { throw new Error('Expected character') } - while (index !== -1) { if (index === expected) { if (++count > max) { @@ -11681,49 +8067,24 @@ function longestStreak(value, character) { } else { count = 1; } - expected = index + 1; index = source.indexOf(character, expected); } - return max } -/** - * @typedef {import('mdast').Code} Code - * @typedef {import('../types.js').Context} Context - */ - -/** - * @param {Code} node - * @param {Context} context - * @returns {boolean} - */ function formatCodeAsIndented(node, context) { return Boolean( !context.options.fences && node.value && - // If there’s no info… !node.lang && - // And there’s a non-whitespace character… /[^ \r\n]/.test(node.value) && - // And the value doesn’t start or end in a blank… !/^[\t ]*(?:[\r\n]|$)|(?:^|[\r\n])[\t ]*$/.test(node.value) ) } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkFence(context) { const marker = context.options.fence || '`'; - if (marker !== '`' && marker !== '~') { throw new Error( 'Cannot serialize code with `' + @@ -11731,24 +8092,14 @@ function checkFence(context) { '` for `options.fence`, expected `` ` `` or `~`' ) } - return marker } -/** - * @typedef {import('../types.js').Unsafe} Unsafe - */ - -/** - * @param {Unsafe} pattern - * @returns {RegExp} - */ function patternCompile(pattern) { if (!pattern._compiled) { const before = (pattern.atBreak ? '[\\r\\n][\\t ]*' : '') + (pattern.before ? '(?:' + pattern.before + ')' : ''); - pattern._compiled = new RegExp( (before ? '(' + before + ')' : '') + (/[|\\{}()[\]^$+*?.-]/.test(pattern.character) ? '\\' : '') + @@ -11757,52 +8108,30 @@ function patternCompile(pattern) { 'g' ); } - return pattern._compiled } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').SafeOptions} SafeOptions - */ - -/** - * @param {Context} context - * @param {string|null|undefined} input - * @param {SafeOptions & {encode?: Array.}} config - * @returns {string} - */ function safe(context, input, config) { const value = (config.before || '') + (input || '') + (config.after || ''); - /** @type {Array.} */ const positions = []; - /** @type {Array.} */ const result = []; - /** @type {Record} */ const infos = {}; let index = -1; - while (++index < context.unsafe.length) { const pattern = context.unsafe[index]; - if (!patternInScope(context.stack, pattern)) { continue } - const expression = patternCompile(pattern); - /** @type {RegExpExecArray|null} */ let match; - while ((match = expression.exec(value))) { const before = 'before' in pattern || Boolean(pattern.atBreak); const after = 'after' in pattern; const position = match.index + (before ? match[1].length : 0); - if (positions.includes(position)) { if (infos[position].before && !before) { infos[position].before = false; } - if (infos[position].after && !after) { infos[position].after = false; } @@ -11812,24 +8141,15 @@ function safe(context, input, config) { } } } - positions.sort(numerical); - let start = config.before ? config.before.length : 0; const end = value.length - (config.after ? config.after.length : 0); index = -1; - while (++index < positions.length) { const position = positions[index]; - - // Character before or after matched: if (position < start || position >= end) { continue } - - // If this character is supposed to be escaped because it has a condition on - // the next character, and the next character is definitly being escaped, - // then skip this escape. if ( (position + 1 < end && positions[index + 1] === position + 1 && @@ -11843,189 +8163,110 @@ function safe(context, input, config) { ) { continue } - if (start !== position) { - // If we have to use a character reference, an ampersand would be more - // correct, but as backslashes only care about punctuation, either will - // do the trick result.push(escapeBackslashes(value.slice(start, position), '\\')); } - start = position; - if ( /[!-/:-@[-`{-~]/.test(value.charAt(position)) && (!config.encode || !config.encode.includes(value.charAt(position))) ) { - // Character escape. result.push('\\'); } else { - // Character reference. result.push( '&#x' + value.charCodeAt(position).toString(16).toUpperCase() + ';' ); start++; } } - result.push(escapeBackslashes(value.slice(start, end), config.after)); - return result.join('') } - -/** - * @param {number} a - * @param {number} b - * @returns {number} - */ function numerical(a, b) { return a - b } - -/** - * @param {string} value - * @param {string} after - * @returns {string} - */ function escapeBackslashes(value, after) { const expression = /\\(?=[!-/:-@[-`{-~])/g; - /** @type {Array.} */ const positions = []; - /** @type {Array.} */ const results = []; const whole = value + after; let index = -1; let start = 0; - /** @type {RegExpExecArray|null} */ let match; - while ((match = expression.exec(whole))) { positions.push(match.index); } - while (++index < positions.length) { if (start !== positions[index]) { results.push(value.slice(start, positions[index])); } - results.push('\\'); start = positions[index]; } - results.push(value.slice(start)); - return results.join('') } -/** - * @typedef {import('mdast').Code} Code - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('../types.js').Exit} Exit - * @typedef {import('../util/indent-lines.js').Map} Map - */ - -/** - * @type {Handle} - * @param {Code} node - */ -function code$1(node, _, context) { +function code$1(node, _, context, safeOptions) { const marker = checkFence(context); const raw = node.value || ''; const suffix = marker === '`' ? 'GraveAccent' : 'Tilde'; - /** @type {string} */ - let value; - /** @type {Exit} */ - let exit; - if (formatCodeAsIndented(node, context)) { - exit = context.enter('codeIndented'); - value = indentLines(raw, map$1); - } else { - const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3)); - /** @type {Exit} */ - let subexit; - exit = context.enter('codeFenced'); - value = sequence; - - if (node.lang) { - subexit = context.enter('codeFencedLang' + suffix); - value += safe(context, node.lang, { - before: '`', + const exit = context.enter('codeIndented'); + const value = indentLines(raw, map$1); + exit(); + return value + } + const tracker = track(safeOptions); + const sequence = marker.repeat(Math.max(longestStreak(raw, marker) + 1, 3)); + const exit = context.enter('codeFenced'); + let value = tracker.move(sequence); + if (node.lang) { + const subexit = context.enter('codeFencedLang' + suffix); + value += tracker.move( + safe(context, node.lang, { + before: value, after: ' ', - encode: ['`'] - }); - subexit(); - } - - if (node.lang && node.meta) { - subexit = context.enter('codeFencedMeta' + suffix); - value += - ' ' + - safe(context, node.meta, { - before: ' ', - after: '\n', - encode: ['`'] - }); - subexit(); - } - - value += '\n'; - - if (raw) { - value += raw + '\n'; - } - - value += sequence; + encode: ['`'], + ...tracker.current() + }) + ); + subexit(); } - + if (node.lang && node.meta) { + const subexit = context.enter('codeFencedMeta' + suffix); + value += tracker.move(' '); + value += tracker.move( + safe(context, node.meta, { + before: value, + after: '\n', + encode: ['`'], + ...tracker.current() + }) + ); + subexit(); + } + value += tracker.move('\n'); + if (raw) { + value += tracker.move(raw + '\n'); + } + value += tracker.move(sequence); exit(); return value } - -/** @type {Map} */ function map$1(line, _, blank) { return (blank ? '' : ' ') + line } -/** - * @typedef {import('mdast').Association} Association - */ - -/** - * The `label` of an association is the string value: character escapes and - * references work, and casing is intact. - * The `identifier` is used to match one association to another: controversially, - * character escapes and references don’t work in this matching: `©` does - * not match `©`, and `\+` does not match `+`. - * But casing is ignored (and whitespace) is trimmed and collapsed: ` A\nb` - * matches `a b`. - * So, we do prefer the label when figuring out how we’re going to serialize: - * it has whitespace, casing, and we can ignore most useless character escapes - * and all character references. - * - * @param {Association} node - * @returns {string} - */ function association(node) { if (node.label || !node.identifier) { return node.label || '' } - return decodeString(node.identifier) } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkQuote(context) { const marker = context.options.quote || '"'; - if (marker !== '"' && marker !== "'") { throw new Error( 'Cannot serialize title with `' + @@ -12033,72 +8274,65 @@ function checkQuote(context) { '` for `options.quote`, expected `"`, or `\'`' ) } - return marker } -/** - * @typedef {import('mdast').Definition} Definition - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {Definition} node - */ -function definition(node, _, context) { - const marker = checkQuote(context); - const suffix = marker === '"' ? 'Quote' : 'Apostrophe'; +function definition(node, _, context, safeOptions) { + const quote = checkQuote(context); + const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; const exit = context.enter('definition'); let subexit = context.enter('label'); - let value = - '[' + safe(context, association(node), {before: '[', after: ']'}) + ']: '; - + const tracker = track(safeOptions); + let value = tracker.move('['); + value += tracker.move( + safe(context, association(node), { + before: value, + after: ']', + ...tracker.current() + }) + ); + value += tracker.move(']: '); subexit(); - if ( - // If there’s no url, or… !node.url || - // If there’s whitespace, enclosed is prettier. - /[ \t\r\n]/.test(node.url) + /[\0- \u007F]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + value += tracker.move('<'); + value += tracker.move( + safe(context, node.url, {before: value, after: '>', ...tracker.current()}) + ); + value += tracker.move('>'); } else { - // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe(context, node.url, {before: ' ', after: ' '}); + value += tracker.move( + safe(context, node.url, { + before: value, + after: node.title ? ' ' : '\n', + ...tracker.current() + }) + ); } - subexit(); - if (node.title) { subexit = context.enter('title' + suffix); - value += - ' ' + - marker + - safe(context, node.title, {before: marker, after: marker}) + - marker; + value += tracker.move(' ' + quote); + value += tracker.move( + safe(context, node.title, { + before: value, + after: quote, + ...tracker.current() + }) + ); + value += tracker.move(quote); subexit(); } - exit(); - return value } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkEmphasis(context) { const marker = context.options.emphasis || '*'; - if (marker !== '*' && marker !== '_') { throw new Error( 'Cannot serialize emphasis with `' + @@ -12106,60 +8340,34 @@ function checkEmphasis(context) { '` for `options.emphasis`, expected `*`, or `_`' ) } - return marker } -/** - * @typedef {import('../types.js').Node} Node - * @typedef {import('../types.js').Parent} Parent - * @typedef {import('../types.js').SafeOptions} SafeOptions - * @typedef {import('../types.js').Context} Context - */ - -/** - * @param {Parent} parent - * @param {Context} context - * @param {SafeOptions} safeOptions - * @returns {string} - */ function containerPhrasing(parent, context, safeOptions) { const indexStack = context.indexStack; const children = parent.children || []; - /** @type {Array.} */ const results = []; let index = -1; let before = safeOptions.before; - indexStack.push(-1); - + let tracker = track(safeOptions); while (++index < children.length) { const child = children[index]; - /** @type {string} */ let after; - indexStack[indexStack.length - 1] = index; - if (index + 1 < children.length) { - // @ts-expect-error: hush, it’s actually a `zwitch`. let handle = context.handle.handlers[children[index + 1].type]; if (handle && handle.peek) handle = handle.peek; after = handle ? handle(children[index + 1], parent, context, { before: '', - after: '' + after: '', + ...tracker.current() }).charAt(0) : ''; } else { after = safeOptions.after; } - - // In some cases, html (text) can be found in phrasing right after an eol. - // When we’d serialize that, in most cases that would be seen as html - // (flow). - // As we can’t escape or so to prevent it from happening, we take a somewhat - // reasonable approach: replace that eol with a space. - // See: if ( results.length > 0 && (before === '\r' || before === '\n') && @@ -12170,280 +8378,125 @@ function containerPhrasing(parent, context, safeOptions) { ' ' ); before = ' '; + tracker = track(safeOptions); + tracker.move(results.join('')); } - - results.push(context.handle(child, parent, context, {before, after})); - + results.push( + tracker.move( + context.handle(child, parent, context, { + ...tracker.current(), + before, + after + }) + ) + ); before = results[results.length - 1].slice(-1); } - indexStack.pop(); - return results.join('') } -/** - * @typedef {import('mdast').Emphasis} Emphasis - * @typedef {import('../types.js').Handle} Handle - */ - emphasis.peek = emphasisPeek; - -// To do: there are cases where emphasis cannot “form” depending on the -// previous or next character of sequences. -// There’s no way around that though, except for injecting zero-width stuff. -// Do we need to safeguard against that? -/** - * @type {Handle} - * @param {Emphasis} node - */ -function emphasis(node, _, context) { +function emphasis(node, _, context, safeOptions) { const marker = checkEmphasis(context); const exit = context.enter('emphasis'); - const value = containerPhrasing(node, context, { - before: marker, - after: marker - }); + const tracker = track(safeOptions); + let value = tracker.move(marker); + value += tracker.move( + containerPhrasing(node, context, { + before: value, + after: marker, + ...tracker.current() + }) + ); + value += tracker.move(marker); exit(); - return marker + value + marker + return value } - -/** - * @type {Handle} - * @param {Emphasis} _ - */ function emphasisPeek(_, _1, context) { return context.options.emphasis || '*' } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * - * @typedef {string} Type - * @typedef {Object} Props - * - * @typedef {null|undefined|Type|Props|TestFunctionAnything|Array.} Test - */ - const convert = - /** - * @type {( - * ((test: T['type']|Partial|TestFunctionPredicate) => AssertPredicate) & - * ((test?: Test) => AssertAnything) - * )} - */ ( - /** - * Generate an assertion from a check. - * @param {Test} [test] - * When nullish, checks if `node` is a `Node`. - * When `string`, works like passing `function (node) {return node.type === test}`. - * When `function` checks if function passed the node is true. - * When `object`, checks that all keys in test are in node, and that they have (strictly) equal values. - * When `array`, checks any one of the subtests pass. - * @returns {AssertAnything} - */ function (test) { if (test === undefined || test === null) { return ok } - if (typeof test === 'string') { return typeFactory(test) } - if (typeof test === 'object') { return Array.isArray(test) ? anyFactory(test) : propsFactory(test) } - if (typeof test === 'function') { return castFactory(test) } - throw new Error('Expected function, string, or object as test') } ); -/** - * @param {Array.} tests - * @returns {AssertAnything} - */ function anyFactory(tests) { - /** @type {Array.} */ const checks = []; let index = -1; - while (++index < tests.length) { checks[index] = convert(tests[index]); } - return castFactory(any) - - /** - * @this {unknown} - * @param {unknown[]} parameters - * @returns {boolean} - */ function any(...parameters) { let index = -1; - while (++index < checks.length) { if (checks[index].call(this, ...parameters)) return true } - return false } } - -/** - * Utility to assert each property in `test` is represented in `node`, and each - * values are strictly equal. - * - * @param {Props} check - * @returns {AssertAnything} - */ function propsFactory(check) { return castFactory(all) - - /** - * @param {Node} node - * @returns {boolean} - */ function all(node) { - /** @type {string} */ let key; - for (key in check) { - // @ts-expect-error: hush, it sure works as an index. if (node[key] !== check[key]) return false } - return true } } - -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * - * @param {Type} check - * @returns {AssertAnything} - */ function typeFactory(check) { return castFactory(type) - - /** - * @param {Node} node - */ function type(node) { return node && node.type === check } } - -/** - * Utility to convert a string into a function which checks a given node’s type - * for said string. - * @param {TestFunctionAnything} check - * @returns {AssertAnything} - */ function castFactory(check) { return assertion - - /** - * @this {unknown} - * @param {Array.} parameters - * @returns {boolean} - */ function assertion(...parameters) { - // @ts-expect-error: spreading is fine. return Boolean(check.call(this, ...parameters)) } } - -// Utility to return true. function ok() { return true } -/** - * @param {string} d - * @returns {string} - */ -function color$1(d) { +function color$2(d) { return '\u001B[33m' + d + '\u001B[39m' } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('./complex-types').Action} Action - * @typedef {import('./complex-types').Index} Index - * @typedef {import('./complex-types').ActionTuple} ActionTuple - * @typedef {import('./complex-types').VisitorResult} VisitorResult - * @typedef {import('./complex-types').Visitor} Visitor - */ - -/** - * Continue traversing as normal - */ const CONTINUE$1 = true; -/** - * Do not traverse this node’s children - */ const SKIP$1 = 'skip'; -/** - * Stop traversing immediately - */ const EXIT$1 = false; - -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test node, optional - * @param visitor Function to run for each node - * @param reverse Visit the tree in reverse order, defaults to false - */ const visitParents$1 = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) & - * ((tree: Tree, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) - * )} - */ ( - /** - * @param {Node} tree - * @param {Test} test - * @param {import('./complex-types').Visitor} visitor - * @param {boolean} [reverse] - */ function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { reverse = visitor; - // @ts-expect-error no visitor given, so `visitor` is test. visitor = test; test = null; } - const is = convert(test); const step = reverse ? -1 : 1; - factory(tree, null, [])(); - - /** - * @param {Node} node - * @param {number?} index - * @param {Array.} parents - */ function factory(node, index, parents) { - /** @type {Object.} */ - // @ts-expect-error: hush const value = typeof node === 'object' && node !== null ? node : {}; - /** @type {string|undefined} */ let name; - if (typeof value.type === 'string') { name = typeof value.tagName === 'string' @@ -12451,121 +8504,61 @@ const visitParents$1 = : typeof value.name === 'string' ? value.name : undefined; - Object.defineProperty(visit, 'name', { value: 'node (' + - color$1(value.type + (name ? '<' + name + '>' : '')) + + color$2(value.type + (name ? '<' + name + '>' : '')) + ')' }); } - return visit - function visit() { - /** @type {ActionTuple} */ let result = []; - /** @type {ActionTuple} */ let subresult; - /** @type {number} */ let offset; - /** @type {Array.} */ let grandparents; - if (!test || is(node, index, parents[parents.length - 1] || null)) { result = toResult$1(visitor(node, parents)); - if (result[0] === EXIT$1) { return result } } - - // @ts-expect-error looks like a parent. if (node.children && result[0] !== SKIP$1) { - // @ts-expect-error looks like a parent. offset = (reverse ? node.children.length : -1) + step; - // @ts-expect-error looks like a parent. grandparents = parents.concat(node); - - // @ts-expect-error looks like a parent. while (offset > -1 && offset < node.children.length) { - // @ts-expect-error looks like a parent. subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT$1) { return subresult } - offset = typeof subresult[1] === 'number' ? subresult[1] : offset + step; } } - return result } } } ); - -/** - * @param {VisitorResult} value - * @returns {ActionTuple} - */ function toResult$1(value) { if (Array.isArray(value)) { return value } - if (typeof value === 'number') { return [CONTINUE$1, value] } - return [value] } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - * @typedef {import('./complex-types').Visitor} Visitor - */ - -/** - * Visit children of tree which pass a test - * - * @param tree Abstract syntax tree to walk - * @param test Test, optional - * @param visitor Function to run for each node - * @param reverse Fisit the tree in reverse, defaults to false - */ const visit$1 = - /** - * @type {( - * ((tree: Tree, test: Check, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) & - * ((tree: Tree, visitor: import('./complex-types').BuildVisitor, reverse?: boolean) => void) - * )} - */ ( - /** - * @param {Node} tree - * @param {Test} test - * @param {import('./complex-types').Visitor} visitor - * @param {boolean} [reverse] - */ function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { reverse = visitor; visitor = test; test = null; } - visitParents$1(tree, test, overload, reverse); - - /** - * @param {Node} node - * @param {Array.} parents - */ function overload(node, parents) { const parent = parents[parents.length - 1]; return visitor( @@ -12577,21 +8570,8 @@ const visit$1 = } ); -/** - * @typedef {import('mdast').Heading} Heading - * @typedef {import('../types.js').Context} Context - */ - -/** - * @param {Heading} node - * @param {Context} context - * @returns {boolean} - */ function formatHeadingAsSetext(node, context) { let literalWithBreak = false; - - // Look for literals with a line break. - // Note that this also visit$1(node, (node) => { if ( ('value' in node && /\r?\n|\r/.test(node.value)) || @@ -12601,7 +8581,6 @@ function formatHeadingAsSetext(node, context) { return EXIT$1 } }); - return Boolean( (!node.depth || node.depth < 3) && toString(node) && @@ -12609,44 +8588,37 @@ function formatHeadingAsSetext(node, context) { ) } -/** - * @typedef {import('mdast').Heading} Heading - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('../types.js').Exit} Exit - */ - -/** - * @type {Handle} - * @param {Heading} node - */ -function heading(node, _, context) { +function heading(node, _, context, safeOptions) { const rank = Math.max(Math.min(6, node.depth || 1), 1); - + const tracker = track(safeOptions); if (formatHeadingAsSetext(node, context)) { const exit = context.enter('headingSetext'); const subexit = context.enter('phrasing'); - const value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + const value = containerPhrasing(node, context, { + ...tracker.current(), + before: '\n', + after: '\n' + }); subexit(); exit(); - return ( value + '\n' + (rank === 1 ? '=' : '-').repeat( - // The whole size… value.length - - // Minus the position of the character after the last EOL (or - // 0 if there is none)… (Math.max(value.lastIndexOf('\r'), value.lastIndexOf('\n')) + 1) ) ) } - const sequence = '#'.repeat(rank); const exit = context.enter('headingAtx'); const subexit = context.enter('phrasing'); - let value = containerPhrasing(node, context, {before: '# ', after: '\n'}); - + tracker.move(sequence + ' '); + let value = containerPhrasing(node, context, { + before: '# ', + after: '\n', + ...tracker.current() + }); if (/^[\t ]/.test(value)) { value = '&#x' + @@ -12654,394 +8626,285 @@ function heading(node, _, context) { ';' + value.slice(1); } - value = value ? sequence + ' ' + value : sequence; - if (context.options.closeAtx) { value += ' ' + sequence; } - subexit(); exit(); - return value } -/** - * @typedef {import('mdast').HTML} HTML - * @typedef {import('../types.js').Handle} Handle - */ - html.peek = htmlPeek; - -/** - * @type {Handle} - * @param {HTML} node - */ function html(node) { return node.value || '' } - -/** - * @type {Handle} - */ function htmlPeek() { return '<' } -/** - * @typedef {import('mdast').Image} Image - * @typedef {import('../types.js').Handle} Handle - */ - image.peek = imagePeek; - -/** - * @type {Handle} - * @param {Image} node - */ -function image(node, _, context) { +function image(node, _, context, safeOptions) { const quote = checkQuote(context); const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; const exit = context.enter('image'); let subexit = context.enter('label'); - let value = '![' + safe(context, node.alt, {before: '[', after: ']'}) + ']('; - + const tracker = track(safeOptions); + let value = tracker.move('!['); + value += tracker.move( + safe(context, node.alt, {before: value, after: ']', ...tracker.current()}) + ); + value += tracker.move(']('); subexit(); - if ( - // If there’s no url but there is a title… (!node.url && node.title) || - // Or if there’s markdown whitespace or an eol, enclose. - /[ \t\r\n]/.test(node.url) + /[\0- \u007F]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + value += tracker.move('<'); + value += tracker.move( + safe(context, node.url, {before: value, after: '>', ...tracker.current()}) + ); + value += tracker.move('>'); } else { - // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe(context, node.url, { - before: '(', - after: node.title ? ' ' : ')' - }); + value += tracker.move( + safe(context, node.url, { + before: value, + after: node.title ? ' ' : ')', + ...tracker.current() + }) + ); } - subexit(); - if (node.title) { subexit = context.enter('title' + suffix); - value += - ' ' + - quote + - safe(context, node.title, {before: quote, after: quote}) + - quote; + value += tracker.move(' ' + quote); + value += tracker.move( + safe(context, node.title, { + before: value, + after: quote, + ...tracker.current() + }) + ); + value += tracker.move(quote); subexit(); } - - value += ')'; + value += tracker.move(')'); exit(); - return value } - -/** - * @type {Handle} - */ function imagePeek() { return '!' } -/** - * @typedef {import('mdast').ImageReference} ImageReference - * @typedef {import('../types.js').Handle} Handle - */ - imageReference.peek = imageReferencePeek; - -/** - * @type {Handle} - * @param {ImageReference} node - */ -function imageReference(node, _, context) { +function imageReference(node, _, context, safeOptions) { const type = node.referenceType; const exit = context.enter('imageReference'); let subexit = context.enter('label'); - const alt = safe(context, node.alt, {before: '[', after: ']'}); - let value = '![' + alt + ']'; - + const tracker = track(safeOptions); + let value = tracker.move('!['); + const alt = safe(context, node.alt, { + before: value, + after: ']', + ...tracker.current() + }); + value += tracker.move(alt + ']['); subexit(); - // Hide the fact that we’re in phrasing, because escapes don’t work. const stack = context.stack; context.stack = []; subexit = context.enter('reference'); - const reference = safe(context, association(node), {before: '[', after: ']'}); + const reference = safe(context, association(node), { + before: value, + after: ']', + ...tracker.current() + }); subexit(); context.stack = stack; exit(); - if (type === 'full' || !alt || alt !== reference) { - value += '[' + reference + ']'; - } else if (type !== 'shortcut') { - value += '[]'; + value += tracker.move(reference + ']'); + } else if (type === 'shortcut') { + value = value.slice(0, -1); + } else { + value += tracker.move(']'); } - return value } - -/** - * @type {Handle} - */ function imageReferencePeek() { return '!' } -/** - * @typedef {import('mdast').InlineCode} InlineCode - * @typedef {import('../types.js').Handle} Handle - */ - inlineCode.peek = inlineCodePeek; - -/** - * @type {Handle} - * @param {InlineCode} node - */ function inlineCode(node, _, context) { let value = node.value || ''; let sequence = '`'; let index = -1; - - // If there is a single grave accent on its own in the code, use a fence of - // two. - // If there are two in a row, use one. while (new RegExp('(^|[^`])' + sequence + '([^`]|$)').test(value)) { sequence += '`'; } - - // If this is not just spaces or eols (tabs don’t count), and either the - // first or last character are a space, eol, or tick, then pad with spaces. if ( /[^ \r\n]/.test(value) && ((/^[ \r\n]/.test(value) && /[ \r\n]$/.test(value)) || /^`|`$/.test(value)) ) { value = ' ' + value + ' '; } - - // We have a potential problem: certain characters after eols could result in - // blocks being seen. - // For example, if someone injected the string `'\n# b'`, then that would - // result in an ATX heading. - // We can’t escape characters in `inlineCode`, but because eols are - // transformed to spaces when going from markdown to HTML anyway, we can swap - // them out. while (++index < context.unsafe.length) { const pattern = context.unsafe[index]; const expression = patternCompile(pattern); - /** @type {RegExpExecArray|null} */ let match; - - // Only look for `atBreak`s. - // Btw: note that `atBreak` patterns will always start the regex at LF or - // CR. if (!pattern.atBreak) continue - while ((match = expression.exec(value))) { let position = match.index; - - // Support CRLF (patterns only look for one of the characters). if ( - value.charCodeAt(position) === 10 /* `\n` */ && - value.charCodeAt(position - 1) === 13 /* `\r` */ + value.charCodeAt(position) === 10 && + value.charCodeAt(position - 1) === 13 ) { position--; } - value = value.slice(0, position) + ' ' + value.slice(match.index + 1); } } - return sequence + value + sequence } - -/** - * @type {Handle} - */ function inlineCodePeek() { return '`' } -/** - * @typedef {import('mdast').Link} Link - * @typedef {import('../types.js').Context} Context - */ - -/** - * @param {Link} node - * @param {Context} context - * @returns {boolean} - */ function formatLinkAsAutolink(node, context) { const raw = toString(node); - return Boolean( !context.options.resourceLink && - // If there’s a url… node.url && - // And there’s a no title… !node.title && - // And the content of `node` is a single text node… node.children && node.children.length === 1 && node.children[0].type === 'text' && - // And if the url is the same as the content… (raw === node.url || 'mailto:' + raw === node.url) && - // And that starts w/ a protocol… /^[a-z][a-z+.-]+:/i.test(node.url) && - // And that doesn’t contain ASCII control codes (character escapes and - // references don’t work) or angle brackets… !/[\0- <>\u007F]/.test(node.url) ) } -/** - * @typedef {import('mdast').Link} Link - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('../types.js').Exit} Exit - */ - link.peek = linkPeek; - -/** - * @type {Handle} - * @param {Link} node - */ -function link(node, _, context) { +function link(node, _, context, safeOptions) { const quote = checkQuote(context); const suffix = quote === '"' ? 'Quote' : 'Apostrophe'; - /** @type {Exit} */ + const tracker = track(safeOptions); let exit; - /** @type {Exit} */ let subexit; - /** @type {string} */ - let value; - if (formatLinkAsAutolink(node, context)) { - // Hide the fact that we’re in phrasing, because escapes don’t work. const stack = context.stack; context.stack = []; exit = context.enter('autolink'); - value = - '<' + containerPhrasing(node, context, {before: '<', after: '>'}) + '>'; + let value = tracker.move('<'); + value += tracker.move( + containerPhrasing(node, context, { + before: value, + after: '>', + ...tracker.current() + }) + ); + value += tracker.move('>'); exit(); context.stack = stack; return value } - exit = context.enter('link'); subexit = context.enter('label'); - value = - '[' + containerPhrasing(node, context, {before: '[', after: ']'}) + ']('; + let value = tracker.move('['); + value += tracker.move( + containerPhrasing(node, context, { + before: value, + after: '](', + ...tracker.current() + }) + ); + value += tracker.move(']('); subexit(); - if ( - // If there’s no url but there is a title… (!node.url && node.title) || - // Or if there’s markdown whitespace or an eol, enclose. - /[ \t\r\n]/.test(node.url) + /[\0- \u007F]/.test(node.url) ) { subexit = context.enter('destinationLiteral'); - value += '<' + safe(context, node.url, {before: '<', after: '>'}) + '>'; + value += tracker.move('<'); + value += tracker.move( + safe(context, node.url, {before: value, after: '>', ...tracker.current()}) + ); + value += tracker.move('>'); } else { - // No whitespace, raw is prettier. subexit = context.enter('destinationRaw'); - value += safe(context, node.url, { - before: '(', - after: node.title ? ' ' : ')' - }); + value += tracker.move( + safe(context, node.url, { + before: value, + after: node.title ? ' ' : ')', + ...tracker.current() + }) + ); } - subexit(); - if (node.title) { subexit = context.enter('title' + suffix); - value += - ' ' + - quote + - safe(context, node.title, {before: quote, after: quote}) + - quote; + value += tracker.move(' ' + quote); + value += tracker.move( + safe(context, node.title, { + before: value, + after: quote, + ...tracker.current() + }) + ); + value += tracker.move(quote); subexit(); } - - value += ')'; - + value += tracker.move(')'); exit(); return value } - -/** - * @type {Handle} - * @param {Link} node - */ function linkPeek(node, _, context) { return formatLinkAsAutolink(node, context) ? '<' : '[' } -/** - * @typedef {import('mdast').LinkReference} LinkReference - * @typedef {import('../types.js').Handle} Handle - */ - linkReference.peek = linkReferencePeek; - -/** - * @type {Handle} - * @param {LinkReference} node - */ -function linkReference(node, _, context) { +function linkReference(node, _, context, safeOptions) { const type = node.referenceType; const exit = context.enter('linkReference'); let subexit = context.enter('label'); - const text = containerPhrasing(node, context, {before: '[', after: ']'}); - let value = '[' + text + ']'; - + const tracker = track(safeOptions); + let value = tracker.move('['); + const text = containerPhrasing(node, context, { + before: value, + after: ']', + ...tracker.current() + }); + value += tracker.move(text + ']['); subexit(); - // Hide the fact that we’re in phrasing, because escapes don’t work. const stack = context.stack; context.stack = []; subexit = context.enter('reference'); - const reference = safe(context, association(node), {before: '[', after: ']'}); + const reference = safe(context, association(node), { + before: value, + after: ']', + ...tracker.current() + }); subexit(); context.stack = stack; exit(); - if (type === 'full' || !text || text !== reference) { - value += '[' + reference + ']'; - } else if (type !== 'shortcut') { - value += '[]'; + value += tracker.move(reference + ']'); + } else if (type === 'shortcut') { + value = value.slice(0, -1); + } else { + value += tracker.move(']'); } - return value } - -/** - * @type {Handle} - */ function linkReferencePeek() { return '[' } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkBullet(context) { const marker = context.options.bullet || '*'; - if (marker !== '*' && marker !== '+' && marker !== '-') { throw new Error( 'Cannot serialize items with `' + @@ -13049,27 +8912,15 @@ function checkBullet(context) { '` for `options.bullet`, expected `*`, `+`, or `-`' ) } - return marker } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkBulletOther(context) { const bullet = checkBullet(context); const bulletOther = context.options.bulletOther; - if (!bulletOther) { return bullet === '*' ? '-' : '*' } - if (bulletOther !== '*' && bulletOther !== '+' && bulletOther !== '-') { throw new Error( 'Cannot serialize items with `' + @@ -13077,7 +8928,6 @@ function checkBulletOther(context) { '` for `options.bulletOther`, expected `*`, `+`, or `-`' ) } - if (bulletOther === bullet) { throw new Error( 'Expected `bullet` (`' + @@ -13087,22 +8937,11 @@ function checkBulletOther(context) { '`) to be different' ) } - return bulletOther } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkBulletOrdered(context) { const marker = context.options.bulletOrdered || '.'; - if (marker !== '.' && marker !== ')') { throw new Error( 'Cannot serialize items with `' + @@ -13110,27 +8949,15 @@ function checkBulletOrdered(context) { '` for `options.bulletOrdered`, expected `.` or `)`' ) } - return marker } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkBulletOrderedOther(context) { const bulletOrdered = checkBulletOrdered(context); const bulletOrderedOther = context.options.bulletOrderedOther; - if (!bulletOrderedOther) { return bulletOrdered === '.' ? ')' : '.' } - if (bulletOrderedOther !== '.' && bulletOrderedOther !== ')') { throw new Error( 'Cannot serialize items with `' + @@ -13138,7 +8965,6 @@ function checkBulletOrderedOther(context) { '` for `options.bulletOrderedOther`, expected `*`, `+`, or `-`' ) } - if (bulletOrderedOther === bulletOrdered) { throw new Error( 'Expected `bulletOrdered` (`' + @@ -13148,22 +8974,11 @@ function checkBulletOrderedOther(context) { '`) to be different' ) } - return bulletOrderedOther } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkRule(context) { const marker = context.options.rule || '*'; - if (marker !== '*' && marker !== '-' && marker !== '_') { throw new Error( 'Cannot serialize rules with `' + @@ -13171,34 +8986,20 @@ function checkRule(context) { '` for `options.rule`, expected `*`, `-`, or `_`' ) } - return marker } -/** - * @typedef {import('mdast').List} List - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {List} node - */ -function list(node, parent, context) { +function list(node, parent, context, safeOptions) { const exit = context.enter('list'); const bulletCurrent = context.bulletCurrent; - /** @type {string} */ let bullet = node.ordered ? checkBulletOrdered(context) : checkBullet(context); - /** @type {string} */ const bulletOther = node.ordered ? checkBulletOrderedOther(context) : checkBulletOther(context); const bulletLastUsed = context.bulletLastUsed; let useDifferentMarker = false; - if ( parent && - // Explicit `other` set. (node.ordered ? context.options.bulletOrderedOther : context.options.bulletOther) && @@ -13207,52 +9008,26 @@ function list(node, parent, context) { ) { useDifferentMarker = true; } - if (!node.ordered) { const firstListItem = node.children ? node.children[0] : undefined; - - // If there’s an empty first list item directly in two list items, - // we have to use a different bullet: - // - // ```markdown - // * - * - // ``` - // - // …because otherwise it would become one big thematic break. if ( - // Bullet could be used as a thematic break marker: (bullet === '*' || bullet === '-') && - // Empty first list item: firstListItem && (!firstListItem.children || !firstListItem.children[0]) && - // Directly in two other list items: context.stack[context.stack.length - 1] === 'list' && context.stack[context.stack.length - 2] === 'listItem' && context.stack[context.stack.length - 3] === 'list' && context.stack[context.stack.length - 4] === 'listItem' && - // That are each the first child. context.indexStack[context.indexStack.length - 1] === 0 && context.indexStack[context.indexStack.length - 2] === 0 && - context.indexStack[context.indexStack.length - 3] === 0 && - context.indexStack[context.indexStack.length - 4] === 0 + context.indexStack[context.indexStack.length - 3] === 0 ) { useDifferentMarker = true; } - - // If there’s a thematic break at the start of the first list item, - // we have to use a different bullet: - // - // ```markdown - // * --- - // ``` - // - // …because otherwise it would become one big thematic break. if (checkRule(context) === bullet && firstListItem) { let index = -1; - while (++index < node.children.length) { const item = node.children[index]; - if ( item && item.type === 'listItem' && @@ -13266,37 +9041,22 @@ function list(node, parent, context) { } } } - if (useDifferentMarker) { bullet = bulletOther; } - context.bulletCurrent = bullet; - const value = containerFlow(node, context); + const value = containerFlow(node, context, safeOptions); context.bulletLastUsed = bullet; context.bulletCurrent = bulletCurrent; exit(); return value } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkListItemIndent(context) { const style = context.options.listItemIndent || 'tab'; - - // To do: remove in a major. - // @ts-expect-error: deprecated. if (style === 1 || style === '1') { return 'one' } - if (style !== 'tab' && style !== 'one' && style !== 'mixed') { throw new Error( 'Cannot serialize items with `' + @@ -13304,27 +9064,12 @@ function checkListItemIndent(context) { '` for `options.listItemIndent`, expected `tab`, `one`, or `mixed`' ) } - return style } -/** - * @typedef {import('mdast').ListItem} ListItem - * @typedef {import('mdast').List} List - * @typedef {import('../util/indent-lines.js').Map} Map - * @typedef {import('../types.js').Options} Options - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {ListItem} node - */ -function listItem(node, parent, context) { +function listItem(node, parent, context, safeOptions) { const listItemIndent = checkListItemIndent(context); let bullet = context.bulletCurrent || checkBullet(context); - - // Add the marker value for ordered lists. if (parent && parent.type === 'list' && parent.ordered) { bullet = (typeof parent.start === 'number' && parent.start > -1 @@ -13335,9 +9080,7 @@ function listItem(node, parent, context) { : parent.children.indexOf(node)) + bullet; } - let size = bullet.length + 1; - if ( listItemIndent === 'tab' || (listItemIndent === 'mixed' && @@ -13345,66 +9088,39 @@ function listItem(node, parent, context) { ) { size = Math.ceil(size / 4) * 4; } - + const tracker = track(safeOptions); + tracker.move(bullet + ' '.repeat(size - bullet.length)); + tracker.shift(size); const exit = context.enter('listItem'); - const value = indentLines(containerFlow(node, context), map); + const value = indentLines( + containerFlow(node, context, tracker.current()), + map + ); exit(); - return value - - /** @type {Map} */ function map(line, index, blank) { if (index) { return (blank ? '' : ' '.repeat(size)) + line } - return (blank ? bullet : bullet + ' '.repeat(size - bullet.length)) + line } } -/** - * @typedef {import('mdast').Paragraph} Paragraph - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {Paragraph} node - */ -function paragraph(node, _, context) { +function paragraph(node, _, context, safeOptions) { const exit = context.enter('paragraph'); const subexit = context.enter('phrasing'); - const value = containerPhrasing(node, context, {before: '\n', after: '\n'}); + const value = containerPhrasing(node, context, safeOptions); subexit(); exit(); return value } -/** - * @typedef {import('mdast').Root} Root - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {Root} node - */ -function root(node, _, context) { - return containerFlow(node, context) +function root(node, _, context, safeOptions) { + return containerFlow(node, context, safeOptions) } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkStrong(context) { const marker = context.options.strong || '*'; - if (marker !== '*' && marker !== '_') { throw new Error( 'Cannot serialize strong with `' + @@ -13412,69 +9128,36 @@ function checkStrong(context) { '` for `options.strong`, expected `*`, or `_`' ) } - return marker } -/** - * @typedef {import('mdast').Strong} Strong - * @typedef {import('../types.js').Handle} Handle - */ - strong.peek = strongPeek; - -// To do: there are cases where emphasis cannot “form” depending on the -// previous or next character of sequences. -// There’s no way around that though, except for injecting zero-width stuff. -// Do we need to safeguard against that? -/** - * @type {Handle} - * @param {Strong} node - */ -function strong(node, _, context) { +function strong(node, _, context, safeOptions) { const marker = checkStrong(context); const exit = context.enter('strong'); - const value = containerPhrasing(node, context, { - before: marker, - after: marker - }); + const tracker = track(safeOptions); + let value = tracker.move(marker + marker); + value += tracker.move( + containerPhrasing(node, context, { + before: value, + after: marker, + ...tracker.current() + }) + ); + value += tracker.move(marker + marker); exit(); - return marker + marker + value + marker + marker + return value } - -/** - * @type {Handle} - * @param {Strong} _ - */ function strongPeek(_, _1, context) { return context.options.strong || '*' } -/** - * @typedef {import('mdast').Text} Text - * @typedef {import('../types.js').Handle} Handle - */ - -/** - * @type {Handle} - * @param {Text} node - */ function text$1(node, _, context, safeOptions) { return safe(context, node.value, safeOptions) } -/** - * @typedef {import('../types.js').Context} Context - * @typedef {import('../types.js').Options} Options - */ - -/** - * @param {Context} context - * @returns {Exclude} - */ function checkRuleRepetition(context) { const repetition = context.options.ruleRepetition || 3; - if (repetition < 3) { throw new Error( 'Cannot serialize rules with repetition `' + @@ -13482,24 +9165,13 @@ function checkRuleRepetition(context) { '` for `options.ruleRepetition`, expected `3` or more' ) } - return repetition } -/** - * @typedef {import('../types.js').Handle} Handle - * @typedef {import('mdast').ThematicBreak} ThematicBreak - */ - -/** - * @type {Handle} - * @param {ThematicBreak} _ - */ function thematicBreak(_, _1, context) { const value = ( checkRule(context) + (context.options.ruleSpaces ? ' ' : '') ).repeat(checkRuleRepetition(context)); - return context.options.ruleSpaces ? value.slice(0, -1) : value } @@ -13526,16 +9198,8 @@ const handle = { thematicBreak }; -/** - * @typedef {import('./types.js').Join} Join - */ - -/** @type {Array.} */ const join = [joinDefaults]; - -/** @type {Join} */ function joinDefaults(left, right, parent, context) { - // Indented code after list or another indented code. if ( right.type === 'code' && formatCodeAsIndented(right, context) && @@ -13544,8 +9208,6 @@ function joinDefaults(left, right, parent, context) { ) { return false } - - // Two lists with the same marker. if ( left.type === 'list' && left.type === right.type && @@ -13556,30 +9218,27 @@ function joinDefaults(left, right, parent, context) { ) { return false } - - // Join children of a list or an item. - // In which case, `parent` has a `spread` field. if ('spread' in parent && typeof parent.spread === 'boolean') { if ( left.type === 'paragraph' && - // Two paragraphs. (left.type === right.type || right.type === 'definition' || - // Paragraph followed by a setext heading. (right.type === 'heading' && formatHeadingAsSetext(right, context))) ) { return } - return parent.spread ? 1 : 0 } } -/** - * @typedef {import('./types.js').Unsafe} Unsafe - */ - -/** @type {Array.} */ +const fullPhrasingSpans = [ + 'autolink', + 'destinationLiteral', + 'destinationRaw', + 'reference', + 'titleQuote', + 'titleApostrophe' +]; const unsafe = [ {character: '\t', after: '[\\r\\n]', inConstruct: 'phrasing'}, {character: '\t', before: '[\\r\\n]', inConstruct: 'phrasing'}, @@ -13615,99 +9274,59 @@ const unsafe = [ character: ' ', inConstruct: ['codeFencedLangGraveAccent', 'codeFencedLangTilde'] }, - // An exclamation mark can start an image, if it is followed by a link or - // a link reference. - {character: '!', after: '\\[', inConstruct: 'phrasing'}, - // A quote can break out of a title. + { + character: '!', + after: '\\[', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, {character: '"', inConstruct: 'titleQuote'}, - // A number sign could start an ATX heading if it starts a line. {atBreak: true, character: '#'}, {character: '#', inConstruct: 'headingAtx', after: '(?:[\r\n]|$)'}, - // Dollar sign and percentage are not used in markdown. - // An ampersand could start a character reference. {character: '&', after: '[#A-Za-z]', inConstruct: 'phrasing'}, - // An apostrophe can break out of a title. {character: "'", inConstruct: 'titleApostrophe'}, - // A left paren could break out of a destination raw. {character: '(', inConstruct: 'destinationRaw'}, - {before: '\\]', character: '(', inConstruct: 'phrasing'}, - // A right paren could start a list item or break out of a destination - // raw. + { + before: '\\]', + character: '(', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, {atBreak: true, before: '\\d+', character: ')'}, {character: ')', inConstruct: 'destinationRaw'}, - // An asterisk can start thematic breaks, list items, emphasis, strong. {atBreak: true, character: '*'}, - {character: '*', inConstruct: 'phrasing'}, - // A plus sign could start a list item. + {character: '*', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, {atBreak: true, character: '+'}, - // A dash can start thematic breaks, list items, and setext heading - // underlines. {atBreak: true, character: '-'}, - // A dot could start a list item. {atBreak: true, before: '\\d+', character: '.', after: '(?:[ \t\r\n]|$)'}, - // Slash, colon, and semicolon are not used in markdown for constructs. - // A less than can start html (flow or text) or an autolink. - // HTML could start with an exclamation mark (declaration, cdata, comment), - // slash (closing tag), question mark (instruction), or a letter (tag). - // An autolink also starts with a letter. - // Finally, it could break out of a destination literal. {atBreak: true, character: '<', after: '[!/?A-Za-z]'}, - {character: '<', after: '[!/?A-Za-z]', inConstruct: 'phrasing'}, + { + character: '<', + after: '[!/?A-Za-z]', + inConstruct: 'phrasing', + notInConstruct: fullPhrasingSpans + }, {character: '<', inConstruct: 'destinationLiteral'}, - // An equals to can start setext heading underlines. {atBreak: true, character: '='}, - // A greater than can start block quotes and it can break out of a - // destination literal. {atBreak: true, character: '>'}, {character: '>', inConstruct: 'destinationLiteral'}, - // Question mark and at sign are not used in markdown for constructs. - // A left bracket can start definitions, references, labels, {atBreak: true, character: '['}, - {character: '[', inConstruct: ['phrasing', 'label', 'reference']}, - // A backslash can start an escape (when followed by punctuation) or a - // hard break (when followed by an eol). - // Note: typical escapes are handled in `safe`! + {character: '[', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, + {character: '[', inConstruct: ['label', 'reference']}, {character: '\\', after: '[\\r\\n]', inConstruct: 'phrasing'}, - // A right bracket can exit labels. {character: ']', inConstruct: ['label', 'reference']}, - // Caret is not used in markdown for constructs. - // An underscore can start emphasis, strong, or a thematic break. {atBreak: true, character: '_'}, - {character: '_', inConstruct: 'phrasing'}, - // A grave accent can start code (fenced or text), or it can break out of - // a grave accent code fence. + {character: '_', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, {atBreak: true, character: '`'}, { character: '`', - inConstruct: [ - 'codeFencedLangGraveAccent', - 'codeFencedMetaGraveAccent', - 'phrasing' - ] + inConstruct: ['codeFencedLangGraveAccent', 'codeFencedMetaGraveAccent'] }, - // Left brace, vertical bar, right brace are not used in markdown for - // constructs. - // A tilde can start code (fenced). + {character: '`', inConstruct: 'phrasing', notInConstruct: fullPhrasingSpans}, {atBreak: true, character: '~'} ]; -/** - * @typedef {import('./types.js').Node} Node - * @typedef {import('./types.js').Options} Options - * @typedef {import('./types.js').Context} Context - * @typedef {import('./types.js').Handle} Handle - * @typedef {import('./types.js').Join} Join - * @typedef {import('./types.js').Unsafe} Unsafe - */ - -/** - * @param {Node} tree - * @param {Options} [options] - * @returns {string} - */ function toMarkdown(tree, options = {}) { - /** @type {Context} */ - // @ts-expect-error: we’ll add `handle` later. const context = { enter, stack: [], @@ -13717,25 +9336,22 @@ function toMarkdown(tree, options = {}) { options: {}, indexStack: [] }; - configure(context, {unsafe, join, handlers: handle}); configure(context, options); - if (context.options.tightDefinitions) { configure(context, {join: [joinDefinition]}); } - - /** @type {Handle} */ context.handle = zwitch('type', { invalid, - // @ts-expect-error: hush. unknown, - // @ts-expect-error: hush. handlers: context.handlers }); - - let result = context.handle(tree, null, context, {before: '\n', after: '\n'}); - + let result = context.handle(tree, null, context, { + before: '\n', + after: '\n', + now: {line: 1, column: 1}, + lineShift: 0 + }); if ( result && result.charCodeAt(result.length - 1) !== 10 && @@ -13743,83 +9359,43 @@ function toMarkdown(tree, options = {}) { ) { result += '\n'; } - return result - - /** @type {Context['enter']} */ function enter(name) { context.stack.push(name); return exit - function exit() { context.stack.pop(); } } } - -/** - * @type {Handle} - * @param {unknown} value - */ function invalid(value) { throw new Error('Cannot handle value `' + value + '`, expected node') } - -/** - * @type {Handle} - * @param {Node} node - */ function unknown(node) { throw new Error('Cannot handle unknown node `' + node.type + '`') } - -/** @type {Join} */ function joinDefinition(left, right) { - // No blank line between adjacent definitions. if (left.type === 'definition' && left.type === right.type) { return 0 } } -/** - * @typedef {import('mdast').Root|import('mdast').Content} Node - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownOptions - * @typedef {Omit} Options - */ - -/** @type {import('unified').Plugin<[Options]|void[], Node, string>} */ function remarkStringify(options) { - /** @type {import('unified').CompilerFunction} */ const compiler = (tree) => { - // Assume options. - const settings = /** @type {Options} */ (this.data('settings')); - + const settings = (this.data('settings')); return toMarkdown( tree, Object.assign({}, settings, options, { - // Note: this option is not in the readme. - // The goal is for it to be set by plugins on `data` instead of being - // passed by users. extensions: - /** @type {ToMarkdownOptions['extensions']} */ ( + ( this.data('toMarkdownExtensions') ) || [] }) ) }; - Object.assign(this, {Compiler: compiler}); } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Previous} Previous - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').Code} Code - */ const www = { tokenize: tokenizeWww, partial: true @@ -13852,23 +9428,17 @@ const emailAutolink = { tokenize: tokenizeEmailAutolink, previous: previousEmail }; -/** @type {ConstructRecord} */ - const text = {}; -/** @type {Extension} */ - const gfmAutolinkLiteral = { text }; -let code = 48; // Add alphanumerics. - +let code = 48; while (code < 123) { text[code] = emailAutolink; code++; if (code === 58) code = 65; else if (code === 91) code = 97; } - text[43] = emailAutolink; text[45] = emailAutolink; text[46] = emailAutolink; @@ -13877,19 +9447,11 @@ text[72] = [emailAutolink, httpAutolink]; text[104] = [emailAutolink, httpAutolink]; text[87] = [emailAutolink, wwwAutolink]; text[119] = [emailAutolink, wwwAutolink]; -/** @type {Tokenizer} */ - function tokenizeEmailAutolink(effects, ok, nok) { const self = this; - /** @type {boolean} */ - let hasDot; - /** @type {boolean|undefined} */ - let hasDigitInLastSegment; return start - /** @type {State} */ - function start(code) { if ( !gfmAtext(code) || @@ -13898,90 +9460,65 @@ function tokenizeEmailAutolink(effects, ok, nok) { ) { return nok(code) } - effects.enter('literalAutolink'); effects.enter('literalAutolinkEmail'); return atext(code) } - /** @type {State} */ - function atext(code) { if (gfmAtext(code)) { effects.consume(code); return atext } - if (code === 64) { effects.consume(code); return label } - return nok(code) } - /** @type {State} */ - function label(code) { if (code === 46) { return effects.check(punctuation, done, dotContinuation)(code) } - if (code === 45 || code === 95) { return effects.check(punctuation, nok, dashOrUnderscoreContinuation)(code) } - if (asciiAlphanumeric(code)) { if (!hasDigitInLastSegment && asciiDigit(code)) { hasDigitInLastSegment = true; } - effects.consume(code); return label } - return done(code) } - /** @type {State} */ - function dotContinuation(code) { effects.consume(code); hasDot = true; hasDigitInLastSegment = undefined; return label } - /** @type {State} */ - function dashOrUnderscoreContinuation(code) { effects.consume(code); return afterDashOrUnderscore } - /** @type {State} */ - function afterDashOrUnderscore(code) { if (code === 46) { return effects.check(punctuation, nok, dotContinuation)(code) } - return label(code) } - /** @type {State} */ - function done(code) { if (hasDot && !hasDigitInLastSegment) { effects.exit('literalAutolinkEmail'); effects.exit('literalAutolink'); return ok(code) } - return nok(code) } } -/** @type {Tokenizer} */ - function tokenizeWwwAutolink(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { if ( (code !== 87 && code !== 119) || @@ -13990,33 +9527,23 @@ function tokenizeWwwAutolink(effects, ok, nok) { ) { return nok(code) } - effects.enter('literalAutolink'); - effects.enter('literalAutolinkWww'); // For `www.` we check instead of attempt, because when it matches, GH - // treats it as part of a domain (yes, it says a valid domain must come - // after `www.`, but that’s not how it’s implemented by them). - + effects.enter('literalAutolinkWww'); return effects.check( www, effects.attempt(domain, effects.attempt(path, done), nok), nok )(code) } - /** @type {State} */ - function done(code) { effects.exit('literalAutolinkWww'); effects.exit('literalAutolink'); return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeHttpAutolink(effects, ok, nok) { const self = this; return start - /** @type {State} */ - function start(code) { if ( (code !== 72 && code !== 104) || @@ -14025,84 +9552,60 @@ function tokenizeHttpAutolink(effects, ok, nok) { ) { return nok(code) } - effects.enter('literalAutolink'); effects.enter('literalAutolinkHttp'); effects.consume(code); return t1 } - /** @type {State} */ - function t1(code) { if (code === 84 || code === 116) { effects.consume(code); return t2 } - return nok(code) } - /** @type {State} */ - function t2(code) { if (code === 84 || code === 116) { effects.consume(code); return p } - return nok(code) } - /** @type {State} */ - function p(code) { if (code === 80 || code === 112) { effects.consume(code); return s } - return nok(code) } - /** @type {State} */ - function s(code) { if (code === 83 || code === 115) { effects.consume(code); return colon } - return colon(code) } - /** @type {State} */ - function colon(code) { if (code === 58) { effects.consume(code); return slash1 } - return nok(code) } - /** @type {State} */ - function slash1(code) { if (code === 47) { effects.consume(code); return slash2 } - return nok(code) } - /** @type {State} */ - function slash2(code) { if (code === 47) { effects.consume(code); return after } - return nok(code) } - /** @type {State} */ - function after(code) { return code === null || asciiControl(code) || @@ -14111,71 +9614,47 @@ function tokenizeHttpAutolink(effects, ok, nok) { ? nok(code) : effects.attempt(domain, effects.attempt(path, done), nok)(code) } - /** @type {State} */ - function done(code) { effects.exit('literalAutolinkHttp'); effects.exit('literalAutolink'); return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeWww(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.consume(code); return w2 } - /** @type {State} */ - function w2(code) { if (code === 87 || code === 119) { effects.consume(code); return w3 } - return nok(code) } - /** @type {State} */ - function w3(code) { if (code === 87 || code === 119) { effects.consume(code); return dot } - return nok(code) } - /** @type {State} */ - function dot(code) { if (code === 46) { effects.consume(code); return after } - return nok(code) } - /** @type {State} */ - function after(code) { return code === null || markdownLineEnding(code) ? nok(code) : ok(code) } } -/** @type {Tokenizer} */ - function tokenizeDomain(effects, ok, nok) { - /** @type {boolean|undefined} */ let hasUnderscoreInLastSegment; - /** @type {boolean|undefined} */ - let hasUnderscoreInLastLastSegment; return domain - /** @type {State} */ - function domain(code) { if (code === 38) { return effects.check( @@ -14184,15 +9663,9 @@ function tokenizeDomain(effects, ok, nok) { punctuationContinuation )(code) } - if (code === 46 || code === 95) { return effects.check(punctuation, done, punctuationContinuation)(code) - } // GH documents that only alphanumerics (other than `-`, `.`, and `_`) can - // occur, which sounds like ASCII only, but they also support `www.點看.com`, - // so that’s Unicode. - // Instead of some new production for Unicode alphanumerics, markdown - // already has that for Unicode punctuation and whitespace, so use those. - + } if ( code === null || asciiControl(code) || @@ -14201,12 +9674,9 @@ function tokenizeDomain(effects, ok, nok) { ) { return done(code) } - effects.consume(code); return domain } - /** @type {State} */ - function punctuationContinuation(code) { if (code === 46) { hasUnderscoreInLastLastSegment = hasUnderscoreInLastSegment; @@ -14214,28 +9684,20 @@ function tokenizeDomain(effects, ok, nok) { effects.consume(code); return domain } - if (code === 95) hasUnderscoreInLastSegment = true; effects.consume(code); return domain } - /** @type {State} */ - function done(code) { if (!hasUnderscoreInLastLastSegment && !hasUnderscoreInLastSegment) { return ok(code) } - return nok(code) } } -/** @type {Tokenizer} */ - function tokenizePath(effects, ok) { let balance = 0; return inPath - /** @type {State} */ - function inPath(code) { if (code === 38) { return effects.check( @@ -14244,11 +9706,9 @@ function tokenizePath(effects, ok) { continuedPunctuation )(code) } - if (code === 40) { balance++; } - if (code === 41) { return effects.check( punctuation, @@ -14256,92 +9716,59 @@ function tokenizePath(effects, ok) { continuedPunctuation )(code) } - if (pathEnd(code)) { return ok(code) } - if (trailingPunctuation(code)) { return effects.check(punctuation, ok, continuedPunctuation)(code) } - effects.consume(code); return inPath } - /** @type {State} */ - function continuedPunctuation(code) { effects.consume(code); return inPath } - /** @type {State} */ - function parenAtPathEnd(code) { balance--; return balance < 0 ? ok(code) : continuedPunctuation(code) } } -/** @type {Tokenizer} */ - function tokenizeNamedCharacterReference(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.consume(code); return inside } - /** @type {State} */ - function inside(code) { if (asciiAlpha(code)) { effects.consume(code); return inside } - if (code === 59) { effects.consume(code); return after } - return nok(code) } - /** @type {State} */ - function after(code) { - // If the named character reference is followed by the end of the path, it’s - // not continued punctuation. return pathEnd(code) ? ok(code) : nok(code) } } -/** @type {Tokenizer} */ - function tokenizePunctuation(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.consume(code); return after } - /** @type {State} */ - function after(code) { - // Check the next. if (trailingPunctuation(code)) { effects.consume(code); return after - } // If the punctuation marker is followed by the end of the path, it’s not - // continued punctuation. - + } return pathEnd(code) ? ok(code) : nok(code) } } -/** - * @param {Code} code - * @returns {boolean} - */ - function trailingPunctuation(code) { return ( code === 33 || @@ -14359,19 +9786,9 @@ function trailingPunctuation(code) { code === 126 ) } -/** - * @param {Code} code - * @returns {boolean} - */ - function pathEnd(code) { return code === null || code === 60 || markdownLineEndingOrSpace(code) } -/** - * @param {Code} code - * @returns {boolean} - */ - function gfmAtext(code) { return ( code === 43 || @@ -14381,8 +9798,6 @@ function gfmAtext(code) { asciiAlphanumeric(code) ) } -/** @type {Previous} */ - function previousWww(code) { return ( code === null || @@ -14393,71 +9808,40 @@ function previousWww(code) { markdownLineEndingOrSpace(code) ) } -/** @type {Previous} */ - function previousHttp(code) { return code === null || !asciiAlpha(code) } -/** @type {Previous} */ - function previousEmail(code) { return code !== 47 && previousHttp(code) } -/** - * @param {Event[]} events - * @returns {boolean} - */ - function previousUnbalanced(events) { let index = events.length; let result = false; - while (index--) { const token = events[index][1]; - if ( (token.type === 'labelLink' || token.type === 'labelImage') && !token._balanced ) { result = true; break - } // @ts-expect-error If we’ve seen this token, and it was marked as not - // having any unbalanced bracket before it, we can exit. - + } if (token._gfmAutolinkLiteralWalkedInto) { result = false; break } } - if (events.length > 0 && !result) { - // @ts-expect-error Mark the last token as “walked into” w/o finding - // anything. events[events.length - 1][1]._gfmAutolinkLiteralWalkedInto = true; } - return result } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Exiter} Exiter - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Event} Event - */ const indent = { tokenize: tokenizeIndent, partial: true }; -/** - * @returns {Extension} - */ - function gfmFootnote() { - /** @type {Extension} */ return { document: { [91]: { @@ -14480,27 +9864,17 @@ function gfmFootnote() { } } } -/** @type {Tokenizer} */ - function tokenizePotentialGfmFootnoteCall(effects, ok, nok) { const self = this; let index = self.events.length; - /** @type {string[]} */ - // @ts-expect-error It’s fine! - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); - /** @type {Token} */ - - let labelStart; // Find an opening. - + let labelStart; while (index--) { const token = self.events[index][1]; - if (token.type === 'labelImage') { labelStart = token; break - } // Exit if we’ve walked far enough. - + } if ( token.type === 'gfmFootnoteCall' || token.type === 'labelLink' || @@ -14511,37 +9885,28 @@ function tokenizePotentialGfmFootnoteCall(effects, ok, nok) { break } } - return start - /** @type {State} */ - function start(code) { if (!labelStart || !labelStart._balanced) { return nok(code) } - const id = normalizeIdentifier( self.sliceSerialize({ start: labelStart.end, end: self.now() }) ); - if (id.charCodeAt(0) !== 94 || !defined.includes(id.slice(1))) { return nok(code) } - effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); effects.exit('gfmFootnoteCallLabelMarker'); return ok(code) } } -/** @type {Resolver} */ - function resolveToPotentialGfmFootnoteCall(events, context) { let index = events.length; - while (index--) { if ( events[index][1].type === 'labelImage' && @@ -14551,23 +9916,18 @@ function resolveToPotentialGfmFootnoteCall(events, context) { break } } - - // Change the `labelImageMarker` to a `data`. events[index + 1][1].type = 'data'; - events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'; // The whole (without `!`): - + events[index + 3][1].type = 'gfmFootnoteCallLabelMarker'; const call = { type: 'gfmFootnoteCall', start: Object.assign({}, events[index + 3][1].start), end: Object.assign({}, events[events.length - 1][1].end) - }; // The `^` marker - + }; const marker = { type: 'gfmFootnoteCallMarker', start: Object.assign({}, events[index + 3][1].end), end: Object.assign({}, events[index + 3][1].end) - }; // Increment the end 1 character. - + }; marker.end.column++; marker.end.offset++; marker.end._bufferIndex++; @@ -14582,21 +9942,18 @@ function resolveToPotentialGfmFootnoteCall(events, context) { start: Object.assign({}, string.start), end: Object.assign({}, string.end) }; - /** @type {Event[]} */ - const replacement = [ - // Take the `labelImageMarker` (now `data`, the `!`) events[index + 1], events[index + 2], - ['enter', call, context], // The `[` + ['enter', call, context], events[index + 3], - events[index + 4], // The `^`. + events[index + 4], ['enter', marker, context], - ['exit', marker, context], // Everything in between. + ['exit', marker, context], ['enter', string, context], ['enter', chunk, context], ['exit', chunk, context], - ['exit', string, context], // The ending (`]`, properly parsed and labelled). + ['exit', string, context], events[events.length - 2], events[events.length - 1], ['exit', call, context] @@ -14604,21 +9961,12 @@ function resolveToPotentialGfmFootnoteCall(events, context) { events.splice(index, events.length - index + 1, ...replacement); return events } -/** @type {Tokenizer} */ - function tokenizeGfmFootnoteCall(effects, ok, nok) { const self = this; - /** @type {string[]} */ - // @ts-expect-error It’s fine! - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); let size = 0; - /** @type {boolean} */ - let data; return start - /** @type {State} */ - function start(code) { effects.enter('gfmFootnoteCall'); effects.enter('gfmFootnoteCallLabelMarker'); @@ -14626,8 +9974,6 @@ function tokenizeGfmFootnoteCall(effects, ok, nok) { effects.exit('gfmFootnoteCallLabelMarker'); return callStart } - /** @type {State} */ - function callStart(code) { if (code !== 94) return nok(code) effects.enter('gfmFootnoteCallMarker'); @@ -14637,49 +9983,35 @@ function tokenizeGfmFootnoteCall(effects, ok, nok) { effects.enter('chunkString').contentType = 'string'; return callData } - /** @type {State} */ - function callData(code) { - /** @type {Token} */ let token; - if (code === null || code === 91 || size++ > 999) { return nok(code) } - if (code === 93) { if (!data) { return nok(code) } - effects.exit('chunkString'); token = effects.exit('gfmFootnoteCallString'); return defined.includes(normalizeIdentifier(self.sliceSerialize(token))) ? end(code) : nok(code) } - effects.consume(code); - if (!markdownLineEndingOrSpace(code)) { data = true; } - return code === 92 ? callEscape : callData } - /** @type {State} */ - function callEscape(code) { if (code === 91 || code === 92 || code === 93) { effects.consume(code); size++; return callData } - return callData(code) } - /** @type {State} */ - function end(code) { effects.enter('gfmFootnoteCallLabelMarker'); effects.consume(code); @@ -14688,24 +10020,13 @@ function tokenizeGfmFootnoteCall(effects, ok, nok) { return ok } } -/** @type {Tokenizer} */ - function tokenizeDefinitionStart(effects, ok, nok) { const self = this; - /** @type {string[]} */ - // @ts-expect-error It’s fine! - const defined = self.parser.gfmFootnotes || (self.parser.gfmFootnotes = []); - /** @type {string} */ - let identifier; let size = 0; - /** @type {boolean|undefined} */ - let data; return start - /** @type {State} */ - function start(code) { effects.enter('gfmFootnoteDefinition')._container = true; effects.enter('gfmFootnoteDefinitionLabel'); @@ -14714,8 +10035,6 @@ function tokenizeDefinitionStart(effects, ok, nok) { effects.exit('gfmFootnoteDefinitionLabelMarker'); return labelStart } - /** @type {State} */ - function labelStart(code) { if (code === 94) { effects.enter('gfmFootnoteDefinitionMarker'); @@ -14724,24 +10043,17 @@ function tokenizeDefinitionStart(effects, ok, nok) { effects.enter('gfmFootnoteDefinitionLabelString'); return atBreak } - return nok(code) } - /** @type {State} */ - function atBreak(code) { - /** @type {Token} */ let token; - if (code === null || code === 91 || size > 999) { return nok(code) } - if (code === 93) { if (!data) { return nok(code) } - token = effects.exit('gfmFootnoteDefinitionLabelString'); identifier = normalizeIdentifier(self.sliceSerialize(token)); effects.enter('gfmFootnoteDefinitionLabelMarker'); @@ -14750,7 +10062,6 @@ function tokenizeDefinitionStart(effects, ok, nok) { effects.exit('gfmFootnoteDefinitionLabel'); return labelAfter } - if (markdownLineEnding(code)) { effects.enter('lineEnding'); effects.consume(code); @@ -14758,12 +10069,9 @@ function tokenizeDefinitionStart(effects, ok, nok) { size++; return atBreak } - effects.enter('chunkString').contentType = 'string'; return label(code) } - /** @type {State} */ - function label(code) { if ( code === null || @@ -14775,64 +10083,43 @@ function tokenizeDefinitionStart(effects, ok, nok) { effects.exit('chunkString'); return atBreak(code) } - if (!markdownLineEndingOrSpace(code)) { data = true; } - size++; effects.consume(code); return code === 92 ? labelEscape : label } - /** @type {State} */ - function labelEscape(code) { if (code === 91 || code === 92 || code === 93) { effects.consume(code); size++; return label } - return label(code) } - /** @type {State} */ - function labelAfter(code) { if (code === 58) { effects.enter('definitionMarker'); effects.consume(code); - effects.exit('definitionMarker'); // Any whitespace after the marker is eaten, forming indented code - // is not possible. - // No space is also fine, just like a block quote marker. - + effects.exit('definitionMarker'); return factorySpace(effects, done, 'gfmFootnoteDefinitionWhitespace') } - return nok(code) } - /** @type {State} */ - function done(code) { if (!defined.includes(identifier)) { defined.push(identifier); } - return ok(code) } } -/** @type {Tokenizer} */ - function tokenizeDefinitionContinuation(effects, ok, nok) { - // Either a blank line, which is okay, or an indented thing. return effects.check(blankLine, ok, effects.attempt(indent, ok, nok)) } -/** @type {Exiter} */ - function gfmFootnoteDefinitionEnd(effects) { effects.exit('gfmFootnoteDefinition'); } -/** @type {Tokenizer} */ - function tokenizeIndent(effects, ok, nok) { const self = this; return factorySpace( @@ -14841,8 +10128,6 @@ function tokenizeIndent(effects, ok, nok) { 'gfmFootnoteDefinitionIndent', 4 + 1 ) - /** @type {State} */ - function afterPrefix(code) { const tail = self.events[self.events.length - 1]; return tail && @@ -14853,30 +10138,15 @@ function tokenizeIndent(effects, ok, nok) { } } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Token} Token - * @typedef {import('micromark-util-types').Event} Event - */ - -/** - * @param {Options} [options] - * @returns {Extension} - */ function gfmStrikethrough(options = {}) { let single = options.singleTilde; const tokenizer = { tokenize: tokenizeStrikethrough, resolveAll: resolveAllStrikethrough }; - if (single === null || single === undefined) { single = true; } - return { text: { [126]: tokenizer @@ -14888,30 +10158,20 @@ function gfmStrikethrough(options = {}) { null: [126] } } - /** - * Take events and resolve strikethrough. - * - * @type {Resolver} - */ - function resolveAllStrikethrough(events, context) { - let index = -1; // Walk through all events. - + let index = -1; while (++index < events.length) { - // Find a token that can close. if ( events[index][0] === 'enter' && events[index][1].type === 'strikethroughSequenceTemporary' && events[index][1]._close ) { - let open = index; // Now walk back to find an opener. - + let open = index; while (open--) { - // Find a token that can open the closer. if ( events[open][0] === 'exit' && events[open][1].type === 'strikethroughSequenceTemporary' && - events[open][1]._open && // If the sizes are the same: + events[open][1]._open && events[index][1].end.offset - events[index][1].start.offset === events[open][1].end.offset - events[open][1].start.offset ) { @@ -14926,15 +10186,13 @@ function gfmStrikethrough(options = {}) { type: 'strikethroughText', start: Object.assign({}, events[open][1].end), end: Object.assign({}, events[index][1].start) - }; // Opening. - + }; const nextEvents = [ ['enter', strikethrough, context], ['enter', events[open][1], context], ['exit', events[open][1], context], ['enter', text, context] - ]; // Between. - + ]; splice( nextEvents, nextEvents.length, @@ -14944,8 +10202,7 @@ function gfmStrikethrough(options = {}) { events.slice(open + 1, index), context ) - ); // Closing. - + ); splice(nextEvents, nextEvents.length, 0, [ ['exit', text, context], ['enter', events[index][1], context], @@ -14959,26 +10216,19 @@ function gfmStrikethrough(options = {}) { } } } - index = -1; - while (++index < events.length) { if (events[index][1].type === 'strikethroughSequenceTemporary') { events[index][1].type = 'data'; } } - return events } - /** @type {Tokenizer} */ - function tokenizeStrikethrough(effects, ok, nok) { const previous = this.previous; const events = this.events; let size = 0; return start - /** @type {State} */ - function start(code) { if ( previous === 126 && @@ -14986,23 +10236,17 @@ function gfmStrikethrough(options = {}) { ) { return nok(code) } - effects.enter('strikethroughSequenceTemporary'); return more(code) } - /** @type {State} */ - function more(code) { const before = classifyCharacter(previous); - if (code === 126) { - // If this is the third marker, exit. if (size > 1) return nok(code) effects.consume(code); size++; return more } - if (size < 2 && !single) return nok(code) const token = effects.exit('strikethroughSequenceTemporary'); const after = classifyCharacter(code); @@ -15013,15 +10257,6 @@ function gfmStrikethrough(options = {}) { } } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').Resolver} Resolver - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Token} Token - */ - -/** @type {Extension} */ const gfmTable = { flow: { null: { @@ -15030,48 +10265,27 @@ const gfmTable = { } } }; -const setextUnderlineMini = { - tokenize: tokenizeSetextUnderlineMini, - partial: true -}; const nextPrefixedOrBlank = { tokenize: tokenizeNextPrefixedOrBlank, partial: true }; -/** @type {Resolver} */ - function resolveTable(events, context) { let index = -1; - /** @type {boolean|undefined} */ - let inHead; - /** @type {boolean|undefined} */ - let inDelimiterRow; - /** @type {boolean|undefined} */ - let inRow; - /** @type {number|undefined} */ - let contentStart; - /** @type {number|undefined} */ - let contentEnd; - /** @type {number|undefined} */ - let cellStart; - + let seenCellInRow; while (++index < events.length) { const token = events[index][1]; - if (inRow) { if (token.type === 'temporaryTableCellContent') { contentStart = contentStart || index; contentEnd = index; } - if ( - // Combine separate content parts into one. (token.type === 'tableCellDivider' || token.type === 'tableRow') && contentEnd ) { @@ -15080,13 +10294,10 @@ function resolveTable(events, context) { start: events[contentStart][1].start, end: events[contentEnd][1].end }; - /** @type {Token} */ - const text = { type: 'chunkText', start: content.start, end: content.end, - // @ts-expect-error It’s fine. contentType: 'text' }; events.splice( @@ -15102,11 +10313,10 @@ function resolveTable(events, context) { contentEnd = undefined; } } - if ( events[index][0] === 'exit' && - cellStart && - cellStart + 1 < index && + cellStart !== undefined && + cellStart + (seenCellInRow ? 0 : 1) < index && (token.type === 'tableCellDivider' || (token.type === 'tableRow' && (cellStart + 3 < index || @@ -15129,65 +10339,46 @@ function resolveTable(events, context) { events.splice(cellStart, 0, ['enter', cell, context]); index += 2; cellStart = index + 1; + seenCellInRow = true; } - if (token.type === 'tableRow') { inRow = events[index][0] === 'enter'; - if (inRow) { cellStart = index + 1; + seenCellInRow = false; } } - if (token.type === 'tableDelimiterRow') { inDelimiterRow = events[index][0] === 'enter'; - if (inDelimiterRow) { cellStart = index + 1; + seenCellInRow = false; } } - if (token.type === 'tableHead') { inHead = events[index][0] === 'enter'; } } - return events } -/** @type {Tokenizer} */ - function tokenizeTable(effects, ok, nok) { const self = this; - /** @type {Align[]} */ - const align = []; let tableHeaderCount = 0; - /** @type {boolean|undefined} */ - let seenDelimiter; - /** @type {boolean|undefined} */ - let hasDash; return start - /** @type {State} */ - function start(code) { - // @ts-expect-error Custom. effects.enter('table')._align = align; effects.enter('tableHead'); - effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. - + effects.enter('tableRow'); if (code === 124) { return cellDividerHead(code) } - tableHeaderCount++; - effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. - + effects.enter('temporaryTableCellContent'); return inCellContentHead(code) } - /** @type {State} */ - function cellDividerHead(code) { effects.enter('tableCellDivider'); effects.consume(code); @@ -15195,161 +10386,117 @@ function tokenizeTable(effects, ok, nok) { seenDelimiter = true; return cellBreakHead } - /** @type {State} */ - function cellBreakHead(code) { if (code === null || markdownLineEnding(code)) { return atRowEndHead(code) } - if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceHead } - if (seenDelimiter) { seenDelimiter = undefined; tableHeaderCount++; } - if (code === 124) { return cellDividerHead(code) - } // Anything else is cell content. - + } effects.enter('temporaryTableCellContent'); return inCellContentHead(code) } - /** @type {State} */ - function inWhitespaceHead(code) { if (markdownSpace(code)) { effects.consume(code); return inWhitespaceHead } - effects.exit('whitespace'); return cellBreakHead(code) } - /** @type {State} */ - function inCellContentHead(code) { - // EOF, whitespace, pipe if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { effects.exit('temporaryTableCellContent'); return cellBreakHead(code) } - effects.consume(code); return code === 92 ? inCellContentEscapeHead : inCellContentHead } - /** @type {State} */ - function inCellContentEscapeHead(code) { if (code === 92 || code === 124) { effects.consume(code); return inCellContentHead - } // Anything else. - + } return inCellContentHead(code) } - /** @type {State} */ - function atRowEndHead(code) { if (code === null) { return nok(code) } - effects.exit('tableRow'); effects.exit('tableHead'); + const originalInterrupt = self.interrupt; + self.interrupt = true; return effects.attempt( { tokenize: tokenizeRowEnd, partial: true }, - atDelimiterLineStart, - nok - )(code) - } - /** @type {State} */ - - function atDelimiterLineStart(code) { - return effects.check( - setextUnderlineMini, - nok, // Support an indent before the delimiter row. - factorySpace(effects, rowStartDelimiter, 'linePrefix', 4) + function (code) { + self.interrupt = originalInterrupt; + effects.enter('tableDelimiterRow'); + return atDelimiterRowBreak(code) + }, + function (code) { + self.interrupt = originalInterrupt; + return nok(code) + } )(code) } - /** @type {State} */ - - function rowStartDelimiter(code) { - // If there’s another space, or we’re at the EOL/EOF, exit. - if (code === null || markdownLineEndingOrSpace(code)) { - return nok(code) - } - - effects.enter('tableDelimiterRow'); - return atDelimiterRowBreak(code) - } - /** @type {State} */ - function atDelimiterRowBreak(code) { if (code === null || markdownLineEnding(code)) { return rowEndDelimiter(code) } - if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceDelimiter } - if (code === 45) { effects.enter('tableDelimiterFiller'); effects.consume(code); hasDash = true; - align.push(null); + align.push('none'); return inFillerDelimiter } - if (code === 58) { effects.enter('tableDelimiterAlignment'); effects.consume(code); effects.exit('tableDelimiterAlignment'); align.push('left'); return afterLeftAlignment - } // If we start with a pipe, we open a cell marker. - + } if (code === 124) { effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); return atDelimiterRowBreak } - return nok(code) } - /** @type {State} */ - function inWhitespaceDelimiter(code) { if (markdownSpace(code)) { effects.consume(code); return inWhitespaceDelimiter } - effects.exit('whitespace'); return atDelimiterRowBreak(code) } - /** @type {State} */ - function inFillerDelimiter(code) { if (code === 45) { effects.consume(code); return inFillerDelimiter } - effects.exit('tableDelimiterFiller'); - if (code === 58) { effects.enter('tableDelimiterAlignment'); effects.consume(code); @@ -15358,57 +10505,42 @@ function tokenizeTable(effects, ok, nok) { align[align.length - 1] === 'left' ? 'center' : 'right'; return afterRightAlignment } - return atDelimiterRowBreak(code) } - /** @type {State} */ - function afterLeftAlignment(code) { if (code === 45) { effects.enter('tableDelimiterFiller'); effects.consume(code); hasDash = true; return inFillerDelimiter - } // Anything else is not ok. - + } return nok(code) } - /** @type {State} */ - function afterRightAlignment(code) { if (code === null || markdownLineEnding(code)) { return rowEndDelimiter(code) } - if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceDelimiter - } // `|` - + } if (code === 124) { effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); return atDelimiterRowBreak } - return nok(code) } - /** @type {State} */ - function rowEndDelimiter(code) { - effects.exit('tableDelimiterRow'); // Exit if there was no dash at all, or if the header cell count is not the - // delimiter cell count. - + effects.exit('tableDelimiterRow'); if (!hasDash || tableHeaderCount !== align.length) { return nok(code) } - if (code === null) { return tableClose(code) } - return effects.check( nextPrefixedOrBlank, tableClose, @@ -15422,101 +10554,71 @@ function tokenizeTable(effects, ok, nok) { ) )(code) } - /** @type {State} */ - function tableClose(code) { effects.exit('table'); return ok(code) } - /** @type {State} */ - function bodyStart(code) { effects.enter('tableBody'); return rowStartBody(code) } - /** @type {State} */ - function rowStartBody(code) { - effects.enter('tableRow'); // If we start with a pipe, we open a cell marker. - + effects.enter('tableRow'); if (code === 124) { return cellDividerBody(code) } - - effects.enter('temporaryTableCellContent'); // Can’t be space or eols at the start of a construct, so we’re in a cell. - + effects.enter('temporaryTableCellContent'); return inCellContentBody(code) } - /** @type {State} */ - function cellDividerBody(code) { effects.enter('tableCellDivider'); effects.consume(code); effects.exit('tableCellDivider'); return cellBreakBody } - /** @type {State} */ - function cellBreakBody(code) { if (code === null || markdownLineEnding(code)) { return atRowEndBody(code) } - if (markdownSpace(code)) { effects.enter('whitespace'); effects.consume(code); return inWhitespaceBody - } // `|` - + } if (code === 124) { return cellDividerBody(code) - } // Anything else is cell content. - + } effects.enter('temporaryTableCellContent'); return inCellContentBody(code) } - /** @type {State} */ - function inWhitespaceBody(code) { if (markdownSpace(code)) { effects.consume(code); return inWhitespaceBody } - effects.exit('whitespace'); return cellBreakBody(code) } - /** @type {State} */ - function inCellContentBody(code) { - // EOF, whitespace, pipe if (code === null || code === 124 || markdownLineEndingOrSpace(code)) { effects.exit('temporaryTableCellContent'); return cellBreakBody(code) } - effects.consume(code); return code === 92 ? inCellContentEscapeBody : inCellContentBody } - /** @type {State} */ - function inCellContentEscapeBody(code) { if (code === 92 || code === 124) { effects.consume(code); return inCellContentBody - } // Anything else. - + } return inCellContentBody(code) } - /** @type {State} */ - function atRowEndBody(code) { effects.exit('tableRow'); - if (code === null) { return tableBodyClose(code) } - return effects.check( nextPrefixedOrBlank, tableBodyClose, @@ -15530,114 +10632,71 @@ function tokenizeTable(effects, ok, nok) { ) )(code) } - /** @type {State} */ - function tableBodyClose(code) { effects.exit('tableBody'); return tableClose(code) } - /** @type {Tokenizer} */ - function tokenizeRowEnd(effects, ok, nok) { return start - /** @type {State} */ - function start(code) { effects.enter('lineEnding'); effects.consume(code); effects.exit('lineEnding'); - return lineStart - } - /** @type {State} */ - - function lineStart(code) { - return self.parser.lazy[self.now().line] ? nok(code) : ok(code) - } - } -} // Based on micromark, but that won’t work as we’re in a table, and that expects -// content. -// - -/** @type {Tokenizer} */ - -function tokenizeSetextUnderlineMini(effects, ok, nok) { - return start - /** @type {State} */ - - function start(code) { - if (code !== 45) { - return nok(code) - } - - effects.enter('setextUnderline'); - return sequence(code) - } - /** @type {State} */ - - function sequence(code) { - if (code === 45) { - effects.consume(code); - return sequence - } - - return whitespace(code) - } - /** @type {State} */ - - function whitespace(code) { - if (code === null || markdownLineEnding(code)) { - return ok(code) + return factorySpace(effects, prefixed, 'linePrefix') } - - if (markdownSpace(code)) { - effects.consume(code); - return whitespace + function prefixed(code) { + if ( + self.parser.lazy[self.now().line] || + code === null || + markdownLineEnding(code) + ) { + return nok(code) + } + const tail = self.events[self.events.length - 1]; + if ( + !self.parser.constructs.disable.null.includes('codeIndented') && + tail && + tail[1].type === 'linePrefix' && + tail[2].sliceSerialize(tail[1], true).length >= 4 + ) { + return nok(code) + } + self._gfmTableDynamicInterruptHack = true; + return effects.check( + self.parser.constructs.flow, + function (code) { + self._gfmTableDynamicInterruptHack = false; + return nok(code) + }, + function (code) { + self._gfmTableDynamicInterruptHack = false; + return ok(code) + } + )(code) } - - return nok(code) } } -/** @type {Tokenizer} */ - function tokenizeNextPrefixedOrBlank(effects, ok, nok) { let size = 0; return start - /** @type {State} */ - function start(code) { - // This is a check, so we don’t care about tokens, but we open a bogus one - // so we’re valid. - effects.enter('check'); // EOL. - + effects.enter('check'); effects.consume(code); return whitespace } - /** @type {State} */ - function whitespace(code) { if (code === -1 || code === 32) { effects.consume(code); size++; return size === 4 ? ok : whitespace - } // EOF or whitespace - + } if (code === null || markdownLineEndingOrSpace(code)) { return ok(code) - } // Anything else. - + } return nok(code) } } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').ConstructRecord} ConstructRecord - * @typedef {import('micromark-util-types').Tokenizer} Tokenizer - * @typedef {import('micromark-util-types').Previous} Previous - * @typedef {import('micromark-util-types').State} State - * @typedef {import('micromark-util-types').Event} Event - * @typedef {import('micromark-util-types').Code} Code - */ const tasklistCheck = { tokenize: tokenizeTasklistCheck }; @@ -15646,50 +10705,37 @@ const gfmTaskListItem = { [91]: tasklistCheck } }; -/** @type {Tokenizer} */ - function tokenizeTasklistCheck(effects, ok, nok) { const self = this; return open - /** @type {State} */ - function open(code) { if ( - // Exit if there’s stuff before. - self.previous !== null || // Exit if not in the first content that is the first child of a list - // item. + self.previous !== null || !self._gfmTasklistFirstContentOfListItem ) { return nok(code) } - effects.enter('taskListCheck'); effects.enter('taskListCheckMarker'); effects.consume(code); effects.exit('taskListCheckMarker'); return inside } - /** @type {State} */ - function inside(code) { - if (markdownSpace(code)) { + if (markdownLineEndingOrSpace(code)) { effects.enter('taskListCheckValueUnchecked'); effects.consume(code); effects.exit('taskListCheckValueUnchecked'); return close } - if (code === 88 || code === 120) { effects.enter('taskListCheckValueChecked'); effects.consume(code); effects.exit('taskListCheckValueChecked'); return close } - return nok(code) } - /** @type {State} */ - function close(code) { if (code === 93) { effects.enter('taskListCheckMarker'); @@ -15704,41 +10750,24 @@ function tokenizeTasklistCheck(effects, ok, nok) { nok ) } - return nok(code) } } -/** @type {Tokenizer} */ - function spaceThenNonSpace(effects, ok, nok) { const self = this; return factorySpace(effects, after, 'whitespace') - /** @type {State} */ - function after(code) { const tail = self.events[self.events.length - 1]; - return tail && - tail[1].type === 'whitespace' && - code !== null && - !markdownLineEndingOrSpace(code) - ? ok(code) - : nok(code) + return ( + ((tail && tail[1].type === 'whitespace') || + markdownLineEnding(code)) && + code !== null + ? ok(code) + : nok(code) + ) } } -/** - * @typedef {import('micromark-util-types').Extension} Extension - * @typedef {import('micromark-util-types').HtmlExtension} HtmlExtension - * @typedef {import('micromark-extension-gfm-strikethrough').Options} Options - * @typedef {import('micromark-extension-gfm-footnote').HtmlOptions} HtmlOptions - */ - -/** - * Support GFM or markdown on github.com. - * - * @param {Options} [options] - * @returns {Extension} - */ function gfm(options) { return combineExtensions([ gfmAutolinkLiteral, @@ -15749,29 +10778,17 @@ function gfm(options) { ]) } -/** - * Get the total count of `character` in `value`. - * - * @param {any} value Content, coerced to string - * @param {string} character Single character to look for - * @return {number} Number of times `character` occurred in `value`. - */ function ccount(value, character) { - var source = String(value); - var count = 0; - var index; - + const source = String(value); if (typeof character !== 'string') { - throw new Error('Expected character') + throw new TypeError('Expected character') } - - index = source.indexOf(character); - + let count = 0; + let index = source.indexOf(character); while (index !== -1) { count++; index = source.indexOf(character, index + character.length); } - return count } @@ -15779,82 +10796,32 @@ function escapeStringRegexp(string) { if (typeof string !== 'string') { throw new TypeError('Expected a string'); } - - // Escape characters with special meaning either inside or outside character sets. - // Use a simple backslash escape when it’s always valid, and a `\xnn` escape when the simpler form would be disallowed by Unicode patterns’ stricter grammar. return string .replace(/[|\\{}()[\]^$+*?.]/g, '\\$&') .replace(/-/g, '\\x2d'); } -/** - * @param {string} d - * @returns {string} - */ -function color(d) { +function color$1(d) { return '\u001B[33m' + d + '\u001B[39m' } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - */ - -/** - * Continue traversing as normal - */ const CONTINUE = true; -/** - * Do not traverse this node’s children - */ const SKIP = 'skip'; -/** - * Stop traversing immediately - */ const EXIT = false; - const visitParents = - /** - * @type {( - * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & - * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & - * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) - * )} - */ ( - /** - * Visit children of tree which pass a test - * - * @param {Node} tree Abstract syntax tree to walk - * @param {Test} test test Test node - * @param {Visitor} visitor Function to run for each node - * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false - */ function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { reverse = visitor; - // @ts-ignore no visitor given, so `visitor` is test. visitor = test; test = null; } - var is = convert(test); var step = reverse ? -1 : 1; - factory(tree, null, [])(); - - /** - * @param {Node} node - * @param {number?} index - * @param {Array.} parents - */ function factory(node, index, parents) { - /** @type {Object.} */ var value = typeof node === 'object' && node !== null ? node : {}; - /** @type {string} */ var name; - if (typeof value.type === 'string') { name = typeof value.tagName === 'string' @@ -15862,221 +10829,113 @@ const visitParents = : typeof value.name === 'string' ? value.name : undefined; - Object.defineProperty(visit, 'name', { value: 'node (' + - color(value.type + (name ? '<' + name + '>' : '')) + + color$1(value.type + (name ? '<' + name + '>' : '')) + ')' }); } - return visit - function visit() { - /** @type {ActionTuple} */ var result = []; - /** @type {ActionTuple} */ var subresult; - /** @type {number} */ var offset; - /** @type {Array.} */ var grandparents; - if (!test || is(node, index, parents[parents.length - 1] || null)) { result = toResult(visitor(node, parents)); - if (result[0] === EXIT) { return result } } - if (node.children && result[0] !== SKIP) { - // @ts-ignore looks like a parent. offset = (reverse ? node.children.length : -1) + step; - // @ts-ignore looks like a parent. grandparents = parents.concat(node); - - // @ts-ignore looks like a parent. while (offset > -1 && offset < node.children.length) { subresult = factory(node.children[offset], offset, grandparents)(); - if (subresult[0] === EXIT) { return subresult } - offset = typeof subresult[1] === 'number' ? subresult[1] : offset + step; } } - return result } } } ); - -/** - * @param {VisitorResult} value - * @returns {ActionTuple} - */ function toResult(value) { if (Array.isArray(value)) { return value } - if (typeof value === 'number') { return [CONTINUE, value] } - return [value] } -/** - * @typedef Options Configuration. - * @property {Test} [ignore] `unist-util-is` test used to assert parents - * - * @typedef {import('mdast').Root} Root - * @typedef {import('mdast').Content} Content - * @typedef {import('mdast').PhrasingContent} PhrasingContent - * @typedef {import('mdast').Text} Text - * @typedef {Content|Root} Node - * @typedef {Extract} Parent - * - * @typedef {import('unist-util-visit-parents').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - * - * @typedef RegExpMatchObject - * @property {number} index - * @property {string} input - * - * @typedef {string|RegExp} Find - * @typedef {string|ReplaceFunction} Replace - * - * @typedef {[Find, Replace]} FindAndReplaceTuple - * @typedef {Object.} FindAndReplaceSchema - * @typedef {Array.} FindAndReplaceList - * - * @typedef {[RegExp, ReplaceFunction]} Pair - * @typedef {Array.} Pairs - */ - const own$3 = {}.hasOwnProperty; - -/** - * @param tree mdast tree - * @param find Value to find and remove. When `string`, escaped and made into a global `RegExp` - * @param [replace] Value to insert. - * * When `string`, turned into a Text node. - * * When `Function`, called with the results of calling `RegExp.exec` as - * arguments, in which case it can return a single or a list of `Node`, - * a `string` (which is wrapped in a `Text` node), or `false` to not replace - * @param [options] Configuration. - */ const findAndReplace = - /** - * @type {( - * ((tree: Node, find: Find, replace?: Replace, options?: Options) => Node) & - * ((tree: Node, schema: FindAndReplaceSchema|FindAndReplaceList, options?: Options) => Node) - * )} - **/ ( - /** - * @param {Node} tree - * @param {Find|FindAndReplaceSchema|FindAndReplaceList} find - * @param {Replace|Options} [replace] - * @param {Options} [options] - */ function (tree, find, replace, options) { - /** @type {Options|undefined} */ let settings; - /** @type {FindAndReplaceSchema|FindAndReplaceList} */ let schema; - if (typeof find === 'string' || find instanceof RegExp) { - // @ts-expect-error don’t expect options twice. schema = [[find, replace]]; settings = options; } else { schema = find; - // @ts-expect-error don’t expect replace twice. settings = replace; } - if (!settings) { settings = {}; } - const ignored = convert(settings.ignore || []); const pairs = toPairs(schema); let pairIndex = -1; - while (++pairIndex < pairs.length) { visitParents(tree, 'text', visitor); } - return tree - - /** @type {import('unist-util-visit-parents').Visitor} */ function visitor(node, parents) { let index = -1; - /** @type {Parent|undefined} */ let grandparent; - while (++index < parents.length) { - const parent = /** @type {Parent} */ (parents[index]); - + const parent = (parents[index]); if ( ignored( parent, - // @ts-expect-error mdast vs. unist parent. grandparent ? grandparent.children.indexOf(parent) : undefined, grandparent ) ) { return } - grandparent = parent; } - if (grandparent) { return handler(node, grandparent) } } - - /** - * @param {Text} node - * @param {Parent} parent - * @returns {VisitorResult} - */ function handler(node, parent) { const find = pairs[pairIndex][0]; const replace = pairs[pairIndex][1]; let start = 0; - // @ts-expect-error: TS is wrong, some of these children can be text. let index = parent.children.indexOf(node); - /** @type {Array.} */ let nodes = []; - /** @type {number|undefined} */ let position; - find.lastIndex = 0; - let match = find.exec(node.value); - while (match) { position = match.index; - // @ts-expect-error this is perfectly fine, typescript. let value = replace(...match, { index: match.index, input: match.input }); - if (typeof value === 'string') { value = value.length > 0 ? {type: 'text', value} : undefined; } - if (value !== false) { if (start !== position) { nodes.push({ @@ -16084,23 +10943,18 @@ const findAndReplace = value: node.value.slice(start, position) }); } - if (Array.isArray(value)) { nodes.push(...value); } else if (value) { nodes.push(value); } - start = position + match[0].length; } - if (!find.global) { break } - match = find.exec(node.value); } - if (position === undefined) { nodes = [node]; index--; @@ -16108,30 +10962,19 @@ const findAndReplace = if (start < node.value.length) { nodes.push({type: 'text', value: node.value.slice(start)}); } - parent.children.splice(index, 1, ...nodes); } - return index + nodes.length + 1 } } ); - -/** - * @param {FindAndReplaceSchema|FindAndReplaceList} schema - * @returns {Pairs} - */ function toPairs(schema) { - /** @type {Pairs} */ const result = []; - if (typeof schema !== 'object') { throw new TypeError('Expected array or object as schema') } - if (Array.isArray(schema)) { let index = -1; - while (++index < schema.length) { result.push([ toExpression(schema[index][0]), @@ -16139,50 +10982,24 @@ function toPairs(schema) { ]); } } else { - /** @type {string} */ let key; - for (key in schema) { if (own$3.call(schema, key)) { result.push([toExpression(key), toFunction(schema[key])]); } } } - return result } - -/** - * @param {Find} find - * @returns {RegExp} - */ function toExpression(find) { return typeof find === 'string' ? new RegExp(escapeStringRegexp(find), 'g') : find } - -/** - * @param {Replace} replace - * @returns {ReplaceFunction} - */ function toFunction(replace) { return typeof replace === 'function' ? replace : () => replace } -/** - * @typedef {import('mdast').Link} Link - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-from-markdown').Transform} FromMarkdownTransform - * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle - * @typedef {import('mdast-util-to-markdown/lib/types.js').Options} ToMarkdownExtension - * @typedef {import('mdast-util-find-and-replace').ReplaceFunction} ReplaceFunction - * @typedef {import('mdast-util-find-and-replace').RegExpMatchObject} RegExpMatchObject - * @typedef {import('mdast-util-find-and-replace').PhrasingContent} PhrasingContent - */ - const inConstruct = 'phrasing'; const notInConstruct = ['autolink', 'link', 'image', 'label']; - -/** @type {FromMarkdownExtension} */ const gfmAutolinkLiteralFromMarkdown = { transforms: [transformGfmAutolinkLiterals], enter: { @@ -16198,8 +11015,6 @@ const gfmAutolinkLiteralFromMarkdown = { literalAutolinkWww: exitLiteralAutolinkWww } }; - -/** @type {ToMarkdownExtension} */ const gfmAutolinkLiteralToMarkdown = { unsafe: [ { @@ -16219,40 +11034,26 @@ const gfmAutolinkLiteralToMarkdown = { {character: ':', before: '[ps]', after: '\\/', inConstruct, notInConstruct} ] }; - -/** @type {FromMarkdownHandle} */ function enterLiteralAutolink(token) { this.enter({type: 'link', title: null, url: '', children: []}, token); } - -/** @type {FromMarkdownHandle} */ function enterLiteralAutolinkValue(token) { this.config.enter.autolinkProtocol.call(this, token); } - -/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkHttp(token) { this.config.exit.autolinkProtocol.call(this, token); } - -/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkWww(token) { this.config.exit.data.call(this, token); - const node = /** @type {Link} */ (this.stack[this.stack.length - 1]); + const node = (this.stack[this.stack.length - 1]); node.url = 'http://' + this.sliceSerialize(token); } - -/** @type {FromMarkdownHandle} */ function exitLiteralAutolinkEmail(token) { this.config.exit.autolinkEmail.call(this, token); } - -/** @type {FromMarkdownHandle} */ function exitLiteralAutolink(token) { this.exit(token); } - -/** @type {FromMarkdownTransform} */ function transformGfmAutolinkLiterals(tree) { findAndReplace( tree, @@ -16263,71 +11064,39 @@ function transformGfmAutolinkLiterals(tree) { {ignore: ['link', 'linkReference']} ); } - -/** - * @type {ReplaceFunction} - * @param {string} _ - * @param {string} protocol - * @param {string} domain - * @param {string} path - * @param {RegExpMatchObject} match - */ -// eslint-disable-next-line max-params function findUrl(_, protocol, domain, path, match) { let prefix = ''; - - // Not an expected previous character. if (!previous(match)) { return false } - - // Treat `www` as part of the domain. if (/^w/i.test(protocol)) { domain = protocol + domain; protocol = ''; prefix = 'http://'; } - if (!isCorrectDomain(domain)) { return false } - const parts = splitUrl(domain + path); - if (!parts[0]) return false - - /** @type {PhrasingContent} */ const result = { type: 'link', title: null, url: prefix + protocol + parts[0], children: [{type: 'text', value: protocol + parts[0]}] }; - if (parts[1]) { return [result, {type: 'text', value: parts[1]}] } - return result } - -/** - * @type {ReplaceFunction} - * @param {string} _ - * @param {string} atext - * @param {string} label - * @param {RegExpMatchObject} match - */ function findEmail(_, atext, label, match) { if ( - // Not an expected previous character. !previous(match, true) || - // Label ends in not allowed character. /[_-\d]$/.test(label) ) { return false } - return { type: 'link', title: null, @@ -16335,14 +11104,8 @@ function findEmail(_, atext, label, match) { children: [{type: 'text', value: atext + '@' + label}] } } - -/** - * @param {string} domain - * @returns {boolean} - */ function isCorrectDomain(domain) { const parts = domain.split('.'); - if ( parts.length < 2 || (parts[parts.length - 1] && @@ -16354,32 +11117,20 @@ function isCorrectDomain(domain) { ) { return false } - return true } - -/** - * @param {string} url - * @returns {[string, string|undefined]} - */ function splitUrl(url) { const trailExec = /[!"&'),.:;<>?\]}]+$/.exec(url); - /** @type {number} */ let closingParenIndex; - /** @type {number} */ let openingParens; - /** @type {number} */ let closingParens; - /** @type {string|undefined} */ let trail; - if (trailExec) { url = url.slice(0, trailExec.index); trail = trailExec[0]; closingParenIndex = trail.indexOf(')'); openingParens = ccount(url, '('); closingParens = ccount(url, ')'); - while (closingParenIndex !== -1 && openingParens > closingParens) { url += trail.slice(0, closingParenIndex + 1); trail = trail.slice(closingParenIndex + 1); @@ -16387,18 +11138,10 @@ function splitUrl(url) { closingParens++; } } - return [url, trail] } - -/** - * @param {RegExpMatchObject} match - * @param {boolean} [email=false] - * @returns {boolean} - */ function previous(match, email) { const code = match.input.charCodeAt(match.index - 1); - return ( (match.index === 0 || unicodeWhitespace(code) || @@ -16407,22 +11150,6 @@ function previous(match, email) { ) } -/** - * @typedef {import('mdast').FootnoteReference} FootnoteReference - * @typedef {import('mdast').FootnoteDefinition} FootnoteDefinition - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension - * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Map} Map - */ - -let warningColonInFootnote = false; -let warningListInFootnote = false; - -/** - * @returns {FromMarkdownExtension} - */ function gfmFootnoteFromMarkdown() { return { enter: { @@ -16438,24 +11165,18 @@ function gfmFootnoteFromMarkdown() { gfmFootnoteCallString: exitFootnoteCallString } } - - /** @type {FromMarkdownHandle} */ function enterFootnoteDefinition(token) { this.enter( {type: 'footnoteDefinition', identifier: '', label: '', children: []}, token ); } - - /** @type {FromMarkdownHandle} */ function enterFootnoteDefinitionLabelString() { this.buffer(); } - - /** @type {FromMarkdownHandle} */ function exitFootnoteDefinitionLabelString(token) { const label = this.resume(); - const node = /** @type {FootnoteDefinition} */ ( + const node = ( this.stack[this.stack.length - 1] ); node.label = label; @@ -16463,26 +11184,18 @@ function gfmFootnoteFromMarkdown() { this.sliceSerialize(token) ).toLowerCase(); } - - /** @type {FromMarkdownHandle} */ function exitFootnoteDefinition(token) { this.exit(token); } - - /** @type {FromMarkdownHandle} */ function enterFootnoteCall(token) { this.enter({type: 'footnoteReference', identifier: '', label: ''}, token); } - - /** @type {FromMarkdownHandle} */ function enterFootnoteCallString() { this.buffer(); } - - /** @type {FromMarkdownHandle} */ function exitFootnoteCallString(token) { const label = this.resume(); - const node = /** @type {FootnoteDefinition} */ ( + const node = ( this.stack[this.stack.length - 1] ); node.label = label; @@ -16490,209 +11203,121 @@ function gfmFootnoteFromMarkdown() { this.sliceSerialize(token) ).toLowerCase(); } - - /** @type {FromMarkdownHandle} */ function exitFootnoteCall(token) { this.exit(token); } } - -/** - * @returns {ToMarkdownExtension} - */ function gfmFootnoteToMarkdown() { footnoteReference.peek = footnoteReferencePeek; - return { - // This is on by default already. unsafe: [{character: '[', inConstruct: ['phrasing', 'label', 'reference']}], handlers: {footnoteDefinition, footnoteReference} } - - /** - * @type {ToMarkdownHandle} - * @param {FootnoteReference} node - */ - function footnoteReference(node, _, context) { + function footnoteReference(node, _, context, safeOptions) { + const tracker = track(safeOptions); + let value = tracker.move('[^'); const exit = context.enter('footnoteReference'); const subexit = context.enter('reference'); - const reference = safe(context, association(node), { - before: '^', - after: ']' - }); + value += tracker.move( + safe(context, association(node), { + ...tracker.current(), + before: value, + after: ']' + }) + ); subexit(); exit(); - return '[^' + reference + ']' + value += tracker.move(']'); + return value } - - /** @type {ToMarkdownHandle} */ function footnoteReferencePeek() { return '[' } - - /** - * @type {ToMarkdownHandle} - * @param {FootnoteDefinition} node - */ - function footnoteDefinition(node, _, context) { + function footnoteDefinition(node, _, context, safeOptions) { + const tracker = track(safeOptions); + let value = tracker.move('[^'); const exit = context.enter('footnoteDefinition'); const subexit = context.enter('label'); - const id = safe(context, association(node), {before: '^', after: ']'}); - const label = '[^' + id + ']:'; + value += tracker.move( + safe(context, association(node), { + ...tracker.current(), + before: value, + after: ']' + }) + ); subexit(); - const value = indentLines(containerFlow(node, context), map); + value += tracker.move( + ']:' + (node.children && node.children.length > 0 ? ' ' : '') + ); + tracker.shift(4); + value += tracker.move( + indentLines(containerFlow(node, context, tracker.current()), map) + ); exit(); - - if (!warningColonInFootnote && id.includes(':')) { - console.warn( - '[mdast-util-gfm-footnote] Warning: Found a colon in footnote identifier `' + - id + - '`. GitHub currently crahes on colons in footnotes (see for more info)' - ); - warningColonInFootnote = true; - } - - if (!warningListInFootnote) { - visit$1(node, 'list', () => { - console.warn( - '[mdast-util-gfm-footnote] Warning: Found a list in a footnote definition. GitHub currently crahes on lists in footnotes (see for more info)' - ); - warningListInFootnote = true; - return EXIT$1 - }); - } - return value - - /** @type {Map} */ function map(line, index, blank) { if (index) { return (blank ? '' : ' ') + line } - - return (blank ? label : label + ' ') + line + return line } } } -/** - * @typedef {import('mdast').Delete} Delete - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension - * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle - */ - -/** @type {FromMarkdownExtension} */ const gfmStrikethroughFromMarkdown = { canContainEols: ['delete'], enter: {strikethrough: enterStrikethrough}, exit: {strikethrough: exitStrikethrough} }; - -/** @type {ToMarkdownExtension} */ const gfmStrikethroughToMarkdown = { unsafe: [{character: '~', inConstruct: 'phrasing'}], handlers: {delete: handleDelete} }; - handleDelete.peek = peekDelete; - -/** @type {FromMarkdownHandle} */ function enterStrikethrough(token) { this.enter({type: 'delete', children: []}, token); } - -/** @type {FromMarkdownHandle} */ function exitStrikethrough(token) { this.exit(token); } - -/** - * @type {ToMarkdownHandle} - * @param {Delete} node - */ -function handleDelete(node, _, context) { +function handleDelete(node, _, context, safeOptions) { + const tracker = track(safeOptions); const exit = context.enter('emphasis'); - const value = containerPhrasing(node, context, {before: '~', after: '~'}); + let value = tracker.move('~~'); + value += containerPhrasing(node, context, { + ...tracker.current(), + before: value, + after: '~' + }); + value += tracker.move('~~'); exit(); - return '~~' + value + '~~' + return value } - -/** @type {ToMarkdownHandle} */ function peekDelete() { return '~' } -/** - * @typedef MarkdownTableOptions - * @property {string|null|Array.} [align] - * @property {boolean} [padding=true] - * @property {boolean} [delimiterStart=true] - * @property {boolean} [delimiterStart=true] - * @property {boolean} [delimiterEnd=true] - * @property {boolean} [alignDelimiters=true] - * @property {(value: string) => number} [stringLength] - */ - -/** - * Create a table from a matrix of strings. - * - * @param {Array.>} table - * @param {MarkdownTableOptions} [options] - * @returns {string} - */ -function markdownTable(table, options) { - const settings = options || {}; - const align = (settings.align || []).concat(); - const stringLength = settings.stringLength || defaultStringLength; - /** @type {number[]} Character codes as symbols for alignment per column. */ +function markdownTable(table, options = {}) { + const align = (options.align || []).concat(); + const stringLength = options.stringLength || defaultStringLength; const alignments = []; - let rowIndex = -1; - /** @type {string[][]} Cells per row. */ const cellMatrix = []; - /** @type {number[][]} Sizes of each cell per row. */ const sizeMatrix = []; - /** @type {number[]} */ const longestCellByColumn = []; let mostCellsPerRow = 0; - /** @type {number} */ - let columnIndex; - /** @type {string[]} Cells of current row */ - let row; - /** @type {number[]} Sizes of current row */ - let sizes; - /** @type {number} Sizes of current cell */ - let size; - /** @type {string} Current cell */ - let cell; - /** @type {string[]} Chunks of current line. */ - let line; - /** @type {string} */ - let before; - /** @type {string} */ - let after; - /** @type {number} */ - let code; - - // This is a superfluous loop if we don’t align delimiters, but otherwise we’d - // do superfluous work when aligning, so optimize for aligning. + let rowIndex = -1; while (++rowIndex < table.length) { - columnIndex = -1; - row = []; - sizes = []; - + const row = []; + const sizes = []; + let columnIndex = -1; if (table[rowIndex].length > mostCellsPerRow) { mostCellsPerRow = table[rowIndex].length; } - while (++columnIndex < table[rowIndex].length) { - cell = serialize(table[rowIndex][columnIndex]); - - if (settings.alignDelimiters !== false) { - size = stringLength(cell); + const cell = serialize(table[rowIndex][columnIndex]); + if (options.alignDelimiters !== false) { + const size = stringLength(cell); sizes[columnIndex] = size; - if ( longestCellByColumn[columnIndex] === undefined || size > longestCellByColumn[columnIndex] @@ -16700,98 +11325,74 @@ function markdownTable(table, options) { longestCellByColumn[columnIndex] = size; } } - row.push(cell); } - cellMatrix[rowIndex] = row; sizeMatrix[rowIndex] = sizes; } - - // Figure out which alignments to use. - columnIndex = -1; - + let columnIndex = -1; if (typeof align === 'object' && 'length' in align) { while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = toAlignment(align[columnIndex]); } } else { - code = toAlignment(align); - + const code = toAlignment(align); while (++columnIndex < mostCellsPerRow) { alignments[columnIndex] = code; } } - - // Inject the alignment row. columnIndex = -1; - row = []; - sizes = []; - + const row = []; + const sizes = []; while (++columnIndex < mostCellsPerRow) { - code = alignments[columnIndex]; - before = ''; - after = ''; - - if (code === 99 /* `c` */) { + const code = alignments[columnIndex]; + let before = ''; + let after = ''; + if (code === 99 ) { before = ':'; after = ':'; - } else if (code === 108 /* `l` */) { + } else if (code === 108 ) { before = ':'; - } else if (code === 114 /* `r` */) { + } else if (code === 114 ) { after = ':'; } - - // There *must* be at least one hyphen-minus in each alignment cell. - size = - settings.alignDelimiters === false + let size = + options.alignDelimiters === false ? 1 : Math.max( 1, longestCellByColumn[columnIndex] - before.length - after.length ); - - cell = before + '-'.repeat(size) + after; - - if (settings.alignDelimiters !== false) { + const cell = before + '-'.repeat(size) + after; + if (options.alignDelimiters !== false) { size = before.length + size + after.length; - if (size > longestCellByColumn[columnIndex]) { longestCellByColumn[columnIndex] = size; } - sizes[columnIndex] = size; } - row[columnIndex] = cell; } - - // Inject the alignment row. cellMatrix.splice(1, 0, row); sizeMatrix.splice(1, 0, sizes); - rowIndex = -1; - /** @type {string[]} */ const lines = []; - while (++rowIndex < cellMatrix.length) { - row = cellMatrix[rowIndex]; - sizes = sizeMatrix[rowIndex]; + const row = cellMatrix[rowIndex]; + const sizes = sizeMatrix[rowIndex]; columnIndex = -1; - line = []; - + const line = []; while (++columnIndex < mostCellsPerRow) { - cell = row[columnIndex] || ''; - before = ''; - after = ''; - - if (settings.alignDelimiters !== false) { - size = longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); - code = alignments[columnIndex]; - - if (code === 114 /* `r` */) { + const cell = row[columnIndex] || ''; + let before = ''; + let after = ''; + if (options.alignDelimiters !== false) { + const size = + longestCellByColumn[columnIndex] - (sizes[columnIndex] || 0); + const code = alignments[columnIndex]; + if (code === 114 ) { before = ' '.repeat(size); - } else if (code === 99 /* `c` */) { + } else if (code === 99 ) { if (size % 2) { before = ' '.repeat(size / 2 + 0.5); after = ' '.repeat(size / 2 - 0.5); @@ -16803,105 +11404,58 @@ function markdownTable(table, options) { after = ' '.repeat(size); } } - - if (settings.delimiterStart !== false && !columnIndex) { + if (options.delimiterStart !== false && !columnIndex) { line.push('|'); } - if ( - settings.padding !== false && - // Don’t add the opening space if we’re not aligning and the cell is - // empty: there will be a closing space. - !(settings.alignDelimiters === false && cell === '') && - (settings.delimiterStart !== false || columnIndex) + options.padding !== false && + !(options.alignDelimiters === false && cell === '') && + (options.delimiterStart !== false || columnIndex) ) { line.push(' '); } - - if (settings.alignDelimiters !== false) { + if (options.alignDelimiters !== false) { line.push(before); } - line.push(cell); - - if (settings.alignDelimiters !== false) { + if (options.alignDelimiters !== false) { line.push(after); } - - if (settings.padding !== false) { + if (options.padding !== false) { line.push(' '); } - if ( - settings.delimiterEnd !== false || + options.delimiterEnd !== false || columnIndex !== mostCellsPerRow - 1 ) { line.push('|'); } } - lines.push( - settings.delimiterEnd === false + options.delimiterEnd === false ? line.join('').replace(/ +$/, '') : line.join('') ); } - return lines.join('\n') } - -/** - * @param {string|null|undefined} [value] - * @returns {string} - */ function serialize(value) { return value === null || value === undefined ? '' : String(value) } - -/** - * @param {string} value - * @returns {number} - */ function defaultStringLength(value) { return value.length } - -/** - * @param {string|null|undefined} value - * @returns {number} - */ function toAlignment(value) { - const code = typeof value === 'string' ? value.charCodeAt(0) : 0; - - return code === 67 /* `C` */ || code === 99 /* `c` */ - ? 99 /* `c` */ - : code === 76 /* `L` */ || code === 108 /* `l` */ - ? 108 /* `l` */ - : code === 82 /* `R` */ || code === 114 /* `r` */ - ? 114 /* `r` */ + const code = typeof value === 'string' ? value.codePointAt(0) : 0; + return code === 67 || code === 99 + ? 99 + : code === 76 || code === 108 + ? 108 + : code === 82 || code === 114 + ? 114 : 0 } -/** - * @typedef {import('mdast').AlignType} AlignType - * @typedef {import('mdast').Table} Table - * @typedef {import('mdast').TableRow} TableRow - * @typedef {import('mdast').TableCell} TableCell - * @typedef {import('mdast').InlineCode} InlineCode - * @typedef {import('markdown-table').MarkdownTableOptions} MarkdownTableOptions - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension - * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Context} ToMarkdownContext - * - * @typedef Options - * @property {boolean} [tableCellPadding=true] - * @property {boolean} [tablePipeAlign=true] - * @property {MarkdownTableOptions['stringLength']} [stringLength] - */ - -/** @type {FromMarkdownExtension} */ const gfmTableFromMarkdown = { enter: { table: enterTable, @@ -16917,90 +11471,56 @@ const gfmTableFromMarkdown = { tableRow: exit } }; - -/** @type {FromMarkdownHandle} */ function enterTable(token) { - /** @type {AlignType[]} */ - // @ts-expect-error: `align` is custom. const align = token._align; - this.enter({type: 'table', align, children: []}, token); + this.enter( + { + type: 'table', + align: align.map((d) => (d === 'none' ? null : d)), + children: [] + }, + token + ); this.setData('inTable', true); } - -/** @type {FromMarkdownHandle} */ function exitTable(token) { this.exit(token); this.setData('inTable'); } - -/** @type {FromMarkdownHandle} */ function enterRow(token) { this.enter({type: 'tableRow', children: []}, token); } - -/** @type {FromMarkdownHandle} */ function exit(token) { this.exit(token); } - -/** @type {FromMarkdownHandle} */ function enterCell(token) { this.enter({type: 'tableCell', children: []}, token); } - -// Overwrite the default code text data handler to unescape escaped pipes when -// they are in tables. -/** @type {FromMarkdownHandle} */ function exitCodeText(token) { let value = this.resume(); - if (this.getData('inTable')) { value = value.replace(/\\([\\|])/g, replace); } - - const node = /** @type {InlineCode} */ (this.stack[this.stack.length - 1]); + const node = (this.stack[this.stack.length - 1]); node.value = value; this.exit(token); } - -/** - * @param {string} $0 - * @param {string} $1 - * @returns {string} - */ function replace($0, $1) { - // Pipes work, backslashes don’t (but can’t escape pipes). return $1 === '|' ? $1 : $0 } - -/** - * @param {Options} [options] - * @returns {ToMarkdownExtension} - */ function gfmTableToMarkdown(options) { const settings = options || {}; const padding = settings.tableCellPadding; const alignDelimiters = settings.tablePipeAlign; const stringLength = settings.stringLength; const around = padding ? ' ' : '|'; - return { unsafe: [ {character: '\r', inConstruct: 'tableCell'}, {character: '\n', inConstruct: 'tableCell'}, - // A pipe, when followed by a tab or space (padding), or a dash or colon - // (unpadded delimiter row), could result in a table. {atBreak: true, character: '|', after: '[\t :-]'}, - // A pipe in a cell must be encoded. {character: '|', inConstruct: 'tableCell'}, - // A colon must be followed by a dash, in which case it could start a - // delimiter row. {atBreak: true, character: ':', after: '-'}, - // A delimiter row can also start with a dash, when followed by more - // dashes, a colon, or a pipe. - // This is a stricter version than the built in check for lists, thematic - // breaks, and setex heading underlines though: - // {atBreak: true, character: '-', after: '[:|-]'} ], handlers: { @@ -17010,39 +11530,22 @@ function gfmTableToMarkdown(options) { inlineCode: inlineCodeWithTable } } - - /** - * @type {ToMarkdownHandle} - * @param {Table} node - */ - function handleTable(node, _, context) { - // @ts-expect-error: fixed in `markdown-table@3.0.1`. - return serializeData(handleTableAsData(node, context), node.align) + function handleTable(node, _, context, safeOptions) { + return serializeData( + handleTableAsData(node, context, safeOptions), + node.align + ) } - - /** - * This function isn’t really used normally, because we handle rows at the - * table level. - * But, if someone passes in a table row, this ensures we make somewhat sense. - * - * @type {ToMarkdownHandle} - * @param {TableRow} node - */ - function handleTableRow(node, _, context) { - const row = handleTableRowAsData(node, context); - // `markdown-table` will always add an align row + function handleTableRow(node, _, context, safeOptions) { + const row = handleTableRowAsData(node, context, safeOptions); const value = serializeData([row]); return value.slice(0, value.indexOf('\n')) } - - /** - * @type {ToMarkdownHandle} - * @param {TableCell} node - */ - function handleTableCell(node, _, context) { + function handleTableCell(node, _, context, safeOptions) { const exit = context.enter('tableCell'); const subexit = context.enter('phrasing'); const value = containerPhrasing(node, context, { + ...safeOptions, before: around, after: around }); @@ -17050,11 +11553,6 @@ function gfmTableToMarkdown(options) { exit(); return value } - - /** - * @param {Array.>} matrix - * @param {Array.} [align] - */ function serializeData(matrix, align) { return markdownTable(matrix, { align, @@ -17063,73 +11561,46 @@ function gfmTableToMarkdown(options) { stringLength }) } - - /** - * @param {Table} node - * @param {ToMarkdownContext} context - */ - function handleTableAsData(node, context) { + function handleTableAsData(node, context, safeOptions) { const children = node.children; let index = -1; - /** @type {Array.>} */ const result = []; const subexit = context.enter('table'); - while (++index < children.length) { - result[index] = handleTableRowAsData(children[index], context); + result[index] = handleTableRowAsData( + children[index], + context, + safeOptions + ); } - subexit(); - return result } - - /** - * @param {TableRow} node - * @param {ToMarkdownContext} context - */ - function handleTableRowAsData(node, context) { + function handleTableRowAsData(node, context, safeOptions) { const children = node.children; let index = -1; - /** @type {Array.} */ const result = []; const subexit = context.enter('tableRow'); - while (++index < children.length) { - result[index] = handleTableCell(children[index], node, context); + result[index] = handleTableCell( + children[index], + node, + context, + safeOptions + ); } - subexit(); - return result } - - /** - * @type {ToMarkdownHandle} - * @param {InlineCode} node - */ function inlineCodeWithTable(node, parent, context) { let value = inlineCode(node, parent, context); - if (context.stack.includes('tableCell')) { value = value.replace(/\|/g, '\\$&'); } - return value } } -/** - * @typedef {import('mdast').ListItem} ListItem - * @typedef {import('mdast').Paragraph} Paragraph - * @typedef {import('mdast').BlockContent} BlockContent - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-from-markdown').Handle} FromMarkdownHandle - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension - * @typedef {import('mdast-util-to-markdown').Handle} ToMarkdownHandle - */ - -/** @type {FromMarkdownExtension} */ const gfmTaskListItemFromMarkdown = { exit: { taskListCheckValueChecked: exitCheck, @@ -17137,34 +11608,21 @@ const gfmTaskListItemFromMarkdown = { paragraph: exitParagraphWithTaskListItem } }; - -/** @type {ToMarkdownExtension} */ const gfmTaskListItemToMarkdown = { unsafe: [{atBreak: true, character: '-', after: '[:|-]'}], handlers: {listItem: listItemWithTaskListItem} }; - -/** @type {FromMarkdownHandle} */ function exitCheck(token) { - // We’re always in a paragraph, in a list item. - this.stack[this.stack.length - 2].checked = - token.type === 'taskListCheckValueChecked'; + const node = (this.stack[this.stack.length - 2]); + node.checked = token.type === 'taskListCheckValueChecked'; } - -/** @type {FromMarkdownHandle} */ function exitParagraphWithTaskListItem(token) { - const parent = this.stack[this.stack.length - 2]; - /** @type {Paragraph} */ - // @ts-expect-error: must be true. - const node = this.stack[this.stack.length - 1]; - /** @type {BlockContent[]} */ - // @ts-expect-error: check whether `parent` is a `listItem` later. + const parent = (this.stack[this.stack.length - 2]); + const node = (this.stack[this.stack.length - 1]); const siblings = parent.children; const head = node.children[0]; let index = -1; - /** @type {Paragraph|undefined} */ let firstParaghraph; - if ( parent && parent.type === 'listItem' && @@ -17179,60 +11637,45 @@ function exitParagraphWithTaskListItem(token) { break } } - if (firstParaghraph === node) { - // Must start with a space or a tab. head.value = head.value.slice(1); - if (head.value.length === 0) { node.children.shift(); - } else { - // @ts-expect-error: must be true. + } else if ( + node.position && + head.position && + typeof head.position.start.offset === 'number' + ) { head.position.start.column++; - // @ts-expect-error: must be true. head.position.start.offset++; - // @ts-expect-error: must be true. node.position.start = Object.assign({}, head.position.start); } } } - this.exit(token); } - -/** - * @type {ToMarkdownHandle} - * @param {ListItem} node - */ -function listItemWithTaskListItem(node, parent, context) { +function listItemWithTaskListItem(node, parent, context, safeOptions) { const head = node.children[0]; - let value = listItem(node, parent, context); - - if (typeof node.checked === 'boolean' && head && head.type === 'paragraph') { + const checkable = + typeof node.checked === 'boolean' && head && head.type === 'paragraph'; + const checkbox = '[' + (node.checked ? 'x' : ' ') + '] '; + const tracker = track(safeOptions); + if (checkable) { + tracker.move(checkbox); + } + let value = listItem(node, parent, context, { + ...safeOptions, + ...tracker.current() + }); + if (checkable) { value = value.replace(/^(?:[*+-]|\d+\.)([\r\n]| {1,3})/, check); } - return value - - /** - * @param {string} $0 - * @returns {string} - */ function check($0) { - return $0 + '[' + (node.checked ? 'x' : ' ') + '] ' + return $0 + checkbox } } -/** - * @typedef {import('mdast-util-from-markdown').Extension} FromMarkdownExtension - * @typedef {import('mdast-util-to-markdown').Options} ToMarkdownExtension - * - * @typedef {import('mdast-util-gfm-table').Options} Options - */ - -/** - * @returns {Array.} - */ function gfmFromMarkdown() { return [ gfmAutolinkLiteralFromMarkdown, @@ -17242,11 +11685,6 @@ function gfmFromMarkdown() { gfmTaskListItemFromMarkdown ] } - -/** - * @param {Options} [options] - * @returns {ToMarkdownExtension} - */ function gfmToMarkdown(options) { return { extensions: [ @@ -17259,77 +11697,30 @@ function gfmToMarkdown(options) { } } -/** - * @typedef {import('mdast').Root} Root - * @typedef {import('micromark-extension-gfm').Options & import('mdast-util-gfm').Options} Options - */ - -/** - * Plugin to support GitHub Flavored Markdown (GFM). - * - * @type {import('unified').Plugin<[Options?]|void[], Root>} - */ function remarkGfm(options = {}) { const data = this.data(); - add('micromarkExtensions', gfm(options)); add('fromMarkdownExtensions', gfmFromMarkdown()); add('toMarkdownExtensions', gfmToMarkdown(options)); - - /** - * @param {string} field - * @param {unknown} value - */ function add(field, value) { - const list = /** @type {unknown[]} */ ( - // Other extensions - /* c8 ignore next 2 */ + const list = ( data[field] ? data[field] : (data[field] = []) ); - list.push(value); } } -/** - * @typedef {import('unist').Point} Point - * @typedef {import('vfile').VFile} VFile - * - * @typedef {Pick} PositionalPoint - * @typedef {Required} FullPoint - * @typedef {NonNullable} Offset - */ - -/** - * Get transform functions for the given `document`. - * - * @param {string|Uint8Array|VFile} file - */ function location(file) { var value = String(file); - /** @type {Array.} */ var indices = []; var search = /\r?\n|\r/g; - while (search.test(value)) { indices.push(search.lastIndex); } - indices.push(value.length + 1); - return {toPoint, toOffset} - - /** - * Get the line and column-based `point` for `offset` in the bound indices. - * Returns a point with `undefined` values when given invalid or out of bounds - * input. - * - * @param {Offset} offset - * @returns {FullPoint} - */ function toPoint(offset) { var index = -1; - if (offset > -1 && offset < indices[indices.length - 1]) { while (++index < indices.length) { if (indices[index] > offset) { @@ -17341,23 +11732,12 @@ function location(file) { } } } - return {line: undefined, column: undefined, offset: undefined} } - - /** - * Get the `offset` for a line and column-based `point` in the bound indices. - * Returns `-1` when given invalid or out of bounds input. - * - * @param {PositionalPoint} point - * @returns {Offset} - */ function toOffset(point) { var line = point && point.line; var column = point && point.column; - /** @type {number} */ var offset; - if ( typeof line === 'number' && typeof column === 'number' && @@ -17367,48 +11747,19 @@ function location(file) { ) { offset = (indices[line - 2] || 0) + column - 1 || 0; } - return offset > -1 && offset < indices[indices.length - 1] ? offset : -1 } } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('unist-util-visit-parents').VisitorResult} VisitorResult - */ - const visit = - /** - * @type {( - * ((tree: Node, test: T['type']|Partial|import('unist-util-is').TestFunctionPredicate|Array.|import('unist-util-is').TestFunctionPredicate>, visitor: Visitor, reverse?: boolean) => void) & - * ((tree: Node, test: Test, visitor: Visitor, reverse?: boolean) => void) & - * ((tree: Node, visitor: Visitor, reverse?: boolean) => void) - * )} - */ ( - /** - * Visit children of tree which pass a test - * - * @param {Node} tree Abstract syntax tree to walk - * @param {Test} test test Test node - * @param {Visitor} visitor Function to run for each node - * @param {boolean} [reverse] Fisit the tree in reverse, defaults to false - */ function (tree, test, visitor, reverse) { if (typeof test === 'function' && typeof visitor !== 'function') { reverse = visitor; visitor = test; test = null; } - visitParents(tree, test, overload, reverse); - - /** - * @param {Node} node - * @param {Array.} parents - */ function overload(node, parents) { var parent = parents[parents.length - 1]; return visitor( @@ -17420,98 +11771,18 @@ const visit = } ); -/** - * @typedef {import('unist').Node} Node - * @typedef {import('unist').Parent} Parent - * @typedef {import('unist').Point} Point - * @typedef {import('unist-util-is').Test} Test - * @typedef {import('vfile').VFile} VFile - * @typedef {import('vfile-message').VFileMessage} VFileMessage - * - * @typedef {OptionsWithoutReset|OptionsWithReset} Options - * @typedef {OptionsBaseFields & OptionsWithoutResetFields} OptionsWithoutReset - * @typedef {OptionsBaseFields & OptionsWithResetFields} OptionsWithReset - * - * @typedef OptionsWithoutResetFields - * @property {false} [reset] - * Whether to treat all messages as turned off initially. - * @property {string[]} [disable] - * List of `ruleId`s to turn off. - * - * @typedef OptionsWithResetFields - * @property {true} reset - * Whether to treat all messages as turned off initially. - * @property {string[]} [enable] - * List of `ruleId`s to initially turn on. - * - * @typedef OptionsBaseFields - * @property {string} name - * Name of markers that can control the message sources. - * - * For example, `{name: 'alpha'}` controls `alpha` markers: - * - * ```html - * - * ``` - * @property {MarkerParser} marker - * Parse a possible marker to a comment marker object (Marker). - * If the marker isn't a marker, should return `null`. - * @property {Test} [test] - * Test for possible markers - * @property {string[]} [known] - * List of allowed `ruleId`s. When given a warning is shown - * when someone tries to control an unknown rule. - * - * For example, `{name: 'alpha', known: ['bravo']}` results in a warning if - * `charlie` is configured: - * - * ```html - * - * ``` - * @property {string|string[]} [source] - * Sources that can be controlled with `name` markers. - * Defaults to `name`. - * - * @callback MarkerParser - * Parse a possible comment marker node to a Marker. - * @param {Node} node - * Node to parse - * - * @typedef Marker - * A comment marker. - * @property {string} name - * Name of marker. - * @property {string} attributes - * Value after name. - * @property {Record} parameters - * Parsed attributes. - * @property {Node} node - * Reference to given node. - * - * @typedef Mark - * @property {Point|undefined} point - * @property {boolean} state - */ - const own$2 = {}.hasOwnProperty; - -/** - * @type {import('unified').Plugin<[Options]>} - * @returns {(tree: Node, file: VFile) => void} - */ function messageControl(options) { if (!options || typeof options !== 'object' || !options.name) { throw new Error( 'Expected `name` in `options`, got `' + (options || {}).name + '`' ) } - if (!options.marker) { throw new Error( 'Expected `marker` in `options`, got `' + options.marker + '`' ) } - const enable = 'enable' in options && options.enable ? options.enable : []; const disable = 'disable' in options && options.disable ? options.disable : []; let reset = options.reset; @@ -17519,39 +11790,20 @@ function messageControl(options) { typeof options.source === 'string' ? [options.source] : options.source || [options.name]; - return transformer - - /** - * @param {Node} tree - * @param {VFile} file - */ function transformer(tree, file) { const toOffset = location(file).toOffset; const initial = !reset; const gaps = detectGaps(tree, file); - /** @type {Record} */ const scope = {}; - /** @type {Mark[]} */ const globals = []; - visit(tree, options.test, visitor); - file.messages = file.messages.filter((m) => filter(m)); - - /** - * @param {Node} node - * @param {number|null} position - * @param {Parent|null} parent - */ function visitor(node, position, parent) { - /** @type {Marker|null} */ const mark = options.marker(node); - if (!mark || mark.name !== options.name) { return } - const ruleIds = mark.attributes.split(/\s/g); const point = mark.node.position && mark.node.position.start; const next = @@ -17559,11 +11811,7 @@ function messageControl(options) { undefined; const tail = (next && next.position && next.position.end) || undefined; let index = -1; - - /** @type {string} */ - // @ts-expect-error: we’ll check for unknown values next. const verb = ruleIds.shift(); - if (verb !== 'enable' && verb !== 'disable' && verb !== 'ignore') { file.fail( 'Unknown keyword `' + @@ -17573,15 +11821,11 @@ function messageControl(options) { mark.node ); } - - // Apply to all rules. if (ruleIds.length > 0) { while (++index < ruleIds.length) { const ruleId = ruleIds[index]; - if (isKnown(ruleId, verb, mark.node)) { toggle(point, verb === 'enable', ruleId); - if (verb === 'ignore') { toggle(tail, true, ruleId); } @@ -17595,112 +11839,59 @@ function messageControl(options) { reset = verb !== 'enable'; } } - - /** - * @param {VFileMessage} message - * @returns {boolean} - */ function filter(message) { let gapIndex = gaps.length; - - // Keep messages from a different source. if (!message.source || !sources.includes(message.source)) { return true } - - // We only ignore messages if they‘re disabled, *not* when they’re not in - // the document. if (!message.line) { message.line = 1; } - if (!message.column) { message.column = 1; } - - // Check whether the warning is inside a gap. - // @ts-expect-error: we just normalized `null` to `number`s. const offset = toOffset(message); - while (gapIndex--) { if (gaps[gapIndex][0] <= offset && gaps[gapIndex][1] > offset) { return false } } - - // Check whether allowed by specific and global states. return ( (!message.ruleId || check(message, scope[message.ruleId], message.ruleId)) && check(message, globals) ) } - - /** - * Helper to check (and possibly warn) if a `ruleId` is unknown. - * - * @param {string} ruleId - * @param {string} verb - * @param {Node} node - * @returns {boolean} - */ function isKnown(ruleId, verb, node) { const result = options.known ? options.known.includes(ruleId) : true; - if (!result) { file.message( 'Unknown rule: cannot ' + verb + " `'" + ruleId + "'`", node ); } - return result } - - /** - * Get the latest state of a rule. - * When without `ruleId`, gets global state. - * - * @param {string|undefined} ruleId - * @returns {boolean} - */ function getState(ruleId) { const ranges = ruleId ? scope[ruleId] : globals; - if (ranges && ranges.length > 0) { return ranges[ranges.length - 1].state } - if (!ruleId) { return !reset } - return reset ? enable.includes(ruleId) : !disable.includes(ruleId) } - - /** - * Handle a rule. - * - * @param {Point|undefined} point - * @param {boolean} state - * @param {string|undefined} [ruleId] - * @returns {void} - */ function toggle(point, state, ruleId) { let markers = ruleId ? scope[ruleId] : globals; - if (!markers) { markers = []; scope[String(ruleId)] = markers; } - const previousState = getState(ruleId); - if (state !== previousState) { markers.push({state, point}); } - - // Toggle all known rules. if (!ruleId) { for (ruleId in scope) { if (own$2.call(scope, ruleId)) { @@ -17709,23 +11900,11 @@ function messageControl(options) { } } } - - /** - * Check all `ranges` for `message`. - * - * @param {VFileMessage} message - * @param {Mark[]|undefined} ranges - * @param {string|undefined} [ruleId] - * @returns {boolean} - */ function check(message, ranges, ruleId) { if (ranges && ranges.length > 0) { - // Check the state at the message’s position. let index = ranges.length; - while (index--) { const range = ranges[index]; - if ( message.line && message.column && @@ -17740,42 +11919,20 @@ function messageControl(options) { } } } - - // The first marker ocurred after the first message, so we check the - // initial state. if (!ruleId) { return Boolean(initial || reset) } - return reset ? enable.includes(ruleId) : !disable.includes(ruleId) } } } - -/** - * Detect gaps in `tree`. - * - * @param {Node} tree - * @param {VFile} file - */ function detectGaps(tree, file) { - /** @type {Node[]} */ - // @ts-expect-error: fine. const children = tree.children || []; const lastNode = children[children.length - 1]; - /** @type {[number, number][]} */ const gaps = []; let offset = 0; - /** @type {boolean|undefined} */ let gap; - - // Find all gaps. visit(tree, one); - - // Get the end of the document. - // This detects if the last node was the last node. - // If not, there’s an extra gap between the last node and the end of the - // document. if ( lastNode && lastNode.position && @@ -17784,7 +11941,6 @@ function detectGaps(tree, file) { file.toString().slice(offset).trim() !== '' ) { update(); - update( tree && tree.position && @@ -17793,26 +11949,13 @@ function detectGaps(tree, file) { tree.position.end.offset - 1 ); } - return gaps - - /** - * @param {Node} node - */ function one(node) { update(node.position && node.position.start && node.position.start.offset); - if (!('children' in node)) { update(node.position && node.position.end && node.position.end.offset); } } - - /** - * Detect a new position. - * - * @param {number|undefined} [latest] - * @returns {void} - */ function update(latest) { if (latest === null || latest === undefined) { gap = true; @@ -17821,33 +11964,11 @@ function detectGaps(tree, file) { gaps.push([offset, latest]); gap = undefined; } - offset = latest; } } } -/** - * @typedef {string|number|boolean} MarkerParameterValue - * @typedef {import('mdast').Root} Root - * @typedef {import('mdast').Content} Content - * @typedef {import('mdast').HTML} HTML - * @typedef {import('mdast-util-mdx-expression').MDXFlowExpression} MDXFlowExpression - * @typedef {import('mdast-util-mdx-expression').MDXTextExpression} MDXTextExpression - * @typedef {Root|Content} Node - * @typedef {Object.} MarkerParameters - * - * @typedef Mdx1CommentNode - * @property {'comment'} type - * @property {string} value - * - * @typedef Marker - * @property {string} name - * @property {string} attributes - * @property {MarkerParameters|null} parameters - * @property {HTML|Mdx1CommentNode|MDXFlowExpression|MDXTextExpression} node - */ - const commentExpression = /\s*([a-zA-Z\d-]+)(\s+([\s\S]*))?\s*/; const esCommentExpression = new RegExp( '(\\s*\\/\\*' + commentExpression.source + '\\*\\/\\s*)' @@ -17855,28 +11976,17 @@ const esCommentExpression = new RegExp( const markerExpression = new RegExp( '(\\s*\\s*)' ); - -/** - * Parse a comment marker. - * @param {unknown} value - * @returns {Marker|null} - */ function commentMarker(value) { if ( isNode(value) && (value.type === 'html' || - // @ts-expect-error: MDX@1 value.type === 'comment' || value.type === 'mdxFlowExpression' || value.type === 'mdxTextExpression') ) { let offset = 2; - /** @type {RegExpMatchArray|null|undefined} */ let match; - - // @ts-expect-error: MDX@1 if (value.type === 'comment') { - // @ts-expect-error: MDX@1 match = value.value.match(commentExpression); offset = 1; } else if (value.type === 'html') { @@ -17887,10 +11997,8 @@ function commentMarker(value) { ) { match = value.value.match(esCommentExpression); } - if (match && match[0].length === value.value.length) { const parameters = parseParameters(match[offset + 1] || ''); - if (parameters) { return { name: match[offset], @@ -17901,20 +12009,10 @@ function commentMarker(value) { } } } - return null } - -/** - * Parse `value` into an object. - * - * @param {string} value - * @returns {MarkerParameters|null} - */ function parseParameters(value) { - /** @type {MarkerParameters} */ const parameters = {}; - return value .replace( /\s+([-\w]+)(?:=(?:"((?:\\[\s\S]|[^"])+)"|'((?:\\[\s\S]|[^'])+)'|((?:\\[\s\S]|[^"'\s])+)))?/gi, @@ -17923,19 +12021,8 @@ function parseParameters(value) { .replace(/\s+/g, '') ? null : parameters - - /** - * @param {string} _ - * @param {string} $1 - * @param {string} $2 - * @param {string} $3 - * @param {string} $4 - */ - // eslint-disable-next-line max-params function replacer(_, $1, $2, $3, $4) { - /** @type {MarkerParameterValue} */ let value = $2 || $3 || $4 || ''; - if (value === 'true' || value === '') { value = true; } else if (value === 'false') { @@ -17943,169 +12030,78 @@ function parseParameters(value) { } else if (!Number.isNaN(Number(value))) { value = Number(value); } - parameters[$1] = value; - return '' } } - -/** - * @param {unknown} value - * @returns {value is Node} - */ function isNode(value) { return Boolean(value && typeof value === 'object' && 'type' in value) } -/** - * @typedef {import('mdast').Root} Root - * @typedef {import('vfile').VFile} VFile - * @typedef {import('unified-message-control')} MessageControl - * @typedef {Omit|Omit} Options - */ - const test = [ - 'html', // Comments are `html` nodes in mdast. - 'comment', // In MDX@1, comments have their own node. - 'mdxFlowExpression', // In MDX@2, comments exist in bracketed expressions. + 'html', + 'comment', + 'mdxFlowExpression', 'mdxTextExpression' ]; - -/** - * Plugin to enable, disable, and ignore messages. - * - * @type {import('unified').Plugin<[Options], Root>} - * @returns {(node: Root, file: VFile) => void} - */ function remarkMessageControl(options) { return messageControl( Object.assign({marker: commentMarker, test}, options) ) } -/** - * @typedef {import('mdast').Root} Root - */ - -/** - * The core plugin for `remark-lint`. - * This adds support for ignoring stuff from messages (``). - * All rules are in their own packages and presets. - * - * @type {import('unified').Plugin} - */ function remarkLint() { this.use(lintMessageControl); } - -/** @type {import('unified').Plugin} */ function lintMessageControl() { return remarkMessageControl({name: 'lint', source: 'remark-lint'}) } -/** - * @typedef {import('unist').Node} Node - * @typedef {import('vfile').VFile} VFile - * - * @typedef {0|1|2} Severity - * @typedef {'warn'|'on'|'off'|'error'} Label - * @typedef {[Severity, ...unknown[]]} SeverityTuple - * - * @typedef RuleMeta - * @property {string} origin name of the lint rule - * @property {string} [url] link to documentation - * - * @callback Rule - * @param {Node} tree - * @param {VFile} file - * @param {unknown} options - * @returns {void} - */ - const primitives = new Set(['string', 'number', 'boolean']); - -/** - * @param {string|RuleMeta} meta - * @param {Rule} rule - */ function lintRule(meta, rule) { const id = typeof meta === 'string' ? meta : meta.origin; const url = typeof meta === 'string' ? undefined : meta.url; const parts = id.split(':'); - // Possibly useful if externalised later. - /* c8 ignore next */ const source = parts[1] ? parts[0] : undefined; const ruleId = parts[1]; - Object.defineProperty(plugin, 'name', {value: id}); - return plugin - - /** @type {import('unified').Plugin<[unknown]|void[]>} */ function plugin(raw) { const [severity, options] = coerce$1(ruleId, raw); - if (!severity) return - const fatal = severity === 2; - return (tree, file, next) => { let index = file.messages.length - 1; - wrap(rule, (error) => { const messages = file.messages; - - // Add the error, if not already properly added. - // Only happens for incorrect plugins. - /* c8 ignore next 6 */ - // @ts-expect-error: errors could be `messages`. if (error && !messages.includes(error)) { try { file.fail(error); } catch {} } - while (++index < messages.length) { Object.assign(messages[index], {ruleId, source, fatal, url}); } - next(); })(tree, file, options); } } } - -/** - * Coerce a value to a severity--options tuple. - * - * @param {string} name - * @param {unknown} value - * @returns {SeverityTuple} - */ function coerce$1(name, value) { - /** @type {unknown[]} */ let result; - if (typeof value === 'boolean') { result = [value]; } else if (value === null || value === undefined) { result = [1]; } else if ( Array.isArray(value) && - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line primitives.has(typeof value[0]) ) { - // `isArray(unknown)` is turned into `any[]`: - // type-coverage:ignore-next-line result = [...value]; } else { result = [1, value]; } - let level = result[0]; - if (typeof level === 'boolean') { level = level ? 1 : 0; } else if (typeof level === 'string') { @@ -18120,7 +12116,6 @@ function coerce$1(name, value) { result = [level, result]; } } - if (typeof level !== 'number' || level < 0 || level > 2) { throw new Error( 'Incorrect severity `' + @@ -18131,353 +12126,197 @@ function coerce$1(name, value) { 'expected 0, 1, or 2' ) } - result[0] = level; - - // @ts-expect-error: it’s now a valid tuple. return result } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module final-newline - * @fileoverview - * Warn when a line feed at the end of a file is missing. - * Empty files are allowed. + * ## When should I use this? * - * See [StackExchange](https://unix.stackexchange.com/questions/18743) for why. + * You can use this package to check that fenced code markers are consistent. * - * ## Fix + * ## API * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * always adds a final line feed to files. + * There are no options. * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation * - * ## Example + * Turn this rule on. + * See [StackExchange](https://unix.stackexchange.com/questions/18743) for more + * info. * - * ##### `ok.md` + * ## Fix * - * ###### In + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * always adds final line endings. * - * Note: `␊` represents LF. + * ## Example * - * ```markdown - * Alpha␊ - * ``` + * ##### `ok.md` * - * ###### Out + * ###### In * - * No messages. + * > 👉 **Note**: `␊` represents a line feed (`\n`). * - * ##### `not-ok.md` + * ```markdown + * Alpha␊ + * ``` * - * ###### In + * ###### Out * - * Note: The below file does not have a final newline. + * No messages. * - * ```markdown - * Bravo - * ``` + * ##### `not-ok.md` * - * ###### Out + * ###### In * - * ```text - * 1:1: Missing newline character at end of file - * ``` + * > 👉 **Note**: `␀` represents the end of the file. + * + * ```markdown + * Bravo␀ + * ``` + * + * ###### Out + * + * ```text + * 1:1: Missing newline character at end of file + * ``` + * + * @module final-newline + * @summary + * remark-lint rule to warn when files don’t end in a newline. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT */ - const remarkLintFinalNewline = lintRule( { origin: 'remark-lint:final-newline', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-newline#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file) => { const value = String(file); const last = value.length - 1; - if (last > -1 && value.charAt(last) !== '\n') { file.message('Missing newline character at end of file'); } } ); - var remarkLintFinalNewline$1 = remarkLintFinalNewline; var pluralize = {exports: {}}; -/* global define */ - (function (module, exports) { (function (root, pluralize) { - /* istanbul ignore else */ if (typeof commonjsRequire === 'function' && 'object' === 'object' && 'object' === 'object') { - // Node. module.exports = pluralize(); } else { - // Browser global. root.pluralize = pluralize(); } })(commonjsGlobal, function () { - // Rule storage - pluralize and singularize need to be run sequentially, - // while other rules can be optimized using an object for instant lookups. var pluralRules = []; var singularRules = []; var uncountables = {}; var irregularPlurals = {}; var irregularSingles = {}; - - /** - * Sanitize a pluralization rule to a usable regular expression. - * - * @param {(RegExp|string)} rule - * @return {RegExp} - */ function sanitizeRule (rule) { if (typeof rule === 'string') { return new RegExp('^' + rule + '$', 'i'); } - return rule; } - - /** - * Pass in a word token to produce a function that can replicate the case on - * another word. - * - * @param {string} word - * @param {string} token - * @return {Function} - */ function restoreCase (word, token) { - // Tokens are an exact match. if (word === token) return token; - - // Lower cased words. E.g. "hello". if (word === word.toLowerCase()) return token.toLowerCase(); - - // Upper cased words. E.g. "WHISKY". if (word === word.toUpperCase()) return token.toUpperCase(); - - // Title cased words. E.g. "Title". if (word[0] === word[0].toUpperCase()) { return token.charAt(0).toUpperCase() + token.substr(1).toLowerCase(); } - - // Lower cased words. E.g. "test". return token.toLowerCase(); } - - /** - * Interpolate a regexp string. - * - * @param {string} str - * @param {Array} args - * @return {string} - */ function interpolate (str, args) { return str.replace(/\$(\d{1,2})/g, function (match, index) { return args[index] || ''; }); } - - /** - * Replace a word using a rule. - * - * @param {string} word - * @param {Array} rule - * @return {string} - */ function replace (word, rule) { return word.replace(rule[0], function (match, index) { var result = interpolate(rule[1], arguments); - if (match === '') { return restoreCase(word[index - 1], result); } - return restoreCase(match, result); }); } - - /** - * Sanitize a word by passing in the word and sanitization rules. - * - * @param {string} token - * @param {string} word - * @param {Array} rules - * @return {string} - */ function sanitizeWord (token, word, rules) { - // Empty string or doesn't need fixing. if (!token.length || uncountables.hasOwnProperty(token)) { return word; } - var len = rules.length; - - // Iterate over the sanitization rules and use the first one to match. while (len--) { var rule = rules[len]; - if (rule[0].test(word)) return replace(word, rule); } - return word; } - - /** - * Replace a word with the updated word. - * - * @param {Object} replaceMap - * @param {Object} keepMap - * @param {Array} rules - * @return {Function} - */ function replaceWord (replaceMap, keepMap, rules) { return function (word) { - // Get the correct token and case restoration functions. var token = word.toLowerCase(); - - // Check against the keep object map. if (keepMap.hasOwnProperty(token)) { return restoreCase(word, token); } - - // Check against the replacement map for a direct word replacement. if (replaceMap.hasOwnProperty(token)) { return restoreCase(word, replaceMap[token]); } - - // Run all the rules against the word. return sanitizeWord(token, word, rules); }; } - - /** - * Check if a word is part of the map. - */ function checkWord (replaceMap, keepMap, rules, bool) { return function (word) { var token = word.toLowerCase(); - if (keepMap.hasOwnProperty(token)) return true; if (replaceMap.hasOwnProperty(token)) return false; - return sanitizeWord(token, token, rules) === token; }; } - - /** - * Pluralize or singularize a word based on the passed in count. - * - * @param {string} word The word to pluralize - * @param {number} count How many of the word exist - * @param {boolean} inclusive Whether to prefix with the number (e.g. 3 ducks) - * @return {string} - */ function pluralize (word, count, inclusive) { var pluralized = count === 1 ? pluralize.singular(word) : pluralize.plural(word); - return (inclusive ? count + ' ' : '') + pluralized; } - - /** - * Pluralize a word. - * - * @type {Function} - */ pluralize.plural = replaceWord( irregularSingles, irregularPlurals, pluralRules ); - - /** - * Check if a word is plural. - * - * @type {Function} - */ pluralize.isPlural = checkWord( irregularSingles, irregularPlurals, pluralRules ); - - /** - * Singularize a word. - * - * @type {Function} - */ pluralize.singular = replaceWord( irregularPlurals, irregularSingles, singularRules ); - - /** - * Check if a word is singular. - * - * @type {Function} - */ pluralize.isSingular = checkWord( irregularPlurals, irregularSingles, singularRules ); - - /** - * Add a pluralization rule to the collection. - * - * @param {(string|RegExp)} rule - * @param {string} replacement - */ pluralize.addPluralRule = function (rule, replacement) { pluralRules.push([sanitizeRule(rule), replacement]); }; - - /** - * Add a singularization rule to the collection. - * - * @param {(string|RegExp)} rule - * @param {string} replacement - */ pluralize.addSingularRule = function (rule, replacement) { singularRules.push([sanitizeRule(rule), replacement]); }; - - /** - * Add an uncountable word rule. - * - * @param {(string|RegExp)} word - */ pluralize.addUncountableRule = function (word) { if (typeof word === 'string') { uncountables[word.toLowerCase()] = true; return; } - - // Set singular and plural references for the word. pluralize.addPluralRule(word, '$0'); pluralize.addSingularRule(word, '$0'); }; - - /** - * Add an irregular word definition. - * - * @param {string} single - * @param {string} plural - */ pluralize.addIrregularRule = function (single, plural) { plural = plural.toLowerCase(); single = single.toLowerCase(); - irregularSingles[single] = plural; irregularPlurals[plural] = single; }; - - /** - * Irregular rules. - */ [ - // Pronouns. ['I', 'we'], ['me', 'us'], ['he', 'they'], @@ -18494,23 +12333,19 @@ var pluralize = {exports: {}}; ['has', 'have'], ['this', 'these'], ['that', 'those'], - // Words ending in with a consonant and `o`. ['echo', 'echoes'], ['dingo', 'dingoes'], ['volcano', 'volcanoes'], ['tornado', 'tornadoes'], ['torpedo', 'torpedoes'], - // Ends with `us`. ['genus', 'genera'], ['viscus', 'viscera'], - // Ends with `ma`. ['stigma', 'stigmata'], ['stoma', 'stomata'], ['dogma', 'dogmata'], ['lemma', 'lemmata'], ['schema', 'schemata'], ['anathema', 'anathemata'], - // Other irregular rules. ['ox', 'oxen'], ['axe', 'axes'], ['die', 'dice'], @@ -18532,10 +12367,6 @@ var pluralize = {exports: {}}; ].forEach(function (rule) { return pluralize.addIrregularRule(rule[0], rule[1]); }); - - /** - * Pluralization rules. - */ [ [/s?$/i, 's'], [/[^\u0000-\u007F]$/i, '$0'], @@ -18565,10 +12396,6 @@ var pluralize = {exports: {}}; ].forEach(function (rule) { return pluralize.addPluralRule(rule[0], rule[1]); }); - - /** - * Singularization rules. - */ [ [/s$/i, ''], [/(ss)$/i, '$1'], @@ -18596,12 +12423,7 @@ var pluralize = {exports: {}}; ].forEach(function (rule) { return pluralize.addSingularRule(rule[0], rule[1]); }); - - /** - * Uncountable rules. - */ [ - // Singular words with no plurals. 'adulthood', 'advice', 'agenda', @@ -18697,38 +12519,56 @@ var pluralize = {exports: {}}; 'wildlife', 'you', /pok[eé]mon$/i, - // Regexes. - /[^aeiou]ese$/i, // "chinese", "japanese" - /deer$/i, // "deer", "reindeer" - /fish$/i, // "fish", "blowfish", "angelfish" + /[^aeiou]ese$/i, + /deer$/i, + /fish$/i, /measles$/i, - /o[iu]s$/i, // "carnivorous" - /pox$/i, // "chickpox", "smallpox" + /o[iu]s$/i, + /pox$/i, /sheep$/i ].forEach(pluralize.addUncountableRule); - return pluralize; }); }(pluralize)); - var plural = pluralize.exports; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module list-item-bullet-indent - * @fileoverview - * Warn when list item bullets are indented. + * ## When should I use this? * - * ## Fix + * You can use this package to check that list items are not indented. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all indentation before bullets. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation + * + * There is no specific handling of indented list items (or anything else) in + * markdown. + * While it is possible to use an indent to align ordered lists on their marker: + * + * ```markdown + * 1. One + * 10. Ten + * 100. Hundred + * ``` * + * …such a style is uncommon and a bit hard to maintain: adding a 10th item + * means 9 other items have to change (more arduous, while unlikely, would be + * the 100th item). + * Hence, it’s recommended to not indent items and to turn this rule on. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats all items without indent. + * + * @module list-item-bullet-indent + * @summary + * remark-lint rule to warn when list items are indented. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -18751,20 +12591,16 @@ var plural = pluralize.exports; * 3:2: Incorrect indentation before bullet: remove 1 space * 4:2: Incorrect indentation before bullet: remove 1 space */ - const remarkLintListItemBulletIndent = lintRule( { origin: 'remark-lint:list-item-bullet-indent', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-bullet-indent#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'list', (list, _, grandparent) => { let index = -1; - while (++index < list.children.length) { const item = list.children[index]; - if ( grandparent && grandparent.type === 'root' && @@ -18775,7 +12611,6 @@ const remarkLintListItemBulletIndent = lintRule( ) { const indent = item.position.start.column - grandparent.position.start.column; - if (indent) { file.message( 'Incorrect indentation before bullet: remove ' + @@ -18790,45 +12625,14 @@ const remarkLintListItemBulletIndent = lintRule( }); } ); - var remarkLintListItemBulletIndent$1 = remarkLintListItemBulletIndent; -/** - * @typedef {import('unist').Position} Position - * @typedef {import('unist').Point} Point - * - * @typedef {Partial} PointLike - * - * @typedef {Object} PositionLike - * @property {PointLike} [start] - * @property {PointLike} [end] - * - * @typedef {Object} NodeLike - * @property {PositionLike} [position] - */ - var pointStart = point('start'); var pointEnd = point('end'); - -/** - * Get the positional info of `node`. - * - * @param {'start'|'end'} type - */ function point(type) { return point - - /** - * Get the positional info of `node`. - * - * @param {NodeLike} [node] - * @returns {Point} - */ function point(node) { - /** @type {Point} */ - // @ts-ignore looks like a point var point = (node && node.position && node.position[type]) || {}; - return { line: point.line || null, column: point.column || null, @@ -18837,26 +12641,6 @@ function point(type) { } } -/** - * @typedef {Object} PointLike - * @property {number} [line] - * @property {number} [column] - * @property {number} [offset] - * - * @typedef {Object} PositionLike - * @property {PointLike} [start] - * @property {PointLike} [end] - * - * @typedef {Object} NodeLike - * @property {PositionLike} [position] - */ - -/** - * Check if `node` is *generated*. - * - * @param {NodeLike} [node] - * @returns {boolean} - */ function generated(node) { return ( !node || @@ -18871,29 +12655,66 @@ function generated(node) { } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module list-item-indent - * @fileoverview - * Warn when the spacing between a list item’s bullet and its content violates - * a given style. + * ## When should I use this? * - * Options: `'tab-size'`, `'mixed'`, or `'space'`, default: `'tab-size'`. + * You can use this package to check that the spacing between list item markers + * and content is inconsistent. * - * ## Fix + * ## API * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * uses `'tab-size'` (named `'tab'` there) by default to ensure Markdown is - * seen the same way across vendors. - * This can be configured with the - * [`listItemIndent`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionslistitemindent) - * option. - * This rule’s `'space'` option is named `'1'` there. + * The following options (default: `'tab-size'`) are accepted: * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * * `'space'` + * — prefer a single space + * * `'tab-size'` + * — prefer spaces the size of the next tab stop + * * `'mixed'` + * — prefer `'space'` for tight lists and `'tab-size'` for loose lists + * + * ## Recommendation + * + * First, some background. + * The number of spaces that occur after list markers (`*`, `-`, and `+` for + * unordered lists, or `.` and `)` for unordered lists) and before the content + * on the first line, defines how much indentation can be used for further + * lines. + * At least one space is required and up to 4 spaces are allowed (if there is no + * further content after the marker then it’s a blank line which is handled as + * if there was one space; if there are 5 or more spaces and then content, it’s + * also seen as one space and the rest is seen as indented code). + * + * There are two types of lists in markdown (other than ordered and unordered): + * tight and loose lists. + * Lists are tight by default but if there is a blank line between two list + * items or between two blocks inside an item, that turns the whole list into a + * loose list. + * When turning markdown into HTML, paragraphs in tight lists are not wrapped + * in `

          ` tags. * + * Historically, how indentation of lists works in markdown has been a mess, + * especially with how they interact with indented code. + * CommonMark made that a *lot* better, but there remain (documented but + * complex) edge cases and some behavior intuitive. + * Due to this, the default of this list is `'tab-size'`, which worked the best + * in most markdown parsers. + * Currently, the situation between markdown parsers is better, so choosing + * `'space'` (which seems to be the most common style used by authors) should + * be okay. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * uses `'tab-size'` (named `'tab'` there) by default. + * [`listItemIndent: '1'` (for `'space'`) or `listItemIndent: 'mixed'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionslistitemindent) + * is supported. + * + * @module list-item-indent + * @summary + * remark-lint rule to warn when spacing between list item markers and + * content is inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -18984,16 +12805,13 @@ function generated(node) { * * 1:1: Incorrect list-item indent style `💩`: use either `'tab-size'`, `'space'`, or `'mixed'` */ - const remarkLintListItemIndent = lintRule( { origin: 'remark-lint:list-item-indent', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-list-item-indent#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'tab-size') => { const value = String(file); - if (option !== 'tab-size' && option !== 'space' && option !== 'mixed') { file.fail( 'Incorrect list-item indent style `' + @@ -19001,33 +12819,25 @@ const remarkLintListItemIndent = lintRule( "`: use either `'tab-size'`, `'space'`, or `'mixed'`" ); } - visit$1(tree, 'list', (node) => { if (generated(node)) return - const spread = node.spread; let index = -1; - while (++index < node.children.length) { const item = node.children[index]; const head = item.children[0]; const final = pointStart(head); - const marker = value .slice(pointStart(item).offset, final.offset) .replace(/\[[x ]?]\s*$/i, ''); - const bulletSize = marker.replace(/\s+$/, '').length; - const style = option === 'tab-size' || (option === 'mixed' && spread) ? Math.ceil(bulletSize / 4) * 4 : bulletSize + 1; - if (marker.length !== style) { const diff = style - marker.length; const abs = Math.abs(diff); - file.message( 'Incorrect list-item indent: ' + (diff > 0 ? 'add' : 'remove') + @@ -19042,26 +12852,33 @@ const remarkLintListItemIndent = lintRule( }); } ); - var remarkLintListItemIndent$1 = remarkLintListItemIndent; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-blockquote-without-marker - * @fileoverview - * Warn when blank lines without `>` (greater than) markers are found in a - * block quote. + * ## When should I use this? * - * ## Fix + * You can use this package to check that lines in block quotes start with `>`. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * adds markers to every line in a block quote. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation * + * Rules around “lazy” lines are not straightforward and visually confusing, + * so it’s recommended to start each line with a `>`. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * adds `>` markers to every line in a block quote. + * + * @module no-blockquote-without-marker + * @summary + * remark-lint rule to warn when lines in block quotes start without `>`. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -19101,37 +12918,27 @@ var remarkLintListItemIndent$1 = remarkLintListItemIndent; * 2:1: Missing marker in block quote * 3:1: Missing marker in block quote */ - const remarkLintNoBlockquoteWithoutMarker = lintRule( { origin: 'remark-lint:no-blockquote-without-marker', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-blockquote-without-marker#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); const loc = location(file); - visit$1(tree, 'blockquote', (node) => { let index = -1; - while (++index < node.children.length) { const child = node.children[index]; - if (child.type === 'paragraph' && !generated(child)) { const end = pointEnd(child).line; const column = pointStart(child).column; let line = pointStart(child).line; - - // Skip past the first line. while (++line <= end) { const offset = loc.toOffset({line, column}); - if (/>[\t ]+$/.test(value.slice(offset - 5, offset))) { continue } - - // Roughly here. file.message('Missing marker in block quote', { line, column: column - 2 @@ -19142,29 +12949,35 @@ const remarkLintNoBlockquoteWithoutMarker = lintRule( }); } ); - var remarkLintNoBlockquoteWithoutMarker$1 = remarkLintNoBlockquoteWithoutMarker; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-literal-urls - * @fileoverview - * Warn for literal URLs in text. - * URLs are treated as links in some Markdown vendors, but not in others. - * To make sure they are always linked, wrap them in `<` (less than) and `>` - * (greater than). + * ## When should I use this? * - * ## Fix + * You can use this package to check that autolink literal URLs are not used. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * never creates literal URLs and always uses `<` (less than) and `>` - * (greater than). + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. * + * ## Recommendation + * + * Autolink literal URLs (just a URL) are a feature enabled by GFM. + * They don’t work everywhere. + * Due to this, it’s recommended to instead use normal autolinks + * (``) or links (`[text](url)`). + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * never creates autolink literals and always uses normal autolinks (``). + * + * @module no-literal-urls + * @summary + * remark-lint rule to warn for autolink literals. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -19180,17 +12993,14 @@ var remarkLintNoBlockquoteWithoutMarker$1 = remarkLintNoBlockquoteWithoutMarker; * * 1:1-1:19: Don’t use literal URLs without angle brackets */ - const remarkLintNoLiteralUrls = lintRule( { origin: 'remark-lint:no-literal-urls', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-literal-urls#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'link', (node) => { const value = toString(node); - if ( !generated(node) && pointStart(node).column === pointStart(node.children[0]).column && @@ -19203,22 +13013,45 @@ const remarkLintNoLiteralUrls = lintRule( }); } ); - var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module ordered-list-marker-style - * @fileoverview - * Warn when the list item marker style of ordered lists violate a given style. + * ## When should I use this? * - * Options: `'consistent'`, `'.'`, or `')'`, default: `'consistent'`. + * You can use this package to check that ordered list markers are consistent. * - * `'consistent'` detects the first used list style and warns when subsequent - * lists use different styles. + * ## API * + * The following options (default: `'consistent'`) are accepted: + * + * * `'.'` + * — prefer dots + * * `')'` + * — prefer parens + * * `'consistent'` + * — detect the first used style and warn when further markers differ + * + * ## Recommendation + * + * Parens for list markers were not supported in markdown before CommonMark. + * While they should work in most places now, not all markdown parsers follow + * CommonMark. + * Due to this, it’s recommended to prefer dots. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats ordered lists with dots by default. + * Pass + * [`bulletOrdered: ')'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsbulletordered) + * to always use parens. + * + * @module ordered-list-marker-style + * @summary + * remark-lint rule to warn when ordered list markers are inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -19262,16 +13095,13 @@ var remarkLintNoLiteralUrls$1 = remarkLintNoLiteralUrls; * * 1:1: Incorrect ordered list item marker style `💩`: use either `'.'` or `')'` */ - const remarkLintOrderedListMarkerStyle = lintRule( { origin: 'remark-lint:ordered-list-marker-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-ordered-list-marker-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - if (option !== 'consistent' && option !== '.' && option !== ')') { file.fail( 'Incorrect ordered list item marker style `' + @@ -19279,17 +13109,13 @@ const remarkLintOrderedListMarkerStyle = lintRule( "`: use either `'.'` or `')'`" ); } - visit$1(tree, 'list', (node) => { let index = -1; - if (!node.ordered) return - while (++index < node.children.length) { const child = node.children[index]; - if (!generated(child)) { - const marker = /** @type {Marker} */ ( + const marker = ( value .slice( pointStart(child).offset, @@ -19298,7 +13124,6 @@ const remarkLintOrderedListMarkerStyle = lintRule( .replace(/\s|\d/g, '') .replace(/\[[x ]?]\s*$/i, '') ); - if (option === 'consistent') { option = marker; } else if (marker !== option) { @@ -19309,17 +13134,31 @@ const remarkLintOrderedListMarkerStyle = lintRule( }); } ); - var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; /** + * ## When should I use this? + * + * You can use this package to check that hard breaks use two spaces and + * not more. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Less than two spaces do not create a hard breaks and more than two spaces + * have no effect. + * Due to this, it’s recommended to turn this rule on. + * + * @module hard-break-spaces + * @summary + * remark-lint rule to warn when more spaces are used than needed + * for hard breaks. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module hard-break-spaces - * @fileoverview - * Warn when too many spaces are used to create a hard break. - * * @example * {"name": "ok.md"} * @@ -19337,23 +13176,19 @@ var remarkLintOrderedListMarkerStyle$1 = remarkLintOrderedListMarkerStyle; * * 1:12-2:1: Use two spaces for hard line breaks */ - const remarkLintHardBreakSpaces = lintRule( { origin: 'remark-lint:hard-break-spaces', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-hard-break-spaces#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - visit$1(tree, 'break', (node) => { if (!generated(node)) { const slice = value .slice(pointStart(node).offset, pointEnd(node).offset) .split('\n', 1)[0] .replace(/\r$/, ''); - if (slice.length > 2) { file.message('Use two spaces for hard line breaks', node); } @@ -19361,17 +13196,27 @@ const remarkLintHardBreakSpaces = lintRule( }); } ); - var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; /** + * ## When should I use this? + * + * You can use this package to check that identifiers are defined once. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * It’s a mistake when the same identifier is defined multiple times. + * + * @module no-duplicate-definitions + * @summary + * remark-lint rule to warn when identifiers are defined multiple times. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-duplicate-definitions - * @fileoverview - * Warn when duplicate definitions are found. - * * @example * {"name": "ok.md"} * @@ -19389,17 +13234,13 @@ var remarkLintHardBreakSpaces$1 = remarkLintHardBreakSpaces; * * 2:1-2:11: Do not use definitions with the same identifier (1:1) */ - const remarkLintNoDuplicateDefinitions = lintRule( { origin: 'remark-lint:no-duplicate-definitions', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-duplicate-definitions#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - /** @type {Record} */ const map = Object.create(null); - visit$1(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && @@ -19407,7 +13248,6 @@ const remarkLintNoDuplicateDefinitions = lintRule( ) { const identifier = node.identifier; const duplicate = map[identifier]; - if (duplicate) { file.message( 'Do not use definitions with the same identifier (' + @@ -19416,64 +13256,35 @@ const remarkLintNoDuplicateDefinitions = lintRule( node ); } - map[identifier] = stringifyPosition(pointStart(node)); } }); } ); - var remarkLintNoDuplicateDefinitions$1 = remarkLintNoDuplicateDefinitions; -/** - * @typedef {import('mdast').Heading} Heading - * @typedef {'atx'|'atx-closed'|'setext'} Style - */ - -/** - * @param {Heading} node - * @param {Style} [relative] - * @returns {Style|null} - */ function headingStyle(node, relative) { var last = node.children[node.children.length - 1]; var depth = node.depth; var pos = node && node.position && node.position.end; var final = last && last.position && last.position.end; - if (!pos) { return null } - - // This can only occur for `'atx'` and `'atx-closed'` headings. - // This might incorrectly match `'atx'` headings with lots of trailing white - // space as an `'atx-closed'` heading. if (!last) { if (pos.column - 1 <= depth * 2) { return consolidate(depth, relative) } - return 'atx-closed' } - if (final.line + 1 === pos.line) { return 'setext' } - if (final.column + depth < pos.column) { return 'atx-closed' } - return consolidate(depth, relative) } - -/** - * Get the probable style of an atx-heading, depending on preferred style. - * - * @param {number} depth - * @param {Style} relative - * @returns {Style|null} - */ function consolidate(depth, relative) { return depth < 3 ? 'atx' @@ -19483,21 +13294,32 @@ function consolidate(depth, relative) { } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-heading-content-indent - * @fileoverview - * Warn when content of headings is indented. + * ## When should I use this? * - * ## Fix + * You can use this package to check that there is on space between `#` + * characters and the content in headings. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all unneeded padding around content in headings. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation * + * One space is required and more than one space has no effect. + * Due to this, it’s recommended to turn this rule on. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats headings with exactly one space. + * + * @module no-heading-content-indent + * @summary + * remark-lint rule to warn when there are too many spaces between + * hashes and content in headings. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -19533,31 +13355,23 @@ function consolidate(depth, relative) { * * #·· */ - const remarkLintNoHeadingContentIndent = lintRule( { origin: 'remark-lint:no-heading-content-indent', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-content-indent#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'heading', (node) => { if (generated(node)) { return } - const type = headingStyle(node, 'atx'); - if (type === 'atx' || type === 'atx-closed') { const head = pointStart(node.children[0]).column; - - // Ignore empty headings. if (!head) { return } - const diff = head - pointStart(node).column - 1 - node.depth; - if (diff) { file.message( 'Remove ' + @@ -19569,13 +13383,9 @@ const remarkLintNoHeadingContentIndent = lintRule( ); } } - - // Closed ATX headings always must have a space between their content and - // the final hashes, thus, there is no `add x spaces`. if (type === 'atx-closed') { const final = pointEnd(node.children[node.children.length - 1]); const diff = pointEnd(node).column - final.column - 1 - node.depth; - if (diff) { file.message( 'Remove ' + @@ -19590,20 +13400,26 @@ const remarkLintNoHeadingContentIndent = lintRule( }); } ); - var remarkLintNoHeadingContentIndent$1 = remarkLintNoHeadingContentIndent; /** + * ## When should I use this? + * + * You can use this package to check that inline constructs (links) are + * not padded. + * Historically, it was possible to pad emphasis, strong, and strikethrough + * too, but this was removed in CommonMark, making this rule much less useful. + * + * ## API + * + * There are no options. + * + * @module no-inline-padding + * @summary + * remark-lint rule to warn when inline constructs are padded. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-inline-padding - * @fileoverview - * Warn when phrasing content is padded with spaces between their markers and - * content. - * - * Warns for emphasis, strong, delete, image, and link. - * * @example * {"name": "ok.md"} * @@ -19619,23 +13435,18 @@ var remarkLintNoHeadingContentIndent$1 = remarkLintNoHeadingContentIndent; * * 1:7-1:38: Don’t pad `link` with inner spaces */ - const remarkLintNoInlinePadding = lintRule( { origin: 'remark-lint:no-inline-padding', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-inline-padding#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - // Note: `emphasis`, `strong`, `delete` (GFM) can’t have padding anymore - // since CM. visit$1(tree, (node) => { if ( (node.type === 'link' || node.type === 'linkReference') && !generated(node) ) { const value = toString(node); - if (value.charAt(0) === ' ' || value.charAt(value.length - 1) === ' ') { file.message('Don’t pad `' + node.type + '` with inner spaces', node); } @@ -19643,23 +13454,32 @@ const remarkLintNoInlinePadding = lintRule( }); } ); - var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; /** + * ## When should I use this? + * + * You can use this package to check that collapsed or full reference images + * are used. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Shortcut references use an implicit style that looks a lot like something + * that could occur as plain text instead of syntax. + * In some cases, plain text is intended instead of an image. + * Due to this, it’s recommended to use collapsed (or full) references + * instead. + * + * @module no-shortcut-reference-image + * @summary + * remark-lint rule to warn when shortcut reference images are used. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-shortcut-reference-image - * @fileoverview - * Warn when shortcut reference images are used. - * - * Shortcut references render as images when a definition is found, and as - * plain text without definition. - * Sometimes, you don’t intend to create an image from the reference, but this - * rule still warns anyway. - * In that case, you can escape the reference like so: `!\[foo]`. - * * @example * {"name": "ok.md"} * @@ -19679,13 +13499,11 @@ var remarkLintNoInlinePadding$1 = remarkLintNoInlinePadding; * * 1:1-1:7: Use the trailing [] on reference images */ - const remarkLintNoShortcutReferenceImage = lintRule( { origin: 'remark-lint:no-shortcut-reference-image', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-image#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'imageReference', (node) => { if (!generated(node) && node.referenceType === 'shortcut') { @@ -19694,23 +13512,32 @@ const remarkLintNoShortcutReferenceImage = lintRule( }); } ); - var remarkLintNoShortcutReferenceImage$1 = remarkLintNoShortcutReferenceImage; /** + * ## When should I use this? + * + * You can use this package to check that collapsed or full reference links + * are used. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Shortcut references use an implicit style that looks a lot like something + * that could occur as plain text instead of syntax. + * In some cases, plain text is intended instead of a link. + * Due to this, it’s recommended to use collapsed (or full) references + * instead. + * + * @module no-shortcut-reference-link + * @summary + * remark-lint rule to warn when shortcut reference links are used. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-shortcut-reference-link - * @fileoverview - * Warn when shortcut reference links are used. - * - * Shortcut references render as links when a definition is found, and as - * plain text without definition. - * Sometimes, you don’t intend to create a link from the reference, but this - * rule still warns anyway. - * In that case, you can escape the reference like so: `\[foo]`. - * * @example * {"name": "ok.md"} * @@ -19730,13 +13557,11 @@ var remarkLintNoShortcutReferenceImage$1 = remarkLintNoShortcutReferenceImage; * * 1:1-1:6: Use the trailing `[]` on reference links */ - const remarkLintNoShortcutReferenceLink = lintRule( { origin: 'remark-lint:no-shortcut-reference-link', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shortcut-reference-link#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'linkReference', (node) => { if (!generated(node) && node.referenceType === 'shortcut') { @@ -19745,23 +13570,51 @@ const remarkLintNoShortcutReferenceLink = lintRule( }); } ); - var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; /** - * @author Titus Wormer - * @copyright 2016 Titus Wormer - * @license MIT - * @module no-undefined-references - * @fileoverview - * Warn when references to undefined definitions are found. + * ## When should I use this? + * + * You can use this package to check that referenced definitions are defined. + * + * ## API + * + * The following options (default: `undefined`) are accepted: + * + * * `Object` with the following fields: + * * `allow` (`Array`, default: `[]`) + * — text that you want to allowed between `[` and `]` even though it’s + * undefined + * + * ## Recommendation * - * Options: `Object`, optional. + * Shortcut references use an implicit syntax that could also occur as plain + * text. + * For example, it is reasonable to expect an author adding `[…]` to abbreviate + * some text somewhere in a document: * - * The object can have an `allow` field, set to an array of strings that may - * appear between `[` and `]`, but that should not be treated as link - * identifiers. + * ```markdown + * > Some […] quote. + * ``` * + * This isn’t a problem, but it might become one when an author later adds a + * definition: + * + * ```markdown + * Some text. […][] + * + * […] #read-more "Read more" + * ``` + * + * The second author might expect only their newly added text to form a link, + * but their changes also result in a link for the first author’s text. + * + * @module no-undefined-references + * @summary + * remark-lint rule to warn when undefined definitions are referenced. + * @author Titus Wormer + * @copyright 2016 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -19815,13 +13668,11 @@ var remarkLintNoShortcutReferenceLink$1 = remarkLintNoShortcutReferenceLink; * 17:17-17:23: Found reference to undefined definition * 17:23-17:26: Found reference to undefined definition */ - const remarkLintNoUndefinedReferences = lintRule( { origin: 'remark-lint:no-undefined-references', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-undefined-references#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = {}) => { const contents = String(file); const loc = location(file); @@ -19829,9 +13680,7 @@ const remarkLintNoUndefinedReferences = lintRule( const allow = new Set( (option.allow || []).map((d) => normalizeIdentifier(d)) ); - /** @type {Record} */ const map = Object.create(null); - visit$1(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && @@ -19840,11 +13689,7 @@ const remarkLintNoUndefinedReferences = lintRule( map[normalizeIdentifier(node.identifier)] = true; } }); - visit$1(tree, (node) => { - // CM specifiers that references only form when defined. - // Still, they could be added by plugins, so let’s keep it. - /* c8 ignore next 10 */ if ( (node.type === 'imageReference' || node.type === 'linkReference' || @@ -19855,48 +13700,29 @@ const remarkLintNoUndefinedReferences = lintRule( ) { file.message('Found reference to undefined definition', node); } - if (node.type === 'paragraph' || node.type === 'heading') { findInPhrasing(node); } }); - - /** - * @param {Heading|Paragraph} node - */ function findInPhrasing(node) { - /** @type {Range[]} */ let ranges = []; - visit$1(node, (child) => { - // Ignore the node itself. if (child === node) return - - // Can’t have links in links, so reset ranges. if (child.type === 'link' || child.type === 'linkReference') { ranges = []; return SKIP$1 } - - // Enter non-text. if (child.type !== 'text') return - const start = pointStart(child).offset; const end = pointEnd(child).offset; - - // Bail if there’s no positional info. if (typeof start !== 'number' || typeof end !== 'number') { return EXIT$1 } - const source = contents.slice(start, end); - /** @type {Array.<[number, string]>} */ const lines = [[start, '']]; let last = 0; - lineEnding.lastIndex = 0; let match = lineEnding.exec(source); - while (match) { const index = match.index; lines[lines.length - 1][1] = source.slice(last, index); @@ -19904,98 +13730,64 @@ const remarkLintNoUndefinedReferences = lintRule( lines.push([start + last, '']); match = lineEnding.exec(source); } - lines[lines.length - 1][1] = source.slice(last); let lineIndex = -1; - while (++lineIndex < lines.length) { const line = lines[lineIndex][1]; let index = 0; - while (index < line.length) { const code = line.charCodeAt(index); - - // Skip past escaped brackets. if (code === 92) { const next = line.charCodeAt(index + 1); index++; - if (next === 91 || next === 93) { index++; } } - // Opening bracket. else if (code === 91) { ranges.push([lines[lineIndex][0] + index]); index++; } - // Close bracket. else if (code === 93) { - // No opening. if (ranges.length === 0) { index++; } else if (line.charCodeAt(index + 1) === 91) { index++; - - // Collapsed or full. let range = ranges.pop(); - - // Range should always exist. - // eslint-disable-next-line max-depth if (range) { range.push(lines[lineIndex][0] + index); - - // This is the end of a reference already. - // eslint-disable-next-line max-depth if (range.length === 4) { handleRange(range); range = []; } - range.push(lines[lineIndex][0] + index); ranges.push(range); index++; } } else { index++; - - // Shortcut or typical end of a reference. const range = ranges.pop(); - - // Range should always exist. - // eslint-disable-next-line max-depth if (range) { range.push(lines[lineIndex][0] + index); handleRange(range); } } } - // Anything else. else { index++; } } } }); - let index = -1; - while (++index < ranges.length) { handleRange(ranges[index]); } - return SKIP$1 - - /** - * @param {Range} range - */ function handleRange(range) { if (range.length === 1) return if (range.length === 3) range.length = 2; - - // No need to warn for just `[]`. if (range.length === 2 && range[0] + 2 === range[1]) return - const offset = range.length === 4 && range[2] + 2 !== range[3] ? 2 : 0; const id = contents .slice(range[0 + offset] + 1, range[1 + offset] - 1) @@ -20004,7 +13796,6 @@ const remarkLintNoUndefinedReferences = lintRule( start: loc.toPoint(range[0]), end: loc.toPoint(range[range.length - 1]) }; - if ( !generated({position: pos}) && !(normalizeIdentifier(id) in map) && @@ -20016,17 +13807,27 @@ const remarkLintNoUndefinedReferences = lintRule( } } ); - var remarkLintNoUndefinedReferences$1 = remarkLintNoUndefinedReferences; /** + * ## When should I use this? + * + * You can use this package to check definitions are referenced. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Unused definitions do not contribute anything, so they can be removed. + * + * @module no-unused-definitions + * @summary + * remark-lint rule to warn when unreferenced definitions are used. * @author Titus Wormer * @copyright 2016 Titus Wormer * @license MIT - * @module no-unused-definitions - * @fileoverview - * Warn when unused definitions are found. - * * @example * {"name": "ok.md"} * @@ -20044,19 +13845,14 @@ var remarkLintNoUndefinedReferences$1 = remarkLintNoUndefinedReferences; * * 1:1-1:27: Found unused definition */ - const own$1 = {}.hasOwnProperty; - const remarkLintNoUnusedDefinitions = lintRule( { origin: 'remark-lint:no-unused-definitions', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-unused-definitions#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { - /** @type {Record} */ const map = Object.create(null); - visit$1(tree, (node) => { if ( (node.type === 'definition' || node.type === 'footnoteDefinition') && @@ -20065,7 +13861,6 @@ const remarkLintNoUnusedDefinitions = lintRule( map[node.identifier.toUpperCase()] = {node, used: false}; } }); - visit$1(tree, (node) => { if ( node.type === 'imageReference' || @@ -20073,20 +13868,15 @@ const remarkLintNoUnusedDefinitions = lintRule( node.type === 'footnoteReference' ) { const info = map[node.identifier.toUpperCase()]; - if (!generated(node) && info) { info.used = true; } } }); - - /** @type {string} */ let identifier; - for (identifier in map) { if (own$1.call(map, identifier)) { const entry = map[identifier]; - if (!entry.used) { file.message('Found unused definition', entry.node); } @@ -20094,28 +13884,17 @@ const remarkLintNoUnusedDefinitions = lintRule( } } ); - var remarkLintNoUnusedDefinitions$1 = remarkLintNoUnusedDefinitions; -/** - * @fileoverview - * remark preset to configure `remark-lint` with settings that prevent - * mistakes or stuff that fails across vendors. - */ - -/** @type {Preset} */ const remarkPresetLintRecommended = { plugins: [ remarkLint, - // Unix compatibility. remarkLintFinalNewline$1, - // Rendering across vendors differs greatly if using other styles. remarkLintListItemBulletIndent$1, [remarkLintListItemIndent$1, 'tab-size'], remarkLintNoBlockquoteWithoutMarker$1, remarkLintNoLiteralUrls$1, [remarkLintOrderedListMarkerStyle$1, '.'], - // Mistakes. remarkLintHardBreakSpaces$1, remarkLintNoDuplicateDefinitions$1, remarkLintNoHeadingContentIndent$1, @@ -20126,22 +13905,51 @@ const remarkPresetLintRecommended = { remarkLintNoUnusedDefinitions$1 ] }; - var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module blockquote-indentation - * @fileoverview - * Warn when block quotes are indented too much or too little. + * ## When should I use this? + * + * You can use this package to check that the “indent” of block quotes is + * consistent. + * Indent here is the `>` (greater than) marker and the spaces before content. + * + * ## API + * + * The following options (default: `'consistent'`) are accepted: * - * Options: `number` or `'consistent'`, default: `'consistent'`. + * * `number` (example: `2`) + * — preferred indent of `>` and spaces before content + * * `'consistent'` + * — detect the first used style and warn when further block quotes differ * - * `'consistent'` detects the first used indentation and will warn when - * other block quotes use a different indentation. + * ## Recommendation * + * CommonMark specifies that when block quotes are used the `>` markers can be + * followed by an optional space. + * No space at all arguably looks rather ugly: + * + * ```markdown + * >Mars and + * >Venus. + * ``` + * + * There is no specific handling of more that one space, so if 5 spaces were + * used after `>`, then indented code kicks in: + * + * ```markdown + * > neptune() + * ``` + * + * Due to this, it’s recommended to configure this rule with `2`. + * + * @module blockquote-indentation + * @summary + * remark-lint rule to warn when block quotes are indented too much or + * too little. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "setting": 4} * @@ -20178,27 +13986,22 @@ var remarkPresetLintRecommended$1 = remarkPresetLintRecommended; * 5:5: Remove 1 space between block quote and content * 9:3: Add 1 space between block quote and content */ - const remarkLintBlockquoteIndentation = lintRule( { origin: 'remark-lint:blockquote-indentation', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-blockquote-indentation#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { visit$1(tree, 'blockquote', (node) => { if (generated(node) || node.children.length === 0) { return } - if (option === 'consistent') { option = check$1(node); } else { const diff = option - check$1(node); - if (diff !== 0) { const abs = Math.abs(diff); - file.message( (diff > 0 ? 'Add' : 'Remove') + ' ' + @@ -20213,45 +14016,49 @@ const remarkLintBlockquoteIndentation = lintRule( }); } ); - var remarkLintBlockquoteIndentation$1 = remarkLintBlockquoteIndentation; - -/** - * @param {Blockquote} node - * @returns {number} - */ function check$1(node) { return pointStart(node.children[0]).column - pointStart(node).column } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module checkbox-character-style - * @fileoverview - * Warn when list item checkboxes violate a given style. + * ## When should I use this? * - * Options: `Object` or `'consistent'`, default: `'consistent'`. + * You can use this package to check that the style of GFM tasklists is + * consistent. * - * `'consistent'` detects the first used checked and unchecked checkbox - * styles and warns when subsequent checkboxes use different styles. + * ## API * - * Styles can also be passed in like so: + * The following options (default: `'consistent'`) are accepted: * - * ```js - * {checked: 'x', unchecked: ' '} - * ``` + * * `Object` with the following fields: + * * `checked` (`'x'`, `'X'`, or `'consistent'`, default: `'consistent'`) + * — preferred character to use for checked checkboxes + * * `unchecked` (`'·'` (a space), `'»'` (a tab), or `'consistent'`, + * default: `'consistent'`) + * — preferred character to use for unchecked checkboxes + * * `'consistent'` + * — detect the first used styles and warn when further checkboxes differ * - * ## Fix + * ## Recommendation * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats checked checkboxes using `x` (lowercase X) and unchecked checkboxes - * as `·` (a single space). + * It’s recommended to set `options.checked` to `'x'` (a lowercase X) as it + * prevents an extra keyboard press and `options.unchecked` to `'·'` (a space) + * to make all checkboxes align. * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Fix * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats checked checkboxes using `'x'` (lowercase X) and unchecked checkboxes + * using `'·'` (a space). + * + * @module checkbox-character-style + * @summary + * remark-lint rule to warn when list item checkboxes violate a given + * style. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "setting": {"checked": "x"}, "gfm": true} * @@ -20302,25 +14109,19 @@ function check$1(node) { * * 1:1: Incorrect checked checkbox marker `💩`: use either `'x'`, or `'X'` */ - const remarkLintCheckboxCharacterStyle = lintRule( { origin: 'remark-lint:checkbox-character-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-checkbox-character-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - /** @type {'x'|'X'|'consistent'} */ let checked = 'consistent'; - /** @type {' '|'\x09'|'consistent'} */ let unchecked = 'consistent'; - if (typeof option === 'object') { checked = option.checked || 'consistent'; unchecked = option.unchecked || 'consistent'; } - if (unchecked !== 'consistent' && unchecked !== ' ' && unchecked !== '\t') { file.fail( 'Incorrect unchecked checkbox marker `' + @@ -20328,7 +14129,6 @@ const remarkLintCheckboxCharacterStyle = lintRule( "`: use either `'\\t'`, or `' '`" ); } - if (checked !== 'consistent' && checked !== 'x' && checked !== 'X') { file.fail( 'Incorrect checked checkbox marker `' + @@ -20336,13 +14136,9 @@ const remarkLintCheckboxCharacterStyle = lintRule( "`: use either `'x'`, or `'X'`" ); } - visit$1(tree, 'listItem', (node) => { const head = node.children[0]; const point = pointStart(head); - - // Exit early for items without checkbox. - // A list item cannot be checked and empty, according to GFM. if ( typeof node.checked !== 'boolean' || !head || @@ -20350,28 +14146,17 @@ const remarkLintCheckboxCharacterStyle = lintRule( ) { return } - - // Move back to before `] `. point.offset -= 2; point.column -= 2; - - // Assume we start with a checkbox, because well, `checked` is set. const match = /\[([\t Xx])]/.exec( value.slice(point.offset - 2, point.offset + 1) ); - - // Failsafe to make sure we don‘t crash if there actually isn’t a checkbox. - /* c8 ignore next */ if (!match) return - const style = node.checked ? checked : unchecked; - if (style === 'consistent') { if (node.checked) { - // @ts-expect-error: valid marker. checked = match[1]; } else { - // @ts-expect-error: valid marker. unchecked = match[1]; } } else if (match[1] !== style) { @@ -20386,17 +14171,47 @@ const remarkLintCheckboxCharacterStyle = lintRule( }); } ); - var remarkLintCheckboxCharacterStyle$1 = remarkLintCheckboxCharacterStyle; /** + * ## When should I use this? + * + * You can use this package to check that the “indent” after a GFM tasklist + * checkbox is a single space. + * + * ## API + * + * There are no accepted options. + * + * ## Recommendation + * + * GFM allows zero or more spaces and tabs after checkboxes. + * No space at all arguably looks rather ugly: + * + * ```markdown + * * [x]Pluto + * ``` + * + * More that one space is superfluous: + * + * ```markdown + * * [x] Jupiter + * ``` + * + * Due to this, it’s recommended to turn this rule on. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats checkboxes and the content after them with a single space between. + * + * @module checkbox-content-indent + * @summary + * remark-lint rule to warn when GFM tasklist checkboxes are followed by + * more than one space. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module checkbox-content-indent - * @fileoverview - * Warn when list item checkboxes are followed by too much whitespace. - * * @example * {"name": "ok.md", "gfm": true} * @@ -20420,23 +14235,17 @@ var remarkLintCheckboxCharacterStyle$1 = remarkLintCheckboxCharacterStyle; * 3:7-3:9: Checkboxes should be followed by a single character * 4:7-4:10: Checkboxes should be followed by a single character */ - const remarkLintCheckboxContentIndent = lintRule( { origin: 'remark-lint:checkbox-content-indent', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-checkbox-content-indent#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); const loc = location(file); - visit$1(tree, 'listItem', (node) => { const head = node.children[0]; const point = pointStart(head); - - // Exit early for items without checkbox. - // A list item cannot be checked and empty, according to GFM. if ( typeof node.checked !== 'boolean' || !head || @@ -20444,22 +14253,13 @@ const remarkLintCheckboxContentIndent = lintRule( ) { return } - - // Assume we start with a checkbox, because well, `checked` is set. const match = /\[([\t xX])]/.exec( value.slice(point.offset - 4, point.offset + 1) ); - - // Failsafe to make sure we don‘t crash if there actually isn’t a checkbox. - /* c8 ignore next */ if (!match) return - - // Move past checkbox. const initial = point.offset; let final = initial; - while (/[\t ]/.test(value.charAt(final))) final++; - if (final - initial > 0) { file.message('Checkboxes should be followed by a single character', { start: loc.toPoint(initial), @@ -20469,7 +14269,6 @@ const remarkLintCheckboxContentIndent = lintRule( }); } ); - var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; /** @@ -20574,16 +14373,13 @@ var remarkLintCheckboxContentIndent$1 = remarkLintCheckboxContentIndent; * * 1:1: Incorrect code block style `💩`: use either `'consistent'`, `'fenced'`, or `'indented'` */ - const remarkLintCodeBlockStyle = lintRule( { origin: 'remark-lint:code-block-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-code-block-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - if ( option !== 'consistent' && option !== 'fenced' && @@ -20595,20 +14391,16 @@ const remarkLintCodeBlockStyle = lintRule( "`: use either `'consistent'`, `'fenced'`, or `'indented'`" ); } - visit$1(tree, 'code', (node) => { if (generated(node)) { return } - const initial = pointStart(node).offset; const final = pointEnd(node).offset; - const current = node.lang || /^\s*([~`])\1{2,}/.test(value.slice(initial, final)) ? 'fenced' : 'indented'; - if (option === 'consistent') { option = current; } else if (option !== current) { @@ -20617,17 +14409,33 @@ const remarkLintCodeBlockStyle = lintRule( }); } ); - var remarkLintCodeBlockStyle$1 = remarkLintCodeBlockStyle; /** + * ## When should I use this? + * + * You can use this package to check that the labels used in definitions + * do not use meaningless white space. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Definitions and references are matched together by collapsing white space. + * Using more white space in labels might incorrectly indicate that they are of + * importance. + * Due to this, it’s recommended to use one space (or a line ending if needed) + * and turn this rule on. + * + * @module definition-spacing + * @summary + * remark-lint rule to warn when consecutive whitespace is used in + * a definition label. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module definition-spacing - * @fileoverview - * Warn when consecutive whitespace is used in a definition. - * * @example * {"name": "ok.md"} * @@ -20643,26 +14451,20 @@ var remarkLintCodeBlockStyle$1 = remarkLintCodeBlockStyle; * * 1:1-1:57: Do not use consecutive whitespace in definition labels */ - const label = /^\s*\[((?:\\[\s\S]|[^[\]])+)]/; - const remarkLintDefinitionSpacing = lintRule( { origin: 'remark-lint:definition-spacing', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-definition-spacing#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - visit$1(tree, (node) => { if (node.type === 'definition' || node.type === 'footnoteDefinition') { const start = pointStart(node).offset; const end = pointEnd(node).offset; - if (typeof start === 'number' && typeof end === 'number') { const match = value.slice(start, end).match(label); - if (match && /[ \t\n]{2,}/.test(match[1])) { file.message( 'Do not use consecutive whitespace in definition labels', @@ -20674,25 +14476,39 @@ const remarkLintDefinitionSpacing = lintRule( }); } ); - var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module fenced-code-flag - * @fileoverview - * Check fenced code block flags. + * ## When should I use this? + * + * You can use this package to check that language flags of fenced code + * are used and consistent. * - * Options: `Array.` or `Object`, optional. + * ## API * - * Providing an array is as passing `{flags: Array}`. + * The following options (default: `undefined`) are accepted: * - * The object can have an array of `'flags'` which are allowed: other flags - * will not be allowed. - * An `allowEmpty` field (`boolean`, default: `false`) can be set to allow - * code blocks without language flags. + * * `Array` + * — as if passing `{flags: options}` + * * `Object` with the following fields: + * * `allowEmpty` (`boolean`, default: `false`) + * — allow language flags to be omitted + * * `flags` (`Array` default: `[]`) + * — specific flags to allow (other flags will result in a warning) + * + * ## Recommendation + * + * While omitting the language flag is perfectly fine to signal that the code is + * plain text, it *could* point to a mistake. + * It’s recommended to instead use a certain flag for plain text (such as `txt`) + * and to turn this rule on. + * + * @module fenced-code-flag + * @summary + * remark-lint rule to check that language flags of fenced code are used. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * * @example * {"name": "ok.md"} @@ -20758,33 +14574,26 @@ var remarkLintDefinitionSpacing$1 = remarkLintDefinitionSpacing; * * 1:1-3:4: Incorrect code language flag */ - const fence = /^ {0,3}([~`])\1{2,}/; - const remarkLintFencedCodeFlag = lintRule( { origin: 'remark-lint:fenced-code-flag', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-flag#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option) => { const value = String(file); let allowEmpty = false; - /** @type {string[]} */ let allowed = []; - if (typeof option === 'object') { if (Array.isArray(option)) { allowed = option; } else { allowEmpty = Boolean(option.allowEmpty); - if (option.flags) { allowed = option.flags; } } } - visit$1(tree, 'code', (node) => { if (!generated(node)) { if (node.lang) { @@ -20796,7 +14605,6 @@ const remarkLintFencedCodeFlag = lintRule( pointStart(node).offset, pointEnd(node).offset ); - if (!allowEmpty && fence.test(slice)) { file.message('Missing code language flag', node); } @@ -20805,33 +14613,43 @@ const remarkLintFencedCodeFlag = lintRule( }); } ); - var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module fenced-code-marker - * @fileoverview - * Warn for violating fenced code markers. + * ## When should I use this? * - * Options: `` '`' ``, `'~'`, or `'consistent'`, default: `'consistent'`. + * You can use this package to check that fenced code markers are consistent. * - * `'consistent'` detects the first used fenced code marker style and warns - * when subsequent fenced code blocks use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats fences using ``'`'`` (grave accent) by default. - * Pass - * [`fence: '~'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsfence) - * to use `~` (tilde) instead. + * * ``'`'`` + * — prefer grave accents + * * `'~'` + * — prefer tildes + * * `'consistent'` + * — detect the first used style and warn when further fenced code differs * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation * + * Tildes are extremely uncommon. + * Due to this, it’s recommended to configure this rule with ``'`'``. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats fenced code with grave accents by default. + * Pass + * [`fence: '~'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsfence) + * to always use tildes. + * + * @module fenced-code-marker + * @summary + * remark-lint rule to warn when fenced code markers are inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -20898,16 +14716,13 @@ var remarkLintFencedCodeFlag$1 = remarkLintFencedCodeFlag; * * 1:1: Incorrect fenced code marker `💩`: use either `'consistent'`, `` '`' ``, or `'~'` */ - const remarkLintFencedCodeMarker = lintRule( { origin: 'remark-lint:fenced-code-marker', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-fenced-code-marker#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const contents = String(file); - if (option !== 'consistent' && option !== '~' && option !== '`') { file.fail( 'Incorrect fenced code marker `' + @@ -20915,17 +14730,13 @@ const remarkLintFencedCodeMarker = lintRule( "`: use either `'consistent'`, `` '`' ``, or `'~'`" ); } - visit$1(tree, 'code', (node) => { const start = pointStart(node).offset; - if (typeof start === 'number') { const marker = contents .slice(start, start + 4) .replace(/^\s+/, '') .charAt(0); - - // Ignore unfenced code blocks. if (marker === '~' || marker === '`') { if (option === 'consistent') { option = marker; @@ -20942,22 +14753,36 @@ const remarkLintFencedCodeMarker = lintRule( }); } ); - var remarkLintFencedCodeMarker$1 = remarkLintFencedCodeMarker; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module file-extension - * @fileoverview - * Warn when the file extension differ from the preferred extension. + * ## When should I use this? + * + * You can use this package to check that file extensions are `md`. + * + * ## API * - * Does not warn when given documents have no file extensions (such as - * `AUTHORS` or `LICENSE`). + * The following options (default: `'md'`) are accepted: * - * Options: `string`, default: `'md'` — Expected file extension. + * * `string` (example `'markdown'`) + * — preferred file extension (no dot) * + * > 👉 **Note**: does not warn when files have no file extensions (such as + * > `AUTHORS` or `LICENSE`). + * + * ## Recommendation + * + * Use `md` as it’s the most common. + * Also use `md` when your markdown contains common syntax extensions (such as + * GFM, frontmatter, or math). + * Do not use `md` for MDX: use `mdx` instead. + * + * @module file-extension + * @summary + * remark-lint rule to check the file extension. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "readme.md"} * @@ -20972,33 +14797,43 @@ var remarkLintFencedCodeMarker$1 = remarkLintFencedCodeMarker; * @example * {"name": "readme.mkd", "setting": "mkd"} */ - const remarkLintFileExtension = lintRule( { origin: 'remark-lint:file-extension', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-file-extension#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file, option = 'md') => { const ext = file.extname; - if (ext && ext.slice(1) !== option) { file.message('Incorrect extension: use `' + option + '`'); } } ); - var remarkLintFileExtension$1 = remarkLintFileExtension; /** + * ## When should I use this? + * + * You can use this package to check that definitions are placed at the end of + * the document. + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * There are different strategies for placing definitions. + * The simplest is perhaps to place them all at the bottem of documents. + * If you prefer that, turn on this rule. + * + * @module final-definition + * @summary + * remark-lint rule to warn when definitions are used *in* the document + * instead of at the end. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module final-definition - * @fileoverview - * Warn when definitions are placed somewhere other than at the end of - * the file. - * * @example * {"name": "ok.md"} * @@ -21031,20 +14866,16 @@ var remarkLintFileExtension$1 = remarkLintFileExtension; * * [example-2]: http://example.com/two/ */ - const remarkLintFinalDefinition = lintRule( { origin: 'remark-lint:final-definition', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-final-definition#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { let last = 0; - visit$1( tree, (node) => { - // Ignore generated and HTML comment nodes. if ( node.type === 'root' || generated(node) || @@ -21052,9 +14883,7 @@ const remarkLintFinalDefinition = lintRule( ) { return } - const line = pointStart(node).line; - if (node.type === 'definition') { if (last && last > line) { file.message( @@ -21072,19 +14901,34 @@ const remarkLintFinalDefinition = lintRule( ); } ); - var remarkLintFinalDefinition$1 = remarkLintFinalDefinition; /** + * ## When should I use this? + * + * You can use this package to check the heading rank of the first heading. + * + * ## API + * + * The following options (default: `1`) are accepted: + * + * * `number` (example `1`) + * — expected rank of first heading + * + * ## Recommendation + * + * In most cases you’d want to first heading in a markdown document to start at + * rank 1. + * In some cases a different rank makes more sense, such as when building a blog + * and generating the primary heading from frontmatter metadata, in which case + * a value of `2` can be defined here. + * + * @module first-heading-level + * @summary + * remark-lint rule to warn when the first heading has an unexpected rank. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module first-heading-level - * @fileoverview - * Warn when the first heading has a level other than a specified value. - * - * Options: `number`, default: `1`. - * * @example * {"name": "ok.md"} * @@ -21166,78 +15010,100 @@ var remarkLintFinalDefinition$1 = remarkLintFinalDefinition; * * 1:1-1:14: First heading level should be `2` */ - const re$3 = /} */ (tree, file, option = 1) => { visit$1(tree, (node) => { if (!generated(node)) { - /** @type {Depth|undefined} */ let rank; - if (node.type === 'heading') { rank = node.depth; } else if (node.type === 'html') { rank = infer(node); } - if (rank !== undefined) { if (rank !== option) { file.message('First heading level should be `' + option + '`', node); } - return EXIT$1 } } }); } ); - var remarkLintFirstHeadingLevel$1 = remarkLintFirstHeadingLevel; - -/** - * @param {HTML} node - * @returns {Depth|undefined} - */ function infer(node) { const results = node.value.match(re$3); - // @ts-expect-error: can be castes fine. return results ? Number(results[1]) : undefined } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module heading-style - * @fileoverview - * Warn when a heading does not conform to a given style. + * ## When should I use this? * - * Options: `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'`, - * default: `'consistent'`. + * You can use this package to check that headings are consistent. * - * `'consistent'` detects the first used heading style and warns when - * subsequent headings use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats headings as ATX by default. - * This can be configured with the - * [`setext`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionssetext) - * and - * [`closeAtx`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionscloseatx) - * options. + * * `'atx'` + * — prefer ATX headings: + * ```markdown + * ## Hello + * ``` + * * `'atx-closed'` + * — prefer ATX headings with a closing sequence: + * ```markdown + * ## Hello ## + * ``` + * * `'setext'` + * — prefer setext headings: + * ```markdown + * Hello + * ----- + * ``` + * * `'consistent'` + * — detect the first used style and warn when further headings differ * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation + * + * Setext headings are limited in that they can only construct headings with a + * rank of one and two. + * On the other hand, they do allow multiple lines of content whereas ATX only + * allows one line. + * The number of used markers in their underline does not matter, leading to + * either: * + * * 1 marker (`Hello\n-`), which is the bare minimum, and for rank 2 headings + * looks suspiciously like an empty list item + * * using as many markers as the content (`Hello\n-----`), which is hard to + * maintain + * * an arbitrary number (`Hello\n---`), which for rank 2 headings looks + * suspiciously like a thematic break + * + * Setext headings are also rather uncommon. + * Using a sequence of hashes at the end of ATX headings is even more uncommon. + * Due to this, it’s recommended to prefer ATX headings. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats headings as ATX by default. + * The other styles can be configured with + * [`setext: true`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionssetext) + * or + * [`closeAtx: true`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionscloseatx). + * + * @module heading-style + * @summary + * remark-lint rule to warn when headings violate a given style. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "setting": "atx"} * @@ -21288,13 +15154,11 @@ function infer(node) { * * 1:1: Incorrect heading style type `💩`: use either `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'` */ - const remarkLintHeadingStyle = lintRule( { origin: 'remark-lint:heading-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-heading-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { if ( option !== 'consistent' && @@ -21308,12 +15172,9 @@ const remarkLintHeadingStyle = lintRule( "`: use either `'consistent'`, `'atx'`, `'atx-closed'`, or `'setext'`" ); } - visit$1(tree, 'heading', (node) => { if (!generated(node)) { if (option === 'consistent') { - // Funky nodes perhaps cannot be detected. - /* c8 ignore next */ option = headingStyle(node) || 'consistent'; } else if (headingStyle(node, option) !== option) { file.message('Headings should use ' + option, node); @@ -21322,25 +15183,35 @@ const remarkLintHeadingStyle = lintRule( }); } ); - var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module maximum-line-length - * @fileoverview - * Warn when lines are too long. + * ## When should I use this? * - * Options: `number`, default: `80`. + * You can use this package to check that lines do not exceed a certain size. * - * Ignores nodes that cannot be wrapped, such as headings, tables, code, - * definitions, HTML, and JSX. + * ## API * - * Ignores images, links, and inline code if they start before the wrap, end - * after the wrap, and there’s no whitespace after them. + * The following options (default: `80`) are accepted: * + * * `number` (example: `72`) + * — max number of characters to accept in heading text + * + * Ignores nodes that cannot be wrapped, such as headings, tables, code, + * definitions, HTML, and JSX. + * Ignores images, links, and code (inline) if they start before the wrap, end + * after the wrap, and there’s no white space after them. + * + * ## Recommendation + * + * Whether to wrap prose or not is a stylistic choice. + * + * @module maximum-line-length + * @summary + * remark-lint rule to warn when lines are too long. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "positionless": true, "gfm": true} * @@ -21365,7 +15236,7 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * *

          alpha bravo charlie delta echo foxtrot golf

          * - * The following is also fine, because there is no whitespace. + * The following is also fine (note the `.`), because there is no whitespace. * * . * @@ -21422,17 +15293,14 @@ var remarkLintHeadingStyle$1 = remarkLintHeadingStyle; * 3:12: Line must be at most 10 characters * 4:12: Line must be at most 10 characters */ - const remarkLintMaximumLineLength = lintRule( { origin: 'remark-lint:maximum-line-length', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-maximum-line-length#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 80) => { const value = String(file); const lines = value.split(/\r?\n/); - visit$1(tree, (node) => { if ( (node.type === 'heading' || @@ -21440,34 +15308,21 @@ const remarkLintMaximumLineLength = lintRule( node.type === 'code' || node.type === 'definition' || node.type === 'html' || - // @ts-expect-error: These are from MDX@1 and MDX@2: . node.type === 'jsx' || - // @ts-expect-error: MDX node.type === 'mdxFlowExpression' || - // @ts-expect-error: MDX node.type === 'mdxJsxFlowElement' || - // @ts-expect-error: MDX node.type === 'mdxJsxTextElement' || - // @ts-expect-error: MDX node.type === 'mdxTextExpression' || - // @ts-expect-error: MDX node.type === 'mdxjsEsm' || node.type === 'yaml' || - // @ts-expect-error: YAML and TOML are from frontmatter. node.type === 'toml') && !generated(node) ) { allowList(pointStart(node).line - 1, pointEnd(node).line); } }); - - // Finally, allow some inline spans, but only if they occur at or after - // the wrap. - // However, when they do, and there’s whitespace after it, they are not - // allowed. visit$1(tree, (node, pos, parent_) => { - const parent = /** @type {Parent} */ (parent_); - + const parent = (parent_); if ( (node.type === 'link' || node.type === 'image' || @@ -21478,15 +15333,10 @@ const remarkLintMaximumLineLength = lintRule( ) { const initial = pointStart(node); const final = pointEnd(node); - - // Not allowing when starting after the border, or ending before it. if (initial.column > option || final.column < option) { return } - const next = parent.children[pos + 1]; - - // Not allowing when there’s whitespace after the link. if ( next && pointStart(next).line === initial.line && @@ -21494,17 +15344,12 @@ const remarkLintMaximumLineLength = lintRule( ) { return } - allowList(initial.line - 1, final.line); } }); - - // Iterate over every line, and warn for violating lines. let index = -1; - while (++index < lines.length) { const lineLength = lines[index].length; - if (lineLength > option) { file.message('Line must be at most ' + option + ' characters', { line: index + 1, @@ -21512,13 +15357,6 @@ const remarkLintMaximumLineLength = lintRule( }); } } - - /** - * Allowlist from `initial` to `final`, zero-based. - * - * @param {number} initial - * @param {number} final - */ function allowList(initial, final) { while (initial < final) { lines[initial++] = ''; @@ -21526,28 +15364,34 @@ const remarkLintMaximumLineLength = lintRule( } } ); - var remarkLintMaximumLineLength$1 = remarkLintMaximumLineLength; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-consecutive-blank-lines - * @fileoverview - * Warn for too many consecutive blank lines. - * Knows about the extra line needed between a list and indented code, and two - * lists. + * ## When should I use this? * - * ## Fix + * You can use this package to check that no more blank lines than needed + * are used between blocks. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * always uses one blank line between blocks if possible, or two lines when - * needed. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation + * + * More than one blank line has no effect between blocks. * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * adds exactly one blank line between any block. + * + * @module no-consecutive-blank-lines + * @summary + * remark-lint rule to warn when more blank lines that needed are used + * between blocks. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -21574,41 +15418,29 @@ var remarkLintMaximumLineLength$1 = remarkLintMaximumLineLength; * 4:1: Remove 1 line before node * 4:5: Remove 2 lines after node */ - const unknownContainerSize = new Set(['mdxJsxFlowElement', 'mdxJsxTextElement']); - const remarkLintNoConsecutiveBlankLines = lintRule( { origin: 'remark-lint:no-consecutive-blank-lines', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-consecutive-blank-lines#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, (node) => { if (!generated(node) && 'children' in node) { const head = node.children[0]; - if (head && !generated(head)) { if (!unknownContainerSize.has(node.type)) { - // Compare parent and first child. compare(pointStart(node), pointStart(head), 0); } - - // Compare between each child. let index = -1; - while (++index < node.children.length) { const previous = node.children[index - 1]; const child = node.children[index]; - if (previous && !generated(previous) && !generated(child)) { compare(pointEnd(previous), pointStart(child), 2); } } - const tail = node.children[node.children.length - 1]; - - // Compare parent and last child. if ( tail !== head && !generated(tail) && @@ -21619,19 +15451,9 @@ const remarkLintNoConsecutiveBlankLines = lintRule( } } }); - - /** - * Compare the difference between `start` and `end`, and warn when that - * difference exceeds `max`. - * - * @param {Point} start - * @param {Point} end - * @param {0|1|2} max - */ function compare(start, end, max) { const diff = end.line - start.line; const lines = Math.abs(diff) - max; - if (lines > 0) { file.message( 'Remove ' + @@ -21647,17 +15469,24 @@ const remarkLintNoConsecutiveBlankLines = lintRule( } } ); - var remarkLintNoConsecutiveBlankLines$1 = remarkLintNoConsecutiveBlankLines; /** + * ## When should I use this? + * + * You can use this package to check that file names do not start with + * articles (`a`, `the`, etc). + * + * ## API + * + * There are no options. + * + * @module no-file-name-articles + * @summary + * remark-lint rule to warn when file names start with articles. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-file-name-articles - * @fileoverview - * Warn when file names start with an article. - * * @example * {"name": "title.md"} * @@ -21681,32 +15510,36 @@ var remarkLintNoConsecutiveBlankLines$1 = remarkLintNoConsecutiveBlankLines; * * 1:1: Do not start file names with `an` */ - const remarkLintNoFileNameArticles = lintRule( { origin: 'remark-lint:no-file-name-articles', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-articles#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file) => { const match = file.stem && file.stem.match(/^(the|teh|an?)\b/i); - if (match) { file.message('Do not start file names with `' + match[0] + '`'); } } ); - var remarkLintNoFileNameArticles$1 = remarkLintNoFileNameArticles; /** + * ## When should I use this? + * + * You can use this package to check that no consecutive dashes appear in + * file names. + * + * ## API + * + * There are no options. + * + * @module no-file-name-consecutive-dashes + * @summary + * remark-lint rule to warn when consecutive dashes appear in file names. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-file-name-consecutive-dashes - * @fileoverview - * Warn when file names contain consecutive dashes. - * * @example * {"name": "plug-ins.md"} * @@ -21715,30 +15548,35 @@ var remarkLintNoFileNameArticles$1 = remarkLintNoFileNameArticles; * * 1:1: Do not use consecutive dashes in a file name */ - const remarkLintNoFileNameConsecutiveDashes = lintRule( { origin: 'remark-lint:no-file-name-consecutive-dashes', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-consecutive-dashes#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file) => { if (file.stem && /-{2,}/.test(file.stem)) { file.message('Do not use consecutive dashes in a file name'); } } ); - var remarkLintNoFileNameConsecutiveDashes$1 = remarkLintNoFileNameConsecutiveDashes; /** + * ## When should I use this? + * + * You can use this package to check that no initial or final dashes appear in + * file names. + * + * ## API + * + * There are no options. + * + * @module no-file-name-outer-dashes + * @summary + * remark-lint rule to warn when initial or final dashes appear in file names. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-file-name-outer-dashes - * @fileoverview - * Warn when file names contain initial or final dashes (hyphen-minus, `-`). - * * @example * {"name": "readme.md"} * @@ -21752,38 +15590,56 @@ var remarkLintNoFileNameConsecutiveDashes$1 = remarkLintNoFileNameConsecutiveDas * * 1:1: Do not use initial or final dashes in a file name */ - const remarkLintNofileNameOuterDashes = lintRule( { origin: 'remark-lint:no-file-name-outer-dashes', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-file-name-outer-dashes#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file) => { if (file.stem && /^-|-$/.test(file.stem)) { file.message('Do not use initial or final dashes in a file name'); } } ); - var remarkLintNofileNameOuterDashes$1 = remarkLintNofileNameOuterDashes; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-heading-indent - * @fileoverview - * Warn when a heading is indented. + * ## When should I use this? * - * ## Fix + * You can use this package to check that headings are not indented. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all unneeded indentation before headings. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation + * + * There is no specific handling of indented headings (or anything else) in + * markdown. + * While it is possible to use an indent to headings on their text: + * + * ```markdown + * # One + * ## Two + * ### Three + * #### Four + * ``` * + * …such style is uncommon, a bit hard to maintain, and it’s impossible to add a + * heading with a rank of 5 as it would form indented code instead. + * Hence, it’s recommended to not indent headings and to turn this rule on. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats all headings without indent. + * + * @module no-heading-indent + * @summary + * remark-lint rule to warn when headings are indented. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -21818,23 +15674,17 @@ var remarkLintNofileNameOuterDashes$1 = remarkLintNofileNameOuterDashes; * 6:2: Remove 1 space before this heading * 8:4: Remove 3 spaces before this heading */ - const remarkLintNoHeadingIndent = lintRule( { origin: 'remark-lint:no-heading-indent', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-heading-indent#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'heading', (node, _, parent) => { - // Note: it’s rather complex to detect what the expected indent is in block - // quotes and lists, so let’s only do directly in root for now. if (generated(node) || (parent && parent.type !== 'root')) { return } - const diff = pointStart(node).column - 1; - if (diff) { file.message( 'Remove ' + @@ -21848,19 +15698,32 @@ const remarkLintNoHeadingIndent = lintRule( }); } ); - var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; /** + * ## When should I use this? + * + * You can use this package to check that no more than one top level heading + * is used. + * + * ## API + * + * The following options (default: `1`) are accepted: + * + * * `number` (example: `1`) + * — assumed top level heading rank + * + * ## Recommendation + * + * Documents should almost always have one main heading, which is typically a + * heading with a rank of `1`. + * + * @module no-multiple-toplevel-headings + * @summary + * remark-lint rule to warn when more than one top level heading is used. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-multiple-toplevel-headings - * @fileoverview - * Warn when multiple top level headings are used. - * - * Options: `number`, default: `1`. - * * @example * {"name": "ok.md", "setting": 1} * @@ -21880,17 +15743,13 @@ var remarkLintNoHeadingIndent$1 = remarkLintNoHeadingIndent; * * 3:1-3:6: Don’t use multiple top level headings (1:1) */ - const remarkLintNoMultipleToplevelHeadings = lintRule( { origin: 'remark-lint:no-multiple-toplevel-headings', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-multiple-toplevel-headings#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 1) => { - /** @type {string|undefined} */ let duplicate; - visit$1(tree, 'heading', (node) => { if (!generated(node) && node.depth === option) { if (duplicate) { @@ -21905,19 +15764,32 @@ const remarkLintNoMultipleToplevelHeadings = lintRule( }); } ); - var remarkLintNoMultipleToplevelHeadings$1 = remarkLintNoMultipleToplevelHeadings; /** + * ## When should I use this? + * + * You can use this package to check that not all lines in shell code are + * preceded by dollars (`$`). + * + * ## API + * + * There are no options. + * + * ## Recommendation + * + * Dollars make copy/pasting hard. + * Either put both dollars in front of some lines (to indicate shell commands) + * and don’t put them in front of other lines, or use fenced code to indicate + * shell commands on their own, followed by another fenced code that contains + * just the output. + * + * @module no-shell-dollars + * @summary + * remark-lint rule to warn every line in shell code is preceded by `$`s. * @author Titus Wormer * @copyright 2015 Titus Wormer * @license MIT - * @module no-shell-dollars - * @fileoverview - * Warn when shell code is prefixed by `$` (dollar sign) characters. - * - * Ignores indented code blocks and fenced code blocks without language flag. - * * @example * {"name": "ok.md"} * @@ -21965,10 +15837,6 @@ var remarkLintNoMultipleToplevelHeadings$1 = remarkLintNoMultipleToplevelHeading * 1:1-3:4: Do not use dollar signs before shell commands * 5:1-8:4: Do not use dollar signs before shell commands */ - -// List of shell script file extensions (also used as code flags for syntax -// highlighting on GitHub): -// See: const flags = new Set([ 'sh', 'bash', @@ -21981,58 +15849,62 @@ const flags = new Set([ 'tool', 'zsh' ]); - const remarkLintNoShellDollars = lintRule( { origin: 'remark-lint:no-shell-dollars', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-shell-dollars#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { visit$1(tree, 'code', (node) => { - // Check both known shell code and unknown code. if (!generated(node) && node.lang && flags.has(node.lang)) { const lines = node.value .split('\n') .filter((line) => line.trim().length > 0); let index = -1; - if (lines.length === 0) { return } - while (++index < lines.length) { const line = lines[index]; - if (line.trim() && !/^\s*\$\s*/.test(line)) { return } } - file.message('Do not use dollar signs before shell commands', node); } }); } ); - var remarkLintNoShellDollars$1 = remarkLintNoShellDollars; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-table-indentation - * @fileoverview - * Warn when tables are indented. + * ## When should I use this? * - * ## Fix + * You can use this package to check that tables are not indented. + * Tables are a GFM feature enabled with + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm). * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * removes all unneeded indentation before tables. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation + * + * There is no specific handling of indented tables (or anything else) in + * markdown. + * Hence, it’s recommended to not indent tables and to turn this rule on. + * + * ## Fix * + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm) + * formats all tables without indent. + * + * @module no-table-indentation + * @summary + * remark-lint rule to warn when tables are indented. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "gfm": true} * @@ -22082,88 +15954,109 @@ var remarkLintNoShellDollars$1 = remarkLintNoShellDollars; * * 3:6: Do not indent table rows */ - const remarkLintNoTableIndentation = lintRule( { origin: 'remark-lint:no-table-indentation', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-table-indentation#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); const loc = location(value); - visit$1(tree, 'table', (node, _, parent) => { const end = pointEnd(node).line; let line = pointStart(node).line; let column = 0; - if (parent && parent.type === 'root') { column = 1; } else if (parent && parent.type === 'blockquote') { column = pointStart(parent).column + 2; } else if (parent && parent.type === 'listItem') { column = pointStart(parent.children[0]).column; - - // Skip past the first line if we’re the first child of a list item. - /* c8 ignore next 3 */ if (parent.children[0] === node) { line++; } } - - // In a parent we don’t know, exit. if (!column || !line) { return } - while (line <= end) { let offset = loc.toOffset({line, column}); const lineColumn = offset; - while (/[ \t]/.test(value.charAt(offset - 1))) { offset--; } - if (!offset || /[\r\n>]/.test(value.charAt(offset - 1))) { offset = lineColumn; - while (/[ \t]/.test(value.charAt(offset))) { offset++; } - if (lineColumn !== offset) { file.message('Do not indent table rows', loc.toPoint(offset)); } } - line++; } - return SKIP$1 }); } ); - var remarkLintNoTableIndentation$1 = remarkLintNoTableIndentation; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module no-tabs - * @fileoverview - * Warn when hard tabs (`\t`) are used instead of spaces. + * ## When should I use this? * - * ## Fix + * You can use this package to check that tabs are not used. * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * uses spaces where tabs are used for indentation, but retains tabs used in - * content. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation * + * Regardless of the debate in other languages of whether to use tabs vs. + * spaces, when it comes to markdown, tabs do not work as expected. + * Largely around contains such as block quotes and lists. + * Take for example block quotes: `>\ta` gives a paragraph with the text `a` + * in a blockquote, so one might expect that `>\t\ta` results in indented code + * with the text `a` in a block quote. + * + * ```markdown + * >\ta + * + * >\t\ta + * ``` + * + * Yields: + * + * ```html + *
          + *

          a

          + *
          + *
          + *
            a
          + * 
          + *
          + * ``` + * + * Because markdown uses a hardcoded tab size of 4, the first tab could be + * represented as 3 spaces (because there’s a `>` before). + * One of those “spaces” is taken because block quotes allow the `>` to be + * followed by one space, leaving 2 spaces. + * The next tab can be represented as 4 spaces, so together we have 6 spaces. + * The indented code uses 4 spaces, so there are two spaces left, which are + * shown in the indented code. + * + * ## Fix + * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * uses spaces exclusively for indentation. + * + * @module no-tabs + * @summary + * remark-lint rule to warn when tabs are used. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -22201,93 +16094,48 @@ var remarkLintNoTableIndentation$1 = remarkLintNoTableIndentation; * 11:4: Use spaces instead of tabs * 13:41: Use spaces instead of tabs */ - const remarkLintNoTabs = lintRule( { origin: 'remark-lint:no-tabs', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-no-tabs#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (_, file) => { const value = String(file); const toPoint = location(file).toPoint; let index = value.indexOf('\t'); - while (index !== -1) { file.message('Use spaces instead of tabs', toPoint(index)); index = value.indexOf('\t', index + 1); } } ); - var remarkLintNoTabs$1 = remarkLintNoTabs; -/** - * An Array.prototype.slice.call(arguments) alternative - * - * @param {Object} args something with a length - * @param {Number} slice - * @param {Number} sliceEnd - * @api public - */ - var sliced$1 = function (args, slice, sliceEnd) { var ret = []; var len = args.length; - if (0 === len) return ret; - var start = slice < 0 ? Math.max(0, slice + len) : slice || 0; - if (sliceEnd !== undefined) { len = sliceEnd < 0 ? sliceEnd + len : sliceEnd; } - while (len-- > start) { ret[len - start] = args[len]; } - return ret; }; -/** - * slice() reference. - */ - var slice = Array.prototype.slice; - -/** - * Expose `co`. - */ - var co_1 = co$1; - -/** - * Wrap the given generator `fn` and - * return a thunk. - * - * @param {Function} fn - * @return {Function} - * @api public - */ - function co$1(fn) { var isGenFun = isGeneratorFunction(fn); - return function (done) { var ctx = this; - - // in toThunk() below we invoke co() - // with a generator, so optimize for - // this case var gen = fn; - - // we only need to parse the arguments - // if gen is a generator function. if (isGenFun) { var args = slice.call(arguments), len = args.length; var hasCallback = len && 'function' == typeof args[len - 1]; @@ -22296,25 +16144,15 @@ function co$1(fn) { } else { done = done || error; } - next(); - - // #92 - // wrap the callback in a setImmediate - // so that any of its errors aren't caught by `co` function exit(err, res) { setImmediate(function(){ done.call(ctx, err, res); }); } - function next(err, res) { var ret; - - // multiple args if (arguments.length > 2) res = slice.call(arguments, 1); - - // error if (err) { try { ret = gen.throw(err); @@ -22322,8 +16160,6 @@ function co$1(fn) { return exit(e); } } - - // ok if (!err) { try { ret = gen.next(res); @@ -22331,14 +16167,8 @@ function co$1(fn) { return exit(e); } } - - // done if (ret.done) return exit(null, ret.value); - - // normalize ret.value = toThunk(ret.value, ctx); - - // run if ('function' == typeof ret.value) { var called = false; try { @@ -22356,104 +16186,67 @@ function co$1(fn) { } return; } - - // invalid next(new TypeError('You may only yield a function, promise, generator, array, or object, ' + 'but the following was passed: "' + String(ret.value) + '"')); } } } - -/** - * Convert `obj` into a normalized thunk. - * - * @param {Mixed} obj - * @param {Mixed} ctx - * @return {Function} - * @api private - */ - function toThunk(obj, ctx) { - if (isGeneratorFunction(obj)) { return co$1(obj.call(ctx)); } - if (isGenerator(obj)) { return co$1(obj); } - if (isPromise(obj)) { return promiseToThunk(obj); } - if ('function' == typeof obj) { return obj; } - if (isObject$1(obj) || Array.isArray(obj)) { return objectToThunk.call(ctx, obj); } - return obj; } - -/** - * Convert an object of yieldables to a thunk. - * - * @param {Object} obj - * @return {Function} - * @api private - */ - function objectToThunk(obj){ var ctx = this; var isArray = Array.isArray(obj); - return function(done){ var keys = Object.keys(obj); var pending = keys.length; var results = isArray - ? new Array(pending) // predefine the array length + ? new Array(pending) : new obj.constructor(); var finished; - if (!pending) { setImmediate(function(){ done(null, results); }); return; } - - // prepopulate object keys to preserve key ordering if (!isArray) { for (var i = 0; i < pending; i++) { results[keys[i]] = undefined; } } - for (var i = 0; i < keys.length; i++) { run(obj[keys[i]], keys[i]); } - function run(fn, key) { if (finished) return; try { fn = toThunk(fn, ctx); - if ('function' != typeof fn) { results[key] = fn; return --pending || done(null, results); } - fn.call(ctx, function(err, res){ if (finished) return; - if (err) { finished = true; return done(err); } - results[key] = res; --pending || done(null, results); }); @@ -22464,15 +16257,6 @@ function objectToThunk(obj){ } } } - -/** - * Convert `promise` to a thunk. - * - * @param {Object} promise - * @return {Function} - * @api private - */ - function promiseToThunk(promise) { return function(fn){ promise.then(function(res) { @@ -22480,67 +16264,18 @@ function promiseToThunk(promise) { }, fn); } } - -/** - * Check if `obj` is a promise. - * - * @param {Object} obj - * @return {Boolean} - * @api private - */ - function isPromise(obj) { return obj && 'function' == typeof obj.then; } - -/** - * Check if `obj` is a generator. - * - * @param {Mixed} obj - * @return {Boolean} - * @api private - */ - function isGenerator(obj) { return obj && 'function' == typeof obj.next && 'function' == typeof obj.throw; } - -/** - * Check if `obj` is a generator function. - * - * @param {Mixed} obj - * @return {Boolean} - * @api private - */ - function isGeneratorFunction(obj) { return obj && obj.constructor && 'GeneratorFunction' == obj.constructor.name; } - -/** - * Check for plain object. - * - * @param {Mixed} val - * @return {Boolean} - * @api private - */ - function isObject$1(val) { return val && Object == val.constructor; } - -/** - * Throw `err` in a new stack. - * - * This is used when co() is invoked - * without supplying a callback, which - * should only be for demonstrational - * purposes. - * - * @param {Error} err - * @api private - */ - function error(err) { if (!err) return; setImmediate(function(){ @@ -22548,84 +16283,41 @@ function error(err) { }); } -/** - * Module Dependencies - */ - var sliced = sliced$1; var noop = function(){}; var co = co_1; - -/** - * Export `wrapped` - */ - var wrapped_1 = wrapped$1; - -/** - * Wrap a function to support - * sync, async, and gen functions. - * - * @param {Function} fn - * @return {Function} - * @api public - */ - function wrapped$1(fn) { function wrap() { var args = sliced(arguments); var last = args[args.length - 1]; var ctx = this; - - // done var done = typeof last == 'function' ? args.pop() : noop; - - // nothing if (!fn) { return done.apply(ctx, [null].concat(args)); } - - // generator if (generator(fn)) { return co(fn).apply(ctx, args.concat(done)); } - - // async if (fn.length > args.length) { - // NOTE: this only handles uncaught synchronous errors try { return fn.apply(ctx, args.concat(done)); } catch (e) { return done(e); } } - - // sync return sync(fn, done).apply(ctx, args); } - return wrap; } - -/** - * Wrap a synchronous function execution. - * - * @param {Function} fn - * @param {Function} done - * @return {Function} - * @api private - */ - function sync(fn, done) { return function () { var ret; - try { ret = fn.apply(this, arguments); } catch (err) { return done(err); } - if (promise(ret)) { ret.then(function (value) { done(null, value); }, done); } else { @@ -22633,101 +16325,61 @@ function sync(fn, done) { } } } - -/** - * Is `value` a generator? - * - * @param {Mixed} value - * @return {Boolean} - * @api private - */ - function generator(value) { return value && value.constructor && 'GeneratorFunction' == value.constructor.name; } - - -/** - * Is `value` a promise? - * - * @param {Mixed} value - * @return {Boolean} - * @api private - */ - function promise(value) { return value && 'function' == typeof value.then; } var wrapped = wrapped_1; - var unifiedLintRule = factory; - function factory(id, rule) { var parts = id.split(':'); var source = parts[0]; var ruleId = parts[1]; var fn = wrapped(rule); - - /* istanbul ignore if - possibly useful if externalised later. */ if (!ruleId) { ruleId = source; source = null; } - attacher.displayName = id; - return attacher - function attacher(raw) { var config = coerce(ruleId, raw); var severity = config[0]; var options = config[1]; var fatal = severity === 2; - return severity ? transformer : undefined - function transformer(tree, file, next) { var index = file.messages.length; - fn(tree, file, options, done); - function done(err) { var messages = file.messages; var message; - - // Add the error, if not already properly added. - /* istanbul ignore if - only happens for incorrect plugins */ if (err && messages.indexOf(err) === -1) { try { file.fail(err); } catch (_) {} } - while (index < messages.length) { message = messages[index]; message.ruleId = ruleId; message.source = source; message.fatal = fatal; - index++; } - next(); } } } } - -// Coerce a value to a severity--options tuple. function coerce(name, value) { var def = 1; var result; var level; - - /* istanbul ignore if - Handled by unified in v6.0.0 */ if (typeof value === 'boolean') { result = [value]; } else if (value == null) { @@ -22742,9 +16394,7 @@ function coerce(name, value) { } else { result = [1, value]; } - level = result[0]; - if (typeof level === 'boolean') { level = level ? 1 : 0; } else if (typeof level === 'string') { @@ -22759,7 +16409,6 @@ function coerce(name, value) { result = [level, result]; } } - if (level < 0 || level > 2) { throw new Error( 'Incorrect severity `' + @@ -22770,21 +16419,12 @@ function coerce(name, value) { 'expected 0, 1, or 2' ) } - result[0] = level; - return result } var rule = unifiedLintRule; - var remarkLintNoTrailingSpaces = rule('remark-lint:no-trailing-spaces', noTrailingSpaces); - -/** - * Lines that are just space characters are not present in - * the AST, which is why we loop through lines manually. - */ - function noTrailingSpaces(ast, file) { var lines = file.toString().split(/\r?\n/); for (var i = 0; i < lines.length; i++) { @@ -22809,7 +16449,6 @@ function* getLinksRecursively(node) { yield* getLinksRecursively(child); } } - function validateLinks(tree, vfile) { const currentFileURL = pathToFileURL(path$1.join(vfile.cwd, vfile.path)); let previousDefinitionLabel; @@ -22839,7 +16478,6 @@ function validateLinks(tree, vfile) { } } } - const remarkLintNodejsLinks = lintRule( "remark-lint:nodejs-links", validateLinks @@ -22849,60 +16487,41 @@ const remarkLintNodejsLinks = lintRule( function isNothing(subject) { return (typeof subject === 'undefined') || (subject === null); } - - function isObject(subject) { return (typeof subject === 'object') && (subject !== null); } - - function toArray(sequence) { if (Array.isArray(sequence)) return sequence; else if (isNothing(sequence)) return []; - return [ sequence ]; } - - function extend(target, source) { var index, length, key, sourceKeys; - if (source) { sourceKeys = Object.keys(source); - for (index = 0, length = sourceKeys.length; index < length; index += 1) { key = sourceKeys[index]; target[key] = source[key]; } } - return target; } - - function repeat(string, count) { var result = '', cycle; - for (cycle = 0; cycle < count; cycle += 1) { result += string; } - return result; } - - function isNegativeZero(number) { return (number === 0) && (Number.NEGATIVE_INFINITY === 1 / number); } - - var isNothing_1 = isNothing; var isObject_1 = isObject; var toArray_1 = toArray; var repeat_1 = repeat; var isNegativeZero_1 = isNegativeZero; var extend_1 = extend; - var common = { isNothing: isNothing_1, isObject: isObject_1, @@ -22911,120 +16530,79 @@ var common = { isNegativeZero: isNegativeZero_1, extend: extend_1 }; - -// YAML error class. http://stackoverflow.com/questions/8458984 - - function formatError(exception, compact) { var where = '', message = exception.reason || '(unknown reason)'; - if (!exception.mark) return message; - if (exception.mark.name) { where += 'in "' + exception.mark.name + '" '; } - where += '(' + (exception.mark.line + 1) + ':' + (exception.mark.column + 1) + ')'; - if (!compact && exception.mark.snippet) { where += '\n\n' + exception.mark.snippet; } - return message + ' ' + where; } - - function YAMLException$1(reason, mark) { - // Super constructor Error.call(this); - this.name = 'YAMLException'; this.reason = reason; this.mark = mark; this.message = formatError(this, false); - - // Include stack trace in error object if (Error.captureStackTrace) { - // Chrome and NodeJS Error.captureStackTrace(this, this.constructor); } else { - // FF, IE 10+ and Safari 6+. Fallback for others this.stack = (new Error()).stack || ''; } } - - -// Inherit from Error YAMLException$1.prototype = Object.create(Error.prototype); YAMLException$1.prototype.constructor = YAMLException$1; - - YAMLException$1.prototype.toString = function toString(compact) { return this.name + ': ' + formatError(this, compact); }; - - var exception = YAMLException$1; - -// get snippet for a single line, respecting maxLength function getLine(buffer, lineStart, lineEnd, position, maxLineLength) { var head = ''; var tail = ''; var maxHalfLength = Math.floor(maxLineLength / 2) - 1; - if (position - lineStart > maxHalfLength) { head = ' ... '; lineStart = position - maxHalfLength + head.length; } - if (lineEnd - position > maxHalfLength) { tail = ' ...'; lineEnd = position + maxHalfLength - tail.length; } - return { str: head + buffer.slice(lineStart, lineEnd).replace(/\t/g, '→') + tail, - pos: position - lineStart + head.length // relative position + pos: position - lineStart + head.length }; } - - function padStart(string, max) { return common.repeat(' ', max - string.length) + string; } - - function makeSnippet(mark, options) { options = Object.create(options || null); - if (!mark.buffer) return null; - if (!options.maxLength) options.maxLength = 79; if (typeof options.indent !== 'number') options.indent = 1; if (typeof options.linesBefore !== 'number') options.linesBefore = 3; if (typeof options.linesAfter !== 'number') options.linesAfter = 2; - var re = /\r?\n|\r|\0/g; var lineStarts = [ 0 ]; var lineEnds = []; var match; var foundLineNo = -1; - while ((match = re.exec(mark.buffer))) { lineEnds.push(match.index); lineStarts.push(match.index + match[0].length); - if (mark.position <= match.index && foundLineNo < 0) { foundLineNo = lineStarts.length - 2; } } - if (foundLineNo < 0) foundLineNo = lineStarts.length - 1; - var result = '', i, line; var lineNoLength = Math.min(mark.line + options.linesAfter, lineEnds.length).toString().length; var maxLineLength = options.maxLength - (options.indent + lineNoLength + 3); - for (i = 1; i <= options.linesBefore; i++) { if (foundLineNo - i < 0) break; line = getLine( @@ -23037,12 +16615,10 @@ function makeSnippet(mark, options) { result = common.repeat(' ', options.indent) + padStart((mark.line - i + 1).toString(), lineNoLength) + ' | ' + line.str + '\n' + result; } - line = getLine(mark.buffer, lineStarts[foundLineNo], lineEnds[foundLineNo], mark.position, maxLineLength); result += common.repeat(' ', options.indent) + padStart((mark.line + 1).toString(), lineNoLength) + ' | ' + line.str + '\n'; result += common.repeat('-', options.indent + lineNoLength + 3 + line.pos) + '^' + '\n'; - for (i = 1; i <= options.linesAfter; i++) { if (foundLineNo + i >= lineEnds.length) break; line = getLine( @@ -23055,13 +16631,9 @@ function makeSnippet(mark, options) { result += common.repeat(' ', options.indent) + padStart((mark.line + i + 1).toString(), lineNoLength) + ' | ' + line.str + '\n'; } - return result.replace(/\n$/, ''); } - - var snippet = makeSnippet; - var TYPE_CONSTRUCTOR_OPTIONS = [ 'kind', 'multi', @@ -23074,16 +16646,13 @@ var TYPE_CONSTRUCTOR_OPTIONS = [ 'defaultStyle', 'styleAliases' ]; - var YAML_NODE_KINDS = [ 'scalar', 'sequence', 'mapping' ]; - function compileStyleAliases(map) { var result = {}; - if (map !== null) { Object.keys(map).forEach(function (style) { map[style].forEach(function (alias) { @@ -23091,21 +16660,16 @@ function compileStyleAliases(map) { }); }); } - return result; } - function Type$1(tag, options) { options = options || {}; - Object.keys(options).forEach(function (name) { if (TYPE_CONSTRUCTOR_OPTIONS.indexOf(name) === -1) { throw new exception('Unknown option "' + name + '" is met in definition of "' + tag + '" YAML type.'); } }); - - // TODO: Add tag format check. - this.options = options; // keep original options in case user wants to extend this type later + this.options = options; this.tag = tag; this.kind = options['kind'] || null; this.resolve = options['resolve'] || function () { return true; }; @@ -23117,43 +16681,27 @@ function Type$1(tag, options) { this.defaultStyle = options['defaultStyle'] || null; this.multi = options['multi'] || false; this.styleAliases = compileStyleAliases(options['styleAliases'] || null); - if (YAML_NODE_KINDS.indexOf(this.kind) === -1) { throw new exception('Unknown kind "' + this.kind + '" is specified for "' + tag + '" YAML type.'); } } - var type = Type$1; - -/*eslint-disable max-len*/ - - - - - function compileList(schema, name) { var result = []; - schema[name].forEach(function (currentType) { var newIndex = result.length; - result.forEach(function (previousType, previousIndex) { if (previousType.tag === currentType.tag && previousType.kind === currentType.kind && previousType.multi === currentType.multi) { - newIndex = previousIndex; } }); - result[newIndex] = currentType; }); - return result; } - - -function compileMap(/* lists... */) { +function compileMap() { var result = { scalar: {}, sequence: {}, @@ -23166,7 +16714,6 @@ function compileMap(/* lists... */) { fallback: [] } }, index, length; - function collectType(type) { if (type.multi) { result.multi[type.kind].push(type); @@ -23175,91 +16722,65 @@ function compileMap(/* lists... */) { result[type.kind][type.tag] = result['fallback'][type.tag] = type; } } - for (index = 0, length = arguments.length; index < length; index += 1) { arguments[index].forEach(collectType); } return result; } - - function Schema$1(definition) { return this.extend(definition); } - - Schema$1.prototype.extend = function extend(definition) { var implicit = []; var explicit = []; - if (definition instanceof type) { - // Schema.extend(type) explicit.push(definition); - } else if (Array.isArray(definition)) { - // Schema.extend([ type1, type2, ... ]) explicit = explicit.concat(definition); - } else if (definition && (Array.isArray(definition.implicit) || Array.isArray(definition.explicit))) { - // Schema.extend({ explicit: [ type1, type2, ... ], implicit: [ type1, type2, ... ] }) if (definition.implicit) implicit = implicit.concat(definition.implicit); if (definition.explicit) explicit = explicit.concat(definition.explicit); - } else { throw new exception('Schema.extend argument should be a Type, [ Type ], ' + 'or a schema definition ({ implicit: [...], explicit: [...] })'); } - implicit.forEach(function (type$1) { if (!(type$1 instanceof type)) { throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } - if (type$1.loadKind && type$1.loadKind !== 'scalar') { throw new exception('There is a non-scalar type in the implicit list of a schema. Implicit resolving of such types is not supported.'); } - if (type$1.multi) { throw new exception('There is a multi type in the implicit list of a schema. Multi tags can only be listed as explicit.'); } }); - explicit.forEach(function (type$1) { if (!(type$1 instanceof type)) { throw new exception('Specified list of YAML types (or a single Type object) contains a non-Type object.'); } }); - var result = Object.create(Schema$1.prototype); - result.implicit = (this.implicit || []).concat(implicit); result.explicit = (this.explicit || []).concat(explicit); - result.compiledImplicit = compileList(result, 'implicit'); result.compiledExplicit = compileList(result, 'explicit'); result.compiledTypeMap = compileMap(result.compiledImplicit, result.compiledExplicit); - return result; }; - - var schema = Schema$1; - var str = new type('tag:yaml.org,2002:str', { kind: 'scalar', construct: function (data) { return data !== null ? data : ''; } }); - var seq = new type('tag:yaml.org,2002:seq', { kind: 'sequence', construct: function (data) { return data !== null ? data : []; } }); - var map = new type('tag:yaml.org,2002:map', { kind: 'mapping', construct: function (data) { return data !== null ? data : {}; } }); - var failsafe = new schema({ explicit: [ str, @@ -23267,24 +16788,18 @@ var failsafe = new schema({ map ] }); - function resolveYamlNull(data) { if (data === null) return true; - var max = data.length; - return (max === 1 && data === '~') || (max === 4 && (data === 'null' || data === 'Null' || data === 'NULL')); } - function constructYamlNull() { return null; } - function isNull(object) { return object === null; } - var _null = new type('tag:yaml.org,2002:null', { kind: 'scalar', resolve: resolveYamlNull, @@ -23299,26 +16814,20 @@ var _null = new type('tag:yaml.org,2002:null', { }, defaultStyle: 'lowercase' }); - function resolveYamlBoolean(data) { if (data === null) return false; - var max = data.length; - return (max === 4 && (data === 'true' || data === 'True' || data === 'TRUE')) || (max === 5 && (data === 'false' || data === 'False' || data === 'FALSE')); } - function constructYamlBoolean(data) { return data === 'true' || data === 'True' || data === 'TRUE'; } - function isBoolean(object) { return Object.prototype.toString.call(object) === '[object Boolean]'; } - var bool = new type('tag:yaml.org,2002:bool', { kind: 'scalar', resolve: resolveYamlBoolean, @@ -23331,49 +16840,33 @@ var bool = new type('tag:yaml.org,2002:bool', { }, defaultStyle: 'lowercase' }); - function isHexCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) || - ((0x41/* A */ <= c) && (c <= 0x46/* F */)) || - ((0x61/* a */ <= c) && (c <= 0x66/* f */)); + return ((0x30 <= c) && (c <= 0x39)) || + ((0x41 <= c) && (c <= 0x46)) || + ((0x61 <= c) && (c <= 0x66)); } - function isOctCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x37/* 7 */)); + return ((0x30 <= c) && (c <= 0x37)); } - function isDecCode(c) { - return ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)); + return ((0x30 <= c) && (c <= 0x39)); } - function resolveYamlInteger(data) { if (data === null) return false; - var max = data.length, index = 0, hasDigits = false, ch; - if (!max) return false; - ch = data[index]; - - // sign if (ch === '-' || ch === '+') { ch = data[++index]; } - if (ch === '0') { - // 0 if (index + 1 === max) return true; ch = data[++index]; - - // base 2, base 8, base 16 - if (ch === 'b') { - // base 2 index++; - for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; @@ -23382,12 +16875,8 @@ function resolveYamlInteger(data) { } return hasDigits && ch !== '_'; } - - if (ch === 'x') { - // base 16 index++; - for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; @@ -23396,12 +16885,8 @@ function resolveYamlInteger(data) { } return hasDigits && ch !== '_'; } - - if (ch === 'o') { - // base 8 index++; - for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; @@ -23411,12 +16896,7 @@ function resolveYamlInteger(data) { return hasDigits && ch !== '_'; } } - - // base 10 (except 0) - - // value should not start with `_`; if (ch === '_') return false; - for (; index < max; index++) { ch = data[index]; if (ch === '_') continue; @@ -23425,44 +16905,32 @@ function resolveYamlInteger(data) { } hasDigits = true; } - - // Should have digits and should not end with `_` if (!hasDigits || ch === '_') return false; - return true; } - function constructYamlInteger(data) { var value = data, sign = 1, ch; - if (value.indexOf('_') !== -1) { value = value.replace(/_/g, ''); } - ch = value[0]; - if (ch === '-' || ch === '+') { if (ch === '-') sign = -1; value = value.slice(1); ch = value[0]; } - if (value === '0') return 0; - if (ch === '0') { if (value[1] === 'b') return sign * parseInt(value.slice(2), 2); if (value[1] === 'x') return sign * parseInt(value.slice(2), 16); if (value[1] === 'o') return sign * parseInt(value.slice(2), 8); } - return sign * parseInt(value, 10); } - function isInteger(object) { return (Object.prototype.toString.call(object)) === '[object Number]' && (object % 1 === 0 && !common.isNegativeZero(object)); } - var int = new type('tag:yaml.org,2002:int', { kind: 'scalar', resolve: resolveYamlInteger, @@ -23472,7 +16940,6 @@ var int = new type('tag:yaml.org,2002:int', { binary: function (obj) { return obj >= 0 ? '0b' + obj.toString(2) : '-0b' + obj.toString(2).slice(1); }, octal: function (obj) { return obj >= 0 ? '0o' + obj.toString(8) : '-0o' + obj.toString(8).slice(1); }, decimal: function (obj) { return obj.toString(10); }, - /* eslint-disable max-len */ hexadecimal: function (obj) { return obj >= 0 ? '0x' + obj.toString(16).toUpperCase() : '-0x' + obj.toString(16).toUpperCase().slice(1); } }, defaultStyle: 'decimal', @@ -23483,56 +16950,36 @@ var int = new type('tag:yaml.org,2002:int', { hexadecimal: [ 16, 'hex' ] } }); - var YAML_FLOAT_PATTERN = new RegExp( - // 2.5e4, 2.5 and integers '^(?:[-+]?(?:[0-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?' + - // .2e4, .2 - // special case, seems not from spec '|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?' + - // .inf '|[-+]?\\.(?:inf|Inf|INF)' + - // .nan '|\\.(?:nan|NaN|NAN))$'); - function resolveYamlFloat(data) { if (data === null) return false; - if (!YAML_FLOAT_PATTERN.test(data) || - // Quick hack to not allow integers end with `_` - // Probably should update regexp & check speed data[data.length - 1] === '_') { return false; } - return true; } - function constructYamlFloat(data) { var value, sign; - value = data.replace(/_/g, '').toLowerCase(); sign = value[0] === '-' ? -1 : 1; - if ('+-'.indexOf(value[0]) >= 0) { value = value.slice(1); } - if (value === '.inf') { return (sign === 1) ? Number.POSITIVE_INFINITY : Number.NEGATIVE_INFINITY; - } else if (value === '.nan') { return NaN; } return sign * parseFloat(value, 10); } - - var SCIENTIFIC_WITHOUT_DOT = /^[-+]?[0-9]+e/; - function representYamlFloat(object, style) { var res; - if (isNaN(object)) { switch (style) { case 'lowercase': return '.nan'; @@ -23554,20 +17001,13 @@ function representYamlFloat(object, style) { } else if (common.isNegativeZero(object)) { return '-0.0'; } - res = object.toString(10); - - // JS stringifier can build scientific format without dots: 5e-100, - // while YAML requres dot: 5.e-100. Fix it with simple hack - return SCIENTIFIC_WITHOUT_DOT.test(res) ? res.replace('e', '.e') : res; } - function isFloat(object) { return (Object.prototype.toString.call(object) === '[object Number]') && (object % 1 !== 0 || common.isNegativeZero(object)); } - var float = new type('tag:yaml.org,2002:float', { kind: 'scalar', resolve: resolveYamlFloat, @@ -23576,7 +17016,6 @@ var float = new type('tag:yaml.org,2002:float', { represent: representYamlFloat, defaultStyle: 'lowercase' }); - var json = failsafe.extend({ implicit: [ _null, @@ -23585,86 +17024,63 @@ var json = failsafe.extend({ float ] }); - var core = json; - var YAML_DATE_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9])' + // [2] month - '-([0-9][0-9])$'); // [3] day - + '^([0-9][0-9][0-9][0-9])' + + '-([0-9][0-9])' + + '-([0-9][0-9])$'); var YAML_TIMESTAMP_REGEXP = new RegExp( - '^([0-9][0-9][0-9][0-9])' + // [1] year - '-([0-9][0-9]?)' + // [2] month - '-([0-9][0-9]?)' + // [3] day - '(?:[Tt]|[ \\t]+)' + // ... - '([0-9][0-9]?)' + // [4] hour - ':([0-9][0-9])' + // [5] minute - ':([0-9][0-9])' + // [6] second - '(?:\\.([0-9]*))?' + // [7] fraction - '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + // [8] tz [9] tz_sign [10] tz_hour - '(?::([0-9][0-9]))?))?$'); // [11] tz_minute - + '^([0-9][0-9][0-9][0-9])' + + '-([0-9][0-9]?)' + + '-([0-9][0-9]?)' + + '(?:[Tt]|[ \\t]+)' + + '([0-9][0-9]?)' + + ':([0-9][0-9])' + + ':([0-9][0-9])' + + '(?:\\.([0-9]*))?' + + '(?:[ \\t]*(Z|([-+])([0-9][0-9]?)' + + '(?::([0-9][0-9]))?))?$'); function resolveYamlTimestamp(data) { if (data === null) return false; if (YAML_DATE_REGEXP.exec(data) !== null) return true; if (YAML_TIMESTAMP_REGEXP.exec(data) !== null) return true; return false; } - function constructYamlTimestamp(data) { var match, year, month, day, hour, minute, second, fraction = 0, delta = null, tz_hour, tz_minute, date; - match = YAML_DATE_REGEXP.exec(data); if (match === null) match = YAML_TIMESTAMP_REGEXP.exec(data); - if (match === null) throw new Error('Date resolve error'); - - // match: [1] year [2] month [3] day - year = +(match[1]); - month = +(match[2]) - 1; // JS month starts with 0 + month = +(match[2]) - 1; day = +(match[3]); - - if (!match[4]) { // no hour + if (!match[4]) { return new Date(Date.UTC(year, month, day)); } - - // match: [4] hour [5] minute [6] second [7] fraction - hour = +(match[4]); minute = +(match[5]); second = +(match[6]); - if (match[7]) { fraction = match[7].slice(0, 3); - while (fraction.length < 3) { // milli-seconds + while (fraction.length < 3) { fraction += '0'; } fraction = +fraction; } - - // match: [8] tz [9] tz_sign [10] tz_hour [11] tz_minute - if (match[9]) { tz_hour = +(match[10]); tz_minute = +(match[11] || 0); - delta = (tz_hour * 60 + tz_minute) * 60000; // delta in mili-seconds + delta = (tz_hour * 60 + tz_minute) * 60000; if (match[9] === '-') delta = -delta; } - date = new Date(Date.UTC(year, month, day, hour, minute, second, fraction)); - if (delta) date.setTime(date.getTime() - delta); - return date; } - -function representYamlTimestamp(object /*, style*/) { +function representYamlTimestamp(object ) { return object.toISOString(); } - var timestamp = new type('tag:yaml.org,2002:timestamp', { kind: 'scalar', resolve: resolveYamlTimestamp, @@ -23672,72 +17088,41 @@ var timestamp = new type('tag:yaml.org,2002:timestamp', { instanceOf: Date, represent: representYamlTimestamp }); - function resolveYamlMerge(data) { return data === '<<' || data === null; } - var merge = new type('tag:yaml.org,2002:merge', { kind: 'scalar', resolve: resolveYamlMerge }); - -/*eslint-disable no-bitwise*/ - - - - - -// [ 64, 65, 66 ] -> [ padding, CR, LF ] var BASE64_MAP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r'; - - function resolveYamlBinary(data) { if (data === null) return false; - var code, idx, bitlen = 0, max = data.length, map = BASE64_MAP; - - // Convert one by one. for (idx = 0; idx < max; idx++) { code = map.indexOf(data.charAt(idx)); - - // Skip CR/LF if (code > 64) continue; - - // Fail on illegal characters if (code < 0) return false; - bitlen += 6; } - - // If there are any bits left, source was corrupted return (bitlen % 8) === 0; } - function constructYamlBinary(data) { var idx, tailbits, - input = data.replace(/[\r\n=]/g, ''), // remove CR/LF & padding to simplify scan + input = data.replace(/[\r\n=]/g, ''), max = input.length, map = BASE64_MAP, bits = 0, result = []; - - // Collect by 6*4 bits (3 bytes) - for (idx = 0; idx < max; idx++) { if ((idx % 4 === 0) && idx) { result.push((bits >> 16) & 0xFF); result.push((bits >> 8) & 0xFF); result.push(bits & 0xFF); } - bits = (bits << 6) | map.indexOf(input.charAt(idx)); } - - // Dump tail - tailbits = (max % 4) * 6; - if (tailbits === 0) { result.push((bits >> 16) & 0xFF); result.push((bits >> 8) & 0xFF); @@ -23748,17 +17133,12 @@ function constructYamlBinary(data) { } else if (tailbits === 12) { result.push((bits >> 4) & 0xFF); } - return new Uint8Array(result); } - -function representYamlBinary(object /*, style*/) { +function representYamlBinary(object ) { var result = '', bits = 0, idx, tail, max = object.length, map = BASE64_MAP; - - // Convert every three bytes to 4 ASCII characters. - for (idx = 0; idx < max; idx++) { if ((idx % 3 === 0) && idx) { result += map[(bits >> 18) & 0x3F]; @@ -23766,14 +17146,9 @@ function representYamlBinary(object /*, style*/) { result += map[(bits >> 6) & 0x3F]; result += map[bits & 0x3F]; } - bits = (bits << 8) + object[idx]; } - - // Dump tail - tail = max % 3; - if (tail === 0) { result += map[(bits >> 18) & 0x3F]; result += map[(bits >> 12) & 0x3F]; @@ -23790,14 +17165,11 @@ function representYamlBinary(object /*, style*/) { result += map[64]; result += map[64]; } - return result; } - function isBinary(obj) { return Object.prototype.toString.call(obj) === '[object Uint8Array]'; } - var binary = new type('tag:yaml.org,2002:binary', { kind: 'scalar', resolve: resolveYamlBinary, @@ -23805,124 +17177,87 @@ var binary = new type('tag:yaml.org,2002:binary', { predicate: isBinary, represent: representYamlBinary }); - var _hasOwnProperty$3 = Object.prototype.hasOwnProperty; var _toString$2 = Object.prototype.toString; - function resolveYamlOmap(data) { if (data === null) return true; - var objectKeys = [], index, length, pair, pairKey, pairHasKey, object = data; - for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; pairHasKey = false; - if (_toString$2.call(pair) !== '[object Object]') return false; - for (pairKey in pair) { if (_hasOwnProperty$3.call(pair, pairKey)) { if (!pairHasKey) pairHasKey = true; else return false; } } - if (!pairHasKey) return false; - if (objectKeys.indexOf(pairKey) === -1) objectKeys.push(pairKey); else return false; } - return true; } - function constructYamlOmap(data) { return data !== null ? data : []; } - var omap = new type('tag:yaml.org,2002:omap', { kind: 'sequence', resolve: resolveYamlOmap, construct: constructYamlOmap }); - var _toString$1 = Object.prototype.toString; - function resolveYamlPairs(data) { if (data === null) return true; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; - if (_toString$1.call(pair) !== '[object Object]') return false; - keys = Object.keys(pair); - if (keys.length !== 1) return false; - result[index] = [ keys[0], pair[keys[0]] ]; } - return true; } - function constructYamlPairs(data) { if (data === null) return []; - var index, length, pair, keys, result, object = data; - result = new Array(object.length); - for (index = 0, length = object.length; index < length; index += 1) { pair = object[index]; - keys = Object.keys(pair); - result[index] = [ keys[0], pair[keys[0]] ]; } - return result; } - var pairs = new type('tag:yaml.org,2002:pairs', { kind: 'sequence', resolve: resolveYamlPairs, construct: constructYamlPairs }); - var _hasOwnProperty$2 = Object.prototype.hasOwnProperty; - function resolveYamlSet(data) { if (data === null) return true; - var key, object = data; - for (key in object) { if (_hasOwnProperty$2.call(object, key)) { if (object[key] !== null) return false; } } - return true; } - function constructYamlSet(data) { return data !== null ? data : {}; } - var set = new type('tag:yaml.org,2002:set', { kind: 'mapping', resolve: resolveYamlSet, construct: constructYamlSet }); - var _default = core.extend({ implicit: [ timestamp, @@ -23935,276 +17270,186 @@ var _default = core.extend({ set ] }); - -/*eslint-disable max-len,no-use-before-define*/ - - - - - - - var _hasOwnProperty$1 = Object.prototype.hasOwnProperty; - - var CONTEXT_FLOW_IN = 1; var CONTEXT_FLOW_OUT = 2; var CONTEXT_BLOCK_IN = 3; var CONTEXT_BLOCK_OUT = 4; - - var CHOMPING_CLIP = 1; var CHOMPING_STRIP = 2; var CHOMPING_KEEP = 3; - - var PATTERN_NON_PRINTABLE = /[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/; var PATTERN_NON_ASCII_LINE_BREAKS = /[\x85\u2028\u2029]/; var PATTERN_FLOW_INDICATORS = /[,\[\]\{\}]/; var PATTERN_TAG_HANDLE = /^(?:!|!!|![a-z\-]+!)$/i; var PATTERN_TAG_URI = /^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i; - - function _class(obj) { return Object.prototype.toString.call(obj); } - function is_EOL(c) { - return (c === 0x0A/* LF */) || (c === 0x0D/* CR */); + return (c === 0x0A) || (c === 0x0D); } - function is_WHITE_SPACE(c) { - return (c === 0x09/* Tab */) || (c === 0x20/* Space */); + return (c === 0x09) || (c === 0x20); } - function is_WS_OR_EOL(c) { - return (c === 0x09/* Tab */) || - (c === 0x20/* Space */) || - (c === 0x0A/* LF */) || - (c === 0x0D/* CR */); + return (c === 0x09) || + (c === 0x20) || + (c === 0x0A) || + (c === 0x0D); } - function is_FLOW_INDICATOR(c) { - return c === 0x2C/* , */ || - c === 0x5B/* [ */ || - c === 0x5D/* ] */ || - c === 0x7B/* { */ || - c === 0x7D/* } */; + return c === 0x2C || + c === 0x5B || + c === 0x5D || + c === 0x7B || + c === 0x7D; } - function fromHexCode(c) { var lc; - - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + if ((0x30 <= c) && (c <= 0x39)) { return c - 0x30; } - - /*eslint-disable no-bitwise*/ lc = c | 0x20; - - if ((0x61/* a */ <= lc) && (lc <= 0x66/* f */)) { + if ((0x61 <= lc) && (lc <= 0x66)) { return lc - 0x61 + 10; } - return -1; } - function escapedHexLen(c) { - if (c === 0x78/* x */) { return 2; } - if (c === 0x75/* u */) { return 4; } - if (c === 0x55/* U */) { return 8; } + if (c === 0x78) { return 2; } + if (c === 0x75) { return 4; } + if (c === 0x55) { return 8; } return 0; } - function fromDecimalCode(c) { - if ((0x30/* 0 */ <= c) && (c <= 0x39/* 9 */)) { + if ((0x30 <= c) && (c <= 0x39)) { return c - 0x30; } - return -1; } - function simpleEscapeSequence(c) { - /* eslint-disable indent */ - return (c === 0x30/* 0 */) ? '\x00' : - (c === 0x61/* a */) ? '\x07' : - (c === 0x62/* b */) ? '\x08' : - (c === 0x74/* t */) ? '\x09' : - (c === 0x09/* Tab */) ? '\x09' : - (c === 0x6E/* n */) ? '\x0A' : - (c === 0x76/* v */) ? '\x0B' : - (c === 0x66/* f */) ? '\x0C' : - (c === 0x72/* r */) ? '\x0D' : - (c === 0x65/* e */) ? '\x1B' : - (c === 0x20/* Space */) ? ' ' : - (c === 0x22/* " */) ? '\x22' : - (c === 0x2F/* / */) ? '/' : - (c === 0x5C/* \ */) ? '\x5C' : - (c === 0x4E/* N */) ? '\x85' : - (c === 0x5F/* _ */) ? '\xA0' : - (c === 0x4C/* L */) ? '\u2028' : - (c === 0x50/* P */) ? '\u2029' : ''; + return (c === 0x30) ? '\x00' : + (c === 0x61) ? '\x07' : + (c === 0x62) ? '\x08' : + (c === 0x74) ? '\x09' : + (c === 0x09) ? '\x09' : + (c === 0x6E) ? '\x0A' : + (c === 0x76) ? '\x0B' : + (c === 0x66) ? '\x0C' : + (c === 0x72) ? '\x0D' : + (c === 0x65) ? '\x1B' : + (c === 0x20) ? ' ' : + (c === 0x22) ? '\x22' : + (c === 0x2F) ? '/' : + (c === 0x5C) ? '\x5C' : + (c === 0x4E) ? '\x85' : + (c === 0x5F) ? '\xA0' : + (c === 0x4C) ? '\u2028' : + (c === 0x50) ? '\u2029' : ''; } - function charFromCodepoint(c) { if (c <= 0xFFFF) { return String.fromCharCode(c); } - // Encode UTF-16 surrogate pair - // https://en.wikipedia.org/wiki/UTF-16#Code_points_U.2B010000_to_U.2B10FFFF return String.fromCharCode( ((c - 0x010000) >> 10) + 0xD800, ((c - 0x010000) & 0x03FF) + 0xDC00 ); } - -var simpleEscapeCheck = new Array(256); // integer, for fast access +var simpleEscapeCheck = new Array(256); var simpleEscapeMap = new Array(256); for (var i = 0; i < 256; i++) { simpleEscapeCheck[i] = simpleEscapeSequence(i) ? 1 : 0; simpleEscapeMap[i] = simpleEscapeSequence(i); } - - function State$1(input, options) { this.input = input; - this.filename = options['filename'] || null; this.schema = options['schema'] || _default; this.onWarning = options['onWarning'] || null; - // (Hidden) Remove? makes the loader to expect YAML 1.1 documents - // if such documents have no explicit %YAML directive this.legacy = options['legacy'] || false; - this.json = options['json'] || false; this.listener = options['listener'] || null; - this.implicitTypes = this.schema.compiledImplicit; this.typeMap = this.schema.compiledTypeMap; - this.length = input.length; this.position = 0; this.line = 0; this.lineStart = 0; this.lineIndent = 0; - - // position of first leading tab in the current line, - // used to make sure there are no tabs in the indentation this.firstTabInLine = -1; - this.documents = []; - - /* - this.version; - this.checkLineBreaks; - this.tagMap; - this.anchorMap; - this.tag; - this.anchor; - this.kind; - this.result;*/ - } - - function generateError(state, message) { var mark = { name: state.filename, - buffer: state.input.slice(0, -1), // omit trailing \0 + buffer: state.input.slice(0, -1), position: state.position, line: state.line, column: state.position - state.lineStart }; - mark.snippet = snippet(mark); - return new exception(message, mark); } - function throwError(state, message) { throw generateError(state, message); } - function throwWarning(state, message) { if (state.onWarning) { state.onWarning.call(null, generateError(state, message)); } } - - var directiveHandlers = { - YAML: function handleYamlDirective(state, name, args) { - var match, major, minor; - if (state.version !== null) { throwError(state, 'duplication of %YAML directive'); } - if (args.length !== 1) { throwError(state, 'YAML directive accepts exactly one argument'); } - match = /^([0-9]+)\.([0-9]+)$/.exec(args[0]); - if (match === null) { throwError(state, 'ill-formed argument of the YAML directive'); } - major = parseInt(match[1], 10); minor = parseInt(match[2], 10); - if (major !== 1) { throwError(state, 'unacceptable YAML version of the document'); } - state.version = args[0]; state.checkLineBreaks = (minor < 2); - if (minor !== 1 && minor !== 2) { throwWarning(state, 'unsupported YAML version of the document'); } }, - TAG: function handleTagDirective(state, name, args) { - var handle, prefix; - if (args.length !== 2) { throwError(state, 'TAG directive accepts exactly two arguments'); } - handle = args[0]; prefix = args[1]; - if (!PATTERN_TAG_HANDLE.test(handle)) { throwError(state, 'ill-formed tag handle (first argument) of the TAG directive'); } - if (_hasOwnProperty$1.call(state.tagMap, handle)) { throwError(state, 'there is a previously declared suffix for "' + handle + '" tag handle'); } - if (!PATTERN_TAG_URI.test(prefix)) { throwError(state, 'ill-formed tag prefix (second argument) of the TAG directive'); } - try { prefix = decodeURIComponent(prefix); } catch (err) { throwError(state, 'tag prefix is malformed: ' + prefix); } - state.tagMap[handle] = prefix; } }; - - function captureSegment(state, start, end, checkJson) { var _position, _length, _character, _result; - if (start < end) { _result = state.input.slice(start, end); - if (checkJson) { for (_position = 0, _length = _result.length; _position < _length; _position += 1) { _character = _result.charCodeAt(_position); @@ -24216,66 +17461,44 @@ function captureSegment(state, start, end, checkJson) { } else if (PATTERN_NON_PRINTABLE.test(_result)) { throwError(state, 'the stream contains non-printable characters'); } - state.result += _result; } } - function mergeMappings(state, destination, source, overridableKeys) { var sourceKeys, key, index, quantity; - if (!common.isObject(source)) { throwError(state, 'cannot merge mappings; the provided source object is unacceptable'); } - sourceKeys = Object.keys(source); - for (index = 0, quantity = sourceKeys.length; index < quantity; index += 1) { key = sourceKeys[index]; - if (!_hasOwnProperty$1.call(destination, key)) { destination[key] = source[key]; overridableKeys[key] = true; } } } - function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, startLine, startLineStart, startPos) { - var index, quantity; - - // The output is a plain object here, so keys can only be strings. - // We need to convert keyNode to a string, but doing so can hang the process - // (deeply nested arrays that explode exponentially using aliases). if (Array.isArray(keyNode)) { keyNode = Array.prototype.slice.call(keyNode); - for (index = 0, quantity = keyNode.length; index < quantity; index += 1) { if (Array.isArray(keyNode[index])) { throwError(state, 'nested arrays are not supported inside keys'); } - if (typeof keyNode === 'object' && _class(keyNode[index]) === '[object Object]') { keyNode[index] = '[object Object]'; } } } - - // Avoid code execution in load() via toString property - // (still use its own toString for arrays, timestamps, - // and whatever user schema extensions happen to have @@toStringTag) if (typeof keyNode === 'object' && _class(keyNode) === '[object Object]') { keyNode = '[object Object]'; } - - keyNode = String(keyNode); - if (_result === null) { _result = {}; } - if (keyTag === 'tag:yaml.org,2002:merge') { if (Array.isArray(valueNode)) { for (index = 0, quantity = valueNode.length; index < quantity; index += 1) { @@ -24293,8 +17516,6 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu state.position = startPos || state.position; throwError(state, 'duplicated mapping key'); } - - // used for this specific key only because Object.defineProperty is slow if (keyNode === '__proto__') { Object.defineProperty(_result, keyNode, { configurable: true, @@ -24307,57 +17528,46 @@ function storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valu } delete overridableKeys[keyNode]; } - return _result; } - function readLineBreak(state) { var ch; - ch = state.input.charCodeAt(state.position); - - if (ch === 0x0A/* LF */) { + if (ch === 0x0A) { state.position++; - } else if (ch === 0x0D/* CR */) { + } else if (ch === 0x0D) { state.position++; - if (state.input.charCodeAt(state.position) === 0x0A/* LF */) { + if (state.input.charCodeAt(state.position) === 0x0A) { state.position++; } } else { throwError(state, 'a line break is expected'); } - state.line += 1; state.lineStart = state.position; state.firstTabInLine = -1; } - function skipSeparationSpace(state, allowComments, checkIndent) { var lineBreaks = 0, ch = state.input.charCodeAt(state.position); - while (ch !== 0) { while (is_WHITE_SPACE(ch)) { - if (ch === 0x09/* Tab */ && state.firstTabInLine === -1) { + if (ch === 0x09 && state.firstTabInLine === -1) { state.firstTabInLine = state.position; } ch = state.input.charCodeAt(++state.position); } - - if (allowComments && ch === 0x23/* # */) { + if (allowComments && ch === 0x23) { do { ch = state.input.charCodeAt(++state.position); - } while (ch !== 0x0A/* LF */ && ch !== 0x0D/* CR */ && ch !== 0); + } while (ch !== 0x0A && ch !== 0x0D && ch !== 0); } - if (is_EOL(ch)) { readLineBreak(state); - ch = state.input.charCodeAt(state.position); lineBreaks++; state.lineIndent = 0; - - while (ch === 0x20/* Space */) { + while (ch === 0x20) { state.lineIndent++; ch = state.input.charCodeAt(++state.position); } @@ -24365,38 +17575,26 @@ function skipSeparationSpace(state, allowComments, checkIndent) { break; } } - if (checkIndent !== -1 && lineBreaks !== 0 && state.lineIndent < checkIndent) { throwWarning(state, 'deficient indentation'); } - return lineBreaks; } - function testDocumentSeparator(state) { var _position = state.position, ch; - ch = state.input.charCodeAt(_position); - - // Condition state.position === state.lineStart is tested - // in parent on each call, for efficiency. No needs to test here again. - if ((ch === 0x2D/* - */ || ch === 0x2E/* . */) && + if ((ch === 0x2D || ch === 0x2E) && ch === state.input.charCodeAt(_position + 1) && ch === state.input.charCodeAt(_position + 2)) { - _position += 3; - ch = state.input.charCodeAt(_position); - if (ch === 0 || is_WS_OR_EOL(ch)) { return true; } } - return false; } - function writeFoldedLines(state, count) { if (count === 1) { state.result += ' '; @@ -24404,8 +17602,6 @@ function writeFoldedLines(state, count) { state.result += common.repeat('\n', count - 1); } } - - function readPlainScalar(state, nodeIndent, withinFlowCollection) { var preceding, following, @@ -24418,65 +17614,53 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { _kind = state.kind, _result = state.result, ch; - ch = state.input.charCodeAt(state.position); - if (is_WS_OR_EOL(ch) || is_FLOW_INDICATOR(ch) || - ch === 0x23/* # */ || - ch === 0x26/* & */ || - ch === 0x2A/* * */ || - ch === 0x21/* ! */ || - ch === 0x7C/* | */ || - ch === 0x3E/* > */ || - ch === 0x27/* ' */ || - ch === 0x22/* " */ || - ch === 0x25/* % */ || - ch === 0x40/* @ */ || - ch === 0x60/* ` */) { + ch === 0x23 || + ch === 0x26 || + ch === 0x2A || + ch === 0x21 || + ch === 0x7C || + ch === 0x3E || + ch === 0x27 || + ch === 0x22 || + ch === 0x25 || + ch === 0x40 || + ch === 0x60) { return false; } - - if (ch === 0x3F/* ? */ || ch === 0x2D/* - */) { + if (ch === 0x3F || ch === 0x2D) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { return false; } } - state.kind = 'scalar'; state.result = ''; captureStart = captureEnd = state.position; hasPendingContent = false; - while (ch !== 0) { - if (ch === 0x3A/* : */) { + if (ch === 0x3A) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following) || withinFlowCollection && is_FLOW_INDICATOR(following)) { break; } - - } else if (ch === 0x23/* # */) { + } else if (ch === 0x23) { preceding = state.input.charCodeAt(state.position - 1); - if (is_WS_OR_EOL(preceding)) { break; } - } else if ((state.position === state.lineStart && testDocumentSeparator(state)) || withinFlowCollection && is_FLOW_INDICATOR(ch)) { break; - } else if (is_EOL(ch)) { _line = state.line; _lineStart = state.lineStart; _lineIndent = state.lineIndent; skipSeparationSpace(state, false, -1); - if (state.lineIndent >= nodeIndent) { hasPendingContent = true; ch = state.input.charCodeAt(state.position); @@ -24489,77 +17673,60 @@ function readPlainScalar(state, nodeIndent, withinFlowCollection) { break; } } - if (hasPendingContent) { captureSegment(state, captureStart, captureEnd, false); writeFoldedLines(state, state.line - _line); captureStart = captureEnd = state.position; hasPendingContent = false; } - if (!is_WHITE_SPACE(ch)) { captureEnd = state.position + 1; } - ch = state.input.charCodeAt(++state.position); } - captureSegment(state, captureStart, captureEnd, false); - if (state.result) { return true; } - state.kind = _kind; state.result = _result; return false; } - function readSingleQuotedScalar(state, nodeIndent) { var ch, captureStart, captureEnd; - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x27/* ' */) { + if (ch !== 0x27) { return false; } - state.kind = 'scalar'; state.result = ''; state.position++; captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x27/* ' */) { + if (ch === 0x27) { captureSegment(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); - - if (ch === 0x27/* ' */) { + if (ch === 0x27) { captureStart = state.position; state.position++; captureEnd = state.position; } else { return true; } - } else if (is_EOL(ch)) { captureSegment(state, captureStart, captureEnd, true); writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { throwError(state, 'unexpected end of the document within a single quoted scalar'); - } else { state.position++; captureEnd = state.position; } } - throwError(state, 'unexpected end of the stream within a single quoted scalar'); } - function readDoubleQuotedScalar(state, nodeIndent) { var captureStart, captureEnd, @@ -24567,78 +17734,57 @@ function readDoubleQuotedScalar(state, nodeIndent) { hexResult, tmp, ch; - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x22/* " */) { + if (ch !== 0x22) { return false; } - state.kind = 'scalar'; state.result = ''; state.position++; captureStart = captureEnd = state.position; - while ((ch = state.input.charCodeAt(state.position)) !== 0) { - if (ch === 0x22/* " */) { + if (ch === 0x22) { captureSegment(state, captureStart, state.position, true); state.position++; return true; - - } else if (ch === 0x5C/* \ */) { + } else if (ch === 0x5C) { captureSegment(state, captureStart, state.position, true); ch = state.input.charCodeAt(++state.position); - if (is_EOL(ch)) { skipSeparationSpace(state, false, nodeIndent); - - // TODO: rework to inline fn with no type cast? } else if (ch < 256 && simpleEscapeCheck[ch]) { state.result += simpleEscapeMap[ch]; state.position++; - } else if ((tmp = escapedHexLen(ch)) > 0) { hexLength = tmp; hexResult = 0; - for (; hexLength > 0; hexLength--) { ch = state.input.charCodeAt(++state.position); - if ((tmp = fromHexCode(ch)) >= 0) { hexResult = (hexResult << 4) + tmp; - } else { throwError(state, 'expected hexadecimal character'); } } - state.result += charFromCodepoint(hexResult); - state.position++; - } else { throwError(state, 'unknown escape sequence'); } - captureStart = captureEnd = state.position; - } else if (is_EOL(ch)) { captureSegment(state, captureStart, captureEnd, true); writeFoldedLines(state, skipSeparationSpace(state, false, nodeIndent)); captureStart = captureEnd = state.position; - } else if (state.position === state.lineStart && testDocumentSeparator(state)) { throwError(state, 'unexpected end of the document within a double quoted scalar'); - } else { state.position++; captureEnd = state.position; } } - throwError(state, 'unexpected end of the stream within a double quoted scalar'); } - function readFlowCollection(state, nodeIndent) { var readNext = true, _line, @@ -24657,32 +17803,25 @@ function readFlowCollection(state, nodeIndent) { keyTag, valueNode, ch; - ch = state.input.charCodeAt(state.position); - - if (ch === 0x5B/* [ */) { - terminator = 0x5D;/* ] */ + if (ch === 0x5B) { + terminator = 0x5D; isMapping = false; _result = []; - } else if (ch === 0x7B/* { */) { - terminator = 0x7D;/* } */ + } else if (ch === 0x7B) { + terminator = 0x7D; isMapping = true; _result = {}; } else { return false; } - if (state.anchor !== null) { state.anchorMap[state.anchor] = _result; } - ch = state.input.charCodeAt(++state.position); - while (ch !== 0) { skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - if (ch === terminator) { state.position++; state.tag = _tag; @@ -24692,42 +17831,34 @@ function readFlowCollection(state, nodeIndent) { return true; } else if (!readNext) { throwError(state, 'missed comma between flow collection entries'); - } else if (ch === 0x2C/* , */) { - // "flow collection entries can never be completely empty", as per YAML 1.2, section 7.4 + } else if (ch === 0x2C) { throwError(state, "expected the node content, but found ','"); } - keyTag = keyNode = valueNode = null; isPair = isExplicitPair = false; - - if (ch === 0x3F/* ? */) { + if (ch === 0x3F) { following = state.input.charCodeAt(state.position + 1); - if (is_WS_OR_EOL(following)) { isPair = isExplicitPair = true; state.position++; skipSeparationSpace(state, true, nodeIndent); } } - - _line = state.line; // Save the current line. + _line = state.line; _lineStart = state.lineStart; _pos = state.position; composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); keyTag = state.tag; keyNode = state.result; skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - - if ((isExplicitPair || state.line === _line) && ch === 0x3A/* : */) { + if ((isExplicitPair || state.line === _line) && ch === 0x3A) { isPair = true; ch = state.input.charCodeAt(++state.position); skipSeparationSpace(state, true, nodeIndent); composeNode(state, nodeIndent, CONTEXT_FLOW_IN, false, true); valueNode = state.result; } - if (isMapping) { storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _line, _lineStart, _pos); } else if (isPair) { @@ -24735,22 +17866,17 @@ function readFlowCollection(state, nodeIndent) { } else { _result.push(keyNode); } - skipSeparationSpace(state, true, nodeIndent); - ch = state.input.charCodeAt(state.position); - - if (ch === 0x2C/* , */) { + if (ch === 0x2C) { readNext = true; ch = state.input.charCodeAt(++state.position); } else { readNext = false; } } - throwError(state, 'unexpected end of the stream within a flow collection'); } - function readBlockScalar(state, nodeIndent) { var captureStart, folding, @@ -24762,30 +17888,24 @@ function readBlockScalar(state, nodeIndent) { atMoreIndented = false, tmp, ch; - ch = state.input.charCodeAt(state.position); - - if (ch === 0x7C/* | */) { + if (ch === 0x7C) { folding = false; - } else if (ch === 0x3E/* > */) { + } else if (ch === 0x3E) { folding = true; } else { return false; } - state.kind = 'scalar'; state.result = ''; - while (ch !== 0) { ch = state.input.charCodeAt(++state.position); - - if (ch === 0x2B/* + */ || ch === 0x2D/* - */) { + if (ch === 0x2B || ch === 0x2D) { if (CHOMPING_CLIP === chomping) { - chomping = (ch === 0x2B/* + */) ? CHOMPING_KEEP : CHOMPING_STRIP; + chomping = (ch === 0x2B) ? CHOMPING_KEEP : CHOMPING_STRIP; } else { throwError(state, 'repeat of a chomping mode identifier'); } - } else if ((tmp = fromDecimalCode(ch)) >= 0) { if (tmp === 0) { throwError(state, 'bad explicit indentation width of a block scalar; it cannot be less than one'); @@ -24795,105 +17915,72 @@ function readBlockScalar(state, nodeIndent) { } else { throwError(state, 'repeat of an indentation width identifier'); } - } else { break; } } - if (is_WHITE_SPACE(ch)) { do { ch = state.input.charCodeAt(++state.position); } while (is_WHITE_SPACE(ch)); - - if (ch === 0x23/* # */) { + if (ch === 0x23) { do { ch = state.input.charCodeAt(++state.position); } while (!is_EOL(ch) && (ch !== 0)); } } - while (ch !== 0) { readLineBreak(state); state.lineIndent = 0; - ch = state.input.charCodeAt(state.position); - while ((!detectedIndent || state.lineIndent < textIndent) && - (ch === 0x20/* Space */)) { + (ch === 0x20)) { state.lineIndent++; ch = state.input.charCodeAt(++state.position); } - if (!detectedIndent && state.lineIndent > textIndent) { textIndent = state.lineIndent; } - if (is_EOL(ch)) { emptyLines++; continue; } - - // End of the scalar. if (state.lineIndent < textIndent) { - - // Perform the chomping. if (chomping === CHOMPING_KEEP) { state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); } else if (chomping === CHOMPING_CLIP) { - if (didReadContent) { // i.e. only if the scalar is not empty. + if (didReadContent) { state.result += '\n'; } } - - // Break this `while` cycle and go to the funciton's epilogue. break; } - - // Folded style: use fancy rules to handle line breaks. if (folding) { - - // Lines starting with white space characters (more-indented lines) are not folded. if (is_WHITE_SPACE(ch)) { atMoreIndented = true; - // except for the first content line (cf. Example 8.1) state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); - - // End of more-indented block. } else if (atMoreIndented) { atMoreIndented = false; state.result += common.repeat('\n', emptyLines + 1); - - // Just one line break - perceive as the same line. } else if (emptyLines === 0) { - if (didReadContent) { // i.e. only if we have already read some scalar content. + if (didReadContent) { state.result += ' '; } - - // Several line breaks - perceive as different lines. } else { state.result += common.repeat('\n', emptyLines); } - - // Literal style: just add exact number of line breaks between content lines. } else { - // Keep all line breaks except the header line break. state.result += common.repeat('\n', didReadContent ? 1 + emptyLines : emptyLines); } - didReadContent = true; detectedIndent = true; emptyLines = 0; captureStart = state.position; - while (!is_EOL(ch) && (ch !== 0)) { ch = state.input.charCodeAt(++state.position); } - captureSegment(state, captureStart, state.position, false); } - return true; } - function readBlockSequence(state, nodeIndent) { var _line, _tag = state.tag, @@ -24902,36 +17989,25 @@ function readBlockSequence(state, nodeIndent) { following, detected = false, ch; - - // there is a leading tab before this token, so it can't be a block sequence/mapping; - // it can still be flow sequence/mapping or a scalar if (state.firstTabInLine !== -1) return false; - if (state.anchor !== null) { state.anchorMap[state.anchor] = _result; } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { if (state.firstTabInLine !== -1) { state.position = state.firstTabInLine; throwError(state, 'tab characters must not be used in indentation'); } - - if (ch !== 0x2D/* - */) { + if (ch !== 0x2D) { break; } - following = state.input.charCodeAt(state.position + 1); - if (!is_WS_OR_EOL(following)) { break; } - detected = true; state.position++; - if (skipSeparationSpace(state, true, -1)) { if (state.lineIndent <= nodeIndent) { _result.push(null); @@ -24939,21 +18015,17 @@ function readBlockSequence(state, nodeIndent) { continue; } } - _line = state.line; composeNode(state, nodeIndent, CONTEXT_BLOCK_IN, false, true); _result.push(state.result); skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { throwError(state, 'bad indentation of a sequence entry'); } else if (state.lineIndent < nodeIndent) { break; } } - if (detected) { state.tag = _tag; state.anchor = _anchor; @@ -24963,7 +18035,6 @@ function readBlockSequence(state, nodeIndent) { } return false; } - function readBlockMapping(state, nodeIndent, flowIndent) { var following, allowCompact, @@ -24981,122 +18052,82 @@ function readBlockMapping(state, nodeIndent, flowIndent) { atExplicitKey = false, detected = false, ch; - - // there is a leading tab before this token, so it can't be a block sequence/mapping; - // it can still be flow sequence/mapping or a scalar if (state.firstTabInLine !== -1) return false; - if (state.anchor !== null) { state.anchorMap[state.anchor] = _result; } - ch = state.input.charCodeAt(state.position); - while (ch !== 0) { if (!atExplicitKey && state.firstTabInLine !== -1) { state.position = state.firstTabInLine; throwError(state, 'tab characters must not be used in indentation'); } - following = state.input.charCodeAt(state.position + 1); - _line = state.line; // Save the current line. - - // - // Explicit notation case. There are two separate blocks: - // first for the key (denoted by "?") and second for the value (denoted by ":") - // - if ((ch === 0x3F/* ? */ || ch === 0x3A/* : */) && is_WS_OR_EOL(following)) { - - if (ch === 0x3F/* ? */) { + _line = state.line; + if ((ch === 0x3F || ch === 0x3A) && is_WS_OR_EOL(following)) { + if (ch === 0x3F) { if (atExplicitKey) { storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); keyTag = keyNode = valueNode = null; } - detected = true; atExplicitKey = true; allowCompact = true; - } else if (atExplicitKey) { - // i.e. 0x3A/* : */ === character after the explicit key. atExplicitKey = false; allowCompact = true; - } else { throwError(state, 'incomplete explicit mapping pair; a key node is missed; or followed by a non-tabulated empty line'); } - state.position += 1; ch = following; - - // - // Implicit notation case. Flow-style node as the key first, then ":", and the value. - // } else { _keyLine = state.line; _keyLineStart = state.lineStart; _keyPos = state.position; - if (!composeNode(state, flowIndent, CONTEXT_FLOW_OUT, false, true)) { - // Neither implicit nor explicit notation. - // Reading is done. Go to the epilogue. break; } - if (state.line === _line) { ch = state.input.charCodeAt(state.position); - while (is_WHITE_SPACE(ch)) { ch = state.input.charCodeAt(++state.position); } - - if (ch === 0x3A/* : */) { + if (ch === 0x3A) { ch = state.input.charCodeAt(++state.position); - if (!is_WS_OR_EOL(ch)) { throwError(state, 'a whitespace character is expected after the key-value separator within a block mapping'); } - if (atExplicitKey) { storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); keyTag = keyNode = valueNode = null; } - detected = true; atExplicitKey = false; allowCompact = false; keyTag = state.tag; keyNode = state.result; - } else if (detected) { throwError(state, 'can not read an implicit mapping pair; a colon is missed'); - } else { state.tag = _tag; state.anchor = _anchor; - return true; // Keep the result of `composeNode`. + return true; } - } else if (detected) { throwError(state, 'can not read a block mapping entry; a multiline key may not be an implicit key'); - } else { state.tag = _tag; state.anchor = _anchor; - return true; // Keep the result of `composeNode`. + return true; } } - - // - // Common reading code for both explicit and implicit notations. - // if (state.line === _line || state.lineIndent > nodeIndent) { if (atExplicitKey) { _keyLine = state.line; _keyLineStart = state.lineStart; _keyPos = state.position; } - if (composeNode(state, nodeIndent, CONTEXT_BLOCK_OUT, true, allowCompact)) { if (atExplicitKey) { keyNode = state.result; @@ -25104,43 +18135,30 @@ function readBlockMapping(state, nodeIndent, flowIndent) { valueNode = state.result; } } - if (!atExplicitKey) { storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, valueNode, _keyLine, _keyLineStart, _keyPos); keyTag = keyNode = valueNode = null; } - skipSeparationSpace(state, true, -1); ch = state.input.charCodeAt(state.position); } - if ((state.line === _line || state.lineIndent > nodeIndent) && (ch !== 0)) { throwError(state, 'bad indentation of a mapping entry'); } else if (state.lineIndent < nodeIndent) { break; } } - - // - // Epilogue. - // - - // Special case: last mapping's node contains only the key in explicit notation. if (atExplicitKey) { storeMappingPair(state, _result, overridableKeys, keyTag, keyNode, null, _keyLine, _keyLineStart, _keyPos); } - - // Expose the resulting mapping. if (detected) { state.tag = _tag; state.anchor = _anchor; state.kind = 'mapping'; state.result = _result; } - return detected; } - function readTagProperty(state) { var _position, isVerbatim = false, @@ -25148,36 +18166,26 @@ function readTagProperty(state) { tagHandle, tagName, ch; - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x21/* ! */) return false; - + if (ch !== 0x21) return false; if (state.tag !== null) { throwError(state, 'duplication of a tag property'); } - ch = state.input.charCodeAt(++state.position); - - if (ch === 0x3C/* < */) { + if (ch === 0x3C) { isVerbatim = true; ch = state.input.charCodeAt(++state.position); - - } else if (ch === 0x21/* ! */) { + } else if (ch === 0x21) { isNamed = true; tagHandle = '!!'; ch = state.input.charCodeAt(++state.position); - } else { tagHandle = '!'; } - _position = state.position; - if (isVerbatim) { do { ch = state.input.charCodeAt(++state.position); } - while (ch !== 0 && ch !== 0x3E/* > */); - + while (ch !== 0 && ch !== 0x3E); if (state.position < state.length) { tagName = state.input.slice(_position, state.position); ch = state.input.charCodeAt(++state.position); @@ -25186,123 +18194,91 @@ function readTagProperty(state) { } } else { while (ch !== 0 && !is_WS_OR_EOL(ch)) { - - if (ch === 0x21/* ! */) { + if (ch === 0x21) { if (!isNamed) { tagHandle = state.input.slice(_position - 1, state.position + 1); - if (!PATTERN_TAG_HANDLE.test(tagHandle)) { throwError(state, 'named tag handle cannot contain such characters'); } - isNamed = true; _position = state.position + 1; } else { throwError(state, 'tag suffix cannot contain exclamation marks'); } } - ch = state.input.charCodeAt(++state.position); } - tagName = state.input.slice(_position, state.position); - if (PATTERN_FLOW_INDICATORS.test(tagName)) { throwError(state, 'tag suffix cannot contain flow indicator characters'); } } - if (tagName && !PATTERN_TAG_URI.test(tagName)) { throwError(state, 'tag name cannot contain such characters: ' + tagName); } - try { tagName = decodeURIComponent(tagName); } catch (err) { throwError(state, 'tag name is malformed: ' + tagName); } - if (isVerbatim) { state.tag = tagName; - } else if (_hasOwnProperty$1.call(state.tagMap, tagHandle)) { state.tag = state.tagMap[tagHandle] + tagName; - } else if (tagHandle === '!') { state.tag = '!' + tagName; - } else if (tagHandle === '!!') { state.tag = 'tag:yaml.org,2002:' + tagName; - } else { throwError(state, 'undeclared tag handle "' + tagHandle + '"'); } - return true; } - function readAnchorProperty(state) { var _position, ch; - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x26/* & */) return false; - + if (ch !== 0x26) return false; if (state.anchor !== null) { throwError(state, 'duplication of an anchor property'); } - ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { ch = state.input.charCodeAt(++state.position); } - if (state.position === _position) { throwError(state, 'name of an anchor node must contain at least one character'); } - state.anchor = state.input.slice(_position, state.position); return true; } - function readAlias(state) { var _position, alias, ch; - ch = state.input.charCodeAt(state.position); - - if (ch !== 0x2A/* * */) return false; - + if (ch !== 0x2A) return false; ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch) && !is_FLOW_INDICATOR(ch)) { ch = state.input.charCodeAt(++state.position); } - if (state.position === _position) { throwError(state, 'name of an alias node must contain at least one character'); } - alias = state.input.slice(_position, state.position); - if (!_hasOwnProperty$1.call(state.anchorMap, alias)) { throwError(state, 'unidentified alias "' + alias + '"'); } - state.result = state.anchorMap[alias]; skipSeparationSpace(state, true, -1); return true; } - function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact) { var allowBlockStyles, allowBlockScalars, allowBlockCollections, - indentStatus = 1, // 1: this>parent, 0: this=parent, -1: this parentIndent) { indentStatus = 1; } else if (state.lineIndent === parentIndent) { @@ -25338,13 +18309,11 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } } } - if (indentStatus === 1) { while (readTagProperty(state) || readAnchorProperty(state)) { if (skipSeparationSpace(state, true, -1)) { atNewLine = true; allowBlockCollections = allowBlockStyles; - if (state.lineIndent > parentIndent) { indentStatus = 1; } else if (state.lineIndent === parentIndent) { @@ -25357,20 +18326,16 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } } } - if (allowBlockCollections) { allowBlockCollections = atNewLine || allowCompact; } - if (indentStatus === 1 || CONTEXT_BLOCK_OUT === nodeContext) { if (CONTEXT_FLOW_IN === nodeContext || CONTEXT_FLOW_OUT === nodeContext) { flowIndent = parentIndent; } else { flowIndent = parentIndent + 1; } - blockIndent = state.position - state.lineStart; - if (indentStatus === 1) { if (allowBlockCollections && (readBlockSequence(state, blockIndent) || @@ -25382,53 +18347,36 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact readSingleQuotedScalar(state, flowIndent) || readDoubleQuotedScalar(state, flowIndent)) { hasContent = true; - } else if (readAlias(state)) { hasContent = true; - if (state.tag !== null || state.anchor !== null) { throwError(state, 'alias node should not have any properties'); } - } else if (readPlainScalar(state, flowIndent, CONTEXT_FLOW_IN === nodeContext)) { hasContent = true; - if (state.tag === null) { state.tag = '?'; } } - if (state.anchor !== null) { state.anchorMap[state.anchor] = state.result; } } } else if (indentStatus === 0) { - // Special case: block sequences are allowed to have same indentation level as the parent. - // http://www.yaml.org/spec/1.2/spec.html#id2799784 hasContent = allowBlockCollections && readBlockSequence(state, blockIndent); } } - if (state.tag === null) { if (state.anchor !== null) { state.anchorMap[state.anchor] = state.result; } - } else if (state.tag === '?') { - // Implicit resolving is not allowed for non-scalar types, and '?' - // non-specific tag is only automatically assigned to plain scalars. - // - // We only need to check kind conformity in case user explicitly assigns '?' - // tag, for example like this: "! [0]" - // if (state.result !== null && state.kind !== 'scalar') { throwError(state, 'unacceptable node kind for ! tag; it should be "scalar", not "' + state.kind + '"'); } - for (typeIndex = 0, typeQuantity = state.implicitTypes.length; typeIndex < typeQuantity; typeIndex += 1) { type = state.implicitTypes[typeIndex]; - - if (type.resolve(state.result)) { // `state.result` updated in resolver if matched + if (type.resolve(state.result)) { state.result = type.construct(state.result); state.tag = type.tag; if (state.anchor !== null) { @@ -25441,10 +18389,8 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact if (_hasOwnProperty$1.call(state.typeMap[state.kind || 'fallback'], state.tag)) { type = state.typeMap[state.kind || 'fallback'][state.tag]; } else { - // looking for multi type type = null; typeList = state.typeMap.multi[state.kind || 'fallback']; - for (typeIndex = 0, typeQuantity = typeList.length; typeIndex < typeQuantity; typeIndex += 1) { if (state.tag.slice(0, typeList[typeIndex].tag.length) === typeList[typeIndex].tag) { type = typeList[typeIndex]; @@ -25452,16 +18398,13 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } } } - if (!type) { throwError(state, 'unknown tag !<' + state.tag + '>'); } - if (state.result !== null && type.kind !== state.kind) { throwError(state, 'unacceptable node kind for !<' + state.tag + '> tag; it should be "' + type.kind + '", not "' + state.kind + '"'); } - - if (!type.resolve(state.result, state.tag)) { // `state.result` updated in resolver if matched + if (!type.resolve(state.result, state.tag)) { throwError(state, 'cannot resolve a node with !<' + state.tag + '> explicit tag'); } else { state.result = type.construct(state.result, state.tag); @@ -25470,13 +18413,11 @@ function composeNode(state, parentIndent, nodeContext, allowToSeek, allowCompact } } } - if (state.listener !== null) { state.listener('close', state); } return state.tag !== null || state.anchor !== null || hasContent; } - function readDocument(state) { var documentStart = state.position, _position, @@ -25484,226 +18425,164 @@ function readDocument(state) { directiveArgs, hasDirectives = false, ch; - state.version = null; state.checkLineBreaks = state.legacy; state.tagMap = Object.create(null); state.anchorMap = Object.create(null); - while ((ch = state.input.charCodeAt(state.position)) !== 0) { skipSeparationSpace(state, true, -1); - ch = state.input.charCodeAt(state.position); - - if (state.lineIndent > 0 || ch !== 0x25/* % */) { + if (state.lineIndent > 0 || ch !== 0x25) { break; } - hasDirectives = true; ch = state.input.charCodeAt(++state.position); _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { ch = state.input.charCodeAt(++state.position); } - directiveName = state.input.slice(_position, state.position); directiveArgs = []; - if (directiveName.length < 1) { throwError(state, 'directive name must not be less than one character in length'); } - while (ch !== 0) { while (is_WHITE_SPACE(ch)) { ch = state.input.charCodeAt(++state.position); } - - if (ch === 0x23/* # */) { + if (ch === 0x23) { do { ch = state.input.charCodeAt(++state.position); } while (ch !== 0 && !is_EOL(ch)); break; } - if (is_EOL(ch)) break; - _position = state.position; - while (ch !== 0 && !is_WS_OR_EOL(ch)) { ch = state.input.charCodeAt(++state.position); } - directiveArgs.push(state.input.slice(_position, state.position)); } - if (ch !== 0) readLineBreak(state); - if (_hasOwnProperty$1.call(directiveHandlers, directiveName)) { directiveHandlers[directiveName](state, directiveName, directiveArgs); } else { throwWarning(state, 'unknown document directive "' + directiveName + '"'); } } - skipSeparationSpace(state, true, -1); - if (state.lineIndent === 0 && - state.input.charCodeAt(state.position) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 1) === 0x2D/* - */ && - state.input.charCodeAt(state.position + 2) === 0x2D/* - */) { + state.input.charCodeAt(state.position) === 0x2D && + state.input.charCodeAt(state.position + 1) === 0x2D && + state.input.charCodeAt(state.position + 2) === 0x2D) { state.position += 3; skipSeparationSpace(state, true, -1); - } else if (hasDirectives) { throwError(state, 'directives end mark is expected'); } - composeNode(state, state.lineIndent - 1, CONTEXT_BLOCK_OUT, false, true); skipSeparationSpace(state, true, -1); - if (state.checkLineBreaks && PATTERN_NON_ASCII_LINE_BREAKS.test(state.input.slice(documentStart, state.position))) { throwWarning(state, 'non-ASCII line breaks are interpreted as content'); } - state.documents.push(state.result); - if (state.position === state.lineStart && testDocumentSeparator(state)) { - - if (state.input.charCodeAt(state.position) === 0x2E/* . */) { + if (state.input.charCodeAt(state.position) === 0x2E) { state.position += 3; skipSeparationSpace(state, true, -1); } return; } - if (state.position < (state.length - 1)) { throwError(state, 'end of the stream or a document separator is expected'); } else { return; } } - - function loadDocuments(input, options) { input = String(input); options = options || {}; - if (input.length !== 0) { - - // Add tailing `\n` if not exists - if (input.charCodeAt(input.length - 1) !== 0x0A/* LF */ && - input.charCodeAt(input.length - 1) !== 0x0D/* CR */) { + if (input.charCodeAt(input.length - 1) !== 0x0A && + input.charCodeAt(input.length - 1) !== 0x0D) { input += '\n'; } - - // Strip BOM if (input.charCodeAt(0) === 0xFEFF) { input = input.slice(1); } } - var state = new State$1(input, options); - var nullpos = input.indexOf('\0'); - if (nullpos !== -1) { state.position = nullpos; throwError(state, 'null byte is not allowed in input'); } - - // Use 0 as string terminator. That significantly simplifies bounds check. state.input += '\0'; - - while (state.input.charCodeAt(state.position) === 0x20/* Space */) { + while (state.input.charCodeAt(state.position) === 0x20) { state.lineIndent += 1; state.position += 1; } - while (state.position < (state.length - 1)) { readDocument(state); } - return state.documents; } - - function loadAll$1(input, iterator, options) { if (iterator !== null && typeof iterator === 'object' && typeof options === 'undefined') { options = iterator; iterator = null; } - var documents = loadDocuments(input, options); - if (typeof iterator !== 'function') { return documents; } - for (var index = 0, length = documents.length; index < length; index += 1) { iterator(documents[index]); } } - - function load$1(input, options) { var documents = loadDocuments(input, options); - if (documents.length === 0) { - /*eslint-disable no-undefined*/ return undefined; } else if (documents.length === 1) { return documents[0]; } throw new exception('expected a single document in the stream, but found more'); } - - var loadAll_1 = loadAll$1; var load_1 = load$1; - var loader = { loadAll: loadAll_1, load: load_1 }; - -/*eslint-disable no-use-before-define*/ - - - - - var _toString = Object.prototype.toString; var _hasOwnProperty = Object.prototype.hasOwnProperty; - var CHAR_BOM = 0xFEFF; -var CHAR_TAB = 0x09; /* Tab */ -var CHAR_LINE_FEED = 0x0A; /* LF */ -var CHAR_CARRIAGE_RETURN = 0x0D; /* CR */ -var CHAR_SPACE = 0x20; /* Space */ -var CHAR_EXCLAMATION = 0x21; /* ! */ -var CHAR_DOUBLE_QUOTE = 0x22; /* " */ -var CHAR_SHARP = 0x23; /* # */ -var CHAR_PERCENT = 0x25; /* % */ -var CHAR_AMPERSAND = 0x26; /* & */ -var CHAR_SINGLE_QUOTE = 0x27; /* ' */ -var CHAR_ASTERISK = 0x2A; /* * */ -var CHAR_COMMA = 0x2C; /* , */ -var CHAR_MINUS = 0x2D; /* - */ -var CHAR_COLON = 0x3A; /* : */ -var CHAR_EQUALS = 0x3D; /* = */ -var CHAR_GREATER_THAN = 0x3E; /* > */ -var CHAR_QUESTION = 0x3F; /* ? */ -var CHAR_COMMERCIAL_AT = 0x40; /* @ */ -var CHAR_LEFT_SQUARE_BRACKET = 0x5B; /* [ */ -var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; /* ] */ -var CHAR_GRAVE_ACCENT = 0x60; /* ` */ -var CHAR_LEFT_CURLY_BRACKET = 0x7B; /* { */ -var CHAR_VERTICAL_LINE = 0x7C; /* | */ -var CHAR_RIGHT_CURLY_BRACKET = 0x7D; /* } */ - +var CHAR_TAB = 0x09; +var CHAR_LINE_FEED = 0x0A; +var CHAR_CARRIAGE_RETURN = 0x0D; +var CHAR_SPACE = 0x20; +var CHAR_EXCLAMATION = 0x21; +var CHAR_DOUBLE_QUOTE = 0x22; +var CHAR_SHARP = 0x23; +var CHAR_PERCENT = 0x25; +var CHAR_AMPERSAND = 0x26; +var CHAR_SINGLE_QUOTE = 0x27; +var CHAR_ASTERISK = 0x2A; +var CHAR_COMMA = 0x2C; +var CHAR_MINUS = 0x2D; +var CHAR_COLON = 0x3A; +var CHAR_EQUALS = 0x3D; +var CHAR_GREATER_THAN = 0x3E; +var CHAR_QUESTION = 0x3F; +var CHAR_COMMERCIAL_AT = 0x40; +var CHAR_LEFT_SQUARE_BRACKET = 0x5B; +var CHAR_RIGHT_SQUARE_BRACKET = 0x5D; +var CHAR_GRAVE_ACCENT = 0x60; +var CHAR_LEFT_CURLY_BRACKET = 0x7B; +var CHAR_VERTICAL_LINE = 0x7C; +var CHAR_RIGHT_CURLY_BRACKET = 0x7D; var ESCAPE_SEQUENCES = {}; - ESCAPE_SEQUENCES[0x00] = '\\0'; ESCAPE_SEQUENCES[0x07] = '\\a'; ESCAPE_SEQUENCES[0x08] = '\\b'; @@ -25719,46 +18598,33 @@ ESCAPE_SEQUENCES[0x85] = '\\N'; ESCAPE_SEQUENCES[0xA0] = '\\_'; ESCAPE_SEQUENCES[0x2028] = '\\L'; ESCAPE_SEQUENCES[0x2029] = '\\P'; - var DEPRECATED_BOOLEANS_SYNTAX = [ 'y', 'Y', 'yes', 'Yes', 'YES', 'on', 'On', 'ON', 'n', 'N', 'no', 'No', 'NO', 'off', 'Off', 'OFF' ]; - var DEPRECATED_BASE60_SYNTAX = /^[-+]?[0-9_]+(?::[0-9_]+)+(?:\.[0-9_]*)?$/; - function compileStyleMap(schema, map) { var result, keys, index, length, tag, style, type; - if (map === null) return {}; - result = {}; keys = Object.keys(map); - for (index = 0, length = keys.length; index < length; index += 1) { tag = keys[index]; style = String(map[tag]); - if (tag.slice(0, 2) === '!!') { tag = 'tag:yaml.org,2002:' + tag.slice(2); } type = schema.compiledTypeMap['fallback'][tag]; - if (type && _hasOwnProperty.call(type.styleAliases, style)) { style = type.styleAliases[style]; } - result[tag] = style; } - return result; } - function encodeHex(character) { var string, handle, length; - string = character.toString(16).toUpperCase(); - if (character <= 0xFF) { handle = 'x'; length = 2; @@ -25771,14 +18637,10 @@ function encodeHex(character) { } else { throw new exception('code point within a string may not be greater than 0xFFFFFFFF'); } - return '\\' + handle + common.repeat('0', length - string.length) + string; } - - var QUOTING_TYPE_SINGLE = 1, QUOTING_TYPE_DOUBLE = 2; - function State(options) { this.schema = options['schema'] || _default; this.indent = Math.max(1, (options['indent'] || 2)); @@ -25794,18 +18656,13 @@ function State(options) { this.quotingType = options['quotingType'] === '"' ? QUOTING_TYPE_DOUBLE : QUOTING_TYPE_SINGLE; this.forceQuotes = options['forceQuotes'] || false; this.replacer = typeof options['replacer'] === 'function' ? options['replacer'] : null; - this.implicitTypes = this.schema.compiledImplicit; this.explicitTypes = this.schema.compiledExplicit; - this.tag = null; this.result = ''; - this.duplicates = []; this.usedDuplicates = null; } - -// Indents every line in a string. Empty lines (\n only) are not indented. function indentString(string, spaces) { var ind = common.repeat(' ', spaces), position = 0, @@ -25813,7 +18670,6 @@ function indentString(string, spaces) { result = '', line, length = string.length; - while (position < length) { next = string.indexOf('\n', position); if (next === -1) { @@ -25823,102 +18679,60 @@ function indentString(string, spaces) { line = string.slice(position, next + 1); position = next + 1; } - if (line.length && line !== '\n') result += ind; - result += line; } - return result; } - function generateNextLine(state, level) { return '\n' + common.repeat(' ', state.indent * level); } - function testImplicitResolving(state, str) { var index, length, type; - for (index = 0, length = state.implicitTypes.length; index < length; index += 1) { type = state.implicitTypes[index]; - if (type.resolve(str)) { return true; } } - return false; } - -// [33] s-white ::= s-space | s-tab function isWhitespace(c) { return c === CHAR_SPACE || c === CHAR_TAB; } - -// Returns true if the character can be printed without escaping. -// From YAML 1.2: "any allowed characters known to be non-printable -// should also be escaped. [However,] This isn’t mandatory" -// Derived from nb-char - \t - #x85 - #xA0 - #x2028 - #x2029. function isPrintable(c) { return (0x00020 <= c && c <= 0x00007E) || ((0x000A1 <= c && c <= 0x00D7FF) && c !== 0x2028 && c !== 0x2029) || ((0x0E000 <= c && c <= 0x00FFFD) && c !== CHAR_BOM) || (0x10000 <= c && c <= 0x10FFFF); } - -// [34] ns-char ::= nb-char - s-white -// [27] nb-char ::= c-printable - b-char - c-byte-order-mark -// [26] b-char ::= b-line-feed | b-carriage-return -// Including s-white (for some reason, examples doesn't match specs in this aspect) -// ns-char ::= c-printable - b-line-feed - b-carriage-return - c-byte-order-mark function isNsCharOrWhitespace(c) { return isPrintable(c) && c !== CHAR_BOM - // - b-char && c !== CHAR_CARRIAGE_RETURN && c !== CHAR_LINE_FEED; } - -// [127] ns-plain-safe(c) ::= c = flow-out ⇒ ns-plain-safe-out -// c = flow-in ⇒ ns-plain-safe-in -// c = block-key ⇒ ns-plain-safe-out -// c = flow-key ⇒ ns-plain-safe-in -// [128] ns-plain-safe-out ::= ns-char -// [129] ns-plain-safe-in ::= ns-char - c-flow-indicator -// [130] ns-plain-char(c) ::= ( ns-plain-safe(c) - “:” - “#” ) -// | ( /* An ns-char preceding */ “#” ) -// | ( “:” /* Followed by an ns-plain-safe(c) */ ) function isPlainSafe(c, prev, inblock) { var cIsNsCharOrWhitespace = isNsCharOrWhitespace(c); var cIsNsChar = cIsNsCharOrWhitespace && !isWhitespace(c); return ( - // ns-plain-safe - inblock ? // c = flow-in + inblock ? cIsNsCharOrWhitespace : cIsNsCharOrWhitespace - // - c-flow-indicator && c !== CHAR_COMMA && c !== CHAR_LEFT_SQUARE_BRACKET && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET ) - // ns-plain-char - && c !== CHAR_SHARP // false on '#' - && !(prev === CHAR_COLON && !cIsNsChar) // false on ': ' - || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) // change to true on '[^ ]#' - || (prev === CHAR_COLON && cIsNsChar); // change to true on ':[^ ]' + && c !== CHAR_SHARP + && !(prev === CHAR_COLON && !cIsNsChar) + || (isNsCharOrWhitespace(prev) && !isWhitespace(prev) && c === CHAR_SHARP) + || (prev === CHAR_COLON && cIsNsChar); } - -// Simplified test for values allowed as the first character in plain style. function isPlainSafeFirst(c) { - // Uses a subset of ns-char - c-indicator - // where ns-char = nb-char - s-white. - // No support of ( ( “?” | “:” | “-” ) /* Followed by an ns-plain-safe(c)) */ ) part return isPrintable(c) && c !== CHAR_BOM - && !isWhitespace(c) // - s-white - // - (c-indicator ::= - // “-” | “?” | “:” | “,” | “[” | “]” | “{” | “}” + && !isWhitespace(c) && c !== CHAR_MINUS && c !== CHAR_QUESTION && c !== CHAR_COLON @@ -25927,7 +18741,6 @@ function isPlainSafeFirst(c) { && c !== CHAR_RIGHT_SQUARE_BRACKET && c !== CHAR_LEFT_CURLY_BRACKET && c !== CHAR_RIGHT_CURLY_BRACKET - // | “#” | “&” | “*” | “!” | “|” | “=” | “>” | “'” | “"” && c !== CHAR_SHARP && c !== CHAR_AMPERSAND && c !== CHAR_ASTERISK @@ -25937,66 +18750,44 @@ function isPlainSafeFirst(c) { && c !== CHAR_GREATER_THAN && c !== CHAR_SINGLE_QUOTE && c !== CHAR_DOUBLE_QUOTE - // | “%” | “@” | “`”) && c !== CHAR_PERCENT && c !== CHAR_COMMERCIAL_AT && c !== CHAR_GRAVE_ACCENT; } - -// Simplified test for values allowed as the last character in plain style. function isPlainSafeLast(c) { - // just not whitespace or colon, it will be checked to be plain character later return !isWhitespace(c) && c !== CHAR_COLON; } - -// Same as 'string'.codePointAt(pos), but works in older browsers. function codePointAt(string, pos) { var first = string.charCodeAt(pos), second; if (first >= 0xD800 && first <= 0xDBFF && pos + 1 < string.length) { second = string.charCodeAt(pos + 1); if (second >= 0xDC00 && second <= 0xDFFF) { - // https://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000; } } return first; } - -// Determines whether block indentation indicator is required. function needIndentIndicator(string) { var leadingSpaceRe = /^\n* /; return leadingSpaceRe.test(string); } - var STYLE_PLAIN = 1, STYLE_SINGLE = 2, STYLE_LITERAL = 3, STYLE_FOLDED = 4, STYLE_DOUBLE = 5; - -// Determines which scalar styles are possible and returns the preferred style. -// lineWidth = -1 => no limit. -// Pre-conditions: str.length > 0. -// Post-conditions: -// STYLE_PLAIN or STYLE_SINGLE => no \n are in the string. -// STYLE_LITERAL => no lines are suitable for folding (or lineWidth is -1). -// STYLE_FOLDED => a line > lineWidth and can be folded (and lineWidth != -1). function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, testAmbiguousType, quotingType, forceQuotes, inblock) { - var i; var char = 0; var prevChar = null; var hasLineBreak = false; - var hasFoldableLine = false; // only checked if shouldTrackWidth + var hasFoldableLine = false; var shouldTrackWidth = lineWidth !== -1; - var previousLineBreak = -1; // count the first line correctly + var previousLineBreak = -1; var plain = isPlainSafeFirst(codePointAt(string, 0)) && isPlainSafeLast(codePointAt(string, string.length - 1)); - if (singleLineOnly || forceQuotes) { - // Case: no block styles. - // Check for disallowed characters to rule out plain and single. for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { char = codePointAt(string, i); if (!isPrintable(char)) { @@ -26006,15 +18797,12 @@ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, prevChar = char; } } else { - // Case: block styles permitted. for (i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { char = codePointAt(string, i); if (char === CHAR_LINE_FEED) { hasLineBreak = true; - // Check if any line can be folded. if (shouldTrackWidth) { hasFoldableLine = hasFoldableLine || - // Foldable line = too long, and not more-indented. (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== ' '); previousLineBreak = i; @@ -26025,40 +18813,24 @@ function chooseScalarStyle(string, singleLineOnly, indentPerLevel, lineWidth, plain = plain && isPlainSafe(char, prevChar, inblock); prevChar = char; } - // in case the end is missing a \n hasFoldableLine = hasFoldableLine || (shouldTrackWidth && (i - previousLineBreak - 1 > lineWidth && string[previousLineBreak + 1] !== ' ')); } - // Although every style can represent \n without escaping, prefer block styles - // for multiline, since they're more readable and they don't add empty lines. - // Also prefer folding a super-long line. if (!hasLineBreak && !hasFoldableLine) { - // Strings interpretable as another type have to be quoted; - // e.g. the string 'true' vs. the boolean true. if (plain && !forceQuotes && !testAmbiguousType(string)) { return STYLE_PLAIN; } return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; } - // Edge case: block indentation indicator can only have one digit. if (indentPerLevel > 9 && needIndentIndicator(string)) { return STYLE_DOUBLE; } - // At this point we know block styles are valid. - // Prefer literal style unless we want to fold. if (!forceQuotes) { return hasFoldableLine ? STYLE_FOLDED : STYLE_LITERAL; } return quotingType === QUOTING_TYPE_DOUBLE ? STYLE_DOUBLE : STYLE_SINGLE; } - -// Note: line breaking/folding is implemented for only the folded style. -// NB. We drop the last trailing newline (if any) of a returned block scalar -// since the dumper adds its own newline. This always works: -// • No ending newline => unaffected; already using strip "-" chomping. -// • Ending newline => removed then restored. -// Importantly, this keeps the "+" chomp indicator from gaining an extra line. function writeScalar(state, string, level, iskey, inblock) { state.dump = (function () { if (string.length === 0) { @@ -26069,29 +18841,16 @@ function writeScalar(state, string, level, iskey, inblock) { return state.quotingType === QUOTING_TYPE_DOUBLE ? ('"' + string + '"') : ("'" + string + "'"); } } - - var indent = state.indent * Math.max(1, level); // no 0-indent scalars - // As indentation gets deeper, let the width decrease monotonically - // to the lower bound min(state.lineWidth, 40). - // Note that this implies - // state.lineWidth ≤ 40 + state.indent: width is fixed at the lower bound. - // state.lineWidth > 40 + state.indent: width decreases until the lower bound. - // This behaves better than a constant minimum width which disallows narrower options, - // or an indent threshold which causes the width to suddenly increase. + var indent = state.indent * Math.max(1, level); var lineWidth = state.lineWidth === -1 ? -1 : Math.max(Math.min(state.lineWidth, 40), state.lineWidth - indent); - - // Without knowing if keys are implicit/explicit, assume implicit for safety. var singleLineOnly = iskey - // No block styles in flow mode. || (state.flowLevel > -1 && level >= state.flowLevel); function testAmbiguity(string) { return testImplicitResolving(state, string); } - switch (chooseScalarStyle(string, singleLineOnly, state.indent, lineWidth, testAmbiguity, state.quotingType, state.forceQuotes && !iskey, inblock)) { - case STYLE_PLAIN: return string; case STYLE_SINGLE: @@ -26109,45 +18868,26 @@ function writeScalar(state, string, level, iskey, inblock) { } }()); } - -// Pre-conditions: string is valid for a block scalar, 1 <= indentPerLevel <= 9. function blockHeader(string, indentPerLevel) { var indentIndicator = needIndentIndicator(string) ? String(indentPerLevel) : ''; - - // note the special case: the string '\n' counts as a "trailing" empty line. var clip = string[string.length - 1] === '\n'; var keep = clip && (string[string.length - 2] === '\n' || string === '\n'); var chomp = keep ? '+' : (clip ? '' : '-'); - return indentIndicator + chomp + '\n'; } - -// (See the note for writeScalar.) function dropEndingNewline(string) { return string[string.length - 1] === '\n' ? string.slice(0, -1) : string; } - -// Note: a long line without a suitable break point will exceed the width limit. -// Pre-conditions: every char in str isPrintable, str.length > 0, width > 0. function foldString(string, width) { - // In folded style, $k$ consecutive newlines output as $k+1$ newlines— - // unless they're before or after a more-indented line, or at the very - // beginning or end, in which case $k$ maps to $k$. - // Therefore, parse each chunk as newline(s) followed by a content line. var lineRe = /(\n+)([^\n]*)/g; - - // first line (possibly an empty line) var result = (function () { var nextLF = string.indexOf('\n'); nextLF = nextLF !== -1 ? nextLF : string.length; lineRe.lastIndex = nextLF; return foldLine(string.slice(0, nextLF), width); }()); - // If we haven't reached the first content line yet, don't add an extra \n. var prevMoreIndented = string[0] === '\n' || string[0] === ' '; var moreIndented; - - // rest of the lines var match; while ((match = lineRe.exec(string))) { var prefix = match[1], line = match[2]; @@ -26158,63 +18898,38 @@ function foldString(string, width) { + foldLine(line, width); prevMoreIndented = moreIndented; } - return result; } - -// Greedy line breaking. -// Picks the longest line under the limit each time, -// otherwise settles for the shortest line over the limit. -// NB. More-indented lines *cannot* be folded, as that would add an extra \n. function foldLine(line, width) { if (line === '' || line[0] === ' ') return line; - - // Since a more-indented line adds a \n, breaks can't be followed by a space. - var breakRe = / [^ ]/g; // note: the match index will always be <= length-2. + var breakRe = / [^ ]/g; var match; - // start is an inclusive index. end, curr, and next are exclusive. var start = 0, end, curr = 0, next = 0; var result = ''; - - // Invariants: 0 <= start <= length-1. - // 0 <= curr <= next <= max(0, length-2). curr - start <= width. - // Inside the loop: - // A match implies length >= 2, so curr and next are <= length-2. while ((match = breakRe.exec(line))) { next = match.index; - // maintain invariant: curr - start <= width if (next - start > width) { - end = (curr > start) ? curr : next; // derive end <= length-2 + end = (curr > start) ? curr : next; result += '\n' + line.slice(start, end); - // skip the space that was output as \n - start = end + 1; // derive start <= length-1 + start = end + 1; } curr = next; } - - // By the invariants, start <= length-1, so there is something left over. - // It is either the whole string or a part starting from non-whitespace. result += '\n'; - // Insert a break if the remainder is too long and there is a break available. if (line.length - start > width && curr > start) { result += line.slice(start, curr) + '\n' + line.slice(curr + 1); } else { result += line.slice(start); } - - return result.slice(1); // drop extra \n joiner + return result.slice(1); } - -// Escapes a double-quoted string. function escapeString(string) { var result = ''; var char = 0; var escapeSeq; - for (var i = 0; i < string.length; char >= 0x10000 ? i += 2 : i++) { char = codePointAt(string, i); escapeSeq = ESCAPE_SEQUENCES[char]; - if (!escapeSeq && isPrintable(char)) { result += string[i]; if (char >= 0x10000) result += string[i + 1]; @@ -26222,75 +18937,57 @@ function escapeString(string) { result += escapeSeq || encodeHex(char); } } - return result; } - function writeFlowSequence(state, level, object) { var _result = '', _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { value = object[index]; - if (state.replacer) { value = state.replacer.call(object, String(index), value); } - - // Write only valid elements, put null instead of invalid elements. if (writeNode(state, level, value, false, false) || (typeof value === 'undefined' && writeNode(state, level, null, false, false))) { - if (_result !== '') _result += ',' + (!state.condenseFlow ? ' ' : ''); _result += state.dump; } } - state.tag = _tag; state.dump = '[' + _result + ']'; } - function writeBlockSequence(state, level, object, compact) { var _result = '', _tag = state.tag, index, length, value; - for (index = 0, length = object.length; index < length; index += 1) { value = object[index]; - if (state.replacer) { value = state.replacer.call(object, String(index), value); } - - // Write only valid elements, put null instead of invalid elements. if (writeNode(state, level + 1, value, true, true, false, true) || (typeof value === 'undefined' && writeNode(state, level + 1, null, true, true, false, true))) { - if (!compact || _result !== '') { _result += generateNextLine(state, level); } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { _result += '-'; } else { _result += '- '; } - _result += state.dump; } } - state.tag = _tag; - state.dump = _result || '[]'; // Empty sequence if no valid values. + state.dump = _result || '[]'; } - function writeFlowMapping(state, level, object) { var _result = '', _tag = state.tag, @@ -26300,43 +18997,29 @@ function writeFlowMapping(state, level, object) { objectKey, objectValue, pairBuffer; - for (index = 0, length = objectKeyList.length; index < length; index += 1) { - pairBuffer = ''; if (_result !== '') pairBuffer += ', '; - if (state.condenseFlow) pairBuffer += '"'; - objectKey = objectKeyList[index]; objectValue = object[objectKey]; - if (state.replacer) { objectValue = state.replacer.call(object, objectKey, objectValue); } - if (!writeNode(state, level, objectKey, false, false)) { - continue; // Skip this pair because of invalid key; + continue; } - if (state.dump.length > 1024) pairBuffer += '? '; - pairBuffer += state.dump + (state.condenseFlow ? '"' : '') + ':' + (state.condenseFlow ? '' : ' '); - if (!writeNode(state, level, objectValue, false, false)) { - continue; // Skip this pair because of invalid value. + continue; } - pairBuffer += state.dump; - - // Both key and value are valid. _result += pairBuffer; } - state.tag = _tag; state.dump = '{' + _result + '}'; } - function writeBlockMapping(state, level, object, compact) { var _result = '', _tag = state.tag, @@ -26347,40 +19030,28 @@ function writeBlockMapping(state, level, object, compact) { objectValue, explicitPair, pairBuffer; - - // Allow sorting keys so that the output file is deterministic if (state.sortKeys === true) { - // Default sorting objectKeyList.sort(); } else if (typeof state.sortKeys === 'function') { - // Custom sort function objectKeyList.sort(state.sortKeys); } else if (state.sortKeys) { - // Something is wrong throw new exception('sortKeys must be a boolean or a function'); } - for (index = 0, length = objectKeyList.length; index < length; index += 1) { pairBuffer = ''; - if (!compact || _result !== '') { pairBuffer += generateNextLine(state, level); } - objectKey = objectKeyList[index]; objectValue = object[objectKey]; - if (state.replacer) { objectValue = state.replacer.call(object, objectKey, objectValue); } - if (!writeNode(state, level + 1, objectKey, true, true, true)) { - continue; // Skip this pair because of invalid key. + continue; } - explicitPair = (state.tag !== null && state.tag !== '?') || (state.dump && state.dump.length > 1024); - if (explicitPair) { if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { pairBuffer += '?'; @@ -26388,45 +19059,32 @@ function writeBlockMapping(state, level, object, compact) { pairBuffer += '? '; } } - pairBuffer += state.dump; - if (explicitPair) { pairBuffer += generateNextLine(state, level); } - if (!writeNode(state, level + 1, objectValue, true, explicitPair)) { - continue; // Skip this pair because of invalid value. + continue; } - if (state.dump && CHAR_LINE_FEED === state.dump.charCodeAt(0)) { pairBuffer += ':'; } else { pairBuffer += ': '; } - pairBuffer += state.dump; - - // Both key and value are valid. _result += pairBuffer; } - state.tag = _tag; - state.dump = _result || '{}'; // Empty mapping if no valid pairs. + state.dump = _result || '{}'; } - function detectType(state, object, explicit) { var _result, typeList, index, length, type, style; - typeList = explicit ? state.explicitTypes : state.implicitTypes; - for (index = 0, length = typeList.length; index < length; index += 1) { type = typeList[index]; - if ((type.instanceOf || type.predicate) && (!type.instanceOf || ((typeof object === 'object') && (object instanceof type.instanceOf))) && (!type.predicate || type.predicate(object))) { - if (explicit) { if (type.multi && type.representName) { state.tag = type.representName(object); @@ -26436,10 +19094,8 @@ function detectType(state, object, explicit) { } else { state.tag = '?'; } - if (type.represent) { style = state.styleMap[type.tag] || type.defaultStyle; - if (_toString.call(type.represent) === '[object Function]') { _result = type.represent(object, style); } else if (_hasOwnProperty.call(type.represent, style)) { @@ -26447,49 +19103,35 @@ function detectType(state, object, explicit) { } else { throw new exception('!<' + type.tag + '> tag resolver accepts not "' + style + '" style'); } - state.dump = _result; } - return true; } } - return false; } - -// Serializes `object` and writes it to global `result`. -// Returns true on success, or false on invalid object. -// function writeNode(state, level, object, block, compact, iskey, isblockseq) { state.tag = null; state.dump = object; - if (!detectType(state, object, false)) { detectType(state, object, true); } - var type = _toString.call(state.dump); var inblock = block; var tagStr; - if (block) { block = (state.flowLevel < 0 || state.flowLevel > level); } - var objectOrArray = type === '[object Object]' || type === '[object Array]', duplicateIndex, duplicate; - if (objectOrArray) { duplicateIndex = state.duplicates.indexOf(object); duplicate = duplicateIndex !== -1; } - if ((state.tag !== null && state.tag !== '?') || duplicate || (state.indent !== 2 && level > 0)) { compact = false; } - if (duplicate && state.usedDuplicates[duplicateIndex]) { state.dump = '*ref_' + duplicateIndex; } else { @@ -26534,25 +19176,10 @@ function writeNode(state, level, object, block, compact, iskey, isblockseq) { if (state.skipInvalid) return false; throw new exception('unacceptable kind of an object to dump ' + type); } - if (state.tag !== null && state.tag !== '?') { - // Need to encode all characters except those allowed by the spec: - // - // [35] ns-dec-digit ::= [#x30-#x39] /* 0-9 */ - // [36] ns-hex-digit ::= ns-dec-digit - // | [#x41-#x46] /* A-F */ | [#x61-#x66] /* a-f */ - // [37] ns-ascii-letter ::= [#x41-#x5A] /* A-Z */ | [#x61-#x7A] /* a-z */ - // [38] ns-word-char ::= ns-dec-digit | ns-ascii-letter | “-” - // [39] ns-uri-char ::= “%” ns-hex-digit ns-hex-digit | ns-word-char | “#” - // | “;” | “/” | “?” | “:” | “@” | “&” | “=” | “+” | “$” | “,” - // | “_” | “.” | “!” | “~” | “*” | “'” | “(” | “)” | “[” | “]” - // - // Also need to encode '!' because it has special meaning (end of tag prefix). - // tagStr = encodeURI( state.tag[0] === '!' ? state.tag.slice(1) : state.tag ).replace(/!/g, '%21'); - if (state.tag[0] === '!') { tagStr = '!' + tagStr; } else if (tagStr.slice(0, 18) === 'tag:yaml.org,2002:') { @@ -26560,33 +19187,26 @@ function writeNode(state, level, object, block, compact, iskey, isblockseq) { } else { tagStr = '!<' + tagStr + '>'; } - state.dump = tagStr + ' ' + state.dump; } } - return true; } - function getDuplicateReferences(object, state) { var objects = [], duplicatesIndexes = [], index, length; - inspectNode(object, objects, duplicatesIndexes); - for (index = 0, length = duplicatesIndexes.length; index < length; index += 1) { state.duplicates.push(objects[duplicatesIndexes[index]]); } state.usedDuplicates = new Array(length); } - function inspectNode(object, objects, duplicatesIndexes) { var objectKeyList, index, length; - if (object !== null && typeof object === 'object') { index = objects.indexOf(object); if (index !== -1) { @@ -26595,14 +19215,12 @@ function inspectNode(object, objects, duplicatesIndexes) { } } else { objects.push(object); - if (Array.isArray(object)) { for (index = 0, length = object.length; index < length; index += 1) { inspectNode(object[index], objects, duplicatesIndexes); } } else { objectKeyList = Object.keys(object); - for (index = 0, length = objectKeyList.length; index < length; index += 1) { inspectNode(object[objectKeyList[index]], objects, duplicatesIndexes); } @@ -26610,39 +19228,27 @@ function inspectNode(object, objects, duplicatesIndexes) { } } } - function dump$1(input, options) { options = options || {}; - var state = new State(options); - if (!state.noRefs) getDuplicateReferences(input, state); - var value = input; - if (state.replacer) { value = state.replacer.call({ '': value }, '', value); } - if (writeNode(state, 0, value, true, true)) return state.dump + '\n'; - return ''; } - var dump_1 = dump$1; - var dumper = { dump: dump_1 }; - function renamed(from, to) { return function () { throw new Error('Function yaml.' + from + ' is removed in js-yaml 4. ' + 'Use yaml.' + to + ' instead, which is now safe by default.'); }; } - - var Type = type; var Schema = schema; var FAILSAFE_SCHEMA = failsafe; @@ -26653,8 +19259,6 @@ var load = loader.load; var loadAll = loader.loadAll; var dump = dumper.dump; var YAMLException = exception; - -// Re-export all types in case user wants to create custom schema var types = { binary: binary, float: float, @@ -26670,12 +19274,9 @@ var types = { seq: seq, str: str }; - -// Removed functions from JS-YAML 3.0.x var safeLoad = renamed('safeLoad', 'load'); var safeLoadAll = renamed('safeLoadAll', 'loadAll'); var safeDump = renamed('safeDump', 'dump'); - var jsYaml = { Type: Type, Schema: Schema, @@ -26693,17 +19294,11 @@ var jsYaml = { safeDump: safeDump }; -// Note: this is the semver.org version of the spec that it implements -// Not necessarily the package version of this code. const SEMVER_SPEC_VERSION = '2.0.0'; - const MAX_LENGTH$2 = 256; const MAX_SAFE_INTEGER$1 = Number.MAX_SAFE_INTEGER || - /* istanbul ignore next */ 9007199254740991; - -// Max safe segment length for coercion. + 9007199254740991; const MAX_SAFE_COMPONENT_LENGTH = 16; - var constants = { SEMVER_SPEC_VERSION, MAX_LENGTH: MAX_LENGTH$2, @@ -26720,20 +19315,16 @@ const debug$1 = ( /\bsemver\b/i.test(process.env.NODE_DEBUG) ) ? (...args) => console.error('SEMVER', ...args) : () => {}; - var debug_1 = debug$1; (function (module, exports) { const { MAX_SAFE_COMPONENT_LENGTH } = constants; const debug = debug_1; exports = module.exports = {}; - -// The actual regexps go on exports.re const re = exports.re = []; const src = exports.src = []; const t = exports.t = {}; let R = 0; - const createToken = (name, value, isGlobal) => { const index = R++; debug(index, value); @@ -26741,175 +19332,85 @@ const createToken = (name, value, isGlobal) => { src[index] = value; re[index] = new RegExp(value, isGlobal ? 'g' : undefined); }; - -// The following Regular Expressions can be used for tokenizing, -// validating, and parsing SemVer version strings. - -// ## Numeric Identifier -// A single `0`, or a non-zero digit followed by zero or more digits. - createToken('NUMERICIDENTIFIER', '0|[1-9]\\d*'); createToken('NUMERICIDENTIFIERLOOSE', '[0-9]+'); - -// ## Non-numeric Identifier -// Zero or more digits, followed by a letter or hyphen, and then zero or -// more letters, digits, or hyphens. - createToken('NONNUMERICIDENTIFIER', '\\d*[a-zA-Z-][a-zA-Z0-9-]*'); - -// ## Main Version -// Three dot-separated numeric identifiers. - createToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})\\.` + `(${src[t.NUMERICIDENTIFIER]})`); - createToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})\\.` + `(${src[t.NUMERICIDENTIFIERLOOSE]})`); - -// ## Pre-release Version Identifier -// A numeric identifier, or a non-numeric identifier. - createToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER] }|${src[t.NONNUMERICIDENTIFIER]})`); - createToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE] }|${src[t.NONNUMERICIDENTIFIER]})`); - -// ## Pre-release Version -// Hyphen, followed by one or more dot-separated pre-release version -// identifiers. - createToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER] }(?:\\.${src[t.PRERELEASEIDENTIFIER]})*))`); - createToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE] }(?:\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`); - -// ## Build Metadata Identifier -// Any combination of digits, letters, or hyphens. - createToken('BUILDIDENTIFIER', '[0-9A-Za-z-]+'); - -// ## Build Metadata -// Plus sign, followed by one or more period-separated build metadata -// identifiers. - createToken('BUILD', `(?:\\+(${src[t.BUILDIDENTIFIER] }(?:\\.${src[t.BUILDIDENTIFIER]})*))`); - -// ## Full Version String -// A main version, followed optionally by a pre-release version and -// build metadata. - -// Note that the only major, minor, patch, and pre-release sections of -// the version string are capturing groups. The build metadata is not a -// capturing group, because it should not ever be used in version -// comparison. - createToken('FULLPLAIN', `v?${src[t.MAINVERSION] }${src[t.PRERELEASE]}?${ src[t.BUILD]}?`); - createToken('FULL', `^${src[t.FULLPLAIN]}$`); - -// like full, but allows v1.2.3 and =1.2.3, which people do sometimes. -// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty -// common in the npm registry. createToken('LOOSEPLAIN', `[v=\\s]*${src[t.MAINVERSIONLOOSE] }${src[t.PRERELEASELOOSE]}?${ src[t.BUILD]}?`); - createToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`); - createToken('GTLT', '((?:<|>)?=?)'); - -// Something like "2.*" or "1.2.x". -// Note that "x.x" is a valid xRange identifer, meaning "any version" -// Only the first item is strictly required. createToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`); createToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\*`); - createToken('XRANGEPLAIN', `[v=\\s]*(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:\\.(${src[t.XRANGEIDENTIFIER]})` + `(?:${src[t.PRERELEASE]})?${ src[t.BUILD]}?` + `)?)?`); - createToken('XRANGEPLAINLOOSE', `[v=\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` + `(?:${src[t.PRERELEASELOOSE]})?${ src[t.BUILD]}?` + `)?)?`); - createToken('XRANGE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAIN]}$`); createToken('XRANGELOOSE', `^${src[t.GTLT]}\\s*${src[t.XRANGEPLAINLOOSE]}$`); - -// Coercion. -// Extract anything that could conceivably be a part of a valid semver createToken('COERCE', `${'(^|[^\\d])' + '(\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:\\.(\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` + `(?:$|[^\\d])`); createToken('COERCERTL', src[t.COERCE], true); - -// Tilde ranges. -// Meaning is "reasonably at or greater than" createToken('LONETILDE', '(?:~>?)'); - createToken('TILDETRIM', `(\\s*)${src[t.LONETILDE]}\\s+`, true); exports.tildeTrimReplace = '$1~'; - createToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`); createToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`); - -// Caret ranges. -// Meaning is "at least and backwards compatible with" createToken('LONECARET', '(?:\\^)'); - createToken('CARETTRIM', `(\\s*)${src[t.LONECARET]}\\s+`, true); exports.caretTrimReplace = '$1^'; - createToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`); createToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`); - -// A simple gt/lt/eq thing, or just "" to indicate "any version" createToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\s*(${src[t.LOOSEPLAIN]})$|^$`); createToken('COMPARATOR', `^${src[t.GTLT]}\\s*(${src[t.FULLPLAIN]})$|^$`); - -// An expression to strip any whitespace between the gtlt and the thing -// it modifies, so that `> 1.2.3` ==> `>1.2.3` createToken('COMPARATORTRIM', `(\\s*)${src[t.GTLT] }\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true); exports.comparatorTrimReplace = '$1$2$3'; - -// Something like `1.2.3 - 1.2.4` -// Note that these all use the loose form, because they'll be -// checked against either the strict or loose comparator form -// later. createToken('HYPHENRANGE', `^\\s*(${src[t.XRANGEPLAIN]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAIN]})` + `\\s*$`); - createToken('HYPHENRANGELOOSE', `^\\s*(${src[t.XRANGEPLAINLOOSE]})` + `\\s+-\\s+` + `(${src[t.XRANGEPLAINLOOSE]})` + `\\s*$`); - -// Star ranges basically just allow anything at all. createToken('STAR', '(<|>)?=?\\s*\\*'); -// >=0.0.0 is like a star createToken('GTE0', '^\\s*>=\\s*0\.0\.0\\s*$'); createToken('GTE0PRE', '^\\s*>=\\s*0\.0\.0-0\\s*$'); }(re$2, re$2.exports)); -// parse out just the options we care about so we always get a consistent -// obj with keys in a consistent order. const opts = ['includePrerelease', 'loose', 'rtl']; const parseOptions$2 = options => !options ? {} @@ -26924,21 +19425,17 @@ const numeric = /^[0-9]+$/; const compareIdentifiers$1 = (a, b) => { const anum = numeric.test(a); const bnum = numeric.test(b); - if (anum && bnum) { a = +a; b = +b; } - return a === b ? 0 : (anum && !bnum) ? -1 : (bnum && !anum) ? 1 : a < b ? -1 : 1 }; - const rcompareIdentifiers = (a, b) => compareIdentifiers$1(b, a); - var identifiers = { compareIdentifiers: compareIdentifiers$1, rcompareIdentifiers @@ -26947,13 +19444,11 @@ var identifiers = { const debug = debug_1; const { MAX_LENGTH: MAX_LENGTH$1, MAX_SAFE_INTEGER } = constants; const { re: re$1, t: t$1 } = re$2.exports; - const parseOptions$1 = parseOptions_1; const { compareIdentifiers } = identifiers; class SemVer$2 { constructor (version, options) { options = parseOptions$1(options); - if (version instanceof SemVer$2) { if (version.loose === !!options.loose && version.includePrerelease === !!options.includePrerelease) { @@ -26964,46 +19459,32 @@ class SemVer$2 { } else if (typeof version !== 'string') { throw new TypeError(`Invalid Version: ${version}`) } - if (version.length > MAX_LENGTH$1) { throw new TypeError( `version is longer than ${MAX_LENGTH$1} characters` ) } - debug('SemVer', version, options); this.options = options; this.loose = !!options.loose; - // this isn't actually relevant for versions, but keep it so that we - // don't run into trouble passing this.options around. this.includePrerelease = !!options.includePrerelease; - const m = version.trim().match(options.loose ? re$1[t$1.LOOSE] : re$1[t$1.FULL]); - if (!m) { throw new TypeError(`Invalid Version: ${version}`) } - this.raw = version; - - // these are actually numbers this.major = +m[1]; this.minor = +m[2]; this.patch = +m[3]; - if (this.major > MAX_SAFE_INTEGER || this.major < 0) { throw new TypeError('Invalid major version') } - if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) { throw new TypeError('Invalid minor version') } - if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) { throw new TypeError('Invalid patch version') } - - // numberify any prerelease numeric ids if (!m[4]) { this.prerelease = []; } else { @@ -27017,11 +19498,9 @@ class SemVer$2 { return id }); } - this.build = m[5] ? m[5].split('.') : []; this.format(); } - format () { this.version = `${this.major}.${this.minor}.${this.patch}`; if (this.prerelease.length) { @@ -27029,11 +19508,9 @@ class SemVer$2 { } return this.version } - toString () { return this.version } - compare (other) { debug('SemVer.compare', this.version, this.options, other); if (!(other instanceof SemVer$2)) { @@ -27042,32 +19519,25 @@ class SemVer$2 { } other = new SemVer$2(other, this.options); } - if (other.version === this.version) { return 0 } - return this.compareMain(other) || this.comparePre(other) } - compareMain (other) { if (!(other instanceof SemVer$2)) { other = new SemVer$2(other, this.options); } - return ( compareIdentifiers(this.major, other.major) || compareIdentifiers(this.minor, other.minor) || compareIdentifiers(this.patch, other.patch) ) } - comparePre (other) { if (!(other instanceof SemVer$2)) { other = new SemVer$2(other, this.options); } - - // NOT having a prerelease is > having one if (this.prerelease.length && !other.prerelease.length) { return -1 } else if (!this.prerelease.length && other.prerelease.length) { @@ -27075,7 +19545,6 @@ class SemVer$2 { } else if (!this.prerelease.length && !other.prerelease.length) { return 0 } - let i = 0; do { const a = this.prerelease[i]; @@ -27094,12 +19563,10 @@ class SemVer$2 { } } while (++i) } - compareBuild (other) { if (!(other instanceof SemVer$2)) { other = new SemVer$2(other, this.options); } - let i = 0; do { const a = this.build[i]; @@ -27118,9 +19585,6 @@ class SemVer$2 { } } while (++i) } - - // preminor will bump the version up to the next minor release, and immediately - // down to pre-release. premajor and prepatch work the same way. inc (release, identifier) { switch (release) { case 'premajor': @@ -27137,27 +19601,17 @@ class SemVer$2 { this.inc('pre', identifier); break case 'prepatch': - // If this is already a prerelease, it will bump to the next version - // drop any prereleases that might already exist, since they are not - // relevant at this point. this.prerelease.length = 0; this.inc('patch', identifier); this.inc('pre', identifier); break - // If the input is a non-prerelease version, this acts the same as - // prepatch. case 'prerelease': if (this.prerelease.length === 0) { this.inc('patch', identifier); } this.inc('pre', identifier); break - case 'major': - // If this is a pre-major version, bump up to the same major version. - // Otherwise increment major. - // 1.0.0-5 bumps to 1.0.0 - // 1.1.0 bumps to 2.0.0 if ( this.minor !== 0 || this.patch !== 0 || @@ -27170,10 +19624,6 @@ class SemVer$2 { this.prerelease = []; break case 'minor': - // If this is a pre-minor version, bump up to the same minor version. - // Otherwise increment minor. - // 1.2.0-5 bumps to 1.2.0 - // 1.2.1 bumps to 1.3.0 if (this.patch !== 0 || this.prerelease.length === 0) { this.minor++; } @@ -27181,17 +19631,11 @@ class SemVer$2 { this.prerelease = []; break case 'patch': - // If this is not a pre-release version, it will increment the patch. - // If it is a pre-release it will bump up to the same patch version. - // 1.2.0-5 patches to 1.2.0 - // 1.2.0 patches to 1.2.1 if (this.prerelease.length === 0) { this.patch++; } this.prerelease = []; break - // This probably shouldn't be used publicly. - // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction. case 'pre': if (this.prerelease.length === 0) { this.prerelease = [0]; @@ -27204,13 +19648,10 @@ class SemVer$2 { } } if (i === -1) { - // didn't increment anything this.prerelease.push(0); } } if (identifier) { - // 1.2.0-beta.1 bumps to 1.2.0-beta.2, - // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0 if (this.prerelease[0] === identifier) { if (isNaN(this.prerelease[1])) { this.prerelease = [identifier, 0]; @@ -27220,7 +19661,6 @@ class SemVer$2 { } } break - default: throw new Error(`invalid increment argument: ${release}`) } @@ -27229,47 +19669,38 @@ class SemVer$2 { return this } } - var semver = SemVer$2; const {MAX_LENGTH} = constants; const { re, t } = re$2.exports; const SemVer$1 = semver; - const parseOptions = parseOptions_1; const parse = (version, options) => { options = parseOptions(options); - if (version instanceof SemVer$1) { return version } - if (typeof version !== 'string') { return null } - if (version.length > MAX_LENGTH) { return null } - const r = options.loose ? re[t.LOOSE] : re[t.FULL]; if (!r.test(version)) { return null } - try { return new SemVer$1(version, options) } catch (er) { return null } }; - var parse_1 = parse; const SemVer = semver; const compare$2 = (a, b, loose) => new SemVer(a, loose).compare(new SemVer(b, loose)); - var compare_1 = compare$2; const compare$1 = compare_1; @@ -27291,7 +19722,6 @@ const MAX_SAFE_SEMVER_VERSION = parse_1( const validVersionNumberRegex = /^v\d+\.\d+\.\d+$/; const prUrlRegex = new RegExp("^https://github.com/nodejs/node/pull/\\d+$"); const privatePRUrl = "https://github.com/nodejs-private/node-private/pull/"; - let releasedVersions; let invalidVersionMessage = "version(s) must respect the pattern `vx.x.x` or"; if (process.env.NODE_RELEASED_VERSIONS) { @@ -27302,7 +19732,6 @@ if (process.env.NODE_RELEASED_VERSIONS) { invalidVersionMessage = `version not listed in the changelogs, `; } invalidVersionMessage += `use the placeholder \`${VERSION_PLACEHOLDER}\``; - const kContainsIllegalKey = Symbol("illegal key"); const kWrongKeyOrder = Symbol("Wrong key order"); function unorderedKeys(meta) { @@ -27316,28 +19745,22 @@ function unorderedKeys(meta) { previousKeyIndex = keyIndex; } } - function containsInvalidVersionNumber(version) { if (Array.isArray(version)) { return version.some(containsInvalidVersionNumber); } - if (version === undefined || version === VERSION_PLACEHOLDER) return false; - if ( releasedVersions && - // Always ignore 0.0.x and 0.1.x release numbers: (version[1] !== "0" || (version[3] !== "0" && version[3] !== "1")) ) return !releasedVersions.includes(version); - return !validVersionNumberRegex.test(version); } const getValidSemver = (version) => version === VERSION_PLACEHOLDER ? MAX_SAFE_SEMVER_VERSION : version; function areVersionsUnordered(versions) { if (!Array.isArray(versions)) return false; - for (let index = 1; index < versions.length; index++) { if ( lt_1( @@ -27349,7 +19772,6 @@ function areVersionsUnordered(versions) { } } } - function invalidChangesKeys(change) { const keys = Object.keys(change); const { length } = keys; @@ -27366,7 +19788,6 @@ function validateSecurityChange(file, node, change, index) { node ); } - if (Object.keys(change)[1] === "commit") { change = { ...change }; delete change.commit; @@ -27385,18 +19806,15 @@ function validateSecurityChange(file, node, change, index) { function validateChanges(file, node, changes) { if (!Array.isArray(changes)) return file.message("`changes` must be a YAML list", node); - const changesVersions = []; for (let index = 0; index < changes.length; index++) { const change = changes[index]; - const isAncient = typeof change.version === "string" && change.version.startsWith("v0."); const isSecurityChange = !isAncient && typeof change["pr-url"] === "string" && change["pr-url"].startsWith(privatePRUrl); - if (isSecurityChange) { validateSecurityChange(file, node, change, index); } else if (!isAncient && invalidChangesKeys(change)) { @@ -27406,20 +19824,17 @@ function validateChanges(file, node, changes) { node ); } - if (containsInvalidVersionNumber(change.version)) { file.message(`changes[${index}]: ${invalidVersionMessage}`, node); } else if (areVersionsUnordered(change.version)) { file.message(`changes[${index}]: list of versions is not in order`, node); } - if (!isAncient && !isSecurityChange && !prUrlRegex.test(change["pr-url"])) { file.message( `changes[${index}]: PR-URL does not match the expected pattern`, node ); } - if (typeof change.description !== "string" || !change.description.length) { file.message( `changes[${index}]: must contain a non-empty description`, @@ -27431,17 +19846,14 @@ function validateChanges(file, node, changes) { node ); } - changesVersions.push( Array.isArray(change.version) ? change.version[0] : change.version ); } - if (areVersionsUnordered(changesVersions)) { file.message("Items in `changes` list are not in order", node); } } - function validateMeta(node, file, meta) { switch (unorderedKeys(meta)) { case kContainsIllegalKey: @@ -27451,7 +19863,6 @@ function validateMeta(node, file, meta) { node ); break; - case kWrongKeyOrder: file.message( "YAML dictionary keys should be in this order: " + @@ -27460,13 +19871,11 @@ function validateMeta(node, file, meta) { ); break; } - if (containsInvalidVersionNumber(meta.added)) { file.message(`Invalid \`added\` value: ${invalidVersionMessage}`, node); } else if (areVersionsUnordered(meta.added)) { file.message("Versions in `added` list are not in order", node); } - if (containsInvalidVersionNumber(meta.deprecated)) { file.message( `Invalid \`deprecated\` value: ${invalidVersionMessage}`, @@ -27475,18 +19884,15 @@ function validateMeta(node, file, meta) { } else if (areVersionsUnordered(meta.deprecated)) { file.message("Versions in `deprecated` list are not in order", node); } - if (containsInvalidVersionNumber(meta.removed)) { file.message(`Invalid \`removed\` value: ${invalidVersionMessage}`, node); } else if (areVersionsUnordered(meta.removed)) { file.message("Versions in `removed` list are not in order", node); } - if ("changes" in meta) { validateChanges(file, node, meta.changes); } } - function validateYAMLComments(tree, file) { visit$1(tree, "html", function visitor(node) { if (node.value.startsWith("".length)); - validateMeta(node, file, meta); } catch (e) { file.message(e, node); } }); } - const remarkLintNodejsYamlComments = lintRule( "remark-lint:nodejs-yaml-comments", validateYAMLComments ); const remarkLintProhibitedStrings = lintRule('remark-lint:prohibited-strings', prohibitedStrings); - function testProhibited (val, content) { let regexpFlags = 'g'; let no = val.no; - if (!no) { no = escapeStringRegexp(val.yes); regexpFlags += 'i'; } - let regexpString = '(? { const results = testProhibited(val, content); if (results.length) { @@ -27597,35 +19986,49 @@ function prohibitedStrings (ast, file, strings) { } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module rule-style - * @fileoverview - * Warn when the thematic breaks (horizontal rules) violate a given or - * detected style. + * ## When should I use this? * - * Options: `string`, either a corect thematic breaks such as `***`, or - * `'consistent'`, default: `'consistent'`. + * You can use this package to check that rules (thematic breaks, horizontal + * rules) are consistent. * - * `'consistent'` detects the first used thematic break style and warns when - * subsequent rules use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * has three settings that define how rules are created: + * * `string` (example: `'** * **'`, `'___'`) + * — thematic break to prefer + * * `'consistent'` + * — detect the first used style and warn when further rules differ * - * * [`rule`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrule) - * (default: `*`) — Marker to use - * * [`ruleRepetition`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulerepetition) - * (default: `3`) — Number of markers to use - * * [`ruleSpaces`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsrulespaces) - * (default: `true`) — Whether to pad markers with spaces + * ## Recommendation * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * Rules consist of a `*`, `-`, or `_` character, which occurs at least three + * times with nothing else except for arbitrary spaces or tabs on a single line. + * Using spaces, tabs, and more than three markers seems unnecessary work to + * type out. + * Because asterisks can be used as a marker for more markdown constructs, + * it’s recommended to use that for rules (and lists, emphasis, strong) too. + * Due to this, it’s recommended to pass `'***'`. + * + * ## Fix * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats rules with `***` by default. + * There are three settings to control rules: + * + * * [`rule`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsrule) + * (default: `'*'`) — marker + * * [`ruleRepetition`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsrulerepetition) + * (default: `3`) — repetitions + * * [`ruleSpaces`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsrulespaces) + * (default: `false`) — use spaces between markers + * + * @module rule-style + * @summary + * remark-lint rule to warn when rule markers are inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "setting": "* * *"} * @@ -27657,29 +20060,23 @@ function prohibitedStrings (ast, file, strings) { * * 1:1: Incorrect preferred rule style: provide a correct markdown rule or `'consistent'` */ - const remarkLintRuleStyle = lintRule( { origin: 'remark-lint:rule-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-rule-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - if (option !== 'consistent' && /[^-_* ]/.test(option)) { file.fail( "Incorrect preferred rule style: provide a correct markdown rule or `'consistent'`" ); } - visit$1(tree, 'thematicBreak', (node) => { const initial = pointStart(node).offset; const final = pointEnd(node).offset; - if (typeof initial === 'number' && typeof final === 'number') { const rule = value.slice(initial, final); - if (option === 'consistent') { option = rule; } else if (rule !== option) { @@ -27689,33 +20086,49 @@ const remarkLintRuleStyle = lintRule( }); } ); - var remarkLintRuleStyle$1 = remarkLintRuleStyle; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module strong-marker - * @fileoverview - * Warn for violating importance (strong) markers. + * ## When should I use this? * - * Options: `'consistent'`, `'*'`, or `'_'`, default: `'consistent'`. + * You can use this package to check that strong markers are consistent. * - * `'consistent'` detects the first used importance style and warns when - * subsequent importance sequences use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats importance using an `*` (asterisk) by default. - * Pass - * [`strong: '_'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsstrong) - * to use `_` (underscore) instead. + * * `'*'` + * — prefer asterisks + * * `'_'` + * — prefer underscores + * * `'consistent'` + * — detect the first used style and warn when further strong differs * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation + * + * Underscores and asterisks work slightly different: asterisks can form strong + * in more cases than underscores. + * Because underscores are sometimes used to represent normal underscores inside + * words, there are extra rules supporting that. + * Asterisks can also be used as the marker of more constructs than underscores: + * lists. + * Due to having simpler parsing rules, looking more like syntax, and that they + * can be used for more constructs, it’s recommended to prefer asterisks. + * + * ## Fix * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats strong with asterisks by default. + * Pass + * [`strong: '_'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsstrong) + * to always use underscores. + * + * @module strong-marker + * @summary + * remark-lint rule to warn when strong markers are inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -27751,16 +20164,13 @@ var remarkLintRuleStyle$1 = remarkLintRuleStyle; * * 1:1: Incorrect strong marker `💩`: use either `'consistent'`, `'*'`, or `'_'` */ - const remarkLintStrongMarker = lintRule( { origin: 'remark-lint:strong-marker', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-strong-marker#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - if (option !== '*' && option !== '_' && option !== 'consistent') { file.fail( 'Incorrect strong marker `' + @@ -27768,13 +20178,10 @@ const remarkLintStrongMarker = lintRule( "`: use either `'consistent'`, `'*'`, or `'_'`" ); } - visit$1(tree, 'strong', (node) => { const start = pointStart(node).offset; - if (typeof start === 'number') { - const marker = /** @type {Marker} */ (value.charAt(start)); - + const marker = (value.charAt(start)); if (option === 'consistent') { option = marker; } else if (marker !== option) { @@ -27784,33 +20191,45 @@ const remarkLintStrongMarker = lintRule( }); } ); - var remarkLintStrongMarker$1 = remarkLintStrongMarker; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module table-cell-padding - * @fileoverview - * Warn when table cells are incorrectly padded. + * ## When should I use this? * - * Options: `'consistent'`, `'padded'`, or `'compact'`, default: `'consistent'`. + * You can use this package to check that table cells are padded consistently. + * Tables are a GFM feature enabled with + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm). * - * `'consistent'` detects the first used cell padding style and warns when - * subsequent cells use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats tables with padding by default. - * Pass - * [`spacedTable: false`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsspacedtable) - * to not use padding. + * * `'padded'` + * — prefer at least one space between pipes and content + * * `'compact'` + * — prefer zero spaces between pipes and content + * * `'consistent'` + * — detect the first used style and warn when further tables differ * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation + * + * It’s recommended to use at least one space between pipes and content for + * legibility of the markup (`'padded'`). + * + * ## Fix + * + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm) + * formats all table cells as padded by default. + * Pass + * [`tableCellPadding: false`](https://github.com/remarkjs/remark-gfm#optionstablecellpadding) + * to use a more compact style. * + * @module table-cell-padding + * @summary + * remark-lint rule to warn when table cells are inconsistently padded. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "setting": "padded", "gfm": true} * @@ -27958,13 +20377,11 @@ var remarkLintStrongMarker$1 = remarkLintStrongMarker; * | Delta | * | Echo | Foxtrot | */ - const remarkLintTableCellPadding = lintRule( { origin: 'remark-lint:table-cell-padding', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-cell-padding#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { if ( option !== 'padded' && @@ -27977,36 +20394,22 @@ const remarkLintTableCellPadding = lintRule( "`, expected `'padded'`, `'compact'`, or `'consistent'`" ); } - visit$1(tree, 'table', (node) => { const rows = node.children; - // To do: fix types to always have `align` defined. - /* c8 ignore next */ const align = node.align || []; - /** @type {number[]} */ const sizes = []; - /** @type {Entry[]} */ const entries = []; let index = -1; - - // Check align row. - // Because there’s zero to two `:`, and there must be one `-`. while (++index < align.length) { const alignment = align[index]; sizes[index] = alignment === 'center' ? 3 : alignment ? 2 : 1; } - index = -1; - - // Check rows. while (++index < rows.length) { const row = rows[index]; let column = -1; - - // Check fences (before, between, and after cells). while (++column < row.children.length) { const cell = row.children[column]; - if (cell.children.length > 0) { const cellStart = pointStart(cell).offset; const cellEnd = pointEnd(cell).offset; @@ -28014,7 +20417,6 @@ const remarkLintTableCellPadding = lintRule( const contentEnd = pointEnd( cell.children[cell.children.length - 1] ).offset; - if ( typeof cellStart !== 'number' || typeof cellEnd !== 'number' || @@ -28023,25 +20425,19 @@ const remarkLintTableCellPadding = lintRule( ) { continue } - entries.push({ node: cell, start: contentStart - cellStart - (column ? 0 : 1), end: cellEnd - contentEnd - 1, column }); - - // Detect max space per column. sizes[column] = Math.max( - // More cells could exist than the align row for generated tables. - /* c8 ignore next */ sizes[column] || 0, contentEnd - contentStart ); } } } - const style = option === 'consistent' ? entries[0] && (!entries[0].start || !entries[0].end) @@ -28050,62 +20446,40 @@ const remarkLintTableCellPadding = lintRule( : option === 'padded' ? 1 : 0; - index = -1; - while (++index < entries.length) { checkSide('start', entries[index], style, sizes); checkSide('end', entries[index], style, sizes); } - return SKIP$1 }); - - /** - * @param {'start'|'end'} side - * @param {Entry} entry - * @param {0|1} style - * @param {number[]} sizes - */ function checkSide(side, entry, style, sizes) { const cell = entry.node; const column = entry.column; const spacing = entry[side]; - if (spacing === undefined || spacing === style) { return } - let reason = 'Cell should be '; - if (style === 0) { - // Ignore every cell except the biggest in the column. if (size$1(cell) < sizes[column]) { return } - reason += 'compact'; } else { reason += 'padded'; - if (spacing > style) { - // May be right or center aligned. if (size$1(cell) < sizes[column]) { return } - reason += ' with 1 space, not ' + spacing; } } - - /** @type {Point} */ let point; - if (side === 'start') { point = pointStart(cell); if (!column) { point.column++; - if (typeof point.offset === 'number') { point.offset++; } @@ -28113,47 +20487,50 @@ const remarkLintTableCellPadding = lintRule( } else { point = pointEnd(cell); point.column--; - if (typeof point.offset === 'number') { point.offset--; } } - file.message(reason, point); } } ); - var remarkLintTableCellPadding$1 = remarkLintTableCellPadding; - -/** - * @param {TableCell} node - * @returns {number} - */ function size$1(node) { const head = pointStart(node.children[0]).offset; const tail = pointEnd(node.children[node.children.length - 1]).offset; - // Only called when we’re sure offsets exist. - /* c8 ignore next */ return typeof head === 'number' && typeof tail === 'number' ? tail - head : 0 } /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module table-pipes - * @fileoverview - * Warn when table rows are not fenced with pipes. + * ## When should I use this? * - * ## Fix + * You can use this package to check that tables have initial and final + * delimiters. + * Tables are a GFM feature enabled with + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm). * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * creates fenced rows with initial and final pipes by default. + * ## API * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * There are no options. + * + * ## Recommendation + * + * While tables don’t require initial or final delimiters (pipes before the + * first and after the last cells in a row), it arguably does look weird. + * + * ## Fix * + * [`remark-gfm`](https://github.com/remarkjs/remark-gfm) + * formats all tables with initial and final delimiters. + * + * @module table-pipes + * @summary + * remark-lint rule to warn when tables are missing initial and final + * delimiters. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md", "gfm": true} * @@ -28176,34 +20553,27 @@ function size$1(node) { * 3:1: Missing initial pipe in table fence * 3:14: Missing final pipe in table fence */ - const reasonStart = 'Missing initial pipe in table fence'; const reasonEnd = 'Missing final pipe in table fence'; - const remarkLintTablePipes = lintRule( { origin: 'remark-lint:table-pipes', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-table-pipes#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file) => { const value = String(file); - visit$1(tree, 'table', (node) => { let index = -1; - while (++index < node.children.length) { const row = node.children[index]; const start = pointStart(row); const end = pointEnd(row); - if ( typeof start.offset === 'number' && value.charCodeAt(start.offset) !== 124 ) { file.message(reasonStart, start); } - if ( typeof end.offset === 'number' && value.charCodeAt(end.offset - 1) !== 124 @@ -28214,34 +20584,47 @@ const remarkLintTablePipes = lintRule( }); } ); - var remarkLintTablePipes$1 = remarkLintTablePipes; /** - * @author Titus Wormer - * @copyright 2015 Titus Wormer - * @license MIT - * @module unordered-list-marker-style - * @fileoverview - * Warn when the list item marker style of unordered lists violate a given - * style. + * ## When should I use this? * - * Options: `'consistent'`, `'-'`, `'*'`, or `'+'`, default: `'consistent'`. + * You can use this package to check that unordered list markers (bullets) + * are consistent. * - * `'consistent'` detects the first used list style and warns when subsequent - * lists use different styles. + * ## API * - * ## Fix + * The following options (default: `'consistent'`) are accepted: * - * [`remark-stringify`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify) - * formats unordered lists using `-` (hyphen-minus) by default. - * Pass - * [`bullet: '*'` or `bullet: '+'`](https://github.com/remarkjs/remark/tree/HEAD/packages/remark-stringify#optionsbullet) - * to use `*` (asterisk) or `+` (plus sign) instead. + * * `'*'` + * — prefer asterisks + * * `'+'` + * — prefer plusses + * * `'-'` + * — prefer dashes + * * `'consistent'` + * — detect the first used style and warn when further markers differ * - * See [Using remark to fix your Markdown](https://github.com/remarkjs/remark-lint#using-remark-to-fix-your-markdown) - * on how to automatically fix warnings for this rule. + * ## Recommendation + * + * Because asterisks can be used as a marker for more markdown constructs, + * it’s recommended to use that for lists (and thematic breaks, emphasis, + * strong) too. + * + * ## Fix * + * [`remark-stringify`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify) + * formats ordered lists with asterisks by default. + * Pass + * [`bullet: '+'` or `bullet: '-'`](https://github.com/remarkjs/remark/tree/main/packages/remark-stringify#optionsbullet) + * to always use plusses or dashes. + * + * @module unordered-list-marker-style + * @summary + * remark-lint rule to warn when unordered list markers are inconsistent. + * @author Titus Wormer + * @copyright 2015 Titus Wormer + * @license MIT * @example * {"name": "ok.md"} * @@ -28291,18 +20674,14 @@ var remarkLintTablePipes$1 = remarkLintTablePipes; * * 1:1: Incorrect unordered list item marker style `💩`: use either `'-'`, `'*'`, or `'+'` */ - const markers = new Set(['-', '*', '+']); - const remarkLintUnorderedListMarkerStyle = lintRule( { origin: 'remark-lint:unordered-list-marker-style', url: 'https://github.com/remarkjs/remark-lint/tree/main/packages/remark-lint-unordered-list-marker-style#readme' }, - /** @type {import('unified-lint-rule').Rule} */ (tree, file, option = 'consistent') => { const value = String(file); - if (option !== 'consistent' && !markers.has(option)) { file.fail( 'Incorrect unordered list item marker style `' + @@ -28310,17 +20689,13 @@ const remarkLintUnorderedListMarkerStyle = lintRule( "`: use either `'-'`, `'*'`, or `'+'`" ); } - visit$1(tree, 'list', (node) => { if (node.ordered) return - let index = -1; - while (++index < node.children.length) { const child = node.children[index]; - if (!generated(child)) { - const marker = /** @type {Marker} */ ( + const marker = ( value .slice( pointStart(child).offset, @@ -28329,7 +20704,6 @@ const remarkLintUnorderedListMarkerStyle = lintRule( .replace(/\[[x ]?]\s*$/i, '') .replace(/\s/g, '') ); - if (option === 'consistent') { option = marker; } else if (marker !== option) { @@ -28340,12 +20714,8 @@ const remarkLintUnorderedListMarkerStyle = lintRule( }); } ); - var remarkLintUnorderedListMarkerStyle$1 = remarkLintUnorderedListMarkerStyle; -// @see https://github.com/nodejs/node/blob/HEAD/doc/guides/doc-style-guide.md - -// Add in rules alphabetically after Gfm and PresetLintRecommended. const plugins = [ remarkGfm, remarkPresetLintRecommended$1, @@ -28373,6 +20743,7 @@ const plugins = [ "powershell", "r", "text", + "ts", ], }, ], @@ -28411,6 +20782,7 @@ const plugins = [ { yes: "RFC" }, { no: "[Rr][Ff][Cc]\\d+", yes: "RFC " }, { yes: "Unix" }, + { yes: "Valgrind" }, { yes: "V8" }, ], ], @@ -28420,131 +20792,54 @@ const plugins = [ remarkLintTablePipes$1, [remarkLintUnorderedListMarkerStyle$1, "*"], ]; - const settings = { emphasis: "_", listItemIndent: 1, tightDefinitions: true, }; - const remarkPresetLintNode = { plugins, settings }; -/** - * @typedef {import('vfile').VFileValue} Value - * @typedef {import('vfile').VFileOptions} Options - * @typedef {import('vfile').BufferEncoding} BufferEncoding - * - * @typedef {number|string} Mode - * @typedef {BufferEncoding|{encoding?: null|BufferEncoding, flag?: string}} ReadOptions - * @typedef {BufferEncoding|{encoding?: null|BufferEncoding, mode: Mode?, flag?: string}} WriteOptions - * - * @typedef {string|Uint8Array} Path Path of the file. - * @typedef {Path|URL|Options|VFile} Compatible Things that can be - * passed to the function. - */ - -/** - * Create a virtual file from a description. - * If `options` is a string or a buffer, it’s used as the path. - * If it’s a VFile itself, it’s returned instead. - * In all other cases, the options are passed through to `vfile()`. - * - * @param {Compatible} [options] - * @returns {VFile} - */ function toVFile(options) { if (typeof options === 'string' || options instanceof URL$1) { options = {path: options}; } else if (isBuffer(options)) { options = {path: String(options)}; } - return looksLikeAVFile(options) ? options : new VFile(options) } - -/** - * Create a virtual file and read it in, synchronously. - * - * @param {Compatible} description - * @param {ReadOptions} [options] - * @returns {VFile} - */ function readSync(description, options) { const file = toVFile(description); file.value = fs.readFileSync(path$1.resolve(file.cwd, file.path), options); return file } - -/** - * Create a virtual file and write it in, synchronously. - * - * @param {Compatible} description - * @param {WriteOptions} [options] - * @returns {VFile} - */ function writeSync(description, options) { const file = toVFile(description); fs.writeFileSync(path$1.resolve(file.cwd, file.path), file.value || '', options); return file } - const read = - /** - * @type {{ - * (description: Compatible, options: ReadOptions, callback: Callback): void - * (description: Compatible, callback: Callback): void - * (description: Compatible, options?: ReadOptions): Promise - * }} - */ ( - /** - * Create a virtual file and read it in, asynchronously. - * - * @param {Compatible} description - * @param {ReadOptions} [options] - * @param {Callback} [callback] - */ function (description, options, callback) { const file = toVFile(description); - if (!callback && typeof options === 'function') { callback = options; options = null; } - if (!callback) { return new Promise(executor) } - executor(resolve, callback); - - /** - * @param {VFile} result - */ function resolve(result) { callback(null, result); } - - /** - * @param {(x: VFile) => void} resolve - * @param {(x: Error, y?: VFile) => void} reject - */ function executor(resolve, reject) { - /** @type {string} */ let fp; - try { fp = path$1.resolve(file.cwd, file.path); } catch (error) { return reject(error) } - fs.readFile(fp, options, done); - - /** - * @param {Error} error - * @param {Value} result - */ function done(error, result) { if (error) { reject(error); @@ -28556,64 +20851,29 @@ const read = } } ); - const write = - /** - * @type {{ - * (description: Compatible, options: WriteOptions, callback: Callback): void - * (description: Compatible, callback: Callback): void - * (description: Compatible, options?: WriteOptions): Promise - * }} - */ ( - /** - * Create a virtual file and write it in, asynchronously. - * - * @param {Compatible} description - * @param {WriteOptions} [options] - * @param {Callback} [callback] - */ function (description, options, callback) { const file = toVFile(description); - - // Weird, right? Otherwise `fs` doesn’t accept it. if (!callback && typeof options === 'function') { callback = options; options = undefined; } - if (!callback) { return new Promise(executor) } - executor(resolve, callback); - - /** - * @param {VFile} result - */ function resolve(result) { callback(null, result); } - - /** - * @param {(x: VFile) => void} resolve - * @param {(x: Error, y?: VFile) => void} reject - */ function executor(resolve, reject) { - /** @type {string} */ let fp; - try { fp = path$1.resolve(file.cwd, file.path); } catch (error) { return reject(error) } - fs.writeFile(fp, file.value || '', options, done); - - /** - * @param {Error} error - */ function done(error) { if (error) { reject(error); @@ -28624,11 +20884,6 @@ const write = } } ); - -/** - * @param {Compatible} value - * @returns {value is VFile} - */ function looksLikeAVFile(value) { return ( value && @@ -28637,493 +20892,598 @@ function looksLikeAVFile(value) { 'messages' in value ) } - toVFile.readSync = readSync; toVFile.writeSync = writeSync; toVFile.read = read; toVFile.write = write; +function ansiRegex({onlyFirst = false} = {}) { + const pattern = [ + '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', + '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' + ].join('|'); + return new RegExp(pattern, onlyFirst ? undefined : 'g'); +} + +function stripAnsi(string) { + if (typeof string !== 'string') { + throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); + } + return string.replace(ansiRegex(), ''); +} + +var eastasianwidth = {exports: {}}; + +(function (module) { +var eaw = {}; +{ + module.exports = eaw; +} +eaw.eastAsianWidth = function(character) { + var x = character.charCodeAt(0); + var y = (character.length == 2) ? character.charCodeAt(1) : 0; + var codePoint = x; + if ((0xD800 <= x && x <= 0xDBFF) && (0xDC00 <= y && y <= 0xDFFF)) { + x &= 0x3FF; + y &= 0x3FF; + codePoint = (x << 10) | y; + codePoint += 0x10000; + } + if ((0x3000 == codePoint) || + (0xFF01 <= codePoint && codePoint <= 0xFF60) || + (0xFFE0 <= codePoint && codePoint <= 0xFFE6)) { + return 'F'; + } + if ((0x20A9 == codePoint) || + (0xFF61 <= codePoint && codePoint <= 0xFFBE) || + (0xFFC2 <= codePoint && codePoint <= 0xFFC7) || + (0xFFCA <= codePoint && codePoint <= 0xFFCF) || + (0xFFD2 <= codePoint && codePoint <= 0xFFD7) || + (0xFFDA <= codePoint && codePoint <= 0xFFDC) || + (0xFFE8 <= codePoint && codePoint <= 0xFFEE)) { + return 'H'; + } + if ((0x1100 <= codePoint && codePoint <= 0x115F) || + (0x11A3 <= codePoint && codePoint <= 0x11A7) || + (0x11FA <= codePoint && codePoint <= 0x11FF) || + (0x2329 <= codePoint && codePoint <= 0x232A) || + (0x2E80 <= codePoint && codePoint <= 0x2E99) || + (0x2E9B <= codePoint && codePoint <= 0x2EF3) || + (0x2F00 <= codePoint && codePoint <= 0x2FD5) || + (0x2FF0 <= codePoint && codePoint <= 0x2FFB) || + (0x3001 <= codePoint && codePoint <= 0x303E) || + (0x3041 <= codePoint && codePoint <= 0x3096) || + (0x3099 <= codePoint && codePoint <= 0x30FF) || + (0x3105 <= codePoint && codePoint <= 0x312D) || + (0x3131 <= codePoint && codePoint <= 0x318E) || + (0x3190 <= codePoint && codePoint <= 0x31BA) || + (0x31C0 <= codePoint && codePoint <= 0x31E3) || + (0x31F0 <= codePoint && codePoint <= 0x321E) || + (0x3220 <= codePoint && codePoint <= 0x3247) || + (0x3250 <= codePoint && codePoint <= 0x32FE) || + (0x3300 <= codePoint && codePoint <= 0x4DBF) || + (0x4E00 <= codePoint && codePoint <= 0xA48C) || + (0xA490 <= codePoint && codePoint <= 0xA4C6) || + (0xA960 <= codePoint && codePoint <= 0xA97C) || + (0xAC00 <= codePoint && codePoint <= 0xD7A3) || + (0xD7B0 <= codePoint && codePoint <= 0xD7C6) || + (0xD7CB <= codePoint && codePoint <= 0xD7FB) || + (0xF900 <= codePoint && codePoint <= 0xFAFF) || + (0xFE10 <= codePoint && codePoint <= 0xFE19) || + (0xFE30 <= codePoint && codePoint <= 0xFE52) || + (0xFE54 <= codePoint && codePoint <= 0xFE66) || + (0xFE68 <= codePoint && codePoint <= 0xFE6B) || + (0x1B000 <= codePoint && codePoint <= 0x1B001) || + (0x1F200 <= codePoint && codePoint <= 0x1F202) || + (0x1F210 <= codePoint && codePoint <= 0x1F23A) || + (0x1F240 <= codePoint && codePoint <= 0x1F248) || + (0x1F250 <= codePoint && codePoint <= 0x1F251) || + (0x20000 <= codePoint && codePoint <= 0x2F73F) || + (0x2B740 <= codePoint && codePoint <= 0x2FFFD) || + (0x30000 <= codePoint && codePoint <= 0x3FFFD)) { + return 'W'; + } + if ((0x0020 <= codePoint && codePoint <= 0x007E) || + (0x00A2 <= codePoint && codePoint <= 0x00A3) || + (0x00A5 <= codePoint && codePoint <= 0x00A6) || + (0x00AC == codePoint) || + (0x00AF == codePoint) || + (0x27E6 <= codePoint && codePoint <= 0x27ED) || + (0x2985 <= codePoint && codePoint <= 0x2986)) { + return 'Na'; + } + if ((0x00A1 == codePoint) || + (0x00A4 == codePoint) || + (0x00A7 <= codePoint && codePoint <= 0x00A8) || + (0x00AA == codePoint) || + (0x00AD <= codePoint && codePoint <= 0x00AE) || + (0x00B0 <= codePoint && codePoint <= 0x00B4) || + (0x00B6 <= codePoint && codePoint <= 0x00BA) || + (0x00BC <= codePoint && codePoint <= 0x00BF) || + (0x00C6 == codePoint) || + (0x00D0 == codePoint) || + (0x00D7 <= codePoint && codePoint <= 0x00D8) || + (0x00DE <= codePoint && codePoint <= 0x00E1) || + (0x00E6 == codePoint) || + (0x00E8 <= codePoint && codePoint <= 0x00EA) || + (0x00EC <= codePoint && codePoint <= 0x00ED) || + (0x00F0 == codePoint) || + (0x00F2 <= codePoint && codePoint <= 0x00F3) || + (0x00F7 <= codePoint && codePoint <= 0x00FA) || + (0x00FC == codePoint) || + (0x00FE == codePoint) || + (0x0101 == codePoint) || + (0x0111 == codePoint) || + (0x0113 == codePoint) || + (0x011B == codePoint) || + (0x0126 <= codePoint && codePoint <= 0x0127) || + (0x012B == codePoint) || + (0x0131 <= codePoint && codePoint <= 0x0133) || + (0x0138 == codePoint) || + (0x013F <= codePoint && codePoint <= 0x0142) || + (0x0144 == codePoint) || + (0x0148 <= codePoint && codePoint <= 0x014B) || + (0x014D == codePoint) || + (0x0152 <= codePoint && codePoint <= 0x0153) || + (0x0166 <= codePoint && codePoint <= 0x0167) || + (0x016B == codePoint) || + (0x01CE == codePoint) || + (0x01D0 == codePoint) || + (0x01D2 == codePoint) || + (0x01D4 == codePoint) || + (0x01D6 == codePoint) || + (0x01D8 == codePoint) || + (0x01DA == codePoint) || + (0x01DC == codePoint) || + (0x0251 == codePoint) || + (0x0261 == codePoint) || + (0x02C4 == codePoint) || + (0x02C7 == codePoint) || + (0x02C9 <= codePoint && codePoint <= 0x02CB) || + (0x02CD == codePoint) || + (0x02D0 == codePoint) || + (0x02D8 <= codePoint && codePoint <= 0x02DB) || + (0x02DD == codePoint) || + (0x02DF == codePoint) || + (0x0300 <= codePoint && codePoint <= 0x036F) || + (0x0391 <= codePoint && codePoint <= 0x03A1) || + (0x03A3 <= codePoint && codePoint <= 0x03A9) || + (0x03B1 <= codePoint && codePoint <= 0x03C1) || + (0x03C3 <= codePoint && codePoint <= 0x03C9) || + (0x0401 == codePoint) || + (0x0410 <= codePoint && codePoint <= 0x044F) || + (0x0451 == codePoint) || + (0x2010 == codePoint) || + (0x2013 <= codePoint && codePoint <= 0x2016) || + (0x2018 <= codePoint && codePoint <= 0x2019) || + (0x201C <= codePoint && codePoint <= 0x201D) || + (0x2020 <= codePoint && codePoint <= 0x2022) || + (0x2024 <= codePoint && codePoint <= 0x2027) || + (0x2030 == codePoint) || + (0x2032 <= codePoint && codePoint <= 0x2033) || + (0x2035 == codePoint) || + (0x203B == codePoint) || + (0x203E == codePoint) || + (0x2074 == codePoint) || + (0x207F == codePoint) || + (0x2081 <= codePoint && codePoint <= 0x2084) || + (0x20AC == codePoint) || + (0x2103 == codePoint) || + (0x2105 == codePoint) || + (0x2109 == codePoint) || + (0x2113 == codePoint) || + (0x2116 == codePoint) || + (0x2121 <= codePoint && codePoint <= 0x2122) || + (0x2126 == codePoint) || + (0x212B == codePoint) || + (0x2153 <= codePoint && codePoint <= 0x2154) || + (0x215B <= codePoint && codePoint <= 0x215E) || + (0x2160 <= codePoint && codePoint <= 0x216B) || + (0x2170 <= codePoint && codePoint <= 0x2179) || + (0x2189 == codePoint) || + (0x2190 <= codePoint && codePoint <= 0x2199) || + (0x21B8 <= codePoint && codePoint <= 0x21B9) || + (0x21D2 == codePoint) || + (0x21D4 == codePoint) || + (0x21E7 == codePoint) || + (0x2200 == codePoint) || + (0x2202 <= codePoint && codePoint <= 0x2203) || + (0x2207 <= codePoint && codePoint <= 0x2208) || + (0x220B == codePoint) || + (0x220F == codePoint) || + (0x2211 == codePoint) || + (0x2215 == codePoint) || + (0x221A == codePoint) || + (0x221D <= codePoint && codePoint <= 0x2220) || + (0x2223 == codePoint) || + (0x2225 == codePoint) || + (0x2227 <= codePoint && codePoint <= 0x222C) || + (0x222E == codePoint) || + (0x2234 <= codePoint && codePoint <= 0x2237) || + (0x223C <= codePoint && codePoint <= 0x223D) || + (0x2248 == codePoint) || + (0x224C == codePoint) || + (0x2252 == codePoint) || + (0x2260 <= codePoint && codePoint <= 0x2261) || + (0x2264 <= codePoint && codePoint <= 0x2267) || + (0x226A <= codePoint && codePoint <= 0x226B) || + (0x226E <= codePoint && codePoint <= 0x226F) || + (0x2282 <= codePoint && codePoint <= 0x2283) || + (0x2286 <= codePoint && codePoint <= 0x2287) || + (0x2295 == codePoint) || + (0x2299 == codePoint) || + (0x22A5 == codePoint) || + (0x22BF == codePoint) || + (0x2312 == codePoint) || + (0x2460 <= codePoint && codePoint <= 0x24E9) || + (0x24EB <= codePoint && codePoint <= 0x254B) || + (0x2550 <= codePoint && codePoint <= 0x2573) || + (0x2580 <= codePoint && codePoint <= 0x258F) || + (0x2592 <= codePoint && codePoint <= 0x2595) || + (0x25A0 <= codePoint && codePoint <= 0x25A1) || + (0x25A3 <= codePoint && codePoint <= 0x25A9) || + (0x25B2 <= codePoint && codePoint <= 0x25B3) || + (0x25B6 <= codePoint && codePoint <= 0x25B7) || + (0x25BC <= codePoint && codePoint <= 0x25BD) || + (0x25C0 <= codePoint && codePoint <= 0x25C1) || + (0x25C6 <= codePoint && codePoint <= 0x25C8) || + (0x25CB == codePoint) || + (0x25CE <= codePoint && codePoint <= 0x25D1) || + (0x25E2 <= codePoint && codePoint <= 0x25E5) || + (0x25EF == codePoint) || + (0x2605 <= codePoint && codePoint <= 0x2606) || + (0x2609 == codePoint) || + (0x260E <= codePoint && codePoint <= 0x260F) || + (0x2614 <= codePoint && codePoint <= 0x2615) || + (0x261C == codePoint) || + (0x261E == codePoint) || + (0x2640 == codePoint) || + (0x2642 == codePoint) || + (0x2660 <= codePoint && codePoint <= 0x2661) || + (0x2663 <= codePoint && codePoint <= 0x2665) || + (0x2667 <= codePoint && codePoint <= 0x266A) || + (0x266C <= codePoint && codePoint <= 0x266D) || + (0x266F == codePoint) || + (0x269E <= codePoint && codePoint <= 0x269F) || + (0x26BE <= codePoint && codePoint <= 0x26BF) || + (0x26C4 <= codePoint && codePoint <= 0x26CD) || + (0x26CF <= codePoint && codePoint <= 0x26E1) || + (0x26E3 == codePoint) || + (0x26E8 <= codePoint && codePoint <= 0x26FF) || + (0x273D == codePoint) || + (0x2757 == codePoint) || + (0x2776 <= codePoint && codePoint <= 0x277F) || + (0x2B55 <= codePoint && codePoint <= 0x2B59) || + (0x3248 <= codePoint && codePoint <= 0x324F) || + (0xE000 <= codePoint && codePoint <= 0xF8FF) || + (0xFE00 <= codePoint && codePoint <= 0xFE0F) || + (0xFFFD == codePoint) || + (0x1F100 <= codePoint && codePoint <= 0x1F10A) || + (0x1F110 <= codePoint && codePoint <= 0x1F12D) || + (0x1F130 <= codePoint && codePoint <= 0x1F169) || + (0x1F170 <= codePoint && codePoint <= 0x1F19A) || + (0xE0100 <= codePoint && codePoint <= 0xE01EF) || + (0xF0000 <= codePoint && codePoint <= 0xFFFFD) || + (0x100000 <= codePoint && codePoint <= 0x10FFFD)) { + return 'A'; + } + return 'N'; +}; +eaw.characterLength = function(character) { + var code = this.eastAsianWidth(character); + if (code == 'F' || code == 'W' || code == 'A') { + return 2; + } else { + return 1; + } +}; +function stringToArray(string) { + return string.match(/[\uD800-\uDBFF][\uDC00-\uDFFF]|[^\uD800-\uDFFF]/g) || []; +} +eaw.length = function(string) { + var characters = stringToArray(string); + var len = 0; + for (var i = 0; i < characters.length; i++) { + len = len + this.characterLength(characters[i]); + } + return len; +}; +eaw.slice = function(text, start, end) { + textLen = eaw.length(text); + start = start ? start : 0; + end = end ? end : 1; + if (start < 0) { + start = textLen + start; + } + if (end < 0) { + end = textLen + end; + } + var result = ''; + var eawLen = 0; + var chars = stringToArray(text); + for (var i = 0; i < chars.length; i++) { + var char = chars[i]; + var charLen = eaw.length(char); + if (eawLen >= start - (charLen == 2 ? 1 : 0)) { + if (eawLen + charLen <= end) { + result += char; + } else { + break; + } + } + eawLen += charLen; + } + return result; +}; +}(eastasianwidth)); +var eastAsianWidth = eastasianwidth.exports; + +var emojiRegex = function () { + return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; +}; + +function stringWidth(string, options = {}) { + if (typeof string !== 'string' || string.length === 0) { + return 0; + } + options = { + ambiguousIsNarrow: true, + ...options + }; + string = stripAnsi(string); + if (string.length === 0) { + return 0; + } + string = string.replace(emojiRegex(), ' '); + const ambiguousCharacterWidth = options.ambiguousIsNarrow ? 1 : 2; + let width = 0; + for (const character of string) { + const codePoint = character.codePointAt(0); + if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) { + continue; + } + if (codePoint >= 0x300 && codePoint <= 0x36F) { + continue; + } + const code = eastAsianWidth.eastAsianWidth(character); + switch (code) { + case 'F': + case 'W': + width += 2; + break; + case 'A': + width += ambiguousCharacterWidth; + break; + default: + width += 1; + } + } + return width; +} + +function statistics(value) { + var result = {true: 0, false: 0, null: 0}; + if (value) { + if (Array.isArray(value)) { + list(value); + } else { + one(value); + } + } + return { + fatal: result.true, + nonfatal: result.false + result.null, + warn: result.false, + info: result.null, + total: result.true + result.false + result.null + } + function list(value) { + var index = -1; + while (++index < value.length) { + one(value[index]); + } + } + function one(value) { + if ('messages' in value) return list(value.messages) + result[ + value.fatal === undefined || value.fatal === null + ? null + : Boolean(value.fatal) + ]++; + } +} + +var severities = {true: 2, false: 1, null: 0, undefined: 0}; +function sort(file) { + file.messages.sort(comparator); + return file +} +function comparator(a, b) { + return ( + check(a, b, 'line') || + check(a, b, 'column') || + severities[b.fatal] - severities[a.fatal] || + compare(a, b, 'source') || + compare(a, b, 'ruleId') || + compare(a, b, 'reason') || + 0 + ) +} +function check(a, b, property) { + return (a[property] || 0) - (b[property] || 0) +} +function compare(a, b, property) { + return String(a[property] || '').localeCompare(b[property] || '') +} + function hasFlag(flag, argv = process$1.argv) { const prefix = flag.startsWith('-') ? '' : (flag.length === 1 ? '-' : '--'); const position = argv.indexOf(prefix + flag); const terminatorPosition = argv.indexOf('--'); return position !== -1 && (terminatorPosition === -1 || position < terminatorPosition); } - const {env} = process$1; - let flagForceColor; -if (hasFlag('no-color') || - hasFlag('no-colors') || - hasFlag('color=false') || - hasFlag('color=never')) { +if ( + hasFlag('no-color') + || hasFlag('no-colors') + || hasFlag('color=false') + || hasFlag('color=never') +) { flagForceColor = 0; -} else if (hasFlag('color') || - hasFlag('colors') || - hasFlag('color=true') || - hasFlag('color=always')) { +} else if ( + hasFlag('color') + || hasFlag('colors') + || hasFlag('color=true') + || hasFlag('color=always') +) { flagForceColor = 1; } - function envForceColor() { if ('FORCE_COLOR' in env) { if (env.FORCE_COLOR === 'true') { return 1; } - if (env.FORCE_COLOR === 'false') { return 0; } - return env.FORCE_COLOR.length === 0 ? 1 : Math.min(Number.parseInt(env.FORCE_COLOR, 10), 3); } } - function translateLevel(level) { if (level === 0) { return false; } - return { level, hasBasic: true, has256: level >= 2, - has16m: level >= 3 + has16m: level >= 3, }; } - function _supportsColor(haveStream, {streamIsTTY, sniffFlags = true} = {}) { const noFlagForceColor = envForceColor(); if (noFlagForceColor !== undefined) { flagForceColor = noFlagForceColor; } - const forceColor = sniffFlags ? flagForceColor : noFlagForceColor; - if (forceColor === 0) { return 0; } - if (sniffFlags) { - if (hasFlag('color=16m') || - hasFlag('color=full') || - hasFlag('color=truecolor')) { + if (hasFlag('color=16m') + || hasFlag('color=full') + || hasFlag('color=truecolor')) { return 3; } - if (hasFlag('color=256')) { return 2; } } - if (haveStream && !streamIsTTY && forceColor === undefined) { return 0; } - const min = forceColor || 0; - if (env.TERM === 'dumb') { return min; } - if (process$1.platform === 'win32') { - // Windows 10 build 10586 is the first Windows release that supports 256 colors. - // Windows 10 build 14931 is the first release that supports 16m/TrueColor. const osRelease = os.release().split('.'); if ( - Number(osRelease[0]) >= 10 && - Number(osRelease[2]) >= 10586 + Number(osRelease[0]) >= 10 + && Number(osRelease[2]) >= 10_586 ) { - return Number(osRelease[2]) >= 14931 ? 3 : 2; + return Number(osRelease[2]) >= 14_931 ? 3 : 2; } - return 1; } - if ('CI' in env) { if (['TRAVIS', 'CIRCLECI', 'APPVEYOR', 'GITLAB_CI', 'GITHUB_ACTIONS', 'BUILDKITE', 'DRONE'].some(sign => sign in env) || env.CI_NAME === 'codeship') { return 1; } - return min; } - if ('TEAMCITY_VERSION' in env) { return /^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(env.TEAMCITY_VERSION) ? 1 : 0; } - + if ('TF_BUILD' in env && 'AGENT_NAME' in env) { + return 1; + } if (env.COLORTERM === 'truecolor') { return 3; } - if ('TERM_PROGRAM' in env) { const version = Number.parseInt((env.TERM_PROGRAM_VERSION || '').split('.')[0], 10); - switch (env.TERM_PROGRAM) { case 'iTerm.app': return version >= 3 ? 3 : 2; case 'Apple_Terminal': return 2; - // No default } } - if (/-256(color)?$/i.test(env.TERM)) { return 2; } - if (/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(env.TERM)) { return 1; } - if ('COLORTERM' in env) { return 1; } - return min; } - function createSupportsColor(stream, options = {}) { const level = _supportsColor(stream, { streamIsTTY: stream && stream.isTTY, - ...options + ...options, }); - return translateLevel(level); } - const supportsColor = { stdout: createSupportsColor({isTTY: tty.isatty(1)}), - stderr: createSupportsColor({isTTY: tty.isatty(2)}) + stderr: createSupportsColor({isTTY: tty.isatty(2)}), }; -function ansiRegex({onlyFirst = false} = {}) { - const pattern = [ - '[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)', - '(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))' - ].join('|'); - - return new RegExp(pattern, onlyFirst ? undefined : 'g'); -} - -function stripAnsi(string) { - if (typeof string !== 'string') { - throw new TypeError(`Expected a \`string\`, got \`${typeof string}\``); - } - - return string.replace(ansiRegex(), ''); -} - -/* eslint-disable yoda */ - -function isFullwidthCodePoint(codePoint) { - if (!Number.isInteger(codePoint)) { - return false; - } - - // Code points are derived from: - // https://unicode.org/Public/UNIDATA/EastAsianWidth.txt - return codePoint >= 0x1100 && ( - codePoint <= 0x115F || // Hangul Jamo - codePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET - codePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET - // CJK Radicals Supplement .. Enclosed CJK Letters and Months - (0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) || - // Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A - (0x3250 <= codePoint && codePoint <= 0x4DBF) || - // CJK Unified Ideographs .. Yi Radicals - (0x4E00 <= codePoint && codePoint <= 0xA4C6) || - // Hangul Jamo Extended-A - (0xA960 <= codePoint && codePoint <= 0xA97C) || - // Hangul Syllables - (0xAC00 <= codePoint && codePoint <= 0xD7A3) || - // CJK Compatibility Ideographs - (0xF900 <= codePoint && codePoint <= 0xFAFF) || - // Vertical Forms - (0xFE10 <= codePoint && codePoint <= 0xFE19) || - // CJK Compatibility Forms .. Small Form Variants - (0xFE30 <= codePoint && codePoint <= 0xFE6B) || - // Halfwidth and Fullwidth Forms - (0xFF01 <= codePoint && codePoint <= 0xFF60) || - (0xFFE0 <= codePoint && codePoint <= 0xFFE6) || - // Kana Supplement - (0x1B000 <= codePoint && codePoint <= 0x1B001) || - // Enclosed Ideographic Supplement - (0x1F200 <= codePoint && codePoint <= 0x1F251) || - // CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane - (0x20000 <= codePoint && codePoint <= 0x3FFFD) - ); -} - -var emojiRegex = function () { - // https://mths.be/emoji - return /\uD83C\uDFF4\uDB40\uDC67\uDB40\uDC62(?:\uDB40\uDC77\uDB40\uDC6C\uDB40\uDC73|\uDB40\uDC73\uDB40\uDC63\uDB40\uDC74|\uDB40\uDC65\uDB40\uDC6E\uDB40\uDC67)\uDB40\uDC7F|(?:\uD83E\uDDD1\uD83C\uDFFF\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFF\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFE])|(?:\uD83E\uDDD1\uD83C\uDFFE\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFE\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFD\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFD\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFC\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFC\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|(?:\uD83E\uDDD1\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83E\uDDD1|\uD83D\uDC69\uD83C\uDFFB\u200D\uD83E\uDD1D\u200D(?:\uD83D[\uDC68\uDC69]))(?:\uD83C[\uDFFC-\uDFFF])|\uD83D\uDC68(?:\uD83C\uDFFB(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFC-\uDFFF])|[\u2695\u2696\u2708]\uFE0F|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))?|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFF]))|\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D)?\uD83D\uDC68|(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFE])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB-\uDFFD\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFC\uDFFE\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83E\uDD1D\u200D\uD83D\uDC68(?:\uD83C[\uDFFB\uDFFD-\uDFFF])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])\uFE0F|\u200D(?:(?:\uD83D[\uDC68\uDC69])\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D[\uDC66\uDC67])|\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC)?|(?:\uD83D\uDC69(?:\uD83C\uDFFB\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|(?:\uD83C[\uDFFC-\uDFFF])\u200D\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69]))|\uD83E\uDDD1(?:\uD83C[\uDFFB-\uDFFF])\u200D\uD83E\uDD1D\u200D\uD83E\uDDD1)(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67]))|\uD83D\uDC69(?:\u200D(?:\u2764\uFE0F\u200D(?:\uD83D\uDC8B\u200D(?:\uD83D[\uDC68\uDC69])|\uD83D[\uDC68\uDC69])|\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83E\uDDD1(?:\u200D(?:\uD83E\uDD1D\u200D\uD83E\uDDD1|\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFF\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFE\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFD\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFC\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD])|\uD83C\uDFFB\u200D(?:\uD83C[\uDF3E\uDF73\uDF7C\uDF84\uDF93\uDFA4\uDFA8\uDFEB\uDFED]|\uD83D[\uDCBB\uDCBC\uDD27\uDD2C\uDE80\uDE92]|\uD83E[\uDDAF-\uDDB3\uDDBC\uDDBD]))|\uD83D\uDC69\u200D\uD83D\uDC66\u200D\uD83D\uDC66|\uD83D\uDC69\u200D\uD83D\uDC69\u200D(?:\uD83D[\uDC66\uDC67])|\uD83D\uDC69\u200D\uD83D\uDC67\u200D(?:\uD83D[\uDC66\uDC67])|(?:\uD83D\uDC41\uFE0F\u200D\uD83D\uDDE8|\uD83E\uDDD1(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDC69(?:\uD83C\uDFFF\u200D[\u2695\u2696\u2708]|\uD83C\uDFFE\u200D[\u2695\u2696\u2708]|\uD83C\uDFFD\u200D[\u2695\u2696\u2708]|\uD83C\uDFFC\u200D[\u2695\u2696\u2708]|\uD83C\uDFFB\u200D[\u2695\u2696\u2708]|\u200D[\u2695\u2696\u2708])|\uD83D\uDE36\u200D\uD83C\uDF2B|\uD83C\uDFF3\uFE0F\u200D\u26A7|\uD83D\uDC3B\u200D\u2744|(?:(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF])\u200D[\u2640\u2642]|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])\u200D[\u2640\u2642]|\uD83C\uDFF4\u200D\u2620|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])\u200D[\u2640\u2642]|[\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u2328\u23CF\u23ED-\u23EF\u23F1\u23F2\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB\u25FC\u2600-\u2604\u260E\u2611\u2618\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u2692\u2694-\u2697\u2699\u269B\u269C\u26A0\u26A7\u26B0\u26B1\u26C8\u26CF\u26D1\u26D3\u26E9\u26F0\u26F1\u26F4\u26F7\u26F8\u2702\u2708\u2709\u270F\u2712\u2714\u2716\u271D\u2721\u2733\u2734\u2744\u2747\u2763\u27A1\u2934\u2935\u2B05-\u2B07\u3030\u303D\u3297\u3299]|\uD83C[\uDD70\uDD71\uDD7E\uDD7F\uDE02\uDE37\uDF21\uDF24-\uDF2C\uDF36\uDF7D\uDF96\uDF97\uDF99-\uDF9B\uDF9E\uDF9F\uDFCD\uDFCE\uDFD4-\uDFDF\uDFF5\uDFF7]|\uD83D[\uDC3F\uDCFD\uDD49\uDD4A\uDD6F\uDD70\uDD73\uDD76-\uDD79\uDD87\uDD8A-\uDD8D\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA\uDECB\uDECD-\uDECF\uDEE0-\uDEE5\uDEE9\uDEF0\uDEF3])\uFE0F|\uD83C\uDFF3\uFE0F\u200D\uD83C\uDF08|\uD83D\uDC69\u200D\uD83D\uDC67|\uD83D\uDC69\u200D\uD83D\uDC66|\uD83D\uDE35\u200D\uD83D\uDCAB|\uD83D\uDE2E\u200D\uD83D\uDCA8|\uD83D\uDC15\u200D\uD83E\uDDBA|\uD83E\uDDD1(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83D\uDC69(?:\uD83C\uDFFF|\uD83C\uDFFE|\uD83C\uDFFD|\uD83C\uDFFC|\uD83C\uDFFB)?|\uD83C\uDDFD\uD83C\uDDF0|\uD83C\uDDF6\uD83C\uDDE6|\uD83C\uDDF4\uD83C\uDDF2|\uD83D\uDC08\u200D\u2B1B|\u2764\uFE0F\u200D(?:\uD83D\uDD25|\uD83E\uDE79)|\uD83D\uDC41\uFE0F|\uD83C\uDFF3\uFE0F|\uD83C\uDDFF(?:\uD83C[\uDDE6\uDDF2\uDDFC])|\uD83C\uDDFE(?:\uD83C[\uDDEA\uDDF9])|\uD83C\uDDFC(?:\uD83C[\uDDEB\uDDF8])|\uD83C\uDDFB(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDEE\uDDF3\uDDFA])|\uD83C\uDDFA(?:\uD83C[\uDDE6\uDDEC\uDDF2\uDDF3\uDDF8\uDDFE\uDDFF])|\uD83C\uDDF9(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDED\uDDEF-\uDDF4\uDDF7\uDDF9\uDDFB\uDDFC\uDDFF])|\uD83C\uDDF8(?:\uD83C[\uDDE6-\uDDEA\uDDEC-\uDDF4\uDDF7-\uDDF9\uDDFB\uDDFD-\uDDFF])|\uD83C\uDDF7(?:\uD83C[\uDDEA\uDDF4\uDDF8\uDDFA\uDDFC])|\uD83C\uDDF5(?:\uD83C[\uDDE6\uDDEA-\uDDED\uDDF0-\uDDF3\uDDF7-\uDDF9\uDDFC\uDDFE])|\uD83C\uDDF3(?:\uD83C[\uDDE6\uDDE8\uDDEA-\uDDEC\uDDEE\uDDF1\uDDF4\uDDF5\uDDF7\uDDFA\uDDFF])|\uD83C\uDDF2(?:\uD83C[\uDDE6\uDDE8-\uDDED\uDDF0-\uDDFF])|\uD83C\uDDF1(?:\uD83C[\uDDE6-\uDDE8\uDDEE\uDDF0\uDDF7-\uDDFB\uDDFE])|\uD83C\uDDF0(?:\uD83C[\uDDEA\uDDEC-\uDDEE\uDDF2\uDDF3\uDDF5\uDDF7\uDDFC\uDDFE\uDDFF])|\uD83C\uDDEF(?:\uD83C[\uDDEA\uDDF2\uDDF4\uDDF5])|\uD83C\uDDEE(?:\uD83C[\uDDE8-\uDDEA\uDDF1-\uDDF4\uDDF6-\uDDF9])|\uD83C\uDDED(?:\uD83C[\uDDF0\uDDF2\uDDF3\uDDF7\uDDF9\uDDFA])|\uD83C\uDDEC(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEE\uDDF1-\uDDF3\uDDF5-\uDDFA\uDDFC\uDDFE])|\uD83C\uDDEB(?:\uD83C[\uDDEE-\uDDF0\uDDF2\uDDF4\uDDF7])|\uD83C\uDDEA(?:\uD83C[\uDDE6\uDDE8\uDDEA\uDDEC\uDDED\uDDF7-\uDDFA])|\uD83C\uDDE9(?:\uD83C[\uDDEA\uDDEC\uDDEF\uDDF0\uDDF2\uDDF4\uDDFF])|\uD83C\uDDE8(?:\uD83C[\uDDE6\uDDE8\uDDE9\uDDEB-\uDDEE\uDDF0-\uDDF5\uDDF7\uDDFA-\uDDFF])|\uD83C\uDDE7(?:\uD83C[\uDDE6\uDDE7\uDDE9-\uDDEF\uDDF1-\uDDF4\uDDF6-\uDDF9\uDDFB\uDDFC\uDDFE\uDDFF])|\uD83C\uDDE6(?:\uD83C[\uDDE8-\uDDEC\uDDEE\uDDF1\uDDF2\uDDF4\uDDF6-\uDDFA\uDDFC\uDDFD\uDDFF])|[#\*0-9]\uFE0F\u20E3|\u2764\uFE0F|(?:\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD])(?:\uD83C[\uDFFB-\uDFFF])|(?:\u26F9|\uD83C[\uDFCB\uDFCC]|\uD83D\uDD75)(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|\uD83C\uDFF4|(?:[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5])(?:\uD83C[\uDFFB-\uDFFF])|(?:[\u261D\u270C\u270D]|\uD83D[\uDD74\uDD90])(?:\uFE0F|\uD83C[\uDFFB-\uDFFF])|[\u270A\u270B]|\uD83C[\uDF85\uDFC2\uDFC7]|\uD83D[\uDC08\uDC15\uDC3B\uDC42\uDC43\uDC46-\uDC50\uDC66\uDC67\uDC6B-\uDC6D\uDC72\uDC74-\uDC76\uDC78\uDC7C\uDC83\uDC85\uDC8F\uDC91\uDCAA\uDD7A\uDD95\uDD96\uDE2E\uDE35\uDE36\uDE4C\uDE4F\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1C\uDD1E\uDD1F\uDD30-\uDD34\uDD36\uDD77\uDDB5\uDDB6\uDDBB\uDDD2\uDDD3\uDDD5]|\uD83C[\uDFC3\uDFC4\uDFCA]|\uD83D[\uDC6E\uDC70\uDC71\uDC73\uDC77\uDC81\uDC82\uDC86\uDC87\uDE45-\uDE47\uDE4B\uDE4D\uDE4E\uDEA3\uDEB4-\uDEB6]|\uD83E[\uDD26\uDD35\uDD37-\uDD39\uDD3D\uDD3E\uDDB8\uDDB9\uDDCD-\uDDCF\uDDD4\uDDD6-\uDDDD]|\uD83D\uDC6F|\uD83E[\uDD3C\uDDDE\uDDDF]|[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF84\uDF86-\uDF93\uDFA0-\uDFC1\uDFC5\uDFC6\uDFC8\uDFC9\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC07\uDC09-\uDC14\uDC16-\uDC3A\uDC3C-\uDC3E\uDC40\uDC44\uDC45\uDC51-\uDC65\uDC6A\uDC79-\uDC7B\uDC7D-\uDC80\uDC84\uDC88-\uDC8E\uDC90\uDC92-\uDCA9\uDCAB-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDDA4\uDDFB-\uDE2D\uDE2F-\uDE34\uDE37-\uDE44\uDE48-\uDE4A\uDE80-\uDEA2\uDEA4-\uDEB3\uDEB7-\uDEBF\uDEC1-\uDEC5\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0D\uDD0E\uDD10-\uDD17\uDD1D\uDD20-\uDD25\uDD27-\uDD2F\uDD3A\uDD3F-\uDD45\uDD47-\uDD76\uDD78\uDD7A-\uDDB4\uDDB7\uDDBA\uDDBC-\uDDCB\uDDD0\uDDE0-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6]|(?:[\u231A\u231B\u23E9-\u23EC\u23F0\u23F3\u25FD\u25FE\u2614\u2615\u2648-\u2653\u267F\u2693\u26A1\u26AA\u26AB\u26BD\u26BE\u26C4\u26C5\u26CE\u26D4\u26EA\u26F2\u26F3\u26F5\u26FA\u26FD\u2705\u270A\u270B\u2728\u274C\u274E\u2753-\u2755\u2757\u2795-\u2797\u27B0\u27BF\u2B1B\u2B1C\u2B50\u2B55]|\uD83C[\uDC04\uDCCF\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE1A\uDE2F\uDE32-\uDE36\uDE38-\uDE3A\uDE50\uDE51\uDF00-\uDF20\uDF2D-\uDF35\uDF37-\uDF7C\uDF7E-\uDF93\uDFA0-\uDFCA\uDFCF-\uDFD3\uDFE0-\uDFF0\uDFF4\uDFF8-\uDFFF]|\uD83D[\uDC00-\uDC3E\uDC40\uDC42-\uDCFC\uDCFF-\uDD3D\uDD4B-\uDD4E\uDD50-\uDD67\uDD7A\uDD95\uDD96\uDDA4\uDDFB-\uDE4F\uDE80-\uDEC5\uDECC\uDED0-\uDED2\uDED5-\uDED7\uDEEB\uDEEC\uDEF4-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])|(?:[#\*0-9\xA9\xAE\u203C\u2049\u2122\u2139\u2194-\u2199\u21A9\u21AA\u231A\u231B\u2328\u23CF\u23E9-\u23F3\u23F8-\u23FA\u24C2\u25AA\u25AB\u25B6\u25C0\u25FB-\u25FE\u2600-\u2604\u260E\u2611\u2614\u2615\u2618\u261D\u2620\u2622\u2623\u2626\u262A\u262E\u262F\u2638-\u263A\u2640\u2642\u2648-\u2653\u265F\u2660\u2663\u2665\u2666\u2668\u267B\u267E\u267F\u2692-\u2697\u2699\u269B\u269C\u26A0\u26A1\u26A7\u26AA\u26AB\u26B0\u26B1\u26BD\u26BE\u26C4\u26C5\u26C8\u26CE\u26CF\u26D1\u26D3\u26D4\u26E9\u26EA\u26F0-\u26F5\u26F7-\u26FA\u26FD\u2702\u2705\u2708-\u270D\u270F\u2712\u2714\u2716\u271D\u2721\u2728\u2733\u2734\u2744\u2747\u274C\u274E\u2753-\u2755\u2757\u2763\u2764\u2795-\u2797\u27A1\u27B0\u27BF\u2934\u2935\u2B05-\u2B07\u2B1B\u2B1C\u2B50\u2B55\u3030\u303D\u3297\u3299]|\uD83C[\uDC04\uDCCF\uDD70\uDD71\uDD7E\uDD7F\uDD8E\uDD91-\uDD9A\uDDE6-\uDDFF\uDE01\uDE02\uDE1A\uDE2F\uDE32-\uDE3A\uDE50\uDE51\uDF00-\uDF21\uDF24-\uDF93\uDF96\uDF97\uDF99-\uDF9B\uDF9E-\uDFF0\uDFF3-\uDFF5\uDFF7-\uDFFF]|\uD83D[\uDC00-\uDCFD\uDCFF-\uDD3D\uDD49-\uDD4E\uDD50-\uDD67\uDD6F\uDD70\uDD73-\uDD7A\uDD87\uDD8A-\uDD8D\uDD90\uDD95\uDD96\uDDA4\uDDA5\uDDA8\uDDB1\uDDB2\uDDBC\uDDC2-\uDDC4\uDDD1-\uDDD3\uDDDC-\uDDDE\uDDE1\uDDE3\uDDE8\uDDEF\uDDF3\uDDFA-\uDE4F\uDE80-\uDEC5\uDECB-\uDED2\uDED5-\uDED7\uDEE0-\uDEE5\uDEE9\uDEEB\uDEEC\uDEF0\uDEF3-\uDEFC\uDFE0-\uDFEB]|\uD83E[\uDD0C-\uDD3A\uDD3C-\uDD45\uDD47-\uDD78\uDD7A-\uDDCB\uDDCD-\uDDFF\uDE70-\uDE74\uDE78-\uDE7A\uDE80-\uDE86\uDE90-\uDEA8\uDEB0-\uDEB6\uDEC0-\uDEC2\uDED0-\uDED6])\uFE0F|(?:[\u261D\u26F9\u270A-\u270D]|\uD83C[\uDF85\uDFC2-\uDFC4\uDFC7\uDFCA-\uDFCC]|\uD83D[\uDC42\uDC43\uDC46-\uDC50\uDC66-\uDC78\uDC7C\uDC81-\uDC83\uDC85-\uDC87\uDC8F\uDC91\uDCAA\uDD74\uDD75\uDD7A\uDD90\uDD95\uDD96\uDE45-\uDE47\uDE4B-\uDE4F\uDEA3\uDEB4-\uDEB6\uDEC0\uDECC]|\uD83E[\uDD0C\uDD0F\uDD18-\uDD1F\uDD26\uDD30-\uDD39\uDD3C-\uDD3E\uDD77\uDDB5\uDDB6\uDDB8\uDDB9\uDDBB\uDDCD-\uDDCF\uDDD1-\uDDDD])/g; -}; - -function stringWidth(string) { - if (typeof string !== 'string' || string.length === 0) { - return 0; - } - - string = stripAnsi(string); - - if (string.length === 0) { - return 0; - } - - string = string.replace(emojiRegex(), ' '); - - let width = 0; - - for (let index = 0; index < string.length; index++) { - const codePoint = string.codePointAt(index); - - // Ignore control characters - if (codePoint <= 0x1F || (codePoint >= 0x7F && codePoint <= 0x9F)) { - continue; - } - - // Ignore combining characters - if (codePoint >= 0x300 && codePoint <= 0x36F) { - continue; - } - - // Surrogates - if (codePoint > 0xFFFF) { - index++; - } - - width += isFullwidthCodePoint(codePoint) ? 2 : 1; - } - - return width; -} - -/** - * @typedef {import('vfile').VFile} VFile - * @typedef {import('vfile-message').VFileMessage} VFileMessage - * - * @typedef Statistics - * @property {number} fatal Fatal errors (`fatal: true`) - * @property {number} warn warning errors (`fatal: false`) - * @property {number} info informational messages (`fatal: null|undefined`) - * @property {number} nonfatal warning + info - * @property {number} total nonfatal + fatal - */ - -/** - * Get stats for a file, list of files, or list of messages. - * - * @param {Array.|VFile|VFileMessage} [value] - * @returns {Statistics} - */ -function statistics(value) { - var result = {true: 0, false: 0, null: 0}; - - if (value) { - if (Array.isArray(value)) { - list(value); - } else { - one(value); - } - } - - return { - fatal: result.true, - nonfatal: result.false + result.null, - warn: result.false, - info: result.null, - total: result.true + result.false + result.null - } - - /** - * @param {Array.} value - * @returns {void} - */ - function list(value) { - var index = -1; - - while (++index < value.length) { - one(value[index]); - } - } - - /** - * @param {VFile|VFileMessage} value - * @returns {void} - */ - function one(value) { - if ('messages' in value) return list(value.messages) - - result[ - value.fatal === undefined || value.fatal === null - ? null - : Boolean(value.fatal) - ]++; - } -} - -/** - * @typedef {import('vfile').VFile} VFile - * @typedef {import('vfile-message').VFileMessage} VFileMessage - */ - -var severities = {true: 2, false: 1, null: 0, undefined: 0}; - -/** - * @template {VFile} F - * @param {F} file - * @returns {F} - */ -function sort(file) { - file.messages.sort(comparator); - return file -} - -/** - * @param {VFileMessage} a - * @param {VFileMessage} b - * @returns {number} - */ -function comparator(a, b) { - return ( - check(a, b, 'line') || - check(a, b, 'column') || - severities[b.fatal] - severities[a.fatal] || - compare(a, b, 'source') || - compare(a, b, 'ruleId') || - compare(a, b, 'reason') || - 0 - ) -} - -/** - * @param {VFileMessage} a - * @param {VFileMessage} b - * @param {string} property - * @returns {number} - */ -function check(a, b, property) { - return (a[property] || 0) - (b[property] || 0) -} - -/** - * @param {VFileMessage} a - * @param {VFileMessage} b - * @param {string} property - * @returns {number} - */ -function compare(a, b, property) { - return String(a[property] || '').localeCompare(b[property] || '') -} - -/** - * @typedef {import('vfile').VFile} VFile - * @typedef {import('vfile-message').VFileMessage} VFileMessage - * @typedef {import('vfile-statistics').Statistics} Statistics - * - * @typedef Options - * @property {boolean} [color] - * @property {boolean} [silent=false] - * @property {boolean} [quiet=false] - * @property {boolean} [verbose=false] - * @property {string} [defaultName=''] - * - * @typedef _Row - * @property {string} place - * @property {string} label - * @property {string} reason - * @property {string} ruleId - * @property {string} source - * - * @typedef _FileRow - * @property {'file'} type - * @property {VFile} file - * @property {Statistics} stats - * - * @typedef {{[x: string]: number}} _Sizes - * - * @typedef _Info - * @property {Array.<_FileRow|_Row>} rows - * @property {Statistics} stats - * @property {_Sizes} sizes - */ +const color = supportsColor.stderr.hasBasic; const own = {}.hasOwnProperty; - -// @ts-expect-error Types are incorrect. -const supported = supportsColor.stderr.hasBasic; - -// `log-symbols` without chalk, ignored for Windows: -/* c8 ignore next 4 */ const chars = process.platform === 'win32' ? {error: '×', warning: '‼'} : {error: '✖', warning: '⚠'}; - const labels = { true: 'error', false: 'warning', null: 'info', undefined: 'info' }; - -/** - * Report a file’s messages. - * - * @param {Error|VFile|Array.} [files] - * @param {Options} [options] - * @returns {string} - */ function reporter(files, options = {}) { - /** @type {boolean|undefined} */ let one; - if (!files) { return '' } - - // Error. if ('name' in files && 'message' in files) { return String(files.stack || files) } - - // One file. if (!Array.isArray(files)) { one = true; files = [files]; } - return format$1(transform(files, options), one, options) } - -/** - * @param {Array.} files - * @param {Options} options - * @returns {_Info} - */ function transform(files, options) { - /** @type {Array.<_FileRow|_Row>} */ const rows = []; - /** @type {Array.} */ const all = []; - /** @type {_Sizes} */ const sizes = {}; let index = -1; - while (++index < files.length) { - // @ts-expect-error it works fine. const messages = sort({messages: [...files[index].messages]}).messages; - /** @type {Array.<_Row>} */ const messageRows = []; let offset = -1; - while (++offset < messages.length) { const message = messages[offset]; - if (!options.silent || message.fatal) { all.push(message); - const row = { place: stringifyPosition( message.position @@ -29132,28 +21492,22 @@ function transform(files, options) { : message.position.start : undefined ), - label: labels[/** @type {keyof labels} */ (String(message.fatal))], + label: labels[ (String(message.fatal))], reason: (message.stack || message.message) + (options.verbose && message.note ? '\n' + message.note : ''), ruleId: message.ruleId || '', source: message.source || '' }; - - /** @type {keyof row} */ let key; - for (key in row) { - // eslint-disable-next-line max-depth if (own.call(row, key)) { sizes[key] = Math.max(size(row[key]), sizes[key] || 0); } } - messageRows.push(row); } } - if ((!options.quiet && !options.silent) || messageRows.length > 0) { rows.push( {type: 'file', file: files[index], stats: statistics(messages)}, @@ -29161,80 +21515,61 @@ function transform(files, options) { ); } } - return {rows, stats: statistics(all), sizes} } - -/** - * @param {_Info} map - * @param {boolean|undefined} one - * @param {Options} options - */ -// eslint-disable-next-line complexity function format$1(map, one, options) { - /** @type {boolean} */ const enabled = options.color === undefined || options.color === null - ? supported + ? color : options.color; - /** @type {Array.} */ const lines = []; let index = -1; - while (++index < map.rows.length) { const row = map.rows[index]; - if ('type' in row) { const stats = row.stats; let line = row.file.history[0] || options.defaultName || ''; - line = one && !options.defaultName && !row.file.history[0] ? '' : (enabled - ? '\u001B[4m' /* Underline. */ + + ? '\u001B[4m' + (stats.fatal - ? '\u001B[31m' /* Red. */ + ? '\u001B[31m' : stats.total - ? '\u001B[33m' /* Yellow. */ - : '\u001B[32m') /* Green. */ + + ? '\u001B[33m' + : '\u001B[32m') + line + '\u001B[39m\u001B[24m' : line) + (row.file.stored && row.file.path !== row.file.history[0] ? ' > ' + row.file.path : ''); - if (!stats.total) { line = (line ? line + ': ' : '') + (row.file.stored ? enabled - ? '\u001B[33mwritten\u001B[39m' /* Yellow. */ + ? '\u001B[33mwritten\u001B[39m' : 'written' : 'no issues found'); } - if (line) { if (index && !('type' in map.rows[index - 1])) { lines.push(''); } - lines.push(line); } } else { let reason = row.reason; const match = /\r?\n|\r/.exec(reason); - /** @type {string} */ let rest; - if (match) { rest = reason.slice(match.index); reason = reason.slice(0, match.index); } else { rest = ''; } - lines.push( ( ' ' + @@ -29243,8 +21578,8 @@ function format$1(map, one, options) { ' ' + (enabled ? (row.label === 'error' - ? '\u001B[31m' /* Red. */ - : '\u001B[33m') /* Yellow. */ + + ? '\u001B[31m' + : '\u001B[33m') + row.label + '\u001B[39m' : row.label) + @@ -29261,82 +21596,74 @@ function format$1(map, one, options) { ); } } - const stats = map.stats; - if (stats.fatal || stats.warn) { let line = ''; - if (stats.fatal) { line = (enabled - ? '\u001B[31m' /* Red. */ + chars.error + '\u001B[39m' + ? '\u001B[31m' + chars.error + '\u001B[39m' : chars.error) + ' ' + stats.fatal + ' ' + (labels.true + (stats.fatal === 1 ? '' : 's')); } - if (stats.warn) { line = (line ? line + ', ' : '') + (enabled - ? '\u001B[33m' /* Yellow. */ + chars.warning + '\u001B[39m' + ? '\u001B[33m' + chars.warning + '\u001B[39m' : chars.warning) + ' ' + stats.warn + ' ' + (labels.false + (stats.warn === 1 ? '' : 's')); } - if (stats.total !== stats.fatal && stats.total !== stats.warn) { line = stats.total + ' messages (' + line + ')'; } - lines.push('', line); } - return lines.join('\n') } - -/** - * Get the length of `value`, ignoring ANSI sequences. - * - * @param {string} value - * @returns {number} - */ function size(value) { const match = /\r?\n|\r/.exec(value); return stringWidth(match ? value.slice(0, match.index) : value) } const paths = process.argv.slice(2); - if (!paths.length) { console.error('Usage: lint-md.mjs [ ...]'); process.exit(1); } - let format = false; - if (paths[0] === '--format') { paths.shift(); format = true; } - const linter = unified() .use(remarkParse) .use(remarkPresetLintNode) .use(remarkStringify); - paths.forEach(async (path) => { const file = await read(path); + const fileContents = file.toString(); const result = await linter.process(file); + const isDifferent = fileContents !== result.toString(); if (format) { - fs.writeFileSync(path, result.toString()); - } else if (result.messages.length) { - process.exitCode = 1; - console.error(reporter(result)); + if (isDifferent) { + fs.writeFileSync(path, result.toString()); + } + } else { + if (isDifferent) { + process.exitCode = 1; + const cmd = process.platform === 'win32' ? 'vcbuild' : 'make'; + console.error(`${path} is not formatted. Please run '${cmd} format-md'.`); + } + if (result.messages.length) { + process.exitCode = 1; + console.error(reporter(result)); + } } }); diff --git a/tools/lint-md/lint-md.src.mjs b/tools/lint-md/lint-md.src.mjs index 258d341f3b5967..4116d7e803b64e 100644 --- a/tools/lint-md/lint-md.src.mjs +++ b/tools/lint-md/lint-md.src.mjs @@ -28,11 +28,26 @@ const linter = unified() paths.forEach(async (path) => { const file = await read(path); + // We need to calculate `fileContents` before running `linter.process(files)` + // because `linter.process(files)` mutates `file` and returns it as `result`. + // So we won't be able to use `file` after that to see if its contents have + // changed as they will have been altered to the changed version. + const fileContents = file.toString(); const result = await linter.process(file); + const isDifferent = fileContents !== result.toString(); if (format) { - fs.writeFileSync(path, result.toString()); - } else if (result.messages.length) { - process.exitCode = 1; - console.error(reporter(result)); + if (isDifferent) { + fs.writeFileSync(path, result.toString()); + } + } else { + if (isDifferent) { + process.exitCode = 1; + const cmd = process.platform === 'win32' ? 'vcbuild' : 'make'; + console.error(`${path} is not formatted. Please run '${cmd} format-md'.`); + } + if (result.messages.length) { + process.exitCode = 1; + console.error(reporter(result)); + } } }); diff --git a/tools/lint-md/package-lock.json b/tools/lint-md/package-lock.json index 75e4ea906e72b5..957e8099fa3c44 100644 --- a/tools/lint-md/package-lock.json +++ b/tools/lint-md/package-lock.json @@ -8,23 +8,24 @@ "name": "lint-md", "version": "1.0.0", "dependencies": { - "remark-parse": "^10.0.0", - "remark-preset-lint-node": "^3.3.0", - "remark-stringify": "^10.0.1", - "to-vfile": "^7.2.2", - "unified": "^10.1.0", - "vfile-reporter": "^7.0.2" + "remark-parse": "^10.0.1", + "remark-preset-lint-node": "^3.3.1", + "remark-stringify": "^10.0.2", + "to-vfile": "^7.2.3", + "unified": "^10.1.1", + "vfile-reporter": "^7.0.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "rollup": "^2.58.0" + "@rollup/plugin-commonjs": "^21.0.2", + "@rollup/plugin-node-resolve": "^13.1.3", + "rollup": "^2.69.1", + "rollup-plugin-cleanup": "^3.2.1" } }, "node_modules/@rollup/plugin-commonjs": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", - "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.2.tgz", + "integrity": "sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -43,9 +44,9 @@ } }, "node_modules/@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz", + "integrity": "sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==", "dev": true, "dependencies": { "@rollup/pluginutils": "^3.1.0", @@ -106,6 +107,14 @@ "@types/estree": "*" } }, + "node_modules/@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "dependencies": { + "@types/unist": "*" + } + }, "node_modules/@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", @@ -120,9 +129,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "node_modules/@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true }, "node_modules/@types/resolve": { @@ -161,9 +170,9 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "node_modules/bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==", + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -198,36 +207,18 @@ } }, "node_modules/ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -251,9 +242,9 @@ "dev": true }, "node_modules/debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "dependencies": { "ms": "2.1.2" }, @@ -266,6 +257,18 @@ } } }, + "node_modules/decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "dependencies": { + "character-entities": "^2.0.0" + }, + "funding": { + "type": "github", + "url": "https://github.com/sponsors/wooorm" + } + }, "node_modules/deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", @@ -291,6 +294,11 @@ "node": ">=0.3.1" } }, + "node_modules/eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "node_modules/emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -376,17 +384,6 @@ "node": ">= 0.4.0" } }, - "node_modules/has-flag": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", - "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -403,28 +400,6 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "node_modules/is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", - "dependencies": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", @@ -448,9 +423,9 @@ } }, "node_modules/is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "dependencies": { "has": "^1.0.3" @@ -459,35 +434,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==", - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -514,6 +460,20 @@ "@types/estree": "*" } }, + "node_modules/js-cleanup": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/js-cleanup/-/js-cleanup-1.2.0.tgz", + "integrity": "sha512-JeDD0yiiSt80fXzAVa/crrS0JDPQljyBG/RpOtaSbyDq03VHa9szJWMaWOYU/bcTn412uMN2MxApXq8v79cUiQ==", + "dev": true, + "dependencies": { + "magic-string": "^0.25.7", + "perf-regexes": "^1.0.1", + "skip-regex": "^1.0.2" + }, + "engines": { + "node": "^10.14.2 || >=12.0.0" + } + }, "node_modules/js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -534,9 +494,9 @@ } }, "node_modules/longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -554,18 +514,18 @@ } }, "node_modules/magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "dependencies": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "node_modules/markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" @@ -598,12 +558,13 @@ } }, "node_modules/mdast-util-from-markdown": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.4.tgz", - "integrity": "sha512-BlL42o885QO+6o43ceoc6KBdp/bi9oYyamj0hUbeu730yhP1WDC7m2XYSBfmQkOb0TdoHSAJ3de3SMqse69u+g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", "mdast-util-to-string": "^3.1.0", "micromark": "^3.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", @@ -611,7 +572,6 @@ "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0", - "parse-entities": "^3.0.0", "unist-util-stringify-position": "^3.0.0", "uvu": "^0.5.0" }, @@ -652,14 +612,13 @@ } }, "node_modules/mdast-util-gfm-footnote": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz", - "integrity": "sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", "dependencies": { "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "unist-util-visit": "^4.0.0" + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" }, "funding": { "type": "opencollective", @@ -667,12 +626,12 @@ } }, "node_modules/mdast-util-gfm-strikethrough": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", - "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", + "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", "dependencies": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -680,12 +639,12 @@ } }, "node_modules/mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", + "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", "dependencies": { "markdown-table": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -693,12 +652,12 @@ } }, "node_modules/mdast-util-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", "dependencies": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" }, "funding": { "type": "opencollective", @@ -718,11 +677,15 @@ } }, "node_modules/mdast-util-mdx-expression": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz", - "integrity": "sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.0.tgz", + "integrity": "sha512-wb36oi09XxqO9RVqgfD+xo8a7xaNgS+01+k3v0GKW0X0bYbeBmUZz22Z/IJ8SuphVlG+DNgNo9VoEaUJ3PKfJQ==", "dependencies": { - "@types/estree-jsx": "^0.0.1" + "@types/estree-jsx": "^0.0.1", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" }, "funding": { "type": "opencollective", @@ -730,9 +693,9 @@ } }, "node_modules/mdast-util-to-markdown": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz", - "integrity": "sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", + "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -757,9 +720,9 @@ } }, "node_modules/micromark": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.7.tgz", - "integrity": "sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "funding": [ { "type": "GitHub Sponsors", @@ -773,6 +736,7 @@ "dependencies": { "@types/debug": "^4.0.0", "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", "micromark-core-commonmark": "^1.0.1", "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -786,14 +750,13 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0", "uvu": "^0.5.0" } }, "node_modules/micromark-core-commonmark": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.3.tgz", - "integrity": "sha512-0E8aE27v0DYHPk40IxzhCdXnZWQuvZ6rbflrx1u8ZZAUJEB48o0fgLXA5+yMab28yXT+mi1Q4LXdsI4oGS6Vng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "funding": [ { "type": "GitHub Sponsors", @@ -805,6 +768,7 @@ } ], "dependencies": { + "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", "micromark-factory-label": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -819,14 +783,13 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0", "uvu": "^0.5.0" } }, "node_modules/micromark-extension-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", - "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "dependencies": { "micromark-extension-gfm-autolink-literal": "^1.0.0", "micromark-extension-gfm-footnote": "^1.0.0", @@ -843,9 +806,9 @@ } }, "node_modules/micromark-extension-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "dependencies": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", @@ -859,9 +822,9 @@ } }, "node_modules/micromark-extension-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", "dependencies": { "micromark-core-commonmark": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -877,9 +840,9 @@ } }, "node_modules/micromark-extension-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "dependencies": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", @@ -894,9 +857,9 @@ } }, "node_modules/micromark-extension-gfm-table": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.2.tgz", - "integrity": "sha512-mRtt0S/jVT8IRWqIw2Wnl8dr/9yHh+b3NgiDQ4zdgheiAtkFYalng5CUQooFfQeSxQjfV+QKXqtPpjdIHu3AqQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -910,9 +873,9 @@ } }, "node_modules/micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "dependencies": { "micromark-util-types": "^1.0.0" }, @@ -922,9 +885,9 @@ } }, "node_modules/micromark-extension-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "dependencies": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -1135,9 +1098,9 @@ } }, "node_modules/micromark-util-decode-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz", - "integrity": "sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", "funding": [ { "type": "GitHub Sponsors", @@ -1149,16 +1112,16 @@ } ], "dependencies": { + "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "parse-entities": "^3.0.0" + "micromark-util-symbol": "^1.0.0" } }, "node_modules/micromark-util-encode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", - "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==", "funding": [ { "type": "GitHub Sponsors", @@ -1263,9 +1226,9 @@ } }, "node_modules/micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==", "funding": [ { "type": "GitHub Sponsors", @@ -1278,9 +1241,9 @@ ] }, "node_modules/micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==", "funding": [ { "type": "GitHub Sponsors", @@ -1293,9 +1256,9 @@ ] }, "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "dependencies": { "brace-expansion": "^1.1.7" @@ -1326,23 +1289,6 @@ "wrappy": "1" } }, - "node_modules/parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", - "dependencies": { - "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", - "character-reference-invalid": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/wooorm" - } - }, "node_modules/path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -1358,10 +1304,19 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/perf-regexes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/perf-regexes/-/perf-regexes-1.0.1.tgz", + "integrity": "sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng==", + "dev": true, + "engines": { + "node": ">=6.14" + } + }, "node_modules/picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true, "engines": { "node": ">=8.6" @@ -1379,9 +1334,9 @@ } }, "node_modules/remark-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.0.tgz", - "integrity": "sha512-CXJw5h1iwUW6czFwi4tveoOSlsEZU44hcdNzUxC5uiNi7r/OQySf46AoEihM8/NwBbW1LcsnyGIsHBnbURFw2g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -1394,9 +1349,9 @@ } }, "node_modules/remark-lint": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.0.tgz", - "integrity": "sha512-47ZaPj1HSs17nqsu3CPg4nIhaj+XTEXJM9cpFybhyA4lzVRZiRXy43BokbEjBt0f1fhY3coQoOh16jJeGBvrJg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz", + "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==", "dependencies": { "@types/mdast": "^3.0.0", "remark-message-control": "^7.0.0", @@ -1408,9 +1363,9 @@ } }, "node_modules/remark-lint-blockquote-indentation": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.0.tgz", - "integrity": "sha512-BX9XhW7yjnEp7kEMasBIQnIGOeQJYLrrQSMFoBNURLjPMBslSUrABFXUZI6hwFo5fd0dF9Wv1xt9zvSbrU9B7g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz", + "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1426,9 +1381,9 @@ } }, "node_modules/remark-lint-checkbox-character-style": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.0.tgz", - "integrity": "sha512-wV3NN4j21XoC3l76mmbU/kSl4Yx0SK91lHTEpimx9PBbRtb0cb/YZiyE3bkNSXGoj6iWDcB2asF4U4rRcT5t5A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz", + "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1442,9 +1397,9 @@ } }, "node_modules/remark-lint-checkbox-content-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.0.tgz", - "integrity": "sha512-K2R9V1C/ezs2SfLsh5SdXlOuJVWaUwA2LsbjIp+jcd+Dt8otJ4Rul741ypL4Sji/vaxrQi5f4+iLYpfrUtjfDQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz", + "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1476,9 +1431,9 @@ } }, "node_modules/remark-lint-definition-spacing": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.0.tgz", - "integrity": "sha512-cJlT3+tjTTA3mv3k2ogdOELSdbkpGKDNZ1qwba0ReSCdNCVbxcejZ/rrU96n/guv34XgqFyDrzoc7kcxU8oyEg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz", + "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1492,9 +1447,9 @@ } }, "node_modules/remark-lint-fenced-code-flag": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.0.tgz", - "integrity": "sha512-s96DWERWUeDi3kcDbW6TQo4vRUsGJUNhT1XEsmUzYlwJJ+2uGit9O5dAxvEnwF3gZxp/09hPsQ+QSxilC1sxLg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz", + "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1509,9 +1464,9 @@ } }, "node_modules/remark-lint-fenced-code-marker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.0.tgz", - "integrity": "sha512-klvbiQBINePA51Icprq7biFCyZzbtsASwOa6WCzW/KpAFz2V9a57PTuZkO9MtdDhW0vLoHgsQ4b0P1MD7JHMEw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz", + "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1525,9 +1480,9 @@ } }, "node_modules/remark-lint-file-extension": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.0.tgz", - "integrity": "sha512-3T2n5/FsQ2CcDDubO5F8h7a/GyzTCy+R9XF8L9L9dVuZoxl4AWr1J6AmxE02bTy4g/TMH90juLELT08WGR6D9Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz", + "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1539,9 +1494,9 @@ } }, "node_modules/remark-lint-final-definition": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.0.tgz", - "integrity": "sha512-XUbCNX7EFc/f8PvdQeXl2d5eu2Nksb2dCxIri+QvL/ykQ0MluXTNUfVsasDfNp9OYFBbTuBf27WiffOTOwOHRw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz", + "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1556,9 +1511,9 @@ } }, "node_modules/remark-lint-final-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.0.tgz", - "integrity": "sha512-jD9zIfk+DYAhho7mGkNtT4+3Bn6eiOVYzEJUUqNZp1GMtCY69gyVCK7Oef3S2Z6xLJUlZvC2vZmezhn0URUl7w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz", + "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1570,9 +1525,9 @@ } }, "node_modules/remark-lint-first-heading-level": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.0.tgz", - "integrity": "sha512-8OV6BEjB5JSUCQRNk+z8MFyqu5Cdtk7TCR6Y6slC4b8vYlj26VecG5Fo4nLXdSj9/Tx01z59Od2FzBRV+6A1Xg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz", + "integrity": "sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1586,9 +1541,9 @@ } }, "node_modules/remark-lint-hard-break-spaces": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.0.tgz", - "integrity": "sha512-0nUJpsH0ibYtsxv3QS29C3axzyVZBz6RD28XWmelcuCfApWluDlW4pM8r0qa1lE1UrLVd3MocKpa4i1AKbkcsg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz", + "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1603,9 +1558,9 @@ } }, "node_modules/remark-lint-heading-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.0.tgz", - "integrity": "sha512-wQliHPDoK+YwMcuD3kxw6wudlXhYW5OUz0+z5sFIpg06vx7OfJEASo6d6G1zYG+KkEesZx1SP0SoyHV4urKYmg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz", + "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -1620,9 +1575,9 @@ } }, "node_modules/remark-lint-list-item-bullet-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.0.tgz", - "integrity": "sha512-KmVTNeaTXkAzm21wLv0GKYXMDU5EwlBncGNb9z4fyQx/mAsX+KWVw71b6+zdeai+hAF8ErENaN48DgLxQ/Z3Ug==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz", + "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1636,9 +1591,9 @@ } }, "node_modules/remark-lint-list-item-indent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.0.tgz", - "integrity": "sha512-+dTStrxiMz9beP+oe48ItMUHzIpMOivBs1+FU44o1AT6mExDGvDdt4jMtLCpPrZVFbzzIS00kf5FEDLqjNiaHg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz", + "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1654,9 +1609,9 @@ } }, "node_modules/remark-lint-maximum-line-length": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.1.tgz", - "integrity": "sha512-8F3JvtxFGkqF/iZzTsJxPd5V6Wxcd+CyMdY2j7dL5TsedUTlxuu7tk9Giq17mM/pFlURBZS+714zCnfiuz0AIw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz", + "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1671,9 +1626,9 @@ } }, "node_modules/remark-lint-no-blockquote-without-marker": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.0.tgz", - "integrity": "sha512-t9ohZSpHIZdlCp+h2nemFD/sM3Am6ZZEczaBpmTQn+OoKrZjpDRrMTb/60OBGXJXHNazfqRwm96unvM4qDs4+Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz", + "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1689,9 +1644,9 @@ } }, "node_modules/remark-lint-no-consecutive-blank-lines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.1.tgz", - "integrity": "sha512-DoHwDW/8wCx6Euiza4gH9QOz4BhxaimLoesbxTfqmYFuri5pEreojwx9WAxmLnMK4iGV2XBZdRhkFKaXQQfgSA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz", + "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -1708,9 +1663,9 @@ } }, "node_modules/remark-lint-no-duplicate-definitions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.0.tgz", - "integrity": "sha512-kBBKK/btn6p0yOiVhB6mnasem7+RUCRjifoe58y/Um56qQsh1GtX6YHVNnboO7fp9aq46MKC2Yc93pEj5yEbDg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz", + "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1726,9 +1681,9 @@ } }, "node_modules/remark-lint-no-file-name-articles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.0.tgz", - "integrity": "sha512-+4gembcykiLnrsTxk4ld2fg3n3TgvHGBO6qMsRmjh5k2m2riwnewM80xfCGXrEVi5cciGIhmv4iU7uicp+WEVQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz", + "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1740,9 +1695,9 @@ } }, "node_modules/remark-lint-no-file-name-consecutive-dashes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.0.tgz", - "integrity": "sha512-jnQcsYaV8OkUMmFcXr/RWkJFKw30lqEtYTfmb9n/AUsBFeQt53cYYZjA+6AgvKSUW3be7CY2XptReTuM4jSHpQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz", + "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1754,9 +1709,9 @@ } }, "node_modules/remark-lint-no-file-name-outer-dashes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.0.tgz", - "integrity": "sha512-R0eXcFpsfjXI4djN/AF734kydS+p5frZW6NsUzpEfLt5Eu/MhOuii2LvV/G1ujyclZAELpvZlV+sW4083SHi3g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz", + "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1768,9 +1723,9 @@ } }, "node_modules/remark-lint-no-heading-content-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.0.tgz", - "integrity": "sha512-+V92BV7r4Ajc8/oe5DhHeMrn3pZHIoLyqLYM6YgkW2hPMn+eCLVAcrfdOiiVrBpgUNpZMIM9x7UwOq0O4hAr8A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz", + "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -1787,9 +1742,9 @@ } }, "node_modules/remark-lint-no-heading-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.0.tgz", - "integrity": "sha512-hy9W3YoHWR1AbsOAbhZDwzJAKmdLekmKhc5iC9VfEWVfXsSNHwjAoct4mrBNMEUcfFYhcOTKfyrIXwy1D7fXaw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz", + "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==", "dependencies": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -1805,9 +1760,9 @@ } }, "node_modules/remark-lint-no-inline-padding": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.0.tgz", - "integrity": "sha512-0dbIgBUhVIkIn8xji2b/j1tG+ETbzE+ZEYNtCRTsNCjFwvyvgzElWKMLHoLzTpXYAN8I5dQhyFcy8Qa/RXg3AA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz", + "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -1822,9 +1777,9 @@ } }, "node_modules/remark-lint-no-literal-urls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.0.tgz", - "integrity": "sha512-FvSE16bvwMLh89kZzvyXnWh8MZ2WU+msSqfbF3pU/0YpnpxfRev9ShFRS1k8wVm5BdzSqhwplv4chLnAWg53yw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz", + "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -1840,9 +1795,9 @@ } }, "node_modules/remark-lint-no-multiple-toplevel-headings": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.0.tgz", - "integrity": "sha512-F4z867UaYjWdWFzR4ZpPi+EIzoUcU/QtdEVftdVKNdBEy1pq2A/vdTUa/PGtc+LLeQn04mJ/SGPC2s7eMWAZfg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz", + "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1858,9 +1813,9 @@ } }, "node_modules/remark-lint-no-shell-dollars": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.0.tgz", - "integrity": "sha512-f4+NPey3yzd9TpDka5Bs3W+MMJBPz6bQ7zK3M9Qc133lqZ81hKMGVRrOBafS1RNqD5htLZbbGyCoJa476QtW1w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz", + "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1874,9 +1829,9 @@ } }, "node_modules/remark-lint-no-shortcut-reference-image": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.0.tgz", - "integrity": "sha512-uTXysJw749c42QnFt+DfG5NJTjfcQdM5gYGLugb/vgUwN8dzPu6DiGM3ih1Erwha6qEseV00FpFvDexHbQvJNw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz", + "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1890,9 +1845,9 @@ } }, "node_modules/remark-lint-no-shortcut-reference-link": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.0.tgz", - "integrity": "sha512-SmM/sICFnlMx4PcuXIMJmyqTyI1+FQMOGh51GmLDWoyjbblP2hXD4UqrYLhAeV0aPQSNKwMXNNW0aysjdoWL0A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz", + "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1906,9 +1861,9 @@ } }, "node_modules/remark-lint-no-table-indentation": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.0.tgz", - "integrity": "sha512-OJg95FHBZKyEUlnmHyMQ2j9qs5dnxk3oX1TQuREpFDgzQMh/Bcyc+CegmsDMDiyNyrs1QgDwubCWmAYWgdy4Gw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz", + "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1923,9 +1878,9 @@ } }, "node_modules/remark-lint-no-tabs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.0.tgz", - "integrity": "sha512-QjMDKdwoKtZyvqHvRQS6Wwy/sy2KwLGbjGJumGXhzYS6fU7r/EimYcCbNb0NgxJhs3sLhWKZB9m/W0hH6LYbnA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz", + "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1958,9 +1913,9 @@ } }, "node_modules/remark-lint-no-undefined-references": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.0.tgz", - "integrity": "sha512-xnBd6ZLWv9Lnf1dH6bC/IYywbzxloUNJwiJY2OzhtZUMsqH8Xw5ZAidhxIW3k+3K8Fs2WSwp7HjIzjp7ZSiuDA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.1.tgz", + "integrity": "sha512-J20rKfTGflLiTI3T5JlLZSmINk6aDGmZi1y70lpU69LDfAyHAKgDK6sSW9XDeFmCPPdm8Ybxe5Gf2a70k+GcVQ==", "dependencies": { "@types/mdast": "^3.0.0", "micromark-util-normalize-identifier": "^1.0.0", @@ -1977,9 +1932,9 @@ } }, "node_modules/remark-lint-no-unused-definitions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.0.tgz", - "integrity": "sha512-poSmPeY5wZYLXhiUV+rbrkWNNENjoUq2lUb/Ho34zorMeV70FNBEV+zv1A6Ri8+jplUDeLi1lqC0uBTlTAUuLQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz", + "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -1993,9 +1948,9 @@ } }, "node_modules/remark-lint-ordered-list-marker-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.0.tgz", - "integrity": "sha512-/sYOjCK+FkAhwheIHjL65TxQKJ8infTVsDi5Dbl6XHaXiAzKjvZhwW4uJqgduufozlriI63DF68YMv5y6tyXsw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2022,9 +1977,9 @@ } }, "node_modules/remark-lint-rule-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.0.tgz", - "integrity": "sha512-Z2tW9kBNCdD8l+kG7bTKanfciqGGJt8HnBmV9eE3oIqVDzqWJoIQ8kVBDGh6efeOAlWDDDHGIp/jb4i/CJ/kvg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz", + "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2038,9 +1993,9 @@ } }, "node_modules/remark-lint-strong-marker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.0.tgz", - "integrity": "sha512-YkGZ2J1vayVa/uSWUOuqKzB3ot1RgtsAd/Kz7L2ve8lDDIjnxn+bUufaS6cN9K5/ADprryd1hdE29YRVj6Vs3g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz", + "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2054,9 +2009,9 @@ } }, "node_modules/remark-lint-table-cell-padding": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.1.tgz", - "integrity": "sha512-ttsTa4TCgWOoRUwIukyISlSbn+DnZBb4H8MwJYQVXZEV6kWCVhFMBvnjKaWxVpa3Xtlgpo1Yoi4yAjh0p0knSA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz", + "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==", "dependencies": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -2071,9 +2026,9 @@ } }, "node_modules/remark-lint-table-pipes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.0.tgz", - "integrity": "sha512-kI50VXlEW9zUdMh8Y9T7vornqpnMr+Ywy+sUzEuhhmWeFIYcIsBbZTHA1253FgjA/iMkLPzByYWj1xGlUGL1jw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz", + "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2087,9 +2042,9 @@ } }, "node_modules/remark-lint-unordered-list-marker-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.0.tgz", - "integrity": "sha512-oUThfe8/34DpXkGjOghOkSOqk8tGthnDNIMBtNVY+aMIkkuvCSxqFj9D/R37Al7/tqqgZ1D6ezpwxIOsa15JTA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==", "dependencies": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -2104,9 +2059,9 @@ } }, "node_modules/remark-message-control": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.0.tgz", - "integrity": "sha512-PNVCm0JV5DikNyrvPYUDN97rL7r+ddy/4GMJpbIiQMS6qJxHJpGdppWOp5YfKHlkrfzddUzTQB/MoS9YCHyNNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-comment-marker": "^2.0.0", @@ -2120,9 +2075,9 @@ } }, "node_modules/remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -2134,44 +2089,44 @@ } }, "node_modules/remark-preset-lint-node": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.3.0.tgz", - "integrity": "sha512-JPjXould+7VTpwj+YJHSoPiGwKLpmLAZJRveU/dT7mCDOdSSORe/SGo9fJDm6owUReg50b5AG2AY8nlReytHcA==", - "dependencies": { - "js-yaml": "^4.0.0", - "remark-gfm": "^3.0.0", - "remark-lint-blockquote-indentation": "^3.0.0", - "remark-lint-checkbox-character-style": "^4.0.0", - "remark-lint-checkbox-content-indent": "^4.0.0", - "remark-lint-code-block-style": "^3.0.0", - "remark-lint-definition-spacing": "^3.0.0", - "remark-lint-fenced-code-flag": "^3.0.0", - "remark-lint-fenced-code-marker": "^3.0.0", - "remark-lint-file-extension": "^2.0.0", - "remark-lint-final-definition": "^3.0.0", - "remark-lint-first-heading-level": "^3.0.0", - "remark-lint-heading-style": "^3.0.0", - "remark-lint-list-item-indent": "^3.0.0", - "remark-lint-maximum-line-length": "^3.0.0", - "remark-lint-no-consecutive-blank-lines": "^4.0.0", - "remark-lint-no-file-name-articles": "^2.0.0", - "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", - "remark-lint-no-file-name-outer-dashes": "^2.0.0", - "remark-lint-no-heading-indent": "^4.0.0", - "remark-lint-no-multiple-toplevel-headings": "^3.0.0", - "remark-lint-no-shell-dollars": "^3.0.0", - "remark-lint-no-table-indentation": "^4.0.0", - "remark-lint-no-tabs": "^3.0.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.3.1.tgz", + "integrity": "sha512-TEkyYgmaiWd/oKy0i5Nyn/CW1nfufqtWna4WaO689bsE7fbzPxsmiHY7Q8hRq9KAkneknrJOKJKgcRBGKMuivQ==", + "dependencies": { + "js-yaml": "^4.1.0", + "remark-gfm": "^3.0.1", + "remark-lint-blockquote-indentation": "^3.1.1", + "remark-lint-checkbox-character-style": "^4.1.1", + "remark-lint-checkbox-content-indent": "^4.1.1", + "remark-lint-code-block-style": "^3.1.0", + "remark-lint-definition-spacing": "^3.1.1", + "remark-lint-fenced-code-flag": "^3.1.1", + "remark-lint-fenced-code-marker": "^3.1.1", + "remark-lint-file-extension": "^2.1.1", + "remark-lint-final-definition": "^3.1.1", + "remark-lint-first-heading-level": "^3.1.1", + "remark-lint-heading-style": "^3.1.1", + "remark-lint-list-item-indent": "^3.1.1", + "remark-lint-maximum-line-length": "^3.1.2", + "remark-lint-no-consecutive-blank-lines": "^4.1.2", + "remark-lint-no-file-name-articles": "^2.1.1", + "remark-lint-no-file-name-consecutive-dashes": "^2.1.1", + "remark-lint-no-file-name-outer-dashes": "^2.1.1", + "remark-lint-no-heading-indent": "^4.1.1", + "remark-lint-no-multiple-toplevel-headings": "^3.1.1", + "remark-lint-no-shell-dollars": "^3.1.1", + "remark-lint-no-table-indentation": "^4.1.1", + "remark-lint-no-tabs": "^3.1.1", "remark-lint-no-trailing-spaces": "^2.0.1", - "remark-lint-prohibited-strings": "^3.0.0", - "remark-lint-rule-style": "^3.0.0", - "remark-lint-strong-marker": "^3.0.0", - "remark-lint-table-cell-padding": "^4.0.0", - "remark-lint-table-pipes": "^4.0.0", - "remark-lint-unordered-list-marker-style": "^3.0.0", - "remark-preset-lint-recommended": "^6.1.1", - "semver": "^7.3.2", - "unified-lint-rule": "^2.0.0", + "remark-lint-prohibited-strings": "^3.1.0", + "remark-lint-rule-style": "^3.1.1", + "remark-lint-strong-marker": "^3.1.1", + "remark-lint-table-cell-padding": "^4.1.2", + "remark-lint-table-pipes": "^4.1.1", + "remark-lint-unordered-list-marker-style": "^3.1.1", + "remark-preset-lint-recommended": "^6.1.2", + "semver": "^7.3.5", + "unified-lint-rule": "^2.1.1", "unist-util-visit": "^4.1.0" }, "engines": { @@ -2179,9 +2134,9 @@ } }, "node_modules/remark-preset-lint-recommended": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.1.tgz", - "integrity": "sha512-ez8/QTY8x/XKZcewXbWd+vQWWhNbgHCEq+NwY6sf9/QuwxBarG9cmSkP9yXi5glYKGVaEefVZmrZRB4jvZWcog==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz", + "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==", "dependencies": { "@types/mdast": "^3.0.0", "remark-lint": "^9.0.0", @@ -2207,9 +2162,9 @@ } }, "node_modules/remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "dependencies": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.0.0", @@ -2221,22 +2176,26 @@ } }, "node_modules/resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "dependencies": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" }, "funding": { "url": "https://github.com/sponsors/ljharb" } }, "node_modules/rollup": { - "version": "2.58.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", - "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", + "version": "2.69.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.69.1.tgz", + "integrity": "sha512-xaQKTomUVZBopk38EIshM/kOoPFkKWisgBV7Emy80coP9MOSLUDrba1jKZhqH0iS5DoGcRbbcuyl/BzblV8w5w==", "dev": true, "bin": { "rollup": "dist/bin/rollup" @@ -2248,15 +2207,46 @@ "fsevents": "~2.3.2" } }, + "node_modules/rollup-plugin-cleanup": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.2.1.tgz", + "integrity": "sha512-zuv8EhoO3TpnrU8MX8W7YxSbO4gmOR0ny06Lm3nkFfq0IVKdBUtHwhVzY1OAJyNCIAdLiyPnOrU0KnO0Fri1GQ==", + "dev": true, + "dependencies": { + "js-cleanup": "^1.2.0", + "rollup-pluginutils": "^2.8.2" + }, + "engines": { + "node": "^10.14.2 || >=12.0.0" + }, + "peerDependencies": { + "rollup": ">=2.0" + } + }, + "node_modules/rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "dependencies": { + "estree-walker": "^0.6.1" + } + }, + "node_modules/rollup-pluginutils/node_modules/estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + }, "node_modules/sade": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", - "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "dependencies": { "mri": "^1.1.0" }, "engines": { - "node": ">= 6" + "node": ">=6" } }, "node_modules/semver": { @@ -2273,6 +2263,15 @@ "node": ">=10" } }, + "node_modules/skip-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/skip-regex/-/skip-regex-1.0.2.tgz", + "integrity": "sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA==", + "dev": true, + "engines": { + "node": ">=4.2" + } + }, "node_modules/sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", @@ -2285,12 +2284,12 @@ "dev": true }, "node_modules/string-width": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", - "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "dependencies": { + "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", - "is-fullwidth-code-point": "^4.0.0", "strip-ansi": "^7.0.1" }, "engines": { @@ -2315,12 +2314,9 @@ } }, "node_modules/supports-color": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", - "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", - "dependencies": { - "has-flag": "^5.0.0" - }, + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", + "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==", "engines": { "node": ">=12" }, @@ -2328,10 +2324,22 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/to-vfile": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.2.tgz", - "integrity": "sha512-7WL+coet3qyaYb5vrVrfLtOUHgNv9E1D5SIsyVKmHKcgZefy77WMQRk7FByqGKNInoHOlY6xkTGymo29AwjUKg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", "dependencies": { "is-buffer": "^2.0.0", "vfile": "^5.1.0" @@ -2341,27 +2349,19 @@ "url": "https://opencollective.com/unified" } }, - "node_modules/totalist": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", - "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==", - "engines": { - "node": ">=6" - } - }, "node_modules/trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==", + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==", "funding": { "type": "github", "url": "https://github.com/sponsors/wooorm" } }, "node_modules/unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "dependencies": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -2377,9 +2377,9 @@ } }, "node_modules/unified-lint-rule": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.0.tgz", - "integrity": "sha512-pB2Uht3w+A9ceWXMYI0YWwxCTqC5on6jrApWDWSsYDBjaljSv8s64qdHHMCXFIUAGdd6V/XWrVMxiboHOAXo3Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz", + "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==", "dependencies": { "@types/unist": "^2.0.0", "trough": "^2.0.0", @@ -2450,9 +2450,9 @@ } }, "node_modules/unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", "dependencies": { "@types/unist": "^2.0.0" }, @@ -2502,15 +2502,14 @@ } }, "node_modules/uvu": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz", - "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz", + "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==", "dependencies": { "dequal": "^2.0.0", "diff": "^5.0.0", "kleur": "^4.0.3", - "sade": "^1.7.3", - "totalist": "^2.0.0" + "sade": "^1.7.3" }, "bin": { "uvu": "bin.js" @@ -2520,9 +2519,9 @@ } }, "node_modules/vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.2.tgz", + "integrity": "sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==", "dependencies": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -2548,9 +2547,9 @@ } }, "node_modules/vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", "dependencies": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" @@ -2561,9 +2560,9 @@ } }, "node_modules/vfile-reporter": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.2.tgz", - "integrity": "sha512-1bYxpyhl8vhAICiKR59vYyZHIOWsF7P1nV6xjaz3ZWAyOQDQhR4DjlOZo14+PiV9oLEWIrolvGHs0/2Bnaw5Vw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.3.tgz", + "integrity": "sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA==", "dependencies": { "@types/supports-color": "^8.0.0", "string-width": "^5.0.0", @@ -2633,9 +2632,9 @@ }, "dependencies": { "@rollup/plugin-commonjs": { - "version": "21.0.0", - "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.0.tgz", - "integrity": "sha512-XDQimjHl0kNotAV5lLo34XoygaI0teqiKGJ100B3iCU8+15YscJPeqk2KqkqD3NIe1H8ZTUo5lYjUFZyEgASTw==", + "version": "21.0.2", + "resolved": "https://registry.npmjs.org/@rollup/plugin-commonjs/-/plugin-commonjs-21.0.2.tgz", + "integrity": "sha512-d/OmjaLVO4j/aQX69bwpWPpbvI3TJkQuxoAk7BH8ew1PyoMBLTOuvJTjzG8oEoW7drIIqB0KCJtfFLu/2GClWg==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2648,9 +2647,9 @@ } }, "@rollup/plugin-node-resolve": { - "version": "13.0.5", - "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.0.5.tgz", - "integrity": "sha512-mVaw6uxtvuGx/XCI4qBQXsDZJUfyx5vp39iE0J/7Hd6wDhEbjHr6aES7Nr9yWbuE0BY+oKp6N7Bq6jX5NCGNmQ==", + "version": "13.1.3", + "resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-13.1.3.tgz", + "integrity": "sha512-BdxNk+LtmElRo5d06MGY4zoepyrXX1tkzX2hrnPEZ53k78GuOMWLqmJDGIIOPwVRIFZrLQOo+Yr6KtCuLIA0AQ==", "dev": true, "requires": { "@rollup/pluginutils": "^3.1.0", @@ -2701,6 +2700,14 @@ "@types/estree": "*" } }, + "@types/hast": { + "version": "2.3.4", + "resolved": "https://registry.npmjs.org/@types/hast/-/hast-2.3.4.tgz", + "integrity": "sha512-wLEm0QvaoawEDoTRwzTXp4b4jpwiJDvR5KMnFnVodm3scufTlBOWRD6N1OBf9TZMhjlNsSfcO5V+7AF4+Vy+9g==", + "requires": { + "@types/unist": "*" + } + }, "@types/mdast": { "version": "3.0.10", "resolved": "https://registry.npmjs.org/@types/mdast/-/mdast-3.0.10.tgz", @@ -2715,9 +2722,9 @@ "integrity": "sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==" }, "@types/node": { - "version": "16.10.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-16.10.3.tgz", - "integrity": "sha512-ho3Ruq+fFnBrZhUYI46n/bV2GjwzSkwuT4dTf0GkuNFmnb8nq4ny2z9JEVemFi6bdEJanHLlYfy9c6FN9B9McQ==", + "version": "17.0.21", + "resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.21.tgz", + "integrity": "sha512-DBZCJbhII3r90XbQxI8Y9IjjiiOGlZ0Hr32omXIZvwwZ7p4DMMXGrKXVyPfuoBOri9XNtL0UK69jYIBIsRX3QQ==", "dev": true }, "@types/resolve": { @@ -2750,9 +2757,9 @@ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" }, "bail": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.1.tgz", - "integrity": "sha512-d5FoTAr2S5DSUPKl85WNm2yUwsINN8eidIdIwsOge2t33DaOfOdSmmsI11jMN3GmALCXaw+Y6HMVHDzePshFAA==" + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/bail/-/bail-2.0.2.tgz", + "integrity": "sha512-0xO6mYd7JB2YesxDKplafRpsiOzPt9V02ddPCLbY1xYGPOX24NTyN50qnUxgCPcSoYMhKpAuBTjQoRZCAkUDRw==" }, "balanced-match": { "version": "1.0.2", @@ -2777,24 +2784,14 @@ "dev": true }, "ccount": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.0.tgz", - "integrity": "sha512-VOR0NWFYX65n9gELQdcpqsie5L5ihBXuZGAgaPEp/U7IOSjnPMEH6geE+2f6lcekaNEfWzAHS45mPvSo5bqsUA==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/ccount/-/ccount-2.0.1.tgz", + "integrity": "sha512-eyrF0jiFpY+3drT6383f1qhkbGsLSifNAjA61IUjZjmLCWjItY6LB9ft9YhoDgwfmclB2zhu51Lc7+95b8NRAg==" }, "character-entities": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.0.tgz", - "integrity": "sha512-oHqMj3eAuJ77/P5PaIRcqk+C3hdfNwyCD2DAUcD5gyXkegAuF2USC40CEqPscDk4I8FRGMTojGJQkXDsN5QlJA==" - }, - "character-entities-legacy": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-entities-legacy/-/character-entities-legacy-2.0.0.tgz", - "integrity": "sha512-YwaEtEvWLpFa6Wh3uVLrvirA/ahr9fki/NUd/Bd4OR6EdJ8D22hovYQEOUCBfQfcqnC4IAMGMsHXY1eXgL4ZZA==" - }, - "character-reference-invalid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/character-reference-invalid/-/character-reference-invalid-2.0.0.tgz", - "integrity": "sha512-pE3Z15lLRxDzWJy7bBHBopRwfI20sbrMVLQTC7xsPglCHf4Wv1e167OgYAFP78co2XlhojDyAqA+IAJse27//g==" + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/character-entities/-/character-entities-2.0.1.tgz", + "integrity": "sha512-OzmutCf2Kmc+6DrFrrPS8/tDh2+DpnrfzdICHWhcVC9eOd0N1PXmQEE1a8iM4IziIAG+8tmTq3K+oo0ubH6RRQ==" }, "co": { "version": "3.1.0", @@ -2814,13 +2811,21 @@ "dev": true }, "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", + "version": "4.3.3", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.3.tgz", + "integrity": "sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==", "requires": { "ms": "2.1.2" } }, + "decode-named-character-reference": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/decode-named-character-reference/-/decode-named-character-reference-1.0.1.tgz", + "integrity": "sha512-YV/0HQHreRwKb7uBopyIkLG17jG6Sv2qUchk9qSoVJ2f+flwRsPNBO0hAnjt6mTNYUT+vw9Gy2ihXg4sUWPi2w==", + "requires": { + "character-entities": "^2.0.0" + } + }, "deepmerge": { "version": "4.2.2", "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", @@ -2837,6 +2842,11 @@ "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" }, + "eastasianwidth": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz", + "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==" + }, "emoji-regex": { "version": "9.2.2", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz", @@ -2900,11 +2910,6 @@ "function-bind": "^1.1.1" } }, - "has-flag": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-5.0.1.tgz", - "integrity": "sha512-CsNUt5x9LUdx6hnk/E2SZLsDyvfqANZSUq4+D3D8RzDJ2M+HDTIkF60ibS1vHaK55vzgiZw1bEPFG9yH7l33wA==" - }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", @@ -2921,49 +2926,20 @@ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", "dev": true }, - "is-alphabetical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphabetical/-/is-alphabetical-2.0.0.tgz", - "integrity": "sha512-5OV8Toyq3oh4eq6sbWTYzlGdnMT/DPI5I0zxUBxjiigQsZycpkKF3kskkao3JyYGuYDHvhgJF+DrjMQp9SX86w==" - }, - "is-alphanumerical": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-alphanumerical/-/is-alphanumerical-2.0.0.tgz", - "integrity": "sha512-t+2GlJ+hO9yagJ+jU3+HSh80VKvz/3cG2cxbGGm4S0hjKuhWQXgPVUVOZz3tqZzMjhmphZ+1TIJTlRZRoe6GCQ==", - "requires": { - "is-alphabetical": "^2.0.0", - "is-decimal": "^2.0.0" - } - }, "is-buffer": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.5.tgz", "integrity": "sha512-i2R6zNFDwgEHJyQUtJEk0XFi1i0dPFn/oqjK3/vPCcDeJvW5NQ83V8QbicfF1SupOaB0h8ntgBC2YiE7dfyctQ==" }, "is-core-module": { - "version": "2.7.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.7.0.tgz", - "integrity": "sha512-ByY+tjCciCr+9nLryBYcSD50EOGWt95c7tIsKTG1J2ixKKXPvF7Ej3AVd+UfDydAJom3biBGDBALaO79ktwgEQ==", + "version": "2.8.1", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.8.1.tgz", + "integrity": "sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==", "dev": true, "requires": { "has": "^1.0.3" } }, - "is-decimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-decimal/-/is-decimal-2.0.0.tgz", - "integrity": "sha512-QfrfjQV0LjoWQ1K1XSoEZkTAzSa14RKVMa5zg3SdAfzEmQzRM4+tbSFWb78creCeA9rNBzaZal92opi1TwPWZw==" - }, - "is-fullwidth-code-point": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-4.0.0.tgz", - "integrity": "sha512-O4L094N2/dZ7xqVdrXhh9r1KODPJpFms8B5sGdJLPy664AgvXsreZUyCQQNItZRDlYug4xStLjNp/sz3HvBowQ==" - }, - "is-hexadecimal": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-hexadecimal/-/is-hexadecimal-2.0.0.tgz", - "integrity": "sha512-vGOtYkiaxwIiR0+Ng/zNId+ZZehGfINwTzdrDqc6iubbnQWhnPuYymOzOKUDqa2cSl59yHnEh2h6MvRLQsyNug==" - }, "is-module": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-module/-/is-module-1.0.0.tgz", @@ -2984,6 +2960,17 @@ "@types/estree": "*" } }, + "js-cleanup": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/js-cleanup/-/js-cleanup-1.2.0.tgz", + "integrity": "sha512-JeDD0yiiSt80fXzAVa/crrS0JDPQljyBG/RpOtaSbyDq03VHa9szJWMaWOYU/bcTn412uMN2MxApXq8v79cUiQ==", + "dev": true, + "requires": { + "magic-string": "^0.25.7", + "perf-regexes": "^1.0.1", + "skip-regex": "^1.0.2" + } + }, "js-yaml": { "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", @@ -2998,9 +2985,9 @@ "integrity": "sha512-8QADVssbrFjivHWQU7KkMgptGTl6WAcSdlbBPY4uNF+mWr6DGcKrvY2w4FQJoXch7+fKMjj0dRrL75vk3k23OA==" }, "longest-streak": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.0.tgz", - "integrity": "sha512-XhUjWR5CFaQ03JOP+iSDS9koy8T5jfoImCZ4XprElw3BXsSk4MpVYOLw/6LTDKZhO13PlAXnB5gS4MHQTpkSOw==" + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/longest-streak/-/longest-streak-3.0.1.tgz", + "integrity": "sha512-cHlYSUpL2s7Fb3394mYxwTYj8niTaNHUCLr0qdiCXQfSjfuA7CKofpX2uSwEfFDQ0EB7JcnMnm+GjbqqoinYYg==" }, "lru-cache": { "version": "6.0.0", @@ -3011,18 +2998,18 @@ } }, "magic-string": { - "version": "0.25.7", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.7.tgz", - "integrity": "sha512-4CrMT5DOHTDk4HYDlzmwu4FVCcIYI8gauveasrdCu2IKIFOJ3f0v/8MDGJCDL9oD2ppz/Av1b0Nj345H9M+XIA==", + "version": "0.25.9", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.9.tgz", + "integrity": "sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "sourcemap-codec": "^1.4.8" } }, "markdown-table": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.1.tgz", - "integrity": "sha512-CBbaYXKSGnE1uLRpKA1SWgIRb2PQrpkllNWpZtZe6VojOJ4ysqiq7/2glYcmKsOYN09QgH/HEBX5hIshAeiK6A==" + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/markdown-table/-/markdown-table-3.0.2.tgz", + "integrity": "sha512-y8j3a5/DkJCmS5x4dMCQL+OR0+2EAq3DOtio1COSHsmW2BGXnNCK3v12hJt1LrUz5iZH5g0LmuYOjDdI+czghA==" }, "mdast-comment-marker": { "version": "2.1.0", @@ -3043,12 +3030,13 @@ } }, "mdast-util-from-markdown": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.0.4.tgz", - "integrity": "sha512-BlL42o885QO+6o43ceoc6KBdp/bi9oYyamj0hUbeu730yhP1WDC7m2XYSBfmQkOb0TdoHSAJ3de3SMqse69u+g==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-from-markdown/-/mdast-util-from-markdown-1.2.0.tgz", + "integrity": "sha512-iZJyyvKD1+K7QX1b5jXdE7Sc5dtoTry1vzV28UZZe8Z1xVnB/czKntJ7ZAkG0tANqRnBF6p3p7GpU1y19DTf2Q==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", + "decode-named-character-reference": "^1.0.0", "mdast-util-to-string": "^3.1.0", "micromark": "^3.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", @@ -3056,7 +3044,6 @@ "micromark-util-normalize-identifier": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.0", - "parse-entities": "^3.0.0", "unist-util-stringify-position": "^3.0.0", "uvu": "^0.5.0" } @@ -3085,41 +3072,40 @@ } }, "mdast-util-gfm-footnote": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.0.tgz", - "integrity": "sha512-qeg9YoS2YYP6OBmMyUFxKXb6BLwAsbGidIxgwDAXHIMYZQhIwe52L9BSJs+zP29Jp5nSERPkmG3tSwAN23/ZbQ==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-footnote/-/mdast-util-gfm-footnote-1.0.1.tgz", + "integrity": "sha512-p+PrYlkw9DeCRkTVw1duWqPRHX6Ywh2BNKJQcZbCwAuP/59B0Lk9kakuAd7KbQprVO4GzdW8eS5++A9PUSqIyw==", "requires": { "@types/mdast": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0", - "micromark-util-normalize-identifier": "^1.0.0", - "unist-util-visit": "^4.0.0" + "mdast-util-to-markdown": "^1.3.0", + "micromark-util-normalize-identifier": "^1.0.0" } }, "mdast-util-gfm-strikethrough": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.0.tgz", - "integrity": "sha512-gM9ipBUdRxYa6Yq1Hd8Otg6jEn/dRxFZ1F9ZX4QHosHOexLGqNZO2dh0A+YFbUEd10RcKjnjb4jOfJJzoXXUew==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-strikethrough/-/mdast-util-gfm-strikethrough-1.0.1.tgz", + "integrity": "sha512-zKJbEPe+JP6EUv0mZ0tQUyLQOC+FADt0bARldONot/nefuISkaZFlmVK4tU6JgfyZGrky02m/I6PmehgAgZgqg==", "requires": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-gfm-table": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.1.tgz", - "integrity": "sha512-NByKuaSg5+M6r9DZBPXFUmhMHGFf9u+WE76EeStN01ghi8hpnydiWBXr+qj0XCRWI7SAMNtEjGvip6zci9axQA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-table/-/mdast-util-gfm-table-1.0.3.tgz", + "integrity": "sha512-B/tgpJjND1qIZM2WZst+NYnb0notPE6m0J+YOe3NOHXyEmvK38ytxaOsgz4BvrRPQQcNbRrTzSHMPnBkj1fCjg==", "requires": { "markdown-table": "^3.0.0", - "mdast-util-to-markdown": "^1.0.0" + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-gfm-task-list-item": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.0.tgz", - "integrity": "sha512-dwkzOTjQe8JCCHVE3Cb0pLHTYLudf7t9WCAnb20jI8/dW+VHjgWhjtIUVA3oigNkssgjEwX+i+3XesUdCnXGyA==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/mdast-util-gfm-task-list-item/-/mdast-util-gfm-task-list-item-1.0.1.tgz", + "integrity": "sha512-KZ4KLmPdABXOsfnM6JHUIjxEvcx2ulk656Z/4Balw071/5qgnhz+H1uGtf2zIGnrnvDC8xR4Fj9uKbjAFGNIeA==", "requires": { - "@types/mdast": "^3.0.3", - "mdast-util-to-markdown": "^1.0.0" + "@types/mdast": "^3.0.0", + "mdast-util-to-markdown": "^1.3.0" } }, "mdast-util-heading-style": { @@ -3131,17 +3117,21 @@ } }, "mdast-util-mdx-expression": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.1.1.tgz", - "integrity": "sha512-RDLRkBFmBKCJl6/fQdxxKL2BqNtoPFoNBmQAlj5ZNKOijIWRKjdhPkeufsUOaexLj+78mhJc+L7d1MYka8/LdQ==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/mdast-util-mdx-expression/-/mdast-util-mdx-expression-1.2.0.tgz", + "integrity": "sha512-wb36oi09XxqO9RVqgfD+xo8a7xaNgS+01+k3v0GKW0X0bYbeBmUZz22Z/IJ8SuphVlG+DNgNo9VoEaUJ3PKfJQ==", "requires": { - "@types/estree-jsx": "^0.0.1" + "@types/estree-jsx": "^0.0.1", + "@types/hast": "^2.0.0", + "@types/mdast": "^3.0.0", + "mdast-util-from-markdown": "^1.0.0", + "mdast-util-to-markdown": "^1.0.0" } }, "mdast-util-to-markdown": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.2.3.tgz", - "integrity": "sha512-040jJYtjOUdbvYAXCfPrpLJRdvMOmR33KRqlhT4r+fEbVM+jao1RMbA8RmGeRmw8RAj3vQ+HvhIaJPijvnOwCg==", + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/mdast-util-to-markdown/-/mdast-util-to-markdown-1.3.0.tgz", + "integrity": "sha512-6tUSs4r+KK4JGTTiQ7FfHmVOaDrLQJPmpjD6wPMlHGUVXoG9Vjc3jIeP+uyBWRf8clwB2blM+W7+KrlMYQnftA==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -3158,12 +3148,13 @@ "integrity": "sha512-n4Vypz/DZgwo0iMHLQL49dJzlp7YtAJP+N07MZHpjPf/5XJuHUWstviF4Mn2jEiR/GNmtnRRqnwsXExk3igfFA==" }, "micromark": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.7.tgz", - "integrity": "sha512-67ipZ2CzQVsDyH1kqNLh7dLwe5QMPJwjFBGppW7JCLByaSc6ZufV0ywPOxt13MIDAzzmj3wctDL6Ov5w0fOHXw==", + "version": "3.0.10", + "resolved": "https://registry.npmjs.org/micromark/-/micromark-3.0.10.tgz", + "integrity": "sha512-ryTDy6UUunOXy2HPjelppgJ2sNfcPz1pLlMdA6Rz9jPzhLikWXv/irpWV/I2jd68Uhmny7hHxAlAhk4+vWggpg==", "requires": { "@types/debug": "^4.0.0", "debug": "^4.0.0", + "decode-named-character-reference": "^1.0.0", "micromark-core-commonmark": "^1.0.1", "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -3177,15 +3168,15 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0", "uvu": "^0.5.0" } }, "micromark-core-commonmark": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.3.tgz", - "integrity": "sha512-0E8aE27v0DYHPk40IxzhCdXnZWQuvZ6rbflrx1u8ZZAUJEB48o0fgLXA5+yMab28yXT+mi1Q4LXdsI4oGS6Vng==", + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/micromark-core-commonmark/-/micromark-core-commonmark-1.0.6.tgz", + "integrity": "sha512-K+PkJTxqjFfSNkfAhp4GB+cZPfQd6dxtTXnf+RjZOV7T4EEXnvgzOcnp+eSTmpGk9d1S9sL6/lqrgSNn/s0HZA==", "requires": { + "decode-named-character-reference": "^1.0.0", "micromark-factory-destination": "^1.0.0", "micromark-factory-label": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -3200,14 +3191,13 @@ "micromark-util-subtokenize": "^1.0.0", "micromark-util-symbol": "^1.0.0", "micromark-util-types": "^1.0.1", - "parse-entities": "^3.0.0", "uvu": "^0.5.0" } }, "micromark-extension-gfm": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.0.tgz", - "integrity": "sha512-yYPlZ48Ss8fRFSmlQP/QXt3/M6tEvawEVFO+jDPnFA3mGeVgzIyaeHgrIV/9AMFAjQhctKA47Bk8xBhcuaL74Q==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm/-/micromark-extension-gfm-2.0.1.tgz", + "integrity": "sha512-p2sGjajLa0iYiGQdT0oelahRYtMWvLjy8J9LOCxzIQsllMCGLbsLW+Nc+N4vi02jcRJvedVJ68cjelKIO6bpDA==", "requires": { "micromark-extension-gfm-autolink-literal": "^1.0.0", "micromark-extension-gfm-footnote": "^1.0.0", @@ -3220,9 +3210,9 @@ } }, "micromark-extension-gfm-autolink-literal": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.2.tgz", - "integrity": "sha512-z2Asd0v4iV/QoI1l23J1qB6G8IqVWTKmwdlP45YQfdGW47ZzpddyzSxZ78YmlucOLqIbS5H98ekKf9GunFfnLA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-autolink-literal/-/micromark-extension-gfm-autolink-literal-1.0.3.tgz", + "integrity": "sha512-i3dmvU0htawfWED8aHMMAzAVp/F0Z+0bPh3YrbTPPL1v4YAlCZpy5rBO5p0LPYiZo0zFVkoYh7vDU7yQSiCMjg==", "requires": { "micromark-util-character": "^1.0.0", "micromark-util-sanitize-uri": "^1.0.0", @@ -3232,9 +3222,9 @@ } }, "micromark-extension-gfm-footnote": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.2.tgz", - "integrity": "sha512-C6o+B7w1wDM4JjDJeHCTszFYF1q46imElNY6mfXsBfw4E91M9TvEEEt3sy0FbJmGVzdt1pqFVRYWT9ZZ0FjFuA==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-footnote/-/micromark-extension-gfm-footnote-1.0.3.tgz", + "integrity": "sha512-bn62pC5y39rIo2g1RqZk1NhF7T7cJLuJlbevunQz41U0iPVCdVOFASe5/L1kke+DFKSgfCRhv24+o42cZ1+ADw==", "requires": { "micromark-core-commonmark": "^1.0.0", "micromark-factory-space": "^1.0.0", @@ -3246,9 +3236,9 @@ } }, "micromark-extension-gfm-strikethrough": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.3.tgz", - "integrity": "sha512-PJKhBNyrNIo694ZQCE/FBBQOQSb6YC0Wi5Sv0OCah5XunnNaYbtak9CSv9/eq4YeFMMyd1jX84IRwUSE+7ioLA==", + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-strikethrough/-/micromark-extension-gfm-strikethrough-1.0.4.tgz", + "integrity": "sha512-/vjHU/lalmjZCT5xt7CcHVJGq8sYRm80z24qAKXzaHzem/xsDYb2yLL+NNVbYvmpLx3O7SYPuGL5pzusL9CLIQ==", "requires": { "micromark-util-chunked": "^1.0.0", "micromark-util-classify-character": "^1.0.0", @@ -3259,9 +3249,9 @@ } }, "micromark-extension-gfm-table": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.2.tgz", - "integrity": "sha512-mRtt0S/jVT8IRWqIw2Wnl8dr/9yHh+b3NgiDQ4zdgheiAtkFYalng5CUQooFfQeSxQjfV+QKXqtPpjdIHu3AqQ==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-table/-/micromark-extension-gfm-table-1.0.5.tgz", + "integrity": "sha512-xAZ8J1X9W9K3JTJTUL7G6wSKhp2ZYHrFk5qJgY/4B33scJzE2kpfRL6oiw/veJTbt7jiM/1rngLlOKPWr1G+vg==", "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -3271,17 +3261,17 @@ } }, "micromark-extension-gfm-tagfilter": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.0.tgz", - "integrity": "sha512-GGUZhzQrOdHR8RHU2ru6K+4LMlj+pBdNuXRtw5prOflDOk2hHqDB0xEgej1AHJ2VETeycX7tzQh2EmaTUOmSKg==", + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-tagfilter/-/micromark-extension-gfm-tagfilter-1.0.1.tgz", + "integrity": "sha512-Ty6psLAcAjboRa/UKUbbUcwjVAv5plxmpUTy2XC/3nJFL37eHej8jrHrRzkqcpipJliuBH30DTs7+3wqNcQUVA==", "requires": { "micromark-util-types": "^1.0.0" } }, "micromark-extension-gfm-task-list-item": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.2.tgz", - "integrity": "sha512-8AZib9xxPtppTKig/d00i9uKi96kVgoqin7+TRtGprDb8uTUrN1ZfJ38ga8yUdmu7EDQxr2xH8ltZdbCcmdshg==", + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/micromark-extension-gfm-task-list-item/-/micromark-extension-gfm-task-list-item-1.0.3.tgz", + "integrity": "sha512-PpysK2S1Q/5VXi72IIapbi/jliaiOFzv7THH4amwXeYXLq3l1uo8/2Be0Ac1rEwK20MQEsGH2ltAZLNY2KI/0Q==", "requires": { "micromark-factory-space": "^1.0.0", "micromark-util-character": "^1.0.0", @@ -3388,20 +3378,20 @@ } }, "micromark-util-decode-string": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.1.tgz", - "integrity": "sha512-Wf3H6jLaO3iIlHEvblESXaKAr72nK7JtBbLLICPwuZc3eJkMcp4j8rJ5Xv1VbQWMCWWDvKUbVUbE2MfQNznwTA==", + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-decode-string/-/micromark-util-decode-string-1.0.2.tgz", + "integrity": "sha512-DLT5Ho02qr6QWVNYbRZ3RYOSSWWFuH3tJexd3dgN1odEuPNxCngTCXJum7+ViRAd9BbdxCvMToPOD/IvVhzG6Q==", "requires": { + "decode-named-character-reference": "^1.0.0", "micromark-util-character": "^1.0.0", "micromark-util-decode-numeric-character-reference": "^1.0.0", - "micromark-util-symbol": "^1.0.0", - "parse-entities": "^3.0.0" + "micromark-util-symbol": "^1.0.0" } }, "micromark-util-encode": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.0.tgz", - "integrity": "sha512-cJpFVM768h6zkd8qJ1LNRrITfY4gwFt+tziPcIf71Ui8yFzY9wG3snZQqiWVq93PG4Sw6YOtcNiKJfVIs9qfGg==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-encode/-/micromark-util-encode-1.0.1.tgz", + "integrity": "sha512-U2s5YdnAYexjKDel31SVMPbfi+eF8y1U4pfiRW/Y8EFVCy/vgxk/2wWTxzcqE71LHtCuCzlBDRU2a5CQ5j+mQA==" }, "micromark-util-html-tag-name": { "version": "1.0.0", @@ -3446,19 +3436,19 @@ } }, "micromark-util-symbol": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.0.tgz", - "integrity": "sha512-NZA01jHRNCt4KlOROn8/bGi6vvpEmlXld7EHcRH+aYWUfL3Wc8JLUNNlqUMKa0hhz6GrpUWsHtzPmKof57v0gQ==" + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/micromark-util-symbol/-/micromark-util-symbol-1.0.1.tgz", + "integrity": "sha512-oKDEMK2u5qqAptasDAwWDXq0tG9AssVwAx3E9bBF3t/shRIGsWIRG+cGafs2p/SnDSOecnt6hZPCE2o6lHfFmQ==" }, "micromark-util-types": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.1.tgz", - "integrity": "sha512-UT0ylWEEy80RFYzK9pEaugTqaxoD/j0Y9WhHpSyitxd99zjoQz7JJ+iKuhPAgOW2MiPSUAx+c09dcqokeyaROA==" + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/micromark-util-types/-/micromark-util-types-1.0.2.tgz", + "integrity": "sha512-DCfg/T8fcrhrRKTPjRrw/5LLvdGV7BHySf/1LOZx7TzWZdYRjogNtyNq885z3nNallwr3QUKARjqvHqX1/7t+w==" }, "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", "dev": true, "requires": { "brace-expansion": "^1.1.7" @@ -3483,19 +3473,6 @@ "wrappy": "1" } }, - "parse-entities": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/parse-entities/-/parse-entities-3.0.0.tgz", - "integrity": "sha512-AJlcIFDNPEP33KyJLguv0xJc83BNvjxwpuUIcetyXUsLpVXAUCePJ5kIoYtEN2R1ac0cYaRu/vk9dVFkewHQhQ==", - "requires": { - "character-entities": "^2.0.0", - "character-entities-legacy": "^2.0.0", - "character-reference-invalid": "^2.0.0", - "is-alphanumerical": "^2.0.0", - "is-decimal": "^2.0.0", - "is-hexadecimal": "^2.0.0" - } - }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", @@ -3508,10 +3485,16 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "perf-regexes": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/perf-regexes/-/perf-regexes-1.0.1.tgz", + "integrity": "sha512-L7MXxUDtqr4PUaLFCDCXBfGV/6KLIuSEccizDI7JxT+c9x1G1v04BQ4+4oag84SHaCdrBgQAIs/Cqn+flwFPng==", + "dev": true + }, "picomatch": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", - "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true }, "pluralize": { @@ -3520,9 +3503,9 @@ "integrity": "sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==" }, "remark-gfm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.0.tgz", - "integrity": "sha512-CXJw5h1iwUW6czFwi4tveoOSlsEZU44hcdNzUxC5uiNi7r/OQySf46AoEihM8/NwBbW1LcsnyGIsHBnbURFw2g==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/remark-gfm/-/remark-gfm-3.0.1.tgz", + "integrity": "sha512-lEFDoi2PICJyNrACFOfDD3JlLkuSbOa5Wd8EPt06HUdptv8Gn0bxYTdbU/XXQ3swAPkEaGxxPN9cbnMHvVu1Ig==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-gfm": "^2.0.0", @@ -3531,9 +3514,9 @@ } }, "remark-lint": { - "version": "9.1.0", - "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.0.tgz", - "integrity": "sha512-47ZaPj1HSs17nqsu3CPg4nIhaj+XTEXJM9cpFybhyA4lzVRZiRXy43BokbEjBt0f1fhY3coQoOh16jJeGBvrJg==", + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/remark-lint/-/remark-lint-9.1.1.tgz", + "integrity": "sha512-zhe6twuqgkx/9KgZyNyaO0cceA4jQuJcyzMOBC+JZiAzMN6mFUmcssWZyY30ko8ut9vQDMX/pyQnolGn+Fg/Tw==", "requires": { "@types/mdast": "^3.0.0", "remark-message-control": "^7.0.0", @@ -3541,9 +3524,9 @@ } }, "remark-lint-blockquote-indentation": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.0.tgz", - "integrity": "sha512-BX9XhW7yjnEp7kEMasBIQnIGOeQJYLrrQSMFoBNURLjPMBslSUrABFXUZI6hwFo5fd0dF9Wv1xt9zvSbrU9B7g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-blockquote-indentation/-/remark-lint-blockquote-indentation-3.1.1.tgz", + "integrity": "sha512-u9cjedM6zcK8vRicis5n/xeOSDIC3FGBCKc3K9pqw+nNrOjY85FwxDQKZZ/kx7rmkdRZEhgyHak+wzPBllcxBQ==", "requires": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -3555,9 +3538,9 @@ } }, "remark-lint-checkbox-character-style": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.0.tgz", - "integrity": "sha512-wV3NN4j21XoC3l76mmbU/kSl4Yx0SK91lHTEpimx9PBbRtb0cb/YZiyE3bkNSXGoj6iWDcB2asF4U4rRcT5t5A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-character-style/-/remark-lint-checkbox-character-style-4.1.1.tgz", + "integrity": "sha512-KPSW3wfHfB8m9hzrtHiBHCTUIsOPX5nZR7VM+2pMjwqnhI6Mp94DKprkNo1ekNZALNeoZIDWZUSYxSiiwFfmVQ==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3567,9 +3550,9 @@ } }, "remark-lint-checkbox-content-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.0.tgz", - "integrity": "sha512-K2R9V1C/ezs2SfLsh5SdXlOuJVWaUwA2LsbjIp+jcd+Dt8otJ4Rul741ypL4Sji/vaxrQi5f4+iLYpfrUtjfDQ==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-checkbox-content-indent/-/remark-lint-checkbox-content-indent-4.1.1.tgz", + "integrity": "sha512-apkM6sqCwAHwNV0v6KuEbq50fH3mTAV4wKTwI1nWgEj33/nf4+RvLLPgznoc2olZyeAIHR69EKPQiernjCXPOw==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3593,9 +3576,9 @@ } }, "remark-lint-definition-spacing": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.0.tgz", - "integrity": "sha512-cJlT3+tjTTA3mv3k2ogdOELSdbkpGKDNZ1qwba0ReSCdNCVbxcejZ/rrU96n/guv34XgqFyDrzoc7kcxU8oyEg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-definition-spacing/-/remark-lint-definition-spacing-3.1.1.tgz", + "integrity": "sha512-PR+cYvc0FMtFWjkaXePysW88r7Y7eIwbpUGPFDIWE48fiRiz8U3VIk05P3loQCpCkbmUeInAAYD8tIFPTg4Jlg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3605,9 +3588,9 @@ } }, "remark-lint-fenced-code-flag": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.0.tgz", - "integrity": "sha512-s96DWERWUeDi3kcDbW6TQo4vRUsGJUNhT1XEsmUzYlwJJ+2uGit9O5dAxvEnwF3gZxp/09hPsQ+QSxilC1sxLg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-flag/-/remark-lint-fenced-code-flag-3.1.1.tgz", + "integrity": "sha512-FFVZmYsBccKIIEgOtgdZEpQdARtAat1LTLBydnIpyNIvcntzWwtrtlj9mtjL8ZoSRre8HtwmEnBFyOfmM/NWaA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3618,9 +3601,9 @@ } }, "remark-lint-fenced-code-marker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.0.tgz", - "integrity": "sha512-klvbiQBINePA51Icprq7biFCyZzbtsASwOa6WCzW/KpAFz2V9a57PTuZkO9MtdDhW0vLoHgsQ4b0P1MD7JHMEw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-fenced-code-marker/-/remark-lint-fenced-code-marker-3.1.1.tgz", + "integrity": "sha512-x/t8sJWPvE46knKz6zW03j9VX5477srHUmRFbnXhZ3K8e37cYVUIvfbPhcPCAosSsOki9+dvGfZsWQiKuUNNfQ==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3630,9 +3613,9 @@ } }, "remark-lint-file-extension": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.0.tgz", - "integrity": "sha512-3T2n5/FsQ2CcDDubO5F8h7a/GyzTCy+R9XF8L9L9dVuZoxl4AWr1J6AmxE02bTy4g/TMH90juLELT08WGR6D9Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-file-extension/-/remark-lint-file-extension-2.1.1.tgz", + "integrity": "sha512-r6OMe27YZzr2NFjPMbBxgm8RZxigRwzeFSjapPlqcxk0Q0w/6sosJsceBNlGGlk00pltvv7NPqSexbXUjirrQQ==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3640,9 +3623,9 @@ } }, "remark-lint-final-definition": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.0.tgz", - "integrity": "sha512-XUbCNX7EFc/f8PvdQeXl2d5eu2Nksb2dCxIri+QvL/ykQ0MluXTNUfVsasDfNp9OYFBbTuBf27WiffOTOwOHRw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-definition/-/remark-lint-final-definition-3.1.1.tgz", + "integrity": "sha512-94hRV+EBIuLVFooiimsZwh5ZPEcTqjy5wr7LgqxoUUWy+srTanndaLoki7bxQJeIcWUnomZncsJAyL0Lo7toxw==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3653,9 +3636,9 @@ } }, "remark-lint-final-newline": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.0.tgz", - "integrity": "sha512-jD9zIfk+DYAhho7mGkNtT4+3Bn6eiOVYzEJUUqNZp1GMtCY69gyVCK7Oef3S2Z6xLJUlZvC2vZmezhn0URUl7w==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-final-newline/-/remark-lint-final-newline-2.1.1.tgz", + "integrity": "sha512-cgKYaI7ujUse/kV4KajLv2j1kmi1CxpAu+w7wIU0/Faihhb3sZAf4a5ACf2Wu8NoTSIr1Q//3hDysG507PIoDg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3663,9 +3646,9 @@ } }, "remark-lint-first-heading-level": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.0.tgz", - "integrity": "sha512-8OV6BEjB5JSUCQRNk+z8MFyqu5Cdtk7TCR6Y6slC4b8vYlj26VecG5Fo4nLXdSj9/Tx01z59Od2FzBRV+6A1Xg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-first-heading-level/-/remark-lint-first-heading-level-3.1.1.tgz", + "integrity": "sha512-Z2+gn9sLyI/sT2c1JMPf1dj9kQkFCpL1/wT5Skm5nMbjI8/dIiTF2bKr9XKsFZUFP7GTA57tfeZvzD1rjWbMwg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3675,9 +3658,9 @@ } }, "remark-lint-hard-break-spaces": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.0.tgz", - "integrity": "sha512-0nUJpsH0ibYtsxv3QS29C3axzyVZBz6RD28XWmelcuCfApWluDlW4pM8r0qa1lE1UrLVd3MocKpa4i1AKbkcsg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-hard-break-spaces/-/remark-lint-hard-break-spaces-3.1.1.tgz", + "integrity": "sha512-UfwFvESpX32qwyHJeluuUuRPWmxJDTkmjnWv2r49G9fC4Jrzm4crdJMs3sWsrGiQ3mSex6bgp/8rqDgtBng2IA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3688,9 +3671,9 @@ } }, "remark-lint-heading-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.0.tgz", - "integrity": "sha512-wQliHPDoK+YwMcuD3kxw6wudlXhYW5OUz0+z5sFIpg06vx7OfJEASo6d6G1zYG+KkEesZx1SP0SoyHV4urKYmg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-heading-style/-/remark-lint-heading-style-3.1.1.tgz", + "integrity": "sha512-Qm7ZAF+s46ns0Wo5TlHGIn/PPMMynytn8SSLEdMIo6Uo/+8PAcmQ3zU1pj57KYxfyDoN5iQPgPIwPYMLYQ2TSQ==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -3701,9 +3684,9 @@ } }, "remark-lint-list-item-bullet-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.0.tgz", - "integrity": "sha512-KmVTNeaTXkAzm21wLv0GKYXMDU5EwlBncGNb9z4fyQx/mAsX+KWVw71b6+zdeai+hAF8ErENaN48DgLxQ/Z3Ug==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-bullet-indent/-/remark-lint-list-item-bullet-indent-4.1.1.tgz", + "integrity": "sha512-NFvXVj1Nm12+Ma48NOjZCGb/D0IhmUcxyrTCpPp+UNJhEWrmFxM8nSyIiZgXadgXErnuv+xm2Atw7TAcZ9a1Cg==", "requires": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -3713,9 +3696,9 @@ } }, "remark-lint-list-item-indent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.0.tgz", - "integrity": "sha512-+dTStrxiMz9beP+oe48ItMUHzIpMOivBs1+FU44o1AT6mExDGvDdt4jMtLCpPrZVFbzzIS00kf5FEDLqjNiaHg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-list-item-indent/-/remark-lint-list-item-indent-3.1.1.tgz", + "integrity": "sha512-OSTG64e52v8XBmmeT0lefpiAfCMYHJxMMUrMnhTjLVyWAbEO0vqqR5bLvfLwzK+P4nY2D/8XKku0hw35dM86Rw==", "requires": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -3727,9 +3710,9 @@ } }, "remark-lint-maximum-line-length": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.1.tgz", - "integrity": "sha512-8F3JvtxFGkqF/iZzTsJxPd5V6Wxcd+CyMdY2j7dL5TsedUTlxuu7tk9Giq17mM/pFlURBZS+714zCnfiuz0AIw==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-maximum-line-length/-/remark-lint-maximum-line-length-3.1.2.tgz", + "integrity": "sha512-KwddpVmNifTHNXwTQQgVufuUvv0hhu9kJVvmpNdEvfEc7tc3wBkaavyi3kKsUB8WwMhGtZuXVWy6OdPC1axzhw==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3740,9 +3723,9 @@ } }, "remark-lint-no-blockquote-without-marker": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.0.tgz", - "integrity": "sha512-t9ohZSpHIZdlCp+h2nemFD/sM3Am6ZZEczaBpmTQn+OoKrZjpDRrMTb/60OBGXJXHNazfqRwm96unvM4qDs4+Q==", + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-blockquote-without-marker/-/remark-lint-no-blockquote-without-marker-5.1.1.tgz", + "integrity": "sha512-7jL7eKS25kKRhQ7SKKB5eRfNleDMWKWAmZ5Y/votJdDoM+6qsopLLumPWaSzP0onyV3dyHRhPfBtqelt3hvcyA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3754,9 +3737,9 @@ } }, "remark-lint-no-consecutive-blank-lines": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.1.tgz", - "integrity": "sha512-DoHwDW/8wCx6Euiza4gH9QOz4BhxaimLoesbxTfqmYFuri5pEreojwx9WAxmLnMK4iGV2XBZdRhkFKaXQQfgSA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-no-consecutive-blank-lines/-/remark-lint-no-consecutive-blank-lines-4.1.2.tgz", + "integrity": "sha512-wRsR3kFgHaZ4mO3KASU43oXGLGezNZ64yNs1ChPUacKh0Bm7cwGnxN9GHGAbOXspwrYrN2eCDxzCbdPEZi2qKw==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -3769,9 +3752,9 @@ } }, "remark-lint-no-duplicate-definitions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.0.tgz", - "integrity": "sha512-kBBKK/btn6p0yOiVhB6mnasem7+RUCRjifoe58y/Um56qQsh1GtX6YHVNnboO7fp9aq46MKC2Yc93pEj5yEbDg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-duplicate-definitions/-/remark-lint-no-duplicate-definitions-3.1.1.tgz", + "integrity": "sha512-9p+nBz8VvV+t4g/ALNLVN8naV+ffAzC4ADyg9QivzmKwLjyF93Avt4HYNlb2GZ+aoXRQSVG1wjjWFeDC9c7Tdg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3783,9 +3766,9 @@ } }, "remark-lint-no-file-name-articles": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.0.tgz", - "integrity": "sha512-+4gembcykiLnrsTxk4ld2fg3n3TgvHGBO6qMsRmjh5k2m2riwnewM80xfCGXrEVi5cciGIhmv4iU7uicp+WEVQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-articles/-/remark-lint-no-file-name-articles-2.1.1.tgz", + "integrity": "sha512-7fiHKQUGvP4WOsieZ1dxm8WQWWjXjPj0Uix6pk2dSTJqxvaosjKH1AV0J/eVvliat0BGH8Cz4SUbuz5vG6YbdQ==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3793,9 +3776,9 @@ } }, "remark-lint-no-file-name-consecutive-dashes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.0.tgz", - "integrity": "sha512-jnQcsYaV8OkUMmFcXr/RWkJFKw30lqEtYTfmb9n/AUsBFeQt53cYYZjA+6AgvKSUW3be7CY2XptReTuM4jSHpQ==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-consecutive-dashes/-/remark-lint-no-file-name-consecutive-dashes-2.1.1.tgz", + "integrity": "sha512-tM4IpURGuresyeIBsXT5jsY3lZakgO6IO59ixcFt015bFjTOW54MrBvdJxA60QHhf5DAyHzD8wGeULPSs7ZQfg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3803,9 +3786,9 @@ } }, "remark-lint-no-file-name-outer-dashes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.0.tgz", - "integrity": "sha512-R0eXcFpsfjXI4djN/AF734kydS+p5frZW6NsUzpEfLt5Eu/MhOuii2LvV/G1ujyclZAELpvZlV+sW4083SHi3g==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-file-name-outer-dashes/-/remark-lint-no-file-name-outer-dashes-2.1.1.tgz", + "integrity": "sha512-2kRcVNzZb0zS3jE+Iaa6MEpplhqXSdsHBILS+BxJ4cDGAAIdeipY8hKaDLdZi+34wvrfnDxNgvNLcHpgqO+OZA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3813,9 +3796,9 @@ } }, "remark-lint-no-heading-content-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.0.tgz", - "integrity": "sha512-+V92BV7r4Ajc8/oe5DhHeMrn3pZHIoLyqLYM6YgkW2hPMn+eCLVAcrfdOiiVrBpgUNpZMIM9x7UwOq0O4hAr8A==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-content-indent/-/remark-lint-no-heading-content-indent-4.1.1.tgz", + "integrity": "sha512-W4zF7MA72IDC5JB0qzciwsnioL5XlnoE0r1F7sDS0I5CJfQtHYOLlxb3UAIlgRCkBokPWCp0E4o1fsY/gQUKVg==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-heading-style": "^2.0.0", @@ -3828,9 +3811,9 @@ } }, "remark-lint-no-heading-indent": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.0.tgz", - "integrity": "sha512-hy9W3YoHWR1AbsOAbhZDwzJAKmdLekmKhc5iC9VfEWVfXsSNHwjAoct4mrBNMEUcfFYhcOTKfyrIXwy1D7fXaw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-heading-indent/-/remark-lint-no-heading-indent-4.1.1.tgz", + "integrity": "sha512-3vIfT7gPdpE9D7muIQ6YzSF1q27H9SbsDD7ClJRkEWxMiAzBg0obOZFOIBYukUkmGWdOR5P1EDn5n9TEzS1Fyg==", "requires": { "@types/mdast": "^3.0.0", "pluralize": "^8.0.0", @@ -3842,9 +3825,9 @@ } }, "remark-lint-no-inline-padding": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.0.tgz", - "integrity": "sha512-0dbIgBUhVIkIn8xji2b/j1tG+ETbzE+ZEYNtCRTsNCjFwvyvgzElWKMLHoLzTpXYAN8I5dQhyFcy8Qa/RXg3AA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-inline-padding/-/remark-lint-no-inline-padding-4.1.1.tgz", + "integrity": "sha512-++IMm6ohOPKNOrybqjP9eiclEtVX/Rd2HpF2UD9icrC1X5nvrI6tlfN55tePaFvWAB7pe6MW4LzNEMnWse61Lw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -3855,9 +3838,9 @@ } }, "remark-lint-no-literal-urls": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.0.tgz", - "integrity": "sha512-FvSE16bvwMLh89kZzvyXnWh8MZ2WU+msSqfbF3pU/0YpnpxfRev9ShFRS1k8wVm5BdzSqhwplv4chLnAWg53yw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-literal-urls/-/remark-lint-no-literal-urls-3.1.1.tgz", + "integrity": "sha512-tZZ4gtZMA//ZAf7GJTE8S9yjzqXUfUTlR/lvU7ffc7NeSurqCBwAtHqeXVCHiD39JnlHVSW2MLYhvHp53lBGvA==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-string": "^3.0.0", @@ -3869,9 +3852,9 @@ } }, "remark-lint-no-multiple-toplevel-headings": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.0.tgz", - "integrity": "sha512-F4z867UaYjWdWFzR4ZpPi+EIzoUcU/QtdEVftdVKNdBEy1pq2A/vdTUa/PGtc+LLeQn04mJ/SGPC2s7eMWAZfg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-multiple-toplevel-headings/-/remark-lint-no-multiple-toplevel-headings-3.1.1.tgz", + "integrity": "sha512-bM//SIBvIkoGUpA8hR5QibJ+7C2R50PTIRrc4te93YNRG+ie8bJzjwuO9jIMedoDfJB6/+7EqO9FYBivjBZ3MA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3883,9 +3866,9 @@ } }, "remark-lint-no-shell-dollars": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.0.tgz", - "integrity": "sha512-f4+NPey3yzd9TpDka5Bs3W+MMJBPz6bQ7zK3M9Qc133lqZ81hKMGVRrOBafS1RNqD5htLZbbGyCoJa476QtW1w==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shell-dollars/-/remark-lint-no-shell-dollars-3.1.1.tgz", + "integrity": "sha512-Q3Ad1TaOPxbYog5+Of/quPG3Fy+dMKiHjT8KsU7NDiHG6YJOnAJ3f3w+y13CIlNIaKc/MrisgcthhrZ7NsgXfA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3895,9 +3878,9 @@ } }, "remark-lint-no-shortcut-reference-image": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.0.tgz", - "integrity": "sha512-uTXysJw749c42QnFt+DfG5NJTjfcQdM5gYGLugb/vgUwN8dzPu6DiGM3ih1Erwha6qEseV00FpFvDexHbQvJNw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-image/-/remark-lint-no-shortcut-reference-image-3.1.1.tgz", + "integrity": "sha512-m8tH+loDagd1JUns/T4eyulVXgVvE+ZSs7owRUOmP+dgsKJuO5sl1AdN9eyKDVMEvxHF3Pm5WqE62QIRNM48mA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3907,9 +3890,9 @@ } }, "remark-lint-no-shortcut-reference-link": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.0.tgz", - "integrity": "sha512-SmM/sICFnlMx4PcuXIMJmyqTyI1+FQMOGh51GmLDWoyjbblP2hXD4UqrYLhAeV0aPQSNKwMXNNW0aysjdoWL0A==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-shortcut-reference-link/-/remark-lint-no-shortcut-reference-link-3.1.1.tgz", + "integrity": "sha512-oDJ92/jXQ842HgrBGgZdP7FA+N2jBMCBU2+jRElkS+OWVut0UaDILtNavNy/e85B3SLPj3RoXKF96M4vfJ7B2A==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3919,9 +3902,9 @@ } }, "remark-lint-no-table-indentation": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.0.tgz", - "integrity": "sha512-OJg95FHBZKyEUlnmHyMQ2j9qs5dnxk3oX1TQuREpFDgzQMh/Bcyc+CegmsDMDiyNyrs1QgDwubCWmAYWgdy4Gw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-table-indentation/-/remark-lint-no-table-indentation-4.1.1.tgz", + "integrity": "sha512-eklvBxUSrkVbJxeokepOvFZ3n2V6zaJERIiOowR+y/Bz4dRHDMij1Ojg55AMO9yUMvxWPV3JPOeThliAcPmrMg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3932,9 +3915,9 @@ } }, "remark-lint-no-tabs": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.0.tgz", - "integrity": "sha512-QjMDKdwoKtZyvqHvRQS6Wwy/sy2KwLGbjGJumGXhzYS6fU7r/EimYcCbNb0NgxJhs3sLhWKZB9m/W0hH6LYbnA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-tabs/-/remark-lint-no-tabs-3.1.1.tgz", + "integrity": "sha512-+MjXoHSSqRFUUz6XHgB1z7F5zIETxhkY+lC5LsOYb1r2ZdujZQWzBzNW5ya4HH5JiDVBPhp8MrqM9cP1v7tB5g==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3961,9 +3944,9 @@ } }, "remark-lint-no-undefined-references": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.0.tgz", - "integrity": "sha512-xnBd6ZLWv9Lnf1dH6bC/IYywbzxloUNJwiJY2OzhtZUMsqH8Xw5ZAidhxIW3k+3K8Fs2WSwp7HjIzjp7ZSiuDA==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-undefined-references/-/remark-lint-no-undefined-references-4.1.1.tgz", + "integrity": "sha512-J20rKfTGflLiTI3T5JlLZSmINk6aDGmZi1y70lpU69LDfAyHAKgDK6sSW9XDeFmCPPdm8Ybxe5Gf2a70k+GcVQ==", "requires": { "@types/mdast": "^3.0.0", "micromark-util-normalize-identifier": "^1.0.0", @@ -3976,9 +3959,9 @@ } }, "remark-lint-no-unused-definitions": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.0.tgz", - "integrity": "sha512-poSmPeY5wZYLXhiUV+rbrkWNNENjoUq2lUb/Ho34zorMeV70FNBEV+zv1A6Ri8+jplUDeLi1lqC0uBTlTAUuLQ==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-no-unused-definitions/-/remark-lint-no-unused-definitions-3.1.1.tgz", + "integrity": "sha512-/GtyBukhAxi5MEX/g/m+FzDEflSbTe2/cpe2H+tJZyDmiLhjGXRdwWnPRDp+mB9g1iIZgVRCk7T4v90RbQX/mw==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -3988,9 +3971,9 @@ } }, "remark-lint-ordered-list-marker-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.0.tgz", - "integrity": "sha512-/sYOjCK+FkAhwheIHjL65TxQKJ8infTVsDi5Dbl6XHaXiAzKjvZhwW4uJqgduufozlriI63DF68YMv5y6tyXsw==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-ordered-list-marker-style/-/remark-lint-ordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-IWcWaJoaSb4yoSOuvDbj9B2uXp9kSj58DqtrMKo8MoRShmbj1onVfulTxoTLeLtI11NvW+mj3jPSpqjMjls+5Q==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -4013,9 +3996,9 @@ } }, "remark-lint-rule-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.0.tgz", - "integrity": "sha512-Z2tW9kBNCdD8l+kG7bTKanfciqGGJt8HnBmV9eE3oIqVDzqWJoIQ8kVBDGh6efeOAlWDDDHGIp/jb4i/CJ/kvg==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-rule-style/-/remark-lint-rule-style-3.1.1.tgz", + "integrity": "sha512-+oZe0ph4DWHGwPkQ/FpqiGp4WULTXB1edftnnNbizYT+Wr+/ux7GNTx78oXH/PHwlnOtVIExMc4W/vDXrUj/DQ==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -4025,9 +4008,9 @@ } }, "remark-lint-strong-marker": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.0.tgz", - "integrity": "sha512-YkGZ2J1vayVa/uSWUOuqKzB3ot1RgtsAd/Kz7L2ve8lDDIjnxn+bUufaS6cN9K5/ADprryd1hdE29YRVj6Vs3g==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-strong-marker/-/remark-lint-strong-marker-3.1.1.tgz", + "integrity": "sha512-tX9Os2C48Hh8P8CouY4dcnAhGnR3trL+NCDqIvJvFDR9Rvm9yfNQaY2N4ZHWVY0iUicq9DpqEiJTgUsT8AGv/w==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -4037,9 +4020,9 @@ } }, "remark-lint-table-cell-padding": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.1.tgz", - "integrity": "sha512-ttsTa4TCgWOoRUwIukyISlSbn+DnZBb4H8MwJYQVXZEV6kWCVhFMBvnjKaWxVpa3Xtlgpo1Yoi4yAjh0p0knSA==", + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/remark-lint-table-cell-padding/-/remark-lint-table-cell-padding-4.1.2.tgz", + "integrity": "sha512-cx5BXjHtpACa7Z51Vuqzy9BI4Z8Hnxz7vklhhrubkoB7mbctP/mR+Nh4B8eE5VtgFYJNHFwIltl96PuoctFCeQ==", "requires": { "@types/mdast": "^3.0.0", "@types/unist": "^2.0.0", @@ -4050,9 +4033,9 @@ } }, "remark-lint-table-pipes": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.0.tgz", - "integrity": "sha512-kI50VXlEW9zUdMh8Y9T7vornqpnMr+Ywy+sUzEuhhmWeFIYcIsBbZTHA1253FgjA/iMkLPzByYWj1xGlUGL1jw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-table-pipes/-/remark-lint-table-pipes-4.1.1.tgz", + "integrity": "sha512-mJnB2FpjJTE4s9kE1JX8gcCjCFvtGPjzXUiQy0sbPHn2YM9EWG7kvFWYoqWK4w569CEQJyxZraEPltmhDjQTjg==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -4062,9 +4045,9 @@ } }, "remark-lint-unordered-list-marker-style": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.0.tgz", - "integrity": "sha512-oUThfe8/34DpXkGjOghOkSOqk8tGthnDNIMBtNVY+aMIkkuvCSxqFj9D/R37Al7/tqqgZ1D6ezpwxIOsa15JTA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/remark-lint-unordered-list-marker-style/-/remark-lint-unordered-list-marker-style-3.1.1.tgz", + "integrity": "sha512-JwH8oIDi9f5Z8cTQLimhJ/fkbPwI3OpNSifjYyObNNuc4PG4/NUoe5ZuD10uPmPYHZW+713RZ8S5ucVCkI8dDA==", "requires": { "@types/mdast": "^3.0.0", "unified": "^10.0.0", @@ -4075,9 +4058,9 @@ } }, "remark-message-control": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.0.tgz", - "integrity": "sha512-PNVCm0JV5DikNyrvPYUDN97rL7r+ddy/4GMJpbIiQMS6qJxHJpGdppWOp5YfKHlkrfzddUzTQB/MoS9YCHyNNg==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/remark-message-control/-/remark-message-control-7.1.1.tgz", + "integrity": "sha512-xKRWl1NTBOKed0oEtCd8BUfH5m4s8WXxFFSoo7uUwx6GW/qdCy4zov5LfPyw7emantDmhfWn5PdIZgcbVcWMDQ==", "requires": { "@types/mdast": "^3.0.0", "mdast-comment-marker": "^2.0.0", @@ -4087,9 +4070,9 @@ } }, "remark-parse": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.0.tgz", - "integrity": "sha512-07ei47p2Xl7Bqbn9H2VYQYirnAFJPwdMuypdozWsSbnmrkgA2e2sZLZdnDNrrsxR4onmIzH/J6KXqKxCuqHtPQ==", + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/remark-parse/-/remark-parse-10.0.1.tgz", + "integrity": "sha512-1fUyHr2jLsVOkhbvPRBJ5zTKZZyD6yZzYaWCS6BPBdQ8vEMBCH+9zNCDA6tET/zHCi/jLqjCWtlJZUPk+DbnFw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-from-markdown": "^1.0.0", @@ -4097,51 +4080,51 @@ } }, "remark-preset-lint-node": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.3.0.tgz", - "integrity": "sha512-JPjXould+7VTpwj+YJHSoPiGwKLpmLAZJRveU/dT7mCDOdSSORe/SGo9fJDm6owUReg50b5AG2AY8nlReytHcA==", - "requires": { - "js-yaml": "^4.0.0", - "remark-gfm": "^3.0.0", - "remark-lint-blockquote-indentation": "^3.0.0", - "remark-lint-checkbox-character-style": "^4.0.0", - "remark-lint-checkbox-content-indent": "^4.0.0", - "remark-lint-code-block-style": "^3.0.0", - "remark-lint-definition-spacing": "^3.0.0", - "remark-lint-fenced-code-flag": "^3.0.0", - "remark-lint-fenced-code-marker": "^3.0.0", - "remark-lint-file-extension": "^2.0.0", - "remark-lint-final-definition": "^3.0.0", - "remark-lint-first-heading-level": "^3.0.0", - "remark-lint-heading-style": "^3.0.0", - "remark-lint-list-item-indent": "^3.0.0", - "remark-lint-maximum-line-length": "^3.0.0", - "remark-lint-no-consecutive-blank-lines": "^4.0.0", - "remark-lint-no-file-name-articles": "^2.0.0", - "remark-lint-no-file-name-consecutive-dashes": "^2.0.0", - "remark-lint-no-file-name-outer-dashes": "^2.0.0", - "remark-lint-no-heading-indent": "^4.0.0", - "remark-lint-no-multiple-toplevel-headings": "^3.0.0", - "remark-lint-no-shell-dollars": "^3.0.0", - "remark-lint-no-table-indentation": "^4.0.0", - "remark-lint-no-tabs": "^3.0.0", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/remark-preset-lint-node/-/remark-preset-lint-node-3.3.1.tgz", + "integrity": "sha512-TEkyYgmaiWd/oKy0i5Nyn/CW1nfufqtWna4WaO689bsE7fbzPxsmiHY7Q8hRq9KAkneknrJOKJKgcRBGKMuivQ==", + "requires": { + "js-yaml": "^4.1.0", + "remark-gfm": "^3.0.1", + "remark-lint-blockquote-indentation": "^3.1.1", + "remark-lint-checkbox-character-style": "^4.1.1", + "remark-lint-checkbox-content-indent": "^4.1.1", + "remark-lint-code-block-style": "^3.1.0", + "remark-lint-definition-spacing": "^3.1.1", + "remark-lint-fenced-code-flag": "^3.1.1", + "remark-lint-fenced-code-marker": "^3.1.1", + "remark-lint-file-extension": "^2.1.1", + "remark-lint-final-definition": "^3.1.1", + "remark-lint-first-heading-level": "^3.1.1", + "remark-lint-heading-style": "^3.1.1", + "remark-lint-list-item-indent": "^3.1.1", + "remark-lint-maximum-line-length": "^3.1.2", + "remark-lint-no-consecutive-blank-lines": "^4.1.2", + "remark-lint-no-file-name-articles": "^2.1.1", + "remark-lint-no-file-name-consecutive-dashes": "^2.1.1", + "remark-lint-no-file-name-outer-dashes": "^2.1.1", + "remark-lint-no-heading-indent": "^4.1.1", + "remark-lint-no-multiple-toplevel-headings": "^3.1.1", + "remark-lint-no-shell-dollars": "^3.1.1", + "remark-lint-no-table-indentation": "^4.1.1", + "remark-lint-no-tabs": "^3.1.1", "remark-lint-no-trailing-spaces": "^2.0.1", - "remark-lint-prohibited-strings": "^3.0.0", - "remark-lint-rule-style": "^3.0.0", - "remark-lint-strong-marker": "^3.0.0", - "remark-lint-table-cell-padding": "^4.0.0", - "remark-lint-table-pipes": "^4.0.0", - "remark-lint-unordered-list-marker-style": "^3.0.0", - "remark-preset-lint-recommended": "^6.1.1", - "semver": "^7.3.2", - "unified-lint-rule": "^2.0.0", + "remark-lint-prohibited-strings": "^3.1.0", + "remark-lint-rule-style": "^3.1.1", + "remark-lint-strong-marker": "^3.1.1", + "remark-lint-table-cell-padding": "^4.1.2", + "remark-lint-table-pipes": "^4.1.1", + "remark-lint-unordered-list-marker-style": "^3.1.1", + "remark-preset-lint-recommended": "^6.1.2", + "semver": "^7.3.5", + "unified-lint-rule": "^2.1.1", "unist-util-visit": "^4.1.0" } }, "remark-preset-lint-recommended": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.1.tgz", - "integrity": "sha512-ez8/QTY8x/XKZcewXbWd+vQWWhNbgHCEq+NwY6sf9/QuwxBarG9cmSkP9yXi5glYKGVaEefVZmrZRB4jvZWcog==", + "version": "6.1.2", + "resolved": "https://registry.npmjs.org/remark-preset-lint-recommended/-/remark-preset-lint-recommended-6.1.2.tgz", + "integrity": "sha512-x9kWufNY8PNAhY4fsl+KD3atgQdo4imP3GDAQYbQ6ylWVyX13suPRLkqnupW0ODRynfUg8ZRt8pVX0wMHwgPAg==", "requires": { "@types/mdast": "^3.0.0", "remark-lint": "^9.0.0", @@ -4163,9 +4146,9 @@ } }, "remark-stringify": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.1.tgz", - "integrity": "sha512-380vOu9EHqRTDhI9RlPU2EKY1abUDEmxw9fW7pJ/8Jr1izk0UcdnZB30qiDDRYi6pGn5FnVf9Wd2iUeCWTqM7Q==", + "version": "10.0.2", + "resolved": "https://registry.npmjs.org/remark-stringify/-/remark-stringify-10.0.2.tgz", + "integrity": "sha512-6wV3pvbPvHkbNnWB0wdDvVFHOe1hBRAx1Q/5g/EpH4RppAII6J8Gnwe7VbHuXaoKIF6LAg6ExTel/+kNqSQ7lw==", "requires": { "@types/mdast": "^3.0.0", "mdast-util-to-markdown": "^1.0.0", @@ -4173,28 +4156,56 @@ } }, "resolve": { - "version": "1.20.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", - "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", "dev": true, "requires": { - "is-core-module": "^2.2.0", - "path-parse": "^1.0.6" + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" } }, "rollup": { - "version": "2.58.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.58.0.tgz", - "integrity": "sha512-NOXpusKnaRpbS7ZVSzcEXqxcLDOagN6iFS8p45RkoiMqPHDLwJm758UF05KlMoCRbLBTZsPOIa887gZJ1AiXvw==", + "version": "2.69.1", + "resolved": "https://registry.npmjs.org/rollup/-/rollup-2.69.1.tgz", + "integrity": "sha512-xaQKTomUVZBopk38EIshM/kOoPFkKWisgBV7Emy80coP9MOSLUDrba1jKZhqH0iS5DoGcRbbcuyl/BzblV8w5w==", "dev": true, "requires": { "fsevents": "~2.3.2" } }, + "rollup-plugin-cleanup": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/rollup-plugin-cleanup/-/rollup-plugin-cleanup-3.2.1.tgz", + "integrity": "sha512-zuv8EhoO3TpnrU8MX8W7YxSbO4gmOR0ny06Lm3nkFfq0IVKdBUtHwhVzY1OAJyNCIAdLiyPnOrU0KnO0Fri1GQ==", + "dev": true, + "requires": { + "js-cleanup": "^1.2.0", + "rollup-pluginutils": "^2.8.2" + } + }, + "rollup-pluginutils": { + "version": "2.8.2", + "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz", + "integrity": "sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==", + "dev": true, + "requires": { + "estree-walker": "^0.6.1" + }, + "dependencies": { + "estree-walker": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.6.1.tgz", + "integrity": "sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w==", + "dev": true + } + } + }, "sade": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/sade/-/sade-1.7.4.tgz", - "integrity": "sha512-y5yauMD93rX840MwUJr7C1ysLFBgMspsdTo4UVrDg3fXDvtwOyIqykhVAAm6fk/3au77773itJStObgK+LKaiA==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/sade/-/sade-1.8.1.tgz", + "integrity": "sha512-xal3CZX1Xlo/k4ApwCFrHVACi9fBqJ7V+mwhBsuf/1IOKbBy098Fex+Wa/5QMubw09pSZ/u8EY8PWgevJsXp1A==", "requires": { "mri": "^1.1.0" } @@ -4207,6 +4218,12 @@ "lru-cache": "^6.0.0" } }, + "skip-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/skip-regex/-/skip-regex-1.0.2.tgz", + "integrity": "sha512-pEjMUbwJ5Pl/6Vn6FsamXHXItJXSRftcibixDmNCWbWhic0hzHrwkMZo0IZ7fMRH9KxcWDFSkzhccB4285PutA==", + "dev": true + }, "sliced": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz", @@ -4219,12 +4236,12 @@ "dev": true }, "string-width": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.0.1.tgz", - "integrity": "sha512-5ohWO/M4//8lErlUUtrFy3b11GtNOuMOU0ysKCDXFcfXuuvUXu95akgj/i8ofmaGdN0hCqyl6uu9i8dS/mQp5g==", + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz", + "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==", "requires": { + "eastasianwidth": "^0.2.0", "emoji-regex": "^9.2.2", - "is-fullwidth-code-point": "^4.0.0", "strip-ansi": "^7.0.1" } }, @@ -4237,36 +4254,34 @@ } }, "supports-color": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.0.2.tgz", - "integrity": "sha512-ii6tc8ImGFrgMPYq7RVAMKkhPo9vk8uA+D3oKbJq/3Pk2YSMv1+9dUAesa9UxMbxBTvxwKTQffBahNVNxEvM8Q==", - "requires": { - "has-flag": "^5.0.0" - } + "version": "9.2.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-9.2.1.tgz", + "integrity": "sha512-Obv7ycoCTG51N7y175StI9BlAXrmgZrFhZOb0/PyjHBher/NmsdBgbbQ1Inhq+gIhz6+7Gb+jWF2Vqi7Mf1xnQ==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "dev": true }, "to-vfile": { - "version": "7.2.2", - "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.2.tgz", - "integrity": "sha512-7WL+coet3qyaYb5vrVrfLtOUHgNv9E1D5SIsyVKmHKcgZefy77WMQRk7FByqGKNInoHOlY6xkTGymo29AwjUKg==", + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/to-vfile/-/to-vfile-7.2.3.tgz", + "integrity": "sha512-QO0A9aE6Z/YkmQadJ0syxpmNXtcQiu0qAtCKYKD5cS3EfgfFTAXfgLX6AOaBrSfWSek5nfsMf3gBZ9KGVFcLuw==", "requires": { "is-buffer": "^2.0.0", "vfile": "^5.1.0" } }, - "totalist": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/totalist/-/totalist-2.0.0.tgz", - "integrity": "sha512-+Y17F0YzxfACxTyjfhnJQEe7afPA0GSpYlFkl2VFMxYP7jshQf9gXV7cH47EfToBumFThfKBvfAcoUn6fdNeRQ==" - }, "trough": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/trough/-/trough-2.0.2.tgz", - "integrity": "sha512-FnHq5sTMxC0sk957wHDzRnemFnNBvt/gSY99HzK8F7UP5WAbvP70yX5bd7CjEQkN+TjdxwI7g7lJ6podqrG2/w==" + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/trough/-/trough-2.1.0.tgz", + "integrity": "sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==" }, "unified": { - "version": "10.1.0", - "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.0.tgz", - "integrity": "sha512-4U3ru/BRXYYhKbwXV6lU6bufLikoAavTwev89H5UxY8enDFaAT2VXmIXYNm6hb5oHPng/EXr77PVyDFcptbk5g==", + "version": "10.1.1", + "resolved": "https://registry.npmjs.org/unified/-/unified-10.1.1.tgz", + "integrity": "sha512-v4ky1+6BN9X3pQrOdkFIPWAaeDsHPE1svRDxq7YpTc2plkIqFMwukfqM+l0ewpP9EfwARlt9pPFAeWYhHm8X9w==", "requires": { "@types/unist": "^2.0.0", "bail": "^2.0.0", @@ -4278,9 +4293,9 @@ } }, "unified-lint-rule": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.0.tgz", - "integrity": "sha512-pB2Uht3w+A9ceWXMYI0YWwxCTqC5on6jrApWDWSsYDBjaljSv8s64qdHHMCXFIUAGdd6V/XWrVMxiboHOAXo3Q==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/unified-lint-rule/-/unified-lint-rule-2.1.1.tgz", + "integrity": "sha512-vsLHyLZFstqtGse2gvrGwasOmH8M2y+r2kQMoDSWzSqUkQx2MjHjvZuGSv5FUaiv4RQO1bHRajy7lSGp7XWq5A==", "requires": { "@types/unist": "^2.0.0", "trough": "^2.0.0", @@ -4329,9 +4344,9 @@ "integrity": "sha512-mgy/zI9fQ2HlbOtTdr2w9lhVaiFUHWQnZrFF2EUoVOqtAUdzqMtNiD99qA5a1IcjWVR8O6aVYE9u7Z2z1v0SQA==" }, "unist-util-stringify-position": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.0.tgz", - "integrity": "sha512-SdfAl8fsDclywZpfMDTVDxA2V7LjtRDTOFd44wUJamgl6OlVngsqWjxvermMYf60elWHbxhuRCZml7AnuXCaSA==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/unist-util-stringify-position/-/unist-util-stringify-position-3.0.2.tgz", + "integrity": "sha512-7A6eiDCs9UtjcwZOcCpM4aPII3bAAGv13E96IkawkOAW0OhH+yRxtY0lzo8KiHpzEMfH7Q+FizUmwp8Iqy5EWg==", "requires": { "@types/unist": "^2.0.0" } @@ -4367,21 +4382,20 @@ } }, "uvu": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.2.tgz", - "integrity": "sha512-m2hLe7I2eROhh+tm3WE5cTo/Cv3WQA7Oc9f7JB6uWv+/zVKvfAm53bMyOoGOSZeQ7Ov2Fu9pLhFr7p07bnT20w==", + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/uvu/-/uvu-0.5.3.tgz", + "integrity": "sha512-brFwqA3FXzilmtnIyJ+CxdkInkY/i4ErvP7uV0DnUVxQcQ55reuHphorpF+tZoVHK2MniZ/VJzI7zJQoc9T9Yw==", "requires": { "dequal": "^2.0.0", "diff": "^5.0.0", "kleur": "^4.0.3", - "sade": "^1.7.3", - "totalist": "^2.0.0" + "sade": "^1.7.3" } }, "vfile": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.1.0.tgz", - "integrity": "sha512-4o7/DJjEaFPYSh0ckv5kcYkJTHQgCKdL8ozMM1jLAxO9ox95IzveDPXCZp08HamdWq8JXTkClDvfAKaeLQeKtg==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/vfile/-/vfile-5.3.2.tgz", + "integrity": "sha512-w0PLIugRY3Crkgw89TeMvHCzqCs/zpreR31hl4D92y6SOE07+bfJe+dK5Q2akwS+i/c801kzjoOr9gMcTe6IAA==", "requires": { "@types/unist": "^2.0.0", "is-buffer": "^2.0.0", @@ -4399,18 +4413,18 @@ } }, "vfile-message": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.0.2.tgz", - "integrity": "sha512-UUjZYIOg9lDRwwiBAuezLIsu9KlXntdxwG+nXnjuQAHvBpcX3x0eN8h+I7TkY5nkCXj+cWVp4ZqebtGBvok8ww==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/vfile-message/-/vfile-message-3.1.2.tgz", + "integrity": "sha512-QjSNP6Yxzyycd4SVOtmKKyTsSvClqBPJcd00Z0zuPj3hOIjg0rUPG6DbFGPvUKRgYyaIWLPKpuEclcuvb3H8qA==", "requires": { "@types/unist": "^2.0.0", "unist-util-stringify-position": "^3.0.0" } }, "vfile-reporter": { - "version": "7.0.2", - "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.2.tgz", - "integrity": "sha512-1bYxpyhl8vhAICiKR59vYyZHIOWsF7P1nV6xjaz3ZWAyOQDQhR4DjlOZo14+PiV9oLEWIrolvGHs0/2Bnaw5Vw==", + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/vfile-reporter/-/vfile-reporter-7.0.3.tgz", + "integrity": "sha512-q+ruTWxFHbow359TDqoNJn5THdwRDeV+XUOtzdT/OESgaGw05CjL68ImlbzRzqS5xL62Y1IaIWb8x+RbaNjayA==", "requires": { "@types/supports-color": "^8.0.0", "string-width": "^5.0.0", diff --git a/tools/lint-md/package.json b/tools/lint-md/package.json index 6b3e48c4671817..a3e847adcdeb03 100644 --- a/tools/lint-md/package.json +++ b/tools/lint-md/package.json @@ -3,19 +3,20 @@ "description": "markdown linting", "version": "1.0.0", "scripts": { - "build": "rollup -f es -p '@rollup/plugin-node-resolve={exportConditions: [\"node\"]}' -p @rollup/plugin-commonjs lint-md.src.mjs --file lint-md.mjs" + "build": "rollup -f es -p '@rollup/plugin-node-resolve={exportConditions: [\"node\"]}' -p @rollup/plugin-commonjs -p rollup-plugin-cleanup lint-md.src.mjs --file lint-md.mjs" }, "dependencies": { - "remark-parse": "^10.0.0", - "remark-preset-lint-node": "^3.3.0", - "remark-stringify": "^10.0.1", - "to-vfile": "^7.2.2", - "unified": "^10.1.0", - "vfile-reporter": "^7.0.2" + "remark-parse": "^10.0.1", + "remark-preset-lint-node": "^3.3.1", + "remark-stringify": "^10.0.2", + "to-vfile": "^7.2.3", + "unified": "^10.1.1", + "vfile-reporter": "^7.0.3" }, "devDependencies": { - "@rollup/plugin-commonjs": "^21.0.0", - "@rollup/plugin-node-resolve": "^13.0.5", - "rollup": "^2.58.0" + "@rollup/plugin-commonjs": "^21.0.2", + "@rollup/plugin-node-resolve": "^13.1.3", + "rollup": "^2.69.1", + "rollup-plugin-cleanup": "^3.2.1" } } diff --git a/tools/lint-sh.js b/tools/lint-sh.js index 42889c16b6af0e..378cb38af28744 100755 --- a/tools/lint-sh.js +++ b/tools/lint-sh.js @@ -166,11 +166,11 @@ if ( const entryPoint = resolve(process.argv[2]); const stats = statSync(entryPoint, { throwIfNoEntry: false }); - function onError(e) { + const onError = (e) => { console.log(USAGE_STR); console.error(e); process.exitCode = 1; - } + }; if (stats?.isDirectory()) { SPAWN_OPTIONS.cwd = entryPoint; checkFiles(...findScriptFilesRecursively(entryPoint)).catch(onError); diff --git a/tools/make-v8.sh b/tools/make-v8.sh index c63cb9ccf77301..978b9f00860a65 100755 --- a/tools/make-v8.sh +++ b/tools/make-v8.sh @@ -17,7 +17,7 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then fi # set paths manually for now to use locally installed gn export BUILD_TOOLS=/home/iojs/build-tools - export LD_LIBRARY_PATH=$BUILD_TOOLS:$LD_LIBRARY_PATH + export LD_LIBRARY_PATH="$BUILD_TOOLS:$LD_LIBRARY_PATH" # Avoid linking to ccache symbolic links as ccache decides which # binary to run based on the name of the link (we always name them gcc/g++). # shellcheck disable=SC2154 @@ -28,7 +28,7 @@ if [ "$ARCH" = "s390x" ] || [ "$ARCH" = "ppc64le" ]; then rm -f "$BUILD_TOOLS/gcc" ln -s "$CXX_PATH" "$BUILD_TOOLS/g++" ln -s "$CC_PATH" "$BUILD_TOOLS/gcc" - export PATH=$BUILD_TOOLS:$PATH + export PATH="$BUILD_TOOLS:$PATH" g++ --version gcc --version diff --git a/tools/msvs/find_python.cmd b/tools/msvs/find_python.cmd index 671fcbd7e58c03..06e41fe06cd6ab 100644 --- a/tools/msvs/find_python.cmd +++ b/tools/msvs/find_python.cmd @@ -46,15 +46,25 @@ exit /b 1 :found-python echo Python found in %p%\python.exe +call :check-python %p%\python.exe +if errorlevel 1 goto :no-python endlocal ^ & set "pt=%p%" ^ & set "need_path_ext=%need_path%" -set "VCBUILD_PYTHON_LOCATION=%pt%\python.exe" if %need_path_ext%==1 set "PATH=%pt%;%PATH%" set "pt=" set "need_path_ext=" exit /b 0 +:check-python +%~1 -V +:: 9009 means error file not found +if %errorlevel% equ 9009 ( + echo Not an executable Python program + exit /b 1 +) +exit /b 0 + :no-python echo Could not find Python. exit /b 1 diff --git a/tools/node_modules/@babel/core/README.md b/tools/node_modules/@babel/core/README.md deleted file mode 100644 index 9b3a9503360cbb..00000000000000 --- a/tools/node_modules/@babel/core/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/core - -> Babel compiler core. - -See our website [@babel/core](https://babeljs.io/docs/en/babel-core) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20core%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/core -``` - -or using yarn: - -```sh -yarn add @babel/core --dev -``` diff --git a/tools/node_modules/@babel/core/lib/config/files/index.js b/tools/node_modules/@babel/core/lib/config/files/index.js deleted file mode 100644 index f75ace5ae9ab6a..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/files/index.js +++ /dev/null @@ -1,79 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "findPackageData", { - enumerable: true, - get: function () { - return _package.findPackageData; - } -}); -Object.defineProperty(exports, "findConfigUpwards", { - enumerable: true, - get: function () { - return _configuration.findConfigUpwards; - } -}); -Object.defineProperty(exports, "findRelativeConfig", { - enumerable: true, - get: function () { - return _configuration.findRelativeConfig; - } -}); -Object.defineProperty(exports, "findRootConfig", { - enumerable: true, - get: function () { - return _configuration.findRootConfig; - } -}); -Object.defineProperty(exports, "loadConfig", { - enumerable: true, - get: function () { - return _configuration.loadConfig; - } -}); -Object.defineProperty(exports, "resolveShowConfigPath", { - enumerable: true, - get: function () { - return _configuration.resolveShowConfigPath; - } -}); -Object.defineProperty(exports, "ROOT_CONFIG_FILENAMES", { - enumerable: true, - get: function () { - return _configuration.ROOT_CONFIG_FILENAMES; - } -}); -Object.defineProperty(exports, "resolvePlugin", { - enumerable: true, - get: function () { - return _plugins.resolvePlugin; - } -}); -Object.defineProperty(exports, "resolvePreset", { - enumerable: true, - get: function () { - return _plugins.resolvePreset; - } -}); -Object.defineProperty(exports, "loadPlugin", { - enumerable: true, - get: function () { - return _plugins.loadPlugin; - } -}); -Object.defineProperty(exports, "loadPreset", { - enumerable: true, - get: function () { - return _plugins.loadPreset; - } -}); - -var _package = require("./package"); - -var _configuration = require("./configuration"); - -var _plugins = require("./plugins"); - -({}); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/config/files/plugins.js b/tools/node_modules/@babel/core/lib/config/files/plugins.js deleted file mode 100644 index ae23378c9c2897..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/files/plugins.js +++ /dev/null @@ -1,206 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.resolvePlugin = resolvePlugin; -exports.resolvePreset = resolvePreset; -exports.loadPlugin = loadPlugin; -exports.loadPreset = loadPreset; - -function _debug() { - const data = require("debug"); - - _debug = function () { - return data; - }; - - return data; -} - -function _path() { - const data = require("path"); - - _path = function () { - return data; - }; - - return data; -} - -var _moduleTypes = require("./module-types"); - -function _module() { - const data = require("module"); - - _module = function () { - return data; - }; - - return data; -} - -const debug = _debug()("babel:config:loading:files:plugins"); - -const EXACT_RE = /^module:/; -const BABEL_PLUGIN_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-plugin-)/; -const BABEL_PRESET_PREFIX_RE = /^(?!@|module:|[^/]+\/|babel-preset-)/; -const BABEL_PLUGIN_ORG_RE = /^(@babel\/)(?!plugin-|[^/]+\/)/; -const BABEL_PRESET_ORG_RE = /^(@babel\/)(?!preset-|[^/]+\/)/; -const OTHER_PLUGIN_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-plugin(?:-|\/|$)|[^/]+\/)/; -const OTHER_PRESET_ORG_RE = /^(@(?!babel\/)[^/]+\/)(?![^/]*babel-preset(?:-|\/|$)|[^/]+\/)/; -const OTHER_ORG_DEFAULT_RE = /^(@(?!babel$)[^/]+)$/; - -function resolvePlugin(name, dirname) { - return resolveStandardizedName("plugin", name, dirname); -} - -function resolvePreset(name, dirname) { - return resolveStandardizedName("preset", name, dirname); -} - -function* loadPlugin(name, dirname) { - const filepath = resolvePlugin(name, dirname); - - if (!filepath) { - throw new Error(`Plugin ${name} not found relative to ${dirname}`); - } - - const value = yield* requireModule("plugin", filepath); - debug("Loaded plugin %o from %o.", name, dirname); - return { - filepath, - value - }; -} - -function* loadPreset(name, dirname) { - const filepath = resolvePreset(name, dirname); - - if (!filepath) { - throw new Error(`Preset ${name} not found relative to ${dirname}`); - } - - const value = yield* requireModule("preset", filepath); - debug("Loaded preset %o from %o.", name, dirname); - return { - filepath, - value - }; -} - -function standardizeName(type, name) { - if (_path().isAbsolute(name)) return name; - const isPreset = type === "preset"; - return name.replace(isPreset ? BABEL_PRESET_PREFIX_RE : BABEL_PLUGIN_PREFIX_RE, `babel-${type}-`).replace(isPreset ? BABEL_PRESET_ORG_RE : BABEL_PLUGIN_ORG_RE, `$1${type}-`).replace(isPreset ? OTHER_PRESET_ORG_RE : OTHER_PLUGIN_ORG_RE, `$1babel-${type}-`).replace(OTHER_ORG_DEFAULT_RE, `$1/babel-${type}`).replace(EXACT_RE, ""); -} - -function resolveStandardizedName(type, name, dirname = process.cwd()) { - const standardizedName = standardizeName(type, name); - - try { - return (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { - paths: [b] - }, M = require("module")) => { - let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); - - if (f) return f; - f = new Error(`Cannot resolve module '${r}'`); - f.code = "MODULE_NOT_FOUND"; - throw f; - })(standardizedName, { - paths: [dirname] - }); - } catch (e) { - if (e.code !== "MODULE_NOT_FOUND") throw e; - - if (standardizedName !== name) { - let resolvedOriginal = false; - - try { - (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { - paths: [b] - }, M = require("module")) => { - let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); - - if (f) return f; - f = new Error(`Cannot resolve module '${r}'`); - f.code = "MODULE_NOT_FOUND"; - throw f; - })(name, { - paths: [dirname] - }); - resolvedOriginal = true; - } catch (_unused) {} - - if (resolvedOriginal) { - e.message += `\n- If you want to resolve "${name}", use "module:${name}"`; - } - } - - let resolvedBabel = false; - - try { - (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { - paths: [b] - }, M = require("module")) => { - let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); - - if (f) return f; - f = new Error(`Cannot resolve module '${r}'`); - f.code = "MODULE_NOT_FOUND"; - throw f; - })(standardizeName(type, "@babel/" + name), { - paths: [dirname] - }); - resolvedBabel = true; - } catch (_unused2) {} - - if (resolvedBabel) { - e.message += `\n- Did you mean "@babel/${name}"?`; - } - - let resolvedOppositeType = false; - const oppositeType = type === "preset" ? "plugin" : "preset"; - - try { - (((v, w) => (v = v.split("."), w = w.split("."), +v[0] > +w[0] || v[0] == w[0] && +v[1] >= +w[1]))(process.versions.node, "8.9") ? require.resolve : (r, { - paths: [b] - }, M = require("module")) => { - let f = M._findPath(r, M._nodeModulePaths(b).concat(b)); - - if (f) return f; - f = new Error(`Cannot resolve module '${r}'`); - f.code = "MODULE_NOT_FOUND"; - throw f; - })(standardizeName(oppositeType, name), { - paths: [dirname] - }); - resolvedOppositeType = true; - } catch (_unused3) {} - - if (resolvedOppositeType) { - e.message += `\n- Did you accidentally pass a ${oppositeType} as a ${type}?`; - } - - throw e; - } -} - -const LOADING_MODULES = new Set(); - -function* requireModule(type, name) { - if (LOADING_MODULES.has(name)) { - throw new Error(`Reentrant ${type} detected trying to load "${name}". This module is not ignored ` + "and is trying to load itself while compiling itself, leading to a dependency cycle. " + 'We recommend adding it to your "ignore" list in your babelrc, or to a .babelignore.'); - } - - try { - LOADING_MODULES.add(name); - return yield* (0, _moduleTypes.default)(name, `You appear to be using a native ECMAScript module ${type}, ` + "which is only supported when running Babel asynchronously.", true); - } catch (err) { - err.message = `[BABEL]: ${err.message} (While processing: ${name})`; - throw err; - } finally { - LOADING_MODULES.delete(name); - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/config/index.js b/tools/node_modules/@babel/core/lib/config/index.js deleted file mode 100644 index 13d7a96cc0bc03..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/index.js +++ /dev/null @@ -1,74 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.createConfigItem = createConfigItem; -Object.defineProperty(exports, "default", { - enumerable: true, - get: function () { - return _full.default; - } -}); -exports.createConfigItemAsync = exports.createConfigItemSync = exports.loadOptionsAsync = exports.loadOptionsSync = exports.loadOptions = exports.loadPartialConfigAsync = exports.loadPartialConfigSync = exports.loadPartialConfig = void 0; - -function _gensync() { - const data = require("gensync"); - - _gensync = function () { - return data; - }; - - return data; -} - -var _full = require("./full"); - -var _partial = require("./partial"); - -var _item = require("./item"); - -const loadOptionsRunner = _gensync()(function* (opts) { - var _config$options; - - const config = yield* (0, _full.default)(opts); - return (_config$options = config == null ? void 0 : config.options) != null ? _config$options : null; -}); - -const createConfigItemRunner = _gensync()(_item.createConfigItem); - -const maybeErrback = runner => (opts, callback) => { - if (callback === undefined && typeof opts === "function") { - callback = opts; - opts = undefined; - } - - return callback ? runner.errback(opts, callback) : runner.sync(opts); -}; - -const loadPartialConfig = maybeErrback(_partial.loadPartialConfig); -exports.loadPartialConfig = loadPartialConfig; -const loadPartialConfigSync = _partial.loadPartialConfig.sync; -exports.loadPartialConfigSync = loadPartialConfigSync; -const loadPartialConfigAsync = _partial.loadPartialConfig.async; -exports.loadPartialConfigAsync = loadPartialConfigAsync; -const loadOptions = maybeErrback(loadOptionsRunner); -exports.loadOptions = loadOptions; -const loadOptionsSync = loadOptionsRunner.sync; -exports.loadOptionsSync = loadOptionsSync; -const loadOptionsAsync = loadOptionsRunner.async; -exports.loadOptionsAsync = loadOptionsAsync; -const createConfigItemSync = createConfigItemRunner.sync; -exports.createConfigItemSync = createConfigItemSync; -const createConfigItemAsync = createConfigItemRunner.async; -exports.createConfigItemAsync = createConfigItemAsync; - -function createConfigItem(target, options, callback) { - if (callback !== undefined) { - return createConfigItemRunner.errback(target, options, callback); - } else if (typeof options === "function") { - return createConfigItemRunner.errback(target, undefined, callback); - } else { - return createConfigItemRunner.sync(target, options); - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/config/plugin.js b/tools/node_modules/@babel/core/lib/config/plugin.js deleted file mode 100644 index 9cb1656be3cd28..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/plugin.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -class Plugin { - constructor(plugin, options, key) { - this.key = void 0; - this.manipulateOptions = void 0; - this.post = void 0; - this.pre = void 0; - this.visitor = void 0; - this.parserOverride = void 0; - this.generatorOverride = void 0; - this.options = void 0; - this.key = plugin.name || key; - this.manipulateOptions = plugin.manipulateOptions; - this.post = plugin.post; - this.pre = plugin.pre; - this.visitor = plugin.visitor || {}; - this.parserOverride = plugin.parserOverride; - this.generatorOverride = plugin.generatorOverride; - this.options = options; - } - -} - -exports.default = Plugin; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/config/util.js b/tools/node_modules/@babel/core/lib/config/util.js deleted file mode 100644 index 088eac6bda4629..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/util.js +++ /dev/null @@ -1,31 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.mergeOptions = mergeOptions; -exports.isIterableIterator = isIterableIterator; - -function mergeOptions(target, source) { - for (const k of Object.keys(source)) { - if ((k === "parserOpts" || k === "generatorOpts" || k === "assumptions") && source[k]) { - const parserOpts = source[k]; - const targetObj = target[k] || (target[k] = {}); - mergeDefaultFields(targetObj, parserOpts); - } else { - const val = source[k]; - if (val !== undefined) target[k] = val; - } - } -} - -function mergeDefaultFields(target, source) { - for (const k of Object.keys(source)) { - const val = source[k]; - if (val !== undefined) target[k] = val; - } -} - -function isIterableIterator(value) { - return !!value && typeof value.next === "function" && typeof value[Symbol.iterator] === "function"; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/config/validation/options.js b/tools/node_modules/@babel/core/lib/config/validation/options.js deleted file mode 100644 index 998bad38c5bffe..00000000000000 --- a/tools/node_modules/@babel/core/lib/config/validation/options.js +++ /dev/null @@ -1,210 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.validate = validate; -exports.checkNoUnwrappedItemOptionPairs = checkNoUnwrappedItemOptionPairs; -exports.assumptionsNames = void 0; - -var _plugin = require("../plugin"); - -var _removed = require("./removed"); - -var _optionAssertions = require("./option-assertions"); - -const ROOT_VALIDATORS = { - cwd: _optionAssertions.assertString, - root: _optionAssertions.assertString, - rootMode: _optionAssertions.assertRootMode, - configFile: _optionAssertions.assertConfigFileSearch, - caller: _optionAssertions.assertCallerMetadata, - filename: _optionAssertions.assertString, - filenameRelative: _optionAssertions.assertString, - code: _optionAssertions.assertBoolean, - ast: _optionAssertions.assertBoolean, - cloneInputAst: _optionAssertions.assertBoolean, - envName: _optionAssertions.assertString -}; -const BABELRC_VALIDATORS = { - babelrc: _optionAssertions.assertBoolean, - babelrcRoots: _optionAssertions.assertBabelrcSearch -}; -const NONPRESET_VALIDATORS = { - extends: _optionAssertions.assertString, - ignore: _optionAssertions.assertIgnoreList, - only: _optionAssertions.assertIgnoreList, - targets: _optionAssertions.assertTargets, - browserslistConfigFile: _optionAssertions.assertConfigFileSearch, - browserslistEnv: _optionAssertions.assertString -}; -const COMMON_VALIDATORS = { - inputSourceMap: _optionAssertions.assertInputSourceMap, - presets: _optionAssertions.assertPluginList, - plugins: _optionAssertions.assertPluginList, - passPerPreset: _optionAssertions.assertBoolean, - assumptions: _optionAssertions.assertAssumptions, - env: assertEnvSet, - overrides: assertOverridesList, - test: _optionAssertions.assertConfigApplicableTest, - include: _optionAssertions.assertConfigApplicableTest, - exclude: _optionAssertions.assertConfigApplicableTest, - retainLines: _optionAssertions.assertBoolean, - comments: _optionAssertions.assertBoolean, - shouldPrintComment: _optionAssertions.assertFunction, - compact: _optionAssertions.assertCompact, - minified: _optionAssertions.assertBoolean, - auxiliaryCommentBefore: _optionAssertions.assertString, - auxiliaryCommentAfter: _optionAssertions.assertString, - sourceType: _optionAssertions.assertSourceType, - wrapPluginVisitorMethod: _optionAssertions.assertFunction, - highlightCode: _optionAssertions.assertBoolean, - sourceMaps: _optionAssertions.assertSourceMaps, - sourceMap: _optionAssertions.assertSourceMaps, - sourceFileName: _optionAssertions.assertString, - sourceRoot: _optionAssertions.assertString, - parserOpts: _optionAssertions.assertObject, - generatorOpts: _optionAssertions.assertObject -}; -{ - Object.assign(COMMON_VALIDATORS, { - getModuleId: _optionAssertions.assertFunction, - moduleRoot: _optionAssertions.assertString, - moduleIds: _optionAssertions.assertBoolean, - moduleId: _optionAssertions.assertString - }); -} -const assumptionsNames = new Set(["arrayLikeIsIterable", "constantReexports", "constantSuper", "enumerableModuleMeta", "ignoreFunctionLength", "ignoreToPrimitiveHint", "iterableIsArray", "mutableTemplateObject", "noClassCalls", "noDocumentAll", "noIncompleteNsImportDetection", "noNewArrows", "objectRestNoSymbols", "privateFieldsAsProperties", "pureGetters", "setClassMethods", "setComputedProperties", "setPublicClassFields", "setSpreadProperties", "skipForOfIteratorClosing", "superIsCallableConstructor"]); -exports.assumptionsNames = assumptionsNames; - -function getSource(loc) { - return loc.type === "root" ? loc.source : getSource(loc.parent); -} - -function validate(type, opts) { - return validateNested({ - type: "root", - source: type - }, opts); -} - -function validateNested(loc, opts) { - const type = getSource(loc); - assertNoDuplicateSourcemap(opts); - Object.keys(opts).forEach(key => { - const optLoc = { - type: "option", - name: key, - parent: loc - }; - - if (type === "preset" && NONPRESET_VALIDATORS[key]) { - throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in preset options`); - } - - if (type !== "arguments" && ROOT_VALIDATORS[key]) { - throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options`); - } - - if (type !== "arguments" && type !== "configfile" && BABELRC_VALIDATORS[key]) { - if (type === "babelrcfile" || type === "extendsfile") { - throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is not allowed in .babelrc or "extends"ed files, only in root programmatic options, ` + `or babel.config.js/config file options`); - } - - throw new Error(`${(0, _optionAssertions.msg)(optLoc)} is only allowed in root programmatic options, or babel.config.js/config file options`); - } - - const validator = COMMON_VALIDATORS[key] || NONPRESET_VALIDATORS[key] || BABELRC_VALIDATORS[key] || ROOT_VALIDATORS[key] || throwUnknownError; - validator(optLoc, opts[key]); - }); - return opts; -} - -function throwUnknownError(loc) { - const key = loc.name; - - if (_removed.default[key]) { - const { - message, - version = 5 - } = _removed.default[key]; - throw new Error(`Using removed Babel ${version} option: ${(0, _optionAssertions.msg)(loc)} - ${message}`); - } else { - const unknownOptErr = new Error(`Unknown option: ${(0, _optionAssertions.msg)(loc)}. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options.`); - unknownOptErr.code = "BABEL_UNKNOWN_OPTION"; - throw unknownOptErr; - } -} - -function has(obj, key) { - return Object.prototype.hasOwnProperty.call(obj, key); -} - -function assertNoDuplicateSourcemap(opts) { - if (has(opts, "sourceMap") && has(opts, "sourceMaps")) { - throw new Error(".sourceMap is an alias for .sourceMaps, cannot use both"); - } -} - -function assertEnvSet(loc, value) { - if (loc.parent.type === "env") { - throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside of another .env block`); - } - - const parent = loc.parent; - const obj = (0, _optionAssertions.assertObject)(loc, value); - - if (obj) { - for (const envName of Object.keys(obj)) { - const env = (0, _optionAssertions.assertObject)((0, _optionAssertions.access)(loc, envName), obj[envName]); - if (!env) continue; - const envLoc = { - type: "env", - name: envName, - parent - }; - validateNested(envLoc, env); - } - } - - return obj; -} - -function assertOverridesList(loc, value) { - if (loc.parent.type === "env") { - throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .env block`); - } - - if (loc.parent.type === "overrides") { - throw new Error(`${(0, _optionAssertions.msg)(loc)} is not allowed inside an .overrides block`); - } - - const parent = loc.parent; - const arr = (0, _optionAssertions.assertArray)(loc, value); - - if (arr) { - for (const [index, item] of arr.entries()) { - const objLoc = (0, _optionAssertions.access)(loc, index); - const env = (0, _optionAssertions.assertObject)(objLoc, item); - if (!env) throw new Error(`${(0, _optionAssertions.msg)(objLoc)} must be an object`); - const overridesLoc = { - type: "overrides", - index, - parent - }; - validateNested(overridesLoc, env); - } - } - - return arr; -} - -function checkNoUnwrappedItemOptionPairs(items, index, type, e) { - if (index === 0) return; - const lastItem = items[index - 1]; - const thisItem = items[index]; - - if (lastItem.file && lastItem.options === undefined && typeof thisItem.value === "object") { - e.message += `\n- Maybe you meant to use\n` + `"${type}s": [\n ["${lastItem.file.request}", ${JSON.stringify(thisItem.value, undefined, 2)}]\n]\n` + `To be a valid ${type}, its name and options should be wrapped in a pair of brackets`; - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/index.js b/tools/node_modules/@babel/core/lib/index.js deleted file mode 100644 index ac92710bda4ed9..00000000000000 --- a/tools/node_modules/@babel/core/lib/index.js +++ /dev/null @@ -1,264 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Plugin = Plugin; -Object.defineProperty(exports, "File", { - enumerable: true, - get: function () { - return _file.default; - } -}); -Object.defineProperty(exports, "buildExternalHelpers", { - enumerable: true, - get: function () { - return _buildExternalHelpers.default; - } -}); -Object.defineProperty(exports, "resolvePlugin", { - enumerable: true, - get: function () { - return _files.resolvePlugin; - } -}); -Object.defineProperty(exports, "resolvePreset", { - enumerable: true, - get: function () { - return _files.resolvePreset; - } -}); -Object.defineProperty(exports, "getEnv", { - enumerable: true, - get: function () { - return _environment.getEnv; - } -}); -Object.defineProperty(exports, "tokTypes", { - enumerable: true, - get: function () { - return _parser().tokTypes; - } -}); -Object.defineProperty(exports, "traverse", { - enumerable: true, - get: function () { - return _traverse().default; - } -}); -Object.defineProperty(exports, "template", { - enumerable: true, - get: function () { - return _template().default; - } -}); -Object.defineProperty(exports, "createConfigItem", { - enumerable: true, - get: function () { - return _config.createConfigItem; - } -}); -Object.defineProperty(exports, "createConfigItemSync", { - enumerable: true, - get: function () { - return _config.createConfigItemSync; - } -}); -Object.defineProperty(exports, "createConfigItemAsync", { - enumerable: true, - get: function () { - return _config.createConfigItemAsync; - } -}); -Object.defineProperty(exports, "loadPartialConfig", { - enumerable: true, - get: function () { - return _config.loadPartialConfig; - } -}); -Object.defineProperty(exports, "loadPartialConfigSync", { - enumerable: true, - get: function () { - return _config.loadPartialConfigSync; - } -}); -Object.defineProperty(exports, "loadPartialConfigAsync", { - enumerable: true, - get: function () { - return _config.loadPartialConfigAsync; - } -}); -Object.defineProperty(exports, "loadOptions", { - enumerable: true, - get: function () { - return _config.loadOptions; - } -}); -Object.defineProperty(exports, "loadOptionsSync", { - enumerable: true, - get: function () { - return _config.loadOptionsSync; - } -}); -Object.defineProperty(exports, "loadOptionsAsync", { - enumerable: true, - get: function () { - return _config.loadOptionsAsync; - } -}); -Object.defineProperty(exports, "transform", { - enumerable: true, - get: function () { - return _transform.transform; - } -}); -Object.defineProperty(exports, "transformSync", { - enumerable: true, - get: function () { - return _transform.transformSync; - } -}); -Object.defineProperty(exports, "transformAsync", { - enumerable: true, - get: function () { - return _transform.transformAsync; - } -}); -Object.defineProperty(exports, "transformFile", { - enumerable: true, - get: function () { - return _transformFile.transformFile; - } -}); -Object.defineProperty(exports, "transformFileSync", { - enumerable: true, - get: function () { - return _transformFile.transformFileSync; - } -}); -Object.defineProperty(exports, "transformFileAsync", { - enumerable: true, - get: function () { - return _transformFile.transformFileAsync; - } -}); -Object.defineProperty(exports, "transformFromAst", { - enumerable: true, - get: function () { - return _transformAst.transformFromAst; - } -}); -Object.defineProperty(exports, "transformFromAstSync", { - enumerable: true, - get: function () { - return _transformAst.transformFromAstSync; - } -}); -Object.defineProperty(exports, "transformFromAstAsync", { - enumerable: true, - get: function () { - return _transformAst.transformFromAstAsync; - } -}); -Object.defineProperty(exports, "parse", { - enumerable: true, - get: function () { - return _parse.parse; - } -}); -Object.defineProperty(exports, "parseSync", { - enumerable: true, - get: function () { - return _parse.parseSync; - } -}); -Object.defineProperty(exports, "parseAsync", { - enumerable: true, - get: function () { - return _parse.parseAsync; - } -}); -exports.types = exports.OptionManager = exports.DEFAULT_EXTENSIONS = exports.version = void 0; - -var _file = require("./transformation/file/file"); - -var _buildExternalHelpers = require("./tools/build-external-helpers"); - -var _files = require("./config/files"); - -var _environment = require("./config/helpers/environment"); - -function _types() { - const data = require("@babel/types"); - - _types = function () { - return data; - }; - - return data; -} - -Object.defineProperty(exports, "types", { - enumerable: true, - get: function () { - return _types(); - } -}); - -function _parser() { - const data = require("@babel/parser"); - - _parser = function () { - return data; - }; - - return data; -} - -function _traverse() { - const data = require("@babel/traverse"); - - _traverse = function () { - return data; - }; - - return data; -} - -function _template() { - const data = require("@babel/template"); - - _template = function () { - return data; - }; - - return data; -} - -var _config = require("./config"); - -var _transform = require("./transform"); - -var _transformFile = require("./transform-file"); - -var _transformAst = require("./transform-ast"); - -var _parse = require("./parse"); - -const version = "7.15.8"; -exports.version = version; -const DEFAULT_EXTENSIONS = Object.freeze([".js", ".jsx", ".es6", ".es", ".mjs", ".cjs"]); -exports.DEFAULT_EXTENSIONS = DEFAULT_EXTENSIONS; - -class OptionManager { - init(opts) { - return (0, _config.loadOptions)(opts); - } - -} - -exports.OptionManager = OptionManager; - -function Plugin(alias) { - throw new Error(`The (${alias}) Babel 5 plugin is being run with an unsupported Babel version.`); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/parse.js b/tools/node_modules/@babel/core/lib/parse.js deleted file mode 100644 index 23516615e76261..00000000000000 --- a/tools/node_modules/@babel/core/lib/parse.js +++ /dev/null @@ -1,48 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.parseAsync = exports.parseSync = exports.parse = void 0; - -function _gensync() { - const data = require("gensync"); - - _gensync = function () { - return data; - }; - - return data; -} - -var _config = require("./config"); - -var _parser = require("./parser"); - -var _normalizeOpts = require("./transformation/normalize-opts"); - -const parseRunner = _gensync()(function* parse(code, opts) { - const config = yield* (0, _config.default)(opts); - - if (config === null) { - return null; - } - - return yield* (0, _parser.default)(config.passes, (0, _normalizeOpts.default)(config), code); -}); - -const parse = function parse(code, opts, callback) { - if (typeof opts === "function") { - callback = opts; - opts = undefined; - } - - if (callback === undefined) return parseRunner.sync(code, opts); - parseRunner.errback(code, opts, callback); -}; - -exports.parse = parse; -const parseSync = parseRunner.sync; -exports.parseSync = parseSync; -const parseAsync = parseRunner.async; -exports.parseAsync = parseAsync; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/transformation/file/merge-map.js b/tools/node_modules/@babel/core/lib/transformation/file/merge-map.js deleted file mode 100644 index 5cc789f8fd375c..00000000000000 --- a/tools/node_modules/@babel/core/lib/transformation/file/merge-map.js +++ /dev/null @@ -1,245 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = mergeSourceMap; - -function _sourceMap() { - const data = require("source-map"); - - _sourceMap = function () { - return data; - }; - - return data; -} - -function mergeSourceMap(inputMap, map) { - const input = buildMappingData(inputMap); - const output = buildMappingData(map); - const mergedGenerator = new (_sourceMap().SourceMapGenerator)(); - - for (const { - source - } of input.sources) { - if (typeof source.content === "string") { - mergedGenerator.setSourceContent(source.path, source.content); - } - } - - if (output.sources.length === 1) { - const defaultSource = output.sources[0]; - const insertedMappings = new Map(); - eachInputGeneratedRange(input, (generated, original, source) => { - eachOverlappingGeneratedOutputRange(defaultSource, generated, item => { - const key = makeMappingKey(item); - if (insertedMappings.has(key)) return; - insertedMappings.set(key, item); - mergedGenerator.addMapping({ - source: source.path, - original: { - line: original.line, - column: original.columnStart - }, - generated: { - line: item.line, - column: item.columnStart - }, - name: original.name - }); - }); - }); - - for (const item of insertedMappings.values()) { - if (item.columnEnd === Infinity) { - continue; - } - - const clearItem = { - line: item.line, - columnStart: item.columnEnd - }; - const key = makeMappingKey(clearItem); - - if (insertedMappings.has(key)) { - continue; - } - - mergedGenerator.addMapping({ - generated: { - line: clearItem.line, - column: clearItem.columnStart - } - }); - } - } - - const result = mergedGenerator.toJSON(); - - if (typeof input.sourceRoot === "string") { - result.sourceRoot = input.sourceRoot; - } - - return result; -} - -function makeMappingKey(item) { - return `${item.line}/${item.columnStart}`; -} - -function eachOverlappingGeneratedOutputRange(outputFile, inputGeneratedRange, callback) { - const overlappingOriginal = filterApplicableOriginalRanges(outputFile, inputGeneratedRange); - - for (const { - generated - } of overlappingOriginal) { - for (const item of generated) { - callback(item); - } - } -} - -function filterApplicableOriginalRanges({ - mappings -}, { - line, - columnStart, - columnEnd -}) { - return filterSortedArray(mappings, ({ - original: outOriginal - }) => { - if (line > outOriginal.line) return -1; - if (line < outOriginal.line) return 1; - if (columnStart >= outOriginal.columnEnd) return -1; - if (columnEnd <= outOriginal.columnStart) return 1; - return 0; - }); -} - -function eachInputGeneratedRange(map, callback) { - for (const { - source, - mappings - } of map.sources) { - for (const { - original, - generated - } of mappings) { - for (const item of generated) { - callback(item, original, source); - } - } - } -} - -function buildMappingData(map) { - const consumer = new (_sourceMap().SourceMapConsumer)(Object.assign({}, map, { - sourceRoot: null - })); - const sources = new Map(); - const mappings = new Map(); - let last = null; - consumer.computeColumnSpans(); - consumer.eachMapping(m => { - if (m.originalLine === null) return; - let source = sources.get(m.source); - - if (!source) { - source = { - path: m.source, - content: consumer.sourceContentFor(m.source, true) - }; - sources.set(m.source, source); - } - - let sourceData = mappings.get(source); - - if (!sourceData) { - sourceData = { - source, - mappings: [] - }; - mappings.set(source, sourceData); - } - - const obj = { - line: m.originalLine, - columnStart: m.originalColumn, - columnEnd: Infinity, - name: m.name - }; - - if (last && last.source === source && last.mapping.line === m.originalLine) { - last.mapping.columnEnd = m.originalColumn; - } - - last = { - source, - mapping: obj - }; - sourceData.mappings.push({ - original: obj, - generated: consumer.allGeneratedPositionsFor({ - source: m.source, - line: m.originalLine, - column: m.originalColumn - }).map(item => ({ - line: item.line, - columnStart: item.column, - columnEnd: item.lastColumn + 1 - })) - }); - }, null, _sourceMap().SourceMapConsumer.ORIGINAL_ORDER); - return { - file: map.file, - sourceRoot: map.sourceRoot, - sources: Array.from(mappings.values()) - }; -} - -function findInsertionLocation(array, callback) { - let left = 0; - let right = array.length; - - while (left < right) { - const mid = Math.floor((left + right) / 2); - const item = array[mid]; - const result = callback(item); - - if (result === 0) { - left = mid; - break; - } - - if (result >= 0) { - right = mid; - } else { - left = mid + 1; - } - } - - let i = left; - - if (i < array.length) { - while (i >= 0 && callback(array[i]) >= 0) { - i--; - } - - return i + 1; - } - - return i; -} - -function filterSortedArray(array, callback) { - const start = findInsertionLocation(array, callback); - const results = []; - - for (let i = start; i < array.length && callback(array[i]) === 0; i++) { - results.push(array[i]); - } - - return results; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/lib/transformation/index.js b/tools/node_modules/@babel/core/lib/transformation/index.js deleted file mode 100644 index 0ac432289b85c2..00000000000000 --- a/tools/node_modules/@babel/core/lib/transformation/index.js +++ /dev/null @@ -1,124 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.run = run; - -function _traverse() { - const data = require("@babel/traverse"); - - _traverse = function () { - return data; - }; - - return data; -} - -var _pluginPass = require("./plugin-pass"); - -var _blockHoistPlugin = require("./block-hoist-plugin"); - -var _normalizeOpts = require("./normalize-opts"); - -var _normalizeFile = require("./normalize-file"); - -var _generate = require("./file/generate"); - -function* run(config, code, ast) { - const file = yield* (0, _normalizeFile.default)(config.passes, (0, _normalizeOpts.default)(config), code, ast); - const opts = file.opts; - - try { - yield* transformFile(file, config.passes); - } catch (e) { - var _opts$filename; - - e.message = `${(_opts$filename = opts.filename) != null ? _opts$filename : "unknown"}: ${e.message}`; - - if (!e.code) { - e.code = "BABEL_TRANSFORM_ERROR"; - } - - throw e; - } - - let outputCode, outputMap; - - try { - if (opts.code !== false) { - ({ - outputCode, - outputMap - } = (0, _generate.default)(config.passes, file)); - } - } catch (e) { - var _opts$filename2; - - e.message = `${(_opts$filename2 = opts.filename) != null ? _opts$filename2 : "unknown"}: ${e.message}`; - - if (!e.code) { - e.code = "BABEL_GENERATE_ERROR"; - } - - throw e; - } - - return { - metadata: file.metadata, - options: opts, - ast: opts.ast === true ? file.ast : null, - code: outputCode === undefined ? null : outputCode, - map: outputMap === undefined ? null : outputMap, - sourceType: file.ast.program.sourceType - }; -} - -function* transformFile(file, pluginPasses) { - for (const pluginPairs of pluginPasses) { - const passPairs = []; - const passes = []; - const visitors = []; - - for (const plugin of pluginPairs.concat([(0, _blockHoistPlugin.default)()])) { - const pass = new _pluginPass.default(file, plugin.key, plugin.options); - passPairs.push([plugin, pass]); - passes.push(pass); - visitors.push(plugin.visitor); - } - - for (const [plugin, pass] of passPairs) { - const fn = plugin.pre; - - if (fn) { - const result = fn.call(pass, file); - yield* []; - - if (isThenable(result)) { - throw new Error(`You appear to be using an plugin with an async .pre, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); - } - } - } - - const visitor = _traverse().default.visitors.merge(visitors, passes, file.opts.wrapPluginVisitorMethod); - - (0, _traverse().default)(file.ast, visitor, file.scope); - - for (const [plugin, pass] of passPairs) { - const fn = plugin.post; - - if (fn) { - const result = fn.call(pass, file); - yield* []; - - if (isThenable(result)) { - throw new Error(`You appear to be using an plugin with an async .post, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`); - } - } - } - } -} - -function isThenable(val) { - return !!val && (typeof val === "object" || typeof val === "function") && !!val.then && typeof val.then === "function"; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/code-frame/README.md b/tools/node_modules/@babel/core/node_modules/@babel/code-frame/README.md deleted file mode 100644 index 08cacb0477fb94..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/code-frame/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/code-frame - -> Generate errors that contain a code frame that point to source locations. - -See our website [@babel/code-frame](https://babeljs.io/docs/en/babel-code-frame) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/code-frame -``` - -or using yarn: - -```sh -yarn add @babel/code-frame --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/code-frame/package.json b/tools/node_modules/@babel/core/node_modules/@babel/code-frame/package.json deleted file mode 100644 index d0fb2e26a1ddcf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/code-frame/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@babel/code-frame", - "version": "7.15.8", - "description": "Generate errors that contain a code frame that point to source locations.", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-code-frame", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-code-frame" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/highlight": "^7.14.5" - }, - "devDependencies": { - "@types/chalk": "^2.0.0", - "chalk": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json b/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json deleted file mode 100644 index e745f8294cb474..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/compat-data/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@babel/compat-data", - "version": "7.15.0", - "author": "The Babel Team (https://babel.dev/team)", - "license": "MIT", - "description": "", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-compat-data" - }, - "publishConfig": { - "access": "public" - }, - "exports": { - "./plugins": "./plugins.js", - "./native-modules": "./native-modules.js", - "./corejs2-built-ins": "./corejs2-built-ins.js", - "./corejs3-shipped-proposals": "./corejs3-shipped-proposals.js", - "./overlapping-plugins": "./overlapping-plugins.js", - "./plugin-bugfixes": "./plugin-bugfixes.js" - }, - "scripts": { - "build-data": "./scripts/download-compat-table.sh && node ./scripts/build-data.js && node ./scripts/build-modules-support.js && node ./scripts/build-bugfixes-targets.js" - }, - "keywords": [ - "babel", - "compat-table", - "compat-data" - ], - "devDependencies": { - "@mdn/browser-compat-data": "^3.3.4", - "core-js-compat": "^3.16.0", - "electron-to-chromium": "^1.3.749" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/README.md b/tools/node_modules/@babel/core/node_modules/@babel/generator/README.md deleted file mode 100644 index b760238ebc5e89..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/generator - -> Turns an AST into code. - -See our website [@babel/generator](https://babeljs.io/docs/en/babel-generator) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/generator -``` - -or using yarn: - -```sh -yarn add @babel/generator --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js deleted file mode 100644 index b2bce2f083907f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/flow.js +++ /dev/null @@ -1,795 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.AnyTypeAnnotation = AnyTypeAnnotation; -exports.ArrayTypeAnnotation = ArrayTypeAnnotation; -exports.BooleanTypeAnnotation = BooleanTypeAnnotation; -exports.BooleanLiteralTypeAnnotation = BooleanLiteralTypeAnnotation; -exports.NullLiteralTypeAnnotation = NullLiteralTypeAnnotation; -exports.DeclareClass = DeclareClass; -exports.DeclareFunction = DeclareFunction; -exports.InferredPredicate = InferredPredicate; -exports.DeclaredPredicate = DeclaredPredicate; -exports.DeclareInterface = DeclareInterface; -exports.DeclareModule = DeclareModule; -exports.DeclareModuleExports = DeclareModuleExports; -exports.DeclareTypeAlias = DeclareTypeAlias; -exports.DeclareOpaqueType = DeclareOpaqueType; -exports.DeclareVariable = DeclareVariable; -exports.DeclareExportDeclaration = DeclareExportDeclaration; -exports.DeclareExportAllDeclaration = DeclareExportAllDeclaration; -exports.EnumDeclaration = EnumDeclaration; -exports.EnumBooleanBody = EnumBooleanBody; -exports.EnumNumberBody = EnumNumberBody; -exports.EnumStringBody = EnumStringBody; -exports.EnumSymbolBody = EnumSymbolBody; -exports.EnumDefaultedMember = EnumDefaultedMember; -exports.EnumBooleanMember = EnumBooleanMember; -exports.EnumNumberMember = EnumNumberMember; -exports.EnumStringMember = EnumStringMember; -exports.ExistsTypeAnnotation = ExistsTypeAnnotation; -exports.FunctionTypeAnnotation = FunctionTypeAnnotation; -exports.FunctionTypeParam = FunctionTypeParam; -exports.GenericTypeAnnotation = exports.ClassImplements = exports.InterfaceExtends = InterfaceExtends; -exports._interfaceish = _interfaceish; -exports._variance = _variance; -exports.InterfaceDeclaration = InterfaceDeclaration; -exports.InterfaceTypeAnnotation = InterfaceTypeAnnotation; -exports.IntersectionTypeAnnotation = IntersectionTypeAnnotation; -exports.MixedTypeAnnotation = MixedTypeAnnotation; -exports.EmptyTypeAnnotation = EmptyTypeAnnotation; -exports.NullableTypeAnnotation = NullableTypeAnnotation; -exports.NumberTypeAnnotation = NumberTypeAnnotation; -exports.StringTypeAnnotation = StringTypeAnnotation; -exports.ThisTypeAnnotation = ThisTypeAnnotation; -exports.TupleTypeAnnotation = TupleTypeAnnotation; -exports.TypeofTypeAnnotation = TypeofTypeAnnotation; -exports.TypeAlias = TypeAlias; -exports.TypeAnnotation = TypeAnnotation; -exports.TypeParameterDeclaration = exports.TypeParameterInstantiation = TypeParameterInstantiation; -exports.TypeParameter = TypeParameter; -exports.OpaqueType = OpaqueType; -exports.ObjectTypeAnnotation = ObjectTypeAnnotation; -exports.ObjectTypeInternalSlot = ObjectTypeInternalSlot; -exports.ObjectTypeCallProperty = ObjectTypeCallProperty; -exports.ObjectTypeIndexer = ObjectTypeIndexer; -exports.ObjectTypeProperty = ObjectTypeProperty; -exports.ObjectTypeSpreadProperty = ObjectTypeSpreadProperty; -exports.QualifiedTypeIdentifier = QualifiedTypeIdentifier; -exports.SymbolTypeAnnotation = SymbolTypeAnnotation; -exports.UnionTypeAnnotation = UnionTypeAnnotation; -exports.TypeCastExpression = TypeCastExpression; -exports.Variance = Variance; -exports.VoidTypeAnnotation = VoidTypeAnnotation; -exports.IndexedAccessType = IndexedAccessType; -exports.OptionalIndexedAccessType = OptionalIndexedAccessType; -Object.defineProperty(exports, "NumberLiteralTypeAnnotation", { - enumerable: true, - get: function () { - return _types2.NumericLiteral; - } -}); -Object.defineProperty(exports, "StringLiteralTypeAnnotation", { - enumerable: true, - get: function () { - return _types2.StringLiteral; - } -}); - -var _t = require("@babel/types"); - -var _modules = require("./modules"); - -var _types2 = require("./types"); - -const { - isDeclareExportDeclaration, - isStatement -} = _t; - -function AnyTypeAnnotation() { - this.word("any"); -} - -function ArrayTypeAnnotation(node) { - this.print(node.elementType, node); - this.token("["); - this.token("]"); -} - -function BooleanTypeAnnotation() { - this.word("boolean"); -} - -function BooleanLiteralTypeAnnotation(node) { - this.word(node.value ? "true" : "false"); -} - -function NullLiteralTypeAnnotation() { - this.word("null"); -} - -function DeclareClass(node, parent) { - if (!isDeclareExportDeclaration(parent)) { - this.word("declare"); - this.space(); - } - - this.word("class"); - this.space(); - - this._interfaceish(node); -} - -function DeclareFunction(node, parent) { - if (!isDeclareExportDeclaration(parent)) { - this.word("declare"); - this.space(); - } - - this.word("function"); - this.space(); - this.print(node.id, node); - this.print(node.id.typeAnnotation.typeAnnotation, node); - - if (node.predicate) { - this.space(); - this.print(node.predicate, node); - } - - this.semicolon(); -} - -function InferredPredicate() { - this.token("%"); - this.word("checks"); -} - -function DeclaredPredicate(node) { - this.token("%"); - this.word("checks"); - this.token("("); - this.print(node.value, node); - this.token(")"); -} - -function DeclareInterface(node) { - this.word("declare"); - this.space(); - this.InterfaceDeclaration(node); -} - -function DeclareModule(node) { - this.word("declare"); - this.space(); - this.word("module"); - this.space(); - this.print(node.id, node); - this.space(); - this.print(node.body, node); -} - -function DeclareModuleExports(node) { - this.word("declare"); - this.space(); - this.word("module"); - this.token("."); - this.word("exports"); - this.print(node.typeAnnotation, node); -} - -function DeclareTypeAlias(node) { - this.word("declare"); - this.space(); - this.TypeAlias(node); -} - -function DeclareOpaqueType(node, parent) { - if (!isDeclareExportDeclaration(parent)) { - this.word("declare"); - this.space(); - } - - this.OpaqueType(node); -} - -function DeclareVariable(node, parent) { - if (!isDeclareExportDeclaration(parent)) { - this.word("declare"); - this.space(); - } - - this.word("var"); - this.space(); - this.print(node.id, node); - this.print(node.id.typeAnnotation, node); - this.semicolon(); -} - -function DeclareExportDeclaration(node) { - this.word("declare"); - this.space(); - this.word("export"); - this.space(); - - if (node.default) { - this.word("default"); - this.space(); - } - - FlowExportDeclaration.apply(this, arguments); -} - -function DeclareExportAllDeclaration() { - this.word("declare"); - this.space(); - - _modules.ExportAllDeclaration.apply(this, arguments); -} - -function EnumDeclaration(node) { - const { - id, - body - } = node; - this.word("enum"); - this.space(); - this.print(id, node); - this.print(body, node); -} - -function enumExplicitType(context, name, hasExplicitType) { - if (hasExplicitType) { - context.space(); - context.word("of"); - context.space(); - context.word(name); - } - - context.space(); -} - -function enumBody(context, node) { - const { - members - } = node; - context.token("{"); - context.indent(); - context.newline(); - - for (const member of members) { - context.print(member, node); - context.newline(); - } - - if (node.hasUnknownMembers) { - context.token("..."); - context.newline(); - } - - context.dedent(); - context.token("}"); -} - -function EnumBooleanBody(node) { - const { - explicitType - } = node; - enumExplicitType(this, "boolean", explicitType); - enumBody(this, node); -} - -function EnumNumberBody(node) { - const { - explicitType - } = node; - enumExplicitType(this, "number", explicitType); - enumBody(this, node); -} - -function EnumStringBody(node) { - const { - explicitType - } = node; - enumExplicitType(this, "string", explicitType); - enumBody(this, node); -} - -function EnumSymbolBody(node) { - enumExplicitType(this, "symbol", true); - enumBody(this, node); -} - -function EnumDefaultedMember(node) { - const { - id - } = node; - this.print(id, node); - this.token(","); -} - -function enumInitializedMember(context, node) { - const { - id, - init - } = node; - context.print(id, node); - context.space(); - context.token("="); - context.space(); - context.print(init, node); - context.token(","); -} - -function EnumBooleanMember(node) { - enumInitializedMember(this, node); -} - -function EnumNumberMember(node) { - enumInitializedMember(this, node); -} - -function EnumStringMember(node) { - enumInitializedMember(this, node); -} - -function FlowExportDeclaration(node) { - if (node.declaration) { - const declar = node.declaration; - this.print(declar, node); - if (!isStatement(declar)) this.semicolon(); - } else { - this.token("{"); - - if (node.specifiers.length) { - this.space(); - this.printList(node.specifiers, node); - this.space(); - } - - this.token("}"); - - if (node.source) { - this.space(); - this.word("from"); - this.space(); - this.print(node.source, node); - } - - this.semicolon(); - } -} - -function ExistsTypeAnnotation() { - this.token("*"); -} - -function FunctionTypeAnnotation(node, parent) { - this.print(node.typeParameters, node); - this.token("("); - - if (node.this) { - this.word("this"); - this.token(":"); - this.space(); - this.print(node.this.typeAnnotation, node); - - if (node.params.length || node.rest) { - this.token(","); - this.space(); - } - } - - this.printList(node.params, node); - - if (node.rest) { - if (node.params.length) { - this.token(","); - this.space(); - } - - this.token("..."); - this.print(node.rest, node); - } - - this.token(")"); - - if (parent.type === "ObjectTypeCallProperty" || parent.type === "DeclareFunction" || parent.type === "ObjectTypeProperty" && parent.method) { - this.token(":"); - } else { - this.space(); - this.token("=>"); - } - - this.space(); - this.print(node.returnType, node); -} - -function FunctionTypeParam(node) { - this.print(node.name, node); - if (node.optional) this.token("?"); - - if (node.name) { - this.token(":"); - this.space(); - } - - this.print(node.typeAnnotation, node); -} - -function InterfaceExtends(node) { - this.print(node.id, node); - this.print(node.typeParameters, node); -} - -function _interfaceish(node) { - var _node$extends; - - this.print(node.id, node); - this.print(node.typeParameters, node); - - if ((_node$extends = node.extends) != null && _node$extends.length) { - this.space(); - this.word("extends"); - this.space(); - this.printList(node.extends, node); - } - - if (node.mixins && node.mixins.length) { - this.space(); - this.word("mixins"); - this.space(); - this.printList(node.mixins, node); - } - - if (node.implements && node.implements.length) { - this.space(); - this.word("implements"); - this.space(); - this.printList(node.implements, node); - } - - this.space(); - this.print(node.body, node); -} - -function _variance(node) { - if (node.variance) { - if (node.variance.kind === "plus") { - this.token("+"); - } else if (node.variance.kind === "minus") { - this.token("-"); - } - } -} - -function InterfaceDeclaration(node) { - this.word("interface"); - this.space(); - - this._interfaceish(node); -} - -function andSeparator() { - this.space(); - this.token("&"); - this.space(); -} - -function InterfaceTypeAnnotation(node) { - this.word("interface"); - - if (node.extends && node.extends.length) { - this.space(); - this.word("extends"); - this.space(); - this.printList(node.extends, node); - } - - this.space(); - this.print(node.body, node); -} - -function IntersectionTypeAnnotation(node) { - this.printJoin(node.types, node, { - separator: andSeparator - }); -} - -function MixedTypeAnnotation() { - this.word("mixed"); -} - -function EmptyTypeAnnotation() { - this.word("empty"); -} - -function NullableTypeAnnotation(node) { - this.token("?"); - this.print(node.typeAnnotation, node); -} - -function NumberTypeAnnotation() { - this.word("number"); -} - -function StringTypeAnnotation() { - this.word("string"); -} - -function ThisTypeAnnotation() { - this.word("this"); -} - -function TupleTypeAnnotation(node) { - this.token("["); - this.printList(node.types, node); - this.token("]"); -} - -function TypeofTypeAnnotation(node) { - this.word("typeof"); - this.space(); - this.print(node.argument, node); -} - -function TypeAlias(node) { - this.word("type"); - this.space(); - this.print(node.id, node); - this.print(node.typeParameters, node); - this.space(); - this.token("="); - this.space(); - this.print(node.right, node); - this.semicolon(); -} - -function TypeAnnotation(node) { - this.token(":"); - this.space(); - if (node.optional) this.token("?"); - this.print(node.typeAnnotation, node); -} - -function TypeParameterInstantiation(node) { - this.token("<"); - this.printList(node.params, node, {}); - this.token(">"); -} - -function TypeParameter(node) { - this._variance(node); - - this.word(node.name); - - if (node.bound) { - this.print(node.bound, node); - } - - if (node.default) { - this.space(); - this.token("="); - this.space(); - this.print(node.default, node); - } -} - -function OpaqueType(node) { - this.word("opaque"); - this.space(); - this.word("type"); - this.space(); - this.print(node.id, node); - this.print(node.typeParameters, node); - - if (node.supertype) { - this.token(":"); - this.space(); - this.print(node.supertype, node); - } - - if (node.impltype) { - this.space(); - this.token("="); - this.space(); - this.print(node.impltype, node); - } - - this.semicolon(); -} - -function ObjectTypeAnnotation(node) { - if (node.exact) { - this.token("{|"); - } else { - this.token("{"); - } - - const props = [...node.properties, ...(node.callProperties || []), ...(node.indexers || []), ...(node.internalSlots || [])]; - - if (props.length) { - this.space(); - this.printJoin(props, node, { - addNewlines(leading) { - if (leading && !props[0]) return 1; - }, - - indent: true, - statement: true, - iterator: () => { - if (props.length !== 1 || node.inexact) { - this.token(","); - this.space(); - } - } - }); - this.space(); - } - - if (node.inexact) { - this.indent(); - this.token("..."); - - if (props.length) { - this.newline(); - } - - this.dedent(); - } - - if (node.exact) { - this.token("|}"); - } else { - this.token("}"); - } -} - -function ObjectTypeInternalSlot(node) { - if (node.static) { - this.word("static"); - this.space(); - } - - this.token("["); - this.token("["); - this.print(node.id, node); - this.token("]"); - this.token("]"); - if (node.optional) this.token("?"); - - if (!node.method) { - this.token(":"); - this.space(); - } - - this.print(node.value, node); -} - -function ObjectTypeCallProperty(node) { - if (node.static) { - this.word("static"); - this.space(); - } - - this.print(node.value, node); -} - -function ObjectTypeIndexer(node) { - if (node.static) { - this.word("static"); - this.space(); - } - - this._variance(node); - - this.token("["); - - if (node.id) { - this.print(node.id, node); - this.token(":"); - this.space(); - } - - this.print(node.key, node); - this.token("]"); - this.token(":"); - this.space(); - this.print(node.value, node); -} - -function ObjectTypeProperty(node) { - if (node.proto) { - this.word("proto"); - this.space(); - } - - if (node.static) { - this.word("static"); - this.space(); - } - - if (node.kind === "get" || node.kind === "set") { - this.word(node.kind); - this.space(); - } - - this._variance(node); - - this.print(node.key, node); - if (node.optional) this.token("?"); - - if (!node.method) { - this.token(":"); - this.space(); - } - - this.print(node.value, node); -} - -function ObjectTypeSpreadProperty(node) { - this.token("..."); - this.print(node.argument, node); -} - -function QualifiedTypeIdentifier(node) { - this.print(node.qualification, node); - this.token("."); - this.print(node.id, node); -} - -function SymbolTypeAnnotation() { - this.word("symbol"); -} - -function orSeparator() { - this.space(); - this.token("|"); - this.space(); -} - -function UnionTypeAnnotation(node) { - this.printJoin(node.types, node, { - separator: orSeparator - }); -} - -function TypeCastExpression(node) { - this.token("("); - this.print(node.expression, node); - this.print(node.typeAnnotation, node); - this.token(")"); -} - -function Variance(node) { - if (node.kind === "plus") { - this.token("+"); - } else { - this.token("-"); - } -} - -function VoidTypeAnnotation() { - this.word("void"); -} - -function IndexedAccessType(node) { - this.print(node.objectType, node); - this.token("["); - this.print(node.indexType, node); - this.token("]"); -} - -function OptionalIndexedAccessType(node) { - this.print(node.objectType, node); - - if (node.optional) { - this.token("?."); - } - - this.token("["); - this.print(node.indexType, node); - this.token("]"); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/jsx.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/jsx.js deleted file mode 100644 index 485091398396c1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/jsx.js +++ /dev/null @@ -1,145 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.JSXAttribute = JSXAttribute; -exports.JSXIdentifier = JSXIdentifier; -exports.JSXNamespacedName = JSXNamespacedName; -exports.JSXMemberExpression = JSXMemberExpression; -exports.JSXSpreadAttribute = JSXSpreadAttribute; -exports.JSXExpressionContainer = JSXExpressionContainer; -exports.JSXSpreadChild = JSXSpreadChild; -exports.JSXText = JSXText; -exports.JSXElement = JSXElement; -exports.JSXOpeningElement = JSXOpeningElement; -exports.JSXClosingElement = JSXClosingElement; -exports.JSXEmptyExpression = JSXEmptyExpression; -exports.JSXFragment = JSXFragment; -exports.JSXOpeningFragment = JSXOpeningFragment; -exports.JSXClosingFragment = JSXClosingFragment; - -function JSXAttribute(node) { - this.print(node.name, node); - - if (node.value) { - this.token("="); - this.print(node.value, node); - } -} - -function JSXIdentifier(node) { - this.word(node.name); -} - -function JSXNamespacedName(node) { - this.print(node.namespace, node); - this.token(":"); - this.print(node.name, node); -} - -function JSXMemberExpression(node) { - this.print(node.object, node); - this.token("."); - this.print(node.property, node); -} - -function JSXSpreadAttribute(node) { - this.token("{"); - this.token("..."); - this.print(node.argument, node); - this.token("}"); -} - -function JSXExpressionContainer(node) { - this.token("{"); - this.print(node.expression, node); - this.token("}"); -} - -function JSXSpreadChild(node) { - this.token("{"); - this.token("..."); - this.print(node.expression, node); - this.token("}"); -} - -function JSXText(node) { - const raw = this.getPossibleRaw(node); - - if (raw != null) { - this.token(raw); - } else { - this.token(node.value); - } -} - -function JSXElement(node) { - const open = node.openingElement; - this.print(open, node); - if (open.selfClosing) return; - this.indent(); - - for (const child of node.children) { - this.print(child, node); - } - - this.dedent(); - this.print(node.closingElement, node); -} - -function spaceSeparator() { - this.space(); -} - -function JSXOpeningElement(node) { - this.token("<"); - this.print(node.name, node); - this.print(node.typeParameters, node); - - if (node.attributes.length > 0) { - this.space(); - this.printJoin(node.attributes, node, { - separator: spaceSeparator - }); - } - - if (node.selfClosing) { - this.space(); - this.token("/>"); - } else { - this.token(">"); - } -} - -function JSXClosingElement(node) { - this.token(""); -} - -function JSXEmptyExpression(node) { - this.printInnerComments(node); -} - -function JSXFragment(node) { - this.print(node.openingFragment, node); - this.indent(); - - for (const child of node.children) { - this.print(child, node); - } - - this.dedent(); - this.print(node.closingFragment, node); -} - -function JSXOpeningFragment() { - this.token("<"); - this.token(">"); -} - -function JSXClosingFragment() { - this.token(""); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js deleted file mode 100644 index ce8de5f1e2b310..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/types.js +++ /dev/null @@ -1,279 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.Identifier = Identifier; -exports.ArgumentPlaceholder = ArgumentPlaceholder; -exports.SpreadElement = exports.RestElement = RestElement; -exports.ObjectPattern = exports.ObjectExpression = ObjectExpression; -exports.ObjectMethod = ObjectMethod; -exports.ObjectProperty = ObjectProperty; -exports.ArrayPattern = exports.ArrayExpression = ArrayExpression; -exports.RecordExpression = RecordExpression; -exports.TupleExpression = TupleExpression; -exports.RegExpLiteral = RegExpLiteral; -exports.BooleanLiteral = BooleanLiteral; -exports.NullLiteral = NullLiteral; -exports.NumericLiteral = NumericLiteral; -exports.StringLiteral = StringLiteral; -exports.BigIntLiteral = BigIntLiteral; -exports.DecimalLiteral = DecimalLiteral; -exports.TopicReference = TopicReference; -exports.PipelineTopicExpression = PipelineTopicExpression; -exports.PipelineBareFunction = PipelineBareFunction; -exports.PipelinePrimaryTopicReference = PipelinePrimaryTopicReference; - -var _t = require("@babel/types"); - -var _jsesc = require("jsesc"); - -const { - isAssignmentPattern, - isIdentifier -} = _t; - -function Identifier(node) { - this.exactSource(node.loc, () => { - this.word(node.name); - }); -} - -function ArgumentPlaceholder() { - this.token("?"); -} - -function RestElement(node) { - this.token("..."); - this.print(node.argument, node); -} - -function ObjectExpression(node) { - const props = node.properties; - this.token("{"); - this.printInnerComments(node); - - if (props.length) { - this.space(); - this.printList(props, node, { - indent: true, - statement: true - }); - this.space(); - } - - this.token("}"); -} - -function ObjectMethod(node) { - this.printJoin(node.decorators, node); - - this._methodHead(node); - - this.space(); - this.print(node.body, node); -} - -function ObjectProperty(node) { - this.printJoin(node.decorators, node); - - if (node.computed) { - this.token("["); - this.print(node.key, node); - this.token("]"); - } else { - if (isAssignmentPattern(node.value) && isIdentifier(node.key) && node.key.name === node.value.left.name) { - this.print(node.value, node); - return; - } - - this.print(node.key, node); - - if (node.shorthand && isIdentifier(node.key) && isIdentifier(node.value) && node.key.name === node.value.name) { - return; - } - } - - this.token(":"); - this.space(); - this.print(node.value, node); -} - -function ArrayExpression(node) { - const elems = node.elements; - const len = elems.length; - this.token("["); - this.printInnerComments(node); - - for (let i = 0; i < elems.length; i++) { - const elem = elems[i]; - - if (elem) { - if (i > 0) this.space(); - this.print(elem, node); - if (i < len - 1) this.token(","); - } else { - this.token(","); - } - } - - this.token("]"); -} - -function RecordExpression(node) { - const props = node.properties; - let startToken; - let endToken; - - if (this.format.recordAndTupleSyntaxType === "bar") { - startToken = "{|"; - endToken = "|}"; - } else if (this.format.recordAndTupleSyntaxType === "hash") { - startToken = "#{"; - endToken = "}"; - } else { - throw new Error(`The "recordAndTupleSyntaxType" generator option must be "bar" or "hash" (${JSON.stringify(this.format.recordAndTupleSyntaxType)} received).`); - } - - this.token(startToken); - this.printInnerComments(node); - - if (props.length) { - this.space(); - this.printList(props, node, { - indent: true, - statement: true - }); - this.space(); - } - - this.token(endToken); -} - -function TupleExpression(node) { - const elems = node.elements; - const len = elems.length; - let startToken; - let endToken; - - if (this.format.recordAndTupleSyntaxType === "bar") { - startToken = "[|"; - endToken = "|]"; - } else if (this.format.recordAndTupleSyntaxType === "hash") { - startToken = "#["; - endToken = "]"; - } else { - throw new Error(`${this.format.recordAndTupleSyntaxType} is not a valid recordAndTuple syntax type`); - } - - this.token(startToken); - this.printInnerComments(node); - - for (let i = 0; i < elems.length; i++) { - const elem = elems[i]; - - if (elem) { - if (i > 0) this.space(); - this.print(elem, node); - if (i < len - 1) this.token(","); - } - } - - this.token(endToken); -} - -function RegExpLiteral(node) { - this.word(`/${node.pattern}/${node.flags}`); -} - -function BooleanLiteral(node) { - this.word(node.value ? "true" : "false"); -} - -function NullLiteral() { - this.word("null"); -} - -function NumericLiteral(node) { - const raw = this.getPossibleRaw(node); - const opts = this.format.jsescOption; - const value = node.value + ""; - - if (opts.numbers) { - this.number(_jsesc(node.value, opts)); - } else if (raw == null) { - this.number(value); - } else if (this.format.minified) { - this.number(raw.length < value.length ? raw : value); - } else { - this.number(raw); - } -} - -function StringLiteral(node) { - const raw = this.getPossibleRaw(node); - - if (!this.format.minified && raw != null) { - this.token(raw); - return; - } - - const val = _jsesc(node.value, Object.assign(this.format.jsescOption, this.format.jsonCompatibleStrings && { - json: true - })); - - return this.token(val); -} - -function BigIntLiteral(node) { - const raw = this.getPossibleRaw(node); - - if (!this.format.minified && raw != null) { - this.word(raw); - return; - } - - this.word(node.value + "n"); -} - -function DecimalLiteral(node) { - const raw = this.getPossibleRaw(node); - - if (!this.format.minified && raw != null) { - this.word(raw); - return; - } - - this.word(node.value + "m"); -} - -function TopicReference() { - const { - topicToken - } = this.format; - - switch (topicToken) { - case "#": - this.token("#"); - break; - - default: - { - const givenTopicTokenJSON = JSON.stringify(topicToken); - const message = `The "topicToken" generator option must be "#" (${givenTopicTokenJSON} received instead).`; - throw new Error(message); - } - } -} - -function PipelineTopicExpression(node) { - this.print(node.expression, node); -} - -function PipelineBareFunction(node) { - this.print(node.callee, node); -} - -function PipelinePrimaryTopicReference() { - this.token("#"); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/typescript.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/typescript.js deleted file mode 100644 index 380e40b57e377d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/generators/typescript.js +++ /dev/null @@ -1,806 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.TSTypeAnnotation = TSTypeAnnotation; -exports.TSTypeParameterDeclaration = exports.TSTypeParameterInstantiation = TSTypeParameterInstantiation; -exports.TSTypeParameter = TSTypeParameter; -exports.TSParameterProperty = TSParameterProperty; -exports.TSDeclareFunction = TSDeclareFunction; -exports.TSDeclareMethod = TSDeclareMethod; -exports.TSQualifiedName = TSQualifiedName; -exports.TSCallSignatureDeclaration = TSCallSignatureDeclaration; -exports.TSConstructSignatureDeclaration = TSConstructSignatureDeclaration; -exports.TSPropertySignature = TSPropertySignature; -exports.tsPrintPropertyOrMethodName = tsPrintPropertyOrMethodName; -exports.TSMethodSignature = TSMethodSignature; -exports.TSIndexSignature = TSIndexSignature; -exports.TSAnyKeyword = TSAnyKeyword; -exports.TSBigIntKeyword = TSBigIntKeyword; -exports.TSUnknownKeyword = TSUnknownKeyword; -exports.TSNumberKeyword = TSNumberKeyword; -exports.TSObjectKeyword = TSObjectKeyword; -exports.TSBooleanKeyword = TSBooleanKeyword; -exports.TSStringKeyword = TSStringKeyword; -exports.TSSymbolKeyword = TSSymbolKeyword; -exports.TSVoidKeyword = TSVoidKeyword; -exports.TSUndefinedKeyword = TSUndefinedKeyword; -exports.TSNullKeyword = TSNullKeyword; -exports.TSNeverKeyword = TSNeverKeyword; -exports.TSIntrinsicKeyword = TSIntrinsicKeyword; -exports.TSThisType = TSThisType; -exports.TSFunctionType = TSFunctionType; -exports.TSConstructorType = TSConstructorType; -exports.tsPrintFunctionOrConstructorType = tsPrintFunctionOrConstructorType; -exports.TSTypeReference = TSTypeReference; -exports.TSTypePredicate = TSTypePredicate; -exports.TSTypeQuery = TSTypeQuery; -exports.TSTypeLiteral = TSTypeLiteral; -exports.tsPrintTypeLiteralOrInterfaceBody = tsPrintTypeLiteralOrInterfaceBody; -exports.tsPrintBraced = tsPrintBraced; -exports.TSArrayType = TSArrayType; -exports.TSTupleType = TSTupleType; -exports.TSOptionalType = TSOptionalType; -exports.TSRestType = TSRestType; -exports.TSNamedTupleMember = TSNamedTupleMember; -exports.TSUnionType = TSUnionType; -exports.TSIntersectionType = TSIntersectionType; -exports.tsPrintUnionOrIntersectionType = tsPrintUnionOrIntersectionType; -exports.TSConditionalType = TSConditionalType; -exports.TSInferType = TSInferType; -exports.TSParenthesizedType = TSParenthesizedType; -exports.TSTypeOperator = TSTypeOperator; -exports.TSIndexedAccessType = TSIndexedAccessType; -exports.TSMappedType = TSMappedType; -exports.TSLiteralType = TSLiteralType; -exports.TSExpressionWithTypeArguments = TSExpressionWithTypeArguments; -exports.TSInterfaceDeclaration = TSInterfaceDeclaration; -exports.TSInterfaceBody = TSInterfaceBody; -exports.TSTypeAliasDeclaration = TSTypeAliasDeclaration; -exports.TSAsExpression = TSAsExpression; -exports.TSTypeAssertion = TSTypeAssertion; -exports.TSEnumDeclaration = TSEnumDeclaration; -exports.TSEnumMember = TSEnumMember; -exports.TSModuleDeclaration = TSModuleDeclaration; -exports.TSModuleBlock = TSModuleBlock; -exports.TSImportType = TSImportType; -exports.TSImportEqualsDeclaration = TSImportEqualsDeclaration; -exports.TSExternalModuleReference = TSExternalModuleReference; -exports.TSNonNullExpression = TSNonNullExpression; -exports.TSExportAssignment = TSExportAssignment; -exports.TSNamespaceExportDeclaration = TSNamespaceExportDeclaration; -exports.tsPrintSignatureDeclarationBase = tsPrintSignatureDeclarationBase; -exports.tsPrintClassMemberModifiers = tsPrintClassMemberModifiers; - -function TSTypeAnnotation(node) { - this.token(":"); - this.space(); - if (node.optional) this.token("?"); - this.print(node.typeAnnotation, node); -} - -function TSTypeParameterInstantiation(node) { - this.token("<"); - this.printList(node.params, node, {}); - this.token(">"); -} - -function TSTypeParameter(node) { - this.word(node.name); - - if (node.constraint) { - this.space(); - this.word("extends"); - this.space(); - this.print(node.constraint, node); - } - - if (node.default) { - this.space(); - this.token("="); - this.space(); - this.print(node.default, node); - } -} - -function TSParameterProperty(node) { - if (node.accessibility) { - this.word(node.accessibility); - this.space(); - } - - if (node.readonly) { - this.word("readonly"); - this.space(); - } - - this._param(node.parameter); -} - -function TSDeclareFunction(node) { - if (node.declare) { - this.word("declare"); - this.space(); - } - - this._functionHead(node); - - this.token(";"); -} - -function TSDeclareMethod(node) { - this._classMethodHead(node); - - this.token(";"); -} - -function TSQualifiedName(node) { - this.print(node.left, node); - this.token("."); - this.print(node.right, node); -} - -function TSCallSignatureDeclaration(node) { - this.tsPrintSignatureDeclarationBase(node); - this.token(";"); -} - -function TSConstructSignatureDeclaration(node) { - this.word("new"); - this.space(); - this.tsPrintSignatureDeclarationBase(node); - this.token(";"); -} - -function TSPropertySignature(node) { - const { - readonly, - initializer - } = node; - - if (readonly) { - this.word("readonly"); - this.space(); - } - - this.tsPrintPropertyOrMethodName(node); - this.print(node.typeAnnotation, node); - - if (initializer) { - this.space(); - this.token("="); - this.space(); - this.print(initializer, node); - } - - this.token(";"); -} - -function tsPrintPropertyOrMethodName(node) { - if (node.computed) { - this.token("["); - } - - this.print(node.key, node); - - if (node.computed) { - this.token("]"); - } - - if (node.optional) { - this.token("?"); - } -} - -function TSMethodSignature(node) { - const { - kind - } = node; - - if (kind === "set" || kind === "get") { - this.word(kind); - this.space(); - } - - this.tsPrintPropertyOrMethodName(node); - this.tsPrintSignatureDeclarationBase(node); - this.token(";"); -} - -function TSIndexSignature(node) { - const { - readonly, - static: isStatic - } = node; - - if (isStatic) { - this.word("static"); - this.space(); - } - - if (readonly) { - this.word("readonly"); - this.space(); - } - - this.token("["); - - this._parameters(node.parameters, node); - - this.token("]"); - this.print(node.typeAnnotation, node); - this.token(";"); -} - -function TSAnyKeyword() { - this.word("any"); -} - -function TSBigIntKeyword() { - this.word("bigint"); -} - -function TSUnknownKeyword() { - this.word("unknown"); -} - -function TSNumberKeyword() { - this.word("number"); -} - -function TSObjectKeyword() { - this.word("object"); -} - -function TSBooleanKeyword() { - this.word("boolean"); -} - -function TSStringKeyword() { - this.word("string"); -} - -function TSSymbolKeyword() { - this.word("symbol"); -} - -function TSVoidKeyword() { - this.word("void"); -} - -function TSUndefinedKeyword() { - this.word("undefined"); -} - -function TSNullKeyword() { - this.word("null"); -} - -function TSNeverKeyword() { - this.word("never"); -} - -function TSIntrinsicKeyword() { - this.word("intrinsic"); -} - -function TSThisType() { - this.word("this"); -} - -function TSFunctionType(node) { - this.tsPrintFunctionOrConstructorType(node); -} - -function TSConstructorType(node) { - if (node.abstract) { - this.word("abstract"); - this.space(); - } - - this.word("new"); - this.space(); - this.tsPrintFunctionOrConstructorType(node); -} - -function tsPrintFunctionOrConstructorType(node) { - const { - typeParameters, - parameters - } = node; - this.print(typeParameters, node); - this.token("("); - - this._parameters(parameters, node); - - this.token(")"); - this.space(); - this.token("=>"); - this.space(); - this.print(node.typeAnnotation.typeAnnotation, node); -} - -function TSTypeReference(node) { - this.print(node.typeName, node); - this.print(node.typeParameters, node); -} - -function TSTypePredicate(node) { - if (node.asserts) { - this.word("asserts"); - this.space(); - } - - this.print(node.parameterName); - - if (node.typeAnnotation) { - this.space(); - this.word("is"); - this.space(); - this.print(node.typeAnnotation.typeAnnotation); - } -} - -function TSTypeQuery(node) { - this.word("typeof"); - this.space(); - this.print(node.exprName); -} - -function TSTypeLiteral(node) { - this.tsPrintTypeLiteralOrInterfaceBody(node.members, node); -} - -function tsPrintTypeLiteralOrInterfaceBody(members, node) { - this.tsPrintBraced(members, node); -} - -function tsPrintBraced(members, node) { - this.token("{"); - - if (members.length) { - this.indent(); - this.newline(); - - for (const member of members) { - this.print(member, node); - this.newline(); - } - - this.dedent(); - this.rightBrace(); - } else { - this.token("}"); - } -} - -function TSArrayType(node) { - this.print(node.elementType, node); - this.token("[]"); -} - -function TSTupleType(node) { - this.token("["); - this.printList(node.elementTypes, node); - this.token("]"); -} - -function TSOptionalType(node) { - this.print(node.typeAnnotation, node); - this.token("?"); -} - -function TSRestType(node) { - this.token("..."); - this.print(node.typeAnnotation, node); -} - -function TSNamedTupleMember(node) { - this.print(node.label, node); - if (node.optional) this.token("?"); - this.token(":"); - this.space(); - this.print(node.elementType, node); -} - -function TSUnionType(node) { - this.tsPrintUnionOrIntersectionType(node, "|"); -} - -function TSIntersectionType(node) { - this.tsPrintUnionOrIntersectionType(node, "&"); -} - -function tsPrintUnionOrIntersectionType(node, sep) { - this.printJoin(node.types, node, { - separator() { - this.space(); - this.token(sep); - this.space(); - } - - }); -} - -function TSConditionalType(node) { - this.print(node.checkType); - this.space(); - this.word("extends"); - this.space(); - this.print(node.extendsType); - this.space(); - this.token("?"); - this.space(); - this.print(node.trueType); - this.space(); - this.token(":"); - this.space(); - this.print(node.falseType); -} - -function TSInferType(node) { - this.token("infer"); - this.space(); - this.print(node.typeParameter); -} - -function TSParenthesizedType(node) { - this.token("("); - this.print(node.typeAnnotation, node); - this.token(")"); -} - -function TSTypeOperator(node) { - this.word(node.operator); - this.space(); - this.print(node.typeAnnotation, node); -} - -function TSIndexedAccessType(node) { - this.print(node.objectType, node); - this.token("["); - this.print(node.indexType, node); - this.token("]"); -} - -function TSMappedType(node) { - const { - nameType, - optional, - readonly, - typeParameter - } = node; - this.token("{"); - this.space(); - - if (readonly) { - tokenIfPlusMinus(this, readonly); - this.word("readonly"); - this.space(); - } - - this.token("["); - this.word(typeParameter.name); - this.space(); - this.word("in"); - this.space(); - this.print(typeParameter.constraint, typeParameter); - - if (nameType) { - this.space(); - this.word("as"); - this.space(); - this.print(nameType, node); - } - - this.token("]"); - - if (optional) { - tokenIfPlusMinus(this, optional); - this.token("?"); - } - - this.token(":"); - this.space(); - this.print(node.typeAnnotation, node); - this.space(); - this.token("}"); -} - -function tokenIfPlusMinus(self, tok) { - if (tok !== true) { - self.token(tok); - } -} - -function TSLiteralType(node) { - this.print(node.literal, node); -} - -function TSExpressionWithTypeArguments(node) { - this.print(node.expression, node); - this.print(node.typeParameters, node); -} - -function TSInterfaceDeclaration(node) { - const { - declare, - id, - typeParameters, - extends: extendz, - body - } = node; - - if (declare) { - this.word("declare"); - this.space(); - } - - this.word("interface"); - this.space(); - this.print(id, node); - this.print(typeParameters, node); - - if (extendz != null && extendz.length) { - this.space(); - this.word("extends"); - this.space(); - this.printList(extendz, node); - } - - this.space(); - this.print(body, node); -} - -function TSInterfaceBody(node) { - this.tsPrintTypeLiteralOrInterfaceBody(node.body, node); -} - -function TSTypeAliasDeclaration(node) { - const { - declare, - id, - typeParameters, - typeAnnotation - } = node; - - if (declare) { - this.word("declare"); - this.space(); - } - - this.word("type"); - this.space(); - this.print(id, node); - this.print(typeParameters, node); - this.space(); - this.token("="); - this.space(); - this.print(typeAnnotation, node); - this.token(";"); -} - -function TSAsExpression(node) { - const { - expression, - typeAnnotation - } = node; - this.print(expression, node); - this.space(); - this.word("as"); - this.space(); - this.print(typeAnnotation, node); -} - -function TSTypeAssertion(node) { - const { - typeAnnotation, - expression - } = node; - this.token("<"); - this.print(typeAnnotation, node); - this.token(">"); - this.space(); - this.print(expression, node); -} - -function TSEnumDeclaration(node) { - const { - declare, - const: isConst, - id, - members - } = node; - - if (declare) { - this.word("declare"); - this.space(); - } - - if (isConst) { - this.word("const"); - this.space(); - } - - this.word("enum"); - this.space(); - this.print(id, node); - this.space(); - this.tsPrintBraced(members, node); -} - -function TSEnumMember(node) { - const { - id, - initializer - } = node; - this.print(id, node); - - if (initializer) { - this.space(); - this.token("="); - this.space(); - this.print(initializer, node); - } - - this.token(","); -} - -function TSModuleDeclaration(node) { - const { - declare, - id - } = node; - - if (declare) { - this.word("declare"); - this.space(); - } - - if (!node.global) { - this.word(id.type === "Identifier" ? "namespace" : "module"); - this.space(); - } - - this.print(id, node); - - if (!node.body) { - this.token(";"); - return; - } - - let body = node.body; - - while (body.type === "TSModuleDeclaration") { - this.token("."); - this.print(body.id, body); - body = body.body; - } - - this.space(); - this.print(body, node); -} - -function TSModuleBlock(node) { - this.tsPrintBraced(node.body, node); -} - -function TSImportType(node) { - const { - argument, - qualifier, - typeParameters - } = node; - this.word("import"); - this.token("("); - this.print(argument, node); - this.token(")"); - - if (qualifier) { - this.token("."); - this.print(qualifier, node); - } - - if (typeParameters) { - this.print(typeParameters, node); - } -} - -function TSImportEqualsDeclaration(node) { - const { - isExport, - id, - moduleReference - } = node; - - if (isExport) { - this.word("export"); - this.space(); - } - - this.word("import"); - this.space(); - this.print(id, node); - this.space(); - this.token("="); - this.space(); - this.print(moduleReference, node); - this.token(";"); -} - -function TSExternalModuleReference(node) { - this.token("require("); - this.print(node.expression, node); - this.token(")"); -} - -function TSNonNullExpression(node) { - this.print(node.expression, node); - this.token("!"); -} - -function TSExportAssignment(node) { - this.word("export"); - this.space(); - this.token("="); - this.space(); - this.print(node.expression, node); - this.token(";"); -} - -function TSNamespaceExportDeclaration(node) { - this.word("export"); - this.space(); - this.word("as"); - this.space(); - this.word("namespace"); - this.space(); - this.print(node.id, node); -} - -function tsPrintSignatureDeclarationBase(node) { - const { - typeParameters, - parameters - } = node; - this.print(typeParameters, node); - this.token("("); - - this._parameters(parameters, node); - - this.token(")"); - this.print(node.typeAnnotation, node); -} - -function tsPrintClassMemberModifiers(node, isField) { - if (isField && node.declare) { - this.word("declare"); - this.space(); - } - - if (node.accessibility) { - this.word(node.accessibility); - this.space(); - } - - if (node.static) { - this.word("static"); - this.space(); - } - - if (node.override) { - this.word("override"); - this.space(); - } - - if (node.abstract) { - this.word("abstract"); - this.space(); - } - - if (isField && node.readonly) { - this.word("readonly"); - this.space(); - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js deleted file mode 100644 index 0f4d1363d1c02b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/index.js +++ /dev/null @@ -1,97 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = generate; -exports.CodeGenerator = void 0; - -var _sourceMap = require("./source-map"); - -var _printer = require("./printer"); - -class Generator extends _printer.default { - constructor(ast, opts = {}, code) { - const format = normalizeOptions(code, opts); - const map = opts.sourceMaps ? new _sourceMap.default(opts, code) : null; - super(format, map); - this.ast = void 0; - this.ast = ast; - } - - generate() { - return super.generate(this.ast); - } - -} - -function normalizeOptions(code, opts) { - const format = { - auxiliaryCommentBefore: opts.auxiliaryCommentBefore, - auxiliaryCommentAfter: opts.auxiliaryCommentAfter, - shouldPrintComment: opts.shouldPrintComment, - retainLines: opts.retainLines, - retainFunctionParens: opts.retainFunctionParens, - comments: opts.comments == null || opts.comments, - compact: opts.compact, - minified: opts.minified, - concise: opts.concise, - indent: { - adjustMultilineComment: true, - style: " ", - base: 0 - }, - decoratorsBeforeExport: !!opts.decoratorsBeforeExport, - jsescOption: Object.assign({ - quotes: "double", - wrap: true, - minimal: false - }, opts.jsescOption), - recordAndTupleSyntaxType: opts.recordAndTupleSyntaxType, - topicToken: opts.topicToken - }; - { - format.jsonCompatibleStrings = opts.jsonCompatibleStrings; - } - - if (format.minified) { - format.compact = true; - - format.shouldPrintComment = format.shouldPrintComment || (() => format.comments); - } else { - format.shouldPrintComment = format.shouldPrintComment || (value => format.comments || value.indexOf("@license") >= 0 || value.indexOf("@preserve") >= 0); - } - - if (format.compact === "auto") { - format.compact = code.length > 500000; - - if (format.compact) { - console.error("[BABEL] Note: The code generator has deoptimised the styling of " + `${opts.filename} as it exceeds the max of ${"500KB"}.`); - } - } - - if (format.compact) { - format.indent.adjustMultilineComment = false; - } - - return format; -} - -class CodeGenerator { - constructor(ast, opts, code) { - this._generator = void 0; - this._generator = new Generator(ast, opts, code); - } - - generate() { - return this._generator.generate(); - } - -} - -exports.CodeGenerator = CodeGenerator; - -function generate(ast, opts, code) { - const gen = new Generator(ast, opts, code); - return gen.generate(); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js b/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js deleted file mode 100644 index 892498e8662e88..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/lib/node/index.js +++ /dev/null @@ -1,111 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.needsWhitespace = needsWhitespace; -exports.needsWhitespaceBefore = needsWhitespaceBefore; -exports.needsWhitespaceAfter = needsWhitespaceAfter; -exports.needsParens = needsParens; - -var whitespace = require("./whitespace"); - -var parens = require("./parentheses"); - -var _t = require("@babel/types"); - -const { - FLIPPED_ALIAS_KEYS, - isCallExpression, - isExpressionStatement, - isMemberExpression, - isNewExpression -} = _t; - -function expandAliases(obj) { - const newObj = {}; - - function add(type, func) { - const fn = newObj[type]; - newObj[type] = fn ? function (node, parent, stack) { - const result = fn(node, parent, stack); - return result == null ? func(node, parent, stack) : result; - } : func; - } - - for (const type of Object.keys(obj)) { - const aliases = FLIPPED_ALIAS_KEYS[type]; - - if (aliases) { - for (const alias of aliases) { - add(alias, obj[type]); - } - } else { - add(type, obj[type]); - } - } - - return newObj; -} - -const expandedParens = expandAliases(parens); -const expandedWhitespaceNodes = expandAliases(whitespace.nodes); -const expandedWhitespaceList = expandAliases(whitespace.list); - -function find(obj, node, parent, printStack) { - const fn = obj[node.type]; - return fn ? fn(node, parent, printStack) : null; -} - -function isOrHasCallExpression(node) { - if (isCallExpression(node)) { - return true; - } - - return isMemberExpression(node) && isOrHasCallExpression(node.object); -} - -function needsWhitespace(node, parent, type) { - if (!node) return 0; - - if (isExpressionStatement(node)) { - node = node.expression; - } - - let linesInfo = find(expandedWhitespaceNodes, node, parent); - - if (!linesInfo) { - const items = find(expandedWhitespaceList, node, parent); - - if (items) { - for (let i = 0; i < items.length; i++) { - linesInfo = needsWhitespace(items[i], node, type); - if (linesInfo) break; - } - } - } - - if (typeof linesInfo === "object" && linesInfo !== null) { - return linesInfo[type] || 0; - } - - return 0; -} - -function needsWhitespaceBefore(node, parent) { - return needsWhitespace(node, parent, "before"); -} - -function needsWhitespaceAfter(node, parent) { - return needsWhitespace(node, parent, "after"); -} - -function needsParens(node, parent, printStack) { - if (!parent) return false; - - if (isNewExpression(parent) && parent.callee === node) { - if (isOrHasCallExpression(node)) return true; - } - - return find(expandedParens, node, parent, printStack); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json b/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json deleted file mode 100644 index 6ede3f6f33b494..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/generator/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "@babel/generator", - "version": "7.15.8", - "description": "Turns an AST into code.", - "author": "The Babel Team (https://babel.dev/team)", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-generator" - }, - "homepage": "https://babel.dev/docs/en/next/babel-generator", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20generator%22+is%3Aopen", - "main": "./lib/index.js", - "files": [ - "lib" - ], - "dependencies": { - "@babel/types": "^7.15.6", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - }, - "devDependencies": { - "@babel/helper-fixtures": "7.14.5", - "@babel/parser": "7.15.8", - "@types/jsesc": "^2.5.0", - "@types/source-map": "^0.5.0", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/README.md deleted file mode 100644 index af386ab08b49f7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-compilation-targets - -> Helper functions on Babel compilation targets - -See our website [@babel/helper-compilation-targets](https://babeljs.io/docs/en/babel-helper-compilation-targets) for more information. - -## Install - -Using npm: - -```sh -npm install @babel/helper-compilation-targets -``` - -or using yarn: - -```sh -yarn add @babel/helper-compilation-targets -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/index.js deleted file mode 100644 index a13e8fe322ff04..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/index.js +++ /dev/null @@ -1,255 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isBrowsersQueryValid = isBrowsersQueryValid; -exports.default = getTargets; -Object.defineProperty(exports, "unreleasedLabels", { - enumerable: true, - get: function () { - return _targets.unreleasedLabels; - } -}); -Object.defineProperty(exports, "TargetNames", { - enumerable: true, - get: function () { - return _options.TargetNames; - } -}); -Object.defineProperty(exports, "prettifyTargets", { - enumerable: true, - get: function () { - return _pretty.prettifyTargets; - } -}); -Object.defineProperty(exports, "getInclusionReasons", { - enumerable: true, - get: function () { - return _debug.getInclusionReasons; - } -}); -Object.defineProperty(exports, "filterItems", { - enumerable: true, - get: function () { - return _filterItems.default; - } -}); -Object.defineProperty(exports, "isRequired", { - enumerable: true, - get: function () { - return _filterItems.isRequired; - } -}); - -var _browserslist = require("browserslist"); - -var _helperValidatorOption = require("@babel/helper-validator-option"); - -var _nativeModules = require("@babel/compat-data/native-modules"); - -var _utils = require("./utils"); - -var _targets = require("./targets"); - -var _options = require("./options"); - -var _pretty = require("./pretty"); - -var _debug = require("./debug"); - -var _filterItems = require("./filter-items"); - -const ESM_SUPPORT = _nativeModules["es6.module"]; -const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets"); - -function validateTargetNames(targets) { - const validTargets = Object.keys(_options.TargetNames); - - for (const target of Object.keys(targets)) { - if (!(target in _options.TargetNames)) { - throw new Error(v.formatMessage(`'${target}' is not a valid target -- Did you mean '${(0, _helperValidatorOption.findSuggestion)(target, validTargets)}'?`)); - } - } - - return targets; -} - -function isBrowsersQueryValid(browsers) { - return typeof browsers === "string" || Array.isArray(browsers) && browsers.every(b => typeof b === "string"); -} - -function validateBrowsers(browsers) { - v.invariant(browsers === undefined || isBrowsersQueryValid(browsers), `'${String(browsers)}' is not a valid browserslist query`); - return browsers; -} - -function getLowestVersions(browsers) { - return browsers.reduce((all, browser) => { - const [browserName, browserVersion] = browser.split(" "); - const normalizedBrowserName = _targets.browserNameMap[browserName]; - - if (!normalizedBrowserName) { - return all; - } - - try { - const splitVersion = browserVersion.split("-")[0].toLowerCase(); - const isSplitUnreleased = (0, _utils.isUnreleasedVersion)(splitVersion, browserName); - - if (!all[normalizedBrowserName]) { - all[normalizedBrowserName] = isSplitUnreleased ? splitVersion : (0, _utils.semverify)(splitVersion); - return all; - } - - const version = all[normalizedBrowserName]; - const isUnreleased = (0, _utils.isUnreleasedVersion)(version, browserName); - - if (isUnreleased && isSplitUnreleased) { - all[normalizedBrowserName] = (0, _utils.getLowestUnreleased)(version, splitVersion, browserName); - } else if (isUnreleased) { - all[normalizedBrowserName] = (0, _utils.semverify)(splitVersion); - } else if (!isUnreleased && !isSplitUnreleased) { - const parsedBrowserVersion = (0, _utils.semverify)(splitVersion); - all[normalizedBrowserName] = (0, _utils.semverMin)(version, parsedBrowserVersion); - } - } catch (e) {} - - return all; - }, {}); -} - -function outputDecimalWarning(decimalTargets) { - if (!decimalTargets.length) { - return; - } - - console.warn("Warning, the following targets are using a decimal version:\n"); - decimalTargets.forEach(({ - target, - value - }) => console.warn(` ${target}: ${value}`)); - console.warn(` -We recommend using a string for minor/patch versions to avoid numbers like 6.10 -getting parsed as 6.1, which can lead to unexpected behavior. -`); -} - -function semverifyTarget(target, value) { - try { - return (0, _utils.semverify)(value); - } catch (error) { - throw new Error(v.formatMessage(`'${value}' is not a valid value for 'targets.${target}'.`)); - } -} - -const targetParserMap = { - __default(target, value) { - const version = (0, _utils.isUnreleasedVersion)(value, target) ? value.toLowerCase() : semverifyTarget(target, value); - return [target, version]; - }, - - node(target, value) { - const parsed = value === true || value === "current" ? process.versions.node : semverifyTarget(target, value); - return [target, parsed]; - } - -}; - -function generateTargets(inputTargets) { - const input = Object.assign({}, inputTargets); - delete input.esmodules; - delete input.browsers; - return input; -} - -function resolveTargets(queries, env) { - const resolved = _browserslist(queries, { - mobileToDesktop: true, - env - }); - - return getLowestVersions(resolved); -} - -function getTargets(inputTargets = {}, options = {}) { - var _browsers; - - let { - browsers, - esmodules - } = inputTargets; - const { - configPath = "." - } = options; - validateBrowsers(browsers); - const input = generateTargets(inputTargets); - let targets = validateTargetNames(input); - const shouldParseBrowsers = !!browsers; - const hasTargets = shouldParseBrowsers || Object.keys(targets).length > 0; - const shouldSearchForConfig = !options.ignoreBrowserslistConfig && !hasTargets; - - if (!browsers && shouldSearchForConfig) { - browsers = _browserslist.loadConfig({ - config: options.configFile, - path: configPath, - env: options.browserslistEnv - }); - - if (browsers == null) { - { - browsers = []; - } - } - } - - if (esmodules && (esmodules !== "intersect" || !((_browsers = browsers) != null && _browsers.length))) { - browsers = Object.keys(ESM_SUPPORT).map(browser => `${browser} >= ${ESM_SUPPORT[browser]}`).join(", "); - esmodules = false; - } - - if (browsers) { - const queryBrowsers = resolveTargets(browsers, options.browserslistEnv); - - if (esmodules === "intersect") { - for (const browser of Object.keys(queryBrowsers)) { - const version = queryBrowsers[browser]; - - if (ESM_SUPPORT[browser]) { - queryBrowsers[browser] = (0, _utils.getHighestUnreleased)(version, (0, _utils.semverify)(ESM_SUPPORT[browser]), browser); - } else { - delete queryBrowsers[browser]; - } - } - } - - targets = Object.assign(queryBrowsers, targets); - } - - const result = {}; - const decimalWarnings = []; - - for (const target of Object.keys(targets).sort()) { - var _targetParserMap$targ; - - const value = targets[target]; - - if (typeof value === "number" && value % 1 !== 0) { - decimalWarnings.push({ - target, - value - }); - } - - const parser = (_targetParserMap$targ = targetParserMap[target]) != null ? _targetParserMap$targ : targetParserMap.__default; - const [parsedTarget, parsedValue] = parser(target, value); - - if (parsedValue) { - result[parsedTarget] = parsedValue; - } - } - - outputDecimalWarning(decimalWarnings); - return result; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/utils.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/utils.js deleted file mode 100644 index 262ef44246ff6e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/lib/utils.js +++ /dev/null @@ -1,69 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.semverMin = semverMin; -exports.semverify = semverify; -exports.isUnreleasedVersion = isUnreleasedVersion; -exports.getLowestUnreleased = getLowestUnreleased; -exports.getHighestUnreleased = getHighestUnreleased; -exports.getLowestImplementedVersion = getLowestImplementedVersion; - -var _semver = require("semver"); - -var _helperValidatorOption = require("@babel/helper-validator-option"); - -var _targets = require("./targets"); - -const versionRegExp = /^(\d+|\d+.\d+)$/; -const v = new _helperValidatorOption.OptionValidator("@babel/helper-compilation-targets"); - -function semverMin(first, second) { - return first && _semver.lt(first, second) ? first : second; -} - -function semverify(version) { - if (typeof version === "string" && _semver.valid(version)) { - return version; - } - - v.invariant(typeof version === "number" || typeof version === "string" && versionRegExp.test(version), `'${version}' is not a valid version`); - const split = version.toString().split("."); - - while (split.length < 3) { - split.push("0"); - } - - return split.join("."); -} - -function isUnreleasedVersion(version, env) { - const unreleasedLabel = _targets.unreleasedLabels[env]; - return !!unreleasedLabel && unreleasedLabel === version.toString().toLowerCase(); -} - -function getLowestUnreleased(a, b, env) { - const unreleasedLabel = _targets.unreleasedLabels[env]; - const hasUnreleased = [a, b].some(item => item === unreleasedLabel); - - if (hasUnreleased) { - return a === hasUnreleased ? b : a || b; - } - - return semverMin(a, b); -} - -function getHighestUnreleased(a, b, env) { - return getLowestUnreleased(a, b, env) === a ? b : a; -} - -function getLowestImplementedVersion(plugin, environment) { - const result = plugin[environment]; - - if (!result && environment === "android") { - return plugin.chrome; - } - - return result; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json deleted file mode 100644 index 368163a0a92596..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-compilation-targets/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "@babel/helper-compilation-targets", - "version": "7.15.4", - "author": "The Babel Team (https://babel.dev/team)", - "license": "MIT", - "description": "Helper functions on Babel compilation targets", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-compilation-targets" - }, - "main": "./lib/index.js", - "exports": { - ".": "./lib/index.js" - }, - "publishConfig": { - "access": "public" - }, - "keywords": [ - "babel", - "babel-plugin" - ], - "dependencies": { - "@babel/compat-data": "^7.15.0", - "@babel/helper-validator-option": "^7.14.5", - "browserslist": "^4.16.6", - "semver": "^6.3.0" - }, - "peerDependencies": { - "@babel/core": "^7.0.0" - }, - "devDependencies": { - "@babel/core": "7.15.4", - "@babel/helper-plugin-test-runner": "7.14.5", - "@types/semver": "^5.5.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/README.md deleted file mode 100644 index 36a65931b20ebb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-function-name - -> Helper function to change the property 'name' of every function - -See our website [@babel/helper-function-name](https://babeljs.io/docs/en/babel-helper-function-name) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-function-name -``` - -or using yarn: - -```sh -yarn add @babel/helper-function-name --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js deleted file mode 100644 index 59e88e9b597f83..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/lib/index.js +++ /dev/null @@ -1,188 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = _default; - -var _helperGetFunctionArity = require("@babel/helper-get-function-arity"); - -var _template = require("@babel/template"); - -var _t = require("@babel/types"); - -const { - NOT_LOCAL_BINDING, - cloneNode, - identifier, - isAssignmentExpression, - isFunction, - isIdentifier, - isLiteral, - isNullLiteral, - isObjectMethod, - isObjectProperty, - isRegExpLiteral, - isTemplateLiteral, - isVariableDeclarator, - toBindingIdentifierName -} = _t; -const buildPropertyMethodAssignmentWrapper = (0, _template.default)(` - (function (FUNCTION_KEY) { - function FUNCTION_ID() { - return FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - } - - return FUNCTION_ID; - })(FUNCTION) -`); -const buildGeneratorPropertyMethodAssignmentWrapper = (0, _template.default)(` - (function (FUNCTION_KEY) { - function* FUNCTION_ID() { - return yield* FUNCTION_KEY.apply(this, arguments); - } - - FUNCTION_ID.toString = function () { - return FUNCTION_KEY.toString(); - }; - - return FUNCTION_ID; - })(FUNCTION) -`); -const visitor = { - "ReferencedIdentifier|BindingIdentifier"(path, state) { - if (path.node.name !== state.name) return; - const localDeclar = path.scope.getBindingIdentifier(state.name); - if (localDeclar !== state.outerDeclar) return; - state.selfReference = true; - path.stop(); - } - -}; - -function getNameFromLiteralId(id) { - if (isNullLiteral(id)) { - return "null"; - } - - if (isRegExpLiteral(id)) { - return `_${id.pattern}_${id.flags}`; - } - - if (isTemplateLiteral(id)) { - return id.quasis.map(quasi => quasi.value.raw).join(""); - } - - if (id.value !== undefined) { - return id.value + ""; - } - - return ""; -} - -function wrap(state, method, id, scope) { - if (state.selfReference) { - if (scope.hasBinding(id.name) && !scope.hasGlobal(id.name)) { - scope.rename(id.name); - } else { - if (!isFunction(method)) return; - let build = buildPropertyMethodAssignmentWrapper; - - if (method.generator) { - build = buildGeneratorPropertyMethodAssignmentWrapper; - } - - const template = build({ - FUNCTION: method, - FUNCTION_ID: id, - FUNCTION_KEY: scope.generateUidIdentifier(id.name) - }).expression; - const params = template.callee.body.body[0].params; - - for (let i = 0, len = (0, _helperGetFunctionArity.default)(method); i < len; i++) { - params.push(scope.generateUidIdentifier("x")); - } - - return template; - } - } - - method.id = id; - scope.getProgramParent().references[id.name] = true; -} - -function visit(node, name, scope) { - const state = { - selfAssignment: false, - selfReference: false, - outerDeclar: scope.getBindingIdentifier(name), - references: [], - name: name - }; - const binding = scope.getOwnBinding(name); - - if (binding) { - if (binding.kind === "param") { - state.selfReference = true; - } else {} - } else if (state.outerDeclar || scope.hasGlobal(name)) { - scope.traverse(node, visitor, state); - } - - return state; -} - -function _default({ - node, - parent, - scope, - id -}, localBinding = false) { - if (node.id) return; - - if ((isObjectProperty(parent) || isObjectMethod(parent, { - kind: "method" - })) && (!parent.computed || isLiteral(parent.key))) { - id = parent.key; - } else if (isVariableDeclarator(parent)) { - id = parent.id; - - if (isIdentifier(id) && !localBinding) { - const binding = scope.parent.getBinding(id.name); - - if (binding && binding.constant && scope.getBinding(id.name) === binding) { - node.id = cloneNode(id); - node.id[NOT_LOCAL_BINDING] = true; - return; - } - } - } else if (isAssignmentExpression(parent, { - operator: "=" - })) { - id = parent.left; - } else if (!id) { - return; - } - - let name; - - if (id && isLiteral(id)) { - name = getNameFromLiteralId(id); - } else if (id && isIdentifier(id)) { - name = id.name; - } - - if (name === undefined) { - return; - } - - name = toBindingIdentifierName(name); - id = identifier(name); - id[NOT_LOCAL_BINDING] = true; - const state = visit(node, name, scope); - return wrap(state, node, id, scope) || node; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/package.json deleted file mode 100644 index 68734a596068de..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-function-name/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "@babel/helper-function-name", - "version": "7.15.4", - "description": "Helper function to change the property 'name' of every function", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-function-name" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-function-name", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/helper-get-function-arity": "^7.15.4", - "@babel/template": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/README.md deleted file mode 100644 index 8fa48c13e71816..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-get-function-arity - -> Helper function to get function arity - -See our website [@babel/helper-get-function-arity](https://babeljs.io/docs/en/babel-helper-get-function-arity) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-get-function-arity -``` - -or using yarn: - -```sh -yarn add @babel/helper-get-function-arity --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/package.json deleted file mode 100644 index 648e82766add4f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-get-function-arity/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@babel/helper-get-function-arity", - "version": "7.15.4", - "description": "Helper function to get function arity", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-get-function-arity" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-get-function-arity", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/README.md deleted file mode 100644 index d3eb8fc4c93b69..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-hoist-variables - -> Helper function to hoist variables - -See our website [@babel/helper-hoist-variables](https://babeljs.io/docs/en/babel-helper-hoist-variables) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-hoist-variables -``` - -or using yarn: - -```sh -yarn add @babel/helper-hoist-variables --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/package.json deleted file mode 100644 index 7621f99a207894..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-hoist-variables/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@babel/helper-hoist-variables", - "version": "7.15.4", - "description": "Helper function to hoist variables", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-hoist-variables" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-hoist-variables", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "TODO": "The @babel/traverse dependency is only needed for the NodePath TS type. We can consider exporting it from @babel/core.", - "devDependencies": { - "@babel/traverse": "7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/README.md deleted file mode 100644 index 01c551d6a96030..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-member-expression-to-functions - -> Helper function to replace certain member expressions with function calls - -See our website [@babel/helper-member-expression-to-functions](https://babeljs.io/docs/en/babel-helper-member-expression-to-functions) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-member-expression-to-functions -``` - -or using yarn: - -```sh -yarn add @babel/helper-member-expression-to-functions --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js deleted file mode 100644 index 564a056deb4ef2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/lib/index.js +++ /dev/null @@ -1,453 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -var _t = require('@babel/types'); - -function _interopNamespace(e) { - if (e && e.__esModule) return e; - var n = Object.create(null); - if (e) { - Object.keys(e).forEach(function (k) { - if (k !== 'default') { - var d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: function () { - return e[k]; - } - }); - } - }); - } - n['default'] = e; - return Object.freeze(n); -} - -var _t__namespace = /*#__PURE__*/_interopNamespace(_t); - -function willPathCastToBoolean(path) { - const maybeWrapped = path; - const { - node, - parentPath - } = maybeWrapped; - - if (parentPath.isLogicalExpression()) { - const { - operator, - right - } = parentPath.node; - - if (operator === "&&" || operator === "||" || operator === "??" && node === right) { - return willPathCastToBoolean(parentPath); - } - } - - if (parentPath.isSequenceExpression()) { - const { - expressions - } = parentPath.node; - - if (expressions[expressions.length - 1] === node) { - return willPathCastToBoolean(parentPath); - } else { - return true; - } - } - - return parentPath.isConditional({ - test: node - }) || parentPath.isUnaryExpression({ - operator: "!" - }) || parentPath.isLoop({ - test: node - }); -} - -const { - LOGICAL_OPERATORS, - arrowFunctionExpression, - assignmentExpression, - binaryExpression, - booleanLiteral, - callExpression, - cloneNode, - conditionalExpression, - identifier, - isMemberExpression, - isOptionalCallExpression, - isOptionalMemberExpression, - isUpdateExpression, - logicalExpression, - memberExpression, - nullLiteral, - numericLiteral, - optionalCallExpression, - optionalMemberExpression, - sequenceExpression, - unaryExpression -} = _t__namespace; - -class AssignmentMemoiser { - constructor() { - this._map = void 0; - this._map = new WeakMap(); - } - - has(key) { - return this._map.has(key); - } - - get(key) { - if (!this.has(key)) return; - - const record = this._map.get(key); - - const { - value - } = record; - record.count--; - - if (record.count === 0) { - return assignmentExpression("=", value, key); - } - - return value; - } - - set(key, value, count) { - return this._map.set(key, { - count, - value - }); - } - -} - -function toNonOptional(path, base) { - const { - node - } = path; - - if (isOptionalMemberExpression(node)) { - return memberExpression(base, node.property, node.computed); - } - - if (path.isOptionalCallExpression()) { - const callee = path.get("callee"); - - if (path.node.optional && callee.isOptionalMemberExpression()) { - const { - object - } = callee.node; - const context = path.scope.maybeGenerateMemoised(object) || object; - callee.get("object").replaceWith(assignmentExpression("=", context, object)); - return callExpression(memberExpression(base, identifier("call")), [context, ...path.node.arguments]); - } - - return callExpression(base, path.node.arguments); - } - - return path.node; -} - -function isInDetachedTree(path) { - while (path) { - if (path.isProgram()) break; - const { - parentPath, - container, - listKey - } = path; - const parentNode = parentPath.node; - - if (listKey) { - if (container !== parentNode[listKey]) return true; - } else { - if (container !== parentNode) return true; - } - - path = parentPath; - } - - return false; -} - -const handle = { - memoise() {}, - - handle(member, noDocumentAll) { - const { - node, - parent, - parentPath, - scope - } = member; - - if (member.isOptionalMemberExpression()) { - if (isInDetachedTree(member)) return; - const endPath = member.find(({ - node, - parent - }) => { - if (isOptionalMemberExpression(parent)) { - return parent.optional || parent.object !== node; - } - - if (isOptionalCallExpression(parent)) { - return node !== member.node && parent.optional || parent.callee !== node; - } - - return true; - }); - - if (scope.path.isPattern()) { - endPath.replaceWith(callExpression(arrowFunctionExpression([], endPath.node), [])); - return; - } - - const willEndPathCastToBoolean = willPathCastToBoolean(endPath); - const rootParentPath = endPath.parentPath; - - if (rootParentPath.isUpdateExpression({ - argument: node - }) || rootParentPath.isAssignmentExpression({ - left: node - })) { - throw member.buildCodeFrameError(`can't handle assignment`); - } - - const isDeleteOperation = rootParentPath.isUnaryExpression({ - operator: "delete" - }); - - if (isDeleteOperation && endPath.isOptionalMemberExpression() && endPath.get("property").isPrivateName()) { - throw member.buildCodeFrameError(`can't delete a private class element`); - } - - let startingOptional = member; - - for (;;) { - if (startingOptional.isOptionalMemberExpression()) { - if (startingOptional.node.optional) break; - startingOptional = startingOptional.get("object"); - continue; - } else if (startingOptional.isOptionalCallExpression()) { - if (startingOptional.node.optional) break; - startingOptional = startingOptional.get("callee"); - continue; - } - - throw new Error(`Internal error: unexpected ${startingOptional.node.type}`); - } - - const startingProp = startingOptional.isOptionalMemberExpression() ? "object" : "callee"; - const startingNode = startingOptional.node[startingProp]; - const baseNeedsMemoised = scope.maybeGenerateMemoised(startingNode); - const baseRef = baseNeedsMemoised != null ? baseNeedsMemoised : startingNode; - const parentIsOptionalCall = parentPath.isOptionalCallExpression({ - callee: node - }); - - const isOptionalCall = parent => parentIsOptionalCall; - - const parentIsCall = parentPath.isCallExpression({ - callee: node - }); - startingOptional.replaceWith(toNonOptional(startingOptional, baseRef)); - - if (isOptionalCall()) { - if (parent.optional) { - parentPath.replaceWith(this.optionalCall(member, parent.arguments)); - } else { - parentPath.replaceWith(this.call(member, parent.arguments)); - } - } else if (parentIsCall) { - member.replaceWith(this.boundGet(member)); - } else { - member.replaceWith(this.get(member)); - } - - let regular = member.node; - - for (let current = member; current !== endPath;) { - const parentPath = current.parentPath; - - if (parentPath === endPath && isOptionalCall() && parent.optional) { - regular = parentPath.node; - break; - } - - regular = toNonOptional(parentPath, regular); - current = parentPath; - } - - let context; - const endParentPath = endPath.parentPath; - - if (isMemberExpression(regular) && endParentPath.isOptionalCallExpression({ - callee: endPath.node, - optional: true - })) { - const { - object - } = regular; - context = member.scope.maybeGenerateMemoised(object); - - if (context) { - regular.object = assignmentExpression("=", context, object); - } - } - - let replacementPath = endPath; - - if (isDeleteOperation) { - replacementPath = endParentPath; - regular = endParentPath.node; - } - - const baseMemoised = baseNeedsMemoised ? assignmentExpression("=", cloneNode(baseRef), cloneNode(startingNode)) : cloneNode(baseRef); - - if (willEndPathCastToBoolean) { - let nonNullishCheck; - - if (noDocumentAll) { - nonNullishCheck = binaryExpression("!=", baseMemoised, nullLiteral()); - } else { - nonNullishCheck = logicalExpression("&&", binaryExpression("!==", baseMemoised, nullLiteral()), binaryExpression("!==", cloneNode(baseRef), scope.buildUndefinedNode())); - } - - replacementPath.replaceWith(logicalExpression("&&", nonNullishCheck, regular)); - } else { - let nullishCheck; - - if (noDocumentAll) { - nullishCheck = binaryExpression("==", baseMemoised, nullLiteral()); - } else { - nullishCheck = logicalExpression("||", binaryExpression("===", baseMemoised, nullLiteral()), binaryExpression("===", cloneNode(baseRef), scope.buildUndefinedNode())); - } - - replacementPath.replaceWith(conditionalExpression(nullishCheck, isDeleteOperation ? booleanLiteral(true) : scope.buildUndefinedNode(), regular)); - } - - if (context) { - const endParent = endParentPath.node; - endParentPath.replaceWith(optionalCallExpression(optionalMemberExpression(endParent.callee, identifier("call"), false, true), [cloneNode(context), ...endParent.arguments], false)); - } - - return; - } - - if (isUpdateExpression(parent, { - argument: node - })) { - if (this.simpleSet) { - member.replaceWith(this.simpleSet(member)); - return; - } - - const { - operator, - prefix - } = parent; - this.memoise(member, 2); - const value = binaryExpression(operator[0], unaryExpression("+", this.get(member)), numericLiteral(1)); - - if (prefix) { - parentPath.replaceWith(this.set(member, value)); - } else { - const { - scope - } = member; - const ref = scope.generateUidIdentifierBasedOnNode(node); - scope.push({ - id: ref - }); - value.left = assignmentExpression("=", cloneNode(ref), value.left); - parentPath.replaceWith(sequenceExpression([this.set(member, value), cloneNode(ref)])); - } - - return; - } - - if (parentPath.isAssignmentExpression({ - left: node - })) { - if (this.simpleSet) { - member.replaceWith(this.simpleSet(member)); - return; - } - - const { - operator, - right: value - } = parentPath.node; - - if (operator === "=") { - parentPath.replaceWith(this.set(member, value)); - } else { - const operatorTrunc = operator.slice(0, -1); - - if (LOGICAL_OPERATORS.includes(operatorTrunc)) { - this.memoise(member, 1); - parentPath.replaceWith(logicalExpression(operatorTrunc, this.get(member), this.set(member, value))); - } else { - this.memoise(member, 2); - parentPath.replaceWith(this.set(member, binaryExpression(operatorTrunc, this.get(member), value))); - } - } - - return; - } - - if (parentPath.isCallExpression({ - callee: node - })) { - parentPath.replaceWith(this.call(member, parentPath.node.arguments)); - return; - } - - if (parentPath.isOptionalCallExpression({ - callee: node - })) { - if (scope.path.isPattern()) { - parentPath.replaceWith(callExpression(arrowFunctionExpression([], parentPath.node), [])); - return; - } - - parentPath.replaceWith(this.optionalCall(member, parentPath.node.arguments)); - return; - } - - if (parentPath.isForXStatement({ - left: node - }) || parentPath.isObjectProperty({ - value: node - }) && parentPath.parentPath.isObjectPattern() || parentPath.isAssignmentPattern({ - left: node - }) && parentPath.parentPath.isObjectProperty({ - value: parent - }) && parentPath.parentPath.parentPath.isObjectPattern() || parentPath.isArrayPattern() || parentPath.isAssignmentPattern({ - left: node - }) && parentPath.parentPath.isArrayPattern() || parentPath.isRestElement()) { - member.replaceWith(this.destructureSet(member)); - return; - } - - if (parentPath.isTaggedTemplateExpression()) { - member.replaceWith(this.boundGet(member)); - } else { - member.replaceWith(this.get(member)); - } - } - -}; -function memberExpressionToFunctions(path, visitor, state) { - path.traverse(visitor, Object.assign({}, handle, state, { - memoiser: new AssignmentMemoiser() - })); -} - -exports.default = memberExpressionToFunctions; -//# sourceMappingURL=index.js.map diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json deleted file mode 100644 index 99139b2a01c89e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-member-expression-to-functions/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@babel/helper-member-expression-to-functions", - "version": "7.15.4", - "description": "Helper function to replace certain member expressions with function calls", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-member-expression-to-functions" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-member-expression-to-functions", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "author": "The Babel Team (https://babel.dev/team)", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "devDependencies": { - "@babel/traverse": "7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/README.md deleted file mode 100644 index dfc0bb88cf5aa1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-module-imports - -> Babel helper functions for inserting module loads - -See our website [@babel/helper-module-imports](https://babeljs.io/docs/en/babel-helper-module-imports) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-module-imports -``` - -or using yarn: - -```sh -yarn add @babel/helper-module-imports --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/lib/index.js deleted file mode 100644 index 62202946b68193..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/lib/index.js +++ /dev/null @@ -1,41 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.addDefault = addDefault; -exports.addNamed = addNamed; -exports.addNamespace = addNamespace; -exports.addSideEffect = addSideEffect; -Object.defineProperty(exports, "ImportInjector", { - enumerable: true, - get: function () { - return _importInjector.default; - } -}); -Object.defineProperty(exports, "isModule", { - enumerable: true, - get: function () { - return _isModule.default; - } -}); - -var _importInjector = require("./import-injector"); - -var _isModule = require("./is-module"); - -function addDefault(path, importedSource, opts) { - return new _importInjector.default(path).addDefault(importedSource, opts); -} - -function addNamed(path, name, importedSource, opts) { - return new _importInjector.default(path).addNamed(name, importedSource, opts); -} - -function addNamespace(path, importedSource, opts) { - return new _importInjector.default(path).addNamespace(importedSource, opts); -} - -function addSideEffect(path, importedSource, opts) { - return new _importInjector.default(path).addSideEffect(importedSource, opts); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/package.json deleted file mode 100644 index 7ad591e75369a7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-imports/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@babel/helper-module-imports", - "version": "7.15.4", - "description": "Babel helper functions for inserting module loads", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-helper-module-imports", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-module-imports" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "devDependencies": { - "@babel/core": "7.15.4", - "@babel/traverse": "7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/README.md deleted file mode 100644 index 243ce295d8a1d6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-module-transforms - -> Babel helper functions for implementing ES6 module transformations - -See our website [@babel/helper-module-transforms](https://babeljs.io/docs/en/babel-helper-module-transforms) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-module-transforms -``` - -or using yarn: - -```sh -yarn add @babel/helper-module-transforms --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js deleted file mode 100644 index b15e20bd87f876..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/lib/index.js +++ /dev/null @@ -1,416 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.rewriteModuleStatementsAndPrepareHeader = rewriteModuleStatementsAndPrepareHeader; -exports.ensureStatementsHoisted = ensureStatementsHoisted; -exports.wrapInterop = wrapInterop; -exports.buildNamespaceInitStatements = buildNamespaceInitStatements; -Object.defineProperty(exports, "isModule", { - enumerable: true, - get: function () { - return _helperModuleImports.isModule; - } -}); -Object.defineProperty(exports, "rewriteThis", { - enumerable: true, - get: function () { - return _rewriteThis.default; - } -}); -Object.defineProperty(exports, "hasExports", { - enumerable: true, - get: function () { - return _normalizeAndLoadMetadata.hasExports; - } -}); -Object.defineProperty(exports, "isSideEffectImport", { - enumerable: true, - get: function () { - return _normalizeAndLoadMetadata.isSideEffectImport; - } -}); -Object.defineProperty(exports, "getModuleName", { - enumerable: true, - get: function () { - return _getModuleName.default; - } -}); - -var _assert = require("assert"); - -var _t = require("@babel/types"); - -var _template = require("@babel/template"); - -var _helperModuleImports = require("@babel/helper-module-imports"); - -var _rewriteThis = require("./rewrite-this"); - -var _rewriteLiveReferences = require("./rewrite-live-references"); - -var _normalizeAndLoadMetadata = require("./normalize-and-load-metadata"); - -var _getModuleName = require("./get-module-name"); - -const { - booleanLiteral, - callExpression, - cloneNode, - directive, - directiveLiteral, - expressionStatement, - identifier, - isIdentifier, - memberExpression, - stringLiteral, - valueToNode, - variableDeclaration, - variableDeclarator -} = _t; - -function rewriteModuleStatementsAndPrepareHeader(path, { - loose, - exportName, - strict, - allowTopLevelThis, - strictMode, - noInterop, - importInterop = noInterop ? "none" : "babel", - lazy, - esNamespaceOnly, - constantReexports = loose, - enumerableModuleMeta = loose, - noIncompleteNsImportDetection -}) { - (0, _normalizeAndLoadMetadata.validateImportInteropOption)(importInterop); - - _assert((0, _helperModuleImports.isModule)(path), "Cannot process module statements in a script"); - - path.node.sourceType = "script"; - const meta = (0, _normalizeAndLoadMetadata.default)(path, exportName, { - importInterop, - initializeReexports: constantReexports, - lazy, - esNamespaceOnly - }); - - if (!allowTopLevelThis) { - (0, _rewriteThis.default)(path); - } - - (0, _rewriteLiveReferences.default)(path, meta); - - if (strictMode !== false) { - const hasStrict = path.node.directives.some(directive => { - return directive.value.value === "use strict"; - }); - - if (!hasStrict) { - path.unshiftContainer("directives", directive(directiveLiteral("use strict"))); - } - } - - const headers = []; - - if ((0, _normalizeAndLoadMetadata.hasExports)(meta) && !strict) { - headers.push(buildESModuleHeader(meta, enumerableModuleMeta)); - } - - const nameList = buildExportNameListDeclaration(path, meta); - - if (nameList) { - meta.exportNameListName = nameList.name; - headers.push(nameList.statement); - } - - headers.push(...buildExportInitializationStatements(path, meta, constantReexports, noIncompleteNsImportDetection)); - return { - meta, - headers - }; -} - -function ensureStatementsHoisted(statements) { - statements.forEach(header => { - header._blockHoist = 3; - }); -} - -function wrapInterop(programPath, expr, type) { - if (type === "none") { - return null; - } - - if (type === "node-namespace") { - return callExpression(programPath.hub.addHelper("interopRequireWildcard"), [expr, booleanLiteral(true)]); - } else if (type === "node-default") { - return null; - } - - let helper; - - if (type === "default") { - helper = "interopRequireDefault"; - } else if (type === "namespace") { - helper = "interopRequireWildcard"; - } else { - throw new Error(`Unknown interop: ${type}`); - } - - return callExpression(programPath.hub.addHelper(helper), [expr]); -} - -function buildNamespaceInitStatements(metadata, sourceMetadata, constantReexports = false) { - const statements = []; - let srcNamespace = identifier(sourceMetadata.name); - if (sourceMetadata.lazy) srcNamespace = callExpression(srcNamespace, []); - - for (const localName of sourceMetadata.importsNamespace) { - if (localName === sourceMetadata.name) continue; - statements.push(_template.default.statement`var NAME = SOURCE;`({ - NAME: localName, - SOURCE: cloneNode(srcNamespace) - })); - } - - if (constantReexports) { - statements.push(...buildReexportsFromMeta(metadata, sourceMetadata, true)); - } - - for (const exportName of sourceMetadata.reexportNamespace) { - statements.push((sourceMetadata.lazy ? _template.default.statement` - Object.defineProperty(EXPORTS, "NAME", { - enumerable: true, - get: function() { - return NAMESPACE; - } - }); - ` : _template.default.statement`EXPORTS.NAME = NAMESPACE;`)({ - EXPORTS: metadata.exportName, - NAME: exportName, - NAMESPACE: cloneNode(srcNamespace) - })); - } - - if (sourceMetadata.reexportAll) { - const statement = buildNamespaceReexport(metadata, cloneNode(srcNamespace), constantReexports); - statement.loc = sourceMetadata.reexportAll.loc; - statements.push(statement); - } - - return statements; -} - -const ReexportTemplate = { - constant: _template.default.statement`EXPORTS.EXPORT_NAME = NAMESPACE_IMPORT;`, - constantComputed: _template.default.statement`EXPORTS["EXPORT_NAME"] = NAMESPACE_IMPORT;`, - spec: _template.default.statement` - Object.defineProperty(EXPORTS, "EXPORT_NAME", { - enumerable: true, - get: function() { - return NAMESPACE_IMPORT; - }, - }); - ` -}; - -const buildReexportsFromMeta = (meta, metadata, constantReexports) => { - const namespace = metadata.lazy ? callExpression(identifier(metadata.name), []) : identifier(metadata.name); - const { - stringSpecifiers - } = meta; - return Array.from(metadata.reexports, ([exportName, importName]) => { - let NAMESPACE_IMPORT = cloneNode(namespace); - - if (importName === "default" && metadata.interop === "node-default") {} else if (stringSpecifiers.has(importName)) { - NAMESPACE_IMPORT = memberExpression(NAMESPACE_IMPORT, stringLiteral(importName), true); - } else { - NAMESPACE_IMPORT = memberExpression(NAMESPACE_IMPORT, identifier(importName)); - } - - const astNodes = { - EXPORTS: meta.exportName, - EXPORT_NAME: exportName, - NAMESPACE_IMPORT - }; - - if (constantReexports || isIdentifier(NAMESPACE_IMPORT)) { - if (stringSpecifiers.has(exportName)) { - return ReexportTemplate.constantComputed(astNodes); - } else { - return ReexportTemplate.constant(astNodes); - } - } else { - return ReexportTemplate.spec(astNodes); - } - }); -}; - -function buildESModuleHeader(metadata, enumerableModuleMeta = false) { - return (enumerableModuleMeta ? _template.default.statement` - EXPORTS.__esModule = true; - ` : _template.default.statement` - Object.defineProperty(EXPORTS, "__esModule", { - value: true, - }); - `)({ - EXPORTS: metadata.exportName - }); -} - -function buildNamespaceReexport(metadata, namespace, constantReexports) { - return (constantReexports ? _template.default.statement` - Object.keys(NAMESPACE).forEach(function(key) { - if (key === "default" || key === "__esModule") return; - VERIFY_NAME_LIST; - if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; - - EXPORTS[key] = NAMESPACE[key]; - }); - ` : _template.default.statement` - Object.keys(NAMESPACE).forEach(function(key) { - if (key === "default" || key === "__esModule") return; - VERIFY_NAME_LIST; - if (key in EXPORTS && EXPORTS[key] === NAMESPACE[key]) return; - - Object.defineProperty(EXPORTS, key, { - enumerable: true, - get: function() { - return NAMESPACE[key]; - }, - }); - }); - `)({ - NAMESPACE: namespace, - EXPORTS: metadata.exportName, - VERIFY_NAME_LIST: metadata.exportNameListName ? (0, _template.default)` - if (Object.prototype.hasOwnProperty.call(EXPORTS_LIST, key)) return; - `({ - EXPORTS_LIST: metadata.exportNameListName - }) : null - }); -} - -function buildExportNameListDeclaration(programPath, metadata) { - const exportedVars = Object.create(null); - - for (const data of metadata.local.values()) { - for (const name of data.names) { - exportedVars[name] = true; - } - } - - let hasReexport = false; - - for (const data of metadata.source.values()) { - for (const exportName of data.reexports.keys()) { - exportedVars[exportName] = true; - } - - for (const exportName of data.reexportNamespace) { - exportedVars[exportName] = true; - } - - hasReexport = hasReexport || !!data.reexportAll; - } - - if (!hasReexport || Object.keys(exportedVars).length === 0) return null; - const name = programPath.scope.generateUidIdentifier("exportNames"); - delete exportedVars.default; - return { - name: name.name, - statement: variableDeclaration("var", [variableDeclarator(name, valueToNode(exportedVars))]) - }; -} - -function buildExportInitializationStatements(programPath, metadata, constantReexports = false, noIncompleteNsImportDetection = false) { - const initStatements = []; - - for (const [localName, data] of metadata.local) { - if (data.kind === "import") {} else if (data.kind === "hoisted") { - initStatements.push([data.names[0], buildInitStatement(metadata, data.names, identifier(localName))]); - } else if (!noIncompleteNsImportDetection) { - for (const exportName of data.names) { - initStatements.push([exportName, null]); - } - } - } - - for (const data of metadata.source.values()) { - if (!constantReexports) { - const reexportsStatements = buildReexportsFromMeta(metadata, data, false); - const reexports = [...data.reexports.keys()]; - - for (let i = 0; i < reexportsStatements.length; i++) { - initStatements.push([reexports[i], reexportsStatements[i]]); - } - } - - if (!noIncompleteNsImportDetection) { - for (const exportName of data.reexportNamespace) { - initStatements.push([exportName, null]); - } - } - } - - initStatements.sort((a, b) => a[0] > b[0] ? 1 : -1); - const results = []; - - if (noIncompleteNsImportDetection) { - for (const [, initStatement] of initStatements) { - results.push(initStatement); - } - } else { - const chunkSize = 100; - - for (let i = 0, uninitializedExportNames = []; i < initStatements.length; i += chunkSize) { - for (let j = 0; j < chunkSize && i + j < initStatements.length; j++) { - const [exportName, initStatement] = initStatements[i + j]; - - if (initStatement !== null) { - if (uninitializedExportNames.length > 0) { - results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); - uninitializedExportNames = []; - } - - results.push(initStatement); - } else { - uninitializedExportNames.push(exportName); - } - } - - if (uninitializedExportNames.length > 0) { - results.push(buildInitStatement(metadata, uninitializedExportNames, programPath.scope.buildUndefinedNode())); - } - } - } - - return results; -} - -const InitTemplate = { - computed: _template.default.expression`EXPORTS["NAME"] = VALUE`, - default: _template.default.expression`EXPORTS.NAME = VALUE` -}; - -function buildInitStatement(metadata, exportNames, initExpr) { - const { - stringSpecifiers, - exportName: EXPORTS - } = metadata; - return expressionStatement(exportNames.reduce((acc, exportName) => { - const params = { - EXPORTS, - NAME: exportName, - VALUE: acc - }; - - if (stringSpecifiers.has(exportName)) { - return InitTemplate.computed(params); - } else { - return InitTemplate.default(params); - } - }, initExpr)); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json deleted file mode 100644 index 1dc057520f118b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-module-transforms/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "@babel/helper-module-transforms", - "version": "7.15.8", - "description": "Babel helper functions for implementing ES6 module transformations", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-helper-module-transforms", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-module-transforms" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/helper-module-imports": "^7.15.4", - "@babel/helper-replace-supers": "^7.15.4", - "@babel/helper-simple-access": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/helper-validator-identifier": "^7.15.7", - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.6" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/README.md deleted file mode 100644 index 3fdbc9bf187330..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-optimise-call-expression - -> Helper function to optimise call expression - -See our website [@babel/helper-optimise-call-expression](https://babeljs.io/docs/en/babel-helper-optimise-call-expression) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-optimise-call-expression -``` - -or using yarn: - -```sh -yarn add @babel/helper-optimise-call-expression --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/lib/index.js deleted file mode 100644 index c5a27e1ec0e443..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/lib/index.js +++ /dev/null @@ -1,36 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = optimiseCallExpression; - -var _t = require("@babel/types"); - -const { - callExpression, - identifier, - isIdentifier, - isSpreadElement, - memberExpression, - optionalCallExpression, - optionalMemberExpression -} = _t; - -function optimiseCallExpression(callee, thisNode, args, optional) { - if (args.length === 1 && isSpreadElement(args[0]) && isIdentifier(args[0].argument, { - name: "arguments" - })) { - if (optional) { - return optionalCallExpression(optionalMemberExpression(callee, identifier("apply"), false, true), [thisNode, args[0].argument], false); - } - - return callExpression(memberExpression(callee, identifier("apply")), [thisNode, args[0].argument]); - } else { - if (optional) { - return optionalCallExpression(optionalMemberExpression(callee, identifier("call"), false, true), [thisNode, ...args], false); - } - - return callExpression(memberExpression(callee, identifier("call")), [thisNode, ...args]); - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/package.json deleted file mode 100644 index 258c8f4d72570a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-optimise-call-expression/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "@babel/helper-optimise-call-expression", - "version": "7.15.4", - "description": "Helper function to optimise call expression", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-optimise-call-expression" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-optimise-call-expression", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "devDependencies": { - "@babel/generator": "7.15.4", - "@babel/parser": "7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/README.md deleted file mode 100644 index 774e0fa49bf4e5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-replace-supers - -> Helper function to replace supers - -See our website [@babel/helper-replace-supers](https://babeljs.io/docs/en/babel-helper-replace-supers) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-replace-supers -``` - -or using yarn: - -```sh -yarn add @babel/helper-replace-supers --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js deleted file mode 100644 index d18b8183af716e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/lib/index.js +++ /dev/null @@ -1,293 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.skipAllButComputedKey = skipAllButComputedKey; -exports.default = exports.environmentVisitor = void 0; - -var _traverse = require("@babel/traverse"); - -var _helperMemberExpressionToFunctions = require("@babel/helper-member-expression-to-functions"); - -var _helperOptimiseCallExpression = require("@babel/helper-optimise-call-expression"); - -var _t = require("@babel/types"); - -const { - VISITOR_KEYS, - assignmentExpression, - booleanLiteral, - callExpression, - cloneNode, - identifier, - memberExpression, - sequenceExpression, - staticBlock, - stringLiteral, - thisExpression -} = _t; - -function getPrototypeOfExpression(objectRef, isStatic, file, isPrivateMethod) { - objectRef = cloneNode(objectRef); - const targetRef = isStatic || isPrivateMethod ? objectRef : memberExpression(objectRef, identifier("prototype")); - return callExpression(file.addHelper("getPrototypeOf"), [targetRef]); -} - -function skipAllButComputedKey(path) { - if (!path.node.computed) { - path.skip(); - return; - } - - const keys = VISITOR_KEYS[path.type]; - - for (const key of keys) { - if (key !== "key") path.skipKey(key); - } -} - -const environmentVisitor = { - [`${staticBlock ? "StaticBlock|" : ""}ClassPrivateProperty|TypeAnnotation`](path) { - path.skip(); - }, - - Function(path) { - if (path.isMethod()) return; - if (path.isArrowFunctionExpression()) return; - path.skip(); - }, - - "Method|ClassProperty"(path) { - skipAllButComputedKey(path); - } - -}; -exports.environmentVisitor = environmentVisitor; - -const visitor = _traverse.default.visitors.merge([environmentVisitor, { - Super(path, state) { - const { - node, - parentPath - } = path; - if (!parentPath.isMemberExpression({ - object: node - })) return; - state.handle(parentPath); - } - -}]); - -const unshadowSuperBindingVisitor = _traverse.default.visitors.merge([environmentVisitor, { - Scopable(path, { - refName - }) { - const binding = path.scope.getOwnBinding(refName); - - if (binding && binding.identifier.name === refName) { - path.scope.rename(refName); - } - } - -}]); - -const specHandlers = { - memoise(superMember, count) { - const { - scope, - node - } = superMember; - const { - computed, - property - } = node; - - if (!computed) { - return; - } - - const memo = scope.maybeGenerateMemoised(property); - - if (!memo) { - return; - } - - this.memoiser.set(property, memo, count); - }, - - prop(superMember) { - const { - computed, - property - } = superMember.node; - - if (this.memoiser.has(property)) { - return cloneNode(this.memoiser.get(property)); - } - - if (computed) { - return cloneNode(property); - } - - return stringLiteral(property.name); - }, - - get(superMember) { - return this._get(superMember, this._getThisRefs()); - }, - - _get(superMember, thisRefs) { - const proto = getPrototypeOfExpression(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod); - return callExpression(this.file.addHelper("get"), [thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto, this.prop(superMember), thisRefs.this]); - }, - - _getThisRefs() { - if (!this.isDerivedConstructor) { - return { - this: thisExpression() - }; - } - - const thisRef = this.scope.generateDeclaredUidIdentifier("thisSuper"); - return { - memo: assignmentExpression("=", thisRef, thisExpression()), - this: cloneNode(thisRef) - }; - }, - - set(superMember, value) { - const thisRefs = this._getThisRefs(); - - const proto = getPrototypeOfExpression(this.getObjectRef(), this.isStatic, this.file, this.isPrivateMethod); - return callExpression(this.file.addHelper("set"), [thisRefs.memo ? sequenceExpression([thisRefs.memo, proto]) : proto, this.prop(superMember), value, thisRefs.this, booleanLiteral(superMember.isInStrictMode())]); - }, - - destructureSet(superMember) { - throw superMember.buildCodeFrameError(`Destructuring to a super field is not supported yet.`); - }, - - call(superMember, args) { - const thisRefs = this._getThisRefs(); - - return (0, _helperOptimiseCallExpression.default)(this._get(superMember, thisRefs), cloneNode(thisRefs.this), args, false); - }, - - optionalCall(superMember, args) { - const thisRefs = this._getThisRefs(); - - return (0, _helperOptimiseCallExpression.default)(this._get(superMember, thisRefs), cloneNode(thisRefs.this), args, true); - } - -}; -const looseHandlers = Object.assign({}, specHandlers, { - prop(superMember) { - const { - property - } = superMember.node; - - if (this.memoiser.has(property)) { - return cloneNode(this.memoiser.get(property)); - } - - return cloneNode(property); - }, - - get(superMember) { - const { - isStatic, - getSuperRef - } = this; - const { - computed - } = superMember.node; - const prop = this.prop(superMember); - let object; - - if (isStatic) { - var _getSuperRef; - - object = (_getSuperRef = getSuperRef()) != null ? _getSuperRef : memberExpression(identifier("Function"), identifier("prototype")); - } else { - var _getSuperRef2; - - object = memberExpression((_getSuperRef2 = getSuperRef()) != null ? _getSuperRef2 : identifier("Object"), identifier("prototype")); - } - - return memberExpression(object, prop, computed); - }, - - set(superMember, value) { - const { - computed - } = superMember.node; - const prop = this.prop(superMember); - return assignmentExpression("=", memberExpression(thisExpression(), prop, computed), value); - }, - - destructureSet(superMember) { - const { - computed - } = superMember.node; - const prop = this.prop(superMember); - return memberExpression(thisExpression(), prop, computed); - }, - - call(superMember, args) { - return (0, _helperOptimiseCallExpression.default)(this.get(superMember), thisExpression(), args, false); - }, - - optionalCall(superMember, args) { - return (0, _helperOptimiseCallExpression.default)(this.get(superMember), thisExpression(), args, true); - } - -}); - -class ReplaceSupers { - constructor(opts) { - var _opts$constantSuper; - - const path = opts.methodPath; - this.methodPath = path; - this.isDerivedConstructor = path.isClassMethod({ - kind: "constructor" - }) && !!opts.superRef; - this.isStatic = path.isObjectMethod() || path.node.static || (path.isStaticBlock == null ? void 0 : path.isStaticBlock()); - this.isPrivateMethod = path.isPrivate() && path.isMethod(); - this.file = opts.file; - this.constantSuper = (_opts$constantSuper = opts.constantSuper) != null ? _opts$constantSuper : opts.isLoose; - this.opts = opts; - } - - getObjectRef() { - return cloneNode(this.opts.objectRef || this.opts.getObjectRef()); - } - - getSuperRef() { - if (this.opts.superRef) return cloneNode(this.opts.superRef); - if (this.opts.getSuperRef) return cloneNode(this.opts.getSuperRef()); - } - - replace() { - if (this.opts.refToPreserve) { - this.methodPath.traverse(unshadowSuperBindingVisitor, { - refName: this.opts.refToPreserve.name - }); - } - - const handler = this.constantSuper ? looseHandlers : specHandlers; - (0, _helperMemberExpressionToFunctions.default)(this.methodPath, visitor, Object.assign({ - file: this.file, - scope: this.methodPath.scope, - isDerivedConstructor: this.isDerivedConstructor, - isStatic: this.isStatic, - isPrivateMethod: this.isPrivateMethod, - getObjectRef: this.getObjectRef.bind(this), - getSuperRef: this.getSuperRef.bind(this), - boundGet: handler.get - }, handler)); - } - -} - -exports.default = ReplaceSupers; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json deleted file mode 100644 index 22c1238bcead70..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-replace-supers/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@babel/helper-replace-supers", - "version": "7.15.4", - "description": "Helper function to replace supers", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-replace-supers" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-replace-supers", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.15.4", - "@babel/helper-optimise-call-expression": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/README.md deleted file mode 100644 index 1e15dfa24d7c72..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-simple-access - -> Babel helper for ensuring that access to a given value is performed through simple accesses - -See our website [@babel/helper-simple-access](https://babeljs.io/docs/en/babel-helper-simple-access) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-simple-access -``` - -or using yarn: - -```sh -yarn add @babel/helper-simple-access --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json deleted file mode 100644 index 63cbfbc97abbd5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-simple-access/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@babel/helper-simple-access", - "version": "7.15.4", - "description": "Babel helper for ensuring that access to a given value is performed through simple accesses", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-helper-simple-access", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-simple-access" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "devDependencies": { - "@babel/traverse": "7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/README.md deleted file mode 100644 index a6f54046044463..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-split-export-declaration - -> - -See our website [@babel/helper-split-export-declaration](https://babeljs.io/docs/en/babel-helper-split-export-declaration) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-split-export-declaration -``` - -or using yarn: - -```sh -yarn add @babel/helper-split-export-declaration --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/package.json deleted file mode 100644 index 8c32ea4fff259e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-split-export-declaration/package.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "name": "@babel/helper-split-export-declaration", - "version": "7.15.4", - "description": "", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-split-export-declaration" - }, - "homepage": "https://babel.dev/docs/en/next/babel-helper-split-export-declaration", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/README.md deleted file mode 100644 index 6733576a8ce76b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-validator-identifier - -> Validate identifier/keywords name - -See our website [@babel/helper-validator-identifier](https://babeljs.io/docs/en/babel-helper-validator-identifier) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-validator-identifier -``` - -or using yarn: - -```sh -yarn add @babel/helper-validator-identifier --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/lib/index.js deleted file mode 100644 index 7b623c90a6e164..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/lib/index.js +++ /dev/null @@ -1,57 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "isIdentifierName", { - enumerable: true, - get: function () { - return _identifier.isIdentifierName; - } -}); -Object.defineProperty(exports, "isIdentifierChar", { - enumerable: true, - get: function () { - return _identifier.isIdentifierChar; - } -}); -Object.defineProperty(exports, "isIdentifierStart", { - enumerable: true, - get: function () { - return _identifier.isIdentifierStart; - } -}); -Object.defineProperty(exports, "isReservedWord", { - enumerable: true, - get: function () { - return _keyword.isReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindOnlyReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindOnlyReservedWord; - } -}); -Object.defineProperty(exports, "isStrictBindReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictBindReservedWord; - } -}); -Object.defineProperty(exports, "isStrictReservedWord", { - enumerable: true, - get: function () { - return _keyword.isStrictReservedWord; - } -}); -Object.defineProperty(exports, "isKeyword", { - enumerable: true, - get: function () { - return _keyword.isKeyword; - } -}); - -var _identifier = require("./identifier"); - -var _keyword = require("./keyword"); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json deleted file mode 100644 index 0efb119c4b5165..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-identifier/package.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "name": "@babel/helper-validator-identifier", - "version": "7.15.7", - "description": "Validate identifier/keywords name", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-identifier" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "exports": "./lib/index.js", - "devDependencies": { - "@unicode/unicode-14.0.0": "^1.2.1", - "charcodes": "^0.2.0" - }, - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/README.md deleted file mode 100644 index b8b9e854b38839..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helper-validator-option - -> Validate plugin/preset options - -See our website [@babel/helper-validator-option](https://babeljs.io/docs/en/babel-helper-validator-option) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helper-validator-option -``` - -or using yarn: - -```sh -yarn add @babel/helper-validator-option --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/package.json deleted file mode 100644 index 077bbfb688b691..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helper-validator-option/package.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "name": "@babel/helper-validator-option", - "version": "7.14.5", - "description": "Validate plugin/preset options", - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helper-validator-option" - }, - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "main": "./lib/index.js", - "exports": "./lib/index.js", - "engines": { - "node": ">=6.9.0" - }, - "author": "The Babel Team (https://babel.dev/team)" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/README.md b/tools/node_modules/@babel/core/node_modules/@babel/helpers/README.md deleted file mode 100644 index 3b79dbf5509cf2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/helpers - -> Collection of helper functions used by Babel transforms. - -See our website [@babel/helpers](https://babeljs.io/docs/en/babel-helpers) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/helpers -``` - -or using yarn: - -```sh -yarn add @babel/helpers --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers-generated.js b/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers-generated.js deleted file mode 100644 index 8d3ba5413e89bf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/helpers-generated.js +++ /dev/null @@ -1,29 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.wrapRegExp = exports.typeof = exports.objectSpread2 = exports.jsx = void 0; - -var _template = require("@babel/template"); - -const jsx = { - minVersion: "7.0.0-beta.0", - ast: () => _template.default.program.ast('\nvar REACT_ELEMENT_TYPE;\nexport default function _createRawReactElement(type, props, key, children) {\n if (!REACT_ELEMENT_TYPE) {\n REACT_ELEMENT_TYPE =\n (typeof Symbol === "function" &&\n \n Symbol["for"] &&\n Symbol["for"]("react.element")) ||\n 0xeac7;\n }\n var defaultProps = type && type.defaultProps;\n var childrenLength = arguments.length - 3;\n if (!props && childrenLength !== 0) {\n \n \n props = { children: void 0 };\n }\n if (childrenLength === 1) {\n props.children = children;\n } else if (childrenLength > 1) {\n var childArray = new Array(childrenLength);\n for (var i = 0; i < childrenLength; i++) {\n childArray[i] = arguments[i + 3];\n }\n props.children = childArray;\n }\n if (props && defaultProps) {\n for (var propName in defaultProps) {\n if (props[propName] === void 0) {\n props[propName] = defaultProps[propName];\n }\n }\n } else if (!props) {\n props = defaultProps || {};\n }\n return {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key === undefined ? null : "" + key,\n ref: null,\n props: props,\n _owner: null,\n };\n}\n') -}; -exports.jsx = jsx; -const objectSpread2 = { - minVersion: "7.5.0", - ast: () => _template.default.program.ast('\nimport defineProperty from "defineProperty";\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) {\n symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n }\n keys.push.apply(keys, symbols);\n }\n return keys;\n}\nexport default function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(\n target,\n key,\n Object.getOwnPropertyDescriptor(source, key)\n );\n });\n }\n }\n return target;\n}\n') -}; -exports.objectSpread2 = objectSpread2; -const _typeof = { - minVersion: "7.0.0-beta.0", - ast: () => _template.default.program.ast('\nexport default function _typeof(obj) {\n "@babel/helpers - typeof";\n if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj &&\n typeof Symbol === "function" &&\n obj.constructor === Symbol &&\n obj !== Symbol.prototype\n ? "symbol"\n : typeof obj;\n };\n }\n return _typeof(obj);\n}\n') -}; -exports.typeof = _typeof; -const wrapRegExp = { - minVersion: "7.2.6", - ast: () => _template.default.program.ast('\nimport setPrototypeOf from "setPrototypeOf";\nimport inherits from "inherits";\nexport default function _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, undefined, groups);\n };\n var _super = RegExp.prototype;\n var _groups = new WeakMap();\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n \n _groups.set(_this, groups || _groups.get(re));\n return setPrototypeOf(_this, BabelRegExp.prototype);\n }\n inherits(BabelRegExp, RegExp);\n BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n if (result) result.groups = buildGroups(result, this);\n return result;\n };\n BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (typeof substitution === "string") {\n var groups = _groups.get(this);\n return _super[Symbol.replace].call(\n this,\n str,\n substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return "$" + groups[name];\n })\n );\n } else if (typeof substitution === "function") {\n var _this = this;\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n \n if (typeof args[args.length - 1] !== "object") {\n args = [].slice.call(args);\n args.push(buildGroups(args, _this));\n }\n return substitution.apply(this, args);\n });\n } else {\n return _super[Symbol.replace].call(this, str, substitution);\n }\n };\n function buildGroups(result, re) {\n \n \n var g = _groups.get(re);\n return Object.keys(g).reduce(function (groups, name) {\n groups[name] = result[g[name]];\n return groups;\n }, Object.create(null));\n }\n return _wrapRegExp.apply(this, arguments);\n}\n') -}; -exports.wrapRegExp = wrapRegExp; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/index.js deleted file mode 100644 index d80cbd8cbad35f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/lib/index.js +++ /dev/null @@ -1,299 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.get = get; -exports.minVersion = minVersion; -exports.getDependencies = getDependencies; -exports.ensure = ensure; -exports.default = exports.list = void 0; - -var _traverse = require("@babel/traverse"); - -var _t = require("@babel/types"); - -var _helpers = require("./helpers"); - -const { - assignmentExpression, - cloneNode, - expressionStatement, - file: t_file, - identifier, - variableDeclaration, - variableDeclarator -} = _t; - -function makePath(path) { - const parts = []; - - for (; path.parentPath; path = path.parentPath) { - parts.push(path.key); - if (path.inList) parts.push(path.listKey); - } - - return parts.reverse().join("."); -} - -let fileClass = undefined; - -function getHelperMetadata(file) { - const globals = new Set(); - const localBindingNames = new Set(); - const dependencies = new Map(); - let exportName; - let exportPath; - const exportBindingAssignments = []; - const importPaths = []; - const importBindingsReferences = []; - const dependencyVisitor = { - ImportDeclaration(child) { - const name = child.node.source.value; - - if (!_helpers.default[name]) { - throw child.buildCodeFrameError(`Unknown helper ${name}`); - } - - if (child.get("specifiers").length !== 1 || !child.get("specifiers.0").isImportDefaultSpecifier()) { - throw child.buildCodeFrameError("Helpers can only import a default value"); - } - - const bindingIdentifier = child.node.specifiers[0].local; - dependencies.set(bindingIdentifier, name); - importPaths.push(makePath(child)); - }, - - ExportDefaultDeclaration(child) { - const decl = child.get("declaration"); - - if (decl.isFunctionDeclaration()) { - if (!decl.node.id) { - throw decl.buildCodeFrameError("Helpers should give names to their exported func declaration"); - } - - exportName = decl.node.id.name; - } - - exportPath = makePath(child); - }, - - ExportAllDeclaration(child) { - throw child.buildCodeFrameError("Helpers can only export default"); - }, - - ExportNamedDeclaration(child) { - throw child.buildCodeFrameError("Helpers can only export default"); - }, - - Statement(child) { - if (child.isModuleDeclaration()) return; - child.skip(); - } - - }; - const referenceVisitor = { - Program(path) { - const bindings = path.scope.getAllBindings(); - Object.keys(bindings).forEach(name => { - if (name === exportName) return; - if (dependencies.has(bindings[name].identifier)) return; - localBindingNames.add(name); - }); - }, - - ReferencedIdentifier(child) { - const name = child.node.name; - const binding = child.scope.getBinding(name); - - if (!binding) { - globals.add(name); - } else if (dependencies.has(binding.identifier)) { - importBindingsReferences.push(makePath(child)); - } - }, - - AssignmentExpression(child) { - const left = child.get("left"); - if (!(exportName in left.getBindingIdentifiers())) return; - - if (!left.isIdentifier()) { - throw left.buildCodeFrameError("Only simple assignments to exports are allowed in helpers"); - } - - const binding = child.scope.getBinding(exportName); - - if (binding != null && binding.scope.path.isProgram()) { - exportBindingAssignments.push(makePath(child)); - } - } - - }; - (0, _traverse.default)(file.ast, dependencyVisitor, file.scope); - (0, _traverse.default)(file.ast, referenceVisitor, file.scope); - if (!exportPath) throw new Error("Helpers must default-export something."); - exportBindingAssignments.reverse(); - return { - globals: Array.from(globals), - localBindingNames: Array.from(localBindingNames), - dependencies, - exportBindingAssignments, - exportPath, - exportName, - importBindingsReferences, - importPaths - }; -} - -function permuteHelperAST(file, metadata, id, localBindings, getDependency) { - if (localBindings && !id) { - throw new Error("Unexpected local bindings for module-based helpers."); - } - - if (!id) return; - const { - localBindingNames, - dependencies, - exportBindingAssignments, - exportPath, - exportName, - importBindingsReferences, - importPaths - } = metadata; - const dependenciesRefs = {}; - dependencies.forEach((name, id) => { - dependenciesRefs[id.name] = typeof getDependency === "function" && getDependency(name) || id; - }); - const toRename = {}; - const bindings = new Set(localBindings || []); - localBindingNames.forEach(name => { - let newName = name; - - while (bindings.has(newName)) newName = "_" + newName; - - if (newName !== name) toRename[name] = newName; - }); - - if (id.type === "Identifier" && exportName !== id.name) { - toRename[exportName] = id.name; - } - - const visitor = { - Program(path) { - const exp = path.get(exportPath); - const imps = importPaths.map(p => path.get(p)); - const impsBindingRefs = importBindingsReferences.map(p => path.get(p)); - const decl = exp.get("declaration"); - - if (id.type === "Identifier") { - if (decl.isFunctionDeclaration()) { - exp.replaceWith(decl); - } else { - exp.replaceWith(variableDeclaration("var", [variableDeclarator(id, decl.node)])); - } - } else if (id.type === "MemberExpression") { - if (decl.isFunctionDeclaration()) { - exportBindingAssignments.forEach(assignPath => { - const assign = path.get(assignPath); - assign.replaceWith(assignmentExpression("=", id, assign.node)); - }); - exp.replaceWith(decl); - path.pushContainer("body", expressionStatement(assignmentExpression("=", id, identifier(exportName)))); - } else { - exp.replaceWith(expressionStatement(assignmentExpression("=", id, decl.node))); - } - } else { - throw new Error("Unexpected helper format."); - } - - Object.keys(toRename).forEach(name => { - path.scope.rename(name, toRename[name]); - }); - - for (const path of imps) path.remove(); - - for (const path of impsBindingRefs) { - const node = cloneNode(dependenciesRefs[path.node.name]); - path.replaceWith(node); - } - - path.stop(); - } - - }; - (0, _traverse.default)(file.ast, visitor, file.scope); -} - -const helperData = Object.create(null); - -function loadHelper(name) { - if (!helperData[name]) { - const helper = _helpers.default[name]; - - if (!helper) { - throw Object.assign(new ReferenceError(`Unknown helper ${name}`), { - code: "BABEL_HELPER_UNKNOWN", - helper: name - }); - } - - const fn = () => { - const file = { - ast: t_file(helper.ast()) - }; - - if (fileClass) { - return new fileClass({ - filename: `babel-helper://${name}` - }, file); - } - - return file; - }; - - const metadata = getHelperMetadata(fn()); - helperData[name] = { - build(getDependency, id, localBindings) { - const file = fn(); - permuteHelperAST(file, metadata, id, localBindings, getDependency); - return { - nodes: file.ast.program.body, - globals: metadata.globals - }; - }, - - minVersion() { - return helper.minVersion; - }, - - dependencies: metadata.dependencies - }; - } - - return helperData[name]; -} - -function get(name, getDependency, id, localBindings) { - return loadHelper(name).build(getDependency, id, localBindings); -} - -function minVersion(name) { - return loadHelper(name).minVersion(); -} - -function getDependencies(name) { - return Array.from(loadHelper(name).dependencies.values()); -} - -function ensure(name, newFileClass) { - if (!fileClass) { - fileClass = newFileClass; - } - - loadHelper(name); -} - -const list = Object.keys(_helpers.default).map(name => name.replace(/^_/, "")).filter(name => name !== "__esModule"); -exports.list = list; -var _default = get; -exports.default = _default; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json b/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json deleted file mode 100644 index bfe1d521f227aa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "@babel/helpers", - "version": "7.15.4", - "description": "Collection of helper functions used by Babel transforms.", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-helpers", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-helpers" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/template": "^7.15.4", - "@babel/traverse": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "devDependencies": { - "@babel/helper-plugin-test-runner": "7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js b/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js deleted file mode 100644 index cdc02f20641112..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/helpers/scripts/generate-helpers.js +++ /dev/null @@ -1,63 +0,0 @@ -import fs from "fs"; -import { join } from "path"; -import { URL, fileURLToPath } from "url"; - -const HELPERS_FOLDER = new URL("../src/helpers", import.meta.url); -const IGNORED_FILES = new Set(["package.json"]); - -export default async function generateAsserts() { - let output = `/* - * This file is auto-generated! Do not modify it directly. - * To re-generate run 'make build' - */ - -import template from "@babel/template"; - -`; - - for (const file of (await fs.promises.readdir(HELPERS_FOLDER)).sort()) { - if (IGNORED_FILES.has(file)) continue; - if (file.startsWith(".")) continue; // ignore e.g. vim swap files - - const [helperName] = file.split("."); - const isValidId = isValidBindingIdentifier(helperName); - const varName = isValidId ? helperName : `_${helperName}`; - - const filePath = join(fileURLToPath(HELPERS_FOLDER), file); - const fileContents = await fs.promises.readFile(filePath, "utf8"); - const minVersionMatch = fileContents.match( - /^\s*\/\*\s*@minVersion\s+(?\S+)\s*\*\/\s*$/m - ); - if (!minVersionMatch) { - throw new Error(`@minVersion number missing in ${filePath}`); - } - const { minVersion } = minVersionMatch.groups; - - // TODO: We can minify the helpers in production - const source = fileContents - // Remove comments - .replace(/\/\*[^]*?\*\/|\/\/.*/g, "") - // Remove multiple newlines - .replace(/\n{2,}/g, "\n"); - - const intro = isValidId - ? "export " - : `export { ${varName} as ${helperName} }\n`; - - output += `\n${intro}const ${varName} = { - minVersion: ${JSON.stringify(minVersion)}, - ast: () => template.program.ast(${JSON.stringify(source)}) -};\n`; - } - - return output; -} - -function isValidBindingIdentifier(name) { - try { - Function(`var ${name}`); - return true; - } catch { - return false; - } -} diff --git a/tools/node_modules/@babel/core/node_modules/@babel/highlight/README.md b/tools/node_modules/@babel/core/node_modules/@babel/highlight/README.md deleted file mode 100644 index f8887ad2ca470c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/highlight/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/highlight - -> Syntax highlight JavaScript strings for output in terminals. - -See our website [@babel/highlight](https://babeljs.io/docs/en/babel-highlight) for more information. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/highlight -``` - -or using yarn: - -```sh -yarn add @babel/highlight --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/highlight/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/highlight/lib/index.js deleted file mode 100644 index 34e308f4ef9290..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/highlight/lib/index.js +++ /dev/null @@ -1,116 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.shouldHighlight = shouldHighlight; -exports.getChalk = getChalk; -exports.default = highlight; - -var _jsTokens = require("js-tokens"); - -var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); - -var _chalk = require("chalk"); - -const sometimesKeywords = new Set(["as", "async", "from", "get", "of", "set"]); - -function getDefs(chalk) { - return { - keyword: chalk.cyan, - capitalized: chalk.yellow, - jsxIdentifier: chalk.yellow, - punctuator: chalk.yellow, - number: chalk.magenta, - string: chalk.green, - regex: chalk.magenta, - comment: chalk.grey, - invalid: chalk.white.bgRed.bold - }; -} - -const NEWLINE = /\r\n|[\n\r\u2028\u2029]/; -const BRACKET = /^[()[\]{}]$/; -let tokenize; -{ - const JSX_TAG = /^[a-z][\w-]*$/i; - - const getTokenType = function (token, offset, text) { - if (token.type === "name") { - if ((0, _helperValidatorIdentifier.isKeyword)(token.value) || (0, _helperValidatorIdentifier.isStrictReservedWord)(token.value, true) || sometimesKeywords.has(token.value)) { - return "keyword"; - } - - if (JSX_TAG.test(token.value) && (text[offset - 1] === "<" || text.substr(offset - 2, 2) == " colorize(str)).join("\n"); - } else { - highlighted += value; - } - } - - return highlighted; -} - -function shouldHighlight(options) { - return !!_chalk.supportsColor || options.forceColor; -} - -function getChalk(options) { - return options.forceColor ? new _chalk.constructor({ - enabled: true, - level: 1 - }) : _chalk; -} - -function highlight(code, options = {}) { - if (shouldHighlight(options)) { - const chalk = getChalk(options); - const defs = getDefs(chalk); - return highlightTokens(defs, code); - } else { - return code; - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/highlight/package.json b/tools/node_modules/@babel/core/node_modules/@babel/highlight/package.json deleted file mode 100644 index 210c22c5110bee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/highlight/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "@babel/highlight", - "version": "7.14.5", - "description": "Syntax highlight JavaScript strings for output in terminals.", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-highlight", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-highlight" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.5", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - }, - "devDependencies": { - "@types/chalk": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/parser/README.md b/tools/node_modules/@babel/core/node_modules/@babel/parser/README.md deleted file mode 100644 index 513748c3706dee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/parser/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/parser - -> A JavaScript parser - -See our website [@babel/parser](https://babeljs.io/docs/en/babel-parser) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20parser%20(babylon)%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/parser -``` - -or using yarn: - -```sh -yarn add @babel/parser --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js deleted file mode 100644 index da6fe1f0ce448e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/parser/lib/index.js +++ /dev/null @@ -1,14911 +0,0 @@ -'use strict'; - -Object.defineProperty(exports, '__esModule', { value: true }); - -const lineBreak = /\r\n?|[\n\u2028\u2029]/; -const lineBreakG = new RegExp(lineBreak.source, "g"); -function isNewLine(code) { - switch (code) { - case 10: - case 13: - case 8232: - case 8233: - return true; - - default: - return false; - } -} -const skipWhiteSpace = /(?:\s|\/\/.*|\/\*[^]*?\*\/)*/g; -const skipWhiteSpaceInLine = /(?:[^\S\n\r\u2028\u2029]|\/\/.*|\/\*.*?\*\/)*/y; -const skipWhiteSpaceToLineBreak = new RegExp("(?=(" + skipWhiteSpaceInLine.source + "))\\1" + /(?=[\n\r\u2028\u2029]|\/\*(?!.*?\*\/)|$)/.source, "y"); -function isWhitespace(code) { - switch (code) { - case 0x0009: - case 0x000b: - case 0x000c: - case 32: - case 160: - case 5760: - case 0x2000: - case 0x2001: - case 0x2002: - case 0x2003: - case 0x2004: - case 0x2005: - case 0x2006: - case 0x2007: - case 0x2008: - case 0x2009: - case 0x200a: - case 0x202f: - case 0x205f: - case 0x3000: - case 0xfeff: - return true; - - default: - return false; - } -} - -class Position { - constructor(line, col) { - this.line = void 0; - this.column = void 0; - this.line = line; - this.column = col; - } - -} -class SourceLocation { - constructor(start, end) { - this.start = void 0; - this.end = void 0; - this.filename = void 0; - this.identifierName = void 0; - this.start = start; - this.end = end; - } - -} -function getLineInfo(input, offset) { - let line = 1; - let lineStart = 0; - let match; - lineBreakG.lastIndex = 0; - - while ((match = lineBreakG.exec(input)) && match.index < offset) { - line++; - lineStart = lineBreakG.lastIndex; - } - - return new Position(line, offset - lineStart); -} - -class BaseParser { - constructor() { - this.sawUnambiguousESM = false; - this.ambiguousScriptDifferentAst = false; - } - - hasPlugin(name) { - return this.plugins.has(name); - } - - getPluginOption(plugin, name) { - if (this.hasPlugin(plugin)) return this.plugins.get(plugin)[name]; - } - -} - -function setTrailingComments(node, comments) { - if (node.trailingComments === undefined) { - node.trailingComments = comments; - } else { - node.trailingComments.unshift(...comments); - } -} - -function setLeadingComments(node, comments) { - if (node.leadingComments === undefined) { - node.leadingComments = comments; - } else { - node.leadingComments.unshift(...comments); - } -} - -function setInnerComments(node, comments) { - if (node.innerComments === undefined) { - node.innerComments = comments; - } else { - node.innerComments.unshift(...comments); - } -} - -function adjustInnerComments(node, elements, commentWS) { - let lastElement = null; - let i = elements.length; - - while (lastElement === null && i > 0) { - lastElement = elements[--i]; - } - - if (lastElement === null || lastElement.start > commentWS.start) { - setInnerComments(node, commentWS.comments); - } else { - setTrailingComments(lastElement, commentWS.comments); - } -} - -class CommentsParser extends BaseParser { - addComment(comment) { - if (this.filename) comment.loc.filename = this.filename; - this.state.comments.push(comment); - } - - processComment(node) { - const { - commentStack - } = this.state; - const commentStackLength = commentStack.length; - if (commentStackLength === 0) return; - let i = commentStackLength - 1; - const lastCommentWS = commentStack[i]; - - if (lastCommentWS.start === node.end) { - lastCommentWS.leadingNode = node; - i--; - } - - const { - start: nodeStart - } = node; - - for (; i >= 0; i--) { - const commentWS = commentStack[i]; - const commentEnd = commentWS.end; - - if (commentEnd > nodeStart) { - commentWS.containingNode = node; - this.finalizeComment(commentWS); - commentStack.splice(i, 1); - } else { - if (commentEnd === nodeStart) { - commentWS.trailingNode = node; - } - - break; - } - } - } - - finalizeComment(commentWS) { - const { - comments - } = commentWS; - - if (commentWS.leadingNode !== null || commentWS.trailingNode !== null) { - if (commentWS.leadingNode !== null) { - setTrailingComments(commentWS.leadingNode, comments); - } - - if (commentWS.trailingNode !== null) { - setLeadingComments(commentWS.trailingNode, comments); - } - } else { - const { - containingNode: node, - start: commentStart - } = commentWS; - - if (this.input.charCodeAt(commentStart - 1) === 44) { - switch (node.type) { - case "ObjectExpression": - case "ObjectPattern": - case "RecordExpression": - adjustInnerComments(node, node.properties, commentWS); - break; - - case "CallExpression": - case "OptionalCallExpression": - adjustInnerComments(node, node.arguments, commentWS); - break; - - case "FunctionDeclaration": - case "FunctionExpression": - case "ArrowFunctionExpression": - case "ObjectMethod": - case "ClassMethod": - case "ClassPrivateMethod": - adjustInnerComments(node, node.params, commentWS); - break; - - case "ArrayExpression": - case "ArrayPattern": - case "TupleExpression": - adjustInnerComments(node, node.elements, commentWS); - break; - - case "ExportNamedDeclaration": - case "ImportDeclaration": - adjustInnerComments(node, node.specifiers, commentWS); - break; - - default: - { - setInnerComments(node, comments); - } - } - } else { - setInnerComments(node, comments); - } - } - } - - finalizeRemainingComments() { - const { - commentStack - } = this.state; - - for (let i = commentStack.length - 1; i >= 0; i--) { - this.finalizeComment(commentStack[i]); - } - - this.state.commentStack = []; - } - - resetPreviousNodeTrailingComments(node) { - const { - commentStack - } = this.state; - const { - length - } = commentStack; - if (length === 0) return; - const commentWS = commentStack[length - 1]; - - if (commentWS.leadingNode === node) { - commentWS.leadingNode = null; - } - } - - takeSurroundingComments(node, start, end) { - const { - commentStack - } = this.state; - const commentStackLength = commentStack.length; - if (commentStackLength === 0) return; - let i = commentStackLength - 1; - - for (; i >= 0; i--) { - const commentWS = commentStack[i]; - const commentEnd = commentWS.end; - const commentStart = commentWS.start; - - if (commentStart === end) { - commentWS.leadingNode = node; - } else if (commentEnd === start) { - commentWS.trailingNode = node; - } else if (commentEnd < start) { - break; - } - } - } - -} - -const ErrorCodes = Object.freeze({ - SyntaxError: "BABEL_PARSER_SYNTAX_ERROR", - SourceTypeModuleError: "BABEL_PARSER_SOURCETYPE_MODULE_REQUIRED" -}); - -const ErrorMessages = makeErrorTemplates({ - AccessorIsGenerator: "A %0ter cannot be a generator.", - ArgumentsInClass: "'arguments' is only allowed in functions and class methods.", - AsyncFunctionInSingleStatementContext: "Async functions can only be declared at the top level or inside a block.", - AwaitBindingIdentifier: "Can not use 'await' as identifier inside an async function.", - AwaitBindingIdentifierInStaticBlock: "Can not use 'await' as identifier inside a static block.", - AwaitExpressionFormalParameter: "'await' is not allowed in async function parameters.", - AwaitNotInAsyncContext: "'await' is only allowed within async functions and at the top levels of modules.", - AwaitNotInAsyncFunction: "'await' is only allowed within async functions.", - BadGetterArity: "A 'get' accesor must not have any formal parameters.", - BadSetterArity: "A 'set' accesor must have exactly one formal parameter.", - BadSetterRestParameter: "A 'set' accesor function argument must not be a rest parameter.", - ConstructorClassField: "Classes may not have a field named 'constructor'.", - ConstructorClassPrivateField: "Classes may not have a private field named '#constructor'.", - ConstructorIsAccessor: "Class constructor may not be an accessor.", - ConstructorIsAsync: "Constructor can't be an async function.", - ConstructorIsGenerator: "Constructor can't be a generator.", - DeclarationMissingInitializer: "'%0' require an initialization value.", - DecoratorBeforeExport: "Decorators must be placed *before* the 'export' keyword. You can set the 'decoratorsBeforeExport' option to false to use the 'export @decorator class {}' syntax.", - DecoratorConstructor: "Decorators can't be used with a constructor. Did you mean '@dec class { ... }'?", - DecoratorExportClass: "Using the export keyword between a decorator and a class is not allowed. Please use `export @dec class` instead.", - DecoratorSemicolon: "Decorators must not be followed by a semicolon.", - DecoratorStaticBlock: "Decorators can't be used with a static block.", - DeletePrivateField: "Deleting a private field is not allowed.", - DestructureNamedImport: "ES2015 named imports do not destructure. Use another statement for destructuring after the import.", - DuplicateConstructor: "Duplicate constructor in the same class.", - DuplicateDefaultExport: "Only one default export allowed per module.", - DuplicateExport: "`%0` has already been exported. Exported identifiers must be unique.", - DuplicateProto: "Redefinition of __proto__ property.", - DuplicateRegExpFlags: "Duplicate regular expression flag.", - ElementAfterRest: "Rest element must be last element.", - EscapedCharNotAnIdentifier: "Invalid Unicode escape.", - ExportBindingIsString: "A string literal cannot be used as an exported binding without `from`.\n- Did you mean `export { '%0' as '%1' } from 'some-module'`?", - ExportDefaultFromAsIdentifier: "'from' is not allowed as an identifier after 'export default'.", - ForInOfLoopInitializer: "'%0' loop variable declaration may not have an initializer.", - ForOfAsync: "The left-hand side of a for-of loop may not be 'async'.", - ForOfLet: "The left-hand side of a for-of loop may not start with 'let'.", - GeneratorInSingleStatementContext: "Generators can only be declared at the top level or inside a block.", - IllegalBreakContinue: "Unsyntactic %0.", - IllegalLanguageModeDirective: "Illegal 'use strict' directive in function with non-simple parameter list.", - IllegalReturn: "'return' outside of function.", - ImportBindingIsString: 'A string literal cannot be used as an imported binding.\n- Did you mean `import { "%0" as foo }`?', - ImportCallArgumentTrailingComma: "Trailing comma is disallowed inside import(...) arguments.", - ImportCallArity: "`import()` requires exactly %0.", - ImportCallNotNewExpression: "Cannot use new with import(...).", - ImportCallSpreadArgument: "`...` is not allowed in `import()`.", - InvalidBigIntLiteral: "Invalid BigIntLiteral.", - InvalidCodePoint: "Code point out of bounds.", - InvalidDecimal: "Invalid decimal.", - InvalidDigit: "Expected number in radix %0.", - InvalidEscapeSequence: "Bad character escape sequence.", - InvalidEscapeSequenceTemplate: "Invalid escape sequence in template.", - InvalidEscapedReservedWord: "Escape sequence in keyword %0.", - InvalidIdentifier: "Invalid identifier %0.", - InvalidLhs: "Invalid left-hand side in %0.", - InvalidLhsBinding: "Binding invalid left-hand side in %0.", - InvalidNumber: "Invalid number.", - InvalidOrMissingExponent: "Floating-point numbers require a valid exponent after the 'e'.", - InvalidOrUnexpectedToken: "Unexpected character '%0'.", - InvalidParenthesizedAssignment: "Invalid parenthesized assignment pattern.", - InvalidPrivateFieldResolution: "Private name #%0 is not defined.", - InvalidPropertyBindingPattern: "Binding member expression.", - InvalidRecordProperty: "Only properties and spread elements are allowed in record definitions.", - InvalidRestAssignmentPattern: "Invalid rest operator's argument.", - LabelRedeclaration: "Label '%0' is already declared.", - LetInLexicalBinding: "'let' is not allowed to be used as a name in 'let' or 'const' declarations.", - LineTerminatorBeforeArrow: "No line break is allowed before '=>'.", - MalformedRegExpFlags: "Invalid regular expression flag.", - MissingClassName: "A class name is required.", - MissingEqInAssignment: "Only '=' operator can be used for specifying default value.", - MissingSemicolon: "Missing semicolon.", - MissingUnicodeEscape: "Expecting Unicode escape sequence \\uXXXX.", - MixingCoalesceWithLogical: "Nullish coalescing operator(??) requires parens when mixing with logical operators.", - ModuleAttributeDifferentFromType: "The only accepted module attribute is `type`.", - ModuleAttributeInvalidValue: "Only string literals are allowed as module attribute values.", - ModuleAttributesWithDuplicateKeys: 'Duplicate key "%0" is not allowed in module attributes.', - ModuleExportNameHasLoneSurrogate: "An export name cannot include a lone surrogate, found '\\u%0'.", - ModuleExportUndefined: "Export '%0' is not defined.", - MultipleDefaultsInSwitch: "Multiple default clauses.", - NewlineAfterThrow: "Illegal newline after throw.", - NoCatchOrFinally: "Missing catch or finally clause.", - NumberIdentifier: "Identifier directly after number.", - NumericSeparatorInEscapeSequence: "Numeric separators are not allowed inside unicode escape sequences or hex escape sequences.", - ObsoleteAwaitStar: "'await*' has been removed from the async functions proposal. Use Promise.all() instead.", - OptionalChainingNoNew: "Constructors in/after an Optional Chain are not allowed.", - OptionalChainingNoTemplate: "Tagged Template Literals are not allowed in optionalChain.", - OverrideOnConstructor: "'override' modifier cannot appear on a constructor declaration.", - ParamDupe: "Argument name clash.", - PatternHasAccessor: "Object pattern can't contain getter or setter.", - PatternHasMethod: "Object pattern can't contain methods.", - PipeBodyIsTighter: "Unexpected %0 after pipeline body; any %0 expression acting as Hack-style pipe body must be parenthesized due to its loose operator precedence.", - PipeTopicRequiresHackPipes: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', - PipeTopicUnbound: "Topic reference is unbound; it must be inside a pipe body.", - PipeTopicUnconfiguredToken: 'Invalid topic token %0. In order to use %0 as a topic reference, the pipelineOperator plugin must be configured with { "proposal": "hack", "topicToken": "%0" }.', - PipeTopicUnused: "Hack-style pipe body does not contain a topic reference; Hack-style pipes must use topic at least once.", - PipeUnparenthesizedBody: "Hack-style pipe body cannot be an unparenthesized %0 expression; please wrap it in parentheses.", - PipelineBodyNoArrow: 'Unexpected arrow "=>" after pipeline body; arrow function in pipeline body must be parenthesized.', - PipelineBodySequenceExpression: "Pipeline body may not be a comma-separated sequence expression.", - PipelineHeadSequenceExpression: "Pipeline head should not be a comma-separated sequence expression.", - PipelineTopicUnused: "Pipeline is in topic style but does not use topic reference.", - PrimaryTopicNotAllowed: "Topic reference was used in a lexical context without topic binding.", - PrimaryTopicRequiresSmartPipeline: 'Topic reference is used, but the pipelineOperator plugin was not passed a "proposal": "hack" or "smart" option.', - PrivateInExpectedIn: "Private names are only allowed in property accesses (`obj.#%0`) or in `in` expressions (`#%0 in obj`).", - PrivateNameRedeclaration: "Duplicate private name #%0.", - RecordExpressionBarIncorrectEndSyntaxType: "Record expressions ending with '|}' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", - RecordExpressionBarIncorrectStartSyntaxType: "Record expressions starting with '{|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", - RecordExpressionHashIncorrectStartSyntaxType: "Record expressions starting with '#{' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", - RecordNoProto: "'__proto__' is not allowed in Record expressions.", - RestTrailingComma: "Unexpected trailing comma after rest element.", - SloppyFunction: "In non-strict mode code, functions can only be declared at top level, inside a block, or as the body of an if statement.", - StaticPrototype: "Classes may not have static property named prototype.", - StrictDelete: "Deleting local variable in strict mode.", - StrictEvalArguments: "Assigning to '%0' in strict mode.", - StrictEvalArgumentsBinding: "Binding '%0' in strict mode.", - StrictFunction: "In strict mode code, functions can only be declared at top level or inside a block.", - StrictNumericEscape: "The only valid numeric escape in strict mode is '\\0'.", - StrictOctalLiteral: "Legacy octal literals are not allowed in strict mode.", - StrictWith: "'with' in strict mode.", - SuperNotAllowed: "`super()` is only valid inside a class constructor of a subclass. Maybe a typo in the method name ('constructor') or not extending another class?", - SuperPrivateField: "Private fields can't be accessed on super.", - TrailingDecorator: "Decorators must be attached to a class element.", - TupleExpressionBarIncorrectEndSyntaxType: "Tuple expressions ending with '|]' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", - TupleExpressionBarIncorrectStartSyntaxType: "Tuple expressions starting with '[|' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'bar'.", - TupleExpressionHashIncorrectStartSyntaxType: "Tuple expressions starting with '#[' are only allowed when the 'syntaxType' option of the 'recordAndTuple' plugin is set to 'hash'.", - UnexpectedArgumentPlaceholder: "Unexpected argument placeholder.", - UnexpectedAwaitAfterPipelineBody: 'Unexpected "await" after pipeline body; await must have parentheses in minimal proposal.', - UnexpectedDigitAfterHash: "Unexpected digit after hash token.", - UnexpectedImportExport: "'import' and 'export' may only appear at the top level.", - UnexpectedKeyword: "Unexpected keyword '%0'.", - UnexpectedLeadingDecorator: "Leading decorators must be attached to a class declaration.", - UnexpectedLexicalDeclaration: "Lexical declaration cannot appear in a single-statement context.", - UnexpectedNewTarget: "`new.target` can only be used in functions or class properties.", - UnexpectedNumericSeparator: "A numeric separator is only allowed between two digits.", - UnexpectedPrivateField: "Private names can only be used as the name of a class element (i.e. class C { #p = 42; #m() {} } )\n or a property of member expression (i.e. this.#p).", - UnexpectedReservedWord: "Unexpected reserved word '%0'.", - UnexpectedSuper: "'super' is only allowed in object methods and classes.", - UnexpectedToken: "Unexpected token '%0'.", - UnexpectedTokenUnaryExponentiation: "Illegal expression. Wrap left hand side or entire exponentiation in parentheses.", - UnsupportedBind: "Binding should be performed on object property.", - UnsupportedDecoratorExport: "A decorated export must export a class declaration.", - UnsupportedDefaultExport: "Only expressions, functions or classes are allowed as the `default` export.", - UnsupportedImport: "`import` can only be used in `import()` or `import.meta`.", - UnsupportedMetaProperty: "The only valid meta property for %0 is %0.%1.", - UnsupportedParameterDecorator: "Decorators cannot be used to decorate parameters.", - UnsupportedPropertyDecorator: "Decorators cannot be used to decorate object literal properties.", - UnsupportedSuper: "'super' can only be used with function calls (i.e. super()) or in property accesses (i.e. super.prop or super[prop]).", - UnterminatedComment: "Unterminated comment.", - UnterminatedRegExp: "Unterminated regular expression.", - UnterminatedString: "Unterminated string constant.", - UnterminatedTemplate: "Unterminated template.", - VarRedeclaration: "Identifier '%0' has already been declared.", - YieldBindingIdentifier: "Can not use 'yield' as identifier inside a generator.", - YieldInParameter: "Yield expression is not allowed in formal parameters.", - ZeroDigitNumericSeparator: "Numeric separator can not be used after leading 0." -}, ErrorCodes.SyntaxError); -const SourceTypeModuleErrorMessages = makeErrorTemplates({ - ImportMetaOutsideModule: `import.meta may appear only with 'sourceType: "module"'`, - ImportOutsideModule: `'import' and 'export' may appear only with 'sourceType: "module"'` -}, ErrorCodes.SourceTypeModuleError); - -function keepReasonCodeCompat(reasonCode, syntaxPlugin) { - { - if (syntaxPlugin === "flow" && reasonCode === "PatternIsOptional") { - return "OptionalBindingPattern"; - } - } - return reasonCode; -} - -function makeErrorTemplates(messages, code, syntaxPlugin) { - const templates = {}; - Object.keys(messages).forEach(reasonCode => { - templates[reasonCode] = Object.freeze({ - code, - reasonCode: keepReasonCodeCompat(reasonCode, syntaxPlugin), - template: messages[reasonCode] - }); - }); - return Object.freeze(templates); -} -class ParserError extends CommentsParser { - getLocationForPosition(pos) { - let loc; - if (pos === this.state.start) loc = this.state.startLoc;else if (pos === this.state.lastTokStart) loc = this.state.lastTokStartLoc;else if (pos === this.state.end) loc = this.state.endLoc;else if (pos === this.state.lastTokEnd) loc = this.state.lastTokEndLoc;else loc = getLineInfo(this.input, pos); - return loc; - } - - raise(pos, { - code, - reasonCode, - template - }, ...params) { - return this.raiseWithData(pos, { - code, - reasonCode - }, template, ...params); - } - - raiseOverwrite(pos, { - code, - template - }, ...params) { - const loc = this.getLocationForPosition(pos); - const message = template.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`; - - if (this.options.errorRecovery) { - const errors = this.state.errors; - - for (let i = errors.length - 1; i >= 0; i--) { - const error = errors[i]; - - if (error.pos === pos) { - return Object.assign(error, { - message - }); - } else if (error.pos < pos) { - break; - } - } - } - - return this._raise({ - code, - loc, - pos - }, message); - } - - raiseWithData(pos, data, errorTemplate, ...params) { - const loc = this.getLocationForPosition(pos); - const message = errorTemplate.replace(/%(\d+)/g, (_, i) => params[i]) + ` (${loc.line}:${loc.column})`; - return this._raise(Object.assign({ - loc, - pos - }, data), message); - } - - _raise(errorContext, message) { - const err = new SyntaxError(message); - Object.assign(err, errorContext); - - if (this.options.errorRecovery) { - if (!this.isLookahead) this.state.errors.push(err); - return err; - } else { - throw err; - } - } - -} - -var estree = (superClass => class extends superClass { - parseRegExpLiteral({ - pattern, - flags - }) { - let regex = null; - - try { - regex = new RegExp(pattern, flags); - } catch (e) {} - - const node = this.estreeParseLiteral(regex); - node.regex = { - pattern, - flags - }; - return node; - } - - parseBigIntLiteral(value) { - let bigInt; - - try { - bigInt = BigInt(value); - } catch (_unused) { - bigInt = null; - } - - const node = this.estreeParseLiteral(bigInt); - node.bigint = String(node.value || value); - return node; - } - - parseDecimalLiteral(value) { - const decimal = null; - const node = this.estreeParseLiteral(decimal); - node.decimal = String(node.value || value); - return node; - } - - estreeParseLiteral(value) { - return this.parseLiteral(value, "Literal"); - } - - parseStringLiteral(value) { - return this.estreeParseLiteral(value); - } - - parseNumericLiteral(value) { - return this.estreeParseLiteral(value); - } - - parseNullLiteral() { - return this.estreeParseLiteral(null); - } - - parseBooleanLiteral(value) { - return this.estreeParseLiteral(value); - } - - directiveToStmt(directive) { - const directiveLiteral = directive.value; - const stmt = this.startNodeAt(directive.start, directive.loc.start); - const expression = this.startNodeAt(directiveLiteral.start, directiveLiteral.loc.start); - expression.value = directiveLiteral.extra.expressionValue; - expression.raw = directiveLiteral.extra.raw; - stmt.expression = this.finishNodeAt(expression, "Literal", directiveLiteral.end, directiveLiteral.loc.end); - stmt.directive = directiveLiteral.extra.raw.slice(1, -1); - return this.finishNodeAt(stmt, "ExpressionStatement", directive.end, directive.loc.end); - } - - initFunction(node, isAsync) { - super.initFunction(node, isAsync); - node.expression = false; - } - - checkDeclaration(node) { - if (node != null && this.isObjectProperty(node)) { - this.checkDeclaration(node.value); - } else { - super.checkDeclaration(node); - } - } - - getObjectOrClassMethodParams(method) { - return method.value.params; - } - - isValidDirective(stmt) { - var _stmt$expression$extr; - - return stmt.type === "ExpressionStatement" && stmt.expression.type === "Literal" && typeof stmt.expression.value === "string" && !((_stmt$expression$extr = stmt.expression.extra) != null && _stmt$expression$extr.parenthesized); - } - - stmtToDirective(stmt) { - const value = stmt.expression.value; - const directive = super.stmtToDirective(stmt); - this.addExtra(directive.value, "expressionValue", value); - return directive; - } - - parseBlockBody(node, ...args) { - super.parseBlockBody(node, ...args); - const directiveStatements = node.directives.map(d => this.directiveToStmt(d)); - node.body = directiveStatements.concat(node.body); - delete node.directives; - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true); - - if (method.typeParameters) { - method.value.typeParameters = method.typeParameters; - delete method.typeParameters; - } - - classBody.body.push(method); - } - - parsePrivateName() { - const node = super.parsePrivateName(); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return node; - } - } - return this.convertPrivateNameToPrivateIdentifier(node); - } - - convertPrivateNameToPrivateIdentifier(node) { - const name = super.getPrivateNameSV(node); - node = node; - delete node.id; - node.name = name; - node.type = "PrivateIdentifier"; - return node; - } - - isPrivateName(node) { - { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.isPrivateName(node); - } - } - return node.type === "PrivateIdentifier"; - } - - getPrivateNameSV(node) { - { - if (!this.getPluginOption("estree", "classFeatures")) { - return super.getPrivateNameSV(node); - } - } - return node.name; - } - - parseLiteral(value, type) { - const node = super.parseLiteral(value, type); - node.raw = node.extra.raw; - delete node.extra; - return node; - } - - parseFunctionBody(node, allowExpression, isMethod = false) { - super.parseFunctionBody(node, allowExpression, isMethod); - node.expression = node.body.type !== "BlockStatement"; - } - - parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { - let funcNode = this.startNode(); - funcNode.kind = node.kind; - funcNode = super.parseMethod(funcNode, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope); - funcNode.type = "FunctionExpression"; - delete funcNode.kind; - node.value = funcNode; - - if (type === "ClassPrivateMethod") { - node.computed = false; - } - - type = "MethodDefinition"; - return this.finishNode(node, type); - } - - parseClassProperty(...args) { - const propertyNode = super.parseClassProperty(...args); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return propertyNode; - } - } - propertyNode.type = "PropertyDefinition"; - return propertyNode; - } - - parseClassPrivateProperty(...args) { - const propertyNode = super.parseClassPrivateProperty(...args); - { - if (!this.getPluginOption("estree", "classFeatures")) { - return propertyNode; - } - } - propertyNode.type = "PropertyDefinition"; - propertyNode.computed = false; - return propertyNode; - } - - parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { - const node = super.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor); - - if (node) { - node.type = "Property"; - if (node.kind === "method") node.kind = "init"; - node.shorthand = false; - } - - return node; - } - - parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) { - const node = super.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors); - - if (node) { - node.kind = "init"; - node.type = "Property"; - } - - return node; - } - - isAssignable(node, isBinding) { - if (node != null && this.isObjectProperty(node)) { - return this.isAssignable(node.value, isBinding); - } - - return super.isAssignable(node, isBinding); - } - - toAssignable(node, isLHS = false) { - if (node != null && this.isObjectProperty(node)) { - this.toAssignable(node.value, isLHS); - return node; - } - - return super.toAssignable(node, isLHS); - } - - toAssignableObjectExpressionProp(prop, ...args) { - if (prop.kind === "get" || prop.kind === "set") { - this.raise(prop.key.start, ErrorMessages.PatternHasAccessor); - } else if (prop.method) { - this.raise(prop.key.start, ErrorMessages.PatternHasMethod); - } else { - super.toAssignableObjectExpressionProp(prop, ...args); - } - } - - finishCallExpression(node, optional) { - super.finishCallExpression(node, optional); - - if (node.callee.type === "Import") { - node.type = "ImportExpression"; - node.source = node.arguments[0]; - - if (this.hasPlugin("importAssertions")) { - var _node$arguments$; - - node.attributes = (_node$arguments$ = node.arguments[1]) != null ? _node$arguments$ : null; - } - - delete node.arguments; - delete node.callee; - } - - return node; - } - - toReferencedArguments(node) { - if (node.type === "ImportExpression") { - return; - } - - super.toReferencedArguments(node); - } - - parseExport(node) { - super.parseExport(node); - - switch (node.type) { - case "ExportAllDeclaration": - node.exported = null; - break; - - case "ExportNamedDeclaration": - if (node.specifiers.length === 1 && node.specifiers[0].type === "ExportNamespaceSpecifier") { - node.type = "ExportAllDeclaration"; - node.exported = node.specifiers[0].exported; - delete node.specifiers; - } - - break; - } - - return node; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - const node = super.parseSubscript(base, startPos, startLoc, noCalls, state); - - if (state.optionalChainMember) { - if (node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression") { - node.type = node.type.substring(8); - } - - if (state.stop) { - const chain = this.startNodeAtNode(node); - chain.expression = node; - return this.finishNode(chain, "ChainExpression"); - } - } else if (node.type === "MemberExpression" || node.type === "CallExpression") { - node.optional = false; - } - - return node; - } - - hasPropertyAsPrivateName(node) { - if (node.type === "ChainExpression") { - node = node.expression; - } - - return super.hasPropertyAsPrivateName(node); - } - - isOptionalChain(node) { - return node.type === "ChainExpression"; - } - - isObjectProperty(node) { - return node.type === "Property" && node.kind === "init" && !node.method; - } - - isObjectMethod(node) { - return node.method || node.kind === "get" || node.kind === "set"; - } - -}); - -class TokContext { - constructor(token, preserveSpace) { - this.token = void 0; - this.preserveSpace = void 0; - this.token = token; - this.preserveSpace = !!preserveSpace; - } - -} -const types = { - brace: new TokContext("{"), - template: new TokContext("`", true) -}; - -const beforeExpr = true; -const startsExpr = true; -const isLoop = true; -const isAssign = true; -const prefix = true; -const postfix = true; -class ExportedTokenType { - constructor(label, conf = {}) { - this.label = void 0; - this.keyword = void 0; - this.beforeExpr = void 0; - this.startsExpr = void 0; - this.rightAssociative = void 0; - this.isLoop = void 0; - this.isAssign = void 0; - this.prefix = void 0; - this.postfix = void 0; - this.binop = void 0; - this.label = label; - this.keyword = conf.keyword; - this.beforeExpr = !!conf.beforeExpr; - this.startsExpr = !!conf.startsExpr; - this.rightAssociative = !!conf.rightAssociative; - this.isLoop = !!conf.isLoop; - this.isAssign = !!conf.isAssign; - this.prefix = !!conf.prefix; - this.postfix = !!conf.postfix; - this.binop = conf.binop != null ? conf.binop : null; - { - this.updateContext = null; - } - } - -} -const keywords$1 = new Map(); - -function createKeyword(name, options = {}) { - options.keyword = name; - const token = createToken(name, options); - keywords$1.set(name, token); - return token; -} - -function createBinop(name, binop) { - return createToken(name, { - beforeExpr, - binop - }); -} - -let tokenTypeCounter = -1; -const tokenTypes = []; -const tokenLabels = []; -const tokenBinops = []; -const tokenBeforeExprs = []; -const tokenStartsExprs = []; -const tokenPrefixes = []; - -function createToken(name, options = {}) { - var _options$binop, _options$beforeExpr, _options$startsExpr, _options$prefix; - - ++tokenTypeCounter; - tokenLabels.push(name); - tokenBinops.push((_options$binop = options.binop) != null ? _options$binop : -1); - tokenBeforeExprs.push((_options$beforeExpr = options.beforeExpr) != null ? _options$beforeExpr : false); - tokenStartsExprs.push((_options$startsExpr = options.startsExpr) != null ? _options$startsExpr : false); - tokenPrefixes.push((_options$prefix = options.prefix) != null ? _options$prefix : false); - tokenTypes.push(new ExportedTokenType(name, options)); - return tokenTypeCounter; -} - -function createKeywordLike(name, options = {}) { - var _options$binop2, _options$beforeExpr2, _options$startsExpr2, _options$prefix2; - - ++tokenTypeCounter; - keywords$1.set(name, tokenTypeCounter); - tokenLabels.push(name); - tokenBinops.push((_options$binop2 = options.binop) != null ? _options$binop2 : -1); - tokenBeforeExprs.push((_options$beforeExpr2 = options.beforeExpr) != null ? _options$beforeExpr2 : false); - tokenStartsExprs.push((_options$startsExpr2 = options.startsExpr) != null ? _options$startsExpr2 : false); - tokenPrefixes.push((_options$prefix2 = options.prefix) != null ? _options$prefix2 : false); - tokenTypes.push(new ExportedTokenType("name", options)); - return tokenTypeCounter; -} - -const tt = { - bracketL: createToken("[", { - beforeExpr, - startsExpr - }), - bracketHashL: createToken("#[", { - beforeExpr, - startsExpr - }), - bracketBarL: createToken("[|", { - beforeExpr, - startsExpr - }), - bracketR: createToken("]"), - bracketBarR: createToken("|]"), - braceL: createToken("{", { - beforeExpr, - startsExpr - }), - braceBarL: createToken("{|", { - beforeExpr, - startsExpr - }), - braceHashL: createToken("#{", { - beforeExpr, - startsExpr - }), - braceR: createToken("}", { - beforeExpr - }), - braceBarR: createToken("|}"), - parenL: createToken("(", { - beforeExpr, - startsExpr - }), - parenR: createToken(")"), - comma: createToken(",", { - beforeExpr - }), - semi: createToken(";", { - beforeExpr - }), - colon: createToken(":", { - beforeExpr - }), - doubleColon: createToken("::", { - beforeExpr - }), - dot: createToken("."), - question: createToken("?", { - beforeExpr - }), - questionDot: createToken("?."), - arrow: createToken("=>", { - beforeExpr - }), - template: createToken("template"), - ellipsis: createToken("...", { - beforeExpr - }), - backQuote: createToken("`", { - startsExpr - }), - dollarBraceL: createToken("${", { - beforeExpr, - startsExpr - }), - at: createToken("@"), - hash: createToken("#", { - startsExpr - }), - interpreterDirective: createToken("#!..."), - eq: createToken("=", { - beforeExpr, - isAssign - }), - assign: createToken("_=", { - beforeExpr, - isAssign - }), - slashAssign: createToken("_=", { - beforeExpr, - isAssign - }), - moduloAssign: createToken("_=", { - beforeExpr, - isAssign - }), - incDec: createToken("++/--", { - prefix, - postfix, - startsExpr - }), - bang: createToken("!", { - beforeExpr, - prefix, - startsExpr - }), - tilde: createToken("~", { - beforeExpr, - prefix, - startsExpr - }), - pipeline: createBinop("|>", 0), - nullishCoalescing: createBinop("??", 1), - logicalOR: createBinop("||", 1), - logicalAND: createBinop("&&", 2), - bitwiseOR: createBinop("|", 3), - bitwiseXOR: createBinop("^", 4), - bitwiseAND: createBinop("&", 5), - equality: createBinop("==/!=/===/!==", 6), - relational: createBinop("/<=/>=", 7), - bitShift: createBinop("<>/>>>", 8), - plusMin: createToken("+/-", { - beforeExpr, - binop: 9, - prefix, - startsExpr - }), - modulo: createToken("%", { - binop: 10, - startsExpr - }), - star: createToken("*", { - binop: 10 - }), - slash: createBinop("/", 10), - exponent: createToken("**", { - beforeExpr, - binop: 11, - rightAssociative: true - }), - _in: createKeyword("in", { - beforeExpr, - binop: 7 - }), - _instanceof: createKeyword("instanceof", { - beforeExpr, - binop: 7 - }), - _break: createKeyword("break"), - _case: createKeyword("case", { - beforeExpr - }), - _catch: createKeyword("catch"), - _continue: createKeyword("continue"), - _debugger: createKeyword("debugger"), - _default: createKeyword("default", { - beforeExpr - }), - _else: createKeyword("else", { - beforeExpr - }), - _finally: createKeyword("finally"), - _function: createKeyword("function", { - startsExpr - }), - _if: createKeyword("if"), - _return: createKeyword("return", { - beforeExpr - }), - _switch: createKeyword("switch"), - _throw: createKeyword("throw", { - beforeExpr, - prefix, - startsExpr - }), - _try: createKeyword("try"), - _var: createKeyword("var"), - _const: createKeyword("const"), - _with: createKeyword("with"), - _new: createKeyword("new", { - beforeExpr, - startsExpr - }), - _this: createKeyword("this", { - startsExpr - }), - _super: createKeyword("super", { - startsExpr - }), - _class: createKeyword("class", { - startsExpr - }), - _extends: createKeyword("extends", { - beforeExpr - }), - _export: createKeyword("export"), - _import: createKeyword("import", { - startsExpr - }), - _null: createKeyword("null", { - startsExpr - }), - _true: createKeyword("true", { - startsExpr - }), - _false: createKeyword("false", { - startsExpr - }), - _typeof: createKeyword("typeof", { - beforeExpr, - prefix, - startsExpr - }), - _void: createKeyword("void", { - beforeExpr, - prefix, - startsExpr - }), - _delete: createKeyword("delete", { - beforeExpr, - prefix, - startsExpr - }), - _do: createKeyword("do", { - isLoop, - beforeExpr - }), - _for: createKeyword("for", { - isLoop - }), - _while: createKeyword("while", { - isLoop - }), - _as: createKeywordLike("as", { - startsExpr - }), - _assert: createKeywordLike("assert", { - startsExpr - }), - _async: createKeywordLike("async", { - startsExpr - }), - _await: createKeywordLike("await", { - startsExpr - }), - _from: createKeywordLike("from", { - startsExpr - }), - _get: createKeywordLike("get", { - startsExpr - }), - _let: createKeywordLike("let", { - startsExpr - }), - _meta: createKeywordLike("meta", { - startsExpr - }), - _of: createKeywordLike("of", { - startsExpr - }), - _sent: createKeywordLike("sent", { - startsExpr - }), - _set: createKeywordLike("set", { - startsExpr - }), - _static: createKeywordLike("static", { - startsExpr - }), - _yield: createKeywordLike("yield", { - startsExpr - }), - _asserts: createKeywordLike("asserts", { - startsExpr - }), - _checks: createKeywordLike("checks", { - startsExpr - }), - _exports: createKeywordLike("exports", { - startsExpr - }), - _global: createKeywordLike("global", { - startsExpr - }), - _implements: createKeywordLike("implements", { - startsExpr - }), - _intrinsic: createKeywordLike("intrinsic", { - startsExpr - }), - _infer: createKeywordLike("infer", { - startsExpr - }), - _is: createKeywordLike("is", { - startsExpr - }), - _mixins: createKeywordLike("mixins", { - startsExpr - }), - _proto: createKeywordLike("proto", { - startsExpr - }), - _require: createKeywordLike("require", { - startsExpr - }), - _keyof: createKeywordLike("keyof", { - startsExpr - }), - _readonly: createKeywordLike("readonly", { - startsExpr - }), - _unique: createKeywordLike("unique", { - startsExpr - }), - _abstract: createKeywordLike("abstract", { - startsExpr - }), - _declare: createKeywordLike("declare", { - startsExpr - }), - _enum: createKeywordLike("enum", { - startsExpr - }), - _module: createKeywordLike("module", { - startsExpr - }), - _namespace: createKeywordLike("namespace", { - startsExpr - }), - _interface: createKeywordLike("interface", { - startsExpr - }), - _type: createKeywordLike("type", { - startsExpr - }), - _opaque: createKeywordLike("opaque", { - startsExpr - }), - name: createToken("name", { - startsExpr - }), - string: createToken("string", { - startsExpr - }), - num: createToken("num", { - startsExpr - }), - bigint: createToken("bigint", { - startsExpr - }), - decimal: createToken("decimal", { - startsExpr - }), - regexp: createToken("regexp", { - startsExpr - }), - privateName: createToken("#name", { - startsExpr - }), - eof: createToken("eof"), - jsxName: createToken("jsxName"), - jsxText: createToken("jsxText", { - beforeExpr: true - }), - jsxTagStart: createToken("jsxTagStart", { - startsExpr: true - }), - jsxTagEnd: createToken("jsxTagEnd"), - placeholder: createToken("%%", { - startsExpr: true - }) -}; -function tokenIsIdentifier(token) { - return token >= 84 && token <= 119; -} -function tokenIsKeywordOrIdentifier(token) { - return token >= 49 && token <= 119; -} -function tokenIsLiteralPropertyName(token) { - return token >= 49 && token <= 123; -} -function tokenComesBeforeExpression(token) { - return tokenBeforeExprs[token]; -} -function tokenCanStartExpression(token) { - return tokenStartsExprs[token]; -} -function tokenIsAssignment(token) { - return token >= 27 && token <= 30; -} -function tokenIsFlowInterfaceOrTypeOrOpaque(token) { - return token >= 116 && token <= 118; -} -function tokenIsLoop(token) { - return token >= 81 && token <= 83; -} -function tokenIsKeyword(token) { - return token >= 49 && token <= 83; -} -function tokenIsOperator(token) { - return token >= 34 && token <= 50; -} -function tokenIsPostfix(token) { - return token === 31; -} -function tokenIsPrefix(token) { - return tokenPrefixes[token]; -} -function tokenIsTSTypeOperator(token) { - return token >= 108 && token <= 110; -} -function tokenIsTSDeclarationStart(token) { - return token >= 111 && token <= 117; -} -function tokenLabelName(token) { - return tokenLabels[token]; -} -function tokenOperatorPrecedence(token) { - return tokenBinops[token]; -} -function tokenIsRightAssociative(token) { - return token === 48; -} -function getExportedToken(token) { - return tokenTypes[token]; -} -function isTokenType(obj) { - return typeof obj === "number"; -} -{ - tokenTypes[8].updateContext = context => { - context.pop(); - }; - - tokenTypes[5].updateContext = tokenTypes[7].updateContext = tokenTypes[23].updateContext = context => { - context.push(types.brace); - }; - - tokenTypes[22].updateContext = context => { - if (context[context.length - 1] === types.template) { - context.pop(); - } else { - context.push(types.template); - } - }; - - tokenTypes[129].updateContext = context => { - context.push(types.j_expr, types.j_oTag); - }; -} - -let nonASCIIidentifierStartChars = "\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\u02c1\u02c6-\u02d1\u02e0-\u02e4\u02ec\u02ee\u0370-\u0374\u0376\u0377\u037a-\u037d\u037f\u0386\u0388-\u038a\u038c\u038e-\u03a1\u03a3-\u03f5\u03f7-\u0481\u048a-\u052f\u0531-\u0556\u0559\u0560-\u0588\u05d0-\u05ea\u05ef-\u05f2\u0620-\u064a\u066e\u066f\u0671-\u06d3\u06d5\u06e5\u06e6\u06ee\u06ef\u06fa-\u06fc\u06ff\u0710\u0712-\u072f\u074d-\u07a5\u07b1\u07ca-\u07ea\u07f4\u07f5\u07fa\u0800-\u0815\u081a\u0824\u0828\u0840-\u0858\u0860-\u086a\u0870-\u0887\u0889-\u088e\u08a0-\u08c9\u0904-\u0939\u093d\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098c\u098f\u0990\u0993-\u09a8\u09aa-\u09b0\u09b2\u09b6-\u09b9\u09bd\u09ce\u09dc\u09dd\u09df-\u09e1\u09f0\u09f1\u09fc\u0a05-\u0a0a\u0a0f\u0a10\u0a13-\u0a28\u0a2a-\u0a30\u0a32\u0a33\u0a35\u0a36\u0a38\u0a39\u0a59-\u0a5c\u0a5e\u0a72-\u0a74\u0a85-\u0a8d\u0a8f-\u0a91\u0a93-\u0aa8\u0aaa-\u0ab0\u0ab2\u0ab3\u0ab5-\u0ab9\u0abd\u0ad0\u0ae0\u0ae1\u0af9\u0b05-\u0b0c\u0b0f\u0b10\u0b13-\u0b28\u0b2a-\u0b30\u0b32\u0b33\u0b35-\u0b39\u0b3d\u0b5c\u0b5d\u0b5f-\u0b61\u0b71\u0b83\u0b85-\u0b8a\u0b8e-\u0b90\u0b92-\u0b95\u0b99\u0b9a\u0b9c\u0b9e\u0b9f\u0ba3\u0ba4\u0ba8-\u0baa\u0bae-\u0bb9\u0bd0\u0c05-\u0c0c\u0c0e-\u0c10\u0c12-\u0c28\u0c2a-\u0c39\u0c3d\u0c58-\u0c5a\u0c5d\u0c60\u0c61\u0c80\u0c85-\u0c8c\u0c8e-\u0c90\u0c92-\u0ca8\u0caa-\u0cb3\u0cb5-\u0cb9\u0cbd\u0cdd\u0cde\u0ce0\u0ce1\u0cf1\u0cf2\u0d04-\u0d0c\u0d0e-\u0d10\u0d12-\u0d3a\u0d3d\u0d4e\u0d54-\u0d56\u0d5f-\u0d61\u0d7a-\u0d7f\u0d85-\u0d96\u0d9a-\u0db1\u0db3-\u0dbb\u0dbd\u0dc0-\u0dc6\u0e01-\u0e30\u0e32\u0e33\u0e40-\u0e46\u0e81\u0e82\u0e84\u0e86-\u0e8a\u0e8c-\u0ea3\u0ea5\u0ea7-\u0eb0\u0eb2\u0eb3\u0ebd\u0ec0-\u0ec4\u0ec6\u0edc-\u0edf\u0f00\u0f40-\u0f47\u0f49-\u0f6c\u0f88-\u0f8c\u1000-\u102a\u103f\u1050-\u1055\u105a-\u105d\u1061\u1065\u1066\u106e-\u1070\u1075-\u1081\u108e\u10a0-\u10c5\u10c7\u10cd\u10d0-\u10fa\u10fc-\u1248\u124a-\u124d\u1250-\u1256\u1258\u125a-\u125d\u1260-\u1288\u128a-\u128d\u1290-\u12b0\u12b2-\u12b5\u12b8-\u12be\u12c0\u12c2-\u12c5\u12c8-\u12d6\u12d8-\u1310\u1312-\u1315\u1318-\u135a\u1380-\u138f\u13a0-\u13f5\u13f8-\u13fd\u1401-\u166c\u166f-\u167f\u1681-\u169a\u16a0-\u16ea\u16ee-\u16f8\u1700-\u1711\u171f-\u1731\u1740-\u1751\u1760-\u176c\u176e-\u1770\u1780-\u17b3\u17d7\u17dc\u1820-\u1878\u1880-\u18a8\u18aa\u18b0-\u18f5\u1900-\u191e\u1950-\u196d\u1970-\u1974\u1980-\u19ab\u19b0-\u19c9\u1a00-\u1a16\u1a20-\u1a54\u1aa7\u1b05-\u1b33\u1b45-\u1b4c\u1b83-\u1ba0\u1bae\u1baf\u1bba-\u1be5\u1c00-\u1c23\u1c4d-\u1c4f\u1c5a-\u1c7d\u1c80-\u1c88\u1c90-\u1cba\u1cbd-\u1cbf\u1ce9-\u1cec\u1cee-\u1cf3\u1cf5\u1cf6\u1cfa\u1d00-\u1dbf\u1e00-\u1f15\u1f18-\u1f1d\u1f20-\u1f45\u1f48-\u1f4d\u1f50-\u1f57\u1f59\u1f5b\u1f5d\u1f5f-\u1f7d\u1f80-\u1fb4\u1fb6-\u1fbc\u1fbe\u1fc2-\u1fc4\u1fc6-\u1fcc\u1fd0-\u1fd3\u1fd6-\u1fdb\u1fe0-\u1fec\u1ff2-\u1ff4\u1ff6-\u1ffc\u2071\u207f\u2090-\u209c\u2102\u2107\u210a-\u2113\u2115\u2118-\u211d\u2124\u2126\u2128\u212a-\u2139\u213c-\u213f\u2145-\u2149\u214e\u2160-\u2188\u2c00-\u2ce4\u2ceb-\u2cee\u2cf2\u2cf3\u2d00-\u2d25\u2d27\u2d2d\u2d30-\u2d67\u2d6f\u2d80-\u2d96\u2da0-\u2da6\u2da8-\u2dae\u2db0-\u2db6\u2db8-\u2dbe\u2dc0-\u2dc6\u2dc8-\u2dce\u2dd0-\u2dd6\u2dd8-\u2dde\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303c\u3041-\u3096\u309b-\u309f\u30a1-\u30fa\u30fc-\u30ff\u3105-\u312f\u3131-\u318e\u31a0-\u31bf\u31f0-\u31ff\u3400-\u4dbf\u4e00-\ua48c\ua4d0-\ua4fd\ua500-\ua60c\ua610-\ua61f\ua62a\ua62b\ua640-\ua66e\ua67f-\ua69d\ua6a0-\ua6ef\ua717-\ua71f\ua722-\ua788\ua78b-\ua7ca\ua7d0\ua7d1\ua7d3\ua7d5-\ua7d9\ua7f2-\ua801\ua803-\ua805\ua807-\ua80a\ua80c-\ua822\ua840-\ua873\ua882-\ua8b3\ua8f2-\ua8f7\ua8fb\ua8fd\ua8fe\ua90a-\ua925\ua930-\ua946\ua960-\ua97c\ua984-\ua9b2\ua9cf\ua9e0-\ua9e4\ua9e6-\ua9ef\ua9fa-\ua9fe\uaa00-\uaa28\uaa40-\uaa42\uaa44-\uaa4b\uaa60-\uaa76\uaa7a\uaa7e-\uaaaf\uaab1\uaab5\uaab6\uaab9-\uaabd\uaac0\uaac2\uaadb-\uaadd\uaae0-\uaaea\uaaf2-\uaaf4\uab01-\uab06\uab09-\uab0e\uab11-\uab16\uab20-\uab26\uab28-\uab2e\uab30-\uab5a\uab5c-\uab69\uab70-\uabe2\uac00-\ud7a3\ud7b0-\ud7c6\ud7cb-\ud7fb\uf900-\ufa6d\ufa70-\ufad9\ufb00-\ufb06\ufb13-\ufb17\ufb1d\ufb1f-\ufb28\ufb2a-\ufb36\ufb38-\ufb3c\ufb3e\ufb40\ufb41\ufb43\ufb44\ufb46-\ufbb1\ufbd3-\ufd3d\ufd50-\ufd8f\ufd92-\ufdc7\ufdf0-\ufdfb\ufe70-\ufe74\ufe76-\ufefc\uff21-\uff3a\uff41-\uff5a\uff66-\uffbe\uffc2-\uffc7\uffca-\uffcf\uffd2-\uffd7\uffda-\uffdc"; -let nonASCIIidentifierChars = "\u200c\u200d\xb7\u0300-\u036f\u0387\u0483-\u0487\u0591-\u05bd\u05bf\u05c1\u05c2\u05c4\u05c5\u05c7\u0610-\u061a\u064b-\u0669\u0670\u06d6-\u06dc\u06df-\u06e4\u06e7\u06e8\u06ea-\u06ed\u06f0-\u06f9\u0711\u0730-\u074a\u07a6-\u07b0\u07c0-\u07c9\u07eb-\u07f3\u07fd\u0816-\u0819\u081b-\u0823\u0825-\u0827\u0829-\u082d\u0859-\u085b\u0898-\u089f\u08ca-\u08e1\u08e3-\u0903\u093a-\u093c\u093e-\u094f\u0951-\u0957\u0962\u0963\u0966-\u096f\u0981-\u0983\u09bc\u09be-\u09c4\u09c7\u09c8\u09cb-\u09cd\u09d7\u09e2\u09e3\u09e6-\u09ef\u09fe\u0a01-\u0a03\u0a3c\u0a3e-\u0a42\u0a47\u0a48\u0a4b-\u0a4d\u0a51\u0a66-\u0a71\u0a75\u0a81-\u0a83\u0abc\u0abe-\u0ac5\u0ac7-\u0ac9\u0acb-\u0acd\u0ae2\u0ae3\u0ae6-\u0aef\u0afa-\u0aff\u0b01-\u0b03\u0b3c\u0b3e-\u0b44\u0b47\u0b48\u0b4b-\u0b4d\u0b55-\u0b57\u0b62\u0b63\u0b66-\u0b6f\u0b82\u0bbe-\u0bc2\u0bc6-\u0bc8\u0bca-\u0bcd\u0bd7\u0be6-\u0bef\u0c00-\u0c04\u0c3c\u0c3e-\u0c44\u0c46-\u0c48\u0c4a-\u0c4d\u0c55\u0c56\u0c62\u0c63\u0c66-\u0c6f\u0c81-\u0c83\u0cbc\u0cbe-\u0cc4\u0cc6-\u0cc8\u0cca-\u0ccd\u0cd5\u0cd6\u0ce2\u0ce3\u0ce6-\u0cef\u0d00-\u0d03\u0d3b\u0d3c\u0d3e-\u0d44\u0d46-\u0d48\u0d4a-\u0d4d\u0d57\u0d62\u0d63\u0d66-\u0d6f\u0d81-\u0d83\u0dca\u0dcf-\u0dd4\u0dd6\u0dd8-\u0ddf\u0de6-\u0def\u0df2\u0df3\u0e31\u0e34-\u0e3a\u0e47-\u0e4e\u0e50-\u0e59\u0eb1\u0eb4-\u0ebc\u0ec8-\u0ecd\u0ed0-\u0ed9\u0f18\u0f19\u0f20-\u0f29\u0f35\u0f37\u0f39\u0f3e\u0f3f\u0f71-\u0f84\u0f86\u0f87\u0f8d-\u0f97\u0f99-\u0fbc\u0fc6\u102b-\u103e\u1040-\u1049\u1056-\u1059\u105e-\u1060\u1062-\u1064\u1067-\u106d\u1071-\u1074\u1082-\u108d\u108f-\u109d\u135d-\u135f\u1369-\u1371\u1712-\u1715\u1732-\u1734\u1752\u1753\u1772\u1773\u17b4-\u17d3\u17dd\u17e0-\u17e9\u180b-\u180d\u180f-\u1819\u18a9\u1920-\u192b\u1930-\u193b\u1946-\u194f\u19d0-\u19da\u1a17-\u1a1b\u1a55-\u1a5e\u1a60-\u1a7c\u1a7f-\u1a89\u1a90-\u1a99\u1ab0-\u1abd\u1abf-\u1ace\u1b00-\u1b04\u1b34-\u1b44\u1b50-\u1b59\u1b6b-\u1b73\u1b80-\u1b82\u1ba1-\u1bad\u1bb0-\u1bb9\u1be6-\u1bf3\u1c24-\u1c37\u1c40-\u1c49\u1c50-\u1c59\u1cd0-\u1cd2\u1cd4-\u1ce8\u1ced\u1cf4\u1cf7-\u1cf9\u1dc0-\u1dff\u203f\u2040\u2054\u20d0-\u20dc\u20e1\u20e5-\u20f0\u2cef-\u2cf1\u2d7f\u2de0-\u2dff\u302a-\u302f\u3099\u309a\ua620-\ua629\ua66f\ua674-\ua67d\ua69e\ua69f\ua6f0\ua6f1\ua802\ua806\ua80b\ua823-\ua827\ua82c\ua880\ua881\ua8b4-\ua8c5\ua8d0-\ua8d9\ua8e0-\ua8f1\ua8ff-\ua909\ua926-\ua92d\ua947-\ua953\ua980-\ua983\ua9b3-\ua9c0\ua9d0-\ua9d9\ua9e5\ua9f0-\ua9f9\uaa29-\uaa36\uaa43\uaa4c\uaa4d\uaa50-\uaa59\uaa7b-\uaa7d\uaab0\uaab2-\uaab4\uaab7\uaab8\uaabe\uaabf\uaac1\uaaeb-\uaaef\uaaf5\uaaf6\uabe3-\uabea\uabec\uabed\uabf0-\uabf9\ufb1e\ufe00-\ufe0f\ufe20-\ufe2f\ufe33\ufe34\ufe4d-\ufe4f\uff10-\uff19\uff3f"; -const nonASCIIidentifierStart = new RegExp("[" + nonASCIIidentifierStartChars + "]"); -const nonASCIIidentifier = new RegExp("[" + nonASCIIidentifierStartChars + nonASCIIidentifierChars + "]"); -nonASCIIidentifierStartChars = nonASCIIidentifierChars = null; -const astralIdentifierStartCodes = [0, 11, 2, 25, 2, 18, 2, 1, 2, 14, 3, 13, 35, 122, 70, 52, 268, 28, 4, 48, 48, 31, 14, 29, 6, 37, 11, 29, 3, 35, 5, 7, 2, 4, 43, 157, 19, 35, 5, 35, 5, 39, 9, 51, 13, 10, 2, 14, 2, 6, 2, 1, 2, 10, 2, 14, 2, 6, 2, 1, 68, 310, 10, 21, 11, 7, 25, 5, 2, 41, 2, 8, 70, 5, 3, 0, 2, 43, 2, 1, 4, 0, 3, 22, 11, 22, 10, 30, 66, 18, 2, 1, 11, 21, 11, 25, 71, 55, 7, 1, 65, 0, 16, 3, 2, 2, 2, 28, 43, 28, 4, 28, 36, 7, 2, 27, 28, 53, 11, 21, 11, 18, 14, 17, 111, 72, 56, 50, 14, 50, 14, 35, 349, 41, 7, 1, 79, 28, 11, 0, 9, 21, 43, 17, 47, 20, 28, 22, 13, 52, 58, 1, 3, 0, 14, 44, 33, 24, 27, 35, 30, 0, 3, 0, 9, 34, 4, 0, 13, 47, 15, 3, 22, 0, 2, 0, 36, 17, 2, 24, 85, 6, 2, 0, 2, 3, 2, 14, 2, 9, 8, 46, 39, 7, 3, 1, 3, 21, 2, 6, 2, 1, 2, 4, 4, 0, 19, 0, 13, 4, 159, 52, 19, 3, 21, 2, 31, 47, 21, 1, 2, 0, 185, 46, 42, 3, 37, 47, 21, 0, 60, 42, 14, 0, 72, 26, 38, 6, 186, 43, 117, 63, 32, 7, 3, 0, 3, 7, 2, 1, 2, 23, 16, 0, 2, 0, 95, 7, 3, 38, 17, 0, 2, 0, 29, 0, 11, 39, 8, 0, 22, 0, 12, 45, 20, 0, 19, 72, 264, 8, 2, 36, 18, 0, 50, 29, 113, 6, 2, 1, 2, 37, 22, 0, 26, 5, 2, 1, 2, 31, 15, 0, 328, 18, 190, 0, 80, 921, 103, 110, 18, 195, 2637, 96, 16, 1070, 4050, 582, 8634, 568, 8, 30, 18, 78, 18, 29, 19, 47, 17, 3, 32, 20, 6, 18, 689, 63, 129, 74, 6, 0, 67, 12, 65, 1, 2, 0, 29, 6135, 9, 1237, 43, 8, 8936, 3, 2, 6, 2, 1, 2, 290, 46, 2, 18, 3, 9, 395, 2309, 106, 6, 12, 4, 8, 8, 9, 5991, 84, 2, 70, 2, 1, 3, 0, 3, 1, 3, 3, 2, 11, 2, 0, 2, 6, 2, 64, 2, 3, 3, 7, 2, 6, 2, 27, 2, 3, 2, 4, 2, 0, 4, 6, 2, 339, 3, 24, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 30, 2, 24, 2, 7, 1845, 30, 482, 44, 11, 6, 17, 0, 322, 29, 19, 43, 1269, 6, 2, 3, 2, 1, 2, 14, 2, 196, 60, 67, 8, 0, 1205, 3, 2, 26, 2, 1, 2, 0, 3, 0, 2, 9, 2, 3, 2, 0, 2, 0, 7, 0, 5, 0, 2, 0, 2, 0, 2, 2, 2, 1, 2, 0, 3, 0, 2, 0, 2, 0, 2, 0, 2, 0, 2, 1, 2, 0, 3, 3, 2, 6, 2, 3, 2, 3, 2, 0, 2, 9, 2, 16, 6, 2, 2, 4, 2, 16, 4421, 42719, 33, 4152, 8, 221, 3, 5761, 15, 7472, 3104, 541, 1507, 4938]; -const astralIdentifierCodes = [509, 0, 227, 0, 150, 4, 294, 9, 1368, 2, 2, 1, 6, 3, 41, 2, 5, 0, 166, 1, 574, 3, 9, 9, 370, 1, 154, 10, 50, 3, 123, 2, 54, 14, 32, 10, 3, 1, 11, 3, 46, 10, 8, 0, 46, 9, 7, 2, 37, 13, 2, 9, 6, 1, 45, 0, 13, 2, 49, 13, 9, 3, 2, 11, 83, 11, 7, 0, 161, 11, 6, 9, 7, 3, 56, 1, 2, 6, 3, 1, 3, 2, 10, 0, 11, 1, 3, 6, 4, 4, 193, 17, 10, 9, 5, 0, 82, 19, 13, 9, 214, 6, 3, 8, 28, 1, 83, 16, 16, 9, 82, 12, 9, 9, 84, 14, 5, 9, 243, 14, 166, 9, 71, 5, 2, 1, 3, 3, 2, 0, 2, 1, 13, 9, 120, 6, 3, 6, 4, 0, 29, 9, 41, 6, 2, 3, 9, 0, 10, 10, 47, 15, 406, 7, 2, 7, 17, 9, 57, 21, 2, 13, 123, 5, 4, 0, 2, 1, 2, 6, 2, 0, 9, 9, 49, 4, 2, 1, 2, 4, 9, 9, 330, 3, 19306, 9, 87, 9, 39, 4, 60, 6, 26, 9, 1014, 0, 2, 54, 8, 3, 82, 0, 12, 1, 19628, 1, 4706, 45, 3, 22, 543, 4, 4, 5, 9, 7, 3, 6, 31, 3, 149, 2, 1418, 49, 513, 54, 5, 49, 9, 0, 15, 0, 23, 4, 2, 14, 1361, 6, 2, 16, 3, 6, 2, 1, 2, 4, 262, 6, 10, 9, 357, 0, 62, 13, 1495, 6, 110, 6, 6, 9, 4759, 9, 787719, 239]; - -function isInAstralSet(code, set) { - let pos = 0x10000; - - for (let i = 0, length = set.length; i < length; i += 2) { - pos += set[i]; - if (pos > code) return false; - pos += set[i + 1]; - if (pos >= code) return true; - } - - return false; -} - -function isIdentifierStart(code) { - if (code < 65) return code === 36; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifierStart.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes); -} -function isIdentifierChar(code) { - if (code < 48) return code === 36; - if (code < 58) return true; - if (code < 65) return false; - if (code <= 90) return true; - if (code < 97) return code === 95; - if (code <= 122) return true; - - if (code <= 0xffff) { - return code >= 0xaa && nonASCIIidentifier.test(String.fromCharCode(code)); - } - - return isInAstralSet(code, astralIdentifierStartCodes) || isInAstralSet(code, astralIdentifierCodes); -} - -const reservedWords = { - keyword: ["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete"], - strict: ["implements", "interface", "let", "package", "private", "protected", "public", "static", "yield"], - strictBind: ["eval", "arguments"] -}; -const keywords = new Set(reservedWords.keyword); -const reservedWordsStrictSet = new Set(reservedWords.strict); -const reservedWordsStrictBindSet = new Set(reservedWords.strictBind); -function isReservedWord(word, inModule) { - return inModule && word === "await" || word === "enum"; -} -function isStrictReservedWord(word, inModule) { - return isReservedWord(word, inModule) || reservedWordsStrictSet.has(word); -} -function isStrictBindOnlyReservedWord(word) { - return reservedWordsStrictBindSet.has(word); -} -function isStrictBindReservedWord(word, inModule) { - return isStrictReservedWord(word, inModule) || isStrictBindOnlyReservedWord(word); -} -function isKeyword(word) { - return keywords.has(word); -} - -function isIteratorStart(current, next) { - return current === 64 && next === 64; -} -const reservedWordLikeSet = new Set(["break", "case", "catch", "continue", "debugger", "default", "do", "else", "finally", "for", "function", "if", "return", "switch", "throw", "try", "var", "const", "while", "with", "new", "this", "super", "class", "extends", "export", "import", "null", "true", "false", "in", "instanceof", "typeof", "void", "delete", "implements", "interface", "let", "package", "private", "protected", "public", "static", "yield", "eval", "arguments", "enum", "await"]); -function canBeReservedWord(word) { - return reservedWordLikeSet.has(word); -} - -const SCOPE_OTHER = 0b000000000, - SCOPE_PROGRAM = 0b000000001, - SCOPE_FUNCTION = 0b000000010, - SCOPE_ARROW = 0b000000100, - SCOPE_SIMPLE_CATCH = 0b000001000, - SCOPE_SUPER = 0b000010000, - SCOPE_DIRECT_SUPER = 0b000100000, - SCOPE_CLASS = 0b001000000, - SCOPE_STATIC_BLOCK = 0b010000000, - SCOPE_TS_MODULE = 0b100000000, - SCOPE_VAR = SCOPE_PROGRAM | SCOPE_FUNCTION | SCOPE_TS_MODULE; -const BIND_KIND_VALUE = 0b000000000001, - BIND_KIND_TYPE = 0b000000000010, - BIND_SCOPE_VAR = 0b000000000100, - BIND_SCOPE_LEXICAL = 0b000000001000, - BIND_SCOPE_FUNCTION = 0b000000010000, - BIND_FLAGS_NONE = 0b000001000000, - BIND_FLAGS_CLASS = 0b000010000000, - BIND_FLAGS_TS_ENUM = 0b000100000000, - BIND_FLAGS_TS_CONST_ENUM = 0b001000000000, - BIND_FLAGS_TS_EXPORT_ONLY = 0b010000000000, - BIND_FLAGS_FLOW_DECLARE_FN = 0b100000000000; -const BIND_CLASS = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_CLASS, - BIND_LEXICAL = BIND_KIND_VALUE | 0 | BIND_SCOPE_LEXICAL | 0, - BIND_VAR = BIND_KIND_VALUE | 0 | BIND_SCOPE_VAR | 0, - BIND_FUNCTION = BIND_KIND_VALUE | 0 | BIND_SCOPE_FUNCTION | 0, - BIND_TS_INTERFACE = 0 | BIND_KIND_TYPE | 0 | BIND_FLAGS_CLASS, - BIND_TS_TYPE = 0 | BIND_KIND_TYPE | 0 | 0, - BIND_TS_ENUM = BIND_KIND_VALUE | BIND_KIND_TYPE | BIND_SCOPE_LEXICAL | BIND_FLAGS_TS_ENUM, - BIND_TS_AMBIENT = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, - BIND_NONE = 0 | 0 | 0 | BIND_FLAGS_NONE, - BIND_OUTSIDE = BIND_KIND_VALUE | 0 | 0 | BIND_FLAGS_NONE, - BIND_TS_CONST_ENUM = BIND_TS_ENUM | BIND_FLAGS_TS_CONST_ENUM, - BIND_TS_NAMESPACE = 0 | 0 | 0 | BIND_FLAGS_TS_EXPORT_ONLY, - BIND_FLOW_DECLARE_FN = BIND_FLAGS_FLOW_DECLARE_FN; -const CLASS_ELEMENT_FLAG_STATIC = 0b100, - CLASS_ELEMENT_KIND_GETTER = 0b010, - CLASS_ELEMENT_KIND_SETTER = 0b001, - CLASS_ELEMENT_KIND_ACCESSOR = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_KIND_SETTER; -const CLASS_ELEMENT_STATIC_GETTER = CLASS_ELEMENT_KIND_GETTER | CLASS_ELEMENT_FLAG_STATIC, - CLASS_ELEMENT_STATIC_SETTER = CLASS_ELEMENT_KIND_SETTER | CLASS_ELEMENT_FLAG_STATIC, - CLASS_ELEMENT_INSTANCE_GETTER = CLASS_ELEMENT_KIND_GETTER, - CLASS_ELEMENT_INSTANCE_SETTER = CLASS_ELEMENT_KIND_SETTER, - CLASS_ELEMENT_OTHER = 0; - -class Scope { - constructor(flags) { - this.var = new Set(); - this.lexical = new Set(); - this.functions = new Set(); - this.flags = flags; - } - -} -class ScopeHandler { - constructor(raise, inModule) { - this.scopeStack = []; - this.undefinedExports = new Map(); - this.undefinedPrivateNames = new Map(); - this.raise = raise; - this.inModule = inModule; - } - - get inFunction() { - return (this.currentVarScopeFlags() & SCOPE_FUNCTION) > 0; - } - - get allowSuper() { - return (this.currentThisScopeFlags() & SCOPE_SUPER) > 0; - } - - get allowDirectSuper() { - return (this.currentThisScopeFlags() & SCOPE_DIRECT_SUPER) > 0; - } - - get inClass() { - return (this.currentThisScopeFlags() & SCOPE_CLASS) > 0; - } - - get inClassAndNotInNonArrowFunction() { - const flags = this.currentThisScopeFlags(); - return (flags & SCOPE_CLASS) > 0 && (flags & SCOPE_FUNCTION) === 0; - } - - get inStaticBlock() { - for (let i = this.scopeStack.length - 1;; i--) { - const { - flags - } = this.scopeStack[i]; - - if (flags & SCOPE_STATIC_BLOCK) { - return true; - } - - if (flags & (SCOPE_VAR | SCOPE_CLASS)) { - return false; - } - } - } - - get inNonArrowFunction() { - return (this.currentThisScopeFlags() & SCOPE_FUNCTION) > 0; - } - - get treatFunctionsAsVar() { - return this.treatFunctionsAsVarInScope(this.currentScope()); - } - - createScope(flags) { - return new Scope(flags); - } - - enter(flags) { - this.scopeStack.push(this.createScope(flags)); - } - - exit() { - this.scopeStack.pop(); - } - - treatFunctionsAsVarInScope(scope) { - return !!(scope.flags & SCOPE_FUNCTION || !this.inModule && scope.flags & SCOPE_PROGRAM); - } - - declareName(name, bindingType, pos) { - let scope = this.currentScope(); - - if (bindingType & BIND_SCOPE_LEXICAL || bindingType & BIND_SCOPE_FUNCTION) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - - if (bindingType & BIND_SCOPE_FUNCTION) { - scope.functions.add(name); - } else { - scope.lexical.add(name); - } - - if (bindingType & BIND_SCOPE_LEXICAL) { - this.maybeExportDefined(scope, name); - } - } else if (bindingType & BIND_SCOPE_VAR) { - for (let i = this.scopeStack.length - 1; i >= 0; --i) { - scope = this.scopeStack[i]; - this.checkRedeclarationInScope(scope, name, bindingType, pos); - scope.var.add(name); - this.maybeExportDefined(scope, name); - if (scope.flags & SCOPE_VAR) break; - } - } - - if (this.inModule && scope.flags & SCOPE_PROGRAM) { - this.undefinedExports.delete(name); - } - } - - maybeExportDefined(scope, name) { - if (this.inModule && scope.flags & SCOPE_PROGRAM) { - this.undefinedExports.delete(name); - } - } - - checkRedeclarationInScope(scope, name, bindingType, pos) { - if (this.isRedeclaredInScope(scope, name, bindingType)) { - this.raise(pos, ErrorMessages.VarRedeclaration, name); - } - } - - isRedeclaredInScope(scope, name, bindingType) { - if (!(bindingType & BIND_KIND_VALUE)) return false; - - if (bindingType & BIND_SCOPE_LEXICAL) { - return scope.lexical.has(name) || scope.functions.has(name) || scope.var.has(name); - } - - if (bindingType & BIND_SCOPE_FUNCTION) { - return scope.lexical.has(name) || !this.treatFunctionsAsVarInScope(scope) && scope.var.has(name); - } - - return scope.lexical.has(name) && !(scope.flags & SCOPE_SIMPLE_CATCH && scope.lexical.values().next().value === name) || !this.treatFunctionsAsVarInScope(scope) && scope.functions.has(name); - } - - checkLocalExport(id) { - const { - name - } = id; - const topLevelScope = this.scopeStack[0]; - - if (!topLevelScope.lexical.has(name) && !topLevelScope.var.has(name) && !topLevelScope.functions.has(name)) { - this.undefinedExports.set(name, id.start); - } - } - - currentScope() { - return this.scopeStack[this.scopeStack.length - 1]; - } - - currentVarScopeFlags() { - for (let i = this.scopeStack.length - 1;; i--) { - const { - flags - } = this.scopeStack[i]; - - if (flags & SCOPE_VAR) { - return flags; - } - } - } - - currentThisScopeFlags() { - for (let i = this.scopeStack.length - 1;; i--) { - const { - flags - } = this.scopeStack[i]; - - if (flags & (SCOPE_VAR | SCOPE_CLASS) && !(flags & SCOPE_ARROW)) { - return flags; - } - } - } - -} - -class FlowScope extends Scope { - constructor(...args) { - super(...args); - this.declareFunctions = new Set(); - } - -} - -class FlowScopeHandler extends ScopeHandler { - createScope(flags) { - return new FlowScope(flags); - } - - declareName(name, bindingType, pos) { - const scope = this.currentScope(); - - if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - this.maybeExportDefined(scope, name); - scope.declareFunctions.add(name); - return; - } - - super.declareName(...arguments); - } - - isRedeclaredInScope(scope, name, bindingType) { - if (super.isRedeclaredInScope(...arguments)) return true; - - if (bindingType & BIND_FLAGS_FLOW_DECLARE_FN) { - return !scope.declareFunctions.has(name) && (scope.lexical.has(name) || scope.functions.has(name)); - } - - return false; - } - - checkLocalExport(id) { - if (!this.scopeStack[0].declareFunctions.has(id.name)) { - super.checkLocalExport(id); - } - } - -} - -class State { - constructor() { - this.strict = void 0; - this.curLine = void 0; - this.startLoc = void 0; - this.endLoc = void 0; - this.errors = []; - this.potentialArrowAt = -1; - this.noArrowAt = []; - this.noArrowParamsConversionAt = []; - this.maybeInArrowParameters = false; - this.inType = false; - this.noAnonFunctionType = false; - this.inPropertyName = false; - this.hasFlowComment = false; - this.isAmbientContext = false; - this.inAbstractClass = false; - this.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; - this.soloAwait = false; - this.inFSharpPipelineDirectBody = false; - this.labels = []; - this.decoratorStack = [[]]; - this.comments = []; - this.commentStack = []; - this.pos = 0; - this.lineStart = 0; - this.type = 126; - this.value = null; - this.start = 0; - this.end = 0; - this.lastTokEndLoc = null; - this.lastTokStartLoc = null; - this.lastTokStart = 0; - this.lastTokEnd = 0; - this.context = [types.brace]; - this.exprAllowed = true; - this.containsEsc = false; - this.strictErrors = new Map(); - this.tokensLength = 0; - } - - init(options) { - this.strict = options.strictMode === false ? false : options.strictMode === true ? true : options.sourceType === "module"; - this.curLine = options.startLine; - this.startLoc = this.endLoc = this.curPosition(); - } - - curPosition() { - return new Position(this.curLine, this.pos - this.lineStart); - } - - clone(skipArrays) { - const state = new State(); - const keys = Object.keys(this); - - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - let val = this[key]; - - if (!skipArrays && Array.isArray(val)) { - val = val.slice(); - } - - state[key] = val; - } - - return state; - } - -} - -var _isDigit = function isDigit(code) { - return code >= 48 && code <= 57; -}; -const VALID_REGEX_FLAGS = new Set([103, 109, 115, 105, 121, 117, 100]); -const forbiddenNumericSeparatorSiblings = { - decBinOct: [46, 66, 69, 79, 95, 98, 101, 111], - hex: [46, 88, 95, 120] -}; -const allowedNumericSeparatorSiblings = {}; -allowedNumericSeparatorSiblings.bin = [48, 49]; -allowedNumericSeparatorSiblings.oct = [...allowedNumericSeparatorSiblings.bin, 50, 51, 52, 53, 54, 55]; -allowedNumericSeparatorSiblings.dec = [...allowedNumericSeparatorSiblings.oct, 56, 57]; -allowedNumericSeparatorSiblings.hex = [...allowedNumericSeparatorSiblings.dec, 65, 66, 67, 68, 69, 70, 97, 98, 99, 100, 101, 102]; -class Token { - constructor(state) { - this.type = state.type; - this.value = state.value; - this.start = state.start; - this.end = state.end; - this.loc = new SourceLocation(state.startLoc, state.endLoc); - } - -} -class Tokenizer extends ParserError { - constructor(options, input) { - super(); - this.isLookahead = void 0; - this.tokens = []; - this.state = new State(); - this.state.init(options); - this.input = input; - this.length = input.length; - this.isLookahead = false; - } - - pushToken(token) { - this.tokens.length = this.state.tokensLength; - this.tokens.push(token); - ++this.state.tokensLength; - } - - next() { - this.checkKeywordEscapes(); - - if (this.options.tokens) { - this.pushToken(new Token(this.state)); - } - - this.state.lastTokEnd = this.state.end; - this.state.lastTokStart = this.state.start; - this.state.lastTokEndLoc = this.state.endLoc; - this.state.lastTokStartLoc = this.state.startLoc; - this.nextToken(); - } - - eat(type) { - if (this.match(type)) { - this.next(); - return true; - } else { - return false; - } - } - - match(type) { - return this.state.type === type; - } - - createLookaheadState(state) { - return { - pos: state.pos, - value: null, - type: state.type, - start: state.start, - end: state.end, - lastTokEnd: state.end, - context: [this.curContext()], - inType: state.inType - }; - } - - lookahead() { - const old = this.state; - this.state = this.createLookaheadState(old); - this.isLookahead = true; - this.nextToken(); - this.isLookahead = false; - const curr = this.state; - this.state = old; - return curr; - } - - nextTokenStart() { - return this.nextTokenStartSince(this.state.pos); - } - - nextTokenStartSince(pos) { - skipWhiteSpace.lastIndex = pos; - return skipWhiteSpace.test(this.input) ? skipWhiteSpace.lastIndex : pos; - } - - lookaheadCharCode() { - return this.input.charCodeAt(this.nextTokenStart()); - } - - codePointAtPos(pos) { - let cp = this.input.charCodeAt(pos); - - if ((cp & 0xfc00) === 0xd800 && ++pos < this.input.length) { - const trail = this.input.charCodeAt(pos); - - if ((trail & 0xfc00) === 0xdc00) { - cp = 0x10000 + ((cp & 0x3ff) << 10) + (trail & 0x3ff); - } - } - - return cp; - } - - setStrict(strict) { - this.state.strict = strict; - - if (strict) { - this.state.strictErrors.forEach((message, pos) => this.raise(pos, message)); - this.state.strictErrors.clear(); - } - } - - curContext() { - return this.state.context[this.state.context.length - 1]; - } - - nextToken() { - const curContext = this.curContext(); - if (!curContext.preserveSpace) this.skipSpace(); - this.state.start = this.state.pos; - if (!this.isLookahead) this.state.startLoc = this.state.curPosition(); - - if (this.state.pos >= this.length) { - this.finishToken(126); - return; - } - - if (curContext === types.template) { - this.readTmplToken(); - } else { - this.getTokenFromCode(this.codePointAtPos(this.state.pos)); - } - } - - skipBlockComment() { - let startLoc; - if (!this.isLookahead) startLoc = this.state.curPosition(); - const start = this.state.pos; - const end = this.input.indexOf("*/", start + 2); - if (end === -1) throw this.raise(start, ErrorMessages.UnterminatedComment); - this.state.pos = end + 2; - lineBreakG.lastIndex = start + 2; - - while (lineBreakG.test(this.input) && lineBreakG.lastIndex <= end) { - ++this.state.curLine; - this.state.lineStart = lineBreakG.lastIndex; - } - - if (this.isLookahead) return; - const comment = { - type: "CommentBlock", - value: this.input.slice(start + 2, end), - start, - end: end + 2, - loc: new SourceLocation(startLoc, this.state.curPosition()) - }; - if (this.options.tokens) this.pushToken(comment); - return comment; - } - - skipLineComment(startSkip) { - const start = this.state.pos; - let startLoc; - if (!this.isLookahead) startLoc = this.state.curPosition(); - let ch = this.input.charCodeAt(this.state.pos += startSkip); - - if (this.state.pos < this.length) { - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); - } - } - - if (this.isLookahead) return; - const end = this.state.pos; - const value = this.input.slice(start + startSkip, end); - const comment = { - type: "CommentLine", - value, - start, - end, - loc: new SourceLocation(startLoc, this.state.curPosition()) - }; - if (this.options.tokens) this.pushToken(comment); - return comment; - } - - skipSpace() { - const spaceStart = this.state.pos; - const comments = []; - - loop: while (this.state.pos < this.length) { - const ch = this.input.charCodeAt(this.state.pos); - - switch (ch) { - case 32: - case 160: - case 9: - ++this.state.pos; - break; - - case 13: - if (this.input.charCodeAt(this.state.pos + 1) === 10) { - ++this.state.pos; - } - - case 10: - case 8232: - case 8233: - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - break; - - case 47: - switch (this.input.charCodeAt(this.state.pos + 1)) { - case 42: - { - const comment = this.skipBlockComment(); - - if (comment !== undefined) { - this.addComment(comment); - if (this.options.attachComment) comments.push(comment); - } - - break; - } - - case 47: - { - const comment = this.skipLineComment(2); - - if (comment !== undefined) { - this.addComment(comment); - if (this.options.attachComment) comments.push(comment); - } - - break; - } - - default: - break loop; - } - - break; - - default: - if (isWhitespace(ch)) { - ++this.state.pos; - } else if (ch === 45 && !this.inModule) { - const pos = this.state.pos; - - if (this.input.charCodeAt(pos + 1) === 45 && this.input.charCodeAt(pos + 2) === 62 && (spaceStart === 0 || this.state.lineStart > spaceStart)) { - const comment = this.skipLineComment(3); - - if (comment !== undefined) { - this.addComment(comment); - if (this.options.attachComment) comments.push(comment); - } - } else { - break loop; - } - } else if (ch === 60 && !this.inModule) { - const pos = this.state.pos; - - if (this.input.charCodeAt(pos + 1) === 33 && this.input.charCodeAt(pos + 2) === 45 && this.input.charCodeAt(pos + 3) === 45) { - const comment = this.skipLineComment(4); - - if (comment !== undefined) { - this.addComment(comment); - if (this.options.attachComment) comments.push(comment); - } - } else { - break loop; - } - } else { - break loop; - } - - } - } - - if (comments.length > 0) { - const end = this.state.pos; - const CommentWhitespace = { - start: spaceStart, - end, - comments, - leadingNode: null, - trailingNode: null, - containingNode: null - }; - this.state.commentStack.push(CommentWhitespace); - } - } - - finishToken(type, val) { - this.state.end = this.state.pos; - const prevType = this.state.type; - this.state.type = type; - this.state.value = val; - - if (!this.isLookahead) { - this.state.endLoc = this.state.curPosition(); - this.updateContext(prevType); - } - } - - readToken_numberSign() { - if (this.state.pos === 0 && this.readToken_interpreter()) { - return; - } - - const nextPos = this.state.pos + 1; - const next = this.codePointAtPos(nextPos); - - if (next >= 48 && next <= 57) { - throw this.raise(this.state.pos, ErrorMessages.UnexpectedDigitAfterHash); - } - - if (next === 123 || next === 91 && this.hasPlugin("recordAndTuple")) { - this.expectPlugin("recordAndTuple"); - - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "hash") { - throw this.raise(this.state.pos, next === 123 ? ErrorMessages.RecordExpressionHashIncorrectStartSyntaxType : ErrorMessages.TupleExpressionHashIncorrectStartSyntaxType); - } - - this.state.pos += 2; - - if (next === 123) { - this.finishToken(7); - } else { - this.finishToken(1); - } - } else if (isIdentifierStart(next)) { - ++this.state.pos; - this.finishToken(125, this.readWord1(next)); - } else if (next === 92) { - ++this.state.pos; - this.finishToken(125, this.readWord1()); - } else { - this.finishOp(25, 1); - } - } - - readToken_dot() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next >= 48 && next <= 57) { - this.readNumber(true); - return; - } - - if (next === 46 && this.input.charCodeAt(this.state.pos + 2) === 46) { - this.state.pos += 3; - this.finishToken(21); - } else { - ++this.state.pos; - this.finishToken(16); - } - } - - readToken_slash() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(29, 2); - } else { - this.finishOp(47, 1); - } - } - - readToken_interpreter() { - if (this.state.pos !== 0 || this.length < 2) return false; - let ch = this.input.charCodeAt(this.state.pos + 1); - if (ch !== 33) return false; - const start = this.state.pos; - this.state.pos += 1; - - while (!isNewLine(ch) && ++this.state.pos < this.length) { - ch = this.input.charCodeAt(this.state.pos); - } - - const value = this.input.slice(start + 2, this.state.pos); - this.finishToken(26, value); - return true; - } - - readToken_mult_modulo(code) { - let type = code === 42 ? 46 : 45; - let width = 1; - let next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 42 && next === 42) { - width++; - next = this.input.charCodeAt(this.state.pos + 2); - type = 48; - } - - if (next === 61 && !this.state.inType) { - width++; - type = code === 37 ? 30 : 28; - } - - this.finishOp(type, width); - } - - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === code) { - if (this.input.charCodeAt(this.state.pos + 2) === 61) { - this.finishOp(28, 3); - } else { - this.finishOp(code === 124 ? 36 : 37, 2); - } - - return; - } - - if (code === 124) { - if (next === 62) { - this.finishOp(34, 2); - return; - } - - if (this.hasPlugin("recordAndTuple") && next === 125) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectEndSyntaxType); - } - - this.state.pos += 2; - this.finishToken(9); - return; - } - - if (this.hasPlugin("recordAndTuple") && next === 93) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectEndSyntaxType); - } - - this.state.pos += 2; - this.finishToken(4); - return; - } - } - - if (next === 61) { - this.finishOp(28, 2); - return; - } - - this.finishOp(code === 124 ? 38 : 40, 1); - } - - readToken_caret() { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(28, 2); - } else { - this.finishOp(39, 1); - } - } - - readToken_plus_min(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === code) { - this.finishOp(31, 2); - return; - } - - if (next === 61) { - this.finishOp(28, 2); - } else { - this.finishOp(44, 1); - } - } - - readToken_lt_gt(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - let size = 1; - - if (next === code) { - size = code === 62 && this.input.charCodeAt(this.state.pos + 2) === 62 ? 3 : 2; - - if (this.input.charCodeAt(this.state.pos + size) === 61) { - this.finishOp(28, size + 1); - return; - } - - this.finishOp(43, size); - return; - } - - if (next === 61) { - size = 2; - } - - this.finishOp(42, size); - } - - readToken_eq_excl(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 61) { - this.finishOp(41, this.input.charCodeAt(this.state.pos + 2) === 61 ? 3 : 2); - return; - } - - if (code === 61 && next === 62) { - this.state.pos += 2; - this.finishToken(19); - return; - } - - this.finishOp(code === 61 ? 27 : 32, 1); - } - - readToken_question() { - const next = this.input.charCodeAt(this.state.pos + 1); - const next2 = this.input.charCodeAt(this.state.pos + 2); - - if (next === 63) { - if (next2 === 61) { - this.finishOp(28, 3); - } else { - this.finishOp(35, 2); - } - } else if (next === 46 && !(next2 >= 48 && next2 <= 57)) { - this.state.pos += 2; - this.finishToken(18); - } else { - ++this.state.pos; - this.finishToken(17); - } - } - - getTokenFromCode(code) { - switch (code) { - case 46: - this.readToken_dot(); - return; - - case 40: - ++this.state.pos; - this.finishToken(10); - return; - - case 41: - ++this.state.pos; - this.finishToken(11); - return; - - case 59: - ++this.state.pos; - this.finishToken(13); - return; - - case 44: - ++this.state.pos; - this.finishToken(12); - return; - - case 91: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.TupleExpressionBarIncorrectStartSyntaxType); - } - - this.state.pos += 2; - this.finishToken(2); - } else { - ++this.state.pos; - this.finishToken(0); - } - - return; - - case 93: - ++this.state.pos; - this.finishToken(3); - return; - - case 123: - if (this.hasPlugin("recordAndTuple") && this.input.charCodeAt(this.state.pos + 1) === 124) { - if (this.getPluginOption("recordAndTuple", "syntaxType") !== "bar") { - throw this.raise(this.state.pos, ErrorMessages.RecordExpressionBarIncorrectStartSyntaxType); - } - - this.state.pos += 2; - this.finishToken(6); - } else { - ++this.state.pos; - this.finishToken(5); - } - - return; - - case 125: - ++this.state.pos; - this.finishToken(8); - return; - - case 58: - if (this.hasPlugin("functionBind") && this.input.charCodeAt(this.state.pos + 1) === 58) { - this.finishOp(15, 2); - } else { - ++this.state.pos; - this.finishToken(14); - } - - return; - - case 63: - this.readToken_question(); - return; - - case 96: - ++this.state.pos; - this.finishToken(22); - return; - - case 48: - { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (next === 120 || next === 88) { - this.readRadixNumber(16); - return; - } - - if (next === 111 || next === 79) { - this.readRadixNumber(8); - return; - } - - if (next === 98 || next === 66) { - this.readRadixNumber(2); - return; - } - } - - case 49: - case 50: - case 51: - case 52: - case 53: - case 54: - case 55: - case 56: - case 57: - this.readNumber(false); - return; - - case 34: - case 39: - this.readString(code); - return; - - case 47: - this.readToken_slash(); - return; - - case 37: - case 42: - this.readToken_mult_modulo(code); - return; - - case 124: - case 38: - this.readToken_pipe_amp(code); - return; - - case 94: - this.readToken_caret(); - return; - - case 43: - case 45: - this.readToken_plus_min(code); - return; - - case 60: - case 62: - this.readToken_lt_gt(code); - return; - - case 61: - case 33: - this.readToken_eq_excl(code); - return; - - case 126: - this.finishOp(33, 1); - return; - - case 64: - ++this.state.pos; - this.finishToken(24); - return; - - case 35: - this.readToken_numberSign(); - return; - - case 92: - this.readWord(); - return; - - default: - if (isIdentifierStart(code)) { - this.readWord(code); - return; - } - - } - - throw this.raise(this.state.pos, ErrorMessages.InvalidOrUnexpectedToken, String.fromCodePoint(code)); - } - - finishOp(type, size) { - const str = this.input.slice(this.state.pos, this.state.pos + size); - this.state.pos += size; - this.finishToken(type, str); - } - - readRegexp() { - const start = this.state.start + 1; - let escaped, inClass; - let { - pos - } = this.state; - - for (;; ++pos) { - if (pos >= this.length) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); - } - - const ch = this.input.charCodeAt(pos); - - if (isNewLine(ch)) { - throw this.raise(start, ErrorMessages.UnterminatedRegExp); - } - - if (escaped) { - escaped = false; - } else { - if (ch === 91) { - inClass = true; - } else if (ch === 93 && inClass) { - inClass = false; - } else if (ch === 47 && !inClass) { - break; - } - - escaped = ch === 92; - } - } - - const content = this.input.slice(start, pos); - ++pos; - let mods = ""; - - while (pos < this.length) { - const cp = this.codePointAtPos(pos); - const char = String.fromCharCode(cp); - - if (VALID_REGEX_FLAGS.has(cp)) { - if (mods.includes(char)) { - this.raise(pos + 1, ErrorMessages.DuplicateRegExpFlags); - } - } else if (isIdentifierChar(cp) || cp === 92) { - this.raise(pos + 1, ErrorMessages.MalformedRegExpFlags); - } else { - break; - } - - ++pos; - mods += char; - } - - this.state.pos = pos; - this.finishToken(124, { - pattern: content, - flags: mods - }); - } - - readInt(radix, len, forceLen, allowNumSeparator = true) { - const start = this.state.pos; - const forbiddenSiblings = radix === 16 ? forbiddenNumericSeparatorSiblings.hex : forbiddenNumericSeparatorSiblings.decBinOct; - const allowedSiblings = radix === 16 ? allowedNumericSeparatorSiblings.hex : radix === 10 ? allowedNumericSeparatorSiblings.dec : radix === 8 ? allowedNumericSeparatorSiblings.oct : allowedNumericSeparatorSiblings.bin; - let invalid = false; - let total = 0; - - for (let i = 0, e = len == null ? Infinity : len; i < e; ++i) { - const code = this.input.charCodeAt(this.state.pos); - let val; - - if (code === 95) { - const prev = this.input.charCodeAt(this.state.pos - 1); - const next = this.input.charCodeAt(this.state.pos + 1); - - if (allowedSiblings.indexOf(next) === -1) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } else if (forbiddenSiblings.indexOf(prev) > -1 || forbiddenSiblings.indexOf(next) > -1 || Number.isNaN(next)) { - this.raise(this.state.pos, ErrorMessages.UnexpectedNumericSeparator); - } - - if (!allowNumSeparator) { - this.raise(this.state.pos, ErrorMessages.NumericSeparatorInEscapeSequence); - } - - ++this.state.pos; - continue; - } - - if (code >= 97) { - val = code - 97 + 10; - } else if (code >= 65) { - val = code - 65 + 10; - } else if (_isDigit(code)) { - val = code - 48; - } else { - val = Infinity; - } - - if (val >= radix) { - if (this.options.errorRecovery && val <= 9) { - val = 0; - this.raise(this.state.start + i + 2, ErrorMessages.InvalidDigit, radix); - } else if (forceLen) { - val = 0; - invalid = true; - } else { - break; - } - } - - ++this.state.pos; - total = total * radix + val; - } - - if (this.state.pos === start || len != null && this.state.pos - start !== len || invalid) { - return null; - } - - return total; - } - - readRadixNumber(radix) { - const start = this.state.pos; - let isBigInt = false; - this.state.pos += 2; - const val = this.readInt(radix); - - if (val == null) { - this.raise(this.state.start + 2, ErrorMessages.InvalidDigit, radix); - } - - const next = this.input.charCodeAt(this.state.pos); - - if (next === 110) { - ++this.state.pos; - isBigInt = true; - } else if (next === 109) { - throw this.raise(start, ErrorMessages.InvalidDecimal); - } - - if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); - } - - if (isBigInt) { - const str = this.input.slice(start, this.state.pos).replace(/[_n]/g, ""); - this.finishToken(122, str); - return; - } - - this.finishToken(121, val); - } - - readNumber(startsWithDot) { - const start = this.state.pos; - let isFloat = false; - let isBigInt = false; - let isDecimal = false; - let hasExponent = false; - let isOctal = false; - - if (!startsWithDot && this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidNumber); - } - - const hasLeadingZero = this.state.pos - start >= 2 && this.input.charCodeAt(start) === 48; - - if (hasLeadingZero) { - const integer = this.input.slice(start, this.state.pos); - this.recordStrictModeErrors(start, ErrorMessages.StrictOctalLiteral); - - if (!this.state.strict) { - const underscorePos = integer.indexOf("_"); - - if (underscorePos > 0) { - this.raise(underscorePos + start, ErrorMessages.ZeroDigitNumericSeparator); - } - } - - isOctal = hasLeadingZero && !/[89]/.test(integer); - } - - let next = this.input.charCodeAt(this.state.pos); - - if (next === 46 && !isOctal) { - ++this.state.pos; - this.readInt(10); - isFloat = true; - next = this.input.charCodeAt(this.state.pos); - } - - if ((next === 69 || next === 101) && !isOctal) { - next = this.input.charCodeAt(++this.state.pos); - - if (next === 43 || next === 45) { - ++this.state.pos; - } - - if (this.readInt(10) === null) { - this.raise(start, ErrorMessages.InvalidOrMissingExponent); - } - - isFloat = true; - hasExponent = true; - next = this.input.charCodeAt(this.state.pos); - } - - if (next === 110) { - if (isFloat || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidBigIntLiteral); - } - - ++this.state.pos; - isBigInt = true; - } - - if (next === 109) { - this.expectPlugin("decimal", this.state.pos); - - if (hasExponent || hasLeadingZero) { - this.raise(start, ErrorMessages.InvalidDecimal); - } - - ++this.state.pos; - isDecimal = true; - } - - if (isIdentifierStart(this.codePointAtPos(this.state.pos))) { - throw this.raise(this.state.pos, ErrorMessages.NumberIdentifier); - } - - const str = this.input.slice(start, this.state.pos).replace(/[_mn]/g, ""); - - if (isBigInt) { - this.finishToken(122, str); - return; - } - - if (isDecimal) { - this.finishToken(123, str); - return; - } - - const val = isOctal ? parseInt(str, 8) : parseFloat(str); - this.finishToken(121, val); - } - - readCodePoint(throwOnInvalid) { - const ch = this.input.charCodeAt(this.state.pos); - let code; - - if (ch === 123) { - const codePos = ++this.state.pos; - code = this.readHexChar(this.input.indexOf("}", this.state.pos) - this.state.pos, true, throwOnInvalid); - ++this.state.pos; - - if (code !== null && code > 0x10ffff) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidCodePoint); - } else { - return null; - } - } - } else { - code = this.readHexChar(4, false, throwOnInvalid); - } - - return code; - } - - readString(quote) { - let out = "", - chunkStart = ++this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } - - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.readEscapedChar(false); - chunkStart = this.state.pos; - } else if (ch === 8232 || ch === 8233) { - ++this.state.pos; - ++this.state.curLine; - this.state.lineStart = this.state.pos; - } else if (isNewLine(ch)) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } else { - ++this.state.pos; - } - } - - out += this.input.slice(chunkStart, this.state.pos++); - this.finishToken(120, out); - } - - readTmplToken() { - let out = "", - chunkStart = this.state.pos, - containsInvalid = false; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedTemplate); - } - - const ch = this.input.charCodeAt(this.state.pos); - - if (ch === 96 || ch === 36 && this.input.charCodeAt(this.state.pos + 1) === 123) { - if (this.state.pos === this.state.start && this.match(20)) { - if (ch === 36) { - this.state.pos += 2; - this.finishToken(23); - return; - } else { - ++this.state.pos; - this.finishToken(22); - return; - } - } - - out += this.input.slice(chunkStart, this.state.pos); - this.finishToken(20, containsInvalid ? null : out); - return; - } - - if (ch === 92) { - out += this.input.slice(chunkStart, this.state.pos); - const escaped = this.readEscapedChar(true); - - if (escaped === null) { - containsInvalid = true; - } else { - out += escaped; - } - - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - ++this.state.pos; - - switch (ch) { - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } - - case 10: - out += "\n"; - break; - - default: - out += String.fromCharCode(ch); - break; - } - - ++this.state.curLine; - this.state.lineStart = this.state.pos; - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - } - - recordStrictModeErrors(pos, message) { - if (this.state.strict && !this.state.strictErrors.has(pos)) { - this.raise(pos, message); - } else { - this.state.strictErrors.set(pos, message); - } - } - - readEscapedChar(inTemplate) { - const throwOnInvalid = !inTemplate; - const ch = this.input.charCodeAt(++this.state.pos); - ++this.state.pos; - - switch (ch) { - case 110: - return "\n"; - - case 114: - return "\r"; - - case 120: - { - const code = this.readHexChar(2, false, throwOnInvalid); - return code === null ? null : String.fromCharCode(code); - } - - case 117: - { - const code = this.readCodePoint(throwOnInvalid); - return code === null ? null : String.fromCodePoint(code); - } - - case 116: - return "\t"; - - case 98: - return "\b"; - - case 118: - return "\u000b"; - - case 102: - return "\f"; - - case 13: - if (this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - } - - case 10: - this.state.lineStart = this.state.pos; - ++this.state.curLine; - - case 8232: - case 8233: - return ""; - - case 56: - case 57: - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(this.state.pos - 1, ErrorMessages.StrictNumericEscape); - } - - default: - if (ch >= 48 && ch <= 55) { - const codePos = this.state.pos - 1; - const match = this.input.substr(this.state.pos - 1, 3).match(/^[0-7]+/); - let octalStr = match[0]; - let octal = parseInt(octalStr, 8); - - if (octal > 255) { - octalStr = octalStr.slice(0, -1); - octal = parseInt(octalStr, 8); - } - - this.state.pos += octalStr.length - 1; - const next = this.input.charCodeAt(this.state.pos); - - if (octalStr !== "0" || next === 56 || next === 57) { - if (inTemplate) { - return null; - } else { - this.recordStrictModeErrors(codePos, ErrorMessages.StrictNumericEscape); - } - } - - return String.fromCharCode(octal); - } - - return String.fromCharCode(ch); - } - } - - readHexChar(len, forceLen, throwOnInvalid) { - const codePos = this.state.pos; - const n = this.readInt(16, len, forceLen, false); - - if (n === null) { - if (throwOnInvalid) { - this.raise(codePos, ErrorMessages.InvalidEscapeSequence); - } else { - this.state.pos = codePos - 1; - } - } - - return n; - } - - readWord1(firstCode) { - this.state.containsEsc = false; - let word = ""; - const start = this.state.pos; - let chunkStart = this.state.pos; - - if (firstCode !== undefined) { - this.state.pos += firstCode <= 0xffff ? 1 : 2; - } - - while (this.state.pos < this.length) { - const ch = this.codePointAtPos(this.state.pos); - - if (isIdentifierChar(ch)) { - this.state.pos += ch <= 0xffff ? 1 : 2; - } else if (ch === 92) { - this.state.containsEsc = true; - word += this.input.slice(chunkStart, this.state.pos); - const escStart = this.state.pos; - const identifierCheck = this.state.pos === start ? isIdentifierStart : isIdentifierChar; - - if (this.input.charCodeAt(++this.state.pos) !== 117) { - this.raise(this.state.pos, ErrorMessages.MissingUnicodeEscape); - chunkStart = this.state.pos - 1; - continue; - } - - ++this.state.pos; - const esc = this.readCodePoint(true); - - if (esc !== null) { - if (!identifierCheck(esc)) { - this.raise(escStart, ErrorMessages.EscapedCharNotAnIdentifier); - } - - word += String.fromCodePoint(esc); - } - - chunkStart = this.state.pos; - } else { - break; - } - } - - return word + this.input.slice(chunkStart, this.state.pos); - } - - readWord(firstCode) { - const word = this.readWord1(firstCode); - const type = keywords$1.get(word); - - if (type !== undefined) { - this.finishToken(type, tokenLabelName(type)); - } else { - this.finishToken(119, word); - } - } - - checkKeywordEscapes() { - const { - type - } = this.state; - - if (tokenIsKeyword(type) && this.state.containsEsc) { - this.raise(this.state.start, ErrorMessages.InvalidEscapedReservedWord, tokenLabelName(type)); - } - } - - updateContext(prevType) { - const { - context, - type - } = this.state; - - switch (type) { - case 8: - context.pop(); - break; - - case 5: - case 7: - case 23: - context.push(types.brace); - break; - - case 22: - if (context[context.length - 1] === types.template) { - context.pop(); - } else { - context.push(types.template); - } - - break; - } - } - -} - -class ClassScope { - constructor() { - this.privateNames = new Set(); - this.loneAccessors = new Map(); - this.undefinedPrivateNames = new Map(); - } - -} -class ClassScopeHandler { - constructor(raise) { - this.stack = []; - this.undefinedPrivateNames = new Map(); - this.raise = raise; - } - - current() { - return this.stack[this.stack.length - 1]; - } - - enter() { - this.stack.push(new ClassScope()); - } - - exit() { - const oldClassScope = this.stack.pop(); - const current = this.current(); - - for (const [name, pos] of Array.from(oldClassScope.undefinedPrivateNames)) { - if (current) { - if (!current.undefinedPrivateNames.has(name)) { - current.undefinedPrivateNames.set(name, pos); - } - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } - } - } - - declarePrivateName(name, elementType, pos) { - const classScope = this.current(); - let redefined = classScope.privateNames.has(name); - - if (elementType & CLASS_ELEMENT_KIND_ACCESSOR) { - const accessor = redefined && classScope.loneAccessors.get(name); - - if (accessor) { - const oldStatic = accessor & CLASS_ELEMENT_FLAG_STATIC; - const newStatic = elementType & CLASS_ELEMENT_FLAG_STATIC; - const oldKind = accessor & CLASS_ELEMENT_KIND_ACCESSOR; - const newKind = elementType & CLASS_ELEMENT_KIND_ACCESSOR; - redefined = oldKind === newKind || oldStatic !== newStatic; - if (!redefined) classScope.loneAccessors.delete(name); - } else if (!redefined) { - classScope.loneAccessors.set(name, elementType); - } - } - - if (redefined) { - this.raise(pos, ErrorMessages.PrivateNameRedeclaration, name); - } - - classScope.privateNames.add(name); - classScope.undefinedPrivateNames.delete(name); - } - - usePrivateName(name, pos) { - let classScope; - - for (classScope of this.stack) { - if (classScope.privateNames.has(name)) return; - } - - if (classScope) { - classScope.undefinedPrivateNames.set(name, pos); - } else { - this.raise(pos, ErrorMessages.InvalidPrivateFieldResolution, name); - } - } - -} - -const kExpression = 0, - kMaybeArrowParameterDeclaration = 1, - kMaybeAsyncArrowParameterDeclaration = 2, - kParameterDeclaration = 3; - -class ExpressionScope { - constructor(type = kExpression) { - this.type = void 0; - this.type = type; - } - - canBeArrowParameterDeclaration() { - return this.type === kMaybeAsyncArrowParameterDeclaration || this.type === kMaybeArrowParameterDeclaration; - } - - isCertainlyParameterDeclaration() { - return this.type === kParameterDeclaration; - } - -} - -class ArrowHeadParsingScope extends ExpressionScope { - constructor(type) { - super(type); - this.errors = new Map(); - } - - recordDeclarationError(pos, template) { - this.errors.set(pos, template); - } - - clearDeclarationError(pos) { - this.errors.delete(pos); - } - - iterateErrors(iterator) { - this.errors.forEach(iterator); - } - -} - -class ExpressionScopeHandler { - constructor(raise) { - this.stack = [new ExpressionScope()]; - this.raise = raise; - } - - enter(scope) { - this.stack.push(scope); - } - - exit() { - this.stack.pop(); - } - - recordParameterInitializerError(pos, template) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (!scope.isCertainlyParameterDeclaration()) { - if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, template); - } else { - return; - } - - scope = stack[--i]; - } - - this.raise(pos, template); - } - - recordParenthesizedIdentifierError(pos, template) { - const { - stack - } = this; - const scope = stack[stack.length - 1]; - - if (scope.isCertainlyParameterDeclaration()) { - this.raise(pos, template); - } else if (scope.canBeArrowParameterDeclaration()) { - scope.recordDeclarationError(pos, template); - } else { - return; - } - } - - recordAsyncArrowParametersError(pos, template) { - const { - stack - } = this; - let i = stack.length - 1; - let scope = stack[i]; - - while (scope.canBeArrowParameterDeclaration()) { - if (scope.type === kMaybeAsyncArrowParameterDeclaration) { - scope.recordDeclarationError(pos, template); - } - - scope = stack[--i]; - } - } - - validateAsPattern() { - const { - stack - } = this; - const currentScope = stack[stack.length - 1]; - if (!currentScope.canBeArrowParameterDeclaration()) return; - currentScope.iterateErrors((template, pos) => { - this.raise(pos, template); - let i = stack.length - 2; - let scope = stack[i]; - - while (scope.canBeArrowParameterDeclaration()) { - scope.clearDeclarationError(pos); - scope = stack[--i]; - } - }); - } - -} -function newParameterDeclarationScope() { - return new ExpressionScope(kParameterDeclaration); -} -function newArrowHeadScope() { - return new ArrowHeadParsingScope(kMaybeArrowParameterDeclaration); -} -function newAsyncArrowScope() { - return new ArrowHeadParsingScope(kMaybeAsyncArrowParameterDeclaration); -} -function newExpressionScope() { - return new ExpressionScope(); -} - -const PARAM = 0b0000, - PARAM_YIELD = 0b0001, - PARAM_AWAIT = 0b0010, - PARAM_RETURN = 0b0100, - PARAM_IN = 0b1000; -class ProductionParameterHandler { - constructor() { - this.stacks = []; - } - - enter(flags) { - this.stacks.push(flags); - } - - exit() { - this.stacks.pop(); - } - - currentFlags() { - return this.stacks[this.stacks.length - 1]; - } - - get hasAwait() { - return (this.currentFlags() & PARAM_AWAIT) > 0; - } - - get hasYield() { - return (this.currentFlags() & PARAM_YIELD) > 0; - } - - get hasReturn() { - return (this.currentFlags() & PARAM_RETURN) > 0; - } - - get hasIn() { - return (this.currentFlags() & PARAM_IN) > 0; - } - -} -function functionFlags(isAsync, isGenerator) { - return (isAsync ? PARAM_AWAIT : 0) | (isGenerator ? PARAM_YIELD : 0); -} - -class UtilParser extends Tokenizer { - addExtra(node, key, val) { - if (!node) return; - const extra = node.extra = node.extra || {}; - extra[key] = val; - } - - isRelational(op) { - return this.match(42) && this.state.value === op; - } - - expectRelational(op) { - if (this.isRelational(op)) { - this.next(); - } else { - this.unexpected(null, 42); - } - } - - isContextual(token) { - return this.state.type === token && !this.state.containsEsc; - } - - isUnparsedContextual(nameStart, name) { - const nameEnd = nameStart + name.length; - - if (this.input.slice(nameStart, nameEnd) === name) { - const nextCh = this.input.charCodeAt(nameEnd); - return !(isIdentifierChar(nextCh) || (nextCh & 0xfc00) === 0xd800); - } - - return false; - } - - isLookaheadContextual(name) { - const next = this.nextTokenStart(); - return this.isUnparsedContextual(next, name); - } - - eatContextual(token) { - if (this.isContextual(token)) { - this.next(); - return true; - } - - return false; - } - - expectContextual(token, template) { - if (!this.eatContextual(token)) this.unexpected(null, template); - } - - canInsertSemicolon() { - return this.match(126) || this.match(8) || this.hasPrecedingLineBreak(); - } - - hasPrecedingLineBreak() { - return lineBreak.test(this.input.slice(this.state.lastTokEnd, this.state.start)); - } - - hasFollowingLineBreak() { - skipWhiteSpaceToLineBreak.lastIndex = this.state.end; - return skipWhiteSpaceToLineBreak.test(this.input); - } - - isLineTerminator() { - return this.eat(13) || this.canInsertSemicolon(); - } - - semicolon(allowAsi = true) { - if (allowAsi ? this.isLineTerminator() : this.eat(13)) return; - this.raise(this.state.lastTokEnd, ErrorMessages.MissingSemicolon); - } - - expect(type, pos) { - this.eat(type) || this.unexpected(pos, type); - } - - assertNoSpace(message = "Unexpected space.") { - if (this.state.start > this.state.lastTokEnd) { - this.raise(this.state.lastTokEnd, { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedSpace", - template: message - }); - } - } - - unexpected(pos, messageOrType = { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedToken", - template: "Unexpected token" - }) { - if (isTokenType(messageOrType)) { - messageOrType = { - code: ErrorCodes.SyntaxError, - reasonCode: "UnexpectedToken", - template: `Unexpected token, expected "${tokenLabelName(messageOrType)}"` - }; - } - - throw this.raise(pos != null ? pos : this.state.start, messageOrType); - } - - expectPlugin(name, pos) { - if (!this.hasPlugin(name)) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: [name] - }, `This experimental syntax requires enabling the parser plugin: '${name}'`); - } - - return true; - } - - expectOnePlugin(names, pos) { - if (!names.some(n => this.hasPlugin(n))) { - throw this.raiseWithData(pos != null ? pos : this.state.start, { - missingPlugin: names - }, `This experimental syntax requires enabling one of the following parser plugin(s): '${names.join(", ")}'`); - } - } - - tryParse(fn, oldState = this.state.clone()) { - const abortSignal = { - node: null - }; - - try { - const node = fn((node = null) => { - abortSignal.node = node; - throw abortSignal; - }); - - if (this.state.errors.length > oldState.errors.length) { - const failState = this.state; - this.state = oldState; - this.state.tokensLength = failState.tokensLength; - return { - node, - error: failState.errors[oldState.errors.length], - thrown: false, - aborted: false, - failState - }; - } - - return { - node, - error: null, - thrown: false, - aborted: false, - failState: null - }; - } catch (error) { - const failState = this.state; - this.state = oldState; - - if (error instanceof SyntaxError) { - return { - node: null, - error, - thrown: true, - aborted: false, - failState - }; - } - - if (error === abortSignal) { - return { - node: abortSignal.node, - error: null, - thrown: false, - aborted: true, - failState - }; - } - - throw error; - } - } - - checkExpressionErrors(refExpressionErrors, andThrow) { - if (!refExpressionErrors) return false; - const { - shorthandAssign, - doubleProto, - optionalParameters - } = refExpressionErrors; - - if (!andThrow) { - return shorthandAssign >= 0 || doubleProto >= 0 || optionalParameters >= 0; - } - - if (shorthandAssign >= 0) { - this.unexpected(shorthandAssign); - } - - if (doubleProto >= 0) { - this.raise(doubleProto, ErrorMessages.DuplicateProto); - } - - if (optionalParameters >= 0) { - this.unexpected(optionalParameters); - } - } - - isLiteralPropertyName() { - return tokenIsLiteralPropertyName(this.state.type); - } - - isPrivateName(node) { - return node.type === "PrivateName"; - } - - getPrivateNameSV(node) { - return node.id.name; - } - - hasPropertyAsPrivateName(node) { - return (node.type === "MemberExpression" || node.type === "OptionalMemberExpression") && this.isPrivateName(node.property); - } - - isOptionalChain(node) { - return node.type === "OptionalMemberExpression" || node.type === "OptionalCallExpression"; - } - - isObjectProperty(node) { - return node.type === "ObjectProperty"; - } - - isObjectMethod(node) { - return node.type === "ObjectMethod"; - } - - initializeScopes(inModule = this.options.sourceType === "module") { - const oldLabels = this.state.labels; - this.state.labels = []; - const oldExportedIdentifiers = this.exportedIdentifiers; - this.exportedIdentifiers = new Set(); - const oldInModule = this.inModule; - this.inModule = inModule; - const oldScope = this.scope; - const ScopeHandler = this.getScopeHandler(); - this.scope = new ScopeHandler(this.raise.bind(this), this.inModule); - const oldProdParam = this.prodParam; - this.prodParam = new ProductionParameterHandler(); - const oldClassScope = this.classScope; - this.classScope = new ClassScopeHandler(this.raise.bind(this)); - const oldExpressionScope = this.expressionScope; - this.expressionScope = new ExpressionScopeHandler(this.raise.bind(this)); - return () => { - this.state.labels = oldLabels; - this.exportedIdentifiers = oldExportedIdentifiers; - this.inModule = oldInModule; - this.scope = oldScope; - this.prodParam = oldProdParam; - this.classScope = oldClassScope; - this.expressionScope = oldExpressionScope; - }; - } - - enterInitialScopes() { - let paramFlags = PARAM; - - if (this.inModule) { - paramFlags |= PARAM_AWAIT; - } - - this.scope.enter(SCOPE_PROGRAM); - this.prodParam.enter(paramFlags); - } - -} -class ExpressionErrors { - constructor() { - this.shorthandAssign = -1; - this.doubleProto = -1; - this.optionalParameters = -1; - } - -} - -class Node { - constructor(parser, pos, loc) { - this.type = ""; - this.start = pos; - this.end = 0; - this.loc = new SourceLocation(loc); - if (parser != null && parser.options.ranges) this.range = [pos, 0]; - if (parser != null && parser.filename) this.loc.filename = parser.filename; - } - -} - -const NodePrototype = Node.prototype; -{ - NodePrototype.__clone = function () { - const newNode = new Node(); - const keys = Object.keys(this); - - for (let i = 0, length = keys.length; i < length; i++) { - const key = keys[i]; - - if (key !== "leadingComments" && key !== "trailingComments" && key !== "innerComments") { - newNode[key] = this[key]; - } - } - - return newNode; - }; -} - -function clonePlaceholder(node) { - return cloneIdentifier(node); -} - -function cloneIdentifier(node) { - const { - type, - start, - end, - loc, - range, - extra, - name - } = node; - const cloned = Object.create(NodePrototype); - cloned.type = type; - cloned.start = start; - cloned.end = end; - cloned.loc = loc; - cloned.range = range; - cloned.extra = extra; - cloned.name = name; - - if (type === "Placeholder") { - cloned.expectedNode = node.expectedNode; - } - - return cloned; -} -function cloneStringLiteral(node) { - const { - type, - start, - end, - loc, - range, - extra - } = node; - - if (type === "Placeholder") { - return clonePlaceholder(node); - } - - const cloned = Object.create(NodePrototype); - cloned.type = "StringLiteral"; - cloned.start = start; - cloned.end = end; - cloned.loc = loc; - cloned.range = range; - cloned.extra = extra; - cloned.value = node.value; - return cloned; -} -class NodeUtils extends UtilParser { - startNode() { - return new Node(this, this.state.start, this.state.startLoc); - } - - startNodeAt(pos, loc) { - return new Node(this, pos, loc); - } - - startNodeAtNode(type) { - return this.startNodeAt(type.start, type.loc.start); - } - - finishNode(node, type) { - return this.finishNodeAt(node, type, this.state.lastTokEnd, this.state.lastTokEndLoc); - } - - finishNodeAt(node, type, pos, loc) { - - node.type = type; - node.end = pos; - node.loc.end = loc; - if (this.options.ranges) node.range[1] = pos; - if (this.options.attachComment) this.processComment(node); - return node; - } - - resetStartLocation(node, start, startLoc) { - node.start = start; - node.loc.start = startLoc; - if (this.options.ranges) node.range[0] = start; - } - - resetEndLocation(node, end = this.state.lastTokEnd, endLoc = this.state.lastTokEndLoc) { - node.end = end; - node.loc.end = endLoc; - if (this.options.ranges) node.range[1] = end; - } - - resetStartLocationFromNode(node, locationNode) { - this.resetStartLocation(node, locationNode.start, locationNode.loc.start); - } - -} - -const reservedTypes = new Set(["_", "any", "bool", "boolean", "empty", "extends", "false", "interface", "mixed", "null", "number", "static", "string", "true", "typeof", "void"]); -const FlowErrors = makeErrorTemplates({ - AmbiguousConditionalArrow: "Ambiguous expression: wrap the arrow functions in parentheses to disambiguate.", - AmbiguousDeclareModuleKind: "Found both `declare module.exports` and `declare export` in the same module. Modules can only have 1 since they are either an ES module or they are a CommonJS module.", - AssignReservedType: "Cannot overwrite reserved type %0.", - DeclareClassElement: "The `declare` modifier can only appear on class fields.", - DeclareClassFieldInitializer: "Initializers are not allowed in fields with the `declare` modifier.", - DuplicateDeclareModuleExports: "Duplicate `declare module.exports` statement.", - EnumBooleanMemberNotInitialized: "Boolean enum members need to be initialized. Use either `%0 = true,` or `%0 = false,` in enum `%1`.", - EnumDuplicateMemberName: "Enum member names need to be unique, but the name `%0` has already been used before in enum `%1`.", - EnumInconsistentMemberValues: "Enum `%0` has inconsistent member initializers. Either use no initializers, or consistently use literals (either booleans, numbers, or strings) for all member initializers.", - EnumInvalidExplicitType: "Enum type `%1` is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidExplicitTypeUnknownSupplied: "Supplied enum type is not valid. Use one of `boolean`, `number`, `string`, or `symbol` in enum `%0`.", - EnumInvalidMemberInitializerPrimaryType: "Enum `%0` has type `%2`, so the initializer of `%1` needs to be a %2 literal.", - EnumInvalidMemberInitializerSymbolType: "Symbol enum members cannot be initialized. Use `%1,` in enum `%0`.", - EnumInvalidMemberInitializerUnknownType: "The enum member initializer for `%1` needs to be a literal (either a boolean, number, or string) in enum `%0`.", - EnumInvalidMemberName: "Enum member names cannot start with lowercase 'a' through 'z'. Instead of using `%0`, consider using `%1`, in enum `%2`.", - EnumNumberMemberNotInitialized: "Number enum members need to be initialized, e.g. `%1 = 1` in enum `%0`.", - EnumStringMemberInconsistentlyInitailized: "String enum members need to consistently either all use initializers, or use no initializers, in enum `%0`.", - GetterMayNotHaveThisParam: "A getter cannot have a `this` parameter.", - ImportTypeShorthandOnlyInPureImport: "The `type` and `typeof` keywords on named imports can only be used on regular `import` statements. It cannot be used with `import type` or `import typeof` statements.", - InexactInsideExact: "Explicit inexact syntax cannot appear inside an explicit exact object type.", - InexactInsideNonObject: "Explicit inexact syntax cannot appear in class or interface definitions.", - InexactVariance: "Explicit inexact syntax cannot have variance.", - InvalidNonTypeImportInDeclareModule: "Imports within a `declare module` body must always be `import type` or `import typeof`.", - MissingTypeParamDefault: "Type parameter declaration needs a default, since a preceding type parameter declaration has a default.", - NestedDeclareModule: "`declare module` cannot be used inside another `declare module`.", - NestedFlowComment: "Cannot have a flow comment inside another flow comment.", - PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", - SetterMayNotHaveThisParam: "A setter cannot have a `this` parameter.", - SpreadVariance: "Spread properties cannot have variance.", - ThisParamAnnotationRequired: "A type annotation is required for the `this` parameter.", - ThisParamBannedInConstructor: "Constructors cannot have a `this` parameter; constructors don't bind `this` like other functions.", - ThisParamMayNotBeOptional: "The `this` parameter cannot be optional.", - ThisParamMustBeFirst: "The `this` parameter must be the first function parameter.", - ThisParamNoDefault: "The `this` parameter may not have a default value.", - TypeBeforeInitializer: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", - TypeCastInPattern: "The type cast expression is expected to be wrapped with parenthesis.", - UnexpectedExplicitInexactInObject: "Explicit inexact syntax must appear at the end of an inexact object.", - UnexpectedReservedType: "Unexpected reserved type %0.", - UnexpectedReservedUnderscore: "`_` is only allowed as a type argument to call or new.", - UnexpectedSpaceBetweenModuloChecks: "Spaces between `%` and `checks` are not allowed here.", - UnexpectedSpreadType: "Spread operator cannot appear in class or interface definitions.", - UnexpectedSubtractionOperand: 'Unexpected token, expected "number" or "bigint".', - UnexpectedTokenAfterTypeParameter: "Expected an arrow function after this type parameter declaration.", - UnexpectedTypeParameterBeforeAsyncArrowFunction: "Type parameters must come after the async keyword, e.g. instead of ` async () => {}`, use `async () => {}`.", - UnsupportedDeclareExportKind: "`declare export %0` is not supported. Use `%1` instead.", - UnsupportedStatementInDeclareModule: "Only declares and type imports are allowed inside declare module.", - UnterminatedFlowComment: "Unterminated flow-comment." -}, ErrorCodes.SyntaxError, "flow"); - -function isEsModuleType(bodyElement) { - return bodyElement.type === "DeclareExportAllDeclaration" || bodyElement.type === "DeclareExportDeclaration" && (!bodyElement.declaration || bodyElement.declaration.type !== "TypeAlias" && bodyElement.declaration.type !== "InterfaceDeclaration"); -} - -function hasTypeImportKind(node) { - return node.importKind === "type" || node.importKind === "typeof"; -} - -function isMaybeDefaultImport(type) { - return tokenIsKeywordOrIdentifier(type) && type !== 88; -} - -const exportSuggestions = { - const: "declare export var", - let: "declare export var", - type: "export type", - interface: "export interface" -}; - -function partition(list, test) { - const list1 = []; - const list2 = []; - - for (let i = 0; i < list.length; i++) { - (test(list[i], i, list) ? list1 : list2).push(list[i]); - } - - return [list1, list2]; -} - -const FLOW_PRAGMA_REGEX = /\*?\s*@((?:no)?flow)\b/; -var flow = (superClass => class extends superClass { - constructor(...args) { - super(...args); - this.flowPragma = undefined; - } - - getScopeHandler() { - return FlowScopeHandler; - } - - shouldParseTypes() { - return this.getPluginOption("flow", "all") || this.flowPragma === "flow"; - } - - shouldParseEnums() { - return !!this.getPluginOption("flow", "enums"); - } - - finishToken(type, val) { - if (type !== 120 && type !== 13 && type !== 26) { - if (this.flowPragma === undefined) { - this.flowPragma = null; - } - } - - return super.finishToken(type, val); - } - - addComment(comment) { - if (this.flowPragma === undefined) { - const matches = FLOW_PRAGMA_REGEX.exec(comment.value); - - if (!matches) ; else if (matches[1] === "flow") { - this.flowPragma = "flow"; - } else if (matches[1] === "noflow") { - this.flowPragma = "noflow"; - } else { - throw new Error("Unexpected flow pragma"); - } - } - - return super.addComment(comment); - } - - flowParseTypeInitialiser(tok) { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(tok || 14); - const type = this.flowParseType(); - this.state.inType = oldInType; - return type; - } - - flowParsePredicate() { - const node = this.startNode(); - const moduloPos = this.state.start; - this.next(); - this.expectContextual(98); - - if (this.state.lastTokStart > moduloPos + 1) { - this.raise(moduloPos, FlowErrors.UnexpectedSpaceBetweenModuloChecks); - } - - if (this.eat(10)) { - node.value = this.parseExpression(); - this.expect(11); - return this.finishNode(node, "DeclaredPredicate"); - } else { - return this.finishNode(node, "InferredPredicate"); - } - } - - flowParseTypeAndPredicateInitialiser() { - const oldInType = this.state.inType; - this.state.inType = true; - this.expect(14); - let type = null; - let predicate = null; - - if (this.match(45)) { - this.state.inType = oldInType; - predicate = this.flowParsePredicate(); - } else { - type = this.flowParseType(); - this.state.inType = oldInType; - - if (this.match(45)) { - predicate = this.flowParsePredicate(); - } - } - - return [type, predicate]; - } - - flowParseDeclareClass(node) { - this.next(); - this.flowParseInterfaceish(node, true); - return this.finishNode(node, "DeclareClass"); - } - - flowParseDeclareFunction(node) { - this.next(); - const id = node.id = this.parseIdentifier(); - const typeNode = this.startNode(); - const typeContainer = this.startNode(); - - if (this.isRelational("<")) { - typeNode.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - typeNode.typeParameters = null; - } - - this.expect(10); - const tmp = this.flowParseFunctionTypeParams(); - typeNode.params = tmp.params; - typeNode.rest = tmp.rest; - typeNode.this = tmp._this; - this.expect(11); - [typeNode.returnType, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - typeContainer.typeAnnotation = this.finishNode(typeNode, "FunctionTypeAnnotation"); - id.typeAnnotation = this.finishNode(typeContainer, "TypeAnnotation"); - this.resetEndLocation(id); - this.semicolon(); - this.scope.declareName(node.id.name, BIND_FLOW_DECLARE_FN, node.id.start); - return this.finishNode(node, "DeclareFunction"); - } - - flowParseDeclare(node, insideModule) { - if (this.match(71)) { - return this.flowParseDeclareClass(node); - } else if (this.match(59)) { - return this.flowParseDeclareFunction(node); - } else if (this.match(65)) { - return this.flowParseDeclareVariable(node); - } else if (this.eatContextual(114)) { - if (this.match(16)) { - return this.flowParseDeclareModuleExports(node); - } else { - if (insideModule) { - this.raise(this.state.lastTokStart, FlowErrors.NestedDeclareModule); - } - - return this.flowParseDeclareModule(node); - } - } else if (this.isContextual(117)) { - return this.flowParseDeclareTypeAlias(node); - } else if (this.isContextual(118)) { - return this.flowParseDeclareOpaqueType(node); - } else if (this.isContextual(116)) { - return this.flowParseDeclareInterface(node); - } else if (this.match(73)) { - return this.flowParseDeclareExportDeclaration(node, insideModule); - } else { - throw this.unexpected(); - } - } - - flowParseDeclareVariable(node) { - this.next(); - node.id = this.flowParseTypeAnnotatableIdentifier(true); - this.scope.declareName(node.id.name, BIND_VAR, node.id.start); - this.semicolon(); - return this.finishNode(node, "DeclareVariable"); - } - - flowParseDeclareModule(node) { - this.scope.enter(SCOPE_OTHER); - - if (this.match(120)) { - node.id = this.parseExprAtom(); - } else { - node.id = this.parseIdentifier(); - } - - const bodyNode = node.body = this.startNode(); - const body = bodyNode.body = []; - this.expect(5); - - while (!this.match(8)) { - let bodyNode = this.startNode(); - - if (this.match(74)) { - this.next(); - - if (!this.isContextual(117) && !this.match(78)) { - this.raise(this.state.lastTokStart, FlowErrors.InvalidNonTypeImportInDeclareModule); - } - - this.parseImport(bodyNode); - } else { - this.expectContextual(112, FlowErrors.UnsupportedStatementInDeclareModule); - bodyNode = this.flowParseDeclare(bodyNode, true); - } - - body.push(bodyNode); - } - - this.scope.exit(); - this.expect(8); - this.finishNode(bodyNode, "BlockStatement"); - let kind = null; - let hasModuleExport = false; - body.forEach(bodyElement => { - if (isEsModuleType(bodyElement)) { - if (kind === "CommonJS") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "ES"; - } else if (bodyElement.type === "DeclareModuleExports") { - if (hasModuleExport) { - this.raise(bodyElement.start, FlowErrors.DuplicateDeclareModuleExports); - } - - if (kind === "ES") { - this.raise(bodyElement.start, FlowErrors.AmbiguousDeclareModuleKind); - } - - kind = "CommonJS"; - hasModuleExport = true; - } - }); - node.kind = kind || "CommonJS"; - return this.finishNode(node, "DeclareModule"); - } - - flowParseDeclareExportDeclaration(node, insideModule) { - this.expect(73); - - if (this.eat(56)) { - if (this.match(59) || this.match(71)) { - node.declaration = this.flowParseDeclare(this.startNode()); - } else { - node.declaration = this.flowParseType(); - this.semicolon(); - } - - node.default = true; - return this.finishNode(node, "DeclareExportDeclaration"); - } else { - if (this.match(66) || this.isLet() || (this.isContextual(117) || this.isContextual(116)) && !insideModule) { - const label = this.state.value; - const suggestion = exportSuggestions[label]; - throw this.raise(this.state.start, FlowErrors.UnsupportedDeclareExportKind, label, suggestion); - } - - if (this.match(65) || this.match(59) || this.match(71) || this.isContextual(118)) { - node.declaration = this.flowParseDeclare(this.startNode()); - node.default = false; - return this.finishNode(node, "DeclareExportDeclaration"); - } else if (this.match(46) || this.match(5) || this.isContextual(116) || this.isContextual(117) || this.isContextual(118)) { - node = this.parseExport(node); - - if (node.type === "ExportNamedDeclaration") { - node.type = "ExportDeclaration"; - node.default = false; - delete node.exportKind; - } - - node.type = "Declare" + node.type; - return node; - } - } - - throw this.unexpected(); - } - - flowParseDeclareModuleExports(node) { - this.next(); - this.expectContextual(99); - node.typeAnnotation = this.flowParseTypeAnnotation(); - this.semicolon(); - return this.finishNode(node, "DeclareModuleExports"); - } - - flowParseDeclareTypeAlias(node) { - this.next(); - this.flowParseTypeAlias(node); - node.type = "DeclareTypeAlias"; - return node; - } - - flowParseDeclareOpaqueType(node) { - this.next(); - this.flowParseOpaqueType(node, true); - node.type = "DeclareOpaqueType"; - return node; - } - - flowParseDeclareInterface(node) { - this.next(); - this.flowParseInterfaceish(node); - return this.finishNode(node, "DeclareInterface"); - } - - flowParseInterfaceish(node, isClass = false) { - node.id = this.flowParseRestrictedIdentifier(!isClass, true); - this.scope.declareName(node.id.name, isClass ? BIND_FUNCTION : BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.extends = []; - node.implements = []; - node.mixins = []; - - if (this.eat(72)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (!isClass && this.eat(12)); - } - - if (this.isContextual(105)) { - this.next(); - - do { - node.mixins.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - - if (this.isContextual(101)) { - this.next(); - - do { - node.implements.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - - node.body = this.flowParseObjectType({ - allowStatic: isClass, - allowExact: false, - allowSpread: false, - allowProto: isClass, - allowInexact: false - }); - } - - flowParseInterfaceExtends() { - const node = this.startNode(); - node.id = this.flowParseQualifiedTypeIdentifier(); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - - return this.finishNode(node, "InterfaceExtends"); - } - - flowParseInterface(node) { - this.flowParseInterfaceish(node); - return this.finishNode(node, "InterfaceDeclaration"); - } - - checkNotUnderscore(word) { - if (word === "_") { - this.raise(this.state.start, FlowErrors.UnexpectedReservedUnderscore); - } - } - - checkReservedType(word, startLoc, declaration) { - if (!reservedTypes.has(word)) return; - this.raise(startLoc, declaration ? FlowErrors.AssignReservedType : FlowErrors.UnexpectedReservedType, word); - } - - flowParseRestrictedIdentifier(liberal, declaration) { - this.checkReservedType(this.state.value, this.state.start, declaration); - return this.parseIdentifier(liberal); - } - - flowParseTypeAlias(node) { - node.id = this.flowParseRestrictedIdentifier(false, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.right = this.flowParseTypeInitialiser(27); - this.semicolon(); - return this.finishNode(node, "TypeAlias"); - } - - flowParseOpaqueType(node, declare) { - this.expectContextual(117); - node.id = this.flowParseRestrictedIdentifier(true, true); - this.scope.declareName(node.id.name, BIND_LEXICAL, node.id.start); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } else { - node.typeParameters = null; - } - - node.supertype = null; - - if (this.match(14)) { - node.supertype = this.flowParseTypeInitialiser(14); - } - - node.impltype = null; - - if (!declare) { - node.impltype = this.flowParseTypeInitialiser(27); - } - - this.semicolon(); - return this.finishNode(node, "OpaqueType"); - } - - flowParseTypeParameter(requireDefault = false) { - const nodeStart = this.state.start; - const node = this.startNode(); - const variance = this.flowParseVariance(); - const ident = this.flowParseTypeAnnotatableIdentifier(); - node.name = ident.name; - node.variance = variance; - node.bound = ident.typeAnnotation; - - if (this.match(27)) { - this.eat(27); - node.default = this.flowParseType(); - } else { - if (requireDefault) { - this.raise(nodeStart, FlowErrors.MissingTypeParamDefault); - } - } - - return this.finishNode(node, "TypeParameter"); - } - - flowParseTypeParameterDeclaration() { - const oldInType = this.state.inType; - const node = this.startNode(); - node.params = []; - this.state.inType = true; - - if (this.isRelational("<") || this.match(129)) { - this.next(); - } else { - this.unexpected(); - } - - let defaultRequired = false; - - do { - const typeParameter = this.flowParseTypeParameter(defaultRequired); - node.params.push(typeParameter); - - if (typeParameter.default) { - defaultRequired = true; - } - - if (!this.isRelational(">")) { - this.expect(12); - } - } while (!this.isRelational(">")); - - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterDeclaration"); - } - - flowParseTypeParameterInstantiation() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = false; - - while (!this.isRelational(">")) { - node.params.push(this.flowParseType()); - - if (!this.isRelational(">")) { - this.expect(12); - } - } - - this.state.noAnonFunctionType = oldNoAnonFunctionType; - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - - flowParseTypeParameterInstantiationCallOrNew() { - const node = this.startNode(); - const oldInType = this.state.inType; - node.params = []; - this.state.inType = true; - this.expectRelational("<"); - - while (!this.isRelational(">")) { - node.params.push(this.flowParseTypeOrImplicitInstantiation()); - - if (!this.isRelational(">")) { - this.expect(12); - } - } - - this.expectRelational(">"); - this.state.inType = oldInType; - return this.finishNode(node, "TypeParameterInstantiation"); - } - - flowParseInterfaceType() { - const node = this.startNode(); - this.expectContextual(116); - node.extends = []; - - if (this.eat(72)) { - do { - node.extends.push(this.flowParseInterfaceExtends()); - } while (this.eat(12)); - } - - node.body = this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: false, - allowProto: false, - allowInexact: false - }); - return this.finishNode(node, "InterfaceTypeAnnotation"); - } - - flowParseObjectPropertyKey() { - return this.match(121) || this.match(120) ? this.parseExprAtom() : this.parseIdentifier(true); - } - - flowParseObjectTypeIndexer(node, isStatic, variance) { - node.static = isStatic; - - if (this.lookahead().type === 14) { - node.id = this.flowParseObjectPropertyKey(); - node.key = this.flowParseTypeInitialiser(); - } else { - node.id = null; - node.key = this.flowParseType(); - } - - this.expect(3); - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - return this.finishNode(node, "ObjectTypeIndexer"); - } - - flowParseObjectTypeInternalSlot(node, isStatic) { - node.static = isStatic; - node.id = this.flowParseObjectPropertyKey(); - this.expect(3); - this.expect(3); - - if (this.isRelational("<") || this.match(10)) { - node.method = true; - node.optional = false; - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); - } else { - node.method = false; - - if (this.eat(17)) { - node.optional = true; - } - - node.value = this.flowParseTypeInitialiser(); - } - - return this.finishNode(node, "ObjectTypeInternalSlot"); - } - - flowParseObjectTypeMethodish(node) { - node.params = []; - node.rest = null; - node.typeParameters = null; - node.this = null; - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - this.expect(10); - - if (this.match(69)) { - node.this = this.flowParseFunctionTypeParam(true); - node.this.name = null; - - if (!this.match(11)) { - this.expect(12); - } - } - - while (!this.match(11) && !this.match(21)) { - node.params.push(this.flowParseFunctionTypeParam(false)); - - if (!this.match(11)) { - this.expect(12); - } - } - - if (this.eat(21)) { - node.rest = this.flowParseFunctionTypeParam(false); - } - - this.expect(11); - node.returnType = this.flowParseTypeInitialiser(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - flowParseObjectTypeCallProperty(node, isStatic) { - const valueNode = this.startNode(); - node.static = isStatic; - node.value = this.flowParseObjectTypeMethodish(valueNode); - return this.finishNode(node, "ObjectTypeCallProperty"); - } - - flowParseObjectType({ - allowStatic, - allowExact, - allowSpread, - allowProto, - allowInexact - }) { - const oldInType = this.state.inType; - this.state.inType = true; - const nodeStart = this.startNode(); - nodeStart.callProperties = []; - nodeStart.properties = []; - nodeStart.indexers = []; - nodeStart.internalSlots = []; - let endDelim; - let exact; - let inexact = false; - - if (allowExact && this.match(6)) { - this.expect(6); - endDelim = 9; - exact = true; - } else { - this.expect(5); - endDelim = 8; - exact = false; - } - - nodeStart.exact = exact; - - while (!this.match(endDelim)) { - let isStatic = false; - let protoStart = null; - let inexactStart = null; - const node = this.startNode(); - - if (allowProto && this.isContextual(106)) { - const lookahead = this.lookahead(); - - if (lookahead.type !== 14 && lookahead.type !== 17) { - this.next(); - protoStart = this.state.start; - allowStatic = false; - } - } - - if (allowStatic && this.isContextual(95)) { - const lookahead = this.lookahead(); - - if (lookahead.type !== 14 && lookahead.type !== 17) { - this.next(); - isStatic = true; - } - } - - const variance = this.flowParseVariance(); - - if (this.eat(0)) { - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (this.eat(0)) { - if (variance) { - this.unexpected(variance.start); - } - - nodeStart.internalSlots.push(this.flowParseObjectTypeInternalSlot(node, isStatic)); - } else { - nodeStart.indexers.push(this.flowParseObjectTypeIndexer(node, isStatic, variance)); - } - } else if (this.match(10) || this.isRelational("<")) { - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.unexpected(variance.start); - } - - nodeStart.callProperties.push(this.flowParseObjectTypeCallProperty(node, isStatic)); - } else { - let kind = "init"; - - if (this.isContextual(89) || this.isContextual(94)) { - const lookahead = this.lookahead(); - - if (tokenIsLiteralPropertyName(lookahead.type)) { - kind = this.state.value; - this.next(); - } - } - - const propOrInexact = this.flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact != null ? allowInexact : !exact); - - if (propOrInexact === null) { - inexact = true; - inexactStart = this.state.lastTokStart; - } else { - nodeStart.properties.push(propOrInexact); - } - } - - this.flowObjectTypeSemicolon(); - - if (inexactStart && !this.match(8) && !this.match(9)) { - this.raise(inexactStart, FlowErrors.UnexpectedExplicitInexactInObject); - } - } - - this.expect(endDelim); - - if (allowSpread) { - nodeStart.inexact = inexact; - } - - const out = this.finishNode(nodeStart, "ObjectTypeAnnotation"); - this.state.inType = oldInType; - return out; - } - - flowParseObjectTypeProperty(node, isStatic, protoStart, variance, kind, allowSpread, allowInexact) { - if (this.eat(21)) { - const isInexactToken = this.match(12) || this.match(13) || this.match(8) || this.match(9); - - if (isInexactToken) { - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideNonObject); - } else if (!allowInexact) { - this.raise(this.state.lastTokStart, FlowErrors.InexactInsideExact); - } - - if (variance) { - this.raise(variance.start, FlowErrors.InexactVariance); - } - - return null; - } - - if (!allowSpread) { - this.raise(this.state.lastTokStart, FlowErrors.UnexpectedSpreadType); - } - - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.raise(variance.start, FlowErrors.SpreadVariance); - } - - node.argument = this.flowParseType(); - return this.finishNode(node, "ObjectTypeSpreadProperty"); - } else { - node.key = this.flowParseObjectPropertyKey(); - node.static = isStatic; - node.proto = protoStart != null; - node.kind = kind; - let optional = false; - - if (this.isRelational("<") || this.match(10)) { - node.method = true; - - if (protoStart != null) { - this.unexpected(protoStart); - } - - if (variance) { - this.unexpected(variance.start); - } - - node.value = this.flowParseObjectTypeMethodish(this.startNodeAt(node.start, node.loc.start)); - - if (kind === "get" || kind === "set") { - this.flowCheckGetterSetterParams(node); - } - - if (!allowSpread && node.key.name === "constructor" && node.value.this) { - this.raise(node.value.this.start, FlowErrors.ThisParamBannedInConstructor); - } - } else { - if (kind !== "init") this.unexpected(); - node.method = false; - - if (this.eat(17)) { - optional = true; - } - - node.value = this.flowParseTypeInitialiser(); - node.variance = variance; - } - - node.optional = optional; - return this.finishNode(node, "ObjectTypeProperty"); - } - } - - flowCheckGetterSetterParams(property) { - const paramCount = property.kind === "get" ? 0 : 1; - const start = property.start; - const length = property.value.params.length + (property.value.rest ? 1 : 0); - - if (property.value.this) { - this.raise(property.value.this.start, property.kind === "get" ? FlowErrors.GetterMayNotHaveThisParam : FlowErrors.SetterMayNotHaveThisParam); - } - - if (length !== paramCount) { - if (property.kind === "get") { - this.raise(start, ErrorMessages.BadGetterArity); - } else { - this.raise(start, ErrorMessages.BadSetterArity); - } - } - - if (property.kind === "set" && property.value.rest) { - this.raise(start, ErrorMessages.BadSetterRestParameter); - } - } - - flowObjectTypeSemicolon() { - if (!this.eat(13) && !this.eat(12) && !this.match(8) && !this.match(9)) { - this.unexpected(); - } - } - - flowParseQualifiedTypeIdentifier(startPos, startLoc, id) { - startPos = startPos || this.state.start; - startLoc = startLoc || this.state.startLoc; - let node = id || this.flowParseRestrictedIdentifier(true); - - while (this.eat(16)) { - const node2 = this.startNodeAt(startPos, startLoc); - node2.qualification = node; - node2.id = this.flowParseRestrictedIdentifier(true); - node = this.finishNode(node2, "QualifiedTypeIdentifier"); - } - - return node; - } - - flowParseGenericType(startPos, startLoc, id) { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = null; - node.id = this.flowParseQualifiedTypeIdentifier(startPos, startLoc, id); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } - - return this.finishNode(node, "GenericTypeAnnotation"); - } - - flowParseTypeofType() { - const node = this.startNode(); - this.expect(78); - node.argument = this.flowParsePrimaryType(); - return this.finishNode(node, "TypeofTypeAnnotation"); - } - - flowParseTupleType() { - const node = this.startNode(); - node.types = []; - this.expect(0); - - while (this.state.pos < this.length && !this.match(3)) { - node.types.push(this.flowParseType()); - if (this.match(3)) break; - this.expect(12); - } - - this.expect(3); - return this.finishNode(node, "TupleTypeAnnotation"); - } - - flowParseFunctionTypeParam(first) { - let name = null; - let optional = false; - let typeAnnotation = null; - const node = this.startNode(); - const lh = this.lookahead(); - const isThis = this.state.type === 69; - - if (lh.type === 14 || lh.type === 17) { - if (isThis && !first) { - this.raise(node.start, FlowErrors.ThisParamMustBeFirst); - } - - name = this.parseIdentifier(isThis); - - if (this.eat(17)) { - optional = true; - - if (isThis) { - this.raise(node.start, FlowErrors.ThisParamMayNotBeOptional); - } - } - - typeAnnotation = this.flowParseTypeInitialiser(); - } else { - typeAnnotation = this.flowParseType(); - } - - node.name = name; - node.optional = optional; - node.typeAnnotation = typeAnnotation; - return this.finishNode(node, "FunctionTypeParam"); - } - - reinterpretTypeAsFunctionTypeParam(type) { - const node = this.startNodeAt(type.start, type.loc.start); - node.name = null; - node.optional = false; - node.typeAnnotation = type; - return this.finishNode(node, "FunctionTypeParam"); - } - - flowParseFunctionTypeParams(params = []) { - let rest = null; - let _this = null; - - if (this.match(69)) { - _this = this.flowParseFunctionTypeParam(true); - _this.name = null; - - if (!this.match(11)) { - this.expect(12); - } - } - - while (!this.match(11) && !this.match(21)) { - params.push(this.flowParseFunctionTypeParam(false)); - - if (!this.match(11)) { - this.expect(12); - } - } - - if (this.eat(21)) { - rest = this.flowParseFunctionTypeParam(false); - } - - return { - params, - rest, - _this - }; - } - - flowIdentToTypeAnnotation(startPos, startLoc, node, id) { - switch (id.name) { - case "any": - return this.finishNode(node, "AnyTypeAnnotation"); - - case "bool": - case "boolean": - return this.finishNode(node, "BooleanTypeAnnotation"); - - case "mixed": - return this.finishNode(node, "MixedTypeAnnotation"); - - case "empty": - return this.finishNode(node, "EmptyTypeAnnotation"); - - case "number": - return this.finishNode(node, "NumberTypeAnnotation"); - - case "string": - return this.finishNode(node, "StringTypeAnnotation"); - - case "symbol": - return this.finishNode(node, "SymbolTypeAnnotation"); - - default: - this.checkNotUnderscore(id.name); - return this.flowParseGenericType(startPos, startLoc, id); - } - } - - flowParsePrimaryType() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.startNode(); - let tmp; - let type; - let isGroupedType = false; - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - - switch (this.state.type) { - case 5: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: false, - allowSpread: true, - allowProto: false, - allowInexact: true - }); - - case 6: - return this.flowParseObjectType({ - allowStatic: false, - allowExact: true, - allowSpread: true, - allowProto: false, - allowInexact: false - }); - - case 0: - this.state.noAnonFunctionType = false; - type = this.flowParseTupleType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - return type; - - case 42: - if (this.state.value === "<") { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - this.expect(10); - tmp = this.flowParseFunctionTypeParams(); - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(11); - this.expect(19); - node.returnType = this.flowParseType(); - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - break; - - case 10: - this.next(); - - if (!this.match(11) && !this.match(21)) { - if (tokenIsIdentifier(this.state.type) || this.match(69)) { - const token = this.lookahead().type; - isGroupedType = token !== 17 && token !== 14; - } else { - isGroupedType = true; - } - } - - if (isGroupedType) { - this.state.noAnonFunctionType = false; - type = this.flowParseType(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - - if (this.state.noAnonFunctionType || !(this.match(12) || this.match(11) && this.lookahead().type === 19)) { - this.expect(11); - return type; - } else { - this.eat(12); - } - } - - if (type) { - tmp = this.flowParseFunctionTypeParams([this.reinterpretTypeAsFunctionTypeParam(type)]); - } else { - tmp = this.flowParseFunctionTypeParams(); - } - - node.params = tmp.params; - node.rest = tmp.rest; - node.this = tmp._this; - this.expect(11); - this.expect(19); - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - - case 120: - return this.parseLiteral(this.state.value, "StringLiteralTypeAnnotation"); - - case 76: - case 77: - node.value = this.match(76); - this.next(); - return this.finishNode(node, "BooleanLiteralTypeAnnotation"); - - case 44: - if (this.state.value === "-") { - this.next(); - - if (this.match(121)) { - return this.parseLiteralAtNode(-this.state.value, "NumberLiteralTypeAnnotation", node); - } - - if (this.match(122)) { - return this.parseLiteralAtNode(-this.state.value, "BigIntLiteralTypeAnnotation", node); - } - - throw this.raise(this.state.start, FlowErrors.UnexpectedSubtractionOperand); - } - - throw this.unexpected(); - - case 121: - return this.parseLiteral(this.state.value, "NumberLiteralTypeAnnotation"); - - case 122: - return this.parseLiteral(this.state.value, "BigIntLiteralTypeAnnotation"); - - case 79: - this.next(); - return this.finishNode(node, "VoidTypeAnnotation"); - - case 75: - this.next(); - return this.finishNode(node, "NullLiteralTypeAnnotation"); - - case 69: - this.next(); - return this.finishNode(node, "ThisTypeAnnotation"); - - case 46: - this.next(); - return this.finishNode(node, "ExistsTypeAnnotation"); - - case 78: - return this.flowParseTypeofType(); - - default: - if (tokenIsKeyword(this.state.type)) { - const label = tokenLabelName(this.state.type); - this.next(); - return super.createIdentifier(node, label); - } else if (tokenIsIdentifier(this.state.type)) { - if (this.isContextual(116)) { - return this.flowParseInterfaceType(); - } - - return this.flowIdentToTypeAnnotation(startPos, startLoc, node, this.parseIdentifier()); - } - - } - - throw this.unexpected(); - } - - flowParsePostfixType() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let type = this.flowParsePrimaryType(); - let seenOptionalIndexedAccess = false; - - while ((this.match(0) || this.match(18)) && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startPos, startLoc); - const optional = this.eat(18); - seenOptionalIndexedAccess = seenOptionalIndexedAccess || optional; - this.expect(0); - - if (!optional && this.match(3)) { - node.elementType = type; - this.next(); - type = this.finishNode(node, "ArrayTypeAnnotation"); - } else { - node.objectType = type; - node.indexType = this.flowParseType(); - this.expect(3); - - if (seenOptionalIndexedAccess) { - node.optional = optional; - type = this.finishNode(node, "OptionalIndexedAccessType"); - } else { - type = this.finishNode(node, "IndexedAccessType"); - } - } - } - - return type; - } - - flowParsePrefixType() { - const node = this.startNode(); - - if (this.eat(17)) { - node.typeAnnotation = this.flowParsePrefixType(); - return this.finishNode(node, "NullableTypeAnnotation"); - } else { - return this.flowParsePostfixType(); - } - } - - flowParseAnonFunctionWithoutParens() { - const param = this.flowParsePrefixType(); - - if (!this.state.noAnonFunctionType && this.eat(19)) { - const node = this.startNodeAt(param.start, param.loc.start); - node.params = [this.reinterpretTypeAsFunctionTypeParam(param)]; - node.rest = null; - node.this = null; - node.returnType = this.flowParseType(); - node.typeParameters = null; - return this.finishNode(node, "FunctionTypeAnnotation"); - } - - return param; - } - - flowParseIntersectionType() { - const node = this.startNode(); - this.eat(40); - const type = this.flowParseAnonFunctionWithoutParens(); - node.types = [type]; - - while (this.eat(40)) { - node.types.push(this.flowParseAnonFunctionWithoutParens()); - } - - return node.types.length === 1 ? type : this.finishNode(node, "IntersectionTypeAnnotation"); - } - - flowParseUnionType() { - const node = this.startNode(); - this.eat(38); - const type = this.flowParseIntersectionType(); - node.types = [type]; - - while (this.eat(38)) { - node.types.push(this.flowParseIntersectionType()); - } - - return node.types.length === 1 ? type : this.finishNode(node, "UnionTypeAnnotation"); - } - - flowParseType() { - const oldInType = this.state.inType; - this.state.inType = true; - const type = this.flowParseUnionType(); - this.state.inType = oldInType; - return type; - } - - flowParseTypeOrImplicitInstantiation() { - if (this.state.type === 119 && this.state.value === "_") { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const node = this.parseIdentifier(); - return this.flowParseGenericType(startPos, startLoc, node); - } else { - return this.flowParseType(); - } - } - - flowParseTypeAnnotation() { - const node = this.startNode(); - node.typeAnnotation = this.flowParseTypeInitialiser(); - return this.finishNode(node, "TypeAnnotation"); - } - - flowParseTypeAnnotatableIdentifier(allowPrimitiveOverride) { - const ident = allowPrimitiveOverride ? this.parseIdentifier() : this.flowParseRestrictedIdentifier(); - - if (this.match(14)) { - ident.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(ident); - } - - return ident; - } - - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } - - flowParseVariance() { - let variance = null; - - if (this.match(44)) { - variance = this.startNode(); - - if (this.state.value === "+") { - variance.kind = "plus"; - } else { - variance.kind = "minus"; - } - - this.next(); - this.finishNode(variance, "Variance"); - } - - return variance; - } - - parseFunctionBody(node, allowExpressionBody, isMethod = false) { - if (allowExpressionBody) { - return this.forwardNoArrowParamsConversionAt(node, () => super.parseFunctionBody(node, true, isMethod)); - } - - return super.parseFunctionBody(node, false, isMethod); - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(14)) { - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - node.returnType = typeNode.typeAnnotation ? this.finishNode(typeNode, "TypeAnnotation") : null; - } - - super.parseFunctionBodyAndFinish(node, type, isMethod); - } - - parseStatement(context, topLevel) { - if (this.state.strict && this.isContextual(116)) { - const lookahead = this.lookahead(); - - if (tokenIsKeywordOrIdentifier(lookahead.type)) { - const node = this.startNode(); - this.next(); - return this.flowParseInterface(node); - } - } else if (this.shouldParseEnums() && this.isContextual(113)) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - - const stmt = super.parseStatement(context, topLevel); - - if (this.flowPragma === undefined && !this.isValidDirective(stmt)) { - this.flowPragma = null; - } - - return stmt; - } - - parseExpressionStatement(node, expr) { - if (expr.type === "Identifier") { - if (expr.name === "declare") { - if (this.match(71) || tokenIsIdentifier(this.state.type) || this.match(59) || this.match(65) || this.match(73)) { - return this.flowParseDeclare(node); - } - } else if (tokenIsIdentifier(this.state.type)) { - if (expr.name === "interface") { - return this.flowParseInterface(node); - } else if (expr.name === "type") { - return this.flowParseTypeAlias(node); - } else if (expr.name === "opaque") { - return this.flowParseOpaqueType(node, false); - } - } - } - - return super.parseExpressionStatement(node, expr); - } - - shouldParseExportDeclaration() { - const { - type - } = this.state; - - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 113) { - return !this.state.containsEsc; - } - - return super.shouldParseExportDeclaration(); - } - - isExportDefaultSpecifier() { - const { - type - } = this.state; - - if (tokenIsFlowInterfaceOrTypeOrOpaque(type) || this.shouldParseEnums() && type === 113) { - return this.state.containsEsc; - } - - return super.isExportDefaultSpecifier(); - } - - parseExportDefaultExpression() { - if (this.shouldParseEnums() && this.isContextual(113)) { - const node = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(node); - } - - return super.parseExportDefaultExpression(); - } - - parseConditional(expr, startPos, startLoc, refExpressionErrors) { - if (!this.match(17)) return expr; - - if (this.state.maybeInArrowParameters) { - const nextCh = this.lookaheadCharCode(); - - if (nextCh === 44 || nextCh === 61 || nextCh === 58 || nextCh === 41) { - this.setOptionalParametersError(refExpressionErrors); - return expr; - } - } - - this.expect(17); - const state = this.state.clone(); - const originalNoArrowAt = this.state.noArrowAt; - const node = this.startNodeAt(startPos, startLoc); - let { - consequent, - failed - } = this.tryParseConditionalConsequent(); - let [valid, invalid] = this.getArrowLikeExpressions(consequent); - - if (failed || invalid.length > 0) { - const noArrowAt = [...originalNoArrowAt]; - - if (invalid.length > 0) { - this.state = state; - this.state.noArrowAt = noArrowAt; - - for (let i = 0; i < invalid.length; i++) { - noArrowAt.push(invalid[i].start); - } - - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - [valid, invalid] = this.getArrowLikeExpressions(consequent); - } - - if (failed && valid.length > 1) { - this.raise(state.start, FlowErrors.AmbiguousConditionalArrow); - } - - if (failed && valid.length === 1) { - this.state = state; - noArrowAt.push(valid[0].start); - this.state.noArrowAt = noArrowAt; - ({ - consequent, - failed - } = this.tryParseConditionalConsequent()); - } - } - - this.getArrowLikeExpressions(consequent, true); - this.state.noArrowAt = originalNoArrowAt; - this.expect(14); - node.test = expr; - node.consequent = consequent; - node.alternate = this.forwardNoArrowParamsConversionAt(node, () => this.parseMaybeAssign(undefined, undefined)); - return this.finishNode(node, "ConditionalExpression"); - } - - tryParseConditionalConsequent() { - this.state.noArrowParamsConversionAt.push(this.state.start); - const consequent = this.parseMaybeAssignAllowIn(); - const failed = !this.match(14); - this.state.noArrowParamsConversionAt.pop(); - return { - consequent, - failed - }; - } - - getArrowLikeExpressions(node, disallowInvalid) { - const stack = [node]; - const arrows = []; - - while (stack.length !== 0) { - const node = stack.pop(); - - if (node.type === "ArrowFunctionExpression") { - if (node.typeParameters || !node.returnType) { - this.finishArrowValidation(node); - } else { - arrows.push(node); - } - - stack.push(node.body); - } else if (node.type === "ConditionalExpression") { - stack.push(node.consequent); - stack.push(node.alternate); - } - } - - if (disallowInvalid) { - arrows.forEach(node => this.finishArrowValidation(node)); - return [arrows, []]; - } - - return partition(arrows, node => node.params.every(param => this.isAssignable(param, true))); - } - - finishArrowValidation(node) { - var _node$extra; - - this.toAssignableList(node.params, (_node$extra = node.extra) == null ? void 0 : _node$extra.trailingComma, false); - this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - super.checkParams(node, false, true); - this.scope.exit(); - } - - forwardNoArrowParamsConversionAt(node, parse) { - let result; - - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - this.state.noArrowParamsConversionAt.push(this.state.start); - result = parse(); - this.state.noArrowParamsConversionAt.pop(); - } else { - result = parse(); - } - - return result; - } - - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); - - if (this.eat(17)) { - node.optional = true; - this.resetEndLocation(node); - } - - if (this.match(14)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.flowParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TypeCastExpression"); - } - - return node; - } - - assertModuleNodeAllowed(node) { - if (node.type === "ImportDeclaration" && (node.importKind === "type" || node.importKind === "typeof") || node.type === "ExportNamedDeclaration" && node.exportKind === "type" || node.type === "ExportAllDeclaration" && node.exportKind === "type") { - return; - } - - super.assertModuleNodeAllowed(node); - } - - parseExport(node) { - const decl = super.parseExport(node); - - if (decl.type === "ExportNamedDeclaration" || decl.type === "ExportAllDeclaration") { - decl.exportKind = decl.exportKind || "value"; - } - - return decl; - } - - parseExportDeclaration(node) { - if (this.isContextual(117)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - - if (this.match(5)) { - node.specifiers = this.parseExportSpecifiers(); - this.parseExportFrom(node); - return null; - } else { - return this.flowParseTypeAlias(declarationNode); - } - } else if (this.isContextual(118)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseOpaqueType(declarationNode, false); - } else if (this.isContextual(116)) { - node.exportKind = "type"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseInterface(declarationNode); - } else if (this.shouldParseEnums() && this.isContextual(113)) { - node.exportKind = "value"; - const declarationNode = this.startNode(); - this.next(); - return this.flowParseEnumDeclaration(declarationNode); - } else { - return super.parseExportDeclaration(node); - } - } - - eatExportStar(node) { - if (super.eatExportStar(...arguments)) return true; - - if (this.isContextual(117) && this.lookahead().type === 46) { - node.exportKind = "type"; - this.next(); - this.next(); - return true; - } - - return false; - } - - maybeParseExportNamespaceSpecifier(node) { - const pos = this.state.start; - const hasNamespace = super.maybeParseExportNamespaceSpecifier(node); - - if (hasNamespace && node.exportKind === "type") { - this.unexpected(pos); - } - - return hasNamespace; - } - - parseClassId(node, isStatement, optionalId) { - super.parseClassId(node, isStatement, optionalId); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - } - - parseClassMember(classBody, member, state) { - const pos = this.state.start; - - if (this.isContextual(112)) { - if (this.parseClassMemberFromModifier(classBody, member)) { - return; - } - - member.declare = true; - } - - super.parseClassMember(classBody, member, state); - - if (member.declare) { - if (member.type !== "ClassProperty" && member.type !== "ClassPrivateProperty" && member.type !== "PropertyDefinition") { - this.raise(pos, FlowErrors.DeclareClassElement); - } else if (member.value) { - this.raise(member.value.start, FlowErrors.DeclareClassFieldInitializer); - } - } - } - - isIterator(word) { - return word === "iterator" || word === "asyncIterator"; - } - - readIterator() { - const word = super.readWord1(); - const fullWord = "@@" + word; - - if (!this.isIterator(word) || !this.state.inType) { - this.raise(this.state.pos, ErrorMessages.InvalidIdentifier, fullWord); - } - - this.finishToken(119, fullWord); - } - - getTokenFromCode(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 123 && next === 124) { - return this.finishOp(6, 2); - } else if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(42, 1); - } else if (this.state.inType && code === 63) { - if (next === 46) { - return this.finishOp(18, 2); - } - - return this.finishOp(17, 1); - } else if (isIteratorStart(code, next)) { - this.state.pos += 2; - return this.readIterator(); - } else { - return super.getTokenFromCode(code); - } - } - - isAssignable(node, isBinding) { - if (node.type === "TypeCastExpression") { - return this.isAssignable(node.expression, isBinding); - } else { - return super.isAssignable(node, isBinding); - } - } - - toAssignable(node, isLHS = false) { - if (node.type === "TypeCastExpression") { - return super.toAssignable(this.typeCastToParameter(node), isLHS); - } else { - return super.toAssignable(node, isLHS); - } - } - - toAssignableList(exprList, trailingCommaPos, isLHS) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - - if ((expr == null ? void 0 : expr.type) === "TypeCastExpression") { - exprList[i] = this.typeCastToParameter(expr); - } - } - - return super.toAssignableList(exprList, trailingCommaPos, isLHS); - } - - toReferencedList(exprList, isParenthesizedExpr) { - for (let i = 0; i < exprList.length; i++) { - var _expr$extra; - - const expr = exprList[i]; - - if (expr && expr.type === "TypeCastExpression" && !((_expr$extra = expr.extra) != null && _expr$extra.parenthesized) && (exprList.length > 1 || !isParenthesizedExpr)) { - this.raise(expr.typeAnnotation.start, FlowErrors.TypeCastInPattern); - } - } - - return exprList; - } - - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - const node = super.parseArrayLike(close, canBePattern, isTuple, refExpressionErrors); - - if (canBePattern && !this.state.maybeInArrowParameters) { - this.toReferencedList(node.elements); - } - - return node; - } - - checkLVal(expr, ...args) { - if (expr.type !== "TypeCastExpression") { - return super.checkLVal(expr, ...args); - } - } - - parseClassProperty(node) { - if (this.match(14)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassProperty(node); - } - - parseClassPrivateProperty(node) { - if (this.match(14)) { - node.typeAnnotation = this.flowParseTypeAnnotation(); - } - - return super.parseClassPrivateProperty(node); - } - - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); - } - - isClassProperty() { - return this.match(14) || super.isClassProperty(); - } - - isNonstaticConstructor(method) { - return !this.match(14) && super.isNonstaticConstructor(method); - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - if (method.variance) { - this.unexpected(method.variance.start); - } - - delete method.variance; - - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - - if (method.params && isConstructor) { - const params = method.params; - - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } - } else if (method.type === "MethodDefinition" && isConstructor && method.value.params) { - const params = method.value.params; - - if (params.length > 0 && this.isThisParam(params[0])) { - this.raise(method.start, FlowErrors.ThisParamBannedInConstructor); - } - } - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - if (method.variance) { - this.unexpected(method.variance.start); - } - - delete method.variance; - - if (this.isRelational("<")) { - method.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); - } - - parseClassSuper(node) { - super.parseClassSuper(node); - - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.flowParseTypeParameterInstantiation(); - } - - if (this.isContextual(101)) { - this.next(); - const implemented = node.implements = []; - - do { - const node = this.startNode(); - node.id = this.flowParseRestrictedIdentifier(true); - - if (this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterInstantiation(); - } else { - node.typeParameters = null; - } - - implemented.push(this.finishNode(node, "ClassImplements")); - } while (this.eat(12)); - } - } - - checkGetterSetterParams(method) { - super.checkGetterSetterParams(method); - const params = this.getObjectOrClassMethodParams(method); - - if (params.length > 0) { - const param = params[0]; - - if (this.isThisParam(param) && method.kind === "get") { - this.raise(param.start, FlowErrors.GetterMayNotHaveThisParam); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.SetterMayNotHaveThisParam); - } - } - } - - parsePropertyName(node, isPrivateNameAllowed) { - const variance = this.flowParseVariance(); - const key = super.parsePropertyName(node, isPrivateNameAllowed); - node.variance = variance; - return key; - } - - parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - if (prop.variance) { - this.unexpected(prop.variance.start); - } - - delete prop.variance; - let typeParameters; - - if (this.isRelational("<") && !isAccessor) { - typeParameters = this.flowParseTypeParameterDeclaration(); - if (!this.match(10)) this.unexpected(); - } - - super.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); - - if (typeParameters) { - (prop.value || prop).typeParameters = typeParameters; - } - } - - parseAssignableListItemTypes(param) { - if (this.eat(17)) { - if (param.type !== "Identifier") { - this.raise(param.start, FlowErrors.PatternIsOptional); - } - - if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamMayNotBeOptional); - } - - param.optional = true; - } - - if (this.match(14)) { - param.typeAnnotation = this.flowParseTypeAnnotation(); - } else if (this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamAnnotationRequired); - } - - if (this.match(27) && this.isThisParam(param)) { - this.raise(param.start, FlowErrors.ThisParamNoDefault); - } - - this.resetEndLocation(param); - return param; - } - - parseMaybeDefault(startPos, startLoc, left) { - const node = super.parseMaybeDefault(startPos, startLoc, left); - - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, FlowErrors.TypeBeforeInitializer); - } - - return node; - } - - shouldParseDefaultImport(node) { - if (!hasTypeImportKind(node)) { - return super.shouldParseDefaultImport(node); - } - - return isMaybeDefaultImport(this.state.type); - } - - parseImportSpecifierLocal(node, specifier, type, contextDescription) { - specifier.local = hasTypeImportKind(node) ? this.flowParseRestrictedIdentifier(true, true) : this.parseIdentifier(); - this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, type)); - } - - maybeParseDefaultImportSpecifier(node) { - node.importKind = "value"; - let kind = null; - - if (this.match(78)) { - kind = "typeof"; - } else if (this.isContextual(117)) { - kind = "type"; - } - - if (kind) { - const lh = this.lookahead(); - const { - type - } = lh; - - if (kind === "type" && type === 46) { - this.unexpected(lh.start); - } - - if (isMaybeDefaultImport(type) || type === 5 || type === 46) { - this.next(); - node.importKind = kind; - } - } - - return super.maybeParseDefaultImportSpecifier(node); - } - - parseImportSpecifier(node) { - const specifier = this.startNode(); - const firstIdentIsString = this.match(120); - const firstIdent = this.parseModuleExportName(); - let specifierTypeKind = null; - - if (firstIdent.type === "Identifier") { - if (firstIdent.name === "type") { - specifierTypeKind = "type"; - } else if (firstIdent.name === "typeof") { - specifierTypeKind = "typeof"; - } - } - - let isBinding = false; - - if (this.isContextual(84) && !this.isLookaheadContextual("as")) { - const as_ident = this.parseIdentifier(true); - - if (specifierTypeKind !== null && !tokenIsKeywordOrIdentifier(this.state.type)) { - specifier.imported = as_ident; - specifier.importKind = specifierTypeKind; - specifier.local = cloneIdentifier(as_ident); - } else { - specifier.imported = firstIdent; - specifier.importKind = null; - specifier.local = this.parseIdentifier(); - } - } else { - if (specifierTypeKind !== null && tokenIsKeywordOrIdentifier(this.state.type)) { - specifier.imported = this.parseIdentifier(true); - specifier.importKind = specifierTypeKind; - } else { - if (firstIdentIsString) { - throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, firstIdent.value); - } - - specifier.imported = firstIdent; - specifier.importKind = null; - } - - if (this.eatContextual(84)) { - specifier.local = this.parseIdentifier(); - } else { - isBinding = true; - specifier.local = cloneIdentifier(specifier.imported); - } - } - - const nodeIsTypeImport = hasTypeImportKind(node); - const specifierIsTypeImport = hasTypeImportKind(specifier); - - if (nodeIsTypeImport && specifierIsTypeImport) { - this.raise(specifier.start, FlowErrors.ImportTypeShorthandOnlyInPureImport); - } - - if (nodeIsTypeImport || specifierIsTypeImport) { - this.checkReservedType(specifier.local.name, specifier.local.start, true); - } - - if (isBinding && !nodeIsTypeImport && !specifierIsTypeImport) { - this.checkReservedWord(specifier.local.name, specifier.start, true, true); - } - - this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); - } - - parseBindingAtom() { - switch (this.state.type) { - case 69: - return this.parseIdentifier(true); - - default: - return super.parseBindingAtom(); - } - } - - parseFunctionParams(node, allowModifiers) { - const kind = node.kind; - - if (kind !== "get" && kind !== "set" && this.isRelational("<")) { - node.typeParameters = this.flowParseTypeParameterDeclaration(); - } - - super.parseFunctionParams(node, allowModifiers); - } - - parseVarId(decl, kind) { - super.parseVarId(decl, kind); - - if (this.match(14)) { - decl.id.typeAnnotation = this.flowParseTypeAnnotation(); - this.resetEndLocation(decl.id); - } - } - - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(14)) { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - node.returnType = this.flowParseTypeAnnotation(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - } - - return super.parseAsyncArrowFromCallExpression(node, call); - } - - shouldParseAsyncArrow() { - return this.match(14) || super.shouldParseAsyncArrow(); - } - - parseMaybeAssign(refExpressionErrors, afterLeftParse) { - var _jsx; - - let state = null; - let jsx; - - if (this.hasPlugin("jsx") && (this.match(129) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(refExpressionErrors, afterLeftParse), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; - const curContext = context[context.length - 1]; - - if (curContext === types.j_oTag) { - context.length -= 2; - } else if (curContext === types.j_expr) { - context.length -= 1; - } - } - - if ((_jsx = jsx) != null && _jsx.error || this.isRelational("<")) { - var _jsx2, _jsx3; - - state = state || this.state.clone(); - let typeParameters; - const arrow = this.tryParse(abort => { - var _arrowExpression$extr; - - typeParameters = this.flowParseTypeParameterDeclaration(); - const arrowExpression = this.forwardNoArrowParamsConversionAt(typeParameters, () => { - const result = super.parseMaybeAssign(refExpressionErrors, afterLeftParse); - this.resetStartLocationFromNode(result, typeParameters); - return result; - }); - if ((_arrowExpression$extr = arrowExpression.extra) != null && _arrowExpression$extr.parenthesized) abort(); - const expr = this.maybeUnwrapTypeCastExpression(arrowExpression); - if (expr.type !== "ArrowFunctionExpression") abort(); - expr.typeParameters = typeParameters; - this.resetStartLocationFromNode(expr, typeParameters); - return arrowExpression; - }, state); - let arrowExpression = null; - - if (arrow.node && this.maybeUnwrapTypeCastExpression(arrow.node).type === "ArrowFunctionExpression") { - if (!arrow.error && !arrow.aborted) { - if (arrow.node.async) { - this.raise(typeParameters.start, FlowErrors.UnexpectedTypeParameterBeforeAsyncArrowFunction); - } - - return arrow.node; - } - - arrowExpression = arrow.node; - } - - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } - - if (arrowExpression) { - this.state = arrow.failState; - return arrowExpression; - } - - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - throw this.raise(typeParameters.start, FlowErrors.UnexpectedTokenAfterTypeParameter); - } - - return super.parseMaybeAssign(refExpressionErrors, afterLeftParse); - } - - parseArrow(node) { - if (this.match(14)) { - const result = this.tryParse(() => { - const oldNoAnonFunctionType = this.state.noAnonFunctionType; - this.state.noAnonFunctionType = true; - const typeNode = this.startNode(); - [typeNode.typeAnnotation, node.predicate] = this.flowParseTypeAndPredicateInitialiser(); - this.state.noAnonFunctionType = oldNoAnonFunctionType; - if (this.canInsertSemicolon()) this.unexpected(); - if (!this.match(19)) this.unexpected(); - return typeNode; - }); - if (result.thrown) return null; - if (result.error) this.state = result.failState; - node.returnType = result.node.typeAnnotation ? this.finishNode(result.node, "TypeAnnotation") : null; - } - - return super.parseArrow(node); - } - - shouldParseArrow(params) { - return this.match(14) || super.shouldParseArrow(params); - } - - setArrowFunctionParameters(node, params) { - if (this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - node.params = params; - } else { - super.setArrowFunctionParameters(node, params); - } - } - - checkParams(node, allowDuplicates, isArrowFunction) { - if (isArrowFunction && this.state.noArrowParamsConversionAt.indexOf(node.start) !== -1) { - return; - } - - for (let i = 0; i < node.params.length; i++) { - if (this.isThisParam(node.params[i]) && i > 0) { - this.raise(node.params[i].start, FlowErrors.ThisParamMustBeFirst); - } - } - - return super.checkParams(...arguments); - } - - parseParenAndDistinguishExpression(canBeArrow) { - return super.parseParenAndDistinguishExpression(canBeArrow && this.state.noArrowAt.indexOf(this.state.start) === -1); - } - - parseSubscripts(base, startPos, startLoc, noCalls) { - if (base.type === "Identifier" && base.name === "async" && this.state.noArrowAt.indexOf(startPos) !== -1) { - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.arguments = this.parseCallExpressionArguments(11, false); - base = this.finishNode(node, "CallExpression"); - } else if (base.type === "Identifier" && base.name === "async" && this.isRelational("<")) { - const state = this.state.clone(); - const arrow = this.tryParse(abort => this.parseAsyncArrowWithTypeParameters(startPos, startLoc) || abort(), state); - if (!arrow.error && !arrow.aborted) return arrow.node; - const result = this.tryParse(() => super.parseSubscripts(base, startPos, startLoc, noCalls), state); - if (result.node && !result.error) return result.node; - - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - - if (result.node) { - this.state = result.failState; - return result.node; - } - - throw arrow.error || result.error; - } - - return super.parseSubscripts(base, startPos, startLoc, noCalls); - } - - parseSubscript(base, startPos, startLoc, noCalls, subscriptState) { - if (this.match(18) && this.isLookaheadToken_lt()) { - subscriptState.optionalChainMember = true; - - if (noCalls) { - subscriptState.stop = true; - return base; - } - - this.next(); - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - node.typeArguments = this.flowParseTypeParameterInstantiation(); - this.expect(10); - node.arguments = this.parseCallExpressionArguments(11, false); - node.optional = true; - return this.finishCallExpression(node, true); - } else if (!noCalls && this.shouldParseTypes() && this.isRelational("<")) { - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const result = this.tryParse(() => { - node.typeArguments = this.flowParseTypeParameterInstantiationCallOrNew(); - this.expect(10); - node.arguments = this.parseCallExpressionArguments(11, false); - if (subscriptState.optionalChainMember) node.optional = false; - return this.finishCallExpression(node, subscriptState.optionalChainMember); - }); - - if (result.node) { - if (result.error) this.state = result.failState; - return result.node; - } - } - - return super.parseSubscript(base, startPos, startLoc, noCalls, subscriptState); - } - - parseNewArguments(node) { - let targs = null; - - if (this.shouldParseTypes() && this.isRelational("<")) { - targs = this.tryParse(() => this.flowParseTypeParameterInstantiationCallOrNew()).node; - } - - node.typeArguments = targs; - super.parseNewArguments(node); - } - - parseAsyncArrowWithTypeParameters(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - this.parseFunctionParams(node); - if (!this.parseArrow(node)) return; - return this.parseArrowExpression(node, undefined, true); - } - - readToken_mult_modulo(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 42 && next === 47 && this.state.hasFlowComment) { - this.state.hasFlowComment = false; - this.state.pos += 2; - this.nextToken(); - return; - } - - super.readToken_mult_modulo(code); - } - - readToken_pipe_amp(code) { - const next = this.input.charCodeAt(this.state.pos + 1); - - if (code === 124 && next === 125) { - this.finishOp(9, 2); - return; - } - - super.readToken_pipe_amp(code); - } - - parseTopLevel(file, program) { - const fileNode = super.parseTopLevel(file, program); - - if (this.state.hasFlowComment) { - this.raise(this.state.pos, FlowErrors.UnterminatedFlowComment); - } - - return fileNode; - } - - skipBlockComment() { - if (this.hasPlugin("flowComments") && this.skipFlowComment()) { - if (this.state.hasFlowComment) { - this.unexpected(null, FlowErrors.NestedFlowComment); - } - - this.hasFlowCommentCompletion(); - this.state.pos += this.skipFlowComment(); - this.state.hasFlowComment = true; - return; - } - - if (this.state.hasFlowComment) { - const end = this.input.indexOf("*-/", this.state.pos += 2); - - if (end === -1) { - throw this.raise(this.state.pos - 2, ErrorMessages.UnterminatedComment); - } - - this.state.pos = end + 3; - return; - } - - return super.skipBlockComment(); - } - - skipFlowComment() { - const { - pos - } = this.state; - let shiftToFirstNonWhiteSpace = 2; - - while ([32, 9].includes(this.input.charCodeAt(pos + shiftToFirstNonWhiteSpace))) { - shiftToFirstNonWhiteSpace++; - } - - const ch2 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos); - const ch3 = this.input.charCodeAt(shiftToFirstNonWhiteSpace + pos + 1); - - if (ch2 === 58 && ch3 === 58) { - return shiftToFirstNonWhiteSpace + 2; - } - - if (this.input.slice(shiftToFirstNonWhiteSpace + pos, shiftToFirstNonWhiteSpace + pos + 12) === "flow-include") { - return shiftToFirstNonWhiteSpace + 12; - } - - if (ch2 === 58 && ch3 !== 58) { - return shiftToFirstNonWhiteSpace; - } - - return false; - } - - hasFlowCommentCompletion() { - const end = this.input.indexOf("*/", this.state.pos); - - if (end === -1) { - throw this.raise(this.state.pos, ErrorMessages.UnterminatedComment); - } - } - - flowEnumErrorBooleanMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumBooleanMemberNotInitialized, memberName, enumName); - } - - flowEnumErrorInvalidMemberName(pos, { - enumName, - memberName - }) { - const suggestion = memberName[0].toUpperCase() + memberName.slice(1); - this.raise(pos, FlowErrors.EnumInvalidMemberName, memberName, suggestion, enumName); - } - - flowEnumErrorDuplicateMemberName(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumDuplicateMemberName, memberName, enumName); - } - - flowEnumErrorInconsistentMemberValues(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumInconsistentMemberValues, enumName); - } - - flowEnumErrorInvalidExplicitType(pos, { - enumName, - suppliedType - }) { - return this.raise(pos, suppliedType === null ? FlowErrors.EnumInvalidExplicitTypeUnknownSupplied : FlowErrors.EnumInvalidExplicitType, enumName, suppliedType); - } - - flowEnumErrorInvalidMemberInitializer(pos, { - enumName, - explicitType, - memberName - }) { - let message = null; - - switch (explicitType) { - case "boolean": - case "number": - case "string": - message = FlowErrors.EnumInvalidMemberInitializerPrimaryType; - break; - - case "symbol": - message = FlowErrors.EnumInvalidMemberInitializerSymbolType; - break; - - default: - message = FlowErrors.EnumInvalidMemberInitializerUnknownType; - } - - return this.raise(pos, message, enumName, memberName, explicitType); - } - - flowEnumErrorNumberMemberNotInitialized(pos, { - enumName, - memberName - }) { - this.raise(pos, FlowErrors.EnumNumberMemberNotInitialized, enumName, memberName); - } - - flowEnumErrorStringMemberInconsistentlyInitailized(pos, { - enumName - }) { - this.raise(pos, FlowErrors.EnumStringMemberInconsistentlyInitailized, enumName); - } - - flowEnumMemberInit() { - const startPos = this.state.start; - - const endOfInit = () => this.match(12) || this.match(8); - - switch (this.state.type) { - case 121: - { - const literal = this.parseNumericLiteral(this.state.value); - - if (endOfInit()) { - return { - type: "number", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - case 120: - { - const literal = this.parseStringLiteral(this.state.value); - - if (endOfInit()) { - return { - type: "string", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - case 76: - case 77: - { - const literal = this.parseBooleanLiteral(this.match(76)); - - if (endOfInit()) { - return { - type: "boolean", - pos: literal.start, - value: literal - }; - } - - return { - type: "invalid", - pos: startPos - }; - } - - default: - return { - type: "invalid", - pos: startPos - }; - } - } - - flowEnumMemberRaw() { - const pos = this.state.start; - const id = this.parseIdentifier(true); - const init = this.eat(27) ? this.flowEnumMemberInit() : { - type: "none", - pos - }; - return { - id, - init - }; - } - - flowEnumCheckExplicitTypeMismatch(pos, context, expectedType) { - const { - explicitType - } = context; - - if (explicitType === null) { - return; - } - - if (explicitType !== expectedType) { - this.flowEnumErrorInvalidMemberInitializer(pos, context); - } - } - - flowEnumMembers({ - enumName, - explicitType - }) { - const seenNames = new Set(); - const members = { - booleanMembers: [], - numberMembers: [], - stringMembers: [], - defaultedMembers: [] - }; - let hasUnknownMembers = false; - - while (!this.match(8)) { - if (this.eat(21)) { - hasUnknownMembers = true; - break; - } - - const memberNode = this.startNode(); - const { - id, - init - } = this.flowEnumMemberRaw(); - const memberName = id.name; - - if (memberName === "") { - continue; - } - - if (/^[a-z]/.test(memberName)) { - this.flowEnumErrorInvalidMemberName(id.start, { - enumName, - memberName - }); - } - - if (seenNames.has(memberName)) { - this.flowEnumErrorDuplicateMemberName(id.start, { - enumName, - memberName - }); - } - - seenNames.add(memberName); - const context = { - enumName, - explicitType, - memberName - }; - memberNode.id = id; - - switch (init.type) { - case "boolean": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "boolean"); - memberNode.init = init.value; - members.booleanMembers.push(this.finishNode(memberNode, "EnumBooleanMember")); - break; - } - - case "number": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "number"); - memberNode.init = init.value; - members.numberMembers.push(this.finishNode(memberNode, "EnumNumberMember")); - break; - } - - case "string": - { - this.flowEnumCheckExplicitTypeMismatch(init.pos, context, "string"); - memberNode.init = init.value; - members.stringMembers.push(this.finishNode(memberNode, "EnumStringMember")); - break; - } - - case "invalid": - { - throw this.flowEnumErrorInvalidMemberInitializer(init.pos, context); - } - - case "none": - { - switch (explicitType) { - case "boolean": - this.flowEnumErrorBooleanMemberNotInitialized(init.pos, context); - break; - - case "number": - this.flowEnumErrorNumberMemberNotInitialized(init.pos, context); - break; - - default: - members.defaultedMembers.push(this.finishNode(memberNode, "EnumDefaultedMember")); - } - } - } - - if (!this.match(8)) { - this.expect(12); - } - } - - return { - members, - hasUnknownMembers - }; - } - - flowEnumStringMembers(initializedMembers, defaultedMembers, { - enumName - }) { - if (initializedMembers.length === 0) { - return defaultedMembers; - } else if (defaultedMembers.length === 0) { - return initializedMembers; - } else if (defaultedMembers.length > initializedMembers.length) { - for (const member of initializedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } - - return defaultedMembers; - } else { - for (const member of defaultedMembers) { - this.flowEnumErrorStringMemberInconsistentlyInitailized(member.start, { - enumName - }); - } - - return initializedMembers; - } - } - - flowEnumParseExplicitType({ - enumName - }) { - if (this.eatContextual(92)) { - if (!tokenIsIdentifier(this.state.type)) { - throw this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: null - }); - } - - const { - value - } = this.state; - this.next(); - - if (value !== "boolean" && value !== "number" && value !== "string" && value !== "symbol") { - this.flowEnumErrorInvalidExplicitType(this.state.start, { - enumName, - suppliedType: value - }); - } - - return value; - } - - return null; - } - - flowEnumBody(node, { - enumName, - nameLoc - }) { - const explicitType = this.flowEnumParseExplicitType({ - enumName - }); - this.expect(5); - const { - members, - hasUnknownMembers - } = this.flowEnumMembers({ - enumName, - explicitType - }); - node.hasUnknownMembers = hasUnknownMembers; - - switch (explicitType) { - case "boolean": - node.explicitType = true; - node.members = members.booleanMembers; - this.expect(8); - return this.finishNode(node, "EnumBooleanBody"); - - case "number": - node.explicitType = true; - node.members = members.numberMembers; - this.expect(8); - return this.finishNode(node, "EnumNumberBody"); - - case "string": - node.explicitType = true; - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - - case "symbol": - node.members = members.defaultedMembers; - this.expect(8); - return this.finishNode(node, "EnumSymbolBody"); - - default: - { - const empty = () => { - node.members = []; - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - }; - - node.explicitType = false; - const boolsLen = members.booleanMembers.length; - const numsLen = members.numberMembers.length; - const strsLen = members.stringMembers.length; - const defaultedLen = members.defaultedMembers.length; - - if (!boolsLen && !numsLen && !strsLen && !defaultedLen) { - return empty(); - } else if (!boolsLen && !numsLen) { - node.members = this.flowEnumStringMembers(members.stringMembers, members.defaultedMembers, { - enumName - }); - this.expect(8); - return this.finishNode(node, "EnumStringBody"); - } else if (!numsLen && !strsLen && boolsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorBooleanMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } - - node.members = members.booleanMembers; - this.expect(8); - return this.finishNode(node, "EnumBooleanBody"); - } else if (!boolsLen && !strsLen && numsLen >= defaultedLen) { - for (const member of members.defaultedMembers) { - this.flowEnumErrorNumberMemberNotInitialized(member.start, { - enumName, - memberName: member.id.name - }); - } - - node.members = members.numberMembers; - this.expect(8); - return this.finishNode(node, "EnumNumberBody"); - } else { - this.flowEnumErrorInconsistentMemberValues(nameLoc, { - enumName - }); - return empty(); - } - } - } - } - - flowParseEnumDeclaration(node) { - const id = this.parseIdentifier(); - node.id = id; - node.body = this.flowEnumBody(this.startNode(), { - enumName: id.name, - nameLoc: id.start - }); - return this.finishNode(node, "EnumDeclaration"); - } - - isLookaheadToken_lt() { - const next = this.nextTokenStart(); - - if (this.input.charCodeAt(next) === 60) { - const afterNext = this.input.charCodeAt(next + 1); - return afterNext !== 60 && afterNext !== 61; - } - - return false; - } - - maybeUnwrapTypeCastExpression(node) { - return node.type === "TypeCastExpression" ? node.expression : node; - } - -}); - -const entities = { - quot: "\u0022", - amp: "&", - apos: "\u0027", - lt: "<", - gt: ">", - nbsp: "\u00A0", - iexcl: "\u00A1", - cent: "\u00A2", - pound: "\u00A3", - curren: "\u00A4", - yen: "\u00A5", - brvbar: "\u00A6", - sect: "\u00A7", - uml: "\u00A8", - copy: "\u00A9", - ordf: "\u00AA", - laquo: "\u00AB", - not: "\u00AC", - shy: "\u00AD", - reg: "\u00AE", - macr: "\u00AF", - deg: "\u00B0", - plusmn: "\u00B1", - sup2: "\u00B2", - sup3: "\u00B3", - acute: "\u00B4", - micro: "\u00B5", - para: "\u00B6", - middot: "\u00B7", - cedil: "\u00B8", - sup1: "\u00B9", - ordm: "\u00BA", - raquo: "\u00BB", - frac14: "\u00BC", - frac12: "\u00BD", - frac34: "\u00BE", - iquest: "\u00BF", - Agrave: "\u00C0", - Aacute: "\u00C1", - Acirc: "\u00C2", - Atilde: "\u00C3", - Auml: "\u00C4", - Aring: "\u00C5", - AElig: "\u00C6", - Ccedil: "\u00C7", - Egrave: "\u00C8", - Eacute: "\u00C9", - Ecirc: "\u00CA", - Euml: "\u00CB", - Igrave: "\u00CC", - Iacute: "\u00CD", - Icirc: "\u00CE", - Iuml: "\u00CF", - ETH: "\u00D0", - Ntilde: "\u00D1", - Ograve: "\u00D2", - Oacute: "\u00D3", - Ocirc: "\u00D4", - Otilde: "\u00D5", - Ouml: "\u00D6", - times: "\u00D7", - Oslash: "\u00D8", - Ugrave: "\u00D9", - Uacute: "\u00DA", - Ucirc: "\u00DB", - Uuml: "\u00DC", - Yacute: "\u00DD", - THORN: "\u00DE", - szlig: "\u00DF", - agrave: "\u00E0", - aacute: "\u00E1", - acirc: "\u00E2", - atilde: "\u00E3", - auml: "\u00E4", - aring: "\u00E5", - aelig: "\u00E6", - ccedil: "\u00E7", - egrave: "\u00E8", - eacute: "\u00E9", - ecirc: "\u00EA", - euml: "\u00EB", - igrave: "\u00EC", - iacute: "\u00ED", - icirc: "\u00EE", - iuml: "\u00EF", - eth: "\u00F0", - ntilde: "\u00F1", - ograve: "\u00F2", - oacute: "\u00F3", - ocirc: "\u00F4", - otilde: "\u00F5", - ouml: "\u00F6", - divide: "\u00F7", - oslash: "\u00F8", - ugrave: "\u00F9", - uacute: "\u00FA", - ucirc: "\u00FB", - uuml: "\u00FC", - yacute: "\u00FD", - thorn: "\u00FE", - yuml: "\u00FF", - OElig: "\u0152", - oelig: "\u0153", - Scaron: "\u0160", - scaron: "\u0161", - Yuml: "\u0178", - fnof: "\u0192", - circ: "\u02C6", - tilde: "\u02DC", - Alpha: "\u0391", - Beta: "\u0392", - Gamma: "\u0393", - Delta: "\u0394", - Epsilon: "\u0395", - Zeta: "\u0396", - Eta: "\u0397", - Theta: "\u0398", - Iota: "\u0399", - Kappa: "\u039A", - Lambda: "\u039B", - Mu: "\u039C", - Nu: "\u039D", - Xi: "\u039E", - Omicron: "\u039F", - Pi: "\u03A0", - Rho: "\u03A1", - Sigma: "\u03A3", - Tau: "\u03A4", - Upsilon: "\u03A5", - Phi: "\u03A6", - Chi: "\u03A7", - Psi: "\u03A8", - Omega: "\u03A9", - alpha: "\u03B1", - beta: "\u03B2", - gamma: "\u03B3", - delta: "\u03B4", - epsilon: "\u03B5", - zeta: "\u03B6", - eta: "\u03B7", - theta: "\u03B8", - iota: "\u03B9", - kappa: "\u03BA", - lambda: "\u03BB", - mu: "\u03BC", - nu: "\u03BD", - xi: "\u03BE", - omicron: "\u03BF", - pi: "\u03C0", - rho: "\u03C1", - sigmaf: "\u03C2", - sigma: "\u03C3", - tau: "\u03C4", - upsilon: "\u03C5", - phi: "\u03C6", - chi: "\u03C7", - psi: "\u03C8", - omega: "\u03C9", - thetasym: "\u03D1", - upsih: "\u03D2", - piv: "\u03D6", - ensp: "\u2002", - emsp: "\u2003", - thinsp: "\u2009", - zwnj: "\u200C", - zwj: "\u200D", - lrm: "\u200E", - rlm: "\u200F", - ndash: "\u2013", - mdash: "\u2014", - lsquo: "\u2018", - rsquo: "\u2019", - sbquo: "\u201A", - ldquo: "\u201C", - rdquo: "\u201D", - bdquo: "\u201E", - dagger: "\u2020", - Dagger: "\u2021", - bull: "\u2022", - hellip: "\u2026", - permil: "\u2030", - prime: "\u2032", - Prime: "\u2033", - lsaquo: "\u2039", - rsaquo: "\u203A", - oline: "\u203E", - frasl: "\u2044", - euro: "\u20AC", - image: "\u2111", - weierp: "\u2118", - real: "\u211C", - trade: "\u2122", - alefsym: "\u2135", - larr: "\u2190", - uarr: "\u2191", - rarr: "\u2192", - darr: "\u2193", - harr: "\u2194", - crarr: "\u21B5", - lArr: "\u21D0", - uArr: "\u21D1", - rArr: "\u21D2", - dArr: "\u21D3", - hArr: "\u21D4", - forall: "\u2200", - part: "\u2202", - exist: "\u2203", - empty: "\u2205", - nabla: "\u2207", - isin: "\u2208", - notin: "\u2209", - ni: "\u220B", - prod: "\u220F", - sum: "\u2211", - minus: "\u2212", - lowast: "\u2217", - radic: "\u221A", - prop: "\u221D", - infin: "\u221E", - ang: "\u2220", - and: "\u2227", - or: "\u2228", - cap: "\u2229", - cup: "\u222A", - int: "\u222B", - there4: "\u2234", - sim: "\u223C", - cong: "\u2245", - asymp: "\u2248", - ne: "\u2260", - equiv: "\u2261", - le: "\u2264", - ge: "\u2265", - sub: "\u2282", - sup: "\u2283", - nsub: "\u2284", - sube: "\u2286", - supe: "\u2287", - oplus: "\u2295", - otimes: "\u2297", - perp: "\u22A5", - sdot: "\u22C5", - lceil: "\u2308", - rceil: "\u2309", - lfloor: "\u230A", - rfloor: "\u230B", - lang: "\u2329", - rang: "\u232A", - loz: "\u25CA", - spades: "\u2660", - clubs: "\u2663", - hearts: "\u2665", - diams: "\u2666" -}; - -const HEX_NUMBER = /^[\da-fA-F]+$/; -const DECIMAL_NUMBER = /^\d+$/; -const JsxErrors = makeErrorTemplates({ - AttributeIsEmpty: "JSX attributes must only be assigned a non-empty expression.", - MissingClosingTagElement: "Expected corresponding JSX closing tag for <%0>.", - MissingClosingTagFragment: "Expected corresponding JSX closing tag for <>.", - UnexpectedSequenceExpression: "Sequence expressions cannot be directly nested inside JSX. Did you mean to wrap it in parentheses (...)?", - UnsupportedJsxValue: "JSX value should be either an expression or a quoted JSX text.", - UnterminatedJsxContent: "Unterminated JSX contents.", - UnwrappedAdjacentJSXElements: "Adjacent JSX elements must be wrapped in an enclosing tag. Did you want a JSX fragment <>...?" -}, ErrorCodes.SyntaxError, "jsx"); -types.j_oTag = new TokContext("...", true); - -function isFragment(object) { - return object ? object.type === "JSXOpeningFragment" || object.type === "JSXClosingFragment" : false; -} - -function getQualifiedJSXName(object) { - if (object.type === "JSXIdentifier") { - return object.name; - } - - if (object.type === "JSXNamespacedName") { - return object.namespace.name + ":" + object.name.name; - } - - if (object.type === "JSXMemberExpression") { - return getQualifiedJSXName(object.object) + "." + getQualifiedJSXName(object.property); - } - - throw new Error("Node had unexpected type: " + object.type); -} - -var jsx = (superClass => class extends superClass { - jsxReadToken() { - let out = ""; - let chunkStart = this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, JsxErrors.UnterminatedJsxContent); - } - - const ch = this.input.charCodeAt(this.state.pos); - - switch (ch) { - case 60: - case 123: - if (this.state.pos === this.state.start) { - if (ch === 60 && this.state.exprAllowed) { - ++this.state.pos; - return this.finishToken(129); - } - - return super.getTokenFromCode(ch); - } - - out += this.input.slice(chunkStart, this.state.pos); - return this.finishToken(128, out); - - case 38: - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - break; - - case 62: - case 125: - - default: - if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(true); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - - } - } - } - - jsxReadNewLine(normalizeCRLF) { - const ch = this.input.charCodeAt(this.state.pos); - let out; - ++this.state.pos; - - if (ch === 13 && this.input.charCodeAt(this.state.pos) === 10) { - ++this.state.pos; - out = normalizeCRLF ? "\n" : "\r\n"; - } else { - out = String.fromCharCode(ch); - } - - ++this.state.curLine; - this.state.lineStart = this.state.pos; - return out; - } - - jsxReadString(quote) { - let out = ""; - let chunkStart = ++this.state.pos; - - for (;;) { - if (this.state.pos >= this.length) { - throw this.raise(this.state.start, ErrorMessages.UnterminatedString); - } - - const ch = this.input.charCodeAt(this.state.pos); - if (ch === quote) break; - - if (ch === 38) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadEntity(); - chunkStart = this.state.pos; - } else if (isNewLine(ch)) { - out += this.input.slice(chunkStart, this.state.pos); - out += this.jsxReadNewLine(false); - chunkStart = this.state.pos; - } else { - ++this.state.pos; - } - } - - out += this.input.slice(chunkStart, this.state.pos++); - return this.finishToken(120, out); - } - - jsxReadEntity() { - let str = ""; - let count = 0; - let entity; - let ch = this.input[this.state.pos]; - const startPos = ++this.state.pos; - - while (this.state.pos < this.length && count++ < 10) { - ch = this.input[this.state.pos++]; - - if (ch === ";") { - if (str[0] === "#") { - if (str[1] === "x") { - str = str.substr(2); - - if (HEX_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 16)); - } - } else { - str = str.substr(1); - - if (DECIMAL_NUMBER.test(str)) { - entity = String.fromCodePoint(parseInt(str, 10)); - } - } - } else { - entity = entities[str]; - } - - break; - } - - str += ch; - } - - if (!entity) { - this.state.pos = startPos; - return "&"; - } - - return entity; - } - - jsxReadWord() { - let ch; - const start = this.state.pos; - - do { - ch = this.input.charCodeAt(++this.state.pos); - } while (isIdentifierChar(ch) || ch === 45); - - return this.finishToken(127, this.input.slice(start, this.state.pos)); - } - - jsxParseIdentifier() { - const node = this.startNode(); - - if (this.match(127)) { - node.name = this.state.value; - } else if (tokenIsKeyword(this.state.type)) { - node.name = tokenLabelName(this.state.type); - } else { - this.unexpected(); - } - - this.next(); - return this.finishNode(node, "JSXIdentifier"); - } - - jsxParseNamespacedName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const name = this.jsxParseIdentifier(); - if (!this.eat(14)) return name; - const node = this.startNodeAt(startPos, startLoc); - node.namespace = name; - node.name = this.jsxParseIdentifier(); - return this.finishNode(node, "JSXNamespacedName"); - } - - jsxParseElementName() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let node = this.jsxParseNamespacedName(); - - if (node.type === "JSXNamespacedName") { - return node; - } - - while (this.eat(16)) { - const newNode = this.startNodeAt(startPos, startLoc); - newNode.object = node; - newNode.property = this.jsxParseIdentifier(); - node = this.finishNode(newNode, "JSXMemberExpression"); - } - - return node; - } - - jsxParseAttributeValue() { - let node; - - switch (this.state.type) { - case 5: - node = this.startNode(); - this.next(); - node = this.jsxParseExpressionContainer(node); - - if (node.expression.type === "JSXEmptyExpression") { - this.raise(node.start, JsxErrors.AttributeIsEmpty); - } - - return node; - - case 129: - case 120: - return this.parseExprAtom(); - - default: - throw this.raise(this.state.start, JsxErrors.UnsupportedJsxValue); - } - } - - jsxParseEmptyExpression() { - const node = this.startNodeAt(this.state.lastTokEnd, this.state.lastTokEndLoc); - return this.finishNodeAt(node, "JSXEmptyExpression", this.state.start, this.state.startLoc); - } - - jsxParseSpreadChild(node) { - this.next(); - node.expression = this.parseExpression(); - this.expect(8); - return this.finishNode(node, "JSXSpreadChild"); - } - - jsxParseExpressionContainer(node) { - if (this.match(8)) { - node.expression = this.jsxParseEmptyExpression(); - } else { - const expression = this.parseExpression(); - node.expression = expression; - } - - this.expect(8); - return this.finishNode(node, "JSXExpressionContainer"); - } - - jsxParseAttribute() { - const node = this.startNode(); - - if (this.eat(5)) { - this.expect(21); - node.argument = this.parseMaybeAssignAllowIn(); - this.expect(8); - return this.finishNode(node, "JSXSpreadAttribute"); - } - - node.name = this.jsxParseNamespacedName(); - node.value = this.eat(27) ? this.jsxParseAttributeValue() : null; - return this.finishNode(node, "JSXAttribute"); - } - - jsxParseOpeningElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - - if (this.match(130)) { - this.expect(130); - return this.finishNode(node, "JSXOpeningFragment"); - } - - node.name = this.jsxParseElementName(); - return this.jsxParseOpeningElementAfterName(node); - } - - jsxParseOpeningElementAfterName(node) { - const attributes = []; - - while (!this.match(47) && !this.match(130)) { - attributes.push(this.jsxParseAttribute()); - } - - node.attributes = attributes; - node.selfClosing = this.eat(47); - this.expect(130); - return this.finishNode(node, "JSXOpeningElement"); - } - - jsxParseClosingElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - - if (this.match(130)) { - this.expect(130); - return this.finishNode(node, "JSXClosingFragment"); - } - - node.name = this.jsxParseElementName(); - this.expect(130); - return this.finishNode(node, "JSXClosingElement"); - } - - jsxParseElementAt(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - const children = []; - const openingElement = this.jsxParseOpeningElementAt(startPos, startLoc); - let closingElement = null; - - if (!openingElement.selfClosing) { - contents: for (;;) { - switch (this.state.type) { - case 129: - startPos = this.state.start; - startLoc = this.state.startLoc; - this.next(); - - if (this.eat(47)) { - closingElement = this.jsxParseClosingElementAt(startPos, startLoc); - break contents; - } - - children.push(this.jsxParseElementAt(startPos, startLoc)); - break; - - case 128: - children.push(this.parseExprAtom()); - break; - - case 5: - { - const node = this.startNode(); - this.next(); - - if (this.match(21)) { - children.push(this.jsxParseSpreadChild(node)); - } else { - children.push(this.jsxParseExpressionContainer(node)); - } - - break; - } - - default: - throw this.unexpected(); - } - } - - if (isFragment(openingElement) && !isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagFragment); - } else if (!isFragment(openingElement) && isFragment(closingElement)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } else if (!isFragment(openingElement) && !isFragment(closingElement)) { - if (getQualifiedJSXName(closingElement.name) !== getQualifiedJSXName(openingElement.name)) { - this.raise(closingElement.start, JsxErrors.MissingClosingTagElement, getQualifiedJSXName(openingElement.name)); - } - } - } - - if (isFragment(openingElement)) { - node.openingFragment = openingElement; - node.closingFragment = closingElement; - } else { - node.openingElement = openingElement; - node.closingElement = closingElement; - } - - node.children = children; - - if (this.isRelational("<")) { - throw this.raise(this.state.start, JsxErrors.UnwrappedAdjacentJSXElements); - } - - return isFragment(openingElement) ? this.finishNode(node, "JSXFragment") : this.finishNode(node, "JSXElement"); - } - - jsxParseElement() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - this.next(); - return this.jsxParseElementAt(startPos, startLoc); - } - - parseExprAtom(refExpressionErrors) { - if (this.match(128)) { - return this.parseLiteral(this.state.value, "JSXText"); - } else if (this.match(129)) { - return this.jsxParseElement(); - } else if (this.isRelational("<") && this.input.charCodeAt(this.state.pos) !== 33) { - this.finishToken(129); - return this.jsxParseElement(); - } else { - return super.parseExprAtom(refExpressionErrors); - } - } - - createLookaheadState(state) { - const lookaheadState = super.createLookaheadState(state); - lookaheadState.inPropertyName = state.inPropertyName; - return lookaheadState; - } - - getTokenFromCode(code) { - if (this.state.inPropertyName) return super.getTokenFromCode(code); - const context = this.curContext(); - - if (context === types.j_expr) { - return this.jsxReadToken(); - } - - if (context === types.j_oTag || context === types.j_cTag) { - if (isIdentifierStart(code)) { - return this.jsxReadWord(); - } - - if (code === 62) { - ++this.state.pos; - return this.finishToken(130); - } - - if ((code === 34 || code === 39) && context === types.j_oTag) { - return this.jsxReadString(code); - } - } - - if (code === 60 && this.state.exprAllowed && this.input.charCodeAt(this.state.pos + 1) !== 33) { - ++this.state.pos; - return this.finishToken(129); - } - - return super.getTokenFromCode(code); - } - - updateContext(prevType) { - super.updateContext(prevType); - const { - context, - type - } = this.state; - - if (type === 47 && prevType === 129) { - context.splice(-2, 2, types.j_cTag); - this.state.exprAllowed = false; - } else if (type === 129) { - context.push(types.j_expr, types.j_oTag); - } else if (type === 130) { - const out = context.pop(); - - if (out === types.j_oTag && prevType === 47 || out === types.j_cTag) { - context.pop(); - this.state.exprAllowed = context[context.length - 1] === types.j_expr; - } else { - this.state.exprAllowed = true; - } - } else if (tokenIsKeyword(type) && (prevType === 16 || prevType === 18)) { - this.state.exprAllowed = false; - } else { - this.state.exprAllowed = tokenComesBeforeExpression(type); - } - } - -}); - -class TypeScriptScope extends Scope { - constructor(...args) { - super(...args); - this.types = new Set(); - this.enums = new Set(); - this.constEnums = new Set(); - this.classes = new Set(); - this.exportOnlyBindings = new Set(); - } - -} - -class TypeScriptScopeHandler extends ScopeHandler { - createScope(flags) { - return new TypeScriptScope(flags); - } - - declareName(name, bindingType, pos) { - const scope = this.currentScope(); - - if (bindingType & BIND_FLAGS_TS_EXPORT_ONLY) { - this.maybeExportDefined(scope, name); - scope.exportOnlyBindings.add(name); - return; - } - - super.declareName(...arguments); - - if (bindingType & BIND_KIND_TYPE) { - if (!(bindingType & BIND_KIND_VALUE)) { - this.checkRedeclarationInScope(scope, name, bindingType, pos); - this.maybeExportDefined(scope, name); - } - - scope.types.add(name); - } - - if (bindingType & BIND_FLAGS_TS_ENUM) scope.enums.add(name); - if (bindingType & BIND_FLAGS_TS_CONST_ENUM) scope.constEnums.add(name); - if (bindingType & BIND_FLAGS_CLASS) scope.classes.add(name); - } - - isRedeclaredInScope(scope, name, bindingType) { - if (scope.enums.has(name)) { - if (bindingType & BIND_FLAGS_TS_ENUM) { - const isConst = !!(bindingType & BIND_FLAGS_TS_CONST_ENUM); - const wasConst = scope.constEnums.has(name); - return isConst !== wasConst; - } - - return true; - } - - if (bindingType & BIND_FLAGS_CLASS && scope.classes.has(name)) { - if (scope.lexical.has(name)) { - return !!(bindingType & BIND_KIND_VALUE); - } else { - return false; - } - } - - if (bindingType & BIND_KIND_TYPE && scope.types.has(name)) { - return true; - } - - return super.isRedeclaredInScope(...arguments); - } - - checkLocalExport(id) { - const topLevelScope = this.scopeStack[0]; - const { - name - } = id; - - if (!topLevelScope.types.has(name) && !topLevelScope.exportOnlyBindings.has(name)) { - super.checkLocalExport(id); - } - } - -} - -function nonNull(x) { - if (x == null) { - throw new Error(`Unexpected ${x} value.`); - } - - return x; -} - -function assert(x) { - if (!x) { - throw new Error("Assert fail"); - } -} - -const TSErrors = makeErrorTemplates({ - AbstractMethodHasImplementation: "Method '%0' cannot have an implementation because it is marked abstract.", - AbstractPropertyHasInitializer: "Property '%0' cannot have an initializer because it is marked abstract.", - AccesorCannotDeclareThisParameter: "'get' and 'set' accessors cannot declare 'this' parameters.", - AccesorCannotHaveTypeParameters: "An accessor cannot have type parameters.", - ClassMethodHasDeclare: "Class methods cannot have the 'declare' modifier.", - ClassMethodHasReadonly: "Class methods cannot have the 'readonly' modifier.", - ConstructorHasTypeParameters: "Type parameters cannot appear on a constructor declaration.", - DeclareAccessor: "'declare' is not allowed in %0ters.", - DeclareClassFieldHasInitializer: "Initializers are not allowed in ambient contexts.", - DeclareFunctionHasImplementation: "An implementation cannot be declared in ambient contexts.", - DuplicateAccessibilityModifier: "Accessibility modifier already seen.", - DuplicateModifier: "Duplicate modifier: '%0'.", - EmptyHeritageClauseType: "'%0' list cannot be empty.", - EmptyTypeArguments: "Type argument list cannot be empty.", - EmptyTypeParameters: "Type parameter list cannot be empty.", - ExpectedAmbientAfterExportDeclare: "'export declare' must be followed by an ambient declaration.", - ImportAliasHasImportType: "An import alias can not use 'import type'.", - IncompatibleModifiers: "'%0' modifier cannot be used with '%1' modifier.", - IndexSignatureHasAbstract: "Index signatures cannot have the 'abstract' modifier.", - IndexSignatureHasAccessibility: "Index signatures cannot have an accessibility modifier ('%0').", - IndexSignatureHasDeclare: "Index signatures cannot have the 'declare' modifier.", - IndexSignatureHasOverride: "'override' modifier cannot appear on an index signature.", - IndexSignatureHasStatic: "Index signatures cannot have the 'static' modifier.", - InvalidModifierOnTypeMember: "'%0' modifier cannot appear on a type member.", - InvalidModifiersOrder: "'%0' modifier must precede '%1' modifier.", - InvalidTupleMemberLabel: "Tuple members must be labeled with a simple identifier.", - MissingInterfaceName: "'interface' declarations must be followed by an identifier.", - MixedLabeledAndUnlabeledElements: "Tuple members must all have names or all not have names.", - NonAbstractClassHasAbstractMethod: "Abstract methods can only appear within an abstract class.", - NonClassMethodPropertyHasAbstractModifer: "'abstract' modifier can only appear on a class, method, or property declaration.", - OptionalTypeBeforeRequired: "A required element cannot follow an optional element.", - OverrideNotInSubClass: "This member cannot have an 'override' modifier because its containing class does not extend another class.", - PatternIsOptional: "A binding pattern parameter cannot be optional in an implementation signature.", - PrivateElementHasAbstract: "Private elements cannot have the 'abstract' modifier.", - PrivateElementHasAccessibility: "Private elements cannot have an accessibility modifier ('%0').", - ReadonlyForMethodSignature: "'readonly' modifier can only appear on a property declaration or index signature.", - SetAccesorCannotHaveOptionalParameter: "A 'set' accessor cannot have an optional parameter.", - SetAccesorCannotHaveRestParameter: "A 'set' accessor cannot have rest parameter.", - SetAccesorCannotHaveReturnType: "A 'set' accessor cannot have a return type annotation.", - StaticBlockCannotHaveModifier: "Static class blocks cannot have any modifier.", - TypeAnnotationAfterAssign: "Type annotations must come before default assignments, e.g. instead of `age = 25: number` use `age: number = 25`.", - TypeImportCannotSpecifyDefaultAndNamed: "A type-only import can specify a default import or named bindings, but not both.", - UnexpectedParameterModifier: "A parameter property is only allowed in a constructor implementation.", - UnexpectedReadonly: "'readonly' type modifier is only permitted on array and tuple literal types.", - UnexpectedTypeAnnotation: "Did not expect a type annotation here.", - UnexpectedTypeCastInParameter: "Unexpected type cast in parameter position.", - UnsupportedImportTypeArgument: "Argument in a type import must be a string literal.", - UnsupportedParameterPropertyKind: "A parameter property may not be declared using a binding pattern.", - UnsupportedSignatureParameterKind: "Name in a signature must be an Identifier, ObjectPattern or ArrayPattern, instead got %0." -}, ErrorCodes.SyntaxError, "typescript"); - -function keywordTypeFromName(value) { - switch (value) { - case "any": - return "TSAnyKeyword"; - - case "boolean": - return "TSBooleanKeyword"; - - case "bigint": - return "TSBigIntKeyword"; - - case "never": - return "TSNeverKeyword"; - - case "number": - return "TSNumberKeyword"; - - case "object": - return "TSObjectKeyword"; - - case "string": - return "TSStringKeyword"; - - case "symbol": - return "TSSymbolKeyword"; - - case "undefined": - return "TSUndefinedKeyword"; - - case "unknown": - return "TSUnknownKeyword"; - - default: - return undefined; - } -} - -function tsIsAccessModifier(modifier) { - return modifier === "private" || modifier === "public" || modifier === "protected"; -} - -var typescript = (superClass => class extends superClass { - getScopeHandler() { - return TypeScriptScopeHandler; - } - - tsIsIdentifier() { - return tokenIsIdentifier(this.state.type); - } - - tsTokenCanFollowModifier() { - return (this.match(0) || this.match(5) || this.match(46) || this.match(21) || this.match(125) || this.isLiteralPropertyName()) && !this.hasPrecedingLineBreak(); - } - - tsNextTokenCanFollowModifier() { - this.next(); - return this.tsTokenCanFollowModifier(); - } - - tsParseModifier(allowedModifiers, stopOnStartOfClassStaticBlock) { - if (!tokenIsIdentifier(this.state.type)) { - return undefined; - } - - const modifier = this.state.value; - - if (allowedModifiers.indexOf(modifier) !== -1) { - if (stopOnStartOfClassStaticBlock && this.tsIsStartOfStaticBlocks()) { - return undefined; - } - - if (this.tsTryParse(this.tsNextTokenCanFollowModifier.bind(this))) { - return modifier; - } - } - - return undefined; - } - - tsParseModifiers(modified, allowedModifiers, disallowedModifiers, errorTemplate, stopOnStartOfClassStaticBlock) { - const enforceOrder = (pos, modifier, before, after) => { - if (modifier === before && modified[after]) { - this.raise(pos, TSErrors.InvalidModifiersOrder, before, after); - } - }; - - const incompatible = (pos, modifier, mod1, mod2) => { - if (modified[mod1] && modifier === mod2 || modified[mod2] && modifier === mod1) { - this.raise(pos, TSErrors.IncompatibleModifiers, mod1, mod2); - } - }; - - for (;;) { - const startPos = this.state.start; - const modifier = this.tsParseModifier(allowedModifiers.concat(disallowedModifiers != null ? disallowedModifiers : []), stopOnStartOfClassStaticBlock); - if (!modifier) break; - - if (tsIsAccessModifier(modifier)) { - if (modified.accessibility) { - this.raise(startPos, TSErrors.DuplicateAccessibilityModifier); - } else { - enforceOrder(startPos, modifier, modifier, "override"); - enforceOrder(startPos, modifier, modifier, "static"); - enforceOrder(startPos, modifier, modifier, "readonly"); - modified.accessibility = modifier; - } - } else { - if (Object.hasOwnProperty.call(modified, modifier)) { - this.raise(startPos, TSErrors.DuplicateModifier, modifier); - } else { - enforceOrder(startPos, modifier, "static", "readonly"); - enforceOrder(startPos, modifier, "static", "override"); - enforceOrder(startPos, modifier, "override", "readonly"); - enforceOrder(startPos, modifier, "abstract", "override"); - incompatible(startPos, modifier, "declare", "override"); - incompatible(startPos, modifier, "static", "abstract"); - } - - modified[modifier] = true; - } - - if (disallowedModifiers != null && disallowedModifiers.includes(modifier)) { - this.raise(startPos, errorTemplate, modifier); - } - } - } - - tsIsListTerminator(kind) { - switch (kind) { - case "EnumMembers": - case "TypeMembers": - return this.match(8); - - case "HeritageClauseElement": - return this.match(5); - - case "TupleElementTypes": - return this.match(3); - - case "TypeParametersOrArguments": - return this.isRelational(">"); - } - - throw new Error("Unreachable"); - } - - tsParseList(kind, parseElement) { - const result = []; - - while (!this.tsIsListTerminator(kind)) { - result.push(parseElement()); - } - - return result; - } - - tsParseDelimitedList(kind, parseElement) { - return nonNull(this.tsParseDelimitedListWorker(kind, parseElement, true)); - } - - tsParseDelimitedListWorker(kind, parseElement, expectSuccess) { - const result = []; - - for (;;) { - if (this.tsIsListTerminator(kind)) { - break; - } - - const element = parseElement(); - - if (element == null) { - return undefined; - } - - result.push(element); - - if (this.eat(12)) { - continue; - } - - if (this.tsIsListTerminator(kind)) { - break; - } - - if (expectSuccess) { - this.expect(12); - } - - return undefined; - } - - return result; - } - - tsParseBracketedList(kind, parseElement, bracket, skipFirstToken) { - if (!skipFirstToken) { - if (bracket) { - this.expect(0); - } else { - this.expectRelational("<"); - } - } - - const result = this.tsParseDelimitedList(kind, parseElement); - - if (bracket) { - this.expect(3); - } else { - this.expectRelational(">"); - } - - return result; - } - - tsParseImportType() { - const node = this.startNode(); - this.expect(74); - this.expect(10); - - if (!this.match(120)) { - this.raise(this.state.start, TSErrors.UnsupportedImportTypeArgument); - } - - node.argument = this.parseExprAtom(); - this.expect(11); - - if (this.eat(16)) { - node.qualifier = this.tsParseEntityName(true); - } - - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSImportType"); - } - - tsParseEntityName(allowReservedWords) { - let entity = this.parseIdentifier(); - - while (this.eat(16)) { - const node = this.startNodeAtNode(entity); - node.left = entity; - node.right = this.parseIdentifier(allowReservedWords); - entity = this.finishNode(node, "TSQualifiedName"); - } - - return entity; - } - - tsParseTypeReference() { - const node = this.startNode(); - node.typeName = this.tsParseEntityName(false); - - if (!this.hasPrecedingLineBreak() && this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSTypeReference"); - } - - tsParseThisTypePredicate(lhs) { - this.next(); - const node = this.startNodeAtNode(lhs); - node.parameterName = lhs; - node.typeAnnotation = this.tsParseTypeAnnotation(false); - node.asserts = false; - return this.finishNode(node, "TSTypePredicate"); - } - - tsParseThisTypeNode() { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSThisType"); - } - - tsParseTypeQuery() { - const node = this.startNode(); - this.expect(78); - - if (this.match(74)) { - node.exprName = this.tsParseImportType(); - } else { - node.exprName = this.tsParseEntityName(true); - } - - return this.finishNode(node, "TSTypeQuery"); - } - - tsParseTypeParameter() { - const node = this.startNode(); - node.name = this.tsParseTypeParameterName(); - node.constraint = this.tsEatThenParseType(72); - node.default = this.tsEatThenParseType(27); - return this.finishNode(node, "TSTypeParameter"); - } - - tsTryParseTypeParameters() { - if (this.isRelational("<")) { - return this.tsParseTypeParameters(); - } - } - - tsParseTypeParameters() { - const node = this.startNode(); - - if (this.isRelational("<") || this.match(129)) { - this.next(); - } else { - this.unexpected(); - } - - node.params = this.tsParseBracketedList("TypeParametersOrArguments", this.tsParseTypeParameter.bind(this), false, true); - - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeParameters); - } - - return this.finishNode(node, "TSTypeParameterDeclaration"); - } - - tsTryNextParseConstantContext() { - if (this.lookahead().type === 66) { - this.next(); - return this.tsParseTypeReference(); - } - - return null; - } - - tsFillSignature(returnToken, signature) { - const returnTokenRequired = returnToken === 19; - signature.typeParameters = this.tsTryParseTypeParameters(); - this.expect(10); - signature.parameters = this.tsParseBindingListForSignature(); - - if (returnTokenRequired) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); - } else if (this.match(returnToken)) { - signature.typeAnnotation = this.tsParseTypeOrTypePredicateAnnotation(returnToken); - } - } - - tsParseBindingListForSignature() { - return this.parseBindingList(11, 41).map(pattern => { - if (pattern.type !== "Identifier" && pattern.type !== "RestElement" && pattern.type !== "ObjectPattern" && pattern.type !== "ArrayPattern") { - this.raise(pattern.start, TSErrors.UnsupportedSignatureParameterKind, pattern.type); - } - - return pattern; - }); - } - - tsParseTypeMemberSemicolon() { - if (!this.eat(12) && !this.isLineTerminator()) { - this.expect(13); - } - } - - tsParseSignatureMember(kind, node) { - this.tsFillSignature(14, node); - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, kind); - } - - tsIsUnambiguouslyIndexSignature() { - this.next(); - - if (tokenIsIdentifier(this.state.type)) { - this.next(); - return this.match(14); - } - - return false; - } - - tsTryParseIndexSignature(node) { - if (!(this.match(0) && this.tsLookAhead(this.tsIsUnambiguouslyIndexSignature.bind(this)))) { - return undefined; - } - - this.expect(0); - const id = this.parseIdentifier(); - id.typeAnnotation = this.tsParseTypeAnnotation(); - this.resetEndLocation(id); - this.expect(3); - node.parameters = [id]; - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(node, "TSIndexSignature"); - } - - tsParsePropertyOrMethodSignature(node, readonly) { - if (this.eat(17)) node.optional = true; - const nodeAny = node; - - if (this.match(10) || this.isRelational("<")) { - if (readonly) { - this.raise(node.start, TSErrors.ReadonlyForMethodSignature); - } - - const method = nodeAny; - - if (method.kind && this.isRelational("<")) { - this.raise(this.state.pos, TSErrors.AccesorCannotHaveTypeParameters); - } - - this.tsFillSignature(14, method); - this.tsParseTypeMemberSemicolon(); - - if (method.kind === "get") { - if (method.parameters.length > 0) { - this.raise(this.state.pos, ErrorMessages.BadGetterArity); - - if (this.isThisParam(method.parameters[0])) { - this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); - } - } - } else if (method.kind === "set") { - if (method.parameters.length !== 1) { - this.raise(this.state.pos, ErrorMessages.BadSetterArity); - } else { - const firstParameter = method.parameters[0]; - - if (this.isThisParam(firstParameter)) { - this.raise(this.state.pos, TSErrors.AccesorCannotDeclareThisParameter); - } - - if (firstParameter.type === "Identifier" && firstParameter.optional) { - this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveOptionalParameter); - } - - if (firstParameter.type === "RestElement") { - this.raise(this.state.pos, TSErrors.SetAccesorCannotHaveRestParameter); - } - } - - if (method.typeAnnotation) { - this.raise(method.typeAnnotation.start, TSErrors.SetAccesorCannotHaveReturnType); - } - } else { - method.kind = "method"; - } - - return this.finishNode(method, "TSMethodSignature"); - } else { - const property = nodeAny; - if (readonly) property.readonly = true; - const type = this.tsTryParseTypeAnnotation(); - if (type) property.typeAnnotation = type; - this.tsParseTypeMemberSemicolon(); - return this.finishNode(property, "TSPropertySignature"); - } - } - - tsParseTypeMember() { - const node = this.startNode(); - - if (this.match(10) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSCallSignatureDeclaration", node); - } - - if (this.match(68)) { - const id = this.startNode(); - this.next(); - - if (this.match(10) || this.isRelational("<")) { - return this.tsParseSignatureMember("TSConstructSignatureDeclaration", node); - } else { - node.key = this.createIdentifier(id, "new"); - return this.tsParsePropertyOrMethodSignature(node, false); - } - } - - this.tsParseModifiers(node, ["readonly"], ["declare", "abstract", "private", "protected", "public", "static", "override"], TSErrors.InvalidModifierOnTypeMember); - const idx = this.tsTryParseIndexSignature(node); - - if (idx) { - return idx; - } - - this.parsePropertyName(node, false); - - if (!node.computed && node.key.type === "Identifier" && (node.key.name === "get" || node.key.name === "set") && this.tsTokenCanFollowModifier()) { - node.kind = node.key.name; - this.parsePropertyName(node, false); - } - - return this.tsParsePropertyOrMethodSignature(node, !!node.readonly); - } - - tsParseTypeLiteral() { - const node = this.startNode(); - node.members = this.tsParseObjectTypeMembers(); - return this.finishNode(node, "TSTypeLiteral"); - } - - tsParseObjectTypeMembers() { - this.expect(5); - const members = this.tsParseList("TypeMembers", this.tsParseTypeMember.bind(this)); - this.expect(8); - return members; - } - - tsIsStartOfMappedType() { - this.next(); - - if (this.eat(44)) { - return this.isContextual(109); - } - - if (this.isContextual(109)) { - this.next(); - } - - if (!this.match(0)) { - return false; - } - - this.next(); - - if (!this.tsIsIdentifier()) { - return false; - } - - this.next(); - return this.match(49); - } - - tsParseMappedTypeParameter() { - const node = this.startNode(); - node.name = this.tsParseTypeParameterName(); - node.constraint = this.tsExpectThenParseType(49); - return this.finishNode(node, "TSTypeParameter"); - } - - tsParseMappedType() { - const node = this.startNode(); - this.expect(5); - - if (this.match(44)) { - node.readonly = this.state.value; - this.next(); - this.expectContextual(109); - } else if (this.eatContextual(109)) { - node.readonly = true; - } - - this.expect(0); - node.typeParameter = this.tsParseMappedTypeParameter(); - node.nameType = this.eatContextual(84) ? this.tsParseType() : null; - this.expect(3); - - if (this.match(44)) { - node.optional = this.state.value; - this.next(); - this.expect(17); - } else if (this.eat(17)) { - node.optional = true; - } - - node.typeAnnotation = this.tsTryParseType(); - this.semicolon(); - this.expect(8); - return this.finishNode(node, "TSMappedType"); - } - - tsParseTupleType() { - const node = this.startNode(); - node.elementTypes = this.tsParseBracketedList("TupleElementTypes", this.tsParseTupleElementType.bind(this), true, false); - let seenOptionalElement = false; - let labeledElements = null; - node.elementTypes.forEach(elementNode => { - var _labeledElements; - - let { - type - } = elementNode; - - if (seenOptionalElement && type !== "TSRestType" && type !== "TSOptionalType" && !(type === "TSNamedTupleMember" && elementNode.optional)) { - this.raise(elementNode.start, TSErrors.OptionalTypeBeforeRequired); - } - - seenOptionalElement = seenOptionalElement || type === "TSNamedTupleMember" && elementNode.optional || type === "TSOptionalType"; - - if (type === "TSRestType") { - elementNode = elementNode.typeAnnotation; - type = elementNode.type; - } - - const isLabeled = type === "TSNamedTupleMember"; - labeledElements = (_labeledElements = labeledElements) != null ? _labeledElements : isLabeled; - - if (labeledElements !== isLabeled) { - this.raise(elementNode.start, TSErrors.MixedLabeledAndUnlabeledElements); - } - }); - return this.finishNode(node, "TSTupleType"); - } - - tsParseTupleElementType() { - const { - start: startPos, - startLoc - } = this.state; - const rest = this.eat(21); - let type = this.tsParseType(); - const optional = this.eat(17); - const labeled = this.eat(14); - - if (labeled) { - const labeledNode = this.startNodeAtNode(type); - labeledNode.optional = optional; - - if (type.type === "TSTypeReference" && !type.typeParameters && type.typeName.type === "Identifier") { - labeledNode.label = type.typeName; - } else { - this.raise(type.start, TSErrors.InvalidTupleMemberLabel); - labeledNode.label = type; - } - - labeledNode.elementType = this.tsParseType(); - type = this.finishNode(labeledNode, "TSNamedTupleMember"); - } else if (optional) { - const optionalTypeNode = this.startNodeAtNode(type); - optionalTypeNode.typeAnnotation = type; - type = this.finishNode(optionalTypeNode, "TSOptionalType"); - } - - if (rest) { - const restNode = this.startNodeAt(startPos, startLoc); - restNode.typeAnnotation = type; - type = this.finishNode(restNode, "TSRestType"); - } - - return type; - } - - tsParseParenthesizedType() { - const node = this.startNode(); - this.expect(10); - node.typeAnnotation = this.tsParseType(); - this.expect(11); - return this.finishNode(node, "TSParenthesizedType"); - } - - tsParseFunctionOrConstructorType(type, abstract) { - const node = this.startNode(); - - if (type === "TSConstructorType") { - node.abstract = !!abstract; - if (abstract) this.next(); - this.next(); - } - - this.tsFillSignature(19, node); - return this.finishNode(node, type); - } - - tsParseLiteralTypeNode() { - const node = this.startNode(); - - node.literal = (() => { - switch (this.state.type) { - case 121: - case 122: - case 120: - case 76: - case 77: - return this.parseExprAtom(); - - default: - throw this.unexpected(); - } - })(); - - return this.finishNode(node, "TSLiteralType"); - } - - tsParseTemplateLiteralType() { - const node = this.startNode(); - node.literal = this.parseTemplate(false); - return this.finishNode(node, "TSLiteralType"); - } - - parseTemplateSubstitution() { - if (this.state.inType) return this.tsParseType(); - return super.parseTemplateSubstitution(); - } - - tsParseThisTypeOrThisTypePredicate() { - const thisKeyword = this.tsParseThisTypeNode(); - - if (this.isContextual(104) && !this.hasPrecedingLineBreak()) { - return this.tsParseThisTypePredicate(thisKeyword); - } else { - return thisKeyword; - } - } - - tsParseNonArrayType() { - switch (this.state.type) { - case 120: - case 121: - case 122: - case 76: - case 77: - return this.tsParseLiteralTypeNode(); - - case 44: - if (this.state.value === "-") { - const node = this.startNode(); - const nextToken = this.lookahead(); - - if (nextToken.type !== 121 && nextToken.type !== 122) { - throw this.unexpected(); - } - - node.literal = this.parseMaybeUnary(); - return this.finishNode(node, "TSLiteralType"); - } - - break; - - case 69: - return this.tsParseThisTypeOrThisTypePredicate(); - - case 78: - return this.tsParseTypeQuery(); - - case 74: - return this.tsParseImportType(); - - case 5: - return this.tsLookAhead(this.tsIsStartOfMappedType.bind(this)) ? this.tsParseMappedType() : this.tsParseTypeLiteral(); - - case 0: - return this.tsParseTupleType(); - - case 10: - return this.tsParseParenthesizedType(); - - case 22: - return this.tsParseTemplateLiteralType(); - - default: - { - const { - type - } = this.state; - - if (tokenIsIdentifier(type) || type === 79 || type === 75) { - const nodeType = type === 79 ? "TSVoidKeyword" : type === 75 ? "TSNullKeyword" : keywordTypeFromName(this.state.value); - - if (nodeType !== undefined && this.lookaheadCharCode() !== 46) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, nodeType); - } - - return this.tsParseTypeReference(); - } - } - } - - throw this.unexpected(); - } - - tsParseArrayTypeOrHigher() { - let type = this.tsParseNonArrayType(); - - while (!this.hasPrecedingLineBreak() && this.eat(0)) { - if (this.match(3)) { - const node = this.startNodeAtNode(type); - node.elementType = type; - this.expect(3); - type = this.finishNode(node, "TSArrayType"); - } else { - const node = this.startNodeAtNode(type); - node.objectType = type; - node.indexType = this.tsParseType(); - this.expect(3); - type = this.finishNode(node, "TSIndexedAccessType"); - } - } - - return type; - } - - tsParseTypeOperator() { - const node = this.startNode(); - const operator = this.state.value; - this.next(); - node.operator = operator; - node.typeAnnotation = this.tsParseTypeOperatorOrHigher(); - - if (operator === "readonly") { - this.tsCheckTypeAnnotationForReadOnly(node); - } - - return this.finishNode(node, "TSTypeOperator"); - } - - tsCheckTypeAnnotationForReadOnly(node) { - switch (node.typeAnnotation.type) { - case "TSTupleType": - case "TSArrayType": - return; - - default: - this.raise(node.start, TSErrors.UnexpectedReadonly); - } - } - - tsParseInferType() { - const node = this.startNode(); - this.expectContextual(103); - const typeParameter = this.startNode(); - typeParameter.name = this.tsParseTypeParameterName(); - node.typeParameter = this.finishNode(typeParameter, "TSTypeParameter"); - return this.finishNode(node, "TSInferType"); - } - - tsParseTypeOperatorOrHigher() { - const isTypeOperator = tokenIsTSTypeOperator(this.state.type) && !this.state.containsEsc; - return isTypeOperator ? this.tsParseTypeOperator() : this.isContextual(103) ? this.tsParseInferType() : this.tsParseArrayTypeOrHigher(); - } - - tsParseUnionOrIntersectionType(kind, parseConstituentType, operator) { - const node = this.startNode(); - const hasLeadingOperator = this.eat(operator); - const types = []; - - do { - types.push(parseConstituentType()); - } while (this.eat(operator)); - - if (types.length === 1 && !hasLeadingOperator) { - return types[0]; - } - - node.types = types; - return this.finishNode(node, kind); - } - - tsParseIntersectionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSIntersectionType", this.tsParseTypeOperatorOrHigher.bind(this), 40); - } - - tsParseUnionTypeOrHigher() { - return this.tsParseUnionOrIntersectionType("TSUnionType", this.tsParseIntersectionTypeOrHigher.bind(this), 38); - } - - tsIsStartOfFunctionType() { - if (this.isRelational("<")) { - return true; - } - - return this.match(10) && this.tsLookAhead(this.tsIsUnambiguouslyStartOfFunctionType.bind(this)); - } - - tsSkipParameterStart() { - if (tokenIsIdentifier(this.state.type) || this.match(69)) { - this.next(); - return true; - } - - if (this.match(5)) { - let braceStackCounter = 1; - this.next(); - - while (braceStackCounter > 0) { - if (this.match(5)) { - ++braceStackCounter; - } else if (this.match(8)) { - --braceStackCounter; - } - - this.next(); - } - - return true; - } - - if (this.match(0)) { - let braceStackCounter = 1; - this.next(); - - while (braceStackCounter > 0) { - if (this.match(0)) { - ++braceStackCounter; - } else if (this.match(3)) { - --braceStackCounter; - } - - this.next(); - } - - return true; - } - - return false; - } - - tsIsUnambiguouslyStartOfFunctionType() { - this.next(); - - if (this.match(11) || this.match(21)) { - return true; - } - - if (this.tsSkipParameterStart()) { - if (this.match(14) || this.match(12) || this.match(17) || this.match(27)) { - return true; - } - - if (this.match(11)) { - this.next(); - - if (this.match(19)) { - return true; - } - } - } - - return false; - } - - tsParseTypeOrTypePredicateAnnotation(returnToken) { - return this.tsInType(() => { - const t = this.startNode(); - this.expect(returnToken); - const node = this.startNode(); - const asserts = !!this.tsTryParse(this.tsParseTypePredicateAsserts.bind(this)); - - if (asserts && this.match(69)) { - let thisTypePredicate = this.tsParseThisTypeOrThisTypePredicate(); - - if (thisTypePredicate.type === "TSThisType") { - node.parameterName = thisTypePredicate; - node.asserts = true; - node.typeAnnotation = null; - thisTypePredicate = this.finishNode(node, "TSTypePredicate"); - } else { - this.resetStartLocationFromNode(thisTypePredicate, node); - thisTypePredicate.asserts = true; - } - - t.typeAnnotation = thisTypePredicate; - return this.finishNode(t, "TSTypeAnnotation"); - } - - const typePredicateVariable = this.tsIsIdentifier() && this.tsTryParse(this.tsParseTypePredicatePrefix.bind(this)); - - if (!typePredicateVariable) { - if (!asserts) { - return this.tsParseTypeAnnotation(false, t); - } - - node.parameterName = this.parseIdentifier(); - node.asserts = asserts; - node.typeAnnotation = null; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); - } - - const type = this.tsParseTypeAnnotation(false); - node.parameterName = typePredicateVariable; - node.typeAnnotation = type; - node.asserts = asserts; - t.typeAnnotation = this.finishNode(node, "TSTypePredicate"); - return this.finishNode(t, "TSTypeAnnotation"); - }); - } - - tsTryParseTypeOrTypePredicateAnnotation() { - return this.match(14) ? this.tsParseTypeOrTypePredicateAnnotation(14) : undefined; - } - - tsTryParseTypeAnnotation() { - return this.match(14) ? this.tsParseTypeAnnotation() : undefined; - } - - tsTryParseType() { - return this.tsEatThenParseType(14); - } - - tsParseTypePredicatePrefix() { - const id = this.parseIdentifier(); - - if (this.isContextual(104) && !this.hasPrecedingLineBreak()) { - this.next(); - return id; - } - } - - tsParseTypePredicateAsserts() { - if (this.state.type !== 97) { - return false; - } - - const containsEsc = this.state.containsEsc; - this.next(); - - if (!tokenIsIdentifier(this.state.type) && !this.match(69)) { - return false; - } - - if (containsEsc) { - this.raise(this.state.lastTokStart, ErrorMessages.InvalidEscapedReservedWord, "asserts"); - } - - return true; - } - - tsParseTypeAnnotation(eatColon = true, t = this.startNode()) { - this.tsInType(() => { - if (eatColon) this.expect(14); - t.typeAnnotation = this.tsParseType(); - }); - return this.finishNode(t, "TSTypeAnnotation"); - } - - tsParseType() { - assert(this.state.inType); - const type = this.tsParseNonConditionalType(); - - if (this.hasPrecedingLineBreak() || !this.eat(72)) { - return type; - } - - const node = this.startNodeAtNode(type); - node.checkType = type; - node.extendsType = this.tsParseNonConditionalType(); - this.expect(17); - node.trueType = this.tsParseType(); - this.expect(14); - node.falseType = this.tsParseType(); - return this.finishNode(node, "TSConditionalType"); - } - - isAbstractConstructorSignature() { - return this.isContextual(111) && this.lookahead().type === 68; - } - - tsParseNonConditionalType() { - if (this.tsIsStartOfFunctionType()) { - return this.tsParseFunctionOrConstructorType("TSFunctionType"); - } - - if (this.match(68)) { - return this.tsParseFunctionOrConstructorType("TSConstructorType"); - } else if (this.isAbstractConstructorSignature()) { - return this.tsParseFunctionOrConstructorType("TSConstructorType", true); - } - - return this.tsParseUnionTypeOrHigher(); - } - - tsParseTypeAssertion() { - const node = this.startNode(); - - const _const = this.tsTryNextParseConstantContext(); - - node.typeAnnotation = _const || this.tsNextThenParseType(); - this.expectRelational(">"); - node.expression = this.parseMaybeUnary(); - return this.finishNode(node, "TSTypeAssertion"); - } - - tsParseHeritageClause(descriptor) { - const originalStart = this.state.start; - const delimitedList = this.tsParseDelimitedList("HeritageClauseElement", this.tsParseExpressionWithTypeArguments.bind(this)); - - if (!delimitedList.length) { - this.raise(originalStart, TSErrors.EmptyHeritageClauseType, descriptor); - } - - return delimitedList; - } - - tsParseExpressionWithTypeArguments() { - const node = this.startNode(); - node.expression = this.tsParseEntityName(false); - - if (this.isRelational("<")) { - node.typeParameters = this.tsParseTypeArguments(); - } - - return this.finishNode(node, "TSExpressionWithTypeArguments"); - } - - tsParseInterfaceDeclaration(node) { - if (tokenIsIdentifier(this.state.type)) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript interface declaration", BIND_TS_INTERFACE); - } else { - node.id = null; - this.raise(this.state.start, TSErrors.MissingInterfaceName); - } - - node.typeParameters = this.tsTryParseTypeParameters(); - - if (this.eat(72)) { - node.extends = this.tsParseHeritageClause("extends"); - } - - const body = this.startNode(); - body.body = this.tsInType(this.tsParseObjectTypeMembers.bind(this)); - node.body = this.finishNode(body, "TSInterfaceBody"); - return this.finishNode(node, "TSInterfaceDeclaration"); - } - - tsParseTypeAliasDeclaration(node) { - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript type alias", BIND_TS_TYPE); - node.typeParameters = this.tsTryParseTypeParameters(); - node.typeAnnotation = this.tsInType(() => { - this.expect(27); - - if (this.isContextual(102) && this.lookahead().type !== 16) { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "TSIntrinsicKeyword"); - } - - return this.tsParseType(); - }); - this.semicolon(); - return this.finishNode(node, "TSTypeAliasDeclaration"); - } - - tsInNoContext(cb) { - const oldContext = this.state.context; - this.state.context = [oldContext[0]]; - - try { - return cb(); - } finally { - this.state.context = oldContext; - } - } - - tsInType(cb) { - const oldInType = this.state.inType; - this.state.inType = true; - - try { - return cb(); - } finally { - this.state.inType = oldInType; - } - } - - tsEatThenParseType(token) { - return !this.match(token) ? undefined : this.tsNextThenParseType(); - } - - tsExpectThenParseType(token) { - return this.tsDoThenParseType(() => this.expect(token)); - } - - tsNextThenParseType() { - return this.tsDoThenParseType(() => this.next()); - } - - tsDoThenParseType(cb) { - return this.tsInType(() => { - cb(); - return this.tsParseType(); - }); - } - - tsParseEnumMember() { - const node = this.startNode(); - node.id = this.match(120) ? this.parseExprAtom() : this.parseIdentifier(true); - - if (this.eat(27)) { - node.initializer = this.parseMaybeAssignAllowIn(); - } - - return this.finishNode(node, "TSEnumMember"); - } - - tsParseEnumDeclaration(node, isConst) { - if (isConst) node.const = true; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "typescript enum declaration", isConst ? BIND_TS_CONST_ENUM : BIND_TS_ENUM); - this.expect(5); - node.members = this.tsParseDelimitedList("EnumMembers", this.tsParseEnumMember.bind(this)); - this.expect(8); - return this.finishNode(node, "TSEnumDeclaration"); - } - - tsParseModuleBlock() { - const node = this.startNode(); - this.scope.enter(SCOPE_OTHER); - this.expect(5); - this.parseBlockOrModuleBlockBody(node.body = [], undefined, true, 8); - this.scope.exit(); - return this.finishNode(node, "TSModuleBlock"); - } - - tsParseModuleOrNamespaceDeclaration(node, nested = false) { - node.id = this.parseIdentifier(); - - if (!nested) { - this.checkLVal(node.id, "module or namespace declaration", BIND_TS_NAMESPACE); - } - - if (this.eat(16)) { - const inner = this.startNode(); - this.tsParseModuleOrNamespaceDeclaration(inner, true); - node.body = inner; - } else { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); - } - - return this.finishNode(node, "TSModuleDeclaration"); - } - - tsParseAmbientExternalModuleDeclaration(node) { - if (this.isContextual(100)) { - node.global = true; - node.id = this.parseIdentifier(); - } else if (this.match(120)) { - node.id = this.parseExprAtom(); - } else { - this.unexpected(); - } - - if (this.match(5)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - node.body = this.tsParseModuleBlock(); - this.prodParam.exit(); - this.scope.exit(); - } else { - this.semicolon(); - } - - return this.finishNode(node, "TSModuleDeclaration"); - } - - tsParseImportEqualsDeclaration(node, isExport) { - node.isExport = isExport || false; - node.id = this.parseIdentifier(); - this.checkLVal(node.id, "import equals declaration", BIND_LEXICAL); - this.expect(27); - const moduleReference = this.tsParseModuleReference(); - - if (node.importKind === "type" && moduleReference.type !== "TSExternalModuleReference") { - this.raise(moduleReference.start, TSErrors.ImportAliasHasImportType); - } - - node.moduleReference = moduleReference; - this.semicolon(); - return this.finishNode(node, "TSImportEqualsDeclaration"); - } - - tsIsExternalModuleReference() { - return this.isContextual(107) && this.lookaheadCharCode() === 40; - } - - tsParseModuleReference() { - return this.tsIsExternalModuleReference() ? this.tsParseExternalModuleReference() : this.tsParseEntityName(false); - } - - tsParseExternalModuleReference() { - const node = this.startNode(); - this.expectContextual(107); - this.expect(10); - - if (!this.match(120)) { - throw this.unexpected(); - } - - node.expression = this.parseExprAtom(); - this.expect(11); - return this.finishNode(node, "TSExternalModuleReference"); - } - - tsLookAhead(f) { - const state = this.state.clone(); - const res = f(); - this.state = state; - return res; - } - - tsTryParseAndCatch(f) { - const result = this.tryParse(abort => f() || abort()); - if (result.aborted || !result.node) return undefined; - if (result.error) this.state = result.failState; - return result.node; - } - - tsTryParse(f) { - const state = this.state.clone(); - const result = f(); - - if (result !== undefined && result !== false) { - return result; - } else { - this.state = state; - return undefined; - } - } - - tsTryParseDeclare(nany) { - if (this.isLineTerminator()) { - return; - } - - let starttype = this.state.type; - let kind; - - if (this.isContextual(90)) { - starttype = 65; - kind = "let"; - } - - return this.tsInAmbientContext(() => { - switch (starttype) { - case 59: - nany.declare = true; - return this.parseFunctionStatement(nany, false, true); - - case 71: - nany.declare = true; - return this.parseClass(nany, true, false); - - case 66: - if (this.match(66) && this.isLookaheadContextual("enum")) { - this.expect(66); - this.expectContextual(113); - return this.tsParseEnumDeclaration(nany, true); - } - - case 65: - kind = kind || this.state.value; - return this.parseVarStatement(nany, kind); - - case 100: - return this.tsParseAmbientExternalModuleDeclaration(nany); - - default: - { - if (tokenIsIdentifier(starttype)) { - return this.tsParseDeclaration(nany, this.state.value, true); - } - } - } - }); - } - - tsTryParseExportDeclaration() { - return this.tsParseDeclaration(this.startNode(), this.state.value, true); - } - - tsParseExpressionStatement(node, expr) { - switch (expr.name) { - case "declare": - { - const declaration = this.tsTryParseDeclare(node); - - if (declaration) { - declaration.declare = true; - return declaration; - } - - break; - } - - case "global": - if (this.match(5)) { - this.scope.enter(SCOPE_TS_MODULE); - this.prodParam.enter(PARAM); - const mod = node; - mod.global = true; - mod.id = expr; - mod.body = this.tsParseModuleBlock(); - this.scope.exit(); - this.prodParam.exit(); - return this.finishNode(mod, "TSModuleDeclaration"); - } - - break; - - default: - return this.tsParseDeclaration(node, expr.name, false); - } - } - - tsParseDeclaration(node, value, next) { - switch (value) { - case "abstract": - if (this.tsCheckLineTerminator(next) && (this.match(71) || tokenIsIdentifier(this.state.type))) { - return this.tsParseAbstractDeclaration(node); - } - - break; - - case "enum": - if (next || tokenIsIdentifier(this.state.type)) { - if (next) this.next(); - return this.tsParseEnumDeclaration(node, false); - } - - break; - - case "interface": - if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { - return this.tsParseInterfaceDeclaration(node); - } - - break; - - case "module": - if (this.tsCheckLineTerminator(next)) { - if (this.match(120)) { - return this.tsParseAmbientExternalModuleDeclaration(node); - } else if (tokenIsIdentifier(this.state.type)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } - } - - break; - - case "namespace": - if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { - return this.tsParseModuleOrNamespaceDeclaration(node); - } - - break; - - case "type": - if (this.tsCheckLineTerminator(next) && tokenIsIdentifier(this.state.type)) { - return this.tsParseTypeAliasDeclaration(node); - } - - break; - } - } - - tsCheckLineTerminator(next) { - if (next) { - if (this.hasFollowingLineBreak()) return false; - this.next(); - return true; - } - - return !this.isLineTerminator(); - } - - tsTryParseGenericAsyncArrowFunction(startPos, startLoc) { - if (!this.isRelational("<")) { - return undefined; - } - - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = true; - const res = this.tsTryParseAndCatch(() => { - const node = this.startNodeAt(startPos, startLoc); - node.typeParameters = this.tsParseTypeParameters(); - super.parseFunctionParams(node); - node.returnType = this.tsTryParseTypeOrTypePredicateAnnotation(); - this.expect(19); - return node; - }); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - - if (!res) { - return undefined; - } - - return this.parseArrowExpression(res, null, true); - } - - tsParseTypeArguments() { - const node = this.startNode(); - node.params = this.tsInType(() => this.tsInNoContext(() => { - this.expectRelational("<"); - return this.tsParseDelimitedList("TypeParametersOrArguments", this.tsParseType.bind(this)); - })); - - if (node.params.length === 0) { - this.raise(node.start, TSErrors.EmptyTypeArguments); - } - - this.expectRelational(">"); - return this.finishNode(node, "TSTypeParameterInstantiation"); - } - - tsIsDeclarationStart() { - return tokenIsTSDeclarationStart(this.state.type); - } - - isExportDefaultSpecifier() { - if (this.tsIsDeclarationStart()) return false; - return super.isExportDefaultSpecifier(); - } - - parseAssignableListItem(allowModifiers, decorators) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let accessibility; - let readonly = false; - let override = false; - - if (allowModifiers !== undefined) { - const modified = {}; - this.tsParseModifiers(modified, ["public", "private", "protected", "override", "readonly"]); - accessibility = modified.accessibility; - override = modified.override; - readonly = modified.readonly; - - if (allowModifiers === false && (accessibility || readonly || override)) { - this.raise(startPos, TSErrors.UnexpectedParameterModifier); - } - } - - const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - const elt = this.parseMaybeDefault(left.start, left.loc.start, left); - - if (accessibility || readonly || override) { - const pp = this.startNodeAt(startPos, startLoc); - - if (decorators.length) { - pp.decorators = decorators; - } - - if (accessibility) pp.accessibility = accessibility; - if (readonly) pp.readonly = readonly; - if (override) pp.override = override; - - if (elt.type !== "Identifier" && elt.type !== "AssignmentPattern") { - this.raise(pp.start, TSErrors.UnsupportedParameterPropertyKind); - } - - pp.parameter = elt; - return this.finishNode(pp, "TSParameterProperty"); - } - - if (decorators.length) { - left.decorators = decorators; - } - - return elt; - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - if (this.match(14)) { - node.returnType = this.tsParseTypeOrTypePredicateAnnotation(14); - } - - const bodilessType = type === "FunctionDeclaration" ? "TSDeclareFunction" : type === "ClassMethod" ? "TSDeclareMethod" : undefined; - - if (bodilessType && !this.match(5) && this.isLineTerminator()) { - this.finishNode(node, bodilessType); - return; - } - - if (bodilessType === "TSDeclareFunction" && this.state.isAmbientContext) { - this.raise(node.start, TSErrors.DeclareFunctionHasImplementation); - - if (node.declare) { - super.parseFunctionBodyAndFinish(node, bodilessType, isMethod); - return; - } - } - - super.parseFunctionBodyAndFinish(node, type, isMethod); - } - - registerFunctionStatementId(node) { - if (!node.body && node.id) { - this.checkLVal(node.id, "function name", BIND_TS_AMBIENT); - } else { - super.registerFunctionStatementId(...arguments); - } - } - - tsCheckForInvalidTypeCasts(items) { - items.forEach(node => { - if ((node == null ? void 0 : node.type) === "TSTypeCastExpression") { - this.raise(node.typeAnnotation.start, TSErrors.UnexpectedTypeAnnotation); - } - }); - } - - toReferencedList(exprList, isInParens) { - this.tsCheckForInvalidTypeCasts(exprList); - return exprList; - } - - parseArrayLike(...args) { - const node = super.parseArrayLike(...args); - - if (node.type === "ArrayExpression") { - this.tsCheckForInvalidTypeCasts(node.elements); - } - - return node; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - if (!this.hasPrecedingLineBreak() && this.match(32)) { - this.state.exprAllowed = false; - this.next(); - const nonNullExpression = this.startNodeAt(startPos, startLoc); - nonNullExpression.expression = base; - return this.finishNode(nonNullExpression, "TSNonNullExpression"); - } - - let isOptionalCall = false; - - if (this.match(18) && this.lookaheadCharCode() === 60) { - if (noCalls) { - state.stop = true; - return base; - } - - state.optionalChainMember = isOptionalCall = true; - this.next(); - } - - if (this.isRelational("<")) { - let missingParenErrorPos; - const result = this.tsTryParseAndCatch(() => { - if (!noCalls && this.atPossibleAsyncArrow(base)) { - const asyncArrowFn = this.tsTryParseGenericAsyncArrowFunction(startPos, startLoc); - - if (asyncArrowFn) { - return asyncArrowFn; - } - } - - const node = this.startNodeAt(startPos, startLoc); - node.callee = base; - const typeArguments = this.tsParseTypeArguments(); - - if (typeArguments) { - if (isOptionalCall && !this.match(10)) { - missingParenErrorPos = this.state.pos; - this.unexpected(); - } - - if (!noCalls && this.eat(10)) { - node.arguments = this.parseCallExpressionArguments(11, false); - this.tsCheckForInvalidTypeCasts(node.arguments); - node.typeParameters = typeArguments; - - if (state.optionalChainMember) { - node.optional = isOptionalCall; - } - - return this.finishCallExpression(node, state.optionalChainMember); - } else if (this.match(22)) { - const result = this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - result.typeParameters = typeArguments; - return result; - } - } - - this.unexpected(); - }); - - if (missingParenErrorPos) { - this.unexpected(missingParenErrorPos, 10); - } - - if (result) return result; - } - - return super.parseSubscript(base, startPos, startLoc, noCalls, state); - } - - parseNewArguments(node) { - if (this.isRelational("<")) { - const typeParameters = this.tsTryParseAndCatch(() => { - const args = this.tsParseTypeArguments(); - if (!this.match(10)) this.unexpected(); - return args; - }); - - if (typeParameters) { - node.typeParameters = typeParameters; - } - } - - super.parseNewArguments(node); - } - - parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { - if (tokenOperatorPrecedence(49) > minPrec && !this.hasPrecedingLineBreak() && this.isContextual(84)) { - const node = this.startNodeAt(leftStartPos, leftStartLoc); - node.expression = left; - - const _const = this.tsTryNextParseConstantContext(); - - if (_const) { - node.typeAnnotation = _const; - } else { - node.typeAnnotation = this.tsNextThenParseType(); - } - - this.finishNode(node, "TSAsExpression"); - this.reScan_lt_gt(); - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); - } - - return super.parseExprOp(left, leftStartPos, leftStartLoc, minPrec); - } - - checkReservedWord(word, startLoc, checkKeywords, isBinding) {} - - checkDuplicateExports() {} - - parseImport(node) { - node.importKind = "value"; - - if (tokenIsIdentifier(this.state.type) || this.match(46) || this.match(5)) { - let ahead = this.lookahead(); - - if (this.isContextual(117) && ahead.type !== 12 && ahead.type !== 88 && ahead.type !== 27) { - node.importKind = "type"; - this.next(); - ahead = this.lookahead(); - } - - if (tokenIsIdentifier(this.state.type) && ahead.type === 27) { - return this.tsParseImportEqualsDeclaration(node); - } - } - - const importNode = super.parseImport(node); - - if (importNode.importKind === "type" && importNode.specifiers.length > 1 && importNode.specifiers[0].type === "ImportDefaultSpecifier") { - this.raise(importNode.start, TSErrors.TypeImportCannotSpecifyDefaultAndNamed); - } - - return importNode; - } - - parseExport(node) { - if (this.match(74)) { - this.next(); - - if (this.isContextual(117) && this.lookaheadCharCode() !== 61) { - node.importKind = "type"; - this.next(); - } else { - node.importKind = "value"; - } - - return this.tsParseImportEqualsDeclaration(node, true); - } else if (this.eat(27)) { - const assign = node; - assign.expression = this.parseExpression(); - this.semicolon(); - return this.finishNode(assign, "TSExportAssignment"); - } else if (this.eatContextual(84)) { - const decl = node; - this.expectContextual(115); - decl.id = this.parseIdentifier(); - this.semicolon(); - return this.finishNode(decl, "TSNamespaceExportDeclaration"); - } else { - if (this.isContextual(117) && this.lookahead().type === 5) { - this.next(); - node.exportKind = "type"; - } else { - node.exportKind = "value"; - } - - return super.parseExport(node); - } - } - - isAbstractClass() { - return this.isContextual(111) && this.lookahead().type === 71; - } - - parseExportDefaultExpression() { - if (this.isAbstractClass()) { - const cls = this.startNode(); - this.next(); - cls.abstract = true; - this.parseClass(cls, true, true); - return cls; - } - - if (this.match(116)) { - const interfaceNode = this.startNode(); - this.next(); - const result = this.tsParseInterfaceDeclaration(interfaceNode); - if (result) return result; - } - - return super.parseExportDefaultExpression(); - } - - parseStatementContent(context, topLevel) { - if (this.state.type === 66) { - const ahead = this.lookahead(); - - if (ahead.type === 113) { - const node = this.startNode(); - this.next(); - this.expectContextual(113); - return this.tsParseEnumDeclaration(node, true); - } - } - - return super.parseStatementContent(context, topLevel); - } - - parseAccessModifier() { - return this.tsParseModifier(["public", "protected", "private"]); - } - - tsHasSomeModifiers(member, modifiers) { - return modifiers.some(modifier => { - if (tsIsAccessModifier(modifier)) { - return member.accessibility === modifier; - } - - return !!member[modifier]; - }); - } - - tsIsStartOfStaticBlocks() { - return this.isContextual(95) && this.lookaheadCharCode() === 123; - } - - parseClassMember(classBody, member, state) { - const modifiers = ["declare", "private", "public", "protected", "override", "abstract", "readonly", "static"]; - this.tsParseModifiers(member, modifiers, undefined, undefined, true); - - const callParseClassMemberWithIsStatic = () => { - if (this.tsIsStartOfStaticBlocks()) { - this.next(); - this.next(); - - if (this.tsHasSomeModifiers(member, modifiers)) { - this.raise(this.state.pos, TSErrors.StaticBlockCannotHaveModifier); - } - - this.parseClassStaticBlock(classBody, member); - } else { - this.parseClassMemberWithIsStatic(classBody, member, state, !!member.static); - } - }; - - if (member.declare) { - this.tsInAmbientContext(callParseClassMemberWithIsStatic); - } else { - callParseClassMemberWithIsStatic(); - } - } - - parseClassMemberWithIsStatic(classBody, member, state, isStatic) { - const idx = this.tsTryParseIndexSignature(member); - - if (idx) { - classBody.body.push(idx); - - if (member.abstract) { - this.raise(member.start, TSErrors.IndexSignatureHasAbstract); - } - - if (member.accessibility) { - this.raise(member.start, TSErrors.IndexSignatureHasAccessibility, member.accessibility); - } - - if (member.declare) { - this.raise(member.start, TSErrors.IndexSignatureHasDeclare); - } - - if (member.override) { - this.raise(member.start, TSErrors.IndexSignatureHasOverride); - } - - return; - } - - if (!this.state.inAbstractClass && member.abstract) { - this.raise(member.start, TSErrors.NonAbstractClassHasAbstractMethod); - } - - if (member.override) { - if (!state.hadSuperClass) { - this.raise(member.start, TSErrors.OverrideNotInSubClass); - } - } - - super.parseClassMemberWithIsStatic(classBody, member, state, isStatic); - } - - parsePostMemberNameModifiers(methodOrProp) { - const optional = this.eat(17); - if (optional) methodOrProp.optional = true; - - if (methodOrProp.readonly && this.match(10)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasReadonly); - } - - if (methodOrProp.declare && this.match(10)) { - this.raise(methodOrProp.start, TSErrors.ClassMethodHasDeclare); - } - } - - parseExpressionStatement(node, expr) { - const decl = expr.type === "Identifier" ? this.tsParseExpressionStatement(node, expr) : undefined; - return decl || super.parseExpressionStatement(node, expr); - } - - shouldParseExportDeclaration() { - if (this.tsIsDeclarationStart()) return true; - return super.shouldParseExportDeclaration(); - } - - parseConditional(expr, startPos, startLoc, refExpressionErrors) { - if (!this.state.maybeInArrowParameters || !this.match(17)) { - return super.parseConditional(expr, startPos, startLoc, refExpressionErrors); - } - - const result = this.tryParse(() => super.parseConditional(expr, startPos, startLoc)); - - if (!result.node) { - if (result.error) { - super.setOptionalParametersError(refExpressionErrors, result.error); - } - - return expr; - } - - if (result.error) this.state = result.failState; - return result.node; - } - - parseParenItem(node, startPos, startLoc) { - node = super.parseParenItem(node, startPos, startLoc); - - if (this.eat(17)) { - node.optional = true; - this.resetEndLocation(node); - } - - if (this.match(14)) { - const typeCastNode = this.startNodeAt(startPos, startLoc); - typeCastNode.expression = node; - typeCastNode.typeAnnotation = this.tsParseTypeAnnotation(); - return this.finishNode(typeCastNode, "TSTypeCastExpression"); - } - - return node; - } - - parseExportDeclaration(node) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const isDeclare = this.eatContextual(112); - - if (isDeclare && (this.isContextual(112) || !this.shouldParseExportDeclaration())) { - throw this.raise(this.state.start, TSErrors.ExpectedAmbientAfterExportDeclare); - } - - let declaration; - - if (tokenIsIdentifier(this.state.type)) { - declaration = this.tsTryParseExportDeclaration(); - } - - if (!declaration) { - declaration = super.parseExportDeclaration(node); - } - - if (declaration && (declaration.type === "TSInterfaceDeclaration" || declaration.type === "TSTypeAliasDeclaration" || isDeclare)) { - node.exportKind = "type"; - } - - if (declaration && isDeclare) { - this.resetStartLocation(declaration, startPos, startLoc); - declaration.declare = true; - } - - return declaration; - } - - parseClassId(node, isStatement, optionalId) { - if ((!isStatement || optionalId) && this.isContextual(101)) { - return; - } - - super.parseClassId(node, isStatement, optionalId, node.declare ? BIND_TS_AMBIENT : BIND_CLASS); - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; - } - - parseClassPropertyAnnotation(node) { - if (!node.optional && this.eat(32)) { - node.definite = true; - } - - const type = this.tsTryParseTypeAnnotation(); - if (type) node.typeAnnotation = type; - } - - parseClassProperty(node) { - this.parseClassPropertyAnnotation(node); - - if (this.state.isAmbientContext && this.match(27)) { - this.raise(this.state.start, TSErrors.DeclareClassFieldHasInitializer); - } - - if (node.abstract && this.match(27)) { - const { - key - } = node; - this.raise(this.state.start, TSErrors.AbstractPropertyHasInitializer, key.type === "Identifier" && !node.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`); - } - - return super.parseClassProperty(node); - } - - parseClassPrivateProperty(node) { - if (node.abstract) { - this.raise(node.start, TSErrors.PrivateElementHasAbstract); - } - - if (node.accessibility) { - this.raise(node.start, TSErrors.PrivateElementHasAccessibility, node.accessibility); - } - - this.parseClassPropertyAnnotation(node); - return super.parseClassPrivateProperty(node); - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - const typeParameters = this.tsTryParseTypeParameters(); - - if (typeParameters && isConstructor) { - this.raise(typeParameters.start, TSErrors.ConstructorHasTypeParameters); - } - - if (method.declare && (method.kind === "get" || method.kind === "set")) { - this.raise(method.start, TSErrors.DeclareAccessor, method.kind); - } - - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper); - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) method.typeParameters = typeParameters; - super.pushClassPrivateMethod(classBody, method, isGenerator, isAsync); - } - - parseClassSuper(node) { - super.parseClassSuper(node); - - if (node.superClass && this.isRelational("<")) { - node.superTypeParameters = this.tsParseTypeArguments(); - } - - if (this.eatContextual(101)) { - node.implements = this.tsParseHeritageClause("implements"); - } - } - - parseObjPropValue(prop, ...args) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) prop.typeParameters = typeParameters; - super.parseObjPropValue(prop, ...args); - } - - parseFunctionParams(node, allowModifiers) { - const typeParameters = this.tsTryParseTypeParameters(); - if (typeParameters) node.typeParameters = typeParameters; - super.parseFunctionParams(node, allowModifiers); - } - - parseVarId(decl, kind) { - super.parseVarId(decl, kind); - - if (decl.id.type === "Identifier" && this.eat(32)) { - decl.definite = true; - } - - const type = this.tsTryParseTypeAnnotation(); - - if (type) { - decl.id.typeAnnotation = type; - this.resetEndLocation(decl.id); - } - } - - parseAsyncArrowFromCallExpression(node, call) { - if (this.match(14)) { - node.returnType = this.tsParseTypeAnnotation(); - } - - return super.parseAsyncArrowFromCallExpression(node, call); - } - - parseMaybeAssign(...args) { - var _jsx, _jsx2, _typeCast, _jsx3, _typeCast2, _jsx4, _typeCast3; - - let state; - let jsx; - let typeCast; - - if (this.hasPlugin("jsx") && (this.match(129) || this.isRelational("<"))) { - state = this.state.clone(); - jsx = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!jsx.error) return jsx.node; - const { - context - } = this.state; - - if (context[context.length - 1] === types.j_oTag) { - context.length -= 2; - } else if (context[context.length - 1] === types.j_expr) { - context.length -= 1; - } - } - - if (!((_jsx = jsx) != null && _jsx.error) && !this.isRelational("<")) { - return super.parseMaybeAssign(...args); - } - - let typeParameters; - state = state || this.state.clone(); - const arrow = this.tryParse(abort => { - var _expr$extra, _typeParameters; - - typeParameters = this.tsParseTypeParameters(); - const expr = super.parseMaybeAssign(...args); - - if (expr.type !== "ArrowFunctionExpression" || (_expr$extra = expr.extra) != null && _expr$extra.parenthesized) { - abort(); - } - - if (((_typeParameters = typeParameters) == null ? void 0 : _typeParameters.params.length) !== 0) { - this.resetStartLocationFromNode(expr, typeParameters); - } - - expr.typeParameters = typeParameters; - return expr; - }, state); - if (!arrow.error && !arrow.aborted) return arrow.node; - - if (!jsx) { - assert(!this.hasPlugin("jsx")); - typeCast = this.tryParse(() => super.parseMaybeAssign(...args), state); - if (!typeCast.error) return typeCast.node; - } - - if ((_jsx2 = jsx) != null && _jsx2.node) { - this.state = jsx.failState; - return jsx.node; - } - - if (arrow.node) { - this.state = arrow.failState; - return arrow.node; - } - - if ((_typeCast = typeCast) != null && _typeCast.node) { - this.state = typeCast.failState; - return typeCast.node; - } - - if ((_jsx3 = jsx) != null && _jsx3.thrown) throw jsx.error; - if (arrow.thrown) throw arrow.error; - if ((_typeCast2 = typeCast) != null && _typeCast2.thrown) throw typeCast.error; - throw ((_jsx4 = jsx) == null ? void 0 : _jsx4.error) || arrow.error || ((_typeCast3 = typeCast) == null ? void 0 : _typeCast3.error); - } - - parseMaybeUnary(refExpressionErrors) { - if (!this.hasPlugin("jsx") && this.isRelational("<")) { - return this.tsParseTypeAssertion(); - } else { - return super.parseMaybeUnary(refExpressionErrors); - } - } - - parseArrow(node) { - if (this.match(14)) { - const result = this.tryParse(abort => { - const returnType = this.tsParseTypeOrTypePredicateAnnotation(14); - if (this.canInsertSemicolon() || !this.match(19)) abort(); - return returnType; - }); - if (result.aborted) return; - - if (!result.thrown) { - if (result.error) this.state = result.failState; - node.returnType = result.node; - } - } - - return super.parseArrow(node); - } - - parseAssignableListItemTypes(param) { - if (this.eat(17)) { - if (param.type !== "Identifier" && !this.state.isAmbientContext && !this.state.inType) { - this.raise(param.start, TSErrors.PatternIsOptional); - } - - param.optional = true; - } - - const type = this.tsTryParseTypeAnnotation(); - if (type) param.typeAnnotation = type; - this.resetEndLocation(param); - return param; - } - - isAssignable(node, isBinding) { - switch (node.type) { - case "TSTypeCastExpression": - return this.isAssignable(node.expression, isBinding); - - case "TSParameterProperty": - return true; - - default: - return super.isAssignable(node, isBinding); - } - } - - toAssignable(node, isLHS = false) { - switch (node.type) { - case "TSTypeCastExpression": - return super.toAssignable(this.typeCastToParameter(node), isLHS); - - case "TSParameterProperty": - return super.toAssignable(node, isLHS); - - case "ParenthesizedExpression": - return this.toAssignableParenthesizedExpression(node, isLHS); - - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - node.expression = this.toAssignable(node.expression, isLHS); - return node; - - default: - return super.toAssignable(node, isLHS); - } - } - - toAssignableParenthesizedExpression(node, isLHS) { - switch (node.expression.type) { - case "TSAsExpression": - case "TSNonNullExpression": - case "TSTypeAssertion": - case "ParenthesizedExpression": - node.expression = this.toAssignable(node.expression, isLHS); - return node; - - default: - return super.toAssignable(node, isLHS); - } - } - - checkLVal(expr, contextDescription, ...args) { - var _expr$extra2; - - switch (expr.type) { - case "TSTypeCastExpression": - return; - - case "TSParameterProperty": - this.checkLVal(expr.parameter, "parameter property", ...args); - return; - - case "TSAsExpression": - case "TSTypeAssertion": - if (!args[0] && contextDescription !== "parenthesized expression" && !((_expr$extra2 = expr.extra) != null && _expr$extra2.parenthesized)) { - this.raise(expr.start, ErrorMessages.InvalidLhs, contextDescription); - break; - } - - this.checkLVal(expr.expression, "parenthesized expression", ...args); - return; - - case "TSNonNullExpression": - this.checkLVal(expr.expression, contextDescription, ...args); - return; - - default: - super.checkLVal(expr, contextDescription, ...args); - return; - } - } - - parseBindingAtom() { - switch (this.state.type) { - case 69: - return this.parseIdentifier(true); - - default: - return super.parseBindingAtom(); - } - } - - parseMaybeDecoratorArguments(expr) { - if (this.isRelational("<")) { - const typeArguments = this.tsParseTypeArguments(); - - if (this.match(10)) { - const call = super.parseMaybeDecoratorArguments(expr); - call.typeParameters = typeArguments; - return call; - } - - this.unexpected(this.state.start, 10); - } - - return super.parseMaybeDecoratorArguments(expr); - } - - checkCommaAfterRest(close) { - if (this.state.isAmbientContext && this.match(12) && this.lookaheadCharCode() === close) { - this.next(); - } else { - super.checkCommaAfterRest(close); - } - } - - isClassMethod() { - return this.isRelational("<") || super.isClassMethod(); - } - - isClassProperty() { - return this.match(32) || this.match(14) || super.isClassProperty(); - } - - parseMaybeDefault(...args) { - const node = super.parseMaybeDefault(...args); - - if (node.type === "AssignmentPattern" && node.typeAnnotation && node.right.start < node.typeAnnotation.start) { - this.raise(node.typeAnnotation.start, TSErrors.TypeAnnotationAfterAssign); - } - - return node; - } - - getTokenFromCode(code) { - if (this.state.inType && (code === 62 || code === 60)) { - return this.finishOp(42, 1); - } else { - return super.getTokenFromCode(code); - } - } - - reScan_lt_gt() { - if (this.match(42)) { - const code = this.input.charCodeAt(this.state.start); - - if (code === 60 || code === 62) { - this.state.pos -= 1; - this.readToken_lt_gt(code); - } - } - } - - toAssignableList(exprList) { - for (let i = 0; i < exprList.length; i++) { - const expr = exprList[i]; - if (!expr) continue; - - switch (expr.type) { - case "TSTypeCastExpression": - exprList[i] = this.typeCastToParameter(expr); - break; - - case "TSAsExpression": - case "TSTypeAssertion": - if (!this.state.maybeInArrowParameters) { - exprList[i] = this.typeCastToParameter(expr); - } else { - this.raise(expr.start, TSErrors.UnexpectedTypeCastInParameter); - } - - break; - } - } - - return super.toAssignableList(...arguments); - } - - typeCastToParameter(node) { - node.expression.typeAnnotation = node.typeAnnotation; - this.resetEndLocation(node.expression, node.typeAnnotation.end, node.typeAnnotation.loc.end); - return node.expression; - } - - shouldParseArrow(params) { - if (this.match(14)) { - return params.every(expr => this.isAssignable(expr, true)); - } - - return super.shouldParseArrow(params); - } - - shouldParseAsyncArrow() { - return this.match(14) || super.shouldParseAsyncArrow(); - } - - canHaveLeadingDecorator() { - return super.canHaveLeadingDecorator() || this.isAbstractClass(); - } - - jsxParseOpeningElementAfterName(node) { - if (this.isRelational("<")) { - const typeArguments = this.tsTryParseAndCatch(() => this.tsParseTypeArguments()); - if (typeArguments) node.typeParameters = typeArguments; - } - - return super.jsxParseOpeningElementAfterName(node); - } - - getGetterSetterExpectedParamCount(method) { - const baseCount = super.getGetterSetterExpectedParamCount(method); - const params = this.getObjectOrClassMethodParams(method); - const firstParam = params[0]; - const hasContextParam = firstParam && this.isThisParam(firstParam); - return hasContextParam ? baseCount + 1 : baseCount; - } - - parseCatchClauseParam() { - const param = super.parseCatchClauseParam(); - const type = this.tsTryParseTypeAnnotation(); - - if (type) { - param.typeAnnotation = type; - this.resetEndLocation(param); - } - - return param; - } - - tsInAmbientContext(cb) { - const oldIsAmbientContext = this.state.isAmbientContext; - this.state.isAmbientContext = true; - - try { - return cb(); - } finally { - this.state.isAmbientContext = oldIsAmbientContext; - } - } - - parseClass(node, ...args) { - const oldInAbstractClass = this.state.inAbstractClass; - this.state.inAbstractClass = !!node.abstract; - - try { - return super.parseClass(node, ...args); - } finally { - this.state.inAbstractClass = oldInAbstractClass; - } - } - - tsParseAbstractDeclaration(node) { - if (this.match(71)) { - node.abstract = true; - return this.parseClass(node, true, false); - } else if (this.isContextual(116)) { - if (!this.hasFollowingLineBreak()) { - node.abstract = true; - this.raise(node.start, TSErrors.NonClassMethodPropertyHasAbstractModifer); - this.next(); - return this.tsParseInterfaceDeclaration(node); - } - } else { - this.unexpected(null, 71); - } - } - - parseMethod(...args) { - const method = super.parseMethod(...args); - - if (method.abstract) { - const hasBody = this.hasPlugin("estree") ? !!method.value.body : !!method.body; - - if (hasBody) { - const { - key - } = method; - this.raise(method.start, TSErrors.AbstractMethodHasImplementation, key.type === "Identifier" && !method.computed ? key.name : `[${this.input.slice(key.start, key.end)}]`); - } - } - - return method; - } - - tsParseTypeParameterName() { - const typeName = this.parseIdentifier(); - return typeName.name; - } - - shouldParseAsAmbientContext() { - return !!this.getPluginOption("typescript", "dts"); - } - - parse() { - if (this.shouldParseAsAmbientContext()) { - this.state.isAmbientContext = true; - } - - return super.parse(); - } - - getExpression() { - if (this.shouldParseAsAmbientContext()) { - this.state.isAmbientContext = true; - } - - return super.getExpression(); - } - -}); - -const PlaceHolderErrors = makeErrorTemplates({ - ClassNameIsRequired: "A class name is required." -}, ErrorCodes.SyntaxError); -var placeholders = (superClass => class extends superClass { - parsePlaceholder(expectedNode) { - if (this.match(131)) { - const node = this.startNode(); - this.next(); - this.assertNoSpace("Unexpected space in placeholder."); - node.name = super.parseIdentifier(true); - this.assertNoSpace("Unexpected space in placeholder."); - this.expect(131); - return this.finishPlaceholder(node, expectedNode); - } - } - - finishPlaceholder(node, expectedNode) { - const isFinished = !!(node.expectedNode && node.type === "Placeholder"); - node.expectedNode = expectedNode; - return isFinished ? node : this.finishNode(node, "Placeholder"); - } - - getTokenFromCode(code) { - if (code === 37 && this.input.charCodeAt(this.state.pos + 1) === 37) { - return this.finishOp(131, 2); - } - - return super.getTokenFromCode(...arguments); - } - - parseExprAtom() { - return this.parsePlaceholder("Expression") || super.parseExprAtom(...arguments); - } - - parseIdentifier() { - return this.parsePlaceholder("Identifier") || super.parseIdentifier(...arguments); - } - - checkReservedWord(word) { - if (word !== undefined) super.checkReservedWord(...arguments); - } - - parseBindingAtom() { - return this.parsePlaceholder("Pattern") || super.parseBindingAtom(...arguments); - } - - checkLVal(expr) { - if (expr.type !== "Placeholder") super.checkLVal(...arguments); - } - - toAssignable(node) { - if (node && node.type === "Placeholder" && node.expectedNode === "Expression") { - node.expectedNode = "Pattern"; - return node; - } - - return super.toAssignable(...arguments); - } - - isLet(context) { - if (super.isLet(context)) { - return true; - } - - if (!this.isContextual(90)) { - return false; - } - - if (context) return false; - const nextToken = this.lookahead(); - - if (nextToken.type === 131) { - return true; - } - - return false; - } - - verifyBreakContinue(node) { - if (node.label && node.label.type === "Placeholder") return; - super.verifyBreakContinue(...arguments); - } - - parseExpressionStatement(node, expr) { - if (expr.type !== "Placeholder" || expr.extra && expr.extra.parenthesized) { - return super.parseExpressionStatement(...arguments); - } - - if (this.match(14)) { - const stmt = node; - stmt.label = this.finishPlaceholder(expr, "Identifier"); - this.next(); - stmt.body = this.parseStatement("label"); - return this.finishNode(stmt, "LabeledStatement"); - } - - this.semicolon(); - node.name = expr.name; - return this.finishPlaceholder(node, "Statement"); - } - - parseBlock() { - return this.parsePlaceholder("BlockStatement") || super.parseBlock(...arguments); - } - - parseFunctionId() { - return this.parsePlaceholder("Identifier") || super.parseFunctionId(...arguments); - } - - parseClass(node, isStatement, optionalId) { - const type = isStatement ? "ClassDeclaration" : "ClassExpression"; - this.next(); - this.takeDecorators(node); - const oldStrict = this.state.strict; - const placeholder = this.parsePlaceholder("Identifier"); - - if (placeholder) { - if (this.match(72) || this.match(131) || this.match(5)) { - node.id = placeholder; - } else if (optionalId || !isStatement) { - node.id = null; - node.body = this.finishPlaceholder(placeholder, "ClassBody"); - return this.finishNode(node, type); - } else { - this.unexpected(null, PlaceHolderErrors.ClassNameIsRequired); - } - } else { - this.parseClassId(node, isStatement, optionalId); - } - - this.parseClassSuper(node); - node.body = this.parsePlaceholder("ClassBody") || this.parseClassBody(!!node.superClass, oldStrict); - return this.finishNode(node, type); - } - - parseExport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseExport(...arguments); - - if (!this.isContextual(88) && !this.match(12)) { - node.specifiers = []; - node.source = null; - node.declaration = this.finishPlaceholder(placeholder, "Declaration"); - return this.finishNode(node, "ExportNamedDeclaration"); - } - - this.expectPlugin("exportDefaultFrom"); - const specifier = this.startNode(); - specifier.exported = placeholder; - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return super.parseExport(node); - } - - isExportDefaultSpecifier() { - if (this.match(56)) { - const next = this.nextTokenStart(); - - if (this.isUnparsedContextual(next, "from")) { - if (this.input.startsWith(tokenLabelName(131), this.nextTokenStartSince(next + 4))) { - return true; - } - } - } - - return super.isExportDefaultSpecifier(); - } - - maybeParseExportDefaultSpecifier(node) { - if (node.specifiers && node.specifiers.length > 0) { - return true; - } - - return super.maybeParseExportDefaultSpecifier(...arguments); - } - - checkExport(node) { - const { - specifiers - } = node; - - if (specifiers != null && specifiers.length) { - node.specifiers = specifiers.filter(node => node.exported.type === "Placeholder"); - } - - super.checkExport(node); - node.specifiers = specifiers; - } - - parseImport(node) { - const placeholder = this.parsePlaceholder("Identifier"); - if (!placeholder) return super.parseImport(...arguments); - node.specifiers = []; - - if (!this.isContextual(88) && !this.match(12)) { - node.source = this.finishPlaceholder(placeholder, "StringLiteral"); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - const specifier = this.startNodeAtNode(placeholder); - specifier.local = placeholder; - this.finishNode(specifier, "ImportDefaultSpecifier"); - node.specifiers.push(specifier); - - if (this.eat(12)) { - const hasStarImport = this.maybeParseStarImportSpecifier(node); - if (!hasStarImport) this.parseNamedImportSpecifiers(node); - } - - this.expectContextual(88); - node.source = this.parseImportSource(); - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - parseImportSource() { - return this.parsePlaceholder("StringLiteral") || super.parseImportSource(...arguments); - } - -}); - -var v8intrinsic = (superClass => class extends superClass { - parseV8Intrinsic() { - if (this.match(45)) { - const v8IntrinsicStart = this.state.start; - const node = this.startNode(); - this.next(); - - if (tokenIsIdentifier(this.state.type)) { - const name = this.parseIdentifierName(this.state.start); - const identifier = this.createIdentifier(node, name); - identifier.type = "V8IntrinsicIdentifier"; - - if (this.match(10)) { - return identifier; - } - } - - this.unexpected(v8IntrinsicStart); - } - } - - parseExprAtom() { - return this.parseV8Intrinsic() || super.parseExprAtom(...arguments); - } - -}); - -function hasPlugin(plugins, name) { - return plugins.some(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); -} -function getPluginOption(plugins, name, option) { - const plugin = plugins.find(plugin => { - if (Array.isArray(plugin)) { - return plugin[0] === name; - } else { - return plugin === name; - } - }); - - if (plugin && Array.isArray(plugin)) { - return plugin[1][option]; - } - - return null; -} -const PIPELINE_PROPOSALS = ["minimal", "fsharp", "hack", "smart"]; -const TOPIC_TOKENS = ["%", "#"]; -const RECORD_AND_TUPLE_SYNTAX_TYPES = ["hash", "bar"]; -function validatePlugins(plugins) { - if (hasPlugin(plugins, "decorators")) { - if (hasPlugin(plugins, "decorators-legacy")) { - throw new Error("Cannot use the decorators and decorators-legacy plugin together"); - } - - const decoratorsBeforeExport = getPluginOption(plugins, "decorators", "decoratorsBeforeExport"); - - if (decoratorsBeforeExport == null) { - throw new Error("The 'decorators' plugin requires a 'decoratorsBeforeExport' option," + " whose value must be a boolean. If you are migrating from" + " Babylon/Babel 6 or want to use the old decorators proposal, you" + " should use the 'decorators-legacy' plugin instead of 'decorators'."); - } else if (typeof decoratorsBeforeExport !== "boolean") { - throw new Error("'decoratorsBeforeExport' must be a boolean."); - } - } - - if (hasPlugin(plugins, "flow") && hasPlugin(plugins, "typescript")) { - throw new Error("Cannot combine flow and typescript plugins."); - } - - if (hasPlugin(plugins, "placeholders") && hasPlugin(plugins, "v8intrinsic")) { - throw new Error("Cannot combine placeholders and v8intrinsic plugins."); - } - - if (hasPlugin(plugins, "pipelineOperator")) { - const proposal = getPluginOption(plugins, "pipelineOperator", "proposal"); - - if (!PIPELINE_PROPOSALS.includes(proposal)) { - const proposalList = PIPELINE_PROPOSALS.map(p => `"${p}"`).join(", "); - throw new Error(`"pipelineOperator" requires "proposal" option whose value must be one of: ${proposalList}.`); - } - - const tupleSyntaxIsHash = hasPlugin(plugins, "recordAndTuple") && getPluginOption(plugins, "recordAndTuple", "syntaxType") === "hash"; - - if (proposal === "hack") { - if (hasPlugin(plugins, "placeholders")) { - throw new Error("Cannot combine placeholders plugin and Hack-style pipes."); - } - - if (hasPlugin(plugins, "v8intrinsic")) { - throw new Error("Cannot combine v8intrinsic plugin and Hack-style pipes."); - } - - const topicToken = getPluginOption(plugins, "pipelineOperator", "topicToken"); - - if (!TOPIC_TOKENS.includes(topicToken)) { - const tokenList = TOPIC_TOKENS.map(t => `"${t}"`).join(", "); - throw new Error(`"pipelineOperator" in "proposal": "hack" mode also requires a "topicToken" option whose value must be one of: ${tokenList}.`); - } - - if (topicToken === "#" && tupleSyntaxIsHash) { - throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "hack", topicToken: "#" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); - } - } else if (proposal === "smart" && tupleSyntaxIsHash) { - throw new Error('Plugin conflict between `["pipelineOperator", { proposal: "smart" }]` and `["recordAndtuple", { syntaxType: "hash"}]`.'); - } - } - - if (hasPlugin(plugins, "moduleAttributes")) { - { - if (hasPlugin(plugins, "importAssertions")) { - throw new Error("Cannot combine importAssertions and moduleAttributes plugins."); - } - - const moduleAttributesVerionPluginOption = getPluginOption(plugins, "moduleAttributes", "version"); - - if (moduleAttributesVerionPluginOption !== "may-2020") { - throw new Error("The 'moduleAttributes' plugin requires a 'version' option," + " representing the last proposal update. Currently, the" + " only supported value is 'may-2020'."); - } - } - } - - if (hasPlugin(plugins, "recordAndTuple") && !RECORD_AND_TUPLE_SYNTAX_TYPES.includes(getPluginOption(plugins, "recordAndTuple", "syntaxType"))) { - throw new Error("'recordAndTuple' requires 'syntaxType' option whose value should be one of: " + RECORD_AND_TUPLE_SYNTAX_TYPES.map(p => `'${p}'`).join(", ")); - } - - if (hasPlugin(plugins, "asyncDoExpressions") && !hasPlugin(plugins, "doExpressions")) { - const error = new Error("'asyncDoExpressions' requires 'doExpressions', please add 'doExpressions' to parser plugins."); - error.missingPlugins = "doExpressions"; - throw error; - } -} -const mixinPlugins = { - estree, - jsx, - flow, - typescript, - v8intrinsic, - placeholders -}; -const mixinPluginNames = Object.keys(mixinPlugins); - -const defaultOptions = { - sourceType: "script", - sourceFilename: undefined, - startLine: 1, - allowAwaitOutsideFunction: false, - allowReturnOutsideFunction: false, - allowImportExportEverywhere: false, - allowSuperOutsideMethod: false, - allowUndeclaredExports: false, - plugins: [], - strictMode: null, - ranges: false, - tokens: false, - createParenthesizedExpressions: false, - errorRecovery: false, - attachComment: true -}; -function getOptions(opts) { - const options = {}; - - for (const key of Object.keys(defaultOptions)) { - options[key] = opts && opts[key] != null ? opts[key] : defaultOptions[key]; - } - - return options; -} - -const unwrapParenthesizedExpression = node => { - return node.type === "ParenthesizedExpression" ? unwrapParenthesizedExpression(node.expression) : node; -}; - -class LValParser extends NodeUtils { - toAssignable(node, isLHS = false) { - var _node$extra, _node$extra3; - - let parenthesized = undefined; - - if (node.type === "ParenthesizedExpression" || (_node$extra = node.extra) != null && _node$extra.parenthesized) { - parenthesized = unwrapParenthesizedExpression(node); - - if (isLHS) { - if (parenthesized.type === "Identifier") { - this.expressionScope.recordParenthesizedIdentifierError(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } else if (parenthesized.type !== "MemberExpression") { - this.raise(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } - } else { - this.raise(node.start, ErrorMessages.InvalidParenthesizedAssignment); - } - } - - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - case "RestElement": - break; - - case "ObjectExpression": - node.type = "ObjectPattern"; - - for (let i = 0, length = node.properties.length, last = length - 1; i < length; i++) { - var _node$extra2; - - const prop = node.properties[i]; - const isLast = i === last; - this.toAssignableObjectExpressionProp(prop, isLast, isLHS); - - if (isLast && prop.type === "RestElement" && (_node$extra2 = node.extra) != null && _node$extra2.trailingComma) { - this.raiseRestNotLast(node.extra.trailingComma); - } - } - - break; - - case "ObjectProperty": - this.toAssignable(node.value, isLHS); - break; - - case "SpreadElement": - { - this.checkToRestConversion(node); - node.type = "RestElement"; - const arg = node.argument; - this.toAssignable(arg, isLHS); - break; - } - - case "ArrayExpression": - node.type = "ArrayPattern"; - this.toAssignableList(node.elements, (_node$extra3 = node.extra) == null ? void 0 : _node$extra3.trailingComma, isLHS); - break; - - case "AssignmentExpression": - if (node.operator !== "=") { - this.raise(node.left.end, ErrorMessages.MissingEqInAssignment); - } - - node.type = "AssignmentPattern"; - delete node.operator; - this.toAssignable(node.left, isLHS); - break; - - case "ParenthesizedExpression": - this.toAssignable(parenthesized, isLHS); - break; - } - - return node; - } - - toAssignableObjectExpressionProp(prop, isLast, isLHS) { - if (prop.type === "ObjectMethod") { - const error = prop.kind === "get" || prop.kind === "set" ? ErrorMessages.PatternHasAccessor : ErrorMessages.PatternHasMethod; - this.raise(prop.key.start, error); - } else if (prop.type === "SpreadElement" && !isLast) { - this.raiseRestNotLast(prop.start); - } else { - this.toAssignable(prop, isLHS); - } - } - - toAssignableList(exprList, trailingCommaPos, isLHS) { - let end = exprList.length; - - if (end) { - const last = exprList[end - 1]; - - if ((last == null ? void 0 : last.type) === "RestElement") { - --end; - } else if ((last == null ? void 0 : last.type) === "SpreadElement") { - last.type = "RestElement"; - let arg = last.argument; - this.toAssignable(arg, isLHS); - arg = unwrapParenthesizedExpression(arg); - - if (arg.type !== "Identifier" && arg.type !== "MemberExpression" && arg.type !== "ArrayPattern" && arg.type !== "ObjectPattern") { - this.unexpected(arg.start); - } - - if (trailingCommaPos) { - this.raiseTrailingCommaAfterRest(trailingCommaPos); - } - - --end; - } - } - - for (let i = 0; i < end; i++) { - const elt = exprList[i]; - - if (elt) { - this.toAssignable(elt, isLHS); - - if (elt.type === "RestElement") { - this.raiseRestNotLast(elt.start); - } - } - } - - return exprList; - } - - isAssignable(node, isBinding) { - switch (node.type) { - case "Identifier": - case "ObjectPattern": - case "ArrayPattern": - case "AssignmentPattern": - case "RestElement": - return true; - - case "ObjectExpression": - { - const last = node.properties.length - 1; - return node.properties.every((prop, i) => { - return prop.type !== "ObjectMethod" && (i === last || prop.type !== "SpreadElement") && this.isAssignable(prop); - }); - } - - case "ObjectProperty": - return this.isAssignable(node.value); - - case "SpreadElement": - return this.isAssignable(node.argument); - - case "ArrayExpression": - return node.elements.every(element => element === null || this.isAssignable(element)); - - case "AssignmentExpression": - return node.operator === "="; - - case "ParenthesizedExpression": - return this.isAssignable(node.expression); - - case "MemberExpression": - case "OptionalMemberExpression": - return !isBinding; - - default: - return false; - } - } - - toReferencedList(exprList, isParenthesizedExpr) { - return exprList; - } - - toReferencedListDeep(exprList, isParenthesizedExpr) { - this.toReferencedList(exprList, isParenthesizedExpr); - - for (const expr of exprList) { - if ((expr == null ? void 0 : expr.type) === "ArrayExpression") { - this.toReferencedListDeep(expr.elements); - } - } - } - - parseSpread(refExpressionErrors, refNeedsArrowPos) { - const node = this.startNode(); - this.next(); - node.argument = this.parseMaybeAssignAllowIn(refExpressionErrors, undefined, refNeedsArrowPos); - return this.finishNode(node, "SpreadElement"); - } - - parseRestBinding() { - const node = this.startNode(); - this.next(); - node.argument = this.parseBindingAtom(); - return this.finishNode(node, "RestElement"); - } - - parseBindingAtom() { - switch (this.state.type) { - case 0: - { - const node = this.startNode(); - this.next(); - node.elements = this.parseBindingList(3, 93, true); - return this.finishNode(node, "ArrayPattern"); - } - - case 5: - return this.parseObjectLike(8, true); - } - - return this.parseIdentifier(); - } - - parseBindingList(close, closeCharCode, allowEmpty, allowModifiers) { - const elts = []; - let first = true; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(12); - } - - if (allowEmpty && this.match(12)) { - elts.push(null); - } else if (this.eat(close)) { - break; - } else if (this.match(21)) { - elts.push(this.parseAssignableListItemTypes(this.parseRestBinding())); - this.checkCommaAfterRest(closeCharCode); - this.expect(close); - break; - } else { - const decorators = []; - - if (this.match(24) && this.hasPlugin("decorators")) { - this.raise(this.state.start, ErrorMessages.UnsupportedParameterDecorator); - } - - while (this.match(24)) { - decorators.push(this.parseDecorator()); - } - - elts.push(this.parseAssignableListItem(allowModifiers, decorators)); - } - } - - return elts; - } - - parseAssignableListItem(allowModifiers, decorators) { - const left = this.parseMaybeDefault(); - this.parseAssignableListItemTypes(left); - const elt = this.parseMaybeDefault(left.start, left.loc.start, left); - - if (decorators.length) { - left.decorators = decorators; - } - - return elt; - } - - parseAssignableListItemTypes(param) { - return param; - } - - parseMaybeDefault(startPos, startLoc, left) { - var _startLoc, _startPos, _left; - - startLoc = (_startLoc = startLoc) != null ? _startLoc : this.state.startLoc; - startPos = (_startPos = startPos) != null ? _startPos : this.state.start; - left = (_left = left) != null ? _left : this.parseBindingAtom(); - if (!this.eat(27)) return left; - const node = this.startNodeAt(startPos, startLoc); - node.left = left; - node.right = this.parseMaybeAssignAllowIn(); - return this.finishNode(node, "AssignmentPattern"); - } - - checkLVal(expr, contextDescription, bindingType = BIND_NONE, checkClashes, disallowLetBinding, strictModeChanged = false) { - switch (expr.type) { - case "Identifier": - { - const { - name - } = expr; - - if (this.state.strict && (strictModeChanged ? isStrictBindReservedWord(name, this.inModule) : isStrictBindOnlyReservedWord(name))) { - this.raise(expr.start, bindingType === BIND_NONE ? ErrorMessages.StrictEvalArguments : ErrorMessages.StrictEvalArgumentsBinding, name); - } - - if (checkClashes) { - if (checkClashes.has(name)) { - this.raise(expr.start, ErrorMessages.ParamDupe); - } else { - checkClashes.add(name); - } - } - - if (disallowLetBinding && name === "let") { - this.raise(expr.start, ErrorMessages.LetInLexicalBinding); - } - - if (!(bindingType & BIND_NONE)) { - this.scope.declareName(name, bindingType, expr.start); - } - - break; - } - - case "MemberExpression": - if (bindingType !== BIND_NONE) { - this.raise(expr.start, ErrorMessages.InvalidPropertyBindingPattern); - } - - break; - - case "ObjectPattern": - for (let prop of expr.properties) { - if (this.isObjectProperty(prop)) prop = prop.value;else if (this.isObjectMethod(prop)) continue; - this.checkLVal(prop, "object destructuring pattern", bindingType, checkClashes, disallowLetBinding); - } - - break; - - case "ArrayPattern": - for (const elem of expr.elements) { - if (elem) { - this.checkLVal(elem, "array destructuring pattern", bindingType, checkClashes, disallowLetBinding); - } - } - - break; - - case "AssignmentPattern": - this.checkLVal(expr.left, "assignment pattern", bindingType, checkClashes); - break; - - case "RestElement": - this.checkLVal(expr.argument, "rest element", bindingType, checkClashes); - break; - - case "ParenthesizedExpression": - this.checkLVal(expr.expression, "parenthesized expression", bindingType, checkClashes); - break; - - default: - { - this.raise(expr.start, bindingType === BIND_NONE ? ErrorMessages.InvalidLhs : ErrorMessages.InvalidLhsBinding, contextDescription); - } - } - } - - checkToRestConversion(node) { - if (node.argument.type !== "Identifier" && node.argument.type !== "MemberExpression") { - this.raise(node.argument.start, ErrorMessages.InvalidRestAssignmentPattern); - } - } - - checkCommaAfterRest(close) { - if (this.match(12)) { - if (this.lookaheadCharCode() === close) { - this.raiseTrailingCommaAfterRest(this.state.start); - } else { - this.raiseRestNotLast(this.state.start); - } - } - } - - raiseRestNotLast(pos) { - throw this.raise(pos, ErrorMessages.ElementAfterRest); - } - - raiseTrailingCommaAfterRest(pos) { - this.raise(pos, ErrorMessages.RestTrailingComma); - } - -} - -const invalidHackPipeBodies = new Map([["ArrowFunctionExpression", "arrow function"], ["AssignmentExpression", "assignment"], ["ConditionalExpression", "conditional"], ["YieldExpression", "yield"]]); -class ExpressionParser extends LValParser { - checkProto(prop, isRecord, protoRef, refExpressionErrors) { - if (prop.type === "SpreadElement" || this.isObjectMethod(prop) || prop.computed || prop.shorthand) { - return; - } - - const key = prop.key; - const name = key.type === "Identifier" ? key.name : key.value; - - if (name === "__proto__") { - if (isRecord) { - this.raise(key.start, ErrorMessages.RecordNoProto); - return; - } - - if (protoRef.used) { - if (refExpressionErrors) { - if (refExpressionErrors.doubleProto === -1) { - refExpressionErrors.doubleProto = key.start; - } - } else { - this.raise(key.start, ErrorMessages.DuplicateProto); - } - } - - protoRef.used = true; - } - } - - shouldExitDescending(expr, potentialArrowAt) { - return expr.type === "ArrowFunctionExpression" && expr.start === potentialArrowAt; - } - - getExpression() { - this.enterInitialScopes(); - this.nextToken(); - const expr = this.parseExpression(); - - if (!this.match(126)) { - this.unexpected(); - } - - this.finalizeRemainingComments(); - expr.comments = this.state.comments; - expr.errors = this.state.errors; - - if (this.options.tokens) { - expr.tokens = this.tokens; - } - - return expr; - } - - parseExpression(disallowIn, refExpressionErrors) { - if (disallowIn) { - return this.disallowInAnd(() => this.parseExpressionBase(refExpressionErrors)); - } - - return this.allowInAnd(() => this.parseExpressionBase(refExpressionErrors)); - } - - parseExpressionBase(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const expr = this.parseMaybeAssign(refExpressionErrors); - - if (this.match(12)) { - const node = this.startNodeAt(startPos, startLoc); - node.expressions = [expr]; - - while (this.eat(12)) { - node.expressions.push(this.parseMaybeAssign(refExpressionErrors)); - } - - this.toReferencedList(node.expressions); - return this.finishNode(node, "SequenceExpression"); - } - - return expr; - } - - parseMaybeAssignDisallowIn(refExpressionErrors, afterLeftParse) { - return this.disallowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); - } - - parseMaybeAssignAllowIn(refExpressionErrors, afterLeftParse) { - return this.allowInAnd(() => this.parseMaybeAssign(refExpressionErrors, afterLeftParse)); - } - - setOptionalParametersError(refExpressionErrors, resultError) { - var _resultError$pos; - - refExpressionErrors.optionalParameters = (_resultError$pos = resultError == null ? void 0 : resultError.pos) != null ? _resultError$pos : this.state.start; - } - - parseMaybeAssign(refExpressionErrors, afterLeftParse) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - - if (this.isContextual(96)) { - if (this.prodParam.hasYield) { - let left = this.parseYield(); - - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - - return left; - } - } - - let ownExpressionErrors; - - if (refExpressionErrors) { - ownExpressionErrors = false; - } else { - refExpressionErrors = new ExpressionErrors(); - ownExpressionErrors = true; - } - - const { - type - } = this.state; - - if (type === 10 || tokenIsIdentifier(type)) { - this.state.potentialArrowAt = this.state.start; - } - - let left = this.parseMaybeConditional(refExpressionErrors); - - if (afterLeftParse) { - left = afterLeftParse.call(this, left, startPos, startLoc); - } - - if (tokenIsAssignment(this.state.type)) { - const node = this.startNodeAt(startPos, startLoc); - const operator = this.state.value; - node.operator = operator; - - if (this.match(27)) { - node.left = this.toAssignable(left, true); - refExpressionErrors.doubleProto = -1; - } else { - node.left = left; - } - - if (refExpressionErrors.shorthandAssign >= node.left.start) { - refExpressionErrors.shorthandAssign = -1; - } - - this.checkLVal(left, "assignment expression"); - this.next(); - node.right = this.parseMaybeAssign(); - return this.finishNode(node, "AssignmentExpression"); - } else if (ownExpressionErrors) { - this.checkExpressionErrors(refExpressionErrors, true); - } - - return left; - } - - parseMaybeConditional(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseExprOps(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseConditional(expr, startPos, startLoc, refExpressionErrors); - } - - parseConditional(expr, startPos, startLoc, refExpressionErrors) { - if (this.eat(17)) { - const node = this.startNodeAt(startPos, startLoc); - node.test = expr; - node.consequent = this.parseMaybeAssignAllowIn(); - this.expect(14); - node.alternate = this.parseMaybeAssign(); - return this.finishNode(node, "ConditionalExpression"); - } - - return expr; - } - - parseMaybeUnaryOrPrivate(refExpressionErrors) { - return this.match(125) ? this.parsePrivateName() : this.parseMaybeUnary(refExpressionErrors); - } - - parseExprOps(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseMaybeUnaryOrPrivate(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseExprOp(expr, startPos, startLoc, -1); - } - - parseExprOp(left, leftStartPos, leftStartLoc, minPrec) { - if (this.isPrivateName(left)) { - const value = this.getPrivateNameSV(left); - const { - start - } = left; - - if (minPrec >= tokenOperatorPrecedence(49) || !this.prodParam.hasIn || !this.match(49)) { - this.raise(start, ErrorMessages.PrivateInExpectedIn, value); - } - - this.classScope.usePrivateName(value, start); - } - - const op = this.state.type; - - if (tokenIsOperator(op) && (this.prodParam.hasIn || !this.match(49))) { - let prec = tokenOperatorPrecedence(op); - - if (prec > minPrec) { - if (op === 34) { - this.expectPlugin("pipelineOperator"); - - if (this.state.inFSharpPipelineDirectBody) { - return left; - } - - this.checkPipelineAtInfixOperator(left, leftStartPos); - } - - const node = this.startNodeAt(leftStartPos, leftStartLoc); - node.left = left; - node.operator = this.state.value; - const logical = op === 36 || op === 37; - const coalesce = op === 35; - - if (coalesce) { - prec = tokenOperatorPrecedence(37); - } - - this.next(); - - if (op === 34 && this.getPluginOption("pipelineOperator", "proposal") === "minimal") { - if (this.state.type === 87 && this.prodParam.hasAwait) { - throw this.raise(this.state.start, ErrorMessages.UnexpectedAwaitAfterPipelineBody); - } - } - - node.right = this.parseExprOpRightExpr(op, prec); - this.finishNode(node, logical || coalesce ? "LogicalExpression" : "BinaryExpression"); - const nextOp = this.state.type; - - if (coalesce && (nextOp === 36 || nextOp === 37) || logical && nextOp === 35) { - throw this.raise(this.state.start, ErrorMessages.MixingCoalesceWithLogical); - } - - return this.parseExprOp(node, leftStartPos, leftStartLoc, minPrec); - } - } - - return left; - } - - parseExprOpRightExpr(op, prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - - switch (op) { - case 34: - switch (this.getPluginOption("pipelineOperator", "proposal")) { - case "hack": - return this.withTopicBindingContext(() => { - return this.parseHackPipeBody(); - }); - - case "smart": - return this.withTopicBindingContext(() => { - if (this.prodParam.hasYield && this.isContextual(96)) { - throw this.raise(this.state.start, ErrorMessages.PipeBodyIsTighter, this.state.value); - } - - return this.parseSmartPipelineBodyInStyle(this.parseExprOpBaseRightExpr(op, prec), startPos, startLoc); - }); - - case "fsharp": - return this.withSoloAwaitPermittingContext(() => { - return this.parseFSharpPipelineBody(prec); - }); - } - - default: - return this.parseExprOpBaseRightExpr(op, prec); - } - } - - parseExprOpBaseRightExpr(op, prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - return this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startPos, startLoc, tokenIsRightAssociative(op) ? prec - 1 : prec); - } - - parseHackPipeBody() { - var _body$extra; - - const { - start - } = this.state; - const body = this.parseMaybeAssign(); - - if (invalidHackPipeBodies.has(body.type) && !((_body$extra = body.extra) != null && _body$extra.parenthesized)) { - this.raise(start, ErrorMessages.PipeUnparenthesizedBody, invalidHackPipeBodies.get(body.type)); - } - - if (!this.topicReferenceWasUsedInCurrentContext()) { - this.raise(start, ErrorMessages.PipeTopicUnused); - } - - return body; - } - - checkExponentialAfterUnary(node) { - if (this.match(48)) { - this.raise(node.argument.start, ErrorMessages.UnexpectedTokenUnaryExponentiation); - } - } - - parseMaybeUnary(refExpressionErrors, sawUnary) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const isAwait = this.isContextual(87); - - if (isAwait && this.isAwaitAllowed()) { - this.next(); - const expr = this.parseAwait(startPos, startLoc); - if (!sawUnary) this.checkExponentialAfterUnary(expr); - return expr; - } - - const update = this.match(31); - const node = this.startNode(); - - if (tokenIsPrefix(this.state.type)) { - node.operator = this.state.value; - node.prefix = true; - - if (this.match(63)) { - this.expectPlugin("throwExpressions"); - } - - const isDelete = this.match(80); - this.next(); - node.argument = this.parseMaybeUnary(null, true); - this.checkExpressionErrors(refExpressionErrors, true); - - if (this.state.strict && isDelete) { - const arg = node.argument; - - if (arg.type === "Identifier") { - this.raise(node.start, ErrorMessages.StrictDelete); - } else if (this.hasPropertyAsPrivateName(arg)) { - this.raise(node.start, ErrorMessages.DeletePrivateField); - } - } - - if (!update) { - if (!sawUnary) this.checkExponentialAfterUnary(node); - return this.finishNode(node, "UnaryExpression"); - } - } - - const expr = this.parseUpdate(node, update, refExpressionErrors); - - if (isAwait) { - const { - type - } = this.state; - const startsExpr = this.hasPlugin("v8intrinsic") ? tokenCanStartExpression(type) : tokenCanStartExpression(type) && !this.match(45); - - if (startsExpr && !this.isAmbiguousAwait()) { - this.raiseOverwrite(startPos, ErrorMessages.AwaitNotInAsyncContext); - return this.parseAwait(startPos, startLoc); - } - } - - return expr; - } - - parseUpdate(node, update, refExpressionErrors) { - if (update) { - this.checkLVal(node.argument, "prefix operation"); - return this.finishNode(node, "UpdateExpression"); - } - - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let expr = this.parseExprSubscripts(refExpressionErrors); - if (this.checkExpressionErrors(refExpressionErrors, false)) return expr; - - while (tokenIsPostfix(this.state.type) && !this.canInsertSemicolon()) { - const node = this.startNodeAt(startPos, startLoc); - node.operator = this.state.value; - node.prefix = false; - node.argument = expr; - this.checkLVal(expr, "postfix operation"); - this.next(); - expr = this.finishNode(node, "UpdateExpression"); - } - - return expr; - } - - parseExprSubscripts(refExpressionErrors) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - const potentialArrowAt = this.state.potentialArrowAt; - const expr = this.parseExprAtom(refExpressionErrors); - - if (this.shouldExitDescending(expr, potentialArrowAt)) { - return expr; - } - - return this.parseSubscripts(expr, startPos, startLoc); - } - - parseSubscripts(base, startPos, startLoc, noCalls) { - const state = { - optionalChainMember: false, - maybeAsyncArrow: this.atPossibleAsyncArrow(base), - stop: false - }; - - do { - base = this.parseSubscript(base, startPos, startLoc, noCalls, state); - state.maybeAsyncArrow = false; - } while (!state.stop); - - return base; - } - - parseSubscript(base, startPos, startLoc, noCalls, state) { - if (!noCalls && this.eat(15)) { - return this.parseBind(base, startPos, startLoc, noCalls, state); - } else if (this.match(22)) { - return this.parseTaggedTemplateExpression(base, startPos, startLoc, state); - } - - let optional = false; - - if (this.match(18)) { - if (noCalls && this.lookaheadCharCode() === 40) { - state.stop = true; - return base; - } - - state.optionalChainMember = optional = true; - this.next(); - } - - if (!noCalls && this.match(10)) { - return this.parseCoverCallAndAsyncArrowHead(base, startPos, startLoc, state, optional); - } else { - const computed = this.eat(0); - - if (computed || optional || this.eat(16)) { - return this.parseMember(base, startPos, startLoc, state, computed, optional); - } else { - state.stop = true; - return base; - } - } - } - - parseMember(base, startPos, startLoc, state, computed, optional) { - const node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.computed = computed; - const privateName = !computed && this.match(125) && this.state.value; - const property = computed ? this.parseExpression() : privateName ? this.parsePrivateName() : this.parseIdentifier(true); - - if (privateName !== false) { - if (node.object.type === "Super") { - this.raise(startPos, ErrorMessages.SuperPrivateField); - } - - this.classScope.usePrivateName(privateName, property.start); - } - - node.property = property; - - if (computed) { - this.expect(3); - } - - if (state.optionalChainMember) { - node.optional = optional; - return this.finishNode(node, "OptionalMemberExpression"); - } else { - return this.finishNode(node, "MemberExpression"); - } - } - - parseBind(base, startPos, startLoc, noCalls, state) { - const node = this.startNodeAt(startPos, startLoc); - node.object = base; - node.callee = this.parseNoCallExpr(); - state.stop = true; - return this.parseSubscripts(this.finishNode(node, "BindExpression"), startPos, startLoc, noCalls); - } - - parseCoverCallAndAsyncArrowHead(base, startPos, startLoc, state, optional) { - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - let refExpressionErrors = null; - this.state.maybeInArrowParameters = true; - this.next(); - let node = this.startNodeAt(startPos, startLoc); - node.callee = base; - - if (state.maybeAsyncArrow) { - this.expressionScope.enter(newAsyncArrowScope()); - refExpressionErrors = new ExpressionErrors(); - } - - if (state.optionalChainMember) { - node.optional = optional; - } - - if (optional) { - node.arguments = this.parseCallExpressionArguments(11); - } else { - node.arguments = this.parseCallExpressionArguments(11, base.type === "Import", base.type !== "Super", node, refExpressionErrors); - } - - this.finishCallExpression(node, state.optionalChainMember); - - if (state.maybeAsyncArrow && this.shouldParseAsyncArrow() && !optional) { - state.stop = true; - this.expressionScope.validateAsPattern(); - this.expressionScope.exit(); - node = this.parseAsyncArrowFromCallExpression(this.startNodeAt(startPos, startLoc), node); - } else { - if (state.maybeAsyncArrow) { - this.checkExpressionErrors(refExpressionErrors, true); - this.expressionScope.exit(); - } - - this.toReferencedArguments(node); - } - - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return node; - } - - toReferencedArguments(node, isParenthesizedExpr) { - this.toReferencedListDeep(node.arguments, isParenthesizedExpr); - } - - parseTaggedTemplateExpression(base, startPos, startLoc, state) { - const node = this.startNodeAt(startPos, startLoc); - node.tag = base; - node.quasi = this.parseTemplate(true); - - if (state.optionalChainMember) { - this.raise(startPos, ErrorMessages.OptionalChainingNoTemplate); - } - - return this.finishNode(node, "TaggedTemplateExpression"); - } - - atPossibleAsyncArrow(base) { - return base.type === "Identifier" && base.name === "async" && this.state.lastTokEnd === base.end && !this.canInsertSemicolon() && base.end - base.start === 5 && base.start === this.state.potentialArrowAt; - } - - finishCallExpression(node, optional) { - if (node.callee.type === "Import") { - if (node.arguments.length === 2) { - { - if (!this.hasPlugin("moduleAttributes")) { - this.expectPlugin("importAssertions"); - } - } - } - - if (node.arguments.length === 0 || node.arguments.length > 2) { - this.raise(node.start, ErrorMessages.ImportCallArity, this.hasPlugin("importAssertions") || this.hasPlugin("moduleAttributes") ? "one or two arguments" : "one argument"); - } else { - for (const arg of node.arguments) { - if (arg.type === "SpreadElement") { - this.raise(arg.start, ErrorMessages.ImportCallSpreadArgument); - } - } - } - } - - return this.finishNode(node, optional ? "OptionalCallExpression" : "CallExpression"); - } - - parseCallExpressionArguments(close, dynamicImport, allowPlaceholder, nodeForExtra, refExpressionErrors) { - const elts = []; - let first = true; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(12); - - if (this.match(close)) { - if (dynamicImport && !this.hasPlugin("importAssertions") && !this.hasPlugin("moduleAttributes")) { - this.raise(this.state.lastTokStart, ErrorMessages.ImportCallArgumentTrailingComma); - } - - if (nodeForExtra) { - this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart); - } - - this.next(); - break; - } - } - - elts.push(this.parseExprListItem(false, refExpressionErrors, allowPlaceholder)); - } - - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return elts; - } - - shouldParseAsyncArrow() { - return this.match(19) && !this.canInsertSemicolon(); - } - - parseAsyncArrowFromCallExpression(node, call) { - var _call$extra; - - this.resetPreviousNodeTrailingComments(call); - this.expect(19); - this.parseArrowExpression(node, call.arguments, true, (_call$extra = call.extra) == null ? void 0 : _call$extra.trailingComma); - - if (call.innerComments) { - setInnerComments(node, call.innerComments); - } - - if (call.callee.trailingComments) { - setInnerComments(node, call.callee.trailingComments); - } - - return node; - } - - parseNoCallExpr() { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - return this.parseSubscripts(this.parseExprAtom(), startPos, startLoc, true); - } - - parseExprAtom(refExpressionErrors) { - let node; - const { - type - } = this.state; - - switch (type) { - case 70: - return this.parseSuper(); - - case 74: - node = this.startNode(); - this.next(); - - if (this.match(16)) { - return this.parseImportMetaProperty(node); - } - - if (!this.match(10)) { - this.raise(this.state.lastTokStart, ErrorMessages.UnsupportedImport); - } - - return this.finishNode(node, "Import"); - - case 69: - node = this.startNode(); - this.next(); - return this.finishNode(node, "ThisExpression"); - - case 81: - { - return this.parseDo(this.startNode(), false); - } - - case 47: - case 29: - { - this.readRegexp(); - return this.parseRegExpLiteral(this.state.value); - } - - case 121: - return this.parseNumericLiteral(this.state.value); - - case 122: - return this.parseBigIntLiteral(this.state.value); - - case 123: - return this.parseDecimalLiteral(this.state.value); - - case 120: - return this.parseStringLiteral(this.state.value); - - case 75: - return this.parseNullLiteral(); - - case 76: - return this.parseBooleanLiteral(true); - - case 77: - return this.parseBooleanLiteral(false); - - case 10: - { - const canBeArrow = this.state.potentialArrowAt === this.state.start; - return this.parseParenAndDistinguishExpression(canBeArrow); - } - - case 2: - case 1: - { - return this.parseArrayLike(this.state.type === 2 ? 4 : 3, false, true, refExpressionErrors); - } - - case 0: - { - return this.parseArrayLike(3, true, false, refExpressionErrors); - } - - case 6: - case 7: - { - return this.parseObjectLike(this.state.type === 6 ? 9 : 8, false, true, refExpressionErrors); - } - - case 5: - { - return this.parseObjectLike(8, false, false, refExpressionErrors); - } - - case 59: - return this.parseFunctionOrFunctionSent(); - - case 24: - this.parseDecorators(); - - case 71: - node = this.startNode(); - this.takeDecorators(node); - return this.parseClass(node, false); - - case 68: - return this.parseNewOrNewTarget(); - - case 22: - return this.parseTemplate(false); - - case 15: - { - node = this.startNode(); - this.next(); - node.object = null; - const callee = node.callee = this.parseNoCallExpr(); - - if (callee.type === "MemberExpression") { - return this.finishNode(node, "BindExpression"); - } else { - throw this.raise(callee.start, ErrorMessages.UnsupportedBind); - } - } - - case 125: - { - this.raise(this.state.start, ErrorMessages.PrivateInExpectedIn, this.state.value); - return this.parsePrivateName(); - } - - case 30: - if (this.getPluginOption("pipelineOperator", "proposal") === "hack" && this.getPluginOption("pipelineOperator", "topicToken") === "%") { - this.state.value = "%"; - this.state.type = 45; - this.state.pos--; - this.state.end--; - this.state.endLoc.column--; - } else { - throw this.unexpected(); - } - - case 45: - case 25: - { - const pipeProposal = this.getPluginOption("pipelineOperator", "proposal"); - - if (pipeProposal) { - node = this.startNode(); - const start = this.state.start; - const tokenType = this.state.type; - this.next(); - return this.finishTopicReference(node, start, pipeProposal, tokenType); - } - } - - case 42: - { - if (this.state.value === "<") { - const lookaheadCh = this.input.codePointAt(this.nextTokenStart()); - - if (isIdentifierStart(lookaheadCh) || lookaheadCh === 62) { - this.expectOnePlugin(["jsx", "flow", "typescript"]); - } - } - } - - default: - if (tokenIsIdentifier(type)) { - if (this.isContextual(114) && this.lookaheadCharCode() === 123 && !this.hasFollowingLineBreak()) { - return this.parseModuleExpression(); - } - - const canBeArrow = this.state.potentialArrowAt === this.state.start; - const containsEsc = this.state.containsEsc; - const id = this.parseIdentifier(); - - if (!containsEsc && id.name === "async" && !this.canInsertSemicolon()) { - const { - type - } = this.state; - - if (type === 59) { - this.resetPreviousNodeTrailingComments(id); - this.next(); - return this.parseFunction(this.startNodeAtNode(id), undefined, true); - } else if (tokenIsIdentifier(type)) { - if (this.lookaheadCharCode() === 61) { - return this.parseAsyncArrowUnaryFunction(this.startNodeAtNode(id)); - } else { - return id; - } - } else if (type === 81) { - this.resetPreviousNodeTrailingComments(id); - return this.parseDo(this.startNodeAtNode(id), true); - } - } - - if (canBeArrow && this.match(19) && !this.canInsertSemicolon()) { - this.next(); - return this.parseArrowExpression(this.startNodeAtNode(id), [id], false); - } - - return id; - } else { - throw this.unexpected(); - } - - } - } - - finishTopicReference(node, start, pipeProposal, tokenType) { - if (this.testTopicReferenceConfiguration(pipeProposal, start, tokenType)) { - let nodeType; - - if (pipeProposal === "smart") { - nodeType = "PipelinePrimaryTopicReference"; - } else { - nodeType = "TopicReference"; - } - - if (!this.topicReferenceIsAllowedInCurrentContext()) { - if (pipeProposal === "smart") { - this.raise(start, ErrorMessages.PrimaryTopicNotAllowed); - } else { - this.raise(start, ErrorMessages.PipeTopicUnbound); - } - } - - this.registerTopicReference(); - return this.finishNode(node, nodeType); - } else { - throw this.raise(start, ErrorMessages.PipeTopicUnconfiguredToken, tokenLabelName(tokenType)); - } - } - - testTopicReferenceConfiguration(pipeProposal, start, tokenType) { - switch (pipeProposal) { - case "hack": - { - const pluginTopicToken = this.getPluginOption("pipelineOperator", "topicToken"); - return tokenLabelName(tokenType) === pluginTopicToken; - } - - case "smart": - return tokenType === 25; - - default: - throw this.raise(start, ErrorMessages.PipeTopicRequiresHackPipes); - } - } - - parseAsyncArrowUnaryFunction(node) { - this.prodParam.enter(functionFlags(true, this.prodParam.hasYield)); - const params = [this.parseIdentifier()]; - this.prodParam.exit(); - - if (this.hasPrecedingLineBreak()) { - this.raise(this.state.pos, ErrorMessages.LineTerminatorBeforeArrow); - } - - this.expect(19); - this.parseArrowExpression(node, params, true); - return node; - } - - parseDo(node, isAsync) { - this.expectPlugin("doExpressions"); - - if (isAsync) { - this.expectPlugin("asyncDoExpressions"); - } - - node.async = isAsync; - this.next(); - const oldLabels = this.state.labels; - this.state.labels = []; - - if (isAsync) { - this.prodParam.enter(PARAM_AWAIT); - node.body = this.parseBlock(); - this.prodParam.exit(); - } else { - node.body = this.parseBlock(); - } - - this.state.labels = oldLabels; - return this.finishNode(node, "DoExpression"); - } - - parseSuper() { - const node = this.startNode(); - this.next(); - - if (this.match(10) && !this.scope.allowDirectSuper && !this.options.allowSuperOutsideMethod) { - this.raise(node.start, ErrorMessages.SuperNotAllowed); - } else if (!this.scope.allowSuper && !this.options.allowSuperOutsideMethod) { - this.raise(node.start, ErrorMessages.UnexpectedSuper); - } - - if (!this.match(10) && !this.match(0) && !this.match(16)) { - this.raise(node.start, ErrorMessages.UnsupportedSuper); - } - - return this.finishNode(node, "Super"); - } - - parseMaybePrivateName(isPrivateNameAllowed) { - const isPrivate = this.match(125); - - if (isPrivate) { - if (!isPrivateNameAllowed) { - this.raise(this.state.start + 1, ErrorMessages.UnexpectedPrivateField); - } - - return this.parsePrivateName(); - } else { - return this.parseIdentifier(true); - } - } - - parsePrivateName() { - const node = this.startNode(); - const id = this.startNodeAt(this.state.start + 1, new Position(this.state.curLine, this.state.start + 1 - this.state.lineStart)); - const name = this.state.value; - this.next(); - node.id = this.createIdentifier(id, name); - return this.finishNode(node, "PrivateName"); - } - - parseFunctionOrFunctionSent() { - const node = this.startNode(); - this.next(); - - if (this.prodParam.hasYield && this.match(16)) { - const meta = this.createIdentifier(this.startNodeAtNode(node), "function"); - this.next(); - - if (this.match(93)) { - this.expectPlugin("functionSent"); - } else if (!this.hasPlugin("functionSent")) { - this.unexpected(); - } - - return this.parseMetaProperty(node, meta, "sent"); - } - - return this.parseFunction(node); - } - - parseMetaProperty(node, meta, propertyName) { - node.meta = meta; - const containsEsc = this.state.containsEsc; - node.property = this.parseIdentifier(true); - - if (node.property.name !== propertyName || containsEsc) { - this.raise(node.property.start, ErrorMessages.UnsupportedMetaProperty, meta.name, propertyName); - } - - return this.finishNode(node, "MetaProperty"); - } - - parseImportMetaProperty(node) { - const id = this.createIdentifier(this.startNodeAtNode(node), "import"); - this.next(); - - if (this.isContextual(91)) { - if (!this.inModule) { - this.raise(id.start, SourceTypeModuleErrorMessages.ImportMetaOutsideModule); - } - - this.sawUnambiguousESM = true; - } - - return this.parseMetaProperty(node, id, "meta"); - } - - parseLiteralAtNode(value, type, node) { - this.addExtra(node, "rawValue", value); - this.addExtra(node, "raw", this.input.slice(node.start, this.state.end)); - node.value = value; - this.next(); - return this.finishNode(node, type); - } - - parseLiteral(value, type) { - const node = this.startNode(); - return this.parseLiteralAtNode(value, type, node); - } - - parseStringLiteral(value) { - return this.parseLiteral(value, "StringLiteral"); - } - - parseNumericLiteral(value) { - return this.parseLiteral(value, "NumericLiteral"); - } - - parseBigIntLiteral(value) { - return this.parseLiteral(value, "BigIntLiteral"); - } - - parseDecimalLiteral(value) { - return this.parseLiteral(value, "DecimalLiteral"); - } - - parseRegExpLiteral(value) { - const node = this.parseLiteral(value.value, "RegExpLiteral"); - node.pattern = value.pattern; - node.flags = value.flags; - return node; - } - - parseBooleanLiteral(value) { - const node = this.startNode(); - node.value = value; - this.next(); - return this.finishNode(node, "BooleanLiteral"); - } - - parseNullLiteral() { - const node = this.startNode(); - this.next(); - return this.finishNode(node, "NullLiteral"); - } - - parseParenAndDistinguishExpression(canBeArrow) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let val; - this.next(); - this.expressionScope.enter(newArrowHeadScope()); - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.maybeInArrowParameters = true; - this.state.inFSharpPipelineDirectBody = false; - const innerStartPos = this.state.start; - const innerStartLoc = this.state.startLoc; - const exprList = []; - const refExpressionErrors = new ExpressionErrors(); - let first = true; - let spreadStart; - let optionalCommaStart; - - while (!this.match(11)) { - if (first) { - first = false; - } else { - this.expect(12, refExpressionErrors.optionalParameters === -1 ? null : refExpressionErrors.optionalParameters); - - if (this.match(11)) { - optionalCommaStart = this.state.start; - break; - } - } - - if (this.match(21)) { - const spreadNodeStartPos = this.state.start; - const spreadNodeStartLoc = this.state.startLoc; - spreadStart = this.state.start; - exprList.push(this.parseParenItem(this.parseRestBinding(), spreadNodeStartPos, spreadNodeStartLoc)); - this.checkCommaAfterRest(41); - break; - } else { - exprList.push(this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem)); - } - } - - const innerEndPos = this.state.lastTokEnd; - const innerEndLoc = this.state.lastTokEndLoc; - this.expect(11); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - let arrowNode = this.startNodeAt(startPos, startLoc); - - if (canBeArrow && this.shouldParseArrow(exprList) && (arrowNode = this.parseArrow(arrowNode))) { - this.expressionScope.validateAsPattern(); - this.expressionScope.exit(); - this.parseArrowExpression(arrowNode, exprList, false); - return arrowNode; - } - - this.expressionScope.exit(); - - if (!exprList.length) { - this.unexpected(this.state.lastTokStart); - } - - if (optionalCommaStart) this.unexpected(optionalCommaStart); - if (spreadStart) this.unexpected(spreadStart); - this.checkExpressionErrors(refExpressionErrors, true); - this.toReferencedListDeep(exprList, true); - - if (exprList.length > 1) { - val = this.startNodeAt(innerStartPos, innerStartLoc); - val.expressions = exprList; - this.finishNode(val, "SequenceExpression"); - this.resetEndLocation(val, innerEndPos, innerEndLoc); - } else { - val = exprList[0]; - } - - if (!this.options.createParenthesizedExpressions) { - this.addExtra(val, "parenthesized", true); - this.addExtra(val, "parenStart", startPos); - this.takeSurroundingComments(val, startPos, this.state.lastTokEnd); - return val; - } - - const parenExpression = this.startNodeAt(startPos, startLoc); - parenExpression.expression = val; - this.finishNode(parenExpression, "ParenthesizedExpression"); - return parenExpression; - } - - shouldParseArrow(params) { - return !this.canInsertSemicolon(); - } - - parseArrow(node) { - if (this.eat(19)) { - return node; - } - } - - parseParenItem(node, startPos, startLoc) { - return node; - } - - parseNewOrNewTarget() { - const node = this.startNode(); - this.next(); - - if (this.match(16)) { - const meta = this.createIdentifier(this.startNodeAtNode(node), "new"); - this.next(); - const metaProp = this.parseMetaProperty(node, meta, "target"); - - if (!this.scope.inNonArrowFunction && !this.scope.inClass) { - this.raise(metaProp.start, ErrorMessages.UnexpectedNewTarget); - } - - return metaProp; - } - - return this.parseNew(node); - } - - parseNew(node) { - node.callee = this.parseNoCallExpr(); - - if (node.callee.type === "Import") { - this.raise(node.callee.start, ErrorMessages.ImportCallNotNewExpression); - } else if (this.isOptionalChain(node.callee)) { - this.raise(this.state.lastTokEnd, ErrorMessages.OptionalChainingNoNew); - } else if (this.eat(18)) { - this.raise(this.state.start, ErrorMessages.OptionalChainingNoNew); - } - - this.parseNewArguments(node); - return this.finishNode(node, "NewExpression"); - } - - parseNewArguments(node) { - if (this.eat(10)) { - const args = this.parseExprList(11); - this.toReferencedList(args); - node.arguments = args; - } else { - node.arguments = []; - } - } - - parseTemplateElement(isTagged) { - const elem = this.startNode(); - - if (this.state.value === null) { - if (!isTagged) { - this.raise(this.state.start + 1, ErrorMessages.InvalidEscapeSequenceTemplate); - } - } - - elem.value = { - raw: this.input.slice(this.state.start, this.state.end).replace(/\r\n?/g, "\n"), - cooked: this.state.value - }; - this.next(); - elem.tail = this.match(22); - return this.finishNode(elem, "TemplateElement"); - } - - parseTemplate(isTagged) { - const node = this.startNode(); - this.next(); - node.expressions = []; - let curElt = this.parseTemplateElement(isTagged); - node.quasis = [curElt]; - - while (!curElt.tail) { - this.expect(23); - node.expressions.push(this.parseTemplateSubstitution()); - this.expect(8); - node.quasis.push(curElt = this.parseTemplateElement(isTagged)); - } - - this.next(); - return this.finishNode(node, "TemplateLiteral"); - } - - parseTemplateSubstitution() { - return this.parseExpression(); - } - - parseObjectLike(close, isPattern, isRecord, refExpressionErrors) { - if (isRecord) { - this.expectPlugin("recordAndTuple"); - } - - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - const propHash = Object.create(null); - let first = true; - const node = this.startNode(); - node.properties = []; - this.next(); - - while (!this.match(close)) { - if (first) { - first = false; - } else { - this.expect(12); - - if (this.match(close)) { - this.addExtra(node, "trailingComma", this.state.lastTokStart); - break; - } - } - - const prop = this.parsePropertyDefinition(isPattern, refExpressionErrors); - - if (!isPattern) { - this.checkProto(prop, isRecord, propHash, refExpressionErrors); - } - - if (isRecord && !this.isObjectProperty(prop) && prop.type !== "SpreadElement") { - this.raise(prop.start, ErrorMessages.InvalidRecordProperty); - } - - if (prop.shorthand) { - this.addExtra(prop, "shorthand", true); - } - - node.properties.push(prop); - } - - this.next(); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - let type = "ObjectExpression"; - - if (isPattern) { - type = "ObjectPattern"; - } else if (isRecord) { - type = "RecordExpression"; - } - - return this.finishNode(node, type); - } - - maybeAsyncOrAccessorProp(prop) { - return !prop.computed && prop.key.type === "Identifier" && (this.isLiteralPropertyName() || this.match(0) || this.match(46)); - } - - parsePropertyDefinition(isPattern, refExpressionErrors) { - let decorators = []; - - if (this.match(24)) { - if (this.hasPlugin("decorators")) { - this.raise(this.state.start, ErrorMessages.UnsupportedPropertyDecorator); - } - - while (this.match(24)) { - decorators.push(this.parseDecorator()); - } - } - - const prop = this.startNode(); - let isGenerator = false; - let isAsync = false; - let isAccessor = false; - let startPos; - let startLoc; - - if (this.match(21)) { - if (decorators.length) this.unexpected(); - - if (isPattern) { - this.next(); - prop.argument = this.parseIdentifier(); - this.checkCommaAfterRest(125); - return this.finishNode(prop, "RestElement"); - } - - return this.parseSpread(); - } - - if (decorators.length) { - prop.decorators = decorators; - decorators = []; - } - - prop.method = false; - - if (isPattern || refExpressionErrors) { - startPos = this.state.start; - startLoc = this.state.startLoc; - } - - if (!isPattern) { - isGenerator = this.eat(46); - } - - const containsEsc = this.state.containsEsc; - const key = this.parsePropertyName(prop, false); - - if (!isPattern && !isGenerator && !containsEsc && this.maybeAsyncOrAccessorProp(prop)) { - const keyName = key.name; - - if (keyName === "async" && !this.hasPrecedingLineBreak()) { - isAsync = true; - this.resetPreviousNodeTrailingComments(key); - isGenerator = this.eat(46); - this.parsePropertyName(prop, false); - } - - if (keyName === "get" || keyName === "set") { - isAccessor = true; - this.resetPreviousNodeTrailingComments(key); - prop.kind = keyName; - - if (this.match(46)) { - isGenerator = true; - this.raise(this.state.pos, ErrorMessages.AccessorIsGenerator, keyName); - this.next(); - } - - this.parsePropertyName(prop, false); - } - } - - this.parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors); - return prop; - } - - getGetterSetterExpectedParamCount(method) { - return method.kind === "get" ? 0 : 1; - } - - getObjectOrClassMethodParams(method) { - return method.params; - } - - checkGetterSetterParams(method) { - var _params; - - const paramCount = this.getGetterSetterExpectedParamCount(method); - const params = this.getObjectOrClassMethodParams(method); - const start = method.start; - - if (params.length !== paramCount) { - if (method.kind === "get") { - this.raise(start, ErrorMessages.BadGetterArity); - } else { - this.raise(start, ErrorMessages.BadSetterArity); - } - } - - if (method.kind === "set" && ((_params = params[params.length - 1]) == null ? void 0 : _params.type) === "RestElement") { - this.raise(start, ErrorMessages.BadSetterRestParameter); - } - } - - parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) { - if (isAccessor) { - this.parseMethod(prop, isGenerator, false, false, false, "ObjectMethod"); - this.checkGetterSetterParams(prop); - return prop; - } - - if (isAsync || isGenerator || this.match(10)) { - if (isPattern) this.unexpected(); - prop.kind = "method"; - prop.method = true; - return this.parseMethod(prop, isGenerator, isAsync, false, false, "ObjectMethod"); - } - } - - parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors) { - prop.shorthand = false; - - if (this.eat(14)) { - prop.value = isPattern ? this.parseMaybeDefault(this.state.start, this.state.startLoc) : this.parseMaybeAssignAllowIn(refExpressionErrors); - return this.finishNode(prop, "ObjectProperty"); - } - - if (!prop.computed && prop.key.type === "Identifier") { - this.checkReservedWord(prop.key.name, prop.key.start, true, false); - - if (isPattern) { - prop.value = this.parseMaybeDefault(startPos, startLoc, cloneIdentifier(prop.key)); - } else if (this.match(27) && refExpressionErrors) { - if (refExpressionErrors.shorthandAssign === -1) { - refExpressionErrors.shorthandAssign = this.state.start; - } - - prop.value = this.parseMaybeDefault(startPos, startLoc, cloneIdentifier(prop.key)); - } else { - prop.value = cloneIdentifier(prop.key); - } - - prop.shorthand = true; - return this.finishNode(prop, "ObjectProperty"); - } - } - - parseObjPropValue(prop, startPos, startLoc, isGenerator, isAsync, isPattern, isAccessor, refExpressionErrors) { - const node = this.parseObjectMethod(prop, isGenerator, isAsync, isPattern, isAccessor) || this.parseObjectProperty(prop, startPos, startLoc, isPattern, refExpressionErrors); - if (!node) this.unexpected(); - return node; - } - - parsePropertyName(prop, isPrivateNameAllowed) { - if (this.eat(0)) { - prop.computed = true; - prop.key = this.parseMaybeAssignAllowIn(); - this.expect(3); - } else { - const oldInPropertyName = this.state.inPropertyName; - this.state.inPropertyName = true; - const type = this.state.type; - prop.key = type === 121 || type === 120 || type === 122 || type === 123 ? this.parseExprAtom() : this.parseMaybePrivateName(isPrivateNameAllowed); - - if (type !== 125) { - prop.computed = false; - } - - this.state.inPropertyName = oldInPropertyName; - } - - return prop.key; - } - - initFunction(node, isAsync) { - node.id = null; - node.generator = false; - node.async = !!isAsync; - } - - parseMethod(node, isGenerator, isAsync, isConstructor, allowDirectSuper, type, inClassScope = false) { - this.initFunction(node, isAsync); - node.generator = !!isGenerator; - const allowModifiers = isConstructor; - this.scope.enter(SCOPE_FUNCTION | SCOPE_SUPER | (inClassScope ? SCOPE_CLASS : 0) | (allowDirectSuper ? SCOPE_DIRECT_SUPER : 0)); - this.prodParam.enter(functionFlags(isAsync, node.generator)); - this.parseFunctionParams(node, allowModifiers); - this.parseFunctionBodyAndFinish(node, type, true); - this.prodParam.exit(); - this.scope.exit(); - return node; - } - - parseArrayLike(close, canBePattern, isTuple, refExpressionErrors) { - if (isTuple) { - this.expectPlugin("recordAndTuple"); - } - - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = false; - const node = this.startNode(); - this.next(); - node.elements = this.parseExprList(close, !isTuple, refExpressionErrors, node); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return this.finishNode(node, isTuple ? "TupleExpression" : "ArrayExpression"); - } - - parseArrowExpression(node, params, isAsync, trailingCommaPos) { - this.scope.enter(SCOPE_FUNCTION | SCOPE_ARROW); - let flags = functionFlags(isAsync, false); - - if (!this.match(0) && this.prodParam.hasIn) { - flags |= PARAM_IN; - } - - this.prodParam.enter(flags); - this.initFunction(node, isAsync); - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - - if (params) { - this.state.maybeInArrowParameters = true; - this.setArrowFunctionParameters(node, params, trailingCommaPos); - } - - this.state.maybeInArrowParameters = false; - this.parseFunctionBody(node, true); - this.prodParam.exit(); - this.scope.exit(); - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return this.finishNode(node, "ArrowFunctionExpression"); - } - - setArrowFunctionParameters(node, params, trailingCommaPos) { - node.params = this.toAssignableList(params, trailingCommaPos, false); - } - - parseFunctionBodyAndFinish(node, type, isMethod = false) { - this.parseFunctionBody(node, false, isMethod); - this.finishNode(node, type); - } - - parseFunctionBody(node, allowExpression, isMethod = false) { - const isExpression = allowExpression && !this.match(5); - this.expressionScope.enter(newExpressionScope()); - - if (isExpression) { - node.body = this.parseMaybeAssign(); - this.checkParams(node, false, allowExpression, false); - } else { - const oldStrict = this.state.strict; - const oldLabels = this.state.labels; - this.state.labels = []; - this.prodParam.enter(this.prodParam.currentFlags() | PARAM_RETURN); - node.body = this.parseBlock(true, false, hasStrictModeDirective => { - const nonSimple = !this.isSimpleParamList(node.params); - - if (hasStrictModeDirective && nonSimple) { - const errorPos = (node.kind === "method" || node.kind === "constructor") && !!node.key ? node.key.end : node.start; - this.raise(errorPos, ErrorMessages.IllegalLanguageModeDirective); - } - - const strictModeChanged = !oldStrict && this.state.strict; - this.checkParams(node, !this.state.strict && !allowExpression && !isMethod && !nonSimple, allowExpression, strictModeChanged); - - if (this.state.strict && node.id) { - this.checkLVal(node.id, "function name", BIND_OUTSIDE, undefined, undefined, strictModeChanged); - } - }); - this.prodParam.exit(); - this.expressionScope.exit(); - this.state.labels = oldLabels; - } - } - - isSimpleParamList(params) { - for (let i = 0, len = params.length; i < len; i++) { - if (params[i].type !== "Identifier") return false; - } - - return true; - } - - checkParams(node, allowDuplicates, isArrowFunction, strictModeChanged = true) { - const checkClashes = new Set(); - - for (const param of node.params) { - this.checkLVal(param, "function parameter list", BIND_VAR, allowDuplicates ? null : checkClashes, undefined, strictModeChanged); - } - } - - parseExprList(close, allowEmpty, refExpressionErrors, nodeForExtra) { - const elts = []; - let first = true; - - while (!this.eat(close)) { - if (first) { - first = false; - } else { - this.expect(12); - - if (this.match(close)) { - if (nodeForExtra) { - this.addExtra(nodeForExtra, "trailingComma", this.state.lastTokStart); - } - - this.next(); - break; - } - } - - elts.push(this.parseExprListItem(allowEmpty, refExpressionErrors)); - } - - return elts; - } - - parseExprListItem(allowEmpty, refExpressionErrors, allowPlaceholder) { - let elt; - - if (this.match(12)) { - if (!allowEmpty) { - this.raise(this.state.pos, ErrorMessages.UnexpectedToken, ","); - } - - elt = null; - } else if (this.match(21)) { - const spreadNodeStartPos = this.state.start; - const spreadNodeStartLoc = this.state.startLoc; - elt = this.parseParenItem(this.parseSpread(refExpressionErrors), spreadNodeStartPos, spreadNodeStartLoc); - } else if (this.match(17)) { - this.expectPlugin("partialApplication"); - - if (!allowPlaceholder) { - this.raise(this.state.start, ErrorMessages.UnexpectedArgumentPlaceholder); - } - - const node = this.startNode(); - this.next(); - elt = this.finishNode(node, "ArgumentPlaceholder"); - } else { - elt = this.parseMaybeAssignAllowIn(refExpressionErrors, this.parseParenItem); - } - - return elt; - } - - parseIdentifier(liberal) { - const node = this.startNode(); - const name = this.parseIdentifierName(node.start, liberal); - return this.createIdentifier(node, name); - } - - createIdentifier(node, name) { - node.name = name; - node.loc.identifierName = name; - return this.finishNode(node, "Identifier"); - } - - parseIdentifierName(pos, liberal) { - let name; - const { - start, - type - } = this.state; - - if (tokenIsKeywordOrIdentifier(type)) { - name = this.state.value; - } else { - throw this.unexpected(); - } - - if (liberal) { - this.state.type = 119; - } else { - this.checkReservedWord(name, start, tokenIsKeyword(type), false); - } - - this.next(); - return name; - } - - checkReservedWord(word, startLoc, checkKeywords, isBinding) { - if (word.length > 10) { - return; - } - - if (!canBeReservedWord(word)) { - return; - } - - if (word === "yield") { - if (this.prodParam.hasYield) { - this.raise(startLoc, ErrorMessages.YieldBindingIdentifier); - return; - } - } else if (word === "await") { - if (this.prodParam.hasAwait) { - this.raise(startLoc, ErrorMessages.AwaitBindingIdentifier); - return; - } else if (this.scope.inStaticBlock) { - this.raise(startLoc, ErrorMessages.AwaitBindingIdentifierInStaticBlock); - return; - } else { - this.expressionScope.recordAsyncArrowParametersError(startLoc, ErrorMessages.AwaitBindingIdentifier); - } - } else if (word === "arguments") { - if (this.scope.inClassAndNotInNonArrowFunction) { - this.raise(startLoc, ErrorMessages.ArgumentsInClass); - return; - } - } - - if (checkKeywords && isKeyword(word)) { - this.raise(startLoc, ErrorMessages.UnexpectedKeyword, word); - return; - } - - const reservedTest = !this.state.strict ? isReservedWord : isBinding ? isStrictBindReservedWord : isStrictReservedWord; - - if (reservedTest(word, this.inModule)) { - this.raise(startLoc, ErrorMessages.UnexpectedReservedWord, word); - } - } - - isAwaitAllowed() { - if (this.prodParam.hasAwait) return true; - - if (this.options.allowAwaitOutsideFunction && !this.scope.inFunction) { - return true; - } - - return false; - } - - parseAwait(startPos, startLoc) { - const node = this.startNodeAt(startPos, startLoc); - this.expressionScope.recordParameterInitializerError(node.start, ErrorMessages.AwaitExpressionFormalParameter); - - if (this.eat(46)) { - this.raise(node.start, ErrorMessages.ObsoleteAwaitStar); - } - - if (!this.scope.inFunction && !this.options.allowAwaitOutsideFunction) { - if (this.isAmbiguousAwait()) { - this.ambiguousScriptDifferentAst = true; - } else { - this.sawUnambiguousESM = true; - } - } - - if (!this.state.soloAwait) { - node.argument = this.parseMaybeUnary(null, true); - } - - return this.finishNode(node, "AwaitExpression"); - } - - isAmbiguousAwait() { - return this.hasPrecedingLineBreak() || this.match(44) || this.match(10) || this.match(0) || this.match(22) || this.match(124) || this.match(47) || this.hasPlugin("v8intrinsic") && this.match(45); - } - - parseYield() { - const node = this.startNode(); - this.expressionScope.recordParameterInitializerError(node.start, ErrorMessages.YieldInParameter); - this.next(); - let delegating = false; - let argument = null; - - if (!this.hasPrecedingLineBreak()) { - delegating = this.eat(46); - - switch (this.state.type) { - case 13: - case 126: - case 8: - case 11: - case 3: - case 9: - case 14: - case 12: - if (!delegating) break; - - default: - argument = this.parseMaybeAssign(); - } - } - - node.delegate = delegating; - node.argument = argument; - return this.finishNode(node, "YieldExpression"); - } - - checkPipelineAtInfixOperator(left, leftStartPos) { - if (this.getPluginOption("pipelineOperator", "proposal") === "smart") { - if (left.type === "SequenceExpression") { - this.raise(leftStartPos, ErrorMessages.PipelineHeadSequenceExpression); - } - } - } - - checkHackPipeBodyEarlyErrors(startPos) { - if (!this.topicReferenceWasUsedInCurrentContext()) { - this.raise(startPos, ErrorMessages.PipeTopicUnused); - } - } - - parseSmartPipelineBodyInStyle(childExpr, startPos, startLoc) { - const bodyNode = this.startNodeAt(startPos, startLoc); - - if (this.isSimpleReference(childExpr)) { - bodyNode.callee = childExpr; - return this.finishNode(bodyNode, "PipelineBareFunction"); - } else { - this.checkSmartPipeTopicBodyEarlyErrors(startPos); - bodyNode.expression = childExpr; - return this.finishNode(bodyNode, "PipelineTopicExpression"); - } - } - - isSimpleReference(expression) { - switch (expression.type) { - case "MemberExpression": - return !expression.computed && this.isSimpleReference(expression.object); - - case "Identifier": - return true; - - default: - return false; - } - } - - checkSmartPipeTopicBodyEarlyErrors(startPos) { - if (this.match(19)) { - throw this.raise(this.state.start, ErrorMessages.PipelineBodyNoArrow); - } else if (!this.topicReferenceWasUsedInCurrentContext()) { - this.raise(startPos, ErrorMessages.PipelineTopicUnused); - } - } - - withTopicBindingContext(callback) { - const outerContextTopicState = this.state.topicContext; - this.state.topicContext = { - maxNumOfResolvableTopics: 1, - maxTopicIndex: null - }; - - try { - return callback(); - } finally { - this.state.topicContext = outerContextTopicState; - } - } - - withSmartMixTopicForbiddingContext(callback) { - const proposal = this.getPluginOption("pipelineOperator", "proposal"); - - if (proposal === "smart") { - const outerContextTopicState = this.state.topicContext; - this.state.topicContext = { - maxNumOfResolvableTopics: 0, - maxTopicIndex: null - }; - - try { - return callback(); - } finally { - this.state.topicContext = outerContextTopicState; - } - } else { - return callback(); - } - } - - withSoloAwaitPermittingContext(callback) { - const outerContextSoloAwaitState = this.state.soloAwait; - this.state.soloAwait = true; - - try { - return callback(); - } finally { - this.state.soloAwait = outerContextSoloAwaitState; - } - } - - allowInAnd(callback) { - const flags = this.prodParam.currentFlags(); - const prodParamToSet = PARAM_IN & ~flags; - - if (prodParamToSet) { - this.prodParam.enter(flags | PARAM_IN); - - try { - return callback(); - } finally { - this.prodParam.exit(); - } - } - - return callback(); - } - - disallowInAnd(callback) { - const flags = this.prodParam.currentFlags(); - const prodParamToClear = PARAM_IN & flags; - - if (prodParamToClear) { - this.prodParam.enter(flags & ~PARAM_IN); - - try { - return callback(); - } finally { - this.prodParam.exit(); - } - } - - return callback(); - } - - registerTopicReference() { - this.state.topicContext.maxTopicIndex = 0; - } - - topicReferenceIsAllowedInCurrentContext() { - return this.state.topicContext.maxNumOfResolvableTopics >= 1; - } - - topicReferenceWasUsedInCurrentContext() { - return this.state.topicContext.maxTopicIndex != null && this.state.topicContext.maxTopicIndex >= 0; - } - - parseFSharpPipelineBody(prec) { - const startPos = this.state.start; - const startLoc = this.state.startLoc; - this.state.potentialArrowAt = this.state.start; - const oldInFSharpPipelineDirectBody = this.state.inFSharpPipelineDirectBody; - this.state.inFSharpPipelineDirectBody = true; - const ret = this.parseExprOp(this.parseMaybeUnaryOrPrivate(), startPos, startLoc, prec); - this.state.inFSharpPipelineDirectBody = oldInFSharpPipelineDirectBody; - return ret; - } - - parseModuleExpression() { - this.expectPlugin("moduleBlocks"); - const node = this.startNode(); - this.next(); - this.eat(5); - const revertScopes = this.initializeScopes(true); - this.enterInitialScopes(); - const program = this.startNode(); - - try { - node.body = this.parseProgram(program, 8, "module"); - } finally { - revertScopes(); - } - - this.eat(8); - return this.finishNode(node, "ModuleExpression"); - } - -} - -const loopLabel = { - kind: "loop" -}, - switchLabel = { - kind: "switch" -}; -const FUNC_NO_FLAGS = 0b000, - FUNC_STATEMENT = 0b001, - FUNC_HANGING_STATEMENT = 0b010, - FUNC_NULLABLE_ID = 0b100; -const loneSurrogate = /[\uD800-\uDFFF]/u; -const keywordRelationalOperator = /in(?:stanceof)?/y; - -function babel7CompatTokens(tokens) { - for (let i = 0; i < tokens.length; i++) { - const token = tokens[i]; - const { - type - } = token; - - if (type === 125) { - { - const { - loc, - start, - value, - end - } = token; - const hashEndPos = start + 1; - const hashEndLoc = new Position(loc.start.line, loc.start.column + 1); - tokens.splice(i, 1, new Token({ - type: getExportedToken(25), - value: "#", - start: start, - end: hashEndPos, - startLoc: loc.start, - endLoc: hashEndLoc - }), new Token({ - type: getExportedToken(119), - value: value, - start: hashEndPos, - end: end, - startLoc: hashEndLoc, - endLoc: loc.end - })); - i++; - continue; - } - } - - if (typeof type === "number") { - token.type = getExportedToken(type); - } - } - - return tokens; -} - -class StatementParser extends ExpressionParser { - parseTopLevel(file, program) { - file.program = this.parseProgram(program); - file.comments = this.state.comments; - if (this.options.tokens) file.tokens = babel7CompatTokens(this.tokens); - return this.finishNode(file, "File"); - } - - parseProgram(program, end = 126, sourceType = this.options.sourceType) { - program.sourceType = sourceType; - program.interpreter = this.parseInterpreterDirective(); - this.parseBlockBody(program, true, true, end); - - if (this.inModule && !this.options.allowUndeclaredExports && this.scope.undefinedExports.size > 0) { - for (const [name] of Array.from(this.scope.undefinedExports)) { - const pos = this.scope.undefinedExports.get(name); - this.raise(pos, ErrorMessages.ModuleExportUndefined, name); - } - } - - return this.finishNode(program, "Program"); - } - - stmtToDirective(stmt) { - const directive = stmt; - directive.type = "Directive"; - directive.value = directive.expression; - delete directive.expression; - const directiveLiteral = directive.value; - const raw = this.input.slice(directiveLiteral.start, directiveLiteral.end); - const val = directiveLiteral.value = raw.slice(1, -1); - this.addExtra(directiveLiteral, "raw", raw); - this.addExtra(directiveLiteral, "rawValue", val); - directiveLiteral.type = "DirectiveLiteral"; - return directive; - } - - parseInterpreterDirective() { - if (!this.match(26)) { - return null; - } - - const node = this.startNode(); - node.value = this.state.value; - this.next(); - return this.finishNode(node, "InterpreterDirective"); - } - - isLet(context) { - if (!this.isContextual(90)) { - return false; - } - - return this.isLetKeyword(context); - } - - isLetKeyword(context) { - const next = this.nextTokenStart(); - const nextCh = this.codePointAtPos(next); - - if (nextCh === 92 || nextCh === 91) { - return true; - } - - if (context) return false; - if (nextCh === 123) return true; - - if (isIdentifierStart(nextCh)) { - keywordRelationalOperator.lastIndex = next; - - if (keywordRelationalOperator.test(this.input)) { - const endCh = this.codePointAtPos(keywordRelationalOperator.lastIndex); - - if (!isIdentifierChar(endCh) && endCh !== 92) { - return false; - } - } - - return true; - } - - return false; - } - - parseStatement(context, topLevel) { - if (this.match(24)) { - this.parseDecorators(true); - } - - return this.parseStatementContent(context, topLevel); - } - - parseStatementContent(context, topLevel) { - let starttype = this.state.type; - const node = this.startNode(); - let kind; - - if (this.isLet(context)) { - starttype = 65; - kind = "let"; - } - - switch (starttype) { - case 51: - return this.parseBreakContinueStatement(node, true); - - case 54: - return this.parseBreakContinueStatement(node, false); - - case 55: - return this.parseDebuggerStatement(node); - - case 81: - return this.parseDoStatement(node); - - case 82: - return this.parseForStatement(node); - - case 59: - if (this.lookaheadCharCode() === 46) break; - - if (context) { - if (this.state.strict) { - this.raise(this.state.start, ErrorMessages.StrictFunction); - } else if (context !== "if" && context !== "label") { - this.raise(this.state.start, ErrorMessages.SloppyFunction); - } - } - - return this.parseFunctionStatement(node, false, !context); - - case 71: - if (context) this.unexpected(); - return this.parseClass(node, true); - - case 60: - return this.parseIfStatement(node); - - case 61: - return this.parseReturnStatement(node); - - case 62: - return this.parseSwitchStatement(node); - - case 63: - return this.parseThrowStatement(node); - - case 64: - return this.parseTryStatement(node); - - case 66: - case 65: - kind = kind || this.state.value; - - if (context && kind !== "var") { - this.raise(this.state.start, ErrorMessages.UnexpectedLexicalDeclaration); - } - - return this.parseVarStatement(node, kind); - - case 83: - return this.parseWhileStatement(node); - - case 67: - return this.parseWithStatement(node); - - case 5: - return this.parseBlock(); - - case 13: - return this.parseEmptyStatement(node); - - case 74: - { - const nextTokenCharCode = this.lookaheadCharCode(); - - if (nextTokenCharCode === 40 || nextTokenCharCode === 46) { - break; - } - } - - case 73: - { - if (!this.options.allowImportExportEverywhere && !topLevel) { - this.raise(this.state.start, ErrorMessages.UnexpectedImportExport); - } - - this.next(); - let result; - - if (starttype === 74) { - result = this.parseImport(node); - - if (result.type === "ImportDeclaration" && (!result.importKind || result.importKind === "value")) { - this.sawUnambiguousESM = true; - } - } else { - result = this.parseExport(node); - - if (result.type === "ExportNamedDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportAllDeclaration" && (!result.exportKind || result.exportKind === "value") || result.type === "ExportDefaultDeclaration") { - this.sawUnambiguousESM = true; - } - } - - this.assertModuleNodeAllowed(node); - return result; - } - - default: - { - if (this.isAsyncFunction()) { - if (context) { - this.raise(this.state.start, ErrorMessages.AsyncFunctionInSingleStatementContext); - } - - this.next(); - return this.parseFunctionStatement(node, true, !context); - } - } - } - - const maybeName = this.state.value; - const expr = this.parseExpression(); - - if (tokenIsIdentifier(starttype) && expr.type === "Identifier" && this.eat(14)) { - return this.parseLabeledStatement(node, maybeName, expr, context); - } else { - return this.parseExpressionStatement(node, expr); - } - } - - assertModuleNodeAllowed(node) { - if (!this.options.allowImportExportEverywhere && !this.inModule) { - this.raise(node.start, SourceTypeModuleErrorMessages.ImportOutsideModule); - } - } - - takeDecorators(node) { - const decorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - if (decorators.length) { - node.decorators = decorators; - this.resetStartLocationFromNode(node, decorators[0]); - this.state.decoratorStack[this.state.decoratorStack.length - 1] = []; - } - } - - canHaveLeadingDecorator() { - return this.match(71); - } - - parseDecorators(allowExport) { - const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - while (this.match(24)) { - const decorator = this.parseDecorator(); - currentContextDecorators.push(decorator); - } - - if (this.match(73)) { - if (!allowExport) { - this.unexpected(); - } - - if (this.hasPlugin("decorators") && !this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.raise(this.state.start, ErrorMessages.DecoratorExportClass); - } - } else if (!this.canHaveLeadingDecorator()) { - throw this.raise(this.state.start, ErrorMessages.UnexpectedLeadingDecorator); - } - } - - parseDecorator() { - this.expectOnePlugin(["decorators-legacy", "decorators"]); - const node = this.startNode(); - this.next(); - - if (this.hasPlugin("decorators")) { - this.state.decoratorStack.push([]); - const startPos = this.state.start; - const startLoc = this.state.startLoc; - let expr; - - if (this.eat(10)) { - expr = this.parseExpression(); - this.expect(11); - } else { - expr = this.parseIdentifier(false); - - while (this.eat(16)) { - const node = this.startNodeAt(startPos, startLoc); - node.object = expr; - node.property = this.parseIdentifier(true); - node.computed = false; - expr = this.finishNode(node, "MemberExpression"); - } - } - - node.expression = this.parseMaybeDecoratorArguments(expr); - this.state.decoratorStack.pop(); - } else { - node.expression = this.parseExprSubscripts(); - } - - return this.finishNode(node, "Decorator"); - } - - parseMaybeDecoratorArguments(expr) { - if (this.eat(10)) { - const node = this.startNodeAtNode(expr); - node.callee = expr; - node.arguments = this.parseCallExpressionArguments(11, false); - this.toReferencedList(node.arguments); - return this.finishNode(node, "CallExpression"); - } - - return expr; - } - - parseBreakContinueStatement(node, isBreak) { - this.next(); - - if (this.isLineTerminator()) { - node.label = null; - } else { - node.label = this.parseIdentifier(); - this.semicolon(); - } - - this.verifyBreakContinue(node, isBreak); - return this.finishNode(node, isBreak ? "BreakStatement" : "ContinueStatement"); - } - - verifyBreakContinue(node, isBreak) { - let i; - - for (i = 0; i < this.state.labels.length; ++i) { - const lab = this.state.labels[i]; - - if (node.label == null || lab.name === node.label.name) { - if (lab.kind != null && (isBreak || lab.kind === "loop")) break; - if (node.label && isBreak) break; - } - } - - if (i === this.state.labels.length) { - this.raise(node.start, ErrorMessages.IllegalBreakContinue, isBreak ? "break" : "continue"); - } - } - - parseDebuggerStatement(node) { - this.next(); - this.semicolon(); - return this.finishNode(node, "DebuggerStatement"); - } - - parseHeaderExpression() { - this.expect(10); - const val = this.parseExpression(); - this.expect(11); - return val; - } - - parseDoStatement(node) { - this.next(); - this.state.labels.push(loopLabel); - node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("do")); - this.state.labels.pop(); - this.expect(83); - node.test = this.parseHeaderExpression(); - this.eat(13); - return this.finishNode(node, "DoWhileStatement"); - } - - parseForStatement(node) { - this.next(); - this.state.labels.push(loopLabel); - let awaitAt = -1; - - if (this.isAwaitAllowed() && this.eatContextual(87)) { - awaitAt = this.state.lastTokStart; - } - - this.scope.enter(SCOPE_OTHER); - this.expect(10); - - if (this.match(13)) { - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, null); - } - - const startsWithLet = this.isContextual(90); - const isLet = startsWithLet && this.isLetKeyword(); - - if (this.match(65) || this.match(66) || isLet) { - const init = this.startNode(); - const kind = isLet ? "let" : this.state.value; - this.next(); - this.parseVar(init, true, kind); - this.finishNode(init, "VariableDeclaration"); - - if ((this.match(49) || this.isContextual(92)) && init.declarations.length === 1) { - return this.parseForIn(node, init, awaitAt); - } - - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, init); - } - - const startsWithAsync = this.isContextual(86); - const refExpressionErrors = new ExpressionErrors(); - const init = this.parseExpression(true, refExpressionErrors); - const isForOf = this.isContextual(92); - - if (isForOf) { - if (startsWithLet) { - this.raise(init.start, ErrorMessages.ForOfLet); - } else if (awaitAt === -1 && startsWithAsync && init.type === "Identifier") { - this.raise(init.start, ErrorMessages.ForOfAsync); - } - } - - if (isForOf || this.match(49)) { - this.toAssignable(init, true); - const description = isForOf ? "for-of statement" : "for-in statement"; - this.checkLVal(init, description); - return this.parseForIn(node, init, awaitAt); - } else { - this.checkExpressionErrors(refExpressionErrors, true); - } - - if (awaitAt > -1) { - this.unexpected(awaitAt); - } - - return this.parseFor(node, init); - } - - parseFunctionStatement(node, isAsync, declarationPosition) { - this.next(); - return this.parseFunction(node, FUNC_STATEMENT | (declarationPosition ? 0 : FUNC_HANGING_STATEMENT), isAsync); - } - - parseIfStatement(node) { - this.next(); - node.test = this.parseHeaderExpression(); - node.consequent = this.parseStatement("if"); - node.alternate = this.eat(57) ? this.parseStatement("if") : null; - return this.finishNode(node, "IfStatement"); - } - - parseReturnStatement(node) { - if (!this.prodParam.hasReturn && !this.options.allowReturnOutsideFunction) { - this.raise(this.state.start, ErrorMessages.IllegalReturn); - } - - this.next(); - - if (this.isLineTerminator()) { - node.argument = null; - } else { - node.argument = this.parseExpression(); - this.semicolon(); - } - - return this.finishNode(node, "ReturnStatement"); - } - - parseSwitchStatement(node) { - this.next(); - node.discriminant = this.parseHeaderExpression(); - const cases = node.cases = []; - this.expect(5); - this.state.labels.push(switchLabel); - this.scope.enter(SCOPE_OTHER); - let cur; - - for (let sawDefault; !this.match(8);) { - if (this.match(52) || this.match(56)) { - const isCase = this.match(52); - if (cur) this.finishNode(cur, "SwitchCase"); - cases.push(cur = this.startNode()); - cur.consequent = []; - this.next(); - - if (isCase) { - cur.test = this.parseExpression(); - } else { - if (sawDefault) { - this.raise(this.state.lastTokStart, ErrorMessages.MultipleDefaultsInSwitch); - } - - sawDefault = true; - cur.test = null; - } - - this.expect(14); - } else { - if (cur) { - cur.consequent.push(this.parseStatement(null)); - } else { - this.unexpected(); - } - } - } - - this.scope.exit(); - if (cur) this.finishNode(cur, "SwitchCase"); - this.next(); - this.state.labels.pop(); - return this.finishNode(node, "SwitchStatement"); - } - - parseThrowStatement(node) { - this.next(); - - if (this.hasPrecedingLineBreak()) { - this.raise(this.state.lastTokEnd, ErrorMessages.NewlineAfterThrow); - } - - node.argument = this.parseExpression(); - this.semicolon(); - return this.finishNode(node, "ThrowStatement"); - } - - parseCatchClauseParam() { - const param = this.parseBindingAtom(); - const simple = param.type === "Identifier"; - this.scope.enter(simple ? SCOPE_SIMPLE_CATCH : 0); - this.checkLVal(param, "catch clause", BIND_LEXICAL); - return param; - } - - parseTryStatement(node) { - this.next(); - node.block = this.parseBlock(); - node.handler = null; - - if (this.match(53)) { - const clause = this.startNode(); - this.next(); - - if (this.match(10)) { - this.expect(10); - clause.param = this.parseCatchClauseParam(); - this.expect(11); - } else { - clause.param = null; - this.scope.enter(SCOPE_OTHER); - } - - clause.body = this.withSmartMixTopicForbiddingContext(() => this.parseBlock(false, false)); - this.scope.exit(); - node.handler = this.finishNode(clause, "CatchClause"); - } - - node.finalizer = this.eat(58) ? this.parseBlock() : null; - - if (!node.handler && !node.finalizer) { - this.raise(node.start, ErrorMessages.NoCatchOrFinally); - } - - return this.finishNode(node, "TryStatement"); - } - - parseVarStatement(node, kind) { - this.next(); - this.parseVar(node, false, kind); - this.semicolon(); - return this.finishNode(node, "VariableDeclaration"); - } - - parseWhileStatement(node) { - this.next(); - node.test = this.parseHeaderExpression(); - this.state.labels.push(loopLabel); - node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("while")); - this.state.labels.pop(); - return this.finishNode(node, "WhileStatement"); - } - - parseWithStatement(node) { - if (this.state.strict) { - this.raise(this.state.start, ErrorMessages.StrictWith); - } - - this.next(); - node.object = this.parseHeaderExpression(); - node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("with")); - return this.finishNode(node, "WithStatement"); - } - - parseEmptyStatement(node) { - this.next(); - return this.finishNode(node, "EmptyStatement"); - } - - parseLabeledStatement(node, maybeName, expr, context) { - for (const label of this.state.labels) { - if (label.name === maybeName) { - this.raise(expr.start, ErrorMessages.LabelRedeclaration, maybeName); - } - } - - const kind = tokenIsLoop(this.state.type) ? "loop" : this.match(62) ? "switch" : null; - - for (let i = this.state.labels.length - 1; i >= 0; i--) { - const label = this.state.labels[i]; - - if (label.statementStart === node.start) { - label.statementStart = this.state.start; - label.kind = kind; - } else { - break; - } - } - - this.state.labels.push({ - name: maybeName, - kind: kind, - statementStart: this.state.start - }); - node.body = this.parseStatement(context ? context.indexOf("label") === -1 ? context + "label" : context : "label"); - this.state.labels.pop(); - node.label = expr; - return this.finishNode(node, "LabeledStatement"); - } - - parseExpressionStatement(node, expr) { - node.expression = expr; - this.semicolon(); - return this.finishNode(node, "ExpressionStatement"); - } - - parseBlock(allowDirectives = false, createNewLexicalScope = true, afterBlockParse) { - const node = this.startNode(); - - if (allowDirectives) { - this.state.strictErrors.clear(); - } - - this.expect(5); - - if (createNewLexicalScope) { - this.scope.enter(SCOPE_OTHER); - } - - this.parseBlockBody(node, allowDirectives, false, 8, afterBlockParse); - - if (createNewLexicalScope) { - this.scope.exit(); - } - - return this.finishNode(node, "BlockStatement"); - } - - isValidDirective(stmt) { - return stmt.type === "ExpressionStatement" && stmt.expression.type === "StringLiteral" && !stmt.expression.extra.parenthesized; - } - - parseBlockBody(node, allowDirectives, topLevel, end, afterBlockParse) { - const body = node.body = []; - const directives = node.directives = []; - this.parseBlockOrModuleBlockBody(body, allowDirectives ? directives : undefined, topLevel, end, afterBlockParse); - } - - parseBlockOrModuleBlockBody(body, directives, topLevel, end, afterBlockParse) { - const oldStrict = this.state.strict; - let hasStrictModeDirective = false; - let parsedNonDirective = false; - - while (!this.match(end)) { - const stmt = this.parseStatement(null, topLevel); - - if (directives && !parsedNonDirective) { - if (this.isValidDirective(stmt)) { - const directive = this.stmtToDirective(stmt); - directives.push(directive); - - if (!hasStrictModeDirective && directive.value.value === "use strict") { - hasStrictModeDirective = true; - this.setStrict(true); - } - - continue; - } - - parsedNonDirective = true; - this.state.strictErrors.clear(); - } - - body.push(stmt); - } - - if (afterBlockParse) { - afterBlockParse.call(this, hasStrictModeDirective); - } - - if (!oldStrict) { - this.setStrict(false); - } - - this.next(); - } - - parseFor(node, init) { - node.init = init; - this.semicolon(false); - node.test = this.match(13) ? null : this.parseExpression(); - this.semicolon(false); - node.update = this.match(11) ? null : this.parseExpression(); - this.expect(11); - node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("for")); - this.scope.exit(); - this.state.labels.pop(); - return this.finishNode(node, "ForStatement"); - } - - parseForIn(node, init, awaitAt) { - const isForIn = this.match(49); - this.next(); - - if (isForIn) { - if (awaitAt > -1) this.unexpected(awaitAt); - } else { - node.await = awaitAt > -1; - } - - if (init.type === "VariableDeclaration" && init.declarations[0].init != null && (!isForIn || this.state.strict || init.kind !== "var" || init.declarations[0].id.type !== "Identifier")) { - this.raise(init.start, ErrorMessages.ForInOfLoopInitializer, isForIn ? "for-in" : "for-of"); - } else if (init.type === "AssignmentPattern") { - this.raise(init.start, ErrorMessages.InvalidLhs, "for-loop"); - } - - node.left = init; - node.right = isForIn ? this.parseExpression() : this.parseMaybeAssignAllowIn(); - this.expect(11); - node.body = this.withSmartMixTopicForbiddingContext(() => this.parseStatement("for")); - this.scope.exit(); - this.state.labels.pop(); - return this.finishNode(node, isForIn ? "ForInStatement" : "ForOfStatement"); - } - - parseVar(node, isFor, kind) { - const declarations = node.declarations = []; - const isTypescript = this.hasPlugin("typescript"); - node.kind = kind; - - for (;;) { - const decl = this.startNode(); - this.parseVarId(decl, kind); - - if (this.eat(27)) { - decl.init = isFor ? this.parseMaybeAssignDisallowIn() : this.parseMaybeAssignAllowIn(); - } else { - if (kind === "const" && !(this.match(49) || this.isContextual(92))) { - if (!isTypescript) { - this.raise(this.state.lastTokEnd, ErrorMessages.DeclarationMissingInitializer, "Const declarations"); - } - } else if (decl.id.type !== "Identifier" && !(isFor && (this.match(49) || this.isContextual(92)))) { - this.raise(this.state.lastTokEnd, ErrorMessages.DeclarationMissingInitializer, "Complex binding patterns"); - } - - decl.init = null; - } - - declarations.push(this.finishNode(decl, "VariableDeclarator")); - if (!this.eat(12)) break; - } - - return node; - } - - parseVarId(decl, kind) { - decl.id = this.parseBindingAtom(); - this.checkLVal(decl.id, "variable declaration", kind === "var" ? BIND_VAR : BIND_LEXICAL, undefined, kind !== "var"); - } - - parseFunction(node, statement = FUNC_NO_FLAGS, isAsync = false) { - const isStatement = statement & FUNC_STATEMENT; - const isHangingStatement = statement & FUNC_HANGING_STATEMENT; - const requireId = !!isStatement && !(statement & FUNC_NULLABLE_ID); - this.initFunction(node, isAsync); - - if (this.match(46) && isHangingStatement) { - this.raise(this.state.start, ErrorMessages.GeneratorInSingleStatementContext); - } - - node.generator = this.eat(46); - - if (isStatement) { - node.id = this.parseFunctionId(requireId); - } - - const oldMaybeInArrowParameters = this.state.maybeInArrowParameters; - this.state.maybeInArrowParameters = false; - this.scope.enter(SCOPE_FUNCTION); - this.prodParam.enter(functionFlags(isAsync, node.generator)); - - if (!isStatement) { - node.id = this.parseFunctionId(); - } - - this.parseFunctionParams(node, false); - this.withSmartMixTopicForbiddingContext(() => { - this.parseFunctionBodyAndFinish(node, isStatement ? "FunctionDeclaration" : "FunctionExpression"); - }); - this.prodParam.exit(); - this.scope.exit(); - - if (isStatement && !isHangingStatement) { - this.registerFunctionStatementId(node); - } - - this.state.maybeInArrowParameters = oldMaybeInArrowParameters; - return node; - } - - parseFunctionId(requireId) { - return requireId || tokenIsIdentifier(this.state.type) ? this.parseIdentifier() : null; - } - - parseFunctionParams(node, allowModifiers) { - this.expect(10); - this.expressionScope.enter(newParameterDeclarationScope()); - node.params = this.parseBindingList(11, 41, false, allowModifiers); - this.expressionScope.exit(); - } - - registerFunctionStatementId(node) { - if (!node.id) return; - this.scope.declareName(node.id.name, this.state.strict || node.generator || node.async ? this.scope.treatFunctionsAsVar ? BIND_VAR : BIND_LEXICAL : BIND_FUNCTION, node.id.start); - } - - parseClass(node, isStatement, optionalId) { - this.next(); - this.takeDecorators(node); - const oldStrict = this.state.strict; - this.state.strict = true; - this.parseClassId(node, isStatement, optionalId); - this.parseClassSuper(node); - node.body = this.parseClassBody(!!node.superClass, oldStrict); - return this.finishNode(node, isStatement ? "ClassDeclaration" : "ClassExpression"); - } - - isClassProperty() { - return this.match(27) || this.match(13) || this.match(8); - } - - isClassMethod() { - return this.match(10); - } - - isNonstaticConstructor(method) { - return !method.computed && !method.static && (method.key.name === "constructor" || method.key.value === "constructor"); - } - - parseClassBody(hadSuperClass, oldStrict) { - this.classScope.enter(); - const state = { - hadConstructor: false, - hadSuperClass - }; - let decorators = []; - const classBody = this.startNode(); - classBody.body = []; - this.expect(5); - this.withSmartMixTopicForbiddingContext(() => { - while (!this.match(8)) { - if (this.eat(13)) { - if (decorators.length > 0) { - throw this.raise(this.state.lastTokEnd, ErrorMessages.DecoratorSemicolon); - } - - continue; - } - - if (this.match(24)) { - decorators.push(this.parseDecorator()); - continue; - } - - const member = this.startNode(); - - if (decorators.length) { - member.decorators = decorators; - this.resetStartLocationFromNode(member, decorators[0]); - decorators = []; - } - - this.parseClassMember(classBody, member, state); - - if (member.kind === "constructor" && member.decorators && member.decorators.length > 0) { - this.raise(member.start, ErrorMessages.DecoratorConstructor); - } - } - }); - this.state.strict = oldStrict; - this.next(); - - if (decorators.length) { - throw this.raise(this.state.start, ErrorMessages.TrailingDecorator); - } - - this.classScope.exit(); - return this.finishNode(classBody, "ClassBody"); - } - - parseClassMemberFromModifier(classBody, member) { - const key = this.parseIdentifier(true); - - if (this.isClassMethod()) { - const method = member; - method.kind = "method"; - method.computed = false; - method.key = key; - method.static = false; - this.pushClassMethod(classBody, method, false, false, false, false); - return true; - } else if (this.isClassProperty()) { - const prop = member; - prop.computed = false; - prop.key = key; - prop.static = false; - classBody.body.push(this.parseClassProperty(prop)); - return true; - } - - this.resetPreviousNodeTrailingComments(key); - return false; - } - - parseClassMember(classBody, member, state) { - const isStatic = this.isContextual(95); - - if (isStatic) { - if (this.parseClassMemberFromModifier(classBody, member)) { - return; - } - - if (this.eat(5)) { - this.parseClassStaticBlock(classBody, member); - return; - } - } - - this.parseClassMemberWithIsStatic(classBody, member, state, isStatic); - } - - parseClassMemberWithIsStatic(classBody, member, state, isStatic) { - const publicMethod = member; - const privateMethod = member; - const publicProp = member; - const privateProp = member; - const method = publicMethod; - const publicMember = publicMethod; - member.static = isStatic; - - if (this.eat(46)) { - method.kind = "method"; - const isPrivateName = this.match(125); - this.parseClassElementName(method); - - if (isPrivateName) { - this.pushClassPrivateMethod(classBody, privateMethod, true, false); - return; - } - - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsGenerator); - } - - this.pushClassMethod(classBody, publicMethod, true, false, false, false); - return; - } - - const isContextual = tokenIsIdentifier(this.state.type) && !this.state.containsEsc; - const isPrivate = this.match(125); - const key = this.parseClassElementName(member); - const maybeQuestionTokenStart = this.state.start; - this.parsePostMemberNameModifiers(publicMember); - - if (this.isClassMethod()) { - method.kind = "method"; - - if (isPrivate) { - this.pushClassPrivateMethod(classBody, privateMethod, false, false); - return; - } - - const isConstructor = this.isNonstaticConstructor(publicMethod); - let allowsDirectSuper = false; - - if (isConstructor) { - publicMethod.kind = "constructor"; - - if (state.hadConstructor && !this.hasPlugin("typescript")) { - this.raise(key.start, ErrorMessages.DuplicateConstructor); - } - - if (isConstructor && this.hasPlugin("typescript") && member.override) { - this.raise(key.start, ErrorMessages.OverrideOnConstructor); - } - - state.hadConstructor = true; - allowsDirectSuper = state.hadSuperClass; - } - - this.pushClassMethod(classBody, publicMethod, false, false, isConstructor, allowsDirectSuper); - } else if (this.isClassProperty()) { - if (isPrivate) { - this.pushClassPrivateProperty(classBody, privateProp); - } else { - this.pushClassProperty(classBody, publicProp); - } - } else if (isContextual && key.name === "async" && !this.isLineTerminator()) { - this.resetPreviousNodeTrailingComments(key); - const isGenerator = this.eat(46); - - if (publicMember.optional) { - this.unexpected(maybeQuestionTokenStart); - } - - method.kind = "method"; - const isPrivate = this.match(125); - this.parseClassElementName(method); - this.parsePostMemberNameModifiers(publicMember); - - if (isPrivate) { - this.pushClassPrivateMethod(classBody, privateMethod, isGenerator, true); - } else { - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsAsync); - } - - this.pushClassMethod(classBody, publicMethod, isGenerator, true, false, false); - } - } else if (isContextual && (key.name === "get" || key.name === "set") && !(this.match(46) && this.isLineTerminator())) { - this.resetPreviousNodeTrailingComments(key); - method.kind = key.name; - const isPrivate = this.match(125); - this.parseClassElementName(publicMethod); - - if (isPrivate) { - this.pushClassPrivateMethod(classBody, privateMethod, false, false); - } else { - if (this.isNonstaticConstructor(publicMethod)) { - this.raise(publicMethod.key.start, ErrorMessages.ConstructorIsAccessor); - } - - this.pushClassMethod(classBody, publicMethod, false, false, false, false); - } - - this.checkGetterSetterParams(publicMethod); - } else if (this.isLineTerminator()) { - if (isPrivate) { - this.pushClassPrivateProperty(classBody, privateProp); - } else { - this.pushClassProperty(classBody, publicProp); - } - } else { - this.unexpected(); - } - } - - parseClassElementName(member) { - const { - type, - value, - start - } = this.state; - - if ((type === 119 || type === 120) && member.static && value === "prototype") { - this.raise(start, ErrorMessages.StaticPrototype); - } - - if (type === 125 && value === "constructor") { - this.raise(start, ErrorMessages.ConstructorClassPrivateField); - } - - return this.parsePropertyName(member, true); - } - - parseClassStaticBlock(classBody, member) { - var _member$decorators; - - this.expectPlugin("classStaticBlock", member.start); - this.scope.enter(SCOPE_CLASS | SCOPE_STATIC_BLOCK | SCOPE_SUPER); - const oldLabels = this.state.labels; - this.state.labels = []; - this.prodParam.enter(PARAM); - const body = member.body = []; - this.parseBlockOrModuleBlockBody(body, undefined, false, 8); - this.prodParam.exit(); - this.scope.exit(); - this.state.labels = oldLabels; - classBody.body.push(this.finishNode(member, "StaticBlock")); - - if ((_member$decorators = member.decorators) != null && _member$decorators.length) { - this.raise(member.start, ErrorMessages.DecoratorStaticBlock); - } - } - - pushClassProperty(classBody, prop) { - if (!prop.computed && (prop.key.name === "constructor" || prop.key.value === "constructor")) { - this.raise(prop.key.start, ErrorMessages.ConstructorClassField); - } - - classBody.body.push(this.parseClassProperty(prop)); - } - - pushClassPrivateProperty(classBody, prop) { - const node = this.parseClassPrivateProperty(prop); - classBody.body.push(node); - this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), CLASS_ELEMENT_OTHER, node.key.start); - } - - pushClassMethod(classBody, method, isGenerator, isAsync, isConstructor, allowsDirectSuper) { - classBody.body.push(this.parseMethod(method, isGenerator, isAsync, isConstructor, allowsDirectSuper, "ClassMethod", true)); - } - - pushClassPrivateMethod(classBody, method, isGenerator, isAsync) { - const node = this.parseMethod(method, isGenerator, isAsync, false, false, "ClassPrivateMethod", true); - classBody.body.push(node); - const kind = node.kind === "get" ? node.static ? CLASS_ELEMENT_STATIC_GETTER : CLASS_ELEMENT_INSTANCE_GETTER : node.kind === "set" ? node.static ? CLASS_ELEMENT_STATIC_SETTER : CLASS_ELEMENT_INSTANCE_SETTER : CLASS_ELEMENT_OTHER; - this.classScope.declarePrivateName(this.getPrivateNameSV(node.key), kind, node.key.start); - } - - parsePostMemberNameModifiers(methodOrProp) {} - - parseClassPrivateProperty(node) { - this.parseInitializer(node); - this.semicolon(); - return this.finishNode(node, "ClassPrivateProperty"); - } - - parseClassProperty(node) { - this.parseInitializer(node); - this.semicolon(); - return this.finishNode(node, "ClassProperty"); - } - - parseInitializer(node) { - this.scope.enter(SCOPE_CLASS | SCOPE_SUPER); - this.expressionScope.enter(newExpressionScope()); - this.prodParam.enter(PARAM); - node.value = this.eat(27) ? this.parseMaybeAssignAllowIn() : null; - this.expressionScope.exit(); - this.prodParam.exit(); - this.scope.exit(); - } - - parseClassId(node, isStatement, optionalId, bindingType = BIND_CLASS) { - if (tokenIsIdentifier(this.state.type)) { - node.id = this.parseIdentifier(); - - if (isStatement) { - this.checkLVal(node.id, "class name", bindingType); - } - } else { - if (optionalId || !isStatement) { - node.id = null; - } else { - this.unexpected(null, ErrorMessages.MissingClassName); - } - } - } - - parseClassSuper(node) { - node.superClass = this.eat(72) ? this.parseExprSubscripts() : null; - } - - parseExport(node) { - const hasDefault = this.maybeParseExportDefaultSpecifier(node); - const parseAfterDefault = !hasDefault || this.eat(12); - const hasStar = parseAfterDefault && this.eatExportStar(node); - const hasNamespace = hasStar && this.maybeParseExportNamespaceSpecifier(node); - const parseAfterNamespace = parseAfterDefault && (!hasNamespace || this.eat(12)); - const isFromRequired = hasDefault || hasStar; - - if (hasStar && !hasNamespace) { - if (hasDefault) this.unexpected(); - this.parseExportFrom(node, true); - return this.finishNode(node, "ExportAllDeclaration"); - } - - const hasSpecifiers = this.maybeParseExportNamedSpecifiers(node); - - if (hasDefault && parseAfterDefault && !hasStar && !hasSpecifiers || hasNamespace && parseAfterNamespace && !hasSpecifiers) { - throw this.unexpected(null, 5); - } - - let hasDeclaration; - - if (isFromRequired || hasSpecifiers) { - hasDeclaration = false; - this.parseExportFrom(node, isFromRequired); - } else { - hasDeclaration = this.maybeParseExportDeclaration(node); - } - - if (isFromRequired || hasSpecifiers || hasDeclaration) { - this.checkExport(node, true, false, !!node.source); - return this.finishNode(node, "ExportNamedDeclaration"); - } - - if (this.eat(56)) { - node.declaration = this.parseExportDefaultExpression(); - this.checkExport(node, true, true); - return this.finishNode(node, "ExportDefaultDeclaration"); - } - - throw this.unexpected(null, 5); - } - - eatExportStar(node) { - return this.eat(46); - } - - maybeParseExportDefaultSpecifier(node) { - if (this.isExportDefaultSpecifier()) { - this.expectPlugin("exportDefaultFrom"); - const specifier = this.startNode(); - specifier.exported = this.parseIdentifier(true); - node.specifiers = [this.finishNode(specifier, "ExportDefaultSpecifier")]; - return true; - } - - return false; - } - - maybeParseExportNamespaceSpecifier(node) { - if (this.isContextual(84)) { - if (!node.specifiers) node.specifiers = []; - const specifier = this.startNodeAt(this.state.lastTokStart, this.state.lastTokStartLoc); - this.next(); - specifier.exported = this.parseModuleExportName(); - node.specifiers.push(this.finishNode(specifier, "ExportNamespaceSpecifier")); - return true; - } - - return false; - } - - maybeParseExportNamedSpecifiers(node) { - if (this.match(5)) { - if (!node.specifiers) node.specifiers = []; - node.specifiers.push(...this.parseExportSpecifiers()); - node.source = null; - node.declaration = null; - return true; - } - - return false; - } - - maybeParseExportDeclaration(node) { - if (this.shouldParseExportDeclaration()) { - node.specifiers = []; - node.source = null; - node.declaration = this.parseExportDeclaration(node); - return true; - } - - return false; - } - - isAsyncFunction() { - if (!this.isContextual(86)) return false; - const next = this.nextTokenStart(); - return !lineBreak.test(this.input.slice(this.state.pos, next)) && this.isUnparsedContextual(next, "function"); - } - - parseExportDefaultExpression() { - const expr = this.startNode(); - const isAsync = this.isAsyncFunction(); - - if (this.match(59) || isAsync) { - this.next(); - - if (isAsync) { - this.next(); - } - - return this.parseFunction(expr, FUNC_STATEMENT | FUNC_NULLABLE_ID, isAsync); - } else if (this.match(71)) { - return this.parseClass(expr, true, true); - } else if (this.match(24)) { - if (this.hasPlugin("decorators") && this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.raise(this.state.start, ErrorMessages.DecoratorBeforeExport); - } - - this.parseDecorators(false); - return this.parseClass(expr, true, true); - } else if (this.match(66) || this.match(65) || this.isLet()) { - throw this.raise(this.state.start, ErrorMessages.UnsupportedDefaultExport); - } else { - const res = this.parseMaybeAssignAllowIn(); - this.semicolon(); - return res; - } - } - - parseExportDeclaration(node) { - return this.parseStatement(null); - } - - isExportDefaultSpecifier() { - const { - type - } = this.state; - - if (tokenIsIdentifier(type)) { - if (type === 86 && !this.state.containsEsc || type === 90) { - return false; - } - - if ((type === 117 || type === 116) && !this.state.containsEsc) { - const { - type: nextType - } = this.lookahead(); - - if (tokenIsIdentifier(nextType) && nextType !== 88 || nextType === 5) { - this.expectOnePlugin(["flow", "typescript"]); - return false; - } - } - } else if (!this.match(56)) { - return false; - } - - const next = this.nextTokenStart(); - const hasFrom = this.isUnparsedContextual(next, "from"); - - if (this.input.charCodeAt(next) === 44 || tokenIsIdentifier(this.state.type) && hasFrom) { - return true; - } - - if (this.match(56) && hasFrom) { - const nextAfterFrom = this.input.charCodeAt(this.nextTokenStartSince(next + 4)); - return nextAfterFrom === 34 || nextAfterFrom === 39; - } - - return false; - } - - parseExportFrom(node, expect) { - if (this.eatContextual(88)) { - node.source = this.parseImportSource(); - this.checkExport(node); - const assertions = this.maybeParseImportAssertions(); - - if (assertions) { - node.assertions = assertions; - } - } else { - if (expect) { - this.unexpected(); - } else { - node.source = null; - } - } - - this.semicolon(); - } - - shouldParseExportDeclaration() { - const { - type - } = this.state; - - if (type === 24) { - this.expectOnePlugin(["decorators", "decorators-legacy"]); - - if (this.hasPlugin("decorators")) { - if (this.getPluginOption("decorators", "decoratorsBeforeExport")) { - this.unexpected(this.state.start, ErrorMessages.DecoratorBeforeExport); - } else { - return true; - } - } - } - - return type === 65 || type === 66 || type === 59 || type === 71 || this.isLet() || this.isAsyncFunction(); - } - - checkExport(node, checkNames, isDefault, isFrom) { - if (checkNames) { - if (isDefault) { - this.checkDuplicateExports(node, "default"); - - if (this.hasPlugin("exportDefaultFrom")) { - var _declaration$extra; - - const declaration = node.declaration; - - if (declaration.type === "Identifier" && declaration.name === "from" && declaration.end - declaration.start === 4 && !((_declaration$extra = declaration.extra) != null && _declaration$extra.parenthesized)) { - this.raise(declaration.start, ErrorMessages.ExportDefaultFromAsIdentifier); - } - } - } else if (node.specifiers && node.specifiers.length) { - for (const specifier of node.specifiers) { - const { - exported - } = specifier; - const exportedName = exported.type === "Identifier" ? exported.name : exported.value; - this.checkDuplicateExports(specifier, exportedName); - - if (!isFrom && specifier.local) { - const { - local - } = specifier; - - if (local.type !== "Identifier") { - this.raise(specifier.start, ErrorMessages.ExportBindingIsString, local.value, exportedName); - } else { - this.checkReservedWord(local.name, local.start, true, false); - this.scope.checkLocalExport(local); - } - } - } - } else if (node.declaration) { - if (node.declaration.type === "FunctionDeclaration" || node.declaration.type === "ClassDeclaration") { - const id = node.declaration.id; - if (!id) throw new Error("Assertion failure"); - this.checkDuplicateExports(node, id.name); - } else if (node.declaration.type === "VariableDeclaration") { - for (const declaration of node.declaration.declarations) { - this.checkDeclaration(declaration.id); - } - } - } - } - - const currentContextDecorators = this.state.decoratorStack[this.state.decoratorStack.length - 1]; - - if (currentContextDecorators.length) { - throw this.raise(node.start, ErrorMessages.UnsupportedDecoratorExport); - } - } - - checkDeclaration(node) { - if (node.type === "Identifier") { - this.checkDuplicateExports(node, node.name); - } else if (node.type === "ObjectPattern") { - for (const prop of node.properties) { - this.checkDeclaration(prop); - } - } else if (node.type === "ArrayPattern") { - for (const elem of node.elements) { - if (elem) { - this.checkDeclaration(elem); - } - } - } else if (node.type === "ObjectProperty") { - this.checkDeclaration(node.value); - } else if (node.type === "RestElement") { - this.checkDeclaration(node.argument); - } else if (node.type === "AssignmentPattern") { - this.checkDeclaration(node.left); - } - } - - checkDuplicateExports(node, name) { - if (this.exportedIdentifiers.has(name)) { - this.raise(node.start, name === "default" ? ErrorMessages.DuplicateDefaultExport : ErrorMessages.DuplicateExport, name); - } - - this.exportedIdentifiers.add(name); - } - - parseExportSpecifiers() { - const nodes = []; - let first = true; - this.expect(5); - - while (!this.eat(8)) { - if (first) { - first = false; - } else { - this.expect(12); - if (this.eat(8)) break; - } - - const node = this.startNode(); - const isString = this.match(120); - const local = this.parseModuleExportName(); - node.local = local; - - if (this.eatContextual(84)) { - node.exported = this.parseModuleExportName(); - } else if (isString) { - node.exported = cloneStringLiteral(local); - } else { - node.exported = cloneIdentifier(local); - } - - nodes.push(this.finishNode(node, "ExportSpecifier")); - } - - return nodes; - } - - parseModuleExportName() { - if (this.match(120)) { - const result = this.parseStringLiteral(this.state.value); - const surrogate = result.value.match(loneSurrogate); - - if (surrogate) { - this.raise(result.start, ErrorMessages.ModuleExportNameHasLoneSurrogate, surrogate[0].charCodeAt(0).toString(16)); - } - - return result; - } - - return this.parseIdentifier(true); - } - - parseImport(node) { - node.specifiers = []; - - if (!this.match(120)) { - const hasDefault = this.maybeParseDefaultImportSpecifier(node); - const parseNext = !hasDefault || this.eat(12); - const hasStar = parseNext && this.maybeParseStarImportSpecifier(node); - if (parseNext && !hasStar) this.parseNamedImportSpecifiers(node); - this.expectContextual(88); - } - - node.source = this.parseImportSource(); - const assertions = this.maybeParseImportAssertions(); - - if (assertions) { - node.assertions = assertions; - } else { - const attributes = this.maybeParseModuleAttributes(); - - if (attributes) { - node.attributes = attributes; - } - } - - this.semicolon(); - return this.finishNode(node, "ImportDeclaration"); - } - - parseImportSource() { - if (!this.match(120)) this.unexpected(); - return this.parseExprAtom(); - } - - shouldParseDefaultImport(node) { - return tokenIsIdentifier(this.state.type); - } - - parseImportSpecifierLocal(node, specifier, type, contextDescription) { - specifier.local = this.parseIdentifier(); - this.checkLVal(specifier.local, contextDescription, BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, type)); - } - - parseAssertEntries() { - const attrs = []; - const attrNames = new Set(); - - do { - if (this.match(8)) { - break; - } - - const node = this.startNode(); - const keyName = this.state.value; - - if (attrNames.has(keyName)) { - this.raise(this.state.start, ErrorMessages.ModuleAttributesWithDuplicateKeys, keyName); - } - - attrNames.add(keyName); - - if (this.match(120)) { - node.key = this.parseStringLiteral(keyName); - } else { - node.key = this.parseIdentifier(true); - } - - this.expect(14); - - if (!this.match(120)) { - throw this.unexpected(this.state.start, ErrorMessages.ModuleAttributeInvalidValue); - } - - node.value = this.parseStringLiteral(this.state.value); - this.finishNode(node, "ImportAttribute"); - attrs.push(node); - } while (this.eat(12)); - - return attrs; - } - - maybeParseModuleAttributes() { - if (this.match(67) && !this.hasPrecedingLineBreak()) { - this.expectPlugin("moduleAttributes"); - this.next(); - } else { - if (this.hasPlugin("moduleAttributes")) return []; - return null; - } - - const attrs = []; - const attributes = new Set(); - - do { - const node = this.startNode(); - node.key = this.parseIdentifier(true); - - if (node.key.name !== "type") { - this.raise(node.key.start, ErrorMessages.ModuleAttributeDifferentFromType, node.key.name); - } - - if (attributes.has(node.key.name)) { - this.raise(node.key.start, ErrorMessages.ModuleAttributesWithDuplicateKeys, node.key.name); - } - - attributes.add(node.key.name); - this.expect(14); - - if (!this.match(120)) { - throw this.unexpected(this.state.start, ErrorMessages.ModuleAttributeInvalidValue); - } - - node.value = this.parseStringLiteral(this.state.value); - this.finishNode(node, "ImportAttribute"); - attrs.push(node); - } while (this.eat(12)); - - return attrs; - } - - maybeParseImportAssertions() { - if (this.isContextual(85) && !this.hasPrecedingLineBreak()) { - this.expectPlugin("importAssertions"); - this.next(); - } else { - if (this.hasPlugin("importAssertions")) return []; - return null; - } - - this.eat(5); - const attrs = this.parseAssertEntries(); - this.eat(8); - return attrs; - } - - maybeParseDefaultImportSpecifier(node) { - if (this.shouldParseDefaultImport(node)) { - this.parseImportSpecifierLocal(node, this.startNode(), "ImportDefaultSpecifier", "default import specifier"); - return true; - } - - return false; - } - - maybeParseStarImportSpecifier(node) { - if (this.match(46)) { - const specifier = this.startNode(); - this.next(); - this.expectContextual(84); - this.parseImportSpecifierLocal(node, specifier, "ImportNamespaceSpecifier", "import namespace specifier"); - return true; - } - - return false; - } - - parseNamedImportSpecifiers(node) { - let first = true; - this.expect(5); - - while (!this.eat(8)) { - if (first) { - first = false; - } else { - if (this.eat(14)) { - throw this.raise(this.state.start, ErrorMessages.DestructureNamedImport); - } - - this.expect(12); - if (this.eat(8)) break; - } - - this.parseImportSpecifier(node); - } - } - - parseImportSpecifier(node) { - const specifier = this.startNode(); - const importedIsString = this.match(120); - specifier.imported = this.parseModuleExportName(); - - if (this.eatContextual(84)) { - specifier.local = this.parseIdentifier(); - } else { - const { - imported - } = specifier; - - if (importedIsString) { - throw this.raise(specifier.start, ErrorMessages.ImportBindingIsString, imported.value); - } - - this.checkReservedWord(imported.name, specifier.start, true, true); - specifier.local = cloneIdentifier(imported); - } - - this.checkLVal(specifier.local, "import specifier", BIND_LEXICAL); - node.specifiers.push(this.finishNode(specifier, "ImportSpecifier")); - } - - isThisParam(param) { - return param.type === "Identifier" && param.name === "this"; - } - -} - -class Parser extends StatementParser { - constructor(options, input) { - options = getOptions(options); - super(options, input); - this.options = options; - this.initializeScopes(); - this.plugins = pluginsMap(this.options.plugins); - this.filename = options.sourceFilename; - } - - getScopeHandler() { - return ScopeHandler; - } - - parse() { - this.enterInitialScopes(); - const file = this.startNode(); - const program = this.startNode(); - this.nextToken(); - file.errors = null; - this.parseTopLevel(file, program); - file.errors = this.state.errors; - return file; - } - -} - -function pluginsMap(plugins) { - const pluginMap = new Map(); - - for (const plugin of plugins) { - const [name, options] = Array.isArray(plugin) ? plugin : [plugin, {}]; - if (!pluginMap.has(name)) pluginMap.set(name, options || {}); - } - - return pluginMap; -} - -function parse(input, options) { - var _options; - - if (((_options = options) == null ? void 0 : _options.sourceType) === "unambiguous") { - options = Object.assign({}, options); - - try { - options.sourceType = "module"; - const parser = getParser(options, input); - const ast = parser.parse(); - - if (parser.sawUnambiguousESM) { - return ast; - } - - if (parser.ambiguousScriptDifferentAst) { - try { - options.sourceType = "script"; - return getParser(options, input).parse(); - } catch (_unused) {} - } else { - ast.program.sourceType = "script"; - } - - return ast; - } catch (moduleError) { - try { - options.sourceType = "script"; - return getParser(options, input).parse(); - } catch (_unused2) {} - - throw moduleError; - } - } else { - return getParser(options, input).parse(); - } -} -function parseExpression(input, options) { - const parser = getParser(options, input); - - if (parser.options.strictMode) { - parser.state.strict = true; - } - - return parser.getExpression(); -} - -function generateExportedTokenTypes(internalTokenTypes) { - const tokenTypes = {}; - - for (const typeName of Object.keys(internalTokenTypes)) { - tokenTypes[typeName] = getExportedToken(internalTokenTypes[typeName]); - } - - return tokenTypes; -} - -const tokTypes = generateExportedTokenTypes(tt); - -function getParser(options, input) { - let cls = Parser; - - if (options != null && options.plugins) { - validatePlugins(options.plugins); - cls = getParserClass(options.plugins); - } - - return new cls(options, input); -} - -const parserClassCache = {}; - -function getParserClass(pluginsFromOptions) { - const pluginList = mixinPluginNames.filter(name => hasPlugin(pluginsFromOptions, name)); - const key = pluginList.join("/"); - let cls = parserClassCache[key]; - - if (!cls) { - cls = Parser; - - for (const plugin of pluginList) { - cls = mixinPlugins[plugin](cls); - } - - parserClassCache[key] = cls; - } - - return cls; -} - -exports.parse = parse; -exports.parseExpression = parseExpression; -exports.tokTypes = tokTypes; -//# sourceMappingURL=index.js.map diff --git a/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json b/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json deleted file mode 100644 index 0edf2005d1c897..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/parser/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "@babel/parser", - "version": "7.15.8", - "description": "A JavaScript parser", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-parser", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A+parser+%28babylon%29%22+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "keywords": [ - "babel", - "javascript", - "parser", - "tc39", - "ecmascript", - "@babel/parser" - ], - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-parser" - }, - "main": "./lib/index.js", - "types": "./typings/babel-parser.d.ts", - "files": [ - "bin", - "lib", - "typings" - ], - "engines": { - "node": ">=6.0.0" - }, - "devDependencies": { - "@babel/code-frame": "7.15.8", - "@babel/helper-fixtures": "7.14.5", - "@babel/helper-validator-identifier": "7.15.7", - "charcodes": "^0.2.0" - }, - "bin": "./bin/babel-parser.js" -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/template/README.md b/tools/node_modules/@babel/core/node_modules/@babel/template/README.md deleted file mode 100644 index 759c65aa6b1bce..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/template/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/template - -> Generate an AST from a string template. - -See our website [@babel/template](https://babeljs.io/docs/en/babel-template) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20template%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/template -``` - -or using yarn: - -```sh -yarn add @babel/template --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/template/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/template/lib/index.js deleted file mode 100644 index 1a673a19bd4a46..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/template/lib/index.js +++ /dev/null @@ -1,32 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = exports.program = exports.expression = exports.statements = exports.statement = exports.smart = void 0; - -var formatters = require("./formatters"); - -var _builder = require("./builder"); - -const smart = (0, _builder.default)(formatters.smart); -exports.smart = smart; -const statement = (0, _builder.default)(formatters.statement); -exports.statement = statement; -const statements = (0, _builder.default)(formatters.statements); -exports.statements = statements; -const expression = (0, _builder.default)(formatters.expression); -exports.expression = expression; -const program = (0, _builder.default)(formatters.program); -exports.program = program; - -var _default = Object.assign(smart.bind(undefined), { - smart, - statement, - statements, - expression, - program, - ast: smart.ast -}); - -exports.default = _default; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/template/lib/options.js b/tools/node_modules/@babel/core/node_modules/@babel/template/lib/options.js deleted file mode 100644 index 1bb4fcbeed06a6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/template/lib/options.js +++ /dev/null @@ -1,83 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.merge = merge; -exports.validate = validate; -exports.normalizeReplacements = normalizeReplacements; -const _excluded = ["placeholderWhitelist", "placeholderPattern", "preserveComments", "syntacticPlaceholders"]; - -function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } - -function merge(a, b) { - const { - placeholderWhitelist = a.placeholderWhitelist, - placeholderPattern = a.placeholderPattern, - preserveComments = a.preserveComments, - syntacticPlaceholders = a.syntacticPlaceholders - } = b; - return { - parser: Object.assign({}, a.parser, b.parser), - placeholderWhitelist, - placeholderPattern, - preserveComments, - syntacticPlaceholders - }; -} - -function validate(opts) { - if (opts != null && typeof opts !== "object") { - throw new Error("Unknown template options."); - } - - const _ref = opts || {}, - { - placeholderWhitelist, - placeholderPattern, - preserveComments, - syntacticPlaceholders - } = _ref, - parser = _objectWithoutPropertiesLoose(_ref, _excluded); - - if (placeholderWhitelist != null && !(placeholderWhitelist instanceof Set)) { - throw new Error("'.placeholderWhitelist' must be a Set, null, or undefined"); - } - - if (placeholderPattern != null && !(placeholderPattern instanceof RegExp) && placeholderPattern !== false) { - throw new Error("'.placeholderPattern' must be a RegExp, false, null, or undefined"); - } - - if (preserveComments != null && typeof preserveComments !== "boolean") { - throw new Error("'.preserveComments' must be a boolean, null, or undefined"); - } - - if (syntacticPlaceholders != null && typeof syntacticPlaceholders !== "boolean") { - throw new Error("'.syntacticPlaceholders' must be a boolean, null, or undefined"); - } - - if (syntacticPlaceholders === true && (placeholderWhitelist != null || placeholderPattern != null)) { - throw new Error("'.placeholderWhitelist' and '.placeholderPattern' aren't compatible" + " with '.syntacticPlaceholders: true'"); - } - - return { - parser, - placeholderWhitelist: placeholderWhitelist || undefined, - placeholderPattern: placeholderPattern == null ? undefined : placeholderPattern, - preserveComments: preserveComments == null ? undefined : preserveComments, - syntacticPlaceholders: syntacticPlaceholders == null ? undefined : syntacticPlaceholders - }; -} - -function normalizeReplacements(replacements) { - if (Array.isArray(replacements)) { - return replacements.reduce((acc, replacement, i) => { - acc["$" + i] = replacement; - return acc; - }, {}); - } else if (typeof replacements === "object" || replacements == null) { - return replacements || undefined; - } - - throw new Error("Template replacements must be an array, object, null, or undefined"); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/template/package.json b/tools/node_modules/@babel/core/node_modules/@babel/template/package.json deleted file mode 100644 index 0a43a23a8c410d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/template/package.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "name": "@babel/template", - "version": "7.15.4", - "description": "Generate an AST from a string template.", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-template", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20template%22+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-template" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/README.md b/tools/node_modules/@babel/core/node_modules/@babel/traverse/README.md deleted file mode 100644 index e478f16fb1c630..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/traverse - -> The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes - -See our website [@babel/traverse](https://babeljs.io/docs/en/babel-traverse) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20traverse%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/traverse -``` - -or using yarn: - -```sh -yarn add @babel/traverse --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js deleted file mode 100644 index aa4616c9f63877..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/index.js +++ /dev/null @@ -1,118 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "NodePath", { - enumerable: true, - get: function () { - return _path.default; - } -}); -Object.defineProperty(exports, "Scope", { - enumerable: true, - get: function () { - return _scope.default; - } -}); -Object.defineProperty(exports, "Hub", { - enumerable: true, - get: function () { - return _hub.default; - } -}); -exports.visitors = exports.default = void 0; - -var _context = require("./context"); - -var visitors = require("./visitors"); - -exports.visitors = visitors; - -var _t = require("@babel/types"); - -var cache = require("./cache"); - -var _path = require("./path"); - -var _scope = require("./scope"); - -var _hub = require("./hub"); - -const { - VISITOR_KEYS, - removeProperties, - traverseFast -} = _t; - -function traverse(parent, opts = {}, scope, state, parentPath) { - if (!parent) return; - - if (!opts.noScope && !scope) { - if (parent.type !== "Program" && parent.type !== "File") { - throw new Error("You must pass a scope and parentPath unless traversing a Program/File. " + `Instead of that you tried to traverse a ${parent.type} node without ` + "passing scope and parentPath."); - } - } - - if (!VISITOR_KEYS[parent.type]) { - return; - } - - visitors.explode(opts); - traverse.node(parent, opts, scope, state, parentPath); -} - -var _default = traverse; -exports.default = _default; -traverse.visitors = visitors; -traverse.verify = visitors.verify; -traverse.explode = visitors.explode; - -traverse.cheap = function (node, enter) { - return traverseFast(node, enter); -}; - -traverse.node = function (node, opts, scope, state, parentPath, skipKeys) { - const keys = VISITOR_KEYS[node.type]; - if (!keys) return; - const context = new _context.default(scope, opts, state, parentPath); - - for (const key of keys) { - if (skipKeys && skipKeys[key]) continue; - if (context.visit(node, key)) return; - } -}; - -traverse.clearNode = function (node, opts) { - removeProperties(node, opts); - cache.path.delete(node); -}; - -traverse.removeProperties = function (tree, opts) { - traverseFast(tree, traverse.clearNode, opts); - return tree; -}; - -function hasDenylistedType(path, state) { - if (path.node.type === state.type) { - state.has = true; - path.stop(); - } -} - -traverse.hasType = function (tree, type, denylistTypes) { - if (denylistTypes != null && denylistTypes.includes(tree.type)) return false; - if (tree.type === type) return true; - const state = { - has: false, - type: type - }; - traverse(tree, { - noScope: true, - denylist: denylistTypes, - enter: hasDenylistedType - }, null, state); - return state.has; -}; - -traverse.cache = cache; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js deleted file mode 100644 index 2037748e0240ad..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/conversion.js +++ /dev/null @@ -1,468 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.toComputedKey = toComputedKey; -exports.ensureBlock = ensureBlock; -exports.arrowFunctionToShadowed = arrowFunctionToShadowed; -exports.unwrapFunctionEnvironment = unwrapFunctionEnvironment; -exports.arrowFunctionToExpression = arrowFunctionToExpression; - -var _t = require("@babel/types"); - -var _helperFunctionName = require("@babel/helper-function-name"); - -const { - arrowFunctionExpression, - assignmentExpression, - binaryExpression, - blockStatement, - callExpression, - conditionalExpression, - expressionStatement, - identifier, - isIdentifier, - jsxIdentifier, - memberExpression, - metaProperty, - numericLiteral, - objectExpression, - restElement, - returnStatement, - sequenceExpression, - spreadElement, - stringLiteral, - super: _super, - thisExpression, - unaryExpression -} = _t; - -function toComputedKey() { - let key; - - if (this.isMemberExpression()) { - key = this.node.property; - } else if (this.isProperty() || this.isMethod()) { - key = this.node.key; - } else { - throw new ReferenceError("todo"); - } - - if (!this.node.computed) { - if (isIdentifier(key)) key = stringLiteral(key.name); - } - - return key; -} - -function ensureBlock() { - const body = this.get("body"); - const bodyNode = body.node; - - if (Array.isArray(body)) { - throw new Error("Can't convert array path to a block statement"); - } - - if (!bodyNode) { - throw new Error("Can't convert node without a body"); - } - - if (body.isBlockStatement()) { - return bodyNode; - } - - const statements = []; - let stringPath = "body"; - let key; - let listKey; - - if (body.isStatement()) { - listKey = "body"; - key = 0; - statements.push(body.node); - } else { - stringPath += ".body.0"; - - if (this.isFunction()) { - key = "argument"; - statements.push(returnStatement(body.node)); - } else { - key = "expression"; - statements.push(expressionStatement(body.node)); - } - } - - this.node.body = blockStatement(statements); - const parentPath = this.get(stringPath); - body.setup(parentPath, listKey ? parentPath.node[listKey] : parentPath.node, listKey, key); - return this.node; -} - -function arrowFunctionToShadowed() { - if (!this.isArrowFunctionExpression()) return; - this.arrowFunctionToExpression(); -} - -function unwrapFunctionEnvironment() { - if (!this.isArrowFunctionExpression() && !this.isFunctionExpression() && !this.isFunctionDeclaration()) { - throw this.buildCodeFrameError("Can only unwrap the environment of a function."); - } - - hoistFunctionEnvironment(this); -} - -function arrowFunctionToExpression({ - allowInsertArrow = true, - specCompliant = false, - noNewArrows = !specCompliant -} = {}) { - if (!this.isArrowFunctionExpression()) { - throw this.buildCodeFrameError("Cannot convert non-arrow function to a function expression."); - } - - const thisBinding = hoistFunctionEnvironment(this, noNewArrows, allowInsertArrow); - this.ensureBlock(); - this.node.type = "FunctionExpression"; - - if (!noNewArrows) { - const checkBinding = thisBinding ? null : this.parentPath.scope.generateUidIdentifier("arrowCheckId"); - - if (checkBinding) { - this.parentPath.scope.push({ - id: checkBinding, - init: objectExpression([]) - }); - } - - this.get("body").unshiftContainer("body", expressionStatement(callExpression(this.hub.addHelper("newArrowCheck"), [thisExpression(), checkBinding ? identifier(checkBinding.name) : identifier(thisBinding)]))); - this.replaceWith(callExpression(memberExpression((0, _helperFunctionName.default)(this, true) || this.node, identifier("bind")), [checkBinding ? identifier(checkBinding.name) : thisExpression()])); - } -} - -function hoistFunctionEnvironment(fnPath, noNewArrows = true, allowInsertArrow = true) { - const thisEnvFn = fnPath.findParent(p => { - return p.isFunction() && !p.isArrowFunctionExpression() || p.isProgram() || p.isClassProperty({ - static: false - }); - }); - const inConstructor = (thisEnvFn == null ? void 0 : thisEnvFn.node.kind) === "constructor"; - - if (thisEnvFn.isClassProperty()) { - throw fnPath.buildCodeFrameError("Unable to transform arrow inside class property"); - } - - const { - thisPaths, - argumentsPaths, - newTargetPaths, - superProps, - superCalls - } = getScopeInformation(fnPath); - - if (inConstructor && superCalls.length > 0) { - if (!allowInsertArrow) { - throw superCalls[0].buildCodeFrameError("Unable to handle nested super() usage in arrow"); - } - - const allSuperCalls = []; - thisEnvFn.traverse({ - Function(child) { - if (child.isArrowFunctionExpression()) return; - child.skip(); - }, - - ClassProperty(child) { - child.skip(); - }, - - CallExpression(child) { - if (!child.get("callee").isSuper()) return; - allSuperCalls.push(child); - } - - }); - const superBinding = getSuperBinding(thisEnvFn); - allSuperCalls.forEach(superCall => { - const callee = identifier(superBinding); - callee.loc = superCall.node.callee.loc; - superCall.get("callee").replaceWith(callee); - }); - } - - if (argumentsPaths.length > 0) { - const argumentsBinding = getBinding(thisEnvFn, "arguments", () => { - const args = () => identifier("arguments"); - - if (thisEnvFn.scope.path.isProgram()) { - return conditionalExpression(binaryExpression("===", unaryExpression("typeof", args()), stringLiteral("undefined")), thisEnvFn.scope.buildUndefinedNode(), args()); - } else { - return args(); - } - }); - argumentsPaths.forEach(argumentsChild => { - const argsRef = identifier(argumentsBinding); - argsRef.loc = argumentsChild.node.loc; - argumentsChild.replaceWith(argsRef); - }); - } - - if (newTargetPaths.length > 0) { - const newTargetBinding = getBinding(thisEnvFn, "newtarget", () => metaProperty(identifier("new"), identifier("target"))); - newTargetPaths.forEach(targetChild => { - const targetRef = identifier(newTargetBinding); - targetRef.loc = targetChild.node.loc; - targetChild.replaceWith(targetRef); - }); - } - - if (superProps.length > 0) { - if (!allowInsertArrow) { - throw superProps[0].buildCodeFrameError("Unable to handle nested super.prop usage"); - } - - const flatSuperProps = superProps.reduce((acc, superProp) => acc.concat(standardizeSuperProperty(superProp)), []); - flatSuperProps.forEach(superProp => { - const key = superProp.node.computed ? "" : superProp.get("property").node.name; - const isAssignment = superProp.parentPath.isAssignmentExpression({ - left: superProp.node - }); - const isCall = superProp.parentPath.isCallExpression({ - callee: superProp.node - }); - const superBinding = getSuperPropBinding(thisEnvFn, isAssignment, key); - const args = []; - - if (superProp.node.computed) { - args.push(superProp.get("property").node); - } - - if (isAssignment) { - const value = superProp.parentPath.node.right; - args.push(value); - } - - const call = callExpression(identifier(superBinding), args); - - if (isCall) { - superProp.parentPath.unshiftContainer("arguments", thisExpression()); - superProp.replaceWith(memberExpression(call, identifier("call"))); - thisPaths.push(superProp.parentPath.get("arguments.0")); - } else if (isAssignment) { - superProp.parentPath.replaceWith(call); - } else { - superProp.replaceWith(call); - } - }); - } - - let thisBinding; - - if (thisPaths.length > 0 || !noNewArrows) { - thisBinding = getThisBinding(thisEnvFn, inConstructor); - - if (noNewArrows || inConstructor && hasSuperClass(thisEnvFn)) { - thisPaths.forEach(thisChild => { - const thisRef = thisChild.isJSX() ? jsxIdentifier(thisBinding) : identifier(thisBinding); - thisRef.loc = thisChild.node.loc; - thisChild.replaceWith(thisRef); - }); - if (!noNewArrows) thisBinding = null; - } - } - - return thisBinding; -} - -function standardizeSuperProperty(superProp) { - if (superProp.parentPath.isAssignmentExpression() && superProp.parentPath.node.operator !== "=") { - const assignmentPath = superProp.parentPath; - const op = assignmentPath.node.operator.slice(0, -1); - const value = assignmentPath.node.right; - assignmentPath.node.operator = "="; - - if (superProp.node.computed) { - const tmp = superProp.scope.generateDeclaredUidIdentifier("tmp"); - assignmentPath.get("left").replaceWith(memberExpression(superProp.node.object, assignmentExpression("=", tmp, superProp.node.property), true)); - assignmentPath.get("right").replaceWith(binaryExpression(op, memberExpression(superProp.node.object, identifier(tmp.name), true), value)); - } else { - assignmentPath.get("left").replaceWith(memberExpression(superProp.node.object, superProp.node.property)); - assignmentPath.get("right").replaceWith(binaryExpression(op, memberExpression(superProp.node.object, identifier(superProp.node.property.name)), value)); - } - - return [assignmentPath.get("left"), assignmentPath.get("right").get("left")]; - } else if (superProp.parentPath.isUpdateExpression()) { - const updateExpr = superProp.parentPath; - const tmp = superProp.scope.generateDeclaredUidIdentifier("tmp"); - const computedKey = superProp.node.computed ? superProp.scope.generateDeclaredUidIdentifier("prop") : null; - const parts = [assignmentExpression("=", tmp, memberExpression(superProp.node.object, computedKey ? assignmentExpression("=", computedKey, superProp.node.property) : superProp.node.property, superProp.node.computed)), assignmentExpression("=", memberExpression(superProp.node.object, computedKey ? identifier(computedKey.name) : superProp.node.property, superProp.node.computed), binaryExpression("+", identifier(tmp.name), numericLiteral(1)))]; - - if (!superProp.parentPath.node.prefix) { - parts.push(identifier(tmp.name)); - } - - updateExpr.replaceWith(sequenceExpression(parts)); - const left = updateExpr.get("expressions.0.right"); - const right = updateExpr.get("expressions.1.left"); - return [left, right]; - } - - return [superProp]; -} - -function hasSuperClass(thisEnvFn) { - return thisEnvFn.isClassMethod() && !!thisEnvFn.parentPath.parentPath.node.superClass; -} - -function getThisBinding(thisEnvFn, inConstructor) { - return getBinding(thisEnvFn, "this", thisBinding => { - if (!inConstructor || !hasSuperClass(thisEnvFn)) return thisExpression(); - const supers = new WeakSet(); - thisEnvFn.traverse({ - Function(child) { - if (child.isArrowFunctionExpression()) return; - child.skip(); - }, - - ClassProperty(child) { - child.skip(); - }, - - CallExpression(child) { - if (!child.get("callee").isSuper()) return; - if (supers.has(child.node)) return; - supers.add(child.node); - child.replaceWithMultiple([child.node, assignmentExpression("=", identifier(thisBinding), identifier("this"))]); - } - - }); - }); -} - -function getSuperBinding(thisEnvFn) { - return getBinding(thisEnvFn, "supercall", () => { - const argsBinding = thisEnvFn.scope.generateUidIdentifier("args"); - return arrowFunctionExpression([restElement(argsBinding)], callExpression(_super(), [spreadElement(identifier(argsBinding.name))])); - }); -} - -function getSuperPropBinding(thisEnvFn, isAssignment, propName) { - const op = isAssignment ? "set" : "get"; - return getBinding(thisEnvFn, `superprop_${op}:${propName || ""}`, () => { - const argsList = []; - let fnBody; - - if (propName) { - fnBody = memberExpression(_super(), identifier(propName)); - } else { - const method = thisEnvFn.scope.generateUidIdentifier("prop"); - argsList.unshift(method); - fnBody = memberExpression(_super(), identifier(method.name), true); - } - - if (isAssignment) { - const valueIdent = thisEnvFn.scope.generateUidIdentifier("value"); - argsList.push(valueIdent); - fnBody = assignmentExpression("=", fnBody, identifier(valueIdent.name)); - } - - return arrowFunctionExpression(argsList, fnBody); - }); -} - -function getBinding(thisEnvFn, key, init) { - const cacheKey = "binding:" + key; - let data = thisEnvFn.getData(cacheKey); - - if (!data) { - const id = thisEnvFn.scope.generateUidIdentifier(key); - data = id.name; - thisEnvFn.setData(cacheKey, data); - thisEnvFn.scope.push({ - id: id, - init: init(data) - }); - } - - return data; -} - -function getScopeInformation(fnPath) { - const thisPaths = []; - const argumentsPaths = []; - const newTargetPaths = []; - const superProps = []; - const superCalls = []; - fnPath.traverse({ - ClassProperty(child) { - child.skip(); - }, - - Function(child) { - if (child.isArrowFunctionExpression()) return; - child.skip(); - }, - - ThisExpression(child) { - thisPaths.push(child); - }, - - JSXIdentifier(child) { - if (child.node.name !== "this") return; - - if (!child.parentPath.isJSXMemberExpression({ - object: child.node - }) && !child.parentPath.isJSXOpeningElement({ - name: child.node - })) { - return; - } - - thisPaths.push(child); - }, - - CallExpression(child) { - if (child.get("callee").isSuper()) superCalls.push(child); - }, - - MemberExpression(child) { - if (child.get("object").isSuper()) superProps.push(child); - }, - - ReferencedIdentifier(child) { - if (child.node.name !== "arguments") return; - let curr = child.scope; - - do { - if (curr.hasOwnBinding("arguments")) { - curr.rename("arguments"); - return; - } - - if (curr.path.isFunction() && !curr.path.isArrowFunctionExpression()) { - break; - } - } while (curr = curr.parent); - - argumentsPaths.push(child); - }, - - MetaProperty(child) { - if (!child.get("meta").isIdentifier({ - name: "new" - })) return; - if (!child.get("property").isIdentifier({ - name: "target" - })) return; - newTargetPaths.push(child); - } - - }); - return { - thisPaths, - argumentsPaths, - newTargetPaths, - superProps, - superCalls - }; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js deleted file mode 100644 index 0a1dd80bc0b02d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/index.js +++ /dev/null @@ -1,253 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = exports.SHOULD_SKIP = exports.SHOULD_STOP = exports.REMOVED = void 0; - -var virtualTypes = require("./lib/virtual-types"); - -var _debug = require("debug"); - -var _index = require("../index"); - -var _scope = require("../scope"); - -var _t = require("@babel/types"); - -var t = _t; - -var _cache = require("../cache"); - -var _generator = require("@babel/generator"); - -var NodePath_ancestry = require("./ancestry"); - -var NodePath_inference = require("./inference"); - -var NodePath_replacement = require("./replacement"); - -var NodePath_evaluation = require("./evaluation"); - -var NodePath_conversion = require("./conversion"); - -var NodePath_introspection = require("./introspection"); - -var NodePath_context = require("./context"); - -var NodePath_removal = require("./removal"); - -var NodePath_modification = require("./modification"); - -var NodePath_family = require("./family"); - -var NodePath_comments = require("./comments"); - -const { - validate -} = _t; - -const debug = _debug("babel"); - -const REMOVED = 1 << 0; -exports.REMOVED = REMOVED; -const SHOULD_STOP = 1 << 1; -exports.SHOULD_STOP = SHOULD_STOP; -const SHOULD_SKIP = 1 << 2; -exports.SHOULD_SKIP = SHOULD_SKIP; - -class NodePath { - constructor(hub, parent) { - this.contexts = []; - this.state = null; - this.opts = null; - this._traverseFlags = 0; - this.skipKeys = null; - this.parentPath = null; - this.container = null; - this.listKey = null; - this.key = null; - this.node = null; - this.type = null; - this.parent = parent; - this.hub = hub; - this.data = null; - this.context = null; - this.scope = null; - } - - static get({ - hub, - parentPath, - parent, - container, - listKey, - key - }) { - if (!hub && parentPath) { - hub = parentPath.hub; - } - - if (!parent) { - throw new Error("To get a node path the parent needs to exist"); - } - - const targetNode = container[key]; - - let paths = _cache.path.get(parent); - - if (!paths) { - paths = new Map(); - - _cache.path.set(parent, paths); - } - - let path = paths.get(targetNode); - - if (!path) { - path = new NodePath(hub, parent); - if (targetNode) paths.set(targetNode, path); - } - - path.setup(parentPath, container, listKey, key); - return path; - } - - getScope(scope) { - return this.isScope() ? new _scope.default(this) : scope; - } - - setData(key, val) { - if (this.data == null) { - this.data = Object.create(null); - } - - return this.data[key] = val; - } - - getData(key, def) { - if (this.data == null) { - this.data = Object.create(null); - } - - let val = this.data[key]; - if (val === undefined && def !== undefined) val = this.data[key] = def; - return val; - } - - buildCodeFrameError(msg, Error = SyntaxError) { - return this.hub.buildError(this.node, msg, Error); - } - - traverse(visitor, state) { - (0, _index.default)(this.node, visitor, this.scope, state, this); - } - - set(key, node) { - validate(this.node, key, node); - this.node[key] = node; - } - - getPathLocation() { - const parts = []; - let path = this; - - do { - let key = path.key; - if (path.inList) key = `${path.listKey}[${key}]`; - parts.unshift(key); - } while (path = path.parentPath); - - return parts.join("."); - } - - debug(message) { - if (!debug.enabled) return; - debug(`${this.getPathLocation()} ${this.type}: ${message}`); - } - - toString() { - return (0, _generator.default)(this.node).code; - } - - get inList() { - return !!this.listKey; - } - - set inList(inList) { - if (!inList) { - this.listKey = null; - } - } - - get parentKey() { - return this.listKey || this.key; - } - - get shouldSkip() { - return !!(this._traverseFlags & SHOULD_SKIP); - } - - set shouldSkip(v) { - if (v) { - this._traverseFlags |= SHOULD_SKIP; - } else { - this._traverseFlags &= ~SHOULD_SKIP; - } - } - - get shouldStop() { - return !!(this._traverseFlags & SHOULD_STOP); - } - - set shouldStop(v) { - if (v) { - this._traverseFlags |= SHOULD_STOP; - } else { - this._traverseFlags &= ~SHOULD_STOP; - } - } - - get removed() { - return !!(this._traverseFlags & REMOVED); - } - - set removed(v) { - if (v) { - this._traverseFlags |= REMOVED; - } else { - this._traverseFlags &= ~REMOVED; - } - } - -} - -Object.assign(NodePath.prototype, NodePath_ancestry, NodePath_inference, NodePath_replacement, NodePath_evaluation, NodePath_conversion, NodePath_introspection, NodePath_context, NodePath_removal, NodePath_modification, NodePath_family, NodePath_comments); - -for (const type of t.TYPES) { - const typeKey = `is${type}`; - const fn = t[typeKey]; - - NodePath.prototype[typeKey] = function (opts) { - return fn(this.node, opts); - }; - - NodePath.prototype[`assert${type}`] = function (opts) { - if (!fn(this.node, opts)) { - throw new TypeError(`Expected node path of type ${type}`); - } - }; -} - -for (const type of Object.keys(virtualTypes)) { - if (type[0] === "_") continue; - if (t.TYPES.indexOf(type) < 0) t.TYPES.push(type); - const virtualType = virtualTypes[type]; - - NodePath.prototype[`is${type}`] = function (opts) { - return virtualType.checkPath(this, opts); - }; -} - -var _default = NodePath; -exports.default = _default; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js deleted file mode 100644 index 9f2cec93c2f633..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/path/inference/index.js +++ /dev/null @@ -1,156 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.getTypeAnnotation = getTypeAnnotation; -exports._getTypeAnnotation = _getTypeAnnotation; -exports.isBaseType = isBaseType; -exports.couldBeBaseType = couldBeBaseType; -exports.baseTypeStrictlyMatches = baseTypeStrictlyMatches; -exports.isGenericType = isGenericType; - -var inferers = require("./inferers"); - -var _t = require("@babel/types"); - -const { - anyTypeAnnotation, - isAnyTypeAnnotation, - isBooleanTypeAnnotation, - isEmptyTypeAnnotation, - isFlowBaseAnnotation, - isGenericTypeAnnotation, - isIdentifier, - isMixedTypeAnnotation, - isNumberTypeAnnotation, - isStringTypeAnnotation, - isTypeAnnotation, - isUnionTypeAnnotation, - isVoidTypeAnnotation, - stringTypeAnnotation, - voidTypeAnnotation -} = _t; - -function getTypeAnnotation() { - if (this.typeAnnotation) return this.typeAnnotation; - let type = this._getTypeAnnotation() || anyTypeAnnotation(); - if (isTypeAnnotation(type)) type = type.typeAnnotation; - return this.typeAnnotation = type; -} - -const typeAnnotationInferringNodes = new WeakSet(); - -function _getTypeAnnotation() { - const node = this.node; - - if (!node) { - if (this.key === "init" && this.parentPath.isVariableDeclarator()) { - const declar = this.parentPath.parentPath; - const declarParent = declar.parentPath; - - if (declar.key === "left" && declarParent.isForInStatement()) { - return stringTypeAnnotation(); - } - - if (declar.key === "left" && declarParent.isForOfStatement()) { - return anyTypeAnnotation(); - } - - return voidTypeAnnotation(); - } else { - return; - } - } - - if (node.typeAnnotation) { - return node.typeAnnotation; - } - - if (typeAnnotationInferringNodes.has(node)) { - return; - } - - typeAnnotationInferringNodes.add(node); - - try { - var _inferer; - - let inferer = inferers[node.type]; - - if (inferer) { - return inferer.call(this, node); - } - - inferer = inferers[this.parentPath.type]; - - if ((_inferer = inferer) != null && _inferer.validParent) { - return this.parentPath.getTypeAnnotation(); - } - } finally { - typeAnnotationInferringNodes.delete(node); - } -} - -function isBaseType(baseName, soft) { - return _isBaseType(baseName, this.getTypeAnnotation(), soft); -} - -function _isBaseType(baseName, type, soft) { - if (baseName === "string") { - return isStringTypeAnnotation(type); - } else if (baseName === "number") { - return isNumberTypeAnnotation(type); - } else if (baseName === "boolean") { - return isBooleanTypeAnnotation(type); - } else if (baseName === "any") { - return isAnyTypeAnnotation(type); - } else if (baseName === "mixed") { - return isMixedTypeAnnotation(type); - } else if (baseName === "empty") { - return isEmptyTypeAnnotation(type); - } else if (baseName === "void") { - return isVoidTypeAnnotation(type); - } else { - if (soft) { - return false; - } else { - throw new Error(`Unknown base type ${baseName}`); - } - } -} - -function couldBeBaseType(name) { - const type = this.getTypeAnnotation(); - if (isAnyTypeAnnotation(type)) return true; - - if (isUnionTypeAnnotation(type)) { - for (const type2 of type.types) { - if (isAnyTypeAnnotation(type2) || _isBaseType(name, type2, true)) { - return true; - } - } - - return false; - } else { - return _isBaseType(name, type, true); - } -} - -function baseTypeStrictlyMatches(rightArg) { - const left = this.getTypeAnnotation(); - const right = rightArg.getTypeAnnotation(); - - if (!isAnyTypeAnnotation(left) && isFlowBaseAnnotation(left)) { - return right.type === left.type; - } - - return false; -} - -function isGenericType(genericName) { - const type = this.getTypeAnnotation(); - return isGenericTypeAnnotation(type) && isIdentifier(type.id, { - name: genericName - }); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js b/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js deleted file mode 100644 index 8ab588a31d3cce..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js +++ /dev/null @@ -1,1015 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = void 0; - -var _renamer = require("./lib/renamer"); - -var _index = require("../index"); - -var _binding = require("./binding"); - -var _globals = require("globals"); - -var _t = require("@babel/types"); - -var _cache = require("../cache"); - -const { - NOT_LOCAL_BINDING, - callExpression, - cloneNode, - getBindingIdentifiers, - identifier, - isArrayExpression, - isBinary, - isClass, - isClassBody, - isClassDeclaration, - isExportAllDeclaration, - isExportDefaultDeclaration, - isExportNamedDeclaration, - isFunctionDeclaration, - isIdentifier, - isImportDeclaration, - isLiteral, - isMethod, - isModuleDeclaration, - isModuleSpecifier, - isObjectExpression, - isProperty, - isPureish, - isSuper, - isTaggedTemplateExpression, - isTemplateLiteral, - isThisExpression, - isUnaryExpression, - isVariableDeclaration, - matchesPattern, - memberExpression, - numericLiteral, - toIdentifier, - unaryExpression, - variableDeclaration, - variableDeclarator -} = _t; - -function gatherNodeParts(node, parts) { - switch (node == null ? void 0 : node.type) { - default: - if (isModuleDeclaration(node)) { - if ((isExportAllDeclaration(node) || isExportNamedDeclaration(node) || isImportDeclaration(node)) && node.source) { - gatherNodeParts(node.source, parts); - } else if ((isExportNamedDeclaration(node) || isImportDeclaration(node)) && node.specifiers && node.specifiers.length) { - for (const e of node.specifiers) gatherNodeParts(e, parts); - } else if ((isExportDefaultDeclaration(node) || isExportNamedDeclaration(node)) && node.declaration) { - gatherNodeParts(node.declaration, parts); - } - } else if (isModuleSpecifier(node)) { - gatherNodeParts(node.local, parts); - } else if (isLiteral(node)) { - parts.push(node.value); - } - - break; - - case "MemberExpression": - case "OptionalMemberExpression": - case "JSXMemberExpression": - gatherNodeParts(node.object, parts); - gatherNodeParts(node.property, parts); - break; - - case "Identifier": - case "JSXIdentifier": - parts.push(node.name); - break; - - case "CallExpression": - case "OptionalCallExpression": - case "NewExpression": - gatherNodeParts(node.callee, parts); - break; - - case "ObjectExpression": - case "ObjectPattern": - for (const e of node.properties) { - gatherNodeParts(e, parts); - } - - break; - - case "SpreadElement": - case "RestElement": - gatherNodeParts(node.argument, parts); - break; - - case "ObjectProperty": - case "ObjectMethod": - case "ClassProperty": - case "ClassMethod": - case "ClassPrivateProperty": - case "ClassPrivateMethod": - gatherNodeParts(node.key, parts); - break; - - case "ThisExpression": - parts.push("this"); - break; - - case "Super": - parts.push("super"); - break; - - case "Import": - parts.push("import"); - break; - - case "DoExpression": - parts.push("do"); - break; - - case "YieldExpression": - parts.push("yield"); - gatherNodeParts(node.argument, parts); - break; - - case "AwaitExpression": - parts.push("await"); - gatherNodeParts(node.argument, parts); - break; - - case "AssignmentExpression": - gatherNodeParts(node.left, parts); - break; - - case "VariableDeclarator": - gatherNodeParts(node.id, parts); - break; - - case "FunctionExpression": - case "FunctionDeclaration": - case "ClassExpression": - case "ClassDeclaration": - gatherNodeParts(node.id, parts); - break; - - case "PrivateName": - gatherNodeParts(node.id, parts); - break; - - case "ParenthesizedExpression": - gatherNodeParts(node.expression, parts); - break; - - case "UnaryExpression": - case "UpdateExpression": - gatherNodeParts(node.argument, parts); - break; - - case "MetaProperty": - gatherNodeParts(node.meta, parts); - gatherNodeParts(node.property, parts); - break; - - case "JSXElement": - gatherNodeParts(node.openingElement, parts); - break; - - case "JSXOpeningElement": - parts.push(node.name); - break; - - case "JSXFragment": - gatherNodeParts(node.openingFragment, parts); - break; - - case "JSXOpeningFragment": - parts.push("Fragment"); - break; - - case "JSXNamespacedName": - gatherNodeParts(node.namespace, parts); - gatherNodeParts(node.name, parts); - break; - } -} - -const collectorVisitor = { - ForStatement(path) { - const declar = path.get("init"); - - if (declar.isVar()) { - const { - scope - } = path; - const parentScope = scope.getFunctionParent() || scope.getProgramParent(); - parentScope.registerBinding("var", declar); - } - }, - - Declaration(path) { - if (path.isBlockScoped()) return; - if (path.isImportDeclaration()) return; - if (path.isExportDeclaration()) return; - const parent = path.scope.getFunctionParent() || path.scope.getProgramParent(); - parent.registerDeclaration(path); - }, - - ImportDeclaration(path) { - const parent = path.scope.getBlockParent(); - parent.registerDeclaration(path); - }, - - ReferencedIdentifier(path, state) { - state.references.push(path); - }, - - ForXStatement(path, state) { - const left = path.get("left"); - - if (left.isPattern() || left.isIdentifier()) { - state.constantViolations.push(path); - } else if (left.isVar()) { - const { - scope - } = path; - const parentScope = scope.getFunctionParent() || scope.getProgramParent(); - parentScope.registerBinding("var", left); - } - }, - - ExportDeclaration: { - exit(path) { - const { - node, - scope - } = path; - if (isExportAllDeclaration(node)) return; - const declar = node.declaration; - - if (isClassDeclaration(declar) || isFunctionDeclaration(declar)) { - const id = declar.id; - if (!id) return; - const binding = scope.getBinding(id.name); - binding == null ? void 0 : binding.reference(path); - } else if (isVariableDeclaration(declar)) { - for (const decl of declar.declarations) { - for (const name of Object.keys(getBindingIdentifiers(decl))) { - const binding = scope.getBinding(name); - binding == null ? void 0 : binding.reference(path); - } - } - } - } - - }, - - LabeledStatement(path) { - path.scope.getBlockParent().registerDeclaration(path); - }, - - AssignmentExpression(path, state) { - state.assignments.push(path); - }, - - UpdateExpression(path, state) { - state.constantViolations.push(path); - }, - - UnaryExpression(path, state) { - if (path.node.operator === "delete") { - state.constantViolations.push(path); - } - }, - - BlockScoped(path) { - let scope = path.scope; - if (scope.path === path) scope = scope.parent; - const parent = scope.getBlockParent(); - parent.registerDeclaration(path); - - if (path.isClassDeclaration() && path.node.id) { - const id = path.node.id; - const name = id.name; - path.scope.bindings[name] = path.scope.parent.getBinding(name); - } - }, - - CatchClause(path) { - path.scope.registerBinding("let", path); - }, - - Function(path) { - if (path.isFunctionExpression() && path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { - path.scope.registerBinding("local", path.get("id"), path); - } - - const params = path.get("params"); - - for (const param of params) { - path.scope.registerBinding("param", param); - } - }, - - ClassExpression(path) { - if (path.has("id") && !path.get("id").node[NOT_LOCAL_BINDING]) { - path.scope.registerBinding("local", path); - } - } - -}; -let uid = 0; - -class Scope { - constructor(path) { - this.uid = void 0; - this.path = void 0; - this.block = void 0; - this.labels = void 0; - this.inited = void 0; - this.bindings = void 0; - this.references = void 0; - this.globals = void 0; - this.uids = void 0; - this.data = void 0; - this.crawling = void 0; - const { - node - } = path; - - const cached = _cache.scope.get(node); - - if ((cached == null ? void 0 : cached.path) === path) { - return cached; - } - - _cache.scope.set(node, this); - - this.uid = uid++; - this.block = node; - this.path = path; - this.labels = new Map(); - this.inited = false; - } - - get parent() { - var _parent; - - let parent, - path = this.path; - - do { - const isKey = path.key === "key"; - path = path.parentPath; - if (isKey && path.isMethod()) path = path.parentPath; - if (path && path.isScope()) parent = path; - } while (path && !parent); - - return (_parent = parent) == null ? void 0 : _parent.scope; - } - - get parentBlock() { - return this.path.parent; - } - - get hub() { - return this.path.hub; - } - - traverse(node, opts, state) { - (0, _index.default)(node, opts, this, state, this.path); - } - - generateDeclaredUidIdentifier(name) { - const id = this.generateUidIdentifier(name); - this.push({ - id - }); - return cloneNode(id); - } - - generateUidIdentifier(name) { - return identifier(this.generateUid(name)); - } - - generateUid(name = "temp") { - name = toIdentifier(name).replace(/^_+/, "").replace(/[0-9]+$/g, ""); - let uid; - let i = 1; - - do { - uid = this._generateUid(name, i); - i++; - } while (this.hasLabel(uid) || this.hasBinding(uid) || this.hasGlobal(uid) || this.hasReference(uid)); - - const program = this.getProgramParent(); - program.references[uid] = true; - program.uids[uid] = true; - return uid; - } - - _generateUid(name, i) { - let id = name; - if (i > 1) id += i; - return `_${id}`; - } - - generateUidBasedOnNode(node, defaultName) { - const parts = []; - gatherNodeParts(node, parts); - let id = parts.join("$"); - id = id.replace(/^_/, "") || defaultName || "ref"; - return this.generateUid(id.slice(0, 20)); - } - - generateUidIdentifierBasedOnNode(node, defaultName) { - return identifier(this.generateUidBasedOnNode(node, defaultName)); - } - - isStatic(node) { - if (isThisExpression(node) || isSuper(node)) { - return true; - } - - if (isIdentifier(node)) { - const binding = this.getBinding(node.name); - - if (binding) { - return binding.constant; - } else { - return this.hasBinding(node.name); - } - } - - return false; - } - - maybeGenerateMemoised(node, dontPush) { - if (this.isStatic(node)) { - return null; - } else { - const id = this.generateUidIdentifierBasedOnNode(node); - - if (!dontPush) { - this.push({ - id - }); - return cloneNode(id); - } - - return id; - } - } - - checkBlockScopedCollisions(local, kind, name, id) { - if (kind === "param") return; - if (local.kind === "local") return; - const duplicate = kind === "let" || local.kind === "let" || local.kind === "const" || local.kind === "module" || local.kind === "param" && (kind === "let" || kind === "const"); - - if (duplicate) { - throw this.hub.buildError(id, `Duplicate declaration "${name}"`, TypeError); - } - } - - rename(oldName, newName, block) { - const binding = this.getBinding(oldName); - - if (binding) { - newName = newName || this.generateUidIdentifier(oldName).name; - return new _renamer.default(binding, oldName, newName).rename(block); - } - } - - _renameFromMap(map, oldName, newName, value) { - if (map[oldName]) { - map[newName] = value; - map[oldName] = null; - } - } - - dump() { - const sep = "-".repeat(60); - console.log(sep); - let scope = this; - - do { - console.log("#", scope.block.type); - - for (const name of Object.keys(scope.bindings)) { - const binding = scope.bindings[name]; - console.log(" -", name, { - constant: binding.constant, - references: binding.references, - violations: binding.constantViolations.length, - kind: binding.kind - }); - } - } while (scope = scope.parent); - - console.log(sep); - } - - toArray(node, i, arrayLikeIsIterable) { - if (isIdentifier(node)) { - const binding = this.getBinding(node.name); - - if (binding != null && binding.constant && binding.path.isGenericType("Array")) { - return node; - } - } - - if (isArrayExpression(node)) { - return node; - } - - if (isIdentifier(node, { - name: "arguments" - })) { - return callExpression(memberExpression(memberExpression(memberExpression(identifier("Array"), identifier("prototype")), identifier("slice")), identifier("call")), [node]); - } - - let helperName; - const args = [node]; - - if (i === true) { - helperName = "toConsumableArray"; - } else if (i) { - args.push(numericLiteral(i)); - helperName = "slicedToArray"; - } else { - helperName = "toArray"; - } - - if (arrayLikeIsIterable) { - args.unshift(this.hub.addHelper(helperName)); - helperName = "maybeArrayLike"; - } - - return callExpression(this.hub.addHelper(helperName), args); - } - - hasLabel(name) { - return !!this.getLabel(name); - } - - getLabel(name) { - return this.labels.get(name); - } - - registerLabel(path) { - this.labels.set(path.node.label.name, path); - } - - registerDeclaration(path) { - if (path.isLabeledStatement()) { - this.registerLabel(path); - } else if (path.isFunctionDeclaration()) { - this.registerBinding("hoisted", path.get("id"), path); - } else if (path.isVariableDeclaration()) { - const declarations = path.get("declarations"); - - for (const declar of declarations) { - this.registerBinding(path.node.kind, declar); - } - } else if (path.isClassDeclaration()) { - this.registerBinding("let", path); - } else if (path.isImportDeclaration()) { - const specifiers = path.get("specifiers"); - - for (const specifier of specifiers) { - this.registerBinding("module", specifier); - } - } else if (path.isExportDeclaration()) { - const declar = path.get("declaration"); - - if (declar.isClassDeclaration() || declar.isFunctionDeclaration() || declar.isVariableDeclaration()) { - this.registerDeclaration(declar); - } - } else { - this.registerBinding("unknown", path); - } - } - - buildUndefinedNode() { - return unaryExpression("void", numericLiteral(0), true); - } - - registerConstantViolation(path) { - const ids = path.getBindingIdentifiers(); - - for (const name of Object.keys(ids)) { - const binding = this.getBinding(name); - if (binding) binding.reassign(path); - } - } - - registerBinding(kind, path, bindingPath = path) { - if (!kind) throw new ReferenceError("no `kind`"); - - if (path.isVariableDeclaration()) { - const declarators = path.get("declarations"); - - for (const declar of declarators) { - this.registerBinding(kind, declar); - } - - return; - } - - const parent = this.getProgramParent(); - const ids = path.getOuterBindingIdentifiers(true); - - for (const name of Object.keys(ids)) { - parent.references[name] = true; - - for (const id of ids[name]) { - const local = this.getOwnBinding(name); - - if (local) { - if (local.identifier === id) continue; - this.checkBlockScopedCollisions(local, kind, name, id); - } - - if (local) { - this.registerConstantViolation(bindingPath); - } else { - this.bindings[name] = new _binding.default({ - identifier: id, - scope: this, - path: bindingPath, - kind: kind - }); - } - } - } - } - - addGlobal(node) { - this.globals[node.name] = node; - } - - hasUid(name) { - let scope = this; - - do { - if (scope.uids[name]) return true; - } while (scope = scope.parent); - - return false; - } - - hasGlobal(name) { - let scope = this; - - do { - if (scope.globals[name]) return true; - } while (scope = scope.parent); - - return false; - } - - hasReference(name) { - return !!this.getProgramParent().references[name]; - } - - isPure(node, constantsOnly) { - if (isIdentifier(node)) { - const binding = this.getBinding(node.name); - if (!binding) return false; - if (constantsOnly) return binding.constant; - return true; - } else if (isClass(node)) { - if (node.superClass && !this.isPure(node.superClass, constantsOnly)) { - return false; - } - - return this.isPure(node.body, constantsOnly); - } else if (isClassBody(node)) { - for (const method of node.body) { - if (!this.isPure(method, constantsOnly)) return false; - } - - return true; - } else if (isBinary(node)) { - return this.isPure(node.left, constantsOnly) && this.isPure(node.right, constantsOnly); - } else if (isArrayExpression(node)) { - for (const elem of node.elements) { - if (!this.isPure(elem, constantsOnly)) return false; - } - - return true; - } else if (isObjectExpression(node)) { - for (const prop of node.properties) { - if (!this.isPure(prop, constantsOnly)) return false; - } - - return true; - } else if (isMethod(node)) { - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - if (node.kind === "get" || node.kind === "set") return false; - return true; - } else if (isProperty(node)) { - if (node.computed && !this.isPure(node.key, constantsOnly)) return false; - return this.isPure(node.value, constantsOnly); - } else if (isUnaryExpression(node)) { - return this.isPure(node.argument, constantsOnly); - } else if (isTaggedTemplateExpression(node)) { - return matchesPattern(node.tag, "String.raw") && !this.hasBinding("String", true) && this.isPure(node.quasi, constantsOnly); - } else if (isTemplateLiteral(node)) { - for (const expression of node.expressions) { - if (!this.isPure(expression, constantsOnly)) return false; - } - - return true; - } else { - return isPureish(node); - } - } - - setData(key, val) { - return this.data[key] = val; - } - - getData(key) { - let scope = this; - - do { - const data = scope.data[key]; - if (data != null) return data; - } while (scope = scope.parent); - } - - removeData(key) { - let scope = this; - - do { - const data = scope.data[key]; - if (data != null) scope.data[key] = null; - } while (scope = scope.parent); - } - - init() { - if (!this.inited) { - this.inited = true; - this.crawl(); - } - } - - crawl() { - const path = this.path; - this.references = Object.create(null); - this.bindings = Object.create(null); - this.globals = Object.create(null); - this.uids = Object.create(null); - this.data = Object.create(null); - const programParent = this.getProgramParent(); - if (programParent.crawling) return; - const state = { - references: [], - constantViolations: [], - assignments: [] - }; - this.crawling = true; - - if (path.type !== "Program" && collectorVisitor._exploded) { - for (const visit of collectorVisitor.enter) { - visit(path, state); - } - - const typeVisitors = collectorVisitor[path.type]; - - if (typeVisitors) { - for (const visit of typeVisitors.enter) { - visit(path, state); - } - } - } - - path.traverse(collectorVisitor, state); - this.crawling = false; - - for (const path of state.assignments) { - const ids = path.getBindingIdentifiers(); - - for (const name of Object.keys(ids)) { - if (path.scope.getBinding(name)) continue; - programParent.addGlobal(ids[name]); - } - - path.scope.registerConstantViolation(path); - } - - for (const ref of state.references) { - const binding = ref.scope.getBinding(ref.node.name); - - if (binding) { - binding.reference(ref); - } else { - programParent.addGlobal(ref.node); - } - } - - for (const path of state.constantViolations) { - path.scope.registerConstantViolation(path); - } - } - - push(opts) { - let path = this.path; - - if (!path.isBlockStatement() && !path.isProgram()) { - path = this.getBlockParent().path; - } - - if (path.isSwitchStatement()) { - path = (this.getFunctionParent() || this.getProgramParent()).path; - } - - if (path.isLoop() || path.isCatchClause() || path.isFunction()) { - path.ensureBlock(); - path = path.get("body"); - } - - const unique = opts.unique; - const kind = opts.kind || "var"; - const blockHoist = opts._blockHoist == null ? 2 : opts._blockHoist; - const dataKey = `declaration:${kind}:${blockHoist}`; - let declarPath = !unique && path.getData(dataKey); - - if (!declarPath) { - const declar = variableDeclaration(kind, []); - declar._blockHoist = blockHoist; - [declarPath] = path.unshiftContainer("body", [declar]); - if (!unique) path.setData(dataKey, declarPath); - } - - const declarator = variableDeclarator(opts.id, opts.init); - declarPath.node.declarations.push(declarator); - this.registerBinding(kind, declarPath.get("declarations").pop()); - } - - getProgramParent() { - let scope = this; - - do { - if (scope.path.isProgram()) { - return scope; - } - } while (scope = scope.parent); - - throw new Error("Couldn't find a Program"); - } - - getFunctionParent() { - let scope = this; - - do { - if (scope.path.isFunctionParent()) { - return scope; - } - } while (scope = scope.parent); - - return null; - } - - getBlockParent() { - let scope = this; - - do { - if (scope.path.isBlockParent()) { - return scope; - } - } while (scope = scope.parent); - - throw new Error("We couldn't find a BlockStatement, For, Switch, Function, Loop or Program..."); - } - - getAllBindings() { - const ids = Object.create(null); - let scope = this; - - do { - for (const key of Object.keys(scope.bindings)) { - if (key in ids === false) { - ids[key] = scope.bindings[key]; - } - } - - scope = scope.parent; - } while (scope); - - return ids; - } - - getAllBindingsOfKind(...kinds) { - const ids = Object.create(null); - - for (const kind of kinds) { - let scope = this; - - do { - for (const name of Object.keys(scope.bindings)) { - const binding = scope.bindings[name]; - if (binding.kind === kind) ids[name] = binding; - } - - scope = scope.parent; - } while (scope); - } - - return ids; - } - - bindingIdentifierEquals(name, node) { - return this.getBindingIdentifier(name) === node; - } - - getBinding(name) { - let scope = this; - let previousPath; - - do { - const binding = scope.getOwnBinding(name); - - if (binding) { - var _previousPath; - - if ((_previousPath = previousPath) != null && _previousPath.isPattern() && binding.kind !== "param") {} else { - return binding; - } - } - - previousPath = scope.path; - } while (scope = scope.parent); - } - - getOwnBinding(name) { - return this.bindings[name]; - } - - getBindingIdentifier(name) { - var _this$getBinding; - - return (_this$getBinding = this.getBinding(name)) == null ? void 0 : _this$getBinding.identifier; - } - - getOwnBindingIdentifier(name) { - const binding = this.bindings[name]; - return binding == null ? void 0 : binding.identifier; - } - - hasOwnBinding(name) { - return !!this.getOwnBinding(name); - } - - hasBinding(name, noGlobals) { - if (!name) return false; - if (this.hasOwnBinding(name)) return true; - if (this.parentHasBinding(name, noGlobals)) return true; - if (this.hasUid(name)) return true; - if (!noGlobals && Scope.globals.includes(name)) return true; - if (!noGlobals && Scope.contextVariables.includes(name)) return true; - return false; - } - - parentHasBinding(name, noGlobals) { - var _this$parent; - - return (_this$parent = this.parent) == null ? void 0 : _this$parent.hasBinding(name, noGlobals); - } - - moveBindingTo(name, scope) { - const info = this.getBinding(name); - - if (info) { - info.scope.removeOwnBinding(name); - info.scope = scope; - scope.bindings[name] = info; - } - } - - removeOwnBinding(name) { - delete this.bindings[name]; - } - - removeBinding(name) { - var _this$getBinding2; - - (_this$getBinding2 = this.getBinding(name)) == null ? void 0 : _this$getBinding2.scope.removeOwnBinding(name); - let scope = this; - - do { - if (scope.uids[name]) { - scope.uids[name] = false; - } - } while (scope = scope.parent); - } - -} - -exports.default = Scope; -Scope.globals = Object.keys(_globals.builtin); -Scope.contextVariables = ["arguments", "undefined", "Infinity", "NaN"]; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json b/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json deleted file mode 100644 index 4b43e12698dddf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/traverse/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "@babel/traverse", - "version": "7.15.4", - "description": "The Babel Traverse module maintains the overall tree state, and is responsible for replacing, removing, and adding nodes", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-traverse", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20traverse%22+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-traverse" - }, - "main": "./lib/index.js", - "dependencies": { - "@babel/code-frame": "^7.14.5", - "@babel/generator": "^7.15.4", - "@babel/helper-function-name": "^7.15.4", - "@babel/helper-hoist-variables": "^7.15.4", - "@babel/helper-split-export-declaration": "^7.15.4", - "@babel/parser": "^7.15.4", - "@babel/types": "^7.15.4", - "debug": "^4.1.0", - "globals": "^11.1.0" - }, - "devDependencies": { - "@babel/helper-plugin-test-runner": "7.14.5" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/README.md b/tools/node_modules/@babel/core/node_modules/@babel/types/README.md deleted file mode 100644 index 0071bd7a9bc537..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/README.md +++ /dev/null @@ -1,19 +0,0 @@ -# @babel/types - -> Babel Types is a Lodash-esque utility library for AST nodes - -See our website [@babel/types](https://babeljs.io/docs/en/babel-types) for more information or the [issues](https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen) associated with this package. - -## Install - -Using npm: - -```sh -npm install --save-dev @babel/types -``` - -or using yarn: - -```sh -yarn add @babel/types --dev -``` diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js deleted file mode 100644 index b7309f7a2410b0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/asserts/generated/index.js +++ /dev/null @@ -1,1492 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.assertArrayExpression = assertArrayExpression; -exports.assertAssignmentExpression = assertAssignmentExpression; -exports.assertBinaryExpression = assertBinaryExpression; -exports.assertInterpreterDirective = assertInterpreterDirective; -exports.assertDirective = assertDirective; -exports.assertDirectiveLiteral = assertDirectiveLiteral; -exports.assertBlockStatement = assertBlockStatement; -exports.assertBreakStatement = assertBreakStatement; -exports.assertCallExpression = assertCallExpression; -exports.assertCatchClause = assertCatchClause; -exports.assertConditionalExpression = assertConditionalExpression; -exports.assertContinueStatement = assertContinueStatement; -exports.assertDebuggerStatement = assertDebuggerStatement; -exports.assertDoWhileStatement = assertDoWhileStatement; -exports.assertEmptyStatement = assertEmptyStatement; -exports.assertExpressionStatement = assertExpressionStatement; -exports.assertFile = assertFile; -exports.assertForInStatement = assertForInStatement; -exports.assertForStatement = assertForStatement; -exports.assertFunctionDeclaration = assertFunctionDeclaration; -exports.assertFunctionExpression = assertFunctionExpression; -exports.assertIdentifier = assertIdentifier; -exports.assertIfStatement = assertIfStatement; -exports.assertLabeledStatement = assertLabeledStatement; -exports.assertStringLiteral = assertStringLiteral; -exports.assertNumericLiteral = assertNumericLiteral; -exports.assertNullLiteral = assertNullLiteral; -exports.assertBooleanLiteral = assertBooleanLiteral; -exports.assertRegExpLiteral = assertRegExpLiteral; -exports.assertLogicalExpression = assertLogicalExpression; -exports.assertMemberExpression = assertMemberExpression; -exports.assertNewExpression = assertNewExpression; -exports.assertProgram = assertProgram; -exports.assertObjectExpression = assertObjectExpression; -exports.assertObjectMethod = assertObjectMethod; -exports.assertObjectProperty = assertObjectProperty; -exports.assertRestElement = assertRestElement; -exports.assertReturnStatement = assertReturnStatement; -exports.assertSequenceExpression = assertSequenceExpression; -exports.assertParenthesizedExpression = assertParenthesizedExpression; -exports.assertSwitchCase = assertSwitchCase; -exports.assertSwitchStatement = assertSwitchStatement; -exports.assertThisExpression = assertThisExpression; -exports.assertThrowStatement = assertThrowStatement; -exports.assertTryStatement = assertTryStatement; -exports.assertUnaryExpression = assertUnaryExpression; -exports.assertUpdateExpression = assertUpdateExpression; -exports.assertVariableDeclaration = assertVariableDeclaration; -exports.assertVariableDeclarator = assertVariableDeclarator; -exports.assertWhileStatement = assertWhileStatement; -exports.assertWithStatement = assertWithStatement; -exports.assertAssignmentPattern = assertAssignmentPattern; -exports.assertArrayPattern = assertArrayPattern; -exports.assertArrowFunctionExpression = assertArrowFunctionExpression; -exports.assertClassBody = assertClassBody; -exports.assertClassExpression = assertClassExpression; -exports.assertClassDeclaration = assertClassDeclaration; -exports.assertExportAllDeclaration = assertExportAllDeclaration; -exports.assertExportDefaultDeclaration = assertExportDefaultDeclaration; -exports.assertExportNamedDeclaration = assertExportNamedDeclaration; -exports.assertExportSpecifier = assertExportSpecifier; -exports.assertForOfStatement = assertForOfStatement; -exports.assertImportDeclaration = assertImportDeclaration; -exports.assertImportDefaultSpecifier = assertImportDefaultSpecifier; -exports.assertImportNamespaceSpecifier = assertImportNamespaceSpecifier; -exports.assertImportSpecifier = assertImportSpecifier; -exports.assertMetaProperty = assertMetaProperty; -exports.assertClassMethod = assertClassMethod; -exports.assertObjectPattern = assertObjectPattern; -exports.assertSpreadElement = assertSpreadElement; -exports.assertSuper = assertSuper; -exports.assertTaggedTemplateExpression = assertTaggedTemplateExpression; -exports.assertTemplateElement = assertTemplateElement; -exports.assertTemplateLiteral = assertTemplateLiteral; -exports.assertYieldExpression = assertYieldExpression; -exports.assertAwaitExpression = assertAwaitExpression; -exports.assertImport = assertImport; -exports.assertBigIntLiteral = assertBigIntLiteral; -exports.assertExportNamespaceSpecifier = assertExportNamespaceSpecifier; -exports.assertOptionalMemberExpression = assertOptionalMemberExpression; -exports.assertOptionalCallExpression = assertOptionalCallExpression; -exports.assertClassProperty = assertClassProperty; -exports.assertClassPrivateProperty = assertClassPrivateProperty; -exports.assertClassPrivateMethod = assertClassPrivateMethod; -exports.assertPrivateName = assertPrivateName; -exports.assertAnyTypeAnnotation = assertAnyTypeAnnotation; -exports.assertArrayTypeAnnotation = assertArrayTypeAnnotation; -exports.assertBooleanTypeAnnotation = assertBooleanTypeAnnotation; -exports.assertBooleanLiteralTypeAnnotation = assertBooleanLiteralTypeAnnotation; -exports.assertNullLiteralTypeAnnotation = assertNullLiteralTypeAnnotation; -exports.assertClassImplements = assertClassImplements; -exports.assertDeclareClass = assertDeclareClass; -exports.assertDeclareFunction = assertDeclareFunction; -exports.assertDeclareInterface = assertDeclareInterface; -exports.assertDeclareModule = assertDeclareModule; -exports.assertDeclareModuleExports = assertDeclareModuleExports; -exports.assertDeclareTypeAlias = assertDeclareTypeAlias; -exports.assertDeclareOpaqueType = assertDeclareOpaqueType; -exports.assertDeclareVariable = assertDeclareVariable; -exports.assertDeclareExportDeclaration = assertDeclareExportDeclaration; -exports.assertDeclareExportAllDeclaration = assertDeclareExportAllDeclaration; -exports.assertDeclaredPredicate = assertDeclaredPredicate; -exports.assertExistsTypeAnnotation = assertExistsTypeAnnotation; -exports.assertFunctionTypeAnnotation = assertFunctionTypeAnnotation; -exports.assertFunctionTypeParam = assertFunctionTypeParam; -exports.assertGenericTypeAnnotation = assertGenericTypeAnnotation; -exports.assertInferredPredicate = assertInferredPredicate; -exports.assertInterfaceExtends = assertInterfaceExtends; -exports.assertInterfaceDeclaration = assertInterfaceDeclaration; -exports.assertInterfaceTypeAnnotation = assertInterfaceTypeAnnotation; -exports.assertIntersectionTypeAnnotation = assertIntersectionTypeAnnotation; -exports.assertMixedTypeAnnotation = assertMixedTypeAnnotation; -exports.assertEmptyTypeAnnotation = assertEmptyTypeAnnotation; -exports.assertNullableTypeAnnotation = assertNullableTypeAnnotation; -exports.assertNumberLiteralTypeAnnotation = assertNumberLiteralTypeAnnotation; -exports.assertNumberTypeAnnotation = assertNumberTypeAnnotation; -exports.assertObjectTypeAnnotation = assertObjectTypeAnnotation; -exports.assertObjectTypeInternalSlot = assertObjectTypeInternalSlot; -exports.assertObjectTypeCallProperty = assertObjectTypeCallProperty; -exports.assertObjectTypeIndexer = assertObjectTypeIndexer; -exports.assertObjectTypeProperty = assertObjectTypeProperty; -exports.assertObjectTypeSpreadProperty = assertObjectTypeSpreadProperty; -exports.assertOpaqueType = assertOpaqueType; -exports.assertQualifiedTypeIdentifier = assertQualifiedTypeIdentifier; -exports.assertStringLiteralTypeAnnotation = assertStringLiteralTypeAnnotation; -exports.assertStringTypeAnnotation = assertStringTypeAnnotation; -exports.assertSymbolTypeAnnotation = assertSymbolTypeAnnotation; -exports.assertThisTypeAnnotation = assertThisTypeAnnotation; -exports.assertTupleTypeAnnotation = assertTupleTypeAnnotation; -exports.assertTypeofTypeAnnotation = assertTypeofTypeAnnotation; -exports.assertTypeAlias = assertTypeAlias; -exports.assertTypeAnnotation = assertTypeAnnotation; -exports.assertTypeCastExpression = assertTypeCastExpression; -exports.assertTypeParameter = assertTypeParameter; -exports.assertTypeParameterDeclaration = assertTypeParameterDeclaration; -exports.assertTypeParameterInstantiation = assertTypeParameterInstantiation; -exports.assertUnionTypeAnnotation = assertUnionTypeAnnotation; -exports.assertVariance = assertVariance; -exports.assertVoidTypeAnnotation = assertVoidTypeAnnotation; -exports.assertEnumDeclaration = assertEnumDeclaration; -exports.assertEnumBooleanBody = assertEnumBooleanBody; -exports.assertEnumNumberBody = assertEnumNumberBody; -exports.assertEnumStringBody = assertEnumStringBody; -exports.assertEnumSymbolBody = assertEnumSymbolBody; -exports.assertEnumBooleanMember = assertEnumBooleanMember; -exports.assertEnumNumberMember = assertEnumNumberMember; -exports.assertEnumStringMember = assertEnumStringMember; -exports.assertEnumDefaultedMember = assertEnumDefaultedMember; -exports.assertIndexedAccessType = assertIndexedAccessType; -exports.assertOptionalIndexedAccessType = assertOptionalIndexedAccessType; -exports.assertJSXAttribute = assertJSXAttribute; -exports.assertJSXClosingElement = assertJSXClosingElement; -exports.assertJSXElement = assertJSXElement; -exports.assertJSXEmptyExpression = assertJSXEmptyExpression; -exports.assertJSXExpressionContainer = assertJSXExpressionContainer; -exports.assertJSXSpreadChild = assertJSXSpreadChild; -exports.assertJSXIdentifier = assertJSXIdentifier; -exports.assertJSXMemberExpression = assertJSXMemberExpression; -exports.assertJSXNamespacedName = assertJSXNamespacedName; -exports.assertJSXOpeningElement = assertJSXOpeningElement; -exports.assertJSXSpreadAttribute = assertJSXSpreadAttribute; -exports.assertJSXText = assertJSXText; -exports.assertJSXFragment = assertJSXFragment; -exports.assertJSXOpeningFragment = assertJSXOpeningFragment; -exports.assertJSXClosingFragment = assertJSXClosingFragment; -exports.assertNoop = assertNoop; -exports.assertPlaceholder = assertPlaceholder; -exports.assertV8IntrinsicIdentifier = assertV8IntrinsicIdentifier; -exports.assertArgumentPlaceholder = assertArgumentPlaceholder; -exports.assertBindExpression = assertBindExpression; -exports.assertImportAttribute = assertImportAttribute; -exports.assertDecorator = assertDecorator; -exports.assertDoExpression = assertDoExpression; -exports.assertExportDefaultSpecifier = assertExportDefaultSpecifier; -exports.assertRecordExpression = assertRecordExpression; -exports.assertTupleExpression = assertTupleExpression; -exports.assertDecimalLiteral = assertDecimalLiteral; -exports.assertStaticBlock = assertStaticBlock; -exports.assertModuleExpression = assertModuleExpression; -exports.assertTopicReference = assertTopicReference; -exports.assertPipelineTopicExpression = assertPipelineTopicExpression; -exports.assertPipelineBareFunction = assertPipelineBareFunction; -exports.assertPipelinePrimaryTopicReference = assertPipelinePrimaryTopicReference; -exports.assertTSParameterProperty = assertTSParameterProperty; -exports.assertTSDeclareFunction = assertTSDeclareFunction; -exports.assertTSDeclareMethod = assertTSDeclareMethod; -exports.assertTSQualifiedName = assertTSQualifiedName; -exports.assertTSCallSignatureDeclaration = assertTSCallSignatureDeclaration; -exports.assertTSConstructSignatureDeclaration = assertTSConstructSignatureDeclaration; -exports.assertTSPropertySignature = assertTSPropertySignature; -exports.assertTSMethodSignature = assertTSMethodSignature; -exports.assertTSIndexSignature = assertTSIndexSignature; -exports.assertTSAnyKeyword = assertTSAnyKeyword; -exports.assertTSBooleanKeyword = assertTSBooleanKeyword; -exports.assertTSBigIntKeyword = assertTSBigIntKeyword; -exports.assertTSIntrinsicKeyword = assertTSIntrinsicKeyword; -exports.assertTSNeverKeyword = assertTSNeverKeyword; -exports.assertTSNullKeyword = assertTSNullKeyword; -exports.assertTSNumberKeyword = assertTSNumberKeyword; -exports.assertTSObjectKeyword = assertTSObjectKeyword; -exports.assertTSStringKeyword = assertTSStringKeyword; -exports.assertTSSymbolKeyword = assertTSSymbolKeyword; -exports.assertTSUndefinedKeyword = assertTSUndefinedKeyword; -exports.assertTSUnknownKeyword = assertTSUnknownKeyword; -exports.assertTSVoidKeyword = assertTSVoidKeyword; -exports.assertTSThisType = assertTSThisType; -exports.assertTSFunctionType = assertTSFunctionType; -exports.assertTSConstructorType = assertTSConstructorType; -exports.assertTSTypeReference = assertTSTypeReference; -exports.assertTSTypePredicate = assertTSTypePredicate; -exports.assertTSTypeQuery = assertTSTypeQuery; -exports.assertTSTypeLiteral = assertTSTypeLiteral; -exports.assertTSArrayType = assertTSArrayType; -exports.assertTSTupleType = assertTSTupleType; -exports.assertTSOptionalType = assertTSOptionalType; -exports.assertTSRestType = assertTSRestType; -exports.assertTSNamedTupleMember = assertTSNamedTupleMember; -exports.assertTSUnionType = assertTSUnionType; -exports.assertTSIntersectionType = assertTSIntersectionType; -exports.assertTSConditionalType = assertTSConditionalType; -exports.assertTSInferType = assertTSInferType; -exports.assertTSParenthesizedType = assertTSParenthesizedType; -exports.assertTSTypeOperator = assertTSTypeOperator; -exports.assertTSIndexedAccessType = assertTSIndexedAccessType; -exports.assertTSMappedType = assertTSMappedType; -exports.assertTSLiteralType = assertTSLiteralType; -exports.assertTSExpressionWithTypeArguments = assertTSExpressionWithTypeArguments; -exports.assertTSInterfaceDeclaration = assertTSInterfaceDeclaration; -exports.assertTSInterfaceBody = assertTSInterfaceBody; -exports.assertTSTypeAliasDeclaration = assertTSTypeAliasDeclaration; -exports.assertTSAsExpression = assertTSAsExpression; -exports.assertTSTypeAssertion = assertTSTypeAssertion; -exports.assertTSEnumDeclaration = assertTSEnumDeclaration; -exports.assertTSEnumMember = assertTSEnumMember; -exports.assertTSModuleDeclaration = assertTSModuleDeclaration; -exports.assertTSModuleBlock = assertTSModuleBlock; -exports.assertTSImportType = assertTSImportType; -exports.assertTSImportEqualsDeclaration = assertTSImportEqualsDeclaration; -exports.assertTSExternalModuleReference = assertTSExternalModuleReference; -exports.assertTSNonNullExpression = assertTSNonNullExpression; -exports.assertTSExportAssignment = assertTSExportAssignment; -exports.assertTSNamespaceExportDeclaration = assertTSNamespaceExportDeclaration; -exports.assertTSTypeAnnotation = assertTSTypeAnnotation; -exports.assertTSTypeParameterInstantiation = assertTSTypeParameterInstantiation; -exports.assertTSTypeParameterDeclaration = assertTSTypeParameterDeclaration; -exports.assertTSTypeParameter = assertTSTypeParameter; -exports.assertExpression = assertExpression; -exports.assertBinary = assertBinary; -exports.assertScopable = assertScopable; -exports.assertBlockParent = assertBlockParent; -exports.assertBlock = assertBlock; -exports.assertStatement = assertStatement; -exports.assertTerminatorless = assertTerminatorless; -exports.assertCompletionStatement = assertCompletionStatement; -exports.assertConditional = assertConditional; -exports.assertLoop = assertLoop; -exports.assertWhile = assertWhile; -exports.assertExpressionWrapper = assertExpressionWrapper; -exports.assertFor = assertFor; -exports.assertForXStatement = assertForXStatement; -exports.assertFunction = assertFunction; -exports.assertFunctionParent = assertFunctionParent; -exports.assertPureish = assertPureish; -exports.assertDeclaration = assertDeclaration; -exports.assertPatternLike = assertPatternLike; -exports.assertLVal = assertLVal; -exports.assertTSEntityName = assertTSEntityName; -exports.assertLiteral = assertLiteral; -exports.assertImmutable = assertImmutable; -exports.assertUserWhitespacable = assertUserWhitespacable; -exports.assertMethod = assertMethod; -exports.assertObjectMember = assertObjectMember; -exports.assertProperty = assertProperty; -exports.assertUnaryLike = assertUnaryLike; -exports.assertPattern = assertPattern; -exports.assertClass = assertClass; -exports.assertModuleDeclaration = assertModuleDeclaration; -exports.assertExportDeclaration = assertExportDeclaration; -exports.assertModuleSpecifier = assertModuleSpecifier; -exports.assertPrivate = assertPrivate; -exports.assertFlow = assertFlow; -exports.assertFlowType = assertFlowType; -exports.assertFlowBaseAnnotation = assertFlowBaseAnnotation; -exports.assertFlowDeclaration = assertFlowDeclaration; -exports.assertFlowPredicate = assertFlowPredicate; -exports.assertEnumBody = assertEnumBody; -exports.assertEnumMember = assertEnumMember; -exports.assertJSX = assertJSX; -exports.assertTSTypeElement = assertTSTypeElement; -exports.assertTSType = assertTSType; -exports.assertTSBaseType = assertTSBaseType; -exports.assertNumberLiteral = assertNumberLiteral; -exports.assertRegexLiteral = assertRegexLiteral; -exports.assertRestProperty = assertRestProperty; -exports.assertSpreadProperty = assertSpreadProperty; - -var _is = require("../../validators/is"); - -function assert(type, node, opts) { - if (!(0, _is.default)(type, node, opts)) { - throw new Error(`Expected type "${type}" with option ${JSON.stringify(opts)}, ` + `but instead got "${node.type}".`); - } -} - -function assertArrayExpression(node, opts) { - assert("ArrayExpression", node, opts); -} - -function assertAssignmentExpression(node, opts) { - assert("AssignmentExpression", node, opts); -} - -function assertBinaryExpression(node, opts) { - assert("BinaryExpression", node, opts); -} - -function assertInterpreterDirective(node, opts) { - assert("InterpreterDirective", node, opts); -} - -function assertDirective(node, opts) { - assert("Directive", node, opts); -} - -function assertDirectiveLiteral(node, opts) { - assert("DirectiveLiteral", node, opts); -} - -function assertBlockStatement(node, opts) { - assert("BlockStatement", node, opts); -} - -function assertBreakStatement(node, opts) { - assert("BreakStatement", node, opts); -} - -function assertCallExpression(node, opts) { - assert("CallExpression", node, opts); -} - -function assertCatchClause(node, opts) { - assert("CatchClause", node, opts); -} - -function assertConditionalExpression(node, opts) { - assert("ConditionalExpression", node, opts); -} - -function assertContinueStatement(node, opts) { - assert("ContinueStatement", node, opts); -} - -function assertDebuggerStatement(node, opts) { - assert("DebuggerStatement", node, opts); -} - -function assertDoWhileStatement(node, opts) { - assert("DoWhileStatement", node, opts); -} - -function assertEmptyStatement(node, opts) { - assert("EmptyStatement", node, opts); -} - -function assertExpressionStatement(node, opts) { - assert("ExpressionStatement", node, opts); -} - -function assertFile(node, opts) { - assert("File", node, opts); -} - -function assertForInStatement(node, opts) { - assert("ForInStatement", node, opts); -} - -function assertForStatement(node, opts) { - assert("ForStatement", node, opts); -} - -function assertFunctionDeclaration(node, opts) { - assert("FunctionDeclaration", node, opts); -} - -function assertFunctionExpression(node, opts) { - assert("FunctionExpression", node, opts); -} - -function assertIdentifier(node, opts) { - assert("Identifier", node, opts); -} - -function assertIfStatement(node, opts) { - assert("IfStatement", node, opts); -} - -function assertLabeledStatement(node, opts) { - assert("LabeledStatement", node, opts); -} - -function assertStringLiteral(node, opts) { - assert("StringLiteral", node, opts); -} - -function assertNumericLiteral(node, opts) { - assert("NumericLiteral", node, opts); -} - -function assertNullLiteral(node, opts) { - assert("NullLiteral", node, opts); -} - -function assertBooleanLiteral(node, opts) { - assert("BooleanLiteral", node, opts); -} - -function assertRegExpLiteral(node, opts) { - assert("RegExpLiteral", node, opts); -} - -function assertLogicalExpression(node, opts) { - assert("LogicalExpression", node, opts); -} - -function assertMemberExpression(node, opts) { - assert("MemberExpression", node, opts); -} - -function assertNewExpression(node, opts) { - assert("NewExpression", node, opts); -} - -function assertProgram(node, opts) { - assert("Program", node, opts); -} - -function assertObjectExpression(node, opts) { - assert("ObjectExpression", node, opts); -} - -function assertObjectMethod(node, opts) { - assert("ObjectMethod", node, opts); -} - -function assertObjectProperty(node, opts) { - assert("ObjectProperty", node, opts); -} - -function assertRestElement(node, opts) { - assert("RestElement", node, opts); -} - -function assertReturnStatement(node, opts) { - assert("ReturnStatement", node, opts); -} - -function assertSequenceExpression(node, opts) { - assert("SequenceExpression", node, opts); -} - -function assertParenthesizedExpression(node, opts) { - assert("ParenthesizedExpression", node, opts); -} - -function assertSwitchCase(node, opts) { - assert("SwitchCase", node, opts); -} - -function assertSwitchStatement(node, opts) { - assert("SwitchStatement", node, opts); -} - -function assertThisExpression(node, opts) { - assert("ThisExpression", node, opts); -} - -function assertThrowStatement(node, opts) { - assert("ThrowStatement", node, opts); -} - -function assertTryStatement(node, opts) { - assert("TryStatement", node, opts); -} - -function assertUnaryExpression(node, opts) { - assert("UnaryExpression", node, opts); -} - -function assertUpdateExpression(node, opts) { - assert("UpdateExpression", node, opts); -} - -function assertVariableDeclaration(node, opts) { - assert("VariableDeclaration", node, opts); -} - -function assertVariableDeclarator(node, opts) { - assert("VariableDeclarator", node, opts); -} - -function assertWhileStatement(node, opts) { - assert("WhileStatement", node, opts); -} - -function assertWithStatement(node, opts) { - assert("WithStatement", node, opts); -} - -function assertAssignmentPattern(node, opts) { - assert("AssignmentPattern", node, opts); -} - -function assertArrayPattern(node, opts) { - assert("ArrayPattern", node, opts); -} - -function assertArrowFunctionExpression(node, opts) { - assert("ArrowFunctionExpression", node, opts); -} - -function assertClassBody(node, opts) { - assert("ClassBody", node, opts); -} - -function assertClassExpression(node, opts) { - assert("ClassExpression", node, opts); -} - -function assertClassDeclaration(node, opts) { - assert("ClassDeclaration", node, opts); -} - -function assertExportAllDeclaration(node, opts) { - assert("ExportAllDeclaration", node, opts); -} - -function assertExportDefaultDeclaration(node, opts) { - assert("ExportDefaultDeclaration", node, opts); -} - -function assertExportNamedDeclaration(node, opts) { - assert("ExportNamedDeclaration", node, opts); -} - -function assertExportSpecifier(node, opts) { - assert("ExportSpecifier", node, opts); -} - -function assertForOfStatement(node, opts) { - assert("ForOfStatement", node, opts); -} - -function assertImportDeclaration(node, opts) { - assert("ImportDeclaration", node, opts); -} - -function assertImportDefaultSpecifier(node, opts) { - assert("ImportDefaultSpecifier", node, opts); -} - -function assertImportNamespaceSpecifier(node, opts) { - assert("ImportNamespaceSpecifier", node, opts); -} - -function assertImportSpecifier(node, opts) { - assert("ImportSpecifier", node, opts); -} - -function assertMetaProperty(node, opts) { - assert("MetaProperty", node, opts); -} - -function assertClassMethod(node, opts) { - assert("ClassMethod", node, opts); -} - -function assertObjectPattern(node, opts) { - assert("ObjectPattern", node, opts); -} - -function assertSpreadElement(node, opts) { - assert("SpreadElement", node, opts); -} - -function assertSuper(node, opts) { - assert("Super", node, opts); -} - -function assertTaggedTemplateExpression(node, opts) { - assert("TaggedTemplateExpression", node, opts); -} - -function assertTemplateElement(node, opts) { - assert("TemplateElement", node, opts); -} - -function assertTemplateLiteral(node, opts) { - assert("TemplateLiteral", node, opts); -} - -function assertYieldExpression(node, opts) { - assert("YieldExpression", node, opts); -} - -function assertAwaitExpression(node, opts) { - assert("AwaitExpression", node, opts); -} - -function assertImport(node, opts) { - assert("Import", node, opts); -} - -function assertBigIntLiteral(node, opts) { - assert("BigIntLiteral", node, opts); -} - -function assertExportNamespaceSpecifier(node, opts) { - assert("ExportNamespaceSpecifier", node, opts); -} - -function assertOptionalMemberExpression(node, opts) { - assert("OptionalMemberExpression", node, opts); -} - -function assertOptionalCallExpression(node, opts) { - assert("OptionalCallExpression", node, opts); -} - -function assertClassProperty(node, opts) { - assert("ClassProperty", node, opts); -} - -function assertClassPrivateProperty(node, opts) { - assert("ClassPrivateProperty", node, opts); -} - -function assertClassPrivateMethod(node, opts) { - assert("ClassPrivateMethod", node, opts); -} - -function assertPrivateName(node, opts) { - assert("PrivateName", node, opts); -} - -function assertAnyTypeAnnotation(node, opts) { - assert("AnyTypeAnnotation", node, opts); -} - -function assertArrayTypeAnnotation(node, opts) { - assert("ArrayTypeAnnotation", node, opts); -} - -function assertBooleanTypeAnnotation(node, opts) { - assert("BooleanTypeAnnotation", node, opts); -} - -function assertBooleanLiteralTypeAnnotation(node, opts) { - assert("BooleanLiteralTypeAnnotation", node, opts); -} - -function assertNullLiteralTypeAnnotation(node, opts) { - assert("NullLiteralTypeAnnotation", node, opts); -} - -function assertClassImplements(node, opts) { - assert("ClassImplements", node, opts); -} - -function assertDeclareClass(node, opts) { - assert("DeclareClass", node, opts); -} - -function assertDeclareFunction(node, opts) { - assert("DeclareFunction", node, opts); -} - -function assertDeclareInterface(node, opts) { - assert("DeclareInterface", node, opts); -} - -function assertDeclareModule(node, opts) { - assert("DeclareModule", node, opts); -} - -function assertDeclareModuleExports(node, opts) { - assert("DeclareModuleExports", node, opts); -} - -function assertDeclareTypeAlias(node, opts) { - assert("DeclareTypeAlias", node, opts); -} - -function assertDeclareOpaqueType(node, opts) { - assert("DeclareOpaqueType", node, opts); -} - -function assertDeclareVariable(node, opts) { - assert("DeclareVariable", node, opts); -} - -function assertDeclareExportDeclaration(node, opts) { - assert("DeclareExportDeclaration", node, opts); -} - -function assertDeclareExportAllDeclaration(node, opts) { - assert("DeclareExportAllDeclaration", node, opts); -} - -function assertDeclaredPredicate(node, opts) { - assert("DeclaredPredicate", node, opts); -} - -function assertExistsTypeAnnotation(node, opts) { - assert("ExistsTypeAnnotation", node, opts); -} - -function assertFunctionTypeAnnotation(node, opts) { - assert("FunctionTypeAnnotation", node, opts); -} - -function assertFunctionTypeParam(node, opts) { - assert("FunctionTypeParam", node, opts); -} - -function assertGenericTypeAnnotation(node, opts) { - assert("GenericTypeAnnotation", node, opts); -} - -function assertInferredPredicate(node, opts) { - assert("InferredPredicate", node, opts); -} - -function assertInterfaceExtends(node, opts) { - assert("InterfaceExtends", node, opts); -} - -function assertInterfaceDeclaration(node, opts) { - assert("InterfaceDeclaration", node, opts); -} - -function assertInterfaceTypeAnnotation(node, opts) { - assert("InterfaceTypeAnnotation", node, opts); -} - -function assertIntersectionTypeAnnotation(node, opts) { - assert("IntersectionTypeAnnotation", node, opts); -} - -function assertMixedTypeAnnotation(node, opts) { - assert("MixedTypeAnnotation", node, opts); -} - -function assertEmptyTypeAnnotation(node, opts) { - assert("EmptyTypeAnnotation", node, opts); -} - -function assertNullableTypeAnnotation(node, opts) { - assert("NullableTypeAnnotation", node, opts); -} - -function assertNumberLiteralTypeAnnotation(node, opts) { - assert("NumberLiteralTypeAnnotation", node, opts); -} - -function assertNumberTypeAnnotation(node, opts) { - assert("NumberTypeAnnotation", node, opts); -} - -function assertObjectTypeAnnotation(node, opts) { - assert("ObjectTypeAnnotation", node, opts); -} - -function assertObjectTypeInternalSlot(node, opts) { - assert("ObjectTypeInternalSlot", node, opts); -} - -function assertObjectTypeCallProperty(node, opts) { - assert("ObjectTypeCallProperty", node, opts); -} - -function assertObjectTypeIndexer(node, opts) { - assert("ObjectTypeIndexer", node, opts); -} - -function assertObjectTypeProperty(node, opts) { - assert("ObjectTypeProperty", node, opts); -} - -function assertObjectTypeSpreadProperty(node, opts) { - assert("ObjectTypeSpreadProperty", node, opts); -} - -function assertOpaqueType(node, opts) { - assert("OpaqueType", node, opts); -} - -function assertQualifiedTypeIdentifier(node, opts) { - assert("QualifiedTypeIdentifier", node, opts); -} - -function assertStringLiteralTypeAnnotation(node, opts) { - assert("StringLiteralTypeAnnotation", node, opts); -} - -function assertStringTypeAnnotation(node, opts) { - assert("StringTypeAnnotation", node, opts); -} - -function assertSymbolTypeAnnotation(node, opts) { - assert("SymbolTypeAnnotation", node, opts); -} - -function assertThisTypeAnnotation(node, opts) { - assert("ThisTypeAnnotation", node, opts); -} - -function assertTupleTypeAnnotation(node, opts) { - assert("TupleTypeAnnotation", node, opts); -} - -function assertTypeofTypeAnnotation(node, opts) { - assert("TypeofTypeAnnotation", node, opts); -} - -function assertTypeAlias(node, opts) { - assert("TypeAlias", node, opts); -} - -function assertTypeAnnotation(node, opts) { - assert("TypeAnnotation", node, opts); -} - -function assertTypeCastExpression(node, opts) { - assert("TypeCastExpression", node, opts); -} - -function assertTypeParameter(node, opts) { - assert("TypeParameter", node, opts); -} - -function assertTypeParameterDeclaration(node, opts) { - assert("TypeParameterDeclaration", node, opts); -} - -function assertTypeParameterInstantiation(node, opts) { - assert("TypeParameterInstantiation", node, opts); -} - -function assertUnionTypeAnnotation(node, opts) { - assert("UnionTypeAnnotation", node, opts); -} - -function assertVariance(node, opts) { - assert("Variance", node, opts); -} - -function assertVoidTypeAnnotation(node, opts) { - assert("VoidTypeAnnotation", node, opts); -} - -function assertEnumDeclaration(node, opts) { - assert("EnumDeclaration", node, opts); -} - -function assertEnumBooleanBody(node, opts) { - assert("EnumBooleanBody", node, opts); -} - -function assertEnumNumberBody(node, opts) { - assert("EnumNumberBody", node, opts); -} - -function assertEnumStringBody(node, opts) { - assert("EnumStringBody", node, opts); -} - -function assertEnumSymbolBody(node, opts) { - assert("EnumSymbolBody", node, opts); -} - -function assertEnumBooleanMember(node, opts) { - assert("EnumBooleanMember", node, opts); -} - -function assertEnumNumberMember(node, opts) { - assert("EnumNumberMember", node, opts); -} - -function assertEnumStringMember(node, opts) { - assert("EnumStringMember", node, opts); -} - -function assertEnumDefaultedMember(node, opts) { - assert("EnumDefaultedMember", node, opts); -} - -function assertIndexedAccessType(node, opts) { - assert("IndexedAccessType", node, opts); -} - -function assertOptionalIndexedAccessType(node, opts) { - assert("OptionalIndexedAccessType", node, opts); -} - -function assertJSXAttribute(node, opts) { - assert("JSXAttribute", node, opts); -} - -function assertJSXClosingElement(node, opts) { - assert("JSXClosingElement", node, opts); -} - -function assertJSXElement(node, opts) { - assert("JSXElement", node, opts); -} - -function assertJSXEmptyExpression(node, opts) { - assert("JSXEmptyExpression", node, opts); -} - -function assertJSXExpressionContainer(node, opts) { - assert("JSXExpressionContainer", node, opts); -} - -function assertJSXSpreadChild(node, opts) { - assert("JSXSpreadChild", node, opts); -} - -function assertJSXIdentifier(node, opts) { - assert("JSXIdentifier", node, opts); -} - -function assertJSXMemberExpression(node, opts) { - assert("JSXMemberExpression", node, opts); -} - -function assertJSXNamespacedName(node, opts) { - assert("JSXNamespacedName", node, opts); -} - -function assertJSXOpeningElement(node, opts) { - assert("JSXOpeningElement", node, opts); -} - -function assertJSXSpreadAttribute(node, opts) { - assert("JSXSpreadAttribute", node, opts); -} - -function assertJSXText(node, opts) { - assert("JSXText", node, opts); -} - -function assertJSXFragment(node, opts) { - assert("JSXFragment", node, opts); -} - -function assertJSXOpeningFragment(node, opts) { - assert("JSXOpeningFragment", node, opts); -} - -function assertJSXClosingFragment(node, opts) { - assert("JSXClosingFragment", node, opts); -} - -function assertNoop(node, opts) { - assert("Noop", node, opts); -} - -function assertPlaceholder(node, opts) { - assert("Placeholder", node, opts); -} - -function assertV8IntrinsicIdentifier(node, opts) { - assert("V8IntrinsicIdentifier", node, opts); -} - -function assertArgumentPlaceholder(node, opts) { - assert("ArgumentPlaceholder", node, opts); -} - -function assertBindExpression(node, opts) { - assert("BindExpression", node, opts); -} - -function assertImportAttribute(node, opts) { - assert("ImportAttribute", node, opts); -} - -function assertDecorator(node, opts) { - assert("Decorator", node, opts); -} - -function assertDoExpression(node, opts) { - assert("DoExpression", node, opts); -} - -function assertExportDefaultSpecifier(node, opts) { - assert("ExportDefaultSpecifier", node, opts); -} - -function assertRecordExpression(node, opts) { - assert("RecordExpression", node, opts); -} - -function assertTupleExpression(node, opts) { - assert("TupleExpression", node, opts); -} - -function assertDecimalLiteral(node, opts) { - assert("DecimalLiteral", node, opts); -} - -function assertStaticBlock(node, opts) { - assert("StaticBlock", node, opts); -} - -function assertModuleExpression(node, opts) { - assert("ModuleExpression", node, opts); -} - -function assertTopicReference(node, opts) { - assert("TopicReference", node, opts); -} - -function assertPipelineTopicExpression(node, opts) { - assert("PipelineTopicExpression", node, opts); -} - -function assertPipelineBareFunction(node, opts) { - assert("PipelineBareFunction", node, opts); -} - -function assertPipelinePrimaryTopicReference(node, opts) { - assert("PipelinePrimaryTopicReference", node, opts); -} - -function assertTSParameterProperty(node, opts) { - assert("TSParameterProperty", node, opts); -} - -function assertTSDeclareFunction(node, opts) { - assert("TSDeclareFunction", node, opts); -} - -function assertTSDeclareMethod(node, opts) { - assert("TSDeclareMethod", node, opts); -} - -function assertTSQualifiedName(node, opts) { - assert("TSQualifiedName", node, opts); -} - -function assertTSCallSignatureDeclaration(node, opts) { - assert("TSCallSignatureDeclaration", node, opts); -} - -function assertTSConstructSignatureDeclaration(node, opts) { - assert("TSConstructSignatureDeclaration", node, opts); -} - -function assertTSPropertySignature(node, opts) { - assert("TSPropertySignature", node, opts); -} - -function assertTSMethodSignature(node, opts) { - assert("TSMethodSignature", node, opts); -} - -function assertTSIndexSignature(node, opts) { - assert("TSIndexSignature", node, opts); -} - -function assertTSAnyKeyword(node, opts) { - assert("TSAnyKeyword", node, opts); -} - -function assertTSBooleanKeyword(node, opts) { - assert("TSBooleanKeyword", node, opts); -} - -function assertTSBigIntKeyword(node, opts) { - assert("TSBigIntKeyword", node, opts); -} - -function assertTSIntrinsicKeyword(node, opts) { - assert("TSIntrinsicKeyword", node, opts); -} - -function assertTSNeverKeyword(node, opts) { - assert("TSNeverKeyword", node, opts); -} - -function assertTSNullKeyword(node, opts) { - assert("TSNullKeyword", node, opts); -} - -function assertTSNumberKeyword(node, opts) { - assert("TSNumberKeyword", node, opts); -} - -function assertTSObjectKeyword(node, opts) { - assert("TSObjectKeyword", node, opts); -} - -function assertTSStringKeyword(node, opts) { - assert("TSStringKeyword", node, opts); -} - -function assertTSSymbolKeyword(node, opts) { - assert("TSSymbolKeyword", node, opts); -} - -function assertTSUndefinedKeyword(node, opts) { - assert("TSUndefinedKeyword", node, opts); -} - -function assertTSUnknownKeyword(node, opts) { - assert("TSUnknownKeyword", node, opts); -} - -function assertTSVoidKeyword(node, opts) { - assert("TSVoidKeyword", node, opts); -} - -function assertTSThisType(node, opts) { - assert("TSThisType", node, opts); -} - -function assertTSFunctionType(node, opts) { - assert("TSFunctionType", node, opts); -} - -function assertTSConstructorType(node, opts) { - assert("TSConstructorType", node, opts); -} - -function assertTSTypeReference(node, opts) { - assert("TSTypeReference", node, opts); -} - -function assertTSTypePredicate(node, opts) { - assert("TSTypePredicate", node, opts); -} - -function assertTSTypeQuery(node, opts) { - assert("TSTypeQuery", node, opts); -} - -function assertTSTypeLiteral(node, opts) { - assert("TSTypeLiteral", node, opts); -} - -function assertTSArrayType(node, opts) { - assert("TSArrayType", node, opts); -} - -function assertTSTupleType(node, opts) { - assert("TSTupleType", node, opts); -} - -function assertTSOptionalType(node, opts) { - assert("TSOptionalType", node, opts); -} - -function assertTSRestType(node, opts) { - assert("TSRestType", node, opts); -} - -function assertTSNamedTupleMember(node, opts) { - assert("TSNamedTupleMember", node, opts); -} - -function assertTSUnionType(node, opts) { - assert("TSUnionType", node, opts); -} - -function assertTSIntersectionType(node, opts) { - assert("TSIntersectionType", node, opts); -} - -function assertTSConditionalType(node, opts) { - assert("TSConditionalType", node, opts); -} - -function assertTSInferType(node, opts) { - assert("TSInferType", node, opts); -} - -function assertTSParenthesizedType(node, opts) { - assert("TSParenthesizedType", node, opts); -} - -function assertTSTypeOperator(node, opts) { - assert("TSTypeOperator", node, opts); -} - -function assertTSIndexedAccessType(node, opts) { - assert("TSIndexedAccessType", node, opts); -} - -function assertTSMappedType(node, opts) { - assert("TSMappedType", node, opts); -} - -function assertTSLiteralType(node, opts) { - assert("TSLiteralType", node, opts); -} - -function assertTSExpressionWithTypeArguments(node, opts) { - assert("TSExpressionWithTypeArguments", node, opts); -} - -function assertTSInterfaceDeclaration(node, opts) { - assert("TSInterfaceDeclaration", node, opts); -} - -function assertTSInterfaceBody(node, opts) { - assert("TSInterfaceBody", node, opts); -} - -function assertTSTypeAliasDeclaration(node, opts) { - assert("TSTypeAliasDeclaration", node, opts); -} - -function assertTSAsExpression(node, opts) { - assert("TSAsExpression", node, opts); -} - -function assertTSTypeAssertion(node, opts) { - assert("TSTypeAssertion", node, opts); -} - -function assertTSEnumDeclaration(node, opts) { - assert("TSEnumDeclaration", node, opts); -} - -function assertTSEnumMember(node, opts) { - assert("TSEnumMember", node, opts); -} - -function assertTSModuleDeclaration(node, opts) { - assert("TSModuleDeclaration", node, opts); -} - -function assertTSModuleBlock(node, opts) { - assert("TSModuleBlock", node, opts); -} - -function assertTSImportType(node, opts) { - assert("TSImportType", node, opts); -} - -function assertTSImportEqualsDeclaration(node, opts) { - assert("TSImportEqualsDeclaration", node, opts); -} - -function assertTSExternalModuleReference(node, opts) { - assert("TSExternalModuleReference", node, opts); -} - -function assertTSNonNullExpression(node, opts) { - assert("TSNonNullExpression", node, opts); -} - -function assertTSExportAssignment(node, opts) { - assert("TSExportAssignment", node, opts); -} - -function assertTSNamespaceExportDeclaration(node, opts) { - assert("TSNamespaceExportDeclaration", node, opts); -} - -function assertTSTypeAnnotation(node, opts) { - assert("TSTypeAnnotation", node, opts); -} - -function assertTSTypeParameterInstantiation(node, opts) { - assert("TSTypeParameterInstantiation", node, opts); -} - -function assertTSTypeParameterDeclaration(node, opts) { - assert("TSTypeParameterDeclaration", node, opts); -} - -function assertTSTypeParameter(node, opts) { - assert("TSTypeParameter", node, opts); -} - -function assertExpression(node, opts) { - assert("Expression", node, opts); -} - -function assertBinary(node, opts) { - assert("Binary", node, opts); -} - -function assertScopable(node, opts) { - assert("Scopable", node, opts); -} - -function assertBlockParent(node, opts) { - assert("BlockParent", node, opts); -} - -function assertBlock(node, opts) { - assert("Block", node, opts); -} - -function assertStatement(node, opts) { - assert("Statement", node, opts); -} - -function assertTerminatorless(node, opts) { - assert("Terminatorless", node, opts); -} - -function assertCompletionStatement(node, opts) { - assert("CompletionStatement", node, opts); -} - -function assertConditional(node, opts) { - assert("Conditional", node, opts); -} - -function assertLoop(node, opts) { - assert("Loop", node, opts); -} - -function assertWhile(node, opts) { - assert("While", node, opts); -} - -function assertExpressionWrapper(node, opts) { - assert("ExpressionWrapper", node, opts); -} - -function assertFor(node, opts) { - assert("For", node, opts); -} - -function assertForXStatement(node, opts) { - assert("ForXStatement", node, opts); -} - -function assertFunction(node, opts) { - assert("Function", node, opts); -} - -function assertFunctionParent(node, opts) { - assert("FunctionParent", node, opts); -} - -function assertPureish(node, opts) { - assert("Pureish", node, opts); -} - -function assertDeclaration(node, opts) { - assert("Declaration", node, opts); -} - -function assertPatternLike(node, opts) { - assert("PatternLike", node, opts); -} - -function assertLVal(node, opts) { - assert("LVal", node, opts); -} - -function assertTSEntityName(node, opts) { - assert("TSEntityName", node, opts); -} - -function assertLiteral(node, opts) { - assert("Literal", node, opts); -} - -function assertImmutable(node, opts) { - assert("Immutable", node, opts); -} - -function assertUserWhitespacable(node, opts) { - assert("UserWhitespacable", node, opts); -} - -function assertMethod(node, opts) { - assert("Method", node, opts); -} - -function assertObjectMember(node, opts) { - assert("ObjectMember", node, opts); -} - -function assertProperty(node, opts) { - assert("Property", node, opts); -} - -function assertUnaryLike(node, opts) { - assert("UnaryLike", node, opts); -} - -function assertPattern(node, opts) { - assert("Pattern", node, opts); -} - -function assertClass(node, opts) { - assert("Class", node, opts); -} - -function assertModuleDeclaration(node, opts) { - assert("ModuleDeclaration", node, opts); -} - -function assertExportDeclaration(node, opts) { - assert("ExportDeclaration", node, opts); -} - -function assertModuleSpecifier(node, opts) { - assert("ModuleSpecifier", node, opts); -} - -function assertPrivate(node, opts) { - assert("Private", node, opts); -} - -function assertFlow(node, opts) { - assert("Flow", node, opts); -} - -function assertFlowType(node, opts) { - assert("FlowType", node, opts); -} - -function assertFlowBaseAnnotation(node, opts) { - assert("FlowBaseAnnotation", node, opts); -} - -function assertFlowDeclaration(node, opts) { - assert("FlowDeclaration", node, opts); -} - -function assertFlowPredicate(node, opts) { - assert("FlowPredicate", node, opts); -} - -function assertEnumBody(node, opts) { - assert("EnumBody", node, opts); -} - -function assertEnumMember(node, opts) { - assert("EnumMember", node, opts); -} - -function assertJSX(node, opts) { - assert("JSX", node, opts); -} - -function assertTSTypeElement(node, opts) { - assert("TSTypeElement", node, opts); -} - -function assertTSType(node, opts) { - assert("TSType", node, opts); -} - -function assertTSBaseType(node, opts) { - assert("TSBaseType", node, opts); -} - -function assertNumberLiteral(node, opts) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - assert("NumberLiteral", node, opts); -} - -function assertRegexLiteral(node, opts) { - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - assert("RegexLiteral", node, opts); -} - -function assertRestProperty(node, opts) { - console.trace("The node type RestProperty has been renamed to RestElement"); - assert("RestProperty", node, opts); -} - -function assertSpreadProperty(node, opts) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - assert("SpreadProperty", node, opts); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js deleted file mode 100644 index 7711322ed379fa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/flow/createTypeAnnotationBasedOnTypeof.js +++ /dev/null @@ -1,30 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.default = createTypeAnnotationBasedOnTypeof; - -var _generated = require("../generated"); - -function createTypeAnnotationBasedOnTypeof(type) { - if (type === "string") { - return (0, _generated.stringTypeAnnotation)(); - } else if (type === "number") { - return (0, _generated.numberTypeAnnotation)(); - } else if (type === "undefined") { - return (0, _generated.voidTypeAnnotation)(); - } else if (type === "boolean") { - return (0, _generated.booleanTypeAnnotation)(); - } else if (type === "function") { - return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Function")); - } else if (type === "object") { - return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Object")); - } else if (type === "symbol") { - return (0, _generated.genericTypeAnnotation)((0, _generated.identifier)("Symbol")); - } else if (type === "bigint") { - return (0, _generated.anyTypeAnnotation)(); - } else { - throw new Error("Invalid typeof value: " + type); - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js deleted file mode 100644 index cb40ee6e646bcf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/builders/generated/index.js +++ /dev/null @@ -1,1261 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.arrayExpression = arrayExpression; -exports.assignmentExpression = assignmentExpression; -exports.binaryExpression = binaryExpression; -exports.interpreterDirective = interpreterDirective; -exports.directive = directive; -exports.directiveLiteral = directiveLiteral; -exports.blockStatement = blockStatement; -exports.breakStatement = breakStatement; -exports.callExpression = callExpression; -exports.catchClause = catchClause; -exports.conditionalExpression = conditionalExpression; -exports.continueStatement = continueStatement; -exports.debuggerStatement = debuggerStatement; -exports.doWhileStatement = doWhileStatement; -exports.emptyStatement = emptyStatement; -exports.expressionStatement = expressionStatement; -exports.file = file; -exports.forInStatement = forInStatement; -exports.forStatement = forStatement; -exports.functionDeclaration = functionDeclaration; -exports.functionExpression = functionExpression; -exports.identifier = identifier; -exports.ifStatement = ifStatement; -exports.labeledStatement = labeledStatement; -exports.stringLiteral = stringLiteral; -exports.numericLiteral = numericLiteral; -exports.nullLiteral = nullLiteral; -exports.booleanLiteral = booleanLiteral; -exports.regExpLiteral = regExpLiteral; -exports.logicalExpression = logicalExpression; -exports.memberExpression = memberExpression; -exports.newExpression = newExpression; -exports.program = program; -exports.objectExpression = objectExpression; -exports.objectMethod = objectMethod; -exports.objectProperty = objectProperty; -exports.restElement = restElement; -exports.returnStatement = returnStatement; -exports.sequenceExpression = sequenceExpression; -exports.parenthesizedExpression = parenthesizedExpression; -exports.switchCase = switchCase; -exports.switchStatement = switchStatement; -exports.thisExpression = thisExpression; -exports.throwStatement = throwStatement; -exports.tryStatement = tryStatement; -exports.unaryExpression = unaryExpression; -exports.updateExpression = updateExpression; -exports.variableDeclaration = variableDeclaration; -exports.variableDeclarator = variableDeclarator; -exports.whileStatement = whileStatement; -exports.withStatement = withStatement; -exports.assignmentPattern = assignmentPattern; -exports.arrayPattern = arrayPattern; -exports.arrowFunctionExpression = arrowFunctionExpression; -exports.classBody = classBody; -exports.classExpression = classExpression; -exports.classDeclaration = classDeclaration; -exports.exportAllDeclaration = exportAllDeclaration; -exports.exportDefaultDeclaration = exportDefaultDeclaration; -exports.exportNamedDeclaration = exportNamedDeclaration; -exports.exportSpecifier = exportSpecifier; -exports.forOfStatement = forOfStatement; -exports.importDeclaration = importDeclaration; -exports.importDefaultSpecifier = importDefaultSpecifier; -exports.importNamespaceSpecifier = importNamespaceSpecifier; -exports.importSpecifier = importSpecifier; -exports.metaProperty = metaProperty; -exports.classMethod = classMethod; -exports.objectPattern = objectPattern; -exports.spreadElement = spreadElement; -exports.super = _super; -exports.taggedTemplateExpression = taggedTemplateExpression; -exports.templateElement = templateElement; -exports.templateLiteral = templateLiteral; -exports.yieldExpression = yieldExpression; -exports.awaitExpression = awaitExpression; -exports.import = _import; -exports.bigIntLiteral = bigIntLiteral; -exports.exportNamespaceSpecifier = exportNamespaceSpecifier; -exports.optionalMemberExpression = optionalMemberExpression; -exports.optionalCallExpression = optionalCallExpression; -exports.classProperty = classProperty; -exports.classPrivateProperty = classPrivateProperty; -exports.classPrivateMethod = classPrivateMethod; -exports.privateName = privateName; -exports.anyTypeAnnotation = anyTypeAnnotation; -exports.arrayTypeAnnotation = arrayTypeAnnotation; -exports.booleanTypeAnnotation = booleanTypeAnnotation; -exports.booleanLiteralTypeAnnotation = booleanLiteralTypeAnnotation; -exports.nullLiteralTypeAnnotation = nullLiteralTypeAnnotation; -exports.classImplements = classImplements; -exports.declareClass = declareClass; -exports.declareFunction = declareFunction; -exports.declareInterface = declareInterface; -exports.declareModule = declareModule; -exports.declareModuleExports = declareModuleExports; -exports.declareTypeAlias = declareTypeAlias; -exports.declareOpaqueType = declareOpaqueType; -exports.declareVariable = declareVariable; -exports.declareExportDeclaration = declareExportDeclaration; -exports.declareExportAllDeclaration = declareExportAllDeclaration; -exports.declaredPredicate = declaredPredicate; -exports.existsTypeAnnotation = existsTypeAnnotation; -exports.functionTypeAnnotation = functionTypeAnnotation; -exports.functionTypeParam = functionTypeParam; -exports.genericTypeAnnotation = genericTypeAnnotation; -exports.inferredPredicate = inferredPredicate; -exports.interfaceExtends = interfaceExtends; -exports.interfaceDeclaration = interfaceDeclaration; -exports.interfaceTypeAnnotation = interfaceTypeAnnotation; -exports.intersectionTypeAnnotation = intersectionTypeAnnotation; -exports.mixedTypeAnnotation = mixedTypeAnnotation; -exports.emptyTypeAnnotation = emptyTypeAnnotation; -exports.nullableTypeAnnotation = nullableTypeAnnotation; -exports.numberLiteralTypeAnnotation = numberLiteralTypeAnnotation; -exports.numberTypeAnnotation = numberTypeAnnotation; -exports.objectTypeAnnotation = objectTypeAnnotation; -exports.objectTypeInternalSlot = objectTypeInternalSlot; -exports.objectTypeCallProperty = objectTypeCallProperty; -exports.objectTypeIndexer = objectTypeIndexer; -exports.objectTypeProperty = objectTypeProperty; -exports.objectTypeSpreadProperty = objectTypeSpreadProperty; -exports.opaqueType = opaqueType; -exports.qualifiedTypeIdentifier = qualifiedTypeIdentifier; -exports.stringLiteralTypeAnnotation = stringLiteralTypeAnnotation; -exports.stringTypeAnnotation = stringTypeAnnotation; -exports.symbolTypeAnnotation = symbolTypeAnnotation; -exports.thisTypeAnnotation = thisTypeAnnotation; -exports.tupleTypeAnnotation = tupleTypeAnnotation; -exports.typeofTypeAnnotation = typeofTypeAnnotation; -exports.typeAlias = typeAlias; -exports.typeAnnotation = typeAnnotation; -exports.typeCastExpression = typeCastExpression; -exports.typeParameter = typeParameter; -exports.typeParameterDeclaration = typeParameterDeclaration; -exports.typeParameterInstantiation = typeParameterInstantiation; -exports.unionTypeAnnotation = unionTypeAnnotation; -exports.variance = variance; -exports.voidTypeAnnotation = voidTypeAnnotation; -exports.enumDeclaration = enumDeclaration; -exports.enumBooleanBody = enumBooleanBody; -exports.enumNumberBody = enumNumberBody; -exports.enumStringBody = enumStringBody; -exports.enumSymbolBody = enumSymbolBody; -exports.enumBooleanMember = enumBooleanMember; -exports.enumNumberMember = enumNumberMember; -exports.enumStringMember = enumStringMember; -exports.enumDefaultedMember = enumDefaultedMember; -exports.indexedAccessType = indexedAccessType; -exports.optionalIndexedAccessType = optionalIndexedAccessType; -exports.jSXAttribute = exports.jsxAttribute = jsxAttribute; -exports.jSXClosingElement = exports.jsxClosingElement = jsxClosingElement; -exports.jSXElement = exports.jsxElement = jsxElement; -exports.jSXEmptyExpression = exports.jsxEmptyExpression = jsxEmptyExpression; -exports.jSXExpressionContainer = exports.jsxExpressionContainer = jsxExpressionContainer; -exports.jSXSpreadChild = exports.jsxSpreadChild = jsxSpreadChild; -exports.jSXIdentifier = exports.jsxIdentifier = jsxIdentifier; -exports.jSXMemberExpression = exports.jsxMemberExpression = jsxMemberExpression; -exports.jSXNamespacedName = exports.jsxNamespacedName = jsxNamespacedName; -exports.jSXOpeningElement = exports.jsxOpeningElement = jsxOpeningElement; -exports.jSXSpreadAttribute = exports.jsxSpreadAttribute = jsxSpreadAttribute; -exports.jSXText = exports.jsxText = jsxText; -exports.jSXFragment = exports.jsxFragment = jsxFragment; -exports.jSXOpeningFragment = exports.jsxOpeningFragment = jsxOpeningFragment; -exports.jSXClosingFragment = exports.jsxClosingFragment = jsxClosingFragment; -exports.noop = noop; -exports.placeholder = placeholder; -exports.v8IntrinsicIdentifier = v8IntrinsicIdentifier; -exports.argumentPlaceholder = argumentPlaceholder; -exports.bindExpression = bindExpression; -exports.importAttribute = importAttribute; -exports.decorator = decorator; -exports.doExpression = doExpression; -exports.exportDefaultSpecifier = exportDefaultSpecifier; -exports.recordExpression = recordExpression; -exports.tupleExpression = tupleExpression; -exports.decimalLiteral = decimalLiteral; -exports.staticBlock = staticBlock; -exports.moduleExpression = moduleExpression; -exports.topicReference = topicReference; -exports.pipelineTopicExpression = pipelineTopicExpression; -exports.pipelineBareFunction = pipelineBareFunction; -exports.pipelinePrimaryTopicReference = pipelinePrimaryTopicReference; -exports.tSParameterProperty = exports.tsParameterProperty = tsParameterProperty; -exports.tSDeclareFunction = exports.tsDeclareFunction = tsDeclareFunction; -exports.tSDeclareMethod = exports.tsDeclareMethod = tsDeclareMethod; -exports.tSQualifiedName = exports.tsQualifiedName = tsQualifiedName; -exports.tSCallSignatureDeclaration = exports.tsCallSignatureDeclaration = tsCallSignatureDeclaration; -exports.tSConstructSignatureDeclaration = exports.tsConstructSignatureDeclaration = tsConstructSignatureDeclaration; -exports.tSPropertySignature = exports.tsPropertySignature = tsPropertySignature; -exports.tSMethodSignature = exports.tsMethodSignature = tsMethodSignature; -exports.tSIndexSignature = exports.tsIndexSignature = tsIndexSignature; -exports.tSAnyKeyword = exports.tsAnyKeyword = tsAnyKeyword; -exports.tSBooleanKeyword = exports.tsBooleanKeyword = tsBooleanKeyword; -exports.tSBigIntKeyword = exports.tsBigIntKeyword = tsBigIntKeyword; -exports.tSIntrinsicKeyword = exports.tsIntrinsicKeyword = tsIntrinsicKeyword; -exports.tSNeverKeyword = exports.tsNeverKeyword = tsNeverKeyword; -exports.tSNullKeyword = exports.tsNullKeyword = tsNullKeyword; -exports.tSNumberKeyword = exports.tsNumberKeyword = tsNumberKeyword; -exports.tSObjectKeyword = exports.tsObjectKeyword = tsObjectKeyword; -exports.tSStringKeyword = exports.tsStringKeyword = tsStringKeyword; -exports.tSSymbolKeyword = exports.tsSymbolKeyword = tsSymbolKeyword; -exports.tSUndefinedKeyword = exports.tsUndefinedKeyword = tsUndefinedKeyword; -exports.tSUnknownKeyword = exports.tsUnknownKeyword = tsUnknownKeyword; -exports.tSVoidKeyword = exports.tsVoidKeyword = tsVoidKeyword; -exports.tSThisType = exports.tsThisType = tsThisType; -exports.tSFunctionType = exports.tsFunctionType = tsFunctionType; -exports.tSConstructorType = exports.tsConstructorType = tsConstructorType; -exports.tSTypeReference = exports.tsTypeReference = tsTypeReference; -exports.tSTypePredicate = exports.tsTypePredicate = tsTypePredicate; -exports.tSTypeQuery = exports.tsTypeQuery = tsTypeQuery; -exports.tSTypeLiteral = exports.tsTypeLiteral = tsTypeLiteral; -exports.tSArrayType = exports.tsArrayType = tsArrayType; -exports.tSTupleType = exports.tsTupleType = tsTupleType; -exports.tSOptionalType = exports.tsOptionalType = tsOptionalType; -exports.tSRestType = exports.tsRestType = tsRestType; -exports.tSNamedTupleMember = exports.tsNamedTupleMember = tsNamedTupleMember; -exports.tSUnionType = exports.tsUnionType = tsUnionType; -exports.tSIntersectionType = exports.tsIntersectionType = tsIntersectionType; -exports.tSConditionalType = exports.tsConditionalType = tsConditionalType; -exports.tSInferType = exports.tsInferType = tsInferType; -exports.tSParenthesizedType = exports.tsParenthesizedType = tsParenthesizedType; -exports.tSTypeOperator = exports.tsTypeOperator = tsTypeOperator; -exports.tSIndexedAccessType = exports.tsIndexedAccessType = tsIndexedAccessType; -exports.tSMappedType = exports.tsMappedType = tsMappedType; -exports.tSLiteralType = exports.tsLiteralType = tsLiteralType; -exports.tSExpressionWithTypeArguments = exports.tsExpressionWithTypeArguments = tsExpressionWithTypeArguments; -exports.tSInterfaceDeclaration = exports.tsInterfaceDeclaration = tsInterfaceDeclaration; -exports.tSInterfaceBody = exports.tsInterfaceBody = tsInterfaceBody; -exports.tSTypeAliasDeclaration = exports.tsTypeAliasDeclaration = tsTypeAliasDeclaration; -exports.tSAsExpression = exports.tsAsExpression = tsAsExpression; -exports.tSTypeAssertion = exports.tsTypeAssertion = tsTypeAssertion; -exports.tSEnumDeclaration = exports.tsEnumDeclaration = tsEnumDeclaration; -exports.tSEnumMember = exports.tsEnumMember = tsEnumMember; -exports.tSModuleDeclaration = exports.tsModuleDeclaration = tsModuleDeclaration; -exports.tSModuleBlock = exports.tsModuleBlock = tsModuleBlock; -exports.tSImportType = exports.tsImportType = tsImportType; -exports.tSImportEqualsDeclaration = exports.tsImportEqualsDeclaration = tsImportEqualsDeclaration; -exports.tSExternalModuleReference = exports.tsExternalModuleReference = tsExternalModuleReference; -exports.tSNonNullExpression = exports.tsNonNullExpression = tsNonNullExpression; -exports.tSExportAssignment = exports.tsExportAssignment = tsExportAssignment; -exports.tSNamespaceExportDeclaration = exports.tsNamespaceExportDeclaration = tsNamespaceExportDeclaration; -exports.tSTypeAnnotation = exports.tsTypeAnnotation = tsTypeAnnotation; -exports.tSTypeParameterInstantiation = exports.tsTypeParameterInstantiation = tsTypeParameterInstantiation; -exports.tSTypeParameterDeclaration = exports.tsTypeParameterDeclaration = tsTypeParameterDeclaration; -exports.tSTypeParameter = exports.tsTypeParameter = tsTypeParameter; -exports.numberLiteral = NumberLiteral; -exports.regexLiteral = RegexLiteral; -exports.restProperty = RestProperty; -exports.spreadProperty = SpreadProperty; - -var _builder = require("../builder"); - -function arrayExpression(elements) { - return (0, _builder.default)("ArrayExpression", ...arguments); -} - -function assignmentExpression(operator, left, right) { - return (0, _builder.default)("AssignmentExpression", ...arguments); -} - -function binaryExpression(operator, left, right) { - return (0, _builder.default)("BinaryExpression", ...arguments); -} - -function interpreterDirective(value) { - return (0, _builder.default)("InterpreterDirective", ...arguments); -} - -function directive(value) { - return (0, _builder.default)("Directive", ...arguments); -} - -function directiveLiteral(value) { - return (0, _builder.default)("DirectiveLiteral", ...arguments); -} - -function blockStatement(body, directives) { - return (0, _builder.default)("BlockStatement", ...arguments); -} - -function breakStatement(label) { - return (0, _builder.default)("BreakStatement", ...arguments); -} - -function callExpression(callee, _arguments) { - return (0, _builder.default)("CallExpression", ...arguments); -} - -function catchClause(param, body) { - return (0, _builder.default)("CatchClause", ...arguments); -} - -function conditionalExpression(test, consequent, alternate) { - return (0, _builder.default)("ConditionalExpression", ...arguments); -} - -function continueStatement(label) { - return (0, _builder.default)("ContinueStatement", ...arguments); -} - -function debuggerStatement() { - return (0, _builder.default)("DebuggerStatement", ...arguments); -} - -function doWhileStatement(test, body) { - return (0, _builder.default)("DoWhileStatement", ...arguments); -} - -function emptyStatement() { - return (0, _builder.default)("EmptyStatement", ...arguments); -} - -function expressionStatement(expression) { - return (0, _builder.default)("ExpressionStatement", ...arguments); -} - -function file(program, comments, tokens) { - return (0, _builder.default)("File", ...arguments); -} - -function forInStatement(left, right, body) { - return (0, _builder.default)("ForInStatement", ...arguments); -} - -function forStatement(init, test, update, body) { - return (0, _builder.default)("ForStatement", ...arguments); -} - -function functionDeclaration(id, params, body, generator, async) { - return (0, _builder.default)("FunctionDeclaration", ...arguments); -} - -function functionExpression(id, params, body, generator, async) { - return (0, _builder.default)("FunctionExpression", ...arguments); -} - -function identifier(name) { - return (0, _builder.default)("Identifier", ...arguments); -} - -function ifStatement(test, consequent, alternate) { - return (0, _builder.default)("IfStatement", ...arguments); -} - -function labeledStatement(label, body) { - return (0, _builder.default)("LabeledStatement", ...arguments); -} - -function stringLiteral(value) { - return (0, _builder.default)("StringLiteral", ...arguments); -} - -function numericLiteral(value) { - return (0, _builder.default)("NumericLiteral", ...arguments); -} - -function nullLiteral() { - return (0, _builder.default)("NullLiteral", ...arguments); -} - -function booleanLiteral(value) { - return (0, _builder.default)("BooleanLiteral", ...arguments); -} - -function regExpLiteral(pattern, flags) { - return (0, _builder.default)("RegExpLiteral", ...arguments); -} - -function logicalExpression(operator, left, right) { - return (0, _builder.default)("LogicalExpression", ...arguments); -} - -function memberExpression(object, property, computed, optional) { - return (0, _builder.default)("MemberExpression", ...arguments); -} - -function newExpression(callee, _arguments) { - return (0, _builder.default)("NewExpression", ...arguments); -} - -function program(body, directives, sourceType, interpreter) { - return (0, _builder.default)("Program", ...arguments); -} - -function objectExpression(properties) { - return (0, _builder.default)("ObjectExpression", ...arguments); -} - -function objectMethod(kind, key, params, body, computed, generator, async) { - return (0, _builder.default)("ObjectMethod", ...arguments); -} - -function objectProperty(key, value, computed, shorthand, decorators) { - return (0, _builder.default)("ObjectProperty", ...arguments); -} - -function restElement(argument) { - return (0, _builder.default)("RestElement", ...arguments); -} - -function returnStatement(argument) { - return (0, _builder.default)("ReturnStatement", ...arguments); -} - -function sequenceExpression(expressions) { - return (0, _builder.default)("SequenceExpression", ...arguments); -} - -function parenthesizedExpression(expression) { - return (0, _builder.default)("ParenthesizedExpression", ...arguments); -} - -function switchCase(test, consequent) { - return (0, _builder.default)("SwitchCase", ...arguments); -} - -function switchStatement(discriminant, cases) { - return (0, _builder.default)("SwitchStatement", ...arguments); -} - -function thisExpression() { - return (0, _builder.default)("ThisExpression", ...arguments); -} - -function throwStatement(argument) { - return (0, _builder.default)("ThrowStatement", ...arguments); -} - -function tryStatement(block, handler, finalizer) { - return (0, _builder.default)("TryStatement", ...arguments); -} - -function unaryExpression(operator, argument, prefix) { - return (0, _builder.default)("UnaryExpression", ...arguments); -} - -function updateExpression(operator, argument, prefix) { - return (0, _builder.default)("UpdateExpression", ...arguments); -} - -function variableDeclaration(kind, declarations) { - return (0, _builder.default)("VariableDeclaration", ...arguments); -} - -function variableDeclarator(id, init) { - return (0, _builder.default)("VariableDeclarator", ...arguments); -} - -function whileStatement(test, body) { - return (0, _builder.default)("WhileStatement", ...arguments); -} - -function withStatement(object, body) { - return (0, _builder.default)("WithStatement", ...arguments); -} - -function assignmentPattern(left, right) { - return (0, _builder.default)("AssignmentPattern", ...arguments); -} - -function arrayPattern(elements) { - return (0, _builder.default)("ArrayPattern", ...arguments); -} - -function arrowFunctionExpression(params, body, async) { - return (0, _builder.default)("ArrowFunctionExpression", ...arguments); -} - -function classBody(body) { - return (0, _builder.default)("ClassBody", ...arguments); -} - -function classExpression(id, superClass, body, decorators) { - return (0, _builder.default)("ClassExpression", ...arguments); -} - -function classDeclaration(id, superClass, body, decorators) { - return (0, _builder.default)("ClassDeclaration", ...arguments); -} - -function exportAllDeclaration(source) { - return (0, _builder.default)("ExportAllDeclaration", ...arguments); -} - -function exportDefaultDeclaration(declaration) { - return (0, _builder.default)("ExportDefaultDeclaration", ...arguments); -} - -function exportNamedDeclaration(declaration, specifiers, source) { - return (0, _builder.default)("ExportNamedDeclaration", ...arguments); -} - -function exportSpecifier(local, exported) { - return (0, _builder.default)("ExportSpecifier", ...arguments); -} - -function forOfStatement(left, right, body, _await) { - return (0, _builder.default)("ForOfStatement", ...arguments); -} - -function importDeclaration(specifiers, source) { - return (0, _builder.default)("ImportDeclaration", ...arguments); -} - -function importDefaultSpecifier(local) { - return (0, _builder.default)("ImportDefaultSpecifier", ...arguments); -} - -function importNamespaceSpecifier(local) { - return (0, _builder.default)("ImportNamespaceSpecifier", ...arguments); -} - -function importSpecifier(local, imported) { - return (0, _builder.default)("ImportSpecifier", ...arguments); -} - -function metaProperty(meta, property) { - return (0, _builder.default)("MetaProperty", ...arguments); -} - -function classMethod(kind, key, params, body, computed, _static, generator, async) { - return (0, _builder.default)("ClassMethod", ...arguments); -} - -function objectPattern(properties) { - return (0, _builder.default)("ObjectPattern", ...arguments); -} - -function spreadElement(argument) { - return (0, _builder.default)("SpreadElement", ...arguments); -} - -function _super() { - return (0, _builder.default)("Super", ...arguments); -} - -function taggedTemplateExpression(tag, quasi) { - return (0, _builder.default)("TaggedTemplateExpression", ...arguments); -} - -function templateElement(value, tail) { - return (0, _builder.default)("TemplateElement", ...arguments); -} - -function templateLiteral(quasis, expressions) { - return (0, _builder.default)("TemplateLiteral", ...arguments); -} - -function yieldExpression(argument, delegate) { - return (0, _builder.default)("YieldExpression", ...arguments); -} - -function awaitExpression(argument) { - return (0, _builder.default)("AwaitExpression", ...arguments); -} - -function _import() { - return (0, _builder.default)("Import", ...arguments); -} - -function bigIntLiteral(value) { - return (0, _builder.default)("BigIntLiteral", ...arguments); -} - -function exportNamespaceSpecifier(exported) { - return (0, _builder.default)("ExportNamespaceSpecifier", ...arguments); -} - -function optionalMemberExpression(object, property, computed, optional) { - return (0, _builder.default)("OptionalMemberExpression", ...arguments); -} - -function optionalCallExpression(callee, _arguments, optional) { - return (0, _builder.default)("OptionalCallExpression", ...arguments); -} - -function classProperty(key, value, typeAnnotation, decorators, computed, _static) { - return (0, _builder.default)("ClassProperty", ...arguments); -} - -function classPrivateProperty(key, value, decorators, _static) { - return (0, _builder.default)("ClassPrivateProperty", ...arguments); -} - -function classPrivateMethod(kind, key, params, body, _static) { - return (0, _builder.default)("ClassPrivateMethod", ...arguments); -} - -function privateName(id) { - return (0, _builder.default)("PrivateName", ...arguments); -} - -function anyTypeAnnotation() { - return (0, _builder.default)("AnyTypeAnnotation", ...arguments); -} - -function arrayTypeAnnotation(elementType) { - return (0, _builder.default)("ArrayTypeAnnotation", ...arguments); -} - -function booleanTypeAnnotation() { - return (0, _builder.default)("BooleanTypeAnnotation", ...arguments); -} - -function booleanLiteralTypeAnnotation(value) { - return (0, _builder.default)("BooleanLiteralTypeAnnotation", ...arguments); -} - -function nullLiteralTypeAnnotation() { - return (0, _builder.default)("NullLiteralTypeAnnotation", ...arguments); -} - -function classImplements(id, typeParameters) { - return (0, _builder.default)("ClassImplements", ...arguments); -} - -function declareClass(id, typeParameters, _extends, body) { - return (0, _builder.default)("DeclareClass", ...arguments); -} - -function declareFunction(id) { - return (0, _builder.default)("DeclareFunction", ...arguments); -} - -function declareInterface(id, typeParameters, _extends, body) { - return (0, _builder.default)("DeclareInterface", ...arguments); -} - -function declareModule(id, body, kind) { - return (0, _builder.default)("DeclareModule", ...arguments); -} - -function declareModuleExports(typeAnnotation) { - return (0, _builder.default)("DeclareModuleExports", ...arguments); -} - -function declareTypeAlias(id, typeParameters, right) { - return (0, _builder.default)("DeclareTypeAlias", ...arguments); -} - -function declareOpaqueType(id, typeParameters, supertype) { - return (0, _builder.default)("DeclareOpaqueType", ...arguments); -} - -function declareVariable(id) { - return (0, _builder.default)("DeclareVariable", ...arguments); -} - -function declareExportDeclaration(declaration, specifiers, source) { - return (0, _builder.default)("DeclareExportDeclaration", ...arguments); -} - -function declareExportAllDeclaration(source) { - return (0, _builder.default)("DeclareExportAllDeclaration", ...arguments); -} - -function declaredPredicate(value) { - return (0, _builder.default)("DeclaredPredicate", ...arguments); -} - -function existsTypeAnnotation() { - return (0, _builder.default)("ExistsTypeAnnotation", ...arguments); -} - -function functionTypeAnnotation(typeParameters, params, rest, returnType) { - return (0, _builder.default)("FunctionTypeAnnotation", ...arguments); -} - -function functionTypeParam(name, typeAnnotation) { - return (0, _builder.default)("FunctionTypeParam", ...arguments); -} - -function genericTypeAnnotation(id, typeParameters) { - return (0, _builder.default)("GenericTypeAnnotation", ...arguments); -} - -function inferredPredicate() { - return (0, _builder.default)("InferredPredicate", ...arguments); -} - -function interfaceExtends(id, typeParameters) { - return (0, _builder.default)("InterfaceExtends", ...arguments); -} - -function interfaceDeclaration(id, typeParameters, _extends, body) { - return (0, _builder.default)("InterfaceDeclaration", ...arguments); -} - -function interfaceTypeAnnotation(_extends, body) { - return (0, _builder.default)("InterfaceTypeAnnotation", ...arguments); -} - -function intersectionTypeAnnotation(types) { - return (0, _builder.default)("IntersectionTypeAnnotation", ...arguments); -} - -function mixedTypeAnnotation() { - return (0, _builder.default)("MixedTypeAnnotation", ...arguments); -} - -function emptyTypeAnnotation() { - return (0, _builder.default)("EmptyTypeAnnotation", ...arguments); -} - -function nullableTypeAnnotation(typeAnnotation) { - return (0, _builder.default)("NullableTypeAnnotation", ...arguments); -} - -function numberLiteralTypeAnnotation(value) { - return (0, _builder.default)("NumberLiteralTypeAnnotation", ...arguments); -} - -function numberTypeAnnotation() { - return (0, _builder.default)("NumberTypeAnnotation", ...arguments); -} - -function objectTypeAnnotation(properties, indexers, callProperties, internalSlots, exact) { - return (0, _builder.default)("ObjectTypeAnnotation", ...arguments); -} - -function objectTypeInternalSlot(id, value, optional, _static, method) { - return (0, _builder.default)("ObjectTypeInternalSlot", ...arguments); -} - -function objectTypeCallProperty(value) { - return (0, _builder.default)("ObjectTypeCallProperty", ...arguments); -} - -function objectTypeIndexer(id, key, value, variance) { - return (0, _builder.default)("ObjectTypeIndexer", ...arguments); -} - -function objectTypeProperty(key, value, variance) { - return (0, _builder.default)("ObjectTypeProperty", ...arguments); -} - -function objectTypeSpreadProperty(argument) { - return (0, _builder.default)("ObjectTypeSpreadProperty", ...arguments); -} - -function opaqueType(id, typeParameters, supertype, impltype) { - return (0, _builder.default)("OpaqueType", ...arguments); -} - -function qualifiedTypeIdentifier(id, qualification) { - return (0, _builder.default)("QualifiedTypeIdentifier", ...arguments); -} - -function stringLiteralTypeAnnotation(value) { - return (0, _builder.default)("StringLiteralTypeAnnotation", ...arguments); -} - -function stringTypeAnnotation() { - return (0, _builder.default)("StringTypeAnnotation", ...arguments); -} - -function symbolTypeAnnotation() { - return (0, _builder.default)("SymbolTypeAnnotation", ...arguments); -} - -function thisTypeAnnotation() { - return (0, _builder.default)("ThisTypeAnnotation", ...arguments); -} - -function tupleTypeAnnotation(types) { - return (0, _builder.default)("TupleTypeAnnotation", ...arguments); -} - -function typeofTypeAnnotation(argument) { - return (0, _builder.default)("TypeofTypeAnnotation", ...arguments); -} - -function typeAlias(id, typeParameters, right) { - return (0, _builder.default)("TypeAlias", ...arguments); -} - -function typeAnnotation(typeAnnotation) { - return (0, _builder.default)("TypeAnnotation", ...arguments); -} - -function typeCastExpression(expression, typeAnnotation) { - return (0, _builder.default)("TypeCastExpression", ...arguments); -} - -function typeParameter(bound, _default, variance) { - return (0, _builder.default)("TypeParameter", ...arguments); -} - -function typeParameterDeclaration(params) { - return (0, _builder.default)("TypeParameterDeclaration", ...arguments); -} - -function typeParameterInstantiation(params) { - return (0, _builder.default)("TypeParameterInstantiation", ...arguments); -} - -function unionTypeAnnotation(types) { - return (0, _builder.default)("UnionTypeAnnotation", ...arguments); -} - -function variance(kind) { - return (0, _builder.default)("Variance", ...arguments); -} - -function voidTypeAnnotation() { - return (0, _builder.default)("VoidTypeAnnotation", ...arguments); -} - -function enumDeclaration(id, body) { - return (0, _builder.default)("EnumDeclaration", ...arguments); -} - -function enumBooleanBody(members) { - return (0, _builder.default)("EnumBooleanBody", ...arguments); -} - -function enumNumberBody(members) { - return (0, _builder.default)("EnumNumberBody", ...arguments); -} - -function enumStringBody(members) { - return (0, _builder.default)("EnumStringBody", ...arguments); -} - -function enumSymbolBody(members) { - return (0, _builder.default)("EnumSymbolBody", ...arguments); -} - -function enumBooleanMember(id) { - return (0, _builder.default)("EnumBooleanMember", ...arguments); -} - -function enumNumberMember(id, init) { - return (0, _builder.default)("EnumNumberMember", ...arguments); -} - -function enumStringMember(id, init) { - return (0, _builder.default)("EnumStringMember", ...arguments); -} - -function enumDefaultedMember(id) { - return (0, _builder.default)("EnumDefaultedMember", ...arguments); -} - -function indexedAccessType(objectType, indexType) { - return (0, _builder.default)("IndexedAccessType", ...arguments); -} - -function optionalIndexedAccessType(objectType, indexType) { - return (0, _builder.default)("OptionalIndexedAccessType", ...arguments); -} - -function jsxAttribute(name, value) { - return (0, _builder.default)("JSXAttribute", ...arguments); -} - -function jsxClosingElement(name) { - return (0, _builder.default)("JSXClosingElement", ...arguments); -} - -function jsxElement(openingElement, closingElement, children, selfClosing) { - return (0, _builder.default)("JSXElement", ...arguments); -} - -function jsxEmptyExpression() { - return (0, _builder.default)("JSXEmptyExpression", ...arguments); -} - -function jsxExpressionContainer(expression) { - return (0, _builder.default)("JSXExpressionContainer", ...arguments); -} - -function jsxSpreadChild(expression) { - return (0, _builder.default)("JSXSpreadChild", ...arguments); -} - -function jsxIdentifier(name) { - return (0, _builder.default)("JSXIdentifier", ...arguments); -} - -function jsxMemberExpression(object, property) { - return (0, _builder.default)("JSXMemberExpression", ...arguments); -} - -function jsxNamespacedName(namespace, name) { - return (0, _builder.default)("JSXNamespacedName", ...arguments); -} - -function jsxOpeningElement(name, attributes, selfClosing) { - return (0, _builder.default)("JSXOpeningElement", ...arguments); -} - -function jsxSpreadAttribute(argument) { - return (0, _builder.default)("JSXSpreadAttribute", ...arguments); -} - -function jsxText(value) { - return (0, _builder.default)("JSXText", ...arguments); -} - -function jsxFragment(openingFragment, closingFragment, children) { - return (0, _builder.default)("JSXFragment", ...arguments); -} - -function jsxOpeningFragment() { - return (0, _builder.default)("JSXOpeningFragment", ...arguments); -} - -function jsxClosingFragment() { - return (0, _builder.default)("JSXClosingFragment", ...arguments); -} - -function noop() { - return (0, _builder.default)("Noop", ...arguments); -} - -function placeholder(expectedNode, name) { - return (0, _builder.default)("Placeholder", ...arguments); -} - -function v8IntrinsicIdentifier(name) { - return (0, _builder.default)("V8IntrinsicIdentifier", ...arguments); -} - -function argumentPlaceholder() { - return (0, _builder.default)("ArgumentPlaceholder", ...arguments); -} - -function bindExpression(object, callee) { - return (0, _builder.default)("BindExpression", ...arguments); -} - -function importAttribute(key, value) { - return (0, _builder.default)("ImportAttribute", ...arguments); -} - -function decorator(expression) { - return (0, _builder.default)("Decorator", ...arguments); -} - -function doExpression(body, async) { - return (0, _builder.default)("DoExpression", ...arguments); -} - -function exportDefaultSpecifier(exported) { - return (0, _builder.default)("ExportDefaultSpecifier", ...arguments); -} - -function recordExpression(properties) { - return (0, _builder.default)("RecordExpression", ...arguments); -} - -function tupleExpression(elements) { - return (0, _builder.default)("TupleExpression", ...arguments); -} - -function decimalLiteral(value) { - return (0, _builder.default)("DecimalLiteral", ...arguments); -} - -function staticBlock(body) { - return (0, _builder.default)("StaticBlock", ...arguments); -} - -function moduleExpression(body) { - return (0, _builder.default)("ModuleExpression", ...arguments); -} - -function topicReference() { - return (0, _builder.default)("TopicReference", ...arguments); -} - -function pipelineTopicExpression(expression) { - return (0, _builder.default)("PipelineTopicExpression", ...arguments); -} - -function pipelineBareFunction(callee) { - return (0, _builder.default)("PipelineBareFunction", ...arguments); -} - -function pipelinePrimaryTopicReference() { - return (0, _builder.default)("PipelinePrimaryTopicReference", ...arguments); -} - -function tsParameterProperty(parameter) { - return (0, _builder.default)("TSParameterProperty", ...arguments); -} - -function tsDeclareFunction(id, typeParameters, params, returnType) { - return (0, _builder.default)("TSDeclareFunction", ...arguments); -} - -function tsDeclareMethod(decorators, key, typeParameters, params, returnType) { - return (0, _builder.default)("TSDeclareMethod", ...arguments); -} - -function tsQualifiedName(left, right) { - return (0, _builder.default)("TSQualifiedName", ...arguments); -} - -function tsCallSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - return (0, _builder.default)("TSCallSignatureDeclaration", ...arguments); -} - -function tsConstructSignatureDeclaration(typeParameters, parameters, typeAnnotation) { - return (0, _builder.default)("TSConstructSignatureDeclaration", ...arguments); -} - -function tsPropertySignature(key, typeAnnotation, initializer) { - return (0, _builder.default)("TSPropertySignature", ...arguments); -} - -function tsMethodSignature(key, typeParameters, parameters, typeAnnotation) { - return (0, _builder.default)("TSMethodSignature", ...arguments); -} - -function tsIndexSignature(parameters, typeAnnotation) { - return (0, _builder.default)("TSIndexSignature", ...arguments); -} - -function tsAnyKeyword() { - return (0, _builder.default)("TSAnyKeyword", ...arguments); -} - -function tsBooleanKeyword() { - return (0, _builder.default)("TSBooleanKeyword", ...arguments); -} - -function tsBigIntKeyword() { - return (0, _builder.default)("TSBigIntKeyword", ...arguments); -} - -function tsIntrinsicKeyword() { - return (0, _builder.default)("TSIntrinsicKeyword", ...arguments); -} - -function tsNeverKeyword() { - return (0, _builder.default)("TSNeverKeyword", ...arguments); -} - -function tsNullKeyword() { - return (0, _builder.default)("TSNullKeyword", ...arguments); -} - -function tsNumberKeyword() { - return (0, _builder.default)("TSNumberKeyword", ...arguments); -} - -function tsObjectKeyword() { - return (0, _builder.default)("TSObjectKeyword", ...arguments); -} - -function tsStringKeyword() { - return (0, _builder.default)("TSStringKeyword", ...arguments); -} - -function tsSymbolKeyword() { - return (0, _builder.default)("TSSymbolKeyword", ...arguments); -} - -function tsUndefinedKeyword() { - return (0, _builder.default)("TSUndefinedKeyword", ...arguments); -} - -function tsUnknownKeyword() { - return (0, _builder.default)("TSUnknownKeyword", ...arguments); -} - -function tsVoidKeyword() { - return (0, _builder.default)("TSVoidKeyword", ...arguments); -} - -function tsThisType() { - return (0, _builder.default)("TSThisType", ...arguments); -} - -function tsFunctionType(typeParameters, parameters, typeAnnotation) { - return (0, _builder.default)("TSFunctionType", ...arguments); -} - -function tsConstructorType(typeParameters, parameters, typeAnnotation) { - return (0, _builder.default)("TSConstructorType", ...arguments); -} - -function tsTypeReference(typeName, typeParameters) { - return (0, _builder.default)("TSTypeReference", ...arguments); -} - -function tsTypePredicate(parameterName, typeAnnotation, asserts) { - return (0, _builder.default)("TSTypePredicate", ...arguments); -} - -function tsTypeQuery(exprName) { - return (0, _builder.default)("TSTypeQuery", ...arguments); -} - -function tsTypeLiteral(members) { - return (0, _builder.default)("TSTypeLiteral", ...arguments); -} - -function tsArrayType(elementType) { - return (0, _builder.default)("TSArrayType", ...arguments); -} - -function tsTupleType(elementTypes) { - return (0, _builder.default)("TSTupleType", ...arguments); -} - -function tsOptionalType(typeAnnotation) { - return (0, _builder.default)("TSOptionalType", ...arguments); -} - -function tsRestType(typeAnnotation) { - return (0, _builder.default)("TSRestType", ...arguments); -} - -function tsNamedTupleMember(label, elementType, optional) { - return (0, _builder.default)("TSNamedTupleMember", ...arguments); -} - -function tsUnionType(types) { - return (0, _builder.default)("TSUnionType", ...arguments); -} - -function tsIntersectionType(types) { - return (0, _builder.default)("TSIntersectionType", ...arguments); -} - -function tsConditionalType(checkType, extendsType, trueType, falseType) { - return (0, _builder.default)("TSConditionalType", ...arguments); -} - -function tsInferType(typeParameter) { - return (0, _builder.default)("TSInferType", ...arguments); -} - -function tsParenthesizedType(typeAnnotation) { - return (0, _builder.default)("TSParenthesizedType", ...arguments); -} - -function tsTypeOperator(typeAnnotation) { - return (0, _builder.default)("TSTypeOperator", ...arguments); -} - -function tsIndexedAccessType(objectType, indexType) { - return (0, _builder.default)("TSIndexedAccessType", ...arguments); -} - -function tsMappedType(typeParameter, typeAnnotation, nameType) { - return (0, _builder.default)("TSMappedType", ...arguments); -} - -function tsLiteralType(literal) { - return (0, _builder.default)("TSLiteralType", ...arguments); -} - -function tsExpressionWithTypeArguments(expression, typeParameters) { - return (0, _builder.default)("TSExpressionWithTypeArguments", ...arguments); -} - -function tsInterfaceDeclaration(id, typeParameters, _extends, body) { - return (0, _builder.default)("TSInterfaceDeclaration", ...arguments); -} - -function tsInterfaceBody(body) { - return (0, _builder.default)("TSInterfaceBody", ...arguments); -} - -function tsTypeAliasDeclaration(id, typeParameters, typeAnnotation) { - return (0, _builder.default)("TSTypeAliasDeclaration", ...arguments); -} - -function tsAsExpression(expression, typeAnnotation) { - return (0, _builder.default)("TSAsExpression", ...arguments); -} - -function tsTypeAssertion(typeAnnotation, expression) { - return (0, _builder.default)("TSTypeAssertion", ...arguments); -} - -function tsEnumDeclaration(id, members) { - return (0, _builder.default)("TSEnumDeclaration", ...arguments); -} - -function tsEnumMember(id, initializer) { - return (0, _builder.default)("TSEnumMember", ...arguments); -} - -function tsModuleDeclaration(id, body) { - return (0, _builder.default)("TSModuleDeclaration", ...arguments); -} - -function tsModuleBlock(body) { - return (0, _builder.default)("TSModuleBlock", ...arguments); -} - -function tsImportType(argument, qualifier, typeParameters) { - return (0, _builder.default)("TSImportType", ...arguments); -} - -function tsImportEqualsDeclaration(id, moduleReference) { - return (0, _builder.default)("TSImportEqualsDeclaration", ...arguments); -} - -function tsExternalModuleReference(expression) { - return (0, _builder.default)("TSExternalModuleReference", ...arguments); -} - -function tsNonNullExpression(expression) { - return (0, _builder.default)("TSNonNullExpression", ...arguments); -} - -function tsExportAssignment(expression) { - return (0, _builder.default)("TSExportAssignment", ...arguments); -} - -function tsNamespaceExportDeclaration(id) { - return (0, _builder.default)("TSNamespaceExportDeclaration", ...arguments); -} - -function tsTypeAnnotation(typeAnnotation) { - return (0, _builder.default)("TSTypeAnnotation", ...arguments); -} - -function tsTypeParameterInstantiation(params) { - return (0, _builder.default)("TSTypeParameterInstantiation", ...arguments); -} - -function tsTypeParameterDeclaration(params) { - return (0, _builder.default)("TSTypeParameterDeclaration", ...arguments); -} - -function tsTypeParameter(constraint, _default, name) { - return (0, _builder.default)("TSTypeParameter", ...arguments); -} - -function NumberLiteral(...args) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - return (0, _builder.default)("NumberLiteral", ...args); -} - -function RegexLiteral(...args) { - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - return (0, _builder.default)("RegexLiteral", ...args); -} - -function RestProperty(...args) { - console.trace("The node type RestProperty has been renamed to RestElement"); - return (0, _builder.default)("RestProperty", ...args); -} - -function SpreadProperty(...args) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - return (0, _builder.default)("SpreadProperty", ...args); -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js deleted file mode 100644 index 5c5900009f6d97..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/generated/index.js +++ /dev/null @@ -1,99 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.TSBASETYPE_TYPES = exports.TSTYPE_TYPES = exports.TSTYPEELEMENT_TYPES = exports.JSX_TYPES = exports.ENUMMEMBER_TYPES = exports.ENUMBODY_TYPES = exports.FLOWPREDICATE_TYPES = exports.FLOWDECLARATION_TYPES = exports.FLOWBASEANNOTATION_TYPES = exports.FLOWTYPE_TYPES = exports.FLOW_TYPES = exports.PRIVATE_TYPES = exports.MODULESPECIFIER_TYPES = exports.EXPORTDECLARATION_TYPES = exports.MODULEDECLARATION_TYPES = exports.CLASS_TYPES = exports.PATTERN_TYPES = exports.UNARYLIKE_TYPES = exports.PROPERTY_TYPES = exports.OBJECTMEMBER_TYPES = exports.METHOD_TYPES = exports.USERWHITESPACABLE_TYPES = exports.IMMUTABLE_TYPES = exports.LITERAL_TYPES = exports.TSENTITYNAME_TYPES = exports.LVAL_TYPES = exports.PATTERNLIKE_TYPES = exports.DECLARATION_TYPES = exports.PUREISH_TYPES = exports.FUNCTIONPARENT_TYPES = exports.FUNCTION_TYPES = exports.FORXSTATEMENT_TYPES = exports.FOR_TYPES = exports.EXPRESSIONWRAPPER_TYPES = exports.WHILE_TYPES = exports.LOOP_TYPES = exports.CONDITIONAL_TYPES = exports.COMPLETIONSTATEMENT_TYPES = exports.TERMINATORLESS_TYPES = exports.STATEMENT_TYPES = exports.BLOCK_TYPES = exports.BLOCKPARENT_TYPES = exports.SCOPABLE_TYPES = exports.BINARY_TYPES = exports.EXPRESSION_TYPES = void 0; - -var _definitions = require("../../definitions"); - -const EXPRESSION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Expression"]; -exports.EXPRESSION_TYPES = EXPRESSION_TYPES; -const BINARY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Binary"]; -exports.BINARY_TYPES = BINARY_TYPES; -const SCOPABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Scopable"]; -exports.SCOPABLE_TYPES = SCOPABLE_TYPES; -const BLOCKPARENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["BlockParent"]; -exports.BLOCKPARENT_TYPES = BLOCKPARENT_TYPES; -const BLOCK_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Block"]; -exports.BLOCK_TYPES = BLOCK_TYPES; -const STATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Statement"]; -exports.STATEMENT_TYPES = STATEMENT_TYPES; -const TERMINATORLESS_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Terminatorless"]; -exports.TERMINATORLESS_TYPES = TERMINATORLESS_TYPES; -const COMPLETIONSTATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["CompletionStatement"]; -exports.COMPLETIONSTATEMENT_TYPES = COMPLETIONSTATEMENT_TYPES; -const CONDITIONAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Conditional"]; -exports.CONDITIONAL_TYPES = CONDITIONAL_TYPES; -const LOOP_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Loop"]; -exports.LOOP_TYPES = LOOP_TYPES; -const WHILE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["While"]; -exports.WHILE_TYPES = WHILE_TYPES; -const EXPRESSIONWRAPPER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ExpressionWrapper"]; -exports.EXPRESSIONWRAPPER_TYPES = EXPRESSIONWRAPPER_TYPES; -const FOR_TYPES = _definitions.FLIPPED_ALIAS_KEYS["For"]; -exports.FOR_TYPES = FOR_TYPES; -const FORXSTATEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ForXStatement"]; -exports.FORXSTATEMENT_TYPES = FORXSTATEMENT_TYPES; -const FUNCTION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Function"]; -exports.FUNCTION_TYPES = FUNCTION_TYPES; -const FUNCTIONPARENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FunctionParent"]; -exports.FUNCTIONPARENT_TYPES = FUNCTIONPARENT_TYPES; -const PUREISH_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Pureish"]; -exports.PUREISH_TYPES = PUREISH_TYPES; -const DECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Declaration"]; -exports.DECLARATION_TYPES = DECLARATION_TYPES; -const PATTERNLIKE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["PatternLike"]; -exports.PATTERNLIKE_TYPES = PATTERNLIKE_TYPES; -const LVAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["LVal"]; -exports.LVAL_TYPES = LVAL_TYPES; -const TSENTITYNAME_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSEntityName"]; -exports.TSENTITYNAME_TYPES = TSENTITYNAME_TYPES; -const LITERAL_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Literal"]; -exports.LITERAL_TYPES = LITERAL_TYPES; -const IMMUTABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Immutable"]; -exports.IMMUTABLE_TYPES = IMMUTABLE_TYPES; -const USERWHITESPACABLE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["UserWhitespacable"]; -exports.USERWHITESPACABLE_TYPES = USERWHITESPACABLE_TYPES; -const METHOD_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Method"]; -exports.METHOD_TYPES = METHOD_TYPES; -const OBJECTMEMBER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ObjectMember"]; -exports.OBJECTMEMBER_TYPES = OBJECTMEMBER_TYPES; -const PROPERTY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Property"]; -exports.PROPERTY_TYPES = PROPERTY_TYPES; -const UNARYLIKE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["UnaryLike"]; -exports.UNARYLIKE_TYPES = UNARYLIKE_TYPES; -const PATTERN_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Pattern"]; -exports.PATTERN_TYPES = PATTERN_TYPES; -const CLASS_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Class"]; -exports.CLASS_TYPES = CLASS_TYPES; -const MODULEDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ModuleDeclaration"]; -exports.MODULEDECLARATION_TYPES = MODULEDECLARATION_TYPES; -const EXPORTDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ExportDeclaration"]; -exports.EXPORTDECLARATION_TYPES = EXPORTDECLARATION_TYPES; -const MODULESPECIFIER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["ModuleSpecifier"]; -exports.MODULESPECIFIER_TYPES = MODULESPECIFIER_TYPES; -const PRIVATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Private"]; -exports.PRIVATE_TYPES = PRIVATE_TYPES; -const FLOW_TYPES = _definitions.FLIPPED_ALIAS_KEYS["Flow"]; -exports.FLOW_TYPES = FLOW_TYPES; -const FLOWTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowType"]; -exports.FLOWTYPE_TYPES = FLOWTYPE_TYPES; -const FLOWBASEANNOTATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowBaseAnnotation"]; -exports.FLOWBASEANNOTATION_TYPES = FLOWBASEANNOTATION_TYPES; -const FLOWDECLARATION_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowDeclaration"]; -exports.FLOWDECLARATION_TYPES = FLOWDECLARATION_TYPES; -const FLOWPREDICATE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["FlowPredicate"]; -exports.FLOWPREDICATE_TYPES = FLOWPREDICATE_TYPES; -const ENUMBODY_TYPES = _definitions.FLIPPED_ALIAS_KEYS["EnumBody"]; -exports.ENUMBODY_TYPES = ENUMBODY_TYPES; -const ENUMMEMBER_TYPES = _definitions.FLIPPED_ALIAS_KEYS["EnumMember"]; -exports.ENUMMEMBER_TYPES = ENUMMEMBER_TYPES; -const JSX_TYPES = _definitions.FLIPPED_ALIAS_KEYS["JSX"]; -exports.JSX_TYPES = JSX_TYPES; -const TSTYPEELEMENT_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSTypeElement"]; -exports.TSTYPEELEMENT_TYPES = TSTYPEELEMENT_TYPES; -const TSTYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSType"]; -exports.TSTYPE_TYPES = TSTYPE_TYPES; -const TSBASETYPE_TYPES = _definitions.FLIPPED_ALIAS_KEYS["TSBaseType"]; -exports.TSBASETYPE_TYPES = TSBASETYPE_TYPES; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/index.js deleted file mode 100644 index 7553162c6641e6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/constants/index.js +++ /dev/null @@ -1,49 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.NOT_LOCAL_BINDING = exports.BLOCK_SCOPED_SYMBOL = exports.INHERIT_KEYS = exports.UNARY_OPERATORS = exports.STRING_UNARY_OPERATORS = exports.NUMBER_UNARY_OPERATORS = exports.BOOLEAN_UNARY_OPERATORS = exports.ASSIGNMENT_OPERATORS = exports.BINARY_OPERATORS = exports.NUMBER_BINARY_OPERATORS = exports.BOOLEAN_BINARY_OPERATORS = exports.COMPARISON_BINARY_OPERATORS = exports.EQUALITY_BINARY_OPERATORS = exports.BOOLEAN_NUMBER_BINARY_OPERATORS = exports.UPDATE_OPERATORS = exports.LOGICAL_OPERATORS = exports.COMMENT_KEYS = exports.FOR_INIT_KEYS = exports.FLATTENABLE_KEYS = exports.STATEMENT_OR_BLOCK_KEYS = void 0; -const STATEMENT_OR_BLOCK_KEYS = ["consequent", "body", "alternate"]; -exports.STATEMENT_OR_BLOCK_KEYS = STATEMENT_OR_BLOCK_KEYS; -const FLATTENABLE_KEYS = ["body", "expressions"]; -exports.FLATTENABLE_KEYS = FLATTENABLE_KEYS; -const FOR_INIT_KEYS = ["left", "init"]; -exports.FOR_INIT_KEYS = FOR_INIT_KEYS; -const COMMENT_KEYS = ["leadingComments", "trailingComments", "innerComments"]; -exports.COMMENT_KEYS = COMMENT_KEYS; -const LOGICAL_OPERATORS = ["||", "&&", "??"]; -exports.LOGICAL_OPERATORS = LOGICAL_OPERATORS; -const UPDATE_OPERATORS = ["++", "--"]; -exports.UPDATE_OPERATORS = UPDATE_OPERATORS; -const BOOLEAN_NUMBER_BINARY_OPERATORS = [">", "<", ">=", "<="]; -exports.BOOLEAN_NUMBER_BINARY_OPERATORS = BOOLEAN_NUMBER_BINARY_OPERATORS; -const EQUALITY_BINARY_OPERATORS = ["==", "===", "!=", "!=="]; -exports.EQUALITY_BINARY_OPERATORS = EQUALITY_BINARY_OPERATORS; -const COMPARISON_BINARY_OPERATORS = [...EQUALITY_BINARY_OPERATORS, "in", "instanceof"]; -exports.COMPARISON_BINARY_OPERATORS = COMPARISON_BINARY_OPERATORS; -const BOOLEAN_BINARY_OPERATORS = [...COMPARISON_BINARY_OPERATORS, ...BOOLEAN_NUMBER_BINARY_OPERATORS]; -exports.BOOLEAN_BINARY_OPERATORS = BOOLEAN_BINARY_OPERATORS; -const NUMBER_BINARY_OPERATORS = ["-", "/", "%", "*", "**", "&", "|", ">>", ">>>", "<<", "^"]; -exports.NUMBER_BINARY_OPERATORS = NUMBER_BINARY_OPERATORS; -const BINARY_OPERATORS = ["+", ...NUMBER_BINARY_OPERATORS, ...BOOLEAN_BINARY_OPERATORS]; -exports.BINARY_OPERATORS = BINARY_OPERATORS; -const ASSIGNMENT_OPERATORS = ["=", "+=", ...NUMBER_BINARY_OPERATORS.map(op => op + "="), ...LOGICAL_OPERATORS.map(op => op + "=")]; -exports.ASSIGNMENT_OPERATORS = ASSIGNMENT_OPERATORS; -const BOOLEAN_UNARY_OPERATORS = ["delete", "!"]; -exports.BOOLEAN_UNARY_OPERATORS = BOOLEAN_UNARY_OPERATORS; -const NUMBER_UNARY_OPERATORS = ["+", "-", "~"]; -exports.NUMBER_UNARY_OPERATORS = NUMBER_UNARY_OPERATORS; -const STRING_UNARY_OPERATORS = ["typeof"]; -exports.STRING_UNARY_OPERATORS = STRING_UNARY_OPERATORS; -const UNARY_OPERATORS = ["void", "throw", ...BOOLEAN_UNARY_OPERATORS, ...NUMBER_UNARY_OPERATORS, ...STRING_UNARY_OPERATORS]; -exports.UNARY_OPERATORS = UNARY_OPERATORS; -const INHERIT_KEYS = { - optional: ["typeAnnotation", "typeParameters", "returnType"], - force: ["start", "loc", "end"] -}; -exports.INHERIT_KEYS = INHERIT_KEYS; -const BLOCK_SCOPED_SYMBOL = Symbol.for("var used to be block scoped"); -exports.BLOCK_SCOPED_SYMBOL = BLOCK_SCOPED_SYMBOL; -const NOT_LOCAL_BINDING = Symbol.for("should not be considered a local binding"); -exports.NOT_LOCAL_BINDING = NOT_LOCAL_BINDING; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js deleted file mode 100644 index c90f6dfafa24e0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/core.js +++ /dev/null @@ -1,1590 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.classMethodOrDeclareMethodCommon = exports.classMethodOrPropertyCommon = exports.patternLikeCommon = exports.functionDeclarationCommon = exports.functionTypeAnnotationCommon = exports.functionCommon = void 0; - -var _is = require("../validators/is"); - -var _isValidIdentifier = require("../validators/isValidIdentifier"); - -var _helperValidatorIdentifier = require("@babel/helper-validator-identifier"); - -var _constants = require("../constants"); - -var _utils = require("./utils"); - -(0, _utils.default)("ArrayExpression", { - fields: { - elements: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)("null", "Expression", "SpreadElement"))), - default: !process.env.BABEL_TYPES_8_BREAKING ? [] : undefined - } - }, - visitor: ["elements"], - aliases: ["Expression"] -}); -(0, _utils.default)("AssignmentExpression", { - fields: { - operator: { - validate: function () { - if (!process.env.BABEL_TYPES_8_BREAKING) { - return (0, _utils.assertValueType)("string"); - } - - const identifier = (0, _utils.assertOneOf)(..._constants.ASSIGNMENT_OPERATORS); - const pattern = (0, _utils.assertOneOf)("="); - return function (node, key, val) { - const validator = (0, _is.default)("Pattern", node.left) ? pattern : identifier; - validator(node, key, val); - }; - }() - }, - left: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern") - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - } - }, - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Expression"] -}); -(0, _utils.default)("BinaryExpression", { - builder: ["operator", "left", "right"], - fields: { - operator: { - validate: (0, _utils.assertOneOf)(..._constants.BINARY_OPERATORS) - }, - left: { - validate: function () { - const expression = (0, _utils.assertNodeType)("Expression"); - const inOp = (0, _utils.assertNodeType)("Expression", "PrivateName"); - - const validator = function (node, key, val) { - const validator = node.operator === "in" ? inOp : expression; - validator(node, key, val); - }; - - validator.oneOfNodeTypes = ["Expression", "PrivateName"]; - return validator; - }() - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - } - }, - visitor: ["left", "right"], - aliases: ["Binary", "Expression"] -}); -(0, _utils.default)("InterpreterDirective", { - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("string") - } - } -}); -(0, _utils.default)("Directive", { - visitor: ["value"], - fields: { - value: { - validate: (0, _utils.assertNodeType)("DirectiveLiteral") - } - } -}); -(0, _utils.default)("DirectiveLiteral", { - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("string") - } - } -}); -(0, _utils.default)("BlockStatement", { - builder: ["body", "directives"], - visitor: ["directives", "body"], - fields: { - directives: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Directive"))), - default: [] - }, - body: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block", "Statement"] -}); -(0, _utils.default)("BreakStatement", { - visitor: ["label"], - fields: { - label: { - validate: (0, _utils.assertNodeType)("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] -}); -(0, _utils.default)("CallExpression", { - visitor: ["callee", "arguments", "typeParameters", "typeArguments"], - builder: ["callee", "arguments"], - aliases: ["Expression"], - fields: Object.assign({ - callee: { - validate: (0, _utils.assertNodeType)("Expression", "V8IntrinsicIdentifier") - }, - arguments: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) - } - }, !process.env.BABEL_TYPES_8_BREAKING ? { - optional: { - validate: (0, _utils.assertOneOf)(true, false), - optional: true - } - } : {}, { - typeArguments: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation"), - optional: true - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TSTypeParameterInstantiation"), - optional: true - } - }) -}); -(0, _utils.default)("CatchClause", { - visitor: ["param", "body"], - fields: { - param: { - validate: (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }, - aliases: ["Scopable", "BlockParent"] -}); -(0, _utils.default)("ConditionalExpression", { - visitor: ["test", "consequent", "alternate"], - fields: { - test: { - validate: (0, _utils.assertNodeType)("Expression") - }, - consequent: { - validate: (0, _utils.assertNodeType)("Expression") - }, - alternate: { - validate: (0, _utils.assertNodeType)("Expression") - } - }, - aliases: ["Expression", "Conditional"] -}); -(0, _utils.default)("ContinueStatement", { - visitor: ["label"], - fields: { - label: { - validate: (0, _utils.assertNodeType)("Identifier"), - optional: true - } - }, - aliases: ["Statement", "Terminatorless", "CompletionStatement"] -}); -(0, _utils.default)("DebuggerStatement", { - aliases: ["Statement"] -}); -(0, _utils.default)("DoWhileStatement", { - visitor: ["test", "body"], - fields: { - test: { - validate: (0, _utils.assertNodeType)("Expression") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - }, - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"] -}); -(0, _utils.default)("EmptyStatement", { - aliases: ["Statement"] -}); -(0, _utils.default)("ExpressionStatement", { - visitor: ["expression"], - fields: { - expression: { - validate: (0, _utils.assertNodeType)("Expression") - } - }, - aliases: ["Statement", "ExpressionWrapper"] -}); -(0, _utils.default)("File", { - builder: ["program", "comments", "tokens"], - visitor: ["program"], - fields: { - program: { - validate: (0, _utils.assertNodeType)("Program") - }, - comments: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? Object.assign(() => {}, { - each: { - oneOfNodeTypes: ["CommentBlock", "CommentLine"] - } - }) : (0, _utils.assertEach)((0, _utils.assertNodeType)("CommentBlock", "CommentLine")), - optional: true - }, - tokens: { - validate: (0, _utils.assertEach)(Object.assign(() => {}, { - type: "any" - })), - optional: true - } - } -}); -(0, _utils.default)("ForInStatement", { - visitor: ["left", "right", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("VariableDeclaration", "LVal") : (0, _utils.assertNodeType)("VariableDeclaration", "Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern") - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -(0, _utils.default)("ForStatement", { - visitor: ["init", "test", "update", "body"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop"], - fields: { - init: { - validate: (0, _utils.assertNodeType)("VariableDeclaration", "Expression"), - optional: true - }, - test: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - update: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -const functionCommon = { - params: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Identifier", "Pattern", "RestElement"))) - }, - generator: { - default: false - }, - async: { - default: false - } -}; -exports.functionCommon = functionCommon; -const functionTypeAnnotationCommon = { - returnType: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"), - optional: true - } -}; -exports.functionTypeAnnotationCommon = functionTypeAnnotationCommon; -const functionDeclarationCommon = Object.assign({}, functionCommon, { - declare: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - id: { - validate: (0, _utils.assertNodeType)("Identifier"), - optional: true - } -}); -exports.functionDeclarationCommon = functionDeclarationCommon; -(0, _utils.default)("FunctionDeclaration", { - builder: ["id", "params", "body", "generator", "async"], - visitor: ["id", "params", "body", "returnType", "typeParameters"], - fields: Object.assign({}, functionDeclarationCommon, functionTypeAnnotationCommon, { - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }), - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Statement", "Pureish", "Declaration"], - validate: function () { - if (!process.env.BABEL_TYPES_8_BREAKING) return () => {}; - const identifier = (0, _utils.assertNodeType)("Identifier"); - return function (parent, key, node) { - if (!(0, _is.default)("ExportDefaultDeclaration", parent)) { - identifier(node, "id", node.id); - } - }; - }() -}); -(0, _utils.default)("FunctionExpression", { - inherits: "FunctionDeclaration", - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: Object.assign({}, functionCommon, functionTypeAnnotationCommon, { - id: { - validate: (0, _utils.assertNodeType)("Identifier"), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }) -}); -const patternLikeCommon = { - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))) - } -}; -exports.patternLikeCommon = patternLikeCommon; -(0, _utils.default)("Identifier", { - builder: ["name"], - visitor: ["typeAnnotation", "decorators"], - aliases: ["Expression", "PatternLike", "LVal", "TSEntityName"], - fields: Object.assign({}, patternLikeCommon, { - name: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (!(0, _isValidIdentifier.default)(val, false)) { - throw new TypeError(`"${val}" is not a valid identifier name`); - } - }, { - type: "string" - })) - }, - optional: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - }), - - validate(parent, key, node) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - const match = /\.(\w+)$/.exec(key); - if (!match) return; - const [, parentKey] = match; - const nonComp = { - computed: false - }; - - if (parentKey === "property") { - if ((0, _is.default)("MemberExpression", parent, nonComp)) return; - if ((0, _is.default)("OptionalMemberExpression", parent, nonComp)) return; - } else if (parentKey === "key") { - if ((0, _is.default)("Property", parent, nonComp)) return; - if ((0, _is.default)("Method", parent, nonComp)) return; - } else if (parentKey === "exported") { - if ((0, _is.default)("ExportSpecifier", parent)) return; - } else if (parentKey === "imported") { - if ((0, _is.default)("ImportSpecifier", parent, { - imported: node - })) return; - } else if (parentKey === "meta") { - if ((0, _is.default)("MetaProperty", parent, { - meta: node - })) return; - } - - if (((0, _helperValidatorIdentifier.isKeyword)(node.name) || (0, _helperValidatorIdentifier.isReservedWord)(node.name, false)) && node.name !== "this") { - throw new TypeError(`"${node.name}" is not a valid identifier`); - } - } - -}); -(0, _utils.default)("IfStatement", { - visitor: ["test", "consequent", "alternate"], - aliases: ["Statement", "Conditional"], - fields: { - test: { - validate: (0, _utils.assertNodeType)("Expression") - }, - consequent: { - validate: (0, _utils.assertNodeType)("Statement") - }, - alternate: { - optional: true, - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -(0, _utils.default)("LabeledStatement", { - visitor: ["label", "body"], - aliases: ["Statement"], - fields: { - label: { - validate: (0, _utils.assertNodeType)("Identifier") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -(0, _utils.default)("StringLiteral", { - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); -(0, _utils.default)("NumericLiteral", { - builder: ["value"], - deprecatedAlias: "NumberLiteral", - fields: { - value: { - validate: (0, _utils.assertValueType)("number") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); -(0, _utils.default)("NullLiteral", { - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); -(0, _utils.default)("BooleanLiteral", { - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("boolean") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); -(0, _utils.default)("RegExpLiteral", { - builder: ["pattern", "flags"], - deprecatedAlias: "RegexLiteral", - aliases: ["Expression", "Pureish", "Literal"], - fields: { - pattern: { - validate: (0, _utils.assertValueType)("string") - }, - flags: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - const invalid = /[^gimsuy]/.exec(val); - - if (invalid) { - throw new TypeError(`"${invalid[0]}" is not a valid RegExp flag`); - } - }, { - type: "string" - })), - default: "" - } - } -}); -(0, _utils.default)("LogicalExpression", { - builder: ["operator", "left", "right"], - visitor: ["left", "right"], - aliases: ["Binary", "Expression"], - fields: { - operator: { - validate: (0, _utils.assertOneOf)(..._constants.LOGICAL_OPERATORS) - }, - left: { - validate: (0, _utils.assertNodeType)("Expression") - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("MemberExpression", { - builder: ["object", "property", "computed", ...(!process.env.BABEL_TYPES_8_BREAKING ? ["optional"] : [])], - visitor: ["object", "property"], - aliases: ["Expression", "LVal"], - fields: Object.assign({ - object: { - validate: (0, _utils.assertNodeType)("Expression") - }, - property: { - validate: function () { - const normal = (0, _utils.assertNodeType)("Identifier", "PrivateName"); - const computed = (0, _utils.assertNodeType)("Expression"); - - const validator = function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - - validator.oneOfNodeTypes = ["Expression", "Identifier", "PrivateName"]; - return validator; - }() - }, - computed: { - default: false - } - }, !process.env.BABEL_TYPES_8_BREAKING ? { - optional: { - validate: (0, _utils.assertOneOf)(true, false), - optional: true - } - } : {}) -}); -(0, _utils.default)("NewExpression", { - inherits: "CallExpression" -}); -(0, _utils.default)("Program", { - visitor: ["directives", "body"], - builder: ["body", "directives", "sourceType", "interpreter"], - fields: { - sourceFile: { - validate: (0, _utils.assertValueType)("string") - }, - sourceType: { - validate: (0, _utils.assertOneOf)("script", "module"), - default: "script" - }, - interpreter: { - validate: (0, _utils.assertNodeType)("InterpreterDirective"), - default: null, - optional: true - }, - directives: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Directive"))), - default: [] - }, - body: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) - } - }, - aliases: ["Scopable", "BlockParent", "Block"] -}); -(0, _utils.default)("ObjectExpression", { - visitor: ["properties"], - aliases: ["Expression"], - fields: { - properties: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ObjectMethod", "ObjectProperty", "SpreadElement"))) - } - } -}); -(0, _utils.default)("ObjectMethod", { - builder: ["kind", "key", "params", "body", "computed", "generator", "async"], - fields: Object.assign({}, functionCommon, functionTypeAnnotationCommon, { - kind: Object.assign({ - validate: (0, _utils.assertOneOf)("method", "get", "set") - }, !process.env.BABEL_TYPES_8_BREAKING ? { - default: "method" - } : {}), - computed: { - default: false - }, - key: { - validate: function () { - const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); - const computed = (0, _utils.assertNodeType)("Expression"); - - const validator = function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - - validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral"]; - return validator; - }() - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }), - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["UserWhitespacable", "Function", "Scopable", "BlockParent", "FunctionParent", "Method", "ObjectMember"] -}); -(0, _utils.default)("ObjectProperty", { - builder: ["key", "value", "computed", "shorthand", ...(!process.env.BABEL_TYPES_8_BREAKING ? ["decorators"] : [])], - fields: { - computed: { - default: false - }, - key: { - validate: function () { - const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); - const computed = (0, _utils.assertNodeType)("Expression"); - - const validator = function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - - validator.oneOfNodeTypes = ["Expression", "Identifier", "StringLiteral", "NumericLiteral"]; - return validator; - }() - }, - value: { - validate: (0, _utils.assertNodeType)("Expression", "PatternLike") - }, - shorthand: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("boolean"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (val && node.computed) { - throw new TypeError("Property shorthand of ObjectProperty cannot be true if computed is true"); - } - }, { - type: "boolean" - }), function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (val && !(0, _is.default)("Identifier", node.key)) { - throw new TypeError("Property shorthand of ObjectProperty cannot be true if key is not an Identifier"); - } - }), - default: false - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - } - }, - visitor: ["key", "value", "decorators"], - aliases: ["UserWhitespacable", "Property", "ObjectMember"], - validate: function () { - const pattern = (0, _utils.assertNodeType)("Identifier", "Pattern"); - const expression = (0, _utils.assertNodeType)("Expression"); - return function (parent, key, node) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - const validator = (0, _is.default)("ObjectPattern", parent) ? pattern : expression; - validator(node, "value", node.value); - }; - }() -}); -(0, _utils.default)("RestElement", { - visitor: ["argument", "typeAnnotation"], - builder: ["argument"], - aliases: ["LVal", "PatternLike"], - deprecatedAlias: "RestProperty", - fields: Object.assign({}, patternLikeCommon, { - argument: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("LVal") : (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern", "MemberExpression") - }, - optional: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - }), - - validate(parent, key) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - const match = /(\w+)\[(\d+)\]/.exec(key); - if (!match) throw new Error("Internal Babel error: malformed key."); - const [, listKey, index] = match; - - if (parent[listKey].length > index + 1) { - throw new TypeError(`RestElement must be last element of ${listKey}`); - } - } - -}); -(0, _utils.default)("ReturnStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - } - } -}); -(0, _utils.default)("SequenceExpression", { - visitor: ["expressions"], - fields: { - expressions: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression"))) - } - }, - aliases: ["Expression"] -}); -(0, _utils.default)("ParenthesizedExpression", { - visitor: ["expression"], - aliases: ["Expression", "ExpressionWrapper"], - fields: { - expression: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("SwitchCase", { - visitor: ["test", "consequent"], - fields: { - test: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - consequent: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Statement"))) - } - } -}); -(0, _utils.default)("SwitchStatement", { - visitor: ["discriminant", "cases"], - aliases: ["Statement", "BlockParent", "Scopable"], - fields: { - discriminant: { - validate: (0, _utils.assertNodeType)("Expression") - }, - cases: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("SwitchCase"))) - } - } -}); -(0, _utils.default)("ThisExpression", { - aliases: ["Expression"] -}); -(0, _utils.default)("ThrowStatement", { - visitor: ["argument"], - aliases: ["Statement", "Terminatorless", "CompletionStatement"], - fields: { - argument: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("TryStatement", { - visitor: ["block", "handler", "finalizer"], - aliases: ["Statement"], - fields: { - block: { - validate: (0, _utils.chain)((0, _utils.assertNodeType)("BlockStatement"), Object.assign(function (node) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (!node.handler && !node.finalizer) { - throw new TypeError("TryStatement expects either a handler or finalizer, or both"); - } - }, { - oneOfNodeTypes: ["BlockStatement"] - })) - }, - handler: { - optional: true, - validate: (0, _utils.assertNodeType)("CatchClause") - }, - finalizer: { - optional: true, - validate: (0, _utils.assertNodeType)("BlockStatement") - } - } -}); -(0, _utils.default)("UnaryExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - default: true - }, - argument: { - validate: (0, _utils.assertNodeType)("Expression") - }, - operator: { - validate: (0, _utils.assertOneOf)(..._constants.UNARY_OPERATORS) - } - }, - visitor: ["argument"], - aliases: ["UnaryLike", "Expression"] -}); -(0, _utils.default)("UpdateExpression", { - builder: ["operator", "argument", "prefix"], - fields: { - prefix: { - default: false - }, - argument: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertNodeType)("Expression") : (0, _utils.assertNodeType)("Identifier", "MemberExpression") - }, - operator: { - validate: (0, _utils.assertOneOf)(..._constants.UPDATE_OPERATORS) - } - }, - visitor: ["argument"], - aliases: ["Expression"] -}); -(0, _utils.default)("VariableDeclaration", { - builder: ["kind", "declarations"], - visitor: ["declarations"], - aliases: ["Statement", "Declaration"], - fields: { - declare: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - kind: { - validate: (0, _utils.assertOneOf)("var", "let", "const") - }, - declarations: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("VariableDeclarator"))) - } - }, - - validate(parent, key, node) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - if (!(0, _is.default)("ForXStatement", parent, { - left: node - })) return; - - if (node.declarations.length !== 1) { - throw new TypeError(`Exactly one VariableDeclarator is required in the VariableDeclaration of a ${parent.type}`); - } - } - -}); -(0, _utils.default)("VariableDeclarator", { - visitor: ["id", "init"], - fields: { - id: { - validate: function () { - if (!process.env.BABEL_TYPES_8_BREAKING) { - return (0, _utils.assertNodeType)("LVal"); - } - - const normal = (0, _utils.assertNodeType)("Identifier", "ArrayPattern", "ObjectPattern"); - const without = (0, _utils.assertNodeType)("Identifier"); - return function (node, key, val) { - const validator = node.init ? normal : without; - validator(node, key, val); - }; - }() - }, - definite: { - optional: true, - validate: (0, _utils.assertValueType)("boolean") - }, - init: { - optional: true, - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("WhileStatement", { - visitor: ["test", "body"], - aliases: ["Statement", "BlockParent", "Loop", "While", "Scopable"], - fields: { - test: { - validate: (0, _utils.assertNodeType)("Expression") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -(0, _utils.default)("WithStatement", { - visitor: ["object", "body"], - aliases: ["Statement"], - fields: { - object: { - validate: (0, _utils.assertNodeType)("Expression") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - } - } -}); -(0, _utils.default)("AssignmentPattern", { - visitor: ["left", "right", "decorators"], - builder: ["left", "right"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon, { - left: { - validate: (0, _utils.assertNodeType)("Identifier", "ObjectPattern", "ArrayPattern", "MemberExpression") - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - } - }) -}); -(0, _utils.default)("ArrayPattern", { - visitor: ["elements", "typeAnnotation"], - builder: ["elements"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon, { - elements: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeOrValueType)("null", "PatternLike"))) - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - optional: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - }) -}); -(0, _utils.default)("ArrowFunctionExpression", { - builder: ["params", "body", "async"], - visitor: ["params", "body", "returnType", "typeParameters"], - aliases: ["Scopable", "Function", "BlockParent", "FunctionParent", "Expression", "Pureish"], - fields: Object.assign({}, functionCommon, functionTypeAnnotationCommon, { - expression: { - validate: (0, _utils.assertValueType)("boolean") - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement", "Expression") - } - }) -}); -(0, _utils.default)("ClassBody", { - visitor: ["body"], - fields: { - body: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ClassMethod", "ClassPrivateMethod", "ClassProperty", "ClassPrivateProperty", "TSDeclareMethod", "TSIndexSignature"))) - } - } -}); -(0, _utils.default)("ClassExpression", { - builder: ["id", "superClass", "body", "decorators"], - visitor: ["id", "body", "superClass", "mixins", "typeParameters", "superTypeParameters", "implements", "decorators"], - aliases: ["Scopable", "Class", "Expression"], - fields: { - id: { - validate: (0, _utils.assertNodeType)("Identifier"), - optional: true - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("ClassBody") - }, - superClass: { - optional: true, - validate: (0, _utils.assertNodeType)("Expression") - }, - superTypeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - }, - implements: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - mixins: { - validate: (0, _utils.assertNodeType)("InterfaceExtends"), - optional: true - } - } -}); -(0, _utils.default)("ClassDeclaration", { - inherits: "ClassExpression", - aliases: ["Scopable", "Class", "Statement", "Declaration"], - fields: { - id: { - validate: (0, _utils.assertNodeType)("Identifier") - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterDeclaration", "TSTypeParameterDeclaration", "Noop"), - optional: true - }, - body: { - validate: (0, _utils.assertNodeType)("ClassBody") - }, - superClass: { - optional: true, - validate: (0, _utils.assertNodeType)("Expression") - }, - superTypeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - }, - implements: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSExpressionWithTypeArguments", "ClassImplements"))), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - mixins: { - validate: (0, _utils.assertNodeType)("InterfaceExtends"), - optional: true - }, - declare: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - abstract: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - }, - validate: function () { - const identifier = (0, _utils.assertNodeType)("Identifier"); - return function (parent, key, node) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (!(0, _is.default)("ExportDefaultDeclaration", parent)) { - identifier(node, "id", node.id); - } - }; - }() -}); -(0, _utils.default)("ExportAllDeclaration", { - visitor: ["source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - source: { - validate: (0, _utils.assertNodeType)("StringLiteral") - }, - exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")), - assertions: { - optional: true, - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) - } - } -}); -(0, _utils.default)("ExportDefaultDeclaration", { - visitor: ["declaration"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - validate: (0, _utils.assertNodeType)("FunctionDeclaration", "TSDeclareFunction", "ClassDeclaration", "Expression") - }, - exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("value")) - } -}); -(0, _utils.default)("ExportNamedDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration", "ExportDeclaration"], - fields: { - declaration: { - optional: true, - validate: (0, _utils.chain)((0, _utils.assertNodeType)("Declaration"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (val && node.specifiers.length) { - throw new TypeError("Only declaration or specifiers is allowed on ExportNamedDeclaration"); - } - }, { - oneOfNodeTypes: ["Declaration"] - }), function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (val && node.source) { - throw new TypeError("Cannot export a declaration from a source"); - } - }) - }, - assertions: { - optional: true, - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) - }, - specifiers: { - default: [], - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)(function () { - const sourced = (0, _utils.assertNodeType)("ExportSpecifier", "ExportDefaultSpecifier", "ExportNamespaceSpecifier"); - const sourceless = (0, _utils.assertNodeType)("ExportSpecifier"); - if (!process.env.BABEL_TYPES_8_BREAKING) return sourced; - return function (node, key, val) { - const validator = node.source ? sourced : sourceless; - validator(node, key, val); - }; - }())) - }, - source: { - validate: (0, _utils.assertNodeType)("StringLiteral"), - optional: true - }, - exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")) - } -}); -(0, _utils.default)("ExportSpecifier", { - visitor: ["local", "exported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: (0, _utils.assertNodeType)("Identifier") - }, - exported: { - validate: (0, _utils.assertNodeType)("Identifier", "StringLiteral") - } - } -}); -(0, _utils.default)("ForOfStatement", { - visitor: ["left", "right", "body"], - builder: ["left", "right", "body", "await"], - aliases: ["Scopable", "Statement", "For", "BlockParent", "Loop", "ForXStatement"], - fields: { - left: { - validate: function () { - if (!process.env.BABEL_TYPES_8_BREAKING) { - return (0, _utils.assertNodeType)("VariableDeclaration", "LVal"); - } - - const declaration = (0, _utils.assertNodeType)("VariableDeclaration"); - const lval = (0, _utils.assertNodeType)("Identifier", "MemberExpression", "ArrayPattern", "ObjectPattern"); - return function (node, key, val) { - if ((0, _is.default)("VariableDeclaration", val)) { - declaration(node, key, val); - } else { - lval(node, key, val); - } - }; - }() - }, - right: { - validate: (0, _utils.assertNodeType)("Expression") - }, - body: { - validate: (0, _utils.assertNodeType)("Statement") - }, - await: { - default: false - } - } -}); -(0, _utils.default)("ImportDeclaration", { - visitor: ["specifiers", "source"], - aliases: ["Statement", "Declaration", "ModuleDeclaration"], - fields: { - assertions: { - optional: true, - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportAttribute"))) - }, - specifiers: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("ImportSpecifier", "ImportDefaultSpecifier", "ImportNamespaceSpecifier"))) - }, - source: { - validate: (0, _utils.assertNodeType)("StringLiteral") - }, - importKind: { - validate: (0, _utils.assertOneOf)("type", "typeof", "value"), - optional: true - } - } -}); -(0, _utils.default)("ImportDefaultSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); -(0, _utils.default)("ImportNamespaceSpecifier", { - visitor: ["local"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); -(0, _utils.default)("ImportSpecifier", { - visitor: ["local", "imported"], - aliases: ["ModuleSpecifier"], - fields: { - local: { - validate: (0, _utils.assertNodeType)("Identifier") - }, - imported: { - validate: (0, _utils.assertNodeType)("Identifier", "StringLiteral") - }, - importKind: { - validate: (0, _utils.assertOneOf)("type", "typeof"), - optional: true - } - } -}); -(0, _utils.default)("MetaProperty", { - visitor: ["meta", "property"], - aliases: ["Expression"], - fields: { - meta: { - validate: (0, _utils.chain)((0, _utils.assertNodeType)("Identifier"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - let property; - - switch (val.name) { - case "function": - property = "sent"; - break; - - case "new": - property = "target"; - break; - - case "import": - property = "meta"; - break; - } - - if (!(0, _is.default)("Identifier", node.property, { - name: property - })) { - throw new TypeError("Unrecognised MetaProperty"); - } - }, { - oneOfNodeTypes: ["Identifier"] - })) - }, - property: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); -const classMethodOrPropertyCommon = { - abstract: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - accessibility: { - validate: (0, _utils.assertOneOf)("public", "private", "protected"), - optional: true - }, - static: { - default: false - }, - override: { - default: false - }, - computed: { - default: false - }, - optional: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - key: { - validate: (0, _utils.chain)(function () { - const normal = (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral"); - const computed = (0, _utils.assertNodeType)("Expression"); - return function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - }(), (0, _utils.assertNodeType)("Identifier", "StringLiteral", "NumericLiteral", "Expression")) - } -}; -exports.classMethodOrPropertyCommon = classMethodOrPropertyCommon; -const classMethodOrDeclareMethodCommon = Object.assign({}, functionCommon, classMethodOrPropertyCommon, { - params: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Identifier", "Pattern", "RestElement", "TSParameterProperty"))) - }, - kind: { - validate: (0, _utils.assertOneOf)("get", "set", "method", "constructor"), - default: "method" - }, - access: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("string"), (0, _utils.assertOneOf)("public", "private", "protected")), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - } -}); -exports.classMethodOrDeclareMethodCommon = classMethodOrDeclareMethodCommon; -(0, _utils.default)("ClassMethod", { - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method"], - builder: ["kind", "key", "params", "body", "computed", "static", "generator", "async"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - fields: Object.assign({}, classMethodOrDeclareMethodCommon, functionTypeAnnotationCommon, { - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }) -}); -(0, _utils.default)("ObjectPattern", { - visitor: ["properties", "typeAnnotation", "decorators"], - builder: ["properties"], - aliases: ["Pattern", "PatternLike", "LVal"], - fields: Object.assign({}, patternLikeCommon, { - properties: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("RestElement", "ObjectProperty"))) - } - }) -}); -(0, _utils.default)("SpreadElement", { - visitor: ["argument"], - aliases: ["UnaryLike"], - deprecatedAlias: "SpreadProperty", - fields: { - argument: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("Super", { - aliases: ["Expression"] -}); -(0, _utils.default)("TaggedTemplateExpression", { - visitor: ["tag", "quasi", "typeParameters"], - builder: ["tag", "quasi"], - aliases: ["Expression"], - fields: { - tag: { - validate: (0, _utils.assertNodeType)("Expression") - }, - quasi: { - validate: (0, _utils.assertNodeType)("TemplateLiteral") - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - } - } -}); -(0, _utils.default)("TemplateElement", { - builder: ["value", "tail"], - fields: { - value: { - validate: (0, _utils.assertShape)({ - raw: { - validate: (0, _utils.assertValueType)("string") - }, - cooked: { - validate: (0, _utils.assertValueType)("string"), - optional: true - } - }) - }, - tail: { - default: false - } - } -}); -(0, _utils.default)("TemplateLiteral", { - visitor: ["quasis", "expressions"], - aliases: ["Expression", "Literal"], - fields: { - quasis: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TemplateElement"))) - }, - expressions: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "TSType")), function (node, key, val) { - if (node.quasis.length !== val.length + 1) { - throw new TypeError(`Number of ${node.type} quasis should be exactly one more than the number of expressions.\nExpected ${val.length + 1} quasis but got ${node.quasis.length}`); - } - }) - } - } -}); -(0, _utils.default)("YieldExpression", { - builder: ["argument", "delegate"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - delegate: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("boolean"), Object.assign(function (node, key, val) { - if (!process.env.BABEL_TYPES_8_BREAKING) return; - - if (val && !node.argument) { - throw new TypeError("Property delegate of YieldExpression cannot be true if there is no argument"); - } - }, { - type: "boolean" - })), - default: false - }, - argument: { - optional: true, - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("AwaitExpression", { - builder: ["argument"], - visitor: ["argument"], - aliases: ["Expression", "Terminatorless"], - fields: { - argument: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("Import", { - aliases: ["Expression"] -}); -(0, _utils.default)("BigIntLiteral", { - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("string") - } - }, - aliases: ["Expression", "Pureish", "Literal", "Immutable"] -}); -(0, _utils.default)("ExportNamespaceSpecifier", { - visitor: ["exported"], - aliases: ["ModuleSpecifier"], - fields: { - exported: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); -(0, _utils.default)("OptionalMemberExpression", { - builder: ["object", "property", "computed", "optional"], - visitor: ["object", "property"], - aliases: ["Expression"], - fields: { - object: { - validate: (0, _utils.assertNodeType)("Expression") - }, - property: { - validate: function () { - const normal = (0, _utils.assertNodeType)("Identifier"); - const computed = (0, _utils.assertNodeType)("Expression"); - - const validator = function (node, key, val) { - const validator = node.computed ? computed : normal; - validator(node, key, val); - }; - - validator.oneOfNodeTypes = ["Expression", "Identifier"]; - return validator; - }() - }, - computed: { - default: false - }, - optional: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)("boolean") : (0, _utils.chain)((0, _utils.assertValueType)("boolean"), (0, _utils.assertOptionalChainStart)()) - } - } -}); -(0, _utils.default)("OptionalCallExpression", { - visitor: ["callee", "arguments", "typeParameters", "typeArguments"], - builder: ["callee", "arguments", "optional"], - aliases: ["Expression"], - fields: { - callee: { - validate: (0, _utils.assertNodeType)("Expression") - }, - arguments: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Expression", "SpreadElement", "JSXNamespacedName", "ArgumentPlaceholder"))) - }, - optional: { - validate: !process.env.BABEL_TYPES_8_BREAKING ? (0, _utils.assertValueType)("boolean") : (0, _utils.chain)((0, _utils.assertValueType)("boolean"), (0, _utils.assertOptionalChainStart)()) - }, - typeArguments: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation"), - optional: true - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TSTypeParameterInstantiation"), - optional: true - } - } -}); -(0, _utils.default)("ClassProperty", { - visitor: ["key", "value", "typeAnnotation", "decorators"], - builder: ["key", "value", "typeAnnotation", "decorators", "computed", "static"], - aliases: ["Property"], - fields: Object.assign({}, classMethodOrPropertyCommon, { - value: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - definite: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - readonly: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - declare: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - variance: { - validate: (0, _utils.assertNodeType)("Variance"), - optional: true - } - }) -}); -(0, _utils.default)("ClassPrivateProperty", { - visitor: ["key", "value", "decorators", "typeAnnotation"], - builder: ["key", "value", "decorators", "static"], - aliases: ["Property", "Private"], - fields: { - key: { - validate: (0, _utils.assertNodeType)("PrivateName") - }, - value: { - validate: (0, _utils.assertNodeType)("Expression"), - optional: true - }, - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TypeAnnotation", "TSTypeAnnotation", "Noop"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - }, - readonly: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - definite: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - variance: { - validate: (0, _utils.assertNodeType)("Variance"), - optional: true - } - } -}); -(0, _utils.default)("ClassPrivateMethod", { - builder: ["kind", "key", "params", "body", "static"], - visitor: ["key", "params", "body", "decorators", "returnType", "typeParameters"], - aliases: ["Function", "Scopable", "BlockParent", "FunctionParent", "Method", "Private"], - fields: Object.assign({}, classMethodOrDeclareMethodCommon, functionTypeAnnotationCommon, { - key: { - validate: (0, _utils.assertNodeType)("PrivateName") - }, - body: { - validate: (0, _utils.assertNodeType)("BlockStatement") - } - }) -}); -(0, _utils.default)("PrivateName", { - visitor: ["id"], - aliases: ["Private"], - fields: { - id: { - validate: (0, _utils.assertNodeType)("Identifier") - } - } -}); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js deleted file mode 100644 index e658a91d5484d2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/flow.js +++ /dev/null @@ -1,481 +0,0 @@ -"use strict"; - -var _utils = require("./utils"); - -const defineInterfaceishType = (name, typeParameterType = "TypeParameterDeclaration") => { - (0, _utils.default)(name, { - builder: ["id", "typeParameters", "extends", "body"], - visitor: ["id", "typeParameters", "extends", "mixins", "implements", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)(typeParameterType), - extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), - mixins: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), - implements: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ClassImplements")), - body: (0, _utils.validateType)("ObjectTypeAnnotation") - } - }); -}; - -(0, _utils.default)("AnyTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("ArrayTypeAnnotation", { - visitor: ["elementType"], - aliases: ["Flow", "FlowType"], - fields: { - elementType: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("BooleanTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("BooleanLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["Flow", "FlowType"], - fields: { - value: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("NullLiteralTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("ClassImplements", { - visitor: ["id", "typeParameters"], - aliases: ["Flow"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") - } -}); -defineInterfaceishType("DeclareClass"); -(0, _utils.default)("DeclareFunction", { - visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - predicate: (0, _utils.validateOptionalType)("DeclaredPredicate") - } -}); -defineInterfaceishType("DeclareInterface"); -(0, _utils.default)("DeclareModule", { - builder: ["id", "body", "kind"], - visitor: ["id", "body"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), - body: (0, _utils.validateType)("BlockStatement"), - kind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("CommonJS", "ES")) - } -}); -(0, _utils.default)("DeclareModuleExports", { - visitor: ["typeAnnotation"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - typeAnnotation: (0, _utils.validateType)("TypeAnnotation") - } -}); -(0, _utils.default)("DeclareTypeAlias", { - visitor: ["id", "typeParameters", "right"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - right: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("DeclareOpaqueType", { - visitor: ["id", "typeParameters", "supertype"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - supertype: (0, _utils.validateOptionalType)("FlowType"), - impltype: (0, _utils.validateOptionalType)("FlowType") - } -}); -(0, _utils.default)("DeclareVariable", { - visitor: ["id"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier") - } -}); -(0, _utils.default)("DeclareExportDeclaration", { - visitor: ["declaration", "specifiers", "source"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - declaration: (0, _utils.validateOptionalType)("Flow"), - specifiers: (0, _utils.validateOptional)((0, _utils.arrayOfType)(["ExportSpecifier", "ExportNamespaceSpecifier"])), - source: (0, _utils.validateOptionalType)("StringLiteral"), - default: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("DeclareExportAllDeclaration", { - visitor: ["source"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - source: (0, _utils.validateType)("StringLiteral"), - exportKind: (0, _utils.validateOptional)((0, _utils.assertOneOf)("type", "value")) - } -}); -(0, _utils.default)("DeclaredPredicate", { - visitor: ["value"], - aliases: ["Flow", "FlowPredicate"], - fields: { - value: (0, _utils.validateType)("Flow") - } -}); -(0, _utils.default)("ExistsTypeAnnotation", { - aliases: ["Flow", "FlowType"] -}); -(0, _utils.default)("FunctionTypeAnnotation", { - visitor: ["typeParameters", "params", "rest", "returnType"], - aliases: ["Flow", "FlowType"], - fields: { - typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - params: (0, _utils.validate)((0, _utils.arrayOfType)("FunctionTypeParam")), - rest: (0, _utils.validateOptionalType)("FunctionTypeParam"), - this: (0, _utils.validateOptionalType)("FunctionTypeParam"), - returnType: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("FunctionTypeParam", { - visitor: ["name", "typeAnnotation"], - aliases: ["Flow"], - fields: { - name: (0, _utils.validateOptionalType)("Identifier"), - typeAnnotation: (0, _utils.validateType)("FlowType"), - optional: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("GenericTypeAnnotation", { - visitor: ["id", "typeParameters"], - aliases: ["Flow", "FlowType"], - fields: { - id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") - } -}); -(0, _utils.default)("InferredPredicate", { - aliases: ["Flow", "FlowPredicate"] -}); -(0, _utils.default)("InterfaceExtends", { - visitor: ["id", "typeParameters"], - aliases: ["Flow"], - fields: { - id: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterInstantiation") - } -}); -defineInterfaceishType("InterfaceDeclaration"); -(0, _utils.default)("InterfaceTypeAnnotation", { - visitor: ["extends", "body"], - aliases: ["Flow", "FlowType"], - fields: { - extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("InterfaceExtends")), - body: (0, _utils.validateType)("ObjectTypeAnnotation") - } -}); -(0, _utils.default)("IntersectionTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow", "FlowType"], - fields: { - types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) - } -}); -(0, _utils.default)("MixedTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("EmptyTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("NullableTypeAnnotation", { - visitor: ["typeAnnotation"], - aliases: ["Flow", "FlowType"], - fields: { - typeAnnotation: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("NumberLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["Flow", "FlowType"], - fields: { - value: (0, _utils.validate)((0, _utils.assertValueType)("number")) - } -}); -(0, _utils.default)("NumberTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("ObjectTypeAnnotation", { - visitor: ["properties", "indexers", "callProperties", "internalSlots"], - aliases: ["Flow", "FlowType"], - builder: ["properties", "indexers", "callProperties", "internalSlots", "exact"], - fields: { - properties: (0, _utils.validate)((0, _utils.arrayOfType)(["ObjectTypeProperty", "ObjectTypeSpreadProperty"])), - indexers: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeIndexer")), - callProperties: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeCallProperty")), - internalSlots: (0, _utils.validateOptional)((0, _utils.arrayOfType)("ObjectTypeInternalSlot")), - exact: { - validate: (0, _utils.assertValueType)("boolean"), - default: false - }, - inexact: (0, _utils.validateOptional)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("ObjectTypeInternalSlot", { - visitor: ["id", "value", "optional", "static", "method"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - id: (0, _utils.validateType)("Identifier"), - value: (0, _utils.validateType)("FlowType"), - optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - method: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("ObjectTypeCallProperty", { - visitor: ["value"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - value: (0, _utils.validateType)("FlowType"), - static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("ObjectTypeIndexer", { - visitor: ["id", "key", "value", "variance"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - id: (0, _utils.validateOptionalType)("Identifier"), - key: (0, _utils.validateType)("FlowType"), - value: (0, _utils.validateType)("FlowType"), - static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - variance: (0, _utils.validateOptionalType)("Variance") - } -}); -(0, _utils.default)("ObjectTypeProperty", { - visitor: ["key", "value", "variance"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - key: (0, _utils.validateType)(["Identifier", "StringLiteral"]), - value: (0, _utils.validateType)("FlowType"), - kind: (0, _utils.validate)((0, _utils.assertOneOf)("init", "get", "set")), - static: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - proto: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - variance: (0, _utils.validateOptionalType)("Variance"), - method: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("ObjectTypeSpreadProperty", { - visitor: ["argument"], - aliases: ["Flow", "UserWhitespacable"], - fields: { - argument: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("OpaqueType", { - visitor: ["id", "typeParameters", "supertype", "impltype"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - supertype: (0, _utils.validateOptionalType)("FlowType"), - impltype: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("QualifiedTypeIdentifier", { - visitor: ["id", "qualification"], - aliases: ["Flow"], - fields: { - id: (0, _utils.validateType)("Identifier"), - qualification: (0, _utils.validateType)(["Identifier", "QualifiedTypeIdentifier"]) - } -}); -(0, _utils.default)("StringLiteralTypeAnnotation", { - builder: ["value"], - aliases: ["Flow", "FlowType"], - fields: { - value: (0, _utils.validate)((0, _utils.assertValueType)("string")) - } -}); -(0, _utils.default)("StringTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("SymbolTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("ThisTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("TupleTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow", "FlowType"], - fields: { - types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) - } -}); -(0, _utils.default)("TypeofTypeAnnotation", { - visitor: ["argument"], - aliases: ["Flow", "FlowType"], - fields: { - argument: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("TypeAlias", { - visitor: ["id", "typeParameters", "right"], - aliases: ["Flow", "FlowDeclaration", "Statement", "Declaration"], - fields: { - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TypeParameterDeclaration"), - right: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("TypeAnnotation", { - aliases: ["Flow"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("TypeCastExpression", { - visitor: ["expression", "typeAnnotation"], - aliases: ["Flow", "ExpressionWrapper", "Expression"], - fields: { - expression: (0, _utils.validateType)("Expression"), - typeAnnotation: (0, _utils.validateType)("TypeAnnotation") - } -}); -(0, _utils.default)("TypeParameter", { - aliases: ["Flow"], - visitor: ["bound", "default", "variance"], - fields: { - name: (0, _utils.validate)((0, _utils.assertValueType)("string")), - bound: (0, _utils.validateOptionalType)("TypeAnnotation"), - default: (0, _utils.validateOptionalType)("FlowType"), - variance: (0, _utils.validateOptionalType)("Variance") - } -}); -(0, _utils.default)("TypeParameterDeclaration", { - aliases: ["Flow"], - visitor: ["params"], - fields: { - params: (0, _utils.validate)((0, _utils.arrayOfType)("TypeParameter")) - } -}); -(0, _utils.default)("TypeParameterInstantiation", { - aliases: ["Flow"], - visitor: ["params"], - fields: { - params: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) - } -}); -(0, _utils.default)("UnionTypeAnnotation", { - visitor: ["types"], - aliases: ["Flow", "FlowType"], - fields: { - types: (0, _utils.validate)((0, _utils.arrayOfType)("FlowType")) - } -}); -(0, _utils.default)("Variance", { - aliases: ["Flow"], - builder: ["kind"], - fields: { - kind: (0, _utils.validate)((0, _utils.assertOneOf)("minus", "plus")) - } -}); -(0, _utils.default)("VoidTypeAnnotation", { - aliases: ["Flow", "FlowType", "FlowBaseAnnotation"] -}); -(0, _utils.default)("EnumDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "body"], - fields: { - id: (0, _utils.validateType)("Identifier"), - body: (0, _utils.validateType)(["EnumBooleanBody", "EnumNumberBody", "EnumStringBody", "EnumSymbolBody"]) - } -}); -(0, _utils.default)("EnumBooleanBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - members: (0, _utils.validateArrayOfType)("EnumBooleanMember"), - hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("EnumNumberBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - members: (0, _utils.validateArrayOfType)("EnumNumberMember"), - hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("EnumStringBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - explicitType: (0, _utils.validate)((0, _utils.assertValueType)("boolean")), - members: (0, _utils.validateArrayOfType)(["EnumStringMember", "EnumDefaultedMember"]), - hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("EnumSymbolBody", { - aliases: ["EnumBody"], - visitor: ["members"], - fields: { - members: (0, _utils.validateArrayOfType)("EnumDefaultedMember"), - hasUnknownMembers: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); -(0, _utils.default)("EnumBooleanMember", { - aliases: ["EnumMember"], - visitor: ["id"], - fields: { - id: (0, _utils.validateType)("Identifier"), - init: (0, _utils.validateType)("BooleanLiteral") - } -}); -(0, _utils.default)("EnumNumberMember", { - aliases: ["EnumMember"], - visitor: ["id", "init"], - fields: { - id: (0, _utils.validateType)("Identifier"), - init: (0, _utils.validateType)("NumericLiteral") - } -}); -(0, _utils.default)("EnumStringMember", { - aliases: ["EnumMember"], - visitor: ["id", "init"], - fields: { - id: (0, _utils.validateType)("Identifier"), - init: (0, _utils.validateType)("StringLiteral") - } -}); -(0, _utils.default)("EnumDefaultedMember", { - aliases: ["EnumMember"], - visitor: ["id"], - fields: { - id: (0, _utils.validateType)("Identifier") - } -}); -(0, _utils.default)("IndexedAccessType", { - visitor: ["objectType", "indexType"], - aliases: ["Flow", "FlowType"], - fields: { - objectType: (0, _utils.validateType)("FlowType"), - indexType: (0, _utils.validateType)("FlowType") - } -}); -(0, _utils.default)("OptionalIndexedAccessType", { - visitor: ["objectType", "indexType"], - aliases: ["Flow", "FlowType"], - fields: { - objectType: (0, _utils.validateType)("FlowType"), - indexType: (0, _utils.validateType)("FlowType"), - optional: (0, _utils.validate)((0, _utils.assertValueType)("boolean")) - } -}); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/index.js deleted file mode 100644 index 897fc24d3610b9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/index.js +++ /dev/null @@ -1,103 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -Object.defineProperty(exports, "VISITOR_KEYS", { - enumerable: true, - get: function () { - return _utils.VISITOR_KEYS; - } -}); -Object.defineProperty(exports, "ALIAS_KEYS", { - enumerable: true, - get: function () { - return _utils.ALIAS_KEYS; - } -}); -Object.defineProperty(exports, "FLIPPED_ALIAS_KEYS", { - enumerable: true, - get: function () { - return _utils.FLIPPED_ALIAS_KEYS; - } -}); -Object.defineProperty(exports, "NODE_FIELDS", { - enumerable: true, - get: function () { - return _utils.NODE_FIELDS; - } -}); -Object.defineProperty(exports, "BUILDER_KEYS", { - enumerable: true, - get: function () { - return _utils.BUILDER_KEYS; - } -}); -Object.defineProperty(exports, "DEPRECATED_KEYS", { - enumerable: true, - get: function () { - return _utils.DEPRECATED_KEYS; - } -}); -Object.defineProperty(exports, "NODE_PARENT_VALIDATIONS", { - enumerable: true, - get: function () { - return _utils.NODE_PARENT_VALIDATIONS; - } -}); -Object.defineProperty(exports, "PLACEHOLDERS", { - enumerable: true, - get: function () { - return _placeholders.PLACEHOLDERS; - } -}); -Object.defineProperty(exports, "PLACEHOLDERS_ALIAS", { - enumerable: true, - get: function () { - return _placeholders.PLACEHOLDERS_ALIAS; - } -}); -Object.defineProperty(exports, "PLACEHOLDERS_FLIPPED_ALIAS", { - enumerable: true, - get: function () { - return _placeholders.PLACEHOLDERS_FLIPPED_ALIAS; - } -}); -exports.TYPES = void 0; - -var _toFastProperties = require("to-fast-properties"); - -require("./core"); - -require("./flow"); - -require("./jsx"); - -require("./misc"); - -require("./experimental"); - -require("./typescript"); - -var _utils = require("./utils"); - -var _placeholders = require("./placeholders"); - -_toFastProperties(_utils.VISITOR_KEYS); - -_toFastProperties(_utils.ALIAS_KEYS); - -_toFastProperties(_utils.FLIPPED_ALIAS_KEYS); - -_toFastProperties(_utils.NODE_FIELDS); - -_toFastProperties(_utils.BUILDER_KEYS); - -_toFastProperties(_utils.DEPRECATED_KEYS); - -_toFastProperties(_placeholders.PLACEHOLDERS_ALIAS); - -_toFastProperties(_placeholders.PLACEHOLDERS_FLIPPED_ALIAS); - -const TYPES = Object.keys(_utils.VISITOR_KEYS).concat(Object.keys(_utils.FLIPPED_ALIAS_KEYS)).concat(Object.keys(_utils.DEPRECATED_KEYS)); -exports.TYPES = TYPES; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/jsx.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/jsx.js deleted file mode 100644 index fc8e9071c37c8d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/jsx.js +++ /dev/null @@ -1,161 +0,0 @@ -"use strict"; - -var _utils = require("./utils"); - -(0, _utils.default)("JSXAttribute", { - visitor: ["name", "value"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXNamespacedName") - }, - value: { - optional: true, - validate: (0, _utils.assertNodeType)("JSXElement", "JSXFragment", "StringLiteral", "JSXExpressionContainer") - } - } -}); -(0, _utils.default)("JSXClosingElement", { - visitor: ["name"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") - } - } -}); -(0, _utils.default)("JSXElement", { - builder: ["openingElement", "closingElement", "children", "selfClosing"], - visitor: ["openingElement", "children", "closingElement"], - aliases: ["JSX", "Immutable", "Expression"], - fields: { - openingElement: { - validate: (0, _utils.assertNodeType)("JSXOpeningElement") - }, - closingElement: { - optional: true, - validate: (0, _utils.assertNodeType)("JSXClosingElement") - }, - children: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) - }, - selfClosing: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - } - } -}); -(0, _utils.default)("JSXEmptyExpression", { - aliases: ["JSX"] -}); -(0, _utils.default)("JSXExpressionContainer", { - visitor: ["expression"], - aliases: ["JSX", "Immutable"], - fields: { - expression: { - validate: (0, _utils.assertNodeType)("Expression", "JSXEmptyExpression") - } - } -}); -(0, _utils.default)("JSXSpreadChild", { - visitor: ["expression"], - aliases: ["JSX", "Immutable"], - fields: { - expression: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("JSXIdentifier", { - builder: ["name"], - aliases: ["JSX"], - fields: { - name: { - validate: (0, _utils.assertValueType)("string") - } - } -}); -(0, _utils.default)("JSXMemberExpression", { - visitor: ["object", "property"], - aliases: ["JSX"], - fields: { - object: { - validate: (0, _utils.assertNodeType)("JSXMemberExpression", "JSXIdentifier") - }, - property: { - validate: (0, _utils.assertNodeType)("JSXIdentifier") - } - } -}); -(0, _utils.default)("JSXNamespacedName", { - visitor: ["namespace", "name"], - aliases: ["JSX"], - fields: { - namespace: { - validate: (0, _utils.assertNodeType)("JSXIdentifier") - }, - name: { - validate: (0, _utils.assertNodeType)("JSXIdentifier") - } - } -}); -(0, _utils.default)("JSXOpeningElement", { - builder: ["name", "attributes", "selfClosing"], - visitor: ["name", "attributes"], - aliases: ["JSX", "Immutable"], - fields: { - name: { - validate: (0, _utils.assertNodeType)("JSXIdentifier", "JSXMemberExpression", "JSXNamespacedName") - }, - selfClosing: { - default: false - }, - attributes: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXAttribute", "JSXSpreadAttribute"))) - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TypeParameterInstantiation", "TSTypeParameterInstantiation"), - optional: true - } - } -}); -(0, _utils.default)("JSXSpreadAttribute", { - visitor: ["argument"], - aliases: ["JSX"], - fields: { - argument: { - validate: (0, _utils.assertNodeType)("Expression") - } - } -}); -(0, _utils.default)("JSXText", { - aliases: ["JSX", "Immutable"], - builder: ["value"], - fields: { - value: { - validate: (0, _utils.assertValueType)("string") - } - } -}); -(0, _utils.default)("JSXFragment", { - builder: ["openingFragment", "closingFragment", "children"], - visitor: ["openingFragment", "children", "closingFragment"], - aliases: ["JSX", "Immutable", "Expression"], - fields: { - openingFragment: { - validate: (0, _utils.assertNodeType)("JSXOpeningFragment") - }, - closingFragment: { - validate: (0, _utils.assertNodeType)("JSXClosingFragment") - }, - children: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("JSXText", "JSXExpressionContainer", "JSXSpreadChild", "JSXElement", "JSXFragment"))) - } - } -}); -(0, _utils.default)("JSXOpeningFragment", { - aliases: ["JSX", "Immutable"] -}); -(0, _utils.default)("JSXClosingFragment", { - aliases: ["JSX", "Immutable"] -}); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js deleted file mode 100644 index 7abbf046d767c1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/typescript.js +++ /dev/null @@ -1,469 +0,0 @@ -"use strict"; - -var _utils = require("./utils"); - -var _core = require("./core"); - -var _is = require("../validators/is"); - -const bool = (0, _utils.assertValueType)("boolean"); -const tSFunctionTypeAnnotationCommon = { - returnType: { - validate: (0, _utils.assertNodeType)("TSTypeAnnotation", "Noop"), - optional: true - }, - typeParameters: { - validate: (0, _utils.assertNodeType)("TSTypeParameterDeclaration", "Noop"), - optional: true - } -}; -(0, _utils.default)("TSParameterProperty", { - aliases: ["LVal"], - visitor: ["parameter"], - fields: { - accessibility: { - validate: (0, _utils.assertOneOf)("public", "private", "protected"), - optional: true - }, - readonly: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - parameter: { - validate: (0, _utils.assertNodeType)("Identifier", "AssignmentPattern") - }, - override: { - validate: (0, _utils.assertValueType)("boolean"), - optional: true - }, - decorators: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("Decorator"))), - optional: true - } - } -}); -(0, _utils.default)("TSDeclareFunction", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "params", "returnType"], - fields: Object.assign({}, _core.functionDeclarationCommon, tSFunctionTypeAnnotationCommon) -}); -(0, _utils.default)("TSDeclareMethod", { - visitor: ["decorators", "key", "typeParameters", "params", "returnType"], - fields: Object.assign({}, _core.classMethodOrDeclareMethodCommon, tSFunctionTypeAnnotationCommon) -}); -(0, _utils.default)("TSQualifiedName", { - aliases: ["TSEntityName"], - visitor: ["left", "right"], - fields: { - left: (0, _utils.validateType)("TSEntityName"), - right: (0, _utils.validateType)("Identifier") - } -}); -const signatureDeclarationCommon = { - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), - parameters: (0, _utils.validateArrayOfType)(["Identifier", "RestElement"]), - typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation") -}; -const callConstructSignatureDeclaration = { - aliases: ["TSTypeElement"], - visitor: ["typeParameters", "parameters", "typeAnnotation"], - fields: signatureDeclarationCommon -}; -(0, _utils.default)("TSCallSignatureDeclaration", callConstructSignatureDeclaration); -(0, _utils.default)("TSConstructSignatureDeclaration", callConstructSignatureDeclaration); -const namedTypeElementCommon = { - key: (0, _utils.validateType)("Expression"), - computed: (0, _utils.validate)(bool), - optional: (0, _utils.validateOptional)(bool) -}; -(0, _utils.default)("TSPropertySignature", { - aliases: ["TSTypeElement"], - visitor: ["key", "typeAnnotation", "initializer"], - fields: Object.assign({}, namedTypeElementCommon, { - readonly: (0, _utils.validateOptional)(bool), - typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), - initializer: (0, _utils.validateOptionalType)("Expression"), - kind: { - validate: (0, _utils.assertOneOf)("get", "set") - } - }) -}); -(0, _utils.default)("TSMethodSignature", { - aliases: ["TSTypeElement"], - visitor: ["key", "typeParameters", "parameters", "typeAnnotation"], - fields: Object.assign({}, signatureDeclarationCommon, namedTypeElementCommon, { - kind: { - validate: (0, _utils.assertOneOf)("method", "get", "set") - } - }) -}); -(0, _utils.default)("TSIndexSignature", { - aliases: ["TSTypeElement"], - visitor: ["parameters", "typeAnnotation"], - fields: { - readonly: (0, _utils.validateOptional)(bool), - static: (0, _utils.validateOptional)(bool), - parameters: (0, _utils.validateArrayOfType)("Identifier"), - typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation") - } -}); -const tsKeywordTypes = ["TSAnyKeyword", "TSBooleanKeyword", "TSBigIntKeyword", "TSIntrinsicKeyword", "TSNeverKeyword", "TSNullKeyword", "TSNumberKeyword", "TSObjectKeyword", "TSStringKeyword", "TSSymbolKeyword", "TSUndefinedKeyword", "TSUnknownKeyword", "TSVoidKeyword"]; - -for (const type of tsKeywordTypes) { - (0, _utils.default)(type, { - aliases: ["TSType", "TSBaseType"], - visitor: [], - fields: {} - }); -} - -(0, _utils.default)("TSThisType", { - aliases: ["TSType", "TSBaseType"], - visitor: [], - fields: {} -}); -const fnOrCtrBase = { - aliases: ["TSType"], - visitor: ["typeParameters", "parameters", "typeAnnotation"] -}; -(0, _utils.default)("TSFunctionType", Object.assign({}, fnOrCtrBase, { - fields: signatureDeclarationCommon -})); -(0, _utils.default)("TSConstructorType", Object.assign({}, fnOrCtrBase, { - fields: Object.assign({}, signatureDeclarationCommon, { - abstract: (0, _utils.validateOptional)(bool) - }) -})); -(0, _utils.default)("TSTypeReference", { - aliases: ["TSType"], - visitor: ["typeName", "typeParameters"], - fields: { - typeName: (0, _utils.validateType)("TSEntityName"), - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") - } -}); -(0, _utils.default)("TSTypePredicate", { - aliases: ["TSType"], - visitor: ["parameterName", "typeAnnotation"], - builder: ["parameterName", "typeAnnotation", "asserts"], - fields: { - parameterName: (0, _utils.validateType)(["Identifier", "TSThisType"]), - typeAnnotation: (0, _utils.validateOptionalType)("TSTypeAnnotation"), - asserts: (0, _utils.validateOptional)(bool) - } -}); -(0, _utils.default)("TSTypeQuery", { - aliases: ["TSType"], - visitor: ["exprName"], - fields: { - exprName: (0, _utils.validateType)(["TSEntityName", "TSImportType"]) - } -}); -(0, _utils.default)("TSTypeLiteral", { - aliases: ["TSType"], - visitor: ["members"], - fields: { - members: (0, _utils.validateArrayOfType)("TSTypeElement") - } -}); -(0, _utils.default)("TSArrayType", { - aliases: ["TSType"], - visitor: ["elementType"], - fields: { - elementType: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSTupleType", { - aliases: ["TSType"], - visitor: ["elementTypes"], - fields: { - elementTypes: (0, _utils.validateArrayOfType)(["TSType", "TSNamedTupleMember"]) - } -}); -(0, _utils.default)("TSOptionalType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSRestType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSNamedTupleMember", { - visitor: ["label", "elementType"], - builder: ["label", "elementType", "optional"], - fields: { - label: (0, _utils.validateType)("Identifier"), - optional: { - validate: bool, - default: false - }, - elementType: (0, _utils.validateType)("TSType") - } -}); -const unionOrIntersection = { - aliases: ["TSType"], - visitor: ["types"], - fields: { - types: (0, _utils.validateArrayOfType)("TSType") - } -}; -(0, _utils.default)("TSUnionType", unionOrIntersection); -(0, _utils.default)("TSIntersectionType", unionOrIntersection); -(0, _utils.default)("TSConditionalType", { - aliases: ["TSType"], - visitor: ["checkType", "extendsType", "trueType", "falseType"], - fields: { - checkType: (0, _utils.validateType)("TSType"), - extendsType: (0, _utils.validateType)("TSType"), - trueType: (0, _utils.validateType)("TSType"), - falseType: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSInferType", { - aliases: ["TSType"], - visitor: ["typeParameter"], - fields: { - typeParameter: (0, _utils.validateType)("TSTypeParameter") - } -}); -(0, _utils.default)("TSParenthesizedType", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSTypeOperator", { - aliases: ["TSType"], - visitor: ["typeAnnotation"], - fields: { - operator: (0, _utils.validate)((0, _utils.assertValueType)("string")), - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSIndexedAccessType", { - aliases: ["TSType"], - visitor: ["objectType", "indexType"], - fields: { - objectType: (0, _utils.validateType)("TSType"), - indexType: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSMappedType", { - aliases: ["TSType"], - visitor: ["typeParameter", "typeAnnotation", "nameType"], - fields: { - readonly: (0, _utils.validateOptional)(bool), - typeParameter: (0, _utils.validateType)("TSTypeParameter"), - optional: (0, _utils.validateOptional)(bool), - typeAnnotation: (0, _utils.validateOptionalType)("TSType"), - nameType: (0, _utils.validateOptionalType)("TSType") - } -}); -(0, _utils.default)("TSLiteralType", { - aliases: ["TSType", "TSBaseType"], - visitor: ["literal"], - fields: { - literal: { - validate: function () { - const unaryExpression = (0, _utils.assertNodeType)("NumericLiteral", "BigIntLiteral"); - const unaryOperator = (0, _utils.assertOneOf)("-"); - const literal = (0, _utils.assertNodeType)("NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral"); - - function validator(parent, key, node) { - if ((0, _is.default)("UnaryExpression", node)) { - unaryOperator(node, "operator", node.operator); - unaryExpression(node, "argument", node.argument); - } else { - literal(parent, key, node); - } - } - - validator.oneOfNodeTypes = ["NumericLiteral", "StringLiteral", "BooleanLiteral", "BigIntLiteral", "UnaryExpression"]; - return validator; - }() - } - } -}); -(0, _utils.default)("TSExpressionWithTypeArguments", { - aliases: ["TSType"], - visitor: ["expression", "typeParameters"], - fields: { - expression: (0, _utils.validateType)("TSEntityName"), - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") - } -}); -(0, _utils.default)("TSInterfaceDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "extends", "body"], - fields: { - declare: (0, _utils.validateOptional)(bool), - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), - extends: (0, _utils.validateOptional)((0, _utils.arrayOfType)("TSExpressionWithTypeArguments")), - body: (0, _utils.validateType)("TSInterfaceBody") - } -}); -(0, _utils.default)("TSInterfaceBody", { - visitor: ["body"], - fields: { - body: (0, _utils.validateArrayOfType)("TSTypeElement") - } -}); -(0, _utils.default)("TSTypeAliasDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "typeParameters", "typeAnnotation"], - fields: { - declare: (0, _utils.validateOptional)(bool), - id: (0, _utils.validateType)("Identifier"), - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterDeclaration"), - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSAsExpression", { - aliases: ["Expression"], - visitor: ["expression", "typeAnnotation"], - fields: { - expression: (0, _utils.validateType)("Expression"), - typeAnnotation: (0, _utils.validateType)("TSType") - } -}); -(0, _utils.default)("TSTypeAssertion", { - aliases: ["Expression"], - visitor: ["typeAnnotation", "expression"], - fields: { - typeAnnotation: (0, _utils.validateType)("TSType"), - expression: (0, _utils.validateType)("Expression") - } -}); -(0, _utils.default)("TSEnumDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "members"], - fields: { - declare: (0, _utils.validateOptional)(bool), - const: (0, _utils.validateOptional)(bool), - id: (0, _utils.validateType)("Identifier"), - members: (0, _utils.validateArrayOfType)("TSEnumMember"), - initializer: (0, _utils.validateOptionalType)("Expression") - } -}); -(0, _utils.default)("TSEnumMember", { - visitor: ["id", "initializer"], - fields: { - id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), - initializer: (0, _utils.validateOptionalType)("Expression") - } -}); -(0, _utils.default)("TSModuleDeclaration", { - aliases: ["Statement", "Declaration"], - visitor: ["id", "body"], - fields: { - declare: (0, _utils.validateOptional)(bool), - global: (0, _utils.validateOptional)(bool), - id: (0, _utils.validateType)(["Identifier", "StringLiteral"]), - body: (0, _utils.validateType)(["TSModuleBlock", "TSModuleDeclaration"]) - } -}); -(0, _utils.default)("TSModuleBlock", { - aliases: ["Scopable", "Block", "BlockParent"], - visitor: ["body"], - fields: { - body: (0, _utils.validateArrayOfType)("Statement") - } -}); -(0, _utils.default)("TSImportType", { - aliases: ["TSType"], - visitor: ["argument", "qualifier", "typeParameters"], - fields: { - argument: (0, _utils.validateType)("StringLiteral"), - qualifier: (0, _utils.validateOptionalType)("TSEntityName"), - typeParameters: (0, _utils.validateOptionalType)("TSTypeParameterInstantiation") - } -}); -(0, _utils.default)("TSImportEqualsDeclaration", { - aliases: ["Statement"], - visitor: ["id", "moduleReference"], - fields: { - isExport: (0, _utils.validate)(bool), - id: (0, _utils.validateType)("Identifier"), - moduleReference: (0, _utils.validateType)(["TSEntityName", "TSExternalModuleReference"]), - importKind: { - validate: (0, _utils.assertOneOf)("type", "value"), - optional: true - } - } -}); -(0, _utils.default)("TSExternalModuleReference", { - visitor: ["expression"], - fields: { - expression: (0, _utils.validateType)("StringLiteral") - } -}); -(0, _utils.default)("TSNonNullExpression", { - aliases: ["Expression"], - visitor: ["expression"], - fields: { - expression: (0, _utils.validateType)("Expression") - } -}); -(0, _utils.default)("TSExportAssignment", { - aliases: ["Statement"], - visitor: ["expression"], - fields: { - expression: (0, _utils.validateType)("Expression") - } -}); -(0, _utils.default)("TSNamespaceExportDeclaration", { - aliases: ["Statement"], - visitor: ["id"], - fields: { - id: (0, _utils.validateType)("Identifier") - } -}); -(0, _utils.default)("TSTypeAnnotation", { - visitor: ["typeAnnotation"], - fields: { - typeAnnotation: { - validate: (0, _utils.assertNodeType)("TSType") - } - } -}); -(0, _utils.default)("TSTypeParameterInstantiation", { - visitor: ["params"], - fields: { - params: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSType"))) - } - } -}); -(0, _utils.default)("TSTypeParameterDeclaration", { - visitor: ["params"], - fields: { - params: { - validate: (0, _utils.chain)((0, _utils.assertValueType)("array"), (0, _utils.assertEach)((0, _utils.assertNodeType)("TSTypeParameter"))) - } - } -}); -(0, _utils.default)("TSTypeParameter", { - builder: ["constraint", "default", "name"], - visitor: ["constraint", "default"], - fields: { - name: { - validate: (0, _utils.assertValueType)("string") - }, - constraint: { - validate: (0, _utils.assertNodeType)("TSType"), - optional: true - }, - default: { - validate: (0, _utils.assertNodeType)("TSType"), - optional: true - } - } -}); \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js deleted file mode 100644 index 2acdae532aaa13..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/definitions/utils.js +++ /dev/null @@ -1,324 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.validate = validate; -exports.typeIs = typeIs; -exports.validateType = validateType; -exports.validateOptional = validateOptional; -exports.validateOptionalType = validateOptionalType; -exports.arrayOf = arrayOf; -exports.arrayOfType = arrayOfType; -exports.validateArrayOfType = validateArrayOfType; -exports.assertEach = assertEach; -exports.assertOneOf = assertOneOf; -exports.assertNodeType = assertNodeType; -exports.assertNodeOrValueType = assertNodeOrValueType; -exports.assertValueType = assertValueType; -exports.assertShape = assertShape; -exports.assertOptionalChainStart = assertOptionalChainStart; -exports.chain = chain; -exports.default = defineType; -exports.NODE_PARENT_VALIDATIONS = exports.DEPRECATED_KEYS = exports.BUILDER_KEYS = exports.NODE_FIELDS = exports.FLIPPED_ALIAS_KEYS = exports.ALIAS_KEYS = exports.VISITOR_KEYS = void 0; - -var _is = require("../validators/is"); - -var _validate = require("../validators/validate"); - -const VISITOR_KEYS = {}; -exports.VISITOR_KEYS = VISITOR_KEYS; -const ALIAS_KEYS = {}; -exports.ALIAS_KEYS = ALIAS_KEYS; -const FLIPPED_ALIAS_KEYS = {}; -exports.FLIPPED_ALIAS_KEYS = FLIPPED_ALIAS_KEYS; -const NODE_FIELDS = {}; -exports.NODE_FIELDS = NODE_FIELDS; -const BUILDER_KEYS = {}; -exports.BUILDER_KEYS = BUILDER_KEYS; -const DEPRECATED_KEYS = {}; -exports.DEPRECATED_KEYS = DEPRECATED_KEYS; -const NODE_PARENT_VALIDATIONS = {}; -exports.NODE_PARENT_VALIDATIONS = NODE_PARENT_VALIDATIONS; - -function getType(val) { - if (Array.isArray(val)) { - return "array"; - } else if (val === null) { - return "null"; - } else { - return typeof val; - } -} - -function validate(validate) { - return { - validate - }; -} - -function typeIs(typeName) { - return typeof typeName === "string" ? assertNodeType(typeName) : assertNodeType(...typeName); -} - -function validateType(typeName) { - return validate(typeIs(typeName)); -} - -function validateOptional(validate) { - return { - validate, - optional: true - }; -} - -function validateOptionalType(typeName) { - return { - validate: typeIs(typeName), - optional: true - }; -} - -function arrayOf(elementType) { - return chain(assertValueType("array"), assertEach(elementType)); -} - -function arrayOfType(typeName) { - return arrayOf(typeIs(typeName)); -} - -function validateArrayOfType(typeName) { - return validate(arrayOfType(typeName)); -} - -function assertEach(callback) { - function validator(node, key, val) { - if (!Array.isArray(val)) return; - - for (let i = 0; i < val.length; i++) { - const subkey = `${key}[${i}]`; - const v = val[i]; - callback(node, subkey, v); - if (process.env.BABEL_TYPES_8_BREAKING) (0, _validate.validateChild)(node, subkey, v); - } - } - - validator.each = callback; - return validator; -} - -function assertOneOf(...values) { - function validate(node, key, val) { - if (values.indexOf(val) < 0) { - throw new TypeError(`Property ${key} expected value to be one of ${JSON.stringify(values)} but got ${JSON.stringify(val)}`); - } - } - - validate.oneOf = values; - return validate; -} - -function assertNodeType(...types) { - function validate(node, key, val) { - for (const type of types) { - if ((0, _is.default)(type, val)) { - (0, _validate.validateChild)(node, key, val); - return; - } - } - - throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`); - } - - validate.oneOfNodeTypes = types; - return validate; -} - -function assertNodeOrValueType(...types) { - function validate(node, key, val) { - for (const type of types) { - if (getType(val) === type || (0, _is.default)(type, val)) { - (0, _validate.validateChild)(node, key, val); - return; - } - } - - throw new TypeError(`Property ${key} of ${node.type} expected node to be of a type ${JSON.stringify(types)} but instead got ${JSON.stringify(val == null ? void 0 : val.type)}`); - } - - validate.oneOfNodeOrValueTypes = types; - return validate; -} - -function assertValueType(type) { - function validate(node, key, val) { - const valid = getType(val) === type; - - if (!valid) { - throw new TypeError(`Property ${key} expected type of ${type} but got ${getType(val)}`); - } - } - - validate.type = type; - return validate; -} - -function assertShape(shape) { - function validate(node, key, val) { - const errors = []; - - for (const property of Object.keys(shape)) { - try { - (0, _validate.validateField)(node, property, val[property], shape[property]); - } catch (error) { - if (error instanceof TypeError) { - errors.push(error.message); - continue; - } - - throw error; - } - } - - if (errors.length) { - throw new TypeError(`Property ${key} of ${node.type} expected to have the following:\n${errors.join("\n")}`); - } - } - - validate.shapeOf = shape; - return validate; -} - -function assertOptionalChainStart() { - function validate(node) { - var _current; - - let current = node; - - while (node) { - const { - type - } = current; - - if (type === "OptionalCallExpression") { - if (current.optional) return; - current = current.callee; - continue; - } - - if (type === "OptionalMemberExpression") { - if (current.optional) return; - current = current.object; - continue; - } - - break; - } - - throw new TypeError(`Non-optional ${node.type} must chain from an optional OptionalMemberExpression or OptionalCallExpression. Found chain from ${(_current = current) == null ? void 0 : _current.type}`); - } - - return validate; -} - -function chain(...fns) { - function validate(...args) { - for (const fn of fns) { - fn(...args); - } - } - - validate.chainOf = fns; - - if (fns.length >= 2 && "type" in fns[0] && fns[0].type === "array" && !("each" in fns[1])) { - throw new Error(`An assertValueType("array") validator can only be followed by an assertEach(...) validator.`); - } - - return validate; -} - -const validTypeOpts = ["aliases", "builder", "deprecatedAlias", "fields", "inherits", "visitor", "validate"]; -const validFieldKeys = ["default", "optional", "validate"]; - -function defineType(type, opts = {}) { - const inherits = opts.inherits && store[opts.inherits] || {}; - let fields = opts.fields; - - if (!fields) { - fields = {}; - - if (inherits.fields) { - const keys = Object.getOwnPropertyNames(inherits.fields); - - for (const key of keys) { - const field = inherits.fields[key]; - const def = field.default; - - if (Array.isArray(def) ? def.length > 0 : def && typeof def === "object") { - throw new Error("field defaults can only be primitives or empty arrays currently"); - } - - fields[key] = { - default: Array.isArray(def) ? [] : def, - optional: field.optional, - validate: field.validate - }; - } - } - } - - const visitor = opts.visitor || inherits.visitor || []; - const aliases = opts.aliases || inherits.aliases || []; - const builder = opts.builder || inherits.builder || opts.visitor || []; - - for (const k of Object.keys(opts)) { - if (validTypeOpts.indexOf(k) === -1) { - throw new Error(`Unknown type option "${k}" on ${type}`); - } - } - - if (opts.deprecatedAlias) { - DEPRECATED_KEYS[opts.deprecatedAlias] = type; - } - - for (const key of visitor.concat(builder)) { - fields[key] = fields[key] || {}; - } - - for (const key of Object.keys(fields)) { - const field = fields[key]; - - if (field.default !== undefined && builder.indexOf(key) === -1) { - field.optional = true; - } - - if (field.default === undefined) { - field.default = null; - } else if (!field.validate && field.default != null) { - field.validate = assertValueType(getType(field.default)); - } - - for (const k of Object.keys(field)) { - if (validFieldKeys.indexOf(k) === -1) { - throw new Error(`Unknown field key "${k}" on ${type}.${key}`); - } - } - } - - VISITOR_KEYS[type] = opts.visitor = visitor; - BUILDER_KEYS[type] = opts.builder = builder; - NODE_FIELDS[type] = opts.fields = fields; - ALIAS_KEYS[type] = opts.aliases = aliases; - aliases.forEach(alias => { - FLIPPED_ALIAS_KEYS[alias] = FLIPPED_ALIAS_KEYS[alias] || []; - FLIPPED_ALIAS_KEYS[alias].push(type); - }); - - if (opts.validate) { - NODE_PARENT_VALIDATIONS[type] = opts.validate; - } - - store[type] = opts; -} - -const store = {}; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js deleted file mode 100644 index 6fd730b5223497..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/index.js +++ /dev/null @@ -1,647 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -var _exportNames = { - react: true, - assertNode: true, - createTypeAnnotationBasedOnTypeof: true, - createUnionTypeAnnotation: true, - createFlowUnionType: true, - createTSUnionType: true, - cloneNode: true, - clone: true, - cloneDeep: true, - cloneDeepWithoutLoc: true, - cloneWithoutLoc: true, - addComment: true, - addComments: true, - inheritInnerComments: true, - inheritLeadingComments: true, - inheritsComments: true, - inheritTrailingComments: true, - removeComments: true, - ensureBlock: true, - toBindingIdentifierName: true, - toBlock: true, - toComputedKey: true, - toExpression: true, - toIdentifier: true, - toKeyAlias: true, - toSequenceExpression: true, - toStatement: true, - valueToNode: true, - appendToMemberExpression: true, - inherits: true, - prependToMemberExpression: true, - removeProperties: true, - removePropertiesDeep: true, - removeTypeDuplicates: true, - getBindingIdentifiers: true, - getOuterBindingIdentifiers: true, - traverse: true, - traverseFast: true, - shallowEqual: true, - is: true, - isBinding: true, - isBlockScoped: true, - isImmutable: true, - isLet: true, - isNode: true, - isNodesEquivalent: true, - isPlaceholderType: true, - isReferenced: true, - isScope: true, - isSpecifierDefault: true, - isType: true, - isValidES3Identifier: true, - isValidIdentifier: true, - isVar: true, - matchesPattern: true, - validate: true, - buildMatchMemberExpression: true -}; -Object.defineProperty(exports, "assertNode", { - enumerable: true, - get: function () { - return _assertNode.default; - } -}); -Object.defineProperty(exports, "createTypeAnnotationBasedOnTypeof", { - enumerable: true, - get: function () { - return _createTypeAnnotationBasedOnTypeof.default; - } -}); -Object.defineProperty(exports, "createUnionTypeAnnotation", { - enumerable: true, - get: function () { - return _createFlowUnionType.default; - } -}); -Object.defineProperty(exports, "createFlowUnionType", { - enumerable: true, - get: function () { - return _createFlowUnionType.default; - } -}); -Object.defineProperty(exports, "createTSUnionType", { - enumerable: true, - get: function () { - return _createTSUnionType.default; - } -}); -Object.defineProperty(exports, "cloneNode", { - enumerable: true, - get: function () { - return _cloneNode.default; - } -}); -Object.defineProperty(exports, "clone", { - enumerable: true, - get: function () { - return _clone.default; - } -}); -Object.defineProperty(exports, "cloneDeep", { - enumerable: true, - get: function () { - return _cloneDeep.default; - } -}); -Object.defineProperty(exports, "cloneDeepWithoutLoc", { - enumerable: true, - get: function () { - return _cloneDeepWithoutLoc.default; - } -}); -Object.defineProperty(exports, "cloneWithoutLoc", { - enumerable: true, - get: function () { - return _cloneWithoutLoc.default; - } -}); -Object.defineProperty(exports, "addComment", { - enumerable: true, - get: function () { - return _addComment.default; - } -}); -Object.defineProperty(exports, "addComments", { - enumerable: true, - get: function () { - return _addComments.default; - } -}); -Object.defineProperty(exports, "inheritInnerComments", { - enumerable: true, - get: function () { - return _inheritInnerComments.default; - } -}); -Object.defineProperty(exports, "inheritLeadingComments", { - enumerable: true, - get: function () { - return _inheritLeadingComments.default; - } -}); -Object.defineProperty(exports, "inheritsComments", { - enumerable: true, - get: function () { - return _inheritsComments.default; - } -}); -Object.defineProperty(exports, "inheritTrailingComments", { - enumerable: true, - get: function () { - return _inheritTrailingComments.default; - } -}); -Object.defineProperty(exports, "removeComments", { - enumerable: true, - get: function () { - return _removeComments.default; - } -}); -Object.defineProperty(exports, "ensureBlock", { - enumerable: true, - get: function () { - return _ensureBlock.default; - } -}); -Object.defineProperty(exports, "toBindingIdentifierName", { - enumerable: true, - get: function () { - return _toBindingIdentifierName.default; - } -}); -Object.defineProperty(exports, "toBlock", { - enumerable: true, - get: function () { - return _toBlock.default; - } -}); -Object.defineProperty(exports, "toComputedKey", { - enumerable: true, - get: function () { - return _toComputedKey.default; - } -}); -Object.defineProperty(exports, "toExpression", { - enumerable: true, - get: function () { - return _toExpression.default; - } -}); -Object.defineProperty(exports, "toIdentifier", { - enumerable: true, - get: function () { - return _toIdentifier.default; - } -}); -Object.defineProperty(exports, "toKeyAlias", { - enumerable: true, - get: function () { - return _toKeyAlias.default; - } -}); -Object.defineProperty(exports, "toSequenceExpression", { - enumerable: true, - get: function () { - return _toSequenceExpression.default; - } -}); -Object.defineProperty(exports, "toStatement", { - enumerable: true, - get: function () { - return _toStatement.default; - } -}); -Object.defineProperty(exports, "valueToNode", { - enumerable: true, - get: function () { - return _valueToNode.default; - } -}); -Object.defineProperty(exports, "appendToMemberExpression", { - enumerable: true, - get: function () { - return _appendToMemberExpression.default; - } -}); -Object.defineProperty(exports, "inherits", { - enumerable: true, - get: function () { - return _inherits.default; - } -}); -Object.defineProperty(exports, "prependToMemberExpression", { - enumerable: true, - get: function () { - return _prependToMemberExpression.default; - } -}); -Object.defineProperty(exports, "removeProperties", { - enumerable: true, - get: function () { - return _removeProperties.default; - } -}); -Object.defineProperty(exports, "removePropertiesDeep", { - enumerable: true, - get: function () { - return _removePropertiesDeep.default; - } -}); -Object.defineProperty(exports, "removeTypeDuplicates", { - enumerable: true, - get: function () { - return _removeTypeDuplicates.default; - } -}); -Object.defineProperty(exports, "getBindingIdentifiers", { - enumerable: true, - get: function () { - return _getBindingIdentifiers.default; - } -}); -Object.defineProperty(exports, "getOuterBindingIdentifiers", { - enumerable: true, - get: function () { - return _getOuterBindingIdentifiers.default; - } -}); -Object.defineProperty(exports, "traverse", { - enumerable: true, - get: function () { - return _traverse.default; - } -}); -Object.defineProperty(exports, "traverseFast", { - enumerable: true, - get: function () { - return _traverseFast.default; - } -}); -Object.defineProperty(exports, "shallowEqual", { - enumerable: true, - get: function () { - return _shallowEqual.default; - } -}); -Object.defineProperty(exports, "is", { - enumerable: true, - get: function () { - return _is.default; - } -}); -Object.defineProperty(exports, "isBinding", { - enumerable: true, - get: function () { - return _isBinding.default; - } -}); -Object.defineProperty(exports, "isBlockScoped", { - enumerable: true, - get: function () { - return _isBlockScoped.default; - } -}); -Object.defineProperty(exports, "isImmutable", { - enumerable: true, - get: function () { - return _isImmutable.default; - } -}); -Object.defineProperty(exports, "isLet", { - enumerable: true, - get: function () { - return _isLet.default; - } -}); -Object.defineProperty(exports, "isNode", { - enumerable: true, - get: function () { - return _isNode.default; - } -}); -Object.defineProperty(exports, "isNodesEquivalent", { - enumerable: true, - get: function () { - return _isNodesEquivalent.default; - } -}); -Object.defineProperty(exports, "isPlaceholderType", { - enumerable: true, - get: function () { - return _isPlaceholderType.default; - } -}); -Object.defineProperty(exports, "isReferenced", { - enumerable: true, - get: function () { - return _isReferenced.default; - } -}); -Object.defineProperty(exports, "isScope", { - enumerable: true, - get: function () { - return _isScope.default; - } -}); -Object.defineProperty(exports, "isSpecifierDefault", { - enumerable: true, - get: function () { - return _isSpecifierDefault.default; - } -}); -Object.defineProperty(exports, "isType", { - enumerable: true, - get: function () { - return _isType.default; - } -}); -Object.defineProperty(exports, "isValidES3Identifier", { - enumerable: true, - get: function () { - return _isValidES3Identifier.default; - } -}); -Object.defineProperty(exports, "isValidIdentifier", { - enumerable: true, - get: function () { - return _isValidIdentifier.default; - } -}); -Object.defineProperty(exports, "isVar", { - enumerable: true, - get: function () { - return _isVar.default; - } -}); -Object.defineProperty(exports, "matchesPattern", { - enumerable: true, - get: function () { - return _matchesPattern.default; - } -}); -Object.defineProperty(exports, "validate", { - enumerable: true, - get: function () { - return _validate.default; - } -}); -Object.defineProperty(exports, "buildMatchMemberExpression", { - enumerable: true, - get: function () { - return _buildMatchMemberExpression.default; - } -}); -exports.react = void 0; - -var _isReactComponent = require("./validators/react/isReactComponent"); - -var _isCompatTag = require("./validators/react/isCompatTag"); - -var _buildChildren = require("./builders/react/buildChildren"); - -var _assertNode = require("./asserts/assertNode"); - -var _generated = require("./asserts/generated"); - -Object.keys(_generated).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _generated[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _generated[key]; - } - }); -}); - -var _createTypeAnnotationBasedOnTypeof = require("./builders/flow/createTypeAnnotationBasedOnTypeof"); - -var _createFlowUnionType = require("./builders/flow/createFlowUnionType"); - -var _createTSUnionType = require("./builders/typescript/createTSUnionType"); - -var _generated2 = require("./builders/generated"); - -Object.keys(_generated2).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _generated2[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _generated2[key]; - } - }); -}); - -var _uppercase = require("./builders/generated/uppercase"); - -Object.keys(_uppercase).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _uppercase[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _uppercase[key]; - } - }); -}); - -var _cloneNode = require("./clone/cloneNode"); - -var _clone = require("./clone/clone"); - -var _cloneDeep = require("./clone/cloneDeep"); - -var _cloneDeepWithoutLoc = require("./clone/cloneDeepWithoutLoc"); - -var _cloneWithoutLoc = require("./clone/cloneWithoutLoc"); - -var _addComment = require("./comments/addComment"); - -var _addComments = require("./comments/addComments"); - -var _inheritInnerComments = require("./comments/inheritInnerComments"); - -var _inheritLeadingComments = require("./comments/inheritLeadingComments"); - -var _inheritsComments = require("./comments/inheritsComments"); - -var _inheritTrailingComments = require("./comments/inheritTrailingComments"); - -var _removeComments = require("./comments/removeComments"); - -var _generated3 = require("./constants/generated"); - -Object.keys(_generated3).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _generated3[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _generated3[key]; - } - }); -}); - -var _constants = require("./constants"); - -Object.keys(_constants).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _constants[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _constants[key]; - } - }); -}); - -var _ensureBlock = require("./converters/ensureBlock"); - -var _toBindingIdentifierName = require("./converters/toBindingIdentifierName"); - -var _toBlock = require("./converters/toBlock"); - -var _toComputedKey = require("./converters/toComputedKey"); - -var _toExpression = require("./converters/toExpression"); - -var _toIdentifier = require("./converters/toIdentifier"); - -var _toKeyAlias = require("./converters/toKeyAlias"); - -var _toSequenceExpression = require("./converters/toSequenceExpression"); - -var _toStatement = require("./converters/toStatement"); - -var _valueToNode = require("./converters/valueToNode"); - -var _definitions = require("./definitions"); - -Object.keys(_definitions).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _definitions[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _definitions[key]; - } - }); -}); - -var _appendToMemberExpression = require("./modifications/appendToMemberExpression"); - -var _inherits = require("./modifications/inherits"); - -var _prependToMemberExpression = require("./modifications/prependToMemberExpression"); - -var _removeProperties = require("./modifications/removeProperties"); - -var _removePropertiesDeep = require("./modifications/removePropertiesDeep"); - -var _removeTypeDuplicates = require("./modifications/flow/removeTypeDuplicates"); - -var _getBindingIdentifiers = require("./retrievers/getBindingIdentifiers"); - -var _getOuterBindingIdentifiers = require("./retrievers/getOuterBindingIdentifiers"); - -var _traverse = require("./traverse/traverse"); - -Object.keys(_traverse).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _traverse[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _traverse[key]; - } - }); -}); - -var _traverseFast = require("./traverse/traverseFast"); - -var _shallowEqual = require("./utils/shallowEqual"); - -var _is = require("./validators/is"); - -var _isBinding = require("./validators/isBinding"); - -var _isBlockScoped = require("./validators/isBlockScoped"); - -var _isImmutable = require("./validators/isImmutable"); - -var _isLet = require("./validators/isLet"); - -var _isNode = require("./validators/isNode"); - -var _isNodesEquivalent = require("./validators/isNodesEquivalent"); - -var _isPlaceholderType = require("./validators/isPlaceholderType"); - -var _isReferenced = require("./validators/isReferenced"); - -var _isScope = require("./validators/isScope"); - -var _isSpecifierDefault = require("./validators/isSpecifierDefault"); - -var _isType = require("./validators/isType"); - -var _isValidES3Identifier = require("./validators/isValidES3Identifier"); - -var _isValidIdentifier = require("./validators/isValidIdentifier"); - -var _isVar = require("./validators/isVar"); - -var _matchesPattern = require("./validators/matchesPattern"); - -var _validate = require("./validators/validate"); - -var _buildMatchMemberExpression = require("./validators/buildMatchMemberExpression"); - -var _generated4 = require("./validators/generated"); - -Object.keys(_generated4).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _generated4[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _generated4[key]; - } - }); -}); - -var _generated5 = require("./ast-types/generated"); - -Object.keys(_generated5).forEach(function (key) { - if (key === "default" || key === "__esModule") return; - if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; - if (key in exports && exports[key] === _generated5[key]) return; - Object.defineProperty(exports, key, { - enumerable: true, - get: function () { - return _generated5[key]; - } - }); -}); -const react = { - isReactComponent: _isReactComponent.default, - isCompatTag: _isCompatTag.default, - buildChildren: _buildChildren.default -}; -exports.react = react; \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js b/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js deleted file mode 100644 index 0d54c9bd95cc62..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/lib/validators/generated/index.js +++ /dev/null @@ -1,4731 +0,0 @@ -"use strict"; - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.isArrayExpression = isArrayExpression; -exports.isAssignmentExpression = isAssignmentExpression; -exports.isBinaryExpression = isBinaryExpression; -exports.isInterpreterDirective = isInterpreterDirective; -exports.isDirective = isDirective; -exports.isDirectiveLiteral = isDirectiveLiteral; -exports.isBlockStatement = isBlockStatement; -exports.isBreakStatement = isBreakStatement; -exports.isCallExpression = isCallExpression; -exports.isCatchClause = isCatchClause; -exports.isConditionalExpression = isConditionalExpression; -exports.isContinueStatement = isContinueStatement; -exports.isDebuggerStatement = isDebuggerStatement; -exports.isDoWhileStatement = isDoWhileStatement; -exports.isEmptyStatement = isEmptyStatement; -exports.isExpressionStatement = isExpressionStatement; -exports.isFile = isFile; -exports.isForInStatement = isForInStatement; -exports.isForStatement = isForStatement; -exports.isFunctionDeclaration = isFunctionDeclaration; -exports.isFunctionExpression = isFunctionExpression; -exports.isIdentifier = isIdentifier; -exports.isIfStatement = isIfStatement; -exports.isLabeledStatement = isLabeledStatement; -exports.isStringLiteral = isStringLiteral; -exports.isNumericLiteral = isNumericLiteral; -exports.isNullLiteral = isNullLiteral; -exports.isBooleanLiteral = isBooleanLiteral; -exports.isRegExpLiteral = isRegExpLiteral; -exports.isLogicalExpression = isLogicalExpression; -exports.isMemberExpression = isMemberExpression; -exports.isNewExpression = isNewExpression; -exports.isProgram = isProgram; -exports.isObjectExpression = isObjectExpression; -exports.isObjectMethod = isObjectMethod; -exports.isObjectProperty = isObjectProperty; -exports.isRestElement = isRestElement; -exports.isReturnStatement = isReturnStatement; -exports.isSequenceExpression = isSequenceExpression; -exports.isParenthesizedExpression = isParenthesizedExpression; -exports.isSwitchCase = isSwitchCase; -exports.isSwitchStatement = isSwitchStatement; -exports.isThisExpression = isThisExpression; -exports.isThrowStatement = isThrowStatement; -exports.isTryStatement = isTryStatement; -exports.isUnaryExpression = isUnaryExpression; -exports.isUpdateExpression = isUpdateExpression; -exports.isVariableDeclaration = isVariableDeclaration; -exports.isVariableDeclarator = isVariableDeclarator; -exports.isWhileStatement = isWhileStatement; -exports.isWithStatement = isWithStatement; -exports.isAssignmentPattern = isAssignmentPattern; -exports.isArrayPattern = isArrayPattern; -exports.isArrowFunctionExpression = isArrowFunctionExpression; -exports.isClassBody = isClassBody; -exports.isClassExpression = isClassExpression; -exports.isClassDeclaration = isClassDeclaration; -exports.isExportAllDeclaration = isExportAllDeclaration; -exports.isExportDefaultDeclaration = isExportDefaultDeclaration; -exports.isExportNamedDeclaration = isExportNamedDeclaration; -exports.isExportSpecifier = isExportSpecifier; -exports.isForOfStatement = isForOfStatement; -exports.isImportDeclaration = isImportDeclaration; -exports.isImportDefaultSpecifier = isImportDefaultSpecifier; -exports.isImportNamespaceSpecifier = isImportNamespaceSpecifier; -exports.isImportSpecifier = isImportSpecifier; -exports.isMetaProperty = isMetaProperty; -exports.isClassMethod = isClassMethod; -exports.isObjectPattern = isObjectPattern; -exports.isSpreadElement = isSpreadElement; -exports.isSuper = isSuper; -exports.isTaggedTemplateExpression = isTaggedTemplateExpression; -exports.isTemplateElement = isTemplateElement; -exports.isTemplateLiteral = isTemplateLiteral; -exports.isYieldExpression = isYieldExpression; -exports.isAwaitExpression = isAwaitExpression; -exports.isImport = isImport; -exports.isBigIntLiteral = isBigIntLiteral; -exports.isExportNamespaceSpecifier = isExportNamespaceSpecifier; -exports.isOptionalMemberExpression = isOptionalMemberExpression; -exports.isOptionalCallExpression = isOptionalCallExpression; -exports.isClassProperty = isClassProperty; -exports.isClassPrivateProperty = isClassPrivateProperty; -exports.isClassPrivateMethod = isClassPrivateMethod; -exports.isPrivateName = isPrivateName; -exports.isAnyTypeAnnotation = isAnyTypeAnnotation; -exports.isArrayTypeAnnotation = isArrayTypeAnnotation; -exports.isBooleanTypeAnnotation = isBooleanTypeAnnotation; -exports.isBooleanLiteralTypeAnnotation = isBooleanLiteralTypeAnnotation; -exports.isNullLiteralTypeAnnotation = isNullLiteralTypeAnnotation; -exports.isClassImplements = isClassImplements; -exports.isDeclareClass = isDeclareClass; -exports.isDeclareFunction = isDeclareFunction; -exports.isDeclareInterface = isDeclareInterface; -exports.isDeclareModule = isDeclareModule; -exports.isDeclareModuleExports = isDeclareModuleExports; -exports.isDeclareTypeAlias = isDeclareTypeAlias; -exports.isDeclareOpaqueType = isDeclareOpaqueType; -exports.isDeclareVariable = isDeclareVariable; -exports.isDeclareExportDeclaration = isDeclareExportDeclaration; -exports.isDeclareExportAllDeclaration = isDeclareExportAllDeclaration; -exports.isDeclaredPredicate = isDeclaredPredicate; -exports.isExistsTypeAnnotation = isExistsTypeAnnotation; -exports.isFunctionTypeAnnotation = isFunctionTypeAnnotation; -exports.isFunctionTypeParam = isFunctionTypeParam; -exports.isGenericTypeAnnotation = isGenericTypeAnnotation; -exports.isInferredPredicate = isInferredPredicate; -exports.isInterfaceExtends = isInterfaceExtends; -exports.isInterfaceDeclaration = isInterfaceDeclaration; -exports.isInterfaceTypeAnnotation = isInterfaceTypeAnnotation; -exports.isIntersectionTypeAnnotation = isIntersectionTypeAnnotation; -exports.isMixedTypeAnnotation = isMixedTypeAnnotation; -exports.isEmptyTypeAnnotation = isEmptyTypeAnnotation; -exports.isNullableTypeAnnotation = isNullableTypeAnnotation; -exports.isNumberLiteralTypeAnnotation = isNumberLiteralTypeAnnotation; -exports.isNumberTypeAnnotation = isNumberTypeAnnotation; -exports.isObjectTypeAnnotation = isObjectTypeAnnotation; -exports.isObjectTypeInternalSlot = isObjectTypeInternalSlot; -exports.isObjectTypeCallProperty = isObjectTypeCallProperty; -exports.isObjectTypeIndexer = isObjectTypeIndexer; -exports.isObjectTypeProperty = isObjectTypeProperty; -exports.isObjectTypeSpreadProperty = isObjectTypeSpreadProperty; -exports.isOpaqueType = isOpaqueType; -exports.isQualifiedTypeIdentifier = isQualifiedTypeIdentifier; -exports.isStringLiteralTypeAnnotation = isStringLiteralTypeAnnotation; -exports.isStringTypeAnnotation = isStringTypeAnnotation; -exports.isSymbolTypeAnnotation = isSymbolTypeAnnotation; -exports.isThisTypeAnnotation = isThisTypeAnnotation; -exports.isTupleTypeAnnotation = isTupleTypeAnnotation; -exports.isTypeofTypeAnnotation = isTypeofTypeAnnotation; -exports.isTypeAlias = isTypeAlias; -exports.isTypeAnnotation = isTypeAnnotation; -exports.isTypeCastExpression = isTypeCastExpression; -exports.isTypeParameter = isTypeParameter; -exports.isTypeParameterDeclaration = isTypeParameterDeclaration; -exports.isTypeParameterInstantiation = isTypeParameterInstantiation; -exports.isUnionTypeAnnotation = isUnionTypeAnnotation; -exports.isVariance = isVariance; -exports.isVoidTypeAnnotation = isVoidTypeAnnotation; -exports.isEnumDeclaration = isEnumDeclaration; -exports.isEnumBooleanBody = isEnumBooleanBody; -exports.isEnumNumberBody = isEnumNumberBody; -exports.isEnumStringBody = isEnumStringBody; -exports.isEnumSymbolBody = isEnumSymbolBody; -exports.isEnumBooleanMember = isEnumBooleanMember; -exports.isEnumNumberMember = isEnumNumberMember; -exports.isEnumStringMember = isEnumStringMember; -exports.isEnumDefaultedMember = isEnumDefaultedMember; -exports.isIndexedAccessType = isIndexedAccessType; -exports.isOptionalIndexedAccessType = isOptionalIndexedAccessType; -exports.isJSXAttribute = isJSXAttribute; -exports.isJSXClosingElement = isJSXClosingElement; -exports.isJSXElement = isJSXElement; -exports.isJSXEmptyExpression = isJSXEmptyExpression; -exports.isJSXExpressionContainer = isJSXExpressionContainer; -exports.isJSXSpreadChild = isJSXSpreadChild; -exports.isJSXIdentifier = isJSXIdentifier; -exports.isJSXMemberExpression = isJSXMemberExpression; -exports.isJSXNamespacedName = isJSXNamespacedName; -exports.isJSXOpeningElement = isJSXOpeningElement; -exports.isJSXSpreadAttribute = isJSXSpreadAttribute; -exports.isJSXText = isJSXText; -exports.isJSXFragment = isJSXFragment; -exports.isJSXOpeningFragment = isJSXOpeningFragment; -exports.isJSXClosingFragment = isJSXClosingFragment; -exports.isNoop = isNoop; -exports.isPlaceholder = isPlaceholder; -exports.isV8IntrinsicIdentifier = isV8IntrinsicIdentifier; -exports.isArgumentPlaceholder = isArgumentPlaceholder; -exports.isBindExpression = isBindExpression; -exports.isImportAttribute = isImportAttribute; -exports.isDecorator = isDecorator; -exports.isDoExpression = isDoExpression; -exports.isExportDefaultSpecifier = isExportDefaultSpecifier; -exports.isRecordExpression = isRecordExpression; -exports.isTupleExpression = isTupleExpression; -exports.isDecimalLiteral = isDecimalLiteral; -exports.isStaticBlock = isStaticBlock; -exports.isModuleExpression = isModuleExpression; -exports.isTopicReference = isTopicReference; -exports.isPipelineTopicExpression = isPipelineTopicExpression; -exports.isPipelineBareFunction = isPipelineBareFunction; -exports.isPipelinePrimaryTopicReference = isPipelinePrimaryTopicReference; -exports.isTSParameterProperty = isTSParameterProperty; -exports.isTSDeclareFunction = isTSDeclareFunction; -exports.isTSDeclareMethod = isTSDeclareMethod; -exports.isTSQualifiedName = isTSQualifiedName; -exports.isTSCallSignatureDeclaration = isTSCallSignatureDeclaration; -exports.isTSConstructSignatureDeclaration = isTSConstructSignatureDeclaration; -exports.isTSPropertySignature = isTSPropertySignature; -exports.isTSMethodSignature = isTSMethodSignature; -exports.isTSIndexSignature = isTSIndexSignature; -exports.isTSAnyKeyword = isTSAnyKeyword; -exports.isTSBooleanKeyword = isTSBooleanKeyword; -exports.isTSBigIntKeyword = isTSBigIntKeyword; -exports.isTSIntrinsicKeyword = isTSIntrinsicKeyword; -exports.isTSNeverKeyword = isTSNeverKeyword; -exports.isTSNullKeyword = isTSNullKeyword; -exports.isTSNumberKeyword = isTSNumberKeyword; -exports.isTSObjectKeyword = isTSObjectKeyword; -exports.isTSStringKeyword = isTSStringKeyword; -exports.isTSSymbolKeyword = isTSSymbolKeyword; -exports.isTSUndefinedKeyword = isTSUndefinedKeyword; -exports.isTSUnknownKeyword = isTSUnknownKeyword; -exports.isTSVoidKeyword = isTSVoidKeyword; -exports.isTSThisType = isTSThisType; -exports.isTSFunctionType = isTSFunctionType; -exports.isTSConstructorType = isTSConstructorType; -exports.isTSTypeReference = isTSTypeReference; -exports.isTSTypePredicate = isTSTypePredicate; -exports.isTSTypeQuery = isTSTypeQuery; -exports.isTSTypeLiteral = isTSTypeLiteral; -exports.isTSArrayType = isTSArrayType; -exports.isTSTupleType = isTSTupleType; -exports.isTSOptionalType = isTSOptionalType; -exports.isTSRestType = isTSRestType; -exports.isTSNamedTupleMember = isTSNamedTupleMember; -exports.isTSUnionType = isTSUnionType; -exports.isTSIntersectionType = isTSIntersectionType; -exports.isTSConditionalType = isTSConditionalType; -exports.isTSInferType = isTSInferType; -exports.isTSParenthesizedType = isTSParenthesizedType; -exports.isTSTypeOperator = isTSTypeOperator; -exports.isTSIndexedAccessType = isTSIndexedAccessType; -exports.isTSMappedType = isTSMappedType; -exports.isTSLiteralType = isTSLiteralType; -exports.isTSExpressionWithTypeArguments = isTSExpressionWithTypeArguments; -exports.isTSInterfaceDeclaration = isTSInterfaceDeclaration; -exports.isTSInterfaceBody = isTSInterfaceBody; -exports.isTSTypeAliasDeclaration = isTSTypeAliasDeclaration; -exports.isTSAsExpression = isTSAsExpression; -exports.isTSTypeAssertion = isTSTypeAssertion; -exports.isTSEnumDeclaration = isTSEnumDeclaration; -exports.isTSEnumMember = isTSEnumMember; -exports.isTSModuleDeclaration = isTSModuleDeclaration; -exports.isTSModuleBlock = isTSModuleBlock; -exports.isTSImportType = isTSImportType; -exports.isTSImportEqualsDeclaration = isTSImportEqualsDeclaration; -exports.isTSExternalModuleReference = isTSExternalModuleReference; -exports.isTSNonNullExpression = isTSNonNullExpression; -exports.isTSExportAssignment = isTSExportAssignment; -exports.isTSNamespaceExportDeclaration = isTSNamespaceExportDeclaration; -exports.isTSTypeAnnotation = isTSTypeAnnotation; -exports.isTSTypeParameterInstantiation = isTSTypeParameterInstantiation; -exports.isTSTypeParameterDeclaration = isTSTypeParameterDeclaration; -exports.isTSTypeParameter = isTSTypeParameter; -exports.isExpression = isExpression; -exports.isBinary = isBinary; -exports.isScopable = isScopable; -exports.isBlockParent = isBlockParent; -exports.isBlock = isBlock; -exports.isStatement = isStatement; -exports.isTerminatorless = isTerminatorless; -exports.isCompletionStatement = isCompletionStatement; -exports.isConditional = isConditional; -exports.isLoop = isLoop; -exports.isWhile = isWhile; -exports.isExpressionWrapper = isExpressionWrapper; -exports.isFor = isFor; -exports.isForXStatement = isForXStatement; -exports.isFunction = isFunction; -exports.isFunctionParent = isFunctionParent; -exports.isPureish = isPureish; -exports.isDeclaration = isDeclaration; -exports.isPatternLike = isPatternLike; -exports.isLVal = isLVal; -exports.isTSEntityName = isTSEntityName; -exports.isLiteral = isLiteral; -exports.isImmutable = isImmutable; -exports.isUserWhitespacable = isUserWhitespacable; -exports.isMethod = isMethod; -exports.isObjectMember = isObjectMember; -exports.isProperty = isProperty; -exports.isUnaryLike = isUnaryLike; -exports.isPattern = isPattern; -exports.isClass = isClass; -exports.isModuleDeclaration = isModuleDeclaration; -exports.isExportDeclaration = isExportDeclaration; -exports.isModuleSpecifier = isModuleSpecifier; -exports.isPrivate = isPrivate; -exports.isFlow = isFlow; -exports.isFlowType = isFlowType; -exports.isFlowBaseAnnotation = isFlowBaseAnnotation; -exports.isFlowDeclaration = isFlowDeclaration; -exports.isFlowPredicate = isFlowPredicate; -exports.isEnumBody = isEnumBody; -exports.isEnumMember = isEnumMember; -exports.isJSX = isJSX; -exports.isTSTypeElement = isTSTypeElement; -exports.isTSType = isTSType; -exports.isTSBaseType = isTSBaseType; -exports.isNumberLiteral = isNumberLiteral; -exports.isRegexLiteral = isRegexLiteral; -exports.isRestProperty = isRestProperty; -exports.isSpreadProperty = isSpreadProperty; - -var _shallowEqual = require("../../utils/shallowEqual"); - -function isArrayExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ArrayExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isAssignmentExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "AssignmentExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBinaryExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BinaryExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isInterpreterDirective(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "InterpreterDirective") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDirective(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Directive") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDirectiveLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DirectiveLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBlockStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BlockStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBreakStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BreakStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isCallExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "CallExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isCatchClause(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "CatchClause") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isConditionalExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ConditionalExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isContinueStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ContinueStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDebuggerStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DebuggerStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDoWhileStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DoWhileStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEmptyStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EmptyStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExpressionStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExpressionStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFile(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "File") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isForInStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ForInStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isForStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ForStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunctionDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "FunctionDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunctionExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "FunctionExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isIdentifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Identifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isIfStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "IfStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isLabeledStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "LabeledStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isStringLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "StringLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNumericLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NumericLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNullLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NullLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBooleanLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BooleanLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isRegExpLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "RegExpLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isLogicalExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "LogicalExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isMemberExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "MemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNewExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NewExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isProgram(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Program") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectMethod(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isRestElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "RestElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isReturnStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ReturnStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSequenceExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SequenceExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isParenthesizedExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ParenthesizedExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSwitchCase(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SwitchCase") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSwitchStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SwitchStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isThisExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ThisExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isThrowStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ThrowStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTryStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TryStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isUnaryExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "UnaryExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isUpdateExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "UpdateExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isVariableDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "VariableDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isVariableDeclarator(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "VariableDeclarator") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isWhileStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "WhileStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isWithStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "WithStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isAssignmentPattern(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "AssignmentPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isArrayPattern(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ArrayPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isArrowFunctionExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ArrowFunctionExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportAllDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportAllDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportDefaultDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportDefaultDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportNamedDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportNamedDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isForOfStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ForOfStatement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImportDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ImportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImportDefaultSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ImportDefaultSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImportNamespaceSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ImportNamespaceSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImportSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ImportSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isMetaProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "MetaProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassMethod(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectPattern(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectPattern") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSpreadElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SpreadElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSuper(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Super") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTaggedTemplateExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TaggedTemplateExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTemplateElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TemplateElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTemplateLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TemplateLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isYieldExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "YieldExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isAwaitExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "AwaitExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImport(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Import") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBigIntLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BigIntLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportNamespaceSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportNamespaceSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isOptionalMemberExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "OptionalMemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isOptionalCallExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "OptionalCallExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassPrivateProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassPrivateProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassPrivateMethod(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassPrivateMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPrivateName(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PrivateName") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isAnyTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "AnyTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isArrayTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ArrayTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBooleanTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BooleanTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBooleanLiteralTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BooleanLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNullLiteralTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NullLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClassImplements(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ClassImplements") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareClass(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareClass") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareFunction(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareInterface(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareInterface") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareModule(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareModule") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareModuleExports(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareModuleExports") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareTypeAlias(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareTypeAlias") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareOpaqueType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareOpaqueType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareVariable(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareVariable") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareExportDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareExportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclareExportAllDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclareExportAllDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclaredPredicate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DeclaredPredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExistsTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExistsTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunctionTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "FunctionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunctionTypeParam(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "FunctionTypeParam") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isGenericTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "GenericTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isInferredPredicate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "InferredPredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isInterfaceExtends(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "InterfaceExtends") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isInterfaceDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "InterfaceDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isInterfaceTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "InterfaceTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isIntersectionTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "IntersectionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isMixedTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "MixedTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEmptyTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EmptyTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNullableTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NullableTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNumberLiteralTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NumberLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNumberTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NumberTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeInternalSlot(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeInternalSlot") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeCallProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeCallProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeIndexer(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeIndexer") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectTypeSpreadProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ObjectTypeSpreadProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isOpaqueType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "OpaqueType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isQualifiedTypeIdentifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "QualifiedTypeIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isStringLiteralTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "StringLiteralTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isStringTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "StringTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSymbolTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SymbolTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isThisTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ThisTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTupleTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TupleTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeofTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeofTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeAlias(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeAlias") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeCastExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeCastExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeParameter(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeParameter") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeParameterDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeParameterDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTypeParameterInstantiation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TypeParameterInstantiation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isUnionTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "UnionTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isVariance(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Variance") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isVoidTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "VoidTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumBooleanBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumBooleanBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumNumberBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumNumberBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumStringBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumStringBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumSymbolBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumSymbolBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumBooleanMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumBooleanMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumNumberMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumNumberMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumStringMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumStringMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumDefaultedMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "EnumDefaultedMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isIndexedAccessType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "IndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isOptionalIndexedAccessType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "OptionalIndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXAttribute(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXClosingElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXClosingElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXEmptyExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXEmptyExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXExpressionContainer(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXExpressionContainer") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXSpreadChild(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXSpreadChild") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXIdentifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXMemberExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXMemberExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXNamespacedName(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXNamespacedName") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXOpeningElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXOpeningElement") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXSpreadAttribute(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXSpreadAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXText(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXText") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXFragment(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXOpeningFragment(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXOpeningFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSXClosingFragment(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "JSXClosingFragment") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNoop(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Noop") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPlaceholder(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Placeholder") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isV8IntrinsicIdentifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "V8IntrinsicIdentifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isArgumentPlaceholder(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ArgumentPlaceholder") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBindExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "BindExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImportAttribute(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ImportAttribute") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDecorator(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "Decorator") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDoExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DoExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportDefaultSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ExportDefaultSpecifier") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isRecordExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "RecordExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTupleExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TupleExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDecimalLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "DecimalLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isStaticBlock(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "StaticBlock") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isModuleExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "ModuleExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTopicReference(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TopicReference") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelineTopicExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PipelineTopicExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelineBareFunction(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PipelineBareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPipelinePrimaryTopicReference(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "PipelinePrimaryTopicReference") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSParameterProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSParameterProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSDeclareFunction(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSDeclareFunction") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSDeclareMethod(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSDeclareMethod") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSQualifiedName(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSQualifiedName") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSCallSignatureDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSCallSignatureDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSConstructSignatureDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSConstructSignatureDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSPropertySignature(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSPropertySignature") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSMethodSignature(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSMethodSignature") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSIndexSignature(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSIndexSignature") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSAnyKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSAnyKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSBooleanKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSBooleanKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSBigIntKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSBigIntKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSIntrinsicKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSIntrinsicKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNeverKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNeverKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNullKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNullKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNumberKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNumberKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSObjectKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSObjectKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSStringKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSStringKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSSymbolKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSSymbolKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSUndefinedKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSUndefinedKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSUnknownKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSUnknownKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSVoidKeyword(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSVoidKeyword") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSThisType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSThisType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSFunctionType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSFunctionType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSConstructorType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSConstructorType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeReference(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeReference") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypePredicate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypePredicate") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeQuery(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeQuery") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSArrayType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSArrayType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTupleType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTupleType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSOptionalType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSOptionalType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSRestType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSRestType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNamedTupleMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNamedTupleMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSUnionType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSUnionType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSIntersectionType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSIntersectionType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSConditionalType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSConditionalType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSInferType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSInferType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSParenthesizedType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSParenthesizedType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeOperator(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeOperator") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSIndexedAccessType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSIndexedAccessType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSMappedType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSMappedType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSLiteralType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSLiteralType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSExpressionWithTypeArguments(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSExpressionWithTypeArguments") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSInterfaceDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSInterfaceDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSInterfaceBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSInterfaceBody") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeAliasDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeAliasDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSAsExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSAsExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeAssertion(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeAssertion") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSEnumDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSEnumDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSEnumMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSEnumMember") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSModuleDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSModuleDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSModuleBlock(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSModuleBlock") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSImportType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSImportType") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSImportEqualsDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSImportEqualsDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSExternalModuleReference(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSExternalModuleReference") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNonNullExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNonNullExpression") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSExportAssignment(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSExportAssignment") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSNamespaceExportDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSNamespaceExportDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeAnnotation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeParameterInstantiation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeParameterInstantiation") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeParameterDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeParameterDeclaration") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeParameter(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "TSTypeParameter") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExpression(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ArrayExpression" === nodeType || "AssignmentExpression" === nodeType || "BinaryExpression" === nodeType || "CallExpression" === nodeType || "ConditionalExpression" === nodeType || "FunctionExpression" === nodeType || "Identifier" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "LogicalExpression" === nodeType || "MemberExpression" === nodeType || "NewExpression" === nodeType || "ObjectExpression" === nodeType || "SequenceExpression" === nodeType || "ParenthesizedExpression" === nodeType || "ThisExpression" === nodeType || "UnaryExpression" === nodeType || "UpdateExpression" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "MetaProperty" === nodeType || "Super" === nodeType || "TaggedTemplateExpression" === nodeType || "TemplateLiteral" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType || "Import" === nodeType || "BigIntLiteral" === nodeType || "OptionalMemberExpression" === nodeType || "OptionalCallExpression" === nodeType || "TypeCastExpression" === nodeType || "JSXElement" === nodeType || "JSXFragment" === nodeType || "BindExpression" === nodeType || "DoExpression" === nodeType || "RecordExpression" === nodeType || "TupleExpression" === nodeType || "DecimalLiteral" === nodeType || "ModuleExpression" === nodeType || "TopicReference" === nodeType || "PipelineTopicExpression" === nodeType || "PipelineBareFunction" === nodeType || "PipelinePrimaryTopicReference" === nodeType || "TSAsExpression" === nodeType || "TSTypeAssertion" === nodeType || "TSNonNullExpression" === nodeType || nodeType === "Placeholder" && ("Expression" === node.expectedNode || "Identifier" === node.expectedNode || "StringLiteral" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBinary(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BinaryExpression" === nodeType || "LogicalExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isScopable(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassExpression" === nodeType || "ClassDeclaration" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBlockParent(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BlockStatement" === nodeType || "CatchClause" === nodeType || "DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "Program" === nodeType || "ObjectMethod" === nodeType || "SwitchStatement" === nodeType || "WhileStatement" === nodeType || "ArrowFunctionExpression" === nodeType || "ForOfStatement" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType || "StaticBlock" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isBlock(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BlockStatement" === nodeType || "Program" === nodeType || "TSModuleBlock" === nodeType || nodeType === "Placeholder" && "BlockStatement" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BlockStatement" === nodeType || "BreakStatement" === nodeType || "ContinueStatement" === nodeType || "DebuggerStatement" === nodeType || "DoWhileStatement" === nodeType || "EmptyStatement" === nodeType || "ExpressionStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "FunctionDeclaration" === nodeType || "IfStatement" === nodeType || "LabeledStatement" === nodeType || "ReturnStatement" === nodeType || "SwitchStatement" === nodeType || "ThrowStatement" === nodeType || "TryStatement" === nodeType || "VariableDeclaration" === nodeType || "WhileStatement" === nodeType || "WithStatement" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ForOfStatement" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || "TSImportEqualsDeclaration" === nodeType || "TSExportAssignment" === nodeType || "TSNamespaceExportDeclaration" === nodeType || nodeType === "Placeholder" && ("Statement" === node.expectedNode || "Declaration" === node.expectedNode || "BlockStatement" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTerminatorless(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType || "YieldExpression" === nodeType || "AwaitExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isCompletionStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("BreakStatement" === nodeType || "ContinueStatement" === nodeType || "ReturnStatement" === nodeType || "ThrowStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isConditional(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ConditionalExpression" === nodeType || "IfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isLoop(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("DoWhileStatement" === nodeType || "ForInStatement" === nodeType || "ForStatement" === nodeType || "WhileStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isWhile(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("DoWhileStatement" === nodeType || "WhileStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExpressionWrapper(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ExpressionStatement" === nodeType || "ParenthesizedExpression" === nodeType || "TypeCastExpression" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFor(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ForInStatement" === nodeType || "ForStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isForXStatement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ForInStatement" === nodeType || "ForOfStatement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunction(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFunctionParent(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "ObjectMethod" === nodeType || "ArrowFunctionExpression" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPureish(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("FunctionDeclaration" === nodeType || "FunctionExpression" === nodeType || "StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "ArrowFunctionExpression" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("FunctionDeclaration" === nodeType || "VariableDeclaration" === nodeType || "ClassDeclaration" === nodeType || "ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType || "EnumDeclaration" === nodeType || "TSDeclareFunction" === nodeType || "TSInterfaceDeclaration" === nodeType || "TSTypeAliasDeclaration" === nodeType || "TSEnumDeclaration" === nodeType || "TSModuleDeclaration" === nodeType || nodeType === "Placeholder" && "Declaration" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPatternLike(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("Identifier" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isLVal(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("Identifier" === nodeType || "MemberExpression" === nodeType || "RestElement" === nodeType || "AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || "TSParameterProperty" === nodeType || nodeType === "Placeholder" && ("Pattern" === node.expectedNode || "Identifier" === node.expectedNode)) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSEntityName(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("Identifier" === nodeType || "TSQualifiedName" === nodeType || nodeType === "Placeholder" && "Identifier" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isLiteral(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "RegExpLiteral" === nodeType || "TemplateLiteral" === nodeType || "BigIntLiteral" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isImmutable(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("StringLiteral" === nodeType || "NumericLiteral" === nodeType || "NullLiteral" === nodeType || "BooleanLiteral" === nodeType || "BigIntLiteral" === nodeType || "JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || "JSXExpressionContainer" === nodeType || "JSXSpreadChild" === nodeType || "JSXOpeningElement" === nodeType || "JSXText" === nodeType || "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType || "DecimalLiteral" === nodeType || nodeType === "Placeholder" && "StringLiteral" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isUserWhitespacable(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isMethod(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ObjectMethod" === nodeType || "ClassMethod" === nodeType || "ClassPrivateMethod" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isObjectMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ObjectMethod" === nodeType || "ObjectProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isProperty(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ObjectProperty" === nodeType || "ClassProperty" === nodeType || "ClassPrivateProperty" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isUnaryLike(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("UnaryExpression" === nodeType || "SpreadElement" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPattern(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("AssignmentPattern" === nodeType || "ArrayPattern" === nodeType || "ObjectPattern" === nodeType || nodeType === "Placeholder" && "Pattern" === node.expectedNode) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isClass(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ClassExpression" === nodeType || "ClassDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isModuleDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType || "ImportDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isExportDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ExportAllDeclaration" === nodeType || "ExportDefaultDeclaration" === nodeType || "ExportNamedDeclaration" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isModuleSpecifier(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ExportSpecifier" === nodeType || "ImportDefaultSpecifier" === nodeType || "ImportNamespaceSpecifier" === nodeType || "ImportSpecifier" === nodeType || "ExportNamespaceSpecifier" === nodeType || "ExportDefaultSpecifier" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isPrivate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("ClassPrivateProperty" === nodeType || "ClassPrivateMethod" === nodeType || "PrivateName" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFlow(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ClassImplements" === nodeType || "DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "DeclaredPredicate" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "FunctionTypeParam" === nodeType || "GenericTypeAnnotation" === nodeType || "InferredPredicate" === nodeType || "InterfaceExtends" === nodeType || "InterfaceDeclaration" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "ObjectTypeInternalSlot" === nodeType || "ObjectTypeCallProperty" === nodeType || "ObjectTypeIndexer" === nodeType || "ObjectTypeProperty" === nodeType || "ObjectTypeSpreadProperty" === nodeType || "OpaqueType" === nodeType || "QualifiedTypeIdentifier" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "TypeAlias" === nodeType || "TypeAnnotation" === nodeType || "TypeCastExpression" === nodeType || "TypeParameter" === nodeType || "TypeParameterDeclaration" === nodeType || "TypeParameterInstantiation" === nodeType || "UnionTypeAnnotation" === nodeType || "Variance" === nodeType || "VoidTypeAnnotation" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFlowType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("AnyTypeAnnotation" === nodeType || "ArrayTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "BooleanLiteralTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "ExistsTypeAnnotation" === nodeType || "FunctionTypeAnnotation" === nodeType || "GenericTypeAnnotation" === nodeType || "InterfaceTypeAnnotation" === nodeType || "IntersectionTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NullableTypeAnnotation" === nodeType || "NumberLiteralTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "ObjectTypeAnnotation" === nodeType || "StringLiteralTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "TupleTypeAnnotation" === nodeType || "TypeofTypeAnnotation" === nodeType || "UnionTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType || "IndexedAccessType" === nodeType || "OptionalIndexedAccessType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFlowBaseAnnotation(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("AnyTypeAnnotation" === nodeType || "BooleanTypeAnnotation" === nodeType || "NullLiteralTypeAnnotation" === nodeType || "MixedTypeAnnotation" === nodeType || "EmptyTypeAnnotation" === nodeType || "NumberTypeAnnotation" === nodeType || "StringTypeAnnotation" === nodeType || "SymbolTypeAnnotation" === nodeType || "ThisTypeAnnotation" === nodeType || "VoidTypeAnnotation" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFlowDeclaration(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("DeclareClass" === nodeType || "DeclareFunction" === nodeType || "DeclareInterface" === nodeType || "DeclareModule" === nodeType || "DeclareModuleExports" === nodeType || "DeclareTypeAlias" === nodeType || "DeclareOpaqueType" === nodeType || "DeclareVariable" === nodeType || "DeclareExportDeclaration" === nodeType || "DeclareExportAllDeclaration" === nodeType || "InterfaceDeclaration" === nodeType || "OpaqueType" === nodeType || "TypeAlias" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isFlowPredicate(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("DeclaredPredicate" === nodeType || "InferredPredicate" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumBody(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("EnumBooleanBody" === nodeType || "EnumNumberBody" === nodeType || "EnumStringBody" === nodeType || "EnumSymbolBody" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isEnumMember(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("EnumBooleanMember" === nodeType || "EnumNumberMember" === nodeType || "EnumStringMember" === nodeType || "EnumDefaultedMember" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isJSX(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("JSXAttribute" === nodeType || "JSXClosingElement" === nodeType || "JSXElement" === nodeType || "JSXEmptyExpression" === nodeType || "JSXExpressionContainer" === nodeType || "JSXSpreadChild" === nodeType || "JSXIdentifier" === nodeType || "JSXMemberExpression" === nodeType || "JSXNamespacedName" === nodeType || "JSXOpeningElement" === nodeType || "JSXSpreadAttribute" === nodeType || "JSXText" === nodeType || "JSXFragment" === nodeType || "JSXOpeningFragment" === nodeType || "JSXClosingFragment" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSTypeElement(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("TSCallSignatureDeclaration" === nodeType || "TSConstructSignatureDeclaration" === nodeType || "TSPropertySignature" === nodeType || "TSMethodSignature" === nodeType || "TSIndexSignature" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSFunctionType" === nodeType || "TSConstructorType" === nodeType || "TSTypeReference" === nodeType || "TSTypePredicate" === nodeType || "TSTypeQuery" === nodeType || "TSTypeLiteral" === nodeType || "TSArrayType" === nodeType || "TSTupleType" === nodeType || "TSOptionalType" === nodeType || "TSRestType" === nodeType || "TSUnionType" === nodeType || "TSIntersectionType" === nodeType || "TSConditionalType" === nodeType || "TSInferType" === nodeType || "TSParenthesizedType" === nodeType || "TSTypeOperator" === nodeType || "TSIndexedAccessType" === nodeType || "TSMappedType" === nodeType || "TSLiteralType" === nodeType || "TSExpressionWithTypeArguments" === nodeType || "TSImportType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isTSBaseType(node, opts) { - if (!node) return false; - const nodeType = node.type; - - if ("TSAnyKeyword" === nodeType || "TSBooleanKeyword" === nodeType || "TSBigIntKeyword" === nodeType || "TSIntrinsicKeyword" === nodeType || "TSNeverKeyword" === nodeType || "TSNullKeyword" === nodeType || "TSNumberKeyword" === nodeType || "TSObjectKeyword" === nodeType || "TSStringKeyword" === nodeType || "TSSymbolKeyword" === nodeType || "TSUndefinedKeyword" === nodeType || "TSUnknownKeyword" === nodeType || "TSVoidKeyword" === nodeType || "TSThisType" === nodeType || "TSLiteralType" === nodeType) { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isNumberLiteral(node, opts) { - console.trace("The node type NumberLiteral has been renamed to NumericLiteral"); - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "NumberLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isRegexLiteral(node, opts) { - console.trace("The node type RegexLiteral has been renamed to RegExpLiteral"); - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "RegexLiteral") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isRestProperty(node, opts) { - console.trace("The node type RestProperty has been renamed to RestElement"); - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "RestProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} - -function isSpreadProperty(node, opts) { - console.trace("The node type SpreadProperty has been renamed to SpreadElement"); - if (!node) return false; - const nodeType = node.type; - - if (nodeType === "SpreadProperty") { - if (typeof opts === "undefined") { - return true; - } else { - return (0, _shallowEqual.default)(node, opts); - } - } - - return false; -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/package.json b/tools/node_modules/@babel/core/node_modules/@babel/types/package.json deleted file mode 100644 index 202d4baa4660ac..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/package.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "name": "@babel/types", - "version": "7.15.6", - "description": "Babel Types is a Lodash-esque utility library for AST nodes", - "author": "The Babel Team (https://babel.dev/team)", - "homepage": "https://babel.dev/docs/en/next/babel-types", - "bugs": "https://github.com/babel/babel/issues?utf8=%E2%9C%93&q=is%3Aissue+label%3A%22pkg%3A%20types%22+is%3Aopen", - "license": "MIT", - "publishConfig": { - "access": "public" - }, - "repository": { - "type": "git", - "url": "https://github.com/babel/babel.git", - "directory": "packages/babel-types" - }, - "main": "./lib/index.js", - "types": "./lib/index-legacy.d.ts", - "typesVersions": { - ">=3.7": { - "lib/index-legacy.d.ts": [ - "lib/index.d.ts" - ] - } - }, - "dependencies": { - "@babel/helper-validator-identifier": "^7.14.9", - "to-fast-properties": "^2.0.0" - }, - "devDependencies": { - "@babel/generator": "7.15.4", - "@babel/parser": "7.15.6", - "chalk": "^4.1.0", - "glob": "^7.1.7" - }, - "engines": { - "node": ">=6.9.0" - } -} \ No newline at end of file diff --git a/tools/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js b/tools/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js deleted file mode 100644 index f7b82e56d394f7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/@babel/types/scripts/generators/docs.js +++ /dev/null @@ -1,277 +0,0 @@ -import util from "util"; -import stringifyValidator from "../utils/stringifyValidator.js"; -import toFunctionName from "../utils/toFunctionName.js"; - -import t from "../../lib/index.js"; - -const readme = [ - `--- -id: babel-types -title: @babel/types ---- - - -> This module contains methods for building ASTs manually and for checking the types of AST nodes. - -## Install - -\`\`\`sh -npm install --save-dev @babel/types -\`\`\` - -## API`, -]; - -const customTypes = { - ClassMethod: { - key: "if computed then `Expression` else `Identifier | Literal`", - }, - Identifier: { - name: "`string`", - }, - MemberExpression: { - property: "if computed then `Expression` else `Identifier`", - }, - ObjectMethod: { - key: "if computed then `Expression` else `Identifier | Literal`", - }, - ObjectProperty: { - key: "if computed then `Expression` else `Identifier | Literal`", - }, - ClassPrivateMethod: { - computed: "'false'", - }, - ClassPrivateProperty: { - computed: "'false'", - }, -}; -const APIHistory = { - ClassProperty: [["v7.6.0", "Supports `static`"]], -}; -function formatHistory(historyItems) { - const lines = historyItems.map( - item => "| `" + item[0] + "` | " + item[1] + " |" - ); - return [ - "
          ", - " History", - "| Version | Changes |", - "| --- | --- |", - ...lines, - "
          ", - ]; -} -function printAPIHistory(key, readme) { - if (APIHistory[key]) { - readme.push(""); - readme.push(...formatHistory(APIHistory[key])); - } -} -function printNodeFields(key, readme) { - if (Object.keys(t.NODE_FIELDS[key]).length > 0) { - readme.push(""); - readme.push("AST Node `" + key + "` shape:"); - Object.keys(t.NODE_FIELDS[key]) - .sort(function (fieldA, fieldB) { - const indexA = t.BUILDER_KEYS[key].indexOf(fieldA); - const indexB = t.BUILDER_KEYS[key].indexOf(fieldB); - if (indexA === indexB) return fieldA < fieldB ? -1 : 1; - if (indexA === -1) return 1; - if (indexB === -1) return -1; - return indexA - indexB; - }) - .forEach(function (field) { - const defaultValue = t.NODE_FIELDS[key][field].default; - const fieldDescription = ["`" + field + "`"]; - const validator = t.NODE_FIELDS[key][field].validate; - if (customTypes[key] && customTypes[key][field]) { - fieldDescription.push(`: ${customTypes[key][field]}`); - } else if (validator) { - try { - fieldDescription.push( - ": `" + stringifyValidator(validator, "") + "`" - ); - } catch (ex) { - if (ex.code === "UNEXPECTED_VALIDATOR_TYPE") { - console.log( - "Unrecognised validator type for " + key + "." + field - ); - console.dir(ex.validator, { depth: 10, colors: true }); - } - } - } - if (defaultValue !== null || t.NODE_FIELDS[key][field].optional) { - fieldDescription.push( - " (default: `" + util.inspect(defaultValue) + "`" - ); - if (t.BUILDER_KEYS[key].indexOf(field) < 0) { - fieldDescription.push(", excluded from builder function"); - } - fieldDescription.push(")"); - } else { - fieldDescription.push(" (required)"); - } - readme.push("- " + fieldDescription.join("")); - }); - } -} - -function printAliasKeys(key, readme) { - if (t.ALIAS_KEYS[key] && t.ALIAS_KEYS[key].length) { - readme.push(""); - readme.push( - "Aliases: " + - t.ALIAS_KEYS[key] - .map(function (key) { - return "[`" + key + "`](#" + key.toLowerCase() + ")"; - }) - .join(", ") - ); - } -} -readme.push("### Node Builders"); -readme.push(""); -Object.keys(t.BUILDER_KEYS) - .sort() - .forEach(function (key) { - readme.push("#### " + toFunctionName(key)); - readme.push(""); - readme.push("```javascript"); - readme.push( - "t." + toFunctionName(key) + "(" + t.BUILDER_KEYS[key].join(", ") + ");" - ); - readme.push("```"); - printAPIHistory(key, readme); - readme.push(""); - readme.push( - "See also `t.is" + - key + - "(node, opts)` and `t.assert" + - key + - "(node, opts)`." - ); - - printNodeFields(key, readme); - printAliasKeys(key, readme); - - readme.push(""); - readme.push("---"); - readme.push(""); - }); - -function generateMapAliasToNodeTypes() { - const result = new Map(); - for (const nodeType of Object.keys(t.ALIAS_KEYS)) { - const aliases = t.ALIAS_KEYS[nodeType]; - if (!aliases) continue; - for (const alias of aliases) { - if (!result.has(alias)) { - result.set(alias, []); - } - const nodeTypes = result.get(alias); - nodeTypes.push(nodeType); - } - } - return result; -} -const aliasDescriptions = { - Binary: - "A cover of BinaryExpression and LogicalExpression, which share the same AST shape.", - Block: "Deprecated. Will be removed in Babel 8.", - BlockParent: - "A cover of AST nodes that start an execution context with new [LexicalEnvironment](https://tc39.es/ecma262/#table-additional-state-components-for-ecmascript-code-execution-contexts). In other words, they define the scope of `let` and `const` declarations.", - Class: - "A cover of ClassExpression and ClassDeclaration, which share the same AST shape.", - CompletionStatement: - "A statement that indicates the [completion records](https://tc39.es/ecma262/#sec-completion-record-specification-type). In other words, they define the control flow of the program, such as when should a loop break or an action throws critical errors.", - Conditional: - "A cover of ConditionalExpression and IfStatement, which share the same AST shape.", - Declaration: - "A cover of any [Declaration](https://tc39.es/ecma262/#prod-Declaration)s.", - EnumBody: "A cover of Flow enum bodies.", - EnumMember: "A cover of Flow enum membors.", - ExportDeclaration: - "A cover of any [ExportDeclaration](https://tc39.es/ecma262/#prod-ExportDeclaration)s.", - Expression: - "A cover of any [Expression](https://tc39.es/ecma262/#sec-ecmascript-language-expressions)s.", - ExpressionWrapper: - "A wrapper of expression that does not have runtime semantics.", - Flow: "A cover of AST nodes defined for Flow.", - FlowBaseAnnotation: "A cover of primary Flow type annotations.", - FlowDeclaration: "A cover of Flow declarations.", - FlowPredicate: "A cover of Flow predicates.", - FlowType: "A cover of Flow type annotations.", - For: "A cover of [ForStatement](https://tc39.es/ecma262/#sec-for-statement)s and [ForXStatement](#forxstatement)s.", - ForXStatement: - "A cover of [ForInStatements and ForOfStatements](https://tc39.es/ecma262/#sec-for-in-and-for-of-statements).", - Function: - "A cover of functions and [method](#method)s, the must have `body` and `params`. Note: `Function` is different to `FunctionParent`.", - FunctionParent: - "A cover of AST nodes that start an execution context with new [VariableEnvironment](https://tc39.es/ecma262/#table-additional-state-components-for-ecmascript-code-execution-contexts). In other words, they define the scope of `var` declarations. FunctionParent did not include `Program` since Babel 7.", - Immutable: - "A cover of immutable objects and JSX elements. An object is [immutable](https://tc39.es/ecma262/#immutable-prototype-exotic-object) if no other properties can be defined once created.", - JSX: "A cover of AST nodes defined for [JSX](https://facebook.github.io/jsx/).", - LVal: "A cover of left hand side expressions used in the `left` of assignment expressions and [ForXStatement](#forxstatement)s. ", - Literal: - "A cover of [Literal](https://tc39.es/ecma262/#sec-primary-expression-literals)s, [Regular Expression Literal](https://tc39.es/ecma262/#sec-primary-expression-regular-expression-literals)s and [Template Literal](https://tc39.es/ecma262/#sec-template-literals)s.", - Loop: "A cover of loop statements.", - Method: "A cover of object methods and class methods.", - ModuleDeclaration: - "A cover of ImportDeclaration and [ExportDeclaration](#exportdeclaration)", - ModuleSpecifier: - "A cover of import and export specifiers. Note: It is _not_ the [ModuleSpecifier](https://tc39.es/ecma262/#prod-ModuleSpecifier) defined in the spec.", - ObjectMember: - "A cover of [members](https://tc39.es/ecma262/#prod-PropertyDefinitionList) in an object literal.", - Pattern: - "A cover of [BindingPattern](https://tc39.es/ecma262/#prod-BindingPattern) except Identifiers.", - PatternLike: - "A cover of [BindingPattern](https://tc39.es/ecma262/#prod-BindingPattern)s. ", - Private: "A cover of private class elements and private identifiers.", - Property: "A cover of object properties and class properties.", - Pureish: - "A cover of AST nodes which do not have side-effects. In other words, there is no observable behaviour changes if they are evaluated more than once.", - Scopable: - "A cover of [FunctionParent](#functionparent) and [BlockParent](#blockparent).", - Statement: - "A cover of any [Statement](https://tc39.es/ecma262/#prod-Statement)s.", - TSBaseType: "A cover of primary TypeScript type annotations.", - TSEntityName: "A cover of ts entities.", - TSType: "A cover of TypeScript type annotations.", - TSTypeElement: "A cover of TypeScript type declarations.", - Terminatorless: - "A cover of AST nodes whose semantic will change when a line terminator is inserted between the operator and the operand.", - UnaryLike: "A cover of UnaryExpression and SpreadElement.", - UserWhitespacable: "Deprecated. Will be removed in Babel 8.", - While: - "A cover of DoWhileStatement and WhileStatement, which share the same AST shape.", -}; -const mapAliasToNodeTypes = generateMapAliasToNodeTypes(); -readme.push("### Aliases"); -readme.push(""); -for (const alias of [...mapAliasToNodeTypes.keys()].sort()) { - const nodeTypes = mapAliasToNodeTypes.get(alias); - nodeTypes.sort(); - if (!(alias in aliasDescriptions)) { - throw new Error( - 'Missing alias descriptions of "' + - alias + - ", which covers " + - nodeTypes.join(",") - ); - } - readme.push("#### " + alias); - readme.push(""); - readme.push(aliasDescriptions[alias]); - readme.push("```javascript"); - readme.push("t.is" + alias + "(node);"); - readme.push("```"); - readme.push(""); - readme.push("Covered nodes: "); - for (const nodeType of nodeTypes) { - readme.push("- [`" + nodeType + "`](#" + nodeType.toLowerCase() + ")"); - } - readme.push(""); -} - -process.stdout.write(readme.join("\n")); diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/README.md b/tools/node_modules/@babel/core/node_modules/browserslist/README.md deleted file mode 100644 index b1cde150e40bee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/README.md +++ /dev/null @@ -1,66 +0,0 @@ -# Browserslist [![Cult Of Martians][cult-img]][cult] - -Browserslist logo by Anton Lovchikov - -The config to share target browsers and Node.js versions between different -front-end tools. It is used in: - -* [Autoprefixer] -* [Babel] -* [postcss-preset-env] -* [eslint-plugin-compat] -* [stylelint-no-unsupported-browser-features] -* [postcss-normalize] -* [obsolete-webpack-plugin] - -All tools will find target browsers automatically, -when you add the following to `package.json`: - -```json - "browserslist": [ - "defaults", - "not IE 11", - "maintained node versions" - ] -``` - -Or in `.browserslistrc` config: - -```yaml -# Browsers that we support - -defaults -not IE 11 -maintained node versions -``` - -Developers set their version lists using queries like `last 2 versions` -to be free from updating versions manually. -Browserslist will use [`caniuse-lite`] with [Can I Use] data for this queries. - -Browserslist will take queries from tool option, -`browserslist` config, `.browserslistrc` config, -`browserslist` section in `package.json` or environment variables. - -[cult-img]: https://cultofmartians.com/assets/badges/badge.svg -[cult]: https://cultofmartians.com/done.html - - - Sponsored by Evil Martians - - -[stylelint-no-unsupported-browser-features]: https://github.com/ismay/stylelint-no-unsupported-browser-features -[eslint-plugin-compat]: https://github.com/amilajack/eslint-plugin-compat -[Browserslist Example]: https://github.com/browserslist/browserslist-example -[postcss-preset-env]: https://github.com/jonathantneal/postcss-preset-env -[postcss-normalize]: https://github.com/jonathantneal/postcss-normalize -[`caniuse-lite`]: https://github.com/ben-eb/caniuse-lite -[Autoprefixer]: https://github.com/postcss/autoprefixer -[Can I Use]: https://caniuse.com/ -[Babel]: https://github.com/babel/babel/tree/master/packages/babel-preset-env -[obsolete-webpack-plugin]: https://github.com/ElemeFE/obsolete-webpack-plugin - -## Docs -Read **[full docs](https://github.com/browserslist/browserslist#readme)** on GitHub. diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/browser.js b/tools/node_modules/@babel/core/node_modules/browserslist/browser.js deleted file mode 100644 index 39e9ec349d2b78..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/browser.js +++ /dev/null @@ -1,46 +0,0 @@ -var BrowserslistError = require('./error') - -function noop () { } - -module.exports = { - loadQueries: function loadQueries () { - throw new BrowserslistError( - 'Sharable configs are not supported in client-side build of Browserslist') - }, - - getStat: function getStat (opts) { - return opts.stats - }, - - loadConfig: function loadConfig (opts) { - if (opts.config) { - throw new BrowserslistError( - 'Browserslist config are not supported in client-side build') - } - }, - - loadCountry: function loadCountry () { - throw new BrowserslistError( - 'Country statistics are not supported ' + - 'in client-side build of Browserslist') - }, - - loadFeature: function loadFeature () { - throw new BrowserslistError( - 'Supports queries are not available in client-side build of Browserslist') - }, - - currentNode: function currentNode (resolve, context) { - return resolve(['maintained node versions'], context)[0] - }, - - parseConfig: noop, - - readConfig: noop, - - findConfig: noop, - - clearCaches: noop, - - oldDataWarning: noop -} diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/error.js b/tools/node_modules/@babel/core/node_modules/browserslist/error.js deleted file mode 100644 index b3bc0fe94c69ec..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/error.js +++ /dev/null @@ -1,12 +0,0 @@ -function BrowserslistError (message) { - this.name = 'BrowserslistError' - this.message = message - this.browserslist = true - if (Error.captureStackTrace) { - Error.captureStackTrace(this, BrowserslistError) - } -} - -BrowserslistError.prototype = Error.prototype - -module.exports = BrowserslistError diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/index.js b/tools/node_modules/@babel/core/node_modules/browserslist/index.js deleted file mode 100644 index e1785be08aac13..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/index.js +++ /dev/null @@ -1,1215 +0,0 @@ -var jsReleases = require('node-releases/data/processed/envs.json') -var agents = require('caniuse-lite/dist/unpacker/agents').agents -var jsEOL = require('node-releases/data/release-schedule/release-schedule.json') -var path = require('path') -var e2c = require('electron-to-chromium/versions') - -var BrowserslistError = require('./error') -var env = require('./node') // Will load browser.js in webpack - -var YEAR = 365.259641 * 24 * 60 * 60 * 1000 -var ANDROID_EVERGREEN_FIRST = 37 - -var QUERY_OR = 1 -var QUERY_AND = 2 - -function isVersionsMatch (versionA, versionB) { - return (versionA + '.').indexOf(versionB + '.') === 0 -} - -function isEolReleased (name) { - var version = name.slice(1) - return jsReleases.some(function (i) { - return isVersionsMatch(i.version, version) - }) -} - -function normalize (versions) { - return versions.filter(function (version) { - return typeof version === 'string' - }) -} - -function normalizeElectron (version) { - var versionToUse = version - if (version.split('.').length === 3) { - versionToUse = version - .split('.') - .slice(0, -1) - .join('.') - } - return versionToUse -} - -function nameMapper (name) { - return function mapName (version) { - return name + ' ' + version - } -} - -function getMajor (version) { - return parseInt(version.split('.')[0]) -} - -function getMajorVersions (released, number) { - if (released.length === 0) return [] - var majorVersions = uniq(released.map(getMajor)) - var minimum = majorVersions[majorVersions.length - number] - if (!minimum) { - return released - } - var selected = [] - for (var i = released.length - 1; i >= 0; i--) { - if (minimum > getMajor(released[i])) break - selected.unshift(released[i]) - } - return selected -} - -function uniq (array) { - var filtered = [] - for (var i = 0; i < array.length; i++) { - if (filtered.indexOf(array[i]) === -1) filtered.push(array[i]) - } - return filtered -} - -// Helpers - -function fillUsage (result, name, data) { - for (var i in data) { - result[name + ' ' + i] = data[i] - } -} - -function generateFilter (sign, version) { - version = parseFloat(version) - if (sign === '>') { - return function (v) { - return parseFloat(v) > version - } - } else if (sign === '>=') { - return function (v) { - return parseFloat(v) >= version - } - } else if (sign === '<') { - return function (v) { - return parseFloat(v) < version - } - } else { - return function (v) { - return parseFloat(v) <= version - } - } -} - -function generateSemverFilter (sign, version) { - version = version.split('.').map(parseSimpleInt) - version[1] = version[1] || 0 - version[2] = version[2] || 0 - if (sign === '>') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) > 0 - } - } else if (sign === '>=') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(v, version) >= 0 - } - } else if (sign === '<') { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) > 0 - } - } else { - return function (v) { - v = v.split('.').map(parseSimpleInt) - return compareSemver(version, v) >= 0 - } - } -} - -function parseSimpleInt (x) { - return parseInt(x) -} - -function compare (a, b) { - if (a < b) return -1 - if (a > b) return +1 - return 0 -} - -function compareSemver (a, b) { - return ( - compare(parseInt(a[0]), parseInt(b[0])) || - compare(parseInt(a[1] || '0'), parseInt(b[1] || '0')) || - compare(parseInt(a[2] || '0'), parseInt(b[2] || '0')) - ) -} - -// this follows the npm-like semver behavior -function semverFilterLoose (operator, range) { - range = range.split('.').map(parseSimpleInt) - if (typeof range[1] === 'undefined') { - range[1] = 'x' - } - // ignore any patch version because we only return minor versions - // range[2] = 'x' - switch (operator) { - case '<=': - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) <= 0 - } - default: - case '>=': - return function (version) { - version = version.split('.').map(parseSimpleInt) - return compareSemverLoose(version, range) >= 0 - } - } -} - -// this follows the npm-like semver behavior -function compareSemverLoose (version, range) { - if (version[0] !== range[0]) { - return version[0] < range[0] ? -1 : +1 - } - if (range[1] === 'x') { - return 0 - } - if (version[1] !== range[1]) { - return version[1] < range[1] ? -1 : +1 - } - return 0 -} - -function resolveVersion (data, version) { - if (data.versions.indexOf(version) !== -1) { - return version - } else if (browserslist.versionAliases[data.name][version]) { - return browserslist.versionAliases[data.name][version] - } else { - return false - } -} - -function normalizeVersion (data, version) { - var resolved = resolveVersion(data, version) - if (resolved) { - return resolved - } else if (data.versions.length === 1) { - return data.versions[0] - } else { - return false - } -} - -function filterByYear (since, context) { - since = since / 1000 - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var versions = Object.keys(data.releaseDate).filter(function (v) { - return data.releaseDate[v] >= since - }) - return selected.concat(versions.map(nameMapper(data.name))) - }, []) -} - -function cloneData (data) { - return { - name: data.name, - versions: data.versions, - released: data.released, - releaseDate: data.releaseDate - } -} - -function mapVersions (data, map) { - data.versions = data.versions.map(function (i) { - return map[i] || i - }) - data.released = data.versions.map(function (i) { - return map[i] || i - }) - var fixedDate = { } - for (var i in data.releaseDate) { - fixedDate[map[i] || i] = data.releaseDate[i] - } - data.releaseDate = fixedDate - return data -} - -function byName (name, context) { - name = name.toLowerCase() - name = browserslist.aliases[name] || name - if (context.mobileToDesktop && browserslist.desktopNames[name]) { - var desktop = browserslist.data[browserslist.desktopNames[name]] - if (name === 'android') { - return normalizeAndroidData(cloneData(browserslist.data[name]), desktop) - } else { - var cloned = cloneData(desktop) - cloned.name = name - if (name === 'op_mob') { - cloned = mapVersions(cloned, { '10.0-10.1': '10' }) - } - return cloned - } - } - return browserslist.data[name] -} - -function normalizeAndroidVersions (androidVersions, chromeVersions) { - var firstEvergreen = ANDROID_EVERGREEN_FIRST - var last = chromeVersions[chromeVersions.length - 1] - return androidVersions - .filter(function (version) { return /^(?:[2-4]\.|[34]$)/.test(version) }) - .concat(chromeVersions.slice(firstEvergreen - last - 1)) -} - -function normalizeAndroidData (android, chrome) { - android.released = normalizeAndroidVersions(android.released, chrome.released) - android.versions = normalizeAndroidVersions(android.versions, chrome.versions) - return android -} - -function checkName (name, context) { - var data = byName(name, context) - if (!data) throw new BrowserslistError('Unknown browser ' + name) - return data -} - -function unknownQuery (query) { - return new BrowserslistError( - 'Unknown browser query `' + query + '`. ' + - 'Maybe you are using old Browserslist or made typo in query.' - ) -} - -function filterAndroid (list, versions, context) { - if (context.mobileToDesktop) return list - var released = browserslist.data.android.released - var last = released[released.length - 1] - var diff = last - ANDROID_EVERGREEN_FIRST - versions - if (diff > 0) { - return list.slice(-1) - } else { - return list.slice(diff - 1) - } -} - -/** - * Resolves queries into a browser list. - * @param {string|string[]} queries Queries to combine. - * Either an array of queries or a long string of queries. - * @param {object} [context] Optional arguments to - * the select function in `queries`. - * @returns {string[]} A list of browsers - */ -function resolve (queries, context) { - if (Array.isArray(queries)) { - queries = flatten(queries.map(parse)) - } else { - queries = parse(queries) - } - - return queries.reduce(function (result, query, index) { - var selection = query.queryString - - var isExclude = selection.indexOf('not ') === 0 - if (isExclude) { - if (index === 0) { - throw new BrowserslistError( - 'Write any browsers query (for instance, `defaults`) ' + - 'before `' + selection + '`') - } - selection = selection.slice(4) - } - - for (var i = 0; i < QUERIES.length; i++) { - var type = QUERIES[i] - var match = selection.match(type.regexp) - if (match) { - var args = [context].concat(match.slice(1)) - var array = type.select.apply(browserslist, args).map(function (j) { - var parts = j.split(' ') - if (parts[1] === '0') { - return parts[0] + ' ' + byName(parts[0], context).versions[0] - } else { - return j - } - }) - - switch (query.type) { - case QUERY_AND: - if (isExclude) { - return result.filter(function (j) { - return array.indexOf(j) === -1 - }) - } else { - return result.filter(function (j) { - return array.indexOf(j) !== -1 - }) - } - case QUERY_OR: - default: - if (isExclude) { - var filter = { } - array.forEach(function (j) { - filter[j] = true - }) - return result.filter(function (j) { - return !filter[j] - }) - } - return result.concat(array) - } - } - } - - throw unknownQuery(selection) - }, []) -} - -var cache = { } - -/** - * Return array of browsers by selection queries. - * - * @param {(string|string[])} [queries=browserslist.defaults] Browser queries. - * @param {object} [opts] Options. - * @param {string} [opts.path="."] Path to processed file. - * It will be used to find config files. - * @param {string} [opts.env="production"] Processing environment. - * It will be used to take right - * queries from config file. - * @param {string} [opts.config] Path to config file with queries. - * @param {object} [opts.stats] Custom browser usage statistics - * for "> 1% in my stats" query. - * @param {boolean} [opts.ignoreUnknownVersions=false] Do not throw on unknown - * version in direct query. - * @param {boolean} [opts.dangerousExtend] Disable security checks - * for extend query. - * @param {boolean} [opts.mobileToDesktop] Alias mobile browsers to the desktop - * version when Can I Use doesn't have - * data about the specified version. - * @returns {string[]} Array with browser names in Can I Use. - * - * @example - * browserslist('IE >= 10, IE 8') //=> ['ie 11', 'ie 10', 'ie 8'] - */ -function browserslist (queries, opts) { - if (typeof opts === 'undefined') opts = { } - - if (typeof opts.path === 'undefined') { - opts.path = path.resolve ? path.resolve('.') : '.' - } - - if (typeof queries === 'undefined' || queries === null) { - var config = browserslist.loadConfig(opts) - if (config) { - queries = config - } else { - queries = browserslist.defaults - } - } - - if (!(typeof queries === 'string' || Array.isArray(queries))) { - throw new BrowserslistError( - 'Browser queries must be an array or string. Got ' + typeof queries + '.') - } - - var context = { - ignoreUnknownVersions: opts.ignoreUnknownVersions, - dangerousExtend: opts.dangerousExtend, - mobileToDesktop: opts.mobileToDesktop, - path: opts.path, - env: opts.env - } - - env.oldDataWarning(browserslist.data) - var stats = env.getStat(opts, browserslist.data) - if (stats) { - context.customUsage = { } - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - - var cacheKey = JSON.stringify([queries, context]) - if (cache[cacheKey]) return cache[cacheKey] - - var result = uniq(resolve(queries, context)).sort(function (name1, name2) { - name1 = name1.split(' ') - name2 = name2.split(' ') - if (name1[0] === name2[0]) { - // assumptions on caniuse data - // 1) version ranges never overlaps - // 2) if version is not a range, it never contains `-` - var version1 = name1[1].split('-')[0] - var version2 = name2[1].split('-')[0] - return compareSemver(version2.split('.'), version1.split('.')) - } else { - return compare(name1[0], name2[0]) - } - }) - if (!process.env.BROWSERSLIST_DISABLE_CACHE) { - cache[cacheKey] = result - } - return result -} - -function parse (queries) { - var qs = [] - do { - queries = doMatch(queries, qs) - } while (queries) - return qs -} - -function doMatch (string, qs) { - var or = /^(?:,\s*|\s+or\s+)(.*)/i - var and = /^\s+and\s+(.*)/i - - return find(string, function (parsed, n, max) { - if (and.test(parsed)) { - qs.unshift({ type: QUERY_AND, queryString: parsed.match(and)[1] }) - return true - } else if (or.test(parsed)) { - qs.unshift({ type: QUERY_OR, queryString: parsed.match(or)[1] }) - return true - } else if (n === max) { - qs.unshift({ type: QUERY_OR, queryString: parsed.trim() }) - return true - } - return false - }) -} - -function find (string, predicate) { - for (var n = 1, max = string.length; n <= max; n++) { - var parsed = string.substr(-n, n) - if (predicate(parsed, n, max)) { - return string.slice(0, -n) - } - } - return '' -} - -function flatten (array) { - if (!Array.isArray(array)) return [array] - return array.reduce(function (a, b) { - return a.concat(flatten(b)) - }, []) -} - -// Will be filled by Can I Use data below -browserslist.cache = { } -browserslist.data = { } -browserslist.usage = { - global: { }, - custom: null -} - -// Default browsers query -browserslist.defaults = [ - '> 0.5%', - 'last 2 versions', - 'Firefox ESR', - 'not dead' -] - -// Browser names aliases -browserslist.aliases = { - fx: 'firefox', - ff: 'firefox', - ios: 'ios_saf', - explorer: 'ie', - blackberry: 'bb', - explorermobile: 'ie_mob', - operamini: 'op_mini', - operamobile: 'op_mob', - chromeandroid: 'and_chr', - firefoxandroid: 'and_ff', - ucandroid: 'and_uc', - qqandroid: 'and_qq' -} - -// Can I Use only provides a few versions for some browsers (e.g. and_chr). -// Fallback to a similar browser for unknown versions -browserslist.desktopNames = { - and_chr: 'chrome', - and_ff: 'firefox', - ie_mob: 'ie', - op_mob: 'opera', - android: 'chrome' // has extra processing logic -} - -// Aliases to work with joined versions like `ios_saf 7.0-7.1` -browserslist.versionAliases = { } - -browserslist.clearCaches = env.clearCaches -browserslist.parseConfig = env.parseConfig -browserslist.readConfig = env.readConfig -browserslist.findConfig = env.findConfig -browserslist.loadConfig = env.loadConfig - -/** - * Return browsers market coverage. - * - * @param {string[]} browsers Browsers names in Can I Use. - * @param {string|object} [stats="global"] Which statistics should be used. - * Country code or custom statistics. - * Pass `"my stats"` to load statistics - * from Browserslist files. - * - * @return {number} Total market coverage for all selected browsers. - * - * @example - * browserslist.coverage(browserslist('> 1% in US'), 'US') //=> 83.1 - */ -browserslist.coverage = function (browsers, stats) { - var data - if (typeof stats === 'undefined') { - data = browserslist.usage.global - } else if (stats === 'my stats') { - var opts = {} - opts.path = path.resolve ? path.resolve('.') : '.' - var customStats = env.getStat(opts) - if (!customStats) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - data = {} - for (var browser in customStats) { - fillUsage(data, browser, customStats[browser]) - } - } else if (typeof stats === 'string') { - if (stats.length > 2) { - stats = stats.toLowerCase() - } else { - stats = stats.toUpperCase() - } - env.loadCountry(browserslist.usage, stats, browserslist.data) - data = browserslist.usage[stats] - } else { - if ('dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - data = { } - for (var name in stats) { - for (var version in stats[name]) { - data[name + ' ' + version] = stats[name][version] - } - } - } - - return browsers.reduce(function (all, i) { - var usage = data[i] - if (usage === undefined) { - usage = data[i.replace(/ \S+$/, ' 0')] - } - return all + (usage || 0) - }, 0) -} - -function nodeQuery (context, version) { - var nodeReleases = jsReleases.filter(function (i) { - return i.name === 'nodejs' - }) - var matched = nodeReleases.filter(function (i) { - return isVersionsMatch(i.version, version) - }) - if (matched.length === 0) { - if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError('Unknown version ' + version + ' of Node.js') - } - } - return ['node ' + matched[matched.length - 1].version] -} - -function sinceQuery (context, year, month, date) { - year = parseInt(year) - month = parseInt(month || '01') - 1 - date = parseInt(date || '01') - return filterByYear(Date.UTC(year, month, date, 0, 0, 0), context) -} - -function coverQuery (context, coverage, statMode) { - coverage = parseFloat(coverage) - var usage = browserslist.usage.global - if (statMode) { - if (statMode.match(/^my\s+stats$/)) { - if (!context.customUsage) { - throw new BrowserslistError( - 'Custom usage statistics was not provided' - ) - } - usage = context.customUsage - } else { - var place - if (statMode.length === 2) { - place = statMode.toUpperCase() - } else { - place = statMode.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - usage = browserslist.usage[place] - } - } - var versions = Object.keys(usage).sort(function (a, b) { - return usage[b] - usage[a] - }) - var coveraged = 0 - var result = [] - var version - for (var i = 0; i <= versions.length; i++) { - version = versions[i] - if (usage[version] === 0) break - coveraged += usage[version] - result.push(version) - if (coveraged >= coverage) break - } - return result -} - -var QUERIES = [ - { - regexp: /^last\s+(\d+)\s+major\s+versions?$/i, - select: function (context, versions) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = getMajorVersions(data.released, versions) - list = list.map(nameMapper(data.name)) - if (data.name === 'android') { - list = filterAndroid(list, versions, context) - } - return selected.concat(list) - }, []) - } - }, - { - regexp: /^last\s+(\d+)\s+versions?$/i, - select: function (context, versions) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.released.slice(-versions) - list = list.map(nameMapper(data.name)) - if (data.name === 'android') { - list = filterAndroid(list, versions, context) - } - return selected.concat(list) - }, []) - } - }, - { - regexp: /^last\s+(\d+)\s+electron\s+major\s+versions?$/i, - select: function (context, versions) { - var validVersions = getMajorVersions(Object.keys(e2c), versions) - return validVersions.map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - { - regexp: /^last\s+(\d+)\s+(\w+)\s+major\s+versions?$/i, - select: function (context, versions, name) { - var data = checkName(name, context) - var validVersions = getMajorVersions(data.released, versions) - var list = validVersions.map(nameMapper(data.name)) - if (data.name === 'android') { - list = filterAndroid(list, versions, context) - } - return list - } - }, - { - regexp: /^last\s+(\d+)\s+electron\s+versions?$/i, - select: function (context, versions) { - return Object.keys(e2c) - .slice(-versions) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - { - regexp: /^last\s+(\d+)\s+(\w+)\s+versions?$/i, - select: function (context, versions, name) { - var data = checkName(name, context) - var list = data.released.slice(-versions).map(nameMapper(data.name)) - if (data.name === 'android') { - list = filterAndroid(list, versions, context) - } - return list - } - }, - { - regexp: /^unreleased\s+versions$/i, - select: function (context) { - return Object.keys(agents).reduce(function (selected, name) { - var data = byName(name, context) - if (!data) return selected - var list = data.versions.filter(function (v) { - return data.released.indexOf(v) === -1 - }) - list = list.map(nameMapper(data.name)) - return selected.concat(list) - }, []) - } - }, - { - regexp: /^unreleased\s+electron\s+versions?$/i, - select: function () { - return [] - } - }, - { - regexp: /^unreleased\s+(\w+)\s+versions?$/i, - select: function (context, name) { - var data = checkName(name, context) - return data.versions - .filter(function (v) { - return data.released.indexOf(v) === -1 - }) - .map(nameMapper(data.name)) - } - }, - { - regexp: /^last\s+(\d*.?\d+)\s+years?$/i, - select: function (context, years) { - return filterByYear(Date.now() - YEAR * years, context) - } - }, - { - regexp: /^since (\d+)$/i, - select: sinceQuery - }, - { - regexp: /^since (\d+)-(\d+)$/i, - select: sinceQuery - }, - { - regexp: /^since (\d+)-(\d+)-(\d+)$/i, - select: sinceQuery - }, - { - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%$/, - select: function (context, sign, popularity) { - popularity = parseFloat(popularity) - var usage = browserslist.usage.global - return Object.keys(usage).reduce(function (result, version) { - if (sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - { - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+my\s+stats$/, - select: function (context, sign, popularity) { - popularity = parseFloat(popularity) - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - if (sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - { - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+(\S+)\s+stats$/, - select: function (context, sign, popularity, name) { - popularity = parseFloat(popularity) - var stats = env.loadStat(context, name, browserslist.data) - if (stats) { - context.customUsage = {} - for (var browser in stats) { - fillUsage(context.customUsage, browser, stats[browser]) - } - } - if (!context.customUsage) { - throw new BrowserslistError('Custom usage statistics was not provided') - } - var usage = context.customUsage - return Object.keys(usage).reduce(function (result, version) { - if (sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - { - regexp: /^(>=?|<=?)\s*(\d+|\d+\.\d+|\.\d+)%\s+in\s+((alt-)?\w\w)$/, - select: function (context, sign, popularity, place) { - popularity = parseFloat(popularity) - if (place.length === 2) { - place = place.toUpperCase() - } else { - place = place.toLowerCase() - } - env.loadCountry(browserslist.usage, place, browserslist.data) - var usage = browserslist.usage[place] - return Object.keys(usage).reduce(function (result, version) { - if (sign === '>') { - if (usage[version] > popularity) { - result.push(version) - } - } else if (sign === '<') { - if (usage[version] < popularity) { - result.push(version) - } - } else if (sign === '<=') { - if (usage[version] <= popularity) { - result.push(version) - } - } else if (usage[version] >= popularity) { - result.push(version) - } - return result - }, []) - } - }, - { - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%$/, - select: coverQuery - }, - { - regexp: /^cover\s+(\d+|\d+\.\d+|\.\d+)%\s+in\s+(my\s+stats|(alt-)?\w\w)$/, - select: coverQuery - }, - { - regexp: /^supports\s+([\w-]+)$/, - select: function (context, feature) { - env.loadFeature(browserslist.cache, feature) - var features = browserslist.cache[feature] - return Object.keys(features).reduce(function (result, version) { - var flags = features[version] - if (flags.indexOf('y') >= 0 || flags.indexOf('a') >= 0) { - result.push(version) - } - return result - }, []) - } - }, - { - regexp: /^electron\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, from, to) { - var fromToUse = normalizeElectron(from) - var toToUse = normalizeElectron(to) - if (!e2c[fromToUse]) { - throw new BrowserslistError('Unknown version ' + from + ' of electron') - } - if (!e2c[toToUse]) { - throw new BrowserslistError('Unknown version ' + to + ' of electron') - } - from = parseFloat(from) - to = parseFloat(to) - return Object.keys(e2c) - .filter(function (i) { - var parsed = parseFloat(i) - return parsed >= from && parsed <= to - }) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - { - regexp: /^node\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, from, to) { - var nodeVersions = jsReleases - .filter(function (i) { - return i.name === 'nodejs' - }) - .map(function (i) { - return i.version - }) - return nodeVersions - .filter(semverFilterLoose('>=', from)) - .filter(semverFilterLoose('<=', to)) - .map(function (v) { - return 'node ' + v - }) - } - }, - { - regexp: /^(\w+)\s+([\d.]+)\s*-\s*([\d.]+)$/i, - select: function (context, name, from, to) { - var data = checkName(name, context) - from = parseFloat(normalizeVersion(data, from) || from) - to = parseFloat(normalizeVersion(data, to) || to) - function filter (v) { - var parsed = parseFloat(v) - return parsed >= from && parsed <= to - } - return data.released.filter(filter).map(nameMapper(data.name)) - } - }, - { - regexp: /^electron\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, sign, version) { - var versionToUse = normalizeElectron(version) - return Object.keys(e2c) - .filter(generateFilter(sign, versionToUse)) - .map(function (i) { - return 'chrome ' + e2c[i] - }) - } - }, - { - regexp: /^node\s*(>=?|<=?)\s*([\d.]+)$/i, - select: function (context, sign, version) { - var nodeVersions = jsReleases - .filter(function (i) { - return i.name === 'nodejs' - }) - .map(function (i) { - return i.version - }) - return nodeVersions - .filter(generateSemverFilter(sign, version)) - .map(function (v) { - return 'node ' + v - }) - } - }, - { - regexp: /^(\w+)\s*(>=?|<=?)\s*([\d.]+)$/, - select: function (context, name, sign, version) { - var data = checkName(name, context) - var alias = browserslist.versionAliases[data.name][version] - if (alias) { - version = alias - } - return data.released - .filter(generateFilter(sign, version)) - .map(function (v) { - return data.name + ' ' + v - }) - } - }, - { - regexp: /^(firefox|ff|fx)\s+esr$/i, - select: function () { - return ['firefox 78', 'firefox 91'] - } - }, - { - regexp: /(operamini|op_mini)\s+all/i, - select: function () { - return ['op_mini all'] - } - }, - { - regexp: /^electron\s+([\d.]+)$/i, - select: function (context, version) { - var versionToUse = normalizeElectron(version) - var chrome = e2c[versionToUse] - if (!chrome) { - throw new BrowserslistError( - 'Unknown version ' + version + ' of electron' - ) - } - return ['chrome ' + chrome] - } - }, - { - regexp: /^node\s+(\d+)$/i, - select: nodeQuery - }, - { - regexp: /^node\s+(\d+\.\d+)$/i, - select: nodeQuery - }, - { - regexp: /^node\s+(\d+\.\d+\.\d+)$/i, - select: nodeQuery - }, - { - regexp: /^current\s+node$/i, - select: function (context) { - return [env.currentNode(resolve, context)] - } - }, - { - regexp: /^maintained\s+node\s+versions$/i, - select: function (context) { - var now = Date.now() - var queries = Object.keys(jsEOL) - .filter(function (key) { - return ( - now < Date.parse(jsEOL[key].end) && - now > Date.parse(jsEOL[key].start) && - isEolReleased(key) - ) - }) - .map(function (key) { - return 'node ' + key.slice(1) - }) - return resolve(queries, context) - } - }, - { - regexp: /^phantomjs\s+1.9$/i, - select: function () { - return ['safari 5'] - } - }, - { - regexp: /^phantomjs\s+2.1$/i, - select: function () { - return ['safari 6'] - } - }, - { - regexp: /^(\w+)\s+(tp|[\d.]+)$/i, - select: function (context, name, version) { - if (/^tp$/i.test(version)) version = 'TP' - var data = checkName(name, context) - var alias = normalizeVersion(data, version) - if (alias) { - version = alias - } else { - if (version.indexOf('.') === -1) { - alias = version + '.0' - } else { - alias = version.replace(/\.0$/, '') - } - alias = normalizeVersion(data, alias) - if (alias) { - version = alias - } else if (context.ignoreUnknownVersions) { - return [] - } else { - throw new BrowserslistError( - 'Unknown version ' + version + ' of ' + name - ) - } - } - return [data.name + ' ' + version] - } - }, - { - regexp: /^browserslist config$/i, - select: function (context) { - return browserslist(undefined, context) - } - }, - { - regexp: /^extends (.+)$/i, - select: function (context, name) { - return resolve(env.loadQueries(context, name), context) - } - }, - { - regexp: /^defaults$/i, - select: function (context) { - return resolve(browserslist.defaults, context) - } - }, - { - regexp: /^dead$/i, - select: function (context) { - var dead = [ - 'ie <= 10', - 'ie_mob <= 11', - 'bb <= 10', - 'op_mob <= 12.1', - 'samsung 4' - ] - return resolve(dead, context) - } - }, - { - regexp: /^(\w+)$/i, - select: function (context, name) { - if (byName(name, context)) { - throw new BrowserslistError( - 'Specify versions in Browserslist query for browser ' + name - ) - } else { - throw unknownQuery(name) - } - } - } -]; - -// Get and convert Can I Use data - -(function () { - for (var name in agents) { - var browser = agents[name] - browserslist.data[name] = { - name: name, - versions: normalize(agents[name].versions), - released: normalize(agents[name].versions.slice(0, -3)), - releaseDate: agents[name].release_date - } - fillUsage(browserslist.usage.global, name, browser.usage_global) - - browserslist.versionAliases[name] = { } - for (var i = 0; i < browser.versions.length; i++) { - var full = browser.versions[i] - if (!full) continue - - if (full.indexOf('-') !== -1) { - var interval = full.split('-') - for (var j = 0; j < interval.length; j++) { - browserslist.versionAliases[name][interval[j]] = full - } - } - } - } - - browserslist.versionAliases.op_mob['59'] = '58' -}()) - -module.exports = browserslist diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/node.js b/tools/node_modules/@babel/core/node_modules/browserslist/node.js deleted file mode 100644 index e6bdf79d866351..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/node.js +++ /dev/null @@ -1,388 +0,0 @@ -var feature = require('caniuse-lite/dist/unpacker/feature').default -var region = require('caniuse-lite/dist/unpacker/region').default -var path = require('path') -var fs = require('fs') - -var BrowserslistError = require('./error') - -var IS_SECTION = /^\s*\[(.+)]\s*$/ -var CONFIG_PATTERN = /^browserslist-config-/ -var SCOPED_CONFIG__PATTERN = /@[^/]+\/browserslist-config(-|$|\/)/ -var TIME_TO_UPDATE_CANIUSE = 6 * 30 * 24 * 60 * 60 * 1000 -var FORMAT = 'Browserslist config should be a string or an array ' + - 'of strings with browser queries' - -var dataTimeChecked = false -var filenessCache = { } -var configCache = { } -function checkExtend (name) { - var use = ' Use `dangerousExtend` option to disable.' - if (!CONFIG_PATTERN.test(name) && !SCOPED_CONFIG__PATTERN.test(name)) { - throw new BrowserslistError( - 'Browserslist config needs `browserslist-config-` prefix. ' + use) - } - if (name.replace(/^@[^/]+\//, '').indexOf('.') !== -1) { - throw new BrowserslistError( - '`.` not allowed in Browserslist config name. ' + use) - } - if (name.indexOf('node_modules') !== -1) { - throw new BrowserslistError( - '`node_modules` not allowed in Browserslist config.' + use) - } -} - -function isFile (file) { - if (file in filenessCache) { - return filenessCache[file] - } - var result = fs.existsSync(file) && fs.statSync(file).isFile() - if (!process.env.BROWSERSLIST_DISABLE_CACHE) { - filenessCache[file] = result - } - return result -} - -function eachParent (file, callback) { - var dir = isFile(file) ? path.dirname(file) : file - var loc = path.resolve(dir) - do { - var result = callback(loc) - if (typeof result !== 'undefined') return result - } while (loc !== (loc = path.dirname(loc))) - return undefined -} - -function check (section) { - if (Array.isArray(section)) { - for (var i = 0; i < section.length; i++) { - if (typeof section[i] !== 'string') { - throw new BrowserslistError(FORMAT) - } - } - } else if (typeof section !== 'string') { - throw new BrowserslistError(FORMAT) - } -} - -function pickEnv (config, opts) { - if (typeof config !== 'object') return config - - var name - if (typeof opts.env === 'string') { - name = opts.env - } else if (process.env.BROWSERSLIST_ENV) { - name = process.env.BROWSERSLIST_ENV - } else if (process.env.NODE_ENV) { - name = process.env.NODE_ENV - } else { - name = 'production' - } - - return config[name] || config.defaults -} - -function parsePackage (file) { - var config = JSON.parse(fs.readFileSync(file)) - if (config.browserlist && !config.browserslist) { - throw new BrowserslistError( - '`browserlist` key instead of `browserslist` in ' + file - ) - } - var list = config.browserslist - if (Array.isArray(list) || typeof list === 'string') { - list = { defaults: list } - } - for (var i in list) { - check(list[i]) - } - - return list -} - -function latestReleaseTime (agents) { - var latest = 0 - for (var name in agents) { - var dates = agents[name].releaseDate || { } - for (var key in dates) { - if (latest < dates[key]) { - latest = dates[key] - } - } - } - return latest * 1000 -} - -function normalizeStats (data, stats) { - if (!data) { - data = {} - } - if (stats && 'dataByBrowser' in stats) { - stats = stats.dataByBrowser - } - - if (typeof stats !== 'object') return undefined - - var normalized = { } - for (var i in stats) { - var versions = Object.keys(stats[i]) - if ( - versions.length === 1 && - data[i] && - data[i].versions.length === 1 - ) { - var normal = data[i].versions[0] - normalized[i] = { } - normalized[i][normal] = stats[i][versions[0]] - } else { - normalized[i] = stats[i] - } - } - - return normalized -} - -function normalizeUsageData (usageData, data) { - for (var browser in usageData) { - var browserUsage = usageData[browser] - // eslint-disable-next-line max-len - // https://github.com/browserslist/browserslist/issues/431#issuecomment-565230615 - // caniuse-db returns { 0: "percentage" } for `and_*` regional stats - if ('0' in browserUsage) { - var versions = data[browser].versions - browserUsage[versions[versions.length - 1]] = browserUsage[0] - delete browserUsage[0] - } - } -} - -module.exports = { - loadQueries: function loadQueries (ctx, name) { - if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { - checkExtend(name) - } - // eslint-disable-next-line security/detect-non-literal-require - var queries = require(require.resolve(name, { paths: ['.'] })) - if (queries) { - if (Array.isArray(queries)) { - return queries - } else if (typeof queries === 'object') { - if (!queries.defaults) queries.defaults = [] - return pickEnv(queries, ctx, name) - } - } - throw new BrowserslistError( - '`' + name + '` config exports not an array of queries' + - ' or an object of envs' - ) - }, - - loadStat: function loadStat (ctx, name, data) { - if (!ctx.dangerousExtend && !process.env.BROWSERSLIST_DANGEROUS_EXTEND) { - checkExtend(name) - } - // eslint-disable-next-line security/detect-non-literal-require - var stats = require( - require.resolve( - path.join(name, 'browserslist-stats.json'), - { paths: ['.'] } - ) - ) - return normalizeStats(data, stats) - }, - - getStat: function getStat (opts, data) { - var stats - if (opts.stats) { - stats = opts.stats - } else if (process.env.BROWSERSLIST_STATS) { - stats = process.env.BROWSERSLIST_STATS - } else if (opts.path && path.resolve && fs.existsSync) { - stats = eachParent(opts.path, function (dir) { - var file = path.join(dir, 'browserslist-stats.json') - return isFile(file) ? file : undefined - }) - } - if (typeof stats === 'string') { - try { - stats = JSON.parse(fs.readFileSync(stats)) - } catch (e) { - throw new BrowserslistError('Can\'t read ' + stats) - } - } - return normalizeStats(data, stats) - }, - - loadConfig: function loadConfig (opts) { - if (process.env.BROWSERSLIST) { - return process.env.BROWSERSLIST - } else if (opts.config || process.env.BROWSERSLIST_CONFIG) { - var file = opts.config || process.env.BROWSERSLIST_CONFIG - if (path.basename(file) === 'package.json') { - return pickEnv(parsePackage(file), opts) - } else { - return pickEnv(module.exports.readConfig(file), opts) - } - } else if (opts.path) { - return pickEnv(module.exports.findConfig(opts.path), opts) - } else { - return undefined - } - }, - - loadCountry: function loadCountry (usage, country, data) { - var code = country.replace(/[^\w-]/g, '') - if (!usage[code]) { - // eslint-disable-next-line security/detect-non-literal-require - var compressed = require('caniuse-lite/data/regions/' + code + '.js') - var usageData = region(compressed) - normalizeUsageData(usageData, data) - usage[country] = { } - for (var i in usageData) { - for (var j in usageData[i]) { - usage[country][i + ' ' + j] = usageData[i][j] - } - } - } - }, - - loadFeature: function loadFeature (features, name) { - name = name.replace(/[^\w-]/g, '') - if (features[name]) return - - // eslint-disable-next-line security/detect-non-literal-require - var compressed = require('caniuse-lite/data/features/' + name + '.js') - var stats = feature(compressed).stats - features[name] = { } - for (var i in stats) { - for (var j in stats[i]) { - features[name][i + ' ' + j] = stats[i][j] - } - } - }, - - parseConfig: function parseConfig (string) { - var result = { defaults: [] } - var sections = ['defaults'] - - string.toString() - .replace(/#[^\n]*/g, '') - .split(/\n|,/) - .map(function (line) { - return line.trim() - }) - .filter(function (line) { - return line !== '' - }) - .forEach(function (line) { - if (IS_SECTION.test(line)) { - sections = line.match(IS_SECTION)[1].trim().split(' ') - sections.forEach(function (section) { - if (result[section]) { - throw new BrowserslistError( - 'Duplicate section ' + section + ' in Browserslist config' - ) - } - result[section] = [] - }) - } else { - sections.forEach(function (section) { - result[section].push(line) - }) - } - }) - - return result - }, - - readConfig: function readConfig (file) { - if (!isFile(file)) { - throw new BrowserslistError('Can\'t read ' + file + ' config') - } - return module.exports.parseConfig(fs.readFileSync(file)) - }, - - findConfig: function findConfig (from) { - from = path.resolve(from) - - var passed = [] - var resolved = eachParent(from, function (dir) { - if (dir in configCache) { - return configCache[dir] - } - - passed.push(dir) - - var config = path.join(dir, 'browserslist') - var pkg = path.join(dir, 'package.json') - var rc = path.join(dir, '.browserslistrc') - - var pkgBrowserslist - if (isFile(pkg)) { - try { - pkgBrowserslist = parsePackage(pkg) - } catch (e) { - if (e.name === 'BrowserslistError') throw e - console.warn( - '[Browserslist] Could not parse ' + pkg + '. Ignoring it.' - ) - } - } - - if (isFile(config) && pkgBrowserslist) { - throw new BrowserslistError( - dir + ' contains both browserslist and package.json with browsers' - ) - } else if (isFile(rc) && pkgBrowserslist) { - throw new BrowserslistError( - dir + ' contains both .browserslistrc and package.json with browsers' - ) - } else if (isFile(config) && isFile(rc)) { - throw new BrowserslistError( - dir + ' contains both .browserslistrc and browserslist' - ) - } else if (isFile(config)) { - return module.exports.readConfig(config) - } else if (isFile(rc)) { - return module.exports.readConfig(rc) - } else { - return pkgBrowserslist - } - }) - if (!process.env.BROWSERSLIST_DISABLE_CACHE) { - passed.forEach(function (dir) { - configCache[dir] = resolved - }) - } - return resolved - }, - - clearCaches: function clearCaches () { - dataTimeChecked = false - filenessCache = { } - configCache = { } - - this.cache = { } - }, - - oldDataWarning: function oldDataWarning (agentsObj) { - if (dataTimeChecked) return - dataTimeChecked = true - if (process.env.BROWSERSLIST_IGNORE_OLD_DATA) return - - var latest = latestReleaseTime(agentsObj) - var halfYearAgo = Date.now() - TIME_TO_UPDATE_CANIUSE - - if (latest !== 0 && latest < halfYearAgo) { - console.warn( - 'Browserslist: caniuse-lite is outdated. Please run:\n' + - ' npx browserslist@latest --update-db\n' + - ' Why you should do it regularly: ' + - 'https://github.com/browserslist/browserslist#browsers-data-updating' - ) - } - }, - - currentNode: function currentNode () { - return 'node ' + process.versions.node - } -} diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/package.json b/tools/node_modules/@babel/core/node_modules/browserslist/package.json deleted file mode 100644 index 94a494e1c1b4e1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/package.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "name": "browserslist", - "version": "4.17.4", - "description": "Share target browsers between different front-end tools, like Autoprefixer, Stylelint and babel-env-preset", - "keywords": [ - "caniuse", - "browsers", - "target" - ], - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - "author": "Andrey Sitnik ", - "license": "MIT", - "repository": "browserslist/browserslist", - "dependencies": { - "caniuse-lite": "^1.0.30001265", - "electron-to-chromium": "^1.3.867", - "escalade": "^3.1.1", - "node-releases": "^2.0.0", - "picocolors": "^1.0.0" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - }, - "bin": { - "browserslist": "cli.js" - }, - "types": "./index.d.ts", - "browser": { - "./node.js": "./browser.js", - "path": false - } -} diff --git a/tools/node_modules/@babel/core/node_modules/browserslist/update-db.js b/tools/node_modules/@babel/core/node_modules/browserslist/update-db.js deleted file mode 100644 index 57076022217873..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/browserslist/update-db.js +++ /dev/null @@ -1,326 +0,0 @@ -var childProcess = require('child_process') -var escalade = require('escalade/sync') -var pico = require('picocolors') -var path = require('path') -var fs = require('fs') - -var BrowserslistError = require('./error') - -function detectLockfile () { - var packageDir = escalade('.', function (dir, names) { - return names.indexOf('package.json') !== -1 ? dir : '' - }) - - if (!packageDir) { - throw new BrowserslistError( - 'Cannot find package.json. ' + - 'Is this the right directory to run `npx browserslist --update-db` in?' - ) - } - - var lockfileNpm = path.join(packageDir, 'package-lock.json') - var lockfileShrinkwrap = path.join(packageDir, 'npm-shrinkwrap.json') - var lockfileYarn = path.join(packageDir, 'yarn.lock') - var lockfilePnpm = path.join(packageDir, 'pnpm-lock.yaml') - - if (fs.existsSync(lockfilePnpm)) { - return { mode: 'pnpm', file: lockfilePnpm } - } else if (fs.existsSync(lockfileNpm)) { - return { mode: 'npm', file: lockfileNpm } - } else if (fs.existsSync(lockfileYarn)) { - var lock = { mode: 'yarn', file: lockfileYarn } - lock.content = fs.readFileSync(lock.file).toString() - lock.version = /# yarn lockfile v1/.test(lock.content) ? 1 : 2 - return lock - } else if (fs.existsSync(lockfileShrinkwrap)) { - return { mode: 'npm', file: lockfileShrinkwrap } - } - throw new BrowserslistError( - 'No lockfile found. Run "npm install", "yarn install" or "pnpm install"' - ) -} - -function getLatestInfo (lock) { - if (lock.mode === 'yarn') { - if (lock.version === 1) { - return JSON.parse( - childProcess.execSync('yarn info caniuse-lite --json').toString() - ).data - } else { - return JSON.parse( - childProcess.execSync('yarn npm info caniuse-lite --json').toString() - ) - } - } - return JSON.parse( - childProcess.execSync('npm show caniuse-lite --json').toString() - ) -} - -function getBrowsersList () { - return childProcess.execSync('npx browserslist').toString() - .trim() - .split('\n') - .map(function (line) { - return line.trim().split(' ') - }) - .reduce(function (result, entry) { - if (!result[entry[0]]) { - result[entry[0]] = [] - } - result[entry[0]].push(entry[1]) - return result - }, {}) -} - -function diffBrowsersLists (old, current) { - var browsers = Object.keys(old).concat( - Object.keys(current).filter(function (browser) { - return old[browser] === undefined - }) - ) - return browsers.map(function (browser) { - var oldVersions = old[browser] || [] - var currentVersions = current[browser] || [] - var intersection = oldVersions.filter(function (version) { - return currentVersions.indexOf(version) !== -1 - }) - var addedVersions = currentVersions.filter(function (version) { - return intersection.indexOf(version) === -1 - }) - var removedVersions = oldVersions.filter(function (version) { - return intersection.indexOf(version) === -1 - }) - return removedVersions.map(function (version) { - return pico.red('- ' + browser + ' ' + version) - }).concat(addedVersions.map(function (version) { - return pico.green('+ ' + browser + ' ' + version) - })) - }) - .reduce(function (result, array) { - return result.concat(array) - }, []) - .join('\n') -} - -function updateNpmLockfile (lock, latest) { - var metadata = { latest: latest, versions: [] } - var content = deletePackage(JSON.parse(lock.content), metadata) - metadata.content = JSON.stringify(content, null, ' ') - return metadata -} - -function deletePackage (node, metadata) { - if (node.dependencies) { - if (node.dependencies['caniuse-lite']) { - var version = node.dependencies['caniuse-lite'].version - metadata.versions[version] = true - delete node.dependencies['caniuse-lite'] - } - for (var i in node.dependencies) { - node.dependencies[i] = deletePackage(node.dependencies[i], metadata) - } - } - return node -} - -var yarnVersionRe = new RegExp('version "(.*?)"') - -function updateYarnLockfile (lock, latest) { - var blocks = lock.content.split(/(\n{2,})/).map(function (block) { - return block.split('\n') - }) - var versions = {} - blocks.forEach(function (lines) { - if (lines[0].indexOf('caniuse-lite@') !== -1) { - var match = yarnVersionRe.exec(lines[1]) - versions[match[1]] = true - if (match[1] !== latest.version) { - lines[1] = lines[1].replace( - /version "[^"]+"/, 'version "' + latest.version + '"' - ) - lines[2] = lines[2].replace( - /resolved "[^"]+"/, 'resolved "' + latest.dist.tarball + '"' - ) - lines[3] = latest.dist.integrity ? lines[3].replace( - /integrity .+/, 'integrity ' + latest.dist.integrity - ) : '' - } - } - }) - var content = blocks.map(function (lines) { - return lines.join('\n') - }).join('') - return { content: content, versions: versions } -} - -function updatePnpmLockfile (lock, latest) { - var versions = {} - var lines = lock.content.split('\n') - var i - var j - var lineParts - - for (i = 0; i < lines.length; i++) { - if (lines[i].indexOf('caniuse-lite:') >= 0) { - lineParts = lines[i].split(/:\s?/, 2) - versions[lineParts[1]] = true - lines[i] = lineParts[0] + ': ' + latest.version - } else if (lines[i].indexOf('/caniuse-lite') >= 0) { - lineParts = lines[i].split(/([/:])/) - for (j = 0; j < lineParts.length; j++) { - if (lineParts[j].indexOf('caniuse-lite') >= 0) { - versions[lineParts[j + 2]] = true - lineParts[j + 2] = latest.version - break - } - } - lines[i] = lineParts.join('') - for (i = i + 1; i < lines.length; i++) { - if (lines[i].indexOf('integrity: ') !== -1) { - lines[i] = lines[i].replace( - /integrity: .+/, 'integrity: ' + latest.dist.integrity - ) - } else if (lines[i].indexOf(' /') !== -1) { - break - } - } - } - } - return { content: lines.join('\n'), versions: versions } -} - -function updateLockfile (lock, latest) { - if (!lock.content) lock.content = fs.readFileSync(lock.file).toString() - - if (lock.mode === 'npm') { - return updateNpmLockfile(lock, latest) - } else if (lock.mode === 'yarn') { - return updateYarnLockfile(lock, latest) - } - return updatePnpmLockfile(lock, latest) -} - -function updatePackageManually (print, lock, latest) { - var lockfileData = updateLockfile(lock, latest) - var caniuseVersions = Object.keys(lockfileData.versions).sort() - if (caniuseVersions.length === 1 && - caniuseVersions[0] === latest.version) { - print( - 'Installed version: ' + pico.bold(pico.green(latest.version)) + '\n' + - pico.bold(pico.green('caniuse-lite is up to date')) + '\n' - ) - return - } - - if (caniuseVersions.length === 0) { - caniuseVersions[0] = 'none' - } - print( - 'Installed version' + - (caniuseVersions.length === 1 ? ': ' : 's: ') + - pico.bold(pico.red(caniuseVersions.join(', '))) + - '\n' + - 'Removing old caniuse-lite from lock file\n' - ) - fs.writeFileSync(lock.file, lockfileData.content) - - var install = lock.mode === 'yarn' ? 'yarn add -W' : lock.mode + ' install' - print( - 'Installing new caniuse-lite version\n' + - pico.yellow('$ ' + install + ' caniuse-lite') + '\n' - ) - try { - childProcess.execSync(install + ' caniuse-lite') - } catch (e) /* istanbul ignore next */ { - print( - pico.red( - '\n' + - e.stack + '\n\n' + - 'Problem with `' + install + ' caniuse-lite` call. ' + - 'Run it manually.\n' - ) - ) - process.exit(1) - } - - var del = lock.mode === 'yarn' ? 'yarn remove -W' : lock.mode + ' uninstall' - print( - 'Cleaning package.json dependencies from caniuse-lite\n' + - pico.yellow('$ ' + del + ' caniuse-lite') + '\n' - ) - childProcess.execSync(del + ' caniuse-lite') -} - -module.exports = function updateDB (print) { - var lock = detectLockfile() - var latest = getLatestInfo(lock) - - var browsersListRetrievalError - var oldBrowsersList - try { - oldBrowsersList = getBrowsersList() - } catch (e) { - browsersListRetrievalError = e - } - - print( - 'Latest version: ' + pico.bold(pico.green(latest.version)) + '\n' - ) - - if (lock.mode === 'yarn' && lock.version !== 1) { - var update = 'yarn up -R' - print( - 'Updating caniuse-lite version\n' + - pico.yellow('$ ' + update + ' caniuse-lite') + '\n' - ) - try { - childProcess.execSync(update + ' caniuse-lite') - } catch (e) /* istanbul ignore next */ { - print( - pico.red( - '\n' + - e.stack + '\n\n' + - 'Problem with `' + update + ' caniuse-lite` call. ' + - 'Run it manually.\n' - ) - ) - process.exit(1) - } - } else { - updatePackageManually(print, lock, latest) - } - - print('caniuse-lite has been successfully updated\n') - - var currentBrowsersList - if (!browsersListRetrievalError) { - try { - currentBrowsersList = getBrowsersList() - } catch (e) /* istanbul ignore next */ { - browsersListRetrievalError = e - } - } - - if (browsersListRetrievalError) { - print( - pico.red( - '\n' + - browsersListRetrievalError.stack + '\n\n' + - 'Problem with browser list retrieval.\n' + - 'Target browser changes won’t be shown.\n' - ) - ) - } else { - var targetBrowserChanges = diffBrowsersLists( - oldBrowsersList, - currentBrowsersList - ) - if (targetBrowserChanges) { - print('\nTarget browser changes:\n') - print(targetBrowserChanges + '\n') - } else { - print('\n' + pico.green('No target browser changes') + '\n') - } - } -} diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/README.md b/tools/node_modules/@babel/core/node_modules/caniuse-lite/README.md deleted file mode 100644 index f4878abf43c45c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/README.md +++ /dev/null @@ -1,92 +0,0 @@ -# caniuse-lite - -A smaller version of caniuse-db, with only the essentials! - -## Why? - -The full data behind [Can I use][1] is incredibly useful for any front end -developer, and on the website all of the details from the database are displayed -to the user. However in automated tools, [many of these fields go unused][2]; -it's not a problem for server side consumption but client side, the less -JavaScript that we send to the end user the better. - -caniuse-lite then, is a smaller dataset that keeps essential parts of the data -in a compact format. It does this in multiple ways, such as converting `null` -array entries into empty strings, representing support data as an integer rather -than a string, and using base62 references instead of longer human-readable -keys. - -This packed data is then reassembled (via functions exposed by this module) into -a larger format which is mostly compatible with caniuse-db, and so it can be -used as an almost drop-in replacement for caniuse-db for contexts where size on -disk is important; for example, usage in web browsers. The API differences are -very small and are detailed in the section below. - - -## API - -```js -import * as lite from 'caniuse-lite'; -``` - - -### `lite.agents` - -caniuse-db provides a full `data.json` file which contains all of the features -data. Instead of this large file, caniuse-lite provides this data subset -instead, which has the `browser`, `prefix`, `prefix_exceptions`, `usage_global` -and `versions` keys from the original. - -In addition, the subset contains the `release_date` key with release dates (as timestamps) for each version: -```json -{ - "release_date": { - "6": 998870400, - "7": 1161129600, - "8": 1237420800, - "9": 1300060800, - "10": 1346716800, - "11": 1381968000, - "5.5": 962323200 - } -} -``` - - -### `lite.feature(js)` - -The `feature` method takes a file from `data/features` and converts it into -something that more closely represents the `caniuse-db` format. Note that only -the `title`, `stats` and `status` keys are kept from the original data. - - -### `lite.features` - -The `features` index is provided as a way to query all of the features that -are listed in the `caniuse-db` dataset. Note that you will need to use the -`feature` method on values from this index to get a human-readable format. - - -### `lite.region(js)` - -The `region` method takes a file from `data/regions` and converts it into -something that more closely represents the `caniuse-db` format. Note that *only* -the usage data is exposed here (the `data` key in the original files). - - -## License - -The data in this repo is available for use under a CC BY 4.0 license -(http://creativecommons.org/licenses/by/4.0/). For attribution just mention -somewhere that the source is caniuse.com. If you have any questions about using -the data for your project please contact me here: http://a.deveria.com/contact - -[1]: http://caniuse.com/ -[2]: https://github.com/Fyrd/caniuse/issues/1827 - - -## Security contact information - -To report a security vulnerability, please use the -[Tidelift security contact](https://tidelift.com/security). -Tidelift will coordinate the fix and disclosure. diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js deleted file mode 100644 index 22a23e7567c797..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/agents.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{J:0.0131217,E:0.00621152,F:0.0414881,G:0.11755,A:0.020744,B:0.726041,kB:0.009298},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","kB","J","E","F","G","A","B","","",""],E:"IE",F:{kB:962323200,J:998870400,E:1161129600,F:1237420800,G:1300060800,A:1346716800,B:1381968000}},B:{A:{C:0.008586,K:0.004267,L:0.004293,D:0.008586,M:0.008586,N:0.017172,O:0.090153,P:0,Q:0.004298,T:0.00944,U:0.004043,V:0.012879,W:0.008586,X:0.008586,Y:0.012879,Z:0.004293,a:0.017172,b:0.008586,c:0.030051,R:0.570969,d:2.53287,H:0.523746},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","C","K","L","D","M","N","O","P","Q","T","U","V","W","X","Y","Z","a","b","c","R","d","H","","",""],E:"Edge",F:{C:1438128000,K:1447286400,L:1470096000,D:1491868800,M:1508198400,N:1525046400,O:1542067200,P:1579046400,Q:1581033600,T:1586736000,U:1590019200,V:1594857600,W:1598486400,X:1602201600,Y:1605830400,Z:1611360000,a:1614816000,b:1618358400,c:1622073600,R:1626912000,d:1630627200,H:1632441600},D:{C:"ms",K:"ms",L:"ms",D:"ms",M:"ms",N:"ms",O:"ms"}},C:{A:{"0":0.00487,"1":0.005029,"2":0.0047,"3":0.038637,"4":0.004293,"5":0.004293,"6":0.004525,"7":0.004293,"8":0.008586,"9":0.004538,lB:0.004293,cB:0.004271,I:0.021465,e:0.004879,J:0.020136,E:0.005725,F:0.004525,G:0.00533,A:0.004283,B:0.008586,C:0.004471,K:0.004486,L:0.00453,D:0.004293,M:0.004417,N:0.004425,O:0.004293,f:0.004443,g:0.004283,h:0.004293,i:0.013698,j:0.004293,k:0.008786,l:0.008586,m:0.004317,n:0.004393,o:0.004418,p:0.008834,q:0.004293,r:0.008928,s:0.004471,t:0.009284,u:0.004707,v:0.009076,w:0.004425,x:0.004783,y:0.004271,z:0.004783,AB:0.008282,BB:0.008586,CB:0.072981,DB:0.004335,EB:0.008586,FB:0.004293,GB:0.008586,HB:0.004425,IB:0.004293,dB:0.004293,JB:0.008586,eB:0.00472,KB:0.004425,LB:0.008586,S:0.00415,MB:0.004267,NB:0.004293,OB:0.004267,PB:0.012879,QB:0.00415,RB:0.004293,SB:0.004425,TB:0.008586,UB:0.00415,VB:0.00415,WB:0.004141,XB:0.004043,YB:0.004293,ZB:0.150255,P:0.012879,Q:0.012879,T:0.012879,mB:0.012879,U:0.008586,V:0.017172,W:0.008586,X:0.008586,Y:0.012879,Z:0.030051,a:0.047223,b:0.047223,c:0.841428,R:1.77301,d:0.025758,H:0,fB:0,nB:0.008786,oB:0.00487},B:"moz",C:["lB","cB","nB","oB","I","e","J","E","F","G","A","B","C","K","L","D","M","N","O","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","dB","JB","eB","KB","LB","S","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","P","Q","T","mB","U","V","W","X","Y","Z","a","b","c","R","d","H","fB",""],E:"Firefox",F:{"0":1439251200,"1":1442880000,"2":1446508800,"3":1450137600,"4":1453852800,"5":1457395200,"6":1461628800,"7":1465257600,"8":1470096000,"9":1474329600,lB:1161648000,cB:1213660800,nB:1246320000,oB:1264032000,I:1300752000,e:1308614400,J:1313452800,E:1317081600,F:1317081600,G:1320710400,A:1324339200,B:1327968000,C:1331596800,K:1335225600,L:1338854400,D:1342483200,M:1346112000,N:1349740800,O:1353628800,f:1357603200,g:1361232000,h:1364860800,i:1368489600,j:1372118400,k:1375747200,l:1379376000,m:1386633600,n:1391472000,o:1395100800,p:1398729600,q:1402358400,r:1405987200,s:1409616000,t:1413244800,u:1417392000,v:1421107200,w:1424736000,x:1428278400,y:1431475200,z:1435881600,AB:1479168000,BB:1485216000,CB:1488844800,DB:1492560000,EB:1497312000,FB:1502150400,GB:1506556800,HB:1510617600,IB:1516665600,dB:1520985600,JB:1525824000,eB:1529971200,KB:1536105600,LB:1540252800,S:1544486400,MB:1548720000,NB:1552953600,OB:1558396800,PB:1562630400,QB:1567468800,RB:1571788800,SB:1575331200,TB:1578355200,UB:1581379200,VB:1583798400,WB:1586304000,XB:1588636800,YB:1591056000,ZB:1593475200,P:1595894400,Q:1598313600,T:1600732800,mB:1603152000,U:1605571200,V:1607990400,W:1611619200,X:1614038400,Y:1616457600,Z:1618790400,a:1622505600,b:1626134400,c:1628553600,R:1630972800,d:1633392000,H:null,fB:null}},D:{A:{"0":0.012879,"1":0.0236,"2":0.004293,"3":0.008586,"4":0.004465,"5":0.004642,"6":0.004891,"7":0.012879,"8":0.021465,"9":0.188892,I:0.004706,e:0.004879,J:0.004879,E:0.005591,F:0.005591,G:0.005591,A:0.004534,B:0.004464,C:0.010424,K:0.0083,L:0.004706,D:0.015087,M:0.004393,N:0.004393,O:0.008652,f:0.004293,g:0.004393,h:0.004317,i:0.008586,j:0.008786,k:0.017172,l:0.004461,m:0.004141,n:0.004326,o:0.0047,p:0.004538,q:0.004293,r:0.008596,s:0.004566,t:0.008586,u:0.008586,v:0.017172,w:0.004335,x:0.004464,y:0.025758,z:0.004464,AB:0.004293,BB:0.008586,CB:0.008586,DB:0.017172,EB:0.012879,FB:0.012879,GB:0.055809,HB:0.008586,IB:0.008586,dB:0.008586,JB:0.012879,eB:0.08586,KB:0.012879,LB:0.017172,S:0.021465,MB:0.025758,NB:0.025758,OB:0.017172,PB:0.012879,QB:0.068688,RB:0.051516,SB:0.021465,TB:0.047223,UB:0.012879,VB:0.077274,WB:0.090153,XB:0.060102,YB:0.025758,ZB:0.051516,P:0.206064,Q:0.08586,T:0.060102,U:0.103032,V:0.137376,W:0.218943,X:0.154548,Y:0.407835,Z:0.115911,a:0.184599,b:0.197478,c:0.588141,R:5.26751,d:15.97,H:2.60156,fB:0.017172,pB:0.012879,qB:0},B:"webkit",C:["","","","","I","e","J","E","F","G","A","B","C","K","L","D","M","N","O","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","dB","JB","eB","KB","LB","S","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","P","Q","T","U","V","W","X","Y","Z","a","b","c","R","d","H","fB","pB","qB"],E:"Chrome",F:{"0":1421798400,"1":1425513600,"2":1429401600,"3":1432080000,"4":1437523200,"5":1441152000,"6":1444780800,"7":1449014400,"8":1453248000,"9":1456963200,I:1264377600,e:1274745600,J:1283385600,E:1287619200,F:1291248000,G:1296777600,A:1299542400,B:1303862400,C:1307404800,K:1312243200,L:1316131200,D:1316131200,M:1319500800,N:1323734400,O:1328659200,f:1332892800,g:1337040000,h:1340668800,i:1343692800,j:1348531200,k:1352246400,l:1357862400,m:1361404800,n:1364428800,o:1369094400,p:1374105600,q:1376956800,r:1384214400,s:1389657600,t:1392940800,u:1397001600,v:1400544000,w:1405468800,x:1409011200,y:1412640000,z:1416268800,AB:1460592000,BB:1464134400,CB:1469059200,DB:1472601600,EB:1476230400,FB:1480550400,GB:1485302400,HB:1489017600,IB:1492560000,dB:1496707200,JB:1500940800,eB:1504569600,KB:1508198400,LB:1512518400,S:1516752000,MB:1520294400,NB:1523923200,OB:1527552000,PB:1532390400,QB:1536019200,RB:1539648000,SB:1543968000,TB:1548720000,UB:1552348800,VB:1555977600,WB:1559606400,XB:1564444800,YB:1568073600,ZB:1571702400,P:1575936000,Q:1580860800,T:1586304000,U:1589846400,V:1594684800,W:1598313600,X:1601942400,Y:1605571200,Z:1611014400,a:1614556800,b:1618272000,c:1621987200,R:1626739200,d:1630368000,H:1632268800,fB:null,pB:null,qB:null}},E:{A:{I:0,e:0.004293,J:0.004656,E:0.004465,F:0.004043,G:0.004891,A:0.004425,B:0.004293,C:0.008586,K:0.072981,L:0.437886,D:0.197478,rB:0,gB:0.008692,sB:0.012879,tB:0.00456,uB:0.004283,vB:0.021465,hB:0.017172,aB:0.047223,bB:0.077274,wB:0.536625,xB:2.58868,yB:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","rB","gB","I","e","sB","J","tB","E","uB","F","G","vB","A","hB","B","aB","C","bB","K","wB","L","xB","D","yB","",""],E:"Safari",F:{rB:1205798400,gB:1226534400,I:1244419200,e:1275868800,sB:1311120000,J:1343174400,tB:1382400000,E:1382400000,uB:1410998400,F:1413417600,G:1443657600,vB:1458518400,A:1474329600,hB:1490572800,B:1505779200,aB:1522281600,C:1537142400,bB:1553472000,K:1568851200,wB:1585008000,L:1600214400,xB:1619395200,D:1632096000,yB:null}},F:{A:{"0":0.008586,"1":0.004227,"2":0.004418,"3":0.004293,"4":0.004227,"5":0.004725,"6":0.008586,"7":0.008942,"8":0.004707,"9":0.004827,G:0.0082,B:0.016581,C:0.004317,D:0.00685,M:0.00685,N:0.00685,O:0.005014,f:0.006015,g:0.004879,h:0.006597,i:0.006597,j:0.013434,k:0.006702,l:0.006015,m:0.005595,n:0.004393,o:0.008652,p:0.004879,q:0.004879,r:0.004293,s:0.005152,t:0.005014,u:0.009758,v:0.004879,w:0.008586,x:0.004283,y:0.004367,z:0.004534,AB:0.004707,BB:0.004707,CB:0.004326,DB:0.008922,EB:0.014349,FB:0.004425,GB:0.00472,HB:0.004425,IB:0.004425,JB:0.00472,KB:0.004532,LB:0.004566,S:0.02283,MB:0.00867,NB:0.004656,OB:0.004642,PB:0.004293,QB:0.00944,RB:0.004293,SB:0.004293,TB:0.004298,UB:0.096692,VB:0.004201,WB:0.004141,XB:0.004043,YB:0.017172,ZB:0.759861,P:0.17172,Q:0,zB:0.00685,"0B":0.004293,"1B":0.008392,"2B":0.004706,aB:0.006229,iB:0.004879,"3B":0.008786,bB:0.00472},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","G","zB","0B","1B","2B","B","aB","iB","3B","C","bB","D","M","N","O","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","0","1","2","3","4","5","6","7","8","9","AB","BB","CB","DB","EB","FB","GB","HB","IB","JB","KB","LB","S","MB","NB","OB","PB","QB","RB","SB","TB","UB","VB","WB","XB","YB","ZB","P","Q","","",""],E:"Opera",F:{"0":1474329600,"1":1477267200,"2":1481587200,"3":1486425600,"4":1490054400,"5":1494374400,"6":1498003200,"7":1502236800,"8":1506470400,"9":1510099200,G:1150761600,zB:1223424000,"0B":1251763200,"1B":1267488000,"2B":1277942400,B:1292457600,aB:1302566400,iB:1309219200,"3B":1323129600,C:1323129600,bB:1352073600,D:1372723200,M:1377561600,N:1381104000,O:1386288000,f:1390867200,g:1393891200,h:1399334400,i:1401753600,j:1405987200,k:1409616000,l:1413331200,m:1417132800,n:1422316800,o:1425945600,p:1430179200,q:1433808000,r:1438646400,s:1442448000,t:1445904000,u:1449100800,v:1454371200,w:1457308800,x:1462320000,y:1465344000,z:1470096000,AB:1515024000,BB:1517961600,CB:1521676800,DB:1525910400,EB:1530144000,FB:1534982400,GB:1537833600,HB:1543363200,IB:1548201600,JB:1554768000,KB:1561593600,LB:1566259200,S:1570406400,MB:1573689600,NB:1578441600,OB:1583971200,PB:1587513600,QB:1592956800,RB:1595894400,SB:1600128000,TB:1603238400,UB:1613520000,VB:1612224000,WB:1616544000,XB:1619568000,YB:1623715200,ZB:1627948800,P:1631577600,Q:1633392000},D:{G:"o",B:"o",C:"o",zB:"o","0B":"o","1B":"o","2B":"o",aB:"o",iB:"o","3B":"o",bB:"o"}},G:{A:{F:0,D:0.586471,gB:0,"4B":0,jB:0.00276637,"5B":0.00829912,"6B":0.0968231,"7B":0.0248974,"8B":0.0138319,"9B":0.0179814,AC:0.116188,BC:0.0428788,CC:0.131403,DC:0.0829912,EC:0.0539443,FC:0.0567107,GC:0.709575,HC:0.044262,IC:0.022131,JC:0.116188,KC:0.374844,LC:1.32924,MC:9.99906},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","gB","4B","jB","5B","6B","7B","F","8B","9B","AC","BC","CC","DC","EC","FC","GC","HC","IC","JC","KC","LC","MC","D","","",""],E:"Safari on iOS",F:{gB:1270252800,"4B":1283904000,jB:1299628800,"5B":1331078400,"6B":1359331200,"7B":1394409600,F:1410912000,"8B":1413763200,"9B":1442361600,AC:1458518400,BC:1473724800,CC:1490572800,DC:1505779200,EC:1522281600,FC:1537142400,GC:1553472000,HC:1568851200,IC:1572220800,JC:1580169600,KC:1585008000,LC:1600214400,MC:1619395200,D:1632096000}},H:{A:{NC:1.18887},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","NC","","",""],E:"Opera Mini",F:{NC:1426464000}},I:{A:{cB:0,I:0.0066069,H:0,OC:0,PC:0,QC:0,RC:0.0110115,jB:0.0484506,SC:0,TC:0.213623},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","OC","PC","QC","cB","I","RC","jB","SC","TC","H","","",""],E:"Android Browser",F:{OC:1256515200,PC:1274313600,QC:1291593600,cB:1298332800,I:1318896000,RC:1341792000,jB:1374624000,SC:1386547200,TC:1401667200,H:1632355200}},J:{A:{E:0,A:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","E","A","","",""],E:"Blackberry Browser",F:{E:1325376000,A:1359504000}},K:{A:{A:0,B:0,C:0,S:0.0111391,aB:0,iB:0,bB:0},B:"o",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","aB","iB","C","bB","S","","",""],E:"Opera Mobile",F:{A:1287100800,B:1300752000,aB:1314835200,iB:1318291200,C:1330300800,bB:1349740800,S:1613433600},D:{S:"webkit"}},L:{A:{H:38.0375},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","H","","",""],E:"Chrome for Android",F:{H:1632182400}},M:{A:{R:0.279692},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","R","","",""],E:"Firefox for Android",F:{R:1630972800}},N:{A:{A:0.0115934,B:0.022664},B:"ms",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","A","B","","",""],E:"IE Mobile",F:{A:1340150400,B:1353456000}},O:{A:{UC:1.0674},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","UC","","",""],E:"UC Browser for Android",F:{UC:1471392000},D:{UC:"webkit"}},P:{A:{I:0.241599,VC:0.0103543,WC:0.010304,XC:0.0735301,YC:0.0103584,ZC:0.0315129,hB:0.0105043,aC:0.126052,bC:0.0630258,cC:0.168069,dC:0.399164,eC:1.91178},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","I","VC","WC","XC","YC","ZC","hB","aC","bC","cC","dC","eC","","",""],E:"Samsung Internet",F:{I:1461024000,VC:1481846400,WC:1509408000,XC:1528329600,YC:1546128000,ZC:1554163200,hB:1567900800,aC:1582588800,bC:1593475200,cC:1605657600,dC:1618531200,eC:1629072000}},Q:{A:{fC:0.176948},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","fC","","",""],E:"QQ Browser",F:{fC:1589846400}},R:{A:{gC:0},B:"webkit",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","gC","","",""],E:"Baidu Browser",F:{gC:1491004800}},S:{A:{hC:0.097036},B:"moz",C:["","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","","hC","","",""],E:"KaiOS Browser",F:{hC:1527811200}}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js deleted file mode 100644 index 1706acb398ac42..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/browserVersions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={"0":"40","1":"41","2":"42","3":"43","4":"44","5":"45","6":"46","7":"47","8":"48","9":"49",A:"10",B:"11",C:"12",D:"15",E:"7",F:"8",G:"9",H:"94",I:"4",J:"6",K:"13",L:"14",M:"16",N:"17",O:"18",P:"79",Q:"80",R:"92",S:"64",T:"81",U:"83",V:"84",W:"85",X:"86",Y:"87",Z:"88",a:"89",b:"90",c:"91",d:"93",e:"5",f:"19",g:"20",h:"21",i:"22",j:"23",k:"24",l:"25",m:"26",n:"27",o:"28",p:"29",q:"30",r:"31",s:"32",t:"33",u:"34",v:"35",w:"36",x:"37",y:"38",z:"39",AB:"50",BB:"51",CB:"52",DB:"53",EB:"54",FB:"55",GB:"56",HB:"57",IB:"58",JB:"60",KB:"62",LB:"63",MB:"65",NB:"66",OB:"67",PB:"68",QB:"69",RB:"70",SB:"71",TB:"72",UB:"73",VB:"74",WB:"75",XB:"76",YB:"77",ZB:"78",aB:"11.1",bB:"12.1",cB:"3",dB:"59",eB:"61",fB:"95",gB:"3.2",hB:"10.1",iB:"11.5",jB:"4.2-4.3",kB:"5.5",lB:"2",mB:"82",nB:"3.5",oB:"3.6",pB:"96",qB:"97",rB:"3.1",sB:"5.1",tB:"6.1",uB:"7.1",vB:"9.1",wB:"13.1",xB:"14.1",yB:"TP",zB:"9.5-9.6","0B":"10.0-10.1","1B":"10.5","2B":"10.6","3B":"11.6","4B":"4.0-4.1","5B":"5.0-5.1","6B":"6.0-6.1","7B":"7.0-7.1","8B":"8.1-8.4","9B":"9.0-9.2",AC:"9.3",BC:"10.0-10.2",CC:"10.3",DC:"11.0-11.2",EC:"11.3-11.4",FC:"12.0-12.1",GC:"12.2-12.5",HC:"13.0-13.1",IC:"13.2",JC:"13.3",KC:"13.4-13.7",LC:"14.0-14.4",MC:"14.5-14.8",NC:"all",OC:"2.1",PC:"2.2",QC:"2.3",RC:"4.1",SC:"4.4",TC:"4.4.3-4.4.4",UC:"12.12",VC:"5.0-5.4",WC:"6.2-6.4",XC:"7.2-7.4",YC:"8.2",ZC:"9.2",aC:"11.1-11.2",bC:"12.0",cC:"13.0",dC:"14.0",eC:"15.0",fC:"10.4",gC:"7.12",hC:"2.5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js deleted file mode 100644 index 67dad50c5a8077..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={"aac":require("./features/aac"),"abortcontroller":require("./features/abortcontroller"),"ac3-ec3":require("./features/ac3-ec3"),"accelerometer":require("./features/accelerometer"),"addeventlistener":require("./features/addeventlistener"),"alternate-stylesheet":require("./features/alternate-stylesheet"),"ambient-light":require("./features/ambient-light"),"apng":require("./features/apng"),"array-find-index":require("./features/array-find-index"),"array-find":require("./features/array-find"),"array-flat":require("./features/array-flat"),"array-includes":require("./features/array-includes"),"arrow-functions":require("./features/arrow-functions"),"asmjs":require("./features/asmjs"),"async-clipboard":require("./features/async-clipboard"),"async-functions":require("./features/async-functions"),"atob-btoa":require("./features/atob-btoa"),"audio-api":require("./features/audio-api"),"audio":require("./features/audio"),"audiotracks":require("./features/audiotracks"),"autofocus":require("./features/autofocus"),"auxclick":require("./features/auxclick"),"av1":require("./features/av1"),"avif":require("./features/avif"),"background-attachment":require("./features/background-attachment"),"background-clip-text":require("./features/background-clip-text"),"background-img-opts":require("./features/background-img-opts"),"background-position-x-y":require("./features/background-position-x-y"),"background-repeat-round-space":require("./features/background-repeat-round-space"),"background-sync":require("./features/background-sync"),"battery-status":require("./features/battery-status"),"beacon":require("./features/beacon"),"beforeafterprint":require("./features/beforeafterprint"),"bigint":require("./features/bigint"),"blobbuilder":require("./features/blobbuilder"),"bloburls":require("./features/bloburls"),"border-image":require("./features/border-image"),"border-radius":require("./features/border-radius"),"broadcastchannel":require("./features/broadcastchannel"),"brotli":require("./features/brotli"),"calc":require("./features/calc"),"canvas-blending":require("./features/canvas-blending"),"canvas-text":require("./features/canvas-text"),"canvas":require("./features/canvas"),"ch-unit":require("./features/ch-unit"),"chacha20-poly1305":require("./features/chacha20-poly1305"),"channel-messaging":require("./features/channel-messaging"),"childnode-remove":require("./features/childnode-remove"),"classlist":require("./features/classlist"),"client-hints-dpr-width-viewport":require("./features/client-hints-dpr-width-viewport"),"clipboard":require("./features/clipboard"),"colr":require("./features/colr"),"comparedocumentposition":require("./features/comparedocumentposition"),"console-basic":require("./features/console-basic"),"console-time":require("./features/console-time"),"const":require("./features/const"),"constraint-validation":require("./features/constraint-validation"),"contenteditable":require("./features/contenteditable"),"contentsecuritypolicy":require("./features/contentsecuritypolicy"),"contentsecuritypolicy2":require("./features/contentsecuritypolicy2"),"cookie-store-api":require("./features/cookie-store-api"),"cors":require("./features/cors"),"createimagebitmap":require("./features/createimagebitmap"),"credential-management":require("./features/credential-management"),"cryptography":require("./features/cryptography"),"css-all":require("./features/css-all"),"css-animation":require("./features/css-animation"),"css-any-link":require("./features/css-any-link"),"css-appearance":require("./features/css-appearance"),"css-apply-rule":require("./features/css-apply-rule"),"css-at-counter-style":require("./features/css-at-counter-style"),"css-backdrop-filter":require("./features/css-backdrop-filter"),"css-background-offsets":require("./features/css-background-offsets"),"css-backgroundblendmode":require("./features/css-backgroundblendmode"),"css-boxdecorationbreak":require("./features/css-boxdecorationbreak"),"css-boxshadow":require("./features/css-boxshadow"),"css-canvas":require("./features/css-canvas"),"css-caret-color":require("./features/css-caret-color"),"css-cascade-layers":require("./features/css-cascade-layers"),"css-case-insensitive":require("./features/css-case-insensitive"),"css-clip-path":require("./features/css-clip-path"),"css-color-adjust":require("./features/css-color-adjust"),"css-color-function":require("./features/css-color-function"),"css-conic-gradients":require("./features/css-conic-gradients"),"css-container-queries":require("./features/css-container-queries"),"css-containment":require("./features/css-containment"),"css-content-visibility":require("./features/css-content-visibility"),"css-counters":require("./features/css-counters"),"css-crisp-edges":require("./features/css-crisp-edges"),"css-cross-fade":require("./features/css-cross-fade"),"css-default-pseudo":require("./features/css-default-pseudo"),"css-descendant-gtgt":require("./features/css-descendant-gtgt"),"css-deviceadaptation":require("./features/css-deviceadaptation"),"css-dir-pseudo":require("./features/css-dir-pseudo"),"css-display-contents":require("./features/css-display-contents"),"css-element-function":require("./features/css-element-function"),"css-env-function":require("./features/css-env-function"),"css-exclusions":require("./features/css-exclusions"),"css-featurequeries":require("./features/css-featurequeries"),"css-filter-function":require("./features/css-filter-function"),"css-filters":require("./features/css-filters"),"css-first-letter":require("./features/css-first-letter"),"css-first-line":require("./features/css-first-line"),"css-fixed":require("./features/css-fixed"),"css-focus-visible":require("./features/css-focus-visible"),"css-focus-within":require("./features/css-focus-within"),"css-font-rendering-controls":require("./features/css-font-rendering-controls"),"css-font-stretch":require("./features/css-font-stretch"),"css-gencontent":require("./features/css-gencontent"),"css-gradients":require("./features/css-gradients"),"css-grid":require("./features/css-grid"),"css-hanging-punctuation":require("./features/css-hanging-punctuation"),"css-has":require("./features/css-has"),"css-hyphenate":require("./features/css-hyphenate"),"css-hyphens":require("./features/css-hyphens"),"css-image-orientation":require("./features/css-image-orientation"),"css-image-set":require("./features/css-image-set"),"css-in-out-of-range":require("./features/css-in-out-of-range"),"css-indeterminate-pseudo":require("./features/css-indeterminate-pseudo"),"css-initial-letter":require("./features/css-initial-letter"),"css-initial-value":require("./features/css-initial-value"),"css-letter-spacing":require("./features/css-letter-spacing"),"css-line-clamp":require("./features/css-line-clamp"),"css-logical-props":require("./features/css-logical-props"),"css-marker-pseudo":require("./features/css-marker-pseudo"),"css-masks":require("./features/css-masks"),"css-matches-pseudo":require("./features/css-matches-pseudo"),"css-math-functions":require("./features/css-math-functions"),"css-media-interaction":require("./features/css-media-interaction"),"css-media-resolution":require("./features/css-media-resolution"),"css-media-scripting":require("./features/css-media-scripting"),"css-mediaqueries":require("./features/css-mediaqueries"),"css-mixblendmode":require("./features/css-mixblendmode"),"css-motion-paths":require("./features/css-motion-paths"),"css-namespaces":require("./features/css-namespaces"),"css-nesting":require("./features/css-nesting"),"css-not-sel-list":require("./features/css-not-sel-list"),"css-nth-child-of":require("./features/css-nth-child-of"),"css-opacity":require("./features/css-opacity"),"css-optional-pseudo":require("./features/css-optional-pseudo"),"css-overflow-anchor":require("./features/css-overflow-anchor"),"css-overflow-overlay":require("./features/css-overflow-overlay"),"css-overflow":require("./features/css-overflow"),"css-overscroll-behavior":require("./features/css-overscroll-behavior"),"css-page-break":require("./features/css-page-break"),"css-paged-media":require("./features/css-paged-media"),"css-paint-api":require("./features/css-paint-api"),"css-placeholder-shown":require("./features/css-placeholder-shown"),"css-placeholder":require("./features/css-placeholder"),"css-read-only-write":require("./features/css-read-only-write"),"css-rebeccapurple":require("./features/css-rebeccapurple"),"css-reflections":require("./features/css-reflections"),"css-regions":require("./features/css-regions"),"css-repeating-gradients":require("./features/css-repeating-gradients"),"css-resize":require("./features/css-resize"),"css-revert-value":require("./features/css-revert-value"),"css-rrggbbaa":require("./features/css-rrggbbaa"),"css-scroll-behavior":require("./features/css-scroll-behavior"),"css-scroll-timeline":require("./features/css-scroll-timeline"),"css-scrollbar":require("./features/css-scrollbar"),"css-sel2":require("./features/css-sel2"),"css-sel3":require("./features/css-sel3"),"css-selection":require("./features/css-selection"),"css-shapes":require("./features/css-shapes"),"css-snappoints":require("./features/css-snappoints"),"css-sticky":require("./features/css-sticky"),"css-subgrid":require("./features/css-subgrid"),"css-supports-api":require("./features/css-supports-api"),"css-table":require("./features/css-table"),"css-text-align-last":require("./features/css-text-align-last"),"css-text-indent":require("./features/css-text-indent"),"css-text-justify":require("./features/css-text-justify"),"css-text-orientation":require("./features/css-text-orientation"),"css-text-spacing":require("./features/css-text-spacing"),"css-textshadow":require("./features/css-textshadow"),"css-touch-action-2":require("./features/css-touch-action-2"),"css-touch-action":require("./features/css-touch-action"),"css-transitions":require("./features/css-transitions"),"css-unicode-bidi":require("./features/css-unicode-bidi"),"css-unset-value":require("./features/css-unset-value"),"css-variables":require("./features/css-variables"),"css-widows-orphans":require("./features/css-widows-orphans"),"css-writing-mode":require("./features/css-writing-mode"),"css-zoom":require("./features/css-zoom"),"css3-attr":require("./features/css3-attr"),"css3-boxsizing":require("./features/css3-boxsizing"),"css3-colors":require("./features/css3-colors"),"css3-cursors-grab":require("./features/css3-cursors-grab"),"css3-cursors-newer":require("./features/css3-cursors-newer"),"css3-cursors":require("./features/css3-cursors"),"css3-tabsize":require("./features/css3-tabsize"),"currentcolor":require("./features/currentcolor"),"custom-elements":require("./features/custom-elements"),"custom-elementsv1":require("./features/custom-elementsv1"),"customevent":require("./features/customevent"),"datalist":require("./features/datalist"),"dataset":require("./features/dataset"),"datauri":require("./features/datauri"),"date-tolocaledatestring":require("./features/date-tolocaledatestring"),"decorators":require("./features/decorators"),"details":require("./features/details"),"deviceorientation":require("./features/deviceorientation"),"devicepixelratio":require("./features/devicepixelratio"),"dialog":require("./features/dialog"),"dispatchevent":require("./features/dispatchevent"),"dnssec":require("./features/dnssec"),"do-not-track":require("./features/do-not-track"),"document-currentscript":require("./features/document-currentscript"),"document-evaluate-xpath":require("./features/document-evaluate-xpath"),"document-execcommand":require("./features/document-execcommand"),"document-policy":require("./features/document-policy"),"document-scrollingelement":require("./features/document-scrollingelement"),"documenthead":require("./features/documenthead"),"dom-manip-convenience":require("./features/dom-manip-convenience"),"dom-range":require("./features/dom-range"),"domcontentloaded":require("./features/domcontentloaded"),"domfocusin-domfocusout-events":require("./features/domfocusin-domfocusout-events"),"dommatrix":require("./features/dommatrix"),"download":require("./features/download"),"dragndrop":require("./features/dragndrop"),"element-closest":require("./features/element-closest"),"element-from-point":require("./features/element-from-point"),"element-scroll-methods":require("./features/element-scroll-methods"),"eme":require("./features/eme"),"eot":require("./features/eot"),"es5":require("./features/es5"),"es6-class":require("./features/es6-class"),"es6-generators":require("./features/es6-generators"),"es6-module-dynamic-import":require("./features/es6-module-dynamic-import"),"es6-module":require("./features/es6-module"),"es6-number":require("./features/es6-number"),"es6-string-includes":require("./features/es6-string-includes"),"es6":require("./features/es6"),"eventsource":require("./features/eventsource"),"extended-system-fonts":require("./features/extended-system-fonts"),"feature-policy":require("./features/feature-policy"),"fetch":require("./features/fetch"),"fieldset-disabled":require("./features/fieldset-disabled"),"fileapi":require("./features/fileapi"),"filereader":require("./features/filereader"),"filereadersync":require("./features/filereadersync"),"filesystem":require("./features/filesystem"),"flac":require("./features/flac"),"flexbox-gap":require("./features/flexbox-gap"),"flexbox":require("./features/flexbox"),"flow-root":require("./features/flow-root"),"focusin-focusout-events":require("./features/focusin-focusout-events"),"focusoptions-preventscroll":require("./features/focusoptions-preventscroll"),"font-family-system-ui":require("./features/font-family-system-ui"),"font-feature":require("./features/font-feature"),"font-kerning":require("./features/font-kerning"),"font-loading":require("./features/font-loading"),"font-metrics-overrides":require("./features/font-metrics-overrides"),"font-size-adjust":require("./features/font-size-adjust"),"font-smooth":require("./features/font-smooth"),"font-unicode-range":require("./features/font-unicode-range"),"font-variant-alternates":require("./features/font-variant-alternates"),"font-variant-east-asian":require("./features/font-variant-east-asian"),"font-variant-numeric":require("./features/font-variant-numeric"),"fontface":require("./features/fontface"),"form-attribute":require("./features/form-attribute"),"form-submit-attributes":require("./features/form-submit-attributes"),"form-validation":require("./features/form-validation"),"forms":require("./features/forms"),"fullscreen":require("./features/fullscreen"),"gamepad":require("./features/gamepad"),"geolocation":require("./features/geolocation"),"getboundingclientrect":require("./features/getboundingclientrect"),"getcomputedstyle":require("./features/getcomputedstyle"),"getelementsbyclassname":require("./features/getelementsbyclassname"),"getrandomvalues":require("./features/getrandomvalues"),"gyroscope":require("./features/gyroscope"),"hardwareconcurrency":require("./features/hardwareconcurrency"),"hashchange":require("./features/hashchange"),"heif":require("./features/heif"),"hevc":require("./features/hevc"),"hidden":require("./features/hidden"),"high-resolution-time":require("./features/high-resolution-time"),"history":require("./features/history"),"html-media-capture":require("./features/html-media-capture"),"html5semantic":require("./features/html5semantic"),"http-live-streaming":require("./features/http-live-streaming"),"http2":require("./features/http2"),"http3":require("./features/http3"),"iframe-sandbox":require("./features/iframe-sandbox"),"iframe-seamless":require("./features/iframe-seamless"),"iframe-srcdoc":require("./features/iframe-srcdoc"),"imagecapture":require("./features/imagecapture"),"ime":require("./features/ime"),"img-naturalwidth-naturalheight":require("./features/img-naturalwidth-naturalheight"),"import-maps":require("./features/import-maps"),"imports":require("./features/imports"),"indeterminate-checkbox":require("./features/indeterminate-checkbox"),"indexeddb":require("./features/indexeddb"),"indexeddb2":require("./features/indexeddb2"),"inline-block":require("./features/inline-block"),"innertext":require("./features/innertext"),"input-autocomplete-onoff":require("./features/input-autocomplete-onoff"),"input-color":require("./features/input-color"),"input-datetime":require("./features/input-datetime"),"input-email-tel-url":require("./features/input-email-tel-url"),"input-event":require("./features/input-event"),"input-file-accept":require("./features/input-file-accept"),"input-file-directory":require("./features/input-file-directory"),"input-file-multiple":require("./features/input-file-multiple"),"input-inputmode":require("./features/input-inputmode"),"input-minlength":require("./features/input-minlength"),"input-number":require("./features/input-number"),"input-pattern":require("./features/input-pattern"),"input-placeholder":require("./features/input-placeholder"),"input-range":require("./features/input-range"),"input-search":require("./features/input-search"),"input-selection":require("./features/input-selection"),"insert-adjacent":require("./features/insert-adjacent"),"insertadjacenthtml":require("./features/insertadjacenthtml"),"internationalization":require("./features/internationalization"),"intersectionobserver-v2":require("./features/intersectionobserver-v2"),"intersectionobserver":require("./features/intersectionobserver"),"intl-pluralrules":require("./features/intl-pluralrules"),"intrinsic-width":require("./features/intrinsic-width"),"jpeg2000":require("./features/jpeg2000"),"jpegxl":require("./features/jpegxl"),"jpegxr":require("./features/jpegxr"),"js-regexp-lookbehind":require("./features/js-regexp-lookbehind"),"json":require("./features/json"),"justify-content-space-evenly":require("./features/justify-content-space-evenly"),"kerning-pairs-ligatures":require("./features/kerning-pairs-ligatures"),"keyboardevent-charcode":require("./features/keyboardevent-charcode"),"keyboardevent-code":require("./features/keyboardevent-code"),"keyboardevent-getmodifierstate":require("./features/keyboardevent-getmodifierstate"),"keyboardevent-key":require("./features/keyboardevent-key"),"keyboardevent-location":require("./features/keyboardevent-location"),"keyboardevent-which":require("./features/keyboardevent-which"),"lazyload":require("./features/lazyload"),"let":require("./features/let"),"link-icon-png":require("./features/link-icon-png"),"link-icon-svg":require("./features/link-icon-svg"),"link-rel-dns-prefetch":require("./features/link-rel-dns-prefetch"),"link-rel-modulepreload":require("./features/link-rel-modulepreload"),"link-rel-preconnect":require("./features/link-rel-preconnect"),"link-rel-prefetch":require("./features/link-rel-prefetch"),"link-rel-preload":require("./features/link-rel-preload"),"link-rel-prerender":require("./features/link-rel-prerender"),"loading-lazy-attr":require("./features/loading-lazy-attr"),"localecompare":require("./features/localecompare"),"magnetometer":require("./features/magnetometer"),"matchesselector":require("./features/matchesselector"),"matchmedia":require("./features/matchmedia"),"mathml":require("./features/mathml"),"maxlength":require("./features/maxlength"),"media-attribute":require("./features/media-attribute"),"media-fragments":require("./features/media-fragments"),"media-session-api":require("./features/media-session-api"),"mediacapture-fromelement":require("./features/mediacapture-fromelement"),"mediarecorder":require("./features/mediarecorder"),"mediasource":require("./features/mediasource"),"menu":require("./features/menu"),"meta-theme-color":require("./features/meta-theme-color"),"meter":require("./features/meter"),"midi":require("./features/midi"),"minmaxwh":require("./features/minmaxwh"),"mp3":require("./features/mp3"),"mpeg-dash":require("./features/mpeg-dash"),"mpeg4":require("./features/mpeg4"),"multibackgrounds":require("./features/multibackgrounds"),"multicolumn":require("./features/multicolumn"),"mutation-events":require("./features/mutation-events"),"mutationobserver":require("./features/mutationobserver"),"namevalue-storage":require("./features/namevalue-storage"),"native-filesystem-api":require("./features/native-filesystem-api"),"nav-timing":require("./features/nav-timing"),"navigator-language":require("./features/navigator-language"),"netinfo":require("./features/netinfo"),"notifications":require("./features/notifications"),"object-entries":require("./features/object-entries"),"object-fit":require("./features/object-fit"),"object-observe":require("./features/object-observe"),"object-values":require("./features/object-values"),"objectrtc":require("./features/objectrtc"),"offline-apps":require("./features/offline-apps"),"offscreencanvas":require("./features/offscreencanvas"),"ogg-vorbis":require("./features/ogg-vorbis"),"ogv":require("./features/ogv"),"ol-reversed":require("./features/ol-reversed"),"once-event-listener":require("./features/once-event-listener"),"online-status":require("./features/online-status"),"opus":require("./features/opus"),"orientation-sensor":require("./features/orientation-sensor"),"outline":require("./features/outline"),"pad-start-end":require("./features/pad-start-end"),"page-transition-events":require("./features/page-transition-events"),"pagevisibility":require("./features/pagevisibility"),"passive-event-listener":require("./features/passive-event-listener"),"passwordrules":require("./features/passwordrules"),"path2d":require("./features/path2d"),"payment-request":require("./features/payment-request"),"pdf-viewer":require("./features/pdf-viewer"),"permissions-api":require("./features/permissions-api"),"permissions-policy":require("./features/permissions-policy"),"picture-in-picture":require("./features/picture-in-picture"),"picture":require("./features/picture"),"ping":require("./features/ping"),"png-alpha":require("./features/png-alpha"),"pointer-events":require("./features/pointer-events"),"pointer":require("./features/pointer"),"pointerlock":require("./features/pointerlock"),"portals":require("./features/portals"),"prefers-color-scheme":require("./features/prefers-color-scheme"),"prefers-reduced-motion":require("./features/prefers-reduced-motion"),"private-class-fields":require("./features/private-class-fields"),"private-methods-and-accessors":require("./features/private-methods-and-accessors"),"progress":require("./features/progress"),"promise-finally":require("./features/promise-finally"),"promises":require("./features/promises"),"proximity":require("./features/proximity"),"proxy":require("./features/proxy"),"public-class-fields":require("./features/public-class-fields"),"publickeypinning":require("./features/publickeypinning"),"push-api":require("./features/push-api"),"queryselector":require("./features/queryselector"),"readonly-attr":require("./features/readonly-attr"),"referrer-policy":require("./features/referrer-policy"),"registerprotocolhandler":require("./features/registerprotocolhandler"),"rel-noopener":require("./features/rel-noopener"),"rel-noreferrer":require("./features/rel-noreferrer"),"rellist":require("./features/rellist"),"rem":require("./features/rem"),"requestanimationframe":require("./features/requestanimationframe"),"requestidlecallback":require("./features/requestidlecallback"),"resizeobserver":require("./features/resizeobserver"),"resource-timing":require("./features/resource-timing"),"rest-parameters":require("./features/rest-parameters"),"rtcpeerconnection":require("./features/rtcpeerconnection"),"ruby":require("./features/ruby"),"run-in":require("./features/run-in"),"same-site-cookie-attribute":require("./features/same-site-cookie-attribute"),"screen-orientation":require("./features/screen-orientation"),"script-async":require("./features/script-async"),"script-defer":require("./features/script-defer"),"scrollintoview":require("./features/scrollintoview"),"scrollintoviewifneeded":require("./features/scrollintoviewifneeded"),"sdch":require("./features/sdch"),"selection-api":require("./features/selection-api"),"server-timing":require("./features/server-timing"),"serviceworkers":require("./features/serviceworkers"),"setimmediate":require("./features/setimmediate"),"sha-2":require("./features/sha-2"),"shadowdom":require("./features/shadowdom"),"shadowdomv1":require("./features/shadowdomv1"),"sharedarraybuffer":require("./features/sharedarraybuffer"),"sharedworkers":require("./features/sharedworkers"),"sni":require("./features/sni"),"spdy":require("./features/spdy"),"speech-recognition":require("./features/speech-recognition"),"speech-synthesis":require("./features/speech-synthesis"),"spellcheck-attribute":require("./features/spellcheck-attribute"),"sql-storage":require("./features/sql-storage"),"srcset":require("./features/srcset"),"stream":require("./features/stream"),"streams":require("./features/streams"),"stricttransportsecurity":require("./features/stricttransportsecurity"),"style-scoped":require("./features/style-scoped"),"subresource-integrity":require("./features/subresource-integrity"),"svg-css":require("./features/svg-css"),"svg-filters":require("./features/svg-filters"),"svg-fonts":require("./features/svg-fonts"),"svg-fragment":require("./features/svg-fragment"),"svg-html":require("./features/svg-html"),"svg-html5":require("./features/svg-html5"),"svg-img":require("./features/svg-img"),"svg-smil":require("./features/svg-smil"),"svg":require("./features/svg"),"sxg":require("./features/sxg"),"tabindex-attr":require("./features/tabindex-attr"),"template-literals":require("./features/template-literals"),"template":require("./features/template"),"temporal":require("./features/temporal"),"testfeat":require("./features/testfeat"),"text-decoration":require("./features/text-decoration"),"text-emphasis":require("./features/text-emphasis"),"text-overflow":require("./features/text-overflow"),"text-size-adjust":require("./features/text-size-adjust"),"text-stroke":require("./features/text-stroke"),"text-underline-offset":require("./features/text-underline-offset"),"textcontent":require("./features/textcontent"),"textencoder":require("./features/textencoder"),"tls1-1":require("./features/tls1-1"),"tls1-2":require("./features/tls1-2"),"tls1-3":require("./features/tls1-3"),"token-binding":require("./features/token-binding"),"touch":require("./features/touch"),"transforms2d":require("./features/transforms2d"),"transforms3d":require("./features/transforms3d"),"trusted-types":require("./features/trusted-types"),"ttf":require("./features/ttf"),"typedarrays":require("./features/typedarrays"),"u2f":require("./features/u2f"),"unhandledrejection":require("./features/unhandledrejection"),"upgradeinsecurerequests":require("./features/upgradeinsecurerequests"),"url-scroll-to-text-fragment":require("./features/url-scroll-to-text-fragment"),"url":require("./features/url"),"urlsearchparams":require("./features/urlsearchparams"),"use-strict":require("./features/use-strict"),"user-select-none":require("./features/user-select-none"),"user-timing":require("./features/user-timing"),"variable-fonts":require("./features/variable-fonts"),"vector-effect":require("./features/vector-effect"),"vibration":require("./features/vibration"),"video":require("./features/video"),"videotracks":require("./features/videotracks"),"viewport-unit-variants":require("./features/viewport-unit-variants"),"viewport-units":require("./features/viewport-units"),"wai-aria":require("./features/wai-aria"),"wake-lock":require("./features/wake-lock"),"wasm":require("./features/wasm"),"wav":require("./features/wav"),"wbr-element":require("./features/wbr-element"),"web-animation":require("./features/web-animation"),"web-app-manifest":require("./features/web-app-manifest"),"web-bluetooth":require("./features/web-bluetooth"),"web-serial":require("./features/web-serial"),"web-share":require("./features/web-share"),"webauthn":require("./features/webauthn"),"webgl":require("./features/webgl"),"webgl2":require("./features/webgl2"),"webgpu":require("./features/webgpu"),"webhid":require("./features/webhid"),"webkit-user-drag":require("./features/webkit-user-drag"),"webm":require("./features/webm"),"webnfc":require("./features/webnfc"),"webp":require("./features/webp"),"websockets":require("./features/websockets"),"webusb":require("./features/webusb"),"webvr":require("./features/webvr"),"webvtt":require("./features/webvtt"),"webworkers":require("./features/webworkers"),"webxr":require("./features/webxr"),"will-change":require("./features/will-change"),"woff":require("./features/woff"),"woff2":require("./features/woff2"),"word-break":require("./features/word-break"),"wordwrap":require("./features/wordwrap"),"x-doc-messaging":require("./features/x-doc-messaging"),"x-frame-options":require("./features/x-frame-options"),"xhr2":require("./features/xhr2"),"xhtml":require("./features/xhtml"),"xhtmlsmil":require("./features/xhtmlsmil"),"xml-serializer":require("./features/xml-serializer")}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js deleted file mode 100644 index b4f5fbdc1be59f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/aac.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h nB oB","132":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G","16":"A B"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"132":"R"},N:{"1":"A","2":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"132":"hC"}},B:6,C:"AAC audio file format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js deleted file mode 100644 index 9d61e898d6567f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/abortcontroller.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB nB oB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB","130":"C aB"},F:{"1":"DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"AbortController & AbortSignal"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js deleted file mode 100644 index 02712b71c2d7da..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ac3-ec3.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B","132":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","132":"A"},K:{"2":"A B C S aB iB","132":"bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"AC-3 (Dolby Digital) and EC-3 (Dolby Digital Plus) codecs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js deleted file mode 100644 index b741cca1bd7d2e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/accelerometer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S MB NB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Accelerometer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js deleted file mode 100644 index de067767006f95..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/addeventlistener.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","130":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","257":"lB cB I e J nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"EventTarget.addEventListener()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js deleted file mode 100644 index 038399d2c41e49..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/alternate-stylesheet.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"J E kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"G B C zB 0B 1B 2B aB iB 3B bB","16":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"2":"S","16":"A B C aB iB bB"},L:{"16":"H"},M:{"16":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"16":"gC"},S:{"1":"hC"}},B:1,C:"Alternate stylesheet"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js deleted file mode 100644 index e9ffd7042fb0fb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ambient-light.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K","132":"L D M N O","322":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h nB oB","132":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","194":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","322":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB","322":"UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"132":"hC"}},B:4,C:"Ambient Light Sensor"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js deleted file mode 100644 index 1fa7c819942e31..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/apng.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"1":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB uB"},F:{"1":"6 7 8 9 B C AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"0 1 2 3 4 5 G D M N O f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:7,C:"Animated PNG (APNG)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js deleted file mode 100644 index 24263dc1d8a273..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find-index.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","16":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Array.prototype.findIndex"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js deleted file mode 100644 index 9e1ae2748ebbfd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-find.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","16":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Array.prototype.find"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js deleted file mode 100644 index 7387cd9c4f238c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-flat.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB nB oB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB"},E:{"1":"C K L D bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB aB"},F:{"1":"GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"flat & flatMap array methods"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js deleted file mode 100644 index 89b07ea7272238..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/array-includes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Array.prototype.includes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js deleted file mode 100644 index 0059ba826ccb30..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/arrow-functions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Arrow functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js deleted file mode 100644 index 390ae760240a07..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/asmjs.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O","132":"P Q T U V W X Y Z a b c R d H","322":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l m n","132":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","132":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","132":"S"},L:{"132":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","132":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:6,C:"asm.js"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js deleted file mode 100644 index 30f06aaea85db2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-clipboard.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB nB oB","132":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","66":"IB dB JB eB"},E:{"1":"L D wB xB yB","2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","260":"D LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","260":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","260":"S"},L:{"1":"H"},M:{"132":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC","260":"ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Asynchronous Clipboard API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js deleted file mode 100644 index eaa0f49cbeffdd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/async-functions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K","194":"L"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB"},D:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB","514":"hB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","514":"CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Async functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js deleted file mode 100644 index a43c166ff9b0cf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/atob-btoa.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB 0B","16":"1B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","16":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Base64 encoding and decoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js deleted file mode 100644 index a6649c52e20a8f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K","33":"L D M N O f g h i j k l m n o p q r s t"},E:{"1":"D xB yB","2":"I e rB gB sB","33":"J E F G A B C K L tB uB vB hB aB bB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h"},G:{"1":"D MC","2":"gB 4B jB 5B","33":"F 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Web Audio API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js deleted file mode 100644 index 09cf152c743152..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audio.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","132":"I e J E F G A B C K L D M N O f nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G","4":"zB 0B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","2":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Audio element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js deleted file mode 100644 index 1e7849245eea2e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/audiotracks.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O","322":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","194":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","322":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e J rB gB sB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB","322":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"322":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:1,C:"Audio Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js deleted file mode 100644 index dca04f72fcaed0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/autofocus.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"Autofocus attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js deleted file mode 100644 index 1d97c7205a2c6b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/auxclick.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB","129":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Auxclick"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js deleted file mode 100644 index 19e9cc5a057acc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/av1.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N","194":"O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB nB oB","66":"FB GB HB IB dB JB eB KB LB S","260":"MB","516":"NB"},D:{"1":"RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB","66":"OB PB QB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1090":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I VC WC XC YC ZC hB aC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"AV1 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js deleted file mode 100644 index cbac7ea05024fe..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/avif.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB nB oB","194":"YB ZB P Q T mB U V W X Y Z a b c R"},D:{"1":"W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"AVIF image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js deleted file mode 100644 index bbc093777b2845..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-attachment.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","132":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C sB tB uB vB hB aB bB","132":"I K rB gB wB","2050":"L D xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","132":"G zB 0B"},G:{"2":"gB 4B jB","772":"F 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","2050":"D HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC SC TC","132":"RC jB"},J:{"260":"E A"},K:{"1":"B C aB iB bB","2":"S","132":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"2":"I","1028":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1028":"gC"},S:{"1":"hC"}},B:4,C:"CSS background-attachment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js deleted file mode 100644 index d200b4fbd10add..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-clip-text.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O","33":"C K L P Q T U V W X Y Z a b c R d H"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"16":"rB gB","33":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"16":"gB 4B jB 5B","33":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"cB OC PC QC","33":"I H RC jB SC TC"},J:{"33":"E A"},K:{"16":"A B C aB iB bB","33":"S"},L:{"33":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"1":"hC"}},B:7,C:"Background-clip: text"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js deleted file mode 100644 index ffe60ba54f46b2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-img-opts.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","36":"oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","516":"I e J E F G A B C K L"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","772":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB","36":"0B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","4":"gB 4B jB 6B","516":"5B"},H:{"132":"NC"},I:{"1":"H SC TC","36":"OC","516":"cB I RC jB","548":"PC QC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 Background-image options"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js deleted file mode 100644 index a217d659e193de..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-position-x-y.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"background-position-x & background-position-y"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js deleted file mode 100644 index 6dc7dbd06df95a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-repeat-round-space.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F kB","132":"G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G D M N O zB 0B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:4,C:"CSS background-repeat round and space"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js deleted file mode 100644 index fb0af6af5b3f4d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/background-sync.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d nB oB","16":"H fB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Background Sync API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js deleted file mode 100644 index de6f7f71566f10..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/battery-status.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"3 4 5 6 7 8 9 AB BB","2":"lB cB I e J E F G CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","132":"0 1 2 M N O f g h i j k l m n o p q r s t u v w x y z","164":"A B C K L D"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w","66":"x"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Battery Status API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js deleted file mode 100644 index 121f467e2cb16c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beacon.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Beacon API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js deleted file mode 100644 index 8d59a4f641d315..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/beforeafterprint.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB"},D:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"2":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"Printing Events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js deleted file mode 100644 index 05ee1458fa0871..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bigint.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S nB oB","194":"MB NB OB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB"},E:{"1":"L D xB yB","2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB wB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"BigInt"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js deleted file mode 100644 index 3ba762fc926a05..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/blobbuilder.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB","36":"J E F G A B C"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E","36":"F G A B C K L D M N O f"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"H","2":"OC PC QC","36":"cB I RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Blob constructing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js deleted file mode 100644 index 35cf258a8e0438..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/bloburls.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","129":"A B"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","129":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E","33":"F G A B C K L D M N O f g h i"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB OC PC QC","33":"I RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Blob URLs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js deleted file mode 100644 index 8b2d859a879b08..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-image.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","129":"C K"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","260":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z","804":"I e J E F G A B C K L nB oB"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","260":"BB CB DB EB FB","388":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB","1412":"D M N O f g h i j k l m n o p","1956":"I e J E F G A B C K L"},E:{"129":"A B C K L D vB hB aB bB wB xB yB","1412":"J E F G tB uB","1956":"I e rB gB sB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B","260":"0 1 2 y z","388":"D M N O f g h i j k l m n o p q r s t u v w x","1796":"1B 2B","1828":"B C aB iB 3B bB"},G:{"129":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","1412":"F 6B 7B 8B 9B","1956":"gB 4B jB 5B"},H:{"1828":"NC"},I:{"1":"H","388":"SC TC","1956":"cB I OC PC QC RC jB"},J:{"1412":"A","1924":"E"},K:{"1":"S","2":"A","1828":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"388":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","260":"VC WC","388":"I"},Q:{"260":"fC"},R:{"260":"gC"},S:{"260":"hC"}},B:4,C:"CSS3 Border images"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js deleted file mode 100644 index 46ea1c2b9903c1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/border-radius.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","257":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","289":"cB nB oB","292":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I"},E:{"1":"e E F G A B C K L D uB vB hB aB bB wB xB yB","33":"I rB gB","129":"J sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"gB"},H:{"2":"NC"},I:{"1":"cB I H PC QC RC jB SC TC","33":"OC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"257":"hC"}},B:4,C:"CSS3 Border-radius (rounded corners)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js deleted file mode 100644 index 00745e5bdc6a57..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/broadcastchannel.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"BroadcastChannel"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js deleted file mode 100644 index ab3d6b350123fc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/brotli.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K L"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"9","257":"AB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","513":"B C aB bB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB","194":"w x"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:6,C:"Brotli Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js deleted file mode 100644 index b216c04db4bd81..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/calc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","260":"G","516":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"I e J E F G A B C K L D"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O","33":"f g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"6B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","132":"SC TC"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"calc() as CSS unit value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js deleted file mode 100644 index 5061035910fbc5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-blending.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e J rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Canvas blend modes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js deleted file mode 100644 index a3aef71721ca82..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas-text.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","8":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","8":"G zB 0B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","8":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Text API for Canvas"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js deleted file mode 100644 index 6781dbe49c2789..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/canvas.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","132":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","132":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"260":"NC"},I:{"1":"cB I H RC jB SC TC","132":"OC PC QC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Canvas (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js deleted file mode 100644 index 6b05ba9b6fc755..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ch-unit.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"ch (character) unit"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js deleted file mode 100644 index 688e2f1a0b1df1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/chacha20-poly1305.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s","129":"0 1 2 3 4 5 6 7 8 t u v w x y z"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC","16":"TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ChaCha20-Poly1305 cipher suites for TLS"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js deleted file mode 100644 index 72b438bef42a45..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/channel-messaging.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l nB oB","194":"0 m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB 0B","16":"1B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Channel messaging"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js deleted file mode 100644 index 0c4f30819f1502..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/childnode-remove.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"ChildNode.remove()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js deleted file mode 100644 index e7f73ebc02f5fb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/classlist.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"8":"J E F G kB","1924":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB nB","516":"k l","772":"I e J E F G A B C K L D M N O f g h i j oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I e J E","516":"k l m n","772":"j","900":"F G A B C K L D M N O f g h i"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","8":"I e rB gB","900":"J sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","8":"G B zB 0B 1B 2B aB","900":"C iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB","900":"5B 6B"},H:{"900":"NC"},I:{"1":"H SC TC","8":"OC PC QC","900":"cB I RC jB"},J:{"1":"A","900":"E"},K:{"1":"S","8":"A B","900":"C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"900":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"classList (DOMTokenList)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js deleted file mode 100644 index be08c379c02f92..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/client-hints-dpr-width-viewport.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:6,C:"Client Hints: DPR, Width, Viewport-Width"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js deleted file mode 100644 index f457dc9cf9fc0d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/clipboard.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2436":"J E F G A B kB"},B:{"260":"N O","2436":"C K L D M","8196":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h nB oB","772":"0 i j k l m n o p q r s t u v w x y z","4100":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I e J E F G A B C","2564":"0 1 2 K L D M N O f g h i j k l m n o p q r s t u v w x y z","8196":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","10244":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB"},E:{"1":"C K L D bB wB xB yB","16":"rB gB","2308":"A B hB aB","2820":"I e J E F G sB tB uB vB"},F:{"2":"G B zB 0B 1B 2B aB iB 3B","16":"C","516":"bB","2564":"D M N O f g h i j k l m n o p","8196":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","10244":"0 1 2 3 4 q r s t u v w x y z"},G:{"1":"D FC GC HC IC JC KC LC MC","2":"gB 4B jB","2820":"F 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","260":"H","2308":"SC TC"},J:{"2":"E","2308":"A"},K:{"2":"A B C aB iB","16":"bB","260":"S"},L:{"8196":"H"},M:{"1028":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2052":"VC WC","2308":"I","8196":"XC YC ZC hB aC bC cC dC eC"},Q:{"10244":"fC"},R:{"2052":"gC"},S:{"4100":"hC"}},B:5,C:"Synchronous Clipboard API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js deleted file mode 100644 index 812306a5161bb9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/colr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","257":"G A B"},B:{"1":"C K L D M N O","513":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB","513":"SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"L D xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","129":"B C K aB bB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB zB 0B 1B 2B aB iB 3B bB","513":"IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"16":"A B"},O:{"1":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"COLR/CPAL(v0) Font Formats"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js deleted file mode 100644 index 368ffdcc6bd254..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/comparedocumentposition.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","132":"D M N O f g h i j k l m n o p"},E:{"1":"A B C K L D hB aB bB wB xB yB","16":"I e J rB gB","132":"E F G tB uB vB","260":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","16":"G B zB 0B 1B 2B aB iB","132":"D M"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB","132":"F 4B jB 5B 6B 7B 8B 9B AC"},H:{"1":"NC"},I:{"1":"H SC TC","16":"OC PC","132":"cB I QC RC jB"},J:{"132":"E A"},K:{"1":"C S bB","16":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Node.compareDocumentPosition()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js deleted file mode 100644 index 085354b30f02c6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-basic.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E kB","132":"F G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G zB 0B 1B 2B"},G:{"1":"gB 4B jB 5B","513":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"4097":"NC"},I:{"1025":"cB I H OC PC QC RC jB SC TC"},J:{"258":"E A"},K:{"2":"A","258":"B C aB iB bB","1025":"S"},L:{"1025":"H"},M:{"2049":"R"},N:{"258":"A B"},O:{"258":"UC"},P:{"1025":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1025":"gC"},S:{"1":"hC"}},B:1,C:"Basic console logging functions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js deleted file mode 100644 index 7850323256c3da..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/console-time.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G zB 0B 1B 2B","16":"B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"S","16":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"console.time and console.timeEnd"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js deleted file mode 100644 index 8c396b5da5dd24..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/const.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","2052":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"lB cB I e J E F G A B C nB oB","260":"K L D M N O f g h i j k l m n o p q r s t u v"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","260":"I e J E F G A B C K L D M N O f g","772":"0 h i j k l m n o p q r s t u v w x y z","1028":"1 2 3 4 5 6 7 8"},E:{"1":"B C K L D aB bB wB xB yB","260":"I e A rB gB hB","772":"J E F G sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB","132":"B 0B 1B 2B aB iB","644":"C 3B bB","772":"D M N O f g h i j k l m n","1028":"o p q r s t u v"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","260":"gB 4B jB BC CC","772":"F 5B 6B 7B 8B 9B AC"},H:{"644":"NC"},I:{"1":"H","16":"OC PC","260":"QC","772":"cB I RC jB SC TC"},J:{"772":"E A"},K:{"1":"S","132":"A B aB iB","644":"C bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","1028":"I"},Q:{"1":"fC"},R:{"1028":"gC"},S:{"1":"hC"}},B:6,C:"const"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js deleted file mode 100644 index 775ce77645e2d4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/constraint-validation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","900":"A B"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","388":"L D M","900":"C K"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","260":"9 AB","388":"0 1 2 3 4 5 6 7 8 p q r s t u v w x y z","900":"I e J E F G A B C K L D M N O f g h i j k l m n o"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","388":"l m n o p q r s t u v w x y z","900":"D M N O f g h i j k"},E:{"1":"A B C K L D hB aB bB wB xB yB","16":"I e rB gB","388":"F G uB vB","900":"J E sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B zB 0B 1B 2B aB iB","388":"D M N O f g h i j k l m","900":"C 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB","388":"F 7B 8B 9B AC","900":"5B 6B"},H:{"2":"NC"},I:{"1":"H","16":"cB OC PC QC","388":"SC TC","900":"I RC jB"},J:{"16":"E","388":"A"},K:{"1":"S","16":"A B aB iB","900":"C bB"},L:{"1":"H"},M:{"1":"R"},N:{"900":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"388":"hC"}},B:1,C:"Constraint Validation API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js deleted file mode 100644 index 6dd805212848a2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contenteditable.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB","4":"cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"contenteditable attribute (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js deleted file mode 100644 index 5214594bc7697b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","129":"I e J E F G A B C K L D M N O f g h i"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K","257":"L D M N O f g h i j k"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e rB gB","257":"J tB","260":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","257":"6B","260":"5B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E","257":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"257":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Content Security Policy 1.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js deleted file mode 100644 index f1d619647a7995..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/contentsecuritypolicy2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L","32772":"D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB","132":"r s t u","260":"v","516":"0 1 2 3 4 w x y z","8196":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v","1028":"w x y","2052":"z"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i zB 0B 1B 2B aB iB 3B bB","1028":"j k l","2052":"m"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"4100":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"8196":"hC"}},B:2,C:"Content Security Policy Level 2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js deleted file mode 100644 index 1420bdd7d3abfc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cookie-store-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"Y Z a b c R d H","2":"C K L D M N O","194":"P Q T U V W X"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB","194":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB zB 0B 1B 2B aB iB 3B bB","194":"BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Cookie Store API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js deleted file mode 100644 index 3fa1355a9c8a7d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E kB","132":"A","260":"F G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB","1025":"eB KB LB S MB NB OB PB QB RB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C"},E:{"2":"rB gB","513":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","644":"I e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B"},G:{"513":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","644":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"H SC TC","132":"cB I OC PC QC RC jB"},J:{"1":"A","132":"E"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","132":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Cross-Origin Resource Sharing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js deleted file mode 100644 index 23e844914adaa9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/createimagebitmap.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","3076":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","132":"AB BB","260":"CB DB","516":"EB FB GB HB IB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w zB 0B 1B 2B aB iB 3B bB","132":"x y","260":"0 z","516":"1 2 3 4 5"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"3076":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","16":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"3076":"hC"}},B:1,C:"createImageBitmap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js deleted file mode 100644 index 9bbd73b20898dd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/credential-management.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","66":"8 9 AB","129":"BB CB DB EB FB GB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Credential Management API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js deleted file mode 100644 index 20a911945214e7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/cryptography.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F G A","164":"B"},B:{"1":"P Q T U V W X Y Z a b c R d H","513":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB","66":"s t"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},E:{"1":"B C K L D aB bB wB xB yB","8":"I e J E rB gB sB tB","289":"F G A uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","8":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB 5B 6B 7B","289":"F 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","8":"cB I OC PC QC RC jB SC TC"},J:{"8":"E A"},K:{"1":"S","8":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A","164":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Web Cryptography"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js deleted file mode 100644 index a7fa159ab62ef2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-all.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB SC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS all property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js deleted file mode 100644 index b5a79cad918911..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-animation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I nB oB","33":"e J E F G A B C K L D"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"rB gB","33":"J E F sB tB uB","292":"I e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B","33":"C D M N O f g h i j k l m n o p"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"F 6B 7B 8B","164":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"H","33":"I RC jB SC TC","164":"cB OC PC QC"},J:{"33":"E A"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS Animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js deleted file mode 100644 index d903e0b9357c3d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-any-link.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB","33":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","16":"I e J rB gB sB","33":"E F tB uB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B","33":"F 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","16":"cB I OC PC QC RC jB","33":"SC TC"},J:{"16":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"33":"UC"},P:{"1":"ZC hB aC bC cC dC eC","16":"I","33":"VC WC XC YC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"33":"hC"}},B:5,C:"CSS :any-link selector"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js deleted file mode 100644 index 29dd0c0b34340a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-appearance.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"V W X Y Z a b c R d H","33":"U","164":"P Q T","388":"C K L D M N O"},C:{"1":"Q T mB U V W X Y Z a b c R d H fB","164":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","676":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u nB oB"},D:{"1":"V W X Y Z a b c R d H fB pB qB","33":"U","164":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T"},E:{"164":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"RB SB TB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB"},G:{"164":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","164":"cB I OC PC QC RC jB SC TC"},J:{"164":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A","388":"B"},O:{"164":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"164":"hC"}},B:5,C:"CSS Appearance"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js deleted file mode 100644 index 724138d1b0a72e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-apply-rule.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","194":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","194":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B bB","194":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"194":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","194":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"194":"gC"},S:{"2":"hC"}},B:7,C:"CSS @apply rule"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js deleted file mode 100644 index 3d02a143ccc349..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-at-counter-style.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b","132":"c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","132":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b","132":"c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB zB 0B 1B 2B aB iB 3B bB","132":"YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","132":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","132":"S"},L:{"132":"H"},M:{"132":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"132":"hC"}},B:4,C:"CSS Counter Styles"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js deleted file mode 100644 index 7c9bc229c7f4a9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backdrop-filter.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M","257":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB nB oB","578":"RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB"},E:{"2":"I e J E F rB gB sB tB uB","33":"G A B C K L D vB hB aB bB wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t zB 0B 1B 2B aB iB 3B bB","194":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B","33":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"578":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I","194":"VC WC XC YC ZC hB aC"},Q:{"194":"fC"},R:{"194":"gC"},S:{"2":"hC"}},B:7,C:"CSS Backdrop Filter"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js deleted file mode 100644 index f3d4fa2fe23145..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-background-offsets.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS background-position edge offsets"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js deleted file mode 100644 index 7deb78cb3f5e6c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-backgroundblendmode.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p nB oB"},D:{"1":"0 1 2 3 4 5 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u","260":"6"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E rB gB sB tB","132":"F G A uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h zB 0B 1B 2B aB iB 3B bB","260":"t"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","132":"F 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS background-blend-mode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js deleted file mode 100644 index ecc20e6d657c83..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxdecorationbreak.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","164":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB"},D:{"2":"I e J E F G A B C K L D M N O f g h","164":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J rB gB sB","164":"E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"2":"G zB 0B 1B 2B","129":"B C aB iB 3B bB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB 5B 6B","164":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"132":"NC"},I:{"2":"cB I OC PC QC RC jB","164":"H SC TC"},J:{"2":"E","164":"A"},K:{"2":"A","129":"B C aB iB bB","164":"S"},L:{"164":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"1":"hC"}},B:5,C:"CSS box-decoration-break"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js deleted file mode 100644 index 1ca1e368f32450..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-boxshadow.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","33":"nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I e J E F G"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","33":"e","164":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"4B jB","164":"gB"},H:{"2":"NC"},I:{"1":"I H RC jB SC TC","164":"cB OC PC QC"},J:{"1":"A","33":"E"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 Box-shadow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js deleted file mode 100644 index e8e3479b0c1ae0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-canvas.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"rB gB","33":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i j k l m n o p q r s t u"},G:{"33":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"H","33":"cB I OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"VC WC XC YC ZC hB aC bC cC dC eC","33":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS Canvas Drawings"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js deleted file mode 100644 index d6e729d8e46125..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-caret-color.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"CSS caret-color"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cascade-layers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cascade-layers.js deleted file mode 100644 index 51bf6efbc8a3c9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cascade-layers.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d nB oB","194":"H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB","322":"pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB","578":"yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Cascade Layers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js deleted file mode 100644 index f8ac23987e51f4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-case-insensitive.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:5,C:"Case-insensitive CSS attribute selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js deleted file mode 100644 index 3d29b97491087d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-clip-path.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N","260":"P Q T U V W X Y Z a b c R d H","3138":"O"},C:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","132":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","644":"7 8 9 AB BB CB DB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j","260":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","292":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"2":"I e J rB gB sB tB","292":"E F G A B C K L D uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","260":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","292":"0 1 D M N O f g h i j k l m n o p q r s t u v w x y z"},G:{"2":"gB 4B jB 5B 6B","292":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","260":"H","292":"SC TC"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","260":"S"},L:{"260":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"292":"UC"},P:{"292":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"292":"fC"},R:{"260":"gC"},S:{"644":"hC"}},B:4,C:"CSS clip-path property (for HTML)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js deleted file mode 100644 index 9f60ce1232d01a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-adjust.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","33":"P Q T U V W X Y Z a b c R d H"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"16":"I e J E F G A B C K L D M N O","33":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e rB gB sB","33":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"16":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"cB I OC PC QC RC jB SC TC","33":"H"},J:{"16":"E A"},K:{"2":"A B C aB iB bB","33":"S"},L:{"16":"H"},M:{"1":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"16":"gC"},S:{"1":"hC"}},B:5,C:"CSS color-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js deleted file mode 100644 index 129e8c6596d7b7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-color-function.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"D yB","2":"I e J E F G A rB gB sB tB uB vB","132":"B C K L hB aB bB wB xB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","132":"CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS color() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js deleted file mode 100644 index cd7dc8f63d5763..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-conic-gradients.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB nB oB","578":"WB XB YB ZB P Q T mB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","194":"dB JB eB KB LB S MB NB OB PB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Conical Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js deleted file mode 100644 index 35bf98ac136292..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-container-queries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R","194":"d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c","194":"d H fB pB qB","450":"R"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB zB 0B 1B 2B aB iB 3B bB","194":"P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS Container Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js deleted file mode 100644 index 903f7c36322d7b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-containment.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","194":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB"},D:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","66":"BB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B bB","66":"y z"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:2,C:"CSS Containment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js deleted file mode 100644 index 7bcea048400bf5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-content-visibility.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"W X Y Z a b c R d H","2":"C K L D M N O P Q T U V"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS content-visibility"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js deleted file mode 100644 index 467de74cdec2fa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-counters.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"J E kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS Counters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js deleted file mode 100644 index 5834f389ca7500..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-crisp-edges.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J kB","2340":"E F G A B"},B:{"2":"C K L D M N O","1025":"P Q T U V W X Y Z a b c R d H"},C:{"1":"d H fB","2":"lB cB nB","513":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R","545":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S oB"},D:{"2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","1025":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e rB gB sB","164":"J","4644":"E F G tB uB vB"},F:{"2":"G B D M N O f g h i j k l m n zB 0B 1B 2B aB iB","545":"C 3B bB","1025":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","4260":"5B 6B","4644":"F 7B 8B 9B AC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","1025":"H"},J:{"2":"E","4260":"A"},K:{"2":"A B aB iB","545":"C bB","1025":"S"},L:{"1025":"H"},M:{"545":"R"},N:{"2340":"A B"},O:{"1":"UC"},P:{"1025":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1025":"fC"},R:{"1025":"gC"},S:{"4097":"hC"}},B:7,C:"Crisp edges/pixelated images"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js deleted file mode 100644 index 1717e71562e351..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-cross-fade.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","33":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"I e J E F G A B C K L D M","33":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e rB gB","33":"J E F G sB tB uB vB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","33":"F 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","33":"H SC TC"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","33":"S"},L:{"33":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"2":"hC"}},B:4,C:"CSS Cross-Fade Function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js deleted file mode 100644 index f7782da2806dd2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-default-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB"},D:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"B C K L D hB aB bB wB xB yB","16":"I e rB gB","132":"J E F G A sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B zB 0B 1B 2B aB iB","132":"D M N O f g h i j k l m n o p q r s t u v w x","260":"C 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B 6B","132":"F 7B 8B 9B AC BC"},H:{"260":"NC"},I:{"1":"H","16":"cB OC PC QC","132":"I RC jB SC TC"},J:{"16":"E","132":"A"},K:{"1":"S","16":"A B C aB iB","260":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","132":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:7,C:":default CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js deleted file mode 100644 index c5632dd1a4b8a8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-descendant-gtgt.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O Q T U V W X Y Z a b c R d H","16":"P"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"B","2":"I e J E F G A C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Explicit descendant combinator >>"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js deleted file mode 100644 index 8ea8d8e5fb6718..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-deviceadaptation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","164":"A B"},B:{"66":"P Q T U V W X Y Z a b c R d H","164":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l m n o","66":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","66":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"292":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A S","292":"B C aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"164":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"66":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Device Adaptation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js deleted file mode 100644 index 42deb19d078cc7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-dir-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M nB oB","33":"0 1 2 3 4 5 6 7 8 N O f g h i j k l m n o p q r s t u v w x y z"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b","194":"c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"33":"hC"}},B:5,C:":dir() CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js deleted file mode 100644 index 642c78fc2d581d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-display-contents.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O","260":"P Q T U V W X Y Z"},C:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w nB oB","260":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S","260":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z"},E:{"2":"I e J E F G A B rB gB sB tB uB vB hB","260":"L D wB xB yB","772":"C K aB bB"},F:{"1":"XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB zB 0B 1B 2B aB iB 3B bB","260":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC","260":"D KC LC MC","772":"EC FC GC HC IC JC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"eC","2":"I VC WC XC YC","260":"ZC hB aC bC cC dC"},Q:{"260":"fC"},R:{"2":"gC"},S:{"260":"hC"}},B:5,C:"CSS display: contents"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js deleted file mode 100644 index b8fad5564bc2c0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-element-function.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","164":"lB cB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"33":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"33":"hC"}},B:5,C:"CSS element() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js deleted file mode 100644 index cf411c3a874447..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-env-function.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S nB oB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","132":"B"},F:{"1":"GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","132":"DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS Environment Variables env()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js deleted file mode 100644 index be95b32c49b60f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-exclusions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","33":"A B"},B:{"2":"P Q T U V W X Y Z a b c R d H","33":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"33":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Exclusions Level 1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js deleted file mode 100644 index ec41b0c665bd75..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-featurequeries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS Feature Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js deleted file mode 100644 index 2c79b4acf91d4a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filter-function.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB","33":"G"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B","33":"9B AC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS filter() function"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js deleted file mode 100644 index b43d83eb10f110..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-filters.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","1028":"K L D M N O","1346":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","196":"u","516":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t oB"},D:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N","33":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e rB gB sB","33":"J E F G tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"F 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","33":"SC TC"},J:{"2":"E","33":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","33":"I VC WC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS Filter Effects"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js deleted file mode 100644 index 90bc9874e43426..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-letter.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","16":"kB","516":"F","1540":"J E"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","132":"cB","260":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"e J E F","132":"I"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"e rB","132":"I gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","16":"G zB","260":"B 0B 1B 2B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"1":"NC"},I:{"1":"cB I H RC jB SC TC","16":"OC PC","132":"QC"},J:{"1":"E A"},K:{"1":"C S bB","260":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"::first-letter CSS pseudo-element selector"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js deleted file mode 100644 index a664ed242c73c0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-first-line.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","132":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS first-line pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js deleted file mode 100644 index da5ae47156bf8e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-fixed.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"E F G A B","2":"kB","8":"J"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB hB aB bB wB xB yB","1025":"vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","132":"5B 6B 7B"},H:{"2":"NC"},I:{"1":"cB H SC TC","260":"OC PC QC","513":"I RC jB"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS position:fixed"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js deleted file mode 100644 index 2c7d35def688f3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-visible.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"X Y Z a b c R d H","2":"C K L D M N O","328":"P Q T U V W"},C:{"1":"W X Y Z a b c R d H fB","2":"lB cB nB oB","161":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V"},D:{"1":"X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB","328":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB zB 0B 1B 2B aB iB 3B bB","328":"NB OB PB QB RB SB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"161":"hC"}},B:7,C:":focus-visible CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js deleted file mode 100644 index ab8bb94ec98133..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-focus-within.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB"},D:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","194":"dB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"6"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:7,C:":focus-within CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js deleted file mode 100644 index 0b5c646bd661b4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-rendering-controls.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","194":"6 7 8 9 AB BB CB DB EB FB GB HB"},D:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","66":"9 AB BB CB DB EB FB GB HB IB dB"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB","66":"0 1 2 3 4 5 6 w x y z"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I","66":"VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:5,C:"CSS font-display"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js deleted file mode 100644 index 1a5c0af6bede19..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-font-stretch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F nB oB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS font-stretch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js deleted file mode 100644 index eac468828abed1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gencontent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E kB","132":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS Generated content for pseudo-elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js deleted file mode 100644 index 395c1c48324947..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-gradients.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","260":"M N O f g h i j k l m n o p q r s t u v","292":"I e J E F G A B C K L D oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"A B C K L D M N O f g h i j k l","548":"I e J E F G"},E:{"2":"rB gB","260":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","292":"J sB","804":"I e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B","33":"C 3B","164":"aB iB"},G:{"260":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","292":"5B 6B","804":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H SC TC","33":"I RC jB","548":"cB OC PC QC"},J:{"1":"A","548":"E"},K:{"1":"S bB","2":"A B","33":"C","164":"aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js deleted file mode 100644 index efba7b84ca06f0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-grid.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","8":"G","292":"A B"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","292":"C K L D"},C:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O nB oB","8":"f g h i j k l m n o p q r s t u v w x y z","584":"0 1 2 3 4 5 6 7 8 9 AB BB","1025":"CB DB"},D:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k","8":"l m n o","200":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB","1025":"HB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e rB gB sB","8":"J E F G A tB uB vB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB","200":"0 1 2 3 o p q r s t u v w x y z"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","8":"F 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC","8":"jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"292":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"VC","8":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"CSS Grid Layout (level 1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js deleted file mode 100644 index d38045a949cc5c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hanging-punctuation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS hanging-punctuation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js deleted file mode 100644 index 3ffd97546df873..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-has.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:":has() CSS relational pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js deleted file mode 100644 index a0b36f5bed20b1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphenate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"16":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","16":"C K L D M N O"},C:{"16":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"16":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"16":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"16":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"16":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"16":"A B C S aB iB bB"},L:{"16":"H"},M:{"16":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"16":"fC"},R:{"16":"gC"},S:{"16":"hC"}},B:5,C:"CSS4 Hyphenation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js deleted file mode 100644 index 3bc13098f49a69..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-hyphens.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","33":"A B"},B:{"33":"C K L D M N O","132":"P Q T U V W X Y","260":"Z a b c R d H"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB","33":"0 1 2 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","132":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y"},E:{"2":"I e rB gB","33":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","132":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B","33":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"4":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I","132":"VC"},Q:{"2":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:5,C:"CSS Hyphenation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js deleted file mode 100644 index da45c90a25702d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-orientation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O P Q","257":"T U V W X Y Z"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l nB oB"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","257":"T U V W X Y Z"},E:{"1":"L D wB xB yB","2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB"},F:{"1":"PB QB RB SB TB","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB zB 0B 1B 2B aB iB 3B bB","257":"UB VB WB XB YB ZB P Q"},G:{"1":"D LC MC","132":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"cC dC eC","2":"I VC WC XC YC ZC hB aC bC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 image-orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js deleted file mode 100644 index 54d0b5f89a5c71..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-image-set.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","164":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W nB oB","66":"X Y","257":"a b c R d H fB","772":"Z"},D:{"2":"I e J E F G A B C K L D M N O f g","164":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e rB gB sB","132":"A B C K hB aB bB wB","164":"J E F G tB uB vB","516":"L D xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB 5B","132":"BC CC DC EC FC GC HC IC JC KC","164":"F 6B 7B 8B 9B AC","516":"D LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","164":"H SC TC"},J:{"2":"E","164":"A"},K:{"2":"A B C aB iB bB","164":"S"},L:{"164":"H"},M:{"257":"R"},N:{"2":"A B"},O:{"164":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"2":"hC"}},B:5,C:"CSS image-set"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js deleted file mode 100644 index 5788b11ec138de..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-in-out-of-range.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C","260":"K L D M N O"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","516":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z"},D:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I","16":"e J E F G A B C K L","260":"CB","772":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I rB gB","16":"e","772":"J E F G A sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G zB","260":"B C z 0B 1B 2B aB iB 3B bB","772":"D M N O f g h i j k l m n o p q r s t u v w x y"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","772":"F 5B 6B 7B 8B 9B AC BC"},H:{"132":"NC"},I:{"1":"H","2":"cB OC PC QC","260":"I RC jB SC TC"},J:{"2":"E","260":"A"},K:{"1":"S","260":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","260":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"516":"hC"}},B:5,C:":in-range and :out-of-range CSS pseudo-classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js deleted file mode 100644 index cb2563da027abd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-indeterminate-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"A B","388":"G"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB","132":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","388":"I e"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","132":"D M N O f g h i j k l m n o p q r s t u v w x y"},E:{"1":"B C K L D hB aB bB wB xB yB","16":"I e J rB gB","132":"E F G A tB uB vB","388":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B zB 0B 1B 2B aB iB","132":"D M N O f g h i j k l","516":"C 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B 6B","132":"F 7B 8B 9B AC BC"},H:{"516":"NC"},I:{"1":"H","16":"cB OC PC QC TC","132":"SC","388":"I RC jB"},J:{"16":"E","132":"A"},K:{"1":"S","16":"A B C aB iB","516":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"132":"hC"}},B:7,C:":indeterminate CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js deleted file mode 100644 index b46f5b68d02ef9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-letter.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F rB gB sB tB uB","4":"G","164":"A B C K L D vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B","164":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Initial Letter"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js deleted file mode 100644 index f294987505185b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-initial-value.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"I e J E F G A B C K L D M N O nB oB","164":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS initial value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js deleted file mode 100644 index b5f3262f62d18c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-letter-spacing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","16":"kB","132":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","16":"rB","132":"I e J gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G zB","132":"B C D M 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"2":"NC"},I:{"1":"H SC TC","16":"OC PC","132":"cB I QC RC jB"},J:{"132":"E A"},K:{"1":"S","132":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"letter-spacing CSS property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js deleted file mode 100644 index ac1949bae0bc88..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-line-clamp.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M","33":"P Q T U V W X Y Z a b c R d H","129":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB nB oB","33":"PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"16":"I e J E F G A B C K","33":"0 1 2 3 4 5 6 7 8 9 L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I rB gB","33":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB","33":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"OC PC","33":"cB I H QC RC jB SC TC"},J:{"33":"E A"},K:{"2":"A B C aB iB bB","33":"S"},L:{"33":"H"},M:{"33":"R"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"2":"hC"}},B:5,C:"CSS line-clamp"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js deleted file mode 100644 index b32f5853c24f9b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-logical-props.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O","2052":"Y Z","3588":"P Q T U V W X"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","164":"0 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"a b c R d H fB pB qB","292":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB","2052":"Y Z","3588":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X"},E:{"1":"D yB","292":"I e J E F G A B C rB gB sB tB uB vB hB aB","2052":"xB","3588":"K L bB wB"},F:{"1":"XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","292":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","2052":"VB WB","3588":"GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB"},G:{"1":"D","292":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC","2052":"MC","3588":"GC HC IC JC KC LC"},H:{"2":"NC"},I:{"1":"H","292":"cB I OC PC QC RC jB SC TC"},J:{"292":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"292":"UC"},P:{"1":"eC","292":"I VC WC XC YC ZC","3588":"hB aC bC cC dC"},Q:{"3588":"fC"},R:{"3588":"gC"},S:{"3588":"hC"}},B:5,C:"CSS Logical Properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js deleted file mode 100644 index fb20e5ff591574..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-marker-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"X Y Z a b c R d H","2":"C K L D M N O P Q T U V W"},C:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB nB oB"},D:{"1":"X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W"},E:{"2":"I e J E F G A B rB gB sB tB uB vB hB","129":"C K L D aB bB wB xB yB"},F:{"1":"TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS ::marker pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js deleted file mode 100644 index a4aa7d1284eae4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-masks.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M","164":"P Q T U V W X Y Z a b c R d H","3138":"N","12292":"O"},C:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","260":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB"},D:{"164":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"rB gB","164":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"164":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"164":"H SC TC","676":"cB I OC PC QC RC jB"},J:{"164":"E A"},K:{"2":"A B C aB iB bB","164":"S"},L:{"164":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"164":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"260":"hC"}},B:4,C:"CSS Masks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js deleted file mode 100644 index dc9c892c3fca45..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-matches-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"Z a b c R d H","2":"C K L D M N O","1220":"P Q T U V W X Y"},C:{"1":"ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB","548":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB"},D:{"1":"Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S","196":"MB NB OB","1220":"PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y"},E:{"1":"L D xB yB","2":"I rB gB","16":"e","164":"J E F sB tB uB","260":"G A B C K vB hB aB bB wB"},F:{"1":"WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB","196":"CB DB EB","1220":"FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB"},G:{"1":"D LC MC","16":"gB 4B jB 5B 6B","164":"F 7B 8B","260":"9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"1":"H","16":"cB OC PC QC","164":"I RC jB SC TC"},J:{"16":"E","164":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"164":"UC"},P:{"1":"eC","164":"I VC WC XC YC ZC hB aC bC cC dC"},Q:{"1220":"fC"},R:{"164":"gC"},S:{"548":"hC"}},B:5,C:":is() CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js deleted file mode 100644 index 47a5832d916686..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-math-functions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB nB oB"},D:{"1":"P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB"},E:{"1":"L D wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB","132":"C K aB bB"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC","132":"EC FC GC HC IC JC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I VC WC XC YC ZC hB aC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS math functions min(), max() and clamp()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js deleted file mode 100644 index 8a9062e0999103..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-interaction.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Media Queries: interaction media features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js deleted file mode 100644 index 8293b250a4b970..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-resolution.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","260":"I e J E F G A B C K L D nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","548":"I e J E F G A B C K L D M N O f g h i j k l m n o"},E:{"2":"rB gB","548":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G","548":"B C zB 0B 1B 2B aB iB 3B"},G:{"16":"gB","548":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"132":"NC"},I:{"1":"H SC TC","16":"OC PC","548":"cB I QC RC jB"},J:{"548":"E A"},K:{"1":"S bB","548":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Media Queries: resolution feature"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js deleted file mode 100644 index d940fedb11f1d7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-media-scripting.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"16":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB","16":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H","16":"fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Media Queries: scripting media feature"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js deleted file mode 100644 index c8ed3774451f6c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mediaqueries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"8":"J E F kB","129":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","129":"I e J E F G A B C K L D M N O f g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","129":"I e J sB","388":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","129":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"H SC TC","129":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS3 Media Queries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js deleted file mode 100644 index 1880b0bc0521bb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-mixblendmode.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o","194":"0 p q r s t u v w x y z"},E:{"2":"I e J E rB gB sB tB","260":"F G A B C K L D uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB 5B 6B 7B","260":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Blending of HTML/SVG elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js deleted file mode 100644 index d604b04982c002..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-motion-paths.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB nB oB"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"3 4 5"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB","194":"q r s"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"CSS Motion Path"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js deleted file mode 100644 index 6876ef207cad5f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-namespaces.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS namespaces"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nesting.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nesting.js deleted file mode 100644 index 951701243ad82e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nesting.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Nesting"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js deleted file mode 100644 index 4c5c0098c223cc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-not-sel-list.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"Z a b c R d H","2":"C K L D M N O Q T U V W X Y","16":"P"},C:{"1":"V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U nB oB"},D:{"1":"Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"eC","2":"I VC WC XC YC ZC hB aC bC cC dC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"selector list argument of :not()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js deleted file mode 100644 index dd08d486e89d25..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-nth-child-of.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"selector list argument of :nth-child and :nth-last-child CSS pseudo-classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js deleted file mode 100644 index ed532678e683b3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-opacity.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","4":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS3 Opacity"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js deleted file mode 100644 index df5981a1a51413..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-optional-pseudo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G zB","132":"B C 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"132":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","132":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:":optional CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js deleted file mode 100644 index 49abbf55044f97..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-anchor.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB nB oB"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"CSS overflow-anchor (Scroll Anchoring)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js deleted file mode 100644 index 15d2eec66fc84f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow-overlay.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"I e J E F G A B sB tB uB vB hB aB","16":"rB gB","130":"C K L D bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC","16":"gB","130":"D FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"CSS overflow: overlay"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js deleted file mode 100644 index c7f2a7454c3bd8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overflow.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"388":"J E F G A B kB"},B:{"1":"b c R d H","260":"P Q T U V W X Y Z a","388":"C K L D M N O"},C:{"1":"T mB U V W X Y Z a b c R d H fB","260":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","388":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB nB oB"},D:{"1":"b c R d H fB pB qB","260":"PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a","388":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB"},E:{"1":"yB","260":"L D wB xB","388":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB"},F:{"260":"FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","388":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB zB 0B 1B 2B aB iB 3B bB"},G:{"260":"D KC LC MC","388":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"388":"NC"},I:{"1":"H","388":"cB I OC PC QC RC jB SC TC"},J:{"388":"E A"},K:{"1":"S","388":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"388":"A B"},O:{"388":"UC"},P:{"1":"eC","388":"I VC WC XC YC ZC hB aC bC cC dC"},Q:{"388":"fC"},R:{"388":"gC"},S:{"388":"hC"}},B:5,C:"CSS overflow property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js deleted file mode 100644 index ab611c186284c3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-overscroll-behavior.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N","516":"O"},C:{"1":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB nB oB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB","260":"LB S"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB yB","1090":"xB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","260":"AB BB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS overscroll-behavior"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js deleted file mode 100644 index d9d524e87dc746..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-page-break.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"388":"A B","900":"J E F G kB"},B:{"388":"C K L D M N O","900":"P Q T U V W X Y Z a b c R d H"},C:{"772":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","900":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S nB oB"},D:{"900":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"772":"A","900":"I e J E F G B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"16":"G zB","129":"B C 0B 1B 2B aB iB 3B bB","900":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"900":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"129":"NC"},I:{"900":"cB I H OC PC QC RC jB SC TC"},J:{"900":"E A"},K:{"129":"A B C aB iB bB","900":"S"},L:{"900":"H"},M:{"900":"R"},N:{"388":"A B"},O:{"900":"UC"},P:{"900":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"900":"fC"},R:{"900":"gC"},S:{"900":"hC"}},B:2,C:"CSS page-break properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js deleted file mode 100644 index b07243f96aac76..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paged-media.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","132":"F G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M N O nB oB","132":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","132":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"16":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"16":"A B C S aB iB bB"},L:{"1":"H"},M:{"132":"R"},N:{"258":"A B"},O:{"258":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"132":"hC"}},B:5,C:"CSS Paged Media (@page)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js deleted file mode 100644 index 6cf063100375c0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-paint-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S"},E:{"2":"I e J E F G A B C rB gB sB tB uB vB hB aB","194":"K L D bB wB xB yB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Paint API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js deleted file mode 100644 index f61b39c12f9284..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder-shown.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","292":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","164":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"164":"hC"}},B:5,C:":placeholder-shown CSS pseudo-class"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js deleted file mode 100644 index 9fb9c1e5e066d0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-placeholder.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","36":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O nB oB","33":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","36":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I rB gB","36":"e J E F G A sB tB uB vB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","36":"0 1 2 3 D M N O f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B","36":"F jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","36":"cB I OC PC QC RC jB SC TC"},J:{"36":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","36":"I VC WC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"33":"hC"}},B:5,C:"::placeholder CSS pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js deleted file mode 100644 index 0e4ed263fc4c0f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-read-only-write.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB","33":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","132":"D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","16":"rB gB","132":"I e J E F sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B zB 0B 1B 2B aB","132":"C D M N O f g h i iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B","132":"F jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","16":"OC PC","132":"cB I QC RC jB SC TC"},J:{"1":"A","132":"E"},K:{"1":"S","2":"A B aB","132":"C iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"33":"hC"}},B:1,C:"CSS :read-only and :read-write selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js deleted file mode 100644 index 4280c5aa2e3fa1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rebeccapurple.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB","16":"tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Rebeccapurple color"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js deleted file mode 100644 index 0c0c1364506f8d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-reflections.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","33":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"rB gB","33":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"33":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"33":"cB I H OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"2":"A B C aB iB bB","33":"S"},L:{"33":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"2":"hC"}},B:7,C:"CSS Reflections"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js deleted file mode 100644 index 177c17fe3e531b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-regions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","420":"A B"},B:{"2":"P Q T U V W X Y Z a b c R d H","420":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","36":"D M N O","66":"f g h i j k l m n o p q r s t u"},E:{"2":"I e J C K L D rB gB sB aB bB wB xB yB","33":"E F G A B tB uB vB hB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"D gB 4B jB 5B 6B EC FC GC HC IC JC KC LC MC","33":"F 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"420":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Regions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js deleted file mode 100644 index 68399ee288a3b3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-repeating-gradients.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","33":"I e J E F G A B C K L D oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G","33":"A B C K L D M N O f g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB","33":"J sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B","33":"C 3B","36":"aB iB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","33":"5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB OC PC QC","33":"I RC jB"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B","33":"C","36":"aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS Repeating Gradients"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js deleted file mode 100644 index 2a75266efce810..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-resize.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B","132":"bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:4,C:"CSS resize property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js deleted file mode 100644 index fd46a60925ae29..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-revert-value.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"V W X Y Z a b c R d H","2":"C K L D M N O P Q T U"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB nB oB"},D:{"1":"V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS revert value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js deleted file mode 100644 index 3d286e00e85874..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-rrggbbaa.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB","194":"CB DB EB FB GB HB IB dB JB eB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y zB 0B 1B 2B aB iB 3B bB","194":"0 1 2 3 4 5 6 7 8 9 z AB BB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I","194":"VC WC XC"},Q:{"2":"fC"},R:{"194":"gC"},S:{"2":"hC"}},B:7,C:"#rrggbbaa hex color notation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js deleted file mode 100644 index 73d1d62cfb8284..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-behavior.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","129":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB"},D:{"2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","129":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","450":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB wB","578":"L D xB yB"},F:{"2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB","129":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","450":"0 1 2 3 4 5 6 7 o p q r s t u v w x y z"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"129":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"129":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSSOM Scroll-behavior"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js deleted file mode 100644 index 8964c09428015e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scroll-timeline.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a","194":"b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V","194":"Z a b c R d H fB pB qB","322":"W X Y"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB","194":"WB XB YB ZB P Q","322":"UB VB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS @scroll-timeline"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js deleted file mode 100644 index a9d95abe5ac4b4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-scrollbar.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"2":"C K L D M N O","292":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB nB oB","3074":"LB","4100":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"292":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"16":"I e rB gB","292":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","292":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"16":"gB 4B jB 5B 6B","292":"7B","804":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"OC PC","292":"cB I H QC RC jB SC TC"},J:{"292":"E A"},K:{"2":"A B C aB iB bB","292":"S"},L:{"292":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"292":"UC"},P:{"292":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"292":"fC"},R:{"292":"gC"},S:{"2":"hC"}},B:7,C:"CSS scrollbar styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js deleted file mode 100644 index dba37f6143e9e2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"E F G A B","2":"kB","8":"J"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS 2.1 selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js deleted file mode 100644 index 900431d46f460b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sel3.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J","132":"E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","2":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS3 selectors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js deleted file mode 100644 index 9f7e0cd4d33ad8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-selection.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"C S iB bB","16":"A B aB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"33":"hC"}},B:5,C:"::selection CSS pseudo-element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js deleted file mode 100644 index 67e4bffaee6425..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-shapes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB nB oB","322":"BB CB DB EB FB GB HB IB dB JB eB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t","194":"u v w"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E rB gB sB tB","33":"F G A uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","33":"F 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:4,C:"CSS Shapes Level 1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js deleted file mode 100644 index d53f6849987299..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-snappoints.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","6308":"A","6436":"B"},B:{"1":"P Q T U V W X Y Z a b c R d H","6436":"C K L D M N O"},C:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y nB oB","2052":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB","8258":"NB OB PB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F rB gB sB tB uB","3108":"G A vB hB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB","8258":"EB FB GB HB IB JB KB LB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B","3108":"9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2052":"hC"}},B:4,C:"CSS Scroll Snap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js deleted file mode 100644 index 5a92cc775ed782..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-sticky.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"c R d H","2":"C K L D","1028":"P Q T U V W X Y Z a b","4100":"M N O"},C:{"1":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l nB oB","194":"m n o p q r","516":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB"},D:{"1":"c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i x y z AB BB","322":"j k l m n o p q r s t u v w CB DB EB FB","1028":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b"},E:{"1":"K L D wB xB yB","2":"I e J rB gB sB","33":"F G A B C uB vB hB aB bB","2084":"E tB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y zB 0B 1B 2B aB iB 3B bB","322":"0 1 z","1028":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"F 8B 9B AC BC CC DC EC FC GC","2084":"6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1028":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1028":"fC"},R:{"2":"gC"},S:{"516":"hC"}},B:5,C:"CSS position:sticky"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js deleted file mode 100644 index e50c12ca10d210..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-subgrid.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Subgrid"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js deleted file mode 100644 index 42963464a3d990..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-supports-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","260":"C K L D M N O"},C:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f nB oB","66":"g h","260":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n","260":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B","132":"bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"132":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB","132":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS.supports() API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js deleted file mode 100644 index b76546e16e89f7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-table.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"J E kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","132":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS Table display"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js deleted file mode 100644 index 4ba9ec050d9c71..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-align-last.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","4":"C K L D M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B nB oB","33":"0 1 2 3 4 5 6 7 8 C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u","322":"0 1 2 3 4 5 6 v w x y z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h zB 0B 1B 2B aB iB 3B bB","578":"i j k l m n o p q r s t"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"1":"gC"},S:{"33":"hC"}},B:5,C:"CSS3 text-align-last"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js deleted file mode 100644 index 2fefdc4e9daae2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-indent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"132":"C K L D M N O","388":"P Q T U V W X Y Z a b c R d H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"132":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x","388":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"132":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"132":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB","388":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"132":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"132":"NC"},I:{"132":"cB I OC PC QC RC jB SC TC","388":"H"},J:{"132":"E A"},K:{"132":"A B C aB iB bB","388":"S"},L:{"388":"H"},M:{"132":"R"},N:{"132":"A B"},O:{"132":"UC"},P:{"132":"I","388":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"388":"fC"},R:{"388":"gC"},S:{"132":"hC"}},B:5,C:"CSS text-indent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js deleted file mode 100644 index 015e40334a5b05..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-justify.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"16":"J E kB","132":"F G A B"},B:{"132":"C K L D M N O","322":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB nB oB","1025":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","1602":"EB"},D:{"2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","322":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB","322":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","322":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","322":"S"},L:{"322":"H"},M:{"1025":"R"},N:{"132":"A B"},O:{"2":"UC"},P:{"2":"I","322":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"322":"fC"},R:{"322":"gC"},S:{"2":"hC"}},B:5,C:"CSS text-justify"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js deleted file mode 100644 index a77fa2897958ee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-orientation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB","194":"0 y z"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"L D xB yB","2":"I e J E F G rB gB sB tB uB vB","16":"A","33":"B C K hB aB bB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS text-orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js deleted file mode 100644 index 1905ee515adb94..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-text-spacing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","161":"F G A B"},B:{"2":"P Q T U V W X Y Z a b c R d H","161":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"16":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"CSS Text 4 text-spacing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js deleted file mode 100644 index e98bca41eb3b2f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-textshadow.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","129":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","129":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","260":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"4":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"A","4":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 Text-shadow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js deleted file mode 100644 index e69d25a2061eb6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action-2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"B","164":"A"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","260":"FB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","260":"2"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"132":"B","164":"A"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"CSS touch-action level 2 values"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js deleted file mode 100644 index 7747a891b30e24..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-touch-action.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G kB","289":"A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","194":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB","1025":"CB DB EB FB GB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B","516":"AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","289":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"194":"hC"}},B:2,C:"CSS touch-action property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js deleted file mode 100644 index d74f9b406c540f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-transitions.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"e J E F G A B C K L D","164":"I"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I e J E F G A B C K L D M N O f g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","33":"J sB","164":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G zB 0B","33":"C","164":"B 1B 2B aB iB 3B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"6B","164":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"H SC TC","33":"cB I OC PC QC RC jB"},J:{"1":"A","33":"E"},K:{"1":"S bB","33":"C","164":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS3 Transitions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js deleted file mode 100644 index af38b2e4fdaa20..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unicode-bidi.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z","132":"lB cB I e J E F G nB oB","292":"A B C K L D M"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M","548":"0 1 2 3 4 5 6 7 N O f g h i j k l m n o p q r s t u v w x y z"},E:{"132":"I e J E F rB gB sB tB uB","548":"G A B C K L D vB hB aB bB wB xB yB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"132":"F gB 4B jB 5B 6B 7B 8B","548":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"1":"H","16":"cB I OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"1":"S","16":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"16":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"16":"fC"},R:{"16":"gC"},S:{"33":"hC"}},B:4,C:"CSS unicode-bidi property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js deleted file mode 100644 index 5278ecb112992f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-unset-value.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS unset value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js deleted file mode 100644 index c097db93fb8151..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-variables.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L","260":"D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"8"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB","260":"vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u zB 0B 1B 2B aB iB 3B bB","194":"v"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B","260":"AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"CSS Variables (Custom Properties)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js deleted file mode 100644 index 743eec3edf267d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-widows-orphans.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E kB","129":"F G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","129":"G B zB 0B 1B 2B aB iB 3B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:2,C:"CSS widows & orphans"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js deleted file mode 100644 index 1f0388c2a0aa90..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-writing-mode.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB","322":"0 w x y z"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J","16":"E","33":"0 1 2 3 4 5 6 7 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D aB bB wB xB yB","2":"I rB gB","16":"e","33":"J E F G A sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i j k l m n o p q r s t u"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB","33":"F 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"OC PC QC","33":"cB I RC jB SC TC"},J:{"33":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","33":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS writing-mode property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js deleted file mode 100644 index 8aaed2947136f6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css-zoom.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E kB","129":"F G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"CSS zoom"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js deleted file mode 100644 index c83589c22b2b59..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-attr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"CSS3 attr() function for all properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js deleted file mode 100644 index 06fc524e6ae45d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-boxsizing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","8":"J E kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I e J E F G"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","33":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"gB 4B jB"},H:{"1":"NC"},I:{"1":"I H RC jB SC TC","33":"cB OC PC QC"},J:{"1":"A","33":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS3 Box-sizing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js deleted file mode 100644 index 9991d4fd4b1261..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-colors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","4":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","2":"G","4":"zB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS3 Colors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js deleted file mode 100644 index 5ca2d1d8c6f453..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-grab.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"lB cB I e J E F G A B C K L D M N O f g h i j k l m nB oB"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB"},E:{"1":"B C K L D aB bB wB xB yB","33":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"C FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:3,C:"CSS grab & grabbing cursors"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js deleted file mode 100644 index 08bd4c9046ebe2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors-newer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"lB cB I e J E F G A B C K L D M N O f g h i j nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","33":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB","33":"D M N O f g h i j"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"CSS3 Cursors: zoom-in & zoom-out"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js deleted file mode 100644 index 03616345f755fb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-cursors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","132":"J E F kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","260":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","4":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","4":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","260":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","16":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"CSS3 Cursors (original values)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js deleted file mode 100644 index 9e6e1b2b8b18f5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/css3-tabsize.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"c R d H fB","2":"lB cB nB oB","33":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b","164":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g","132":"0 1 h i j k l m n o p q r s t u v w x y z"},E:{"1":"L D wB xB yB","2":"I e J rB gB sB","132":"E F G A B C K tB uB vB hB aB bB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B 1B","132":"D M N O f g h i j k l m n o","164":"B C 2B aB iB 3B bB"},G:{"1":"D KC LC MC","2":"gB 4B jB 5B 6B","132":"F 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"164":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","132":"SC TC"},J:{"132":"E A"},K:{"1":"S","2":"A","164":"B C aB iB bB"},L:{"1":"H"},M:{"33":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"164":"hC"}},B:5,C:"CSS3 tab-size"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js deleted file mode 100644 index 976d8bc043f4d0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/currentcolor.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS currentColor value"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js deleted file mode 100644 index 7d6fc990c68f1b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elements.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","8":"A B"},B:{"1":"P","2":"Q T U V W X Y Z a b c R d H","8":"C K L D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","66":"j k l m n o p","72":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","2":"I e J E F G A B C K L D M N O f g h i j k l m Q T U V W X Y Z a b c R d H fB pB qB","66":"n o p q r s"},E:{"2":"I e rB gB sB","8":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB","2":"G B C OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","66":"D M N O f"},G:{"2":"gB 4B jB 5B 6B","8":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"TC","2":"cB I H OC PC QC RC jB SC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC","2":"cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"72":"hC"}},B:7,C:"Custom Elements (deprecated V0 spec)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js deleted file mode 100644 index 7456cd9dfbcc1f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/custom-elementsv1.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","8":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","8":"C K L D M N O"},C:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p nB oB","8":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z","456":"AB BB CB DB EB FB GB HB IB","712":"dB JB eB KB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB","8":"CB DB","132":"EB FB GB HB IB dB JB eB KB LB S MB NB"},E:{"2":"I e J E rB gB sB tB uB","8":"F G A vB","132":"B C K L D hB aB bB wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","132":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","132":"D CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I","132":"VC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"8":"hC"}},B:1,C:"Custom Elements (V1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js deleted file mode 100644 index 76c74caa0f2d1c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/customevent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB","132":"J E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I","16":"e J E F K L","388":"G A B C"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I rB gB","16":"e J","388":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G zB 0B 1B 2B","132":"B aB iB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"4B","16":"gB jB","388":"5B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"OC PC QC","388":"cB I RC jB"},J:{"1":"A","388":"E"},K:{"1":"C S bB","2":"A","132":"B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"CustomEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js deleted file mode 100644 index cabf4e12ec733e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datalist.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F G","260":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","260":"C K L D","1284":"M N O"},C:{"8":"lB cB nB oB","4612":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I e J E F G A B C K L D M N O f","132":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB"},E:{"1":"K L D bB wB xB yB","8":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"1":"G B C S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"8":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC","2049":"D GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H TC","8":"cB I OC PC QC RC jB SC"},J:{"1":"A","8":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"516":"R"},N:{"8":"A B"},O:{"8":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"Datalist element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js deleted file mode 100644 index d782bdb03022a1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dataset.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","4":"J E F G A kB"},B:{"1":"C K L D M","129":"N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","4":"lB cB I e nB oB","129":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB","4":"I e J","129":"0 1 2 3 4 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"4":"I e rB gB","129":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 C s t u v w x y z aB iB 3B bB","4":"G B zB 0B 1B 2B","129":"2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"4":"gB 4B jB","129":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"4":"NC"},I:{"4":"OC PC QC","129":"cB I H RC jB SC TC"},J:{"129":"E A"},K:{"1":"C aB iB bB","4":"A B","129":"S"},L:{"129":"H"},M:{"129":"R"},N:{"1":"B","4":"A"},O:{"129":"UC"},P:{"129":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"129":"gC"},S:{"1":"hC"}},B:1,C:"dataset & data-* attributes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js deleted file mode 100644 index b5693e78cccb84..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/datauri.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","132":"F","260":"G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","260":"C K D M N O","772":"L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Data URIs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js deleted file mode 100644 index bedf0808266a08..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/date-tolocaledatestring.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"16":"kB","132":"J E F G A B"},B:{"1":"O P Q T U V W X Y Z a b c R d H","132":"C K L D M N"},C:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","260":"CB DB EB FB","772":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB"},D:{"1":"RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j","260":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB","772":"k l m n o p q r s t u v w x"},E:{"1":"C K L D bB wB xB yB","16":"I e rB gB","132":"J E F G A sB tB uB vB","260":"B hB aB"},F:{"1":"HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B C zB 0B 1B 2B aB iB 3B","132":"bB","260":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","772":"D M N O f g h i j k"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B","132":"F 6B 7B 8B 9B AC BC"},H:{"132":"NC"},I:{"1":"H","16":"cB OC PC QC","132":"I RC jB","772":"SC TC"},J:{"132":"E A"},K:{"1":"S","16":"A B C aB iB","132":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"260":"UC"},P:{"1":"ZC hB aC bC cC dC eC","260":"I VC WC XC YC"},Q:{"260":"fC"},R:{"132":"gC"},S:{"132":"hC"}},B:6,C:"Date.prototype.toLocaleDateString"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/decorators.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/decorators.js deleted file mode 100644 index b2346c71a59804..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/decorators.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Decorators"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js deleted file mode 100644 index 5405a33c4b2c34..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/details.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"G A B kB","8":"J E F"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","8":"0 1 2 3 4 5 6 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","194":"7 8"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I e J E F G A B","257":"f g h i j k l m n o p q r s t u v","769":"C K L D M N O"},E:{"1":"C K L D bB wB xB yB","8":"I e rB gB sB","257":"J E F G A tB uB vB","1025":"B hB aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"C aB iB 3B bB","8":"G B zB 0B 1B 2B"},G:{"1":"F D 6B 7B 8B 9B AC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB 5B","1025":"BC CC DC"},H:{"8":"NC"},I:{"1":"I H RC jB SC TC","8":"cB OC PC QC"},J:{"1":"A","8":"E"},K:{"1":"S","8":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"769":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Details & Summary elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js deleted file mode 100644 index 757c3148f65685..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/deviceorientation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"C K L D M N O","4":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB nB","4":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"I e oB"},D:{"2":"I e J","4":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","4":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B","4":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"OC PC QC","4":"cB I H RC jB SC TC"},J:{"2":"E","4":"A"},K:{"1":"C bB","2":"A B aB iB","4":"S"},L:{"4":"H"},M:{"4":"R"},N:{"1":"B","2":"A"},O:{"4":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"4":"gC"},S:{"4":"hC"}},B:4,C:"DeviceOrientation & DeviceMotion events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js deleted file mode 100644 index cdb094e10259b7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/devicepixelratio.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Window.devicePixelRatio"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js deleted file mode 100644 index 521a103b4b42d7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dialog.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB","194":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","1218":"Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r","322":"s t u v w"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O zB 0B 1B 2B aB iB 3B bB","578":"f g h i j"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"Dialog element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js deleted file mode 100644 index a0e100044d2f33..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dispatchevent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","16":"kB","129":"G A","130":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","129":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"EventTarget.dispatchEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js deleted file mode 100644 index d45393a87580d5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dnssec.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"132":"J E F G A B kB"},B:{"132":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"132":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"132":"0 1 2 3 4 5 6 7 8 9 I e r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","388":"J E F G A B C K L D M N O f g h i j k l m n o p q"},E:{"132":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"132":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"132":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"132":"NC"},I:{"132":"cB I H OC PC QC RC jB SC TC"},J:{"132":"E A"},K:{"132":"A B C S aB iB bB"},L:{"132":"H"},M:{"132":"R"},N:{"132":"A B"},O:{"132":"UC"},P:{"132":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"132":"hC"}},B:6,C:"DNSSEC and DANE"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js deleted file mode 100644 index 863b8fc89ba3f9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/do-not-track.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","164":"G A","260":"B"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","260":"C K L D M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F nB oB","516":"G A B C K L D M N O f g h i j k l m n o p q r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i"},E:{"1":"J A B C sB vB hB aB","2":"I e K L D rB gB bB wB xB yB","1028":"E F G tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B"},G:{"1":"9B AC BC CC DC EC FC","2":"D gB 4B jB 5B 6B GC HC IC JC KC LC MC","1028":"F 7B 8B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"16":"E","1028":"A"},K:{"1":"S bB","16":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"164":"A","260":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Do Not Track API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js deleted file mode 100644 index ddf0439ae95bf9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-currentscript.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"document.currentScript"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js deleted file mode 100644 index 3ed9941eb1554f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-evaluate-xpath.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","16":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"document.evaluate & XPath"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js deleted file mode 100644 index 6623cf18c45aac..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-execcommand.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","16":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","16":"G zB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B","16":"jB 5B 6B"},H:{"2":"NC"},I:{"1":"H RC jB SC TC","2":"cB I OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"Document.execCommand()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js deleted file mode 100644 index 932dfed68c4e9f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-policy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V","132":"W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V","132":"W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB zB 0B 1B 2B aB iB 3B bB","132":"SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","132":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","132":"S"},L:{"132":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Document Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js deleted file mode 100644 index fd80a8fc4ba2fb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/document-scrollingelement.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","16":"C K"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"document.scrollingElement"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js deleted file mode 100644 index edc3cf7d7fae69..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/documenthead.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB","16":"e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G zB 0B 1B 2B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"document.head"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js deleted file mode 100644 index e690e99b0bc9ca..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-manip-convenience.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB","194":"CB DB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"0"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"194":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"DOM manipulation convenience methods"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js deleted file mode 100644 index a94cad57727e25..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dom-range.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Document Object Model Range"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js deleted file mode 100644 index 0cc7bb7eddd1e0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domcontentloaded.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"DOMContentLoaded"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js deleted file mode 100644 index 6a5c4542666cf3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/domfocusin-domfocusout-events.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L D M N O f g h i j k l"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB","16":"e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","16":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B 6B"},H:{"16":"NC"},I:{"1":"I H RC jB SC TC","16":"cB OC PC QC"},J:{"16":"E A"},K:{"1":"S","16":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"DOMFocusIn & DOMFocusOut events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js deleted file mode 100644 index bb094367c1ad9d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dommatrix.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"132":"C K L D M N O","1028":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","1028":"QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2564":"0 1 2 3 4 5 6 7 8 t u v w x y z","3076":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB"},D:{"16":"I e J E","132":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB","388":"F","1028":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"16":"I rB gB","132":"e J E F G A sB tB uB vB hB","1028":"B C K L D aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 D M N O f g h i j k l m n o p q r s t u v w x y z","1028":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"16":"gB 4B jB","132":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"132":"I RC jB SC TC","292":"cB OC PC QC","1028":"H"},J:{"16":"E","132":"A"},K:{"2":"A B C aB iB bB","1028":"S"},L:{"1028":"H"},M:{"1028":"R"},N:{"132":"A B"},O:{"132":"UC"},P:{"132":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"2564":"hC"}},B:4,C:"DOMMatrix"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js deleted file mode 100644 index b8e3b61d38b1cc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/download.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Download attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js deleted file mode 100644 index 75739e35dd66ea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/dragndrop.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"644":"J E F G kB","772":"A B"},B:{"1":"O P Q T U V W X Y Z a b c R d H","260":"C K L D M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","8":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","8":"G B zB 0B 1B 2B aB iB 3B"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","1025":"H"},J:{"2":"E A"},K:{"1":"bB","8":"A B C aB iB","1025":"S"},L:{"1025":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"Drag and Drop"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js deleted file mode 100644 index 0f00337d5fa507..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-closest.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Element.closest()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js deleted file mode 100644 index 2f27cb2fc551c0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-from-point.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","16":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","16":"G zB 0B 1B 2B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"C S bB","16":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"document.elementFromPoint()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js deleted file mode 100644 index e815084c903a0f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/element-scroll-methods.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB"},E:{"1":"L D xB yB","2":"I e J E F G rB gB sB tB uB vB","132":"A B C K hB aB bB wB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC","132":"BC CC DC EC FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:5,C:"Scroll methods on elements (scroll, scrollTo, scrollBy)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js deleted file mode 100644 index f9de3a16328c06..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eme.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","164":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u","132":"0 1 v w x y z"},E:{"1":"C K L D bB wB xB yB","2":"I e J rB gB sB tB","164":"E F G A B uB vB hB aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h zB 0B 1B 2B aB iB 3B bB","132":"i j k l m n o"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"16":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:2,C:"Encrypted Media Extensions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js deleted file mode 100644 index 38add45185865f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eot.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","2":"kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"EOT - Embedded OpenType fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js deleted file mode 100644 index 3164a035693562..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es5.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E kB","260":"G","1026":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","4":"lB cB nB oB","132":"I e J E F G A B C K L D M N O f g"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I e J E F G A B C K L D M N O","132":"f g h i"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","4":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","4":"G B C zB 0B 1B 2B aB iB 3B","132":"bB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","4":"gB 4B jB 5B"},H:{"132":"NC"},I:{"1":"H SC TC","4":"cB OC PC QC","132":"RC jB","900":"I"},J:{"1":"A","4":"E"},K:{"1":"S","4":"A B C aB iB","132":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ECMAScript 5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js deleted file mode 100644 index bc1cccbafbbfe0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-class.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","132":"2 3 4 5 6 7 8"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o zB 0B 1B 2B aB iB 3B bB","132":"p q r s t u v"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ES6 classes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js deleted file mode 100644 index 9f613d7823153c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-generators.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ES6 Generators"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js deleted file mode 100644 index 7aa702fbce3435..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module-dynamic-import.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB nB oB","194":"NB"},D:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"JavaScript modules: dynamic import()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js deleted file mode 100644 index 553d96fd5ae295..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-module.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L","4097":"M N O","4290":"D"},C:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB nB oB","322":"EB FB GB HB IB dB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","194":"JB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB","3076":"hB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"7"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","3076":"CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"JavaScript modules via script tag"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js deleted file mode 100644 index f26d21f31bdbe5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-number.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D nB oB","132":"M N O f g h i j k","260":"l m n o p q","516":"r"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O","1028":"f g h i j k l m n o p q r s t"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","1028":"D M N O f g"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC","1028":"RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ES6 Number"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js deleted file mode 100644 index fa5ac8246a7149..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6-string-includes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"String.prototype.includes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js deleted file mode 100644 index ddb254e280076f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/es6.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","388":"B"},B:{"257":"P Q T U V W X Y Z a b c R d H","260":"C K L","769":"D M N O"},C:{"2":"lB cB I e nB oB","4":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","257":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I e J E F G A B C K L D M N O f g","4":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB","257":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E rB gB sB tB","4":"F G uB vB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","4":"D M N O f g h i j k l m n o p q r s t u v w x","257":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B","4":"F 7B 8B 9B AC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","4":"SC TC","257":"H"},J:{"2":"E","4":"A"},K:{"2":"A B C aB iB bB","257":"S"},L:{"257":"H"},M:{"257":"R"},N:{"2":"A","388":"B"},O:{"257":"UC"},P:{"4":"I","257":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"257":"fC"},R:{"4":"gC"},S:{"4":"hC"}},B:6,C:"ECMAScript 2015 (ES6)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js deleted file mode 100644 index 6113ed3d6f3233..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/eventsource.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","4":"G zB 0B 1B 2B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"C S aB iB bB","4":"A B"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Server-sent events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js deleted file mode 100644 index 043a42bc712da2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/extended-system-fonts.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"L D wB xB yB","2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"ui-serif, ui-sans-serif, ui-monospace and ui-rounded values for font-family"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js deleted file mode 100644 index 52926dc2f075ba..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/feature-policy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y","2":"C K L D M N O","1025":"Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB nB oB","260":"VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"VB WB XB YB ZB P Q T U V W X Y","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","132":"JB eB KB LB S MB NB OB PB QB RB SB TB UB","1025":"Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B rB gB sB tB uB vB hB","772":"C K L D aB bB wB xB yB"},F:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB","2":"0 1 2 3 4 5 6 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","132":"7 8 9 AB BB CB DB EB FB GB HB IB JB","1025":"WB XB YB ZB P Q"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC","772":"D EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1025":"H"},M:{"260":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC","132":"YC ZC hB"},Q:{"132":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Feature Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js deleted file mode 100644 index f0c9bdf7f32188..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fetch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t nB oB","1025":"z","1218":"u v w x y"},D:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","260":"0","772":"1"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m zB 0B 1B 2B aB iB 3B bB","260":"n","772":"o"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Fetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js deleted file mode 100644 index 0dc2ec878eea09..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fieldset-disabled.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"16":"kB","132":"F G","388":"J E A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D","16":"M N O f"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","16":"G zB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"388":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A","260":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"disabled attribute of the fieldset element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js deleted file mode 100644 index 5b70d90b608c74..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fileapi.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","260":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","260":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","260":"I e J E F G A B C K L D M N O f g h i j k l m n oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e","260":"K L D M N O f g h i j k l m n o p q r s t u v w x","388":"J E F G A B C"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e rB gB","260":"J E F G tB uB vB","388":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B zB 0B 1B 2B","260":"C D M N O f g h i j k aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","260":"F 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H TC","2":"OC PC QC","260":"SC","388":"cB I RC jB"},J:{"260":"A","388":"E"},K:{"1":"S","2":"A B","260":"C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A","260":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"File API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js deleted file mode 100644 index 8d250c675a2cc4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereader.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G B zB 0B 1B 2B"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"C S aB iB bB","2":"A B"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"FileReader API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js deleted file mode 100644 index ca1db1386ced19..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filereadersync.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G zB 0B","16":"B 1B 2B aB iB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"C S iB bB","2":"A","16":"B aB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"FileReaderSync"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js deleted file mode 100644 index 98a1c54e3a7981..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/filesystem.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","33":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"I e J E","33":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","36":"F G A B C"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","33":"A"},K:{"2":"A B C S aB iB bB"},L:{"33":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","33":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Filesystem & FileWriter API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js deleted file mode 100644 index 86fef2d7ed5611..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flac.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB nB oB"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","16":"4 5 6","388":"7 8 9 AB BB CB DB EB FB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","516":"B C aB bB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"OC PC QC","16":"cB I RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"S bB","16":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","129":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:6,C:"FLAC audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js deleted file mode 100644 index 9084dbc870eaa4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox-gap.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"V W X Y Z a b c R d H","2":"C K L D M N O P Q T U"},C:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB nB oB"},D:{"1":"V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U"},E:{"1":"D xB yB","2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB"},F:{"1":"UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"gap property for Flexbox"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js deleted file mode 100644 index 23dfe16b2a97d3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flexbox.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","1028":"B","1316":"A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","164":"lB cB I e J E F G A B C K L D M N O f g h nB oB","516":"i j k l m n"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"h i j k l m n o","164":"I e J E F G A B C K L D M N O f g"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","33":"E F tB uB","164":"I e J rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B","33":"D M"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"F 7B 8B","164":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"H SC TC","164":"cB I OC PC QC RC jB"},J:{"1":"A","164":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","292":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS Flexible Box Layout Module"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js deleted file mode 100644 index 6c2758fbfc1008..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/flow-root.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB"},D:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB bB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"display: flow-root"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js deleted file mode 100644 index 0d226a1a5c8c22..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusin-focusout-events.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","2":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G zB 0B 1B 2B","16":"B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"I H RC jB SC TC","2":"OC PC QC","16":"cB"},J:{"1":"E A"},K:{"1":"C S bB","2":"A","16":"B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"focusin & focusout events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js deleted file mode 100644 index 5d3a4a2bc8d653..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/focusoptions-preventscroll.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M","132":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"preventScroll support in focus"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js deleted file mode 100644 index e3712fc5f5176e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-family-system-ui.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"R d H fB","2":"0 1 2 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","132":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB","260":"DB EB FB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F rB gB sB tB uB","16":"G","132":"A vB hB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B","132":"9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"132":"hC"}},B:5,C:"system-ui value for font-family"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js deleted file mode 100644 index 6ba269aa1f3c1a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-feature.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"D M N O f g h i j k l m n o p q r s t","164":"I e J E F G A B C K L"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D","33":"0 1 2 3 4 5 6 7 h i j k l m n o p q r s t u v w x y z","292":"M N O f g"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"E F G rB gB tB uB","4":"I e J sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i j k l m n o p q r s t u"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F 7B 8B 9B","4":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","33":"SC TC"},J:{"2":"E","33":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","33":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS font-feature-settings"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js deleted file mode 100644 index a63340d76681a7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-kerning.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j nB oB","194":"k l m n o p q r s t"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o","33":"p q r s"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J rB gB sB tB","33":"E F G uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D zB 0B 1B 2B aB iB 3B bB","33":"M N O f"},G:{"1":"D FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","33":"F 8B 9B AC BC CC DC EC"},H:{"2":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB","33":"SC"},J:{"2":"E","33":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 font-kerning"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js deleted file mode 100644 index b798888454f228..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-loading.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u nB oB","194":"0 v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS Font Loading"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js deleted file mode 100644 index 4038af976e8a70..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-metrics-overrides.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W","194":"X"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"@font-face metrics overrides"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js deleted file mode 100644 index 9f10cd804dd3cd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-size-adjust.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","194":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB","194":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"258":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"194":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"CSS font-size-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js deleted file mode 100644 index b3224d79588a72..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-smooth.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","676":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB","804":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I","676":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"rB gB","676":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","676":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"804":"hC"}},B:7,C:"CSS font-smooth"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js deleted file mode 100644 index b95f92745caecd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-unicode-range.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","4":"G A B"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","4":"C K L D M"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB","194":"0 1 2 3 w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"A B C K L D hB aB bB wB xB yB","4":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","4":"D M N O f g h i"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","4":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","4":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","4":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","4":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"Font unicode-range subsetting"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js deleted file mode 100644 index abb6ef2f96f4f5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-alternates.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","130":"A B"},B:{"130":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","130":"I e J E F G A B C K L D M N O f g h i j","322":"k l m n o p q r s t"},D:{"2":"I e J E F G A B C K L D","130":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"E F G rB gB tB uB","130":"I e J sB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","130":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 7B 8B 9B","130":"4B jB 5B 6B"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","130":"H SC TC"},J:{"2":"E","130":"A"},K:{"2":"A B C aB iB bB","130":"S"},L:{"130":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"130":"UC"},P:{"130":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"130":"fC"},R:{"130":"gC"},S:{"1":"hC"}},B:5,C:"CSS font-variant-alternates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js deleted file mode 100644 index 6c9355231e8365..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-east-asian.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j nB oB","132":"k l m n o p q r s t"},D:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"132":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"CSS font-variant-east-asian "}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js deleted file mode 100644 index d8c617da7a93bd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/font-variant-numeric.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t nB oB"},D:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","16":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:2,C:"CSS font-variant-numeric"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js deleted file mode 100644 index e022d1b49a8d9a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fontface.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","132":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","2":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","2":"G zB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","260":"gB 4B"},H:{"2":"NC"},I:{"1":"I H RC jB SC TC","2":"OC","4":"cB PC QC"},J:{"1":"A","4":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"@font-face Web fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js deleted file mode 100644 index 1199921bcd1dcb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-attribute.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB","16":"e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Form attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js deleted file mode 100644 index 4debb8c12c0737..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-submit-attributes.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB","16":"0B 1B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"I H RC jB SC TC","2":"OC PC QC","16":"cB"},J:{"1":"A","2":"E"},K:{"1":"B C S aB iB bB","16":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Attributes for form submission"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js deleted file mode 100644 index be511159943a9b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/form-validation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I rB gB","132":"e J E F G A sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","2":"G zB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"gB","132":"F 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"516":"NC"},I:{"1":"H TC","2":"cB OC PC QC","132":"I RC jB SC"},J:{"1":"A","132":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"132":"hC"}},B:1,C:"Form validation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js deleted file mode 100644 index 0e1dddaa0c66c8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/forms.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","4":"A B","8":"J E F G"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","4":"C K L D"},C:{"4":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB nB oB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB"},E:{"4":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"rB gB"},F:{"1":"G B C CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","4":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB"},G:{"2":"gB","4":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","4":"SC TC"},J:{"2":"E","4":"A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"4":"R"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","4":"I VC WC XC"},Q:{"1":"fC"},R:{"4":"gC"},S:{"4":"hC"}},B:1,C:"HTML5 form features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js deleted file mode 100644 index c3dca1a02da5fd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/fullscreen.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","548":"B"},B:{"1":"P Q T U V W X Y Z a b c R d H","516":"C K L D M N O"},C:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G nB oB","676":"0 1 2 3 4 5 6 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","1700":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB"},D:{"1":"SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L","676":"D M N O f","804":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB"},E:{"2":"I e rB gB","676":"sB","804":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B","804":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC","2052":"FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","292":"A"},K:{"2":"A B C S aB iB bB"},L:{"804":"H"},M:{"1":"R"},N:{"2":"A","548":"B"},O:{"804":"UC"},P:{"1":"hB aC bC cC dC eC","804":"I VC WC XC YC ZC"},Q:{"804":"fC"},R:{"804":"gC"},S:{"1":"hC"}},B:1,C:"Full Screen API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js deleted file mode 100644 index 4645980719a188..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gamepad.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g","33":"h i j k"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Gamepad API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js deleted file mode 100644 index 23c41de47e70b5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/geolocation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E F"},B:{"1":"C K L D M N O","129":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB nB oB","8":"lB cB","129":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","4":"I","129":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G B C K L D sB tB uB vB hB aB bB wB xB yB","8":"I rB gB","129":"A"},F:{"1":"B C M N O f g h i j k l m n o p q r s t u v w x y 2B aB iB 3B bB","2":"G D zB","8":"0B 1B","129":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F gB 4B jB 5B 6B 7B 8B 9B AC","129":"D BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I OC PC QC RC jB SC TC","129":"H"},J:{"1":"E A"},K:{"1":"B C aB iB bB","8":"A","129":"S"},L:{"129":"H"},M:{"129":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I","129":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"129":"fC"},R:{"129":"gC"},S:{"1":"hC"}},B:2,C:"Geolocation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js deleted file mode 100644 index c47483724446d9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getboundingclientrect.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"644":"J E kB","2049":"G A B","2692":"F"},B:{"1":"P Q T U V W X Y Z a b c R d H","2049":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","260":"I e J E F G A B","1156":"cB","1284":"nB","1796":"oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","16":"G zB","132":"0B 1B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","132":"A"},L:{"1":"H"},M:{"1":"R"},N:{"2049":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Element.getBoundingClientRect()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js deleted file mode 100644 index 2209e06dfc61d0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getcomputedstyle.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","132":"cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","260":"I e J E F G A"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","260":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","260":"G zB 0B 1B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","260":"gB 4B jB"},H:{"260":"NC"},I:{"1":"I H RC jB SC TC","260":"cB OC PC QC"},J:{"1":"A","260":"E"},K:{"1":"B C S aB iB bB","260":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"getComputedStyle"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js deleted file mode 100644 index ae94109fcf1e8d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getelementsbyclassname.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","8":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"getElementsByClassName"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js deleted file mode 100644 index 993e1a1662132f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/getrandomvalues.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","33":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e J rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A","33":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"crypto.getRandomValues()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js deleted file mode 100644 index aab71e0e49f643..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/gyroscope.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S MB NB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Gyroscope"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js deleted file mode 100644 index db6557a4ef8aec..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hardwareconcurrency.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K L"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},E:{"2":"I e J E rB gB sB tB uB","129":"B C K L D hB aB bB wB xB yB","194":"F G A vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB 5B 6B 7B","129":"D CC DC EC FC GC HC IC JC KC LC MC","194":"F 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"navigator.hardwareConcurrency"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js deleted file mode 100644 index 1a98c9a0e4205d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hashchange.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","8":"J E kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","8":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","8":"G zB 0B 1B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"cB I H PC QC RC jB SC TC","2":"OC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","8":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Hashchange event"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js deleted file mode 100644 index 0cbef3ff413a3c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/heif.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A rB gB sB tB uB vB hB","130":"B C K L D aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","130":"D DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"HEIF/ISO Base Media File Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js deleted file mode 100644 index c522771b75423e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hevc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"2":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","516":"B C aB bB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","258":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","258":"S"},L:{"258":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","258":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"HEVC/H.265 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js deleted file mode 100644 index e020a101c9e96d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/hidden.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G B zB 0B 1B 2B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"I H RC jB SC TC","2":"cB OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"C S aB iB bB","2":"A B"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"hidden attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js deleted file mode 100644 index 6fcf9eb79adc2c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/high-resolution-time.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f","33":"g h i j"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"High Resolution Time API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js deleted file mode 100644 index 293987ad82185d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/history.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I rB gB","4":"e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q iB 3B bB","2":"G B zB 0B 1B 2B aB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B","4":"jB"},H:{"2":"NC"},I:{"1":"H PC QC jB SC TC","2":"cB I OC RC"},J:{"1":"E A"},K:{"1":"C S aB iB bB","2":"A B"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Session history management"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js deleted file mode 100644 index 8402c4e56bae00..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html-media-capture.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB 5B","129":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC","257":"PC QC"},J:{"1":"A","16":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"516":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"16":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:4,C:"HTML Media Capture"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js deleted file mode 100644 index 39f1c22a3e543f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/html5semantic.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F","260":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","132":"cB nB oB","260":"I e J E F G A B C K L D M N O f g"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e","260":"J E F G A B C K L D M N O f g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","132":"I rB gB","260":"e J sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","132":"G B zB 0B 1B 2B","260":"C aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"gB","260":"4B jB 5B 6B"},H:{"132":"NC"},I:{"1":"H SC TC","132":"OC","260":"cB I PC QC RC jB"},J:{"260":"E A"},K:{"1":"S","132":"A","260":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"HTML5 semantic elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js deleted file mode 100644 index da3db8c806d8da..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http-live-streaming.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"HTTP Live Streaming (HLS)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js deleted file mode 100644 index 92165303592ffb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"C K L D M N O","513":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB","513":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","513":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F rB gB sB tB uB","260":"G A vB hB"},F:{"1":"o p q r s t u v w x","2":"G B C D M N O f g h i j k l m n zB 0B 1B 2B aB iB 3B bB","513":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","513":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","513":"S"},L:{"513":"H"},M:{"513":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I","513":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"513":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"HTTP/2 protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js deleted file mode 100644 index 2ca1ef4aa29f15..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/http3.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"Y Z a b c R d H","2":"C K L D M N O","322":"P Q T U V","578":"W X"},C:{"1":"Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB nB oB","194":"TB UB VB WB XB YB ZB P Q T mB U V W X Y"},D:{"1":"Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","322":"P Q T U V","578":"W X"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB wB","1090":"L D xB yB"},F:{"1":"VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB","578":"UB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC","66":"D LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"HTTP/3 protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js deleted file mode 100644 index 55204116b09456..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-sandbox.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M nB oB","4":"N O f g h i j k l m n"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B"},H:{"2":"NC"},I:{"1":"cB I H PC QC RC jB SC TC","2":"OC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"sandbox attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js deleted file mode 100644 index f6da23f5b9f680..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-seamless.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","66":"g h i j k l m"},E:{"2":"I e J F G A B C K L D rB gB sB tB vB hB aB bB wB xB yB","130":"E uB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","130":"7B"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"seamless attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js deleted file mode 100644 index c8e05346d6090e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/iframe-srcdoc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","8":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB","8":"cB I e J E F G A B C K L D M N O f g h i j k nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K","8":"L D M N O f"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"rB gB","8":"I e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B zB 0B 1B 2B","8":"C aB iB 3B bB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB","8":"4B jB 5B"},H:{"2":"NC"},I:{"1":"H SC TC","8":"cB I OC PC QC RC jB"},J:{"1":"A","8":"E"},K:{"1":"S","2":"A B","8":"C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"srcdoc attribute for iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js deleted file mode 100644 index 6a5faf5bc01927..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imagecapture.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","322":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u nB oB","194":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB","322":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","322":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"322":"fC"},R:{"1":"gC"},S:{"194":"hC"}},B:5,C:"ImageCapture API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js deleted file mode 100644 index 93bc0e60a8e74f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ime.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","161":"B"},B:{"2":"P Q T U V W X Y Z a b c R d H","161":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A","161":"B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Input Method Editor API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js deleted file mode 100644 index 6c90e0dd3eb163..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/img-naturalwidth-naturalheight.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"naturalWidth & naturalHeight image properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js deleted file mode 100644 index 0899b7b4244150..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/import-maps.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O","194":"P Q T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB","194":"VB WB XB YB ZB P Q T U V W X Y Z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB","194":"KB LB S MB NB OB PB QB RB SB TB UB VB WB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"eC","2":"I VC WC XC YC ZC hB aC bC cC dC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Import maps"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js deleted file mode 100644 index ea4a9053fad009..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/imports.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","8":"A B"},B:{"1":"P","2":"Q T U V W X Y Z a b c R d H","8":"C K L D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p nB oB","8":"q r GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","72":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p Q T U V W X Y Z a b c R d H fB pB qB","66":"q r s t u","72":"v"},E:{"2":"I e rB gB sB","8":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB","2":"G B C D M OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","66":"N O f g h","72":"i"},G:{"2":"gB 4B jB 5B 6B","8":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"8":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC","2":"cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"HTML Imports"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js deleted file mode 100644 index 88bbad0a6c9847..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indeterminate-checkbox.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB","16":"nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"indeterminate checkbox"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js deleted file mode 100644 index b239f7ae817681..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"A B C K L D","36":"I e J E F G"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"A","8":"I e J E F G","33":"j","36":"B C K L D M N O f g h i"},E:{"1":"A B C K L D hB aB bB wB yB","8":"I e J E rB gB sB tB","260":"F G uB vB","516":"xB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B","8":"B C 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC","8":"gB 4B jB 5B 6B 7B","260":"F 8B 9B AC","516":"MC"},H:{"2":"NC"},I:{"1":"H SC TC","8":"cB I OC PC QC RC jB"},J:{"1":"A","8":"E"},K:{"1":"S","2":"A","8":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"IndexedDB"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js deleted file mode 100644 index b953f390bc99c0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/indexeddb2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","132":"4 5 6","260":"7 8 9 AB"},D:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","132":"8 9 AB BB","260":"CB DB EB FB GB HB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u zB 0B 1B 2B aB iB 3B bB","132":"v w x y","260":"0 1 2 3 4 z"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC","16":"BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I","260":"VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"260":"hC"}},B:4,C:"IndexedDB 2.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js deleted file mode 100644 index a9fb0f26536c26..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/inline-block.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","4":"kB","132":"J E"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","36":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS inline-block"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js deleted file mode 100644 index 509246702408da..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/innertext.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"HTMLElement.innerText"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js deleted file mode 100644 index bd76f557621481..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-autocomplete-onoff.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A kB","132":"B"},B:{"132":"C K L D M N O","260":"P Q T U V W X Y Z a b c R d H"},C:{"1":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p nB oB","516":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"N O f g h i j k l m","2":"I e J E F G A B C K L D M","132":"0 n o p q r s t u v w x y z","260":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J sB tB","2":"I e rB gB","2052":"E F G A B C K L D uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB","1025":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1025":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2052":"A B"},O:{"1025":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"260":"fC"},R:{"1":"gC"},S:{"516":"hC"}},B:1,C:"autocomplete attribute: on & off values"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js deleted file mode 100644 index 4e2e749aee3cd8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-color.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G D M zB 0B 1B 2B"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC","129":"D GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"Color input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js deleted file mode 100644 index ca783cce0fab52..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-datetime.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","132":"C"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB","1090":"DB EB FB GB","2052":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R","4100":"d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f","2052":"g h i j k"},E:{"2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB","4100":"D xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB","260":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB OC PC QC","514":"I RC jB"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2052":"hC"}},B:1,C:"Date and time input types"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js deleted file mode 100644 index 0a56ff2e3d2809..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-email-tel-url.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","132":"OC PC QC"},J:{"1":"A","132":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Email, telephone & URL input types"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js deleted file mode 100644 index 53ac951ef34825..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-event.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","2561":"A B","2692":"G"},B:{"1":"P Q T U V W X Y Z a b c R d H","2561":"C K L D M N O"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB","1537":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z oB","1796":"cB nB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L","1025":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB","1537":"D M N O f g h i j k l m n o p q r s t u"},E:{"1":"L D wB xB yB","16":"I e J rB gB","1025":"E F G A B C tB uB vB hB aB","1537":"sB","4097":"K bB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","16":"G B C zB 0B 1B 2B aB iB","260":"3B","1025":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB","1537":"D M N O f g h"},G:{"16":"gB 4B jB","1025":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","1537":"5B 6B 7B"},H:{"2":"NC"},I:{"16":"OC PC","1025":"H TC","1537":"cB I QC RC jB SC"},J:{"1025":"A","1537":"E"},K:{"1":"A B C aB iB bB","1025":"S"},L:{"1":"H"},M:{"1537":"R"},N:{"2561":"A B"},O:{"1537":"UC"},P:{"1025":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1025":"fC"},R:{"1025":"gC"},S:{"1537":"hC"}},B:1,C:"input event"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js deleted file mode 100644 index ba7430501d4603..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-accept.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","132":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I","16":"e J E F h i j k l","132":"G A B C K L D M N O f g"},E:{"1":"C K L D aB bB wB xB yB","2":"I e rB gB sB","132":"J E F G A B tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"6B 7B","132":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","514":"gB 4B jB 5B"},H:{"2":"NC"},I:{"2":"OC PC QC","260":"cB I RC jB","514":"H SC TC"},J:{"132":"A","260":"E"},K:{"2":"A B C aB iB bB","514":"S"},L:{"260":"H"},M:{"2":"R"},N:{"514":"A","1028":"B"},O:{"2":"UC"},P:{"260":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"260":"fC"},R:{"260":"gC"},S:{"1":"hC"}},B:1,C:"accept attribute for file input"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js deleted file mode 100644 index 652559342389bc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-directory.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Directory selection from file input"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js deleted file mode 100644 index 335c9209066a85..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-file-multiple.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB 0B 1B"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"130":"NC"},I:{"130":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"130":"A B C S aB iB bB"},L:{"132":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"130":"UC"},P:{"130":"I","132":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"2":"hC"}},B:1,C:"Multiple file selection"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js deleted file mode 100644 index 257ef9f847138e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-inputmode.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M nB oB","4":"N O f g","194":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB","66":"GB HB IB dB JB eB KB LB S MB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","66":"3 4 5 6 7 8 9 AB BB CB"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:1,C:"inputmode attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js deleted file mode 100644 index 7adcb39e7a08b4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-minlength.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"Minimum length attribute for input fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js deleted file mode 100644 index 367087b5f8936d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-number.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","129":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","129":"C K","1025":"L D M N O"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","513":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"388":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB OC PC QC","388":"I H RC jB SC TC"},J:{"2":"E","388":"A"},K:{"1":"A B C aB iB bB","388":"S"},L:{"388":"H"},M:{"641":"R"},N:{"388":"A B"},O:{"388":"UC"},P:{"388":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"388":"fC"},R:{"388":"gC"},S:{"513":"hC"}},B:1,C:"Number input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js deleted file mode 100644 index b056b31cfd5c4b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-pattern.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I rB gB","16":"e","388":"J E F G A sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB","388":"F 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB SC"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Pattern attribute for input fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js deleted file mode 100644 index 8e3a8f6e751c2b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-placeholder.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","132":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q iB 3B bB","2":"G zB 0B 1B 2B","132":"B aB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB H OC PC QC jB SC TC","4":"I RC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"input placeholder attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js deleted file mode 100644 index 31bd1d42693cee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-range.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H jB SC TC","4":"cB I OC PC QC RC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Range input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js deleted file mode 100644 index 6d7e9c34fe5d8c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-search.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","129":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","129":"C K L D M N O"},C:{"2":"lB cB nB oB","129":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L h i j k l","129":"D M N O f g"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G zB 0B 1B 2B","16":"B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"129":"NC"},I:{"1":"H SC TC","16":"OC PC","129":"cB I QC RC jB"},J:{"1":"E","129":"A"},K:{"1":"C S","2":"A","16":"B aB iB","129":"bB"},L:{"1":"H"},M:{"129":"R"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"129":"hC"}},B:1,C:"Search input type"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js deleted file mode 100644 index 3d141e3e34cac8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/input-selection.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","16":"G zB 0B 1B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Selection controls for input & textarea"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js deleted file mode 100644 index 02e7f550fdc654..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insert-adjacent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Element.insertAdjacentElement() & Element.insertAdjacentText()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js deleted file mode 100644 index 371a97a97940bb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/insertadjacenthtml.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","16":"kB","132":"J E F G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","16":"G zB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Element.insertAdjacentHTML()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js deleted file mode 100644 index b436405b803df4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/internationalization.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:6,C:"Internationalization API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js deleted file mode 100644 index a06e2a0164339e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver-v2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC YC ZC hB"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"IntersectionObserver V2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js deleted file mode 100644 index 918e7c8eeb21b5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intersectionobserver.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O","2":"C K L","516":"D","1025":"P Q T U V W X Y Z a b c R d H"},C:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB","194":"CB DB EB"},D:{"1":"IB dB JB eB KB LB S","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","516":"BB CB DB EB FB GB HB","1025":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B bB","516":"0 1 2 3 4 y z","1025":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","1025":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","1025":"S"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"516":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I","516":"VC WC"},Q:{"1025":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"IntersectionObserver"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js deleted file mode 100644 index 60e49b64b10ed9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intl-pluralrules.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N","130":"O"},C:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB nB oB"},D:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB bB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Intl.PluralRules API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js deleted file mode 100644 index fde363a7afb6e8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/intrinsic-width.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","1537":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB","932":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB nB oB","2308":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I e J E F G A B C K L D M N O f g h","545":"0 1 2 3 4 5 i j k l m n o p q r s t u v w x y z","1537":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J rB gB sB","516":"B C K L D aB bB wB xB yB","548":"G A vB hB","676":"E F tB uB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","513":"u","545":"D M N O f g h i j k l m n o p q r s","1537":"0 1 2 3 4 5 6 7 8 9 t v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB 5B 6B","516":"D LC MC","548":"9B AC BC CC DC EC FC GC HC IC JC KC","676":"F 7B 8B"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","545":"SC TC","1537":"H"},J:{"2":"E","545":"A"},K:{"2":"A B C aB iB bB","1537":"S"},L:{"1537":"H"},M:{"2308":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"545":"I","1537":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"545":"fC"},R:{"1537":"gC"},S:{"932":"hC"}},B:5,C:"Intrinsic & Extrinsic Sizing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js deleted file mode 100644 index 8c86effc5a0709..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpeg2000.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I rB gB","129":"e sB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"JPEG 2000 image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js deleted file mode 100644 index 1161509d3772ad..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxl.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b","578":"c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a nB oB","322":"b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b","194":"c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB zB 0B 1B 2B aB iB 3B bB","194":"YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"JPEG XL image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js deleted file mode 100644 index 7d270cba423b90..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/jpegxr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"JPEG XR image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js deleted file mode 100644 index 1d86a0d524f3a3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/js-regexp-lookbehind.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB nB oB"},D:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Lookbehind in JS regular expressions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js deleted file mode 100644 index c418b73351fdd7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/json.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E kB","129":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"JSON parsing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js deleted file mode 100644 index d3a01f224f7016..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/justify-content-space-evenly.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D","132":"M N O"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB"},D:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB","132":"HB IB dB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB","132":"hB"},F:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","132":"4 5 6"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","132":"CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC","132":"XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"132":"hC"}},B:5,C:"CSS justify-content: space-evenly"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js deleted file mode 100644 index c7476b6b54ff0d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/kerning-pairs-ligatures.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","2":"C K L D M N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"OC PC QC","132":"cB I RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"High-quality kerning pairs & ligatures"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js deleted file mode 100644 index 037a4269991bfd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-charcode.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","16":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B","16":"C"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S bB","2":"A B aB iB","16":"C"},L:{"1":"H"},M:{"130":"R"},N:{"130":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"KeyboardEvent.charCode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js deleted file mode 100644 index a20b855b66871f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-code.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB"},D:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"2 3 4 5 6 7"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o zB 0B 1B 2B aB iB 3B bB","194":"p q r s t u"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"194":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I","194":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"194":"gC"},S:{"1":"hC"}},B:5,C:"KeyboardEvent.code"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js deleted file mode 100644 index f63199d8530e35..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-getmodifierstate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B D M zB 0B 1B 2B aB iB 3B","16":"C"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S bB","2":"A B aB iB","16":"C"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"KeyboardEvent.getModifierState()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js deleted file mode 100644 index ef258a99e2fdea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-key.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","260":"G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","260":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i nB oB","132":"j k l m n o"},D:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B","16":"C"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"1":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S bB","2":"A B aB iB","16":"C"},L:{"1":"H"},M:{"1":"R"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:5,C:"KeyboardEvent.key"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js deleted file mode 100644 index c7d0b342d5c000..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-location.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","16":"J rB gB","132":"I e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B","16":"C","132":"D M"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB","132":"5B 6B 7B"},H:{"2":"NC"},I:{"1":"H SC TC","16":"OC PC","132":"cB I QC RC jB"},J:{"132":"E A"},K:{"1":"S bB","2":"A B aB iB","16":"C"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"KeyboardEvent.location"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js deleted file mode 100644 index f3ce8fff4030bd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/keyboardevent-which.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB","16":"e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","16":"G zB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB","16":"OC PC","132":"SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"132":"H"},M:{"132":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"2":"I","132":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:7,C:"KeyboardEvent.which"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js deleted file mode 100644 index 5d7147053c39f5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/lazyload.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Resource Hints: Lazyload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js deleted file mode 100644 index 14b2ce2002cd23..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/let.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","2052":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","194":"0 1 2 3 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O","322":"0 f g h i j k l m n o p q r s t u v w x y z","516":"1 2 3 4 5 6 7 8"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB","1028":"A hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","322":"D M N O f g h i j k l m n","516":"o p q r s t u v"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC","1028":"BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","516":"I"},Q:{"1":"fC"},R:{"516":"gC"},S:{"1":"hC"}},B:6,C:"let"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js deleted file mode 100644 index ba6bdcea558cc6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-png.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D FC GC HC IC JC KC LC MC","130":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"130":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E","130":"A"},K:{"1":"S","130":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"130":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"PNG favicons"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js deleted file mode 100644 index 101417e36c0184..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-icon-svg.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P","1537":"Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB nB oB","260":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","513":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","1537":"Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB","2":"0 1 2 3 G B C D M N O f g h i j k l m n o p q r s t u v w x y z EB FB GB HB IB JB KB LB S MB NB zB 0B 1B 2B aB iB 3B bB","1537":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"D FC GC HC IC JC KC LC MC","130":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"130":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","130":"A"},K:{"2":"S","130":"A B C aB iB bB"},L:{"1537":"H"},M:{"2":"R"},N:{"130":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC","1537":"cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"513":"hC"}},B:1,C:"SVG favicons"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js deleted file mode 100644 index 049c8e2dcaeab8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-dns-prefetch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F kB","132":"G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB","260":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"16":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"16":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"16":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Resource Hints: dns-prefetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js deleted file mode 100644 index 42407c1b59c781..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-modulepreload.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"16":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:1,C:"Resource Hints: modulepreload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js deleted file mode 100644 index c9c62cef21ff42..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preconnect.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L","260":"D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","129":"z"},D:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"16":"R"},N:{"2":"A B"},O:{"16":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Resource Hints: preconnect"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js deleted file mode 100644 index 775f985b6c99cd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prefetch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB","194":"L D wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","194":"D KC LC MC"},H:{"2":"NC"},I:{"1":"I H SC TC","2":"cB OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Resource Hints: prefetch"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js deleted file mode 100644 index c98a618dfa73d2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-preload.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M","1028":"N O"},C:{"1":"W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB nB oB","132":"GB","578":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V"},D:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","322":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","322":"DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Resource Hints: preload"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js deleted file mode 100644 index b93754abd6c761..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/link-rel-prerender.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Resource Hints: prerender"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js deleted file mode 100644 index 50818ad932fe94..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/loading-lazy-attr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB nB oB","132":"WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB","66":"WB XB"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB","322":"L D wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB","66":"KB LB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","322":"D KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"132":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I VC WC XC YC ZC hB aC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"Lazy loading via attribute for images & iframes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js deleted file mode 100644 index 7cd8169e6692dd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/localecompare.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","16":"kB","132":"J E F G A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j"},E:{"1":"A B C K L D hB aB bB wB xB yB","132":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G B C zB 0B 1B 2B aB iB 3B","132":"bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","132":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"132":"NC"},I:{"1":"H SC TC","132":"cB I OC PC QC RC jB"},J:{"132":"E A"},K:{"1":"S","16":"A B C aB iB","132":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","132":"A"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","132":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"4":"hC"}},B:6,C:"localeCompare()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js deleted file mode 100644 index 4d6a09f33dbcdf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/magnetometer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S MB NB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"194":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Magnetometer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js deleted file mode 100644 index 140d57116f1aef..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchesselector.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","36":"G A B"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","36":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB","36":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","36":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I rB gB","36":"e J E sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B zB 0B 1B 2B aB","36":"C D M N O f g iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB","36":"4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"OC","36":"cB I PC QC RC jB SC TC"},J:{"36":"E A"},K:{"1":"S","2":"A B","36":"C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"36":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","36":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"matches() DOM method"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js deleted file mode 100644 index a10709c9506b53..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/matchmedia.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"matchMedia"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js deleted file mode 100644 index ff3c05025cbe24..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mathml.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"G A B kB","8":"J E F"},B:{"2":"C K L D M N O","8":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","129":"lB cB nB oB"},D:{"1":"k","8":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","260":"I e J E F G rB gB sB tB uB vB"},F:{"2":"G","4":"B C zB 0B 1B 2B aB iB 3B bB","8":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB"},H:{"8":"NC"},I:{"8":"cB I H OC PC QC RC jB SC TC"},J:{"1":"A","8":"E"},K:{"8":"A B C S aB iB bB"},L:{"8":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"4":"UC"},P:{"8":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"8":"fC"},R:{"8":"gC"},S:{"1":"hC"}},B:2,C:"MathML"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js deleted file mode 100644 index 6ba6c7e80a5b19..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/maxlength.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","16":"kB","900":"J E F G"},B:{"1":"P Q T U V W X Y Z a b c R d H","1025":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","900":"lB cB nB oB","1025":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"e rB","900":"I gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G","132":"B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 4B jB 5B 6B 7B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB","2052":"F 8B"},H:{"132":"NC"},I:{"1":"cB I QC RC jB SC TC","16":"OC PC","4097":"H"},J:{"1":"E A"},K:{"132":"A B C aB iB bB","4097":"S"},L:{"4097":"H"},M:{"4097":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"4097":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1025":"hC"}},B:1,C:"maxlength attribute for input and textarea elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js deleted file mode 100644 index 4107141097309b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-attribute.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O","16":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t","2":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H","16":"fB pB qB"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"B C D M N O f g h i j k 0B 1B 2B aB iB 3B bB","2":"0 1 2 3 4 5 6 7 8 9 G l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"16":"NC"},I:{"1":"I H RC jB SC TC","16":"cB OC PC QC"},J:{"16":"E A"},K:{"1":"C S bB","16":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"16":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Media attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js deleted file mode 100644 index 3635915d4e91ac..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-fragments.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","132":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t nB oB","132":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I e J E F G A B C K L D M N","132":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e rB gB sB","132":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB 5B 6B 7B","132":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","132":"H SC TC"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","132":"S"},L:{"132":"H"},M:{"132":"R"},N:{"132":"A B"},O:{"2":"UC"},P:{"2":"I VC","132":"WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"132":"hC"}},B:2,C:"Media Fragments"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js deleted file mode 100644 index cd56ed1c2c74c3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/media-session-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB","16":"L D wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Media Session API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js deleted file mode 100644 index 3fc380a35aef3b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediacapture-fromelement.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","260":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","324":"BB CB DB EB FB GB HB IB dB JB eB"},E:{"2":"I e J E F G A rB gB sB tB uB vB hB","132":"B C K L D aB bB wB xB yB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB","324":"0 1 2 3 4 5 6 7 w x y z"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"260":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I","132":"VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"260":"hC"}},B:5,C:"Media Capture from DOM Elements API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js deleted file mode 100644 index a97264546d0efe..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediarecorder.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"7 8"},E:{"1":"D xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB","322":"K L bB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t zB 0B 1B 2B aB iB 3B bB","194":"u v"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC","578":"FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:5,C:"MediaRecorder API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js deleted file mode 100644 index 0b35dabc7f09f4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mediasource.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB","66":"0 1 l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M","33":"j k l m n o p q","66":"N O f g h i"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","260":"D HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB SC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Media Source Extensions"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js deleted file mode 100644 index 2015085840598c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/menu.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E nB oB","132":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V","450":"W X Y Z a b c R d H fB"},D:{"2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","66":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"7 8 9 G B C D M N O f g h i j k l m n o p q r s t u AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","66":"0 1 2 3 4 5 6 v w x y z"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"450":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Context menu item (menuitem element)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js deleted file mode 100644 index e9669a883dd11b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meta-theme-color.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y","132":"UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","258":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB"},E:{"1":"D yB","2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB xB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"513":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I","16":"VC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"theme-color Meta Tag"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js deleted file mode 100644 index 24a958f3836325..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/meter.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G zB 0B 1B 2B"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"meter element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js deleted file mode 100644 index 271cc16dfeb1c5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/midi.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Web MIDI API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js deleted file mode 100644 index 6d5b881ce1e37a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/minmaxwh.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","8":"J kB","129":"E","257":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"CSS min/max-width/height"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js deleted file mode 100644 index 3a4dd57f054807..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mp3.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","132":"I e J E F G A B C K L D M N O f g h nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","2":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"MP3 audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js deleted file mode 100644 index 667db573f7ab50..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg-dash.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","386":"h i"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Dynamic Adaptive Streaming over HTTP (MPEG-DASH)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js deleted file mode 100644 index 1e986828322487..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mpeg4.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g nB oB","4":"h i j k l m n o p q r s t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","2":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","4":"cB I OC PC RC jB","132":"QC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"260":"R"},N:{"1":"A B"},O:{"4":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"MPEG-4/H.264 video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js deleted file mode 100644 index fc8cdfbbee951c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multibackgrounds.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 Multiple backgrounds"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js deleted file mode 100644 index 04eab01f421e8e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/multicolumn.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O","516":"P Q T U V W X Y Z a b c R d H"},C:{"132":"CB DB EB FB GB HB IB dB JB eB KB LB S","164":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB","516":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"420":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","516":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"A B C K L D hB aB bB wB xB yB","132":"G vB","164":"E F uB","420":"I e J rB gB sB tB"},F:{"1":"C aB iB 3B bB","2":"G B zB 0B 1B 2B","420":"D M N O f g h i j k l m n o p q r s t u v w","516":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","132":"9B AC","164":"F 7B 8B","420":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"420":"cB I OC PC QC RC jB SC TC","516":"H"},J:{"420":"E A"},K:{"1":"C aB iB bB","2":"A B","516":"S"},L:{"516":"H"},M:{"516":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","420":"I"},Q:{"132":"fC"},R:{"132":"gC"},S:{"164":"hC"}},B:4,C:"CSS3 Multiple column layout"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js deleted file mode 100644 index fbe80c15ca1124..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutation-events.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","260":"G A B"},B:{"132":"P Q T U V W X Y Z a b c R d H","260":"C K L D M N O"},C:{"2":"lB cB I e nB oB","260":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"16":"I e J E F G A B C K L","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"16":"rB gB","132":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"1":"C 3B bB","2":"G zB 0B 1B 2B","16":"B aB iB","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"16":"gB 4B","132":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"16":"OC PC","132":"cB I H QC RC jB SC TC"},J:{"132":"E A"},K:{"1":"C bB","2":"A","16":"B aB iB","132":"S"},L:{"132":"H"},M:{"260":"R"},N:{"260":"A B"},O:{"132":"UC"},P:{"132":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"260":"hC"}},B:5,C:"Mutation events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js deleted file mode 100644 index 24dd43b39ef389..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/mutationobserver.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F kB","8":"G A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N","33":"O f g h i j k l m"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB OC PC QC","8":"I RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","8":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Mutation Observer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js deleted file mode 100644 index b7ec224b6d17bf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/namevalue-storage.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"kB","8":"J E"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","4":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Web Storage - name/value pairs"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js deleted file mode 100644 index 9e965aac6f4f21..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/native-filesystem-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","194":"P Q T U V W","260":"X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB","194":"VB WB XB YB ZB P Q T U V W","260":"X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB","194":"KB LB S MB NB OB PB QB RB SB","260":"TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"File System Access API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js deleted file mode 100644 index 83c99345e546a1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/nav-timing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e","33":"J E F G A B C"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"I H RC jB SC TC","2":"cB OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Navigation Timing API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js deleted file mode 100644 index 83b774d86923b4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/navigator-language.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"16":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"16":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"16":"fC"},R:{"16":"gC"},S:{"1":"hC"}},B:2,C:"Navigator Language API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js deleted file mode 100644 index d0658ff119c29e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/netinfo.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","1028":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB","1028":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","1028":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"OC SC TC","132":"cB I PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","132":"I","516":"VC WC XC"},Q:{"1":"fC"},R:{"516":"gC"},S:{"260":"hC"}},B:7,C:"Network Information API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js deleted file mode 100644 index 065d281faf3461..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/notifications.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I","36":"e J E F G A B C K L D M N O f g h"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","36":"H SC TC"},J:{"1":"A","2":"E"},K:{"2":"A B C aB iB bB","36":"S"},L:{"513":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"36":"I","258":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"258":"gC"},S:{"1":"hC"}},B:1,C:"Web Notifications"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js deleted file mode 100644 index ff09ac794b81f6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-entries.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","16":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:6,C:"Object.entries"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js deleted file mode 100644 index d3edc57aa89897..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-fit.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D","260":"M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E rB gB sB tB","132":"F G uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G D M N O zB 0B 1B","33":"B C 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","132":"F 8B 9B AC"},H:{"33":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB SC"},J:{"2":"E A"},K:{"1":"S","2":"A","33":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 object-fit/object-position"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js deleted file mode 100644 index b895480c96d6c8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-observe.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"j k l m n o p q r s t u v w","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","2":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"Object.observe data binding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js deleted file mode 100644 index cbfb04b38da969..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/object-values.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"8":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"1":"B C K L D hB aB bB wB xB yB","8":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","8":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","8":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"8":"NC"},I:{"1":"H","8":"cB I OC PC QC RC jB SC TC"},J:{"8":"E A"},K:{"1":"S","8":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","8":"I VC"},Q:{"1":"fC"},R:{"8":"gC"},S:{"1":"hC"}},B:6,C:"Object.values method"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js deleted file mode 100644 index f0f984b90ea11f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/objectrtc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O","2":"C P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","130":"A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Object RTC (ORTC) API for WebRTC"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js deleted file mode 100644 index cdd0429be93b0b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offline-apps.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"G kB","8":"J E F"},B:{"1":"C K L D M N O P Q T U V","2":"W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U nB oB","2":"V W X Y Z a b c R d H fB","4":"cB","8":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V","2":"W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB 2B aB iB 3B bB","2":"G UB VB WB XB YB ZB P Q zB","8":"0B 1B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I OC PC QC RC jB SC TC","2":"H"},J:{"1":"E A"},K:{"1":"B C aB iB bB","2":"A S"},L:{"2":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"Offline web applications"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js deleted file mode 100644 index 2120be9900fe18..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/offscreencanvas.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","194":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","322":"IB dB JB eB KB LB S MB NB OB PB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","322":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:1,C:"OffscreenCanvas"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js deleted file mode 100644 index 7f8068535ccc9e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogg-vorbis.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB","132":"D xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"A","2":"E"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Ogg Vorbis audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js deleted file mode 100644 index a6e77570745b11..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ogv.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","8":"G A B"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","8":"C K L D M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:6,C:"Ogg/Theora video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js deleted file mode 100644 index 6e641911e5a89c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ol-reversed.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D","16":"M N O f"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","16":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B","16":"C"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Reversed attribute of ordered lists"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js deleted file mode 100644 index ecffeeb8c3bf66..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/once-event-listener.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"\"once\" event listener option"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js deleted file mode 100644 index d9331e3c75b109..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/online-status.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E kB","260":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB","516":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B","4":"bB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"A","132":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Online/offline status"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js deleted file mode 100644 index 9410397f9177f9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/opus.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s"},E:{"2":"I e J E F G A rB gB sB tB uB vB hB","132":"B C K L D aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","132":"D DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Opus"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js deleted file mode 100644 index 57812b3a008361..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/orientation-sensor.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S MB NB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Orientation Sensor"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js deleted file mode 100644 index 09f9678a4cc301..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/outline.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","260":"F","388":"G A B"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","388":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B","129":"bB","260":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"C S bB","260":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"388":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS outline properties"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js deleted file mode 100644 index a625c95732a153..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pad-start-end.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C K L"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:6,C:"String.prototype.padStart(), String.prototype.padEnd()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js deleted file mode 100644 index 402605bd4db383..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/page-transition-events.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"PageTransitionEvent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js deleted file mode 100644 index b1c2f44f27c3ec..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pagevisibility.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G nB oB","33":"A B C K L D M N"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K","33":"L D M N O f g h i j k l m n o p q r s"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e J rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B C zB 0B 1B 2B aB iB 3B","33":"D M N O f"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB","33":"SC TC"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","33":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Page Visibility"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js deleted file mode 100644 index 8d515dcc458f24..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passive-event-listener.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L D"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"Passive event listeners"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js deleted file mode 100644 index 563380fbb078a7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/passwordrules.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","16":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d nB oB","16":"H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H","16":"fB pB qB"},E:{"1":"C K bB","2":"I e J E F G A B rB gB sB tB uB vB hB aB","16":"L D wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB zB 0B 1B 2B aB iB 3B bB","16":"DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","16":"H"},J:{"2":"E","16":"A"},K:{"2":"A B C aB iB bB","16":"S"},L:{"16":"H"},M:{"16":"R"},N:{"2":"A","16":"B"},O:{"16":"UC"},P:{"2":"I VC WC","16":"XC YC ZC hB aC bC cC dC eC"},Q:{"16":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:1,C:"Password Rules"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js deleted file mode 100644 index 1105491866ab24..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/path2d.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K","132":"L D M N O"},C:{"1":"8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB","132":"0 1 2 3 4 5 6 7 r s t u v w x y z"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v","132":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB","132":"F G uB"},F:{"1":"FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","16":"F","132":"8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"1":"hB aC bC cC dC eC","132":"I VC WC XC YC ZC"},Q:{"132":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:1,C:"Path2D"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js deleted file mode 100644 index 798f7a53a93e6f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/payment-request.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K","322":"L","8196":"D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB nB oB","4162":"FB GB HB IB dB JB eB KB LB S MB","16452":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB","194":"DB EB FB GB HB IB","1090":"dB JB","8196":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB","514":"A B hB","8196":"C aB"},F:{"1":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"0 1 2 3 4 5 6 7","8196":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC","514":"BC CC DC","8196":"EC FC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"2049":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I","8196":"VC WC XC YC ZC hB aC"},Q:{"8196":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Payment Request API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js deleted file mode 100644 index f85ea3059e1923..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pdf-viewer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","16":"C K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"16":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Built-in PDF viewer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js deleted file mode 100644 index 00c2f6c597fa68..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:7,C:"Permissions API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js deleted file mode 100644 index e3a9bd8d86a33e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/permissions-policy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","258":"P Q T U V W","322":"X Y","388":"Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB nB oB","258":"VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","258":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W","322":"X Y","388":"Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B rB gB sB tB uB vB hB","258":"C K L D aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","258":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB","322":"TB UB VB WB XB YB ZB P Q"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC","258":"D EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","258":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","258":"S"},L:{"388":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC","258":"YC ZC hB aC bC cC dC eC"},Q:{"258":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Permissions Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js deleted file mode 100644 index 2480106126a030..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture-in-picture.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB nB oB","132":"TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","1090":"OB","1412":"SB","1668":"PB QB RB"},D:{"1":"RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB","2114":"QB"},E:{"1":"L D wB xB yB","2":"I e J E F G rB gB sB tB uB vB","4100":"A B C K hB aB bB"},F:{"1":"UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w zB 0B 1B 2B aB iB 3B bB","8196":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B","4100":"9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"16388":"H"},M:{"16388":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Picture-in-Picture"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js deleted file mode 100644 index 0c2210ea64a3c2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/picture.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t nB oB","578":"u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w","194":"x"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB","322":"k"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Picture element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js deleted file mode 100644 index 3e4d4b16281d1b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ping.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"2":"lB","194":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"194":"hC"}},B:1,C:"Ping attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js deleted file mode 100644 index ad13f1bca59555..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/png-alpha.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"E F G A B","2":"kB","8":"J"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"PNG alpha transparency"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js deleted file mode 100644 index 43d91589c1cfbf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer-events.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"CSS pointer-events (for HTML)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js deleted file mode 100644 index 4ccba0f83a00c1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G kB","164":"A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB","8":"0 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","328":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB"},D:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h","8":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB","584":"CB DB EB"},E:{"1":"K L D wB xB yB","2":"I e J rB gB sB","8":"E F G A B C tB uB vB hB aB","1096":"bB"},F:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","8":"D M N O f g h i j k l m n o p q r s t u v w x y","584":"0 1 z"},G:{"1":"D IC JC KC LC MC","8":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","6148":"HC"},H:{"2":"NC"},I:{"1":"H","8":"cB I OC PC QC RC jB SC TC"},J:{"8":"E A"},K:{"1":"S","2":"A","8":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","36":"A"},O:{"8":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"VC","8":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"328":"hC"}},B:2,C:"Pointer events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js deleted file mode 100644 index 1e7df11d124514..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/pointerlock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","2":"C"},C:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K nB oB","33":"0 L D M N O f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D","33":"i j k l m n o p q r s t u v w","66":"M N O f g h"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i j"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:2,C:"Pointer Lock API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js deleted file mode 100644 index 95bcda4d02a5a8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/portals.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V","322":"b c R d H","450":"W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB","194":"WB XB YB ZB P Q T U V","322":"X Y Z a b c R d H fB pB qB","450":"W"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB","194":"KB LB S MB NB OB PB QB RB SB TB","322":"UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"450":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Portals"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js deleted file mode 100644 index 12da8b7b9de6f0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-color-scheme.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB nB oB"},D:{"1":"XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"bC cC dC eC","2":"I VC WC XC YC ZC hB aC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"prefers-color-scheme media query"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js deleted file mode 100644 index 3d2cd440bd0391..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/prefers-reduced-motion.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB nB oB"},D:{"1":"VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC YC ZC hB"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"prefers-reduced-motion media query"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js deleted file mode 100644 index 311cffedd5bc2f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-class-fields.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB"},E:{"1":"D xB yB","2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB"},F:{"1":"KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC YC ZC hB"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Private class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js deleted file mode 100644 index 40d2c883f47d40..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/private-methods-and-accessors.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"V W X Y Z a b c R d H","2":"C K L D M N O P Q T U"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U"},E:{"1":"D xB yB","2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB"},F:{"1":"RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js deleted file mode 100644 index 1fc21369389150..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/progress.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G zB 0B 1B 2B"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B","132":"7B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"progress element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js deleted file mode 100644 index 8cb3b9ac32b0a7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promise-finally.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","2":"C K L D M N"},C:{"1":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB nB oB"},D:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Promise.prototype.finally"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js deleted file mode 100644 index 969ea72b01b88e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/promises.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"8":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","4":"n o","8":"lB cB I e J E F G A B C K L D M N O f g h i j k l m nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"s","8":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","8":"I e J E rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","4":"f","8":"G B C D M N O zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB 5B 6B 7B"},H:{"8":"NC"},I:{"1":"H TC","8":"cB I OC PC QC RC jB SC"},J:{"8":"E A"},K:{"1":"S","8":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Promises"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js deleted file mode 100644 index 363815007ad72e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proximity.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:4,C:"Proximity API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js deleted file mode 100644 index d1bb773ed36c3e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/proxy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O y z","66":"f g h i j k l m n o p q r s t u v w x"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB","66":"D M N O f g h i j k"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:6,C:"Proxy object"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js deleted file mode 100644 index 2efd50da51edd9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/public-class-fields.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB nB oB","4":"RB SB TB UB VB","132":"QB"},D:{"1":"TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB"},E:{"1":"D xB yB","2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB wB","260":"L"},F:{"1":"JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC YC ZC hB"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Public class fields"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js deleted file mode 100644 index fc95f62e7292c5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/publickeypinning.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB","2":"G B C D M N O f NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","4":"j","16":"g h i k"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB","2":"aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"HTTP Public Key Pinning"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js deleted file mode 100644 index 37385c18e58af5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/push-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O","2":"C K L D M","257":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","257":"4 6 7 8 9 AB BB DB EB FB GB HB IB dB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","1281":"5 CB JB"},D:{"2":"0 1 2 3 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","257":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","388":"4 5 6 7 8 9"},E:{"2":"I e J E F G rB gB sB tB uB","514":"A B C K L D vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v w zB 0B 1B 2B aB iB 3B bB","16":"0 1 x y z","257":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"257":"hC"}},B:5,C:"Push API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js deleted file mode 100644 index 64f460b4cf3195..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/queryselector.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"kB","8":"J E","132":"F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","8":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","8":"G zB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"querySelector/querySelectorAll"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js deleted file mode 100644 index 6b345ae190811e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/readonly-attr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","16":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L D M N O f g h i j k l"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G zB","132":"B C 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B 6B"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","132":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"257":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"readonly attribute of input and textarea elements"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js deleted file mode 100644 index 58e73ea4e2d42c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/referrer-policy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"P Q T U","132":"C K L D M N O","513":"V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V","2":"I e J E F G A B C K L D M N O f g","260":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB","513":"W X Y Z a b c R d H fB pB qB"},E:{"1":"C aB bB","2":"I e J E rB gB sB tB","132":"F G A B uB vB hB","1025":"K L D wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB","2":"G B C zB 0B 1B 2B aB iB 3B bB","513":"UB VB WB XB YB ZB P Q"},G:{"1":"FC GC HC IC","2":"gB 4B jB 5B 6B 7B","132":"F 8B 9B AC BC CC DC EC","1025":"D JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"513":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Referrer Policy"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js deleted file mode 100644 index a5dd539fb29a4c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/registerprotocolhandler.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","129":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"2":"I e J E F G A B C","129":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B zB 0B 1B 2B aB iB","129":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E","129":"A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"Custom protocol handling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js deleted file mode 100644 index af7da7988b90a6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noopener.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:1,C:"rel=noopener"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js deleted file mode 100644 index 705c378eb97bb8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rel-noreferrer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","132":"B"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L D"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Link type \"noreferrer\""}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js deleted file mode 100644 index e096d4d7978669..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rellist.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","2":"C K L D M","132":"N"},C:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p nB oB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","132":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E F rB gB sB tB uB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 x y z AB BB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"132":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I","132":"VC WC XC YC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"relList (DOMTokenList)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js deleted file mode 100644 index 5fc6b368258c1c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rem.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F kB","132":"G A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D 4B jB 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB","260":"5B"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"rem (root em) units"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js deleted file mode 100644 index a333dc9a29fbd8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestanimationframe.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","33":"B C K L D M N O f g h i","164":"I e J E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G","33":"i j","164":"O f g h","420":"A B C K L D M N"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","33":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","33":"6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"requestAnimationFrame"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js deleted file mode 100644 index 1154209e526a3a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/requestidlecallback.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB","194":"DB EB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB","322":"L D wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC","322":"D KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"requestIdleCallback"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js deleted file mode 100644 index d8a537885ca725..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resizeobserver.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB nB oB"},D:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","194":"EB FB GB HB IB dB JB eB KB LB"},E:{"1":"L D wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB bB","66":"K"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"1 2 3 4 5 6 7 8 9 AB BB"},G:{"1":"D KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"ZC hB aC bC cC dC eC","2":"I VC WC XC YC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Resize Observer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js deleted file mode 100644 index 5c49a47f25165f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/resource-timing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB","194":"r s t u"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB","260":"B"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Resource Timing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js deleted file mode 100644 index ceb56916eafb98..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rest-parameters.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"4 5 6"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q zB 0B 1B 2B aB iB 3B bB","194":"r s t"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Rest parameters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js deleted file mode 100644 index f8ba7ca4cf5c04..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/rtcpeerconnection.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L","516":"D M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB","33":"0 1 2 3 i j k l m n o p q r s t u v w x y z"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i","33":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 O f g h i j k l m n o p q r s t u v w x y z"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","130":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"1":"hC"}},B:5,C:"WebRTC Peer-to-peer connections"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js deleted file mode 100644 index 95695f7b4d6cee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ruby.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"4":"J E F G A B kB"},B:{"4":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I"},E:{"4":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"I rB gB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","8":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"4":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB"},H:{"8":"NC"},I:{"4":"cB I H RC jB SC TC","8":"OC PC QC"},J:{"4":"A","8":"E"},K:{"4":"S","8":"A B C aB iB bB"},L:{"4":"H"},M:{"1":"R"},N:{"4":"A B"},O:{"4":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"4":"gC"},S:{"1":"hC"}},B:1,C:"Ruby annotation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js deleted file mode 100644 index 30fd242862d9ce..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/run-in.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"J E kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r","2":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J sB","2":"E F G A B C K L D uB vB hB aB bB wB xB yB","16":"tB","129":"I rB gB"},F:{"1":"G B C D M N O zB 0B 1B 2B aB iB 3B bB","2":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"4B jB 5B 6B 7B","2":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","129":"gB"},H:{"1":"NC"},I:{"1":"cB I OC PC QC RC jB SC","2":"H TC"},J:{"1":"E A"},K:{"1":"A B C aB iB bB","2":"S"},L:{"2":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"display: run-in"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js deleted file mode 100644 index a241768ecaf5d0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/same-site-cookie-attribute.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","388":"B"},B:{"1":"O P Q T U V W","2":"C K L D","129":"M N","513":"X Y Z a b c R d H"},C:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB nB oB"},D:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","513":"Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"D xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB aB","2052":"L","3076":"C K bB wB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y zB 0B 1B 2B aB iB 3B bB","513":"SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC","2052":"FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"513":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"16":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:6,C:"'SameSite' cookie attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js deleted file mode 100644 index e486b2507f2b01..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/screen-orientation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","164":"B"},B:{"1":"P Q T U V W X Y Z a b c R d H","36":"C K L D M N O"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N nB oB","36":"0 1 2 3 O f g h i j k l m n o p q r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A","36":"B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"Screen Orientation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js deleted file mode 100644 index 60a0fcae9b403c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-async.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB","132":"e"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"async attribute for external scripts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js deleted file mode 100644 index 3e41ff24be3450..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/script-defer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","132":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","257":"I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"defer attribute for external scripts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js deleted file mode 100644 index 6d415ba4562320..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoview.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","132":"F G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","132":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v nB oB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB"},E:{"2":"I e rB gB","132":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B 1B 2B","16":"B aB iB","132":"0 1 2 3 4 5 6 7 C D M N O f g h i j k l m n o p q r s t u v w x y z 3B bB"},G:{"16":"gB 4B jB","132":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","16":"OC PC","132":"cB I QC RC jB SC TC"},J:{"132":"E A"},K:{"1":"S","132":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"132":"UC"},P:{"132":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:5,C:"scrollIntoView"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js deleted file mode 100644 index 973fdd4383b202..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/scrollintoviewifneeded.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"Element.scrollIntoViewIfNeeded()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js deleted file mode 100644 index edca14ba7d5aa6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sdch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","2":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB","2":"G B C UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"SDCH Accept-Encoding/Content-Encoding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js deleted file mode 100644 index e2dc353656e459..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/selection-api.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","16":"kB","260":"J E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"0 1 2 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","2180":"3 4 5 6 7 8 9 AB BB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","132":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"16":"jB","132":"gB 4B","516":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","16":"cB I OC PC QC RC","1025":"jB"},J:{"1":"A","16":"E"},K:{"1":"S","16":"A B C aB iB","132":"bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","16":"A"},O:{"1025":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2180":"hC"}},B:5,C:"Selection API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js deleted file mode 100644 index 6b8c434cd31bdc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/server-timing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB nB oB"},D:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","196":"JB eB KB LB","324":"S"},E:{"2":"I e J E F G A B C rB gB sB tB uB vB hB aB","516":"K L D bB wB xB yB"},F:{"1":"CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Server Timing"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js deleted file mode 100644 index 81ac6f15d99915..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/serviceworkers.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L","322":"D M"},C:{"1":"4 6 7 8 9 AB BB DB EB FB GB HB IB dB eB KB LB S MB NB OB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","194":"0 1 2 3 t u v w x y z","513":"5 CB JB PB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","4":"0 1 2 3 4"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E F G A B rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m zB 0B 1B 2B aB iB 3B bB","4":"n o p q r"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","4":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","4":"S"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"4":"gC"},S:{"2":"hC"}},B:4,C:"Service Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js deleted file mode 100644 index 238d30a43d9a2b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/setimmediate.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O","2":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"1":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Efficient Script Yielding: setImmediate()"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js deleted file mode 100644 index f59b92022c6b90..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sha-2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","2":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"1":"cB I H PC QC RC jB SC TC","260":"OC"},J:{"1":"E A"},K:{"1":"S","16":"A B C aB iB bB"},L:{"1":"H"},M:{"16":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","16":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"SHA-2 SSL certificates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js deleted file mode 100644 index 0ebbf34cce9c15..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdom.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P","2":"C K L D M N O Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","66":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","2":"I e J E F G A B C K L D M N O f g h i j k Q T U V W X Y Z a b c R d H fB pB qB","33":"l m n o p q r s t u"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB","2":"G B C OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB","33":"SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC","2":"cC dC eC","33":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:7,C:"Shadow DOM (deprecated V0 spec)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js deleted file mode 100644 index 136ac2345e66c7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/shadowdomv1.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB nB oB","322":"IB","578":"dB JB eB KB"},D:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"A B C K L D hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC","132":"BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I","4":"VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Shadow DOM (V1)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js deleted file mode 100644 index f2c140475a0024..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedarraybuffer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D","194":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB nB oB","194":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB","450":"VB WB XB YB ZB","513":"P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB","194":"JB eB KB LB S MB NB OB","513":"c R d H fB pB qB"},E:{"2":"I e J E F G A rB gB sB tB uB vB","194":"B C K L D hB aB bB wB xB","513":"yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","194":"7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC","194":"D CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"513":"H"},M:{"513":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Shared Array Buffer"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js deleted file mode 100644 index 2ac494937dfdd7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sharedworkers.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"e J sB","2":"I E F G A B C K L D rB gB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB 0B 1B"},G:{"1":"5B 6B","2":"F D gB 4B jB 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C aB iB bB","2":"S","16":"A"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","2":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"Shared Web Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js deleted file mode 100644 index 9b5f633931c908..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sni.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J kB","132":"E F"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB"},H:{"1":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Server Name Indication"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js deleted file mode 100644 index 804adef653e030..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spdy.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G A kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","2":"lB cB I e J E F G A B C BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","2":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"F G A B C vB hB aB","2":"I e J E rB gB sB tB uB","129":"K L D bB wB xB yB"},F:{"1":"2 4 D M N O f g h i j k l m n o p q r s t u v w x y z bB","2":"0 1 3 5 6 7 8 9 G B C AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B"},G:{"1":"F 8B 9B AC BC CC DC EC FC","2":"gB 4B jB 5B 6B 7B","257":"D GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I RC jB SC TC","2":"H OC PC QC"},J:{"2":"E A"},K:{"1":"bB","2":"A B C S aB iB"},L:{"2":"H"},M:{"2":"R"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"1":"I","2":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"16":"gC"},S:{"1":"hC"}},B:7,C:"SPDY protocol"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js deleted file mode 100644 index dbd82a2b905a82..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-recognition.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","1026":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h nB oB","322":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k","164":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L rB gB sB tB uB vB hB aB bB wB","2084":"D xB yB"},F:{"2":"G B C D M N O f g h i j k l m zB 0B 1B 2B aB iB 3B bB","1026":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC","2084":"D MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"164":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"322":"hC"}},B:7,C:"Speech Recognition API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js deleted file mode 100644 index a5f0d576b7fdff..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/speech-synthesis.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O","2":"C K","257":"P Q T U V W X Y Z a b c R d H"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q nB oB","194":"0 1 2 3 4 5 6 7 8 r s t u v w x y z"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s","257":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB","2":"G B C D M N O f g h i j k l m zB 0B 1B 2B aB iB 3B bB","257":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:7,C:"Speech Synthesis API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js deleted file mode 100644 index beb62aa3eef08e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/spellcheck-attribute.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"4":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"4":"NC"},I:{"4":"cB I H OC PC QC RC jB SC TC"},J:{"1":"A","4":"E"},K:{"4":"A B C S aB iB bB"},L:{"4":"H"},M:{"4":"R"},N:{"4":"A B"},O:{"4":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"4":"gC"},S:{"2":"hC"}},B:1,C:"Spellcheck attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js deleted file mode 100644 index 6b8dfa471aef04..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sql-storage.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C rB gB sB tB uB vB hB aB bB","2":"K L D wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC","2":"D HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:7,C:"Web SQL Database"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js deleted file mode 100644 index 7c68a97f3d61d6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/srcset.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","260":"C","514":"K L D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r nB oB","194":"s t u v w x"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t","260":"u v w x"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB tB","260":"F uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g zB 0B 1B 2B aB iB 3B bB","260":"h i j k"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","260":"F 8B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Srcset and sizes attributes"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js deleted file mode 100644 index 2e0abfcba29701..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stream.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M nB oB","129":"0 1 w x y z","420":"N O f g h i j k l m n o p q r s t u v"},D:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g","420":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B D M N zB 0B 1B 2B aB iB 3B","420":"C O f g h i j k l m n o p q r s t u v w x y z bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","513":"D KC LC MC","1537":"DC EC FC GC HC IC JC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","420":"A"},K:{"1":"S","2":"A B aB iB","420":"C bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","420":"I VC"},Q:{"1":"fC"},R:{"420":"gC"},S:{"2":"hC"}},B:4,C:"getUserMedia/Stream API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js deleted file mode 100644 index fe0430ad2c86db..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/streams.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","130":"B"},B:{"1":"a b c R d H","16":"C K","260":"L D","1028":"P Q T U V W X Y Z","5124":"M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB nB oB","6148":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","6722":"HB IB dB JB eB KB LB S"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB","260":"CB DB EB FB GB HB IB","1028":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z"},E:{"2":"I e J E F G rB gB sB tB uB vB","1028":"D xB yB","3076":"A B C K L hB aB bB wB"},F:{"1":"XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x y zB 0B 1B 2B aB iB 3B bB","260":"0 1 2 3 4 5 z","1028":"6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC","16":"BC","1028":"D CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"6148":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"eC","2":"I VC WC","1028":"XC YC ZC hB aC bC cC dC"},Q:{"1028":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"Streams"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js deleted file mode 100644 index 554907770b3db3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/stricttransportsecurity.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A kB","129":"B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Strict Transport Security"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js deleted file mode 100644 index 1307fa490e7869..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/style-scoped.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 h i j k l m n o p q r s t u v w x y z AB BB CB DB EB","2":"lB cB I e J E F G A B C K L D M N O f g eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","322":"FB GB HB IB dB JB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","194":"g h i j k l m n o p q r s t u v w"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:7,C:"Scoped CSS"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js deleted file mode 100644 index e6df0e0399aa82..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/subresource-integrity.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","194":"DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Subresource Integrity"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js deleted file mode 100644 index 72161317db9517..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-css.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","516":"C K L D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","260":"I e J E F G A B C K L D M N O f g h i j"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I"},E:{"1":"e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB","132":"I gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"gB 4B"},H:{"260":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"S","260":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"SVG in CSS backgrounds"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js deleted file mode 100644 index c4087426598b3c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-filters.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I","4":"e J E"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"SVG filters"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js deleted file mode 100644 index 4e59cca50ce702..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fonts.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"G A B kB","8":"J E F"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x","2":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","130":"0 1 2 3 4 5 6 7 8 9 y z AB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","2":"rB"},F:{"1":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB","2":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","130":"l m n o p q r s t u v w"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"258":"NC"},I:{"1":"cB I RC jB SC TC","2":"H OC PC QC"},J:{"1":"E A"},K:{"1":"A B C aB iB bB","2":"S"},L:{"130":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I","130":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"130":"gC"},S:{"2":"hC"}},B:2,C:"SVG fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js deleted file mode 100644 index a8a8cb85b52a29..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-fragment.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","260":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v","132":"0 1 2 3 4 5 6 7 8 9 w x y z"},E:{"1":"C K L D aB bB wB xB yB","2":"I e J E G A B rB gB sB tB vB hB","132":"F uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"D M N O f g h i","4":"B C 0B 1B 2B aB iB 3B","16":"G zB","132":"j k l m n o p q r s t u v w"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B 9B AC BC CC DC","132":"F 8B"},H:{"1":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E","132":"A"},K:{"1":"S bB","4":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","132":"I"},Q:{"1":"fC"},R:{"132":"gC"},S:{"1":"hC"}},B:4,C:"SVG fragment identifiers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js deleted file mode 100644 index 637650a464ee52..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","388":"G A B"},B:{"4":"P Q T U V W X Y Z a b c R d H","260":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB","4":"cB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"rB gB","4":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"4":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","4":"H SC TC"},J:{"1":"A","2":"E"},K:{"4":"A B C S aB iB bB"},L:{"4":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"4":"gC"},S:{"1":"hC"}},B:2,C:"SVG effects for HTML"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js deleted file mode 100644 index 9a1f635873e404..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-html5.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F","129":"G A B"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","129":"C K L D M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","8":"I e J"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","8":"I e rB gB","129":"J E F sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"B 2B aB iB","8":"G zB 0B 1B"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","8":"gB 4B jB","129":"F 5B 6B 7B 8B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"OC PC QC","129":"cB I RC jB"},J:{"1":"A","129":"E"},K:{"1":"C S bB","8":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"129":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Inline SVG in HTML5"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js deleted file mode 100644 index b189a89c091a34..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-img.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j k l m n"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"rB","4":"gB","132":"I e J E F sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"F gB 4B jB 5B 6B 7B 8B"},H:{"1":"NC"},I:{"1":"H SC TC","2":"OC PC QC","132":"cB I RC jB"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"SVG in HTML img element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js deleted file mode 100644 index 6e41f88d5e38ff..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg-smil.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","8":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","8":"rB gB","132":"I e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"gB 4B jB 5B"},H:{"2":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"SVG SMIL animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js deleted file mode 100644 index c1efd5a95a5f60..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/svg.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F","772":"G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","513":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","4":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","4":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"H SC TC","2":"OC PC QC","132":"cB I RC jB"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"257":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"SVG (basic support)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js deleted file mode 100644 index ea8ec7bf973f71..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/sxg.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB","132":"SB TB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"16":"UC"},P:{"1":"aC bC cC dC eC","2":"I VC WC XC YC ZC hB"},Q:{"16":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:6,C:"Signed HTTP Exchanges (SXG)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js deleted file mode 100644 index 510eb5eeee14b0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tabindex-attr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"E F G A B","16":"J kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"16":"lB cB nB oB","129":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"16":"I e rB gB","257":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"769":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"16":"cB I H OC PC QC RC jB SC TC"},J:{"16":"E A"},K:{"16":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"16":"A B"},O:{"16":"UC"},P:{"16":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"16":"gC"},S:{"129":"hC"}},B:1,C:"tabindex global attribute"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js deleted file mode 100644 index 632047357b2fc3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template-literals.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"K L D M N O P Q T U V W X Y Z a b c R d H","16":"C"},C:{"1":"0 1 2 3 4 5 6 7 8 9 u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t nB oB"},D:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"A B K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB","129":"C"},F:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D 9B AC BC CC DC EC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B","129":"FC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ES6 Template Literals (Template Strings)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js deleted file mode 100644 index ddb3b2fbf2ebdb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/template.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"D M N O P Q T U V W X Y Z a b c R d H","2":"C","388":"K L"},C:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l","132":"m n o p q r s t u"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","2":"I e J E rB gB sB","388":"F uB","514":"tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","132":"D M N O f g h"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B","388":"F 8B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"HTML templates"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js deleted file mode 100644 index a5360d11ccf376..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/temporal.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"Temporal"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js deleted file mode 100644 index 983c14baef8258..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/testfeat.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F A B kB","16":"G"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","16":"I e"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"B C"},E:{"2":"I J rB gB sB","16":"e E F G A B C K L D tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B iB 3B bB","16":"aB"},G:{"2":"gB 4B jB 5B 6B","16":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC RC jB SC TC","16":"QC"},J:{"2":"A","16":"E"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Test feature - updated"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js deleted file mode 100644 index 2be5dee9376fec..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-decoration.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","2052":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e nB oB","1028":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","1060":"J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l","226":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB","2052":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E rB gB sB tB","772":"K L D bB wB xB yB","804":"F G A B C vB hB aB","1316":"uB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u zB 0B 1B 2B aB iB 3B bB","226":"0 1 2 3 v w x y z","2052":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"gB 4B jB 5B 6B 7B","292":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"2052":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2052":"UC"},P:{"2":"I VC WC","2052":"XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"1":"gC"},S:{"1028":"hC"}},B:4,C:"text-decoration styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js deleted file mode 100644 index 4ca48e9fbdcdee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-emphasis.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","164":"P Q T U V W X Y Z a b c R d H"},C:{"1":"6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","322":"5"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k","164":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB","164":"E tB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","164":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB","164":"H SC TC"},J:{"2":"E","164":"A"},K:{"2":"A B C aB iB bB","164":"S"},L:{"164":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"164":"UC"},P:{"164":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"164":"fC"},R:{"164":"gC"},S:{"1":"hC"}},B:4,C:"text-emphasis styling"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js deleted file mode 100644 index f5e6727b5d1f61..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-overflow.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B","2":"kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","8":"lB cB I e J nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","33":"G zB 0B 1B 2B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"S bB","33":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 Text-overflow"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js deleted file mode 100644 index 20e9ec74f135fd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-size-adjust.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","33":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l n o p q r s t u v w x y z AB BB CB DB","258":"m"},E:{"2":"I e J E F G A B C K L D rB gB tB uB vB hB aB bB wB xB yB","258":"sB"},F:{"1":"3 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 4 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"2":"gB 4B jB","33":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"33":"R"},N:{"161":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS text-size-adjust"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js deleted file mode 100644 index c2e203b8a6a1de..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-stroke.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L","33":"P Q T U V W X Y Z a b c R d H","161":"D M N O"},C:{"2":"0 1 2 3 4 5 6 7 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","161":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","450":"8"},D:{"33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"33":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"33":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","36":"gB"},H:{"2":"NC"},I:{"2":"cB","33":"I H OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"2":"A B C aB iB bB","33":"S"},L:{"33":"H"},M:{"161":"R"},N:{"2":"A B"},O:{"33":"UC"},P:{"33":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"33":"fC"},R:{"33":"gC"},S:{"161":"hC"}},B:7,C:"CSS text-stroke and text-fill"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js deleted file mode 100644 index 44e76248f69ae9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/text-underline-offset.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB nB oB","130":"QB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"K L D bB wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"text-underline-offset"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js deleted file mode 100644 index a3d5db9113028a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textcontent.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Node.textContent"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js deleted file mode 100644 index b5c862a31cfed1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/textencoder.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O nB oB","132":"f"},D:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"TextEncoder & TextDecoder"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js deleted file mode 100644 index d32adbf762e05b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-1.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E kB","66":"F G A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB","2":"lB cB I e J E F G A B C K L D M N O f g h i nB oB","66":"j","129":"PB QB RB SB TB UB VB WB XB YB","388":"ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V","2":"I e J E F G A B C K L D M N O f g h","1540":"W X Y Z a b c R d H fB pB qB"},E:{"1":"E F G A B C K uB vB hB aB bB","2":"I e J rB gB sB tB","513":"L D wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB bB","2":"G B C zB 0B 1B 2B aB iB 3B","1540":"UB VB WB XB YB ZB P Q"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"129":"R"},N:{"1":"B","66":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"TLS 1.1"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js deleted file mode 100644 index 42ded3c3b1ab90..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E kB","66":"F G A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j nB oB","66":"k l m"},D:{"1":"0 1 2 3 4 5 6 7 8 9 p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G D zB","66":"B C 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"S bB","2":"A B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","66":"A"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"TLS 1.2"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js deleted file mode 100644 index 4690f0feb0b528..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/tls1-3.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB nB oB","132":"JB eB KB","450":"BB CB DB EB FB GB HB IB dB"},D:{"1":"RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","706":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB"},E:{"1":"L D xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB","1028":"K bB wB"},F:{"1":"HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB","706":"EB FB GB"},G:{"1":"D GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"hB aC bC cC dC eC","2":"I VC WC XC YC ZC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:6,C:"TLS 1.3"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js deleted file mode 100644 index 68fab016551f8c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/token-binding.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L","194":"P Q T U V W X Y Z a b c R d H","257":"D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d nB oB","16":"H fB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y","16":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB","194":"IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F rB gB sB tB uB","16":"G A B C K L D vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB","16":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F gB 4B jB 5B 6B 7B 8B","16":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"16":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","16":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","16":"S"},L:{"16":"H"},M:{"16":"R"},N:{"2":"A","16":"B"},O:{"16":"UC"},P:{"16":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"16":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:6,C:"Token Binding"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js deleted file mode 100644 index 1f81e2bc43a120..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/touch.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","8":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","578":"C K L D M N O"},C:{"1":"O f g h i j k CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","4":"I e J E F G A B C K L D M N","194":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A","260":"B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:2,C:"Touch events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js deleted file mode 100644 index 17de0406bc7306..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms2d.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F","129":"A B","161":"G"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","129":"C K L D M"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","33":"I e J E F G A B C K L D nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","33":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G zB 0B","33":"B C D M N O f g h i 1B 2B aB iB 3B"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","33":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","33":"cB I OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"CSS3 2D Transforms"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js deleted file mode 100644 index f61a1debf2402b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/transforms3d.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G nB oB","33":"A B C K L D"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B","33":"C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"yB","2":"rB gB","33":"I e J E F sB tB uB","257":"G A B C K L D vB hB aB bB wB xB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"D M N O f g h i"},G:{"33":"F gB 4B jB 5B 6B 7B 8B","257":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"OC PC QC","33":"cB I RC jB SC TC"},J:{"33":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS3 3D Transforms"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js deleted file mode 100644 index fec396d647a694..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/trusted-types.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"U V W X Y Z a b c R d H","2":"C K L D M N O P Q T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"cC dC eC","2":"I VC WC XC YC ZC hB aC bC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Trusted Types for DOM manipulation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js deleted file mode 100644 index 72eb87657e92ac..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/ttf.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 0B 1B 2B aB iB 3B bB","2":"G zB"},G:{"1":"F D jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B"},H:{"2":"NC"},I:{"1":"cB I H PC QC RC jB SC TC","2":"OC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"TTF/OTF - TrueType and OpenType font support"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js deleted file mode 100644 index 2935236ff12732..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/typedarrays.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"B","2":"J E F G kB","132":"A"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB","260":"sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B","260":"jB"},H:{"1":"NC"},I:{"1":"I H RC jB SC TC","2":"cB OC PC QC"},J:{"1":"A","2":"E"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Typed Arrays"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js deleted file mode 100644 index 4ed6a4b6898cc6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/u2f.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","513":"P Q T U V W X Y Z a b c R d H"},C:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","322":"7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB"},D:{"2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x","130":"0 y z","513":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB bB"},F:{"2":"1 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","513":"0 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"D JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"322":"hC"}},B:6,C:"FIDO U2F API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js deleted file mode 100644 index f825d536bae707..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/unhandledrejection.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB nB oB"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","16":"DC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:1,C:"unhandledrejection/rejectionhandled events"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js deleted file mode 100644 index e130d0e2ffbd21..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/upgradeinsecurerequests.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Upgrade Insecure Requests"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js deleted file mode 100644 index d253269d665383..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url-scroll-to-text-fragment.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"U V W X Y Z a b c R d H","2":"C K L D M N O","66":"P Q T"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB","66":"VB WB XB YB ZB P Q"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB zB 0B 1B 2B aB iB 3B bB","66":"NB OB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"cC dC eC","2":"I VC WC XC YC ZC hB aC bC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"URL Scroll-To-Text Fragment"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js deleted file mode 100644 index fad6f32bbaca23..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/url.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i","130":"j k l m n o p q r"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I e J rB gB sB tB","130":"E"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","130":"D M N O"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B","130":"7B"},H:{"2":"NC"},I:{"1":"H TC","2":"cB I OC PC QC RC jB","130":"SC"},J:{"2":"E","130":"A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"URL API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js deleted file mode 100644 index 29e524d2331e49..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/urlsearchparams.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","132":"0 1 2 3 p q r s t u v w x y z"},D:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"B C K L D hB aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","2":"I"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"URLSearchParams"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js deleted file mode 100644 index f7b1208aa0d990..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/use-strict.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I rB gB","132":"e sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"1":"NC"},I:{"1":"cB I H RC jB SC TC","2":"OC PC QC"},J:{"1":"E A"},K:{"1":"C S iB bB","2":"A B aB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"ECMAScript 5 Strict Mode"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js deleted file mode 100644 index fe33112e44b4d3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-select-none.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","33":"A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","33":"C K L D M N O"},C:{"1":"QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","33":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB nB oB"},D:{"1":"EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","33":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB"},E:{"33":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"1 2 3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","33":"0 D M N O f g h i j k l m n o p q r s t u v w x y z"},G:{"33":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","33":"cB I OC PC QC RC jB SC TC"},J:{"33":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"33":"A B"},O:{"2":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","33":"I VC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"33":"hC"}},B:5,C:"CSS user-select: none"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js deleted file mode 100644 index 2eaad2d916924c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/user-timing.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"User Timing API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js deleted file mode 100644 index 539aafa45ef131..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/variable-fonts.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"N O P Q T U V W X Y Z a b c R d H","2":"C K L D M"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB nB oB","4609":"KB LB S MB NB OB PB QB RB","4674":"eB","5698":"JB","7490":"DB EB FB GB HB","7746":"IB dB","8705":"SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB","4097":"NB","4290":"dB JB eB","6148":"KB LB S MB"},E:{"1":"D yB","2":"I e J E F G A rB gB sB tB uB vB hB","4609":"B C aB bB","8193":"K L wB xB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","4097":"DB","6148":"9 AB BB CB"},G:{"1":"D HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","4097":"DC EC FC GC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"4097":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC","4097":"YC ZC hB aC bC cC dC eC"},Q:{"4097":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"Variable fonts"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js deleted file mode 100644 index 10e8db7115cbd7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vector-effect.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","2":"G B zB 0B 1B 2B aB iB"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"1":"NC"},I:{"1":"H SC TC","16":"cB I OC PC QC RC jB"},J:{"16":"E A"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"SVG vector-effect: non-scaling-stroke"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js deleted file mode 100644 index bd63faac86b179..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/vibration.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A nB oB","33":"B C K L D"},D:{"1":"0 1 2 3 4 5 6 7 8 9 q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"Vibration API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js deleted file mode 100644 index 3959169b9ae42d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/video.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","260":"I e J E F G A B C K L D M N O f nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A sB tB uB vB hB","2":"rB gB","513":"B C K L D aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","513":"D DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","132":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Video element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js deleted file mode 100644 index 238299ab223865..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/videotracks.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O","322":"P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","194":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","322":"5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e J rB gB sB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r zB 0B 1B 2B aB iB 3B bB","322":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"322":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:1,C:"Video Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-unit-variants.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-unit-variants.js deleted file mode 100644 index 87e7145dcbc7b1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-unit-variants.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Large, Small, and Dynamic viewport units"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js deleted file mode 100644 index b6babbb6bce7e0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/viewport-units.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","132":"G","260":"A B"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","260":"C K L D"},C:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f","260":"g h i j k l"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB","260":"J"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B","516":"7B","772":"6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"260":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"Viewport units: vw, vh, vmin, vmax"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js deleted file mode 100644 index d3ca0b8378108f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wai-aria.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","4":"F G A B"},B:{"4":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"4":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"rB gB","4":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G","4":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"4":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"4":"NC"},I:{"2":"cB I OC PC QC RC jB","4":"H SC TC"},J:{"2":"E A"},K:{"4":"A B C S aB iB bB"},L:{"4":"H"},M:{"4":"R"},N:{"4":"A B"},O:{"2":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"4":"gC"},S:{"4":"hC"}},B:2,C:"WAI-ARIA Accessibility features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js deleted file mode 100644 index 63206479c2496c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wake-lock.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"b c R d H","2":"C K L D M N O","194":"P Q T U V W X Y Z a"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB","194":"SB TB UB VB WB XB YB ZB P Q T U V"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB zB 0B 1B 2B aB iB 3B bB","194":"IB JB KB LB S MB NB OB PB QB RB SB TB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"dC eC","2":"I VC WC XC YC ZC hB aC bC cC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:4,C:"Screen Wake Lock API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js deleted file mode 100644 index 842af72441e223..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wasm.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"M N O P Q T U V W X Y Z a b c R d H","2":"C K L","578":"D"},C:{"1":"DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB","194":"7 8 9 AB BB","1025":"CB"},D:{"1":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB","322":"BB CB DB EB FB GB"},E:{"1":"B C K L D aB bB wB xB yB","2":"I e J E F G A rB gB sB tB uB vB hB"},F:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j k l m n o p q r s t u v w x zB 0B 1B 2B aB iB 3B bB","322":"0 1 2 3 y z"},G:{"1":"D DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"194":"hC"}},B:6,C:"WebAssembly"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js deleted file mode 100644 index 5113cda5436b7f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wav.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 1B 2B aB iB 3B bB","2":"G zB 0B"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","16":"A"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"Wav audio format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js deleted file mode 100644 index f6ce11bbdf33e2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wbr-element.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E kB","2":"F G A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D gB sB tB uB vB hB aB bB wB xB yB","16":"rB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","16":"G"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB"},H:{"1":"NC"},I:{"1":"cB I H QC RC jB SC TC","16":"OC PC"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"wbr (word break opportunity) element"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js deleted file mode 100644 index 9cfe1815d011fc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-animation.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"V W X Y Z a b c R d H","2":"C K L D M N O","260":"P Q T U"},C:{"1":"T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s nB oB","260":"dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB","516":"7 8 9 AB BB CB DB EB FB GB HB IB","580":"0 1 2 3 4 5 6 t u v w x y z","2049":"WB XB YB ZB P Q"},D:{"1":"V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v","132":"w x y","260":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U"},E:{"1":"D yB","2":"I e J E F G A rB gB sB tB uB vB hB","1090":"B C K aB bB","2049":"L wB xB"},F:{"1":"SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i zB 0B 1B 2B aB iB 3B bB","132":"j k l","260":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC","1090":"DC EC FC GC HC IC JC","2049":"D KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"260":"UC"},P:{"260":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"260":"fC"},R:{"260":"gC"},S:{"516":"hC"}},B:5,C:"Web Animations API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js deleted file mode 100644 index 52a712e82c6ae2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-app-manifest.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M","130":"N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB X Y Z a b c R d H fB nB oB","578":"XB YB ZB P Q T mB U V W"},D:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC","260":"D EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"2":"hC"}},B:5,C:"Add to home screen (A2HS)"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js deleted file mode 100644 index 36cd5a37b59670..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-bluetooth.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","1025":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","194":"5 6 7 8 9 AB BB CB","706":"DB EB FB","1025":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C D M N O f g h i j k l m n o p q r s t u v zB 0B 1B 2B aB iB 3B bB","450":"w x y z","706":"0 1 2","1025":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC TC","1025":"H"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","1025":"S"},L:{"1025":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"WC XC YC ZC hB aC bC cC dC eC","2":"I VC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Web Bluetooth"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js deleted file mode 100644 index 10cf63b12aaf35..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-serial.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O","66":"P Q T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB","66":"ZB P Q T U V W X Y Z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S zB 0B 1B 2B aB iB 3B bB","66":"MB NB OB PB QB RB SB TB UB VB WB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Web Serial API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js deleted file mode 100644 index f93fa2523d713c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/web-share.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P Q","516":"T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z","130":"O f g h i j k","1028":"a b c R d H fB pB qB"},E:{"1":"L D xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB","2049":"K bB wB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC","2049":"GC HC IC JC KC"},H:{"2":"NC"},I:{"2":"cB I OC PC QC RC jB SC","258":"H TC"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","258":"S"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I","258":"VC WC XC"},Q:{"2":"fC"},R:{"16":"gC"},S:{"2":"hC"}},B:5,C:"Web Share API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js deleted file mode 100644 index 3f427ebb3950de..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webauthn.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","2":"C","226":"K L D M N"},C:{"1":"JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB nB oB"},D:{"1":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB"},E:{"1":"K L D wB xB yB","2":"I e J E F G A B C rB gB sB tB uB vB hB aB","322":"bB"},F:{"1":"EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC","578":"IC","2052":"LC","3076":"JC KC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:2,C:"Web Authentication API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js deleted file mode 100644 index 6b105dd7ee3edf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"kB","8":"J E F G A","129":"B"},B:{"1":"P Q T U V W X Y Z a b c R d H","129":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","129":"I e J E F G A B C K L D M N O f g h i j"},D:{"1":"0 1 2 3 4 5 6 7 8 9 t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E","129":"F G A B C K L D M N O f g h i j k l m n o p q r s"},E:{"1":"F G A B C K L D vB hB aB bB wB xB yB","2":"I e rB gB","129":"J E sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B zB 0B 1B 2B aB iB 3B","129":"C D M N O bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B 7B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"1":"A","2":"E"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A","129":"B"},O:{"129":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"129":"hC"}},B:6,C:"WebGL - 3D Canvas graphics"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js deleted file mode 100644 index 1e7b1b6dbfc885..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgl2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k nB oB","194":"2 3 4","450":"0 1 l m n o p q r s t u v w x y z","2242":"5 6 7 8 9 AB"},D:{"1":"GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z","578":"3 4 5 6 7 8 9 AB BB CB DB EB FB"},E:{"1":"D yB","2":"I e J E F G A rB gB sB tB uB vB","1090":"B C K L hB aB bB wB xB"},F:{"1":"3 4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 1 2 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC","1090":"FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"XC YC ZC hB aC bC cC dC eC","2":"I VC WC"},Q:{"578":"fC"},R:{"2":"gC"},S:{"2242":"hC"}},B:6,C:"WebGL 2.0"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js deleted file mode 100644 index 186475682e51a0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webgpu.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P","578":"Q T U V W X Y Z a b c R d","1602":"H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB nB oB","194":"LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P","578":"Q T U V W X Y Z a b c R d","1602":"H fB pB qB"},E:{"2":"I e J E F G A B rB gB sB tB uB vB hB","322":"C K L D aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB zB 0B 1B 2B aB iB 3B bB","578":"UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"194":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"WebGPU"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js deleted file mode 100644 index d7abbd98a05050..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webhid.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"a b c R d H","2":"C K L D M N O","66":"P Q T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB","66":"ZB P Q T U V W X Y Z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"XB YB ZB P Q","2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB zB 0B 1B 2B aB iB 3B bB","66":"NB OB PB QB RB SB TB UB VB WB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"WebHID API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js deleted file mode 100644 index 7879229ff30731..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webkit-user-drag.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","132":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"16":"I e J E F G A B C K L D","132":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"G B C zB 0B 1B 2B aB iB 3B bB","132":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"CSS -webkit-user-drag property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js deleted file mode 100644 index 7f02c987be53ea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webm.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F kB","520":"G A B"},B:{"1":"P Q T U V W X Y Z a b c R d H","8":"C K","388":"L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","132":"I e J E F G A B C K L D M N O f g h i j k l m n"},D:{"1":"0 1 2 3 4 5 6 7 8 9 l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e","132":"J E F G A B C K L D M N O f g h i j k"},E:{"2":"rB","8":"I e gB sB","520":"J E F G A B C tB uB vB hB aB","1028":"K bB wB","7172":"L","8196":"D xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B 1B","132":"B C D 2B aB iB 3B bB"},G:{"2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC","1028":"GC HC IC JC KC","3076":"D LC MC"},H:{"2":"NC"},I:{"1":"H","2":"OC PC","132":"cB I QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"8":"A B"},O:{"1":"UC"},P:{"1":"VC WC XC YC ZC hB aC bC cC dC eC","132":"I"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:6,C:"WebM video format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js deleted file mode 100644 index 31b54975ee8013..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webnfc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O P a b c R d H","450":"Q T U V W X Y Z"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P a b c R d H fB pB qB","450":"Q T U V W X Y Z"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB zB 0B 1B 2B aB iB 3B bB","450":"OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"257":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"Web NFC"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js deleted file mode 100644 index c1a38e52d99b15..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webp.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","2":"C K L D M N"},C:{"1":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","8":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S"},D:{"1":"0 1 2 3 4 5 6 7 8 9 s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e","8":"J E F","132":"G A B C K L D M N O f g h i","260":"j k l m n o p q r"},E:{"2":"I e J E F G A B C K rB gB sB tB uB vB hB aB bB wB","516":"L D xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G zB 0B 1B","8":"B 2B","132":"aB iB 3B","260":"C D M N O bB"},G:{"1":"D LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC"},H:{"1":"NC"},I:{"1":"H jB SC TC","2":"cB OC PC QC","132":"I RC"},J:{"2":"E A"},K:{"1":"C S aB iB bB","2":"A","132":"B"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"8":"hC"}},B:7,C:"WebP image format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js deleted file mode 100644 index 78b14b13260fad..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/websockets.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB nB oB","132":"I e","292":"J E F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L","260":"D"},E:{"1":"E F G A B C K L D uB vB hB aB bB wB xB yB","2":"I rB gB","132":"e sB","260":"J tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G zB 0B 1B 2B","132":"B C aB iB 3B"},G:{"1":"F D 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B","132":"jB 5B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","129":"E"},K:{"1":"S bB","2":"A","132":"B C aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Web Sockets"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js deleted file mode 100644 index 76e40a17a21d59..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webusb.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB","66":"EB FB GB HB IB dB JB"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"0 G B C D M N O f g h i j k l m n o p q r s t u v w x y z zB 0B 1B 2B aB iB 3B bB","66":"1 2 3 4 5 6 7"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"1":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"1":"YC ZC hB aC bC cC dC eC","2":"I VC WC XC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:7,C:"WebUSB"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js deleted file mode 100644 index 26f22e4d2ba920..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L Q T U V W X Y Z a b c R d H","66":"P","257":"D M N O"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB nB oB","129":"FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","194":"EB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB Q T U V W X Y Z a b c R d H fB pB qB","66":"HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P"},E:{"2":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"2":"0 1 2 3 G B C D M N O f g h i j k l m n o p q r s t u v w x y z OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","66":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB JB KB LB S MB NB"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C S aB iB bB"},L:{"2":"H"},M:{"2":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"513":"I","516":"VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"2":"fC"},R:{"66":"gC"},S:{"2":"hC"}},B:7,C:"WebVR API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js deleted file mode 100644 index d6214be3d47aed..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webvtt.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"2":"lB cB I e J E F G A B C K L D M N O f g h i j nB oB","66":"k l m n o p q","129":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N"},E:{"1":"J E F G A B C K L D tB uB vB hB aB bB wB xB yB","2":"I e rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB I OC PC QC RC jB"},J:{"1":"A","2":"E"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"B","2":"A"},O:{"2":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"129":"hC"}},B:5,C:"WebVTT - Web Video Text Tracks"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js deleted file mode 100644 index adb158f0dc737c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webworkers.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","2":"kB","8":"J E F G"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","8":"lB cB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","8":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 2B aB iB 3B bB","2":"G zB","8":"0B 1B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H OC SC TC","2":"cB I PC QC RC jB"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","8":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Web Workers"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js deleted file mode 100644 index 79b8074d9ea2ee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/webxr.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"2":"C K L D M N O","132":"P Q T U V W X Y Z a b c R d H"},C:{"2":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB nB oB","322":"YB ZB P Q T mB U V W X Y Z a b c R d H fB"},D:{"2":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S","66":"MB NB OB PB QB RB SB TB UB VB WB XB YB ZB","132":"P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"2":"I e J E F G A B C rB gB sB tB uB vB hB aB bB","578":"K L D wB xB yB"},F:{"2":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB zB 0B 1B 2B aB iB 3B bB","66":"CB DB EB FB GB HB IB JB KB LB S MB","132":"NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q"},G:{"2":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"2":"NC"},I:{"2":"cB I H OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"2":"A B C aB iB bB","132":"S"},L:{"132":"H"},M:{"322":"R"},N:{"2":"A B"},O:{"2":"UC"},P:{"2":"I VC WC XC YC ZC hB aC","132":"bC cC dC eC"},Q:{"2":"fC"},R:{"2":"gC"},S:{"2":"hC"}},B:5,C:"WebXR Device API"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js deleted file mode 100644 index 8a8ad69a492d66..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/will-change.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"P Q T U V W X Y Z a b c R d H","2":"C K L D M N O"},C:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o nB oB","194":"p q r s t u v"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"A B C K L D vB hB aB bB wB xB yB","2":"I e J E F G rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i j zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS will-change property"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js deleted file mode 100644 index 5c600f28efc93e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB oB","2":"lB cB nB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I"},E:{"1":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"I e rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q aB iB 3B bB","2":"G B zB 0B 1B 2B"},G:{"1":"F D 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB"},H:{"2":"NC"},I:{"1":"H SC TC","2":"cB OC PC QC RC jB","130":"I"},J:{"1":"E A"},K:{"1":"B C S aB iB bB","2":"A"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:2,C:"WOFF - Web Open Font Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js deleted file mode 100644 index 2ff4e165722406..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/woff2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G A B kB"},B:{"1":"L D M N O P Q T U V W X Y Z a b c R d H","2":"C K"},C:{"1":"0 1 2 3 4 5 6 7 8 9 z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","2":"I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v"},E:{"1":"C K L D bB wB xB yB","2":"I e J E F G rB gB sB tB uB vB","132":"A B hB aB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C D M N O f g h i zB 0B 1B 2B aB iB 3B bB"},G:{"1":"D BC CC DC EC FC GC HC IC JC KC LC MC","2":"F gB 4B jB 5B 6B 7B 8B 9B AC"},H:{"2":"NC"},I:{"1":"H","2":"cB I OC PC QC RC jB SC TC"},J:{"2":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"2":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"WOFF 2.0 - Web Open Font Format"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js deleted file mode 100644 index 3f21a9cbee8b6f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/word-break.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"J E F G A B kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB I e J E F G A B C K L nB oB"},D:{"1":"4 5 6 7 8 9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"0 1 2 3 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z"},E:{"1":"G A B C K L D vB hB aB bB wB xB yB","4":"I e J E F rB gB sB tB uB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","2":"G B C zB 0B 1B 2B aB iB 3B bB","4":"D M N O f g h i j k l m n o p q"},G:{"1":"D 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","4":"F gB 4B jB 5B 6B 7B 8B"},H:{"2":"NC"},I:{"1":"H","4":"cB I OC PC QC RC jB SC TC"},J:{"4":"E A"},K:{"1":"S","2":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"4":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:5,C:"CSS3 word-break"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js deleted file mode 100644 index e8c347fec187c2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/wordwrap.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"4":"J E F G A B kB"},B:{"1":"O P Q T U V W X Y Z a b c R d H","4":"C K L D M N"},C:{"1":"9 AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","4":"0 1 2 3 4 5 6 7 8 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","4":"I e J E F G A B C K L D M N O f g h i"},E:{"1":"E F G A B C K L D tB uB vB hB aB bB wB xB yB","4":"I e J rB gB sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G zB 0B","4":"B C 1B 2B aB iB 3B"},G:{"1":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","4":"gB 4B jB 5B 6B"},H:{"4":"NC"},I:{"1":"H SC TC","4":"cB I OC PC QC RC jB"},J:{"1":"A","4":"E"},K:{"1":"S","4":"A B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"4":"hC"}},B:5,C:"CSS3 Overflow-wrap"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js deleted file mode 100644 index 1f82438d1ffaa9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-doc-messaging.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E kB","132":"F G","260":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB","2":"lB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","2":"rB gB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB","2":"G"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"4":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"Cross-document messaging"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js deleted file mode 100644 index e66814660d8ca1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/x-frame-options.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"F G A B","2":"J E kB"},B:{"1":"C K L D M N O","4":"P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB","4":"I e J E F G A B C K L D M N RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","16":"lB cB nB oB"},D:{"4":"0 1 2 3 4 5 6 7 8 9 m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J E F G A B C K L D M N O f g h i j k l"},E:{"4":"J E F G A B C K L D sB tB uB vB hB aB bB wB xB yB","16":"I e rB gB"},F:{"4":"0 1 2 3 4 5 6 7 8 9 C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q 3B bB","16":"G B zB 0B 1B 2B aB iB"},G:{"4":"F D 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","16":"gB 4B jB 5B 6B"},H:{"2":"NC"},I:{"4":"I H RC jB SC TC","16":"cB OC PC QC"},J:{"4":"E A"},K:{"4":"S bB","16":"A B C aB iB"},L:{"4":"H"},M:{"4":"R"},N:{"1":"A B"},O:{"4":"UC"},P:{"4":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"4":"fC"},R:{"4":"gC"},S:{"1":"hC"}},B:6,C:"X-Frame-Options HTTP header"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js deleted file mode 100644 index 64d087d42e521a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhr2.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"J E F G kB","132":"A B"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","2":"lB cB","260":"A B","388":"J E F G","900":"I e nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","16":"I e J","132":"p q","388":"E F G A B C K L D M N O f g h i j k l m n o"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","2":"I rB gB","132":"E tB","388":"e J sB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 C O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q bB","2":"G B zB 0B 1B 2B aB iB 3B","132":"D M N"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","2":"gB 4B jB","132":"7B","388":"5B 6B"},H:{"2":"NC"},I:{"1":"H TC","2":"OC PC QC","388":"SC","900":"cB I RC jB"},J:{"132":"A","388":"E"},K:{"1":"C S bB","2":"A B aB iB"},L:{"1":"H"},M:{"1":"R"},N:{"132":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:1,C:"XMLHttpRequest advanced features"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js deleted file mode 100644 index c40c5e521e1a9d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtml.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"G A B","2":"J E F kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"1":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"1":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"1":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"1":"NC"},I:{"1":"cB I H OC PC QC RC jB SC TC"},J:{"1":"E A"},K:{"1":"A B C S aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"2":"gC"},S:{"1":"hC"}},B:1,C:"XHTML served as application/xhtml+xml"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js deleted file mode 100644 index de58484093be76..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xhtmlsmil.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"2":"G A B kB","4":"J E F"},B:{"2":"C K L D M N O","8":"P Q T U V W X Y Z a b c R d H"},C:{"8":"0 1 2 3 4 5 6 7 8 9 lB cB I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB nB oB"},D:{"8":"0 1 2 3 4 5 6 7 8 9 I e J E F G A B C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB"},E:{"8":"I e J E F G A B C K L D rB gB sB tB uB vB hB aB bB wB xB yB"},F:{"8":"0 1 2 3 4 5 6 7 8 9 G B C D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q zB 0B 1B 2B aB iB 3B bB"},G:{"8":"F D gB 4B jB 5B 6B 7B 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC"},H:{"8":"NC"},I:{"8":"cB I H OC PC QC RC jB SC TC"},J:{"8":"E A"},K:{"8":"A B C S aB iB bB"},L:{"8":"H"},M:{"8":"R"},N:{"2":"A B"},O:{"8":"UC"},P:{"8":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"8":"fC"},R:{"8":"gC"},S:{"8":"hC"}},B:7,C:"XHTML+SMIL animation"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js deleted file mode 100644 index b709a6d274ecb1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/features/xml-serializer.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={A:{A:{"1":"A B","260":"J E F G kB"},B:{"1":"C K L D M N O P Q T U V W X Y Z a b c R d H"},C:{"1":"0 1 2 3 4 5 6 7 8 9 C K L D M N O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T mB U V W X Y Z a b c R d H fB","132":"B","260":"lB cB I e J E nB oB","516":"F G A"},D:{"1":"0 1 2 3 4 5 6 7 8 9 r s t u v w x y z AB BB CB DB EB FB GB HB IB dB JB eB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q T U V W X Y Z a b c R d H fB pB qB","132":"I e J E F G A B C K L D M N O f g h i j k l m n o p q"},E:{"1":"F G A B C K L D uB vB hB aB bB wB xB yB","132":"I e J E rB gB sB tB"},F:{"1":"0 1 2 3 4 5 6 7 8 9 O f g h i j k l m n o p q r s t u v w x y z AB BB CB DB EB FB GB HB IB JB KB LB S MB NB OB PB QB RB SB TB UB VB WB XB YB ZB P Q","16":"G zB","132":"B C D M N 0B 1B 2B aB iB 3B bB"},G:{"1":"F D 8B 9B AC BC CC DC EC FC GC HC IC JC KC LC MC","132":"gB 4B jB 5B 6B 7B"},H:{"132":"NC"},I:{"1":"H SC TC","132":"cB I OC PC QC RC jB"},J:{"132":"E A"},K:{"1":"S","16":"A","132":"B C aB iB bB"},L:{"1":"H"},M:{"1":"R"},N:{"1":"A B"},O:{"1":"UC"},P:{"1":"I VC WC XC YC ZC hB aC bC cC dC eC"},Q:{"1":"fC"},R:{"1":"gC"},S:{"1":"hC"}},B:4,C:"DOM Parsing and Serialization"}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js deleted file mode 100644 index 0bfed85e515542..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.02186,"47":0.02186,"52":0.01639,"70":0.05464,"72":0.02186,"78":0.14206,"80":0.01093,"86":0.02186,"87":0.01639,"88":0.02186,"89":0.03278,"90":0.02186,"91":1.81405,"92":4.26738,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 73 74 75 76 77 79 81 82 83 84 85 93 94 3.5 3.6"},D:{"43":0.01093,"47":0.01093,"49":1.25672,"50":0.00546,"60":0.01639,"62":0.02186,"65":0.01093,"66":0.01093,"67":0.01093,"69":0.01639,"70":0.02732,"71":0.01093,"74":0.01639,"75":0.0765,"77":0.02186,"79":0.16938,"80":0.09289,"81":0.09835,"83":0.03825,"84":0.04371,"85":0.02186,"86":0.03278,"87":0.15299,"88":0.12567,"89":0.11474,"90":0.04371,"91":1.02177,"92":5.79184,"93":18.87266,"94":4.70997,"95":0.03278,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 51 52 53 54 55 56 57 58 59 61 63 64 68 72 73 76 78 96 97"},F:{"70":0.01639,"71":0.01093,"72":0.00546,"77":0.06557,"78":1.25126,"79":0.30052,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.04609,"15":0.8212,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00698,"8.1-8.4":0.00838,"9.0-9.2":0.00559,"9.3":0.0838,"10.0-10.2":0.00279,"10.3":0.19133,"11.0-11.2":0.04329,"11.3-11.4":0.0391,"12.0-12.1":0.01955,"12.2-12.5":0.574,"13.0-13.1":0.08659,"13.2":0.00698,"13.3":0.07123,"13.4-13.7":0.30725,"14.0-14.4":0.7807,"14.5-14.8":10.8655},E:{"4":0,"12":0.01639,"13":0.04918,"14":1.33868,"15":1.13105,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01093,"11.1":0.06557,"12.1":0.16392,"13.1":0.5464,"14.1":4.71543},B:{"14":0.01093,"18":0.01639,"84":0.07103,"89":0.00546,"91":0.01639,"92":0.65022,"93":2.6555,"94":0.36609,_:"12 13 15 16 17 79 80 81 83 85 86 87 88 90"},P:{"4":0.13688,_:"5.0-5.4 8.2","6.2-6.4":0.01043,"7.2-7.4":0.01053,"9.2":0.06578,"10.1":0.02085,"11.1-11.2":0.03159,"12.0":0.03289,"13.0":0.05264,"14.0":0.10529,"15.0":2.15843},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.03176},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17485,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":28.9891},S:{"2.5":0},R:{_:"0"},M:{"0":0.24046},Q:{"10.4":0},O:{"0":0.00454},H:{"0":0.39947}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js deleted file mode 100644 index 3f11f2443bf2b8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00397,"52":0.00397,"68":0.0437,"78":0.02384,"84":0.01987,"87":0.00795,"88":0.03973,"89":0.04768,"90":0.02384,"91":0.33373,"92":0.63965,"93":0.01192,"94":0.00795,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 3.5 3.6"},D:{"34":0.01192,"35":0.46087,"38":0.03178,"39":0.00795,"43":0.00397,"49":0.11124,"56":0.01192,"60":0.00795,"63":0.00795,"64":0.00795,"65":0.01589,"66":0.00795,"67":0.00795,"68":0.00397,"69":0.01589,"70":0.00795,"71":0.00397,"72":0.01192,"73":0.01192,"74":0.01192,"75":0.03178,"76":0.03576,"77":0.00795,"78":0.01589,"79":0.09933,"80":0.05562,"81":0.01589,"83":0.04768,"84":0.05165,"85":0.02781,"86":0.05562,"87":0.44895,"88":0.05562,"89":0.08741,"90":0.09933,"91":0.38141,"92":5.40725,"93":18.18442,"94":2.99564,"95":0.02384,"96":0.00795,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 36 37 40 41 42 44 45 46 47 48 50 51 52 53 54 55 57 58 59 61 62 97"},F:{"28":0.00397,"36":0.01192,"46":0.01192,"77":0.01192,"78":0.57211,"79":0.10727,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.92346,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00277,"5.0-5.1":0.01525,"6.0-6.1":0,"7.0-7.1":0.04298,"8.1-8.4":0.00832,"9.0-9.2":0.00277,"9.3":0.18441,"10.0-10.2":0.01248,"10.3":0.08458,"11.0-11.2":0.1137,"11.3-11.4":0.02912,"12.0-12.1":0.02912,"12.2-12.5":0.75291,"13.0-13.1":0.03744,"13.2":0.02773,"13.3":0.08458,"13.4-13.7":0.29257,"14.0-14.4":1.17859,"14.5-14.8":10.03328},E:{"4":0,"10":0.00397,"11":0.00795,"12":0.02384,"13":0.06754,"14":0.49265,"15":0.23043,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01589,"11.1":0.0437,"12.1":0.06357,"13.1":0.28208,"14.1":2.56656},B:{"14":0.00397,"15":0.00795,"16":0.00795,"17":0.00795,"18":0.06357,"84":0.00795,"85":0.00397,"89":0.01589,"90":0.00795,"91":0.01987,"92":0.45292,"93":2.12158,"94":0.43306,_:"12 13 79 80 81 83 86 87 88"},P:{"4":0.16555,"5.0-5.4":0.0103,"6.2-6.4":0.05149,"7.2-7.4":0.06208,"8.2":0.03089,"9.2":0.01035,"10.1":0.06178,"11.1-11.2":0.06208,"12.0":0.03104,"13.0":0.10347,"14.0":0.33111,"15.0":2.19358},I:{"0":0,"3":0,"4":0.00139,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0007,"4.2-4.3":0.00278,"4.4":0,"4.4.3-4.4.4":0.03129},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00596,"11":0.33969,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.00603},N:{"10":0.0242,"11":0.15172},L:{"0":37.37841},S:{"2.5":0},R:{_:"0"},M:{"0":0.10246},Q:{"10.4":0.02411},O:{"0":5.84619},H:{"0":1.06702}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js deleted file mode 100644 index 46fffcd3add07f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.00876,"15":0.00175,"17":0.00175,"24":0.00701,"27":0.00526,"29":0.00701,"34":0.00876,"38":0.00701,"39":0.0035,"41":0.0035,"42":0.00175,"43":0.02978,"44":0.00175,"46":0.0035,"47":0.0035,"48":0.01226,"50":0.00876,"52":0.00526,"56":0.00526,"57":0.00876,"60":0.00175,"61":0.0035,"62":0.0035,"63":0.00175,"64":0.00526,"69":0.00876,"72":0.01927,"78":0.01577,"79":0.00175,"81":0.00701,"82":0.00175,"83":0.0035,"84":0.0035,"85":0.0035,"87":0.0035,"88":0.00876,"89":0.02628,"90":0.03504,"91":0.36442,"92":0.69554,"93":0.01577,_:"2 3 4 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 25 26 28 30 31 32 33 35 36 37 40 45 49 51 53 54 55 58 59 65 66 67 68 70 71 73 74 75 76 77 80 86 94 3.5 3.6"},D:{"20":0.01402,"23":0.00175,"24":0.00526,"25":0.0035,"27":0.00175,"29":0.00175,"31":0.0035,"33":0.00175,"34":0.00701,"36":0.00526,"37":0.01051,"38":0.01051,"41":0.00175,"42":0.00175,"43":0.07008,"44":0.01051,"45":0.0035,"46":0.00526,"47":0.0035,"48":0.0035,"49":0.01402,"50":0.00175,"51":0.00175,"52":0.01051,"53":0.0035,"54":0.0035,"55":0.00701,"56":0.00701,"57":0.00526,"58":0.00175,"59":0.00175,"60":0.00876,"61":0.00175,"62":0.02628,"63":0.02453,"64":0.0035,"65":0.01051,"66":0.00876,"67":0.00701,"68":0.00526,"69":0.00526,"70":0.01752,"71":0.01402,"72":0.01752,"73":0.01927,"74":0.00876,"75":0.0035,"76":0.0035,"77":0.01752,"78":0.01752,"79":0.04555,"80":0.02803,"81":0.02803,"83":0.05081,"84":0.03854,"85":0.02278,"86":0.13841,"87":0.09636,"88":0.03329,"89":0.11388,"90":0.07358,"91":0.18396,"92":1.92545,"93":7.08509,"94":1.02317,"95":0.01051,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 26 28 30 32 35 39 40 96 97"},F:{"54":0.00175,"55":0.00175,"64":0.0035,"70":0.00175,"72":0.00175,"73":0.00175,"77":0.02978,"78":0.67452,"79":0.19097,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 56 57 58 60 62 63 65 66 67 68 69 71 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00077,"15":0.4107,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00153,"6.0-6.1":0.00153,"7.0-7.1":0.02758,"8.1-8.4":0.00077,"9.0-9.2":0.00996,"9.3":0.0544,"10.0-10.2":0.01073,"10.3":0.11187,"11.0-11.2":0.16781,"11.3-11.4":0.11723,"12.0-12.1":0.07892,"12.2-12.5":0.87888,"13.0-13.1":0.12336,"13.2":0.05287,"13.3":0.24673,"13.4-13.7":0.32642,"14.0-14.4":2.05812,"14.5-14.8":2.9822},E:{"4":0,"12":0.00175,"13":0.01577,"14":0.03854,"15":0.02628,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00526,"12.1":0.01402,"13.1":0.01752,"14.1":0.29434},B:{"12":0.02628,"13":0.02628,"14":0.02453,"15":0.00876,"16":0.05081,"17":0.01402,"18":0.1314,"81":0.01051,"83":0.0035,"84":0.01226,"85":0.00701,"86":0.0035,"87":0.00701,"88":0.0035,"89":0.02278,"90":0.02628,"91":0.03854,"92":0.13315,"93":0.53786,"94":0.09986,_:"79 80"},P:{"4":1.45155,"5.0-5.4":0.3704,"6.2-6.4":0.31033,"7.2-7.4":0.82088,"8.2":0.13014,"9.2":0.64068,"10.1":0.13014,"11.1-11.2":0.42045,"12.0":0.16017,"13.0":0.60064,"14.0":1.42152,"15.0":0.98105},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0091,"4.2-4.3":0.08967,"4.4":0,"4.4.3-4.4.4":0.51983},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00701,"9":0.07008,"11":0.51158,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":63.68634},S:{"2.5":0},R:{_:"0"},M:{"0":0.09898},Q:{"10.4":0},O:{"0":2.61462},H:{"0":1.63982}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js deleted file mode 100644 index c6ca2f74293186..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.0042,"78":0.1386,"86":0.0126,"87":0.0084,"89":0.0126,"90":0.0168,"91":0.3906,"92":0.8274,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 88 93 94 3.5 3.6"},D:{"49":0.3066,"50":0.0546,"53":0.0168,"55":0.0042,"58":0.0168,"65":0.0168,"67":0.0126,"70":0.0084,"73":0.0084,"74":0.2982,"75":0.0714,"76":0.2478,"77":0.0126,"78":0.0378,"79":0.0294,"80":0.0126,"81":0.0126,"83":0.0126,"84":0.0504,"85":0.0084,"87":0.1008,"88":0.0168,"89":0.1134,"90":0.1848,"91":0.2478,"92":5.2794,"93":14.4942,"94":2.0622,"95":0.021,"96":0.0042,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 54 56 57 59 60 61 62 63 64 66 68 69 71 72 86 97"},F:{"78":3.486,"79":0.6258,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.85918,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01516,"6.0-6.1":0,"7.0-7.1":0.01011,"8.1-8.4":0.0139,"9.0-9.2":0,"9.3":0.02527,"10.0-10.2":0.00379,"10.3":0.03664,"11.0-11.2":0.00505,"11.3-11.4":0.02148,"12.0-12.1":0.01011,"12.2-12.5":0.59258,"13.0-13.1":0.00505,"13.2":0.00379,"13.3":0.04043,"13.4-13.7":0.42327,"14.0-14.4":0.85918,"14.5-14.8":9.70741},E:{"4":0,"13":0.0546,"14":0.1806,"15":0.1638,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.3234,"10.1":0.0126,"11.1":0.0126,"12.1":0.0252,"13.1":0.1764,"14.1":2.457},B:{"12":0.0084,"13":0.0084,"14":0.0084,"16":0.0462,"17":0.021,"18":0.0714,"80":0.0126,"84":0.1134,"85":0.0042,"86":0.021,"89":0.021,"90":0.0168,"91":0.0588,"92":0.9072,"93":4.5192,"94":0.6678,_:"15 79 81 83 87 88"},P:{"4":0.25314,"5.0-5.4":0.01052,"6.2-6.4":0.02104,"7.2-7.4":0.17931,_:"8.2","9.2":0.04219,"10.1":0.07367,"11.1-11.2":0.37971,"12.0":0.02109,"13.0":0.18985,"14.0":0.75942,"15.0":3.75489},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00081,"4.2-4.3":0.00121,"4.4":0,"4.4.3-4.4.4":0.01538},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.189,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":40.8042},S:{"2.5":0},R:{_:"0"},M:{"0":0.6264},Q:{"10.4":0},O:{"0":0.1044},H:{"0":0.17022}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js deleted file mode 100644 index 3f6afffd12f7c5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00795,"78":1.02555,"87":0.0477,"89":0.04373,"90":0.00795,"91":0.3021,"92":0.60818,"93":0.0159,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 94 3.5 3.6"},D:{"49":0.0318,"53":0.02783,"57":0.00398,"58":0.00795,"63":0.01193,"65":0.00398,"67":0.08745,"73":0.00795,"74":0.36968,"75":0.07155,"76":0.10335,"77":0.04373,"78":0.02783,"79":0.03975,"80":0.01193,"81":0.0477,"83":0.01193,"84":0.00795,"85":0.01193,"86":0.03975,"87":0.07155,"88":0.0159,"89":0.08348,"90":0.0477,"91":0.29813,"92":3.58545,"93":12.66435,"94":1.96763,"95":0.0159,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 59 60 61 62 64 66 68 69 70 71 72 96 97"},F:{"77":0.00398,"78":0.4929,"79":0.06758,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.60966,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00581,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.1858,"10.0-10.2":0,"10.3":0.07113,"11.0-11.2":0.00726,"11.3-11.4":0.02177,"12.0-12.1":0.00435,"12.2-12.5":0.69095,"13.0-13.1":0.01742,"13.2":0.0029,"13.3":0.41079,"13.4-13.7":0.38612,"14.0-14.4":1.19464,"14.5-14.8":10.90563},E:{"4":0,"13":0.08348,"14":0.26633,"15":0.19478,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.53663,"10.1":0.00398,"11.1":0.03578,"12.1":0.01193,"13.1":0.17888,"14.1":2.7666},B:{"14":0.02385,"15":0.00795,"16":0.0318,"17":0.01193,"18":0.07553,"84":0.01193,"89":0.02783,"90":0.02783,"91":0.477,"92":1.0653,"93":4.30493,"94":0.73935,_:"12 13 79 80 81 83 85 86 87 88"},P:{"4":0.18938,"5.0-5.4":0.01052,"6.2-6.4":0.02104,"7.2-7.4":0.29459,_:"8.2","9.2":0.09469,"10.1":0.07367,"11.1-11.2":0.53658,"12.0":0.03156,"13.0":0.28407,"14.0":0.69439,"15.0":3.4404},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0954,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":43.81218},S:{"2.5":0},R:{_:"0"},M:{"0":0.09038},Q:{"10.4":0},O:{"0":0.0482},H:{"0":1.02673}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js deleted file mode 100644 index c872929ab4eaea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00219,"5":0.00219,"15":0.00219,"17":0.00437,"45":0.00875,"48":0.00219,"50":0.00437,"52":0.02843,"66":0.39147,"68":0.00219,"78":0.03062,"79":0.00219,"80":0.01094,"81":0.00437,"82":0.00875,"83":0.00219,"84":0.01968,"86":0.00219,"87":0.00437,"88":0.01094,"89":0.0175,"90":0.02187,"91":0.38929,"92":0.79388,"93":0.00437,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 85 94 3.6","3.5":0.00656},D:{"26":0.00219,"33":0.00656,"34":0.00437,"36":0.00437,"38":0.02843,"47":0.00875,"49":0.31493,"51":0.00219,"53":0.01531,"55":0.00437,"56":0.01312,"58":0.00656,"59":0.00219,"61":0.03281,"63":0.01094,"65":0.00656,"66":0.00437,"67":0.00656,"68":0.01312,"69":0.00656,"70":0.00875,"71":0.00437,"72":0.00875,"73":0.00437,"74":0.03062,"75":0.01094,"76":0.02843,"77":0.01531,"78":0.01094,"79":0.11591,"80":0.03937,"81":0.01968,"83":0.03062,"84":0.08092,"85":0.09842,"86":0.09185,"87":0.25151,"88":0.03718,"89":0.04593,"90":0.07873,"91":0.21433,"92":3.15365,"93":10.49541,"94":1.59214,"95":0.00656,"96":0.00437,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 35 37 39 40 41 42 43 44 45 46 48 50 52 54 57 60 62 64 97"},F:{"28":0.00219,"31":0.00437,"36":0.00875,"40":0.00656,"46":0.00437,"58":0.00219,"68":0.00875,"70":0.00219,"71":0.00219,"72":0.00437,"74":0.00437,"77":0.00437,"78":0.44615,"79":0.1006,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 69 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.50234,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.03259,"7.0-7.1":0.06518,"8.1-8.4":0,"9.0-9.2":0.01304,"9.3":0.12058,"10.0-10.2":0.01955,"10.3":0.16946,"11.0-11.2":0.09451,"11.3-11.4":0.18901,"12.0-12.1":0.08799,"12.2-12.5":2.83848,"13.0-13.1":0.07821,"13.2":0.0554,"13.3":0.33892,"13.4-13.7":1.03632,"14.0-14.4":2.89062,"14.5-14.8":23.0402},E:{"4":0,"12":0.00219,"13":0.01531,"14":0.09623,"15":0.05468,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01312,"10.1":0.00219,"11.1":0.01094,"12.1":0.01094,"13.1":0.04374,"14.1":0.40897},B:{"12":0.00219,"13":0.00219,"16":0.00437,"17":0.00875,"18":0.02624,"83":0.00437,"84":0.00656,"85":0.01968,"89":0.01094,"90":0.00219,"91":0.00437,"92":0.13997,"93":0.58612,"94":0.11591,_:"14 15 79 80 81 86 87 88"},P:{"4":0.2637,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.10142,"9.2":0.02028,"11.1-11.2":0.1927,"12.0":0.071,"13.0":0.21299,"14.0":0.32455,"15.0":2.06904},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0.00229,"4.1":0.00803,"4.2-4.3":0.0086,"4.4":0,"4.4.3-4.4.4":0.04358},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.00227,"8":0.00908,"9":0.00908,"10":0.00227,"11":0.09539,_:"7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":42.35411},S:{"2.5":0},R:{_:"0"},M:{"0":0.1797},Q:{"10.4":0.01563},O:{"0":0.04688},H:{"0":0.10356}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js deleted file mode 100644 index 02ac4bcfaf3acf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.0072,"47":0.0072,"52":34.69924,"56":0.0144,"70":0.03601,"78":0.02881,"79":0.18725,"80":0.0072,"82":0.0072,"83":0.04321,"89":0.0144,"90":0.0072,"91":0.25207,"92":0.69859,"93":0.0072,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 81 84 85 86 87 88 94 3.5 3.6"},D:{"22":0.0072,"26":0.0144,"28":0.04321,"49":1.11631,"51":0.0072,"58":0.0072,"59":0.0144,"60":0.0072,"63":0.07922,"65":0.02161,"72":0.0072,"73":0.02881,"75":0.02161,"76":0.02881,"77":0.0072,"78":0.09363,"79":0.02161,"80":0.03601,"81":0.02881,"83":0.31689,"84":0.07202,"85":0.18005,"86":0.52575,"87":0.39611,"88":0.07922,"89":0.05762,"90":0.07922,"91":0.27368,"92":6.46019,"93":17.81775,"94":3.16888,"95":0.0072,"96":0.0144,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 61 62 64 66 67 68 69 70 71 74 97"},F:{"70":0.02881,"77":0.0072,"78":0.49694,"79":0.12243,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.33453,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00587,"6.0-6.1":0.00326,"7.0-7.1":0.00652,"8.1-8.4":0.0013,"9.0-9.2":0.00587,"9.3":0.09912,"10.0-10.2":0.00652,"10.3":0.05478,"11.0-11.2":0.02608,"11.3-11.4":0.03652,"12.0-12.1":0.02478,"12.2-12.5":0.50082,"13.0-13.1":0.02413,"13.2":0.00913,"13.3":0.05608,"13.4-13.7":0.21911,"14.0-14.4":0.82166,"14.5-14.8":4.28372},E:{"4":0,"13":0.0072,"14":0.16565,"15":0.12964,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.10803,"11.1":0.0072,"12.1":0.0144,"13.1":0.20886,"14.1":0.64818},B:{"18":0.0072,"83":0.0144,"91":0.02161,"92":0.18005,"93":0.69139,"94":0.12243,_:"12 13 14 15 16 17 79 80 81 84 85 86 87 88 89 90"},P:{"4":0.01082,"5.0-5.4":0.02165,"6.2-6.4":0.02104,"7.2-7.4":0.06494,_:"8.2","9.2":0.02076,"10.1":0.01038,"11.1-11.2":0.10823,"12.0":0.04329,"13.0":0.07576,"14.0":0.19482,"15.0":0.97409},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00019,"4.2-4.3":0.00096,"4.4":0,"4.4.3-4.4.4":0.00723},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00734,"8":0.05875,"11":0.30842,_:"6 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":19.71988},S:{"2.5":0},R:{_:"0"},M:{"0":0.06153},Q:{"10.4":0},O:{"0":0.10629},H:{"0":0.27539}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js deleted file mode 100644 index 77ff1f5f2e10d9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.00475,"17":0.00475,"34":0.0095,"41":0.00475,"45":0.0095,"47":0.00475,"52":0.0095,"64":0.01424,"72":0.01899,"78":0.06647,"87":0.00475,"88":0.00475,"89":0.05223,"90":0.01424,"91":0.4843,"92":0.99233,"93":0.0095,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 42 43 44 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 94 3.5 3.6"},D:{"11":0.00475,"25":0.0095,"26":0.0095,"33":0.01899,"34":0.0095,"35":0.01424,"40":0.01899,"42":0.01424,"43":0.08072,"46":0.02374,"48":0.02849,"49":0.06172,"50":0.05698,"53":0.0095,"55":0.00475,"56":0.01899,"57":0.03324,"58":0.00475,"59":0.02374,"63":0.07122,"64":0.16618,"65":0.1092,"66":0.00475,"67":0.00475,"69":0.09496,"70":0.01424,"71":0.01424,"72":0.0095,"73":0.00475,"74":0.0095,"75":0.02849,"76":0.01899,"77":0.01424,"78":0.05223,"79":0.1092,"80":0.01899,"81":0.03798,"83":0.01899,"84":0.04273,"85":0.04748,"86":0.16143,"87":0.26589,"88":0.06647,"89":0.21366,"90":0.1092,"91":0.71695,"92":4.99015,"93":17.03108,"94":2.86304,"95":0.03798,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 36 37 38 39 41 44 45 47 51 52 54 60 61 62 68 96 97"},F:{"40":0.0095,"42":0.0095,"76":0.0095,"77":0.09021,"78":1.37217,"79":0.51753,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00243,"15":0.24416,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00243,"5.0-5.1":0.01622,"6.0-6.1":0.00568,"7.0-7.1":0.14114,"8.1-8.4":0.15087,"9.0-9.2":0.00324,"9.3":0.60918,"10.0-10.2":0.01785,"10.3":0.63757,"11.0-11.2":0.08679,"11.3-11.4":0.10626,"12.0-12.1":0.02839,"12.2-12.5":1.73343,"13.0-13.1":0.01541,"13.2":0.00811,"13.3":0.05921,"13.4-13.7":0.18738,"14.0-14.4":0.8947,"14.5-14.8":3.15863},E:{"4":0,"8":0.00475,"12":0.02849,"13":0.01899,"14":0.1092,"15":0.07122,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.07597,"11.1":0.0095,"12.1":0.02849,"13.1":0.08072,"14.1":0.37509},B:{"12":0.06172,"13":0.03798,"14":0.03324,"15":0.06172,"16":0.06172,"17":0.11395,"18":0.32286,"84":0.05223,"85":0.01424,"86":0.0095,"88":0.01424,"89":0.07122,"90":0.01899,"91":0.05223,"92":1.0588,"93":2.75384,"94":0.49379,_:"79 80 81 83 87"},P:{"4":0.76827,"5.0-5.4":0.06315,"6.2-6.4":0.03157,"7.2-7.4":0.10524,_:"8.2","9.2":0.02105,"10.1":0.07367,"11.1-11.2":0.13682,"12.0":0.06315,"13.0":0.17891,"14.0":0.59988,"15.0":0.68408},I:{"0":0,"3":0,"4":0.00242,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02635,"4.2-4.3":0.1008,"4.4":0,"4.4.3-4.4.4":0.21707},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00886,"9":0.00886,"11":0.70873,_:"6 7 10 5.5"},J:{"7":0,"10":0.01576},N:{_:"10 11"},L:{"0":46.42311},S:{"2.5":0},R:{_:"0"},M:{"0":0.1313},Q:{"10.4":0.05777},O:{"0":0.37814},H:{"0":2.50104}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js deleted file mode 100644 index e9ffc7febccde2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.09867,"53":0.00429,"54":0.00429,"59":0.01287,"60":0.00429,"65":0.00429,"66":0.01287,"68":0.00858,"69":0.00858,"72":0.00858,"73":0.00858,"78":0.03861,"79":0.01716,"80":0.00429,"82":0.00858,"84":0.02145,"85":0.01287,"86":0.00858,"87":0.00858,"88":0.02574,"89":0.02574,"90":0.03003,"91":0.54912,"92":1.10253,"93":0.00858,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 55 56 57 58 61 62 63 64 67 70 71 74 75 76 77 81 83 94 3.5 3.6"},D:{"34":0.00858,"38":0.01716,"43":0.00429,"47":0.00858,"49":0.39039,"58":0.00858,"61":0.05577,"63":0.01287,"65":0.00858,"66":0.03861,"67":0.00858,"68":0.00429,"69":0.00858,"70":0.00858,"71":0.01287,"72":0.01287,"73":0.00858,"74":0.01716,"75":0.01716,"76":0.01716,"77":0.01716,"78":0.02574,"79":0.06006,"80":0.03861,"81":0.03861,"83":0.03003,"84":0.03003,"85":0.03003,"86":0.0429,"87":0.32604,"88":0.05148,"89":0.07722,"90":0.09438,"91":0.35607,"92":6.17331,"93":22.8228,"94":4.35864,"95":0.00858,"96":0.00858,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 53 54 55 56 57 59 60 62 64 97"},F:{"36":0.00429,"77":0.01287,"78":1.32561,"79":0.19305,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00037,"15":0.1485,"3.2":0.0011,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0198,"6.0-6.1":0.00183,"7.0-7.1":0.00367,"8.1-8.4":0.00293,"9.0-9.2":0.00147,"9.3":0.0374,"10.0-10.2":0.00183,"10.3":0.02787,"11.0-11.2":0.00807,"11.3-11.4":0.03887,"12.0-12.1":0.01283,"12.2-12.5":0.23136,"13.0-13.1":0.01027,"13.2":0.0033,"13.3":0.02493,"13.4-13.7":0.099,"14.0-14.4":0.23576,"14.5-14.8":2.75468},E:{"4":0,"13":0.02145,"14":0.07293,"15":0.05577,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02145,"11.1":0.02145,"12.1":0.01716,"13.1":0.08151,"14.1":0.45045},B:{"14":0.00429,"15":0.00858,"16":0.00429,"17":0.01287,"18":0.02574,"86":0.00429,"89":0.01287,"91":0.01287,"92":0.28314,"93":1.27413,"94":0.29172,_:"12 13 79 80 81 83 84 85 87 88 90"},P:{"4":0.16608,"5.0-5.4":0.01052,"6.2-6.4":0.02104,"7.2-7.4":0.23874,_:"8.2","9.2":0.02076,"10.1":0.01038,"11.1-11.2":0.14532,"12.0":0.04152,"13.0":0.21798,"14.0":0.3633,"15.0":1.81651},I:{"0":0,"3":0,"4":0.00023,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0021,"4.2-4.3":0.0028,"4.4":0,"4.4.3-4.4.4":0.02913},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00892,"11":0.20508,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":50.70044},S:{"2.5":0},R:{_:"0"},M:{"0":0.13704},Q:{"10.4":0},O:{"0":0.03997},H:{"0":0.18921}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js deleted file mode 100644 index 012304b785167e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.0204,"52":0.0306,"57":0.0153,"69":0.0153,"70":0.0051,"74":0.0051,"78":0.0204,"83":0.0561,"84":0.0051,"87":0.0051,"89":0.0204,"90":0.0204,"91":0.2805,"92":0.3264,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 71 72 73 75 76 77 79 80 81 82 85 86 88 93 94 3.5 3.6"},D:{"29":0.0051,"38":0.0051,"45":0.0102,"47":0.0051,"49":0.2193,"55":0.0051,"65":0.0102,"67":0.0816,"68":0.0153,"69":0.0357,"70":0.0102,"72":0.0051,"73":0.0051,"75":0.1887,"76":0.153,"77":0.153,"79":0.9129,"80":0.0408,"81":0.0714,"85":0.0306,"86":0.1326,"87":0.7242,"88":0.1938,"89":0.4998,"90":0.9282,"91":1.2342,"92":8.6037,"93":18.5793,"94":1.6779,"95":0.0102,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 71 74 78 83 84 96 97"},F:{"78":0.612,"79":0.3111,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00485,"15":0.4361,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00606,"6.0-6.1":0.09691,"7.0-7.1":0.00121,"8.1-8.4":0.00121,"9.0-9.2":0.00121,"9.3":1.19565,"10.0-10.2":0.0315,"10.3":0.0533,"11.0-11.2":0.02544,"11.3-11.4":0.06299,"12.0-12.1":0.08722,"12.2-12.5":1.2853,"13.0-13.1":0.02423,"13.2":0.00606,"13.3":0.03271,"13.4-13.7":0.32466,"14.0-14.4":0.69534,"14.5-14.8":7.74085},E:{"4":0,"11":0.0153,"12":0.0051,"13":0.051,"14":0.2244,"15":0.204,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0102,"11.1":0.0102,"12.1":0.0612,"13.1":0.1122,"14.1":1.5249},B:{"15":0.0204,"16":0.0255,"18":0.2397,"83":0.0051,"84":0.0051,"85":0.0153,"86":0.0102,"88":0.0204,"89":0.0255,"90":0.0204,"91":0.0102,"92":0.9792,"93":5.7732,"94":0.9435,_:"12 13 14 17 79 80 81 87"},P:{"4":0.16445,_:"5.0-5.4 8.2","6.2-6.4":0.01043,"7.2-7.4":0.06578,"9.2":0.06578,"10.1":0.02085,"11.1-11.2":0.2083,"12.0":0.03289,"13.0":0.8003,"14.0":0.43852,"15.0":1.04149},I:{"0":0,"3":0,"4":0.01357,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00226,"4.4":0,"4.4.3-4.4.4":0.02827},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01041,"11":1.52469,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":35.7771},S:{"2.5":0.0833},R:{_:"0"},M:{"0":0.0245},Q:{"10.4":0.0735},O:{"0":0.2352},H:{"0":0.07886}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js deleted file mode 100644 index b42c63b5d68175..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01202,"52":0.07812,"57":0.01202,"60":0.0661,"61":0.01202,"62":0.01202,"63":0.01202,"66":0.03005,"68":0.02404,"72":0.02404,"74":0.00601,"78":0.42664,"79":0.01202,"80":0.01202,"81":0.01202,"82":0.01202,"83":0.01202,"84":0.03005,"85":0.01803,"86":0.01803,"87":0.02404,"88":0.07211,"89":0.07812,"90":0.08413,"91":2.0671,"92":5.02352,"93":0.01803,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 58 59 64 65 67 69 70 71 73 75 76 77 94 3.5 3.6"},D:{"34":0.00601,"36":0.01202,"38":0.03605,"49":0.1322,"53":0.01803,"61":0.31247,"63":0.00601,"64":0.21632,"65":0.01202,"67":0.01803,"69":0.00601,"70":0.23435,"71":0.00601,"72":0.22834,"74":0.00601,"75":0.04807,"76":0.01803,"77":0.01202,"78":0.01202,"79":0.55884,"80":0.24637,"81":0.01803,"83":0.04206,"84":0.0661,"85":0.05408,"86":0.04807,"87":0.74512,"88":0.1322,"89":0.07812,"90":0.1322,"91":8.50874,"92":3.54531,"93":16.08008,"94":3.91787,"95":0.01803,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 66 68 73 96 97"},F:{"71":0.01202,"76":0.00601,"77":0.01803,"78":2.30746,"79":0.15023,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.91632,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00287,"6.0-6.1":0.00717,"7.0-7.1":0.0086,"8.1-8.4":0.01864,"9.0-9.2":0.00287,"9.3":0.09464,"10.0-10.2":0.0043,"10.3":0.12906,"11.0-11.2":0.03872,"11.3-11.4":0.03298,"12.0-12.1":0.02294,"12.2-12.5":0.44454,"13.0-13.1":0.04159,"13.2":0.02868,"13.3":0.10612,"13.4-13.7":0.29684,"14.0-14.4":1.17731,"14.5-14.8":10.96148},E:{"4":0,"12":0.01202,"13":0.10215,"14":0.67902,"15":0.43265,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00601,"10.1":0.11417,"11.1":0.09614,"12.1":0.09014,"13.1":0.45068,"14.1":3.10064},B:{"15":0.00601,"17":0.01202,"18":0.07812,"85":0.01202,"86":0.00601,"87":0.00601,"88":0.01202,"89":0.04206,"90":0.03605,"91":0.06009,"92":0.9314,"93":4.50074,"94":1.22584,_:"12 13 14 16 79 80 81 83 84"},P:{"4":0.20215,"5.0-5.4":0.02165,"6.2-6.4":0.02104,"7.2-7.4":0.18395,_:"8.2","9.2":0.01096,"10.1":0.01096,"11.1-11.2":0.08511,"12.0":0.03192,"13.0":0.13831,"14.0":0.43621,"15.0":3.21304},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00073,"4.2-4.3":0.00171,"4.4":0,"4.4.3-4.4.4":0.0215},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01997,"9":0.00666,"11":0.59231,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":21.07482},S:{"2.5":0},R:{_:"0"},M:{"0":0.56273},Q:{"10.4":0},O:{"0":0.04789},H:{"0":0.21915}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js deleted file mode 100644 index a1e0425afd8b99..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00554,"48":0.01107,"52":0.03876,"78":0.1052,"81":0.01107,"82":0.01661,"84":0.01661,"85":0.01107,"86":0.01107,"87":0.01107,"88":0.04983,"89":0.03876,"90":0.06091,"91":0.90253,"92":1.71647,"93":0.01107,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 83 94 3.5 3.6"},D:{"26":0.01661,"34":0.02769,"35":0.00554,"38":0.12181,"48":0.00554,"49":0.28239,"53":0.03876,"55":0.01107,"56":0.01107,"57":0.01107,"58":0.00554,"59":0.01107,"60":0.02215,"61":0.02215,"63":0.01107,"64":0.03322,"65":0.0443,"66":0.01661,"67":0.03876,"68":0.01661,"69":0.03322,"70":0.0443,"71":0.01661,"72":0.0443,"73":0.02769,"74":0.03322,"75":0.03322,"76":0.02769,"77":0.01661,"78":0.02769,"79":0.33222,"80":0.09413,"81":0.03876,"83":0.04983,"84":0.0443,"85":0.04983,"86":0.09413,"87":0.38759,"88":0.1052,"89":0.12181,"90":0.1938,"91":0.99112,"92":7.97328,"93":20.06609,"94":2.89585,"95":0.01107,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 36 37 39 40 41 42 43 44 45 46 47 50 51 52 54 62 96 97"},F:{"46":0.06644,"75":0.01107,"77":0.01107,"78":0.4042,"79":0.07752,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00226,"15":0.74028,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02031,"6.0-6.1":0.02257,"7.0-7.1":0.02934,"8.1-8.4":0.05417,"9.0-9.2":0.02483,"9.3":0.32726,"10.0-10.2":0.03385,"10.3":0.36111,"11.0-11.2":0.10156,"11.3-11.4":0.12188,"12.0-12.1":0.11059,"12.2-12.5":1.56858,"13.0-13.1":0.05417,"13.2":0.02934,"13.3":0.18056,"13.4-13.7":0.54392,"14.0-14.4":1.67014,"14.5-14.8":16.56375},E:{"4":0,"11":0.01661,"12":0.02769,"13":0.17718,"14":0.99112,"15":0.38205,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01661,"10.1":0.04983,"11.1":0.12181,"12.1":0.19933,"13.1":0.79733,"14.1":6.80497},B:{"17":0.01107,"18":0.11074,"84":0.01107,"85":0.00554,"86":0.01661,"87":0.00554,"88":0.01107,"89":0.02215,"90":0.01107,"91":0.0443,"92":0.90253,"93":3.61012,"94":0.66444,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.65735,"5.0-5.4":0.02165,"6.2-6.4":0.02104,"7.2-7.4":0.18395,_:"8.2","9.2":0.01096,"10.1":0.01096,"11.1-11.2":0.05478,"12.0":0.05478,"13.0":0.14243,"14.0":0.38345,"15.0":2.44315},I:{"0":0,"3":0,"4":0.00118,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00177,"4.2-4.3":0.00413,"4.4":0,"4.4.3-4.4.4":0.02417},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.011,"11":0.83616,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":17.9546},S:{"2.5":0},R:{_:"0"},M:{"0":0.40613},Q:{"10.4":0.02678},O:{"0":0.14282},H:{"0":0.17324}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js deleted file mode 100644 index 0994b569a9698b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01454,"68":0.00727,"78":0.04363,"83":0.00364,"86":0.00727,"89":0.02182,"90":0.03272,"91":0.3127,"92":0.5963,"93":0.01091,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 87 88 94 3.5 3.6"},D:{"22":0.04,"26":0.00727,"49":0.07999,"53":0.00364,"54":0.01818,"56":0.00727,"63":0.00364,"64":0.00727,"67":0.00727,"70":0.04727,"74":0.10181,"76":0.00727,"77":0.00364,"78":0.00364,"79":0.04,"80":0.00727,"81":0.00364,"83":0.01818,"84":0.02909,"85":0.02182,"86":0.05818,"87":0.11272,"88":0.01091,"89":0.05454,"90":0.07272,"91":0.53813,"92":5.10494,"93":13.15505,"94":1.81073,"95":0.00364,"96":0.00364,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 55 57 58 59 60 61 62 65 66 68 69 71 72 73 75 97"},F:{"78":0.39996,"79":0.10544,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00234,"15":1.13495,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00702,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.23401,"10.0-10.2":0.03042,"10.3":0.10296,"11.0-11.2":0.00702,"11.3-11.4":0.04212,"12.0-12.1":0.02106,"12.2-12.5":0.68799,"13.0-13.1":0.0117,"13.2":0,"13.3":0.06318,"13.4-13.7":0.52418,"14.0-14.4":1.15835,"14.5-14.8":19.36674},E:{"4":0,"10":0.00364,"12":0.00727,"13":0.02545,"14":0.67993,"15":0.23634,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1","9.1":0.00364,"10.1":0.02182,"11.1":0.0909,"12.1":0.10908,"13.1":0.77447,"14.1":3.29785},B:{"17":0.03272,"18":0.1418,"84":0.09454,"85":0.02182,"88":0.00727,"89":0.04363,"90":0.05454,"91":0.02909,"92":1.05444,"93":4.27594,"94":0.82537,_:"12 13 14 15 16 79 80 81 83 86 87"},P:{"4":0.23504,"5.0-5.4":0.02165,"6.2-6.4":0.02104,"7.2-7.4":0.18395,_:"8.2","9.2":0.02044,"10.1":0.01038,"11.1-11.2":0.22483,"12.0":0.06132,"13.0":0.18395,"14.0":0.78689,"15.0":6.75498},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00305,"4.4":0,"4.4.3-4.4.4":0.07331},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.61085,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.62808},S:{"2.5":0},R:{_:"0"},M:{"0":0.28002},Q:{"10.4":0},O:{"0":0.05728},H:{"0":0.18075}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js deleted file mode 100644 index f53cb8887912fe..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AX.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.0128,"52":0.16005,"61":0.01921,"77":0.19206,"78":0.02561,"80":0.03841,"87":0.05122,"90":0.01921,"91":1.45325,"92":2.93212,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 81 82 83 84 85 86 88 89 93 94 3.5 3.6"},D:{"49":0.08323,"58":0.02561,"76":0.13444,"78":0.0064,"79":0.07682,"81":0.03201,"87":0.05122,"88":0.0128,"89":0.02561,"90":0.04481,"91":0.28809,"92":6.03709,"93":23.54015,"94":4.89113,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 80 83 84 85 86 95 96 97"},F:{"77":0.0128,"78":2.86169,"79":0.07042,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.21587,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04486,"6.0-6.1":0,"7.0-7.1":0.0028,"8.1-8.4":0,"9.0-9.2":0.0028,"9.3":0.04626,"10.0-10.2":0.00561,"10.3":0.59435,"11.0-11.2":0.01542,"11.3-11.4":0.00841,"12.0-12.1":1.9863,"12.2-12.5":1.33027,"13.0-13.1":0.10513,"13.2":0.00561,"13.3":0.02804,"13.4-13.7":0.11214,"14.0-14.4":1.02329,"14.5-14.8":8.48346},E:{"4":0,"12":0.0064,"13":0.03201,"14":0.58898,"15":0.3265,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.03201,"10.1":0.0064,"11.1":0.04481,"12.1":0.03201,"13.1":0.92189,"14.1":9.21248},B:{"17":0.03201,"18":0.01921,"87":0.02561,"89":0.0064,"90":0.0128,"92":0.97951,"93":5.41609,"94":1.42124,_:"12 13 14 15 16 79 80 81 83 84 85 86 88 91"},P:{"4":0.01196,"5.0-5.4":0.3704,"6.2-6.4":0.31033,"7.2-7.4":0.04783,"8.2":0.13014,"9.2":0.64068,"10.1":0.13014,"11.1-11.2":0.42045,"12.0":0.09566,"13.0":0.09566,"14.0":0.1674,"15.0":2.35556},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00036,"4.4":0,"4.4.3-4.4.4":0.00324},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.3201,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":18.85325},S:{"2.5":0},R:{_:"0"},M:{"0":0.60446},Q:{"10.4":0},O:{"0":0.41377},H:{"0":0.03406}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js deleted file mode 100644 index 240ce00d0232d7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/AZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00709,"61":0.00354,"68":0.06025,"78":0.01418,"84":0.02126,"88":0.00709,"89":0.02835,"90":0.00354,"91":0.15239,"92":0.29061,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 93 94 3.5","3.6":0.00354},D:{"22":0.01063,"25":0.00354,"26":0.00709,"32":0.01063,"34":0.00354,"38":0.0319,"42":0.00354,"48":0.00354,"49":0.09923,"53":0.07088,"55":0.00709,"56":0.00709,"58":0.00354,"61":0.00709,"63":0.01772,"64":0.00354,"65":0.01063,"66":0.00709,"67":0.01772,"68":0.03898,"69":0.01418,"70":0.00709,"71":0.01063,"72":0.01772,"73":0.00709,"74":0.03544,"75":0.01772,"76":0.00709,"77":0.00709,"78":0.00354,"79":0.51034,"80":0.03544,"81":0.01772,"83":0.02835,"84":0.01772,"85":0.02835,"86":0.20201,"87":0.10278,"88":0.07088,"89":0.09923,"90":0.07797,"91":0.28352,"92":6.2339,"93":17.28054,"94":2.35676,"95":0.0319,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 27 28 29 30 31 33 35 36 37 39 40 41 43 44 45 46 47 50 51 52 54 57 59 60 62 96 97"},F:{"25":0.00354,"28":0.01418,"36":0.00709,"40":0.00709,"46":0.01418,"62":0.04253,"74":0.01063,"75":0.01418,"77":0.05316,"78":2.10159,"79":0.49262,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00354},G:{"8":0,"15":0.51179,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00812,"6.0-6.1":0,"7.0-7.1":0.06093,"8.1-8.4":0.00244,"9.0-9.2":0.00894,"9.3":0.04468,"10.0-10.2":0.02031,"10.3":0.09261,"11.0-11.2":0.04306,"11.3-11.4":0.04712,"12.0-12.1":0.01381,"12.2-12.5":0.58491,"13.0-13.1":0.02518,"13.2":0.01219,"13.3":0.06824,"13.4-13.7":0.18197,"14.0-14.4":0.88142,"14.5-14.8":5.51519},E:{"4":0,"13":0.01772,"14":0.23036,"15":0.05316,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.09923,"9.1":0.0319,"11.1":0.18429,"12.1":0.02835,"13.1":0.08506,"14.1":0.5635},B:{"18":0.01772,"84":0.00709,"86":0.00709,"88":0.00354,"89":0.00709,"91":0.01418,"92":0.12758,"93":0.6202,"94":0.10632,_:"12 13 14 15 16 17 79 80 81 83 85 87 90"},P:{"4":0.51748,"5.0-5.4":0.02165,"6.2-6.4":0.01015,"7.2-7.4":0.07103,_:"8.2","9.2":0.02029,"10.1":0.02029,"11.1-11.2":0.21308,"12.0":0.08117,"13.0":0.33484,"14.0":0.73056,"15.0":3.39915},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00181,"4.2-4.3":0.00723,"4.4":0,"4.4.3-4.4.4":0.03616},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01472,"11":0.08097,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":50.36313},S:{"2.5":0},R:{_:"0"},M:{"0":0.05166},Q:{"10.4":0},O:{"0":0.28411},H:{"0":0.75191}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js deleted file mode 100644 index 880ace3e9f004d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.20208,"36":0.00825,"45":0.61035,"52":0.65984,"54":0.0165,"56":0.00412,"66":0.01237,"68":0.00412,"72":0.00412,"78":0.04124,"83":0.00412,"84":0.02474,"85":0.00412,"88":0.04124,"89":0.04949,"90":0.04536,"91":0.95677,"92":1.9589,"93":0.00825,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 55 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 81 82 86 87 94 3.5 3.6"},D:{"22":0.00825,"34":0.00825,"38":0.02887,"43":0.00412,"45":0.00412,"47":0.0165,"48":0.00412,"49":0.31755,"53":0.03299,"55":0.00825,"58":0.00825,"61":1.28256,"62":0.0165,"63":0.03712,"64":0.00412,"65":0.01237,"68":0.02062,"69":0.00412,"70":0.00412,"71":0.00825,"72":0.0165,"73":0.01237,"74":0.00825,"75":0.00412,"76":0.01237,"77":0.01237,"78":0.0165,"79":0.1897,"80":0.02062,"81":0.03299,"83":0.04949,"84":0.04536,"85":0.05361,"86":0.06598,"87":0.35466,"88":0.05774,"89":0.08248,"90":0.09898,"91":0.28043,"92":5.30759,"93":19.09824,"94":2.98578,"95":0.02062,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 46 50 51 52 54 56 57 59 60 66 67 96 97"},F:{"28":0.00825,"31":0.00412,"36":0.00825,"40":0.00825,"46":0.01237,"68":0.00412,"77":0.03299,"78":1.16709,"79":0.2928,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.23124,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00159,"6.0-6.1":0,"7.0-7.1":0.01852,"8.1-8.4":0.00212,"9.0-9.2":0.00317,"9.3":0.10371,"10.0-10.2":0.01587,"10.3":0.08467,"11.0-11.2":0.02328,"11.3-11.4":0.01482,"12.0-12.1":0.01958,"12.2-12.5":0.36882,"13.0-13.1":0.00635,"13.2":0.0037,"13.3":0.02434,"13.4-13.7":0.13229,"14.0-14.4":0.42121,"14.5-14.8":3.81311},E:{"4":0,"12":0.00825,"13":0.02062,"14":0.1196,"15":0.04949,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0165,"11.1":0.01237,"12.1":0.0165,"13.1":0.06598,"14.1":0.4124},B:{"12":0.00825,"14":0.00412,"16":0.00412,"17":0.00825,"18":0.02474,"84":0.00412,"85":0.04949,"88":0.00825,"89":0.0165,"90":0.02062,"91":0.0165,"92":0.22682,"93":1.12585,"94":0.25981,_:"13 15 79 80 81 83 86 87"},P:{"4":0.2661,"5.0-5.4":0.01095,"6.2-6.4":0.01025,"7.2-7.4":0.04094,"8.2":0.01043,"9.2":0.0307,"10.1":0.0307,"11.1-11.2":0.25587,"12.0":0.07164,"13.0":0.19446,"14.0":0.31727,"15.0":2.835},I:{"0":0,"3":0,"4":0.00329,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00439,"4.2-4.3":0.01208,"4.4":0,"4.4.3-4.4.4":0.09775},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19383,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":49.90646},S:{"2.5":0},R:{_:"0"},M:{"0":0.26442},Q:{"10.4":0},O:{"0":0.05288},H:{"0":0.2559}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js deleted file mode 100644 index 19c0fe9293e8ce..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BB.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.0243,"52":0.00972,"56":0.00486,"65":0.00486,"78":0.0486,"85":0.00972,"87":0.0243,"88":0.00486,"89":0.01458,"90":0.00486,"91":0.88452,"92":1.54548,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 93 94 3.5 3.6"},D:{"38":0.0243,"47":0.00972,"49":0.03402,"50":0.00972,"62":0.00972,"66":0.01944,"72":0.00972,"74":0.78246,"75":0.00972,"76":0.06804,"77":0.00486,"79":0.21384,"80":0.0243,"81":0.02916,"83":0.00972,"84":0.02916,"85":0.00972,"86":0.0243,"87":0.10692,"88":0.01944,"89":0.0486,"90":0.1458,"91":0.41796,"92":6.31314,"93":19.96488,"94":3.0861,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 51 52 53 54 55 56 57 58 59 60 61 63 64 65 67 68 69 70 71 73 78 95 96 97"},F:{"36":0.00486,"77":0.00972,"78":0.92826,"79":0.21384,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.25202,"3.2":0.00108,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.04421,"6.0-6.1":0,"7.0-7.1":0.08735,"8.1-8.4":0.00108,"9.0-9.2":0,"9.3":0.11,"10.0-10.2":0.00431,"10.3":0.05931,"11.0-11.2":0.00431,"11.3-11.4":0.01618,"12.0-12.1":0.02157,"12.2-12.5":0.59959,"13.0-13.1":0.01078,"13.2":0.01078,"13.3":0.36773,"13.4-13.7":0.26529,"14.0-14.4":0.62655,"14.5-14.8":7.29644},E:{"4":0,"13":0.02916,"14":0.3645,"15":0.33048,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 7.1 10.1","5.1":0.00972,"6.1":0.00972,"9.1":0.01944,"11.1":0.03402,"12.1":0.02916,"13.1":0.15552,"14.1":2.42028},B:{"12":0.00972,"15":0.00972,"16":0.02916,"17":0.0729,"18":0.13122,"80":0.00972,"83":0.01458,"84":0.01944,"86":0.00486,"87":0.00486,"89":0.02916,"91":0.0243,"92":1.12266,"93":5.48208,"94":1.09836,_:"13 14 79 81 85 88 90"},P:{"4":0.24322,"5.0-5.4":0.02165,"6.2-6.4":0.01043,"7.2-7.4":0.18794,"8.2":0.01043,"9.2":0.01106,"10.1":0.05528,"11.1-11.2":0.15477,"12.0":0.02211,"13.0":0.27638,"14.0":0.66332,"15.0":4.26735},I:{"0":0,"3":0,"4":0.00061,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00085,"4.2-4.3":0.00134,"4.4":0,"4.4.3-4.4.4":0.0229},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.40824,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":34.57386},S:{"2.5":0},R:{_:"0"},M:{"0":0.52428},Q:{"10.4":0},O:{"0":0.11308},H:{"0":0.24818}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js deleted file mode 100644 index ec74a9310bcc4b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00328,"36":0.00328,"38":0.00328,"39":0.00984,"40":0.01641,"41":0.00984,"43":0.00656,"47":0.01641,"48":0.01312,"49":0.00328,"51":0.00656,"52":0.05578,"53":0.00328,"56":0.00656,"57":0.00328,"59":0.00656,"60":0.01312,"65":0.00328,"67":0.00984,"68":0.00656,"69":0.00328,"72":0.01969,"75":0.03937,"77":0.00328,"78":0.06234,"79":0.00328,"80":0.00656,"81":0.00328,"82":0.00656,"83":0.00984,"84":0.00984,"85":0.00656,"86":0.00656,"87":0.00656,"88":0.01969,"89":0.07546,"90":0.06234,"91":1.51254,"92":3.32365,"93":0.40356,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 42 44 45 46 50 54 55 58 61 62 63 64 66 70 71 73 74 76 94 3.5 3.6"},D:{"11":0.00328,"24":0.00328,"38":0.00656,"49":0.10827,"50":0.00656,"55":0.00328,"56":0.00656,"57":0.00328,"58":0.00328,"61":0.08531,"62":0.00656,"63":0.00656,"64":0.01312,"65":0.00328,"68":0.00328,"69":0.01312,"70":0.00656,"71":0.00984,"72":0.00328,"73":0.01641,"74":0.00984,"75":0.00328,"76":0.00656,"77":0.00656,"78":0.00656,"79":0.04265,"80":0.02297,"81":0.02953,"83":0.03281,"84":0.0525,"85":0.02953,"86":0.06234,"87":0.34451,"88":0.02625,"89":0.04922,"90":0.06234,"91":0.17717,"92":3.49427,"93":13.03213,"94":2.04406,"95":0.04922,"96":0.01312,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 51 52 53 54 59 60 66 67 97"},F:{"29":0.00656,"36":0.00328,"65":0.00656,"77":0.00984,"78":0.4659,"79":0.1214,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00035,"15":0.06443,"3.2":0.00035,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00528,"6.0-6.1":0.00246,"7.0-7.1":0.05,"8.1-8.4":0.00123,"9.0-9.2":0.00405,"9.3":0.02834,"10.0-10.2":0.00264,"10.3":0.13503,"11.0-11.2":0.01091,"11.3-11.4":0.00563,"12.0-12.1":0.01127,"12.2-12.5":0.21883,"13.0-13.1":0.00951,"13.2":0.00423,"13.3":0.01039,"13.4-13.7":0.09154,"14.0-14.4":0.15598,"14.5-14.8":0.94766},E:{"4":0,"13":0.00656,"14":0.01969,"15":0.01641,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00656,"13.1":0.01312,"14.1":0.11484},B:{"12":0.02297,"15":0.00328,"16":0.00656,"17":0.00328,"18":0.02297,"84":0.00656,"85":0.00328,"89":0.01312,"91":0.00984,"92":0.15421,"93":0.78416,"94":0.17061,_:"13 14 79 80 81 83 86 87 88 90"},P:{"4":0.3965,"5.0-5.4":0.02165,"6.2-6.4":0.01043,"7.2-7.4":0.10434,"8.2":0.01043,"9.2":0.02087,"10.1":0.04174,"11.1-11.2":0.17738,"12.0":0.13565,"13.0":0.20869,"14.0":0.38607,"15.0":0.95996},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00181,"4.2-4.3":0.00996,"4.4":0,"4.4.3-4.4.4":0.14946},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01875,"9":0.00375,"10":0.0075,"11":0.12749,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":59.71021},S:{"2.5":0},R:{_:"0"},M:{"0":0.19482},Q:{"10.4":0},O:{"0":2.98951},H:{"0":4.07687}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js deleted file mode 100644 index 2b4dbcfacbdbb9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01185,"52":0.05924,"56":0.02962,"60":0.01185,"68":0.01185,"72":0.01777,"78":0.23696,"80":0.01185,"81":0.01185,"84":0.04147,"85":0.00592,"86":0.00592,"87":0.1244,"88":0.07109,"89":0.07109,"90":0.06516,"91":1.39806,"92":3.24635,"93":0.01185,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 82 83 94 3.5 3.6"},D:{"38":0.02962,"49":0.1481,"53":0.01185,"61":0.03554,"65":0.01185,"66":0.01777,"67":0.0237,"69":0.01185,"73":0.00592,"74":0.0237,"75":0.05924,"76":0.02962,"77":0.04147,"78":0.28435,"79":0.41468,"80":0.05924,"81":0.0237,"83":0.13033,"84":0.06516,"85":0.09478,"86":0.07109,"87":0.58055,"88":0.06516,"89":0.1481,"90":0.14218,"91":0.40876,"92":5.84106,"93":23.16876,"94":4.53186,"95":0.01185,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 62 63 64 68 70 71 72 96 97"},F:{"46":0.00592,"68":0.01185,"76":0.00592,"77":0.0237,"78":0.73458,"79":0.17772,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.67948,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00912,"7.0-7.1":0.0456,"8.1-8.4":0.01064,"9.0-9.2":0.0076,"9.3":0.11705,"10.0-10.2":0.01216,"10.3":0.18697,"11.0-11.2":0.04408,"11.3-11.4":0.04408,"12.0-12.1":0.03648,"12.2-12.5":0.74941,"13.0-13.1":0.03648,"13.2":0.0152,"13.3":0.09729,"13.4-13.7":0.3557,"14.0-14.4":1.19479,"14.5-14.8":11.55726},E:{"4":0,"11":0.01777,"12":0.01185,"13":0.08886,"14":0.7168,"15":0.34952,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 7.1","6.1":0.00592,"9.1":0.00592,"10.1":0.04147,"11.1":0.08294,"12.1":0.1481,"13.1":0.5924,"14.1":4.06979},B:{"16":0.01777,"17":0.01185,"18":0.08886,"84":0.01185,"85":0.02962,"86":0.0237,"87":0.01185,"88":0.00592,"89":0.0237,"90":0.03554,"91":0.05924,"92":1.013,"93":5.85884,"94":1.13741,_:"12 13 14 15 79 80 81 83"},P:{"4":0.11772,"5.0-5.4":0.02165,"6.2-6.4":0.19208,"7.2-7.4":0.01067,"8.2":0.01043,"9.2":0.01106,"10.1":0.05528,"11.1-11.2":0.05351,"12.0":0.0214,"13.0":0.11772,"14.0":0.32107,"15.0":3.4568},I:{"0":0,"3":0,"4":0.00091,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00045,"4.2-4.3":0.00272,"4.4":0,"4.4.3-4.4.4":0.02446},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.61017,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":21.40337},S:{"2.5":0},R:{_:"0"},M:{"0":0.29347},Q:{"10.4":0},O:{"0":0.04076},H:{"0":0.11963}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js deleted file mode 100644 index 19e87bd3217be9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"32":0.00457,"33":0.00229,"40":0.00686,"41":0.01372,"42":0.00229,"43":0.00457,"44":0.00229,"45":0.00457,"47":0.01143,"48":0.01143,"50":0.00457,"51":0.00229,"52":0.02057,"53":0.00229,"56":0.00457,"57":0.00686,"59":0.00229,"60":0.00229,"61":0.00229,"68":0.01143,"69":0.00457,"70":0.00457,"72":0.01829,"73":0.00457,"75":0.016,"76":0.1143,"78":0.09373,"79":0.00457,"80":0.01143,"81":0.03429,"82":0.00457,"83":0.03658,"84":0.00914,"85":0.00686,"86":0.00686,"87":0.00914,"88":0.06858,"89":0.18517,"90":0.30404,"91":1.22301,"92":1.6002,"93":0.00914,"94":0.02972,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 34 35 36 37 38 39 46 49 54 55 58 62 63 64 65 66 67 71 74 77 3.5 3.6"},D:{"11":0.00457,"26":0.00229,"29":0.00686,"33":0.00457,"37":0.00686,"38":0.00457,"39":0.00457,"49":0.02972,"57":0.00457,"58":0.02286,"60":0.016,"62":0.02743,"63":0.00914,"64":0.00686,"65":0.00457,"67":0.00457,"68":0.00686,"70":0.00457,"71":0.00457,"72":0.00686,"73":0.00229,"74":0.02286,"75":0.00914,"76":0.00457,"77":0.032,"79":0.01372,"80":0.01372,"81":0.04801,"83":0.00457,"84":0.00686,"85":0.01372,"86":0.01143,"87":0.10973,"88":0.07544,"89":0.06629,"90":0.06629,"91":0.12802,"92":1.78765,"93":5.66699,"94":0.84811,"95":0.17831,"96":0.04343,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 30 31 32 34 35 36 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 59 61 66 69 78 97"},F:{"40":0.00229,"76":0.00229,"77":0.03429,"78":0.72466,"79":0.21488,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00126,"15":0.11889,"3.2":0.00063,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00063,"6.0-6.1":0,"7.0-7.1":0.01573,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.0541,"10.0-10.2":0.00252,"10.3":0.05725,"11.0-11.2":0.55358,"11.3-11.4":1.10464,"12.0-12.1":0.02894,"12.2-12.5":0.73349,"13.0-13.1":0.02516,"13.2":0.00629,"13.3":0.07297,"13.4-13.7":0.23527,"14.0-14.4":1.05369,"14.5-14.8":2.22187},E:{"4":0,"13":0.02057,"14":0.05029,"15":0.00914,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.00686,"12.1":0.00686,"13.1":0.05029,"14.1":0.14173},B:{"12":0.02515,"13":0.00914,"14":0.00457,"15":0.00457,"16":0.032,"17":0.02515,"18":0.13945,"80":0.00229,"81":0.00229,"84":0.01143,"85":0.02743,"87":0.00229,"88":0.00457,"89":0.02057,"90":0.02743,"91":0.10058,"92":0.35662,"93":1.22072,"94":0.20345,_:"79 83 86"},P:{"4":0.06171,"5.0-5.4":0.02057,"6.2-6.4":0.05228,"7.2-7.4":0.05143,"8.2":0.01043,"9.2":0.08228,"10.1":0.01054,"11.1-11.2":0.072,"12.0":0.02057,"13.0":0.16457,"14.0":0.3497,"15.0":0.31885},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00318,"4.2-4.3":0.01018,"4.4":0,"4.4.3-4.4.4":0.17948},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28804,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00771},N:{_:"10 11"},L:{"0":68.82665},S:{"2.5":0.01543},R:{_:"0"},M:{"0":0.42427},Q:{"10.4":0.20828},O:{"0":0.70197},H:{"0":4.60096}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js deleted file mode 100644 index 6d21e9f1318fab..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00463,"48":0.02314,"50":0.00463,"51":0.00925,"52":0.25911,"56":0.01388,"60":0.01388,"62":0.00463,"63":0.02314,"65":0.11105,"66":0.00463,"67":0.00463,"68":0.0509,"70":0.01388,"72":0.01851,"73":0.00925,"75":0.00463,"76":0.00463,"77":0.00463,"78":0.40255,"79":0.00463,"80":0.02314,"81":0.01388,"82":0.01388,"83":0.01851,"84":0.04164,"85":0.01851,"86":0.01851,"87":0.03239,"88":0.0509,"89":0.11568,"90":0.06941,"91":1.95259,"92":3.96071,"93":0.1712,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 53 54 55 57 58 59 61 64 69 71 74 94 3.5 3.6"},D:{"38":0.00925,"48":0.02314,"49":0.45345,"50":0.00925,"53":0.00463,"56":0.00925,"58":0.01388,"61":0.79122,"63":0.01851,"65":0.01388,"66":0.00463,"67":0.00925,"68":0.00925,"69":0.0509,"70":0.00925,"71":0.01388,"72":0.00463,"73":0.00463,"74":0.01388,"75":0.01388,"76":0.00925,"77":0.02776,"78":0.01388,"79":0.13881,"80":0.02776,"81":0.06015,"83":0.03239,"84":0.02776,"85":0.06015,"86":0.05552,"87":0.17583,"88":0.07403,"89":0.09254,"90":0.06941,"91":0.28687,"92":5.68658,"93":19.61385,"94":3.17412,"95":0.00925,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 51 52 54 55 57 59 60 62 64 96 97"},F:{"28":0.00463,"36":0.00925,"40":0.00463,"45":0.00463,"46":0.01388,"68":0.00463,"77":0.03702,"78":1.41124,"79":0.36553,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.33792,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00379,"6.0-6.1":0.00152,"7.0-7.1":0.01212,"8.1-8.4":0,"9.0-9.2":0.00227,"9.3":0.03637,"10.0-10.2":0.00909,"10.3":0.06819,"11.0-11.2":0.0197,"11.3-11.4":0.0394,"12.0-12.1":0.02197,"12.2-12.5":0.35459,"13.0-13.1":0.01667,"13.2":0.00682,"13.3":0.05076,"13.4-13.7":0.20306,"14.0-14.4":0.59174,"14.5-14.8":5.79995},E:{"4":0,"13":0.02776,"14":0.10642,"15":0.06478,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01851,"12.1":0.02314,"13.1":0.06478,"14.1":0.56449},B:{"14":0.00463,"15":0.00463,"16":0.00925,"17":0.00925,"18":0.02776,"84":0.00925,"85":0.00925,"89":0.01851,"91":0.01851,"92":0.3933,"93":1.77214,"94":0.41643,_:"12 13 79 80 81 83 86 87 88 90"},P:{"4":0.0738,_:"5.0-5.4 8.2","6.2-6.4":0.05228,"7.2-7.4":0.03105,"9.2":0.01054,"10.1":0.01054,"11.1-11.2":0.09488,"12.0":0.05271,"13.0":0.14759,"14.0":0.37953,"15.0":2.01361},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00346,"4.2-4.3":0.01616,"4.4":0,"4.4.3-4.4.4":0.12007},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00944,"11":0.68924,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":43.54464},S:{"2.5":0},R:{_:"0"},M:{"0":0.27402},Q:{"10.4":0.01075},O:{"0":0.04298},H:{"0":0.26451}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js deleted file mode 100644 index 77d503fda19520..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"36":0.01184,"49":0.00395,"52":0.02762,"78":0.02368,"79":0.01184,"80":0.00789,"81":0.03551,"82":0.00395,"84":0.00395,"89":0.146,"90":0.00789,"91":0.36698,"92":0.66687,"93":0.00789,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 83 85 86 87 88 94 3.5 3.6"},D:{"27":0.00395,"38":0.02368,"43":0.00789,"49":0.05919,"53":0.00789,"56":0.00789,"60":0.00395,"63":0.02762,"65":0.04341,"66":0.00789,"67":0.01578,"69":0.00789,"71":0.00395,"73":0.0947,"74":0.01184,"76":0.01184,"77":0.01184,"78":0.00789,"79":0.07497,"80":0.02368,"81":0.01973,"83":0.03157,"84":0.08287,"85":0.09865,"86":0.13022,"87":0.38276,"88":0.03946,"89":0.06708,"90":0.11049,"91":0.26438,"92":4.64444,"93":19.0868,"94":3.43302,"95":0.01578,"96":0.01184,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 55 57 58 59 61 62 64 68 70 72 75 97"},F:{"36":0.01578,"46":0.00395,"52":0.02762,"73":0.00789,"75":0.00395,"76":0.02762,"77":0.05524,"78":0.24465,"79":0.01578,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.28879,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00342,"6.0-6.1":0.00171,"7.0-7.1":0.03594,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.13864,"10.0-10.2":0.02738,"10.3":0.11296,"11.0-11.2":0.08215,"11.3-11.4":0.08215,"12.0-12.1":0.05648,"12.2-12.5":0.47923,"13.0-13.1":0.0445,"13.2":0.01712,"13.3":0.1044,"13.4-13.7":0.43302,"14.0-14.4":1.50787,"14.5-14.8":12.69282},E:{"4":0,"11":0.00395,"12":0.00789,"13":0.08287,"14":0.56033,"15":0.22098,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00789,"11.1":0.03551,"12.1":0.11049,"13.1":0.33936,"14.1":2.26106},B:{"15":0.01184,"16":0.00789,"17":0.01184,"18":0.11049,"84":0.03946,"85":0.00395,"86":0.02762,"88":0.00395,"89":0.02368,"90":0.00395,"91":0.07497,"92":0.51298,"93":2.34787,"94":0.4893,_:"12 13 14 79 80 81 83 87"},P:{"4":0.23645,"5.0-5.4":0.3704,"6.2-6.4":0.31033,"7.2-7.4":0.07196,"8.2":0.13014,"9.2":0.0514,"10.1":0.03084,"11.1-11.2":0.22617,"12.0":0.11308,"13.0":0.19533,"14.0":0.53458,"15.0":2.89907},I:{"0":0,"3":0,"4":0.00052,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00052,"4.2-4.3":0.00361,"4.4":0,"4.4.3-4.4.4":0.01958},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01197,"8":0.00399,"9":0.00798,"11":0.34304,_:"7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":35.60392},S:{"2.5":0},R:{_:"0"},M:{"0":0.18767},Q:{"10.4":0},O:{"0":3.17835},H:{"0":0.60754}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js deleted file mode 100644 index 9f688674016050..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.01089,"15":0.00363,"17":0.02541,"28":0.00726,"31":0.00726,"37":0.00726,"43":0.00726,"46":0.00726,"47":0.02904,"48":0.00726,"49":0.00726,"51":0.01089,"52":0.03993,"56":0.05445,"57":0.01089,"59":0.01815,"60":0.00726,"65":0.01815,"68":0.03993,"69":0.00726,"72":0.01089,"73":0.00726,"78":0.08712,"79":0.00363,"81":0.01089,"82":0.00726,"83":0.00726,"84":0.01089,"85":0.01089,"87":0.00726,"88":0.09438,"89":0.37026,"90":0.0363,"91":1.70973,"92":3.88773,"93":0.07986,_:"2 3 4 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 36 38 39 40 41 42 44 45 50 53 54 55 58 61 62 63 64 66 67 70 71 74 75 76 77 80 86 94 3.5 3.6"},D:{"23":0.00726,"24":0.01452,"26":0.00363,"31":0.00726,"43":0.00363,"47":0.00363,"49":0.05082,"50":0.01089,"55":0.00726,"58":0.00726,"62":0.00363,"63":0.01089,"64":0.01815,"65":0.00363,"69":0.00363,"70":0.02904,"71":0.07623,"74":0.01089,"75":0.01089,"77":0.01089,"78":0.02541,"79":0.02904,"80":0.0363,"81":0.51183,"83":0.01815,"84":0.00726,"85":0.02541,"86":0.02541,"87":0.24321,"88":0.04719,"89":0.06534,"90":0.14883,"91":0.36663,"92":4.67907,"93":11.55066,"94":1.57905,"95":0.01089,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 25 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 51 52 53 54 56 57 59 60 61 66 67 68 72 73 76 96 97"},F:{"15":0.00363,"42":0.00726,"68":0.00726,"75":0.00363,"76":0.01089,"77":0.15609,"78":0.69333,"79":0.28677,_:"9 11 12 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.13203,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00075,"7.0-7.1":0.00338,"8.1-8.4":0.0015,"9.0-9.2":0.009,"9.3":0.04014,"10.0-10.2":0.00825,"10.3":0.03338,"11.0-11.2":0.01388,"11.3-11.4":0.02138,"12.0-12.1":0.01613,"12.2-12.5":0.57165,"13.0-13.1":0.02513,"13.2":0.02026,"13.3":0.07014,"13.4-13.7":0.1009,"14.0-14.4":0.63429,"14.5-14.8":2.04915},E:{"4":0,"13":0.00726,"14":0.03267,"15":0.01452,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01089,"11.1":0.00726,"12.1":0.00726,"13.1":0.02904,"14.1":0.2541},B:{"12":0.04719,"13":0.02541,"14":0.01089,"15":0.00363,"16":0.00726,"17":0.05082,"18":0.1089,"85":0.02178,"88":0.01452,"89":0.02541,"90":0.01452,"91":0.27951,"92":0.43923,"93":1.3794,"94":0.41019,_:"79 80 81 83 84 86 87"},P:{"4":1.32113,"5.0-5.4":0.01032,"6.2-6.4":0.03096,"7.2-7.4":0.11353,"8.2":0.02064,"9.2":0.06193,"10.1":0.02064,"11.1-11.2":0.07225,"12.0":0.04129,"13.0":0.07225,"14.0":0.1961,"15.0":0.65024},I:{"0":0,"3":0,"4":0.00021,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00277,"4.2-4.3":0.00681,"4.4":0,"4.4.3-4.4.4":0.06663},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01815,"11":0.23232,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.00637},N:{"11":0.01911,_:"10"},L:{"0":46.19472},S:{"2.5":0.01274},R:{_:"0"},M:{"0":0.22928},Q:{"10.4":0.05095},O:{"0":0.28024},H:{"0":14.64025}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js deleted file mode 100644 index d1af38f595ca03..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BJ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.00344,"13":0.00688,"15":0.00688,"17":0.00344,"41":0.00344,"43":0.01377,"47":0.01033,"52":0.01721,"56":0.00688,"57":0.00688,"59":0.00688,"60":0.01033,"65":0.01721,"68":0.01033,"72":0.02409,"73":0.00688,"75":0.00688,"76":0.00344,"78":0.10326,"79":0.01377,"80":0.01377,"81":0.00344,"82":0.01033,"84":0.02065,"85":0.04475,"87":0.02754,"88":0.02754,"89":0.1067,"90":0.03442,"91":0.7297,"92":1.42155,"93":0.05163,_:"2 3 4 6 7 8 9 10 11 12 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 48 49 50 51 53 54 55 58 61 62 63 64 66 67 69 70 71 74 77 83 86 94 3.5 3.6"},D:{"21":0.01033,"22":0.00688,"24":0.01377,"25":0.00688,"26":0.01377,"28":0.01033,"29":0.00344,"33":0.01033,"37":0.00344,"43":0.00688,"44":0.00688,"46":0.00688,"47":0.00688,"49":0.0413,"50":0.00688,"55":0.00344,"57":0.00688,"59":0.00344,"61":0.00344,"62":0.20996,"63":0.02065,"64":0.00688,"65":0.01033,"66":0.00688,"67":0.01033,"68":0.01377,"69":0.14112,"70":0.00688,"71":0.00688,"72":0.02409,"73":0.02754,"74":0.06196,"75":0.00688,"76":0.01721,"77":0.0413,"78":0.00688,"79":0.17554,"80":0.02065,"81":0.04819,"83":0.04475,"84":0.10326,"85":0.09293,"86":0.08949,"87":0.44746,"88":0.07228,"89":0.14801,"90":0.20996,"91":0.78133,"92":4.03402,"93":11.23469,"94":1.64183,"95":0.02065,"96":0.00344,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 23 27 30 31 32 34 35 36 38 39 40 41 42 45 48 51 52 53 54 56 58 60 97"},F:{"57":0.01033,"62":0.00688,"71":0.00688,"73":0.00688,"76":0.01721,"77":0.03442,"78":0.66775,"79":0.23406,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 63 64 65 66 67 68 69 70 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.1152,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00045,"6.0-6.1":0.0045,"7.0-7.1":0.08505,"8.1-8.4":0,"9.0-9.2":0.00405,"9.3":0.0324,"10.0-10.2":0,"10.3":0.018,"11.0-11.2":0.03555,"11.3-11.4":0.01935,"12.0-12.1":0.0099,"12.2-12.5":0.90133,"13.0-13.1":0.02385,"13.2":0.0027,"13.3":0.02655,"13.4-13.7":0.13995,"14.0-14.4":0.86848,"14.5-14.8":2.2108},E:{"4":0,"10":0.00344,"11":0.00688,"13":0.02409,"14":0.04819,"15":0.03442,_:"0 5 6 7 8 9 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02409,"11.1":0.00688,"12.1":0.03442,"13.1":0.05163,"14.1":0.18587},B:{"12":0.02065,"13":0.00688,"15":0.00344,"16":0.00344,"17":0.01033,"18":0.07228,"84":0.00688,"85":0.00688,"89":0.03786,"90":0.01377,"91":0.01377,"92":0.20996,"93":1.01195,"94":0.12735,_:"14 79 80 81 83 86 87 88"},P:{"4":0.01087,"5.0-5.4":0.01095,"6.2-6.4":0.01087,"7.2-7.4":0.05437,"8.2":0.01043,"9.2":0.01095,"10.1":0.05528,"11.1-11.2":0.19716,"12.0":0.03286,"13.0":0.04349,"14.0":0.46754,"15.0":0.27183},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00162,"4.2-4.3":0.00324,"4.4":0,"4.4.3-4.4.4":0.06726},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01549,"9":0.01549,"11":0.2375,_:"6 7 10 5.5"},J:{"7":0,"10":0.00656},N:{_:"10 11"},L:{"0":63.07553},S:{"2.5":0.09836},R:{_:"0"},M:{"0":0.07213},Q:{"10.4":0.01311},O:{"0":0.8393},H:{"0":3.9295}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js deleted file mode 100644 index 9f5a1ce2ca33ea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"78":0.20297,"83":0.01128,"90":0.02255,"91":0.67656,"92":0.78368,"93":0.00564,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 89 94 3.5 3.6"},D:{"49":0.06766,"63":0.01691,"65":0.03947,"66":0.00564,"67":0.01128,"71":0.02819,"74":0.32137,"75":0.02819,"76":0.06766,"77":0.12404,"78":0.00564,"79":0.02819,"80":0.03383,"81":0.03383,"83":0.01128,"85":0.17478,"86":0.12404,"87":0.23116,"88":0.03947,"89":0.05074,"90":0.07329,"91":0.59199,"92":6.89527,"93":18.92113,"94":3.88458,"95":0.00564,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 68 69 70 72 73 84 96 97"},F:{"45":0.05074,"77":0.01691,"78":0.63709,"79":0.22552,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.29572,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01062,"9.0-9.2":0.12214,"9.3":0.2549,"10.0-10.2":0.00531,"10.3":0.21241,"11.0-11.2":0.01593,"11.3-11.4":0.09824,"12.0-12.1":0.1009,"12.2-12.5":1.37803,"13.0-13.1":0.01859,"13.2":0.00531,"13.3":0.28941,"13.4-13.7":0.58148,"14.0-14.4":1.33555,"14.5-14.8":20.81386},E:{"4":0,"12":0.01128,"13":0.12967,"14":1.06558,"15":0.38902,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01691,"10.1":0.71039,"11.1":0.05074,"12.1":0.14095,"13.1":1.64066,"14.1":8.44572},B:{"16":0.01128,"17":0.02255,"18":0.24807,"83":0.00564,"85":0.00564,"89":0.00564,"91":0.03383,"92":1.14451,"93":5.22079,"94":0.78368,_:"12 13 14 15 79 80 81 84 86 87 88 90"},P:{"4":0.35267,"5.0-5.4":0.01095,"6.2-6.4":0.01087,"7.2-7.4":0.01102,"8.2":0.01043,"9.2":0.01102,"10.1":0.05528,"11.1-11.2":0.03306,"12.0":0.03286,"13.0":0.0551,"14.0":0.50696,"15.0":3.38343},I:{"0":0,"3":0,"4":0.00102,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00334},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.78368,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":12.79669},S:{"2.5":0},R:{_:"0"},M:{"0":0.10469},Q:{"10.4":0},O:{"0":0.01309},H:{"0":0.07433}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js deleted file mode 100644 index d5cf7e6e0e4208..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"28":0.00417,"43":0.00417,"48":0.00834,"52":0.02086,"73":0.02086,"78":0.05006,"80":0.00417,"81":0.01252,"86":0.00834,"87":0.00834,"88":0.01252,"89":0.02503,"90":0.01669,"91":0.76765,"92":1.4894,"93":0.03338,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 82 83 84 85 94 3.5 3.6"},D:{"34":0.00417,"38":0.04589,"47":0.18774,"49":0.27952,"50":0.00417,"53":0.0292,"55":0.09596,"56":0.01252,"60":0.00417,"62":0.03338,"63":0.01252,"64":0.00834,"65":0.05006,"67":0.02086,"68":0.00834,"70":0.00834,"72":0.0292,"73":0.02503,"74":0.01669,"75":0.06675,"77":0.00834,"79":0.17105,"80":0.04589,"81":0.09178,"83":0.01252,"84":0.01252,"85":0.01252,"86":0.0292,"87":0.10013,"88":0.12099,"89":0.03755,"90":0.07927,"91":0.25032,"92":5.7073,"93":19.05352,"94":2.84948,"95":0.03338,"96":0.01669,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 51 52 54 57 58 59 61 66 69 71 76 78 97"},F:{"28":0.00417,"40":0.00417,"46":0.0292,"77":0.0292,"78":0.62997,"79":0.14602,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.10081,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00265,"6.0-6.1":0.00662,"7.0-7.1":0.13363,"8.1-8.4":0.02911,"9.0-9.2":0.02249,"9.3":0.41148,"10.0-10.2":0.0172,"10.3":0.28843,"11.0-11.2":0.05954,"11.3-11.4":0.05954,"12.0-12.1":0.03969,"12.2-12.5":1.1577,"13.0-13.1":0.01985,"13.2":0.01455,"13.3":0.12569,"13.4-13.7":0.28049,"14.0-14.4":1.14712,"14.5-14.8":8.31296},E:{"4":0,"11":0.00417,"12":0.02086,"13":0.21277,"14":0.60494,"15":0.28787,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.20443,"10.1":0.03755,"11.1":0.06675,"12.1":0.1043,"13.1":0.4172,"14.1":3.07894},B:{"14":0.03338,"17":0.01252,"18":0.02086,"85":0.00417,"89":0.00834,"90":0.00834,"91":0.00417,"92":0.37965,"93":1.63125,"94":0.36714,_:"12 13 15 16 79 80 81 83 84 86 87 88"},P:{"4":0.61072,_:"5.0-5.4 8.2","6.2-6.4":0.05228,"7.2-7.4":0.03105,"9.2":0.03105,"10.1":0.0414,"11.1-11.2":0.06211,"12.0":0.05176,"13.0":0.13457,"14.0":0.24843,"15.0":1.56303},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00096,"4.2-4.3":0.0053,"4.4":0,"4.4.3-4.4.4":0.02288},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1043,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":37.6101},S:{"2.5":0},R:{_:"0"},M:{"0":0.22729},Q:{"10.4":0},O:{"0":2.57015},H:{"0":2.18496}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js deleted file mode 100644 index 92b42844c86b5a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.00399,"17":0.00799,"31":0.01198,"39":0.00399,"43":0.00799,"47":0.00799,"48":0.00399,"52":0.05592,"60":0.00399,"61":0.00399,"63":0.00399,"69":0.00799,"72":0.02396,"73":0.01198,"78":0.07189,"79":0.00799,"82":0.00799,"83":0.00799,"84":0.01198,"85":0.01198,"86":0.01198,"87":0.00799,"88":0.02396,"89":0.04393,"90":0.05192,"91":0.82676,"92":1.60159,"93":0.02396,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 40 41 42 44 45 46 49 50 51 53 54 55 56 57 58 59 62 64 65 66 67 68 70 71 74 75 76 77 80 81 94 3.5 3.6"},D:{"24":0.00399,"25":0.00399,"38":0.00799,"46":0.00399,"47":0.00399,"49":0.07589,"52":0.00399,"62":0.00799,"63":0.01598,"64":0.01198,"65":0.01198,"66":0.00799,"67":0.01198,"68":0.00799,"69":0.03195,"70":0.03195,"71":0.00799,"72":0.01997,"73":0.01598,"74":0.01598,"75":0.01198,"76":0.01598,"77":0.01198,"78":0.00799,"79":0.08387,"80":0.03994,"81":0.02396,"83":0.08387,"84":0.02796,"85":0.16375,"86":0.0639,"87":0.11583,"88":0.05991,"89":0.07189,"90":0.08387,"91":0.5352,"92":5.5916,"93":20.3015,"94":3.46679,"95":0.00799,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 48 50 51 53 54 55 56 57 58 59 60 61 96 97"},F:{"36":0.00399,"53":0.00399,"72":0.01198,"77":0.02796,"78":1.2621,"79":0.27559,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.16219,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00076,"5.0-5.1":0.00253,"6.0-6.1":0.00279,"7.0-7.1":0.00938,"8.1-8.4":0.00127,"9.0-9.2":0.00583,"9.3":0.02408,"10.0-10.2":0.00355,"10.3":0.01242,"11.0-11.2":0.00963,"11.3-11.4":0.01242,"12.0-12.1":0.00811,"12.2-12.5":0.18221,"13.0-13.1":0.00355,"13.2":0.00304,"13.3":0.0109,"13.4-13.7":0.06234,"14.0-14.4":0.20502,"14.5-14.8":1.81252},E:{"4":0,"12":0.00399,"13":0.01198,"14":0.0679,"15":0.03994,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0679,"11.1":0.01198,"12.1":0.01198,"13.1":0.0679,"14.1":0.34348},B:{"12":0.00399,"13":0.02396,"14":0.00399,"15":0.00399,"16":0.00799,"17":0.03195,"18":0.04393,"84":0.00399,"85":0.00399,"89":0.02396,"90":0.01997,"91":0.02396,"92":0.27159,"93":1.32201,"94":0.28357,_:"79 80 81 83 86 87 88"},P:{"4":0.52256,"5.0-5.4":0.01095,"6.2-6.4":0.01025,"7.2-7.4":0.5533,"8.2":0.01043,"9.2":0.07172,"10.1":0.03074,"11.1-11.2":0.33813,"12.0":0.11271,"13.0":0.38936,"14.0":0.67626,"15.0":1.89557},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00355,"4.2-4.3":0.00993,"4.4":0,"4.4.3-4.4.4":0.07661},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01369,"11":0.11411,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.03604},N:{_:"10 11"},L:{"0":53.00193},S:{"2.5":0},R:{_:"0"},M:{"0":0.16817},Q:{"10.4":0},O:{"0":0.24024},H:{"0":0.47195}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js deleted file mode 100644 index 6f6019f32b96d3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.03007,"60":0.01504,"67":0.00501,"68":0.01504,"72":0.00501,"78":0.08019,"79":0.01002,"80":0.01002,"81":0.01504,"82":0.01504,"83":0.01002,"84":0.01504,"86":0.00501,"87":0.01002,"88":0.02005,"89":0.03007,"90":0.03508,"91":0.60645,"92":1.25801,"93":0.01002,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 69 70 71 73 74 75 76 77 85 94 3.5 3.6"},D:{"38":0.01002,"43":0.00501,"47":0.01002,"49":0.11026,"51":0.01002,"53":0.00501,"55":0.01002,"58":0.01504,"61":0.16038,"63":0.02005,"65":0.01002,"67":0.01002,"68":0.00501,"69":0.01002,"70":0.01002,"71":0.01002,"72":0.01002,"73":0.01002,"74":0.02005,"75":0.05513,"76":0.03007,"77":0.01504,"78":0.02506,"79":0.17542,"80":0.0401,"81":0.04511,"83":0.07017,"84":0.12029,"85":0.11026,"86":0.13031,"87":0.49118,"88":0.05012,"89":0.09022,"90":0.12029,"91":1.85444,"92":6.41536,"93":25.40082,"94":3.73895,"95":0.0401,"96":0.01002,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 52 54 56 57 59 60 62 64 66 97"},F:{"36":0.01002,"70":0.00501,"71":0.00501,"77":0.02506,"78":2.7165,"79":0.31074,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00117,"15":0.2822,"3.2":0.00058,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00993,"6.0-6.1":0.00351,"7.0-7.1":0.00467,"8.1-8.4":0.00234,"9.0-9.2":0.00292,"9.3":0.03506,"10.0-10.2":0.00292,"10.3":0.03798,"11.0-11.2":0.00876,"11.3-11.4":0.01402,"12.0-12.1":0.01169,"12.2-12.5":0.29214,"13.0-13.1":0.01169,"13.2":0.00526,"13.3":0.03681,"13.4-13.7":0.16301,"14.0-14.4":0.43353,"14.5-14.8":4.48194},E:{"4":0,"13":0.02506,"14":0.07518,"15":0.06014,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01002,"12.1":0.02005,"13.1":0.0852,"14.1":0.4611},B:{"14":0.00501,"15":0.00501,"16":0.00501,"17":0.01002,"18":0.09022,"84":0.01504,"85":0.01002,"86":0.00501,"87":0.00501,"89":0.02005,"90":0.00501,"91":0.01504,"92":0.48115,"93":2.26041,"94":0.40597,_:"12 13 79 80 81 83 88"},P:{"4":0.13602,_:"5.0-5.4 8.2 10.1","6.2-6.4":0.05228,"7.2-7.4":0.19879,"9.2":0.02093,"11.1-11.2":0.12555,"12.0":0.03139,"13.0":0.12555,"14.0":0.27203,"15.0":1.67404},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00461,"4.2-4.3":0.01013,"4.4":0,"4.4.3-4.4.4":0.04513},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02145,"9":0.01072,"10":0.00536,"11":0.19302,_:"6 7 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":41.41645},S:{"2.5":0},R:{_:"0"},M:{"0":0.12971},Q:{"10.4":0},O:{"0":0.1347},H:{"0":0.17948}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js deleted file mode 100644 index e1decbe1768501..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.00476,"48":0.06193,"52":0.03335,"56":0.00476,"72":0.13339,"76":0.08575,"78":0.0524,"85":0.01429,"87":0.00476,"88":0.03811,"89":0.02858,"90":0.01429,"91":0.5288,"92":0.93374,"93":0.02382,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 77 79 80 81 82 83 84 86 94 3.5 3.6"},D:{"43":0.02382,"49":0.1715,"58":0.00476,"63":0.00476,"65":0.03335,"67":0.00476,"69":0.00476,"71":0.00953,"72":0.01906,"73":0.00953,"74":0.48593,"75":0.04288,"76":0.37159,"77":0.01429,"78":0.00953,"79":0.0524,"80":0.01429,"81":0.01429,"83":0.0667,"84":0.02858,"85":0.00476,"86":0.03811,"87":0.10481,"88":0.0524,"89":0.0524,"90":0.21438,"91":0.45258,"92":5.10224,"93":15.20192,"94":2.23432,"95":0.02382,"96":0.00476,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 66 68 70 97"},F:{"78":0.22867,"79":0.04764,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01091,"15":0.73264,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00364,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00727,"9.0-9.2":0,"9.3":0.16725,"10.0-10.2":0.00364,"10.3":0.14725,"11.0-11.2":0.03454,"11.3-11.4":0.02909,"12.0-12.1":0.04908,"12.2-12.5":0.96352,"13.0-13.1":0.03818,"13.2":0.00545,"13.3":0.15634,"13.4-13.7":0.27997,"14.0-14.4":1.29257,"14.5-14.8":14.25281},E:{"4":0,"12":0.00476,"13":0.0524,"14":0.4764,"15":0.23344,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01429,"11.1":0.04764,"12.1":0.11434,"13.1":0.46211,"14.1":4.08275},B:{"12":0.00476,"13":0.01429,"14":0.00953,"15":0.01906,"16":0.0524,"17":0.02858,"18":0.13339,"80":0.00476,"84":0.00953,"86":0.07146,"89":0.02858,"90":0.00953,"91":0.04764,"92":1.45778,"93":5.92642,"94":1.03855,_:"79 81 83 85 87 88"},P:{"4":0.07357,"5.0-5.4":0.02165,"6.2-6.4":0.01015,"7.2-7.4":0.49395,_:"8.2","9.2":0.12612,"10.1":0.05255,"11.1-11.2":0.64109,"12.0":0.08408,"13.0":0.35733,"14.0":0.8723,"15.0":4.60324},I:{"0":0,"3":0,"4":0.00114,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00228,"4.4":0,"4.4.3-4.4.4":0.02277},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.43352,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":31.80027},S:{"2.5":0},R:{_:"0"},M:{"0":0.18326},Q:{"10.4":0},O:{"0":0.00524},H:{"0":0.02974}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js deleted file mode 100644 index b33be4bdbcea5f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"28":0.00591,"30":0.00296,"43":0.01182,"44":0.00887,"51":0.00591,"52":0.00296,"78":0.0266,"84":0.00887,"87":0.02069,"88":0.00296,"89":0.00887,"90":0.06206,"91":0.22163,"92":0.66783,"93":0.04728,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 31 32 33 34 35 36 37 38 39 40 41 42 45 46 47 48 49 50 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 94 3.5 3.6"},D:{"18":0.00591,"38":0.00296,"49":0.20094,"56":0.00296,"63":0.00887,"65":0.02069,"66":0.01773,"67":0.01773,"68":0.00296,"69":0.01478,"70":0.01478,"71":0.02364,"74":0.01478,"75":0.01478,"77":0.01773,"78":0.01478,"79":0.03251,"80":0.05024,"81":0.02069,"83":0.00887,"84":0.00591,"85":0.00887,"86":0.01773,"87":0.26891,"88":0.02364,"89":0.04137,"90":0.16253,"91":0.37233,"92":4.53593,"93":14.79864,"94":2.46743,"95":0.04137,"96":0.00887,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 72 73 76 97"},F:{"46":0.00591,"78":0.12411,"79":0.04433,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.21326,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00216,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00576,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.02017,"10.0-10.2":0.00072,"10.3":0.00865,"11.0-11.2":0.05259,"11.3-11.4":0.01657,"12.0-12.1":0.03458,"12.2-12.5":0.4964,"13.0-13.1":0.02882,"13.2":0.03818,"13.3":0.0987,"13.4-13.7":0.23631,"14.0-14.4":1.61095,"14.5-14.8":4.33718},E:{"4":0,"12":0.01478,"13":0.01478,"14":0.26595,"15":0.02955,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00591,"11.1":0.00591,"12.1":0.02955,"13.1":0.13002,"14.1":0.46394},B:{"12":0.01478,"13":0.01478,"14":0.01478,"15":0.00591,"16":0.00591,"17":0.0266,"18":0.06501,"84":0.03546,"85":0.05319,"86":0.00296,"87":0.01182,"88":0.00591,"89":0.0266,"90":0.01182,"91":0.02955,"92":0.42257,"93":1.21746,"94":0.30141,_:"79 80 81 83"},P:{"4":0.30339,"5.0-5.4":0.01095,"6.2-6.4":0.01087,"7.2-7.4":0.2326,"8.2":0.01043,"9.2":0.14158,"10.1":0.01011,"11.1-11.2":0.18204,"12.0":0.13147,"13.0":0.35396,"14.0":0.56633,"15.0":0.65735},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00591,"11":0.02364,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":57.85982},S:{"2.5":0},R:{_:"0"},M:{"0":0.02818},Q:{"10.4":0},O:{"0":4.03031},H:{"0":0.24682}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js deleted file mode 100644 index 484745c2aa87ba..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.01368,"34":0.03191,"36":0.01368,"40":0.00456,"43":0.00456,"47":0.00912,"50":0.01368,"52":0.11853,"56":0.01368,"60":0.0228,"61":0.01368,"65":0.01824,"70":0.00456,"72":0.00912,"74":0.00912,"75":0.00456,"78":0.09574,"81":0.00456,"87":0.01368,"88":0.04559,"89":0.12765,"90":0.03647,"91":0.96651,"92":1.58653,"93":0.09574,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 37 38 39 41 42 44 45 46 48 49 51 53 54 55 57 58 59 62 63 64 66 67 68 69 71 73 76 77 79 80 82 83 84 85 86 94 3.5 3.6"},D:{"43":0.01368,"49":0.0775,"50":0.00456,"53":0.01368,"57":0.00456,"58":0.00456,"62":0.0228,"63":0.0228,"65":0.01824,"66":0.01824,"67":0.07294,"68":0.01368,"69":0.01824,"70":0.01824,"71":0.00912,"72":0.01368,"73":0.01368,"74":0.03191,"75":0.03191,"76":0.01368,"77":0.01368,"78":0.00456,"79":0.07294,"80":0.04103,"81":0.10942,"83":0.04103,"84":0.03647,"85":0.0228,"86":0.05471,"87":0.18236,"88":0.12309,"89":0.07294,"90":0.24619,"91":1.21725,"92":5.52095,"93":18.34542,"94":2.16097,"95":0.01368,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 51 52 54 55 56 59 60 61 64 96 97"},F:{"28":0.00912,"42":0.00456,"51":0.00912,"77":0.03647,"78":0.63826,"79":0.24619,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00199,"15":0.19226,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00033,"5.0-5.1":0.05247,"6.0-6.1":0.00199,"7.0-7.1":0.15839,"8.1-8.4":0,"9.0-9.2":0.00166,"9.3":0.04715,"10.0-10.2":0.00133,"10.3":0.03752,"11.0-11.2":0.04284,"11.3-11.4":0.03188,"12.0-12.1":0.0435,"12.2-12.5":0.29055,"13.0-13.1":0.00598,"13.2":0.00199,"13.3":0.03985,"13.4-13.7":0.1139,"14.0-14.4":0.23842,"14.5-14.8":2.01561},E:{"4":0,"5":0.00912,"11":0.00912,"12":0.01368,"14":0.16868,"15":0.06383,_:"0 6 7 8 9 10 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0228,"12.1":0.04103,"13.1":0.14133,"14.1":0.6565},B:{"12":0.04559,"13":0.05471,"14":0.04103,"15":0.04103,"16":0.08662,"17":0.03647,"18":0.16868,"80":0.01368,"81":0.00456,"84":0.03647,"85":0.00912,"86":0.00912,"87":0.00912,"88":0.02735,"89":0.25986,"90":0.02735,"91":0.11398,"92":0.82974,"93":3.39646,"94":0.56076,_:"79 83"},P:{"4":0.29278,"5.0-5.4":0.01095,"6.2-6.4":0.05228,"7.2-7.4":0.43917,"8.2":0.01043,"9.2":0.04183,"10.1":0.0307,"11.1-11.2":0.19867,"12.0":0.04183,"13.0":0.12548,"14.0":0.60647,"15.0":1.12929},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00075,"4.2-4.3":0.00675,"4.4":0,"4.4.3-4.4.4":0.06325},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0056,"9":0.0112,"11":1.5287,_:"6 7 10 5.5"},J:{"7":0,"10":0.02721},N:{_:"10 11"},L:{"0":48.74197},S:{"2.5":0.01633},R:{_:"0"},M:{"0":0.1687},Q:{"10.4":0.01088},O:{"0":1.50199},H:{"0":1.11801}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js deleted file mode 100644 index a97ebda88b6170..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.00608,"50":0.01824,"52":0.15808,"55":0.01216,"68":0.01216,"77":0.00608,"78":0.15808,"80":0.00608,"81":0.02432,"82":0.01824,"83":0.01824,"84":0.0304,"85":0.01216,"86":0.01216,"88":0.10944,"89":0.0608,"90":0.0304,"91":1.03968,"92":2.03072,"93":0.02432,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 79 87 94 3.5 3.6"},D:{"22":0.01216,"25":0.0304,"38":0.00608,"41":0.01216,"43":0.01216,"48":0.01216,"49":1.0944,"51":0.01824,"53":0.04864,"57":0.00608,"58":0.0304,"59":0.02432,"60":0.00608,"63":0.00608,"64":0.00608,"66":0.01824,"67":0.01216,"68":0.01824,"69":0.2128,"70":0.01824,"71":0.00608,"72":0.02432,"73":0.07904,"74":0.01216,"75":0.03648,"76":0.01216,"77":0.01824,"78":0.01824,"79":0.20064,"80":0.04864,"81":0.0304,"83":0.11552,"84":0.10944,"85":0.16416,"86":0.20064,"87":0.47424,"88":0.28576,"89":0.152,"90":0.26144,"91":0.68096,"92":6.8704,"93":22.32576,"94":3.93376,"95":0.04864,"96":0.01824,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 44 45 46 47 50 52 54 55 56 61 62 65 97"},F:{"34":0.00608,"35":0.00608,"36":0.16416,"43":0.01824,"57":0.01216,"70":0.02432,"71":0.00608,"72":0.01216,"74":0.01216,"75":0.01824,"76":0.06688,"77":0.152,"78":5.0768,"79":1.672,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.26752},G:{"8":0,"15":0.35503,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02307,"6.0-6.1":0.00262,"7.0-7.1":0.00157,"8.1-8.4":0.0042,"9.0-9.2":0.0021,"9.3":0.08181,"10.0-10.2":0.00629,"10.3":0.03986,"11.0-11.2":0.04458,"11.3-11.4":0.0194,"12.0-12.1":0.02937,"12.2-12.5":0.33143,"13.0-13.1":0.01468,"13.2":0.00944,"13.3":0.0472,"13.4-13.7":0.19928,"14.0-14.4":0.66181,"14.5-14.8":3.36989},E:{"4":0,"12":0.00608,"13":0.07904,"14":0.38912,"15":0.20672,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.22496,"10.1":0.00608,"11.1":0.0304,"12.1":0.02432,"13.1":0.19456,"14.1":1.43488},B:{"17":0.01216,"18":0.05472,"83":0.02432,"86":0.00608,"87":0.01824,"89":0.01216,"92":0.2128,"93":1.28288,"94":0.27968,_:"12 13 14 15 16 79 80 81 84 85 88 90 91"},P:{"4":0.01067,"5.0-5.4":0.02165,"6.2-6.4":0.19208,"7.2-7.4":0.01067,"8.2":0.01043,"9.2":0.01106,"10.1":0.05528,"11.1-11.2":0.05336,"12.0":0.06403,"13.0":0.0747,"14.0":0.16007,"15.0":1.01378},I:{"0":0,"3":0,"4":0.00067,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00267,"4.2-4.3":0.005,"4.4":0,"4.4.3-4.4.4":0.02301},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01489,"9":0.02977,"11":0.38702,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":29.91136},S:{"2.5":0},R:{_:"0"},M:{"0":0.12541},Q:{"10.4":0.10581},O:{"0":0.2273},H:{"0":1.11679}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js deleted file mode 100644 index eb469e2e2a899d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/BZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"50":0.00485,"52":0.00971,"55":0.00485,"59":0.00485,"63":0.00485,"77":0.00971,"78":0.0631,"79":0.08737,"80":0.03398,"81":0.50967,"82":0.03398,"83":0.00485,"85":0.02427,"87":0.00971,"88":0.00485,"89":0.05825,"90":0.05825,"91":0.75722,"92":1.44649,"93":0.01942,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 56 57 58 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 84 86 94 3.5 3.6"},D:{"42":0.00971,"49":0.03883,"53":0.02427,"63":0.00971,"64":0.01456,"65":0.00485,"69":0.00971,"70":0.01456,"74":0.32036,"75":0.08252,"76":0.13106,"77":0.01456,"78":0.05825,"79":0.05339,"80":0.02912,"81":0.03883,"83":0.03883,"84":0.12135,"85":0.21843,"86":0.9077,"87":0.10679,"88":0.03398,"89":0.01456,"90":0.07766,"91":0.23299,"92":5.17436,"93":18.58597,"94":4.0628,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 66 67 68 71 72 73 95 96 97"},F:{"28":0.03398,"70":0.0631,"71":0.01456,"77":0.00971,"78":1.51445,"79":0.50967,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.85726,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.12131,"6.0-6.1":0.00116,"7.0-7.1":0.03813,"8.1-8.4":0.00924,"9.0-9.2":0.05661,"9.3":0.28306,"10.0-10.2":0.00462,"10.3":0.14673,"11.0-11.2":0.00693,"11.3-11.4":0.13402,"12.0-12.1":0.03004,"12.2-12.5":0.76714,"13.0-13.1":0.03697,"13.2":0.00462,"13.3":0.04737,"13.4-13.7":0.29114,"14.0-14.4":0.60771,"14.5-14.8":8.10582},E:{"4":0,"12":0.02427,"13":0.00971,"14":0.32522,"15":0.18931,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00971,"11.1":0.09708,"12.1":0.01942,"13.1":0.25726,"14.1":1.96587},B:{"12":0.00971,"13":0.00485,"15":0.00971,"16":0.00971,"17":0.01456,"18":0.15533,"84":0.08252,"86":0.04369,"89":0.03398,"91":0.02912,"92":1.06303,"93":4.80061,"94":0.99507,_:"14 79 80 81 83 85 87 88 90"},P:{"4":0.37242,"5.0-5.4":0.01095,"6.2-6.4":0.19208,"7.2-7.4":0.14239,"8.2":0.01043,"9.2":0.01095,"10.1":0.05528,"11.1-11.2":0.19716,"12.0":0.03286,"13.0":0.28479,"14.0":0.33956,"15.0":2.11402},I:{"0":0,"3":0,"4":0.00063,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00094,"4.2-4.3":0.02226,"4.4":0,"4.4.3-4.4.4":0.03794},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06796,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":37.02092},S:{"2.5":0},R:{_:"0"},M:{"0":0.12353},Q:{"10.4":0.0875},O:{"0":0.7772},H:{"0":0.25826}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js deleted file mode 100644 index 9fd3fd1c0c5e94..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"11":0.02262,"38":0.01131,"43":0.01697,"44":0.0509,"45":0.01697,"48":0.01131,"52":0.06222,"55":0.0509,"57":0.01131,"60":0.00566,"63":0.07918,"66":0.00566,"68":0.01131,"72":0.01131,"77":0.01131,"78":0.16968,"79":0.01697,"80":0.02262,"81":0.01697,"82":0.03394,"83":0.01697,"84":0.01131,"85":0.00566,"86":0.00566,"87":0.01131,"88":0.02828,"89":0.05656,"90":0.07918,"91":1.09161,"92":2.12666,"93":0.01131,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 51 53 54 56 58 59 61 62 64 65 67 69 70 71 73 74 75 76 94 3.5 3.6"},D:{"38":0.01697,"39":0.00566,"40":0.00566,"41":0.00566,"42":0.01131,"43":0.01131,"44":0.00566,"45":0.00566,"46":0.00566,"47":0.02262,"48":0.14706,"49":0.41854,"50":0.00566,"51":0.00566,"52":0.01131,"53":0.01131,"54":0.01131,"55":0.01131,"56":0.11312,"57":0.01131,"58":0.01131,"59":0.01131,"60":0.04525,"61":0.21493,"62":0.01131,"63":0.01697,"64":0.02262,"65":0.02828,"66":0.01697,"67":0.02828,"69":0.02828,"70":0.11878,"71":0.00566,"72":0.05656,"73":0.01697,"74":0.06222,"75":0.03394,"76":0.26583,"77":0.01697,"78":0.03959,"79":0.71831,"80":0.08484,"81":0.06222,"83":0.67872,"84":0.19796,"85":0.22058,"86":0.28846,"87":0.61085,"88":0.0905,"89":0.1923,"90":0.2319,"91":0.82578,"92":7.17746,"93":18.84014,"94":2.66963,"95":0.01131,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 68 96 97"},F:{"36":0.02262,"42":0.01697,"43":0.01697,"52":0.01131,"56":0.01697,"68":0.00566,"70":0.01131,"71":0.01131,"77":0.01697,"78":0.43551,"79":0.10181,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 44 45 46 47 48 49 50 51 53 54 55 57 58 60 62 63 64 65 66 67 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.81214,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00853,"6.0-6.1":0.01705,"7.0-7.1":0.02984,"8.1-8.4":0.03624,"9.0-9.2":0.02132,"9.3":0.30908,"10.0-10.2":0.02771,"10.3":0.30269,"11.0-11.2":0.1215,"11.3-11.4":0.07674,"12.0-12.1":0.07034,"12.2-12.5":1.27043,"13.0-13.1":0.04263,"13.2":0.02984,"13.3":0.14708,"13.4-13.7":0.5265,"14.0-14.4":1.50704,"14.5-14.8":15.95497},E:{"4":0,"8":0.00566,"9":0.02262,"11":0.01697,"12":0.01697,"13":0.10181,"14":0.77487,"15":0.40723,_:"0 5 6 7 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01697,"10.1":0.0509,"11.1":0.12443,"12.1":0.18099,"13.1":0.67306,"14.1":5.63903},B:{"14":0.02262,"16":0.00566,"17":0.10746,"18":0.1923,"84":0.02262,"85":0.02262,"86":0.01697,"87":0.00566,"88":0.01131,"89":0.02262,"90":0.01697,"91":0.03959,"92":1.02374,"93":4.31553,"94":0.85406,_:"12 13 15 79 80 81 83"},P:{"4":0.12037,"5.0-5.4":0.01094,"6.2-6.4":0.03096,"7.2-7.4":0.1443,"8.2":0.02131,"9.2":0.12368,"10.1":0.01066,"11.1-11.2":0.04377,"12.0":0.02189,"13.0":0.10943,"14.0":0.21886,"15.0":2.91084},I:{"0":0,"3":0,"4":0.00189,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00142,"4.2-4.3":0.0085,"4.4":0,"4.4.3-4.4.4":0.03164},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00694,"9":0.04858,"11":0.77026,_:"6 7 10 5.5"},J:{"7":0,"10":0.01738},N:{"11":0.01911,_:"10"},L:{"0":18.25314},S:{"2.5":0},R:{_:"0"},M:{"0":0.42137},Q:{"10.4":0.01738},O:{"0":0.18245},H:{"0":0.17273}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js deleted file mode 100644 index 102cde0cd4017a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"27":0.00186,"29":0.00371,"30":0.00371,"31":0.00186,"32":0.00557,"38":0.00186,"43":0.00557,"45":0.00186,"47":0.00742,"50":0.00186,"52":0.00742,"56":0.0167,"57":0.01299,"58":0.00186,"62":0.00557,"69":0.00371,"72":0.00742,"78":0.05754,"79":0.00371,"80":0.00186,"81":0.00186,"85":0.00186,"86":0.00371,"87":0.00186,"88":0.02413,"89":0.04454,"90":0.02227,"91":0.45472,"92":0.7424,"93":0.00557,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 33 34 35 36 37 39 40 41 42 44 46 48 49 51 53 54 55 59 60 61 63 64 65 66 67 68 70 71 73 74 75 76 77 82 83 84 94 3.5 3.6"},D:{"11":0.00557,"22":0.00742,"25":0.00371,"28":0.00371,"29":0.00557,"33":0.00371,"37":0.00371,"38":0.00186,"39":0.00371,"40":0.00371,"43":0.00742,"49":0.02784,"50":0.00371,"55":0.00371,"56":0.00186,"57":0.00371,"60":0.00186,"63":0.00742,"64":0.05011,"65":0.00371,"68":0.00371,"69":0.05382,"70":0.00557,"71":0.00371,"72":0.00186,"73":0.00186,"74":0.00371,"75":0.01299,"76":0.01485,"77":0.01114,"78":0.00371,"79":0.04083,"80":0.00928,"81":0.02598,"83":0.00742,"84":0.02413,"85":0.06682,"86":0.0464,"87":0.03341,"88":0.02598,"89":0.02784,"90":0.05197,"91":0.27469,"92":1.23795,"93":3.62477,"94":0.51411,"95":0.00371,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 26 27 30 31 32 34 35 36 41 42 44 45 46 47 48 51 52 53 54 58 59 61 62 66 67 96 97"},F:{"12":0.00186,"18":0.00186,"21":0.00371,"34":0.00371,"35":0.00371,"36":0.00371,"42":0.00557,"47":0.00186,"51":0.00186,"60":0.00557,"64":0.00742,"65":0.01485,"73":0.00186,"74":0.00371,"76":0.00557,"77":0.04083,"78":0.696,"79":0.1856,_:"9 11 15 16 17 19 20 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 43 44 45 46 48 49 50 52 53 54 55 56 57 58 62 63 66 67 68 69 70 71 72 75 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00186},G:{"8":0.00673,"15":0.14281,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0157,"5.0-5.1":0.00224,"6.0-6.1":0.02168,"7.0-7.1":0.01122,"8.1-8.4":0,"9.0-9.2":0.00075,"9.3":0.0471,"10.0-10.2":0.00449,"10.3":0.0815,"11.0-11.2":0.13159,"11.3-11.4":0.06206,"12.0-12.1":0.06056,"12.2-12.5":2.24981,"13.0-13.1":0.05234,"13.2":0.04486,"13.3":0.17047,"13.4-13.7":0.34693,"14.0-14.4":1.68007,"14.5-14.8":2.34327},E:{"4":0,"11":0.00371,"12":0.00557,"13":0.01856,"14":0.05197,"15":0.01114,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 9.1","5.1":0.00371,"7.1":0.00742,"10.1":0.00371,"11.1":0.00742,"12.1":0.01114,"13.1":0.03526,"14.1":0.18746},B:{"12":0.05011,"13":0.01856,"14":0.0167,"15":0.01485,"16":0.00742,"17":0.02227,"18":0.05568,"84":0.01114,"85":0.0167,"86":0.00186,"88":0.00557,"89":0.02042,"90":0.00557,"91":0.02227,"92":0.28397,"93":0.96326,"94":0.18746,_:"79 80 81 83 87"},P:{"4":0.3446,"5.0-5.4":0.02088,"6.2-6.4":0.06039,"7.2-7.4":0.12531,"8.2":0.02131,"9.2":0.06265,"10.1":0.01044,"11.1-11.2":0.13575,"12.0":0.06265,"13.0":0.08354,"14.0":0.39681,"15.0":0.43858},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00468,"4.2-4.3":0.03682,"4.4":0,"4.4.3-4.4.4":0.21097},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00725,"11":0.22475,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.01629},N:{"11":0.01911,_:"10"},L:{"0":50.82048},S:{"2.5":0.15474},R:{_:"0"},M:{"0":0.3339},Q:{"10.4":0.04886},O:{"0":1.69395},H:{"0":24.36427}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js deleted file mode 100644 index 1c1bad2c312dbb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.0124,"45":0.0093,"56":0.0124,"66":0.04339,"72":0.02169,"78":1.42864,"81":0.0093,"87":0.0093,"88":0.0062,"89":0.0124,"90":1.19312,"91":0.43076,"92":1.75713,"93":0.17974,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 82 83 84 85 86 94 3.5 3.6"},D:{"22":0.02789,"49":0.0124,"76":0.10537,"79":0.0031,"81":0.03719,"83":0.0124,"87":0.0031,"88":0.02789,"89":0.0093,"90":0.05268,"91":0.12706,"92":2.41722,"93":7.62664,"94":0.47105,"95":0.0124,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 78 80 84 85 86 96 97"},F:{"36":0.0062,"42":0.02479,"53":0.0124,"64":0.0062,"77":0.21383,"78":0.34089,"79":0.06508,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.04707,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.33333,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01297,"10.0-10.2":0.00192,"10.3":0.78194,"11.0-11.2":0.00865,"11.3-11.4":0.3122,"12.0-12.1":0.01057,"12.2-12.5":0.14938,"13.0-13.1":0.04899,"13.2":0.02354,"13.3":0.02978,"13.4-13.7":0.22863,"14.0-14.4":0.64361,"14.5-14.8":2.17052},E:{"4":0,"14":0.0031,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1 12.1","9.1":0.0031,"13.1":0.02789,"14.1":0.04649},B:{"12":0.04958,"13":0.04339,"14":0.02479,"15":0.0031,"16":0.02169,"18":0.08987,"84":0.0124,"89":0.09917,"90":0.0124,"91":0.0031,"92":0.28821,"93":0.45245,"94":0.12086,_:"17 79 80 81 83 85 86 87 88"},P:{"4":0.26245,"5.0-5.4":0.02019,"6.2-6.4":0.02019,"7.2-7.4":0.06057,"8.2":0.02131,"9.2":0.30283,"10.1":3.1494,"11.1-11.2":0.03028,"12.0":0.03122,"13.0":0.06057,"14.0":0.32302,"15.0":0.37349},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00282,"4.2-4.3":0.00704,"4.4":0,"4.4.3-4.4.4":0.05915},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04958,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":66.0612},S:{"2.5":0.09661},R:{_:"0"},M:{"0":0.06901},Q:{"10.4":0},O:{"0":0.54518},H:{"0":5.10914}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js deleted file mode 100644 index d86556d6bee939..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"35":0.6195,"43":0.0081,"47":0.0081,"52":0.02429,"56":0.0081,"60":0.00405,"72":0.0081,"78":0.07693,"87":0.0162,"88":0.02429,"89":0.11742,"90":0.0162,"91":1.22685,"92":3.00031,"93":0.01215,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 94 3.5 3.6"},D:{"11":0.0081,"35":0.00405,"46":0.00405,"48":0.0081,"49":0.0162,"56":0.08908,"57":0.00405,"58":0.00405,"63":0.0162,"64":0.00405,"67":0.00405,"68":0.00405,"69":0.0081,"70":0.0081,"73":0.01215,"74":0.01215,"75":0.05669,"77":0.00405,"79":0.0162,"80":0.0081,"81":0.0081,"83":0.04859,"84":0.0081,"86":0.06074,"87":0.21055,"88":0.05264,"89":0.02429,"90":0.02834,"91":0.16196,"92":2.03665,"93":8.15469,"94":1.44144,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 47 50 51 52 53 54 55 59 60 61 62 65 66 71 72 76 78 85 95 96 97"},F:{"21":0.0081,"28":0.00405,"34":0.00405,"76":0.01215,"77":0.04454,"78":2.78976,"79":0.92722,_:"9 11 12 15 16 17 18 19 20 22 23 24 25 26 27 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0338,"15":0.10457,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00106,"6.0-6.1":0,"7.0-7.1":0.07447,"8.1-8.4":0.00317,"9.0-9.2":0,"9.3":0.01426,"10.0-10.2":0.00264,"10.3":0.08397,"11.0-11.2":1.55219,"11.3-11.4":0.01743,"12.0-12.1":0.00845,"12.2-12.5":1.29023,"13.0-13.1":0.00634,"13.2":0.03169,"13.3":0.01479,"13.4-13.7":0.047,"14.0-14.4":0.85505,"14.5-14.8":1.13655},E:{"4":0,"12":0.0081,"14":0.04049,"15":0.02429,_:"0 5 6 7 8 9 10 11 13 3.1 3.2 5.1 6.1 9.1","7.1":0.01215,"10.1":0.08503,"11.1":0.0081,"12.1":0.03644,"13.1":0.12552,"14.1":0.16196},B:{"12":0.03644,"13":0.02025,"14":0.0081,"15":0.0081,"16":0.02834,"17":0.0162,"18":0.10123,"84":0.02025,"85":0.03239,"89":0.02025,"90":0.0081,"91":0.03239,"92":0.55471,"93":3.53883,"94":0.45349,_:"79 80 81 83 86 87 88"},P:{"4":0.78277,"5.0-5.4":0.02087,"6.2-6.4":0.06039,"7.2-7.4":0.04175,"8.2":0.05218,"9.2":0.01044,"10.1":0.03131,"11.1-11.2":0.21917,"12.0":0.09393,"13.0":0.20874,"14.0":0.11481,"15.0":0.33398},I:{"0":0,"3":0,"4":0.00086,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01454,"4.2-4.3":0.01641,"4.4":0,"4.4.3-4.4.4":0.15263},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.39275,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.06545},N:{"11":0.01911,_:"10"},L:{"0":61.26337},S:{"2.5":0.77945},R:{_:"0"},M:{"0":0.0952},Q:{"10.4":0.0238},O:{"0":1.1424},H:{"0":1.50403}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js deleted file mode 100644 index 71054347ddbc67..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"41":0.00573,"48":0.03439,"52":0.04586,"55":0.00573,"56":0.00573,"57":0.02293,"60":0.0172,"63":0.01146,"67":0.01146,"68":0.02866,"70":0.01146,"71":0.00573,"72":0.01146,"76":0.00573,"78":0.51015,"80":0.01146,"81":0.01146,"82":0.01146,"83":0.00573,"84":0.02293,"85":0.04012,"86":0.01146,"87":0.03439,"88":0.20062,"89":0.08025,"90":0.08598,"91":2.24121,"92":4.87793,"93":0.02293,"94":0.00573,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 49 50 51 53 54 58 59 61 62 64 65 66 69 73 74 75 77 79 3.5 3.6"},D:{"28":0.00573,"38":0.02293,"41":0.00573,"48":0.01146,"49":0.11464,"51":0.0172,"52":0.17196,"60":0.01146,"63":0.02293,"64":0.01146,"65":0.01146,"66":0.04586,"67":0.02293,"68":0.01146,"69":0.00573,"70":0.0172,"71":0.01146,"72":0.01146,"73":0.01146,"74":0.01146,"75":0.0172,"76":0.01146,"77":0.01146,"78":0.01146,"79":0.1261,"80":0.07452,"81":0.02866,"83":0.05159,"84":0.1261,"85":0.09171,"86":0.06878,"87":0.40124,"88":0.32672,"89":0.10891,"90":0.13184,"91":0.57893,"92":4.53974,"93":15.83178,"94":3.39334,"95":0.01146,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 47 50 53 54 55 56 57 58 59 61 62 96 97"},F:{"28":0.0172,"46":0.00573,"77":0.02293,"78":0.98017,"79":0.25794,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.98354,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00663,"6.0-6.1":0,"7.0-7.1":0.01768,"8.1-8.4":0.0221,"9.0-9.2":0.15913,"9.3":0.30943,"10.0-10.2":0.00884,"10.3":0.17903,"11.0-11.2":0.03536,"11.3-11.4":0.08841,"12.0-12.1":0.05304,"12.2-12.5":0.8023,"13.0-13.1":0.0641,"13.2":0.03094,"13.3":0.13924,"13.4-13.7":0.47077,"14.0-14.4":2.00464,"14.5-14.8":16.72452},E:{"4":0,"8":0.00573,"10":0.04012,"11":0.02866,"12":0.02293,"13":0.11464,"14":1.15786,"15":0.61332,_:"0 5 6 7 9 3.1 3.2 5.1 6.1 7.1","9.1":0.0172,"10.1":0.06305,"11.1":0.15476,"12.1":0.32672,"13.1":1.10054,"14.1":6.84401},B:{"14":0.0172,"16":0.0172,"17":0.0172,"18":0.09744,"84":0.02866,"85":0.02866,"86":0.0172,"87":0.0172,"88":0.0172,"89":0.03439,"90":0.04586,"91":0.10318,"92":1.26677,"93":5.68614,"94":1.41007,_:"12 13 15 79 80 81 83"},P:{"4":0.10732,_:"5.0-5.4 6.2-6.4 7.2-7.4 8.2 10.1","9.2":0.01073,"11.1-11.2":0.04293,"12.0":0.06439,"13.0":0.13952,"14.0":0.53661,"15.0":3.14455},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00193,"4.2-4.3":0.00337,"4.4":0,"4.4.3-4.4.4":0.02458},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.65345,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00427},N:{_:"10 11"},L:{"0":15.91227},S:{"2.5":0},R:{_:"0"},M:{"0":0.57191},Q:{"10.4":0.02561},O:{"0":0.09816},H:{"0":0.25456}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js deleted file mode 100644 index 241c878766f985..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.01209,"47":0.00806,"52":0.06047,"56":0.00403,"64":0.00806,"68":0.00403,"72":0.01209,"75":0.00403,"78":0.06047,"82":0.00403,"83":0.00403,"84":0.01209,"87":0.02419,"88":0.02016,"89":0.10078,"90":0.06047,"91":0.93116,"92":1.68093,"93":0.03628,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 65 66 67 69 70 71 73 74 76 77 79 80 81 85 86 94 3.5 3.6"},D:{"30":0.00806,"33":0.04837,"43":0.00806,"47":0.00806,"49":0.25395,"50":0.00806,"53":0.00403,"55":0.00806,"56":0.00403,"57":0.00806,"58":0.00403,"63":0.02016,"64":0.02419,"65":0.02419,"66":0.00806,"67":0.01209,"68":0.00806,"69":0.04837,"70":0.02822,"71":0.02016,"72":0.02822,"73":0.02016,"74":0.0524,"75":0.02419,"76":0.02419,"77":0.03225,"78":0.08465,"79":0.05643,"80":0.04031,"81":0.07256,"83":0.06047,"84":0.07659,"85":0.08062,"86":0.17333,"87":1.74945,"88":0.10481,"89":0.17736,"90":0.25395,"91":0.51194,"92":4.59937,"93":16.49888,"94":2.38635,"95":0.04837,"96":0.02419,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 34 35 36 37 38 39 40 41 42 44 45 46 48 51 52 54 59 60 61 62 97"},F:{"72":0.00806,"75":0.00403,"76":0.00806,"77":0.04434,"78":0.89085,"79":0.36279,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01027,"15":0.72149,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0044,"5.0-5.1":0.01027,"6.0-6.1":0.00293,"7.0-7.1":0.04986,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.25223,"10.0-10.2":0.0088,"10.3":0.30649,"11.0-11.2":0.41354,"11.3-11.4":0.17011,"12.0-12.1":0.15544,"12.2-12.5":3.03112,"13.0-13.1":0.05133,"13.2":0.03373,"13.3":0.24196,"13.4-13.7":0.47952,"14.0-14.4":2.7393,"14.5-14.8":5.98306},E:{"4":0,"13":0.01209,"14":0.12899,"15":0.07256,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01209,"11.1":0.02016,"12.1":0.02016,"13.1":0.07256,"14.1":0.32651},B:{"12":0.01612,"14":0.00806,"15":0.02419,"16":0.01612,"17":0.02016,"18":0.04031,"84":0.01209,"85":0.00403,"88":0.00806,"89":0.02419,"90":0.00806,"91":0.02016,"92":0.36279,"93":1.53984,"94":0.32248,_:"13 79 80 81 83 86 87"},P:{"4":0.10466,"5.0-5.4":0.01047,"6.2-6.4":0.06039,"7.2-7.4":0.14652,"8.2":0.03105,"9.2":0.09419,"10.1":0.02103,"11.1-11.2":0.11512,"12.0":0.04186,"13.0":0.10466,"14.0":0.3349,"15.0":0.61747},I:{"0":0,"3":0,"4":0.00421,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00281,"4.2-4.3":0.00772,"4.4":0,"4.4.3-4.4.4":0.05688},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02242,"9":0.02242,"11":0.31391,_:"7 8 10 5.5"},J:{"7":0,"10":0.00597},N:{"11":0.01911,_:"10"},L:{"0":44.79733},S:{"2.5":0.01791},R:{_:"0"},M:{"0":0.1731},Q:{"10.4":0.01194},O:{"0":0.44768},H:{"0":2.00048}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js deleted file mode 100644 index 6e6361f462a2dd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"73":0.0137,"78":0.02055,"88":0.06164,"89":0.04109,"91":0.84243,"92":1.41774,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 84 85 86 87 90 93 94 3.5 3.6"},D:{"49":1.43144,"55":0.04794,"65":0.00685,"67":0.06164,"74":0.00685,"81":0.03425,"87":0.04794,"91":0.10958,"92":3.7601,"93":54.23723,"94":2.35606,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 56 57 58 59 60 61 62 63 64 66 68 69 70 71 72 73 75 76 77 78 79 80 83 84 85 86 88 89 90 95 96 97"},F:{"78":0.20547,"79":0.08219,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.04931,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00159,"10.0-10.2":0,"10.3":0.01988,"11.0-11.2":0.00398,"11.3-11.4":0.00636,"12.0-12.1":0.03022,"12.2-12.5":0.25293,"13.0-13.1":0.02943,"13.2":0.00795,"13.3":0.05965,"13.4-13.7":0.38815,"14.0-14.4":1.32353,"14.5-14.8":5.78011},E:{"4":0,"13":0.07534,"14":0.19177,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.03425,"12.1":0.04109,"13.1":0.09589,"14.1":0.39724},B:{"18":0.09589,"91":0.02055,"92":0.36985,"93":1.39035,"94":0.26711,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90"},P:{"4":0.78277,"5.0-5.4":0.02087,"6.2-6.4":0.06039,"7.2-7.4":0.12617,"8.2":0.05218,"9.2":0.10515,"10.1":0.02103,"11.1-11.2":0.48367,"12.0":0.16823,"13.0":0.15772,"14.0":0.85168,"15.0":2.0188},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19177,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":19.18515},S:{"2.5":0},R:{_:"0"},M:{"0":0.15755},Q:{"10.4":0},O:{"0":0.4569},H:{"0":0.10739}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js deleted file mode 100644 index 987f0575b79912..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.02078,"58":0.00831,"73":0.00831,"78":0.04986,"81":0.00416,"84":0.00416,"88":0.00831,"89":0.01247,"90":0.02078,"91":0.51107,"92":1.01382,"93":0.00831,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 82 83 85 86 87 94 3.5 3.6"},D:{"22":0.00416,"38":0.01662,"47":0.00416,"48":0.00831,"49":0.09141,"53":0.00831,"61":0.02078,"63":0.00416,"65":0.01247,"67":0.01247,"68":0.00831,"70":0.00831,"72":0.01662,"73":0.00416,"74":0.00831,"75":0.01247,"76":0.01247,"77":0.00831,"78":0.00831,"79":0.11634,"80":0.02078,"81":0.01247,"83":0.02909,"84":0.03324,"85":0.04155,"86":0.0374,"87":0.25346,"88":0.04155,"89":0.14127,"90":0.07064,"91":0.28254,"92":5.88764,"93":19.48695,"94":3.99296,"95":0.00831,"96":0.00416,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 55 56 57 58 59 60 62 64 66 69 71 97"},F:{"77":0.02078,"78":2.83371,"79":0.31163,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.34759,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00335,"6.0-6.1":0.00201,"7.0-7.1":0.00201,"8.1-8.4":0.00402,"9.0-9.2":0.00134,"9.3":0.04219,"10.0-10.2":0.00268,"10.3":0.02746,"11.0-11.2":0.00871,"11.3-11.4":0.02009,"12.0-12.1":0.01808,"12.2-12.5":0.34625,"13.0-13.1":0.01674,"13.2":0.0067,"13.3":0.06161,"13.4-13.7":0.20025,"14.0-14.4":0.54448,"14.5-14.8":5.03697},E:{"4":0,"12":0.00416,"13":0.02493,"14":0.17036,"15":0.1205,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00416,"11.1":0.01662,"12.1":0.02909,"13.1":0.1662,"14.1":0.95981},B:{"15":0.00831,"17":0.00416,"18":0.02909,"84":0.00831,"89":0.01247,"91":0.01662,"92":0.36149,"93":1.58306,"94":0.42381,_:"12 13 14 16 79 80 81 83 85 86 87 88 90"},P:{"4":0.06188,"5.0-5.4":0.0711,"6.2-6.4":0.06094,"7.2-7.4":0.11344,"8.2":0.02131,"9.2":0.03094,"10.1":0.01016,"11.1-11.2":0.27846,"12.0":0.03094,"13.0":0.17532,"14.0":0.38159,"15.0":1.24789},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00334,"4.4":0,"4.4.3-4.4.4":0.02004},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02016,"9":0.01008,"10":0.01008,"11":0.19652,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":50.30408},S:{"2.5":0},R:{_:"0"},M:{"0":0.14613},Q:{"10.4":0},O:{"0":0.04676},H:{"0":0.15494}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js deleted file mode 100644 index b4732db2c84d50..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00658,"30":0.00658,"34":0.00658,"37":0.00329,"40":0.00329,"43":0.00988,"44":0.00658,"45":0.00658,"47":0.01646,"48":0.00329,"50":0.00658,"51":0.01317,"52":0.21069,"53":0.00329,"56":0.00658,"57":0.00329,"60":0.00988,"61":0.00329,"62":0.00658,"64":0.00988,"65":0.00329,"68":0.00988,"69":0.00658,"70":0.00329,"71":0.00329,"72":0.02963,"76":0.00329,"78":0.10864,"80":0.01646,"81":0.00658,"82":0.02634,"83":0.01646,"84":0.01317,"85":0.01317,"86":0.01317,"87":0.00988,"88":0.04609,"89":0.10205,"90":0.07572,"91":1.06002,"92":1.96862,"93":0.20081,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 38 39 41 42 46 49 54 55 58 59 63 66 67 73 74 75 77 79 94 3.5 3.6"},D:{"11":0.00329,"24":0.00329,"38":0.01317,"43":0.00988,"46":0.00329,"47":0.00329,"49":0.11193,"50":0.00329,"55":0.03292,"56":0.05596,"57":0.00658,"58":0.00988,"63":0.02304,"64":0.00658,"65":0.01975,"66":0.00988,"67":0.00329,"68":0.06255,"69":0.00658,"70":0.00658,"71":0.00658,"73":0.00658,"74":0.04938,"75":0.00988,"76":0.10534,"77":0.01317,"78":0.00988,"79":0.21398,"80":0.03621,"81":0.09876,"83":0.01975,"84":0.0395,"85":0.01975,"86":0.05267,"87":0.34237,"88":0.08559,"89":0.08888,"90":0.10205,"91":0.32591,"92":2.65006,"93":8.94766,"94":1.16208,"95":0.02634,"96":0.00658,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 48 51 52 53 54 59 60 61 62 72 97"},F:{"20":0.00329,"30":0.00329,"42":0.00329,"44":0.00658,"54":0.00988,"57":0.00329,"73":0.05267,"74":0.00329,"76":0.00988,"77":0.07242,"78":0.80325,"79":0.31603,_:"9 11 12 15 16 17 18 19 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 43 45 46 47 48 49 50 51 52 53 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.10402,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00234,"6.0-6.1":0.00234,"7.0-7.1":0.02922,"8.1-8.4":0,"9.0-9.2":0.00467,"9.3":0.14025,"10.0-10.2":0.0485,"10.3":0.12739,"11.0-11.2":0.30912,"11.3-11.4":0.03915,"12.0-12.1":0.11687,"12.2-12.5":1.30837,"13.0-13.1":0.07012,"13.2":0.04207,"13.3":0.15778,"13.4-13.7":0.33776,"14.0-14.4":1.30896,"14.5-14.8":1.69288},E:{"4":0,"10":0.00988,"13":0.01646,"14":0.07901,"15":0.00658,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00988,"11.1":0.00658,"12.1":0.00988,"13.1":0.03292,"14.1":0.13497},B:{"12":0.05926,"13":0.01646,"14":0.05267,"15":0.02634,"16":0.01975,"17":0.02634,"18":0.07901,"84":0.00988,"85":0.01317,"87":0.00658,"88":0.00658,"89":0.01975,"90":0.01646,"91":0.04609,"92":0.33249,"93":0.79008,"94":0.13497,_:"79 80 81 83 86"},P:{"4":0.41227,"5.0-5.4":0.08245,"6.2-6.4":0.03096,"7.2-7.4":0.1443,"8.2":0.02131,"9.2":0.12368,"10.1":0.01066,"11.1-11.2":0.11337,"12.0":0.02061,"13.0":0.11337,"14.0":0.37104,"15.0":0.44319},I:{"0":0,"3":0,"4":0.00064,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00256,"4.2-4.3":0.01309,"4.4":0,"4.4.3-4.4.4":0.09102},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.12227,"11":0.53942,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.04695},N:{"11":0.01911,_:"10"},L:{"0":62.76986},S:{"2.5":0.06707},R:{_:"0"},M:{"0":0.37559},Q:{"10.4":0.02683},O:{"0":1.06641},H:{"0":4.27338}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js deleted file mode 100644 index c9243d11422b45..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.0238,"33":0.0034,"36":0.0204,"43":1.275,"52":0.0306,"53":0.0034,"54":0.0102,"55":0.0034,"56":0.0068,"57":0.0068,"58":0.0034,"59":0.0068,"60":0.0034,"61":0.0034,"63":0.0034,"67":0.0034,"68":0.0068,"72":0.0068,"78":0.0476,"79":0.0068,"80":0.0102,"81":0.0068,"82":0.0136,"83":0.0068,"84":0.0068,"85":0.0034,"86":0.0068,"87":0.0068,"88":0.0102,"89":0.0204,"90":0.0204,"91":0.2958,"92":0.5168,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 51 62 64 65 66 69 70 71 73 74 75 76 77 93 94 3.5 3.6"},D:{"11":0.0136,"17":0.0068,"31":0.0068,"33":0.0034,"39":0.0102,"40":0.0102,"41":0.0068,"42":0.0102,"43":0.0102,"44":0.0068,"45":0.0272,"46":0.0068,"47":0.034,"48":0.085,"49":0.1224,"50":0.017,"51":0.0102,"52":0.0068,"53":0.0136,"54":0.0136,"55":0.0612,"56":0.017,"57":0.1122,"58":0.0748,"59":0.0204,"60":0.0102,"61":0.0102,"62":0.1292,"63":0.068,"64":0.0068,"65":0.0544,"66":0.0102,"67":0.0272,"68":0.0204,"69":1.156,"70":0.4896,"71":0.0272,"72":0.5372,"73":0.0952,"74":0.7786,"75":0.2754,"76":0.0442,"77":0.0136,"78":0.3094,"79":0.3366,"80":0.119,"81":0.0918,"83":0.1938,"84":0.1496,"85":0.0986,"86":0.2346,"87":0.1428,"88":0.1938,"89":0.1122,"90":0.1802,"91":0.5474,"92":1.7034,"93":2.6486,"94":0.3196,"95":0.0102,_:"4 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 32 34 35 36 37 38 96 97"},F:{"77":0.0068,"78":0.051,"79":0.0136,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00387,"15":0.32237,"3.2":0,"4.0-4.1":0.00678,"4.2-4.3":0.05034,"5.0-5.1":0.0213,"6.0-6.1":0.03388,"7.0-7.1":0.01452,"8.1-8.4":0.02904,"9.0-9.2":0.10455,"9.3":0.06486,"10.0-10.2":0.41918,"10.3":0.41337,"11.0-11.2":0.84319,"11.3-11.4":0.12682,"12.0-12.1":0.17522,"12.2-12.5":0.47242,"13.0-13.1":0.08325,"13.2":0.06196,"13.3":0.20039,"13.4-13.7":1.06488,"14.0-14.4":1.55279,"14.5-14.8":3.61867},E:{"4":0,"9":0.0068,"10":0.0034,"11":0.0068,"12":0.0102,"13":0.034,"14":0.1462,"15":0.068,_:"0 5 6 7 8 3.1 3.2 5.1 6.1 7.1","9.1":0.0034,"10.1":0.0068,"11.1":0.0136,"12.1":0.0272,"13.1":0.153,"14.1":0.4828},B:{"13":0.0034,"14":0.0068,"15":0.0034,"16":0.0136,"17":0.0272,"18":0.1292,"84":0.0068,"85":0.0068,"86":0.0102,"87":0.0068,"88":0.0034,"89":0.0204,"90":0.0068,"91":0.017,"92":0.4896,"93":2.5194,"94":0.4148,_:"12 79 80 81 83"},P:{"4":0.06188,"5.0-5.4":0.0711,"6.2-6.4":0.06094,"7.2-7.4":0.11344,"8.2":0.02131,"9.2":0.03094,"10.1":0.01016,"11.1-11.2":0.27846,"12.0":0.03094,"13.0":0.0231,"14.0":0.30035,"15.0":0.09241},I:{"0":0,"3":0,"4":0.02778,"2.1":0,"2.2":0,"2.3":0,"4.1":0.12966,"4.2-4.3":0.07409,"4.4":0,"4.4.3-4.4.4":0.38897},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.05581,"8":1.45093,"9":0.92078,"10":0.13951,"11":8.37077,_:"7 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":37.38717},S:{"2.5":0},R:{_:"0"},M:{"0":0.21123},Q:{"10.4":5.82868},O:{"0":12.20525},H:{"0":0.09999}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js deleted file mode 100644 index 9494ebbd502c8b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00513,"5":0.01026,"15":0.01026,"17":0.01538,"50":0.01026,"52":0.01538,"73":0.00513,"78":0.0359,"83":0.00513,"84":0.03077,"85":0.00513,"88":0.02051,"89":0.01538,"90":0.04615,"91":0.47178,"92":0.81535,"93":0.01538,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 86 87 94 3.5 3.6"},D:{"22":0.01026,"23":0.01026,"24":0.01538,"25":0.01026,"38":0.0359,"39":0.00513,"42":0.00513,"47":0.01026,"49":0.1282,"53":0.00513,"58":0.00513,"61":0.01026,"62":0.00513,"63":0.01026,"65":0.01538,"66":0.00513,"67":0.01538,"68":0.00513,"69":0.01538,"70":0.01538,"71":0.01026,"72":0.01538,"73":0.01026,"74":0.01538,"75":0.05128,"76":0.02051,"77":0.02051,"78":0.01538,"79":0.13333,"80":0.05641,"81":0.06666,"83":0.0359,"84":0.05128,"85":0.0359,"86":0.07179,"87":0.48203,"88":0.08205,"89":0.08205,"90":0.10256,"91":0.54357,"92":8.07147,"93":27.79889,"94":3.66139,"95":0.01538,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 26 27 28 29 30 31 32 33 34 35 36 37 40 41 43 44 45 46 48 50 51 52 54 55 56 57 59 60 64 96 97"},F:{"77":0.02051,"78":1.82044,"79":0.20512,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.19327,"3.2":0.00164,"4.0-4.1":0,"4.2-4.3":0.00082,"5.0-5.1":0.00287,"6.0-6.1":0.00821,"7.0-7.1":0.0078,"8.1-8.4":0.00287,"9.0-9.2":0.00328,"9.3":0.05293,"10.0-10.2":0.00451,"10.3":0.03447,"11.0-11.2":0.00821,"11.3-11.4":0.01149,"12.0-12.1":0.00739,"12.2-12.5":0.30242,"13.0-13.1":0.00821,"13.2":0.00328,"13.3":0.02544,"13.4-13.7":0.10874,"14.0-14.4":0.32376,"14.5-14.8":2.9906},E:{"4":0,"12":0.00513,"13":0.03077,"14":0.18974,"15":0.08718,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00513,"11.1":0.01026,"12.1":0.03077,"13.1":0.14358,"14.1":0.76407},B:{"17":0.00513,"18":0.04102,"84":0.01026,"89":0.01538,"90":0.00513,"91":0.01538,"92":0.42562,"93":1.73839,"94":0.2923,_:"12 13 14 15 16 79 80 81 83 85 86 87 88"},P:{"4":0.22582,"5.0-5.4":0.0711,"6.2-6.4":0.06094,"7.2-7.4":0.09678,"8.2":0.02131,"9.2":0.03094,"10.1":0.01016,"11.1-11.2":0.06452,"12.0":0.02151,"13.0":0.08603,"14.0":0.21506,"15.0":0.79574},I:{"0":0,"3":0,"4":0.001,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00201,"4.2-4.3":0.00653,"4.4":0,"4.4.3-4.4.4":0.03918},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01591,"9":0.0053,"10":0.01061,"11":0.12201,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":44.24327},S:{"2.5":0},R:{_:"0"},M:{"0":0.14616},Q:{"10.4":0},O:{"0":0.0341},H:{"0":0.11992}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js deleted file mode 100644 index bdd1f782d681ba..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.04982,"73":0.05435,"78":0.19928,"84":0.02265,"87":0.00906,"88":0.18116,"89":0.01812,"90":0.13587,"91":0.70652,"92":1.43569,"93":0.0317,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 80 81 82 83 85 86 94 3.5 3.6"},D:{"49":0.06794,"58":0.00906,"63":0.00906,"65":0.01359,"67":0.00906,"69":0.00453,"70":0.00453,"71":0.00906,"73":0.00453,"74":0.01812,"75":0.08152,"76":0.02265,"77":0.00453,"78":0.01359,"79":0.04982,"80":0.03623,"81":0.02265,"83":0.05888,"84":0.02265,"85":0.00906,"86":0.05435,"87":0.35779,"88":0.05888,"89":0.06341,"90":0.09511,"91":0.29891,"92":5.83335,"93":20.93757,"94":3.91306,"95":0.00906,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 64 66 68 72 96 97"},F:{"28":0.00906,"77":0.00906,"78":1.52174,"79":0.17663,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.67153,"3.2":0.00186,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00278,"6.0-6.1":0.00649,"7.0-7.1":0.02041,"8.1-8.4":0,"9.0-9.2":0.00371,"9.3":0.05843,"10.0-10.2":0.00093,"10.3":0.04174,"11.0-11.2":0.00742,"11.3-11.4":0.01577,"12.0-12.1":0.0167,"12.2-12.5":0.42388,"13.0-13.1":0.01762,"13.2":0.00371,"13.3":0.06956,"13.4-13.7":0.15582,"14.0-14.4":0.59455,"14.5-14.8":7.15496},E:{"4":0,"12":0.00453,"13":0.04982,"14":0.28533,"15":0.25362,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01812,"10.1":0.00906,"11.1":0.0317,"12.1":0.04529,"13.1":0.3442,"14.1":2.0924},B:{"14":0.00453,"17":0.00906,"18":0.0317,"83":0.00906,"84":0.00906,"85":0.00906,"88":0.02717,"89":0.02717,"90":0.00906,"91":0.02265,"92":0.48913,"93":2.22374,"94":0.59783,_:"12 13 15 16 79 80 81 86 87"},P:{"4":0.26909,"5.0-5.4":0.02087,"6.2-6.4":0.06039,"7.2-7.4":0.1035,"8.2":0.03105,"9.2":0.03105,"10.1":0.02103,"11.1-11.2":0.14489,"12.0":0.05175,"13.0":0.19664,"14.0":0.39328,"15.0":2.01817},I:{"0":0,"3":0,"4":0.00615,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00263,"4.2-4.3":0.00615,"4.4":0,"4.4.3-4.4.4":0.0562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.1404,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":42.70134},S:{"2.5":0},R:{_:"0"},M:{"0":0.33373},Q:{"10.4":0},O:{"0":0.03283},H:{"0":0.24344}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js deleted file mode 100644 index 95f273200dc577..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.01624,"23":0.00271,"26":0.00541,"28":0.00541,"32":0.00812,"33":0.00541,"34":0.02166,"35":0.00812,"37":0.00271,"38":0.01083,"39":0.01083,"40":0.01083,"41":0.00541,"42":0.00812,"43":0.01354,"45":0.01895,"46":0.01354,"47":0.02978,"48":0.01083,"49":0.00541,"50":0.04873,"51":0.01083,"52":0.24634,"53":0.01083,"54":0.04873,"55":0.01624,"56":0.06768,"57":0.13535,"58":0.03519,"59":0.03248,"60":0.04873,"61":0.05685,"62":0.03519,"63":0.01354,"64":0.0379,"65":0.05685,"66":0.03519,"67":0.06226,"68":0.05685,"69":0.08392,"70":0.0379,"71":0.04331,"72":0.13264,"73":0.02166,"74":0.01895,"75":0.01354,"76":0.01354,"77":0.01624,"78":0.22197,"79":0.02436,"80":0.04331,"81":0.12452,"82":0.05955,"83":0.05685,"84":0.10016,"85":0.0379,"86":0.12182,"87":0.13264,"88":0.40605,"89":0.44666,"90":0.27341,"91":2.5121,"92":4.04697,"93":0.10828,"94":0.01624,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 24 25 27 29 30 31 36 44 3.5 3.6"},D:{"31":0.00541,"37":0.02978,"43":0.01083,"49":0.01083,"51":0.00541,"52":0.00541,"53":0.00541,"55":0.01083,"56":0.01624,"57":0.00271,"60":0.01354,"62":0.02707,"63":0.01083,"64":0.00271,"65":0.00812,"66":0.01083,"67":0.00812,"68":0.02978,"69":0.00541,"70":0.02707,"71":0.03519,"72":0.01354,"73":0.02436,"74":0.02436,"75":0.04061,"76":0.01354,"77":0.03519,"78":0.05414,"79":0.07309,"80":0.02436,"81":0.09745,"83":0.04873,"84":0.14076,"85":0.17596,"86":0.17054,"87":0.75796,"88":0.1543,"89":0.07309,"90":0.16783,"91":0.39252,"92":1.91385,"93":4.06862,"94":0.56576,"95":0.00271,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 38 39 40 41 42 44 45 46 47 48 50 54 58 59 61 96 97"},F:{"37":0.01895,"42":0.00541,"45":0.00271,"62":0.00541,"64":0.00541,"65":0.02707,"70":0.00271,"71":0.00541,"72":0.02166,"73":0.00271,"74":0.00812,"75":0.00812,"76":0.01354,"77":0.09204,"78":0.61178,"79":0.16783,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.11519,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0096,"6.0-6.1":0.00113,"7.0-7.1":0.09994,"8.1-8.4":0.04009,"9.0-9.2":0.0096,"9.3":0.05534,"10.0-10.2":0.0192,"10.3":0.13156,"11.0-11.2":0.11462,"11.3-11.4":0.0926,"12.0-12.1":0.05082,"12.2-12.5":1.01467,"13.0-13.1":0.08639,"13.2":0.06776,"13.3":0.29813,"13.4-13.7":0.4393,"14.0-14.4":1.6036,"14.5-14.8":1.39524},E:{"4":0,"11":0.00541,"13":0.00812,"14":0.01895,"15":0.00812,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.04873,"13.1":0.01895,"14.1":0.03519},B:{"12":0.01083,"13":0.02707,"14":0.02166,"15":0.05143,"16":0.02978,"17":0.03248,"18":0.09475,"80":0.00541,"84":0.07309,"85":0.02707,"88":0.01624,"89":0.08662,"90":0.04873,"91":0.04331,"92":0.31672,"93":0.63885,"94":0.09475,_:"79 81 83 86 87"},P:{"4":0.40314,"5.0-5.4":0.08063,"6.2-6.4":0.07055,"7.2-7.4":0.36283,"8.2":0.01008,"9.2":0.15118,"10.1":0.10079,"11.1-11.2":0.15118,"12.0":0.13102,"13.0":0.26204,"14.0":0.63495,"15.0":0.54424},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0066,"4.2-4.3":0.06102,"4.4":0,"4.4.3-4.4.4":0.35538},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00383,"11":0.10716,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":65.14998},S:{"2.5":0},R:{_:"0"},M:{"0":1.02102},Q:{"10.4":0.01459},O:{"0":0.25526},H:{"0":1.26353}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js deleted file mode 100644 index 3fb24a9ab52d75..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CV.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"26":0.00365,"29":0.01094,"47":0.01094,"52":0.04013,"55":0.00365,"61":0.0912,"78":0.01094,"88":0.00365,"89":0.02554,"90":0.03648,"91":0.47789,"92":1.28045,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 93 94 3.5 3.6"},D:{"31":0.0073,"43":0.02918,"49":0.31373,"50":0.01094,"53":0.0073,"55":0.01094,"56":0.01459,"57":0.01459,"58":0.02918,"63":0.01094,"64":0.02189,"65":0.06202,"66":0.00365,"67":0.0073,"68":0.00365,"69":0.01094,"70":0.13498,"71":0.00365,"73":0.03648,"74":0.01459,"75":0.06202,"76":0.0073,"77":0.05107,"78":0.00365,"79":0.05107,"80":0.01824,"81":0.05107,"83":0.08755,"84":0.02918,"85":0.00365,"86":0.05837,"87":0.12038,"88":0.02918,"89":0.63475,"90":0.2809,"91":0.40493,"92":3.99456,"93":14.42054,"94":2.94758,"95":0.0073,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 51 52 54 59 60 61 62 72 96 97"},F:{"62":0.00365,"77":0.12403,"78":0.86458,"79":0.25171,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00063,"15":0.19563,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00125,"7.0-7.1":0.07838,"8.1-8.4":0.00188,"9.0-9.2":0,"9.3":0.08966,"10.0-10.2":0.01003,"10.3":0.21694,"11.0-11.2":0.06458,"11.3-11.4":0.03386,"12.0-12.1":0.03825,"12.2-12.5":1.6509,"13.0-13.1":0.01442,"13.2":0.01756,"13.3":0.06145,"13.4-13.7":0.1254,"14.0-14.4":0.88596,"14.5-14.8":2.78265},E:{"4":0,"14":0.40128,"15":0.03648,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00365,"11.1":0.0073,"12.1":0.01094,"13.1":0.12403,"14.1":1.06157},B:{"12":0.01094,"13":0.00365,"15":0.01459,"17":0.01824,"18":0.08026,"84":0.01824,"85":0.14227,"87":0.04013,"89":0.01094,"90":0.01094,"91":0.05107,"92":0.48883,"93":2.30189,"94":0.45965,_:"14 16 79 80 81 83 86 88"},P:{"4":0.41631,"5.0-5.4":0.02082,"6.2-6.4":0.03096,"7.2-7.4":0.20816,"8.2":0.02131,"9.2":0.46835,"10.1":0.08326,"11.1-11.2":0.21856,"12.0":0.03122,"13.0":0.11449,"14.0":0.46835,"15.0":1.05119},I:{"0":0,"3":0,"4":0.00077,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0058,"4.2-4.3":0.01237,"4.4":0,"4.4.3-4.4.4":0.11445},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.40128,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01906},N:{"11":0.01911,_:"10"},L:{"0":56.43699},S:{"2.5":0},R:{_:"0"},M:{"0":0.05082},Q:{"10.4":0.0127},O:{"0":0.12069},H:{"0":0.5292}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js deleted file mode 100644 index df0d7343ee38c7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CX.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"92":5.76688,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 3.5 3.6"},D:{"81":40.38698,"92":1.92229,"93":21.15464,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 91 94 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"93":1.92229,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 94"},P:{"4":0.06188,"5.0-5.4":0.0711,"6.2-6.4":0.06094,"7.2-7.4":0.11344,"8.2":0.02131,"9.2":0.03094,"10.1":0.01016,"11.1-11.2":0.27846,"12.0":0.03094,"13.0":0.0231,"14.0":0.30035,"15.0":0.09241},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":11.53688},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js deleted file mode 100644 index 409a5d76c5bc56..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.00486,"52":0.36428,"78":0.06314,"84":0.07771,"88":0.02914,"89":0.034,"90":0.02429,"91":0.50999,"92":1.18025,"93":0.01457,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"38":0.04857,"42":1.86995,"47":0.00971,"49":0.29628,"53":0.00971,"55":0.00486,"56":0.00486,"57":0.00971,"65":0.00486,"69":0.01457,"70":1.80195,"72":0.034,"73":0.00971,"74":0.12143,"75":0.00971,"77":0.00971,"78":0.00971,"79":0.08257,"80":0.00971,"81":0.01457,"83":0.01943,"84":0.02914,"85":0.01457,"86":0.01943,"87":0.69941,"88":0.034,"89":0.08257,"90":0.068,"91":0.28656,"92":6.2801,"93":21.51165,"94":3.64275,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 48 50 51 52 54 58 59 60 61 62 63 64 66 67 68 71 76 95 96 97"},F:{"28":0.01457,"76":0.00486,"77":0.01457,"78":0.62655,"79":0.20885,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.56447,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00372,"6.0-6.1":0.0062,"7.0-7.1":0.01241,"8.1-8.4":0,"9.0-9.2":0.00372,"9.3":0.06699,"10.0-10.2":0.01613,"10.3":0.10917,"11.0-11.2":0.12034,"11.3-11.4":0.02109,"12.0-12.1":0.03226,"12.2-12.5":0.44289,"13.0-13.1":0.01241,"13.2":0.01241,"13.3":0.06203,"13.4-13.7":0.23944,"14.0-14.4":0.8647,"14.5-14.8":9.80941},E:{"4":0,"12":0.00486,"13":0.12143,"14":0.31085,"15":0.16028,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02914,"12.1":0.14085,"13.1":0.31085,"14.1":1.86509},B:{"16":0.00971,"17":0.00971,"18":0.02914,"89":0.00971,"91":0.02429,"92":0.56827,"93":2.65678,"94":0.55856,_:"12 13 14 15 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.07294,"5.0-5.4":0.08063,"6.2-6.4":0.07055,"7.2-7.4":0.01042,"8.2":0.01008,"9.2":0.15118,"10.1":0.10079,"11.1-11.2":0.06252,"12.0":0.04168,"13.0":0.13546,"14.0":0.32302,"15.0":3.35522},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00735,"4.4":0,"4.4.3-4.4.4":0.04408},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.29628,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":33.98319},S:{"2.5":0},R:{_:"0"},M:{"0":0.15429},Q:{"10.4":0},O:{"0":1.09546},H:{"0":0.36518}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js deleted file mode 100644 index a5bbfc1596893e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/CZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.0059,"50":0.0059,"52":0.17703,"54":0.0059,"56":0.03541,"60":0.0118,"61":0.0059,"66":0.0059,"68":0.0236,"70":0.0118,"71":0.0177,"72":0.0118,"76":0.0059,"78":0.24784,"79":0.0118,"81":0.0118,"82":0.0118,"83":0.0059,"84":0.0236,"85":0.0118,"86":0.0177,"87":0.03541,"88":0.08852,"89":0.12392,"90":0.14753,"91":2.07125,"92":4.56737,"93":0.0177,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 53 55 57 58 59 62 63 64 65 67 69 73 74 75 77 80 94 3.5 3.6"},D:{"38":0.0177,"42":0.0059,"49":0.21244,"53":0.0177,"56":0.0059,"58":0.0177,"60":0.0059,"61":0.03541,"63":0.0118,"64":0.0059,"65":0.0059,"66":0.0118,"67":0.0118,"68":0.0059,"69":0.0177,"70":0.0118,"71":0.0059,"72":0.0118,"73":0.0118,"74":0.0118,"75":0.0236,"76":0.0118,"77":0.0118,"78":0.0177,"79":0.15933,"80":0.02951,"81":0.05901,"83":0.06491,"84":0.06491,"85":0.13572,"86":0.26555,"87":0.23014,"88":0.08261,"89":0.22424,"90":0.17703,"91":0.68452,"92":6.62092,"93":23.72792,"94":3.13933,"95":0.0118,"96":0.0059,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 50 51 52 54 55 57 59 62 97"},F:{"36":0.0059,"46":0.0059,"52":0.0059,"77":0.05311,"78":2.32499,"79":0.66091,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.03541},G:{"8":0,"15":0.52877,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00334,"6.0-6.1":0.00334,"7.0-7.1":0.00418,"8.1-8.4":0.00501,"9.0-9.2":0.00501,"9.3":0.06014,"10.0-10.2":0.00668,"10.3":0.06432,"11.0-11.2":0.01921,"11.3-11.4":0.01587,"12.0-12.1":0.01754,"12.2-12.5":0.35001,"13.0-13.1":0.01169,"13.2":0.01086,"13.3":0.04929,"13.4-13.7":0.16707,"14.0-14.4":0.51958,"14.5-14.8":6.50566},E:{"4":0,"12":0.0059,"13":0.03541,"14":0.32456,"15":0.21834,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.0059,"9.1":0.0059,"10.1":0.0059,"11.1":0.02951,"12.1":0.04721,"13.1":0.23014,"14.1":1.7526},B:{"12":0.0059,"14":0.0118,"15":0.0059,"16":0.0118,"17":0.0236,"18":0.08261,"83":0.0059,"84":0.0177,"85":0.0177,"86":0.0059,"87":0.0059,"89":0.02951,"90":0.03541,"91":0.05901,"92":0.98547,"93":4.6972,"94":0.75533,_:"13 79 80 81 88"},P:{"4":0.12767,"5.0-5.4":0.08063,"6.2-6.4":0.07055,"7.2-7.4":0.01064,"8.2":0.01008,"9.2":0.15118,"10.1":0.10079,"11.1-11.2":0.05319,"12.0":0.02128,"13.0":0.11703,"14.0":0.27661,"15.0":1.86179},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00312,"4.2-4.3":0.00937,"4.4":0,"4.4.3-4.4.4":0.0695},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00626,"10":0.05008,"11":0.87012,_:"6 7 9 5.5"},J:{"7":0,"10":0.0041},N:{"11":0.01911,_:"10"},L:{"0":29.51135},S:{"2.5":0},R:{_:"0"},M:{"0":0.4018},Q:{"10.4":0.0041},O:{"0":0.1681},H:{"0":0.54343}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js deleted file mode 100644 index c8b040d157a5fc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.00585,"48":0.01755,"51":0.01755,"52":0.13453,"56":0.0117,"59":0.01755,"60":0.01755,"63":0.00585,"65":0.00585,"66":0.00585,"68":0.04679,"69":0.00585,"70":0.00585,"71":0.0117,"72":0.01755,"75":0.0117,"76":0.00585,"77":0.07604,"78":0.61415,"79":0.14038,"80":0.07019,"81":0.05264,"82":0.05264,"83":0.06434,"84":0.05849,"85":0.0234,"86":0.04094,"87":0.0234,"88":0.11113,"89":0.11113,"90":0.23981,"91":2.76658,"92":7.12408,"93":0.01755,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 50 53 54 55 57 58 61 62 64 67 73 74 94 3.5 3.6"},D:{"35":0.0117,"38":0.0117,"47":0.00585,"48":0.00585,"49":0.19887,"51":0.02925,"52":0.02925,"53":0.00585,"56":0.01755,"58":0.0117,"59":0.00585,"60":0.0234,"61":0.16962,"63":0.01755,"65":0.26905,"66":0.07604,"67":0.0117,"68":0.02925,"69":0.07019,"70":0.02925,"71":0.05264,"72":0.04679,"73":0.0117,"74":0.0234,"75":1.42131,"76":0.03509,"77":0.0234,"78":0.04679,"79":0.11698,"80":0.26905,"81":0.07019,"83":0.23396,"84":0.39773,"85":0.40943,"86":0.45037,"87":1.08791,"88":0.20472,"89":0.11113,"90":0.17547,"91":0.40943,"92":3.22865,"93":14.25986,"94":3.72581,"95":0.0117,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 50 54 55 57 62 64 96 97"},F:{"36":0.00585,"46":0.00585,"68":0.0234,"69":0.0117,"70":0.02925,"71":0.0234,"72":0.01755,"77":0.03509,"78":2.73733,"79":0.70188,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0117},G:{"8":0.00418,"15":1.05234,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00558,"6.0-6.1":0.00697,"7.0-7.1":0.00697,"8.1-8.4":0.00697,"9.0-9.2":0.02927,"9.3":0.10732,"10.0-10.2":0.01533,"10.3":0.09757,"11.0-11.2":0.03624,"11.3-11.4":0.07387,"12.0-12.1":0.03345,"12.2-12.5":0.51014,"13.0-13.1":0.02648,"13.2":0.01533,"13.3":0.07945,"13.4-13.7":0.2941,"14.0-14.4":0.98822,"14.5-14.8":10.54848},E:{"4":0,"7":0.00585,"11":0.0117,"12":0.01755,"13":0.09358,"14":0.70773,"15":0.50301,_:"0 5 6 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00585,"10.1":0.01755,"11.1":0.07019,"12.1":0.08774,"13.1":0.42698,"14.1":3.7843},B:{"12":0.06434,"15":0.00585,"16":0.00585,"17":0.0234,"18":0.11698,"80":0.00585,"81":0.00585,"83":0.01755,"84":0.04094,"85":0.04094,"86":0.04094,"87":0.0234,"88":0.01755,"89":0.04094,"90":0.02925,"91":0.07604,"92":0.83056,"93":4.48033,"94":1.26338,_:"13 14 79"},P:{"4":0.13825,"5.0-5.4":0.02127,"6.2-6.4":0.0205,"7.2-7.4":0.10653,"8.2":0.01025,"9.2":0.01063,"10.1":0.0205,"11.1-11.2":0.08508,"12.0":0.05317,"13.0":0.15952,"14.0":0.38285,"15.0":3.6583},I:{"0":0,"3":0,"4":0.00222,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00222,"4.2-4.3":0.00665,"4.4":0,"4.4.3-4.4.4":0.03459},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01241,"7":0.01241,"8":0.03102,"9":0.03102,"10":0.01241,"11":0.7196,_:"5.5"},J:{"7":0,"10":0.00415},N:{"11":0.15172,_:"10"},L:{"0":22.03677},S:{"2.5":0},R:{_:"0"},M:{"0":0.78058},Q:{"10.4":0.0083},O:{"0":0.1993},H:{"0":0.42453}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js deleted file mode 100644 index cc887a8f3a516a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DJ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.01007,"52":0.00672,"70":0.00672,"72":0.00336,"78":0.3358,"81":0.00336,"83":0.01007,"89":0.03022,"90":0.01343,"91":2.64946,"92":4.19414,"93":0.00672,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 73 74 75 76 77 79 80 82 84 85 86 87 88 94 3.5 3.6"},D:{"11":0.02686,"38":0.01343,"49":0.08059,"51":0.00672,"58":0.03022,"59":0.35931,"61":0.01343,"63":0.01343,"64":0.03358,"67":0.01007,"70":0.13096,"71":0.01007,"73":0.00672,"74":0.02351,"77":0.01679,"78":0.00336,"79":0.02686,"80":0.03022,"81":0.01343,"83":0.00672,"85":0.1679,"86":0.02686,"87":0.50706,"88":0.07723,"89":0.14104,"90":0.07723,"91":0.52385,"92":3.85498,"93":11.4172,"94":1.82675,"95":0.04701,"96":0.01343,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 53 54 55 56 57 60 62 65 66 68 69 72 75 76 84 97"},F:{"76":0.00672,"77":0.02351,"78":0.33916,"79":0.09402,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.28727,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00173,"6.0-6.1":0.00259,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.0207,"9.3":0.01553,"10.0-10.2":0.11128,"10.3":0.00259,"11.0-11.2":0.04486,"11.3-11.4":0.02157,"12.0-12.1":0.01208,"12.2-12.5":0.35628,"13.0-13.1":0.25621,"13.2":0.00604,"13.3":0.06815,"13.4-13.7":0.41839,"14.0-14.4":1.2293,"14.5-14.8":5.7721},E:{"4":0,"13":0.01343,"14":0.07723,"15":0.01007,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00336,"12.1":0.01343,"13.1":0.13096,"14.1":0.41975},B:{"12":0.00672,"13":0.00672,"14":0.06044,"15":0.02015,"16":0.00672,"17":0.05373,"18":0.05373,"80":0.01007,"83":0.00336,"84":0.01007,"87":0.01343,"88":0.00672,"89":0.06044,"90":0.00336,"91":0.04365,"92":0.30558,"93":1.7831,"94":0.22163,_:"79 81 85 86"},P:{"4":0.6518,"5.0-5.4":0.02037,"6.2-6.4":0.04074,"7.2-7.4":1.02863,"8.2":0.01008,"9.2":0.16295,"10.1":0.10079,"11.1-11.2":0.30553,"12.0":0.18332,"13.0":0.74346,"14.0":0.58051,"15.0":2.01652},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0018,"4.2-4.3":0.0018,"4.4":0,"4.4.3-4.4.4":0.0296},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.52049,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":48.30505},S:{"2.5":0},R:{_:"0"},M:{"0":0.19259},Q:{"10.4":2.03215},O:{"0":3.03494},H:{"0":0.53442}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js deleted file mode 100644 index b1e25c284433ba..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.04368,"70":0.00728,"78":0.08008,"82":0.08008,"84":0.09464,"87":0.0364,"88":0.08736,"89":0.02912,"90":0.04368,"91":0.6552,"92":1.47056,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 79 80 81 83 85 86 93 94 3.5 3.6"},D:{"38":0.00728,"49":0.08008,"52":0.01456,"59":0.00728,"65":0.00728,"66":0.01456,"67":0.01456,"68":0.00728,"69":0.27664,"70":0.02912,"72":0.00728,"73":0.00728,"74":0.00728,"75":0.02912,"76":0.0728,"77":0.01456,"78":0.02184,"79":0.11648,"80":0.05824,"81":0.02184,"83":0.05096,"84":0.04368,"85":0.0728,"86":0.05824,"87":0.5824,"88":0.08736,"89":0.17472,"90":0.42224,"91":1.31768,"92":8.918,"93":32.76728,"94":6.79224,"95":0.01456,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 60 61 62 63 64 71 96 97"},F:{"77":0.00728,"78":0.728,"79":0.15288,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.60056,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00158,"7.0-7.1":0.00317,"8.1-8.4":0.00317,"9.0-9.2":0.03645,"9.3":0.09349,"10.0-10.2":0.00792,"10.3":0.12043,"11.0-11.2":0.03645,"11.3-11.4":0.03803,"12.0-12.1":0.02377,"12.2-12.5":0.64176,"13.0-13.1":0.02218,"13.2":0.01109,"13.3":0.07448,"13.4-13.7":0.24086,"14.0-14.4":1.00147,"14.5-14.8":12.88441},E:{"4":0,"12":0.02184,"13":0.17472,"14":1.84912,"15":0.66248,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02184,"11.1":0.13832,"12.1":0.22568,"13.1":1.0556,"14.1":6.85776},B:{"18":0.02184,"85":0.00728,"86":0.01456,"87":0.01456,"88":0.00728,"89":0.02184,"90":0.02184,"91":0.04368,"92":0.6552,"93":3.23232,"94":0.77896,_:"12 13 14 15 16 17 79 80 81 83 84"},P:{"4":0.01127,"5.0-5.4":0.08063,"6.2-6.4":0.07055,"7.2-7.4":0.01064,"8.2":0.01008,"9.2":0.15118,"10.1":0.10079,"11.1-11.2":0.01127,"12.0":0.02128,"13.0":0.03381,"14.0":0.13522,"15.0":1.14939},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00163,"4.2-4.3":0.00408,"4.4":0,"4.4.3-4.4.4":0.03509},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.05272,"11":0.38408,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":9.8484},S:{"2.5":0},R:{_:"0"},M:{"0":0.22304},Q:{"10.4":0.00816},O:{"0":0.01904},H:{"0":0.07725}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js deleted file mode 100644 index 295936641223fd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"33":0.00539,"52":0.00539,"72":0.01079,"77":0.03236,"80":0.00539,"83":0.01079,"87":0.02697,"89":0.01079,"91":0.25891,"92":0.56098,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 78 79 81 82 84 85 86 88 90 93 94 3.5 3.6"},D:{"29":0.00539,"39":0.01079,"47":0.01079,"49":0.02158,"50":0.01079,"56":0.01079,"59":0.00539,"63":0.01079,"65":0.01079,"67":0.01079,"68":0.02697,"73":0.11327,"74":0.07552,"75":0.42613,"76":1.50493,"77":0.16182,"78":0.01079,"79":0.03236,"81":0.02697,"83":0.02697,"84":0.12406,"85":0.03776,"86":0.01079,"87":0.04315,"88":0.06473,"89":0.01618,"90":0.00539,"91":0.178,"92":8.38228,"93":20.69138,"94":3.82435,"95":0.02697,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 48 51 52 53 54 55 57 58 60 61 62 64 66 69 70 71 72 80 96 97"},F:{"28":0.01618,"78":0.5394,"79":0.0863,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.28129,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01522,"6.0-6.1":0,"7.0-7.1":0.00472,"8.1-8.4":0,"9.0-9.2":0.00577,"9.3":0.07924,"10.0-10.2":0,"10.3":0.04408,"11.0-11.2":0.01207,"11.3-11.4":0.01889,"12.0-12.1":0.01732,"12.2-12.5":0.3028,"13.0-13.1":0.00315,"13.2":0,"13.3":0.02571,"13.4-13.7":0.08239,"14.0-14.4":0.15744,"14.5-14.8":4.19727},E:{"4":0,"13":0.01079,"14":0.0917,"15":0.46388,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.01079,"10.1":0.02158,"12.1":0.02158,"13.1":0.04855,"14.1":1.28917},B:{"12":0.02158,"14":0.00539,"15":0.04855,"16":0.01618,"17":0.00539,"18":0.0863,"80":0.21576,"84":0.00539,"89":0.01618,"91":0.47467,"92":1.25141,"93":3.9592,"94":0.64728,_:"13 79 81 83 85 86 87 88 90"},P:{"4":0.23508,"5.0-5.4":0.02037,"6.2-6.4":0.04074,"7.2-7.4":0.10075,"8.2":0.01008,"9.2":0.16295,"10.1":0.03358,"11.1-11.2":0.17911,"12.0":0.22389,"13.0":0.2015,"14.0":0.33583,"15.0":2.36203},I:{"0":0,"3":0,"4":0.01114,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00501,"4.4":0,"4.4.3-4.4.4":0.13588},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.07788,"11":1.16814,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":40.16426},S:{"2.5":0},R:{_:"0"},M:{"0":0.08293},Q:{"10.4":0.00461},O:{"0":1.9073},H:{"0":0.05234}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js deleted file mode 100644 index 5ebafb927b24be..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.01393,"5":0.01393,"15":0.00929,"17":0.02786,"52":0.02322,"73":0.04179,"74":0.00464,"78":0.04643,"79":0.00929,"80":0.00464,"81":0.06036,"82":0.02322,"83":0.00464,"84":0.00929,"85":0.00464,"86":0.00464,"88":0.00929,"89":0.0325,"90":0.02786,"91":0.45037,"92":0.9936,"93":0.01393,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 75 76 77 87 94 3.5 3.6"},D:{"23":0.00929,"24":0.02322,"25":0.00929,"28":0.01393,"38":0.01393,"47":0.02322,"48":0.00464,"49":0.48287,"55":0.00929,"56":0.00464,"63":0.02786,"65":0.00929,"66":0.00464,"67":0.01393,"68":0.00929,"69":0.00929,"70":0.01393,"72":0.00929,"73":0.00929,"74":0.01393,"75":0.04179,"76":0.02786,"77":0.01393,"78":0.03714,"79":0.06965,"80":0.05572,"81":0.04643,"83":0.12536,"84":0.26001,"85":0.19501,"86":0.17179,"87":0.41787,"88":0.07429,"89":0.09286,"90":0.14393,"91":0.3993,"92":5.93375,"93":19.32417,"94":3.42653,"95":0.01393,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 53 54 57 58 59 60 61 62 64 71 96 97"},F:{"68":0.00929,"70":0.01857,"77":0.02322,"78":1.35111,"79":0.19965,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.69877,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00723,"6.0-6.1":0.01447,"7.0-7.1":0.04051,"8.1-8.4":0.01013,"9.0-9.2":0.00145,"9.3":0.05787,"10.0-10.2":0.01013,"10.3":0.08391,"11.0-11.2":0.02604,"11.3-11.4":0.02604,"12.0-12.1":0.04485,"12.2-12.5":0.85646,"13.0-13.1":0.02893,"13.2":0.02315,"13.3":0.10416,"13.4-13.7":0.45427,"14.0-14.4":1.48434,"14.5-14.8":10.48584},E:{"4":0,"10":0.00929,"12":0.00929,"13":0.065,"14":0.34823,"15":0.13,_:"0 5 6 7 8 9 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.07893,"11.1":0.02786,"12.1":0.06965,"13.1":0.20429,"14.1":1.24432},B:{"12":0.00464,"14":0.00464,"15":0.00464,"16":0.00464,"17":0.01393,"18":0.3668,"84":0.01393,"85":0.02322,"87":0.00929,"89":0.02322,"90":0.01393,"91":0.02786,"92":0.54323,"93":3.70047,"94":0.7661,_:"13 79 80 81 83 86 88"},P:{"4":0.075,"5.0-5.4":0.01071,"6.2-6.4":0.04074,"7.2-7.4":0.08571,"8.2":0.01008,"9.2":0.03214,"10.1":0.03358,"11.1-11.2":0.26785,"12.0":0.03214,"13.0":0.11785,"14.0":0.22499,"15.0":1.03926},I:{"0":0,"3":0,"4":0.00241,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00145,"4.2-4.3":0.00434,"4.4":0,"4.4.3-4.4.4":0.04537},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02997,"9":0.01998,"10":0.01998,"11":0.25973,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":39.0077},S:{"2.5":0},R:{_:"0"},M:{"0":0.56784},Q:{"10.4":0},O:{"0":0.11785},H:{"0":0.28401}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js deleted file mode 100644 index efaaa4b91607bb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/DZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.01684,"30":0.00421,"40":0.00421,"43":0.01263,"45":0.00421,"47":0.02947,"48":0.02526,"52":0.20208,"55":0.01263,"56":0.00842,"65":0.00421,"67":0.00421,"68":0.00421,"70":0.01684,"71":0.00842,"72":0.02105,"75":0.00421,"78":0.08841,"79":0.00842,"80":0.00421,"81":0.00842,"82":0.01263,"83":0.00842,"84":0.05894,"85":0.01263,"86":0.01263,"87":0.00842,"88":0.04631,"89":0.15998,"90":0.05052,"91":0.77464,"92":2.00817,"93":0.02947,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 41 42 44 46 49 50 51 53 54 57 58 59 60 61 62 63 64 66 69 73 74 76 77 94 3.5 3.6"},D:{"5":0.00421,"11":0.00842,"22":0.00421,"26":0.00842,"30":0.00842,"31":0.00421,"33":0.02105,"34":0.00842,"38":0.01684,"39":0.00842,"40":0.02105,"42":0.00842,"43":0.20208,"47":0.00842,"49":0.49678,"50":0.01263,"51":0.02105,"52":0.00421,"53":0.00421,"55":0.00842,"56":0.04631,"57":0.01684,"58":0.02526,"59":0.00421,"60":0.01684,"61":0.03789,"62":0.01684,"63":0.05473,"64":0.01684,"65":0.01263,"66":0.00421,"67":0.01684,"68":0.01684,"69":0.03368,"70":0.0421,"71":0.02105,"72":0.01263,"73":0.01263,"74":0.02526,"75":0.01684,"76":0.02947,"77":0.02526,"78":0.02105,"79":0.13051,"80":0.03789,"81":0.10525,"83":0.05473,"84":0.07999,"85":0.05894,"86":0.18945,"87":1.35562,"88":0.09262,"89":0.15998,"90":0.16419,"91":0.54309,"92":4.59732,"93":17.5557,"94":3.03541,"95":0.02526,"96":0.01263,_:"4 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 32 35 36 37 41 44 45 46 48 54 97"},F:{"25":0.00421,"28":0.01263,"65":0.00842,"76":0.00421,"77":0.05894,"78":1.59559,"79":0.56835,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00076,"15":0.11958,"3.2":0.00057,"4.0-4.1":0,"4.2-4.3":0.00649,"5.0-5.1":0.01012,"6.0-6.1":0.00363,"7.0-7.1":0.05902,"8.1-8.4":0.00267,"9.0-9.2":0.00287,"9.3":0.05635,"10.0-10.2":0.00229,"10.3":0.05406,"11.0-11.2":0.00688,"11.3-11.4":0.00898,"12.0-12.1":0.01967,"12.2-12.5":0.1681,"13.0-13.1":0.01051,"13.2":0.00478,"13.3":0.03381,"13.4-13.7":0.09704,"14.0-14.4":0.25577,"14.5-14.8":0.98642},E:{"4":0,"13":0.0842,"14":0.0421,"15":0.02526,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0421,"11.1":0.00421,"12.1":0.01263,"13.1":0.02526,"14.1":0.11788},B:{"12":0.00842,"13":0.00842,"14":0.00421,"16":0.01263,"17":0.00842,"18":0.09262,"84":0.01263,"85":0.00421,"86":0.00421,"89":0.01684,"91":0.02105,"92":0.23576,"93":1.10723,"94":0.25681,_:"15 79 80 81 83 87 88 90"},P:{"4":0.16682,_:"5.0-5.4 8.2","6.2-6.4":0.01043,"7.2-7.4":0.15639,"9.2":0.05213,"10.1":0.02085,"11.1-11.2":0.15639,"12.0":0.06256,"13.0":0.18767,"14.0":0.37533,"15.0":0.90706},I:{"0":0,"3":0,"4":0.00104,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00234,"4.2-4.3":0.00676,"4.4":0,"4.4.3-4.4.4":0.05354},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00842,"9":0.05894,"11":0.23576,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":55.95527},S:{"2.5":0},R:{_:"0"},M:{"0":0.1563},Q:{"10.4":0.01158},O:{"0":0.54996},H:{"0":0.57547}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js deleted file mode 100644 index 633c18fdb9a254..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00586,"17":0.01173,"47":0.00586,"52":0.03518,"56":0.00586,"61":0.00586,"64":0.00586,"66":0.00586,"68":0.00586,"72":0.01173,"73":0.02346,"78":0.07037,"79":0.01173,"81":0.01173,"82":0.00586,"83":0.00586,"84":0.01759,"85":0.00586,"86":0.01173,"87":0.01173,"88":0.28147,"89":0.0645,"90":0.04691,"91":1.19039,"92":2.32214,"93":0.01173,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 58 59 60 62 63 65 67 69 70 71 74 75 76 77 80 94 3.5 3.6"},D:{"24":0.00586,"38":0.02932,"47":0.01759,"48":0.01173,"49":0.1466,"53":0.01173,"55":0.03518,"61":0.51017,"63":0.10555,"65":0.01759,"66":0.00586,"67":0.01173,"69":0.00586,"70":0.01173,"71":0.00586,"74":0.02932,"75":0.02932,"76":0.02346,"77":0.01759,"78":0.01173,"79":0.09969,"80":0.03518,"81":0.02932,"83":0.03518,"84":0.02932,"85":0.02932,"86":0.05864,"87":0.73886,"88":0.04105,"89":0.07623,"90":0.0821,"91":0.86787,"92":8.36793,"93":29.74807,"94":4.63256,"95":0.01173,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 56 57 58 59 60 62 64 68 72 73 96 97"},F:{"71":0.00586,"77":0.02346,"78":1.92339,"79":0.25802,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00225,"15":0.33209,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01125,"6.0-6.1":0.01665,"7.0-7.1":0.0045,"8.1-8.4":0.0009,"9.0-9.2":0.00225,"9.3":0.0423,"10.0-10.2":0.00225,"10.3":0.0351,"11.0-11.2":0.0144,"11.3-11.4":0.0099,"12.0-12.1":0.0081,"12.2-12.5":0.30104,"13.0-13.1":0.009,"13.2":0.0045,"13.3":0.02205,"13.4-13.7":0.09675,"14.0-14.4":0.34829,"14.5-14.8":3.23227},E:{"4":0,"13":0.02346,"14":0.20524,"15":0.15246,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.07623,"11.1":0.02346,"12.1":0.04105,"13.1":0.18765,"14.1":1.08484},B:{"18":0.04691,"84":0.00586,"89":0.01759,"91":0.04105,"92":0.46912,"93":2.14622,"94":0.38702,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 90"},P:{"4":0.14575,"5.0-5.4":0.01071,"6.2-6.4":0.04074,"7.2-7.4":0.12493,"8.2":0.01008,"9.2":0.02082,"10.1":0.01041,"11.1-11.2":0.14575,"12.0":0.06246,"13.0":0.18739,"14.0":0.34355,"15.0":1.39503},I:{"0":0,"3":0,"4":0.00135,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0027,"4.2-4.3":0.00608,"4.4":0,"4.4.3-4.4.4":0.05605},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.0081,"10":0.0081,"11":0.15386,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":34.74579},S:{"2.5":0},R:{_:"0"},M:{"0":0.14476},Q:{"10.4":0},O:{"0":0.04963},H:{"0":0.13705}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js deleted file mode 100644 index 7aaf12c9ff9217..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00697,"52":0.04879,"66":0.02091,"68":0.1394,"73":0.00697,"78":0.07667,"81":0.02788,"82":0.4182,"84":0.1394,"86":0.01394,"87":0.07667,"88":0.02788,"89":0.03485,"90":0.03485,"91":1.42885,"92":3.00407,"93":0.02091,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 72 74 75 76 77 79 80 83 85 94 3.5 3.6"},D:{"49":0.20213,"59":0.00697,"60":0.02091,"64":0.01394,"69":1.40794,"70":0.01394,"71":0.00697,"73":0.05576,"74":0.00697,"75":0.03485,"76":0.03485,"77":0.01394,"78":0.04879,"79":0.13243,"80":0.02788,"81":0.02091,"83":0.04879,"84":0.13243,"85":0.02091,"86":0.05576,"87":4.36322,"88":0.13243,"89":0.21607,"90":0.32759,"91":3.64531,"92":7.81337,"93":26.09568,"94":4.39807,"95":0.02091,"96":0.03485,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 61 62 63 65 66 67 68 72 97"},F:{"36":0.04182,"46":0.00697,"70":0.00697,"77":0.03485,"78":4.00775,"79":0.96186,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.58598,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.01321,"9.0-9.2":0,"9.3":0.01982,"10.0-10.2":0.00849,"10.3":0.13494,"11.0-11.2":0.02548,"11.3-11.4":0.01227,"12.0-12.1":0.03586,"12.2-12.5":0.24723,"13.0-13.1":0.01038,"13.2":0.00566,"13.3":0.03303,"13.4-13.7":0.15947,"14.0-14.4":0.81811,"14.5-14.8":7.3224},E:{"4":0.00697,"12":0.02091,"13":0.06273,"14":0.72488,"15":0.46002,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01394,"11.1":0.03485,"12.1":0.07667,"13.1":0.36941,"14.1":2.53708},B:{"18":0.03485,"84":0.00697,"87":0.00697,"88":0.01394,"89":0.06273,"90":0.01394,"91":0.02091,"92":0.63427,"93":2.73921,"94":0.52275,_:"12 13 14 15 16 17 79 80 81 83 85 86"},P:{"4":0.05366,"5.0-5.4":0.02079,"6.2-6.4":0.02079,"7.2-7.4":0.39495,"8.2":0.01008,"9.2":0.06236,"10.1":0.02146,"11.1-11.2":0.06439,"12.0":0.03219,"13.0":0.09658,"14.0":0.32194,"15.0":1.65262},I:{"0":0,"3":0,"4":0.00103,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00259,"4.2-4.3":0.00362,"4.4":0,"4.4.3-4.4.4":0.01396},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.32062,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":18.36262},S:{"2.5":0},R:{_:"0"},M:{"0":0.23929},Q:{"10.4":0.00303},O:{"0":0.03938},H:{"0":0.20934}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js deleted file mode 100644 index e701fe35c77a70..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/EG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00326,"52":0.07834,"72":0.00653,"78":0.02938,"84":0.00653,"86":0.00326,"87":0.00326,"88":0.01306,"89":0.0359,"90":0.01958,"91":4.62835,"92":12.3673,"93":0.01632,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 94 3.5 3.6"},D:{"26":0.01632,"31":0.00653,"33":0.01632,"34":0.00979,"38":0.00653,"40":0.00979,"43":0.14035,"47":0.00653,"48":0.00326,"49":0.06528,"51":0.00326,"53":0.00653,"57":0.00326,"58":0.00326,"61":0.05549,"63":0.01632,"65":0.00326,"67":0.00326,"68":0.00653,"69":0.00979,"70":0.00653,"71":0.00653,"72":0.00326,"73":0.00326,"74":0.00979,"75":0.00653,"76":0.00979,"77":0.00979,"78":0.00653,"79":0.09466,"80":0.01958,"81":0.01306,"83":0.01632,"84":0.01958,"85":0.01632,"86":0.05549,"87":0.22848,"88":0.0359,"89":0.03917,"90":0.0457,"91":0.19584,"92":2.06611,"93":7.94784,"94":1.34803,"95":0.00979,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 32 35 36 37 39 41 42 44 45 46 50 52 54 55 56 59 60 62 64 66 96 97"},F:{"51":0.00326,"62":0.00653,"63":0.00326,"64":0.01958,"68":0.00653,"69":0.00326,"70":0.01958,"71":0.01958,"72":0.0359,"73":0.02938,"74":0.00979,"75":0.02611,"76":0.01632,"77":0.04896,"78":0.04896,"79":0.00653,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 65 66 67 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.28494,"3.2":0.00118,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00353,"6.0-6.1":0.00353,"7.0-7.1":0.03061,"8.1-8.4":0.00471,"9.0-9.2":0.02119,"9.3":0.13423,"10.0-10.2":0.04828,"10.3":0.2873,"11.0-11.2":0.10126,"11.3-11.4":0.10362,"12.0-12.1":0.073,"12.2-12.5":2.95658,"13.0-13.1":0.04474,"13.2":0.02119,"13.3":0.19192,"13.4-13.7":0.61345,"14.0-14.4":3.09199,"14.5-14.8":3.75725},E:{"4":0,"13":0.0457,"14":0.08486,"15":0.02938,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01958,"11.1":0.00979,"12.1":0.03264,"13.1":0.05222,"14.1":0.1991},B:{"12":0.00326,"16":0.00326,"17":0.00326,"18":0.04896,"84":0.00653,"89":0.00979,"91":0.00979,"92":0.1175,"93":0.61363,"94":0.14035,_:"13 14 15 79 80 81 83 85 86 87 88 90"},P:{"4":0.24812,"5.0-5.4":0.01071,"6.2-6.4":0.04074,"7.2-7.4":0.07237,"8.2":0.01008,"9.2":0.03101,"10.1":0.01041,"11.1-11.2":0.12406,"12.0":0.03101,"13.0":0.16541,"14.0":0.28947,"15.0":0.97179},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00698,"4.2-4.3":0.02444,"4.4":0,"4.4.3-4.4.4":0.79711},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00703,"9":0.00703,"11":0.07733,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":52.61368},S:{"2.5":0},R:{_:"0"},M:{"0":0.12798},Q:{"10.4":0},O:{"0":0.35027},H:{"0":0.32524}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js deleted file mode 100644 index 5e21b4ce790fab..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ER.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.00257,"30":0.01797,"33":0.00257,"34":0.00257,"37":0.00513,"38":0.00513,"39":0.00513,"41":0.01027,"42":0.01027,"43":0.01284,"44":0.00513,"47":0.02054,"48":0.00513,"50":0.0077,"52":0.0154,"53":0.05904,"56":0.00257,"57":0.01027,"59":0.03851,"60":0.01284,"61":0.00513,"63":0.00257,"65":0.0077,"71":0.00513,"78":0.00513,"79":0.00513,"82":0.09498,"84":0.0231,"85":0.00257,"86":0.00257,"87":0.00513,"88":0.11295,"89":0.05134,"90":0.00513,"91":0.69309,"92":1.0576,"93":0.03337,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 32 35 36 40 45 46 49 51 54 55 58 62 64 66 67 68 69 70 72 73 74 75 76 77 80 81 83 94 3.5 3.6"},D:{"11":0.07701,"33":0.01797,"36":0.03337,"37":0.31061,"39":0.00513,"40":0.06161,"43":0.06161,"44":0.00513,"46":0.00513,"49":0.0154,"50":0.07188,"53":0.00257,"56":0.0308,"57":0.02567,"59":0.0077,"60":0.00513,"61":0.00513,"63":0.0077,"64":0.0077,"66":0.00257,"67":0.01027,"69":0.01027,"70":0.01027,"71":1.92782,"73":0.00257,"74":0.01797,"75":0.14119,"77":0.07444,"78":0.00257,"79":0.02567,"80":0.02824,"81":0.06418,"83":0.0077,"84":0.04877,"85":0.02567,"86":0.04877,"87":0.11295,"88":0.02567,"89":0.0231,"90":0.02567,"91":0.79064,"92":1.73786,"93":6.72041,"94":0.68796,"95":0.00257,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 38 41 42 45 47 48 51 52 54 55 58 62 65 68 72 76 96 97"},F:{"43":0.00513,"67":0.02054,"73":0.0077,"77":0.04364,"78":0.7701,"79":0.16686,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.02998,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00021,"6.0-6.1":0,"7.0-7.1":0.3146,"8.1-8.4":0.08382,"9.0-9.2":0.00528,"9.3":0.14336,"10.0-10.2":0.00317,"10.3":0.0853,"11.0-11.2":0.0361,"11.3-11.4":0.00633,"12.0-12.1":0.00781,"12.2-12.5":0.23373,"13.0-13.1":0.00148,"13.2":0.03589,"13.3":0.01351,"13.4-13.7":0.04751,"14.0-14.4":0.19235,"14.5-14.8":0.87053},E:{"4":0,"12":0.00513,"13":0.01284,"14":0.0308,"15":0.00257,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.00513,"13.1":0.01027,"14.1":0.04364},B:{"12":0.02567,"13":0.01027,"14":0.0154,"15":0.0077,"16":0.0077,"17":0.0077,"18":0.04107,"84":0.01284,"89":0.00513,"91":0.01797,"92":0.14632,"93":0.63918,"94":0.11552,_:"79 80 81 83 85 86 87 88 90"},P:{"4":0.96658,"5.0-5.4":0.02079,"6.2-6.4":0.02079,"7.2-7.4":0.39495,"8.2":0.01008,"9.2":0.06236,"10.1":0.01041,"11.1-11.2":0.17669,"12.0":0.02079,"13.0":0.1559,"14.0":0.25983,"15.0":0.32219},I:{"0":0,"3":0,"4":0.00047,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00047,"4.2-4.3":0.04598,"4.4":0,"4.4.3-4.4.4":0.1166},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.21049,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":59.99309},S:{"2.5":0},R:{_:"0"},M:{"0":0.09663},Q:{"10.4":0.00743},O:{"0":1.76162},H:{"0":14.20084}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js deleted file mode 100644 index aa7396c267f5d9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ES.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00947,"52":0.09939,"55":0.00947,"56":0.00947,"59":0.00473,"60":0.0142,"66":0.00473,"67":0.00473,"68":0.0142,"69":0.00473,"72":0.00947,"78":0.18459,"79":0.00947,"80":0.01893,"81":0.0142,"82":0.0142,"83":0.00947,"84":0.03313,"85":0.00947,"86":0.0142,"87":0.0142,"88":0.05206,"89":0.05206,"90":0.0426,"91":0.87087,"92":1.97839,"93":0.00947,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 57 58 61 62 63 64 65 70 71 73 74 75 76 77 94 3.5 3.6"},D:{"35":0.00473,"38":0.0284,"49":0.22718,"53":0.00947,"56":0.00473,"58":0.00473,"61":0.17512,"63":0.00947,"64":0.00473,"65":0.01893,"66":0.02367,"67":0.01893,"68":0.00947,"69":0.0284,"70":0.0142,"71":0.00947,"72":0.00947,"73":0.0142,"74":0.02367,"75":0.09466,"76":0.02367,"77":0.0142,"78":0.01893,"79":0.12779,"80":0.0426,"81":0.03786,"83":0.0568,"84":0.09939,"85":0.09466,"86":0.15146,"87":0.56323,"88":0.07573,"89":0.11833,"90":0.14672,"91":0.50643,"92":4.77086,"93":20.70214,"94":4.78506,"95":0.00947,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 59 60 62 96 97"},F:{"36":0.00947,"77":0.0142,"78":1.29684,"79":0.071,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0021,"15":0.54994,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0021,"6.0-6.1":0.00315,"7.0-7.1":0.00946,"8.1-8.4":0.00841,"9.0-9.2":0.00421,"9.3":0.11461,"10.0-10.2":0.01052,"10.3":0.10515,"11.0-11.2":0.03049,"11.3-11.4":0.0347,"12.0-12.1":0.03049,"12.2-12.5":0.52155,"13.0-13.1":0.0368,"13.2":0.01367,"13.3":0.08833,"13.4-13.7":0.26603,"14.0-14.4":0.94425,"14.5-14.8":7.73696},E:{"4":0,"11":0.00473,"12":0.00947,"13":0.07573,"14":0.5159,"15":0.24138,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00473,"10.1":0.0142,"11.1":0.0568,"12.1":0.08046,"13.1":0.35024,"14.1":2.3807},B:{"17":0.00947,"18":0.03313,"84":0.00473,"85":0.00473,"86":0.00947,"87":0.00947,"88":0.00473,"89":0.0142,"90":0.00947,"91":0.03313,"92":0.4449,"93":2.34284,"94":0.62476,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.16069,"5.0-5.4":0.08059,"6.2-6.4":0.02018,"7.2-7.4":0.6054,"8.2":0.01009,"9.2":0.09081,"10.1":0.06054,"11.1-11.2":0.09642,"12.0":0.04285,"13.0":0.13927,"14.0":0.3321,"15.0":2.06759},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00267,"4.2-4.3":0.00801,"4.4":0,"4.4.3-4.4.4":0.05252},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.44017,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":39.60623},S:{"2.5":0},R:{_:"0"},M:{"0":0.25808},Q:{"10.4":0.0158},O:{"0":0.06847},H:{"0":0.19946}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js deleted file mode 100644 index 403b669336cf61..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ET.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"27":0.00358,"29":0.00717,"30":0.00717,"31":0.01075,"32":0.00358,"33":0.00717,"34":0.01433,"35":0.00717,"36":0.00358,"37":0.01433,"38":0.00358,"39":0.00717,"40":0.01075,"41":0.01075,"43":0.09674,"44":0.01792,"47":0.22573,"48":0.01433,"50":0.00717,"52":0.28306,"54":0.00358,"56":0.01792,"57":0.00358,"59":0.00717,"60":0.01075,"61":0.01433,"64":0.00717,"66":0.01433,"67":0.00717,"68":0.01433,"69":0.00358,"72":0.03225,"77":0.05375,"78":0.08599,"81":0.01075,"82":0.00717,"83":0.00358,"84":0.03225,"85":0.01075,"86":0.00717,"87":0.0215,"88":0.06808,"89":0.10391,"90":0.03941,"91":0.86709,"92":1.88824,"93":0.2329,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 42 45 46 49 51 53 55 58 62 63 65 70 71 73 74 75 76 79 80 94 3.5 3.6"},D:{"11":0.0215,"33":0.01433,"34":0.00717,"35":0.00717,"36":0.00358,"37":0.02866,"38":0.0215,"39":0.00358,"40":0.11824,"42":0.00717,"43":0.2114,"44":0.00717,"46":0.01433,"49":0.0215,"50":0.01075,"51":0.00717,"53":0.01433,"55":0.03225,"56":0.00717,"57":0.01075,"58":0.00717,"60":0.00717,"62":0.00358,"63":0.02866,"64":0.00717,"65":0.0215,"66":0.00717,"67":0.01792,"68":0.05016,"69":0.043,"70":0.07883,"71":0.08958,"72":0.01075,"73":0.01792,"74":0.01433,"75":0.03583,"76":0.01433,"77":0.0215,"78":0.01792,"79":0.18632,"80":0.03225,"81":0.06808,"83":0.01792,"84":0.03583,"85":0.05375,"86":0.13615,"87":0.2329,"88":0.05733,"89":0.09674,"90":0.12541,"91":0.36547,"92":4.56116,"93":12.67307,"94":2.07814,"95":0.043,"96":0.00717,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 41 45 47 48 52 54 59 61 97"},F:{"25":0.01433,"29":0.00717,"76":0.00717,"77":0.12182,"78":1.46545,"79":0.51595,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.07943,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00152,"6.0-6.1":0.00183,"7.0-7.1":0.28667,"8.1-8.4":0.09677,"9.0-9.2":0.00639,"9.3":0.15185,"10.0-10.2":0.01522,"10.3":0.47261,"11.0-11.2":0.02435,"11.3-11.4":0.02891,"12.0-12.1":0.03043,"12.2-12.5":0.41722,"13.0-13.1":0.0143,"13.2":0.01582,"13.3":0.03713,"13.4-13.7":0.09312,"14.0-14.4":0.35118,"14.5-14.8":0.91691},E:{"4":0,"8":0.03583,"13":0.00358,"14":0.02866,"15":0.00717,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00358,"11.1":0.00717,"12.1":0.00717,"13.1":0.05733,"14.1":0.10032},B:{"12":0.06449,"13":0.02866,"14":0.02866,"15":0.02508,"16":0.043,"17":0.06449,"18":0.11466,"84":0.01433,"85":0.01433,"88":0.00358,"89":0.02866,"90":0.01075,"91":0.03225,"92":0.45146,"93":1.69476,"94":0.34039,_:"79 80 81 83 86 87"},P:{"4":0.65251,"5.0-5.4":0.05179,"6.2-6.4":0.03107,"7.2-7.4":0.24857,"8.2":0.01036,"9.2":0.08286,"10.1":0.02146,"11.1-11.2":0.13464,"12.0":0.03107,"13.0":0.15536,"14.0":0.38322,"15.0":0.58001},I:{"0":0,"3":0,"4":0.0052,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00919,"4.2-4.3":0.05706,"4.4":0,"4.4.3-4.4.4":0.18523},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16124,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01283},N:{"11":0.01911,_:"10"},L:{"0":52.34904},S:{"2.5":0},R:{_:"0"},M:{"0":0.17326},Q:{"10.4":0.04492},O:{"0":1.47591},H:{"0":7.43605}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js deleted file mode 100644 index cf6b37d3b02431..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"3":0.00626,"37":0.04379,"48":0.01251,"50":0.01251,"52":0.06881,"54":0.03128,"55":0.03128,"56":0.03128,"59":0.01877,"60":0.02502,"62":0.00626,"63":0.01251,"66":0.00626,"68":0.05004,"76":0.01251,"78":0.47538,"79":0.03753,"80":0.00626,"81":0.0563,"82":0.06255,"83":0.01877,"84":0.06881,"85":0.00626,"86":0.01251,"87":0.00626,"88":0.04379,"89":0.04379,"90":0.08132,"91":1.99535,"92":3.97193,"93":0.01251,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 49 51 53 57 58 61 64 65 67 69 70 71 72 73 74 75 77 94 3.5 3.6"},D:{"34":0.00626,"38":0.01877,"42":0.04379,"47":0.04379,"48":0.06881,"49":0.19391,"52":0.09383,"53":0.00626,"56":0.01877,"59":0.04379,"60":0.22518,"61":0.05004,"62":0.01251,"63":0.00626,"64":0.58797,"65":0.03753,"66":0.08132,"67":0.02502,"69":0.33777,"70":0.61925,"71":0.00626,"72":0.60674,"73":0.01251,"74":0.00626,"75":0.06255,"76":0.01877,"77":0.01877,"78":0.01251,"79":1.4324,"80":0.65052,"81":0.0563,"83":0.16263,"84":0.28773,"85":0.30024,"86":0.60674,"87":1.10088,"88":0.07506,"89":0.08132,"90":0.20016,"91":1.0008,"92":8.5068,"93":19.5156,"94":3.84057,"95":0.00626,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 43 44 45 46 50 51 54 55 57 58 68 96 97"},F:{"36":0.01251,"68":0.00626,"69":0.01877,"70":0.00626,"71":0.04379,"77":0.01251,"78":1.08212,"79":0.22518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.61126,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00582,"7.0-7.1":0.00233,"8.1-8.4":0.01746,"9.0-9.2":0.08266,"9.3":0.06171,"10.0-10.2":0.01746,"10.3":0.12109,"11.0-11.2":0.03726,"11.3-11.4":0.09082,"12.0-12.1":0.04424,"12.2-12.5":0.48318,"13.0-13.1":0.02329,"13.2":0.0163,"13.3":0.08266,"13.4-13.7":0.38887,"14.0-14.4":1.33661,"14.5-14.8":8.21643},E:{"4":0.01251,"8":0.00626,"12":0.00626,"13":0.28773,"14":0.51917,"15":0.27522,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03128,"11.1":0.09383,"12.1":0.08757,"13.1":0.3753,"14.1":2.92109},B:{"14":0.00626,"17":0.02502,"18":0.16263,"81":0.01251,"83":0.00626,"84":0.02502,"85":0.01251,"86":0.11259,"87":0.00626,"89":0.01877,"90":0.01251,"91":0.02502,"92":0.65678,"93":2.79599,"94":0.5567,_:"12 13 15 16 79 80 88"},P:{"4":0.07523,"5.0-5.4":0.02149,"6.2-6.4":0.05106,"7.2-7.4":2.44057,"8.2":0.01036,"9.2":0.02149,"10.1":0.08169,"11.1-11.2":0.08598,"12.0":0.06448,"13.0":0.19345,"14.0":0.50512,"15.0":1.59059},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00088,"4.2-4.3":0.01674,"4.4":0,"4.4.3-4.4.4":0.01983},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01339,"7":0.0067,"8":0.25446,"9":0.04018,"10":0.32811,"11":0.97095,_:"5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":22.67531},S:{"2.5":0.00749},R:{_:"0"},M:{"0":0.63291},Q:{"10.4":0},O:{"0":0.13482},H:{"0":0.36873}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js deleted file mode 100644 index 88f5f11edcfdac..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FJ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.00722,"30":0.01083,"31":0.01083,"34":0.00361,"38":0.02165,"43":0.00722,"47":0.01444,"52":0.06496,"56":0.01083,"65":0.05053,"72":0.01083,"73":0.00361,"78":0.02887,"81":0.00722,"87":0.01444,"88":0.02165,"89":0.07579,"90":0.05053,"91":0.80481,"92":1.59518,"93":0.05774,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 32 33 35 36 37 39 40 41 42 44 45 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 66 67 68 69 70 71 74 75 76 77 79 80 82 83 84 85 86 94 3.5 3.6"},D:{"11":0.00722,"31":0.00722,"39":0.02887,"42":0.00361,"45":0.00722,"47":0.00361,"49":0.03609,"53":0.08301,"56":0.00722,"57":0.00361,"58":0.00722,"63":0.00361,"65":0.00722,"66":0.01083,"69":0.06135,"70":0.00361,"71":0.00722,"73":0.01444,"74":0.00361,"75":0.00722,"76":0.01444,"77":0.03609,"78":0.00722,"79":0.09023,"80":0.02526,"81":0.06135,"83":0.04331,"84":0.00722,"85":0.02526,"86":0.07579,"87":0.09744,"88":0.02165,"89":0.07218,"90":0.0397,"91":0.37173,"92":4.79997,"93":14.51179,"94":2.09322,"95":0.01083,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 40 41 43 44 46 48 50 51 52 54 55 59 60 61 62 64 67 68 72 96 97"},F:{"77":0.02165,"78":0.42947,"79":0.07579,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.18049,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01369,"6.0-6.1":0.00041,"7.0-7.1":0.04232,"8.1-8.4":0.00996,"9.0-9.2":0.00041,"9.3":0.15352,"10.0-10.2":0.00041,"10.3":0.11701,"11.0-11.2":0.01037,"11.3-11.4":0.00954,"12.0-12.1":0.02614,"12.2-12.5":0.50537,"13.0-13.1":0.01826,"13.2":0.00373,"13.3":0.15145,"13.4-13.7":0.24356,"14.0-14.4":0.57674,"14.5-14.8":2.08372},E:{"4":0,"11":0.00361,"13":0.0397,"14":0.19489,"15":0.0397,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1","9.1":0.00722,"10.1":0.00722,"11.1":0.01444,"12.1":0.02165,"13.1":0.23819,"14.1":0.61353},B:{"12":0.00361,"13":0.05053,"14":0.01444,"15":0.01444,"16":0.02165,"17":0.02526,"18":0.14797,"80":0.02887,"84":0.02526,"85":0.02887,"86":0.04331,"87":0.34286,"88":0.00722,"89":0.05774,"90":0.03248,"91":0.08301,"92":0.80481,"93":2.90885,"94":0.5197,_:"79 81 83"},P:{"4":0.72502,"5.0-5.4":0.01021,"6.2-6.4":0.05106,"7.2-7.4":2.44057,"8.2":0.01036,"9.2":0.20423,"10.1":0.08169,"11.1-11.2":1.07222,"12.0":0.27571,"13.0":1.13349,"14.0":1.89936,"15.0":2.62438},I:{"0":0,"3":0,"4":0.0014,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0014,"4.2-4.3":0.00419,"4.4":0,"4.4.3-4.4.4":0.03774},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01344,"11":0.61814,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":50.0934},S:{"2.5":0},R:{_:"0"},M:{"0":0.10224},Q:{"10.4":0.03195},O:{"0":1.12464},H:{"0":0.38718}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js deleted file mode 100644 index a7bc1d474d63aa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"63":0.05826,"64":0.00971,"69":0.03399,"72":0.10196,"75":0.18935,"78":0.64086,"82":0.00971,"83":0.00971,"84":0.10196,"85":0.05826,"87":0.03399,"88":0.13594,"89":0.13594,"90":0.05826,"91":1.50505,"92":2.96155,"93":0.08739,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 65 66 67 68 70 71 73 74 76 77 79 80 81 86 94 3.5 3.6"},D:{"33":0.15536,"49":0.31558,"65":0.00971,"77":0.00971,"81":0.21362,"84":0.00971,"86":0.00971,"88":0.15536,"91":0.40297,"92":4.82587,"93":17.87611,"94":1.34484,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 78 79 80 83 85 87 89 90 95 96 97"},F:{"77":0.0437,"78":1.34484,"79":0.335,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.20848,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00985,"7.0-7.1":0,"8.1-8.4":0.03119,"9.0-9.2":0,"9.3":0.33488,"10.0-10.2":0.00985,"10.3":0.16744,"11.0-11.2":0.00985,"11.3-11.4":0.03119,"12.0-12.1":0.00985,"12.2-12.5":2.53948,"13.0-13.1":0,"13.2":0,"13.3":0.04104,"13.4-13.7":0.00985,"14.0-14.4":0.4186,"14.5-14.8":12.58906},E:{"4":0,"13":0.8205,"14":0.60688,"15":0.00971,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 11.1","10.1":0.03399,"12.1":0.02428,"13.1":0.18935,"14.1":6.12701},B:{"13":0.00971,"17":0.05826,"18":0.21362,"83":0.00971,"84":0.0437,"85":0.07768,"86":0.06797,"89":0.16993,"90":0.03399,"91":0.12138,"92":1.942,"93":2.64598,"94":0.26703,_:"12 14 15 16 79 80 81 87 88"},P:{"4":0.06272,"5.0-5.4":0.05179,"6.2-6.4":0.03107,"7.2-7.4":0.04163,"8.2":0.01036,"9.2":0.02082,"10.1":0.02146,"11.1-11.2":0.05204,"12.0":0.08327,"13.0":1.54043,"14.0":1.65493,"15.0":2.59168},I:{"0":0,"3":0,"4":0.01434,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00331,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.04411},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.37882,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":28.33458},S:{"2.5":0},R:{_:"0"},M:{"0":0.43741},Q:{"10.4":0},O:{"0":0},H:{"0":0.42873}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js deleted file mode 100644 index cc999dd23892a9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.04274,"85":0.03739,"87":0.01603,"88":0.02137,"89":0.01603,"91":2.19022,"92":4.15073,"93":0.11752,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 90 94 3.5 3.6"},D:{"49":0.08013,"60":0.01603,"64":0.01603,"71":0.01603,"73":0.01603,"75":0.02137,"79":0.12287,"80":0.21368,"84":0.01068,"87":0.15492,"88":0.01603,"89":0.02671,"90":0.17094,"91":0.97224,"92":7.82069,"93":17.80489,"94":2.468,"95":0.01068,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 61 62 63 65 66 67 68 69 70 72 74 76 77 78 81 83 85 86 96 97"},F:{"78":0.66241,"79":0.31518,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.12233,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00941,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":1.3789,"10.0-10.2":0,"10.3":0,"11.0-11.2":0.00941,"11.3-11.4":0.0029,"12.0-12.1":0.00651,"12.2-12.5":1.14583,"13.0-13.1":0.01592,"13.2":0,"13.3":0.05791,"13.4-13.7":0.31921,"14.0-14.4":0.53274,"14.5-14.8":3.63436},E:{"4":0,"12":0.01068,"14":0.1015,"15":0.04274,_:"0 5 6 7 8 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1","12.1":0.08013,"13.1":0.26176,"14.1":0.37394},B:{"18":0.09616,"84":0.01068,"85":0.04274,"86":0.49681,"89":0.04274,"91":0.02671,"92":1.71478,"93":7.01405,"94":1.5385,_:"12 13 14 15 16 17 79 80 81 83 87 88 90"},P:{"4":0.10613,"5.0-5.4":0.01105,"6.2-6.4":0.08044,"7.2-7.4":0.34242,"8.2":0.02011,"9.2":0.01105,"10.1":0.03105,"11.1-11.2":0.27615,"12.0":0.03314,"13.0":0.03314,"14.0":0.17673,"15.0":0.78425},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28313,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":40.53284},S:{"2.5":0},R:{_:"0"},M:{"0":0.00932},Q:{"10.4":0.00466},O:{"0":0.57772},H:{"0":0.06616}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js deleted file mode 100644 index fb2c4bf99b9908..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01895,"54":0.01263,"61":0.01263,"68":0.00632,"78":0.89056,"85":0.03158,"88":0.01263,"89":0.20211,"91":1.07372,"92":1.459,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 52 53 55 56 57 58 59 60 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 87 90 93 94 3.5 3.6"},D:{"49":0.05053,"63":0.01263,"67":0.01263,"72":0.01263,"75":0.08842,"78":0.01263,"79":0.08211,"80":0.07579,"81":0.01263,"85":0.1579,"86":0.17685,"87":0.18948,"88":0.12,"89":0.27159,"90":0.30948,"91":0.61897,"92":7.775,"93":26.73563,"94":8.04658,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 71 73 74 76 77 83 84 95 96 97"},F:{"78":0.84003,"79":0.06316,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.73258,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07485,"10.0-10.2":0.01814,"10.3":0.14969,"11.0-11.2":0.01361,"11.3-11.4":0.02268,"12.0-12.1":0.03402,"12.2-12.5":1.02969,"13.0-13.1":0.03629,"13.2":0.04309,"13.3":0.18144,"13.4-13.7":1.2066,"14.0-14.4":3.07773,"14.5-14.8":16.05092},E:{"4":0,"11":0.00632,"12":0.13264,"13":0.02526,"14":1.70532,"15":0.24632,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05684,"11.1":0.05684,"12.1":0.06948,"13.1":0.78318,"14.1":3.97276},B:{"15":0.01895,"18":0.05053,"84":0.02526,"88":0.01263,"89":0.0379,"90":0.02526,"91":0.05053,"92":0.54949,"93":3.28432,"94":0.87161,_:"12 13 14 16 17 79 80 81 83 85 86 87"},P:{"4":0.06272,"5.0-5.4":0.05179,"6.2-6.4":0.03107,"7.2-7.4":0.24857,"8.2":0.01036,"9.2":0.08286,"10.1":0.02146,"11.1-11.2":0.06272,"12.0":0.04181,"13.0":0.1359,"14.0":0.53314,"15.0":1.60988},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00155,"4.4":0,"4.4.3-4.4.4":0.01318},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.31373,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":11.38673},S:{"2.5":0},R:{_:"0"},M:{"0":0.15841},Q:{"10.4":0},O:{"0":0},H:{"0":0.27205}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js deleted file mode 100644 index 8e71bafab1df3f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/FR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.01572,"47":0.01048,"48":0.03669,"50":0.00524,"52":0.14675,"54":0.00524,"55":0.00524,"56":0.02096,"59":0.01572,"60":0.03145,"62":0.01048,"63":0.01048,"64":0.00524,"65":0.01048,"66":0.01048,"68":0.06813,"69":0.00524,"70":0.01048,"72":0.01572,"74":0.01048,"75":0.00524,"77":0.01048,"78":0.6132,"79":0.06289,"80":0.06289,"81":0.18344,"82":0.06289,"83":0.02621,"84":0.05765,"85":0.02096,"86":0.02621,"87":0.01572,"88":0.05765,"89":0.10482,"90":0.12578,"91":2.08068,"92":4.14039,"93":0.01572,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 49 51 53 57 58 61 67 71 73 76 94 3.5 3.6"},D:{"38":0.01572,"48":0.01572,"49":0.435,"50":0.01572,"51":0.01048,"52":0.03145,"53":0.01048,"54":0.22536,"56":0.02621,"57":0.01048,"58":0.01572,"59":0.01048,"60":0.10482,"61":0.1153,"63":0.02621,"64":0.06289,"65":0.02621,"66":0.05765,"67":0.02621,"68":0.00524,"69":0.01572,"70":0.04717,"71":0.02621,"72":0.05241,"73":0.01048,"74":0.02096,"75":0.06289,"76":0.02096,"77":0.02096,"78":0.05241,"79":0.16771,"80":0.13627,"81":0.04193,"83":0.25157,"84":0.45597,"85":0.48741,"86":0.56079,"87":1.03772,"88":0.14675,"89":0.17819,"90":0.12578,"91":0.39832,"92":4.79552,"93":16.94939,"94":2.54713,"95":0.01048,"96":0.00524,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 55 62 97"},F:{"68":0.03145,"69":0.01572,"70":0.02096,"71":0.02621,"72":0.01048,"75":0.01048,"77":0.02096,"78":0.83332,"79":0.17295,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01148,"15":0.72152,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0043,"6.0-6.1":0.01004,"7.0-7.1":0.01434,"8.1-8.4":0.01721,"9.0-9.2":0.02725,"9.3":0.24385,"10.0-10.2":0.02725,"10.3":0.17213,"11.0-11.2":0.05594,"11.3-11.4":0.05307,"12.0-12.1":0.05738,"12.2-12.5":0.78463,"13.0-13.1":0.06598,"13.2":0.02295,"13.3":0.13771,"13.4-13.7":0.45041,"14.0-14.4":1.32828,"14.5-14.8":10.13137},E:{"4":0,"11":0.01048,"12":0.02096,"13":0.12578,"14":0.70229,"15":0.26729,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01048,"10.1":0.03669,"11.1":0.12054,"12.1":0.17819,"13.1":0.57127,"14.1":2.99785},B:{"13":0.00524,"14":0.00524,"15":0.01048,"16":0.01048,"17":0.02621,"18":0.14675,"83":0.01572,"84":0.03669,"85":0.03669,"86":0.04193,"87":0.01572,"88":0.01048,"89":0.03145,"90":0.01572,"91":0.05765,"92":0.77043,"93":3.65298,"94":0.69705,_:"12 79 80 81"},P:{"4":0.10508,"5.0-5.4":0.03152,"6.2-6.4":0.05106,"7.2-7.4":0.02102,"8.2":0.01036,"9.2":0.05254,"10.1":0.02102,"11.1-11.2":0.12609,"12.0":0.07355,"13.0":0.19965,"14.0":0.50437,"15.0":2.51133},I:{"0":0,"3":0,"4":0.00156,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00311,"4.2-4.3":0.00415,"4.4":0,"4.4.3-4.4.4":0.04355},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03461,"9":0.05769,"10":0.01731,"11":0.63461,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":28.97859},S:{"2.5":0},R:{_:"0"},M:{"0":0.58072},Q:{"10.4":0.00952},O:{"0":0.595},H:{"0":0.42811}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js deleted file mode 100644 index e6406f63fea1c4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"35":0.0037,"39":0.0037,"43":0.0037,"52":0.08512,"54":0.06292,"60":0.0111,"63":0.0037,"68":0.0148,"72":0.02591,"78":0.11843,"88":0.01851,"89":0.05552,"90":0.07772,"91":0.58476,"92":1.13991,"93":0.0037,"94":0.0037,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 40 41 42 44 45 46 47 48 49 50 51 53 55 56 57 58 59 61 62 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 87 3.5 3.6"},D:{"22":0.0037,"37":0.0037,"38":0.0111,"48":0.0037,"49":0.05552,"52":0.0074,"53":0.0111,"57":0.0074,"63":0.0148,"65":0.0148,"67":0.0074,"69":0.359,"70":0.0148,"71":0.0074,"74":0.05922,"75":0.02591,"76":0.14064,"77":0.0074,"78":0.0074,"79":0.14064,"80":0.0037,"81":0.02221,"83":0.0148,"84":0.0111,"85":0.02591,"86":0.02591,"87":0.15914,"88":0.03701,"89":0.02221,"90":0.13694,"91":0.26277,"92":3.23097,"93":14.55973,"94":2.17619,"96":0.08142,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 41 42 43 44 45 46 47 50 51 54 55 56 58 59 60 61 62 64 66 68 72 73 95 97"},F:{"28":0.11843,"31":0.0074,"63":0.0074,"74":0.0037,"77":0.04811,"78":1.88381,"79":0.60326,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01733,"15":0.26981,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01884,"6.0-6.1":0,"7.0-7.1":0.04447,"8.1-8.4":0.00301,"9.0-9.2":0.00075,"9.3":0.14244,"10.0-10.2":0.00075,"10.3":0.04597,"11.0-11.2":0.1432,"11.3-11.4":0.01055,"12.0-12.1":0.01733,"12.2-12.5":1.79145,"13.0-13.1":0.00829,"13.2":0,"13.3":0.02864,"13.4-13.7":0.06557,"14.0-14.4":0.8019,"14.5-14.8":4.12328},E:{"4":0,"11":0.0037,"13":0.47003,"14":0.09993,"15":0.02961,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0037,"10.1":0.0037,"11.1":0.02221,"12.1":0.0074,"13.1":0.06292,"14.1":0.28868},B:{"12":0.0074,"13":0.03331,"14":0.0111,"15":0.0074,"16":0.0037,"17":0.07402,"18":0.08142,"81":0.0074,"84":0.0111,"85":0.0074,"87":0.0074,"88":0.0037,"89":0.06662,"90":0.02221,"91":0.10363,"92":0.29238,"93":2.66472,"94":0.43672,_:"79 80 83 86"},P:{"4":0.42939,"5.0-5.4":0.03152,"6.2-6.4":0.05112,"7.2-7.4":1.01214,"8.2":0.01036,"9.2":0.07157,"10.1":0.05112,"11.1-11.2":0.13291,"12.0":0.11246,"13.0":0.40895,"14.0":0.84856,"15.0":1.49265},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00116,"4.2-4.3":0.00174,"4.4":0,"4.4.3-4.4.4":0.0475},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23316,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.0189},N:{"11":0.01911,_:"10"},L:{"0":51.8275},S:{"2.5":0.0126},R:{_:"0"},M:{"0":0.13858},Q:{"10.4":0.23936},O:{"0":0.68029},H:{"0":2.40328}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js deleted file mode 100644 index 7816206ffd33d7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GB.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00952,"52":0.04284,"59":0.01428,"68":0.00952,"78":0.09996,"80":0.00952,"81":0.00952,"82":0.01428,"84":0.00952,"87":0.01428,"88":0.0238,"89":0.04284,"90":0.06664,"91":0.85204,"92":1.6898,"93":0.00952,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 83 85 86 94 3.5 3.6"},D:{"36":0.00476,"38":0.01428,"40":0.20944,"43":0.00476,"49":0.19992,"60":0.02856,"61":0.10472,"63":0.00952,"64":0.01904,"65":0.01904,"66":0.06188,"67":0.01904,"69":0.04284,"70":0.0238,"71":0.01904,"72":0.03332,"73":0.00952,"74":0.03332,"75":0.03332,"76":0.05236,"77":0.01904,"78":0.02856,"79":0.10948,"80":0.0714,"81":0.02856,"83":0.0714,"84":0.06188,"85":0.08568,"86":0.0952,"87":0.37128,"88":0.09044,"89":0.10948,"90":0.17136,"91":0.52836,"92":5.15984,"93":17.05508,"94":2.44664,"95":0.00952,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 41 42 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 62 68 96 97"},F:{"36":0.00476,"40":0.00476,"46":0.00476,"70":0.00476,"77":0.01428,"78":0.66164,"79":0.06188,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00476},G:{"8":0,"15":0.89826,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00761,"6.0-6.1":0.00761,"7.0-7.1":0.01776,"8.1-8.4":0.01776,"9.0-9.2":0.01269,"9.3":0.33494,"10.0-10.2":0.0203,"10.3":0.31718,"11.0-11.2":0.04314,"11.3-11.4":0.07359,"12.0-12.1":0.04821,"12.2-12.5":1.49456,"13.0-13.1":0.0406,"13.2":0.01522,"13.3":0.12433,"13.4-13.7":0.4542,"14.0-14.4":1.69248,"14.5-14.8":19.7464},E:{"4":0,"11":0.00952,"12":0.01428,"13":0.10948,"14":0.82824,"15":0.34272,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00952,"10.1":0.0238,"11.1":0.0952,"12.1":0.13804,"13.1":0.56644,"14.1":5.42164},B:{"14":0.00952,"15":0.00952,"16":0.00952,"17":0.0238,"18":0.21896,"84":0.00952,"85":0.00952,"86":0.00952,"87":0.00476,"88":0.00952,"89":0.0238,"90":0.02856,"91":0.04284,"92":0.9996,"93":4.66956,"94":0.833,_:"12 13 79 80 81 83"},P:{"4":0.0753,"5.0-5.4":0.0103,"6.2-6.4":0.05149,"7.2-7.4":0.06208,"8.2":0.03089,"9.2":0.01076,"10.1":0.01076,"11.1-11.2":0.0753,"12.0":0.04303,"13.0":0.16136,"14.0":0.38726,"15.0":3.50684},I:{"0":0,"3":0,"4":0.0162,"2.1":0,"2.2":0.00095,"2.3":0,"4.1":0.00191,"4.2-4.3":0.00635,"4.4":0,"4.4.3-4.4.4":0.03747},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00523,"9":0.00523,"11":0.52267,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":22.44004},S:{"2.5":0},R:{_:"0"},M:{"0":0.32488},Q:{"10.4":0.01048},O:{"0":0.17292},H:{"0":0.21828}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js deleted file mode 100644 index fa994a7c7a1c0a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00889,"56":0.01334,"60":0.00445,"78":0.04445,"83":0.00889,"86":0.07557,"87":0.02667,"89":0.00445,"90":0.01334,"91":0.54674,"92":0.95123,"93":0.00889,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 88 94 3.5 3.6"},D:{"11":0.04001,"49":0.02667,"50":0.00445,"53":0.01778,"59":0.00889,"62":0.00889,"63":0.00889,"65":0.00445,"66":0.00445,"68":0.01334,"74":0.16002,"75":0.00445,"76":0.03112,"77":0.10668,"79":0.02667,"80":0.01334,"81":0.04445,"83":0.04445,"84":0.05334,"85":0.00889,"86":0.02223,"87":0.03112,"88":0.05779,"89":0.03112,"90":0.07112,"91":0.25337,"92":5.3829,"93":18.10893,"94":2.90259,"95":0.04445,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 54 55 56 57 58 60 61 64 67 69 70 71 72 73 78 96 97"},F:{"43":0.00445,"48":0.00445,"77":0.00889,"78":0.44895,"79":0.05779,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.86389,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00426,"6.0-6.1":0,"7.0-7.1":0.14593,"8.1-8.4":0,"9.0-9.2":0.02237,"9.3":0.15233,"10.0-10.2":0.00639,"10.3":0.2205,"11.0-11.2":0.01385,"11.3-11.4":0.01278,"12.0-12.1":0.00107,"12.2-12.5":0.4868,"13.0-13.1":0.01278,"13.2":0.01491,"13.3":0.09267,"13.4-13.7":0.13528,"14.0-14.4":0.42182,"14.5-14.8":8.04129},E:{"4":0,"10":0.07557,"12":0.00889,"13":0.03112,"14":0.19558,"15":0.24003,_:"0 5 6 7 8 9 11 3.1 3.2 5.1 6.1 7.1","9.1":0.11113,"10.1":0.01334,"11.1":0.00445,"12.1":0.03556,"13.1":0.19114,"14.1":2.72479},B:{"13":0.00445,"14":0.00445,"15":0.01778,"16":0.01334,"17":0.00889,"18":0.03112,"80":0.00889,"81":0.01334,"84":0.01334,"86":0.00889,"89":0.02667,"91":0.00889,"92":1.15126,"93":5.72072,"94":1.05347,_:"12 79 83 85 87 88 90"},P:{"4":0.02216,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.18834,"8.2":0.01025,"9.2":0.02216,"10.1":0.01063,"11.1-11.2":0.09971,"12.0":0.09971,"13.0":0.53177,"14.0":0.43207,"15.0":2.52592},I:{"0":0,"3":0,"4":0.00121,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00072,"4.2-4.3":0.00459,"4.4":0,"4.4.3-4.4.4":0.02681},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.03612,"11":0.25281,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":42.56183},S:{"2.5":0},R:{_:"0"},M:{"0":0.3833},Q:{"10.4":0},O:{"0":0.11666},H:{"0":0.0894}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js deleted file mode 100644 index c5a51f60a12f8a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00445,"52":0.01781,"66":0.00445,"68":0.0089,"72":0.00445,"78":0.01781,"81":0.01336,"83":0.00445,"84":0.0089,"88":0.01781,"89":0.04452,"90":0.03562,"91":0.37397,"92":0.96608,"93":0.0089,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 82 85 86 87 94 3.5 3.6"},D:{"34":0.0089,"38":0.0089,"39":0.00445,"41":0.00445,"47":0.01336,"49":0.26712,"50":0.0089,"53":0.00445,"56":0.01781,"58":0.0089,"59":0.01781,"62":0.01336,"63":0.03116,"64":0.0089,"65":0.03562,"66":0.04452,"67":0.02671,"68":0.01336,"69":0.0089,"70":0.0089,"71":0.02226,"72":0.0089,"73":0.02671,"74":0.01336,"75":0.02226,"76":0.02671,"77":0.01336,"78":0.01336,"79":0.15137,"80":0.04007,"81":0.03116,"83":0.05788,"84":0.20034,"85":0.08904,"86":0.08904,"87":0.32054,"88":0.14692,"89":0.12911,"90":0.2137,"91":0.38732,"92":5.50267,"93":21.08912,"94":3.61057,"95":0.03116,"96":0.0089,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 40 42 43 44 45 46 48 51 52 54 55 57 60 61 97"},F:{"28":0.04007,"36":0.02226,"40":0.0089,"46":0.00445,"48":0.01781,"60":0.02226,"67":0.0089,"69":0.00445,"72":0.01781,"77":0.06678,"78":2.90716,"79":0.90821,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 49 50 51 52 53 54 55 56 57 58 62 63 64 65 66 68 70 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.70508,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0413,"6.0-6.1":0.00295,"7.0-7.1":0.14308,"8.1-8.4":0.01328,"9.0-9.2":0.00738,"9.3":0.18438,"10.0-10.2":0.01918,"10.3":0.14456,"11.0-11.2":0.06343,"11.3-11.4":0.059,"12.0-12.1":0.05458,"12.2-12.5":1.32461,"13.0-13.1":0.0413,"13.2":0.0177,"13.3":0.15341,"13.4-13.7":0.4676,"14.0-14.4":1.7922,"14.5-14.8":9.51712},E:{"4":0,"12":0.00445,"13":0.02226,"14":0.14246,"15":0.08459,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02671,"11.1":0.01336,"12.1":0.02671,"13.1":0.07568,"14.1":0.63664},B:{"12":0.01336,"13":0.2137,"14":0.19144,"15":0.00445,"16":0.12911,"17":0.01336,"18":0.16918,"84":0.01781,"85":0.0089,"86":0.00445,"87":0.0089,"88":0.00445,"89":0.02226,"90":0.02226,"91":0.02671,"92":0.3339,"93":1.62498,"94":0.38287,_:"79 80 81 83"},P:{"4":0.3196,"5.0-5.4":0.06149,"6.2-6.4":0.0205,"7.2-7.4":0.10653,"8.2":0.01025,"9.2":0.01065,"10.1":0.0205,"11.1-11.2":0.10653,"12.0":0.05327,"13.0":0.11719,"14.0":0.30895,"15.0":0.98011},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00202,"4.2-4.3":0.01278,"4.4":0,"4.4.3-4.4.4":0.05178},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00473,"11":0.14664,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":38.71927},S:{"2.5":0},R:{_:"0"},M:{"0":0.06103},Q:{"10.4":0},O:{"0":0.08877},H:{"0":0.24687}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js deleted file mode 100644 index 29a4dded312453..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"35":0.00463,"52":0.00926,"60":0.01389,"64":0.01852,"68":0.03704,"76":0.01389,"78":0.18057,"81":0.01389,"83":0.00463,"84":0.02778,"85":0.06482,"88":0.01852,"89":0.13427,"90":0.05556,"91":1.4816,"92":3.41694,"93":0.00463,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 65 66 67 69 70 71 72 73 74 75 77 79 80 82 86 87 94 3.5 3.6"},D:{"42":0.01852,"47":0.00463,"49":0.57875,"57":0.10186,"63":0.17131,"67":0.00926,"69":0.00926,"76":0.00926,"78":0.00926,"79":0.04167,"80":0.01852,"81":0.02778,"83":0.00463,"84":0.01389,"86":0.02778,"87":0.04167,"88":2.46779,"89":0.07871,"90":0.05556,"91":0.21298,"92":3.77808,"93":15.73274,"94":1.91219,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 48 50 51 52 53 54 55 56 58 59 60 61 62 64 65 66 68 70 71 72 73 74 75 77 85 95 96 97"},F:{"78":0.87044,"79":0.18057,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.5333,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01578,"6.0-6.1":0,"7.0-7.1":0.01015,"8.1-8.4":0,"9.0-9.2":0.00113,"9.3":0.09584,"10.0-10.2":0.00564,"10.3":0.14995,"11.0-11.2":0.02029,"11.3-11.4":0.01127,"12.0-12.1":0.15672,"12.2-12.5":0.29991,"13.0-13.1":0.115,"13.2":0.00789,"13.3":0.04961,"13.4-13.7":0.28187,"14.0-14.4":0.69227,"14.5-14.8":8.83038},E:{"4":0,"13":0.01852,"14":0.50467,"15":0.21298,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01852,"10.1":0.02778,"11.1":0.06945,"12.1":0.17131,"13.1":0.30095,"14.1":2.05109},B:{"12":0.04167,"14":0.02778,"16":0.00463,"17":0.02778,"18":0.11575,"80":0.00463,"84":0.03704,"85":0.00463,"88":0.00926,"89":0.03241,"90":0.01389,"91":0.05556,"92":1.85663,"93":5.29209,"94":0.8797,_:"13 15 79 81 83 86 87"},P:{"4":0.01036,"5.0-5.4":0.03152,"6.2-6.4":0.05106,"7.2-7.4":0.09324,"8.2":0.01036,"9.2":0.05254,"10.1":0.01036,"11.1-11.2":0.17612,"12.0":0.07355,"13.0":0.16576,"14.0":0.42477,"15.0":2.26887},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00253,"4.4":0,"4.4.3-4.4.4":0.02432},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.52319,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":40.33486},S:{"2.5":0},R:{_:"0"},M:{"0":0.20943},Q:{"10.4":0},O:{"0":0.04296},H:{"0":0.07118}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js deleted file mode 100644 index 08dce2fb09fdc8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"49":0.00547,"52":0.02733,"78":0.06012,"89":0.01093,"90":0.06012,"91":0.58476,"92":1.21323,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 93 94 3.5 3.6"},D:{"49":0.0164,"63":0.21314,"65":0.02733,"67":0.01093,"74":0.0164,"75":0.07651,"76":0.0164,"77":0.07105,"79":0.03279,"81":0.00547,"84":0.0164,"85":0.0164,"86":0.01093,"87":0.07105,"88":0.07651,"89":0.0164,"90":0.13116,"91":0.69952,"92":6.03336,"93":16.87046,"94":4.20805,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 68 69 70 71 72 73 78 80 83 95 96 97"},F:{"78":0.25686,"79":0.03279,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.04788,"15":0.87315,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03098,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.49291,"9.0-9.2":0,"9.3":0.81682,"10.0-10.2":0.00282,"10.3":0.76612,"11.0-11.2":0.09577,"11.3-11.4":0.09858,"12.0-12.1":0.01972,"12.2-12.5":1.51816,"13.0-13.1":0.0338,"13.2":0,"13.3":0.1183,"13.4-13.7":0.67599,"14.0-14.4":2.45047,"14.5-14.8":20.11635},E:{"4":0,"11":0.37162,"12":0.06558,"13":0.07651,"14":1.34986,"15":0.79789,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01093,"11.1":0.13663,"12.1":0.13663,"13.1":1.02196,"14.1":10.11025},B:{"17":0.01093,"18":0.15849,"89":0.01093,"91":0.02186,"92":1.11486,"93":5.13164,"94":1.328,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.14505,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.18649,"8.2":0.01025,"9.2":0.06216,"10.1":0.08312,"11.1-11.2":0.0114,"12.0":0.03421,"13.0":0.14823,"14.0":0.31926,"15.0":3.4777},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.93998,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":13.15138},S:{"2.5":0},R:{_:"0"},M:{"0":0.18594},Q:{"10.4":0},O:{"0":0},H:{"0":0.00859}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js deleted file mode 100644 index 37663c2936a498..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00276,"29":0.00276,"30":0.00828,"38":0.00276,"41":0.00276,"42":0.00276,"43":0.00552,"44":0.00276,"45":0.00552,"46":0.00276,"47":0.00552,"48":0.00828,"49":0.00276,"52":0.01655,"56":0.00828,"64":0.00276,"65":0.00276,"66":0.00276,"68":0.00552,"69":0.00552,"72":0.01104,"75":0.00276,"76":0.00552,"77":0.00828,"78":0.03863,"79":0.00276,"80":0.00552,"81":0.00552,"82":0.00552,"83":0.00828,"84":0.02759,"85":0.01655,"86":0.01104,"87":0.01104,"88":0.02207,"89":0.07449,"90":0.04414,"91":0.73114,"92":1.51193,"93":0.09381,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 31 32 33 34 35 36 37 39 40 50 51 53 54 55 57 58 59 60 61 62 63 67 70 71 73 74 94 3.5 3.6"},D:{"40":0.00828,"43":0.00276,"47":0.00276,"49":0.03587,"50":0.01104,"55":0.00552,"56":0.00552,"57":0.00828,"58":0.00276,"60":0.00552,"61":0.00276,"63":0.01931,"64":0.01104,"65":0.01104,"67":0.00552,"68":0.01931,"69":0.0138,"70":0.01104,"71":0.00828,"72":0.01104,"73":0.00828,"74":0.01655,"75":0.0138,"76":0.22348,"77":0.04414,"78":0.0138,"79":0.04966,"80":0.04414,"81":0.06622,"83":0.0607,"84":0.02483,"85":0.02759,"86":0.05518,"87":0.16278,"88":0.04966,"89":0.06622,"90":0.07725,"91":0.28694,"92":3.00179,"93":8.81225,"94":1.30501,"95":0.01931,"96":0.00276,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 45 46 48 51 52 53 54 59 62 66 97"},F:{"37":0.00276,"42":0.00552,"64":0.00276,"65":0.0138,"73":0.00276,"75":0.00276,"76":0.00828,"77":0.06898,"78":0.85805,"79":0.29797,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 68 69 70 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00276},G:{"8":0.00648,"15":0.57831,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.01556,"5.0-5.1":0,"6.0-6.1":0.00389,"7.0-7.1":0.00908,"8.1-8.4":0.00259,"9.0-9.2":0.00259,"9.3":0.07261,"10.0-10.2":0.00519,"10.3":0.20487,"11.0-11.2":0.56534,"11.3-11.4":0.06354,"12.0-12.1":0.06872,"12.2-12.5":1.87886,"13.0-13.1":0.09595,"13.2":0.0402,"13.3":0.19191,"13.4-13.7":0.47847,"14.0-14.4":3.16773,"14.5-14.8":5.5095},E:{"4":0,"11":0.00552,"12":0.00552,"13":0.03587,"14":0.1076,"15":0.06622,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01104,"10.1":0.00552,"11.1":0.01104,"12.1":0.02483,"13.1":0.06898,"14.1":0.42765},B:{"12":0.03863,"13":0.0138,"14":0.01104,"15":0.01655,"16":0.03035,"17":0.02207,"18":0.11312,"80":0.00276,"84":0.02759,"85":0.03587,"86":0.03587,"87":0.00552,"88":0.00828,"89":0.04966,"90":0.03035,"91":0.04966,"92":0.4911,"93":1.42916,"94":0.26211,_:"79 81 83"},P:{"4":0.19131,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.12754,"8.2":0.01025,"9.2":0.05314,"10.1":0.01063,"11.1-11.2":0.12754,"12.0":0.05314,"13.0":0.15943,"14.0":0.40389,"15.0":0.68023},I:{"0":0,"3":0,"4":0.00079,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0059,"4.2-4.3":0.00905,"4.4":0,"4.4.3-4.4.4":0.05667},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00656,"9":0.00656,"10":0.00328,"11":0.10499,_:"6 7 5.5"},J:{"7":0,"10":0.02172},N:{"11":0.15172,_:"10"},L:{"0":46.16366},S:{"2.5":0},R:{_:"0"},M:{"0":0.29688},Q:{"10.4":0.01448},O:{"0":2.33884},H:{"0":12.6549}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js deleted file mode 100644 index 04c4be6891ae6c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"74":0.01145,"78":0.10301,"88":0.00572,"89":0.13735,"90":0.09729,"91":0.36055,"92":0.70965,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 93 94 3.5 3.6"},D:{"49":0.01145,"57":0.00572,"60":0.05723,"63":0.01145,"79":0.09157,"80":0.09157,"81":0.04006,"83":0.01717,"84":0.04578,"86":0.02289,"87":0.09157,"88":0.01145,"89":0.09729,"90":0.10301,"91":0.44639,"92":6.77603,"93":22.91489,"94":6.70736,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 58 59 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 85 95 96 97"},F:{"36":0.06868,"46":0.04578,"78":0.56658,"79":0.80122,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.98372,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.06177,"7.0-7.1":0.00458,"8.1-8.4":0,"9.0-9.2":0.00458,"9.3":0.21505,"10.0-10.2":0.00686,"10.3":0.07778,"11.0-11.2":0.01373,"11.3-11.4":0.02974,"12.0-12.1":0.02288,"12.2-12.5":0.47356,"13.0-13.1":0.06863,"13.2":0.01601,"13.3":0.19446,"13.4-13.7":0.21733,"14.0-14.4":3.08613,"14.5-14.8":17.39125},E:{"4":0,"13":0.06295,"14":1.28768,"15":0.21747,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.10874,"12.1":0.03434,"13.1":0.61236,"14.1":5.75162},B:{"18":0.33193,"84":0.00572,"91":0.06868,"92":0.61808,"93":4.38954,"94":1.11026,_:"12 13 14 15 16 17 79 80 81 83 85 86 87 88 89 90"},P:{"4":0.25171,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.12754,"8.2":0.01025,"9.2":0.05314,"10.1":0.01063,"11.1-11.2":0.03146,"12.0":0.05314,"13.0":0.04195,"14.0":0.15732,"15.0":2.73738},I:{"0":0,"3":0,"4":0.00075,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0078},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19458,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":17.08631},S:{"2.5":0},R:{_:"0"},M:{"0":0.15821},Q:{"10.4":0},O:{"0":0.60719},H:{"0":0.10525}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js deleted file mode 100644 index 12714520155ace..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.0121,"50":0.00605,"51":0.00605,"52":0.0121,"69":0.0242,"78":0.13308,"85":0.07259,"88":0.06049,"89":0.48392,"90":0.50812,"91":1.78446,"92":1.59694,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 87 93 94 3.5 3.6"},D:{"38":0.0242,"45":0.01815,"49":0.00605,"56":0.06049,"58":0.0121,"65":0.0242,"70":0.16332,"74":0.08469,"75":0.04234,"79":0.13913,"80":0.12703,"81":0.18752,"83":0.0242,"84":0.03025,"85":0.01815,"86":0.07259,"87":0.10888,"88":0.17542,"89":0.53836,"90":0.26011,"91":0.56256,"92":7.32534,"93":16.9372,"94":2.92167,"95":0.0121,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 47 48 50 51 52 53 54 55 57 59 60 61 62 63 64 66 67 68 69 71 72 73 76 77 78 96 97"},F:{"44":0.00605,"74":0.01815,"77":0.01815,"78":1.07067,"79":0.10888,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.02765,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00511,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00341,"9.0-9.2":0.09885,"9.3":0.05965,"10.0-10.2":0.02386,"10.3":0.12782,"11.0-11.2":0,"11.3-11.4":0.02216,"12.0-12.1":0.00682,"12.2-12.5":0.62034,"13.0-13.1":0.00341,"13.2":0.02216,"13.3":0.03579,"13.4-13.7":0.12952,"14.0-14.4":1.19978,"14.5-14.8":13.65434},E:{"4":0,"13":0.99204,"14":0.97389,"15":0.61095,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.03025,"12.1":0.17542,"13.1":1.31263,"14.1":11.08177},B:{"14":0.03025,"16":0.0121,"17":0.0242,"18":0.05444,"89":0.0242,"91":0.20567,"92":1.14931,"93":4.68798,"94":0.82266,_:"12 13 15 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.04498,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.12754,"8.2":0.01025,"9.2":0.05314,"10.1":0.01063,"11.1-11.2":0.02249,"12.0":0.01059,"13.0":0.05623,"14.0":0.37109,"15.0":2.57514},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00021,"4.2-4.3":0.00021,"4.4":0,"4.4.3-4.4.4":0.00748},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01815,"11":0.90735,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":19.21991},S:{"2.5":0},R:{_:"0"},M:{"0":0.4109},Q:{"10.4":0},O:{"0":0.07902},H:{"0":0.22443}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js deleted file mode 100644 index 5d5ee972d0b110..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.00483,"34":0.03621,"40":0.00966,"42":0.00724,"43":0.00966,"45":0.00241,"48":0.00724,"50":0.01931,"51":0.00483,"52":0.02414,"54":0.00966,"55":0.00483,"56":0.00724,"57":0.00724,"58":0.00483,"59":0.01207,"60":0.00241,"61":0.00483,"62":0.00483,"63":0.00966,"64":0.00241,"65":0.00724,"66":0.00483,"67":0.01207,"69":0.01448,"71":0.00241,"72":0.01207,"73":0.00241,"78":0.03138,"81":0.02655,"83":0.00483,"85":0.00483,"86":0.00724,"88":0.01448,"89":0.04587,"90":0.02897,"91":1.05975,"92":2.22571,"93":0.1038,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 37 38 39 41 44 46 47 49 53 68 70 74 75 76 77 79 80 82 84 87 94 3.5 3.6"},D:{"31":0.01448,"34":0.00724,"37":0.00241,"40":0.00241,"41":0.00241,"45":0.00724,"47":0.00483,"49":0.05794,"51":0.00966,"53":0.00241,"55":0.00966,"56":0.00724,"57":0.00241,"59":0.02173,"60":0.03138,"63":0.00483,"64":0.00966,"65":0.00241,"66":0.01207,"67":0.00241,"68":0.00483,"69":0.00483,"70":0.00966,"71":0.00724,"72":0.00483,"73":0.00483,"74":0.04587,"75":0.00483,"76":0.07966,"77":0.01931,"78":0.00966,"79":0.14484,"80":0.02655,"81":0.0338,"83":0.0169,"84":0.00724,"85":0.04104,"86":0.0169,"87":0.04828,"88":0.11829,"89":0.00966,"90":0.04104,"91":0.26313,"92":1.63669,"93":6.17743,"94":0.87628,"95":0.05069,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 35 36 38 39 42 43 44 46 48 50 52 54 58 61 62 96 97"},F:{"36":0.00483,"40":0.00241,"49":0.00483,"54":0.00241,"55":0.00483,"56":0.00483,"65":0.00483,"77":0.01207,"78":0.449,"79":0.23657,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 46 47 48 50 51 52 53 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.45849,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00258,"5.0-5.1":0.00646,"6.0-6.1":0,"7.0-7.1":0.02583,"8.1-8.4":0,"9.0-9.2":0.01162,"9.3":0.55277,"10.0-10.2":0.00646,"10.3":0.4107,"11.0-11.2":0.04004,"11.3-11.4":0.03487,"12.0-12.1":0.04391,"12.2-12.5":1.78618,"13.0-13.1":0.05554,"13.2":0.02066,"13.3":0.38487,"13.4-13.7":0.52565,"14.0-14.4":2.18009,"14.5-14.8":6.36463},E:{"4":0,"10":0.00241,"11":0.00241,"12":0.00483,"13":0.01207,"14":0.07242,"15":0.0169,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00483,"11.1":0.13036,"12.1":0.03621,"13.1":0.03138,"14.1":0.2752},B:{"12":0.03862,"13":0.02414,"14":0.00241,"15":0.00724,"16":0.12553,"17":0.01207,"18":1.28908,"80":0.01448,"81":0.00724,"83":0.00724,"84":0.01448,"85":0.0169,"86":0.00483,"87":0.00724,"89":0.02173,"90":0.0169,"91":0.0169,"92":0.28244,"93":1.3108,"94":0.17381,_:"79 88"},P:{"4":0.89162,"5.0-5.4":0.06149,"6.2-6.4":0.0205,"7.2-7.4":0.57392,"8.2":0.01025,"9.2":0.06149,"10.1":0.0205,"11.1-11.2":0.20497,"12.0":0.04099,"13.0":0.11273,"14.0":0.49193,"15.0":1.18883},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00094,"4.2-4.3":0.00685,"4.4":0,"4.4.3-4.4.4":0.0529},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.04828,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.1062},N:{"11":0.15172,_:"10"},L:{"0":60.74206},S:{"2.5":0},R:{_:"0"},M:{"0":0.14413},Q:{"10.4":0},O:{"0":1.06204},H:{"0":2.08276}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js deleted file mode 100644 index a192f99cb51286..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00119,"33":0.00237,"37":0.00593,"38":0.00119,"43":0.00356,"45":0.00237,"50":0.00356,"52":0.00237,"56":0.00119,"57":0.00119,"63":0.00237,"67":0.00119,"72":0.00237,"78":0.00474,"79":0.00237,"83":0.00237,"84":0.00237,"85":0.00119,"88":0.00237,"89":0.00593,"90":0.00712,"91":0.17909,"92":0.47677,"93":0.00237,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 39 40 41 42 44 46 47 48 49 51 53 54 55 58 59 60 61 62 64 65 66 68 69 70 71 73 74 75 76 77 80 81 82 86 87 94 3.5 3.6"},D:{"11":0.00237,"19":0.00593,"22":0.00119,"23":0.00237,"24":0.00356,"25":0.00593,"28":0.00356,"29":0.00237,"33":0.0083,"37":0.00356,"38":0.00356,"40":0.00712,"42":0.00356,"43":0.00593,"44":0.00949,"45":0.00237,"46":0.00119,"49":0.00474,"50":0.00474,"54":0.00712,"55":0.00356,"56":0.00474,"58":0.00119,"60":0.00237,"62":0.00119,"63":0.00237,"64":0.00237,"65":0.00237,"68":0.00356,"69":0.06049,"70":0.00593,"72":0.00237,"74":0.00237,"76":0.00712,"77":0.00119,"78":0.01067,"79":0.01423,"80":0.01542,"81":0.02491,"83":0.01305,"84":0.00474,"85":0.00712,"86":0.0166,"87":0.01423,"88":0.00593,"89":0.02491,"90":0.00949,"91":0.07116,"92":0.72939,"93":2.16445,"94":0.26922,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 26 27 30 31 32 34 35 36 39 41 47 48 51 52 53 57 59 61 66 67 71 73 75 95 96 97"},F:{"30":0.00356,"31":0.00237,"37":0.00237,"42":0.00237,"53":0.00237,"75":0.0083,"77":0.0083,"78":0.21585,"79":0.08539,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.08936,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00096,"7.0-7.1":0.08936,"8.1-8.4":0,"9.0-9.2":0.0269,"9.3":0.09896,"10.0-10.2":0.00769,"10.3":0.25366,"11.0-11.2":0.18736,"11.3-11.4":0.60051,"12.0-12.1":0.49386,"12.2-12.5":2.81425,"13.0-13.1":0.5198,"13.2":0.05957,"13.3":0.16238,"13.4-13.7":0.64183,"14.0-14.4":1.41145,"14.5-14.8":2.14936},E:{"4":0,"11":0.00356,"12":0.01305,"13":0.00237,"14":0.01067,"15":0.01305,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04744,"11.1":0.00119,"12.1":0.02135,"13.1":0.01423,"14.1":0.09844},B:{"12":0.03084,"13":0.00474,"14":0.00474,"15":0.00474,"16":0.00356,"17":0.01067,"18":0.02846,"80":0.00119,"84":0.0083,"85":0.01067,"86":0.00237,"88":0.02491,"89":0.01542,"90":0.00474,"91":0.00593,"92":0.33089,"93":0.48626,"94":0.06997,_:"79 81 83 87"},P:{"4":1.32966,"5.0-5.4":0.15225,"6.2-6.4":0.1421,"7.2-7.4":0.69021,"8.2":0.01025,"9.2":0.1218,"10.1":0.01015,"11.1-11.2":0.45675,"12.0":0.19285,"13.0":0.25375,"14.0":0.4263,"15.0":0.3654},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.004,"4.2-4.3":0.04672,"4.4":0,"4.4.3-4.4.4":0.33709},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00232,"9":0.00465,"11":0.10689,_:"6 7 10 5.5"},J:{"7":0,"10":0.01763},N:{"11":0.15172,_:"10"},L:{"0":71.57168},S:{"2.5":0.35256},R:{_:"0"},M:{"0":0.05288},Q:{"10.4":0.23798},O:{"0":0.32612},H:{"0":6.71734}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js deleted file mode 100644 index 8704ebd31759bf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GP.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.00945,"50":0.01417,"52":0.01417,"60":0.20313,"61":0.00472,"68":0.03779,"76":0.00945,"78":0.0992,"83":0.00945,"84":0.07086,"85":0.00945,"88":0.0189,"89":0.06141,"90":0.08503,"91":1.57782,"92":2.48955,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 59 62 63 64 65 66 67 69 70 71 72 73 74 75 77 79 80 81 82 86 87 93 94 3.5 3.6"},D:{"39":0.01417,"49":0.1181,"61":0.00472,"63":0.0189,"65":0.11338,"67":0.06614,"73":0.00472,"74":0.02362,"75":0.02834,"77":0.00472,"78":0.00472,"79":0.06141,"80":0.01417,"81":0.0189,"83":0.00945,"84":0.10865,"85":0.0189,"86":0.01417,"87":0.17479,"88":0.06141,"89":0.32123,"90":0.05196,"91":0.21258,"92":4.9413,"93":16.05688,"94":2.66906,"95":0.00472,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 64 66 68 69 70 71 72 76 96 97"},F:{"46":0.00472,"75":0.00472,"77":0.00945,"78":0.88339,"79":0.26927,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00415,"15":0.77802,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00553,"6.0-6.1":0.00415,"7.0-7.1":0.00553,"8.1-8.4":0.00967,"9.0-9.2":0.00415,"9.3":0.50026,"10.0-10.2":0.00138,"10.3":0.07186,"11.0-11.2":0.01935,"11.3-11.4":0.03178,"12.0-12.1":0.01658,"12.2-12.5":0.52375,"13.0-13.1":0.03317,"13.2":0.00967,"13.3":0.09397,"13.4-13.7":0.33857,"14.0-14.4":1.28795,"14.5-14.8":10.07836},E:{"4":0,"11":0.00472,"12":0.00945,"13":0.05669,"14":0.61412,"15":0.35902,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.04252,"11.1":0.26927,"12.1":0.17479,"13.1":1.04873,"14.1":3.23594},B:{"12":0.0189,"15":0.00945,"16":0.01417,"17":0.03779,"18":0.1181,"80":0.02362,"84":0.02834,"85":0.00472,"86":0.05669,"87":0.11338,"88":0.02362,"89":0.02834,"90":0.00945,"91":0.05196,"92":1.10542,"93":5.44205,"94":0.95425,_:"13 14 79 81 83"},P:{"4":0.07273,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.15584,"8.2":0.01025,"9.2":0.05195,"10.1":0.08312,"11.1-11.2":0.23896,"12.0":0.74805,"13.0":0.21818,"14.0":0.76882,"15.0":3.35581},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00266,"4.2-4.3":0.00228,"4.4":0,"4.4.3-4.4.4":0.04255},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.42516,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":34.00699},S:{"2.5":0.00528},R:{_:"0"},M:{"0":0.2427},Q:{"10.4":0},O:{"0":0},H:{"0":0.17982}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js deleted file mode 100644 index 567e5f91ce28bc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GQ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"33":0.0046,"36":0.0046,"43":0.0184,"45":0.0046,"49":0.0046,"50":0.0046,"51":0.0092,"52":0.11038,"54":0.0138,"56":0.0092,"57":0.03219,"60":0.0046,"61":0.0046,"63":0.02759,"64":0.0092,"68":0.04599,"71":0.03679,"72":0.023,"78":0.03219,"81":0.06439,"82":0.0138,"84":0.0092,"88":0.03219,"89":0.09198,"90":0.05059,"91":1.08536,"92":4.23568,"93":0.04139,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 37 38 39 40 41 42 44 46 47 48 53 55 58 59 62 65 66 67 69 70 73 74 75 76 77 79 80 83 85 86 87 94 3.5 3.6"},D:{"11":0.0184,"18":0.02759,"33":0.0092,"43":0.0092,"46":0.0092,"47":0.023,"48":0.0092,"49":0.04139,"53":0.023,"54":0.023,"55":0.03679,"59":0.0046,"60":0.0092,"63":0.0092,"68":0.14717,"69":0.04139,"70":0.0092,"74":0.17476,"75":0.0092,"78":0.06899,"79":0.08738,"80":0.02759,"81":0.02759,"83":0.17476,"84":0.02759,"85":0.04599,"86":0.04139,"87":0.29434,"88":0.0184,"89":0.11957,"90":0.34952,"91":0.14257,"92":5.38083,"93":18.34541,"94":2.55245,"95":0.0184,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 44 45 50 51 52 56 57 58 61 62 64 65 66 67 71 72 73 76 77 96 97"},F:{"49":0.0046,"51":0.0138,"52":0.0046,"53":0.0046,"56":0.0046,"62":0.05059,"64":0.0092,"70":0.0092,"71":0.05059,"72":0.0138,"73":0.0092,"77":0.12417,"78":0.04139,"79":0.0184,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 54 55 57 58 60 63 65 66 67 68 69 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00419,"15":0.15295,"3.2":0.0014,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00838,"7.0-7.1":0.01187,"8.1-8.4":0.00419,"9.0-9.2":0.00559,"9.3":0.01746,"10.0-10.2":0.0021,"10.3":0.0894,"11.0-11.2":0.07543,"11.3-11.4":0.02444,"12.0-12.1":0.02444,"12.2-12.5":1.83684,"13.0-13.1":0.01187,"13.2":0.02025,"13.3":0.05727,"13.4-13.7":0.19276,"14.0-14.4":0.90585,"14.5-14.8":3.53679},E:{"4":0,"13":0.0138,"14":0.11038,"15":0.04599,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 7.1 9.1","5.1":0.04599,"6.1":0.023,"10.1":0.04599,"11.1":0.023,"12.1":0.03219,"13.1":0.03219,"14.1":0.32653},B:{"12":0.07818,"13":0.0184,"14":0.02759,"15":0.07358,"16":0.03679,"17":0.29894,"18":0.27134,"81":0.0046,"84":0.23915,"85":0.0138,"88":0.0092,"89":0.0138,"90":0.0138,"91":0.07818,"92":0.56568,"93":3.52743,"94":0.83242,_:"79 80 83 86 87"},P:{"4":0.63862,"5.0-5.4":0.02129,"6.2-6.4":0.04074,"7.2-7.4":0.06386,"8.2":0.01008,"9.2":0.05322,"10.1":0.01041,"11.1-11.2":0.03193,"12.0":0.04257,"13.0":0.08515,"14.0":0.60669,"15.0":1.72427},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.003,"4.2-4.3":0.06651,"4.4":0,"4.4.3-4.4.4":0.25455},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01238,"11":1.25694,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.5455},N:{"11":0.01911,_:"10"},L:{"0":44.08057},S:{"2.5":0},R:{_:"0"},M:{"0":0.23764},Q:{"10.4":0.03781},O:{"0":0.37807},H:{"0":0.52667}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js deleted file mode 100644 index 59df6d198e99fb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00605,"52":0.79216,"56":0.01209,"60":0.00605,"66":0.00605,"68":0.01209,"78":0.09675,"81":0.04838,"82":0.03628,"84":0.08466,"85":0.01814,"86":0.00605,"87":0.09675,"88":0.05442,"89":0.04233,"90":0.07861,"91":2.36438,"92":5.02506,"93":0.01209,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 64 65 67 69 70 71 72 73 74 75 76 77 79 80 83 94 3.5 3.6"},D:{"22":0.50795,"38":0.12699,"40":0.00605,"47":0.28421,"49":0.85263,"53":0.01209,"56":0.00605,"58":0.02419,"62":0.17536,"65":0.01209,"68":0.01209,"69":0.2056,"70":0.00605,"71":0.03024,"72":0.01209,"73":0.01209,"74":0.00605,"75":0.01814,"76":0.00605,"77":0.09675,"78":0.01209,"79":0.2056,"80":0.05442,"81":0.01814,"83":0.02419,"84":0.03024,"85":0.01814,"86":0.03628,"87":0.34468,"88":0.04233,"89":0.10885,"90":0.06652,"91":0.48981,"92":7.6676,"93":24.57501,"94":4.11801,"95":0.00605,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 43 44 45 46 48 50 51 52 54 55 57 59 60 61 63 64 66 67 96 97"},F:{"12":0.07861,"25":0.09071,"31":0.84658,"40":0.64098,"46":0.00605,"77":0.01209,"78":1.07032,"79":0.31444,_:"9 11 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 32 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.30148,"3.2":0.00062,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0148,"6.0-6.1":0.00185,"7.0-7.1":0.2201,"8.1-8.4":0.0037,"9.0-9.2":0.00308,"9.3":0.10049,"10.0-10.2":0.01048,"10.3":0.08261,"11.0-11.2":0.01911,"11.3-11.4":0.02035,"12.0-12.1":0.01726,"12.2-12.5":0.39519,"13.0-13.1":0.01048,"13.2":0.03514,"13.3":0.03391,"13.4-13.7":0.17386,"14.0-14.4":0.42601,"14.5-14.8":4.29221},E:{"4":0,"12":0.00605,"13":0.1935,"14":0.15722,"15":0.09071,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.04838,"12.1":0.03628,"13.1":0.10885,"14.1":0.90705},B:{"15":0.12699,"17":0.00605,"18":0.01814,"84":0.00605,"85":0.01209,"89":0.00605,"90":0.01209,"91":0.01209,"92":0.38096,"93":2.03784,"94":0.44143,_:"12 13 14 16 79 80 81 83 86 87 88"},P:{"4":0.69903,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.12754,"8.2":0.01025,"9.2":0.05314,"10.1":0.01063,"11.1-11.2":0.08473,"12.0":0.01059,"13.0":0.10591,"14.0":0.19064,"15.0":1.41924},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00831,"4.2-4.3":0.11907,"4.4":0,"4.4.3-4.4.4":0.44581},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.55632,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":30.44874},S:{"2.5":0},R:{_:"0"},M:{"0":0.21346},Q:{"10.4":0},O:{"0":0.10673},H:{"0":0.23203}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js deleted file mode 100644 index fd47e9e116a4c6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.00828,"52":0.0207,"72":0.00414,"73":0.11592,"78":0.03726,"88":0.00828,"89":0.01656,"90":0.0414,"91":0.60858,"92":1.17576,"93":0.01656,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 81 82 83 84 85 86 87 94 3.5 3.6"},D:{"18":0.00414,"38":0.01242,"49":0.11592,"53":0.00828,"63":0.00828,"65":0.0207,"67":0.00828,"68":0.00828,"69":0.00828,"70":0.00828,"72":0.00414,"74":0.01656,"75":0.00828,"76":0.0414,"77":0.01242,"78":0.01656,"79":0.05382,"80":0.01656,"81":0.02484,"83":0.02484,"84":0.02484,"85":0.01242,"86":0.11178,"87":0.09936,"88":0.05382,"89":0.0621,"90":0.06624,"91":0.38502,"92":5.46066,"93":20.16594,"94":3.58938,"95":0.00828,"96":0.00414,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 64 66 71 73 97"},F:{"74":0.00414,"77":0.0207,"78":1.4697,"79":0.21528,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.68106,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0007,"6.0-6.1":0.00557,"7.0-7.1":0.00348,"8.1-8.4":0.00348,"9.0-9.2":0.0007,"9.3":0.02646,"10.0-10.2":0.00139,"10.3":0.04039,"11.0-11.2":0.00766,"11.3-11.4":0.01114,"12.0-12.1":0.00836,"12.2-12.5":0.31755,"13.0-13.1":0.0195,"13.2":0.00418,"13.3":0.04596,"13.4-13.7":0.11838,"14.0-14.4":0.46379,"14.5-14.8":5.20194},E:{"4":0,"13":0.01656,"14":0.30222,"15":0.1863,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01242,"12.1":0.02484,"13.1":0.15318,"14.1":1.29168},B:{"15":0.00414,"16":0.00414,"17":0.00414,"18":0.03312,"84":0.00828,"85":0.0207,"89":0.01242,"90":0.01242,"91":0.0207,"92":0.43056,"93":1.91268,"94":0.42228,_:"12 13 14 79 80 81 83 86 87 88"},P:{"4":0.14505,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.18649,"8.2":0.01025,"9.2":0.06216,"10.1":0.08312,"11.1-11.2":0.30046,"12.0":0.0518,"13.0":0.19685,"14.0":0.46623,"15.0":1.89599},I:{"0":0,"3":0,"4":0.00352,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00234,"4.2-4.3":0.00352,"4.4":0,"4.4.3-4.4.4":0.05508},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.20286,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":49.34582},S:{"2.5":0},R:{_:"0"},M:{"0":0.22268},Q:{"10.4":0},O:{"0":0.09962},H:{"0":0.2552}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js deleted file mode 100644 index 588dfe87a72642..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"72":0.00456,"78":0.05925,"84":0.02735,"87":0.00912,"88":0.02735,"89":0.41478,"90":0.02735,"91":0.6837,"92":0.93895,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 93 94 3.5 3.6"},D:{"49":0.04102,"53":0.01823,"58":0.02735,"65":0.00912,"67":0.03191,"71":0.00456,"74":0.00912,"75":0.01823,"76":0.03646,"77":0.02735,"78":0.00456,"79":0.41022,"80":0.00912,"81":0.00912,"84":0.11395,"85":0.02279,"86":0.0866,"87":0.27348,"88":0.0866,"89":0.03191,"90":0.05925,"91":0.56975,"92":6.48603,"93":17.47537,"94":2.20151,"95":0.00456,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 60 61 62 63 64 66 68 69 70 72 73 83 96 97"},F:{"78":0.47403,"79":0.06837,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.85533,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00755,"8.1-8.4":0.08805,"9.0-9.2":0,"9.3":0.17107,"10.0-10.2":0.00252,"10.3":0.10566,"11.0-11.2":0.06289,"11.3-11.4":0.06289,"12.0-12.1":0.05786,"12.2-12.5":0.90564,"13.0-13.1":0.04277,"13.2":0.01006,"13.3":0.24654,"13.4-13.7":0.53081,"14.0-14.4":2.35215,"14.5-14.8":19.64488},E:{"4":0,"13":0.6837,"14":0.7703,"15":0.23246,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1","5.1":0.02279,"9.1":0.00456,"10.1":0.08204,"11.1":0.11395,"12.1":0.11851,"13.1":0.35552,"14.1":4.60358},B:{"15":0.00912,"16":0.01367,"17":0.00912,"18":0.26892,"84":0.02279,"86":0.00456,"89":0.01823,"91":0.03191,"92":0.66547,"93":2.83508,"94":0.5105,_:"12 13 14 79 80 81 83 85 87 88 90"},P:{"4":0.48414,"5.0-5.4":0.01063,"6.2-6.4":0.0205,"7.2-7.4":0.0206,"8.2":0.01025,"9.2":0.0206,"10.1":0.08312,"11.1-11.2":0.15451,"12.0":0.0515,"13.0":0.24722,"14.0":0.52535,"15.0":3.82165},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00051,"4.2-4.3":0.00068,"4.4":0,"4.4.3-4.4.4":0.00425},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01215,"11":0.66243,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":25.16889},S:{"2.5":0},R:{_:"0"},M:{"0":0.30481},Q:{"10.4":0},O:{"0":0.09797},H:{"0":0.11852}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js deleted file mode 100644 index 2bc3a60abe073b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.0345,"29":0.02218,"38":0.00739,"53":0.00739,"72":0.00493,"74":0.00493,"78":0.00246,"85":0.01232,"89":0.00739,"91":0.30307,"92":0.70717,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 75 76 77 79 80 81 82 83 84 86 87 88 90 93 94 3.5 3.6"},D:{"11":0.13552,"25":0.00739,"26":0.00493,"33":0.09117,"42":0.08131,"43":0.04682,"51":0.00739,"55":0.22669,"56":0.0271,"65":0.01971,"77":0.01232,"78":0.00493,"79":0.00986,"81":0.05174,"83":0.01478,"84":0.34003,"85":0.00986,"86":0.01478,"87":0.01971,"88":0.01725,"90":0.04189,"91":0.15277,"92":2.2521,"93":7.57434,"94":0.96835,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 34 35 36 37 38 39 40 41 44 45 46 47 48 49 50 52 53 54 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 80 89 95 96 97"},F:{"71":0.00493,"76":0.00739,"77":0.00739,"78":0.66282,"79":0.06653,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.04674,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00428,"7.0-7.1":0.00312,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.07245,"10.0-10.2":0.08101,"10.3":0.27771,"11.0-11.2":0.02103,"11.3-11.4":0.03544,"12.0-12.1":0.42182,"12.2-12.5":1.03372,"13.0-13.1":0.03311,"13.2":0,"13.3":0.01052,"13.4-13.7":0.12152,"14.0-14.4":0.8417,"14.5-14.8":0.89194},E:{"4":0,"14":0.00493,"15":0.06899,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.00493,"14.1":0.09363},B:{"12":0.00246,"14":0.00493,"15":0.05421,"17":0.00739,"18":0.00739,"91":0.00493,"92":0.48541,"93":2.32355,"94":0.56179,_:"13 16 79 80 81 83 84 85 86 87 88 89 90"},P:{"4":0.62387,"5.0-5.4":0.15225,"6.2-6.4":0.02045,"7.2-7.4":0.71592,"8.2":0.01025,"9.2":0.02045,"10.1":0.01015,"11.1-11.2":0.28637,"12.0":0.10227,"13.0":0.07159,"14.0":0.86933,"15.0":0.2966},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00009,"4.2-4.3":0.00112,"4.4":0,"4.4.3-4.4.4":0.02893},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.0616,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":72.1711},S:{"2.5":1.20576},R:{_:"0"},M:{"0":0.0829},Q:{"10.4":0},O:{"0":0.14318},H:{"0":1.61242}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js deleted file mode 100644 index 4c9636fec9bb1d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/GY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00751,"72":0.00375,"78":0.02252,"83":0.00375,"85":0.01126,"88":0.01126,"89":0.01126,"90":0.01877,"91":0.49177,"92":0.82588,"93":0.01126,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 84 86 87 94 3.5 3.6"},D:{"24":0.00751,"47":0.10511,"49":0.01126,"60":0.00375,"62":0.01877,"63":0.00751,"64":0.00375,"65":0.00751,"66":0.00751,"67":0.00751,"68":0.03003,"69":0.01502,"70":0.00751,"74":0.06006,"75":0.07883,"76":0.03003,"77":0.1877,"78":0.01877,"79":0.22524,"80":0.01126,"81":0.06382,"83":0.05256,"84":0.01502,"85":0.01502,"86":0.02628,"87":0.05256,"88":0.03003,"89":0.03754,"90":0.0901,"91":0.29657,"92":4.63619,"93":14.31776,"94":2.27117,"95":0.01126,"96":0.00375,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 61 71 72 73 97"},F:{"75":0.00751,"77":0.01502,"78":0.4655,"79":0.16142,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0025,"15":0.62425,"3.2":0.00835,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.07928,"6.0-6.1":0,"7.0-7.1":0.35803,"8.1-8.4":0.00501,"9.0-9.2":0.02671,"9.3":0.07678,"10.0-10.2":0.00083,"10.3":0.03088,"11.0-11.2":0.02253,"11.3-11.4":0.01168,"12.0-12.1":0.00918,"12.2-12.5":0.55498,"13.0-13.1":0.00835,"13.2":0.00334,"13.3":0.02587,"13.4-13.7":0.33132,"14.0-14.4":0.63093,"14.5-14.8":5.52895},E:{"4":0,"13":0.00375,"14":0.09385,"15":0.05631,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 11.1","5.1":0.00375,"10.1":0.03003,"12.1":0.04505,"13.1":0.75455,"14.1":0.96478},B:{"12":0.01126,"13":0.02628,"14":0.00751,"15":0.03379,"16":0.02628,"17":0.01502,"18":0.07508,"80":0.01877,"81":0.04129,"83":0.00751,"84":0.01126,"85":0.00375,"86":0.01126,"87":0.03379,"88":0.00751,"89":0.03003,"90":0.00751,"91":0.01877,"92":0.92724,"93":3.84785,"94":0.78459,_:"79"},P:{"4":0.33518,"5.0-5.4":0.15225,"6.2-6.4":0.02045,"7.2-7.4":0.2703,"8.2":0.01025,"9.2":0.21624,"10.1":0.15137,"11.1-11.2":0.2703,"12.0":0.04325,"13.0":0.19462,"14.0":2.10836,"15.0":4.00048},I:{"0":0,"3":0,"4":0.0223,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00372,"4.2-4.3":0.00867,"4.4":0,"4.4.3-4.4.4":0.109},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01405,"10":0.04919,"11":0.2108,_:"6 7 9 5.5"},J:{"7":0,"10":0.01249},N:{"11":0.15172,_:"10"},L:{"0":48.88044},S:{"2.5":0},R:{_:"0"},M:{"0":0.06872},Q:{"10.4":0.09371},O:{"0":1.12446},H:{"0":0.24248}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js deleted file mode 100644 index 820e7b672cde6b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.02521,"52":0.02521,"56":0.00504,"69":0.02017,"72":0.01008,"78":0.08067,"80":0.00504,"84":0.00504,"85":0.00504,"86":0.01008,"88":0.01008,"89":0.04538,"90":0.07059,"91":0.64538,"92":1.21512,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 81 82 83 87 93 94 3.5 3.6"},D:{"19":0.01008,"22":0.02017,"26":0.01008,"30":0.01008,"34":0.07059,"38":0.17647,"48":0.01008,"49":0.12605,"53":0.07059,"54":0.00504,"55":0.03025,"56":0.01008,"57":0.01008,"58":0.01008,"60":0.00504,"61":0.03529,"62":0.02017,"63":0.01513,"64":0.01008,"65":0.03025,"66":0.01008,"67":0.03025,"68":0.02521,"69":0.04538,"70":0.02017,"71":0.02017,"72":0.02521,"73":0.02017,"74":0.04034,"75":0.05546,"76":0.02521,"77":0.02017,"78":0.08571,"79":0.64033,"80":0.08067,"81":0.05546,"83":0.07563,"84":0.04538,"85":0.04538,"86":0.09076,"87":0.18655,"88":0.11597,"89":0.12101,"90":0.22689,"91":0.89243,"92":6.66048,"93":18.5596,"94":2.59159,"95":0.02521,"96":0.00504,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 50 51 52 59 97"},F:{"28":0.01513,"36":0.04538,"40":0.01008,"46":0.08067,"69":0.00504,"70":0.01008,"77":0.00504,"78":0.13613,"79":0.04538,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.62284,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00394,"5.0-5.1":0.03154,"6.0-6.1":0.01774,"7.0-7.1":0.03154,"8.1-8.4":0.03548,"9.0-9.2":0.01971,"9.3":0.25426,"10.0-10.2":0.08475,"10.3":0.1833,"11.0-11.2":0.11629,"11.3-11.4":0.08475,"12.0-12.1":0.09264,"12.2-12.5":1.01901,"13.0-13.1":0.0887,"13.2":0.02562,"13.3":0.18527,"13.4-13.7":0.59327,"14.0-14.4":2.02422,"14.5-14.8":14.19319},E:{"4":0,"8":0.02017,"11":0.01513,"12":0.02521,"13":0.17647,"14":1.0084,"15":0.24706,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00504,"10.1":0.03529,"11.1":0.0605,"12.1":0.10084,"13.1":0.57983,"14.1":5.65712},B:{"12":0.01513,"17":0.01513,"18":0.04034,"86":0.00504,"89":0.01008,"90":0.00504,"91":0.02017,"92":0.65042,"93":3.18654,"94":0.58991,_:"13 14 15 16 79 80 81 83 84 85 87 88"},P:{"4":0.96279,"5.0-5.4":0.01028,"6.2-6.4":0.04092,"7.2-7.4":0.21589,"8.2":0.11252,"9.2":0.0547,"10.1":0.01094,"11.1-11.2":0.09847,"12.0":0.06565,"13.0":0.20788,"14.0":0.44857,"15.0":4.02623},I:{"0":0,"3":0,"4":0.00095,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00285,"4.2-4.3":0.00665,"4.4":0,"4.4.3-4.4.4":0.03418},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01045,"11":1.27526,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":24.04368},S:{"2.5":0},R:{_:"0"},M:{"0":0.26277},Q:{"10.4":0.1884},O:{"0":0.79328},H:{"0":0.09857}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js deleted file mode 100644 index 610fb4ca1ba4c2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00432,"15":0.00432,"17":0.00863,"52":0.01726,"71":0.00863,"72":0.00863,"73":0.07337,"78":0.0259,"85":0.00432,"86":0.01295,"87":0.00432,"88":0.00432,"89":0.01726,"90":0.01726,"91":0.49202,"92":1.14806,"93":0.00432,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 74 75 76 77 79 80 81 82 83 84 94 3.5 3.6"},D:{"23":0.00432,"24":0.00863,"25":0.01295,"38":0.01726,"47":0.01295,"49":0.14674,"53":0.04316,"56":0.00432,"58":0.00432,"63":0.03453,"65":0.01295,"66":0.00863,"67":0.00863,"68":0.00863,"69":0.00863,"70":0.01295,"71":0.00432,"72":0.00863,"73":0.01295,"74":0.082,"75":0.04316,"76":0.09495,"77":0.01295,"78":0.01295,"79":0.20285,"80":0.09064,"81":0.04748,"83":0.03453,"84":0.20285,"85":0.05611,"86":0.05611,"87":0.23738,"88":0.082,"89":0.12085,"90":0.06474,"91":0.4057,"92":5.2612,"93":18.87387,"94":3.71176,"95":0.00863,"96":0.00432,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 57 59 60 61 62 64 97"},F:{"69":0.01726,"77":0.01295,"78":1.44586,"79":0.28054,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.66555,"3.2":0.00081,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00967,"6.0-6.1":0.00725,"7.0-7.1":0.01209,"8.1-8.4":0.00161,"9.0-9.2":0.00564,"9.3":0.09669,"10.0-10.2":0.00886,"10.3":0.07977,"11.0-11.2":0.01289,"11.3-11.4":0.02256,"12.0-12.1":0.01531,"12.2-12.5":0.48184,"13.0-13.1":0.00967,"13.2":0.00725,"13.3":0.06285,"13.4-13.7":0.1539,"14.0-14.4":0.60511,"14.5-14.8":5.79492},E:{"4":0,"13":0.05179,"14":0.2158,"15":0.11653,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.06042,"10.1":0.00432,"11.1":0.03884,"12.1":0.03021,"13.1":0.12085,"14.1":0.997},B:{"12":0.00432,"13":0.00863,"14":0.00863,"15":0.03021,"16":0.01295,"17":0.01295,"18":0.1338,"84":0.0259,"89":0.0259,"90":0.00863,"91":0.01726,"92":0.49634,"93":2.41264,"94":0.57403,_:"79 80 81 83 85 86 87 88"},P:{"4":0.2673,"5.0-5.4":0.01028,"6.2-6.4":0.04092,"7.2-7.4":0.21589,"8.2":0.11252,"9.2":0.04112,"10.1":0.02056,"11.1-11.2":0.30842,"12.0":0.06168,"13.0":0.18505,"14.0":0.55515,"15.0":1.88135},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0015,"4.2-4.3":0.00524,"4.4":0,"4.4.3-4.4.4":0.07853},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01471,"10":0.00981,"11":0.19128,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":47.98946},S:{"2.5":0},R:{_:"0"},M:{"0":0.17052},Q:{"10.4":0.01137},O:{"0":0.13073},H:{"0":0.18834}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js deleted file mode 100644 index 202ce2d3e5a36a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.00464,"48":0.01391,"51":0.00464,"52":0.12523,"56":0.00464,"58":0.00464,"61":0.00464,"63":0.0371,"66":0.00464,"68":0.01391,"72":0.00464,"75":0.00464,"77":0.00464,"78":0.08812,"81":0.01855,"82":0.01391,"84":0.01391,"85":0.00928,"87":0.00928,"88":0.03247,"89":0.06957,"90":0.09276,"91":1.77172,"92":3.62228,"93":0.01391,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 49 50 53 54 55 57 59 60 62 64 65 67 69 70 71 73 74 76 79 80 83 86 94 3.5 3.6"},D:{"35":0.00464,"38":0.00928,"47":0.00928,"49":0.269,"53":0.01855,"59":0.00464,"60":0.00464,"62":0.00464,"63":0.00928,"65":0.01391,"66":0.01391,"67":0.00928,"68":0.00928,"69":0.02319,"70":0.00464,"71":0.00928,"72":0.00464,"73":0.00464,"74":0.01855,"75":0.12059,"76":0.01855,"77":0.11131,"78":0.01855,"79":0.12059,"80":0.03247,"81":0.15769,"83":0.02783,"84":0.01855,"85":0.04174,"86":0.06957,"87":0.20407,"88":0.06957,"89":0.09276,"90":0.07885,"91":0.49163,"92":5.65372,"93":20.36082,"94":3.56198,"95":0.00464,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 61 64 96 97"},F:{"32":0.00928,"36":0.00928,"46":0.00928,"77":0.0371,"78":1.45633,"79":0.47308,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00172,"15":0.38485,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00258,"6.0-6.1":0,"7.0-7.1":0.00344,"8.1-8.4":0.01033,"9.0-9.2":0.00172,"9.3":0.08782,"10.0-10.2":0.00689,"10.3":0.06888,"11.0-11.2":0.02066,"11.3-11.4":0.02238,"12.0-12.1":0.03186,"12.2-12.5":0.39862,"13.0-13.1":0.01464,"13.2":0.00947,"13.3":0.05941,"13.4-13.7":0.20146,"14.0-14.4":0.71373,"14.5-14.8":6.56394},E:{"4":0,"13":0.04638,"14":0.24118,"15":0.08348,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00464,"11.1":0.02783,"12.1":0.07885,"13.1":0.15305,"14.1":1.20588},B:{"16":0.01855,"17":0.01391,"18":0.05566,"84":0.00928,"86":0.00464,"88":0.02319,"89":0.03247,"90":0.00464,"91":0.02319,"92":0.43597,"93":1.8552,"94":0.42206,_:"12 13 14 15 79 80 81 83 85 87"},P:{"4":0.12449,"5.0-5.4":0.01047,"6.2-6.4":0.06039,"7.2-7.4":0.14652,"8.2":0.01037,"9.2":0.02075,"10.1":0.0415,"11.1-11.2":0.13487,"12.0":0.05187,"13.0":0.19712,"14.0":0.53948,"15.0":3.36135},I:{"0":0,"3":0,"4":0.00118,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00315,"4.4":0,"4.4.3-4.4.4":0.02129},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.40814,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":40.59978},S:{"2.5":0},R:{_:"0"},M:{"0":0.34847},Q:{"10.4":0},O:{"0":0.06433},H:{"0":0.45679}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js deleted file mode 100644 index 1cd469c60e2740..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00512,"49":0.00512,"52":0.00683,"56":0.00171,"57":0.00171,"72":0.00341,"78":0.06145,"84":0.00171,"88":0.00341,"89":0.04268,"90":0.00683,"91":0.21167,"92":0.38578,"93":0.00341,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 53 54 55 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"11":0.00341,"33":0.00171,"34":0.00854,"35":0.01024,"40":0.00341,"42":0.00683,"43":0.00341,"45":0.00683,"46":0.00341,"49":0.03414,"50":0.00512,"51":0.00341,"52":0.00171,"53":0.00341,"55":0.00683,"56":0.00683,"58":0.00683,"59":0.01195,"60":0.03926,"61":0.00512,"63":0.01024,"64":0.00341,"65":0.00341,"66":0.00683,"67":0.00854,"68":0.00683,"69":0.01707,"70":0.01707,"71":0.00683,"72":0.01024,"73":0.00341,"74":0.02902,"75":0.04097,"76":0.10754,"77":0.00683,"78":0.01195,"79":0.06145,"80":0.03414,"81":0.10925,"83":0.0973,"84":0.01366,"85":0.03073,"86":0.03414,"87":0.05633,"88":0.04438,"89":0.0973,"90":0.06657,"91":0.13997,"92":1.70359,"93":5.48801,"94":0.81253,"95":0.00171,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 36 37 38 39 41 44 47 48 54 57 62 96 97"},F:{"46":0.00341,"71":0.00171,"73":0.00171,"77":0.01366,"78":0.41992,"79":0.15534,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.14009,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00458,"6.0-6.1":0.00366,"7.0-7.1":0.05677,"8.1-8.4":0,"9.0-9.2":0.02197,"9.3":0.07874,"10.0-10.2":0.01557,"10.3":0.23806,"11.0-11.2":0.10347,"11.3-11.4":0.1877,"12.0-12.1":0.19686,"12.2-12.5":2.31743,"13.0-13.1":0.08424,"13.2":0.04029,"13.3":0.20785,"13.4-13.7":0.73707,"14.0-14.4":1.92921,"14.5-14.8":2.79081},E:{"4":0,"8":0.00341,"13":0.03414,"14":0.04097,"15":0.07511,_:"0 5 6 7 9 10 11 12 3.1 3.2 6.1 9.1","5.1":0.03243,"7.1":0.00341,"10.1":0.10071,"11.1":0.01195,"12.1":0.02902,"13.1":0.05121,"14.1":0.43187},B:{"12":0.03073,"13":0.01536,"14":0.01707,"15":0.01536,"16":0.10754,"17":0.03926,"18":0.15534,"80":0.00683,"84":0.01878,"85":0.00854,"88":0.00512,"89":0.02731,"90":0.00512,"91":0.0239,"92":0.36359,"93":1.13345,"94":0.22362,_:"79 81 83 86 87"},P:{"4":0.46032,"5.0-5.4":0.11252,"6.2-6.4":0.04092,"7.2-7.4":0.37849,"8.2":0.11252,"9.2":0.32734,"10.1":0.15137,"11.1-11.2":0.48078,"12.0":0.07161,"13.0":0.23528,"14.0":0.47055,"15.0":0.5933},I:{"0":0,"3":0,"4":0.00199,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00373,"4.2-4.3":0.00571,"4.4":0,"4.4.3-4.4.4":0.05491},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00683,"9":0.00512,"11":0.1707,_:"6 7 10 5.5"},J:{"7":0,"10":0.01658},N:{"11":0.15172,_:"10"},L:{"0":72.13837},S:{"2.5":0},R:{_:"0"},M:{"0":0.08292},Q:{"10.4":0},O:{"0":0.21559},H:{"0":0.98129}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js deleted file mode 100644 index ca04660a39497c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/HU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00482,"48":0.00963,"50":0.01927,"51":0.00963,"52":0.1686,"56":0.00963,"57":0.00482,"60":0.00482,"61":0.00482,"63":0.00482,"66":0.00963,"68":0.01445,"72":0.01445,"74":0.00963,"76":0.00963,"78":0.12043,"79":0.00482,"80":0.00482,"81":0.00963,"82":0.00963,"83":0.00482,"84":0.06744,"85":0.01445,"86":0.00963,"87":0.01445,"88":0.08671,"89":1.04047,"90":0.4528,"91":2.03277,"92":4.48463,"93":0.01445,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 53 54 55 58 59 62 64 65 67 69 70 71 73 75 77 94 3.5 3.6"},D:{"24":0.01927,"33":0.01927,"34":0.00963,"37":0.01927,"38":0.03372,"48":0.00482,"49":0.61658,"53":0.02409,"58":0.00482,"61":0.12043,"62":0.00482,"65":0.00482,"68":0.00963,"69":0.00963,"70":0.00963,"71":0.00482,"73":0.00963,"74":0.00963,"75":0.00963,"76":0.00963,"77":0.00963,"78":0.00963,"79":0.24567,"80":0.01445,"81":0.03372,"83":0.07707,"84":0.02409,"85":0.0289,"86":0.04335,"87":0.36609,"88":0.0578,"89":0.07226,"90":0.09152,"91":0.36128,"92":5.42394,"93":19.53775,"94":3.30446,"95":0.00963,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 35 36 39 40 41 42 43 44 45 46 47 50 51 52 54 55 56 57 59 60 63 64 66 67 72 96 97"},F:{"36":0.00963,"46":0.00482,"77":0.04335,"78":1.72449,"79":0.44316,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.73649,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00095,"6.0-6.1":0.00284,"7.0-7.1":0.01135,"8.1-8.4":0.02174,"9.0-9.2":0.00189,"9.3":0.04538,"10.0-10.2":0.00378,"10.3":0.04727,"11.0-11.2":0.02174,"11.3-11.4":0.01702,"12.0-12.1":0.02458,"12.2-12.5":0.33279,"13.0-13.1":0.01702,"13.2":0.00945,"13.3":0.05862,"13.4-13.7":0.22501,"14.0-14.4":0.66275,"14.5-14.8":7.20794},E:{"4":0,"12":0.00482,"13":0.08189,"14":0.21195,"15":0.14933,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02409,"12.1":0.02409,"13.1":0.13006,"14.1":1.06937},B:{"16":0.00482,"17":0.01445,"18":0.05299,"85":0.00482,"87":0.00963,"89":0.00963,"90":0.00482,"91":0.01445,"92":0.58767,"93":1.99424,"94":0.43835,_:"12 13 14 15 79 80 81 83 84 86 88"},P:{"4":0.27258,"5.0-5.4":0.01028,"6.2-6.4":0.04092,"7.2-7.4":0.21589,"8.2":0.11252,"9.2":0.0547,"10.1":0.01094,"11.1-11.2":0.07339,"12.0":0.04194,"13.0":0.12581,"14.0":0.36693,"15.0":2.34837},I:{"0":0,"3":0,"4":0,"2.1":0.00424,"2.2":0,"2.3":0,"4.1":0.00529,"4.2-4.3":0.01271,"4.4":0,"4.4.3-4.4.4":0.07624},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.26975,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":39.09479},S:{"2.5":0},R:{_:"0"},M:{"0":0.3369},Q:{"10.4":0},O:{"0":0.04146},H:{"0":0.46125}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js deleted file mode 100644 index f83d99635c6967..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ID.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.0035,"36":0.06658,"43":0.0035,"44":0.0035,"45":0.0035,"47":0.00701,"48":0.0035,"52":0.03504,"56":0.01051,"59":0.00701,"60":0.00701,"61":0.0035,"64":0.01051,"66":0.00701,"68":0.00701,"69":0.0035,"70":0.00701,"72":0.02102,"78":0.03854,"79":0.0035,"80":0.00701,"81":0.00701,"82":0.00701,"83":0.00701,"84":0.01402,"85":0.01051,"86":0.01051,"87":0.01051,"88":0.04205,"89":0.06307,"90":0.03504,"91":0.97411,"92":2.0183,"93":0.0876,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 46 49 50 51 53 54 55 57 58 62 63 65 67 71 73 74 75 76 77 94 3.5 3.6"},D:{"24":0.00701,"25":0.01051,"49":0.03504,"55":0.0035,"56":0.0035,"58":0.01051,"61":0.03504,"62":0.0035,"63":0.02803,"64":0.00701,"65":0.00701,"66":0.00701,"67":0.00701,"68":0.0035,"69":0.01051,"70":0.01752,"71":0.03854,"72":0.01051,"73":0.00701,"74":0.02453,"75":0.01402,"76":0.01402,"77":0.01402,"78":0.02102,"79":0.09811,"80":0.04906,"81":0.02803,"83":0.04555,"84":0.04205,"85":0.04906,"86":0.07008,"87":0.32237,"88":0.05606,"89":0.09811,"90":0.0841,"91":0.25229,"92":4.71638,"93":16.87176,"94":2.59296,"95":0.01051,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 57 59 60 96 97"},F:{"57":0.01051,"77":0.01051,"78":0.39245,"79":0.10862,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.27819,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0.00106,"6.0-6.1":0.01957,"7.0-7.1":0.00106,"8.1-8.4":0.00106,"9.0-9.2":0.00106,"9.3":0.01375,"10.0-10.2":0.00317,"10.3":0.02221,"11.0-11.2":0.01322,"11.3-11.4":0.01587,"12.0-12.1":0.02486,"12.2-12.5":0.4231,"13.0-13.1":0.02644,"13.2":0.01216,"13.3":0.08251,"13.4-13.7":0.17876,"14.0-14.4":0.80654,"14.5-14.8":3.36209},E:{"4":0,"12":0.00701,"13":0.02803,"14":0.14717,"15":0.03854,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.09461,"10.1":0.0035,"11.1":0.01402,"12.1":0.02803,"13.1":0.11914,"14.1":0.45202},B:{"12":0.00701,"14":0.0035,"17":0.0035,"18":0.02102,"84":0.00701,"85":0.00701,"89":0.01051,"90":0.00701,"91":0.02102,"92":0.28733,"93":1.26845,"94":0.28382,_:"13 15 16 79 80 81 83 86 87 88"},P:{"4":0.24885,"5.0-5.4":0.01028,"6.2-6.4":0.01037,"7.2-7.4":0.07258,"8.2":0.11252,"9.2":0.04147,"10.1":0.04147,"11.1-11.2":0.17627,"12.0":0.07258,"13.0":0.18664,"14.0":0.39401,"15.0":0.91244},I:{"0":0,"3":0.02835,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0124,"4.2-4.3":0.01417,"4.4":0,"4.4.3-4.4.4":0.0815},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01147,"9":0.00382,"10":0.00765,"11":0.06116,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":56.52309},S:{"2.5":0},R:{_:"0"},M:{"0":0.11693},Q:{"10.4":0},O:{"0":1.1433},H:{"0":1.1562}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js deleted file mode 100644 index 946d3a196688bf..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"11":0.03075,"38":0.03075,"43":0.02691,"44":0.11532,"45":0.02691,"48":0.00769,"52":0.01538,"55":0.00769,"70":0.00769,"78":0.18836,"79":0.00384,"80":0.00384,"83":0.00384,"84":0.02306,"85":0.00384,"86":0.00769,"87":0.08457,"88":0.03075,"89":0.07688,"90":0.14992,"91":0.4805,"92":0.94178,"93":0.01153,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 71 72 73 74 75 76 77 81 82 94 3.5 3.6"},D:{"34":0.00384,"38":0.01153,"43":0.00384,"47":0.02691,"48":0.30752,"49":0.1576,"51":0.00384,"52":0.0615,"53":0.00769,"59":0.00384,"61":0.01538,"63":0.00769,"65":0.02306,"67":0.01153,"68":0.00384,"69":0.01538,"70":0.00769,"71":0.01922,"72":0.01153,"74":0.0346,"75":0.01922,"76":0.04613,"77":0.02691,"78":0.01538,"79":0.0961,"80":0.02691,"81":0.11148,"83":0.01922,"84":0.02691,"85":0.03844,"86":0.07688,"87":0.37287,"88":0.0346,"89":0.0615,"90":0.14223,"91":1.0225,"92":4.40907,"93":13.67311,"94":2.53704,"95":0.00769,"96":0.00384,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 50 54 55 56 57 58 60 62 64 66 73 97"},F:{"77":0.00384,"78":0.39209,"79":0.08457,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.81119,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00287,"6.0-6.1":0.00573,"7.0-7.1":0.08599,"8.1-8.4":0.0172,"9.0-9.2":0.0086,"9.3":0.17772,"10.0-10.2":0.01147,"10.3":0.20351,"11.0-11.2":0.04586,"11.3-11.4":0.07453,"12.0-12.1":0.06306,"12.2-12.5":1.65104,"13.0-13.1":0.04873,"13.2":0.03153,"13.3":0.19205,"13.4-13.7":0.58761,"14.0-14.4":2.58835,"14.5-14.8":22.03683},E:{"4":0,"8":0.01153,"9":0.04613,"11":0.00384,"12":0.00769,"13":0.17298,"14":1.99119,"15":0.17682,_:"0 5 6 7 10 3.1 3.2 7.1 9.1","5.1":0.01153,"6.1":0.00384,"10.1":0.01153,"11.1":0.03844,"12.1":0.06535,"13.1":0.4805,"14.1":3.76328},B:{"12":0.01538,"13":0.01538,"16":0.00769,"17":0.01538,"18":0.09226,"80":0.00384,"84":0.00384,"85":0.00384,"86":0.00769,"88":0.02306,"89":0.01538,"90":0.01922,"91":0.02691,"92":0.45744,"93":2.19492,"94":0.55738,_:"14 15 79 81 83 87"},P:{"4":0.23393,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.0105,"8.2":0.10068,"9.2":0.0105,"10.1":0.03051,"11.1-11.2":0.18903,"12.0":0.07351,"13.0":0.16802,"14.0":0.45156,"15.0":3.02441},I:{"0":0,"3":0,"4":0.00741,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00445,"4.2-4.3":0.00445,"4.4":0,"4.4.3-4.4.4":0.06373},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.09718,"11":0.41407,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":28.93239},S:{"2.5":0},R:{_:"0"},M:{"0":0.38167},Q:{"10.4":0.01847},O:{"0":0.06772},H:{"0":0.16319}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js deleted file mode 100644 index e3c8c0efbb1315..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"24":0.00404,"25":0.01213,"26":0.03234,"27":0.00404,"36":0.00404,"52":0.03234,"66":0.00808,"78":0.0485,"79":0.1253,"80":0.02021,"81":0.00404,"86":0.00404,"87":0.00808,"88":0.02021,"89":0.02021,"90":0.02425,"91":0.46483,"92":1.00646,"93":0.01213,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 82 83 84 85 94 3.5 3.6"},D:{"31":0.04446,"32":0.00808,"34":0.00404,"38":0.03234,"49":0.12934,"51":0.00808,"53":0.02021,"56":0.00404,"57":0.00404,"58":0.00404,"61":0.14955,"62":0.00404,"63":0.00404,"65":0.01617,"66":0.00404,"67":0.00808,"68":0.02021,"69":0.00808,"70":0.00808,"71":0.02021,"72":0.02425,"73":0.02425,"74":0.01213,"75":0.02021,"76":0.01213,"77":0.00808,"78":0.01617,"79":0.14551,"80":0.2506,"81":0.02425,"83":0.02425,"84":0.02425,"85":0.02829,"86":0.03638,"87":0.1253,"88":0.03234,"89":0.14551,"90":0.09701,"91":0.31932,"92":5.76389,"93":20.23021,"94":3.96924,"95":0.02021,"96":0.00404,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 52 54 55 59 60 64 97"},F:{"28":0.00404,"77":0.02021,"78":0.5578,"79":0.13743,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00404},G:{"8":0.00258,"15":0.59621,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00516,"6.0-6.1":0.00387,"7.0-7.1":0.02968,"8.1-8.4":0.02323,"9.0-9.2":0.00258,"9.3":0.10195,"10.0-10.2":0.0142,"10.3":0.11098,"11.0-11.2":0.03742,"11.3-11.4":0.04388,"12.0-12.1":0.04388,"12.2-12.5":0.46458,"13.0-13.1":0.02839,"13.2":0.01678,"13.3":0.11227,"13.4-13.7":0.25681,"14.0-14.4":1.08402,"14.5-14.8":9.92655},E:{"4":0,"7":0.00808,"8":0.12934,"13":0.10105,"14":0.17381,"15":0.09297,_:"0 5 6 9 10 11 12 3.1 3.2 5.1 7.1 9.1 10.1","6.1":0.01213,"11.1":0.02829,"12.1":0.02425,"13.1":0.09701,"14.1":1.02263},B:{"16":0.00808,"17":0.00808,"18":0.05659,"84":0.00808,"85":0.00404,"86":0.02425,"87":0.00808,"88":0.00404,"89":0.01213,"90":0.00808,"91":0.06871,"92":0.39207,"93":1.68551,"94":0.3274,_:"12 13 14 15 79 80 81 83"},P:{"4":0.13273,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.03063,"8.2":0.02042,"9.2":0.12252,"10.1":0.04084,"11.1-11.2":0.33692,"12.0":0.11231,"13.0":0.30629,"14.0":0.76573,"15.0":4.65563},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00195,"4.2-4.3":0.00342,"4.4":0,"4.4.3-4.4.4":0.02442},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00824,"10":0.00824,"11":0.42006,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":39.8585},S:{"2.5":0},R:{_:"0"},M:{"0":0.1847},Q:{"10.4":0.01192},O:{"0":0.07745},H:{"0":0.25383}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js deleted file mode 100644 index e1072693088a7f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00983,"52":0.07376,"60":0.00492,"63":0.08359,"71":0.04425,"78":0.01967,"89":0.0295,"90":0.02459,"91":1.66195,"92":1.83896,"93":0.01475,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 64 65 66 67 68 69 70 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 94 3.5 3.6"},D:{"49":0.69821,"65":0.11801,"67":0.14259,"70":0.00492,"72":0.01967,"74":0.00983,"75":0.04917,"76":0.0295,"77":0.03442,"78":0.05409,"79":0.07376,"80":0.02459,"81":0.03442,"83":0.03934,"84":0.01475,"85":0.01475,"86":0.01475,"87":0.15243,"88":0.01967,"89":0.06884,"90":0.18685,"91":0.45236,"92":4.66623,"93":14.76575,"94":3.2403,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 71 73 95 96 97"},F:{"46":0.00983,"74":0.01475,"76":0.06884,"77":0.00983,"78":0.6933,"79":0.09342,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00286,"15":0.61499,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0143,"7.0-7.1":0.00572,"8.1-8.4":0.00572,"9.0-9.2":0,"9.3":0.82093,"10.0-10.2":0.00858,"10.3":0.58352,"11.0-11.2":0.06007,"11.3-11.4":0.02574,"12.0-12.1":0.04291,"12.2-12.5":1.9937,"13.0-13.1":0.02574,"13.2":0.00572,"13.3":0.1373,"13.4-13.7":0.33753,"14.0-14.4":2.54003,"14.5-14.8":21.36143},E:{"4":0,"11":0.01967,"12":0.00983,"13":0.19668,"14":0.90965,"15":0.45728,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00983,"10.1":0.0295,"11.1":0.41795,"12.1":0.10326,"13.1":0.80639,"14.1":6.58386},B:{"14":0.01475,"18":0.18685,"81":0.059,"85":0.00492,"86":0.00983,"87":0.00983,"89":0.00983,"90":0.00983,"91":0.0295,"92":1.25875,"93":6.00366,"94":1.19975,_:"12 13 15 16 17 79 80 83 84 88"},P:{"4":0.11086,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.0105,"8.2":0.10068,"9.2":0.02217,"10.1":0.06651,"11.1-11.2":0.02217,"12.0":0.03326,"13.0":0.08868,"14.0":0.2328,"15.0":2.79358},I:{"0":0,"3":0,"4":0.01395,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00116,"4.4":0,"4.4.3-4.4.4":0.02046},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.05218,"11":0.45919,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":18.44658},S:{"2.5":0},R:{_:"0"},M:{"0":0.4778},Q:{"10.4":0},O:{"0":0},H:{"0":0.10106}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js deleted file mode 100644 index c0afd925ce5bde..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"37":0.0023,"38":0.0023,"42":0.0046,"43":0.0023,"47":0.00919,"48":0.00689,"49":0.0023,"51":0.0023,"52":0.02758,"54":0.0023,"56":0.00689,"60":0.0023,"66":0.0046,"68":0.0023,"72":0.0046,"78":0.02987,"79":0.0046,"80":0.0046,"81":0.0046,"82":0.0023,"83":0.0046,"84":0.0046,"85":0.0046,"86":0.0046,"87":0.0046,"88":0.01609,"89":0.02068,"90":0.02528,"91":0.35619,"92":0.70549,"93":0.05745,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 39 40 41 44 45 46 50 53 55 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 94 3.5 3.6"},D:{"49":0.03677,"50":0.0023,"51":0.0046,"55":0.0046,"56":0.0046,"58":0.0046,"61":0.01838,"63":0.01838,"64":0.00919,"65":0.00689,"66":0.0046,"67":0.0046,"68":0.0023,"69":0.0046,"70":0.02528,"71":0.03907,"72":0.00689,"73":0.00689,"74":0.01379,"75":0.00689,"76":0.00689,"77":0.00919,"78":0.01379,"79":0.02987,"80":0.03907,"81":0.02068,"83":0.05056,"84":0.02987,"85":0.03217,"86":0.05056,"87":0.13328,"88":0.03677,"89":0.05515,"90":0.07354,"91":0.20912,"92":3.58028,"93":11.48081,"94":1.8361,"95":0.02068,"96":0.0046,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 52 53 54 57 59 60 62 97"},F:{"77":0.00689,"78":0.20452,"79":0.06434,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0006,"15":0.16062,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0004,"5.0-5.1":0.0004,"6.0-6.1":0.0006,"7.0-7.1":0.00696,"8.1-8.4":0,"9.0-9.2":0.00099,"9.3":0.00855,"10.0-10.2":0.00219,"10.3":0.01093,"11.0-11.2":0.06083,"11.3-11.4":0.00775,"12.0-12.1":0.01014,"12.2-12.5":0.1646,"13.0-13.1":0.00875,"13.2":0.00417,"13.3":0.01789,"13.4-13.7":0.05347,"14.0-14.4":0.25883,"14.5-14.8":1.20845},E:{"4":0,"13":0.00689,"14":0.04136,"15":0.03447,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00919,"11.1":0.0023,"12.1":0.00689,"13.1":0.02758,"14.1":0.2298},B:{"12":0.00689,"15":0.0023,"16":0.0046,"17":0.0023,"18":0.01609,"84":0.00689,"85":0.0046,"86":0.0023,"89":0.00919,"90":0.0023,"91":0.01149,"92":0.14937,"93":0.5768,"94":0.1149,_:"13 14 79 80 81 83 87 88"},P:{"4":0.31437,"5.0-5.4":0.01028,"6.2-6.4":0.02096,"7.2-7.4":0.13623,"8.2":0.11252,"9.2":0.05239,"10.1":0.01058,"11.1-11.2":0.08383,"12.0":0.04192,"13.0":0.1467,"14.0":0.28293,"15.0":0.46107},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00398,"4.2-4.3":0.00199,"4.4":0,"4.4.3-4.4.4":0.02485},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0023,"9":0.0023,"11":0.05515,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":68.86108},S:{"2.5":0.71629},R:{_:"0"},M:{"0":0.14634},Q:{"10.4":0},O:{"0":2.57247},H:{"0":2.78545}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js deleted file mode 100644 index bc95cd6f4fc4b1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IQ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00436,"29":0.00654,"41":0.00218,"43":0.00436,"45":0.00218,"47":0.00654,"52":0.03269,"53":0.00218,"56":0.00436,"69":0.00218,"72":0.00218,"78":0.01961,"82":0.00436,"84":0.00218,"85":0.00218,"87":0.00436,"88":0.0109,"89":0.01743,"90":0.01743,"91":0.23097,"92":0.46631,"93":0.03269,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 42 44 46 48 49 50 51 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 80 81 83 86 94 3.5 3.6"},D:{"11":0.00654,"22":0.00436,"26":0.01961,"31":0.00218,"33":0.00654,"34":0.00872,"38":0.03486,"39":0.00436,"40":0.00436,"41":0.00218,"42":0.00436,"43":0.06537,"47":0.00872,"49":0.04576,"50":0.00218,"52":0.00218,"53":0.00872,"54":0.00218,"55":0.00872,"56":0.00872,"57":0.00218,"58":0.00436,"59":0.00218,"60":0.01307,"61":0.00218,"63":0.01525,"64":0.00436,"65":0.00654,"66":0.00654,"67":0.00436,"68":0.0109,"69":0.02179,"70":0.01743,"71":0.00654,"72":0.0109,"73":0.00654,"74":0.00654,"75":0.0109,"76":0.00436,"77":0.00654,"78":0.00654,"79":0.16778,"80":0.02179,"81":0.02615,"83":0.02397,"84":0.01525,"85":0.01961,"86":0.06973,"87":0.10459,"88":0.06755,"89":0.05665,"90":0.06755,"91":0.19829,"92":2.71068,"93":9.1518,"94":1.47736,"95":0.01307,"96":0.01307,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 32 35 36 37 44 45 46 48 51 62 97"},F:{"28":0.00436,"70":0.00218,"74":0.00218,"77":0.0109,"78":0.46195,"79":0.11985,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.18109,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00861,"6.0-6.1":0.00344,"7.0-7.1":0.08608,"8.1-8.4":0,"9.0-9.2":0.00172,"9.3":0.07575,"10.0-10.2":0.0155,"10.3":0.10847,"11.0-11.2":0.04476,"11.3-11.4":0.05682,"12.0-12.1":0.05165,"12.2-12.5":1.20519,"13.0-13.1":0.03099,"13.2":0.01722,"13.3":0.14462,"13.4-13.7":0.36156,"14.0-14.4":1.73031,"14.5-14.8":12.08805},E:{"4":0,"12":0.00436,"13":0.03051,"14":0.23097,"15":0.12202,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.08062,"10.1":0.00436,"11.1":0.00218,"12.1":0.0109,"13.1":0.08716,"14.1":1.266},B:{"12":0.00654,"13":0.00436,"14":0.00218,"15":0.00436,"16":0.00654,"17":0.00654,"18":0.0828,"83":0.00218,"84":0.00872,"85":0.00436,"86":0.00218,"89":0.01961,"90":0.00654,"91":0.01961,"92":0.22008,"93":0.95658,"94":0.18522,_:"79 80 81 87 88"},P:{"4":0.23393,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.18307,"8.2":0.10068,"9.2":0.08137,"10.1":0.03051,"11.1-11.2":0.30512,"12.0":0.10171,"13.0":0.44751,"14.0":0.72212,"15.0":2.92916},I:{"0":0,"3":0,"4":0.00146,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00146,"4.2-4.3":0.00474,"4.4":0,"4.4.3-4.4.4":0.06272},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00941,"9":0.00941,"10":0.0894,"11":0.21645,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":55.46487},S:{"2.5":0},R:{_:"0"},M:{"0":0.10948},Q:{"10.4":0},O:{"0":1.12608},H:{"0":0.30354}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js deleted file mode 100644 index 6a1da617e40e62..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.00612,"30":0.00306,"31":0.00306,"32":0.00612,"33":0.00918,"34":0.00306,"35":0.00306,"37":0.00306,"38":0.01837,"39":0.00306,"40":0.00612,"41":0.00918,"42":0.00306,"43":0.00918,"44":0.00306,"45":0.00306,"46":0.00306,"47":0.01837,"48":0.00918,"49":0.00612,"50":0.00612,"52":0.10407,"53":0.00306,"54":0.00306,"56":0.01531,"60":0.00612,"61":0.00306,"62":0.00612,"64":0.00306,"65":0.00306,"66":0.00306,"67":0.00306,"68":0.01224,"69":0.00612,"70":0.00612,"71":0.00306,"72":0.03367,"73":0.00306,"74":0.00306,"75":0.00306,"76":0.00612,"77":0.00918,"78":0.14387,"79":0.01531,"80":0.03061,"81":0.02143,"82":0.01837,"83":0.01837,"84":0.02143,"85":0.01837,"86":0.01224,"87":0.01837,"88":0.04285,"89":0.09183,"90":0.07959,"91":1.61621,"92":2.84979,"93":0.03061,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 36 51 55 57 58 59 63 94 3.5 3.6"},D:{"11":0.00306,"31":0.00306,"34":0.00612,"35":0.03061,"38":0.01224,"39":0.00306,"41":0.00306,"42":0.00306,"48":0.00918,"49":0.09795,"51":0.00612,"53":0.00306,"55":0.00306,"56":0.00612,"57":0.00306,"58":0.00918,"59":0.00306,"60":0.00612,"61":0.03061,"62":0.00918,"63":0.02143,"64":0.00306,"65":0.00306,"66":0.00612,"67":0.00612,"68":0.00918,"69":0.00918,"70":0.00918,"71":0.02449,"72":0.00918,"73":0.00612,"74":0.01224,"75":0.01224,"76":0.00918,"77":0.01531,"78":0.02449,"79":0.0551,"80":0.03673,"81":0.03673,"83":0.08877,"84":0.16836,"85":0.14693,"86":0.20203,"87":0.52037,"88":0.04898,"89":0.06122,"90":0.09489,"91":0.50507,"92":3.17732,"93":11.65935,"94":1.96516,"95":0.00918,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 36 37 40 43 44 45 46 47 50 52 54 96 97"},F:{"64":0.00612,"65":0.00306,"68":0.00918,"70":0.00612,"71":0.01224,"72":0.00612,"76":0.00612,"77":0.03061,"78":0.46833,"79":0.12244,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 69 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.1394,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00122,"6.0-6.1":0.00122,"7.0-7.1":0.0077,"8.1-8.4":0.00041,"9.0-9.2":0.00243,"9.3":0.03039,"10.0-10.2":0.00892,"10.3":0.03971,"11.0-11.2":0.05835,"11.3-11.4":0.03363,"12.0-12.1":0.03971,"12.2-12.5":0.56085,"13.0-13.1":0.03201,"13.2":0.01743,"13.3":0.09158,"13.4-13.7":0.20262,"14.0-14.4":0.74685,"14.5-14.8":2.03794},E:{"4":0,"13":0.00612,"14":0.03061,"15":0.01531,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.17754,"11.1":0.00306,"12.1":0.00612,"13.1":0.01837,"14.1":0.09795},B:{"12":0.00612,"13":0.00612,"14":0.00918,"15":0.00612,"16":0.00918,"17":0.01224,"18":0.06734,"81":0.00612,"84":0.01531,"85":0.00918,"86":0.00918,"89":0.03061,"90":0.00612,"91":0.01531,"92":0.16223,"93":0.55404,"94":0.1102,_:"79 80 83 87 88"},P:{"4":1.03696,"5.0-5.4":0.10068,"6.2-6.4":0.08054,"7.2-7.4":0.63425,"8.2":0.10068,"9.2":0.42284,"10.1":0.18122,"11.1-11.2":0.89601,"12.0":0.45304,"13.0":1.19804,"14.0":2.04371,"15.0":2.77864},I:{"0":0,"3":0,"4":0.00057,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00313,"4.2-4.3":0.02562,"4.4":0,"4.4.3-4.4.4":0.0817},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00308,"8":0.03696,"9":0.01848,"10":0.01232,"11":2.84935,_:"6 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":54.47474},S:{"2.5":0},R:{_:"0"},M:{"0":0.92289},Q:{"10.4":0},O:{"0":0.13184},H:{"0":0.44015}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js deleted file mode 100644 index a00e62ba067c84..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.04495,"78":0.16697,"83":0.01927,"88":0.01927,"89":0.01927,"90":0.04495,"91":1.25871,"92":2.78715,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 93 94 3.5 3.6"},D:{"38":0.01284,"48":0.01284,"49":0.17339,"63":0.01927,"65":0.01284,"67":0.04495,"71":0.01284,"74":0.00642,"75":0.01284,"76":0.01927,"77":0.01284,"78":0.01927,"79":0.0578,"80":0.01284,"81":0.03853,"83":0.02569,"84":0.01284,"85":0.04495,"86":0.03853,"87":0.39816,"88":0.05138,"89":0.13486,"90":0.34037,"91":0.53303,"92":8.22658,"93":26.24671,"94":4.95778,"95":0.01284,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 68 69 70 72 73 96 97"},F:{"77":0.01927,"78":1.31009,"79":0.14771,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.89857,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.07116,"9.0-9.2":0.00331,"9.3":0.07281,"10.0-10.2":0.00165,"10.3":0.09433,"11.0-11.2":0.0331,"11.3-11.4":0.02482,"12.0-12.1":0.04137,"12.2-12.5":0.34255,"13.0-13.1":0.02151,"13.2":0.00827,"13.3":0.0695,"13.4-13.7":0.24657,"14.0-14.4":0.98297,"14.5-14.8":13.62754},E:{"4":0,"12":0.00642,"13":0.07064,"14":1.4,"15":0.48165,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01284,"10.1":0.02569,"11.1":0.36605,"12.1":0.34679,"13.1":1.16238,"14.1":7.03209},B:{"18":0.01927,"84":0.00642,"86":0.00642,"89":0.01927,"90":0.03853,"91":0.01284,"92":0.65504,"93":3.24311,"94":0.77706,_:"12 13 14 15 16 17 79 80 81 83 85 87 88"},P:{"4":0.04231,"5.0-5.4":0.01028,"6.2-6.4":0.04092,"7.2-7.4":0.21589,"8.2":0.11252,"9.2":0.0547,"10.1":0.01058,"11.1-11.2":0.06346,"12.0":0.11635,"13.0":0.05289,"14.0":0.25385,"15.0":2.65483},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00161,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00912},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19908,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":15.82472},S:{"2.5":0},R:{_:"0"},M:{"0":0.29331},Q:{"10.4":0},O:{"0":0.00715},H:{"0":0.07789}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js deleted file mode 100644 index 1aade94413224d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/IT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01521,"52":0.09633,"55":0.00507,"56":0.01014,"59":0.01521,"65":0.03549,"66":0.00507,"68":0.01014,"72":0.00507,"74":0.01014,"77":0.00507,"78":0.27378,"80":0.00507,"81":0.00507,"82":0.03042,"83":0.02028,"84":0.01014,"85":0.01014,"86":0.01521,"87":0.01014,"88":0.04563,"89":0.04563,"90":0.04563,"91":2.26629,"92":5.0193,"93":0.12168,"94":0.06591,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 57 58 60 61 62 63 64 67 69 70 71 73 75 76 79 3.5 3.6"},D:{"38":0.03549,"49":0.42588,"52":0.01521,"53":0.04056,"56":0.00507,"59":0.01014,"60":0.03042,"61":0.07098,"63":0.01521,"65":0.01521,"66":0.08619,"67":0.01521,"68":0.02535,"69":0.28392,"70":0.01521,"71":0.01014,"72":0.01014,"73":0.01521,"74":0.04563,"75":0.02028,"76":0.01014,"77":0.02028,"78":0.01521,"79":0.22815,"80":0.0507,"81":0.04056,"83":0.04563,"84":0.0507,"85":0.04563,"86":0.07098,"87":0.24843,"88":0.05577,"89":0.13689,"90":0.11661,"91":0.32448,"92":4.50723,"93":19.76286,"94":4.28922,"95":0.01014,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 54 55 57 58 62 64 96 97"},F:{"36":0.00507,"46":0.02028,"67":0.01014,"77":0.01521,"78":0.71994,"79":0.2535,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00234,"15":0.96163,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00468,"6.0-6.1":0.00351,"7.0-7.1":0.02223,"8.1-8.4":0.01053,"9.0-9.2":0.01287,"9.3":0.12635,"10.0-10.2":0.01521,"10.3":0.1205,"11.0-11.2":0.05966,"11.3-11.4":0.05147,"12.0-12.1":0.04212,"12.2-12.5":0.55803,"13.0-13.1":0.03159,"13.2":0.01755,"13.3":0.07955,"13.4-13.7":0.26205,"14.0-14.4":1.04703,"14.5-14.8":8.26509},E:{"4":0,"11":0.01014,"12":0.01014,"13":0.07098,"14":0.62868,"15":0.36504,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00507,"10.1":0.02028,"11.1":0.11154,"12.1":0.09633,"13.1":0.41574,"14.1":2.41839},B:{"17":0.01521,"18":0.16224,"84":0.01014,"85":0.00507,"89":0.02028,"90":0.01521,"91":0.03042,"92":0.507,"93":2.30178,"94":0.69966,_:"12 13 14 15 16 79 80 81 83 86 87 88"},P:{"4":0.44286,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.03063,"8.2":0.0103,"9.2":0.0412,"10.1":0.0309,"11.1-11.2":0.16478,"12.0":0.07209,"13.0":0.20598,"14.0":0.53555,"15.0":2.54387},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00143,"4.2-4.3":0.00643,"4.4":0,"4.4.3-4.4.4":0.04144},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01121,"9":0.0056,"11":0.51554,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":33.45637},S:{"2.5":0},R:{_:"0"},M:{"0":0.30073},Q:{"10.4":0.03451},O:{"0":0.17748},H:{"0":0.21003}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js deleted file mode 100644 index 0a92d2400935db..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"49":0.00971,"52":0.00971,"66":0.01942,"78":0.07283,"89":0.02428,"90":0.01457,"91":0.6263,"92":1.84005,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 93 94 3.5 3.6"},D:{"49":0.04855,"62":0.00971,"67":0.01942,"72":0.06312,"75":0.00486,"76":0.02428,"77":0.02428,"79":0.07768,"80":0.05826,"81":0.01457,"83":0.01942,"84":0.02913,"85":0.00486,"87":0.08254,"88":0.00971,"89":0.12623,"90":0.10681,"91":0.51463,"92":3.89857,"93":14.9971,"94":2.92757,"96":0.00486,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 68 69 70 71 73 74 78 86 95 97"},F:{"78":0.80593,"79":0.07283,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.89491,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00668,"6.0-6.1":0.40405,"7.0-7.1":0,"8.1-8.4":0.02671,"9.0-9.2":0.00668,"9.3":0.42074,"10.0-10.2":0.00668,"10.3":0.71793,"11.0-11.2":0.02004,"11.3-11.4":0.03005,"12.0-12.1":0.04007,"12.2-12.5":1.74642,"13.0-13.1":0.02004,"13.2":0.01002,"13.3":0.0935,"13.4-13.7":0.46749,"14.0-14.4":1.68965,"14.5-14.8":26.77396},E:{"4":0,"13":0.50492,"14":1.19433,"15":0.4855,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01942,"10.1":0.03399,"11.1":0.17964,"12.1":0.20391,"13.1":0.83506,"14.1":8.42343},B:{"16":0.06312,"17":0.02428,"18":0.06797,"80":0.00971,"86":0.00971,"88":0.00486,"89":0.00971,"91":0.06312,"92":0.86905,"93":5.3405,"94":1.14093,_:"12 13 14 15 79 81 83 84 85 87 90"},P:{"4":0.24854,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.28337,"8.2":0.0103,"9.2":0.07629,"10.1":0.0309,"11.1-11.2":0.02161,"12.0":0.01081,"13.0":0.15129,"14.0":0.19451,"15.0":2.8204},I:{"0":0,"3":0,"4":0.00119,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.01939},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.52933,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":14.59839},S:{"2.5":0},R:{_:"0"},M:{"0":0.22124},Q:{"10.4":0},O:{"0":0.01029},H:{"0":0.00974}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js deleted file mode 100644 index ba1dccd366207e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00453,"52":0.00906,"78":0.03623,"86":0.00453,"87":0.01359,"88":0.00453,"89":0.02265,"90":0.01359,"91":0.3442,"92":0.74276,"93":0.00906,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 94 3.5 3.6"},D:{"11":0.00906,"22":0.00453,"47":0.00906,"49":0.16757,"53":0.02717,"55":0.00453,"60":0.00453,"63":0.00906,"64":0.00906,"65":0.00906,"67":0.01359,"68":0.00906,"69":0.0317,"70":0.01812,"71":0.02265,"72":0.00906,"73":0.0317,"74":0.33062,"75":0.13587,"76":0.11775,"77":0.0317,"78":0.04529,"79":0.18116,"80":0.05888,"81":0.10417,"83":0.02265,"84":0.07699,"85":0.02265,"86":0.04076,"87":0.16304,"88":0.05888,"89":0.12228,"90":0.10417,"91":0.45743,"92":6.15491,"93":18.51455,"94":2.99367,"95":0.0317,"96":0.00906,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 58 59 61 62 66 97"},F:{"28":0.00906,"57":0.00453,"77":0.00906,"78":0.5933,"79":0.14946,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01394,"15":1.02679,"3.2":0.01045,"4.0-4.1":0,"4.2-4.3":0.00116,"5.0-5.1":0.01278,"6.0-6.1":0,"7.0-7.1":0.39027,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.21488,"10.0-10.2":0.00581,"10.3":0.13241,"11.0-11.2":0.13822,"11.3-11.4":0.02788,"12.0-12.1":0.09176,"12.2-12.5":0.69692,"13.0-13.1":0.02323,"13.2":0.00581,"13.3":0.09873,"13.4-13.7":0.20675,"14.0-14.4":0.92574,"14.5-14.8":7.58593},E:{"4":0,"13":0.02717,"14":0.19022,"15":0.14946,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.01359,"10.1":0.01359,"11.1":0.01812,"12.1":0.03623,"13.1":0.12228,"14.1":1.4991},B:{"12":0.00906,"13":0.01359,"14":0.00453,"15":0.0317,"16":0.02717,"17":0.01359,"18":0.12228,"80":0.00906,"84":0.01812,"85":0.01359,"87":0.02717,"89":0.04076,"90":0.01812,"91":0.07246,"92":0.86957,"93":4.3569,"94":0.80616,_:"79 81 83 86 88"},P:{"4":0.49045,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.28337,"8.2":0.0103,"9.2":0.07629,"10.1":0.0309,"11.1-11.2":0.39236,"12.0":0.20708,"13.0":0.26157,"14.0":0.79562,"15.0":3.01898},I:{"0":0,"3":0,"4":0.00113,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0015,"4.2-4.3":0.00489,"4.4":0,"4.4.3-4.4.4":0.04172},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.08328,"9":0.01041,"10":0.01041,"11":0.24463,_:"6 7 5.5"},J:{"7":0,"10":0.01094},N:{"11":0.15172,_:"10"},L:{"0":40.10894},S:{"2.5":0},R:{_:"0"},M:{"0":0.10942},Q:{"10.4":0},O:{"0":0.49786},H:{"0":0.2797}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js deleted file mode 100644 index d8b9d47f864723..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00964,"52":0.00964,"63":0.03214,"66":0.00321,"69":0.00643,"78":0.01607,"81":0.00321,"84":0.00643,"85":0.00643,"86":0.00321,"87":0.00643,"88":0.00964,"89":0.02893,"90":0.01286,"91":0.38568,"92":0.7585,"93":0.00643,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 64 65 67 68 70 71 72 73 74 75 76 77 79 80 82 83 94 3.5 3.6"},D:{"11":0.00964,"34":0.00321,"38":0.00964,"43":0.00321,"49":0.22819,"51":0.00643,"53":0.00643,"54":0.00321,"58":0.01286,"60":0.00321,"61":0.17998,"63":0.00964,"64":0.00321,"65":0.00964,"67":0.00321,"68":0.00321,"69":0.00643,"70":0.00964,"71":0.00643,"73":0.00321,"74":0.00964,"75":0.01607,"76":0.00321,"77":0.00643,"78":0.00964,"79":0.07714,"80":0.01607,"81":0.01286,"83":0.05464,"84":0.03214,"85":0.02893,"86":0.04178,"87":1.88019,"88":0.08356,"89":0.04821,"90":0.06749,"91":0.33104,"92":3.82466,"93":14.84225,"94":2.53585,"95":0.01286,"96":0.01286,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 47 48 50 52 55 56 57 59 62 66 72 97"},F:{"46":0.00321,"74":0.00321,"76":0.00643,"77":0.05142,"78":0.60102,"79":0.14463,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.5923,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00766,"6.0-6.1":0.00596,"7.0-7.1":0.01787,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06978,"10.0-10.2":0.00596,"10.3":0.06723,"11.0-11.2":0.01617,"11.3-11.4":0.03234,"12.0-12.1":0.03404,"12.2-12.5":0.64251,"13.0-13.1":0.03574,"13.2":0.01021,"13.3":0.05617,"13.4-13.7":0.20509,"14.0-14.4":0.97015,"14.5-14.8":5.74173},E:{"4":0,"12":0.00643,"13":0.01607,"14":0.16391,"15":0.09963,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00964,"11.1":0.01286,"12.1":0.01286,"13.1":0.11249,"14.1":0.77136},B:{"12":0.00321,"16":0.00321,"17":0.00964,"18":0.02893,"84":0.00643,"85":0.00643,"86":0.00643,"89":0.01607,"90":0.00643,"91":0.01607,"92":0.3214,"93":1.4238,"94":0.33426,_:"13 14 15 79 80 81 83 87 88"},P:{"4":0.13352,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.11298,"8.2":0.0103,"9.2":0.0719,"10.1":0.01027,"11.1-11.2":0.25677,"12.0":0.0719,"13.0":0.21569,"14.0":0.51355,"15.0":1.69471},I:{"0":0,"3":0,"4":0.21365,"2.1":0,"2.2":0,"2.3":0,"4.1":0.32048,"4.2-4.3":0.85462,"4.4":0,"4.4.3-4.4.4":9.29398},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00675,"9":0.00337,"11":0.12486,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":46.31085},S:{"2.5":0},R:{_:"0"},M:{"0":0.12217},Q:{"10.4":0},O:{"0":0.33256},H:{"0":0.26345}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js deleted file mode 100644 index d8fcbeed4c7c06..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/JP.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.02784,"52":0.05568,"56":0.03341,"57":0.00557,"60":0.01114,"63":0.01114,"66":0.00557,"67":0.01114,"68":0.00557,"72":0.01114,"77":0.00557,"78":0.11136,"79":0.01114,"80":0.00557,"81":0.0167,"84":0.0167,"85":0.01114,"88":0.02227,"89":0.03898,"90":0.03341,"91":1.09133,"92":2.08243,"93":0.01114,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 58 59 61 62 64 65 69 70 71 73 74 75 76 82 83 86 87 94 3.5 3.6"},D:{"45":0.00557,"47":0.00557,"48":0.00557,"49":0.25613,"52":0.00557,"56":0.00557,"57":0.00557,"61":0.37306,"62":0.02227,"63":0.04454,"64":0.0167,"65":0.0167,"67":0.0167,"68":0.01114,"69":0.03898,"70":0.02784,"71":0.02227,"72":0.04454,"73":0.0167,"74":0.03341,"75":0.03341,"76":0.0167,"77":0.0167,"78":0.0167,"79":0.32294,"80":0.07795,"81":0.11136,"83":0.07238,"84":0.06125,"85":0.05568,"86":0.09466,"87":0.2784,"88":0.06682,"89":0.1392,"90":0.11693,"91":0.45101,"92":5.79629,"93":16.95456,"94":1.86528,"95":0.0167,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 50 51 53 54 55 58 59 60 66 96 97"},F:{"77":0.00557,"78":0.21158,"79":0.05568,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00273,"15":0.74567,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00819,"7.0-7.1":0.03278,"8.1-8.4":0.03278,"9.0-9.2":0.20212,"9.3":0.1393,"10.0-10.2":0.03824,"10.3":0.14476,"11.0-11.2":0.11745,"11.3-11.4":0.0956,"12.0-12.1":0.12018,"12.2-12.5":0.7484,"13.0-13.1":0.05463,"13.2":0.03005,"13.3":0.18846,"13.4-13.7":0.69104,"14.0-14.4":2.1332,"14.5-14.8":21.77998},E:{"4":0,"11":0.0167,"12":0.0167,"13":0.07238,"14":0.41203,"15":0.20045,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.0167,"10.1":0.02227,"11.1":0.06125,"12.1":0.10022,"13.1":0.30624,"14.1":2.73946},B:{"14":0.00557,"16":0.01114,"17":0.02227,"18":0.05568,"84":0.0167,"85":0.01114,"86":0.0167,"87":0.00557,"88":0.00557,"89":0.0167,"90":0.01114,"91":0.04454,"92":1.28621,"93":6.36979,"94":1.00781,_:"12 13 15 79 80 81 83"},P:{"4":0.49045,"5.0-5.4":0.02034,"6.2-6.4":0.02034,"7.2-7.4":0.28337,"8.2":0.0103,"9.2":0.07629,"10.1":0.0309,"11.1-11.2":0.01097,"12.0":0.01097,"13.0":0.04387,"14.0":0.12065,"15.0":0.89938},I:{"0":0,"3":0,"4":0.00538,"2.1":0,"2.2":0.0359,"2.3":0.05923,"4.1":0.01256,"4.2-4.3":0.12206,"4.4":0,"4.4.3-4.4.4":0.12385},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00712,"10":0.00712,"11":3.10384,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":21.3164},S:{"2.5":0},R:{_:"0"},M:{"0":0.30581},Q:{"10.4":0.05762},O:{"0":0.32797},H:{"0":0.12588}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js deleted file mode 100644 index aca71762507eab..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.00539,"34":0.00539,"37":0.0027,"40":0.0027,"41":0.00539,"43":0.00539,"47":0.01618,"48":0.0027,"51":0.0027,"52":0.13755,"56":0.00539,"72":0.00809,"73":0.01079,"78":0.05394,"81":0.00539,"83":0.0027,"84":0.00539,"85":0.00809,"86":0.0027,"87":0.00539,"88":0.02697,"89":0.05933,"90":0.04046,"91":0.71201,"92":1.38356,"93":0.0944,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 38 39 42 44 45 46 49 50 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 74 75 76 77 79 80 82 94 3.5 3.6"},D:{"11":0.00539,"20":0.00539,"38":0.00809,"39":0.00539,"43":0.0027,"47":0.01618,"49":0.08091,"50":0.00539,"51":0.0027,"54":0.0027,"55":0.00539,"56":0.00809,"57":0.00539,"58":0.0027,"61":0.05394,"62":0.0027,"63":0.00809,"64":0.00539,"65":0.00809,"66":0.00539,"67":0.01079,"68":0.01618,"69":0.00539,"70":0.00809,"71":0.00539,"72":0.00809,"73":0.01079,"74":0.01349,"75":0.01618,"76":0.00809,"77":0.00809,"78":0.02158,"79":0.05124,"80":0.02427,"81":0.03236,"83":0.02158,"84":0.03236,"85":0.01888,"86":0.05664,"87":0.10249,"88":0.03776,"89":0.04855,"90":0.07282,"91":0.26431,"92":2.89928,"93":10.12993,"94":1.57235,"95":0.01349,"96":0.0027,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 44 45 46 48 52 53 59 60 97"},F:{"28":0.00809,"29":0.00539,"36":0.00539,"46":0.0027,"64":0.00809,"65":0.04315,"77":0.02158,"78":0.53131,"79":0.15912,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.10167,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00019,"5.0-5.1":0.0103,"6.0-6.1":0.00057,"7.0-7.1":0.02175,"8.1-8.4":0.00267,"9.0-9.2":0.0021,"9.3":0.03033,"10.0-10.2":0.00343,"10.3":0.02308,"11.0-11.2":0.07916,"11.3-11.4":0.00553,"12.0-12.1":0.00763,"12.2-12.5":0.17282,"13.0-13.1":0.00668,"13.2":0.0042,"13.3":0.03586,"13.4-13.7":0.0454,"14.0-14.4":0.20334,"14.5-14.8":1.14964},E:{"4":0,"12":0.0027,"13":0.01349,"14":0.05664,"15":0.03236,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00809,"10.1":0.00809,"11.1":0.00539,"12.1":0.05124,"13.1":0.04046,"14.1":0.29667},B:{"12":0.01349,"13":0.00809,"14":0.00539,"15":0.00809,"16":0.01079,"17":0.00809,"18":0.05394,"84":0.00809,"85":0.00539,"89":0.01618,"90":0.00809,"91":0.01888,"92":0.22115,"93":0.91159,"94":0.17261,_:"79 80 81 83 86 87 88"},P:{"4":0.23447,"5.0-5.4":0.02034,"6.2-6.4":0.01029,"7.2-7.4":0.05329,"8.2":0.0103,"9.2":0.01066,"10.1":0.03088,"11.1-11.2":0.04263,"12.0":0.01066,"13.0":0.07461,"14.0":0.18118,"15.0":0.43697},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00072,"4.2-4.3":0.0041,"4.4":0,"4.4.3-4.4.4":0.0463},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01026,"11":0.2001,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.01461},N:{"11":0.15172,_:"10"},L:{"0":39.59659},S:{"2.5":0},R:{_:"0"},M:{"0":0.13147},Q:{"10.4":0},O:{"0":0.3725},H:{"0":33.00508}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js deleted file mode 100644 index f3eff084d17483..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.07088,"55":0.0109,"78":0.03271,"79":0.0109,"88":0.0109,"89":0.00545,"90":0.00545,"91":0.22898,"92":0.39254,"93":0.02726,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 80 81 82 83 84 85 86 87 94 3.5 3.6"},D:{"24":0.00545,"25":0.02181,"42":0.05997,"48":0.00545,"49":0.16901,"56":0.00545,"59":0.05997,"60":0.00545,"63":0.0109,"64":0.00545,"67":0.02181,"71":0.01636,"73":0.01636,"74":0.0109,"75":0.0109,"79":0.08178,"80":0.03816,"81":0.0109,"83":0.02726,"84":0.0109,"85":0.02181,"86":0.09814,"87":0.28896,"88":0.1472,"89":0.04362,"90":0.06542,"91":0.4089,"92":30.14411,"93":11.91807,"94":3.06948,"95":0.0109,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 50 51 52 53 54 55 57 58 61 62 65 66 68 69 70 72 76 77 78 96 97"},F:{"39":0.0109,"42":0.0109,"77":0.01636,"78":1.61379,"79":0.39254,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.22203,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00189,"6.0-6.1":0.00519,"7.0-7.1":0.00189,"8.1-8.4":0.00094,"9.0-9.2":0.00896,"9.3":0.02027,"10.0-10.2":0.00236,"10.3":0.01744,"11.0-11.2":0.00754,"11.3-11.4":0.01367,"12.0-12.1":0.01226,"12.2-12.5":0.3116,"13.0-13.1":0.01509,"13.2":0.00566,"13.3":0.07354,"13.4-13.7":0.12587,"14.0-14.4":0.8952,"14.5-14.8":2.97034},E:{"4":0,"13":0.01636,"14":0.19082,"15":0.05452,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.88322,"11.1":0.00545,"12.1":0.02181,"13.1":0.04907,"14.1":0.5343},B:{"18":0.01636,"86":0.0109,"92":0.07633,"93":0.41435,"94":0.29441,_:"12 13 14 15 16 17 79 80 81 83 84 85 87 88 89 90 91"},P:{"4":0.27602,"5.0-5.4":0.02045,"6.2-6.4":0.06134,"7.2-7.4":0.19424,"8.2":0.01022,"9.2":0.07156,"10.1":0.05111,"11.1-11.2":0.16357,"12.0":0.11245,"13.0":0.21468,"14.0":0.38847,"15.0":0.74627},I:{"0":0,"3":0,"4":0.00149,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0006,"4.2-4.3":0.00089,"4.4":0,"4.4.3-4.4.4":0.01521},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0189,"11":0.2646,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":37.66767},S:{"2.5":0},R:{_:"0"},M:{"0":0.03638},Q:{"10.4":0},O:{"0":0.60488},H:{"0":0.35738}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js deleted file mode 100644 index 8ac1310239224e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.01382,"5":0.00921,"15":0.00461,"17":0.01382,"38":0.00461,"41":0.01382,"43":0.00921,"44":0.00921,"47":0.01842,"48":0.01842,"50":0.00921,"51":0.00921,"52":0.01842,"53":0.01382,"54":0.00921,"55":0.00921,"56":0.08289,"57":0.01842,"58":0.00921,"59":0.00461,"60":0.00461,"61":0.03684,"63":0.00461,"67":0.00461,"68":0.00461,"69":0.01382,"72":0.14736,"75":0.00461,"77":0.01382,"78":0.06447,"79":0.02303,"80":0.02303,"81":0.2763,"82":0.02303,"83":0.00921,"84":0.01842,"85":0.00921,"86":0.00461,"87":0.02763,"88":0.16578,"89":0.08289,"90":0.03224,"91":0.67233,"92":1.35848,"93":0.06447,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 45 46 49 62 64 65 66 70 71 73 74 76 94 3.5 3.6"},D:{"23":0.00921,"24":0.02303,"25":0.00921,"34":0.00461,"37":0.00921,"38":0.01842,"40":0.00461,"43":0.05526,"45":0.00461,"47":0.01842,"48":0.00921,"49":0.23486,"53":0.03684,"55":0.00921,"56":0.02763,"57":0.00461,"58":0.00461,"60":0.00461,"63":0.00921,"65":0.00921,"66":0.00461,"67":0.00921,"68":0.00921,"69":0.01382,"70":0.01382,"71":0.00461,"72":0.01842,"73":0.01382,"74":0.01842,"75":0.01382,"76":0.00921,"77":0.00921,"78":0.05526,"79":0.15657,"80":0.07368,"81":0.05066,"83":0.23486,"84":0.29012,"85":0.40524,"86":0.33156,"87":6.06479,"88":0.05526,"89":0.10131,"90":0.14276,"91":0.40064,"92":5.58126,"93":17.18126,"94":2.27487,"95":0.05526,"96":0.01842,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 35 36 39 41 42 44 46 50 51 52 54 59 61 62 64 97"},F:{"29":0.00461,"36":0.00461,"40":0.00461,"46":0.00921,"52":0.01382,"68":0.01382,"69":0.01382,"70":0.04605,"71":0.01382,"77":0.00921,"78":0.52037,"79":0.14736,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 60 62 63 64 65 66 67 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.78414,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00653,"6.0-6.1":0.02396,"7.0-7.1":0.05881,"8.1-8.4":0.05881,"9.0-9.2":0.02832,"9.3":0.17861,"10.0-10.2":0.05228,"10.3":0.20475,"11.0-11.2":0.08059,"11.3-11.4":0.1394,"12.0-12.1":0.16119,"12.2-12.5":2.08452,"13.0-13.1":0.13505,"13.2":0.06099,"13.3":0.29405,"13.4-13.7":0.90394,"14.0-14.4":3.26073,"14.5-14.8":13.26293},E:{"4":0,"10":0.00921,"11":0.00921,"12":0.01382,"13":0.0921,"14":0.44669,"15":0.19802,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01382,"11.1":0.01842,"12.1":0.05987,"13.1":0.2717,"14.1":2.22882},B:{"12":0.00921,"13":0.00461,"14":0.01842,"15":0.00921,"16":0.01382,"17":0.00921,"18":0.10131,"83":0.01382,"84":0.01842,"85":0.01382,"86":0.02763,"87":0.00921,"89":0.01842,"91":0.01842,"92":0.33617,"93":1.22493,"94":0.25328,_:"79 80 81 88 90"},P:{"4":0.24511,"5.0-5.4":0.02131,"6.2-6.4":0.03096,"7.2-7.4":0.01066,"8.2":0.02131,"9.2":0.01066,"10.1":0.01066,"11.1-11.2":0.02131,"12.0":0.05328,"13.0":0.08525,"14.0":0.22379,"15.0":1.02305},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0006,"4.2-4.3":0.0036,"4.4":0,"4.4.3-4.4.4":0.02817},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01698,"8":0.0679,"9":0.02829,"10":0.02263,"11":0.72994,_:"7 5.5"},J:{"7":0,"10":0.01079},N:{"11":0.01911,_:"10"},L:{"0":29.65978},S:{"2.5":0},R:{_:"0"},M:{"0":0.21041},Q:{"10.4":0.04856},O:{"0":0.62582},H:{"0":0.52098}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js deleted file mode 100644 index 4c5710a0797afe..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"20":0.05845,"54":0.02407,"56":0.03438,"59":0.01719,"71":0.00688,"72":0.00688,"78":0.00688,"85":0.01719,"88":0.00688,"91":0.88357,"92":4.65849,"93":0.12721,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 57 58 60 61 62 63 64 65 66 67 68 69 70 73 74 75 76 77 79 80 81 82 83 84 86 87 89 90 94 3.5 3.6"},D:{"55":0.34036,"77":0.18565,"78":0.13408,"80":0.00688,"81":0.17878,"83":0.01719,"84":0.02407,"85":0.33005,"86":0.06876,"88":0.02407,"89":0.04126,"90":0.05157,"91":0.81481,"92":3.46894,"93":9.38918,"94":1.75682,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 87 95 96 97"},F:{"77":0.02407,"78":2.24845,"79":0.07564,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0433,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0.00968,"12.0-12.1":0.02893,"12.2-12.5":0.10117,"13.0-13.1":0,"13.2":0,"13.3":0.02405,"13.4-13.7":0.06745,"14.0-14.4":0.60184,"14.5-14.8":0.10117},E:{"4":0,"13":0.12721,"14":0.00688,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"12":0.03438,"13":0.05845,"15":0.04126,"16":0.05157,"17":0.03438,"18":0.21316,"81":0.02407,"84":0.17878,"85":0.07564,"89":0.10314,"90":0.05845,"91":0.16159,"92":1.39927,"93":4.81664,"94":0.38849,_:"14 79 80 83 86 87 88"},P:{"4":0.45757,"5.0-5.4":0.05084,"6.2-6.4":0.01029,"7.2-7.4":2.01333,"8.2":0.0103,"9.2":0.0305,"10.1":0.03088,"11.1-11.2":0.95582,"12.0":0.55926,"13.0":0.91515,"14.0":8.05331,"15.0":0.46774},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00633,"4.4":0,"4.4.3-4.4.4":0.05272},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.01719,"11":0.05845,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":50.75486},S:{"2.5":0},R:{_:"0"},M:{"0":0.05249},Q:{"10.4":0},O:{"0":1.33844},H:{"0":0.17392}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js deleted file mode 100644 index ea8cff9e634541..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"33":0.00495,"52":0.08418,"61":0.33426,"63":0.00495,"68":0.00495,"72":0.01733,"78":0.04209,"82":0.00743,"83":0.0099,"87":0.00495,"88":0.02971,"89":0.07676,"90":0.0099,"91":0.47044,"92":1.38656,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 62 64 65 66 67 69 70 71 73 74 75 76 77 79 80 81 84 85 86 93 94 3.5 3.6"},D:{"33":0.0099,"37":0.02228,"38":0.02971,"39":0.03219,"41":0.01486,"43":0.0099,"49":0.01486,"51":0.00495,"52":0.02476,"54":0.00743,"55":0.02476,"56":0.02228,"61":0.00743,"65":0.00743,"66":0.00495,"69":0.02724,"70":0.00495,"71":0.0099,"72":0.01486,"74":0.01981,"77":0.00495,"78":0.00743,"79":0.04952,"80":0.00743,"81":0.03962,"83":0.01733,"84":0.01733,"85":0.09161,"86":0.01733,"87":1.12906,"88":0.0718,"89":0.10399,"90":0.11885,"91":0.59672,"92":1.75053,"93":5.19465,"94":0.76261,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 40 42 44 45 46 47 48 50 53 57 58 59 60 62 63 64 67 68 73 75 76 95 96 97"},F:{"34":0.0099,"40":0.02228,"46":0.00495,"64":0.00743,"65":0.00743,"77":0.0619,"78":0.30207,"79":0.0718,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00402,"15":0.0791,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.01162,"8.1-8.4":0.00402,"9.0-9.2":0,"9.3":0.00402,"10.0-10.2":0.00179,"10.3":0.00581,"11.0-11.2":0.2601,"11.3-11.4":0.16759,"12.0-12.1":0.00402,"12.2-12.5":0.66947,"13.0-13.1":0.19485,"13.2":0.00402,"13.3":0.03486,"13.4-13.7":0.13631,"14.0-14.4":0.76735,"14.5-14.8":2.1197},E:{"4":0.00495,"5":0.00495,"12":0.00495,"14":0.0099,_:"0 6 7 8 9 10 11 13 15 3.1 3.2 5.1 6.1 7.1 10.1 11.1","9.1":0.00495,"12.1":0.02476,"13.1":0.06933,"14.1":0.21294},B:{"12":0.07923,"13":0.00495,"14":0.04457,"15":0.0099,"17":0.01486,"18":0.02971,"80":0.01238,"83":0.00495,"85":0.01733,"89":0.0099,"90":0.00495,"91":0.02971,"92":0.36892,"93":1.33209,"94":0.09161,_:"16 79 81 84 86 87 88"},P:{"4":0.90583,"5.0-5.4":0.04026,"6.2-6.4":0.06039,"7.2-7.4":0.61395,"8.2":0.02131,"9.2":0.2013,"10.1":0.01016,"11.1-11.2":0.75486,"12.0":0.1711,"13.0":0.12078,"14.0":0.40259,"15.0":0.39253},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00432,"4.2-4.3":0.00432,"4.4":0,"4.4.3-4.4.4":0.2321},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.052,"11":0.04457,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":74.56787},S:{"2.5":0},R:{_:"0"},M:{"0":0.06771},Q:{"10.4":0.00752},O:{"0":0.31597},H:{"0":0.58403}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js deleted file mode 100644 index 8c6c23af204af9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00448,"53":0.01344,"58":0.00448,"60":0.00896,"78":0.01344,"86":0.00896,"88":0.00896,"89":0.00448,"90":0.12093,"91":0.48373,"92":0.73904,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 54 55 56 57 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 87 93 94 3.5 3.6"},D:{"42":0.00896,"49":0.05823,"50":0.00448,"58":0.00448,"65":0.04479,"69":0.0224,"74":0.30905,"75":0.04927,"76":0.06719,"77":0.01792,"78":0.00896,"79":0.26426,"80":0.00896,"81":0.03583,"84":0.04479,"85":0.0224,"86":0.04927,"87":0.09854,"89":0.05823,"90":0.05375,"91":0.23739,"92":6.32435,"93":16.39314,"94":2.27981,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 51 52 53 54 55 56 57 59 60 61 62 63 64 66 67 68 70 71 72 73 83 88 95 96 97"},F:{"56":0.03135,"77":0.00896,"78":0.53748,"79":0.26426,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00448},G:{"8":0,"15":2.26135,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00314,"8.1-8.4":0.00314,"9.0-9.2":0,"9.3":0.02195,"10.0-10.2":0.00627,"10.3":0.39205,"11.0-11.2":0.01882,"11.3-11.4":0.00314,"12.0-12.1":0.01568,"12.2-12.5":1.00365,"13.0-13.1":0.00314,"13.2":0,"13.3":0.01568,"13.4-13.7":0.28541,"14.0-14.4":0.97385,"14.5-14.8":10.67789},E:{"4":0,"13":0.01344,"14":0.4703,"15":0.3404,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00896,"11.1":0.03583,"12.1":0.06271,"13.1":0.1702,"14.1":3.1577},B:{"12":0.0224,"13":0.0224,"14":0.00448,"16":0.00896,"17":0.01344,"18":0.14781,"80":0.00448,"84":0.01344,"85":0.00896,"86":0.00896,"87":0.00896,"89":0.03135,"91":0.0224,"92":2.25294,"93":4.92242,"94":0.75247,_:"15 79 81 83 88 90"},P:{"4":0.03154,"5.0-5.4":0.01051,"6.2-6.4":0.01023,"7.2-7.4":0.17875,"8.2":0.0101,"9.2":0.03154,"10.1":0.01051,"11.1-11.2":0.1472,"12.0":0.06309,"13.0":0.0736,"14.0":0.36801,"15.0":2.60763},I:{"0":0,"3":0,"4":0.00166,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00119,"4.4":0,"4.4.3-4.4.4":0.00819},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.03135,"11":1.01225,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":35.96787},S:{"2.5":0},R:{_:"0"},M:{"0":0.9993},Q:{"10.4":0},O:{"0":0.00552},H:{"0":0.21953}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js deleted file mode 100644 index 2cad997dbaf97f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KP.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.41426,"88":5.81023,"92":0.41426,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 89 90 91 93 94 3.5 3.6"},D:{"55":4.98172,"56":1.24277,"58":0.82852,"69":0.41426,"70":0.41426,"81":6.22449,"91":4.14789,"92":1.66234,"93":1.24277,"94":0.41426,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 57 59 60 61 62 63 64 65 66 67 68 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 95 96 97"},F:{"74":3.73363,"78":15.3541,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":2.08664,"11.3-11.4":0,"12.0-12.1":2.4349,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":1.39129},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"92":0.41426,"93":1.24277,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 94"},P:{"4":0.42201,"5.0-5.4":0.05084,"6.2-6.4":0.84402,"7.2-7.4":2.01333,"8.2":0.0103,"9.2":0.0305,"10.1":0.03088,"11.1-11.2":0.95582,"12.0":0.55926,"13.0":0.91515,"14.0":0.42201,"15.0":0.42201},I:{"0":0,"3":0.619,"4":1.54893,"2.1":0,"2.2":1.54893,"2.3":0.92994,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":1.66234,"11":0.82852,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":27.87304},S:{"2.5":0},R:{_:"0"},M:{"0":3.80278},Q:{"10.4":1.26603},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js deleted file mode 100644 index db9b06c363d8eb..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.01907,"78":0.04291,"79":0.00477,"80":0.00954,"81":0.00954,"82":0.00954,"83":0.00477,"89":0.00477,"90":0.00954,"91":0.21456,"92":0.42435,"93":0.0143,"94":0.00477,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 84 85 86 87 88 3.5 3.6"},D:{"42":0.03338,"48":0.00477,"49":0.04291,"56":0.00954,"61":0.00954,"63":0.00954,"64":0.01907,"67":0.00477,"68":0.06198,"69":0.00477,"70":0.02861,"71":0.00477,"72":0.02861,"73":0.00477,"74":0.00954,"75":0.0143,"76":0.00954,"77":0.14781,"78":0.0143,"79":0.09536,"80":0.05245,"81":0.02861,"83":0.06675,"84":0.10966,"85":0.09059,"86":0.11443,"87":0.19072,"88":0.05722,"89":0.08106,"90":0.1049,"91":0.21933,"92":5.91709,"93":21.8279,"94":2.5032,"95":0.00477,"96":0.00477,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 50 51 52 53 54 55 57 58 59 60 62 65 66 97"},F:{"72":0.00477,"78":0.18595,"79":0.09536,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.73175,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00368,"6.0-6.1":0.00123,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.08212,"9.3":0.01961,"10.0-10.2":0.00123,"10.3":0.00981,"11.0-11.2":0.00981,"11.3-11.4":0.0049,"12.0-12.1":0.02084,"12.2-12.5":0.14218,"13.0-13.1":0.12135,"13.2":0.00981,"13.3":0.05393,"13.4-13.7":0.16425,"14.0-14.4":0.95851,"14.5-14.8":9.91602},E:{"4":0,"8":0.00477,"13":0.0143,"14":0.12397,"15":0.12397,_:"0 5 6 7 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00954,"12.1":0.0143,"13.1":0.06675,"14.1":0.78672},B:{"16":0.00477,"17":0.0143,"18":0.04768,"84":0.00954,"85":0.00954,"86":0.01907,"87":0.0143,"88":0.00477,"89":0.02861,"90":0.01907,"91":0.04768,"92":1.00605,"93":4.98256,"94":0.79149,_:"12 13 14 15 79 80 81 83"},P:{"4":0.42201,"5.0-5.4":0.05084,"6.2-6.4":0.84402,"7.2-7.4":2.01333,"8.2":0.02023,"9.2":0.0607,"10.1":0.04046,"11.1-11.2":0.10116,"12.0":0.16186,"13.0":0.45522,"14.0":1.42635,"15.0":10.81395},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.02092},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00987,"9":0.02468,"11":2.20641,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":21.65794},S:{"2.5":0},R:{_:"0"},M:{"0":0.17262},Q:{"10.4":0.01569},O:{"0":0.10985},H:{"0":0.18324}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js deleted file mode 100644 index 0239451b0b956b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00588,"47":0.00294,"52":0.11764,"78":0.07058,"84":0.03823,"88":0.00588,"89":0.00882,"90":0.01176,"91":0.24116,"92":0.60879,"93":0.01471,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"38":0.02647,"40":0.03235,"47":0.00882,"49":0.06176,"50":0.00294,"56":0.01176,"57":0.00588,"63":0.00882,"64":0.00294,"65":0.00882,"66":0.00294,"67":0.00588,"69":0.01765,"70":0.00882,"71":0.01471,"73":0.00588,"74":0.00882,"75":0.00588,"76":0.01176,"77":0.00588,"78":0.02059,"79":0.03823,"80":0.01471,"81":0.01176,"83":0.02353,"84":0.02941,"85":0.02353,"86":0.03235,"87":0.14411,"88":0.05,"89":0.04706,"90":0.06176,"91":0.2294,"92":3.16746,"93":12.83747,"94":2.36456,"95":0.01471,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 43 44 45 46 48 51 52 53 54 55 58 59 60 61 62 68 72 96 97"},F:{"28":0.01176,"46":0.01176,"74":0.00294,"77":0.00882,"78":0.57644,"79":0.09411,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.78841,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.03241,"8.1-8.4":0.00884,"9.0-9.2":0.00589,"9.3":0.15321,"10.0-10.2":0.0383,"10.3":0.12375,"11.0-11.2":0.16205,"11.3-11.4":0.06777,"12.0-12.1":0.10901,"12.2-12.5":1.26986,"13.0-13.1":0.15615,"13.2":0.10017,"13.3":0.39775,"13.4-13.7":0.89862,"14.0-14.4":5.19729,"14.5-14.8":18.94772},E:{"4":0,"12":0.00882,"13":0.09705,"14":0.74407,"15":0.23528,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00294,"10.1":0.00588,"11.1":0.01765,"12.1":0.12352,"13.1":0.26175,"14.1":2.11752},B:{"13":0.00294,"14":0.00588,"15":0.00588,"16":0.00588,"17":0.00882,"18":0.08529,"80":0.00588,"83":0.01471,"84":0.01176,"85":0.01176,"86":0.00294,"87":0.00588,"89":0.01471,"90":0.00882,"91":0.05882,"92":0.38233,"93":1.77636,"94":0.42939,_:"12 79 81 88"},P:{"4":0.16337,"5.0-5.4":0.05084,"6.2-6.4":0.84402,"7.2-7.4":0.14295,"8.2":0.01021,"9.2":0.08169,"10.1":0.04084,"11.1-11.2":0.21443,"12.0":0.15316,"13.0":0.33696,"14.0":0.72498,"15.0":2.5221},I:{"0":0,"3":0,"4":0.00728,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00243,"4.2-4.3":0.01941,"4.4":0,"4.4.3-4.4.4":0.04853},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36468,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":32.99958},S:{"2.5":0},R:{_:"0"},M:{"0":0.07765},Q:{"10.4":0.00706},O:{"0":2.98596},H:{"0":1.06928}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js deleted file mode 100644 index c189654d97acd4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.0103,"78":0.04637,"89":0.00515,"90":0.0103,"91":1.00464,"92":1.5559,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 93 94 3.5 3.6"},D:{"38":0.00515,"49":0.08243,"67":0.05152,"73":0.00515,"74":0.06698,"75":0.01546,"78":0.0103,"79":0.08758,"80":0.01546,"81":0.0103,"83":0.05152,"85":0.16486,"86":0.05667,"87":0.16486,"88":0.03606,"89":0.55642,"90":0.06698,"91":0.44307,"92":6.6873,"93":18.71206,"94":2.99846,"95":0.04122,"96":0.03091,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 76 77 84 97"},F:{"72":0.03091,"78":0.85008,"79":0.03606,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00733,"15":1.33205,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00489,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.25175,"10.0-10.2":0,"10.3":1.28317,"11.0-11.2":0.00244,"11.3-11.4":0.2493,"12.0-12.1":0.03177,"12.2-12.5":0.92388,"13.0-13.1":0.00489,"13.2":0.00244,"13.3":0.15398,"13.4-13.7":0.26641,"14.0-14.4":0.87011,"14.5-14.8":19.04466},E:{"4":0,"13":0.27306,"14":0.72128,"15":0.56157,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.0103,"10.1":0.02576,"11.1":0.07213,"12.1":0.28336,"13.1":0.86554,"14.1":4.85318},B:{"15":0.02576,"16":0.01546,"18":0.1185,"80":0.01546,"84":0.0103,"89":0.02061,"90":0.0103,"91":0.0103,"92":1.1695,"93":6.29059,"94":0.96342,_:"12 13 14 17 79 81 83 85 86 87 88"},P:{"4":0.11575,"5.0-5.4":0.02082,"6.2-6.4":0.03096,"7.2-7.4":0.06314,"8.2":0.02131,"9.2":0.01052,"10.1":0.08326,"11.1-11.2":0.13679,"12.0":0.03122,"13.0":0.0947,"14.0":0.44195,"15.0":4.62993},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.0103,"11":0.60794,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":18.26216},S:{"2.5":0},R:{_:"0"},M:{"0":0.2521},Q:{"10.4":0},O:{"0":0.19392},H:{"0":0.0459}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js deleted file mode 100644 index 658b6b809e6eb1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/KZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00928,"40":0.00464,"50":0.00464,"51":0.00928,"52":0.25995,"55":0.00928,"56":0.02321,"60":0.00464,"68":0.00464,"78":0.06035,"79":0.00928,"80":0.00464,"81":0.03249,"82":0.03249,"84":0.01393,"85":0.00464,"88":0.01857,"89":0.03249,"90":0.01857,"91":0.43171,"92":0.99339,"93":0.00464,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 53 54 57 58 59 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 83 86 87 94 3.5","3.6":0.00464},D:{"23":0.00464,"24":0.00928,"25":0.02785,"38":0.00928,"45":0.00464,"46":0.00464,"49":0.1764,"51":0.01393,"55":0.01393,"57":0.01393,"59":0.01393,"61":0.00464,"63":0.00464,"66":0.00928,"67":0.02785,"68":0.00928,"69":0.00928,"70":0.02321,"71":0.06035,"72":0.00928,"73":0.03714,"74":0.03249,"75":0.02321,"76":0.03249,"77":0.00928,"78":0.01393,"79":0.50598,"80":0.07427,"81":0.01857,"83":0.06963,"84":0.07427,"85":0.09748,"86":0.15783,"87":0.21353,"88":0.16247,"89":0.06035,"90":0.19961,"91":0.48277,"92":4.89731,"93":18.06202,"94":4.57701,"95":0.03249,"96":0.00928,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 47 48 50 52 53 54 56 58 60 62 64 65 97"},F:{"36":0.00928,"38":0.01393,"46":0.05106,"68":0.00928,"69":0.00464,"71":0.0557,"73":0.00464,"74":0.02321,"76":0.04642,"77":0.06963,"78":2.20031,"79":0.96554,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 72 75 9.5-9.6 10.5 10.6 11.1","10.0-10.1":0,"11.5":0.00464,"11.6":0.45027,"12.1":0.00928},G:{"8":0,"15":0.42127,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.0075,"7.0-7.1":0.01179,"8.1-8.4":0.00536,"9.0-9.2":0.00322,"9.3":0.02251,"10.0-10.2":0.01179,"10.3":0.05467,"11.0-11.2":0.07075,"11.3-11.4":0.13399,"12.0-12.1":0.06217,"12.2-12.5":0.73428,"13.0-13.1":0.04824,"13.2":0.03752,"13.3":0.16293,"13.4-13.7":0.43949,"14.0-14.4":1.82551,"14.5-14.8":6.66101},E:{"4":0,"12":0.00928,"13":0.03249,"14":0.34815,"15":0.11605,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.58953,"11.1":0.00928,"12.1":0.02785,"13.1":0.18104,"14.1":0.8402},B:{"12":0.00464,"13":0.01393,"16":0.00464,"17":0.00464,"18":0.06499,"80":0.00464,"84":0.00928,"88":0.00464,"89":0.01393,"90":0.00928,"91":0.01393,"92":0.25995,"93":1.1605,"94":0.26459,_:"14 15 79 81 83 85 86 87"},P:{"4":0.10292,"5.0-5.4":0.02034,"6.2-6.4":0.01029,"7.2-7.4":0.1235,"8.2":0.0103,"9.2":0.06175,"10.1":0.03088,"11.1-11.2":0.2573,"12.0":0.10292,"13.0":0.29847,"14.0":0.68956,"15.0":1.71875},I:{"0":0,"3":0,"4":0.0013,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00043,"4.2-4.3":0.0126,"4.4":0,"4.4.3-4.4.4":0.01781},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03084,"9":0.01028,"10":0.02056,"11":0.51394,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":37.92031},S:{"2.5":0},R:{_:"0"},M:{"0":0.09107},Q:{"10.4":0.02679},O:{"0":0.61606},H:{"0":0.29923}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js deleted file mode 100644 index 31431bb7f701ab..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.00902,"31":0.00301,"38":0.00601,"39":0.00601,"43":0.00902,"45":0.00301,"47":0.00601,"48":0.03308,"50":0.00601,"51":0.00301,"52":0.04511,"53":0.00601,"54":0.00601,"55":0.00301,"56":0.00902,"57":0.00301,"59":0.00601,"60":0.00301,"61":0.00601,"62":0.00601,"63":0.00601,"66":0.00601,"71":0.66154,"72":0.00601,"78":0.03608,"81":0.02406,"82":0.00301,"83":0.00601,"84":0.01804,"85":0.00601,"88":0.01504,"89":0.03308,"90":0.01504,"91":0.62546,"92":1.10056,"93":0.04811,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 32 33 34 35 36 37 40 41 42 44 46 49 58 64 65 67 68 69 70 73 74 75 76 77 79 80 86 87 94 3.5 3.6"},D:{"11":0.00601,"24":0.00601,"31":0.00301,"33":0.00301,"37":0.00601,"38":0.00902,"41":0.01504,"43":0.0421,"44":0.00301,"46":0.00301,"47":0.00301,"49":0.24056,"53":0.01203,"55":0.00301,"56":0.04511,"57":0.00301,"58":0.00301,"60":0.00301,"62":0.00601,"63":0.01504,"64":0.00301,"65":0.00902,"66":0.01203,"67":0.00902,"68":0.01504,"69":0.00902,"70":0.03608,"71":0.07518,"72":0.00902,"73":0.01203,"74":0.01804,"75":0.02406,"76":0.00902,"77":0.00902,"78":0.05713,"79":0.05713,"80":0.0421,"81":0.01804,"83":0.03909,"84":0.01804,"85":0.01804,"86":0.04811,"87":0.35182,"88":0.04811,"89":0.04511,"90":0.07217,"91":0.57434,"92":3.68658,"93":12.65346,"94":1.88238,"95":0.02706,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 32 34 35 36 39 40 42 45 48 50 51 52 54 59 61 96 97"},F:{"77":0.01504,"78":0.2556,"79":0.08119,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.34007,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.01256,"7.0-7.1":0.01256,"8.1-8.4":0.00523,"9.0-9.2":0.00523,"9.3":0.06697,"10.0-10.2":0.03558,"10.3":0.07638,"11.0-11.2":0.05441,"11.3-11.4":0.09103,"12.0-12.1":0.11929,"12.2-12.5":1.94728,"13.0-13.1":0.1015,"13.2":0.03662,"13.3":0.2145,"13.4-13.7":0.57655,"14.0-14.4":1.5685,"14.5-14.8":5.19728},E:{"4":0,"10":0.00601,"11":0.00601,"12":0.00601,"13":0.05413,"14":0.2586,"15":0.10525,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01804,"11.1":0.05413,"12.1":0.02406,"13.1":0.12629,"14.1":0.64651},B:{"12":0.01203,"13":0.00902,"14":0.00902,"15":0.02406,"16":0.01504,"17":0.00902,"18":0.06315,"80":0.00601,"81":0.00601,"83":0.00601,"84":0.01203,"85":0.01504,"86":0.01203,"87":0.00301,"89":0.03007,"90":0.00902,"91":0.01504,"92":0.48112,"93":1.4614,"94":0.27664,_:"79 88"},P:{"4":0.74232,"5.0-5.4":0.02045,"6.2-6.4":0.04067,"7.2-7.4":0.35591,"8.2":0.02034,"9.2":0.20337,"10.1":0.05084,"11.1-11.2":0.35591,"12.0":0.13219,"13.0":0.31523,"14.0":0.75249,"15.0":1.45413},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00862,"4.4":0,"4.4.3-4.4.4":0.06131},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01028,"11":0.69937,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":54.58988},S:{"2.5":0},R:{_:"0"},M:{"0":0.15385},Q:{"10.4":0.22378},O:{"0":1.2028},H:{"0":0.35751}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js deleted file mode 100644 index 3aeee4c6a79ae0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LB.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"12":0.00378,"47":0.00756,"52":0.06806,"58":0.00378,"66":0.00378,"68":0.03025,"74":0.01134,"78":0.0605,"79":0.00756,"83":0.00756,"85":0.00756,"88":0.01512,"89":0.01512,"90":0.03025,"91":0.62008,"92":1.53131,"93":0.01512,_:"2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 59 60 61 62 63 64 65 67 69 70 71 72 73 75 76 77 80 81 82 84 86 87 94 3.5 3.6"},D:{"11":0.00756,"33":0.00378,"34":0.00378,"38":0.01134,"43":0.00378,"48":0.00756,"49":0.0794,"56":0.00378,"58":0.00756,"61":0.00756,"62":0.04537,"63":0.00756,"65":0.10587,"66":0.01134,"67":0.00756,"68":0.01134,"69":0.00756,"70":0.00756,"72":0.01512,"73":0.01134,"74":0.01891,"75":0.03025,"76":0.02269,"77":0.00378,"78":0.01512,"79":0.10965,"80":0.04159,"81":0.01891,"83":0.03025,"84":0.04159,"85":0.04537,"86":0.05293,"87":0.1399,"88":0.06428,"89":0.06806,"90":0.13234,"91":0.48397,"92":4.23472,"93":18.03537,"94":3.08152,"95":0.00378,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 36 37 39 40 41 42 44 45 46 47 50 51 52 53 54 55 57 59 60 64 71 96 97"},F:{"77":0.01512,"78":0.44616,"79":0.15124,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00124,"15":0.54508,"3.2":0.00247,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00247,"6.0-6.1":0,"7.0-7.1":0.03955,"8.1-8.4":0.06674,"9.0-9.2":0.00989,"9.3":0.14461,"10.0-10.2":0.01607,"10.3":0.1372,"11.0-11.2":0.23731,"11.3-11.4":0.0927,"12.0-12.1":0.06798,"12.2-12.5":1.18781,"13.0-13.1":0.03461,"13.2":0.0136,"13.3":0.09394,"13.4-13.7":0.37328,"14.0-14.4":1.25208,"14.5-14.8":8.03654},E:{"4":0,"11":0.00378,"12":0.01891,"13":0.04537,"14":0.39322,"15":0.18149,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.02647,"9.1":0.00756,"10.1":0.01134,"11.1":0.05293,"12.1":0.32139,"13.1":0.32139,"14.1":1.48971},B:{"12":0.01134,"13":0.00756,"14":0.00756,"15":0.00756,"16":0.01134,"17":0.01512,"18":0.05293,"84":0.01134,"85":0.00756,"86":0.00378,"89":0.03781,"90":0.00756,"91":0.04537,"92":0.34029,"93":1.79976,"94":0.40457,_:"79 80 81 83 87 88"},P:{"4":0.32579,"5.0-5.4":0.02045,"6.2-6.4":0.04067,"7.2-7.4":0.35634,"8.2":0.01018,"9.2":0.11199,"10.1":0.03054,"11.1-11.2":0.35634,"12.0":0.13235,"13.0":0.47851,"14.0":1.07919,"15.0":4.64255},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00163,"4.2-4.3":0.00578,"4.4":0,"4.4.3-4.4.4":0.03612},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00378,"11":0.3176,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":42.70439},S:{"2.5":0},R:{_:"0"},M:{"0":0.15545},Q:{"10.4":0},O:{"0":0.34199},H:{"0":0.26491}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js deleted file mode 100644 index 0987fc444e824e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"56":0.01975,"78":0.09085,"87":0.1343,"89":0.0158,"90":0.0079,"91":0.31205,"92":0.70705,"93":0.0079,"94":0.0079,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 88 3.5 3.6"},D:{"34":0.0474,"49":0.10665,"65":0.01185,"69":0.00395,"71":0.00395,"74":0.1106,"75":0.0316,"76":0.19355,"77":0.01975,"79":0.1422,"80":0.0316,"81":0.1975,"83":0.0079,"84":0.0237,"85":0.0316,"86":0.0158,"87":0.079,"88":0.03555,"89":0.0553,"90":0.09085,"91":0.2607,"92":4.45165,"93":14.9784,"94":2.87955,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 67 68 70 72 73 78 95 96 97"},F:{"77":0.01185,"78":0.54905,"79":0.0948,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.65931,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02756,"6.0-6.1":0,"7.0-7.1":0.00221,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.06395,"10.0-10.2":0.01103,"10.3":0.10254,"11.0-11.2":0.00992,"11.3-11.4":0.01654,"12.0-12.1":0.00551,"12.2-12.5":0.6549,"13.0-13.1":0.00992,"13.2":0.01433,"13.3":0.04079,"13.4-13.7":0.23484,"14.0-14.4":1.09812,"14.5-14.8":8.07163},E:{"4":0,"12":0.0079,"14":0.1422,"15":0.2528,_:"0 5 6 7 8 9 10 11 13 3.1 3.2 6.1 7.1 9.1","5.1":0.0158,"10.1":0.00395,"11.1":0.01185,"12.1":0.1264,"13.1":0.1738,"14.1":1.5326},B:{"12":0.00395,"13":0.0079,"15":0.0158,"16":0.01185,"17":0.01185,"18":0.20935,"84":0.02765,"85":0.0158,"86":0.01185,"89":0.0474,"90":0.0158,"91":0.05925,"92":0.6715,"93":3.5866,"94":0.74655,_:"14 79 80 81 83 87 88"},P:{"4":0.52492,"5.0-5.4":0.01051,"6.2-6.4":0.01023,"7.2-7.4":0.72438,"8.2":0.0101,"9.2":0.05249,"10.1":0.05249,"11.1-11.2":0.36744,"12.0":0.13648,"13.0":0.49342,"14.0":0.86086,"15.0":5.51162},I:{"0":0,"3":0,"4":0.00034,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00068,"4.2-4.3":0.00271,"4.4":0,"4.4.3-4.4.4":0.02048},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.4029,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":44.8757},S:{"2.5":0},R:{_:"0"},M:{"0":0.23595},Q:{"10.4":0},O:{"0":0.5324},H:{"0":0.18329}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js deleted file mode 100644 index 27323581e369a0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.01383,"54":0.39404,"77":0.6913,"78":0.1037,"82":0.00691,"84":0.26269,"86":0.01383,"88":0.02074,"89":0.11061,"90":0.04148,"91":2.41955,"92":5.8484,"93":0.06222,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 83 85 87 94 3.5 3.6"},D:{"49":1.83195,"53":0.43552,"64":0.01383,"65":0.00691,"75":0.06913,"79":0.08296,"81":0.15209,"84":0.08296,"85":0.02074,"86":0.03457,"87":0.04839,"88":0.03457,"89":1.5416,"90":0.28343,"91":1.13373,"92":6.38761,"93":20.38644,"94":3.42194,"96":0.01383,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 66 67 68 69 70 71 72 73 74 76 77 78 80 83 95 97"},F:{"73":0.02074,"77":0.00691,"78":1.05078,"79":0.48391,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.18563,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.09378,"10.0-10.2":0,"10.3":0.02344,"11.0-11.2":0.0201,"11.3-11.4":0.01005,"12.0-12.1":0.06364,"12.2-12.5":1.12535,"13.0-13.1":0.53588,"13.2":0.00335,"13.3":0.05359,"13.4-13.7":0.27296,"14.0-14.4":1.0885,"14.5-14.8":12.26996},E:{"4":0,"13":0.11061,"14":0.67747,"15":0.50465,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.09678,"10.1":0.02074,"11.1":0.39404,"12.1":0.11061,"13.1":0.50465,"14.1":5.71014},B:{"15":0.00691,"17":0.49082,"18":0.01383,"80":0.04148,"83":0.04148,"89":0.08296,"90":0.01383,"91":0.04839,"92":3.21455,"93":6.87844,"94":1.5969,_:"12 13 14 16 79 81 84 85 86 87 88"},P:{"4":0.03218,"5.0-5.4":0.01005,"6.2-6.4":0.08043,"7.2-7.4":0.74402,"8.2":0.02011,"9.2":0.13071,"10.1":0.07038,"11.1-11.2":0.01073,"12.0":0.16087,"13.0":0.13946,"14.0":0.05364,"15.0":2.86434},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.36639,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":10.57202},S:{"2.5":0},R:{_:"0"},M:{"0":0.34586},Q:{"10.4":0},O:{"0":0.01544},H:{"0":0.16079}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js deleted file mode 100644 index 04bea6c430f9f9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"31":0.00718,"47":0.00718,"52":0.01436,"72":0.00359,"76":0.00359,"77":0.00359,"78":0.02513,"81":0.00359,"84":0.00718,"88":0.01795,"89":0.04667,"90":0.02513,"91":0.56722,"92":1.08418,"93":0.04308,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 79 80 82 83 85 86 87 94 3.5 3.6"},D:{"33":0.00359,"38":0.00359,"49":0.02872,"62":0.00718,"63":0.02154,"64":0.00718,"65":0.00718,"66":0.00718,"67":0.00359,"68":0.00718,"69":0.00359,"70":0.01077,"71":0.00359,"72":0.00359,"73":0.00359,"74":0.01795,"75":0.01077,"76":0.00718,"77":0.01077,"78":0.01077,"79":0.04308,"80":0.02154,"81":0.07539,"83":0.03231,"84":0.02154,"85":0.01795,"86":0.05744,"87":0.42362,"88":0.06462,"89":0.03231,"90":0.06821,"91":0.40926,"92":4.46237,"93":15.85703,"94":2.40171,"95":0.02154,"96":0.00359,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 97"},F:{"72":0.00359,"77":0.02872,"78":1.0411,"79":0.30874,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00086,"15":0.25048,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00215,"5.0-5.1":0.00043,"6.0-6.1":0.00129,"7.0-7.1":0.00601,"8.1-8.4":0.00988,"9.0-9.2":0.00301,"9.3":0.04082,"10.0-10.2":0.00988,"10.3":0.04039,"11.0-11.2":0.05242,"11.3-11.4":0.03308,"12.0-12.1":0.05371,"12.2-12.5":0.53533,"13.0-13.1":0.03695,"13.2":0.02234,"13.3":0.07862,"13.4-13.7":0.19678,"14.0-14.4":0.73941,"14.5-14.8":2.18086},E:{"4":0,"13":0.01436,"14":0.08975,"15":0.0359,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00718,"11.1":0.00718,"12.1":0.01077,"13.1":0.04308,"14.1":0.30874},B:{"12":0.01077,"13":0.00718,"14":0.00718,"15":0.00718,"16":0.01077,"17":0.01077,"18":0.0359,"84":0.01077,"85":0.00718,"88":0.00359,"89":0.02154,"90":0.01077,"91":0.05026,"92":1.03751,"93":4.51263,"94":0.91904,_:"79 80 81 83 86 87"},P:{"4":0.92533,"5.0-5.4":0.01017,"6.2-6.4":0.05084,"7.2-7.4":1.05752,"8.2":0.03051,"9.2":0.15253,"10.1":0.06101,"11.1-11.2":0.51859,"12.0":0.15253,"13.0":0.40674,"14.0":0.7423,"15.0":0.95584},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00141,"4.2-4.3":0.00528,"4.4":0,"4.4.3-4.4.4":0.05741},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06821,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":51.04395},S:{"2.5":0},R:{_:"0"},M:{"0":0.1282},Q:{"10.4":0},O:{"0":2.14094},H:{"0":2.03297}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js deleted file mode 100644 index 80860316227c58..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"24":0.00592,"29":0.00592,"30":0.03256,"34":0.00888,"43":0.00888,"44":0.00592,"45":0.00592,"46":0.0148,"47":0.00888,"48":0.00592,"49":0.00592,"60":0.00592,"63":0.00592,"66":0.00592,"68":0.00296,"72":0.01776,"78":0.01184,"81":0.01184,"85":0.01184,"88":0.02072,"89":0.01776,"90":0.0148,"91":0.43216,"92":0.7844,"93":0.0444,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 31 32 33 35 36 37 38 39 40 41 42 50 51 52 53 54 55 56 57 58 59 61 62 64 65 67 69 70 71 73 74 75 76 77 79 80 82 83 84 86 87 94 3.5 3.6"},D:{"11":0.00592,"18":0.00296,"29":0.00592,"30":0.00296,"34":0.00592,"39":0.00296,"44":0.00296,"49":0.0148,"55":0.00592,"56":0.00296,"57":0.0148,"58":0.00592,"59":0.00592,"60":0.00592,"61":0.00592,"64":0.0444,"65":0.01184,"67":0.00592,"68":0.11544,"69":0.02664,"70":0.00592,"73":0.00592,"74":0.07992,"75":0.02072,"76":0.05032,"77":0.02368,"78":0.01184,"79":0.02072,"80":0.02664,"81":0.02664,"83":0.00592,"84":0.0148,"85":0.06216,"86":0.03848,"87":0.0296,"88":0.0296,"89":0.06512,"90":0.39368,"91":0.19832,"92":2.58704,"93":7.7404,"94":0.93832,"95":0.00296,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 31 32 33 35 36 37 38 40 41 42 43 45 46 47 48 50 51 52 53 54 62 63 66 71 72 96 97"},F:{"37":0.00592,"42":0.00592,"63":0.00296,"65":0.00296,"72":0.00592,"75":0.00592,"76":0.01184,"77":0.0296,"78":0.31968,"79":0.09176,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 66 67 68 69 70 71 73 74 9.5-9.6 10.5 10.6 11.1 11.5 12.1","10.0-10.1":0,"11.6":0.00296},G:{"8":0,"15":0.145,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0116,"6.0-6.1":0.0029,"7.0-7.1":0.05583,"8.1-8.4":0.00145,"9.0-9.2":0.00653,"9.3":0.08048,"10.0-10.2":0.00798,"10.3":0.03045,"11.0-11.2":0.02683,"11.3-11.4":0.04785,"12.0-12.1":0.07903,"12.2-12.5":0.90118,"13.0-13.1":0.08265,"13.2":0.01668,"13.3":0.2262,"13.4-13.7":0.41325,"14.0-14.4":2.00247,"14.5-14.8":3.1139},E:{"4":0,"13":0.01184,"14":0.15392,"15":0.04736,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00888,"11.1":0.01184,"12.1":0.00888,"13.1":0.07992,"14.1":0.2812},B:{"12":0.0592,"13":0.05328,"14":0.01184,"15":0.03256,"16":0.0444,"17":0.03552,"18":0.18944,"80":0.00592,"81":0.00592,"84":0.02664,"85":0.0148,"88":0.00592,"89":0.03848,"90":0.02072,"91":0.05624,"92":0.37592,"93":1.45928,"94":0.22792,_:"79 83 86 87"},P:{"4":0.16596,"5.0-5.4":0.09335,"6.2-6.4":0.03112,"7.2-7.4":0.11409,"8.2":0.01018,"9.2":0.07261,"10.1":0.06223,"11.1-11.2":0.25931,"12.0":0.02074,"13.0":0.07261,"14.0":0.45638,"15.0":0.58084},I:{"0":0,"3":0,"4":0.00115,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00058,"4.2-4.3":0.00634,"4.4":0,"4.4.3-4.4.4":0.0553},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.02632,"11":0.1128,_:"6 7 8 9 5.5"},J:{"7":0,"10":0.02112},N:{"10":0.84402,"11":0.15172},L:{"0":63.96858},S:{"2.5":0.33093},R:{_:"0"},M:{"0":0.07041},Q:{"10.4":0},O:{"0":0.96462},H:{"0":6.286}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js deleted file mode 100644 index 5b6888ca3b7f1c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.01176,"15":0.01176,"17":0.00588,"45":0.00294,"46":0.00882,"52":0.02057,"60":0.00294,"72":0.01176,"78":0.0147,"85":0.00588,"86":0.00882,"87":0.00588,"88":0.03233,"89":0.06172,"90":0.0147,"91":0.33799,"92":0.53784,"93":0.02057,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 94 3.5 3.6"},D:{"23":0.00882,"24":0.00882,"25":0.00882,"41":0.00882,"43":0.02645,"49":0.04702,"51":0.00294,"55":0.00588,"56":0.04409,"58":0.0147,"60":0.0147,"61":0.00588,"63":0.00588,"65":0.00882,"68":0.02351,"69":0.03821,"70":0.25275,"71":0.01176,"72":0.00294,"73":0.00588,"74":0.04702,"77":0.01176,"78":0.01763,"79":0.03233,"80":0.01176,"81":0.04115,"83":0.0147,"84":0.00882,"85":0.00588,"86":0.03233,"87":0.05584,"88":0.02645,"89":0.03821,"90":0.02057,"91":0.24688,"92":2.77736,"93":8.39966,"94":1.1227,"95":0.01176,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 47 48 50 52 53 54 57 59 62 64 66 67 75 76 96 97"},F:{"73":0.00294,"76":0.03527,"77":0.04702,"78":0.47612,"79":0.25569,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.09107,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00106,"5.0-5.1":0.00381,"6.0-6.1":0.02287,"7.0-7.1":0.00318,"8.1-8.4":0,"9.0-9.2":0.00148,"9.3":0.17854,"10.0-10.2":0.00657,"10.3":0.01122,"11.0-11.2":0.07137,"11.3-11.4":0.01334,"12.0-12.1":0.00699,"12.2-12.5":0.28994,"13.0-13.1":0.01101,"13.2":0.00741,"13.3":0.06904,"13.4-13.7":0.07942,"14.0-14.4":0.27914,"14.5-14.8":0.97083},E:{"4":0,"11":0.00588,"12":0.02645,"13":0.01176,"14":0.03821,"15":0.01176,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1 10.1 12.1","5.1":0.0147,"11.1":0.01176,"13.1":0.02351,"14.1":0.09111},B:{"12":0.0529,"13":0.0147,"14":0.00882,"15":0.0147,"16":0.04115,"17":0.04115,"18":0.08229,"80":0.00588,"83":0.00294,"84":0.02939,"85":0.00882,"88":0.00294,"89":0.01763,"90":0.0147,"91":0.04996,"92":0.34386,"93":1.55473,"94":0.3086,_:"79 81 86 87"},P:{"4":0.59773,"5.0-5.4":0.02045,"6.2-6.4":0.09118,"7.2-7.4":1.3069,"8.2":0.01018,"9.2":0.19249,"10.1":0.04052,"11.1-11.2":0.25328,"12.0":0.1621,"13.0":0.46603,"14.0":0.82061,"15.0":0.49642},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00108,"4.2-4.3":0.00352,"4.4":0,"4.4.3-4.4.4":0.07307},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00588,"9":0.01176,"10":0.01176,"11":0.26745,_:"6 7 5.5"},J:{"7":0,"10":0.02824},N:{"10":0.84402,"11":0.15172},L:{"0":64.05254},S:{"2.5":0},R:{_:"0"},M:{"0":0.10592},Q:{"10.4":0.11298},O:{"0":1.40514},H:{"0":7.98177}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js deleted file mode 100644 index c92009470124ba..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"3":0.02297,"11":0.01149,"48":0.02872,"50":0.02872,"51":0.02872,"52":0.14358,"53":0.01723,"54":0.02872,"55":0.02297,"56":0.02297,"57":0.02872,"58":0.02297,"59":0.0402,"60":0.03446,"61":0.02872,"62":0.01723,"63":0.03446,"64":0.01149,"65":0.01723,"66":0.02872,"67":0.01149,"68":0.02872,"69":0.00574,"70":0.01149,"71":0.01149,"72":0.01723,"73":0.01149,"74":0.01149,"75":0.00574,"76":0.01149,"77":0.01723,"78":0.13209,"79":0.01723,"80":0.03446,"81":0.02297,"82":0.02872,"83":0.0402,"84":0.02297,"85":0.01149,"86":0.01149,"87":0.01149,"88":0.0402,"89":0.06892,"90":0.07466,"91":1.89519,"92":3.45729,"93":0.01723,_:"2 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 94 3.5 3.6"},D:{"33":0.01723,"36":0.00574,"38":0.22972,"41":0.01149,"42":0.00574,"43":0.01723,"45":0.00574,"46":0.02297,"47":0.01723,"48":0.24695,"49":0.47667,"50":0.00574,"51":0.01149,"53":0.01149,"54":0.00574,"55":0.01723,"56":0.31012,"57":0.01723,"58":0.01723,"59":0.01149,"60":0.02297,"61":0.88442,"62":0.01149,"63":0.02297,"64":0.02297,"65":0.02297,"66":0.02297,"67":0.02297,"68":0.02297,"69":0.02297,"70":0.03446,"71":0.00574,"72":0.01723,"73":0.02297,"74":0.03446,"75":0.02872,"76":0.02297,"77":0.0402,"78":0.05169,"79":0.24695,"80":0.11486,"81":0.05743,"83":0.14932,"84":0.22972,"85":0.18378,"86":0.32735,"87":0.62024,"88":0.08615,"89":0.0804,"90":0.14932,"91":0.43647,"92":6.32304,"93":21.85786,"94":3.47452,"95":0.00574,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 37 39 40 44 52 96 97"},F:{"34":0.00574,"36":0.01723,"43":0.01149,"45":0.01149,"46":0.00574,"48":0.00574,"49":0.00574,"52":0.01723,"53":0.02297,"54":0.01723,"55":0.01723,"56":0.01149,"65":0.03446,"66":0.00574,"67":0.00574,"68":0.02872,"69":0.01723,"70":0.03446,"71":0.01149,"77":0.08615,"78":2.70495,"79":0.62024,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 44 47 50 51 57 58 60 62 63 64 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02297},G:{"8":0.00665,"15":0.48786,"3.2":0.00111,"4.0-4.1":0.00222,"4.2-4.3":0.00776,"5.0-5.1":0.0122,"6.0-6.1":0.01885,"7.0-7.1":0.0255,"8.1-8.4":0.0377,"9.0-9.2":0.03326,"9.3":0.05987,"10.0-10.2":0.04324,"10.3":0.11864,"11.0-11.2":0.08094,"11.3-11.4":0.06209,"12.0-12.1":0.09979,"12.2-12.5":0.31046,"13.0-13.1":0.0632,"13.2":0.02994,"13.3":0.11975,"13.4-13.7":0.48232,"14.0-14.4":0.96132,"14.5-14.8":8.02316},E:{"4":0.0402,"9":0.01149,"10":0.01149,"11":0.01723,"12":0.02872,"13":0.11486,"14":0.35607,"15":0.14358,_:"0 5 6 7 8 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01149,"11.1":0.04594,"12.1":0.09763,"13.1":0.22972,"14.1":1.27495},B:{"12":0.02872,"13":0.02297,"14":0.0402,"15":0.03446,"16":0.05169,"17":0.02872,"18":0.1206,"79":0.01149,"80":0.01723,"81":0.02297,"83":0.02297,"84":0.0402,"85":0.03446,"86":0.02872,"87":0.02297,"88":0.00574,"89":0.02872,"90":0.01149,"91":0.0402,"92":0.53984,"93":2.68198,"94":0.54559},P:{"4":0.10398,"5.0-5.4":0.0208,"6.2-6.4":0.08043,"7.2-7.4":0.0208,"8.2":0.02011,"9.2":0.0208,"10.1":0.08319,"11.1-11.2":0.11438,"12.0":0.08319,"13.0":0.14558,"14.0":0.43673,"15.0":2.82832},I:{"0":0,"3":0,"4":0.00084,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00251,"4.2-4.3":0.0092,"4.4":0,"4.4.3-4.4.4":0.03429},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.0889,"7":0.0889,"8":0.41716,"9":0.10942,"10":0.22568,"11":1.1489,_:"5.5"},J:{"7":0,"10":0.00426},N:{"10":0.84402,"11":0.15172},L:{"0":27.17413},S:{"2.5":0},R:{_:"0"},M:{"0":0.24271},Q:{"10.4":0.00852},O:{"0":0.08516},H:{"0":0.33862}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js deleted file mode 100644 index fbaabdcfbdccfa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.0051,"45":0.01529,"48":0.01529,"51":0.0051,"52":0.07647,"59":0.02039,"60":0.05098,"61":0.02549,"62":0.02039,"63":0.02039,"68":0.10196,"71":0.0051,"72":0.0051,"77":0.0051,"78":0.88195,"80":0.0102,"81":0.0051,"82":0.0051,"86":0.0102,"87":0.04588,"88":0.49451,"89":0.12235,"90":0.08157,"91":1.47332,"92":4.11918,"93":0.0102,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 46 47 49 50 53 54 55 56 57 58 64 65 66 67 69 70 73 74 75 76 79 83 84 85 94 3.5 3.6"},D:{"38":0.01529,"49":0.38235,"56":0.0102,"57":0.02549,"61":0.26,"67":0.02039,"68":0.02549,"69":0.44862,"70":0.05098,"71":0.05608,"72":0.03059,"73":0.0102,"74":0.0051,"75":0.0102,"76":0.07137,"77":0.01529,"78":0.06627,"79":0.09176,"80":0.07137,"81":0.06627,"83":0.05608,"84":0.03059,"85":0.09686,"86":0.16314,"87":0.43333,"88":0.06627,"89":0.10196,"90":0.13765,"91":0.59137,"92":4.78702,"93":13.82578,"94":3.10978,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 58 59 60 62 63 64 65 66 95 96 97"},F:{"53":0.0102,"72":0.02039,"73":0.0051,"76":0.0102,"77":0.02549,"78":1.16744,"79":0.33137,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.96311,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00954,"6.0-6.1":0.00381,"7.0-7.1":0,"8.1-8.4":0.02289,"9.0-9.2":0.00191,"9.3":1.1214,"10.0-10.2":0.04959,"10.3":0.15448,"11.0-11.2":0.03624,"11.3-11.4":0.01907,"12.0-12.1":0.02289,"12.2-12.5":0.45772,"13.0-13.1":0.02289,"13.2":0.01526,"13.3":0.12015,"13.4-13.7":0.33184,"14.0-14.4":1.36552,"14.5-14.8":14.34559},E:{"4":0,"11":0.0051,"12":0.0051,"13":0.09176,"14":1.12666,"15":0.78509,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.02039,"9.1":0.0102,"10.1":0.02039,"11.1":0.07647,"12.1":0.20902,"13.1":0.83607,"14.1":5.40388},B:{"18":0.15294,"84":0.0051,"85":0.01529,"88":0.0051,"89":0.16823,"90":0.14784,"91":0.08667,"92":0.66784,"93":3.58899,"94":0.88705,_:"12 13 14 15 16 17 79 80 81 83 86 87"},P:{"4":0.20005,"5.0-5.4":0.0208,"6.2-6.4":0.08043,"7.2-7.4":0.03159,"8.2":0.02011,"9.2":0.02106,"10.1":0.08319,"11.1-11.2":0.04212,"12.0":0.04212,"13.0":0.10529,"14.0":0.38957,"15.0":3.36923},I:{"0":0,"3":0,"4":0.00097,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00097,"4.2-4.3":0.00532,"4.4":0,"4.4.3-4.4.4":0.02706},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01578,"11":0.56029,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":24.06488},S:{"2.5":0},R:{_:"0"},M:{"0":0.82354},Q:{"10.4":0.06373},O:{"0":0.55393},H:{"0":0.74718}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js deleted file mode 100644 index fb7212a35f6052..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LV.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00594,"52":0.1842,"55":0.01783,"56":0.02377,"57":0.00594,"60":0.01188,"65":0.00594,"66":0.01188,"68":0.01783,"72":0.05942,"73":0.01188,"74":0.01188,"78":0.26739,"79":0.01188,"80":0.01783,"83":0.01188,"84":0.04159,"85":0.01188,"86":0.01188,"87":0.09507,"88":0.05348,"89":0.07725,"90":0.08913,"91":2.2639,"92":4.55157,"93":0.02971,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 58 59 61 62 63 64 67 69 70 71 75 76 77 81 82 94 3.5","3.6":0.01188},D:{"25":0.01188,"29":0.00594,"49":0.39811,"53":0.00594,"57":0.01188,"61":0.20797,"65":0.00594,"66":0.01188,"67":0.01188,"68":0.01188,"69":0.01188,"70":0.01188,"71":0.01188,"72":0.00594,"73":0.01783,"74":0.01783,"75":0.04754,"77":0.05348,"78":0.01783,"79":0.20797,"80":0.01783,"81":0.02377,"83":0.02971,"84":0.05348,"85":0.08913,"86":0.10696,"87":0.4813,"88":0.10101,"89":0.21985,"90":0.16638,"91":0.42782,"92":7.77214,"93":25.45553,"94":3.92172,"95":0.01188,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 58 59 60 62 63 64 76 96 97"},F:{"36":0.01188,"71":0.01188,"77":0.04159,"78":2.18666,"79":0.53478,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.71508,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00103,"6.0-6.1":0.01133,"7.0-7.1":0.01339,"8.1-8.4":0.0103,"9.0-9.2":0.00618,"9.3":0.02267,"10.0-10.2":0.00309,"10.3":0.04431,"11.0-11.2":0.01958,"11.3-11.4":0.01855,"12.0-12.1":0.01649,"12.2-12.5":0.27717,"13.0-13.1":0.01236,"13.2":0.01339,"13.3":0.08346,"13.4-13.7":0.25553,"14.0-14.4":1.09942,"14.5-14.8":7.67737},E:{"4":0,"11":0.01188,"12":0.00594,"13":0.05942,"14":0.40406,"15":0.24362,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01783,"11.1":0.04159,"12.1":0.0713,"13.1":0.23768,"14.1":1.86579},B:{"16":0.00594,"17":0.00594,"18":0.06536,"84":0.00594,"85":0.04159,"86":0.00594,"88":0.00594,"89":0.06536,"90":0.01188,"91":0.02971,"92":0.55261,"93":2.51941,"94":0.53478,_:"12 13 14 15 79 80 81 83 87"},P:{"4":0.06272,"5.0-5.4":0.02045,"6.2-6.4":0.04067,"7.2-7.4":0.35591,"8.2":0.02034,"9.2":0.20337,"10.1":0.05084,"11.1-11.2":0.11499,"12.0":0.05227,"13.0":0.16726,"14.0":0.72131,"15.0":3.10478},I:{"0":0,"3":0,"4":0.00095,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00189,"4.2-4.3":0.00284,"4.4":0,"4.4.3-4.4.4":0.05112},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01188,"9":0.00594,"11":0.26145,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":25.61175},S:{"2.5":0},R:{_:"0"},M:{"0":0.35296},Q:{"10.4":0},O:{"0":0.12577},H:{"0":0.49932}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js deleted file mode 100644 index ee72f3fd710087..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/LY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00538,"5":0.00359,"15":0.00179,"17":0.00538,"30":0.00359,"34":0.00359,"35":0.00179,"38":0.00538,"39":0.00359,"43":0.00359,"45":0.00538,"47":0.01076,"52":0.02332,"56":0.00179,"67":0.00359,"68":0.00359,"72":0.01435,"78":0.01615,"81":0.00359,"82":0.00359,"83":0.00179,"86":0.00538,"87":0.04126,"88":0.01435,"89":0.01973,"90":0.02332,"91":0.34445,"92":0.75886,"93":0.01973,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 36 37 40 41 42 44 46 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 69 70 71 73 74 75 76 77 79 80 84 85 94 3.5 3.6"},D:{"23":0.00359,"24":0.01256,"25":0.00179,"29":0.00179,"31":0.00359,"33":0.01076,"34":0.00179,"37":0.00718,"38":0.00179,"40":0.00359,"41":0.00359,"43":0.01435,"49":0.01615,"50":0.00359,"51":0.00179,"53":0.00359,"55":0.00179,"56":0.00179,"57":0.00538,"58":0.01256,"59":0.00179,"60":0.00538,"63":0.01615,"64":0.00179,"65":0.01076,"66":0.00359,"67":0.00359,"68":0.01256,"69":0.01435,"70":0.00718,"71":0.02512,"72":0.00897,"73":0.00897,"74":0.00718,"75":0.00718,"76":0.00897,"77":0.00718,"78":0.04306,"79":0.06997,"80":0.03767,"81":0.03588,"83":0.03409,"84":0.03229,"85":0.02332,"86":0.08611,"87":0.10764,"88":0.04664,"89":0.0592,"90":0.05561,"91":0.17761,"92":2.00928,"93":7.15806,"94":1.25221,"95":0.00897,"96":0.01076,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 30 32 35 36 39 42 44 45 46 47 48 52 54 61 62 97"},F:{"70":0.00179,"77":0.02332,"78":0.66199,"79":0.2081,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00172,"15":0.32535,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00172,"5.0-5.1":0.00258,"6.0-6.1":0.00687,"7.0-7.1":0.02661,"8.1-8.4":0.00687,"9.0-9.2":0.00258,"9.3":0.0867,"10.0-10.2":0.0103,"10.3":0.10988,"11.0-11.2":0.03777,"11.3-11.4":0.04979,"12.0-12.1":0.06524,"12.2-12.5":0.90994,"13.0-13.1":0.04636,"13.2":0.02404,"13.3":0.13649,"13.4-13.7":0.2747,"14.0-14.4":2.52723,"14.5-14.8":3.93077},E:{"4":0,"11":0.00179,"13":0.30139,"14":0.30857,"15":0.04306,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00718,"10.1":0.01256,"11.1":0.00179,"12.1":0.07176,"13.1":0.17581,"14.1":0.52205},B:{"12":0.00359,"13":0.00179,"14":0.00359,"15":0.00359,"16":0.00359,"17":0.01615,"18":0.04664,"83":0.00538,"84":0.01076,"85":0.00897,"88":0.00179,"89":0.01615,"90":0.00897,"91":0.00897,"92":0.16325,"93":0.62611,"94":0.14531,_:"79 80 81 86 87"},P:{"4":0.4625,"5.0-5.4":0.01005,"6.2-6.4":0.08043,"7.2-7.4":0.74402,"8.2":0.02011,"9.2":0.13071,"10.1":0.07038,"11.1-11.2":0.51277,"12.0":0.16087,"13.0":0.40217,"14.0":1.00543,"15.0":1.56848},I:{"0":0,"3":0,"4":0.00027,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00244,"4.2-4.3":0.00868,"4.4":0,"4.4.3-4.4.4":0.05425},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00897,"9":0.00179,"10":0.00897,"11":0.13276,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":65.18649},S:{"2.5":0},R:{_:"0"},M:{"0":0.07385},Q:{"10.4":0},O:{"0":0.45133},H:{"0":2.86673}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js deleted file mode 100644 index afec72374bf926..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"2":0.6893,"15":0.70543,"18":0.70946,"21":0.70543,"23":0.6893,"25":1.39876,"30":0.70139,"51":0.68527,"52":0.04434,"55":0.00403,"65":0.00806,"78":0.02822,"80":0.00403,"82":0.00403,"83":0.00403,"84":0.04434,"88":0.01612,"89":0.02822,"90":0.01209,"91":0.28217,"92":0.58046,"93":0.01612,_:"3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 22 24 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 56 57 58 59 60 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 81 85 86 87 94 3.5 3.6"},D:{"19":0.70543,"24":2.09612,"30":0.69736,"33":0.69736,"35":1.39473,"38":0.00403,"43":0.00806,"49":0.10884,"53":0.00403,"54":0.68124,"55":0.69736,"56":3.53519,"61":0.0645,"63":0.00806,"67":0.00806,"68":0.00806,"69":0.00806,"70":0.00806,"72":0.01612,"73":0.00403,"74":0.00806,"75":0.03225,"76":0.00403,"77":0.00403,"78":0.00806,"79":0.04837,"80":0.01209,"81":0.01612,"83":0.0524,"84":0.04031,"85":0.04434,"86":0.0645,"87":0.54822,"88":0.04434,"89":0.04434,"90":0.05643,"91":0.17736,"92":1.68496,"93":6.57859,"94":1.12868,"95":0.00806,"96":0.00403,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 25 26 27 28 29 31 32 34 36 37 39 40 41 42 44 45 46 47 48 50 51 52 57 58 59 60 62 64 65 66 71 97"},F:{"43":0.69736,"77":0.01612,"78":0.55628,"79":0.15318,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.69333},G:{"8":0,"15":0.13904,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00783,"6.0-6.1":13.80242,"7.0-7.1":0.02546,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.08029,"10.0-10.2":1.90939,"10.3":0.08029,"11.0-11.2":0.14492,"11.3-11.4":0.08813,"12.0-12.1":0.141,"12.2-12.5":0.85776,"13.0-13.1":0.01175,"13.2":0.00783,"13.3":0.03917,"13.4-13.7":0.14883,"14.0-14.4":0.37992,"14.5-14.8":1.71159},E:{"4":0,"5":0.69736,"12":0.00806,"13":0.02822,"14":0.07659,"15":0.02016,_:"0 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00806,"12.1":0.02822,"13.1":0.06853,"14.1":0.17736},B:{"17":0.00806,"18":0.02016,"84":0.00403,"89":0.00806,"91":0.00806,"92":0.12496,"93":0.54822,"94":0.12093,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90"},P:{"4":0.44819,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.13118,"8.2":0.02011,"9.2":0.06559,"10.1":0.07166,"11.1-11.2":0.12025,"12.0":0.04373,"13.0":0.15304,"14.0":0.30608,"15.0":1.12593},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.02401,"4.2-4.3":0.56233,"4.4":0,"4.4.3-4.4.4":1.06138},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":1.08654,"9":1.41776,"10":1.40564,"11":0.06463,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":36.19029},S:{"2.5":0},R:{_:"0"},M:{"0":0.06567},Q:{"10.4":0},O:{"0":0.05373},H:{"0":0.19217}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js deleted file mode 100644 index 4741ae3fd7d7e7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"78":0.75667,"88":0.02027,"89":0.02027,"90":0.20944,"91":1.23635,"92":3.74958,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 93 94 3.5 3.6"},D:{"49":0.07432,"63":0.00676,"65":0.03378,"66":0.02027,"70":0.08783,"72":0.02027,"73":0.01351,"74":0.02702,"76":0.02702,"77":0.42563,"79":0.02702,"80":0.05405,"81":0.1081,"84":0.02702,"85":0.11485,"86":0.08107,"87":0.62155,"88":0.14188,"89":0.32429,"90":0.1081,"91":0.7364,"92":12.05946,"93":19.04516,"94":3.21586,"95":0.01351,"96":0.00676,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 67 68 69 71 75 78 83 97"},F:{"77":0.08783,"78":0.68236,"79":0.22295,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.76745,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00409,"6.0-6.1":0.01228,"7.0-7.1":0.05116,"8.1-8.4":0.00205,"9.0-9.2":0.00614,"9.3":0.088,"10.0-10.2":0.01023,"10.3":0.06754,"11.0-11.2":0.01842,"11.3-11.4":0.00819,"12.0-12.1":0.01637,"12.2-12.5":0.4441,"13.0-13.1":0.04502,"13.2":0.0266,"13.3":0.09209,"13.4-13.7":1.0028,"14.0-14.4":1.5656,"14.5-14.8":16.23518},E:{"4":0,"12":0.02702,"13":0.08783,"14":1.78358,"15":1.19581,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 7.1 9.1","6.1":0.00676,"10.1":0.02027,"11.1":0.12161,"12.1":0.13512,"13.1":1.87141,"14.1":10.5326},B:{"16":0.01351,"18":0.21619,"84":0.00676,"89":0.02027,"91":0.01351,"92":0.74992,"93":3.45907,"94":0.81072,_:"12 13 14 15 17 79 80 81 83 85 86 87 88 90"},P:{"4":0.05329,"5.0-5.4":0.01105,"6.2-6.4":0.08044,"7.2-7.4":0.05204,"8.2":0.02011,"9.2":0.02082,"10.1":0.03105,"11.1-11.2":0.04263,"12.0":0.21315,"13.0":0.17695,"14.0":0.83129,"15.0":1.35351},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.00324},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.93233,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":9.52711},S:{"2.5":0},R:{_:"0"},M:{"0":0.17188},Q:{"10.4":0},O:{"0":0},H:{"0":0.04912}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js deleted file mode 100644 index 9e95f5b2a40f49..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"50":0.0043,"52":0.07742,"53":0.0129,"54":0.0043,"55":0.0172,"56":0.0172,"57":0.0043,"59":0.0086,"60":0.02151,"63":0.0043,"68":0.0043,"78":0.14193,"79":0.02581,"80":0.0043,"81":0.0086,"82":0.0172,"84":0.0172,"85":0.0086,"87":0.0043,"88":0.0172,"89":0.06452,"90":0.03011,"91":0.52902,"92":1.13116,"93":0.02151,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 58 61 62 64 65 66 67 69 70 71 72 73 74 75 76 77 83 86 94 3.5","3.6":0.0086},D:{"25":0.0172,"26":0.0043,"33":0.0086,"41":0.0043,"47":0.0043,"48":0.0129,"49":0.4086,"53":0.0129,"56":0.0043,"57":0.0086,"58":0.0129,"59":0.07742,"60":0.0043,"63":0.02581,"65":0.0086,"66":0.0086,"67":0.02151,"68":0.0043,"69":0.0129,"70":0.0129,"71":0.02581,"72":0.0086,"73":0.03441,"74":0.0129,"75":0.0172,"76":0.03441,"77":0.03871,"78":0.03011,"79":0.10753,"80":0.07312,"81":0.03011,"83":0.08602,"84":0.26236,"85":0.05591,"86":0.10753,"87":0.32258,"88":0.13333,"89":0.05591,"90":0.15054,"91":0.37849,"92":5.90527,"93":20.18029,"94":3.31177,"95":0.0129,"96":0.0172,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 31 32 34 35 36 37 38 39 40 42 43 44 45 46 50 51 52 54 55 61 62 64 97"},F:{"36":0.0043,"68":0.0172,"70":0.0172,"71":0.0086,"76":0.0172,"77":0.03011,"78":1.80212,"79":0.53332,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0129},G:{"8":0,"15":0.59036,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00186,"6.0-6.1":0.00557,"7.0-7.1":0.00835,"8.1-8.4":0.00186,"9.0-9.2":0.0065,"9.3":0.05012,"10.0-10.2":0.01392,"10.3":0.04456,"11.0-11.2":0.01578,"11.3-11.4":0.01856,"12.0-12.1":0.02785,"12.2-12.5":0.43163,"13.0-13.1":0.04177,"13.2":0.01485,"13.3":0.06312,"13.4-13.7":0.31189,"14.0-14.4":0.93474,"14.5-14.8":6.69631},E:{"4":0,"11":0.0129,"13":0.21935,"14":0.58494,"15":0.12043,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.12903,"11.1":0.0129,"12.1":0.03011,"13.1":0.12473,"14.1":0.80859},B:{"16":0.0086,"18":0.02581,"84":0.0043,"86":0.0043,"87":0.0043,"89":0.0129,"90":0.0043,"91":0.0086,"92":0.18924,"93":0.82149,"94":0.16344,_:"12 13 14 15 17 79 80 81 83 85 88"},P:{"4":0.15613,"5.0-5.4":0.01105,"6.2-6.4":0.08044,"7.2-7.4":0.05204,"8.2":0.02011,"9.2":0.02082,"10.1":0.03105,"11.1-11.2":0.19777,"12.0":0.05204,"13.0":0.17695,"14.0":0.38512,"15.0":2.07133},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00088,"4.2-4.3":0.00307,"4.4":0,"4.4.3-4.4.4":0.02455},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00442,"9":0.00442,"11":0.14599,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":44.9651},S:{"2.5":0.0057},R:{_:"0"},M:{"0":0.0798},Q:{"10.4":0},O:{"0":0.2964},H:{"0":0.23744}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js deleted file mode 100644 index 397d39db48484a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ME.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"31":0.00398,"52":0.88799,"56":0.02787,"60":0.00796,"69":0.00796,"72":0.00796,"78":0.01991,"80":0.00398,"81":0.00796,"82":0.00398,"83":0.00398,"84":0.01991,"85":0.02389,"86":0.01195,"87":0.00398,"88":0.01991,"89":0.05177,"90":0.02389,"91":0.7964,"92":1.58484,"93":0.02389,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 79 94 3.5 3.6"},D:{"22":0.00796,"38":0.05177,"49":0.33449,"53":0.03584,"56":0.00398,"58":0.00398,"65":0.00398,"66":0.02389,"68":0.00796,"69":0.02389,"70":0.02389,"72":0.00398,"74":0.00796,"75":0.00796,"76":0.03982,"77":0.00398,"78":0.01593,"79":0.18317,"80":0.03186,"81":0.06769,"83":0.02389,"84":0.13141,"85":0.10353,"86":0.07566,"87":0.39024,"88":0.14335,"89":0.07168,"90":0.13539,"91":0.27078,"92":4.67885,"93":15.90013,"94":2.53255,"95":0.00398,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 59 60 61 62 63 64 67 71 73 96 97"},F:{"28":0.00398,"32":0.00398,"40":0.00796,"46":0.01195,"68":6.29554,"69":0.00398,"76":0.00398,"77":0.0438,"78":0.93179,"79":0.24688,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 33 34 35 36 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.4134,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00221,"6.0-6.1":0,"7.0-7.1":0.02542,"8.1-8.4":0,"9.0-9.2":0.00442,"9.3":0.05637,"10.0-10.2":0.00774,"10.3":0.11606,"11.0-11.2":0.02432,"11.3-11.4":0.03206,"12.0-12.1":0.01879,"12.2-12.5":0.60352,"13.0-13.1":0.021,"13.2":0.00774,"13.3":0.08732,"13.4-13.7":0.42224,"14.0-14.4":0.91081,"14.5-14.8":8.29563},E:{"4":0,"12":0.00796,"13":0.04778,"14":0.18715,"15":0.0438,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01991,"12.1":0.03186,"13.1":0.0876,"14.1":0.74463},B:{"16":0.01593,"18":0.01195,"84":0.00796,"87":0.01593,"89":0.00796,"92":0.15928,"93":0.69685,"94":0.14335,_:"12 13 14 15 17 79 80 81 83 85 86 88 90 91"},P:{"4":0.22523,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.07166,"8.2":0.02011,"9.2":0.01024,"10.1":0.07166,"11.1-11.2":0.29689,"12.0":0.06143,"13.0":0.18428,"14.0":0.48116,"15.0":3.05078},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00069,"4.2-4.3":0.00174,"4.4":0,"4.4.3-4.4.4":0.01562},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00626,"11":0.12515,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":44.69897},S:{"2.5":0},R:{_:"0"},M:{"0":0.18656},Q:{"10.4":0},O:{"0":0.03009},H:{"0":0.25069}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js deleted file mode 100644 index 55f309706ac1a0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"32":0.00615,"38":0.01845,"39":0.0123,"41":0.0123,"43":0.00615,"45":0.00615,"47":0.01845,"48":0.03691,"49":0.0123,"51":0.0123,"52":0.20298,"54":0.00615,"56":0.05536,"57":0.03076,"60":0.00615,"61":0.0123,"62":0.00615,"65":0.0246,"66":0.0123,"68":0.03076,"70":0.04921,"71":0.12302,"72":0.09842,"73":0.0246,"74":0.0123,"76":0.03691,"77":0.01845,"78":0.23374,"79":0.03076,"80":0.03691,"81":0.03076,"82":0.01845,"83":0.01845,"84":0.06766,"85":0.03691,"86":0.03076,"87":0.09227,"88":0.14147,"89":0.39366,"90":0.16608,"91":2.50961,"92":5.1976,"93":0.04921,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 40 42 44 46 50 53 55 58 59 63 64 67 69 75 94 3.5 3.6"},D:{"11":0.03076,"23":0.00615,"24":0.0123,"29":0.00615,"42":0.0123,"43":0.0123,"47":0.00615,"49":0.51053,"57":0.01845,"58":0.06766,"61":0.00615,"63":0.04306,"64":0.01845,"65":0.0246,"67":0.00615,"68":0.00615,"69":0.0123,"71":0.0246,"72":0.0123,"73":0.05536,"74":0.0246,"75":0.0246,"76":0.0123,"77":0.03691,"78":0.03076,"79":0.10457,"80":0.11072,"81":0.11687,"83":0.03691,"84":0.07381,"85":0.11072,"86":0.23989,"87":0.59665,"88":0.11687,"89":0.326,"90":0.39982,"91":1.36552,"92":6.39704,"93":23.19542,"94":3.39535,"95":0.03691,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 44 45 46 48 50 51 52 53 54 55 56 59 60 62 66 70 96 97"},F:{"32":0.0246,"40":0.00615,"53":0.03691,"56":0.00615,"68":0.00615,"76":0.0123,"77":0.08611,"78":1.50084,"79":0.52284,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 54 55 57 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.08846,"3.2":0.00022,"4.0-4.1":0.00022,"4.2-4.3":0.00044,"5.0-5.1":0.002,"6.0-6.1":0.00333,"7.0-7.1":0.04811,"8.1-8.4":0.00044,"9.0-9.2":0.00621,"9.3":0.08758,"10.0-10.2":0.00798,"10.3":0.07228,"11.0-11.2":0.01375,"11.3-11.4":0.00931,"12.0-12.1":0.00865,"12.2-12.5":0.29709,"13.0-13.1":0.02572,"13.2":0.00488,"13.3":0.02505,"13.4-13.7":0.16207,"14.0-14.4":0.29488,"14.5-14.8":1.05778},E:{"4":0,"13":0.05536,"14":0.09227,"15":0.03076,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.0123,"12.1":0.06766,"13.1":0.09227,"14.1":0.38751},B:{"12":0.0123,"13":0.00615,"14":0.0123,"15":0.0123,"16":0.0123,"17":0.0246,"18":0.06151,"80":0.0246,"84":0.0123,"85":0.01845,"86":0.0123,"89":0.04306,"90":0.01845,"91":0.04921,"92":0.52284,"93":2.12825,"94":0.38136,_:"79 81 83 87 88"},P:{"4":0.22907,"5.0-5.4":0.0208,"6.2-6.4":0.08043,"7.2-7.4":0.03272,"8.2":0.02011,"9.2":0.05372,"10.1":0.01091,"11.1-11.2":0.05454,"12.0":0.042,"13.0":0.30542,"14.0":0.30542,"15.0":0.38178},I:{"0":0,"3":0,"4":0.00057,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00401,"4.2-4.3":0.01248,"4.4":0,"4.4.3-4.4.4":0.0599},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01259,"9":0.01259,"10":0.01259,"11":0.22671,_:"6 7 5.5"},J:{"7":0,"10":0.01539},N:{"10":0.01251,"11":0.15172},L:{"0":33.54229},S:{"2.5":0.13853},R:{_:"0"},M:{"0":0.50024},Q:{"10.4":0.05772},O:{"0":1.66234},H:{"0":4.93996}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js deleted file mode 100644 index 31dc3eca8bbfb6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"62":0.01923,"69":0.00481,"78":0.03366,"84":0.01923,"88":0.00481,"90":0.00481,"91":0.22117,"92":1.25008,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 89 93 94 3.5 3.6"},D:{"49":0.03366,"73":0.52888,"75":0.03846,"76":0.01442,"80":0.00481,"84":0.02885,"85":0.00481,"87":0.0625,"88":0.14905,"89":0.03846,"90":0.02885,"91":0.09616,"92":5.75037,"93":24.47753,"94":4.84646,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 77 78 79 81 83 86 95 96 97"},F:{"78":0.01442,"79":0.04808,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.33836,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.21978,"10.0-10.2":0,"10.3":0.14863,"11.0-11.2":0.29567,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.91705,"13.0-13.1":0.0838,"13.2":0.03478,"13.3":0.09487,"13.4-13.7":0.42532,"14.0-14.4":3.73777,"14.5-14.8":9.51361},E:{"4":0,"13":0.01923,"14":0.12982,"15":0.33656,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02885,"12.1":0.67793,"13.1":1.07218,"14.1":0.97122},B:{"15":0.00481,"17":0.00481,"18":0.08174,"85":0.00481,"87":0.0625,"90":0.01442,"92":1.00487,"93":2.88961,"94":0.16347,_:"12 13 14 16 79 80 81 83 84 86 88 89 91"},P:{"4":0.15057,"5.0-5.4":0.01045,"6.2-6.4":0.03026,"7.2-7.4":0.01045,"8.2":0.04035,"9.2":0.04302,"10.1":0.03026,"11.1-11.2":0.07314,"12.0":0.02151,"13.0":0.05224,"14.0":0.12539,"15.0":1.40015},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00278,"4.2-4.3":0.03333,"4.4":0,"4.4.3-4.4.4":0.08331},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04859,"11":0.10527,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":35.70587},S:{"2.5":0},R:{_:"0"},M:{"0":0.11422},Q:{"10.4":0},O:{"0":0.87745},H:{"0":0.01966}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js deleted file mode 100644 index 6e147b5cc946b3..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"40":0.04121,"41":0.00375,"43":0.00749,"47":0.01498,"48":0.00749,"49":0.01873,"50":0.00375,"51":0.01873,"52":0.22101,"56":0.01498,"57":0.01498,"68":0.00375,"72":0.01498,"78":0.10863,"79":0.03746,"80":0.02248,"81":0.05994,"82":0.01124,"83":0.02248,"84":0.05244,"85":0.02248,"86":0.00749,"87":0.00375,"88":0.13111,"89":0.03746,"90":0.01873,"91":0.74545,"92":1.5958,"93":0.00749,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 42 44 45 46 53 54 55 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 94 3.5 3.6"},D:{"22":0.00375,"34":0.00375,"38":0.01498,"47":0.02622,"48":0.01873,"49":0.28844,"53":0.01873,"56":0.00749,"58":0.01498,"60":0.00749,"62":0.00375,"63":0.02622,"64":0.00749,"65":0.01498,"68":0.01873,"69":0.02248,"70":0.01124,"71":0.01124,"72":0.05994,"73":0.01124,"74":0.01124,"75":0.01873,"76":0.00749,"77":0.01498,"78":0.02248,"79":0.12736,"80":0.03746,"81":0.04495,"83":0.16857,"84":0.20603,"85":0.236,"86":0.35587,"87":0.35212,"88":0.04495,"89":0.04495,"90":0.0974,"91":0.32216,"92":5.23316,"93":17.7036,"94":3.04924,"95":0.01124,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 50 51 52 54 55 57 59 61 66 67 96 97"},F:{"31":0.00749,"36":0.01124,"40":0.00375,"46":0.00375,"68":0.01124,"69":0.00749,"70":0.01124,"71":0.01498,"73":0.00749,"77":0.01498,"78":1.07885,"79":0.23225,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 72 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00228,"15":0.56002,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00342,"6.0-6.1":0.00114,"7.0-7.1":0.03308,"8.1-8.4":0,"9.0-9.2":0.00798,"9.3":0.05475,"10.0-10.2":0.00912,"10.3":0.06957,"11.0-11.2":0.04334,"11.3-11.4":0.04904,"12.0-12.1":0.0365,"12.2-12.5":0.6581,"13.0-13.1":0.01711,"13.2":0.01369,"13.3":0.14257,"13.4-13.7":0.36156,"14.0-14.4":0.98088,"14.5-14.8":8.35689},E:{"4":0,"13":0.01498,"14":0.07117,"15":0.07117,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01498,"12.1":0.01124,"13.1":0.05619,"14.1":0.40831},B:{"13":0.00375,"15":0.00749,"16":0.00749,"17":0.00375,"18":0.05619,"84":0.01873,"85":0.00749,"86":0.00375,"87":0.01498,"88":0.00749,"89":0.00749,"90":0.00375,"91":0.01124,"92":0.19854,"93":1.01517,"94":0.22101,_:"12 14 79 80 81 83"},P:{"4":0.12601,"5.0-5.4":0.0208,"6.2-6.4":0.08043,"7.2-7.4":0.03159,"8.2":0.02011,"9.2":0.05372,"10.1":0.08319,"11.1-11.2":0.14701,"12.0":0.042,"13.0":0.14701,"14.0":0.26251,"15.0":1.82709},I:{"0":0,"3":0,"4":0.00108,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00432,"4.2-4.3":0.00811,"4.4":0,"4.4.3-4.4.4":0.03027},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.03371,"9":0.04495,"10":0.00375,"11":0.23225,_:"6 7 5.5"},J:{"7":0,"10":0.01251},N:{"10":0.01251,"11":0.15172},L:{"0":49.2295},S:{"2.5":0},R:{_:"0"},M:{"0":0.11257},Q:{"10.4":0},O:{"0":0.03127},H:{"0":0.21315}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js deleted file mode 100644 index 47f89c9c8fbb31..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ML.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"31":0.00218,"43":0.00654,"45":0.00436,"47":0.00872,"48":0.00218,"52":0.00218,"67":0.00218,"72":0.00654,"78":0.04144,"80":0.00218,"86":0.00436,"87":0.00436,"89":0.04144,"90":0.01309,"91":0.74372,"92":1.56596,"93":0.02399,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 39 40 41 42 44 46 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 74 75 76 77 79 81 82 83 84 85 88 94 3.5 3.6"},D:{"11":0.00436,"18":0.01309,"38":0.00218,"43":0.00872,"45":0.00218,"49":0.01309,"50":0.00436,"55":0.00872,"57":0.00436,"63":0.01309,"70":0.00218,"71":0.01091,"72":0.00218,"73":0.00654,"76":0.00436,"78":0.00436,"79":0.00436,"80":0.02181,"81":0.00872,"83":0.02181,"84":0.00436,"85":0.00218,"86":0.01745,"87":0.01745,"88":0.0458,"89":0.01527,"90":0.02181,"91":0.10687,"92":1.30206,"93":4.62154,"94":0.63903,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 46 47 48 51 52 53 54 56 58 59 60 61 62 64 65 66 67 68 69 74 75 77 95 96 97"},F:{"42":0.00436,"65":0.00436,"77":0.06325,"78":0.33806,"79":0.12868,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00212,"15":0.77642,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00425,"6.0-6.1":0,"7.0-7.1":0.01806,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.36431,"10.0-10.2":0,"10.3":0.26235,"11.0-11.2":0.15401,"11.3-11.4":0.02018,"12.0-12.1":0.06479,"12.2-12.5":1.86724,"13.0-13.1":0.02018,"13.2":0.01487,"13.3":0.19012,"13.4-13.7":0.42698,"14.0-14.4":1.65694,"14.5-14.8":4.77538},E:{"4":0,"13":0.00872,"14":0.0349,"15":0.01527,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 9.1 10.1","5.1":0.00436,"7.1":0.01527,"11.1":0.00436,"12.1":0.00436,"13.1":0.02617,"14.1":0.16576},B:{"12":0.01745,"13":0.03053,"14":0.01091,"15":0.03708,"16":0.04144,"17":0.01527,"18":0.253,"84":0.00872,"85":0.00218,"89":0.00872,"90":0.01963,"91":0.01309,"92":0.72191,"93":1.90401,"94":0.39258,_:"79 80 81 83 86 87 88"},P:{"4":0.52452,"5.0-5.4":0.04035,"6.2-6.4":0.03026,"7.2-7.4":0.98852,"8.2":0.04035,"9.2":0.55478,"10.1":0.03026,"11.1-11.2":0.77669,"12.0":0.1513,"13.0":0.35304,"14.0":1.6139,"15.0":0.87756},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00249,"4.2-4.3":0.0056,"4.4":0,"4.4.3-4.4.4":0.10138},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.013,"11":0.18983,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.06255},N:{"10":0.01251,"11":0.15172},L:{"0":66.71456},S:{"2.5":0.05473},R:{_:"0"},M:{"0":0.11729},Q:{"10.4":0.02346},O:{"0":1.08684},H:{"0":0.8883}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js deleted file mode 100644 index c7b17326d7c94a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.00311,"30":0.00622,"32":0.00311,"34":0.00622,"35":0.00622,"36":0.01555,"37":0.00622,"38":0.00311,"39":0.00622,"40":0.00311,"41":0.01555,"42":0.00311,"43":0.01244,"44":0.01244,"45":0.00622,"46":0.00311,"47":0.01244,"48":0.00933,"49":0.00622,"50":0.00311,"52":0.01555,"54":0.00622,"56":0.06529,"57":0.01244,"58":0.01244,"59":0.00311,"60":0.00311,"61":0.00622,"62":0.00622,"67":0.00622,"68":0.01865,"69":0.00622,"70":0.00622,"71":0.04664,"72":0.04042,"74":0.00311,"76":0.00622,"77":0.00622,"78":0.03109,"79":0.01555,"80":0.09327,"81":0.00933,"82":0.00933,"83":0.01555,"84":0.03109,"85":0.01244,"86":0.01244,"87":0.00933,"88":0.03731,"89":0.14612,"90":0.04664,"91":0.95757,"92":2.11101,"93":0.22385,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 31 33 51 53 55 63 64 65 66 73 75 94 3.5 3.6"},D:{"11":0.00311,"25":0.00311,"31":0.00622,"32":0.01244,"37":0.00622,"38":0.02798,"39":0.01244,"46":0.00311,"47":0.00933,"49":0.14923,"53":0.00933,"55":0.00622,"57":0.00311,"61":0.00622,"62":0.00311,"63":0.04353,"65":0.00311,"67":0.00933,"68":0.00622,"69":0.00622,"70":0.00622,"71":0.02176,"72":0.00622,"73":0.00311,"74":0.01244,"75":0.00933,"76":0.00933,"77":0.00311,"78":0.00622,"79":0.12125,"80":0.01244,"81":0.02176,"83":0.02798,"84":0.01865,"85":0.04974,"86":0.05907,"87":0.20519,"88":0.0684,"89":0.13058,"90":0.07773,"91":0.31712,"92":3.60644,"93":12.2992,"94":1.968,"95":0.01555,"96":0.00311,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 33 34 35 36 40 41 42 43 44 45 48 50 51 52 54 56 58 59 60 64 66 97"},F:{"28":0.00622,"36":0.00933,"64":0.00311,"74":0.00933,"75":0.00622,"77":0.01555,"78":0.46013,"79":0.19276,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 65 66 67 68 69 70 71 72 73 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.69903,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00088,"5.0-5.1":0.01327,"6.0-6.1":0.00354,"7.0-7.1":0.02743,"8.1-8.4":0.01327,"9.0-9.2":0.02389,"9.3":0.1345,"10.0-10.2":0.00619,"10.3":0.12211,"11.0-11.2":0.06105,"11.3-11.4":0.02832,"12.0-12.1":0.03097,"12.2-12.5":0.54949,"13.0-13.1":0.03716,"13.2":0.01593,"13.3":0.10264,"13.4-13.7":0.25395,"14.0-14.4":0.86981,"14.5-14.8":5.8533},E:{"4":0,"7":0.00311,"11":0.00933,"12":0.01865,"13":0.03109,"14":0.25805,"15":0.15545,_:"0 5 6 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00311,"10.1":0.02176,"11.1":0.03109,"12.1":0.05907,"13.1":0.171,"14.1":1.40216},B:{"12":0.01555,"14":0.00311,"15":0.00311,"16":0.01244,"17":0.00622,"18":0.04664,"84":0.00933,"85":0.00933,"86":0.00622,"89":0.0342,"90":0.00933,"91":0.03109,"92":0.37308,"93":1.74415,"94":0.34199,_:"13 79 80 81 83 87 88"},P:{"4":0.32324,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.03128,"8.2":0.08214,"9.2":0.03128,"10.1":0.01043,"11.1-11.2":0.08342,"12.0":0.06256,"13.0":0.09384,"14.0":0.26068,"15.0":1.05314},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.01246,"4.4":0,"4.4.3-4.4.4":0.33204},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00359,"11":0.13632,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":55.18433},S:{"2.5":0},R:{_:"0"},M:{"0":0.2756},Q:{"10.4":0.13091},O:{"0":2.69399},H:{"0":0.79581}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js deleted file mode 100644 index 191ae6eb92d93a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00431,"17":0.00431,"42":0.01292,"43":0.01292,"47":0.00861,"52":0.05597,"72":0.00861,"78":0.02583,"83":0.01292,"85":0.00431,"86":0.00431,"88":0.02153,"89":0.03014,"90":0.01722,"91":0.71463,"92":1.39482,"93":0.04305,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 84 87 94 3.5 3.6"},D:{"38":0.02153,"39":0.00861,"48":0.00431,"49":0.06888,"58":0.01292,"62":0.00431,"63":0.02153,"65":0.02583,"66":0.01722,"67":0.01292,"68":0.00861,"69":0.03444,"70":0.02583,"71":0.00861,"72":0.00861,"73":0.02153,"74":0.04305,"75":0.01722,"76":0.03014,"77":0.00861,"78":0.01292,"79":0.12054,"80":0.05166,"81":0.02153,"83":0.03444,"84":0.03014,"85":0.06027,"86":0.07749,"87":0.61131,"88":0.05166,"89":0.10763,"90":0.19373,"91":0.3401,"92":5.88924,"93":20.99549,"94":3.04364,"95":0.01722,"96":0.01722,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 59 60 61 64 97"},F:{"28":0.01292,"36":0.01722,"46":0.00861,"73":0.00861,"77":0.05166,"78":1.00737,"79":0.30135,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.73074,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00672,"6.0-6.1":0.00336,"7.0-7.1":0.01512,"8.1-8.4":0,"9.0-9.2":0.00672,"9.3":0.10079,"10.0-10.2":0.00672,"10.3":0.08735,"11.0-11.2":0.04872,"11.3-11.4":0.05711,"12.0-12.1":0.05376,"12.2-12.5":1.43459,"13.0-13.1":0.05544,"13.2":0.02184,"13.3":0.16295,"13.4-13.7":0.55267,"14.0-14.4":2.41563,"14.5-14.8":11.03159},E:{"4":0,"11":0.00431,"13":0.04736,"14":0.32718,"15":0.0818,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00861,"11.1":0.03875,"12.1":0.05597,"13.1":0.11193,"14.1":0.92988},B:{"12":0.00861,"13":0.00431,"14":0.00431,"15":0.00431,"16":0.00861,"17":0.00861,"18":0.04305,"84":0.02153,"85":0.00861,"86":0.00861,"88":0.00431,"89":0.04736,"90":0.01292,"91":0.01722,"92":0.39606,"93":1.57133,"94":0.31857,_:"79 80 81 83 87"},P:{"4":0.52673,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.23298,"8.2":0.02011,"9.2":0.21272,"10.1":0.02026,"11.1-11.2":0.21272,"12.0":0.08104,"13.0":0.45582,"14.0":0.91165,"15.0":3.23129},I:{"0":0,"3":0,"4":0.00088,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00088,"4.2-4.3":0.00133,"4.4":0,"4.4.3-4.4.4":0.01969},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01339,"9":0.01339,"10":0.01339,"11":0.2009,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":35.90719},S:{"2.5":0},R:{_:"0"},M:{"0":0.17658},Q:{"10.4":0.05696},O:{"0":0.1481},H:{"0":0.16178}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js deleted file mode 100644 index e2e4495f25bb0f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00441,"5":0.00441,"11":0.06617,"15":0.00441,"17":0.00882,"34":0.06617,"52":0.00882,"56":0.01323,"75":0.00882,"77":0.02647,"78":0.00882,"82":0.00441,"88":0.06175,"89":0.02647,"90":0.00882,"91":0.41463,"92":0.78075,"94":0.00441,_:"2 3 6 7 8 9 10 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 79 80 81 83 84 85 86 87 93 3.5 3.6"},D:{"22":0.03088,"23":0.00441,"24":0.00882,"26":0.04852,"30":0.01764,"34":0.05293,"38":0.19408,"43":0.00441,"49":0.23378,"53":0.08381,"54":0.00882,"55":0.01764,"57":0.01764,"58":0.02206,"61":0.06175,"62":0.01764,"63":0.01323,"64":0.00882,"65":0.00441,"66":0.03529,"67":0.02647,"68":0.03088,"69":0.05293,"70":0.01323,"71":0.04852,"72":0.03529,"73":0.04852,"74":0.04852,"75":0.05734,"76":0.02647,"77":0.03088,"78":0.04411,"79":0.38376,"80":0.06617,"81":0.08381,"83":0.03529,"84":0.01323,"85":0.01323,"86":0.37494,"87":0.09704,"88":0.1191,"89":0.16321,"90":0.4014,"91":0.79839,"92":5.8534,"93":14.26959,"94":2.13051,"95":0.00882,"96":0.00882,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 25 27 28 29 31 32 33 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 56 59 60 97"},F:{"36":0.04411,"46":0.06175,"58":0.00441,"78":0.16762,"79":0.05734,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00309,"15":0.66129,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.08652,"7.0-7.1":0.06489,"8.1-8.4":0.14215,"9.0-9.2":0.02781,"9.3":0.28738,"10.0-10.2":0.0927,"10.3":0.33065,"11.0-11.2":0.2194,"11.3-11.4":0.32447,"12.0-12.1":0.27811,"12.2-12.5":1.7274,"13.0-13.1":0.11434,"13.2":0.11125,"13.3":0.38936,"13.4-13.7":1.08774,"14.0-14.4":3.0129,"14.5-14.8":21.94012},E:{"4":0,"10":0.01323,"11":0.02206,"12":0.03529,"13":0.18967,"14":1.19979,"15":0.24702,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1","9.1":0.00882,"10.1":0.05293,"11.1":0.07499,"12.1":0.10145,"13.1":0.59107,"14.1":8.12065},B:{"17":0.00882,"18":0.07499,"89":0.01764,"91":0.01323,"92":0.39258,"93":1.79969,"94":0.37935,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.73053,"5.0-5.4":0.0208,"6.2-6.4":0.08043,"7.2-7.4":0.03159,"8.2":0.02011,"9.2":0.05372,"10.1":0.08319,"11.1-11.2":0.04212,"12.0":0.04212,"13.0":0.12892,"14.0":0.16115,"15.0":1.68666},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00051,"4.2-4.3":0.00103,"4.4":0,"4.4.3-4.4.4":0.02641},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01579,"10":0.01579,"11":0.75799,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.84402,"11":0.15172},L:{"0":21.55794},S:{"2.5":0},R:{_:"0"},M:{"0":0.20679},Q:{"10.4":0.40241},O:{"0":0.79923},H:{"0":0.08466}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js deleted file mode 100644 index 8c92d654fb4839..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MP.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"46":0.01873,"52":0.16853,"77":0.01248,"85":0.01248,"86":0.04369,"88":0.1935,"90":0.05618,"91":0.56178,"92":1.14853,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 80 81 82 83 84 87 89 93 94 3.5 3.6"},D:{"49":0.08115,"53":0.00624,"55":0.09987,"57":0.01873,"65":0.04994,"67":0.04994,"71":0.01248,"74":0.00624,"75":0.00624,"76":0.02497,"79":0.18102,"80":0.01248,"81":0.1186,"83":0.06866,"84":0.04369,"86":0.01248,"87":0.51184,"88":0.00624,"89":0.01873,"90":0.06866,"91":1.18598,"92":10.1807,"93":22.38381,"94":3.80138,"95":0.01248,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 56 58 59 60 61 62 63 64 66 68 69 70 72 73 77 78 85 96 97"},F:{"78":2.19094,"79":0.40573,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.55903,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.3691,"8.1-8.4":0,"9.0-9.2":0.00717,"9.3":0.01672,"10.0-10.2":0,"10.3":0.09556,"11.0-11.2":0.09914,"11.3-11.4":0.00358,"12.0-12.1":0.00956,"12.2-12.5":1.14912,"13.0-13.1":0,"13.2":0.00836,"13.3":0.12423,"13.4-13.7":0.14931,"14.0-14.4":1.28052,"14.5-14.8":8.06775},E:{"4":0,"13":0.09363,"14":1.25464,"15":0.34955,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01248,"11.1":0.04369,"12.1":0.11236,"13.1":0.89261,"14.1":5.96111},B:{"13":0.01248,"15":0.00624,"18":0.09363,"89":0.01248,"91":0.01248,"92":1.06738,"93":4.47551,"94":0.64917,_:"12 14 16 17 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.2353,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.02139,"8.2":0.01063,"9.2":0.13904,"10.1":0.04099,"11.1-11.2":0.11765,"12.0":0.02286,"13.0":0.29947,"14.0":0.36364,"15.0":4.3102},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.64661,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":20.28924},S:{"2.5":0},R:{_:"0"},M:{"0":0.14656},Q:{"10.4":0.00376},O:{"0":0.03006},H:{"0":0.03558}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js deleted file mode 100644 index 31c276a0a71385..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MQ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.01354,"60":0.05867,"78":0.09026,"82":0.21211,"83":0.00451,"84":0.01805,"85":0.01805,"87":0.00903,"88":0.04964,"89":0.05416,"90":0.02708,"91":1.43965,"92":3.28095,"93":0.00451,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 86 94 3.5 3.6"},D:{"47":0.00903,"49":0.09929,"53":0.00451,"58":0.01354,"63":0.00903,"64":0.00903,"65":0.00903,"67":0.05867,"69":0.00451,"74":0.01354,"75":0.00903,"76":0.00451,"78":0.00903,"79":0.0361,"80":0.00451,"81":0.02257,"83":0.00451,"84":0.04062,"85":0.00451,"86":0.01805,"87":0.06318,"88":0.02257,"89":0.03159,"90":0.06318,"91":0.64987,"92":4.47238,"93":16.26937,"94":2.82514,"95":0.02708,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 59 60 61 62 66 68 70 71 72 73 77 96 97"},F:{"46":0.02257,"77":0.02708,"78":0.74465,"79":0.10831,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0163,"15":0.9782,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00136,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.02445,"9.0-9.2":0,"9.3":0.1019,"10.0-10.2":0,"10.3":0.05027,"11.0-11.2":0.0231,"11.3-11.4":0.18477,"12.0-12.1":0.00951,"12.2-12.5":0.45921,"13.0-13.1":0.02174,"13.2":0.01223,"13.3":0.1182,"13.4-13.7":0.22009,"14.0-14.4":1.20101,"14.5-14.8":10.16101},E:{"4":0,"10":0.00451,"11":0.00903,"12":0.01354,"13":0.36555,"14":0.83039,"15":0.24822,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05867,"11.1":0.07672,"12.1":0.31591,"13.1":0.3114,"14.1":2.96504},B:{"14":0.01354,"15":0.00451,"16":0.00903,"17":0.01805,"18":0.06318,"84":0.01805,"86":0.00903,"87":0.00903,"89":0.01354,"90":0.00903,"91":0.05416,"92":1.13728,"93":4.53105,"94":0.71757,_:"12 13 79 80 81 83 85 88"},P:{"4":0.05209,"5.0-5.4":0.01045,"6.2-6.4":0.03026,"7.2-7.4":0.07293,"8.2":0.04035,"9.2":0.14586,"10.1":0.01042,"11.1-11.2":0.32297,"12.0":0.04167,"13.0":0.20837,"14.0":0.84388,"15.0":3.84434},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00324,"4.4":0,"4.4.3-4.4.4":0.04614},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.695,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":36.06858},S:{"2.5":0},R:{_:"0"},M:{"0":0.43339},Q:{"10.4":0},O:{"0":0.09326},H:{"0":0.10388}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js deleted file mode 100644 index 821c9133af0a4b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.00136,"43":0.00679,"47":0.00271,"49":0.02036,"52":0.02036,"58":0.00679,"70":0.00136,"72":0.00543,"78":0.03121,"80":0.01086,"81":0.00271,"88":0.01493,"89":0.01221,"90":0.00679,"91":0.43695,"92":0.69071,"93":0.00136,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 48 50 51 53 54 55 56 57 59 60 61 62 63 64 65 66 67 68 69 71 73 74 75 76 77 79 82 83 84 85 86 87 94 3.5 3.6"},D:{"11":0.00407,"19":0.00271,"31":0.00136,"33":0.04071,"37":0.00407,"38":0.00136,"39":0.00271,"40":0.00136,"43":0.02171,"44":0.00271,"47":0.00136,"48":0.00814,"49":0.00814,"50":0.00814,"57":0.10856,"58":0.0095,"60":0.00407,"61":0.00136,"62":0.00136,"63":0.02171,"65":0.00407,"66":0.00136,"67":0.00814,"69":0.02578,"70":0.03664,"71":0.00136,"72":0.00271,"73":0.00543,"74":0.02307,"75":0.00136,"76":0.00271,"77":0.00543,"78":0.01357,"79":0.01221,"80":0.0285,"81":0.0095,"83":0.01493,"84":0.04885,"85":0.00543,"86":0.04207,"87":0.17641,"88":0.01493,"89":0.02171,"90":0.02578,"91":0.14384,"92":1.24166,"93":4.19992,"94":0.67307,"95":0.02171,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 32 34 35 36 41 42 45 46 51 52 53 54 55 56 59 64 68 96 97"},F:{"57":0.00136,"77":0.04342,"78":0.12484,"79":0.05699,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00456,"15":0.3365,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00091,"7.0-7.1":0.00456,"8.1-8.4":0,"9.0-9.2":0.05563,"9.3":0.02736,"10.0-10.2":0.00182,"10.3":0.06019,"11.0-11.2":0.17509,"11.3-11.4":0.13314,"12.0-12.1":0.07569,"12.2-12.5":1.18003,"13.0-13.1":0.07022,"13.2":0.0228,"13.3":0.13314,"13.4-13.7":0.31917,"14.0-14.4":1.87492,"14.5-14.8":4.64262},E:{"4":0,"13":0.00271,"14":0.03528,"15":0.01628,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00543,"11.1":0.00407,"12.1":0.00543,"13.1":0.01086,"14.1":0.14791},B:{"12":0.00679,"13":0.00543,"14":0.00136,"15":0.00543,"17":0.00814,"18":0.02307,"84":0.00814,"86":0.00407,"89":0.00814,"90":0.00271,"91":0.01221,"92":0.19948,"93":0.47766,"94":0.10585,_:"16 79 80 81 83 85 87 88"},P:{"4":1.10603,"5.0-5.4":0.09049,"6.2-6.4":0.08044,"7.2-7.4":1.94058,"8.2":0.02011,"9.2":0.37203,"10.1":0.13071,"11.1-11.2":1.468,"12.0":0.18099,"13.0":1.0457,"14.0":1.87019,"15.0":1.78976},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00127,"4.2-4.3":0.00507,"4.4":0,"4.4.3-4.4.4":0.0628},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.01063,"7":0.01063,"8":0.0372,"9":0.01063,"10":0.02125,"11":0.8555,_:"5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":68.57136},S:{"2.5":0},R:{_:"0"},M:{"0":0.21608},Q:{"10.4":0.02593},O:{"0":0.44079},H:{"0":0.63825}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js deleted file mode 100644 index 86690f13458e74..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"91":0.03233,"92":0.3427,"93":0.17458,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 94 3.5 3.6"},D:{"55":0.23924,"68":0.03233,"75":0.79532,"81":0.89877,"87":6.14917,"92":7.35831,"93":24.11171,"94":2.2825,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 76 77 78 79 80 83 84 85 86 88 89 90 91 95 96 97"},F:{"78":0.03233,"79":0.13579,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.08379,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.16758,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.02793,"12.2-12.5":0.25137,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":4.39309,"14.0-14.4":0.20947,"14.5-14.8":2.21749},E:{"4":0,"14":0.23924,"15":2.00446,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1","14.1":2.79978},B:{"13":0.07113,"14":0.10346,"85":0.03233,"90":0.13579,"91":0.17458,"92":1.6553,"93":11.08919,"94":1.51951,_:"12 15 16 17 18 79 80 81 83 84 86 87 88 89"},P:{"4":1.01779,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.07166,"8.2":0.02011,"9.2":0.01024,"10.1":0.07166,"11.1-11.2":0.29689,"12.0":0.16963,"13.0":0.05654,"14.0":0.62198,"15.0":0.79162},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.9311,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":26.3858},S:{"2.5":0},R:{_:"0"},M:{"0":0.22618},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js deleted file mode 100644 index 6a5c40878352d0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.02361,"52":0.02951,"78":0.04722,"82":0.0059,"86":0.0118,"87":0.01771,"89":0.03541,"90":0.01771,"91":0.5961,"92":1.27483,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 88 93 94 3.5 3.6"},D:{"49":0.21837,"53":0.0059,"65":0.01771,"67":0.01771,"69":0.17706,"72":0.0059,"74":0.06492,"75":0.0059,"76":0.0118,"77":0.04131,"78":0.0118,"79":0.06492,"80":0.04722,"81":0.0118,"83":0.02951,"84":0.0118,"85":0.0118,"86":0.07082,"87":0.32461,"88":0.12984,"89":0.08853,"90":0.10033,"91":0.34232,"92":7.28307,"93":28.16434,"94":6.63975,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 61 62 63 64 66 68 70 71 73 95 96 97"},F:{"28":0.0118,"46":0.0059,"77":0.0059,"78":1.05056,"79":0.20657,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.9014,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00238,"7.0-7.1":0.00595,"8.1-8.4":0.01546,"9.0-9.2":0,"9.3":0.09632,"10.0-10.2":0.00714,"10.3":0.33178,"11.0-11.2":0.03211,"11.3-11.4":0.02022,"12.0-12.1":0.02259,"12.2-12.5":0.44238,"13.0-13.1":0.01665,"13.2":0.00357,"13.3":0.03092,"13.4-13.7":0.22951,"14.0-14.4":0.86811,"14.5-14.8":8.86062},E:{"4":0,"11":0.0118,"13":0.06492,"14":0.66102,"15":0.31281,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1","9.1":0.0118,"10.1":0.0118,"11.1":0.08263,"12.1":0.07082,"13.1":0.38363,"14.1":2.89198},B:{"14":0.0118,"17":0.0118,"18":0.05902,"81":0.0118,"85":0.0118,"86":0.0059,"88":0.02951,"89":0.0059,"90":0.0059,"91":0.03541,"92":0.70234,"93":4.03697,"94":0.98563,_:"12 13 15 16 79 80 83 84 87"},P:{"4":0.15057,"5.0-5.4":0.04035,"6.2-6.4":0.03026,"7.2-7.4":0.98852,"8.2":0.04035,"9.2":0.04302,"10.1":0.03026,"11.1-11.2":0.08604,"12.0":0.02151,"13.0":0.1183,"14.0":0.2151,"15.0":2.71024},I:{"0":0,"3":0,"4":0.0039,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00195,"4.2-4.3":0.0039,"4.4":0,"4.4.3-4.4.4":0.08864},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.26559,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":25.58985},S:{"2.5":0},R:{_:"0"},M:{"0":0.22954},Q:{"10.4":0},O:{"0":0.16396},H:{"0":0.1009}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js deleted file mode 100644 index 0fd7a3d8606728..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.01185,"48":0.00592,"52":0.04738,"69":0.00592,"78":0.03554,"84":0.01185,"87":0.00592,"89":0.01777,"90":0.02962,"91":0.47976,"92":0.9773,"93":0.02369,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 88 94 3.5 3.6"},D:{"29":0.01777,"34":0.01777,"38":0.077,"39":0.00592,"47":0.00592,"49":0.21915,"51":0.31392,"53":0.02962,"55":0.03554,"63":0.00592,"65":0.02369,"66":0.02369,"71":0.00592,"72":0.07108,"73":0.00592,"75":0.00592,"76":0.00592,"77":0.01777,"78":0.01185,"79":0.11254,"80":0.01777,"81":0.01777,"83":0.04738,"84":0.02962,"85":0.05923,"86":0.11846,"87":0.385,"88":0.11254,"89":0.02369,"90":0.06515,"91":0.63376,"92":10.03949,"93":28.55478,"94":4.65548,"95":0.01185,"96":0.02962,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 35 36 37 40 41 42 43 44 45 46 48 50 52 54 56 57 58 59 60 61 62 64 67 68 69 70 74 97"},F:{"28":0.00592,"77":0.00592,"78":0.37907,"79":0.08885,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00117,"15":0.17581,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01924,"6.0-6.1":0.00175,"7.0-7.1":0.03936,"8.1-8.4":0.01108,"9.0-9.2":0.00058,"9.3":0.04898,"10.0-10.2":0.00204,"10.3":0.05452,"11.0-11.2":0.00612,"11.3-11.4":0.00408,"12.0-12.1":0.02595,"12.2-12.5":0.31168,"13.0-13.1":0.00875,"13.2":0.00408,"13.3":0.01458,"13.4-13.7":0.07435,"14.0-14.4":0.16648,"14.5-14.8":1.94444},E:{"4":0,"12":0.01777,"13":0.02369,"14":0.17769,"15":0.07108,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02369,"12.1":0.02962,"13.1":0.10069,"14.1":0.89437},B:{"13":0.01185,"14":0.01777,"16":0.00592,"17":0.01777,"18":0.05923,"80":0.01185,"89":0.01185,"91":0.02962,"92":1.60513,"93":2.81935,"94":0.55676,_:"12 15 79 81 83 84 85 86 87 88 90"},P:{"4":0.31055,"5.0-5.4":0.09049,"6.2-6.4":0.08044,"7.2-7.4":0.19668,"8.2":0.02011,"9.2":0.08281,"10.1":0.03105,"11.1-11.2":0.14492,"12.0":0.11387,"13.0":0.22774,"14.0":0.53828,"15.0":2.5879},I:{"0":0,"3":0,"4":0.00042,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00084,"4.2-4.3":0.00231,"4.4":0,"4.4.3-4.4.4":0.03313},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":3.7848,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":32.95283},S:{"2.5":0},R:{_:"0"},M:{"0":0.16716},Q:{"10.4":0.01631},O:{"0":0.57078},H:{"0":0.44774}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js deleted file mode 100644 index 6b7ce124135b0a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MV.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.00998,"17":0.00749,"45":0.0025,"47":0.0025,"52":0.00998,"56":0.00749,"62":0.0025,"66":0.00998,"67":0.0025,"72":0.00749,"78":0.01498,"79":0.0025,"82":0.0025,"87":0.0025,"88":0.0025,"89":0.01498,"90":0.02746,"91":0.4992,"92":0.71635,"93":0.02246,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 48 49 50 51 53 54 55 57 58 59 60 61 63 64 65 68 69 70 71 73 74 75 76 77 80 81 83 84 85 86 94 3.5 3.6"},D:{"23":0.00749,"24":0.00499,"25":0.00749,"41":0.0025,"49":0.30701,"63":0.00499,"65":0.00499,"68":0.0025,"69":0.00749,"70":0.00998,"73":0.02246,"74":0.01997,"75":0.0025,"76":0.00749,"77":0.00749,"78":0.01498,"79":0.04243,"80":0.01747,"81":0.03994,"83":0.05242,"84":0.01997,"85":0.01248,"86":0.01498,"87":0.1273,"88":0.02995,"89":0.02246,"90":0.04243,"91":0.26458,"92":3.89126,"93":12.54989,"94":1.73222,"95":0.00998,"96":0.00499,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 66 67 71 72 97"},F:{"28":0.00499,"75":0.0025,"77":0.00499,"78":0.26208,"79":0.04493,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.54578,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00192,"6.0-6.1":0.00959,"7.0-7.1":0.00192,"8.1-8.4":0,"9.0-9.2":0.00384,"9.3":0.02685,"10.0-10.2":0,"10.3":0.01534,"11.0-11.2":0.01342,"11.3-11.4":0.03452,"12.0-12.1":0.0211,"12.2-12.5":0.5159,"13.0-13.1":0.06329,"13.2":0.01342,"13.3":0.1285,"13.4-13.7":0.3222,"14.0-14.4":1.91977,"14.5-14.8":14.53537},E:{"4":0,"11":0.00499,"12":0.00499,"13":0.02246,"14":0.19718,"15":0.09235,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00499,"11.1":0.00749,"12.1":0.01498,"13.1":0.08986,"14.1":0.79872},B:{"12":0.00499,"13":0.0025,"14":0.00499,"16":0.00749,"17":0.00499,"18":0.02995,"80":0.00749,"81":0.0025,"83":0.00499,"84":0.00499,"86":0.0025,"88":0.0025,"89":0.00998,"90":0.01747,"91":0.01997,"92":0.31699,"93":0.82618,"94":0.13978,_:"15 79 85 87"},P:{"4":0.04162,"5.0-5.4":0.03072,"6.2-6.4":0.04096,"7.2-7.4":0.04162,"8.2":0.02011,"9.2":0.02108,"10.1":0.03072,"11.1-11.2":0.05203,"12.0":0.04162,"13.0":0.09365,"14.0":0.47866,"15.0":1.59205},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.02928,"4.4":0,"4.4.3-4.4.4":0.27088},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00499,"8":0.00499,"9":0.00499,"10":0.00998,"11":0.13978,_:"6 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":51.74075},S:{"2.5":0},R:{_:"0"},M:{"0":0.5553},Q:{"10.4":0},O:{"0":1.28318},H:{"0":0.41915}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js deleted file mode 100644 index f39672d042b78a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"12":0.00699,"17":0.00699,"28":0.01397,"29":0.01747,"30":0.00349,"39":0.00699,"41":0.00349,"46":0.00349,"47":0.02096,"50":0.00349,"52":0.0978,"53":0.00349,"54":0.00699,"56":0.01397,"57":0.00349,"59":0.01747,"60":0.00349,"61":0.00349,"63":0.03493,"64":0.01397,"66":0.01048,"68":0.01048,"69":0.03144,"72":0.02445,"73":0.00349,"77":0.00349,"78":0.10479,"80":0.01397,"81":0.02096,"82":0.00699,"83":0.00349,"84":0.00349,"85":0.01048,"86":0.00699,"87":0.00349,"88":0.0524,"89":0.11527,"90":0.02794,"91":1.31686,"92":2.15169,"93":0.16417,"94":0.00349,_:"2 3 4 5 6 7 8 9 10 11 13 14 15 16 18 19 20 21 22 23 24 25 26 27 31 32 33 34 35 36 37 38 40 42 43 44 45 48 49 51 55 58 62 65 67 70 71 74 75 76 79 3.5 3.6"},D:{"23":0.00349,"24":0.00699,"25":0.00349,"33":0.01747,"38":0.00349,"41":0.00349,"43":0.00349,"44":0.01397,"48":0.00349,"49":0.01397,"50":0.00699,"55":0.00349,"57":0.02794,"58":0.00349,"60":0.00349,"62":0.01048,"63":0.01747,"64":0.00349,"65":0.01048,"67":0.01048,"68":0.00349,"69":0.01048,"70":0.02096,"71":0.00699,"72":0.0489,"73":0.02794,"74":0.01747,"75":0.02096,"76":0.02096,"77":0.01397,"78":0.02794,"79":0.12226,"80":0.04541,"81":0.01397,"83":0.01747,"84":0.01397,"85":0.01397,"86":0.17116,"87":0.13623,"88":0.0978,"89":0.0489,"90":0.09431,"91":0.33533,"92":3.5454,"93":9.94457,"94":1.30289,"95":0.02096,"96":0.01048,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 34 35 36 37 39 40 42 45 46 47 51 52 53 54 56 59 61 66 97"},F:{"34":0.00699,"36":0.00699,"42":0.01048,"51":0.00699,"63":0.00699,"64":0.16417,"75":0.01397,"76":0.17116,"77":0.07335,"78":0.73702,"79":0.24102,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00349},G:{"8":0,"15":0.07698,"3.2":0,"4.0-4.1":0.00064,"4.2-4.3":0.00361,"5.0-5.1":0.00106,"6.0-6.1":0.00276,"7.0-7.1":0.02502,"8.1-8.4":0.00212,"9.0-9.2":0.00827,"9.3":0.05153,"10.0-10.2":0.00276,"10.3":0.0299,"11.0-11.2":0.01018,"11.3-11.4":0.00954,"12.0-12.1":0.01145,"12.2-12.5":0.27165,"13.0-13.1":0.00573,"13.2":0.00933,"13.3":0.02121,"13.4-13.7":0.07507,"14.0-14.4":0.45679,"14.5-14.8":1.04569},E:{"4":0,"11":0.00699,"12":0.00349,"13":0.01048,"14":0.05589,"15":0.01747,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.05938,"11.1":0.01747,"12.1":0.02096,"13.1":0.06986,"14.1":0.24451},B:{"12":0.08383,"13":0.03493,"14":0.01397,"15":0.04541,"16":0.0489,"17":0.0489,"18":0.37026,"80":0.00349,"81":0.01048,"83":0.00349,"84":0.0524,"85":0.04192,"86":0.02445,"87":0.04192,"88":0.00699,"89":0.11527,"90":0.1502,"91":0.14671,"92":0.62525,"93":2.00149,"94":0.39471,_:"79"},P:{"4":0.4506,"5.0-5.4":0.03072,"6.2-6.4":0.04096,"7.2-7.4":0.14337,"8.2":0.02011,"9.2":0.07169,"10.1":0.03072,"11.1-11.2":0.08193,"12.0":0.10241,"13.0":0.16386,"14.0":0.53253,"15.0":0.77831},I:{"0":0,"3":0,"4":0.00165,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00331,"4.2-4.3":0.00772,"4.4":0,"4.4.3-4.4.4":0.11746},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0137,"10":0.00914,"11":0.33345,_:"6 7 9 5.5"},J:{"7":0,"10":0.29282},N:{"10":0.01251,"11":0.15172},L:{"0":46.09286},S:{"2.5":0.03254},R:{_:"0"},M:{"0":0.1887},Q:{"10.4":0.14966},O:{"0":7.35291},H:{"0":11.53228}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js deleted file mode 100644 index 757e608b172069..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MX.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.76277,"52":0.02757,"56":0.0046,"73":0.0046,"78":0.05974,"80":0.0046,"81":0.0046,"84":0.00919,"86":0.0046,"88":0.01379,"89":0.01838,"90":0.02757,"91":0.5514,"92":1.09361,"93":0.00919,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 82 83 85 87 94 3.5 3.6"},D:{"22":0.0046,"35":0.0046,"38":0.01838,"49":0.15623,"52":0.01379,"58":0.00919,"61":0.05514,"63":0.01379,"65":0.01838,"66":0.02298,"67":0.01838,"69":0.00919,"70":0.00919,"71":0.0046,"72":0.00919,"73":0.00919,"74":0.01838,"75":0.02298,"76":0.04136,"77":0.01838,"78":0.01379,"79":0.06433,"80":0.02757,"81":0.02757,"83":0.02757,"84":0.02757,"85":0.03217,"86":0.04595,"87":0.20218,"88":0.10109,"89":0.07812,"90":0.10569,"91":0.34463,"92":6.29515,"93":21.86761,"94":3.48301,"95":0.01379,"96":0.0046,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 40 41 42 43 44 45 46 47 48 50 51 53 54 55 56 57 59 60 62 64 68 97"},F:{"66":0.00919,"77":0.01838,"78":1.09361,"79":0.1884,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00184,"15":0.54861,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00735,"6.0-6.1":0.00368,"7.0-7.1":0.01103,"8.1-8.4":0.00735,"9.0-9.2":0.01378,"9.3":0.09925,"10.0-10.2":0.00276,"10.3":0.06984,"11.0-11.2":0.0147,"11.3-11.4":0.04043,"12.0-12.1":0.01654,"12.2-12.5":0.58996,"13.0-13.1":0.01654,"13.2":0.00643,"13.3":0.05146,"13.4-13.7":0.17644,"14.0-14.4":0.6451,"14.5-14.8":6.86172},E:{"4":0,"12":0.0046,"13":0.03676,"14":0.28949,"15":0.17002,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1","5.1":0.03676,"9.1":0.0046,"10.1":0.00919,"11.1":0.02757,"12.1":0.04595,"13.1":0.22056,"14.1":1.43364},B:{"12":0.00919,"14":0.0046,"15":0.0046,"16":0.0046,"17":0.00919,"18":0.17002,"84":0.01379,"85":0.0046,"89":0.01379,"90":0.00919,"91":0.02298,"92":0.50545,"93":2.37102,"94":0.51924,_:"13 79 80 81 83 86 87 88"},P:{"4":0.10613,"5.0-5.4":0.09049,"6.2-6.4":0.08044,"7.2-7.4":0.07429,"8.2":0.02011,"9.2":0.01061,"10.1":0.03105,"11.1-11.2":0.05307,"12.0":0.02123,"13.0":0.07429,"14.0":0.1592,"15.0":0.94458},I:{"0":0,"3":0,"4":0.00104,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00208,"4.2-4.3":0.0052,"4.4":0,"4.4.3-4.4.4":0.04574},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01965,"9":0.00982,"10":0.00491,"11":0.25051,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":44.93354},S:{"2.5":0.00541},R:{_:"0"},M:{"0":0.16759},Q:{"10.4":0},O:{"0":0.05947},H:{"0":0.18425}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js deleted file mode 100644 index 160d833c57a04c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.0159,"39":0.00398,"52":0.02783,"60":0.01988,"63":0.00398,"72":0.00398,"78":0.03181,"80":0.01193,"81":0.00398,"82":0.00398,"84":0.0159,"85":0.00795,"86":0.00398,"87":0.00398,"88":0.01988,"89":0.0159,"90":0.01193,"91":0.58447,"92":0.97412,"93":0.03976,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 83 94 3.5 3.6"},D:{"22":0.00795,"25":0.03578,"34":0.02386,"38":0.11133,"47":0.0159,"49":0.10735,"53":0.10735,"55":0.10735,"56":0.03578,"57":0.00398,"58":0.00795,"59":0.03181,"60":0.00795,"61":0.00398,"62":0.01193,"63":0.00795,"64":0.00398,"65":0.01988,"66":0.00795,"67":0.01988,"68":0.0159,"69":0.01988,"70":0.03181,"71":0.02386,"72":0.0159,"73":0.04771,"74":0.01988,"75":0.04771,"76":0.02783,"77":0.0159,"78":0.02386,"79":0.35784,"80":0.03181,"81":0.05964,"83":0.05169,"84":0.05169,"85":0.05566,"86":0.07157,"87":0.23856,"88":0.13121,"89":0.07157,"90":0.09542,"91":0.4135,"92":6.52859,"93":19.27565,"94":1.97607,"95":0.01988,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 96 97"},F:{"28":0.0159,"29":0.00398,"36":0.06362,"40":0.01193,"46":0.05964,"77":0.00795,"78":0.30615,"79":0.05566,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00497,"15":0.5967,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00373,"5.0-5.1":0.01616,"6.0-6.1":0.01367,"7.0-7.1":0.03481,"8.1-8.4":0.05097,"9.0-9.2":0.02362,"9.3":0.30457,"10.0-10.2":0.02486,"10.3":0.23122,"11.0-11.2":0.03605,"11.3-11.4":0.04724,"12.0-12.1":0.06961,"12.2-12.5":0.92613,"13.0-13.1":0.05097,"13.2":0.02362,"13.3":0.12183,"13.4-13.7":0.34559,"14.0-14.4":1.4097,"14.5-14.8":8.0915},E:{"4":0,"8":0.00398,"12":0.00398,"13":0.06759,"14":0.38567,"15":0.14314,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01193,"11.1":0.02783,"12.1":0.03578,"13.1":0.20675,"14.1":2.59633},B:{"17":0.00398,"18":0.01988,"84":0.00795,"89":0.00795,"91":0.00795,"92":0.26639,"93":1.21268,"94":0.19085,_:"12 13 14 15 16 79 80 81 83 85 86 87 88 90"},P:{"4":0.91715,"5.0-5.4":0.03072,"6.2-6.4":0.04096,"7.2-7.4":0.07379,"8.2":0.02011,"9.2":0.02108,"10.1":0.03072,"11.1-11.2":0.11596,"12.0":0.03163,"13.0":0.11596,"14.0":0.26355,"15.0":1.32829},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0035,"4.2-4.3":0.00701,"4.4":0,"4.4.3-4.4.4":0.03768},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.00584,"8":0.00584,"9":0.00584,"11":0.16935,_:"6 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":43.69429},S:{"2.5":0},R:{_:"0"},M:{"0":0.1506},Q:{"10.4":0.04217},O:{"0":1.27709},H:{"0":0.75281}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js deleted file mode 100644 index 34ce2674e19de2..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/MZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.01654,"41":0.00413,"52":0.02067,"66":0.00413,"68":0.00413,"72":0.00413,"78":0.0248,"84":0.03721,"85":0.00413,"88":0.02894,"89":0.03307,"90":0.0248,"91":0.44647,"92":0.95909,"93":0.02067,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 79 80 81 82 83 86 87 94 3.5 3.6"},D:{"33":0.12815,"38":0.00827,"40":0.08681,"43":0.07028,"49":0.08268,"55":0.09508,"56":0.00827,"57":0.00827,"58":0.00413,"60":0.07441,"61":0.00413,"63":0.05374,"65":0.00827,"69":0.0124,"70":0.0124,"72":0.00827,"73":0.01654,"74":0.04134,"75":0.0124,"77":0.00827,"79":0.04961,"80":0.01654,"81":0.29765,"83":0.01654,"84":0.00827,"85":0.0124,"86":0.03307,"87":0.35552,"88":0.02894,"89":0.05788,"90":0.04961,"91":0.20257,"92":3.25346,"93":12.71618,"94":1.79002,"95":0.0124,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 39 41 42 44 45 46 47 48 50 51 52 53 54 59 62 64 66 67 68 71 76 78 96 97"},F:{"42":0.00413,"53":0.01654,"64":0.00827,"65":0.00413,"77":0.19843,"78":1.91818,"79":0.95909,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00057,"15":0.10935,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00115,"5.0-5.1":0,"6.0-6.1":0.00458,"7.0-7.1":0.03607,"8.1-8.4":0,"9.0-9.2":0.00115,"9.3":0.08016,"10.0-10.2":0.00744,"10.3":0.19524,"11.0-11.2":0.04122,"11.3-11.4":0.05267,"12.0-12.1":0.08531,"12.2-12.5":1.40558,"13.0-13.1":0.02061,"13.2":0.00802,"13.3":0.10878,"13.4-13.7":0.15401,"14.0-14.4":0.98019,"14.5-14.8":2.43214},E:{"4":0,"13":0.02067,"14":0.04961,"15":0.02067,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 9.1 10.1","5.1":0.00413,"7.1":0.0124,"11.1":0.0124,"12.1":0.02067,"13.1":0.10748,"14.1":0.21497},B:{"12":0.02894,"13":0.0124,"14":0.00827,"15":0.01654,"16":0.07028,"17":0.0124,"18":0.11162,"84":0.01654,"85":0.01654,"89":0.05374,"90":0.02067,"91":0.07028,"92":0.6077,"93":1.69081,"94":0.31005,_:"79 80 81 83 86 87 88"},P:{"4":2.03306,"5.0-5.4":0.07091,"6.2-6.4":0.02026,"7.2-7.4":0.20536,"8.2":0.08214,"9.2":0.04107,"10.1":0.01027,"11.1-11.2":0.15402,"12.0":0.18482,"13.0":0.07188,"14.0":0.27724,"15.0":0.4826},I:{"0":0,"3":0,"4":0.00067,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00134,"4.2-4.3":0.00537,"4.4":0,"4.4.3-4.4.4":0.0278},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.401,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.03519},N:{"10":0.01251,"11":0.15172},L:{"0":54.43682},S:{"2.5":0.08211},R:{_:"0"},M:{"0":0.06452},Q:{"10.4":0.01173},O:{"0":0.66861},H:{"0":6.14118}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js deleted file mode 100644 index 524baffe4c3efd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00726,"36":0.00726,"47":0.00726,"52":0.03993,"56":0.02178,"60":0.01089,"61":0.00363,"68":0.00363,"72":0.00726,"78":0.05082,"80":0.01815,"81":0.00363,"82":0.02178,"83":0.01089,"86":0.00726,"87":0.01815,"88":0.02541,"89":0.06171,"90":0.02541,"91":0.70422,"92":1.17249,"93":0.11253,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 57 58 59 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 84 85 94 3.5 3.6"},D:{"38":0.00363,"43":0.01815,"44":0.02178,"48":0.00363,"49":0.24684,"55":0.02541,"57":0.03993,"58":0.00363,"60":0.00726,"62":0.00363,"63":0.01815,"64":0.00726,"65":0.00363,"67":0.03267,"69":0.03993,"70":0.03993,"71":0.01089,"72":0.01089,"73":0.00363,"74":0.01089,"75":0.03267,"76":0.0363,"77":0.00363,"78":0.01089,"79":0.0363,"80":0.02178,"81":0.0363,"83":0.02178,"84":0.02541,"85":0.01089,"86":0.05808,"87":0.09801,"88":0.05808,"89":0.06171,"90":0.10164,"91":0.26136,"92":4.31607,"93":14.10981,"94":2.01465,"95":0.01089,"96":0.00363,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 45 46 47 50 51 52 53 54 56 59 61 66 68 97"},F:{"40":0.00363,"63":0.01089,"77":0.02904,"78":1.23057,"79":0.20691,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.23669,"3.2":0.0011,"4.0-4.1":0,"4.2-4.3":0.0011,"5.0-5.1":0.00548,"6.0-6.1":0,"7.0-7.1":0.00657,"8.1-8.4":0.00877,"9.0-9.2":0.0011,"9.3":0.04986,"10.0-10.2":0.00986,"10.3":0.18957,"11.0-11.2":0.01863,"11.3-11.4":0.05972,"12.0-12.1":0.0126,"12.2-12.5":0.59447,"13.0-13.1":0.00822,"13.2":0.01096,"13.3":0.07123,"13.4-13.7":0.11341,"14.0-14.4":0.87006,"14.5-14.8":3.20794},E:{"4":0,"12":0.00363,"13":0.01089,"14":0.09438,"15":0.13794,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.00363,"10.1":0.00363,"11.1":0.02541,"12.1":0.0363,"13.1":0.1089,"14.1":0.91113},B:{"12":0.02541,"13":0.0726,"14":0.02904,"15":0.01815,"16":0.03267,"17":0.02178,"18":0.19965,"80":0.00726,"84":0.02178,"85":0.01452,"86":0.00363,"88":0.01089,"89":0.04719,"90":0.01815,"91":0.04719,"92":0.68607,"93":2.74428,"94":0.5082,_:"79 81 83 87"},P:{"4":0.60096,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":1.83343,"8.2":0.08214,"9.2":0.11204,"10.1":0.03056,"11.1-11.2":0.80467,"12.0":0.17316,"13.0":0.60096,"14.0":1.34451,"15.0":2.80107},I:{"0":0,"3":0,"4":0.00017,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00104,"4.2-4.3":0.00694,"4.4":0,"4.4.3-4.4.4":0.03643},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00957,"11":0.63657,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01274},N:{"10":0.01251,"11":0.15172},L:{"0":51.28698},S:{"2.5":0},R:{_:"0"},M:{"0":0.24202},Q:{"10.4":0},O:{"0":0.52863},H:{"0":1.3989}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js deleted file mode 100644 index 6965a4e417e237..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.01502,"44":0.01502,"48":0.01001,"52":0.20024,"60":0.06508,"68":0.17521,"72":0.01001,"78":0.53564,"81":0.01001,"83":0.00501,"85":0.01502,"86":0.00501,"87":0.02503,"88":0.03504,"89":0.06508,"90":0.05507,"91":2.35783,"92":5.14617,"93":0.0851,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 82 84 94 3.5 3.6"},D:{"38":0.00501,"49":0.15018,"56":0.00501,"57":0.06508,"59":0.00501,"63":0.01502,"65":0.05006,"66":0.00501,"67":0.01502,"70":0.01502,"72":0.01502,"73":0.01502,"74":0.01502,"77":0.03004,"78":0.00501,"79":0.09011,"80":0.01502,"81":0.03004,"83":0.01502,"84":0.03004,"85":0.02002,"86":0.10012,"87":1.81217,"88":0.02002,"89":0.16019,"90":0.10513,"91":0.20525,"92":4.88085,"93":16.84519,"94":2.51301,"95":0.03004,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 58 60 61 62 64 68 69 71 75 76 96 97"},F:{"28":0.00501,"29":0.01502,"36":0.01001,"40":0.00501,"77":0.01001,"78":0.57068,"79":0.05507,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 33 34 35 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.4392,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00251,"6.0-6.1":0,"7.0-7.1":0.00878,"8.1-8.4":0.05145,"9.0-9.2":0.01129,"9.3":0.14556,"10.0-10.2":0.02133,"10.3":0.23592,"11.0-11.2":0.04016,"11.3-11.4":0.31246,"12.0-12.1":0.03639,"12.2-12.5":1.14319,"13.0-13.1":0.04392,"13.2":0.01631,"13.3":0.10541,"13.4-13.7":0.30995,"14.0-14.4":0.89849,"14.5-14.8":8.72511},E:{"4":0,"12":0.02503,"13":0.06007,"14":0.60072,"15":0.27032,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01001,"10.1":0.03504,"11.1":0.11514,"12.1":0.38546,"13.1":0.45555,"14.1":3.9197},B:{"15":0.00501,"16":0.01001,"17":0.00501,"18":0.04005,"85":0.01001,"89":0.01001,"90":0.00501,"91":0.04505,"92":0.79595,"93":3.36403,"94":0.81097,_:"12 13 14 79 80 81 83 84 86 87 88"},P:{"4":0.05317,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":0.81876,"8.2":0.01063,"9.2":0.10633,"10.1":0.0638,"11.1-11.2":0.84002,"12.0":0.0957,"13.0":0.37216,"14.0":1.44611,"15.0":3.95555},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00133,"4.2-4.3":0.00053,"4.4":0,"4.4.3-4.4.4":0.01812},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00501,"11":0.26031,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":30.17225},S:{"2.5":0},R:{_:"0"},M:{"0":0.41958},Q:{"10.4":0},O:{"0":0.01998},H:{"0":0.08039}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js deleted file mode 100644 index 3f50d4119c992d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"25":0.00868,"33":0.00217,"37":0.00434,"39":0.00217,"41":0.00217,"43":0.00434,"44":0.00217,"45":0.00868,"47":0.01301,"50":0.00868,"52":0.00434,"56":0.01085,"57":0.00434,"60":0.00217,"63":0.00868,"66":0.00434,"72":0.01518,"78":0.02169,"79":0.00651,"84":0.00434,"85":0.00868,"87":0.00651,"88":0.03037,"89":0.05856,"90":0.05206,"91":0.6854,"92":1.19295,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 34 35 36 38 40 42 46 48 49 51 53 54 55 58 59 61 62 64 65 67 68 69 70 71 73 74 75 76 77 80 81 82 83 86 93 94 3.5 3.6"},D:{"31":0.01735,"33":0.00651,"37":0.00651,"43":0.01085,"44":0.00217,"47":0.00651,"49":0.01518,"55":0.03254,"63":0.00434,"67":0.00651,"68":0.00868,"69":0.00651,"70":0.00651,"74":0.00434,"76":0.00651,"78":0.00434,"79":0.14099,"80":0.01085,"81":0.00868,"83":0.00868,"84":0.05856,"85":0.00651,"86":0.01952,"87":0.01085,"88":0.11713,"89":0.00434,"90":0.04121,"91":0.21473,"92":1.67013,"93":3.62006,"94":0.5596,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 34 35 36 38 39 40 41 42 45 46 48 50 51 52 53 54 56 57 58 59 60 61 62 64 65 66 71 72 73 75 77 95 96 97"},F:{"18":0.00217,"34":0.00651,"36":0.00434,"45":0.00217,"53":0.00434,"67":0.01301,"77":0.01301,"78":0.26462,"79":0.05856,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00133,"15":0.14561,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00044,"7.0-7.1":0.00133,"8.1-8.4":0.00089,"9.0-9.2":0.00177,"9.3":0.04913,"10.0-10.2":0,"10.3":0.11374,"11.0-11.2":0.13233,"11.3-11.4":0.03142,"12.0-12.1":0.02213,"12.2-12.5":0.69928,"13.0-13.1":0.07878,"13.2":0.01372,"13.3":0.04116,"13.4-13.7":0.18013,"14.0-14.4":1.03919,"14.5-14.8":1.87213},E:{"4":0,"10":0.00434,"13":0.00217,"14":0.01735,"15":0.06941,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.02386,"12.1":0.00434,"13.1":0.00651,"14.1":0.47501},B:{"12":0.02386,"13":0.04989,"14":0.01518,"15":0.00434,"16":0.00651,"17":0.03687,"18":0.06507,"80":0.00217,"84":0.01301,"85":0.01518,"88":0.00434,"89":0.01735,"90":0.00651,"91":0.0282,"92":0.52056,"93":1.68531,"94":0.31234,_:"79 81 83 86 87"},P:{"4":0.11604,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.07384,"8.2":0.01063,"9.2":0.07384,"10.1":0.04099,"11.1-11.2":0.0422,"12.0":0.03165,"13.0":0.07384,"14.0":0.42197,"15.0":0.22153},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00392,"4.4":0,"4.4.3-4.4.4":0.30932},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02071,"9":0.02071,"11":5.20757,_:"6 7 10 5.5"},J:{"7":0,"10":0.01566},N:{"10":0.01251,"11":0.15172},L:{"0":68.40094},S:{"2.5":0.05482},R:{_:"0"},M:{"0":0.07048},Q:{"10.4":0.38372},O:{"0":2.1222},H:{"0":4.36678}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js deleted file mode 100644 index 9a4fe03df6dc1a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.28612,"91":2.19582,"92":9.46199,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 93 94 3.5 3.6"},D:{"74":0.09316,"81":2.10266,"87":0.95818,"92":7.74526,"93":29.73007,"94":1.43726,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 78 79 80 83 84 85 86 88 89 90 91 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0.0807,"11.0-11.2":0.32044,"11.3-11.4":0,"12.0-12.1":0.0807,"12.2-12.5":1.20342,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.32162,"14.0-14.4":1.60456,"14.5-14.8":8.26016},E:{"4":0,"14":3.72624,_:"0 5 6 7 8 9 10 11 12 13 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.37928,"14.1":2.58175},B:{"16":0.09316,"92":2.58175,"93":1.33745,_:"12 13 14 15 17 18 79 80 81 83 84 85 86 87 88 89 90 91 94"},P:{"4":0.01143,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.03428,"8.2":0.01063,"9.2":0.03428,"10.1":0.04099,"11.1-11.2":0.04571,"12.0":0.02286,"13.0":0.09143,"14.0":8.96078,"15.0":5.07234},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.19297,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":8.32048},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js deleted file mode 100644 index f21f6f4407038e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00152,"34":0.00152,"40":0.00152,"43":0.03803,"44":0.00152,"45":0.00152,"47":0.01369,"48":0.00456,"50":0.00152,"52":0.02129,"55":0.00456,"56":0.00456,"57":0.00456,"58":0.00304,"60":0.00152,"65":0.00304,"66":0.00152,"68":0.00456,"72":0.00761,"76":0.00304,"77":0.00152,"78":0.03042,"79":0.00304,"80":0.00304,"81":0.00304,"82":0.00304,"83":0.00304,"84":0.00761,"85":0.00608,"86":0.00456,"87":0.00304,"88":0.00913,"89":0.02434,"90":0.02129,"91":0.51106,"92":0.76658,"93":0.05628,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 41 42 46 49 51 53 54 59 61 62 63 64 67 69 70 71 73 74 75 94 3.5 3.6"},D:{"11":0.00152,"23":0.00304,"29":0.00152,"38":0.00304,"47":0.01521,"48":0.00304,"49":0.01369,"50":0.00761,"53":0.00152,"55":0.00608,"56":0.00304,"57":0.00304,"58":0.01673,"59":0.00304,"61":0.00152,"62":0.00761,"63":0.00913,"64":0.01369,"65":0.00456,"66":0.00456,"67":0.00456,"68":0.00304,"69":0.00608,"70":0.01369,"71":0.00913,"72":0.00456,"73":0.00456,"74":0.01065,"75":0.00913,"76":0.00761,"77":0.01369,"78":0.00761,"79":0.03346,"80":0.04107,"81":0.02586,"83":0.02282,"84":0.01977,"85":0.02129,"86":0.03955,"87":0.10495,"88":0.03803,"89":0.04107,"90":0.05171,"91":0.20229,"92":1.51187,"93":4.45045,"94":0.60536,"95":0.01217,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 51 52 54 60 96 97"},F:{"34":0.00608,"36":0.01825,"62":0.00152,"64":0.02738,"65":0.00761,"76":0.00304,"77":0.02129,"78":0.27074,"79":0.07149,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00152},G:{"8":0.00143,"15":0.12253,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0.00191,"6.0-6.1":0.00095,"7.0-7.1":0.00429,"8.1-8.4":0.00048,"9.0-9.2":0.00143,"9.3":0.02956,"10.0-10.2":0.00286,"10.3":0.03433,"11.0-11.2":0.12205,"11.3-11.4":0.02861,"12.0-12.1":0.04815,"12.2-12.5":0.60024,"13.0-13.1":0.05816,"13.2":0.02479,"13.3":0.13778,"13.4-13.7":0.32563,"14.0-14.4":1.41073,"14.5-14.8":1.80834},E:{"4":0,"8":0.00152,"11":0.00152,"12":0.00304,"13":0.00913,"14":0.04867,"15":0.01673,_:"0 5 6 7 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01369,"10.1":0.00304,"11.1":0.00456,"12.1":0.00913,"13.1":0.03346,"14.1":0.13081},B:{"12":0.01521,"13":0.00304,"14":0.00304,"15":0.00608,"16":0.00761,"17":0.00761,"18":0.04867,"83":0.00456,"84":0.00608,"85":0.00608,"86":0.00304,"88":0.01825,"89":0.01217,"90":0.00608,"91":0.01673,"92":0.16883,"93":0.55364,"94":0.09278,_:"79 80 81 87"},P:{"4":0.01143,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.03428,"8.2":0.01063,"9.2":0.03428,"10.1":0.04099,"11.1-11.2":0.04571,"12.0":0.02286,"13.0":0.09143,"14.0":0.23999,"15.0":0.30856},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00084,"4.2-4.3":0.00295,"4.4":0,"4.4.3-4.4.4":0.05556},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00804,"10":0.00402,"11":0.09442,_:"6 7 9 5.5"},J:{"7":0,"10":0.01696},N:{"10":0.01251,"11":0.15172},L:{"0":36.44202},S:{"2.5":0.01696},R:{_:"0"},M:{"0":0.25437},Q:{"10.4":0},O:{"0":1.25489},H:{"0":42.6173}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js deleted file mode 100644 index 00f066ca3ad8ee..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.00862,"52":0.02156,"56":0.00431,"66":0.00431,"72":0.00862,"78":0.03881,"85":0.00862,"86":0.00431,"87":0.01294,"88":0.02156,"89":0.04312,"90":0.05606,"91":0.7546,"92":1.10387,"93":0.00862,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 94 3.5 3.6"},D:{"11":0.00431,"18":0.01294,"26":0.01294,"38":0.01294,"42":0.00431,"49":0.09918,"50":0.00431,"56":0.00431,"58":0.00431,"63":0.00862,"65":0.00431,"66":0.00431,"67":0.01294,"68":0.00862,"69":0.00431,"70":0.02587,"71":0.00862,"72":0.00862,"73":0.00862,"74":0.00862,"75":0.04312,"76":0.02587,"77":0.00862,"78":0.00862,"79":0.06037,"80":0.0345,"81":0.02156,"83":0.01725,"84":0.01294,"85":0.03018,"86":0.02156,"87":0.12936,"88":0.06899,"89":2.40178,"90":0.15523,"91":0.38377,"92":5.61854,"93":19.91282,"94":3.3073,"95":0.00862,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 43 44 45 46 47 48 51 52 53 54 55 57 59 60 61 62 64 96 97"},F:{"46":0.00431,"65":0.00862,"77":0.05606,"78":1.00038,"79":0.19835,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.31817,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01011,"6.0-6.1":0.00096,"7.0-7.1":0.03032,"8.1-8.4":0.00048,"9.0-9.2":0.00048,"9.3":0.06691,"10.0-10.2":0.00337,"10.3":0.01877,"11.0-11.2":0.01444,"11.3-11.4":0.01685,"12.0-12.1":0.01348,"12.2-12.5":0.33213,"13.0-13.1":0.0077,"13.2":0.00337,"13.3":0.08183,"13.4-13.7":0.09434,"14.0-14.4":0.5136,"14.5-14.8":3.28473},E:{"4":0,"12":0.00431,"13":0.09486,"14":0.10349,"15":0.09486,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.06037,"11.1":0.01294,"12.1":0.02156,"13.1":0.18973,"14.1":0.58643},B:{"12":0.00431,"14":0.00431,"15":0.00431,"16":0.00431,"17":0.00431,"18":0.08193,"84":0.01294,"85":0.00431,"89":0.02587,"90":0.03881,"91":0.04312,"92":0.37514,"93":1.66012,"94":0.41395,_:"13 79 80 81 83 86 87 88"},P:{"4":0.44059,"5.0-5.4":0.07091,"6.2-6.4":0.02049,"7.2-7.4":0.35862,"8.2":0.01063,"9.2":0.12296,"10.1":0.04099,"11.1-11.2":0.38936,"12.0":0.08197,"13.0":0.32788,"14.0":0.77872,"15.0":1.87507},I:{"0":0,"3":0,"4":0.00177,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00177,"4.2-4.3":0.00824,"4.4":0,"4.4.3-4.4.4":0.07355},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15092,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":49.58954},S:{"2.5":0.00569},R:{_:"0"},M:{"0":0.14789},Q:{"10.4":0},O:{"0":0.19908},H:{"0":0.31772}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js deleted file mode 100644 index ed2c70db284b3a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.01119,"52":0.02798,"60":0.01119,"63":0.0056,"68":0.01119,"78":0.12869,"79":0.02798,"80":0.02238,"81":0.03357,"82":0.02238,"83":0.03357,"84":0.03357,"86":0.0056,"87":0.01679,"88":0.03917,"89":0.03917,"90":0.04476,"91":0.96234,"92":2.17646,"93":0.01119,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 61 62 64 65 66 67 69 70 71 72 73 74 75 76 77 85 94 3.5 3.6"},D:{"38":0.01119,"47":0.02798,"48":0.02238,"49":0.48677,"52":0.08393,"59":0.01679,"61":0.25737,"62":0.01119,"63":0.01119,"64":0.08952,"65":0.01119,"66":0.01679,"67":0.01679,"69":0.02238,"70":0.12309,"71":0.01119,"72":0.10631,"73":0.02238,"74":0.01679,"75":0.02798,"76":0.10071,"77":0.02238,"78":0.02238,"79":0.24618,"80":0.12309,"81":0.02798,"83":0.20142,"84":0.25737,"85":0.24059,"86":0.6714,"87":0.73295,"88":0.08393,"89":0.08393,"90":0.14547,"91":0.6714,"92":5.16978,"93":22.64856,"94":2.84226,"95":0.0056,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 50 51 53 54 55 56 57 58 60 68 96 97"},F:{"68":0.01119,"71":0.01679,"72":0.0056,"77":0.02238,"78":0.55391,"79":0.15666,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.73015,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00494,"6.0-6.1":0,"7.0-7.1":0.00494,"8.1-8.4":0.00494,"9.0-9.2":0.07252,"9.3":0.11373,"10.0-10.2":0.00659,"10.3":0.12526,"11.0-11.2":0.01648,"11.3-11.4":0.03791,"12.0-12.1":0.02307,"12.2-12.5":0.76641,"13.0-13.1":0.02967,"13.2":0.01978,"13.3":0.12197,"13.4-13.7":0.32964,"14.0-14.4":1.21637,"14.5-14.8":12.85098},E:{"4":0,"11":0.01119,"12":0.01119,"13":0.08952,"14":0.74414,"15":0.35808,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01119,"11.1":0.05036,"12.1":0.09512,"13.1":0.52593,"14.1":4.83968},B:{"17":0.01119,"18":0.06714,"83":0.0056,"84":0.02238,"85":0.01679,"86":0.02238,"87":0.01119,"88":0.0056,"89":0.02798,"90":0.01119,"91":0.06155,"92":0.81687,"93":4.61028,"94":0.80568,_:"12 13 14 15 16 79 80 81"},P:{"4":0.0643,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":0.08621,"8.2":0.08214,"9.2":0.01072,"10.1":0.03056,"11.1-11.2":0.03215,"12.0":0.03215,"13.0":0.11788,"14.0":0.35363,"15.0":3.96494},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00277,"4.2-4.3":0.0083,"4.4":0,"4.4.3-4.4.4":0.03737},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"6":0.02121,"7":0.02121,"8":0.05302,"9":0.06363,"10":0.02121,"11":0.73171,_:"5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":22.15625},S:{"2.5":0},R:{_:"0"},M:{"0":0.40076},Q:{"10.4":0.01321},O:{"0":0.3347},H:{"0":0.33355}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js deleted file mode 100644 index ffe04faa157a5c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.01358,"59":0.02036,"78":0.06788,"87":0.02715,"88":0.04752,"89":0.01358,"90":0.02036,"91":0.72632,"92":2.95278,"93":0.00679,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 94 3.5 3.6"},D:{"38":0.02036,"49":0.04073,"62":0.00679,"63":0.01358,"65":0.02036,"66":0.07467,"67":0.01358,"69":0.14934,"70":0.00679,"71":0.00679,"72":0.00679,"73":0.01358,"75":0.02036,"76":0.01358,"77":0.01358,"78":0.01358,"79":0.07467,"80":0.02715,"81":0.02036,"83":0.02715,"84":0.01358,"85":4.15426,"86":0.06109,"87":0.15612,"88":0.10182,"89":0.07467,"90":0.21722,"91":0.6245,"92":7.59577,"93":32.4127,"94":3.59085,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 64 68 74 95 96 97"},F:{"71":0.01358,"77":0.02036,"78":0.88923,"79":0.16291,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.97256,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00372,"6.0-6.1":0,"7.0-7.1":0.0186,"8.1-8.4":0.01116,"9.0-9.2":0.00372,"9.3":0.07438,"10.0-10.2":0.00372,"10.3":0.11901,"11.0-11.2":0.01488,"11.3-11.4":0.06323,"12.0-12.1":0.03161,"12.2-12.5":0.50952,"13.0-13.1":0.0186,"13.2":0.0093,"13.3":0.08554,"13.4-13.7":0.23803,"14.0-14.4":1.30356,"14.5-14.8":15.1035},E:{"4":0,"12":0.01358,"13":0.10861,"14":1.06572,"15":0.40728,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02036,"11.1":0.06788,"12.1":0.13576,"13.1":0.5634,"14.1":5.45755},B:{"17":0.02036,"18":0.02715,"84":0.01358,"85":0.04073,"86":0.00679,"87":0.00679,"89":0.02036,"90":0.01358,"91":0.03394,"92":0.69916,"93":2.93242,"94":0.70595,_:"12 13 14 15 16 79 80 81 83 88"},P:{"4":0.0215,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.02139,"8.2":0.01063,"9.2":0.13904,"10.1":0.04099,"11.1-11.2":0.11765,"12.0":0.01075,"13.0":0.03226,"14.0":0.18278,"15.0":2.04286},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00178,"4.2-4.3":0.00119,"4.4":0,"4.4.3-4.4.4":0.01309},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.23079,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":11.15632},S:{"2.5":0},R:{_:"0"},M:{"0":0.15739},Q:{"10.4":0.00321},O:{"0":0.02891},H:{"0":0.14292}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js deleted file mode 100644 index d6bd0b637e34a0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NP.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00239,"52":0.01435,"72":0.00478,"78":0.0287,"79":0.00239,"84":0.00478,"86":0.00478,"87":0.20332,"88":0.01435,"89":0.0311,"90":0.01435,"91":0.44252,"92":0.78936,"93":0.0598,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 80 81 82 83 85 94 3.5 3.6"},D:{"29":0.00239,"32":0.00239,"38":0.00239,"49":0.01674,"53":0.00478,"58":0.00239,"60":0.00478,"61":0.00239,"63":0.00718,"64":0.00478,"65":0.01196,"67":0.00478,"69":0.00478,"70":0.00478,"71":0.00478,"72":0.00239,"73":0.00239,"74":0.00718,"75":0.00478,"76":0.00478,"77":0.00239,"78":0.01196,"79":0.04306,"80":0.01196,"81":0.01196,"83":0.01914,"84":0.03588,"85":0.01196,"86":0.0311,"87":0.1507,"88":0.01914,"89":0.38272,"90":0.03588,"91":0.12438,"92":3.76979,"93":11.90259,"94":1.99732,"95":0.04066,"96":0.00957,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 59 62 66 68 97"},F:{"29":0.00239,"36":0.00239,"75":0.00718,"77":0.00957,"78":0.4186,"79":0.13634,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.13122,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00041,"6.0-6.1":0.00041,"7.0-7.1":0.02723,"8.1-8.4":0.00165,"9.0-9.2":0.00743,"9.3":0.04704,"10.0-10.2":0.0066,"10.3":0.06685,"11.0-11.2":0.13328,"11.3-11.4":0.01568,"12.0-12.1":0.01362,"12.2-12.5":0.51331,"13.0-13.1":0.00495,"13.2":0.00413,"13.3":0.03053,"13.4-13.7":0.09243,"14.0-14.4":0.50795,"14.5-14.8":2.51828},E:{"4":0,"13":0.00957,"14":0.04784,"15":0.0311,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00957,"11.1":0.00957,"12.1":0.00957,"13.1":0.03588,"14.1":0.25355},B:{"12":0.00478,"14":0.00478,"15":0.00239,"16":0.00239,"17":0.00478,"18":0.01435,"80":0.00239,"81":0.00478,"84":0.00239,"89":0.12678,"91":0.00478,"92":0.21528,"93":0.87786,"94":0.20571,_:"13 79 83 85 86 87 88 90"},P:{"4":0.24786,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":0.08621,"8.2":0.08214,"9.2":0.01078,"10.1":0.03056,"11.1-11.2":0.04311,"12.0":0.02155,"13.0":0.10777,"14.0":0.17243,"15.0":0.60349},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00255,"4.2-4.3":0.00829,"4.4":0,"4.4.3-4.4.4":0.08804},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.02392,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":68.23809},S:{"2.5":0},R:{_:"0"},M:{"0":0.28907},Q:{"10.4":0},O:{"0":1.46054},H:{"0":1.05147}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js deleted file mode 100644 index 17b14b5478880e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"85":0.01365,"91":0.13311,"92":0.02389,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 93 94 3.5 3.6"},D:{"77":0.01365,"80":0.01365,"81":0.21502,"89":0.5256,"91":0.02389,"92":2.43347,"93":9.25947,"94":0.72014,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 78 79 83 84 85 86 87 88 90 95 96 97"},F:{"78":0.11946,"79":0.01365,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.25297,"10.0-10.2":0,"10.3":0.01081,"11.0-11.2":0.02163,"11.3-11.4":0.01081,"12.0-12.1":0,"12.2-12.5":0.05484,"13.0-13.1":0,"13.2":0,"13.3":0.05484,"13.4-13.7":0.06604,"14.0-14.4":0.57198,"14.5-14.8":2.81664},E:{"4":0,"11":0.02389,"13":0.01365,"14":14.38921,"15":0.06143,_:"0 5 6 7 8 9 10 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1","13.1":0.06143,"14.1":0.67236},B:{"80":0.01365,"84":0.03754,"88":0.04778,"89":0.03754,"92":0.23891,"93":1.17407,"94":0.31058,_:"12 13 14 15 16 17 18 79 81 83 85 86 87 90 91"},P:{"4":0.11134,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":0.04049,"8.2":0.08214,"9.2":0.11204,"10.1":0.03056,"11.1-11.2":0.02024,"12.0":0.17316,"13.0":0.04049,"14.0":0.29354,"15.0":3.37069},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.12287,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":54.07139},S:{"2.5":0},R:{_:"0"},M:{"0":0.30305},Q:{"10.4":0.01318},O:{"0":6.13343},H:{"0":0.88567}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js deleted file mode 100644 index aaa32a27d85e8f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"91":1.43016,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 92 93 94 3.5 3.6"},D:{"81":15.716,"92":10.71438,"93":6.42784,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 91 94 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":3.57007,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":5.71249},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"89":0.71508,"92":3.57146,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 90 91 93 94"},P:{"4":0.01143,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.03428,"8.2":0.01063,"9.2":0.03428,"10.1":0.04099,"11.1-11.2":0.04571,"12.0":0.02286,"13.0":0.09143,"14.0":0.23999,"15.0":0.30856},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.71508,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":49.28438},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":2.14306},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js deleted file mode 100644 index 168fdc748cb5df..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/NZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.0112,"52":0.0392,"58":0.0056,"59":0.0056,"60":0.0112,"68":0.0112,"78":0.14,"84":0.028,"85":0.0056,"86":0.0168,"87":0.0112,"88":0.0504,"89":0.0336,"90":0.028,"91":0.952,"92":1.7192,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 93 94 3.5 3.6"},D:{"20":0.0392,"26":0.0056,"34":0.0224,"38":0.1288,"49":0.1736,"53":0.0728,"57":0.0224,"58":0.0056,"61":0.028,"63":0.0224,"65":0.0336,"66":0.0112,"67":0.0448,"68":0.028,"69":0.0504,"70":0.0336,"71":0.0336,"72":0.0168,"73":0.028,"74":0.0392,"75":0.0392,"76":0.0672,"77":0.0336,"78":0.028,"79":0.3472,"80":0.0784,"81":0.0336,"83":0.0392,"84":0.028,"85":0.0168,"86":0.0896,"87":0.2408,"88":0.0784,"89":0.1904,"90":0.4256,"91":0.8456,"92":8.7192,"93":21.056,"94":2.9064,"95":0.0112,"96":0.0056,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 59 60 62 64 97"},F:{"36":0.0056,"46":0.084,"75":0.0112,"76":0.0056,"77":0.0056,"78":0.364,"79":0.0672,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00174,"15":0.57877,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00697,"6.0-6.1":0.0523,"7.0-7.1":0.02266,"8.1-8.4":0.04881,"9.0-9.2":0.01046,"9.3":0.30333,"10.0-10.2":0.03138,"10.3":0.32425,"11.0-11.2":0.14121,"11.3-11.4":0.09588,"12.0-12.1":0.06624,"12.2-12.5":1.3092,"13.0-13.1":0.02964,"13.2":0.01395,"13.3":0.08891,"13.4-13.7":0.40444,"14.0-14.4":1.11569,"14.5-14.8":12.77818},E:{"4":0,"11":0.0336,"12":0.0168,"13":0.1512,"14":0.8736,"15":0.3528,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.0056,"10.1":0.0448,"11.1":0.0896,"12.1":0.1792,"13.1":0.6776,"14.1":6.0256},B:{"17":0.0056,"18":0.1624,"83":0.0168,"84":0.0056,"85":0.0112,"89":0.0168,"90":0.0112,"91":0.0224,"92":0.8064,"93":3.4888,"94":0.6216,_:"12 13 14 15 16 79 80 81 86 87 88"},P:{"4":0.55625,"5.0-5.4":0.07091,"6.2-6.4":0.01019,"7.2-7.4":0.01091,"8.2":0.01063,"9.2":0.02181,"10.1":0.0638,"11.1-11.2":0.04363,"12.0":0.03272,"13.0":0.17451,"14.0":0.32721,"15.0":2.17046},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00251,"4.2-4.3":0.00401,"4.4":0,"4.4.3-4.4.4":0.03308},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.0864,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":22.752},S:{"2.5":0},R:{_:"0"},M:{"0":0.3652},Q:{"10.4":0.0396},O:{"0":0.2684},H:{"0":0.20412}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js deleted file mode 100644 index eaf34d6b055297..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/OM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00335,"52":0.00335,"78":0.00671,"84":0.01341,"86":0.00335,"89":0.01006,"90":0.00671,"91":0.24142,"92":0.45266,"93":0.01677,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 87 88 94 3.5 3.6"},D:{"11":0.00335,"22":0.00671,"33":0.00335,"34":0.00671,"37":0.01006,"38":0.01341,"43":0.00335,"49":0.04359,"55":0.00671,"56":0.00335,"62":0.01006,"63":0.00671,"64":0.00671,"65":0.00671,"67":0.00335,"68":0.00335,"69":0.01006,"70":0.01006,"72":0.00671,"73":0.00671,"74":0.00671,"75":0.01006,"76":0.01006,"77":0.00335,"78":0.01006,"79":0.09724,"80":0.01677,"81":0.01677,"83":0.03353,"84":0.01341,"85":0.02347,"86":0.02347,"87":0.1643,"88":0.15759,"89":0.07041,"90":0.04359,"91":0.38224,"92":3.69836,"93":14.98456,"94":2.71928,"95":0.03353,"96":0.00335,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 35 36 39 40 41 42 44 45 46 47 48 50 51 52 53 54 57 58 59 60 61 66 71 97"},F:{"28":0.00671,"36":0.00335,"46":0.01341,"77":0.00671,"78":0.42918,"79":0.08047,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.96928,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02291,"6.0-6.1":0,"7.0-7.1":0.07731,"8.1-8.4":0,"9.0-9.2":0.0043,"9.3":0.04725,"10.0-10.2":0.00286,"10.3":0.05154,"11.0-11.2":0.03579,"11.3-11.4":0.01432,"12.0-12.1":0.02291,"12.2-12.5":0.73447,"13.0-13.1":0.02004,"13.2":0.0272,"13.3":0.07874,"13.4-13.7":0.35077,"14.0-14.4":1.4847,"14.5-14.8":10.35995},E:{"4":0,"13":0.03353,"14":0.45936,"15":0.16094,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00671,"10.1":0.00335,"11.1":0.02682,"12.1":0.15424,"13.1":0.20118,"14.1":1.19032},B:{"12":0.01006,"13":0.00335,"14":0.00671,"15":0.01341,"16":0.01341,"17":0.01006,"18":0.11736,"84":0.01677,"85":0.00335,"89":0.01677,"90":0.01006,"91":0.04359,"92":0.33865,"93":2.02521,"94":0.50295,_:"79 80 81 83 86 87 88"},P:{"4":0.28884,"5.0-5.4":0.01055,"6.2-6.4":0.21098,"7.2-7.4":0.15474,"8.2":0.09284,"9.2":0.06189,"10.1":0.01032,"11.1-11.2":0.25789,"12.0":0.08253,"13.0":0.31979,"14.0":0.61895,"15.0":2.87811},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00149,"4.2-4.3":0.00671,"4.4":0,"4.4.3-4.4.4":0.07156},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":2.40745,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":46.97627},S:{"2.5":0},R:{_:"0"},M:{"0":0.09306},Q:{"10.4":0.01329},O:{"0":0.91729},H:{"0":0.57266}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js deleted file mode 100644 index d6f049eaecf08d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.0084,"57":0.01259,"73":0.05457,"78":0.06717,"79":0.0042,"85":0.0084,"86":0.0084,"87":0.0084,"88":0.02099,"89":0.01679,"90":0.05038,"91":0.46598,"92":0.88998,"93":0.01259,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 80 81 82 83 84 94 3.5 3.6"},D:{"10":0.02099,"38":0.01259,"49":0.19311,"56":0.0042,"58":0.01679,"63":0.0084,"65":0.01679,"67":0.01679,"69":0.0042,"70":0.01259,"71":0.0042,"73":0.03778,"74":0.05038,"75":0.03358,"76":0.02519,"77":0.01679,"78":0.0084,"79":0.12174,"80":0.02939,"81":0.13434,"83":0.01679,"84":0.02939,"85":0.01679,"86":0.09655,"87":0.37362,"88":0.05038,"89":0.06297,"90":0.08396,"91":0.28966,"92":5.18033,"93":19.63824,"94":4.02588,"95":0.0084,"96":0.0042,_:"4 5 6 7 8 9 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 59 60 61 62 64 66 68 72 97"},F:{"77":0.01679,"78":1.22582,"79":0.15533,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.47999,"3.2":0.00075,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00149,"6.0-6.1":0.01565,"7.0-7.1":0.02907,"8.1-8.4":0,"9.0-9.2":0.00224,"9.3":0.13565,"10.0-10.2":0.00224,"10.3":0.04547,"11.0-11.2":0.00969,"11.3-11.4":0.02087,"12.0-12.1":0.00969,"12.2-12.5":0.34285,"13.0-13.1":0.01043,"13.2":0.00522,"13.3":0.06037,"13.4-13.7":0.1595,"14.0-14.4":0.62086,"14.5-14.8":5.49904},E:{"4":0,"12":0.0084,"13":0.03358,"14":0.23929,"15":0.16372,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.09655,"10.1":0.0084,"11.1":0.01259,"12.1":0.02939,"13.1":0.22669,"14.1":1.78415},B:{"15":0.0084,"16":0.0084,"17":0.0084,"18":0.02939,"84":0.0042,"89":0.02099,"90":0.01259,"91":0.02519,"92":0.55833,"93":2.40126,"94":0.53734,_:"12 13 14 79 80 81 83 85 86 87 88"},P:{"4":0.24681,"5.0-5.4":0.02157,"6.2-6.4":0.01078,"7.2-7.4":0.4422,"8.2":0.09284,"9.2":0.07199,"10.1":0.05142,"11.1-11.2":0.34965,"12.0":0.11312,"13.0":0.30851,"14.0":0.70958,"15.0":2.56067},I:{"0":0,"3":0,"4":0.00311,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00155,"4.2-4.3":0.00622,"4.4":0,"4.4.3-4.4.4":0.07616},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.32325,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":46.19734},S:{"2.5":0},R:{_:"0"},M:{"0":0.21471},Q:{"10.4":0.01161},O:{"0":0.12186},H:{"0":0.2692}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js deleted file mode 100644 index 191e5e31d5a345..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.00594,"73":0.00594,"76":0.01188,"78":0.01783,"84":0.02377,"88":0.01783,"89":0.01783,"90":0.02377,"91":0.35652,"92":0.73681,"93":0.00594,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 77 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"22":0.00594,"38":0.02971,"47":0.00594,"49":0.08319,"53":0.01188,"63":0.00594,"65":0.00594,"69":0.01188,"70":0.01783,"71":0.00594,"72":0.00594,"73":0.00594,"74":0.01188,"75":0.01783,"76":0.01188,"77":0.01783,"78":0.01188,"79":0.1129,"80":0.05348,"81":0.14855,"83":0.04754,"84":0.03565,"85":0.03565,"86":0.05348,"87":0.20797,"88":0.05348,"89":0.08319,"90":0.10101,"91":0.65362,"92":8.93083,"93":33.51882,"94":5.92417,"95":0.01188,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 55 56 57 58 59 60 61 62 64 66 67 68 96 97"},F:{"77":0.02377,"78":1.96086,"79":0.27333,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.16318,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00204,"6.0-6.1":0.0028,"7.0-7.1":0.00178,"8.1-8.4":0.00025,"9.0-9.2":0.00102,"9.3":0.02393,"10.0-10.2":0.00535,"10.3":0.02088,"11.0-11.2":0.00662,"11.3-11.4":0.00535,"12.0-12.1":0.01069,"12.2-12.5":0.18024,"13.0-13.1":0.00586,"13.2":0.00484,"13.3":0.02648,"13.4-13.7":0.07179,"14.0-14.4":0.23956,"14.5-14.8":1.77236},E:{"4":0,"13":0.02971,"14":0.13667,"15":0.07725,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00594,"12.1":0.01188,"13.1":0.09507,"14.1":0.57637},B:{"18":0.02377,"89":0.01783,"90":0.00594,"91":0.01783,"92":0.39811,"93":1.91332,"94":0.40406,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88"},P:{"4":0.09698,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.07543,"8.2":0.0101,"9.2":0.02155,"10.1":0.0606,"11.1-11.2":0.12931,"12.0":0.02155,"13.0":0.08621,"14.0":0.2263,"15.0":0.56036},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00165,"4.2-4.3":0.00413,"4.4":0,"4.4.3-4.4.4":0.04293},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00668,"11":0.15375,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":37.91996},S:{"2.5":0},R:{_:"0"},M:{"0":0.07306},Q:{"10.4":0},O:{"0":0.02841},H:{"0":0.14218}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js deleted file mode 100644 index 498c51b467ac36..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"12":0.07112,"48":0.0158,"49":0.00395,"52":0.12248,"59":0.00395,"60":0.06717,"68":0.12643,"72":0.01185,"78":0.57685,"81":0.1778,"82":0.00395,"84":0.09482,"85":0.01976,"87":0.0079,"88":0.06717,"89":0.06322,"90":0.06322,"91":1.47767,"92":3.05412,_:"2 3 4 5 6 7 8 9 10 11 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 53 54 55 56 57 58 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 80 83 86 93 94 3.5 3.6"},D:{"49":0.08297,"53":0.11853,"61":0.53339,"62":0.00395,"63":0.0079,"65":0.01185,"67":0.0158,"70":0.00395,"71":0.0079,"73":0.0079,"75":0.0079,"79":0.03556,"83":0.0158,"85":0.01976,"86":0.06322,"87":0.11853,"88":0.01976,"89":0.02371,"90":0.07112,"91":0.47017,"92":3.7495,"93":11.25245,"94":1.27617,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 64 66 68 69 72 74 76 77 78 80 81 84 95 96 97"},F:{"77":0.01185,"78":0.45832,"79":0.07507,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.8986,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00511,"6.0-6.1":0.0485,"7.0-7.1":0.00255,"8.1-8.4":0.00255,"9.0-9.2":0.00255,"9.3":0.2221,"10.0-10.2":0.03319,"10.3":0.11232,"11.0-11.2":0.05616,"11.3-11.4":0.05361,"12.0-12.1":0.23231,"12.2-12.5":1.10283,"13.0-13.1":0.01532,"13.2":0,"13.3":0.28081,"13.4-13.7":0.77606,"14.0-14.4":2.52986,"14.5-14.8":19.14629},E:{"4":0,"8":0.01185,"12":0.01185,"13":0.09878,"14":1.75424,"15":0.1857,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05136,"11.1":0.06717,"12.1":0.1936,"13.1":0.75069,"14.1":4.96246},B:{"13":0.0079,"16":0.00395,"17":0.01185,"18":0.07507,"80":0.00395,"84":0.01976,"86":0.00395,"88":0.00395,"89":0.0158,"90":0.01976,"91":0.02371,"92":0.54919,"93":2.43382,"94":0.46622,_:"12 14 15 79 81 83 85 87"},P:{"4":0.07231,"5.0-5.4":0.03152,"6.2-6.4":0.05106,"7.2-7.4":0.16528,"8.2":0.01036,"9.2":0.03099,"10.1":0.02066,"11.1-11.2":0.23759,"12.0":0.03099,"13.0":0.33056,"14.0":0.5165,"15.0":2.87176},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00069,"4.2-4.3":0.00208,"4.4":0,"4.4.3-4.4.4":0.03957},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.48597,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":32.10277},S:{"2.5":0},R:{_:"0"},M:{"0":0.48997},Q:{"10.4":0},O:{"0":0.16332},H:{"0":0.07445}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js deleted file mode 100644 index 33a24b502eee86..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"30":0.00714,"43":0.00357,"44":0.06067,"47":0.00714,"49":0.00357,"52":0.00357,"61":0.01785,"66":0.02498,"69":0.00357,"70":0.00357,"71":0.00714,"72":0.01071,"76":0.00714,"77":0.02855,"78":0.02141,"81":0.01071,"82":0.06067,"83":0.00714,"84":0.07852,"85":0.0571,"86":0.02141,"87":0.02855,"88":0.12848,"89":0.12135,"90":0.11421,"91":0.93508,"92":1.24915,"93":0.03926,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 45 46 48 50 51 53 54 55 56 57 58 59 60 62 63 64 65 67 68 73 74 75 79 80 94 3.5 3.6"},D:{"11":0.00714,"26":0.01428,"29":0.01428,"31":0.01071,"38":0.00714,"47":0.01071,"49":0.01071,"53":0.01428,"55":0.0571,"56":0.04997,"57":0.00357,"58":0.01428,"60":0.03569,"62":0.01428,"63":0.02498,"64":0.00714,"65":0.00714,"66":0.01785,"67":0.02498,"68":0.01785,"69":0.1035,"70":0.27838,"71":0.01071,"72":0.01428,"73":0.00714,"74":0.01785,"75":0.00714,"76":0.01428,"77":0.01071,"78":0.01428,"79":0.02855,"80":0.08209,"81":0.12135,"83":0.01071,"84":0.0464,"85":0.03212,"86":0.03926,"87":0.23199,"88":0.07138,"89":0.07852,"90":0.17488,"91":0.28909,"92":3.92233,"93":11.28518,"94":1.81662,"95":0.00714,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 30 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 59 61 96 97"},F:{"23":0.01071,"72":0.01071,"77":0.17131,"78":0.42828,"79":0.11421,_:"9 11 12 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.03624,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00036,"6.0-6.1":0.00251,"7.0-7.1":0.00126,"8.1-8.4":0.00933,"9.0-9.2":0.03535,"9.3":0.06818,"10.0-10.2":0.00108,"10.3":0.01256,"11.0-11.2":0.00377,"11.3-11.4":0.01364,"12.0-12.1":0.03176,"12.2-12.5":0.23774,"13.0-13.1":0.01453,"13.2":0.00431,"13.3":0.03499,"13.4-13.7":0.0933,"14.0-14.4":0.4238,"14.5-14.8":0.76955},E:{"4":0,"9":0.01071,"11":0.00357,"13":0.03926,"14":0.06424,"15":0.0464,_:"0 5 6 7 8 10 12 3.1 3.2 5.1 6.1 7.1 11.1","9.1":0.00357,"10.1":0.00357,"12.1":0.02498,"13.1":0.04283,"14.1":0.18559},B:{"12":0.0571,"13":0.0571,"14":0.03569,"15":0.06067,"16":0.07138,"17":0.1035,"18":0.34976,"80":0.11421,"83":0.00357,"84":0.08209,"85":0.03212,"87":0.00357,"88":0.00714,"89":0.11064,"90":0.02855,"91":0.09279,"92":1.12067,"93":2.25204,"94":0.44256,_:"79 81 86"},P:{"4":0.44859,"5.0-5.4":0.02039,"6.2-6.4":0.07137,"7.2-7.4":1.10108,"8.2":0.09284,"9.2":0.09176,"10.1":0.17332,"11.1-11.2":0.46898,"12.0":0.19371,"13.0":0.39761,"14.0":1.67201,"15.0":0.91757},I:{"0":0,"3":0,"4":0.00903,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00774,"4.2-4.3":0.04387,"4.4":0,"4.4.3-4.4.4":0.33164},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.04911,"10":0.00755,"11":0.46084,_:"6 7 8 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":56.89853},S:{"2.5":0.22509},R:{_:"0"},M:{"0":0.13505},Q:{"10.4":0.48233},O:{"0":2.64957},H:{"0":2.09443}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js deleted file mode 100644 index 343f6c423ff377..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"36":0.00985,"52":0.00985,"56":0.10343,"78":0.03448,"84":0.00985,"86":0.00493,"87":0.00985,"88":0.0197,"89":0.02463,"90":0.00985,"91":0.33983,"92":0.59593,"93":0.01478,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 94 3.5 3.6"},D:{"38":0.00985,"47":0.00985,"49":0.06895,"53":0.00493,"55":0.00985,"58":0.00985,"59":0.00493,"63":0.01478,"65":0.01478,"66":0.03448,"67":0.01478,"68":0.00985,"69":0.01478,"70":0.01478,"71":0.0197,"72":0.0197,"73":0.01478,"74":0.0394,"75":0.04433,"76":0.0591,"77":0.02955,"78":0.05418,"79":0.1182,"80":0.05418,"81":0.04433,"83":0.06403,"84":0.05418,"85":0.05418,"86":0.1182,"87":0.36445,"88":0.1576,"89":0.13298,"90":0.16745,"91":0.48758,"92":7.81105,"93":25.15198,"94":3.72823,"95":0.03448,"96":0.00493,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 60 61 62 64 97"},F:{"28":0.01478,"46":0.00493,"77":0.01478,"78":0.86188,"79":0.1182,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.25959,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00042,"5.0-5.1":0.01395,"6.0-6.1":0.00381,"7.0-7.1":0.02199,"8.1-8.4":0.00338,"9.0-9.2":0.00846,"9.3":0.08963,"10.0-10.2":0.00888,"10.3":0.04989,"11.0-11.2":0.02833,"11.3-11.4":0.04397,"12.0-12.1":0.03086,"12.2-12.5":0.52384,"13.0-13.1":0.01776,"13.2":0.01099,"13.3":0.04439,"13.4-13.7":0.13868,"14.0-14.4":0.42829,"14.5-14.8":2.49954},E:{"4":0,"13":0.02955,"14":0.17238,"15":0.09358,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.01478,"12.1":0.0197,"13.1":0.10835,"14.1":0.8471},B:{"16":0.00493,"17":0.00985,"18":0.02463,"84":0.00985,"85":0.00493,"89":0.0197,"90":0.00493,"91":0.0197,"92":0.43833,"93":2.34923,"94":0.56145,_:"12 13 14 15 79 80 81 83 86 87 88"},P:{"4":0.3275,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.02113,"8.2":0.0101,"9.2":0.02113,"10.1":0.0606,"11.1-11.2":0.06339,"12.0":0.02113,"13.0":0.07395,"14.0":0.1796,"15.0":0.70782},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00107,"4.2-4.3":0.00484,"4.4":0,"4.4.3-4.4.4":0.03976},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.31498,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":44.03941},S:{"2.5":0},R:{_:"0"},M:{"0":0.09641},Q:{"10.4":0.00507},O:{"0":1.14672},H:{"0":0.87428}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js deleted file mode 100644 index f682f45b559f6d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.01107,"50":0.00221,"52":0.02657,"66":0.00443,"68":0.00221,"72":0.00443,"78":0.01993,"79":0.00443,"80":0.00664,"81":0.00443,"82":0.00664,"83":0.00443,"84":0.02214,"85":0.00443,"87":0.00221,"88":0.00664,"89":0.01328,"90":0.00886,"91":0.26347,"92":0.50036,"93":0.02214,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 69 70 71 73 74 75 76 77 86 94 3.5 3.6"},D:{"29":0.00221,"38":0.00221,"40":0.00443,"42":0.00443,"43":0.01993,"47":0.00221,"48":0.00443,"49":0.05756,"50":0.00443,"55":0.00221,"56":0.01771,"58":0.00443,"60":0.00221,"61":0.04428,"62":0.00221,"63":0.01328,"64":0.01107,"65":0.00664,"67":0.00443,"68":0.00886,"69":0.00886,"70":0.00664,"71":0.00664,"72":0.00664,"73":0.00664,"74":0.01771,"75":0.01771,"76":0.01107,"77":0.00886,"78":0.01107,"79":0.02657,"80":0.02435,"81":0.04207,"83":0.03985,"84":0.24133,"85":0.05092,"86":0.0952,"87":0.48044,"88":0.03764,"89":0.06199,"90":0.05535,"91":0.20812,"92":2.84942,"93":10.60063,"94":1.73799,"95":0.02878,"96":0.00886,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 39 41 44 45 46 51 52 53 54 57 59 66 97"},F:{"68":0.00221,"69":0.00221,"71":0.00221,"73":0.00221,"75":0.00221,"77":0.01107,"78":0.48265,"79":0.15277,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 70 72 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.15642,"3.2":0,"4.0-4.1":0.00032,"4.2-4.3":0.00065,"5.0-5.1":0.00486,"6.0-6.1":0.00194,"7.0-7.1":0.02915,"8.1-8.4":0.00518,"9.0-9.2":0.00324,"9.3":0.07805,"10.0-10.2":0.00745,"10.3":0.05311,"11.0-11.2":0.01846,"11.3-11.4":0.01878,"12.0-12.1":0.01652,"12.2-12.5":0.39834,"13.0-13.1":0.00939,"13.2":0.00648,"13.3":0.03303,"13.4-13.7":0.11562,"14.0-14.4":0.32904,"14.5-14.8":1.95253},E:{"4":0,"13":0.01107,"14":0.05092,"15":0.0155,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.01328,"11.1":0.00221,"12.1":0.00443,"13.1":0.02435,"14.1":0.15055},B:{"12":0.01328,"13":0.00221,"14":0.00221,"15":0.00664,"16":0.00886,"17":0.00443,"18":0.02878,"83":0.00221,"84":0.00443,"85":0.00443,"86":0.00221,"89":0.00664,"90":0.00443,"91":0.00664,"92":0.1107,"93":0.48929,"94":0.09963,_:"79 80 81 87 88"},P:{"4":0.26958,"5.0-5.4":0.02157,"6.2-6.4":0.01078,"7.2-7.4":0.05392,"8.2":0.09284,"9.2":0.01078,"10.1":0.01032,"11.1-11.2":0.05392,"12.0":0.03235,"13.0":0.1294,"14.0":0.23723,"15.0":0.7764},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00243,"4.2-4.3":0.0089,"4.4":0,"4.4.3-4.4.4":0.15215},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01268,"9":0.00761,"10":0.00507,"11":0.11412,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":68.95409},S:{"2.5":0.18684},R:{_:"0"},M:{"0":0.04671},Q:{"10.4":0},O:{"0":3.91586},H:{"0":1.70992}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js deleted file mode 100644 index 2e91093636037e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.00447,"48":0.00447,"51":0.00447,"52":0.25038,"56":0.00447,"60":0.01341,"65":0.00447,"66":0.00894,"68":0.02236,"71":0.00447,"72":0.02683,"77":0.00447,"78":0.21014,"80":0.00447,"81":0.01788,"82":0.04024,"83":0.02236,"84":0.04471,"85":0.02236,"86":0.0313,"87":0.01788,"88":0.07601,"89":0.1073,"90":0.1073,"91":2.3428,"92":5.15059,"93":0.01788,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 67 69 70 73 74 75 76 79 94 3.5 3.6"},D:{"34":0.01341,"38":0.01341,"49":0.23696,"50":0.00447,"58":0.00894,"59":0.00894,"61":0.04918,"63":0.02683,"65":0.00447,"67":0.00447,"69":0.00894,"70":0.01341,"71":0.01341,"72":0.06707,"73":0.00447,"74":0.00894,"75":0.01341,"76":0.04918,"77":0.00894,"78":0.01788,"79":0.23696,"80":0.0313,"81":0.07154,"83":0.06707,"84":0.06259,"85":0.02683,"86":0.03577,"87":0.14307,"88":0.06259,"89":0.05812,"90":0.10283,"91":0.32638,"92":3.98366,"93":15.20587,"94":2.79885,"95":0.00894,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 60 62 64 66 68 96 97"},F:{"36":0.02683,"73":0.00447,"75":0.00447,"76":0.01341,"77":0.10283,"78":4.39052,"79":0.88079,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.23108,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00216,"6.0-6.1":0.00072,"7.0-7.1":0.00467,"8.1-8.4":0.0018,"9.0-9.2":0.00252,"9.3":0.04456,"10.0-10.2":0.00359,"10.3":0.02947,"11.0-11.2":0.01222,"11.3-11.4":0.01186,"12.0-12.1":0.01258,"12.2-12.5":0.17035,"13.0-13.1":0.00934,"13.2":0.00395,"13.3":0.03414,"13.4-13.7":0.07871,"14.0-14.4":0.31842,"14.5-14.8":2.62171},E:{"4":0,"13":0.01788,"14":0.14307,"15":0.08942,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.02236,"12.1":0.02683,"13.1":0.11625,"14.1":0.74219},B:{"14":0.00447,"15":0.00447,"16":0.00894,"17":0.01788,"18":0.04471,"83":0.00894,"84":0.00447,"85":0.00894,"86":0.01341,"87":0.00447,"88":0.00447,"89":0.02683,"90":0.01788,"91":0.04471,"92":0.57229,"93":2.66025,"94":0.54993,_:"12 13 79 80 81"},P:{"4":0.19442,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.02047,"8.2":0.0101,"9.2":0.04093,"10.1":0.0307,"11.1-11.2":0.20465,"12.0":0.08186,"13.0":0.21488,"14.0":0.51163,"15.0":2.30232},I:{"0":0,"3":0,"4":0.00186,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01527,"4.2-4.3":0.01303,"4.4":0,"4.4.3-4.4.4":0.04171},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.18331,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00553},N:{"10":0.01251,"11":0.15172},L:{"0":47.24855},S:{"2.5":0.01106},R:{_:"0"},M:{"0":0.28198},Q:{"10.4":0},O:{"0":0.03317},H:{"0":1.32956}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js deleted file mode 100644 index 039636d312e2c4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.01104,"45":0.16566,"53":0.01104,"56":0.05522,"64":0.03865,"78":0.29819,"79":0.10492,"80":0.02761,"85":0.01657,"88":0.01657,"89":0.02761,"90":0.01104,"91":1.3308,"92":6.7258,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 46 47 48 49 50 51 52 54 55 57 58 59 60 61 62 63 65 66 67 68 69 70 71 72 73 74 75 76 77 81 82 83 84 86 87 93 94 3.5 3.6"},D:{"39":0.01104,"49":0.13253,"58":0.01104,"67":0.01104,"79":0.08283,"81":0.24297,"87":0.01657,"91":0.59085,"92":2.60086,"93":21.4861,"94":3.8654,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 77 78 80 83 84 85 86 88 89 90 95 96 97"},F:{"28":0.01657,"73":0.01104,"78":0.35341,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 74 75 76 77 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":2.64703,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00638,"9.3":0.00638,"10.0-10.2":0.00638,"10.3":0.12757,"11.0-11.2":0.25726,"11.3-11.4":0.09993,"12.0-12.1":0.02764,"12.2-12.5":2.79799,"13.0-13.1":0.07229,"13.2":0,"13.3":0.17222,"13.4-13.7":0.16371,"14.0-14.4":0.84195,"14.5-14.8":14.03034},E:{"4":0,"13":0.01657,"14":0.88904,"15":1.82226,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1","9.1":0.01657,"10.1":0.02761,"11.1":0.01657,"12.1":0.01657,"13.1":1.60138,"14.1":6.06316},B:{"18":0.05522,"84":0.01657,"86":0.01104,"90":0.01657,"92":0.29267,"93":3.99241,"94":1.44124,_:"12 13 14 15 16 17 79 80 81 83 85 87 88 89 91"},P:{"4":0.06347,"5.0-5.4":0.01051,"6.2-6.4":0.01023,"7.2-7.4":0.72438,"8.2":0.0101,"9.2":0.02539,"10.1":0.05249,"11.1-11.2":0.05077,"12.0":0.13648,"13.0":0.49342,"14.0":0.01269,"15.0":1.53589},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.01657,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":21.54424},S:{"2.5":0},R:{_:"0"},M:{"0":0.31346},Q:{"10.4":0},O:{"0":0},H:{"0":0.01272}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js deleted file mode 100644 index 1aee3263204716..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 3.5 3.6"},D:{"81":87.5,"93":6.25,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 91 92 94 95 96 97"},F:{"78":6.25,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 92 93 94"},P:{"4":0.3275,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.02113,"8.2":0.0101,"9.2":0.02113,"10.1":0.0606,"11.1-11.2":0.06339,"12.0":0.02113,"13.0":0.07395,"14.0":0.1796,"15.0":0.70782},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":0},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js deleted file mode 100644 index 23e38ea5485328..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.00931,"46":0.00465,"47":0.00931,"48":0.00931,"49":0.01396,"50":0.00931,"51":0.00931,"52":0.07445,"53":0.00931,"54":0.00465,"55":0.00465,"56":0.02327,"73":0.06049,"77":0.00931,"78":0.05118,"83":0.00931,"85":0.00931,"86":0.00931,"88":0.00931,"89":0.01861,"90":0.12563,"91":0.76775,"92":1.34472,"93":0.02792,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 74 75 76 79 80 81 82 84 87 94 3.5 3.6"},D:{"25":0.00931,"41":0.00465,"49":0.11633,"54":0.02327,"58":0.01861,"63":0.00931,"65":0.03722,"67":0.00931,"68":0.01396,"71":0.00931,"74":0.07445,"75":0.00931,"76":0.01861,"77":0.01861,"78":0.00465,"79":0.09771,"80":0.01396,"81":0.01396,"83":0.01396,"84":0.03257,"85":0.03257,"86":0.02327,"87":0.67934,"88":0.04653,"89":0.08841,"90":0.07445,"91":0.27918,"92":5.46262,"93":16.94623,"94":2.47074,"95":0.01396,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 47 48 50 51 52 53 55 56 57 59 60 61 62 64 66 69 70 72 73 96 97"},F:{"74":0.00931,"77":0.00465,"78":0.64211,"79":0.09771,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.22164,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00227,"6.0-6.1":0,"7.0-7.1":0.00453,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.13372,"10.0-10.2":0.03853,"10.3":0.05893,"11.0-11.2":0.13146,"11.3-11.4":0.03853,"12.0-12.1":0.0204,"12.2-12.5":0.4601,"13.0-13.1":0.034,"13.2":0.04306,"13.3":0.13146,"13.4-13.7":0.41703,"14.0-14.4":1.66587,"14.5-14.8":18.24301},E:{"4":0,"8":0.00465,"11":0.00931,"12":0.00931,"13":0.10702,"14":0.7817,"15":0.38155,_:"0 5 6 7 9 10 3.1 3.2 7.1 9.1","5.1":0.00931,"6.1":0.00465,"10.1":0.01861,"11.1":0.11633,"12.1":0.06049,"13.1":0.42342,"14.1":4.28076},B:{"15":0.00931,"16":0.00931,"17":0.02327,"18":0.25592,"84":0.01396,"85":0.01396,"86":0.00931,"87":0.00465,"88":0.01396,"89":0.03722,"90":0.02327,"91":0.06514,"92":1.20513,"93":5.09038,"94":0.93525,_:"12 13 14 79 80 81 83"},P:{"4":0.12542,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.05226,"8.2":0.0101,"9.2":0.05226,"10.1":0.0307,"11.1-11.2":0.11497,"12.0":0.03136,"13.0":0.19858,"14.0":0.42852,"15.0":2.45615},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00297,"4.4":0,"4.4.3-4.4.4":0.01842},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.33502,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":28.04792},S:{"2.5":0},R:{_:"0"},M:{"0":0.31013},Q:{"10.4":0},O:{"0":0.02674},H:{"0":0.15693}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js deleted file mode 100644 index 3ff9800cef1365..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.00303,"15":0.00606,"17":0.00908,"51":0.00908,"52":0.03028,"56":0.00303,"69":0.00303,"72":0.0212,"78":0.02422,"79":0.00303,"80":0.00303,"81":0.00908,"84":0.00908,"88":0.01211,"89":0.02422,"90":0.0212,"91":0.32702,"92":0.68736,"93":0.00908,_:"2 3 4 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 70 71 73 74 75 76 77 82 83 85 86 87 94 3.5 3.6"},D:{"24":0.00303,"26":0.00303,"29":0.00303,"38":0.03028,"43":0.00606,"49":0.1514,"53":0.00303,"58":0.00908,"60":0.0212,"62":0.00303,"63":0.01514,"67":0.00606,"68":0.00908,"69":0.01514,"70":0.00303,"71":0.01211,"72":0.00303,"73":0.00606,"74":0.01514,"75":0.00303,"76":0.00908,"77":0.19379,"78":0.00908,"79":0.14232,"80":0.02725,"81":0.01817,"83":0.03331,"84":0.04542,"85":0.04542,"86":0.0969,"87":0.09992,"88":0.02725,"89":0.12718,"90":0.07267,"91":0.22104,"92":4.34518,"93":15.83038,"94":2.39212,"95":0.01514,"96":0.00606,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 27 28 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 55 56 57 59 61 64 65 66 97"},F:{"68":0.00303,"70":0.00303,"77":0.0212,"78":0.63891,"79":0.20288,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.38547,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0058,"6.0-6.1":0.00193,"7.0-7.1":0.05415,"8.1-8.4":0,"9.0-9.2":0.00387,"9.3":0.03287,"10.0-10.2":0.00967,"10.3":0.02256,"11.0-11.2":0.01418,"11.3-11.4":0.02707,"12.0-12.1":0.01805,"12.2-12.5":0.3642,"13.0-13.1":0.00902,"13.2":0.00516,"13.3":0.04061,"13.4-13.7":0.14246,"14.0-14.4":0.61817,"14.5-14.8":4.68688},E:{"4":0,"13":0.00606,"14":0.0757,"15":0.04845,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00606,"12.1":0.00606,"13.1":0.03634,"14.1":0.87206},B:{"13":0.00606,"14":0.00303,"15":0.00606,"16":0.00303,"17":0.00908,"18":0.06056,"84":0.00606,"85":0.00908,"86":0.00606,"89":0.02422,"90":0.00303,"91":0.00908,"92":0.324,"93":1.04163,"94":0.19076,_:"12 79 80 81 83 87 88"},P:{"4":0.11236,"5.0-5.4":0.02157,"6.2-6.4":0.01078,"7.2-7.4":0.12257,"8.2":0.09284,"9.2":0.05107,"10.1":0.04086,"11.1-11.2":0.20428,"12.0":0.11236,"13.0":0.23493,"14.0":0.41878,"15.0":1.62406},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00455,"4.2-4.3":0.01364,"4.4":0,"4.4.3-4.4.4":0.22583},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01567,"9":0.00627,"10":0.00627,"11":0.24129,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":60.21668},S:{"2.5":0},R:{_:"0"},M:{"0":0.07669},Q:{"10.4":0},O:{"0":0.08366},H:{"0":0.38944}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js deleted file mode 100644 index 1b24f1fb6e398f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00633,"49":0.01899,"52":0.05065,"60":0.00633,"63":0.00633,"72":0.00633,"78":0.10763,"79":0.00633,"80":0.01266,"82":0.00633,"83":0.01266,"84":0.00633,"86":0.00633,"87":0.00633,"88":0.01899,"89":0.04432,"90":0.03166,"91":0.86102,"92":2.48175,"93":0.01899,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 50 51 53 54 55 56 57 58 59 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 81 85 94 3.5 3.6"},D:{"23":0.03166,"38":0.01266,"43":0.63943,"49":0.2849,"53":0.01266,"61":0.34187,"62":0.01266,"63":0.01266,"65":0.01899,"67":0.01266,"69":0.03166,"70":0.00633,"71":0.01266,"74":0.02532,"75":0.05698,"76":0.02532,"77":0.00633,"78":0.00633,"79":0.13928,"80":0.03166,"81":0.01899,"83":0.04432,"84":0.03166,"85":0.04432,"86":0.05065,"87":0.23425,"88":0.05065,"89":0.11396,"90":0.17094,"91":0.43684,"92":6.23604,"93":28.94533,"94":7.1477,"95":0.01899,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 55 56 57 58 59 60 64 66 68 72 73 96 97"},F:{"36":0.00633,"76":0.01266,"77":0.01899,"78":2.53873,"79":0.46216,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00086,"15":0.70485,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00345,"6.0-6.1":0.00431,"7.0-7.1":0.00345,"8.1-8.4":0.00431,"9.0-9.2":0.00345,"9.3":0.08023,"10.0-10.2":0.00345,"10.3":0.09921,"11.0-11.2":0.02933,"11.3-11.4":0.01984,"12.0-12.1":0.01553,"12.2-12.5":0.45035,"13.0-13.1":0.01898,"13.2":0.00776,"13.3":0.04659,"13.4-13.7":0.17686,"14.0-14.4":0.60909,"14.5-14.8":6.34022},E:{"4":0,"11":0.00633,"12":0.00633,"13":0.06331,"14":0.43684,"15":0.29756,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.03166,"11.1":0.06964,"12.1":0.05698,"13.1":0.29756,"14.1":2.01326},B:{"14":0.00633,"15":0.00633,"17":0.01266,"18":0.03166,"84":0.01266,"85":0.00633,"86":0.00633,"88":0.01266,"89":0.01899,"90":0.02532,"91":0.06964,"92":0.63943,"93":3.70997,"94":1.01296,_:"12 13 16 79 80 81 83 87"},P:{"4":0.08542,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.02047,"8.2":0.0101,"9.2":0.01068,"10.1":0.0307,"11.1-11.2":0.03203,"12.0":0.02135,"13.0":0.08542,"14.0":0.13881,"15.0":1.40942},I:{"0":0,"3":0,"4":0.00185,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00371,"4.2-4.3":0.00927,"4.4":0,"4.4.3-4.4.4":0.06955},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00675,"11":0.60102,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":26.70604},S:{"2.5":0},R:{_:"0"},M:{"0":0.20913},Q:{"10.4":0},O:{"0":0.22014},H:{"0":0.20147}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js deleted file mode 100644 index fafa3352f8460b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"83":0.00918,"86":0.00459,"87":0.39916,"89":0.00459,"90":0.01376,"91":0.26152,"92":0.58726,"93":0.00459,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 84 85 88 94 3.5 3.6"},D:{"29":0.00918,"33":0.00459,"39":0.00459,"48":0.01376,"49":0.06423,"59":0.00918,"68":0.01835,"72":0.00459,"73":0.01835,"75":0.00459,"76":0.21564,"79":0.05964,"80":0.00459,"81":0.078,"83":0.01835,"84":0.0367,"85":0.04129,"86":0.04129,"87":0.02294,"88":0.3441,"89":0.00459,"90":0.07341,"91":0.53221,"92":5.33126,"93":20.58177,"94":3.07396,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 34 35 36 37 38 40 41 42 43 44 45 46 47 50 51 52 53 54 55 56 57 58 60 61 62 63 64 65 66 67 69 70 71 74 77 78 95 96 97"},F:{"76":0.00459,"78":0.11011,"79":0.00459,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.66233,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.04287,"10.0-10.2":0.01331,"10.3":0.00444,"11.0-11.2":0.02957,"11.3-11.4":0.38439,"12.0-12.1":0.05618,"12.2-12.5":0.33856,"13.0-13.1":0,"13.2":0,"13.3":0.034,"13.4-13.7":0.22176,"14.0-14.4":1.13394,"14.5-14.8":11.86424},E:{"4":0,"13":0.03212,"14":0.29822,"15":0.05506,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01376,"11.1":0.02294,"12.1":0.63314,"13.1":0.06882,"14.1":3.57405},B:{"12":0.01835,"16":0.09635,"17":0.28904,"18":0.05047,"84":0.02753,"89":0.02294,"90":0.00459,"91":0.04129,"92":0.47256,"93":2.02331,"94":0.27528,_:"13 14 15 79 80 81 83 85 86 87 88"},P:{"4":0.26958,"5.0-5.4":0.02157,"6.2-6.4":0.01078,"7.2-7.4":0.46808,"8.2":0.09284,"9.2":0.01078,"10.1":0.01032,"11.1-11.2":0.03121,"12.0":0.03121,"13.0":0.03121,"14.0":0.86335,"15.0":2.97491},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00008,"4.4":0,"4.4.3-4.4.4":0.01075},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.13764,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":39.31848},S:{"2.5":0},R:{_:"0"},M:{"0":0.01624},Q:{"10.4":0.01082},O:{"0":0.42214},H:{"0":0.58411}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js deleted file mode 100644 index e58abf4f9c9187..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/PY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"5":0.0023,"17":0.0023,"24":0.02298,"35":0.05515,"43":0.0023,"47":0.0023,"48":0.0023,"52":0.20222,"56":0.0046,"57":0.0046,"60":0.0046,"64":0.0046,"65":0.0023,"68":0.00919,"69":0.0023,"72":0.0023,"73":0.04596,"78":0.01609,"80":0.0023,"82":0.00919,"84":0.0046,"87":0.00919,"88":0.02758,"89":0.01379,"90":0.01379,"91":0.3401,"92":0.6871,"93":0.00919,_:"2 3 4 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 44 45 46 49 50 51 53 54 55 58 59 61 62 63 66 67 70 71 74 75 76 77 79 81 83 85 86 94 3.5 3.6"},D:{"24":0.0023,"38":0.01149,"47":0.01609,"49":0.08962,"53":0.0023,"54":0.0023,"58":0.0046,"63":0.00689,"64":0.10111,"65":0.01379,"66":0.0023,"67":0.0046,"68":0.0023,"70":0.0046,"71":0.0046,"72":0.0023,"73":0.0046,"74":0.00689,"75":0.01149,"76":0.00689,"77":0.01149,"78":0.01149,"79":0.04826,"80":0.02758,"81":0.03217,"83":0.01609,"84":0.01149,"85":0.01149,"86":0.15856,"87":0.18154,"88":0.1195,"89":0.03907,"90":0.05056,"91":0.17235,"92":3.16435,"93":11.22343,"94":2.0705,"95":0.0023,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 55 56 57 59 60 61 62 69 96 97"},F:{"77":0.00689,"78":0.83417,"79":0.07354,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.22568,"3.2":0.00137,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00229,"6.0-6.1":0.00137,"7.0-7.1":0.0087,"8.1-8.4":0.00046,"9.0-9.2":0.00412,"9.3":0.01648,"10.0-10.2":0.00275,"10.3":0.01923,"11.0-11.2":0.01099,"11.3-11.4":0.01648,"12.0-12.1":0.01007,"12.2-12.5":0.34699,"13.0-13.1":0.00595,"13.2":0.00229,"13.3":0.01511,"13.4-13.7":0.09842,"14.0-14.4":0.2797,"14.5-14.8":3.50654},E:{"4":0,"11":0.0046,"13":0.00689,"14":0.04596,"15":0.03447,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.06205,"11.1":0.0023,"12.1":0.0046,"13.1":0.03447,"14.1":0.35389},B:{"12":0.00919,"14":0.0046,"15":0.0046,"16":0.0023,"17":0.00919,"18":0.02068,"84":0.0023,"89":0.00689,"90":0.0023,"91":0.01149,"92":0.17695,"93":0.92839,"94":0.18384,_:"13 79 80 81 83 85 86 87 88"},P:{"4":0.47472,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.66663,"8.2":0.0101,"9.2":0.101,"10.1":0.0606,"11.1-11.2":0.38382,"12.0":0.14141,"13.0":0.40402,"14.0":0.80804,"15.0":2.1211},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00366,"4.2-4.3":0.00914,"4.4":0,"4.4.3-4.4.4":0.09503},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00919,"10":0.0023,"11":0.06894,_:"6 7 9 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":67.30332},S:{"2.5":0},R:{_:"0"},M:{"0":0.05391},Q:{"10.4":0},O:{"0":0.14634},H:{"0":0.21875}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js deleted file mode 100644 index 4393165d1c3150..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/QA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"38":0.00656,"52":0.00656,"72":0.00328,"78":0.03606,"80":0.00656,"84":0.00656,"85":0.00656,"88":0.00328,"89":0.02295,"90":0.00656,"91":0.31141,"92":0.55398,"93":0.00656,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 81 82 83 86 87 94 3.5 3.6"},D:{"34":0.00983,"38":0.03606,"49":0.06556,"53":0.00656,"56":0.00983,"61":0.00328,"62":0.00328,"63":0.00328,"65":0.01311,"67":0.00983,"68":0.00656,"69":0.00983,"73":0.00656,"74":0.02622,"75":0.01311,"76":0.01311,"77":0.00328,"78":0.00983,"79":0.09506,"80":0.01967,"81":0.01311,"83":0.01967,"84":0.04589,"85":0.0295,"86":0.06556,"87":0.11801,"88":0.10162,"89":0.06556,"90":0.08195,"91":0.28191,"92":4.63509,"93":15.07224,"94":2.76991,"95":0.01311,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 55 57 58 59 60 64 66 70 71 72 96 97"},F:{"28":0.00656,"46":0.00656,"65":0.00328,"77":0.00328,"78":0.46548,"79":0.09506,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.40751,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00913,"6.0-6.1":0.0013,"7.0-7.1":0.02218,"8.1-8.4":0.00522,"9.0-9.2":0.0013,"9.3":0.05609,"10.0-10.2":0.00261,"10.3":0.05087,"11.0-11.2":0.03913,"11.3-11.4":0.00913,"12.0-12.1":0.01565,"12.2-12.5":0.40047,"13.0-13.1":0.01565,"13.2":0.01435,"13.3":0.08349,"13.4-13.7":0.31568,"14.0-14.4":1.09835,"14.5-14.8":9.49255},E:{"4":0,"11":0.00656,"12":0.00656,"13":0.05573,"14":0.34091,"15":0.18029,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00328,"11.1":0.01311,"12.1":0.07212,"13.1":0.21635,"14.1":1.59311},B:{"14":0.00328,"15":0.00328,"16":0.00656,"17":0.01967,"18":0.06228,"84":0.00983,"85":0.00656,"89":0.01639,"90":0.00656,"91":0.01967,"92":0.43597,"93":1.87174,"94":0.43597,_:"12 13 79 80 81 83 86 87 88"},P:{"4":0.08305,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.05191,"8.2":0.0101,"9.2":0.01038,"10.1":0.0307,"11.1-11.2":0.10382,"12.0":0.03115,"13.0":0.12458,"14.0":0.32183,"15.0":2.07635},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00306,"4.2-4.3":0.00611,"4.4":0,"4.4.3-4.4.4":0.02444},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34091,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":45.20416},S:{"2.5":0},R:{_:"0"},M:{"0":0.10755},Q:{"10.4":0},O:{"0":6.29179},H:{"0":1.08824}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js deleted file mode 100644 index 7413ecc6c21701..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"11":0.02613,"45":0.00523,"48":0.01568,"49":0.03135,"52":0.0418,"54":0.01045,"55":0.01045,"56":0.02613,"57":0.01045,"60":0.04703,"61":0.0418,"62":0.01568,"66":0.01045,"68":0.0209,"72":0.05225,"74":0.01045,"78":0.9614,"81":0.0209,"82":0.01568,"84":0.02613,"85":0.01045,"86":0.01045,"88":0.0418,"89":0.1463,"90":0.04703,"91":2.13703,"92":4.1382,"93":0.00523,_:"2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 50 51 53 58 59 63 64 65 67 69 70 71 73 75 76 77 79 80 83 87 94 3.5 3.6"},D:{"47":0.04703,"48":0.0209,"49":0.2926,"53":0.01045,"54":0.05225,"56":0.0209,"58":0.01045,"61":0.0209,"63":0.01045,"65":0.02613,"67":0.00523,"69":0.01045,"70":0.01568,"71":0.0209,"74":0.05225,"75":0.00523,"76":0.0836,"77":0.00523,"78":0.01045,"79":0.15675,"80":0.01568,"81":0.02613,"83":0.02613,"84":0.01568,"85":0.0418,"86":0.03135,"87":2.69088,"88":0.0209,"89":0.06793,"90":0.0418,"91":0.3135,"92":5.17275,"93":16.89765,"94":2.75358,"95":0.01045,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 50 51 52 55 57 59 60 62 64 66 68 72 73 96 97"},F:{"77":0.01045,"78":1.00843,"79":0.13585,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.54986,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0022,"6.0-6.1":0.0022,"7.0-7.1":0.00992,"8.1-8.4":0.01543,"9.0-9.2":0.0011,"9.3":0.13113,"10.0-10.2":0.00661,"10.3":0.10578,"11.0-11.2":0.02865,"11.3-11.4":0.01763,"12.0-12.1":0.06942,"12.2-12.5":0.53443,"13.0-13.1":0.02204,"13.2":0.01322,"13.3":0.09036,"13.4-13.7":0.227,"14.0-14.4":0.81653,"14.5-14.8":8.37241},E:{"4":0,"12":0.01568,"13":0.07315,"14":0.50683,"15":0.2508,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01568,"11.1":0.1045,"12.1":0.15675,"13.1":0.62178,"14.1":3.4067},B:{"15":0.0209,"16":0.03658,"17":0.02613,"18":0.1045,"80":0.00523,"84":0.02613,"85":0.01045,"86":0.01045,"87":0.01045,"89":0.02613,"90":0.01045,"91":0.08883,"92":1.13383,"93":4.13298,"94":0.9823,_:"12 13 14 79 81 83 88"},P:{"4":0.05242,"5.0-5.4":0.0202,"6.2-6.4":0.0303,"7.2-7.4":0.06291,"8.2":0.0101,"9.2":0.04194,"10.1":0.02097,"11.1-11.2":0.28307,"12.0":0.04194,"13.0":0.24114,"14.0":0.67099,"15.0":2.44283},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00203,"4.2-4.3":0.00203,"4.4":0,"4.4.3-4.4.4":0.03414},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.2926,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":33.1808},S:{"2.5":0},R:{_:"0"},M:{"0":0.50138},Q:{"10.4":0},O:{"0":0.4011},H:{"0":0.16274}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js deleted file mode 100644 index f7fa2be686e819..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00469,"52":0.13587,"56":0.00469,"68":0.00937,"72":0.01406,"78":0.08433,"79":0.00469,"81":0.00937,"82":0.00469,"83":0.00469,"84":0.01874,"85":0.00469,"86":0.00937,"87":0.00937,"88":0.0328,"89":0.03748,"90":0.0328,"91":0.96511,"92":2.0942,"93":0.01874,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 80 94 3.5 3.6"},D:{"4":0.25299,"5":0.12181,"6":0.06559,"7":0.02343,"8":0.01406,"9":0.04217,"10":0.02811,"11":0.08433,"12":0.01874,"13":0.0328,"14":0.02343,"15":0.02343,"16":0.01406,"17":0.02811,"18":0.05154,"19":0.04217,"20":0.04217,"21":0.03748,"22":0.02343,"23":0.01406,"24":0.01874,"25":0.03748,"26":0.03748,"27":0.05622,"28":0.03748,"29":0.07028,"30":0.06559,"31":0.07028,"32":0.08433,"33":0.12181,"34":0.1265,"35":0.13118,"36":0.10307,"37":0.17335,"38":0.1265,"39":0.17335,"40":0.11244,"41":0.15461,"42":0.16398,"43":0.18272,"44":0.14992,"45":0.22957,"46":0.12181,"47":0.13118,"48":0.09839,"49":0.595,"50":0.09839,"51":0.15929,"52":0.14055,"53":0.15929,"54":0.13587,"55":0.14992,"56":0.18272,"57":0.15461,"58":0.16866,"59":0.17335,"60":0.51535,"61":0.63248,"62":0.16398,"63":0.15929,"64":0.21083,"65":0.21083,"66":0.17335,"67":0.25768,"68":0.19677,"69":0.24362,"70":0.14992,"71":0.09839,"72":0.06091,"73":0.00937,"74":0.01406,"75":0.00937,"76":0.02811,"77":0.01874,"78":0.01406,"79":0.07496,"80":0.02811,"81":0.0328,"83":0.02811,"84":0.04217,"85":0.0328,"86":0.05622,"87":0.36075,"88":0.05622,"89":0.06559,"90":0.07965,"91":0.23894,"92":4.63815,"93":17.67182,"94":3.41068,"95":0.01406,_:"96 97"},F:{"36":0.01406,"77":0.0328,"78":1.65381,"79":0.43102,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.65144,"3.2":0.01839,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.06873,"6.0-6.1":0.0029,"7.0-7.1":0.00484,"8.1-8.4":0.00968,"9.0-9.2":0.00484,"9.3":0.04259,"10.0-10.2":0.00484,"10.3":0.04259,"11.0-11.2":0.0213,"11.3-11.4":0.04453,"12.0-12.1":0.0242,"12.2-12.5":0.31071,"13.0-13.1":0.02613,"13.2":0.01549,"13.3":0.06776,"13.4-13.7":0.22166,"14.0-14.4":0.846,"14.5-14.8":7.25001},E:{"4":0,"13":0.04217,"14":0.13118,"15":0.08902,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00469,"11.1":0.01406,"12.1":0.01874,"13.1":0.08433,"14.1":0.55283},B:{"12":0.00937,"13":0.00937,"15":0.01874,"16":0.00937,"17":0.00469,"18":0.04217,"84":0.00937,"85":0.00937,"86":0.00937,"89":0.01406,"90":0.00469,"91":0.02343,"92":0.3139,"93":1.41487,"94":0.36543,_:"14 79 80 81 83 87 88"},P:{"4":0.20459,"5.0-5.4":0.0202,"6.2-6.4":0.01023,"7.2-7.4":0.02046,"8.2":0.0101,"9.2":0.07161,"10.1":0.03069,"11.1-11.2":0.22505,"12.0":0.09207,"13.0":0.22505,"14.0":0.57286,"15.0":3.02795},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00181,"4.2-4.3":0.01088,"4.4":0,"4.4.3-4.4.4":0.10424},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02982,"9":0.00994,"11":0.36286,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":38.94079},S:{"2.5":0},R:{_:"0"},M:{"0":0.21792},Q:{"10.4":0},O:{"0":0.05847},H:{"0":0.38242}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js deleted file mode 100644 index 8aa891558cb74e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"40":0.00855,"45":0.00855,"47":0.00428,"48":0.02138,"49":0.00428,"50":0.17959,"51":0.01283,"52":0.20525,"56":0.02138,"57":0.00428,"60":0.00855,"61":0.00855,"65":0.00855,"66":0.00855,"67":0.00855,"68":0.00855,"69":0.00855,"72":0.01283,"73":0.00855,"76":0.01283,"78":0.08124,"79":0.00428,"80":0.00855,"81":0.02138,"82":0.00855,"83":0.00855,"84":0.05986,"85":0.00855,"86":0.00855,"87":0.00855,"88":0.07697,"89":0.07269,"90":0.04276,"91":2.08241,"92":3.59184,"93":0.03848,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 46 53 54 55 58 59 62 63 64 70 71 74 75 77 94 3.5 3.6"},D:{"29":0.00428,"34":0.00855,"38":0.02566,"43":0.01283,"47":0.0171,"48":0.01283,"49":0.3207,"52":0.00428,"53":0.02138,"56":0.00428,"58":0.01283,"61":0.50884,"63":0.01283,"65":0.00855,"66":0.0171,"67":0.01283,"68":0.0171,"69":0.00855,"70":0.0171,"71":0.01283,"72":0.01283,"73":0.0171,"74":0.0171,"75":0.02566,"76":0.01283,"77":0.37629,"78":0.0171,"79":0.11118,"80":0.03421,"81":0.03421,"83":0.04704,"84":0.05559,"85":0.06842,"86":0.09407,"87":0.25228,"88":0.07697,"89":0.08124,"90":0.1069,"91":0.36346,"92":5.26803,"93":18.10031,"94":2.97182,"95":0.01283,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 35 36 37 39 40 41 42 44 45 46 50 51 54 55 57 59 60 62 64 96 97"},F:{"28":0.00428,"36":0.0171,"77":0.07697,"78":1.76599,"79":0.47464,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.55102,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00221,"6.0-6.1":0.00552,"7.0-7.1":0.03092,"8.1-8.4":0.00773,"9.0-9.2":0.00442,"9.3":0.05853,"10.0-10.2":0.00994,"10.3":0.07398,"11.0-11.2":0.03534,"11.3-11.4":0.07178,"12.0-12.1":0.0265,"12.2-12.5":0.67801,"13.0-13.1":0.03202,"13.2":0.01325,"13.3":0.09386,"13.4-13.7":0.33569,"14.0-14.4":1.02364,"14.5-14.8":7.98152},E:{"4":0.00428,"12":0.00855,"13":0.03421,"14":0.09835,"15":0.08124,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00428,"11.1":0.0171,"12.1":0.02138,"13.1":0.08552,"14.1":0.50884},B:{"13":0.00855,"16":0.00428,"17":0.00855,"18":0.04276,"84":0.01283,"85":0.00855,"86":0.00428,"89":0.01283,"90":0.00428,"91":0.02566,"92":0.24373,"93":1.14169,"94":0.24801,_:"12 14 15 79 80 81 83 87 88"},P:{"4":0.093,"5.0-5.4":0.01045,"6.2-6.4":0.03057,"7.2-7.4":0.01033,"8.2":0.08197,"9.2":0.04133,"10.1":0.01033,"11.1-11.2":0.16533,"12.0":0.05166,"13.0":0.16533,"14.0":0.32032,"15.0":2.32491},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0027,"4.2-4.3":0.00578,"4.4":0,"4.4.3-4.4.4":0.03159},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.06389,"9":0.01966,"10":0.02457,"11":0.31947,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":43.22798},S:{"2.5":0},R:{_:"0"},M:{"0":0.21751},Q:{"10.4":0},O:{"0":0.04007},H:{"0":0.34682}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js deleted file mode 100644 index 3ee60a32db8719..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.01308,"5":0.00654,"15":0.00654,"17":0.01308,"21":0.00654,"39":0.00654,"40":0.00654,"45":0.05231,"48":0.01308,"50":0.0327,"51":0.01308,"52":0.28118,"53":0.01308,"54":0.01962,"55":0.01962,"56":0.05231,"57":0.01308,"59":0.01308,"60":0.02616,"61":0.01308,"63":0.01308,"65":0.01962,"66":0.03923,"67":0.02616,"68":0.06539,"69":0.05231,"70":0.06539,"71":0.05885,"72":0.09155,"73":0.03923,"74":0.03923,"75":0.0327,"76":0.01962,"77":0.01308,"78":0.12424,"79":0.02616,"80":0.02616,"81":0.0327,"82":0.01962,"83":0.0327,"84":0.09809,"85":0.01308,"86":0.01308,"87":0.01308,"88":0.09809,"89":0.09809,"90":0.09809,"91":0.6539,"92":1.26857,"93":0.01308,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 41 42 43 44 46 47 49 58 62 64 94 3.5","3.6":0.00654},D:{"23":0.00654,"24":0.01308,"25":0.03923,"38":0.01962,"39":0.00654,"41":0.01308,"43":0.01308,"44":0.00654,"45":0.01308,"46":0.00654,"47":0.01962,"48":0.02616,"49":0.44465,"50":0.01308,"51":0.09809,"53":0.00654,"56":0.06539,"57":0.03923,"58":0.01308,"59":0.04577,"60":0.01308,"61":0.32041,"62":0.01308,"63":0.01308,"64":0.01308,"65":0.00654,"66":0.00654,"67":0.01308,"68":0.01308,"69":0.39234,"70":0.05231,"71":0.03923,"72":0.0327,"73":0.10462,"74":1.0724,"75":0.07193,"76":0.09809,"77":0.06539,"78":0.98085,"79":1.79823,"80":0.73237,"81":0.93508,"83":0.98085,"84":0.98739,"85":7.95796,"86":0.36618,"87":1.47128,"88":0.35311,"89":0.21579,"90":0.26156,"91":0.58851,"92":4.42036,"93":13.92153,"94":2.04671,"95":0.02616,"96":0.00654,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 31 32 33 34 35 36 37 40 42 52 54 55 97"},F:{"34":0.01308,"35":0.01308,"36":0.03923,"49":0.01308,"54":0.00654,"68":0.01308,"70":0.01962,"71":0.01962,"72":0.01962,"73":0.00654,"74":0.01962,"75":0.01308,"76":0.05885,"77":0.11116,"78":3.09949,"79":0.89584,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 55 56 57 58 60 62 63 64 65 66 67 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02616},G:{"8":0.00104,"15":0.34962,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00104,"5.0-5.1":0.00883,"6.0-6.1":0.01247,"7.0-7.1":0.00779,"8.1-8.4":0.00935,"9.0-9.2":0.00987,"9.3":0.07637,"10.0-10.2":0.01714,"10.3":0.05818,"11.0-11.2":0.02961,"11.3-11.4":0.02961,"12.0-12.1":0.03169,"12.2-12.5":0.2878,"13.0-13.1":0.02286,"13.2":0.01455,"13.3":0.06234,"13.4-13.7":0.253,"14.0-14.4":0.59951,"14.5-14.8":3.31079},E:{"4":0,"10":0.01308,"11":0.00654,"12":0.01962,"13":0.12424,"14":0.31387,"15":0.14386,_:"0 5 6 7 8 9 3.1 3.2 6.1 7.1 9.1","5.1":0.14386,"10.1":0.00654,"11.1":0.01962,"12.1":0.03923,"13.1":0.18309,"14.1":1.06586},B:{"12":0.01308,"13":0.00654,"14":0.02616,"15":0.01308,"16":0.03923,"17":0.1177,"18":0.37926,"80":0.00654,"81":0.00654,"83":0.00654,"84":0.02616,"85":0.02616,"86":0.01962,"87":0.01308,"89":0.01962,"90":0.01308,"91":0.02616,"92":0.2354,"93":1.06586,"94":0.19617,_:"79 88"},P:{"4":0.10372,"5.0-5.4":0.02074,"6.2-6.4":0.01037,"7.2-7.4":0.4875,"8.2":0.04149,"9.2":0.10372,"10.1":0.04149,"11.1-11.2":0.45638,"12.0":0.14521,"13.0":0.34229,"14.0":0.91276,"15.0":1.99148},I:{"0":0,"3":0,"4":0.00125,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00249,"4.2-4.3":0.00935,"4.4":0,"4.4.3-4.4.4":0.08725},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04327,"9":0.02164,"10":0.01442,"11":0.41109,_:"6 7 5.5"},J:{"7":0,"10":0.00346},N:{_:"10 11"},L:{"0":22.09259},S:{"2.5":0},R:{_:"0"},M:{"0":0.10726},Q:{"10.4":0.00692},O:{"0":0.2595},H:{"0":0.63221}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js deleted file mode 100644 index fb9117c83ad229..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/RW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.02361,"31":0.00472,"37":0.00944,"40":0.00944,"42":0.00944,"47":0.01416,"48":0.01416,"50":0.02361,"52":0.02361,"59":0.03777,"63":0.00472,"72":0.01888,"78":0.03305,"80":0.00944,"84":0.00472,"85":0.00472,"87":0.00944,"88":0.05665,"89":0.16524,"90":0.06137,"91":1.1236,"92":2.12445,"93":0.16051,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 38 39 41 43 44 45 46 49 51 53 54 55 56 57 58 60 61 62 64 65 66 67 68 69 70 71 73 74 75 76 77 79 81 82 83 86 94 3.5 3.6"},D:{"38":0.03305,"39":0.00944,"41":0.01888,"43":0.00944,"49":0.02361,"58":0.00944,"60":0.02361,"61":0.01416,"62":0.01888,"63":0.02833,"65":0.00944,"66":0.00472,"67":0.01416,"68":0.00472,"69":0.01416,"70":0.01888,"71":0.03305,"72":0.00472,"73":0.01416,"74":0.02833,"75":0.02361,"76":0.01416,"77":0.02361,"78":0.01416,"79":0.0897,"80":0.05665,"81":0.04249,"83":0.03305,"84":0.04721,"85":0.01888,"86":0.05193,"87":0.13691,"88":0.04721,"89":0.10386,"90":0.11803,"91":0.43433,"92":6.66605,"93":20.2767,"94":2.99784,"95":0.1133,"96":0.01888,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 40 42 44 45 46 47 48 50 51 52 53 54 55 56 57 59 64 97"},F:{"40":0.00472,"77":0.03777,"78":0.98669,"79":0.31159,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.22218,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00588,"6.0-6.1":0,"7.0-7.1":0.01705,"8.1-8.4":0,"9.0-9.2":0.00764,"9.3":0.05643,"10.0-10.2":0.01469,"10.3":0.05114,"11.0-11.2":0.03527,"11.3-11.4":0.02527,"12.0-12.1":0.02351,"12.2-12.5":0.7559,"13.0-13.1":0.02292,"13.2":0.01822,"13.3":0.06701,"13.4-13.7":0.17222,"14.0-14.4":0.93341,"14.5-14.8":3.44679},E:{"4":0,"11":0.00944,"13":0.02833,"14":0.09914,"15":0.04721,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1","5.1":0.02833,"10.1":0.00944,"11.1":0.02361,"12.1":0.02833,"13.1":0.07082,"14.1":0.43905},B:{"12":0.08498,"13":0.04249,"14":0.02361,"15":0.02361,"16":0.03777,"17":0.02361,"18":0.16524,"84":0.01888,"85":0.02361,"88":0.00472,"89":0.02833,"90":0.01416,"91":0.05193,"92":1.43518,"93":2.53046,"94":0.36824,_:"79 80 81 83 86 87"},P:{"4":0.24772,"5.0-5.4":0.02064,"6.2-6.4":0.01023,"7.2-7.4":0.10322,"8.2":0.0101,"9.2":0.05161,"10.1":0.02064,"11.1-11.2":0.13418,"12.0":0.02064,"13.0":0.1445,"14.0":0.57801,"15.0":0.75348},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00084,"4.2-4.3":0.0023,"4.4":0,"4.4.3-4.4.4":0.03382},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00537,"11":0.26845,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.01584},N:{"10":0.01251,"11":0.15172},L:{"0":38.73567},S:{"2.5":0.04751},R:{_:"0"},M:{"0":0.2006},Q:{"10.4":0.01056},O:{"0":0.25339},H:{"0":8.91111}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js deleted file mode 100644 index 4aec8ce2ff9d3e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.0026,"52":0.0078,"75":0.0026,"78":0.03902,"81":0.0052,"84":0.02601,"85":0.0052,"86":0.0026,"88":0.0052,"89":0.0104,"90":0.0078,"91":0.24449,"92":0.5254,"93":0.0078,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 76 77 79 80 82 83 87 94 3.5 3.6"},D:{"11":0.0026,"34":0.01821,"38":0.0078,"43":0.0052,"47":0.0026,"49":0.07023,"50":0.0052,"53":0.0052,"56":0.0104,"61":0.03641,"62":0.0052,"63":0.0104,"64":0.0052,"65":0.0026,"66":0.0052,"67":0.01301,"68":0.0026,"69":0.01821,"70":0.0026,"71":0.01561,"72":0.0052,"73":0.0052,"74":0.0078,"75":0.01301,"76":0.0052,"77":0.0104,"78":0.0078,"79":0.05722,"80":0.01561,"81":0.01301,"83":0.03121,"84":0.02341,"85":0.03121,"86":0.04422,"87":0.29912,"88":0.08843,"89":0.05982,"90":0.06242,"91":0.18987,"92":3.26946,"93":12.08685,"94":2.24206,"95":0.01821,"96":0.0026,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 51 52 54 55 57 58 59 60 97"},F:{"28":0.0052,"70":0.0052,"72":0.0052,"73":0.02341,"74":0.0026,"75":0.01301,"76":0.0078,"77":0.03121,"78":0.08323,"79":0.01301,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":1.87608,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02436,"8.1-8.4":0.00348,"9.0-9.2":0,"9.3":0.08006,"10.0-10.2":0.00696,"10.3":0.05569,"11.0-11.2":0.03481,"11.3-11.4":0.04525,"12.0-12.1":0.11138,"12.2-12.5":1.03028,"13.0-13.1":0.17403,"13.2":0.11834,"13.3":0.44901,"13.4-13.7":1.42359,"14.0-14.4":6.7316,"14.5-14.8":22.61038},E:{"4":0,"12":0.0026,"13":0.03902,"14":0.43957,"15":0.14045,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.0026,"10.1":0.0078,"11.1":0.01821,"12.1":0.02861,"13.1":0.16386,"14.1":1.32651},B:{"12":0.0052,"14":0.0104,"15":0.0052,"16":0.06242,"17":0.0078,"18":0.05202,"84":0.0078,"85":0.0026,"87":0.0052,"88":0.0026,"89":0.01561,"90":0.0052,"91":0.01821,"92":0.34073,"93":1.42275,"94":0.32252,_:"13 79 80 81 83 86"},P:{"4":0.0209,"5.0-5.4":0.01045,"6.2-6.4":0.02411,"7.2-7.4":0.11496,"8.2":0.08197,"9.2":0.0209,"10.1":0.8812,"11.1-11.2":0.18811,"12.0":0.0418,"13.0":0.17766,"14.0":0.40758,"15.0":1.70347},I:{"0":0,"3":0,"4":0.00143,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00143,"4.2-4.3":0.00358,"4.4":0,"4.4.3-4.4.4":0.03795},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00562,"9":0.00281,"11":0.44935,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":35.3052},S:{"2.5":0},R:{_:"0"},M:{"0":0.09619},Q:{"10.4":0},O:{"0":1.57599},H:{"0":0.11908}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js deleted file mode 100644 index 5edaae8cc09c5f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SB.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"33":0.11925,"41":0.00822,"56":0.04112,"74":0.00822,"78":0.02056,"79":0.0699,"80":0.00822,"81":0.00411,"87":0.00822,"88":0.0329,"89":0.20971,"90":0.01234,"91":0.46877,"92":1.542,"93":0.02878,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 75 76 77 82 83 84 85 86 94 3.5 3.6"},D:{"51":0.01645,"53":0.46466,"60":0.02467,"63":0.02056,"66":0.01234,"69":0.06168,"70":0.01645,"71":0.02467,"74":0.01645,"75":0.07813,"78":0.06168,"79":0.01234,"80":0.07402,"81":0.05346,"83":0.01234,"84":0.00411,"85":0.01234,"86":0.02056,"87":0.04934,"88":0.05346,"89":0.0329,"90":0.04934,"91":0.2056,"92":2.48776,"93":11.40669,"94":1.49677,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 54 55 56 57 58 59 61 62 64 65 67 68 72 73 76 77 95 96 97"},F:{"53":0.01645,"77":0.01645,"78":0.15626,"79":0.06168,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.00922,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00073,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.38429,"9.3":0.00582,"10.0-10.2":0.00194,"10.3":0.01043,"11.0-11.2":0.00849,"11.3-11.4":0.02038,"12.0-12.1":0.01771,"12.2-12.5":0.56795,"13.0-13.1":0.16012,"13.2":0.00121,"13.3":0.01625,"13.4-13.7":0.69144,"14.0-14.4":0.22344,"14.5-14.8":0.30642},E:{"4":0,"12":0.01234,"13":0.01234,"14":0.02467,"15":0.03701,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.05757,"11.1":0.00822,"12.1":0.03701,"13.1":0.00822,"14.1":1.58723},B:{"12":0.06168,"13":0.04112,"14":0.02056,"15":0.23027,"16":0.13981,"17":0.24261,"18":3.54043,"80":0.00822,"84":0.02467,"85":0.08635,"86":0.02878,"87":0.01645,"88":0.00822,"89":0.06168,"90":0.03701,"91":0.06579,"92":1.1308,"93":2.92774,"94":0.38242,_:"79 81 83"},P:{"4":0.50726,"5.0-5.4":0.04058,"6.2-6.4":0.06087,"7.2-7.4":0.55798,"8.2":0.02101,"9.2":0.15218,"10.1":0.02029,"11.1-11.2":0.4261,"12.0":0.09131,"13.0":0.2029,"14.0":0.37537,"15.0":0.38552},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00487,"4.2-4.3":0.01035,"4.4":0,"4.4.3-4.4.4":0.10842},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.02467,"11":1.00744,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":57.49242},S:{"2.5":0},R:{_:"0"},M:{"0":0.13542},Q:{"10.4":0.0471},O:{"0":3.08531},H:{"0":1.36572}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js deleted file mode 100644 index 5bc86057adadb8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"2":0.00945,"5":0.01417,"33":0.00472,"36":0.00945,"41":0.00472,"43":0.00945,"44":0.00945,"45":0.00945,"47":0.00945,"50":0.02834,"51":0.01417,"52":0.05668,"53":0.01417,"54":0.02362,"55":0.01417,"56":0.02362,"57":0.02834,"58":0.02362,"59":0.04723,"60":0.04251,"61":0.04251,"62":0.00945,"63":0.02834,"64":0.01417,"65":0.00945,"66":0.01417,"67":0.00945,"68":0.07085,"70":0.09446,"71":0.00945,"72":0.02362,"73":0.01417,"74":0.00945,"75":0.01889,"76":0.02834,"77":0.03778,"78":0.56204,"79":0.02362,"80":0.03306,"81":0.05195,"82":0.45813,"83":0.02362,"84":0.02362,"86":0.00472,"87":0.01417,"88":0.02362,"89":0.16531,"90":0.17947,"91":1.49719,"92":1.8278,"93":0.05195,_:"3 4 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 37 38 39 40 42 46 48 49 69 85 94 3.5 3.6"},D:{"11":0.00945,"23":0.00945,"24":0.01889,"25":0.00945,"31":0.00472,"38":0.00472,"39":0.00472,"41":0.02362,"42":0.00472,"43":0.01417,"44":0.00945,"46":0.02362,"47":0.01417,"48":0.01417,"49":1.78057,"50":0.01889,"51":0.00472,"53":0.00472,"54":0.01889,"55":0.02362,"56":0.02834,"57":0.02834,"58":0.00945,"59":0.00945,"60":0.01417,"61":0.62344,"62":0.00472,"63":0.04723,"64":0.01889,"65":0.02362,"66":0.01889,"67":0.05195,"68":0.02834,"69":0.13697,"70":0.06612,"71":0.03306,"72":0.22198,"73":0.22198,"74":0.03306,"75":0.04723,"76":0.03306,"77":0.01417,"78":2.59765,"79":0.11335,"80":0.10391,"81":0.02834,"83":0.05668,"84":0.74623,"85":0.11335,"86":0.54315,"87":3.09357,"88":0.31644,"89":1.03434,"90":0.05668,"91":0.34006,"92":4.1279,"93":11.03765,"94":1.68139,"95":0.00945,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 26 27 28 29 30 32 33 34 35 36 37 40 45 52 96 97"},F:{"18":0.01417,"32":0.00472,"34":0.00945,"41":0.01417,"42":0.00472,"43":0.00472,"44":0.00472,"46":0.00472,"48":0.00472,"49":0.00945,"50":0.00945,"52":0.02362,"53":0.01889,"54":0.00945,"55":0.01889,"56":0.00945,"60":0.00472,"66":0.01417,"67":0.00472,"68":0.00945,"70":0.00945,"71":0.14169,"77":0.00945,"78":0.66122,"79":0.09918,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 33 35 36 37 38 39 40 45 47 51 57 58 62 63 64 65 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02362},G:{"8":0.00079,"15":0.39339,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00157,"5.0-5.1":0.01021,"6.0-6.1":0.02748,"7.0-7.1":0.01492,"8.1-8.4":0.01335,"9.0-9.2":0.01335,"9.3":0.0746,"10.0-10.2":0.02277,"10.3":0.04711,"11.0-11.2":0.04947,"11.3-11.4":0.05654,"12.0-12.1":0.04947,"12.2-12.5":0.53944,"13.0-13.1":0.05182,"13.2":0.0212,"13.3":0.20337,"13.4-13.7":0.33764,"14.0-14.4":0.85432,"14.5-14.8":5.06936},E:{"4":0,"10":0.01417,"11":0.02362,"12":0.02834,"13":0.10391,"14":0.34478,"15":0.10863,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.00472,"11.1":0.04251,"12.1":0.04723,"13.1":0.26921,"14.1":1.24687},B:{"12":0.03306,"13":0.08029,"14":0.05668,"15":0.02834,"16":0.08974,"17":0.05195,"18":0.17003,"79":0.00945,"80":0.02834,"81":0.03306,"83":0.02834,"84":0.04723,"85":0.02834,"86":0.03306,"87":0.01417,"88":0.01889,"89":0.01417,"90":0.00472,"91":0.08029,"92":0.55731,"93":2.10646,"94":0.40618},P:{"4":0.24453,"5.0-5.4":0.02038,"6.2-6.4":0.03057,"7.2-7.4":0.57057,"8.2":0.01019,"9.2":0.03057,"10.1":0.10189,"11.1-11.2":0.40755,"12.0":0.94755,"13.0":0.52981,"14.0":0.46868,"15.0":1.90528},I:{"0":0,"3":0,"4":0.0016,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0024,"4.2-4.3":0.00721,"4.4":0,"4.4.3-4.4.4":0.0521},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0519,"9":0.02076,"10":0.03114,"11":0.3685,_:"6 7 5.5"},J:{"7":0,"10":0.24802},N:{"10":0.0242,"11":0.15172},L:{"0":36.73531},S:{"2.5":0},R:{_:"0"},M:{"0":0.43271},Q:{"10.4":0.01583},O:{"0":4.41157},H:{"0":0.80934}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js deleted file mode 100644 index db10938774f222..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.00121,"18":0.00604,"21":0.00121,"28":0.00242,"29":0.00121,"30":0.00121,"32":0.00121,"33":0.00242,"34":0.01691,"35":0.00725,"36":0.00362,"37":0.00121,"38":0.00846,"39":0.00121,"40":0.00242,"41":0.00362,"42":0.00483,"43":0.00846,"44":0.00604,"45":0.00362,"47":0.0157,"48":0.00483,"49":0.00725,"50":0.00966,"52":0.02778,"53":0.00242,"54":0.00121,"56":0.00483,"57":0.00362,"59":0.00121,"60":0.00121,"61":0.00121,"62":0.00121,"63":0.00121,"65":0.00121,"66":0.00483,"67":0.00242,"68":0.00604,"69":0.00483,"70":0.00362,"72":0.02295,"73":0.00242,"75":0.00121,"76":0.00242,"77":0.00121,"78":0.03624,"80":0.00483,"81":0.00362,"82":0.00362,"83":0.00362,"84":0.01087,"85":0.00846,"86":0.00121,"87":0.00362,"88":0.0145,"89":0.10389,"90":0.02537,"91":0.63903,"92":1.18142,"93":0.07248,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 19 20 22 23 24 25 26 27 31 46 51 55 58 64 71 74 79 94 3.5 3.6"},D:{"11":0.00121,"28":0.00846,"29":0.00604,"33":0.00725,"37":0.00846,"38":0.00242,"39":0.00121,"40":0.00483,"42":0.00121,"43":0.04832,"45":0.00121,"46":0.00362,"47":0.00483,"48":0.01812,"49":0.02174,"50":0.00483,"51":0.00121,"52":0.00483,"53":0.00604,"55":0.00242,"56":0.00966,"57":0.00604,"58":0.00242,"60":0.00362,"61":0.14134,"62":0.00362,"63":0.03866,"64":0.00604,"65":0.00362,"66":0.00242,"67":0.00121,"68":0.00483,"69":0.0604,"70":0.01208,"71":0.01691,"72":0.00604,"73":0.00242,"74":0.00362,"75":0.00604,"76":0.00604,"77":0.00362,"78":0.02295,"79":0.08456,"80":0.0145,"81":0.01933,"83":0.01329,"84":0.0145,"85":0.01933,"86":0.06282,"87":0.21623,"88":0.03503,"89":0.04832,"90":0.06282,"91":0.23798,"92":1.0268,"93":2.86658,"94":0.54843,"95":0.00483,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 30 31 32 34 35 36 41 44 54 59 96 97"},F:{"18":0.00483,"38":0.00121,"40":0.00121,"42":0.00242,"60":0.00362,"62":0.00121,"65":0.00121,"71":0.00362,"73":0.00362,"75":0.00604,"76":0.00242,"77":0.04711,"78":0.55206,"79":0.14254,_:"9 11 12 15 16 17 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 63 64 66 67 68 69 70 72 74 9.5-9.6 10.5 10.6 11.1 11.6 12.1","10.0-10.1":0,"11.5":0.00362},G:{"8":0.00085,"15":0.16744,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00212,"5.0-5.1":0.00085,"6.0-6.1":0.00042,"7.0-7.1":0.00933,"8.1-8.4":0.02077,"9.0-9.2":0.00297,"9.3":0.05214,"10.0-10.2":0.00551,"10.3":0.03858,"11.0-11.2":0.05214,"11.3-11.4":0.04197,"12.0-12.1":0.05468,"12.2-12.5":0.60915,"13.0-13.1":0.04197,"13.2":0.01272,"13.3":0.06274,"13.4-13.7":0.21195,"14.0-14.4":1.20642,"14.5-14.8":1.64304},E:{"4":0,"11":0.00483,"12":0.00242,"13":0.02174,"14":0.0459,"15":0.01933,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01933,"10.1":0.00242,"11.1":0.01087,"12.1":0.01812,"13.1":0.07731,"14.1":0.16791},B:{"12":0.01933,"13":0.01329,"14":0.02416,"15":0.00725,"16":0.01087,"17":0.02658,"18":0.05436,"80":0.00121,"81":0.00242,"83":0.00242,"84":0.0145,"85":0.00846,"87":0.00242,"88":0.00725,"89":0.02054,"90":0.00846,"91":0.02295,"92":0.15462,"93":0.50736,"94":0.09664,_:"79 86"},P:{"4":1.33193,"5.0-5.4":0.07063,"6.2-6.4":0.12108,"7.2-7.4":0.59533,"8.2":0.03051,"9.2":0.16145,"10.1":0.04036,"11.1-11.2":0.43389,"12.0":0.09081,"13.0":0.40362,"14.0":0.84759,"15.0":0.68615},I:{"0":0,"3":0,"4":0.001,"2.1":0,"2.2":0,"2.3":0,"4.1":0.002,"4.2-4.3":0.01464,"4.4":0,"4.4.3-4.4.4":0.10546},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00441,"9":0.01762,"11":0.42735,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":69.86964},S:{"2.5":0.01758},R:{_:"0"},M:{"0":0.18463},Q:{"10.4":0.00879},O:{"0":1.61773},H:{"0":7.5163}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js deleted file mode 100644 index b06185c200a0b7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00552,"52":0.03311,"59":0.01104,"78":0.09382,"84":0.01656,"87":0.01656,"88":0.04415,"89":0.0276,"90":0.0276,"91":0.73403,"92":1.50117,"93":0.01656,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 94 3.5 3.6"},D:{"38":0.01104,"49":0.06623,"61":0.07727,"63":0.00552,"65":0.02208,"66":0.04415,"67":0.02208,"69":0.17109,"70":0.01104,"71":0.01104,"72":0.00552,"73":0.01104,"75":0.06623,"76":0.06071,"77":0.02208,"78":0.01656,"79":0.09934,"80":0.03311,"81":0.02208,"83":0.02208,"84":0.03311,"85":0.13246,"86":0.07175,"87":0.39185,"88":0.22628,"89":0.12694,"90":0.65124,"91":0.91615,"92":8.95182,"93":20.44238,"94":3.37763,"95":0.00552,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 62 64 68 74 96 97"},F:{"77":0.0276,"78":1.14795,"79":0.27043,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.69706,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00232,"6.0-6.1":0,"7.0-7.1":0.00926,"8.1-8.4":0.01158,"9.0-9.2":0.00695,"9.3":0.09726,"10.0-10.2":0.01158,"10.3":0.15979,"11.0-11.2":0.03011,"11.3-11.4":0.06484,"12.0-12.1":0.05558,"12.2-12.5":0.97959,"13.0-13.1":0.04168,"13.2":0.02316,"13.3":0.13895,"13.4-13.7":0.43074,"14.0-14.4":1.58633,"14.5-14.8":18.80207},E:{"4":0,"11":0.00552,"12":0.01104,"13":0.13246,"14":1.12588,"15":0.29251,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.02208,"11.1":0.07727,"12.1":0.13246,"13.1":0.5795,"14.1":5.29824},B:{"16":0.00552,"17":0.01656,"18":0.06071,"84":0.01104,"85":0.01656,"86":0.01104,"87":0.01104,"88":0.02208,"89":0.03311,"90":0.02208,"91":0.09934,"92":1.04861,"93":3.91297,"94":0.86096,_:"12 13 14 15 79 80 81 83"},P:{"4":0.06373,"5.0-5.4":0.07063,"6.2-6.4":0.02039,"7.2-7.4":0.59244,"8.2":0.02043,"9.2":0.06129,"10.1":0.03064,"11.1-11.2":0.02124,"12.0":0.03186,"13.0":0.10622,"14.0":0.37176,"15.0":3.13338},I:{"0":0,"3":0,"4":0.00156,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00078,"4.2-4.3":0.00468,"4.4":0,"4.4.3-4.4.4":0.02883},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.29803,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":17.49211},S:{"2.5":0},R:{_:"0"},M:{"0":0.34056},Q:{"10.4":0},O:{"0":0.02241},H:{"0":0.40302}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js deleted file mode 100644 index 1c9e6599dfe481..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.00335,"17":0.0067,"48":0.00335,"52":0.01006,"53":0.00335,"56":0.00335,"63":0.00335,"78":0.05363,"79":0.00335,"80":0.00335,"81":0.00335,"82":0.0067,"84":0.02011,"87":0.01006,"88":0.02011,"89":0.02011,"90":0.03017,"91":0.49274,"92":0.97878,"93":0.00335,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 54 55 57 58 59 60 61 62 64 65 66 67 68 69 70 71 72 73 74 75 76 77 83 85 86 94 3.5 3.6"},D:{"22":0.0067,"24":0.0067,"26":0.0067,"34":0.04693,"38":0.13743,"45":0.00335,"47":0.02682,"49":0.14749,"50":0.00335,"53":0.04358,"55":0.01006,"56":0.01006,"57":0.00335,"58":0.00335,"62":0.01006,"64":0.04358,"65":0.02346,"66":0.419,"67":0.01676,"68":0.01006,"69":0.01341,"70":0.05363,"71":0.01006,"72":0.05363,"73":0.01341,"74":0.01006,"75":0.02011,"76":0.01676,"77":0.01676,"78":0.01676,"79":0.38213,"80":0.08715,"81":0.04693,"83":0.08045,"84":0.05363,"85":0.05698,"86":0.08715,"87":0.53297,"88":0.06034,"89":0.06369,"90":0.0838,"91":0.53632,"92":4.48162,"93":13.21694,"94":1.86036,"95":0.01006,"96":0.00335,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 46 48 51 52 54 59 60 61 63 97"},F:{"28":0.01006,"36":0.01341,"40":0.0067,"46":0.03352,"71":0.00335,"72":0.00335,"77":0.0067,"78":0.27822,"79":0.06704,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.79612,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00318,"5.0-5.1":0.00795,"6.0-6.1":0.01907,"7.0-7.1":0.02066,"8.1-8.4":0.02701,"9.0-9.2":0.01271,"9.3":0.16685,"10.0-10.2":0.03337,"10.3":0.116,"11.0-11.2":0.05562,"11.3-11.4":0.06515,"12.0-12.1":0.06833,"12.2-12.5":0.67217,"13.0-13.1":0.03973,"13.2":0.02225,"13.3":0.10647,"13.4-13.7":0.35754,"14.0-14.4":1.1473,"14.5-14.8":12.1579},E:{"4":0,"5":0.00335,"8":0.0067,"11":0.01676,"12":0.0067,"13":0.0771,"14":0.55978,"15":0.23129,_:"0 6 7 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.0067,"10.1":0.01676,"11.1":0.03017,"12.1":0.04358,"13.1":0.32179,"14.1":3.16764},B:{"15":0.00335,"16":0.0067,"17":0.01341,"18":0.04693,"84":0.01006,"86":0.01006,"87":0.00335,"89":0.0067,"90":0.0067,"91":0.01341,"92":0.36537,"93":1.57879,"94":0.30503,_:"12 13 14 79 80 81 83 85 88"},P:{"4":0.57047,"5.0-5.4":0.02086,"6.2-6.4":0.03057,"7.2-7.4":0.09386,"8.2":0.01019,"9.2":0.01037,"10.1":0.02086,"11.1-11.2":0.02074,"12.0":0.04149,"13.0":0.08298,"14.0":0.21782,"15.0":3.00796},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":2.31849,"4.4":0,"4.4.3-4.4.4":16.22943},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"7":0.0403,"8":0.01152,"9":0.01152,"10":0.01152,"11":0.41454,_:"6 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":23.01092},S:{"2.5":0},R:{_:"0"},M:{"0":0.41218},Q:{"10.4":0.05318},O:{"0":0.68474},H:{"0":0.6168}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js deleted file mode 100644 index 20ac4c0e2bc4ca..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"92":3.22841,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 93 94 3.5 3.6"},D:{"81":64.51409,"92":3.22841,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 91 93 94 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"18":3.22841,"92":3.22841,_:"12 13 14 15 16 17 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},P:{"4":0.24772,"5.0-5.4":0.02064,"6.2-6.4":0.01023,"7.2-7.4":0.10322,"8.2":0.0101,"9.2":0.05161,"10.1":0.02064,"11.1-11.2":11.29,"12.0":0.02064,"13.0":0.1445,"14.0":0.57801,"15.0":0.75348},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":11.29},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js deleted file mode 100644 index df7546a51df345..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00577,"52":0.17884,"57":0.01154,"60":0.02885,"66":0.01154,"67":0.01154,"68":0.03461,"72":0.01154,"76":0.00577,"78":0.43844,"81":0.00577,"82":0.02308,"83":0.02308,"84":0.02885,"85":0.02308,"86":0.01154,"87":0.03461,"88":0.09807,"89":0.09807,"90":0.06923,"91":2.56721,"92":4.98442,"93":0.01731,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 58 59 61 62 63 64 65 69 70 71 73 74 75 77 79 80 94 3.5 3.6"},D:{"29":0.00577,"38":0.00577,"46":0.37499,"49":0.19038,"56":0.01154,"58":0.01154,"63":0.03461,"66":0.00577,"67":0.01731,"69":0.01154,"70":0.01154,"73":0.01731,"75":0.01731,"76":0.01154,"77":0.00577,"78":0.01154,"79":0.0923,"80":0.05769,"81":0.01731,"83":0.02308,"84":0.04615,"85":0.02885,"86":0.04038,"87":0.25961,"88":0.04038,"89":0.06923,"90":0.09807,"91":0.29999,"92":6.54205,"93":23.18561,"94":3.85946,"95":1.06727,"96":0.10384,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 47 48 50 51 52 53 54 55 57 59 60 61 62 64 65 68 71 72 74 97"},F:{"46":0.02308,"68":0.00577,"74":0.00577,"77":0.05192,"78":1.21726,"79":0.36345,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 71 72 73 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.63284,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00267,"6.0-6.1":0,"7.0-7.1":0.00801,"8.1-8.4":0,"9.0-9.2":0.00089,"9.3":0.07121,"10.0-10.2":0.00534,"10.3":0.05429,"11.0-11.2":0.02759,"11.3-11.4":0.02581,"12.0-12.1":0.05251,"12.2-12.5":0.23587,"13.0-13.1":0.02581,"13.2":0.01068,"13.3":0.04984,"13.4-13.7":0.19671,"14.0-14.4":0.79394,"14.5-14.8":6.69954},E:{"4":0.00577,"5":0.01731,"12":0.00577,"13":0.05192,"14":0.34037,"15":0.17307,_:"0 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.01154,"10.1":0.01154,"11.1":0.02885,"12.1":0.04615,"13.1":0.20768,"14.1":1.57494},B:{"16":0.01154,"17":0.00577,"18":0.02308,"84":0.00577,"85":0.00577,"86":0.00577,"87":0.00577,"88":0.01154,"89":0.01731,"90":0.01154,"91":0.02308,"92":0.73843,"93":3.3691,"94":0.78458,_:"12 13 14 15 79 80 81 83"},P:{"4":0.05253,"5.0-5.4":0.02086,"6.2-6.4":0.03057,"7.2-7.4":0.09386,"8.2":0.02101,"9.2":0.01051,"10.1":0.02086,"11.1-11.2":0.06304,"12.0":0.05253,"13.0":0.14709,"14.0":0.53582,"15.0":2.55304},I:{"0":0,"3":0,"4":0.00071,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00353,"4.2-4.3":0.00212,"4.4":0,"4.4.3-4.4.4":0.0275},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.70959,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":29.82233},S:{"2.5":0},R:{_:"0"},M:{"0":0.46118},Q:{"10.4":0},O:{"0":0.02116},H:{"0":0.23233}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js deleted file mode 100644 index 6316cafcfc4955..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"33":0.01512,"48":0.00504,"52":0.19656,"54":0.00504,"56":0.01008,"57":0.00504,"60":0.00504,"61":0.0252,"66":0.00504,"68":0.0252,"72":0.01008,"76":0.01008,"78":0.17136,"79":0.01008,"80":0.01512,"81":0.01008,"82":0.01008,"83":0.01008,"84":0.02016,"85":0.01512,"86":0.01512,"87":0.0252,"88":0.06048,"89":0.06552,"90":0.07056,"91":2.00592,"92":4.49568,"93":0.0252,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 55 58 59 62 63 64 65 67 69 70 71 73 74 75 77 94 3.5 3.6"},D:{"34":0.01008,"38":0.03024,"43":0.01512,"47":0.01008,"49":0.31248,"53":0.0504,"56":0.00504,"58":0.00504,"63":0.04536,"67":0.01008,"68":0.00504,"69":0.04536,"70":0.01008,"71":0.02016,"72":0.01008,"73":0.01008,"74":0.01008,"75":0.02016,"76":0.01008,"77":0.01008,"78":0.00504,"79":0.27216,"80":0.02016,"81":0.05544,"83":0.03528,"84":0.03024,"85":0.04032,"86":0.14616,"87":0.15624,"88":0.04032,"89":0.1008,"90":0.08064,"91":0.3528,"92":5.45832,"93":20.33136,"94":3.8052,"95":0.01512,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 44 45 46 48 50 51 52 54 55 57 59 60 61 62 64 65 66 96 97"},F:{"36":0.01008,"40":0.00504,"46":0.01008,"69":0.01008,"72":0.01008,"77":0.0756,"78":2.35872,"79":0.69048,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.02016},G:{"8":0,"15":0.68191,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00794,"6.0-6.1":0,"7.0-7.1":0.00496,"8.1-8.4":0.00397,"9.0-9.2":0,"9.3":0.05459,"10.0-10.2":0.01092,"10.3":0.08834,"11.0-11.2":0.01092,"11.3-11.4":0.03871,"12.0-12.1":0.02481,"12.2-12.5":0.35237,"13.0-13.1":0.00893,"13.2":0.01886,"13.3":0.06154,"13.4-13.7":0.15286,"14.0-14.4":0.68886,"14.5-14.8":7.70749},E:{"4":0,"12":0.01008,"13":0.03024,"14":0.34272,"15":0.21168,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00504,"11.1":0.0252,"12.1":0.0504,"13.1":0.18648,"14.1":1.66824},B:{"15":0.00504,"16":0.00504,"17":0.01008,"18":0.1008,"84":0.01512,"85":0.01008,"86":0.00504,"87":0.00504,"89":0.02016,"90":0.01008,"91":0.04032,"92":0.59976,"93":2.772,"94":0.63504,_:"12 13 14 79 80 81 83 88"},P:{"4":0.29033,"5.0-5.4":0.02086,"6.2-6.4":0.03057,"7.2-7.4":0.09386,"8.2":0.01019,"9.2":0.02074,"10.1":0.02086,"11.1-11.2":0.06221,"12.0":0.02074,"13.0":0.10369,"14.0":0.26959,"15.0":1.97008},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00124,"4.2-4.3":0.01116,"4.4":0,"4.4.3-4.4.4":0.07686},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.34776,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":36.48885},S:{"2.5":0},R:{_:"0"},M:{"0":0.3025},Q:{"10.4":0},O:{"0":0.05455},H:{"0":0.53521}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js deleted file mode 100644 index 7cffa08b2c023c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00536,"15":0.00268,"17":0.01341,"43":0.01073,"44":0.00268,"45":0.00805,"47":0.00536,"60":0.00268,"67":0.00268,"72":0.00805,"78":0.01609,"87":0.00536,"88":0.00536,"89":0.01341,"90":0.01341,"91":0.41571,"92":0.86897,"93":0.10192,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 46 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 68 69 70 71 73 74 75 76 77 79 80 81 82 83 84 85 86 94 3.5 3.6"},D:{"11":0.00536,"22":0.03218,"29":0.01073,"30":0.00536,"33":0.06437,"38":0.00805,"39":0.00268,"42":0.01609,"43":0.00536,"46":0.00536,"47":0.00268,"48":0.00268,"49":0.02146,"55":0.00805,"56":0.01341,"57":0.01609,"59":0.00536,"60":0.00805,"62":0.00268,"63":0.01341,"64":0.01073,"65":0.00805,"67":0.00268,"69":0.02414,"70":0.00536,"71":0.00536,"74":0.02682,"75":0.01609,"76":0.02414,"77":0.00536,"78":0.01609,"79":0.02682,"80":0.01341,"81":0.01073,"83":0.03218,"84":0.07241,"85":0.01877,"86":0.02146,"87":0.06169,"88":0.03218,"89":0.03218,"90":0.10728,"91":0.20651,"92":2.82415,"93":6.7801,"94":0.88506,"95":0.00805,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 31 32 34 35 36 37 40 41 44 45 50 51 52 53 54 58 61 66 68 72 73 96 97"},F:{"42":0.00805,"44":0.01341,"53":0.00536,"64":0.00536,"65":0.04023,"70":0.09923,"73":0.00536,"74":0.00268,"76":0.00536,"77":0.06705,"78":0.86897,"79":0.20383,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 43 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 66 67 68 69 71 72 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.24156,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00201,"7.0-7.1":0.10171,"8.1-8.4":0.00335,"9.0-9.2":0.00335,"9.3":0.06691,"10.0-10.2":0.00736,"10.3":0.04416,"11.0-11.2":0.01807,"11.3-11.4":0.04282,"12.0-12.1":0.0368,"12.2-12.5":0.53865,"13.0-13.1":0.06624,"13.2":0.02342,"13.3":0.23553,"13.4-13.7":0.28907,"14.0-14.4":2.11781,"14.5-14.8":2.84984},E:{"4":0,"13":0.00536,"14":0.07241,"15":0.02146,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0295,"11.1":0.01073,"12.1":0.05096,"13.1":0.06973,"14.1":0.21992},B:{"12":0.04559,"13":0.08046,"14":0.03218,"15":0.02682,"16":0.03487,"17":0.00805,"18":0.13678,"80":0.00536,"84":0.03218,"85":0.01609,"87":0.00268,"89":0.02682,"90":0.01609,"91":0.09387,"92":0.40498,"93":1.64675,"94":0.22797,_:"79 81 83 86 88"},P:{"4":0.40674,"5.0-5.4":0.02086,"6.2-6.4":0.03057,"7.2-7.4":0.09386,"8.2":0.01019,"9.2":0.03129,"10.1":0.02086,"11.1-11.2":0.09386,"12.0":0.12515,"13.0":0.10429,"14.0":0.20858,"15.0":0.63618},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.001,"4.2-4.3":0.00201,"4.4":0,"4.4.3-4.4.4":0.0409},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00713,"9":0.01426,"10":0.01426,"11":0.23524,_:"6 7 5.5"},J:{"7":0,"10":0.02195},N:{"10":0.0242,"11":0.15172},L:{"0":52.55396},S:{"2.5":0.02195},R:{_:"0"},M:{"0":0.19759},Q:{"10.4":0.00732},O:{"0":1.76364},H:{"0":17.38288}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js deleted file mode 100644 index 7ba9e4a12fd3c9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00648,"52":0.09066,"56":0.0259,"60":0.01943,"65":0.00648,"78":0.11657,"85":0.01943,"88":0.05181,"89":0.00648,"90":0.07124,"91":1.76795,"92":4.00217,"93":0.01943,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 57 58 59 61 62 63 64 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 86 87 94 3.5 3.6"},D:{"49":0.30437,"65":0.00648,"67":0.00648,"71":0.01295,"73":0.03886,"76":0.09714,"77":0.01295,"78":0.03886,"79":0.01943,"81":0.04533,"86":0.00648,"87":0.08419,"88":0.03238,"89":0.00648,"90":0.01943,"91":1.19158,"92":5.11604,"93":29.67303,"94":4.6692,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 66 68 69 70 72 74 75 80 83 84 85 95 96 97"},F:{"78":0.29142,"79":0.30437,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.49354,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.07513,"8.1-8.4":0,"9.0-9.2":0.09286,"9.3":0.01461,"10.0-10.2":0,"10.3":0.03861,"11.0-11.2":0.01982,"11.3-11.4":0.01461,"12.0-12.1":0.00417,"12.2-12.5":1.03611,"13.0-13.1":0.00835,"13.2":0,"13.3":0.04278,"13.4-13.7":0.14817,"14.0-14.4":0.77422,"14.5-14.8":7.66807},E:{"4":0,"13":0.03238,"14":0.36913,"15":0.46627,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 10.1","5.1":0.05181,"9.1":0.01295,"11.1":0.38856,"12.1":0.07124,"13.1":0.89369,"14.1":3.64599},B:{"17":0.00648,"18":0.12952,"92":0.8095,"93":5.41394,"94":1.51538,_:"12 13 14 15 16 79 80 81 83 84 85 86 87 88 89 90 91"},P:{"4":0.11271,"5.0-5.4":0.01025,"6.2-6.4":0.02411,"7.2-7.4":0.02101,"8.2":0.08197,"9.2":0.08197,"10.1":0.8812,"11.1-11.2":0.03152,"12.0":0.08406,"13.0":0.19468,"14.0":0.12609,"15.0":2.59528},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.13039},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.25904,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":23.82348},S:{"2.5":0},R:{_:"0"},M:{"0":0.04581},Q:{"10.4":0},O:{"0":0},H:{"0":0.04004}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js deleted file mode 100644 index 53690bccff4107..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.00259,"34":0.00518,"35":0.01813,"36":0.00518,"42":0.01036,"43":0.01036,"45":0.00518,"47":0.00518,"48":0.00518,"49":0.00518,"51":0.00518,"52":0.0259,"53":0.00777,"56":0.00259,"60":0.00259,"64":0.00259,"68":0.01554,"70":0.02849,"72":0.00518,"74":0.01036,"76":0.00259,"78":0.10878,"80":0.03626,"81":0.00259,"84":0.0259,"85":0.00777,"86":0.01295,"87":0.00259,"88":0.02849,"89":0.07252,"90":0.02072,"91":0.71743,"92":1.18363,"93":0.00777,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 37 38 39 40 41 44 46 50 54 55 57 58 59 61 62 63 65 66 67 69 71 73 75 77 79 82 83 94 3.5 3.6"},D:{"38":0.00518,"43":0.00777,"49":0.06216,"53":0.00518,"55":0.00777,"57":0.00259,"59":0.00518,"60":0.01036,"62":0.00259,"63":0.01295,"65":0.01813,"66":0.00259,"67":0.00777,"69":0.03626,"70":0.00777,"71":0.00518,"72":0.01036,"73":0.00518,"74":0.27454,"75":0.00777,"76":0.01036,"77":0.01036,"78":0.00259,"79":0.04662,"80":0.02072,"81":0.02331,"83":0.01295,"84":0.01554,"85":0.10878,"86":0.02849,"87":0.10101,"88":0.38332,"89":0.03885,"90":0.0518,"91":0.16576,"92":2.70137,"93":8.55995,"94":1.19399,"95":0.00518,"96":0.00259,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 56 58 61 64 68 97"},F:{"76":0.00518,"77":0.01295,"78":0.40922,"79":0.16835,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00548,"15":0.46025,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00137,"6.0-6.1":0,"7.0-7.1":0.0452,"8.1-8.4":0.00548,"9.0-9.2":0.0137,"9.3":0.17259,"10.0-10.2":0.06027,"10.3":0.43833,"11.0-11.2":0.1452,"11.3-11.4":0.11917,"12.0-12.1":0.09588,"12.2-12.5":1.27526,"13.0-13.1":0.06027,"13.2":0.03287,"13.3":0.23149,"13.4-13.7":0.4534,"14.0-14.4":2.13549,"14.5-14.8":7.94198},E:{"4":0,"11":0.00777,"12":0.01295,"13":0.01036,"14":0.08547,"15":0.02849,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.00777,"10.1":0.01554,"11.1":0.03108,"12.1":0.0259,"13.1":0.07252,"14.1":0.34188},B:{"12":0.02331,"13":0.00777,"14":0.00518,"15":0.01554,"16":0.01813,"17":0.02072,"18":0.09583,"84":0.00518,"85":0.01036,"86":0.00259,"89":0.01295,"90":0.01036,"91":0.04662,"92":0.37555,"93":1.33126,"94":0.19684,_:"79 80 81 83 87 88"},P:{"4":0.40755,"5.0-5.4":0.01045,"6.2-6.4":0.03057,"7.2-7.4":0.49925,"8.2":0.08197,"9.2":0.11208,"10.1":0.06113,"11.1-11.2":0.42793,"12.0":0.1834,"13.0":0.33623,"14.0":0.74378,"15.0":1.59963},I:{"0":0,"3":0,"4":0.00114,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00719,"4.2-4.3":0.00605,"4.4":0,"4.4.3-4.4.4":0.07454},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.29526,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.01482},N:{"10":0.0242,"11":0.15172},L:{"0":60.47696},S:{"2.5":0.01482},R:{_:"0"},M:{"0":0.20007},Q:{"10.4":0},O:{"0":0.11115},H:{"0":0.53316}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js deleted file mode 100644 index b3e66155ded239..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00491,"17":0.00245,"47":0.00245,"78":0.01227,"84":0.00245,"88":0.00491,"89":0.00982,"90":0.00982,"91":0.26749,"92":0.59141,"93":0.01472,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"21":0.00245,"25":0.00491,"33":0.00491,"37":0.00491,"38":0.00491,"40":0.00245,"43":0.02699,"44":0.00736,"45":0.00245,"49":0.00736,"56":0.00491,"57":0.00736,"63":0.01227,"64":0.00491,"67":0.00245,"68":0.01963,"69":0.00245,"70":0.00491,"71":0.00736,"72":0.00491,"73":0.00736,"74":0.00982,"76":0.00491,"77":0.00982,"78":0.00982,"79":0.07117,"80":0.01227,"81":0.01472,"83":0.00491,"84":0.00736,"85":0.01718,"86":0.04417,"87":0.05644,"88":0.02209,"89":0.04663,"90":0.09325,"91":0.59387,"92":3.54603,"93":12.25773,"94":1.97302,"95":0.03681,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 26 27 28 29 30 31 32 34 35 36 39 41 42 46 47 48 50 51 52 53 54 55 58 59 60 61 62 65 66 75 96 97"},F:{"65":0.00491,"76":0.00491,"77":0.0319,"78":0.65031,"79":0.17669,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.26803,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00693,"6.0-6.1":0.00107,"7.0-7.1":0.00799,"8.1-8.4":0,"9.0-9.2":0.00107,"9.3":0.02131,"10.0-10.2":0.0016,"10.3":0.02984,"11.0-11.2":0.01439,"11.3-11.4":0.02131,"12.0-12.1":0.04529,"12.2-12.5":0.7039,"13.0-13.1":0.0373,"13.2":0.01599,"13.3":0.10977,"13.4-13.7":0.23659,"14.0-14.4":1.12592,"14.5-14.8":2.67919},E:{"4":0,"13":0.00491,"14":0.09816,"15":0.0319,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00491,"10.1":0.00245,"11.1":0.00736,"12.1":0.02209,"13.1":0.07853,"14.1":0.26258},B:{"12":0.02699,"13":0.00982,"14":0.00736,"15":0.00736,"16":0.00982,"17":0.01963,"18":0.1865,"84":0.01227,"85":0.00982,"86":0.00245,"88":0.01472,"89":0.03436,"90":0.00982,"91":0.02699,"92":0.29203,"93":1.23927,"94":0.22086,_:"79 80 81 83 87"},P:{"4":0.56413,"5.0-5.4":0.08059,"6.2-6.4":0.17125,"7.2-7.4":1.00737,"8.2":0.02101,"9.2":0.17125,"10.1":0.03022,"11.1-11.2":0.50369,"12.0":0.11081,"13.0":0.91671,"14.0":0.97715,"15.0":1.60172},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00744,"4.2-4.3":0.01675,"4.4":0,"4.4.3-4.4.4":0.11164},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.00245,"11":0.14969,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":54.8282},S:{"2.5":0},R:{_:"0"},M:{"0":0.13583},Q:{"10.4":0},O:{"0":2.55809},H:{"0":6.60826}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js deleted file mode 100644 index f63dfea7d2f41b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"50":0.00322,"52":0.01608,"59":0.00643,"60":0.00322,"76":0.00322,"78":0.01286,"89":0.0193,"90":0.02894,"91":0.52099,"92":1.00018,"93":0.02251,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 51 53 54 55 56 57 58 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 77 79 80 81 82 83 84 85 86 87 88 94 3.5 3.6"},D:{"26":0.00643,"39":0.04181,"49":0.2219,"50":0.00643,"53":0.00965,"59":0.00322,"60":0.00322,"63":0.03216,"65":0.00965,"66":0.00643,"68":0.00643,"69":0.00965,"70":0.00322,"73":0.07075,"74":0.0193,"75":0.02894,"76":0.01286,"79":0.13829,"80":0.02251,"81":0.02573,"83":0.02251,"84":0.00965,"85":0.01286,"86":0.01286,"87":0.25728,"88":0.04502,"89":0.05467,"90":0.0611,"91":0.23477,"92":4.32552,"93":13.84488,"94":2.18045,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 51 52 54 55 56 57 58 61 62 64 67 71 72 77 78 95 96 97"},F:{"28":0.00322,"51":0.00322,"53":0.00322,"77":0.01286,"78":0.5017,"79":0.12864,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 52 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.72247,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02089,"6.0-6.1":0.0019,"7.0-7.1":0.04272,"8.1-8.4":0.0019,"9.0-9.2":0.0019,"9.3":0.09209,"10.0-10.2":0.00854,"10.3":0.26582,"11.0-11.2":0.05886,"11.3-11.4":0.02373,"12.0-12.1":0.02563,"12.2-12.5":0.86202,"13.0-13.1":0.11392,"13.2":0.00665,"13.3":0.13101,"13.4-13.7":0.17658,"14.0-14.4":0.84683,"14.5-14.8":6.08734},E:{"4":0,"11":0.00965,"13":0.01286,"14":0.10291,"15":0.05467,_:"0 5 6 7 8 9 10 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00643,"11.1":0.18331,"12.1":0.02573,"13.1":0.0804,"14.1":1.05806},B:{"12":0.0611,"13":0.00643,"14":0.00643,"15":0.00643,"16":0.05467,"17":0.03859,"18":0.07718,"81":0.00322,"83":0.02251,"84":0.02894,"85":0.02573,"87":0.03538,"89":0.03216,"90":0.00322,"91":0.01286,"92":0.59818,"93":2.34125,"94":0.45024,_:"79 80 86 88"},P:{"4":1.85513,"5.0-5.4":0.07063,"6.2-6.4":0.02039,"7.2-7.4":0.7237,"8.2":0.03051,"9.2":0.1427,"10.1":0.01019,"11.1-11.2":0.49946,"12.0":0.36695,"13.0":0.53004,"14.0":1.37606,"15.0":6.66623},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00033,"4.2-4.3":0.00492,"4.4":0,"4.4.3-4.4.4":0.0151},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11899,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":47.27098},S:{"2.5":0},R:{_:"0"},M:{"0":0.18317},Q:{"10.4":0.03392},O:{"0":0.6377},H:{"0":0.26975}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js deleted file mode 100644 index 88fc1859b57a9a..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ST.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"39":0.00461,"40":0.00922,"47":0.00461,"49":0.03227,"56":0.02766,"60":0.01844,"77":0.02766,"78":0.00922,"84":0.00922,"88":0.00461,"89":0.00461,"90":0.00461,"91":0.3227,"92":0.58547,"93":0.00461,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 41 42 43 44 45 46 48 50 51 52 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 79 80 81 82 83 85 86 87 94 3.5 3.6"},D:{"35":2.99189,"40":0.02305,"43":0.25816,"58":0.0922,"60":0.00461,"63":0.00922,"64":0.02305,"65":0.00461,"67":0.00461,"75":0.02766,"76":0.01844,"77":0.00922,"78":0.02766,"79":0.0461,"80":0.02766,"81":0.10142,"84":0.06915,"87":0.02305,"89":0.02766,"90":0.01844,"91":0.72838,"92":3.99226,"93":20.03045,"94":3.81247,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 59 61 62 66 68 69 70 71 72 73 74 83 85 86 88 95 96 97"},F:{"78":0.72838,"79":0.43334,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.18612,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00532,"6.0-6.1":0,"7.0-7.1":0.12364,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01728,"10.0-10.2":0,"10.3":0.0452,"11.0-11.2":0.0226,"11.3-11.4":2.08988,"12.0-12.1":0.01595,"12.2-12.5":5.78971,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.03324,"14.0-14.4":0.42808,"14.5-14.8":4.53472},E:{"4":0,"12":0.03227,"14":0.00922,"15":0.04149,_:"0 5 6 7 8 9 10 11 13 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00461,"12.1":0.05071,"13.1":0.07837,"14.1":0.17057},B:{"14":0.05071,"16":0.02305,"17":0.00922,"18":0.02305,"80":0.00922,"84":0.04149,"85":0.01844,"89":0.07837,"91":0.05071,"92":0.41951,"93":2.09755,"94":0.60852,_:"12 13 15 79 81 83 86 87 88 90"},P:{"4":0.21547,"5.0-5.4":0.01025,"6.2-6.4":0.02411,"7.2-7.4":0.06156,"8.2":0.08197,"9.2":0.02052,"10.1":0.8812,"11.1-11.2":0.02052,"12.0":0.01026,"13.0":0.01026,"14.0":0.07182,"15.0":0.3899},I:{"0":0,"3":0,"4":0.00112,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00181,"4.2-4.3":0.02112,"4.4":0,"4.4.3-4.4.4":0.0568},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.31348,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":42.75358},S:{"2.5":0},R:{_:"0"},M:{"0":0.04312},Q:{"10.4":0},O:{"0":2.23146},H:{"0":0.31128}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js deleted file mode 100644 index bdf4afc61a7dfa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SV.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"35":0.01841,"52":0.02301,"68":0.0046,"70":0.02761,"72":0.01841,"73":0.05983,"78":0.04602,"79":0.01841,"80":0.0046,"83":0.0046,"85":0.0046,"87":0.0092,"88":0.01381,"89":0.03682,"90":0.2347,"91":0.6857,"92":1.51866,"93":0.01841,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 71 74 75 76 77 81 82 84 86 94 3.5 3.6"},D:{"38":0.01381,"43":0.0046,"49":0.09204,"53":0.0046,"55":0.01381,"58":0.0092,"63":0.0046,"65":0.0046,"67":0.01841,"68":0.0046,"69":0.01381,"70":0.02301,"71":0.02301,"72":0.0092,"73":0.0092,"74":0.01381,"75":0.01841,"76":0.02761,"77":0.01381,"78":0.01841,"79":0.09204,"80":0.03682,"81":0.02761,"83":0.04142,"84":0.04602,"85":0.04602,"86":0.08284,"87":0.15647,"88":0.05062,"89":0.06443,"90":0.11505,"91":0.4602,"92":5.73409,"93":21.83189,"94":4.20623,"95":0.0092,"96":0.0046,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 47 48 50 51 52 54 56 57 59 60 61 62 64 66 97"},F:{"29":0.0092,"70":0.0092,"77":0.01841,"78":1.56468,"79":0.34055,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.36113,"3.2":0.001,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00251,"6.0-6.1":0.00502,"7.0-7.1":0.02207,"8.1-8.4":0.001,"9.0-9.2":0.00702,"9.3":0.06119,"10.0-10.2":0.001,"10.3":0.02107,"11.0-11.2":0.00652,"11.3-11.4":0.00953,"12.0-12.1":0.00803,"12.2-12.5":0.30395,"13.0-13.1":0.01605,"13.2":0.00752,"13.3":0.03712,"13.4-13.7":0.11937,"14.0-14.4":0.37919,"14.5-14.8":3.64444},E:{"4":0,"13":0.03682,"14":0.12886,"15":0.11505,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.03682,"11.1":0.0092,"12.1":0.01841,"13.1":0.10585,"14.1":0.88358},B:{"12":0.0092,"15":0.02761,"16":0.0092,"17":0.04142,"18":0.03682,"80":0.01381,"84":0.01381,"89":0.01381,"91":0.02761,"92":0.39117,"93":1.85921,"94":0.44639,_:"13 14 79 81 83 85 86 87 88 90"},P:{"4":0.15633,"5.0-5.4":0.01071,"6.2-6.4":0.04074,"7.2-7.4":0.17717,"8.2":0.01008,"9.2":0.06253,"10.1":0.01041,"11.1-11.2":0.22928,"12.0":0.04169,"13.0":0.27097,"14.0":0.78164,"15.0":1.43822},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0016,"4.2-4.3":0.00561,"4.4":0,"4.4.3-4.4.4":0.07375},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.15647,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.02159},N:{"11":0.01911,_:"10"},L:{"0":47.54119},S:{"2.5":0},R:{_:"0"},M:{"0":0.94465},Q:{"10.4":0},O:{"0":0.15114},H:{"0":0.22486}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js deleted file mode 100644 index fa2f1a179babea..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.0027,"30":0.0054,"34":0.00135,"38":0.00135,"41":0.0054,"43":0.00405,"45":0.0027,"47":0.00676,"48":0.0027,"49":0.0027,"50":0.00676,"51":0.0027,"52":0.07025,"56":0.01756,"58":0.0027,"59":0.00135,"60":0.0027,"61":0.00676,"62":0.00135,"63":0.0027,"65":0.0027,"66":0.0027,"68":0.00135,"72":0.01486,"74":0.00135,"78":0.01756,"80":0.00946,"81":0.00811,"82":0.01486,"83":0.00405,"84":0.03378,"85":0.00946,"86":0.01081,"87":0.00811,"88":0.01756,"89":0.04729,"90":0.01756,"91":0.39719,"92":0.87545,"93":0.0054,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 31 32 33 35 36 37 39 40 42 44 46 53 54 55 57 64 67 69 70 71 73 75 76 77 79 94 3.5 3.6"},D:{"11":0.0027,"24":0.0027,"28":0.0027,"31":0.0027,"33":0.0027,"34":0.0054,"36":0.00405,"37":0.0027,"38":0.00946,"40":0.0027,"43":0.0054,"44":0.00405,"47":0.0027,"49":0.02702,"50":0.00405,"51":0.0027,"52":0.01351,"53":0.00405,"55":0.00676,"56":0.0054,"57":0.0054,"58":0.00676,"59":0.0027,"60":0.00676,"61":0.0027,"62":0.0027,"63":0.02027,"64":0.00135,"65":0.0054,"66":0.0054,"67":0.00946,"68":0.0054,"69":0.00676,"70":0.1324,"71":0.01081,"72":0.0054,"73":0.0054,"74":0.01486,"75":0.01081,"76":0.02027,"77":0.00676,"78":0.01891,"79":0.08782,"80":0.02837,"81":0.24858,"83":0.03648,"84":0.01351,"85":0.01486,"86":0.05269,"87":0.23778,"88":0.05269,"89":0.05404,"90":0.08646,"91":0.27966,"92":1.65903,"93":5.1365,"94":0.87275,"95":0.00405,"96":0.00946,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 29 30 32 35 39 41 42 45 46 48 54 97"},F:{"73":0.0054,"74":0.03107,"76":0.0027,"77":0.02027,"78":0.35802,"79":0.12564,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.07396,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00405,"6.0-6.1":0.00189,"7.0-7.1":0.03914,"8.1-8.4":0.00297,"9.0-9.2":0.0027,"9.3":0.06748,"10.0-10.2":0.01242,"10.3":0.061,"11.0-11.2":0.02186,"11.3-11.4":0.044,"12.0-12.1":0.07045,"12.2-12.5":0.54147,"13.0-13.1":0.02699,"13.2":0.01323,"13.3":0.0826,"13.4-13.7":0.13712,"14.0-14.4":0.48938,"14.5-14.8":1.00547},E:{"4":0,"13":0.03513,"14":0.05539,"15":0.00946,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.12835,"11.1":0.0027,"12.1":0.00135,"13.1":0.01216,"14.1":0.07295},B:{"12":0.0027,"14":0.0027,"15":0.00405,"16":0.0054,"17":0.00676,"18":0.06215,"83":0.00135,"84":0.00811,"85":0.00676,"86":0.00405,"89":0.01351,"90":0.00676,"91":0.00811,"92":0.09592,"93":0.37153,"94":0.07566,_:"13 79 80 81 87 88"},P:{"4":3.34895,"5.0-5.4":0.1408,"6.2-6.4":0.30171,"7.2-7.4":0.73415,"8.2":0.0704,"9.2":0.49279,"10.1":0.35199,"11.1-11.2":0.5129,"12.0":0.34193,"13.0":1.08615,"14.0":2.42371,"15.0":1.36774},I:{"0":0,"3":0,"4":0.00142,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01702,"4.2-4.3":0.02884,"4.4":0,"4.4.3-4.4.4":0.16027},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0027,"9":0.0027,"10":0.0027,"11":0.0716,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":70.27054},S:{"2.5":0},R:{_:"0"},M:{"0":0.17296},Q:{"10.4":0},O:{"0":1.10694},H:{"0":1.40004}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js deleted file mode 100644 index a7d55b27f4ba3b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/SZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"29":0.00259,"35":0.00259,"47":0.01556,"52":0.02075,"54":0.01038,"60":0.11414,"63":0.02853,"68":0.01556,"69":0.00259,"71":0.00519,"72":0.01038,"78":0.01556,"80":0.00519,"83":0.01556,"86":0.00519,"88":0.0441,"89":0.02335,"90":0.01038,"91":0.28015,"92":0.61997,"93":0.05966,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 53 55 56 57 58 59 61 62 64 65 66 67 70 73 74 75 76 77 79 81 82 84 85 87 94 3.5 3.6"},D:{"26":0.00259,"33":0.00259,"40":0.01297,"46":0.00259,"49":0.01038,"53":0.00259,"54":0.02853,"55":0.00259,"56":0.00259,"60":0.03372,"65":0.0441,"69":0.01038,"70":0.02594,"73":0.01038,"74":0.01816,"75":0.01297,"77":0.00778,"78":0.00519,"79":0.01816,"80":0.02594,"81":0.02075,"83":0.03113,"84":0.01038,"85":0.01816,"86":0.03372,"87":0.23346,"88":0.03372,"89":0.03113,"90":0.10117,"91":0.20752,"92":2.36573,"93":7.57189,"94":1.36185,"95":0.01816,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 34 35 36 37 38 39 41 42 43 44 45 47 48 50 51 52 57 58 59 61 62 63 64 66 67 68 71 72 76 96 97"},F:{"34":0.00778,"63":0.00259,"75":0.00519,"76":0.00519,"77":0.07004,"78":0.607,"79":0.31128,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 65 66 67 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.10232,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00181,"5.0-5.1":0.00129,"6.0-6.1":0.00181,"7.0-7.1":0.00026,"8.1-8.4":0.00258,"9.0-9.2":0.00181,"9.3":0.0124,"10.0-10.2":0.00258,"10.3":0.01654,"11.0-11.2":0.01085,"11.3-11.4":0.00388,"12.0-12.1":0.01654,"12.2-12.5":0.25993,"13.0-13.1":0.00956,"13.2":0.00413,"13.3":0.03385,"13.4-13.7":0.07596,"14.0-14.4":0.58832,"14.5-14.8":1.43863},E:{"4":0,"13":0.01038,"14":0.0441,"15":0.03632,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.03632,"11.1":0.00519,"12.1":0.00259,"13.1":0.02594,"14.1":0.1712},B:{"12":0.05447,"13":0.01038,"14":0.01816,"15":0.03113,"16":0.03372,"17":0.02853,"18":0.08301,"80":0.00778,"83":0.00259,"84":0.02853,"85":0.01816,"86":0.00259,"87":0.00778,"88":0.00778,"89":0.01816,"90":0.01038,"91":0.03113,"92":0.54474,"93":1.72501,"94":0.38132,_:"79 81"},P:{"4":0.51072,"5.0-5.4":0.07063,"6.2-6.4":0.02039,"7.2-7.4":0.59244,"8.2":0.02043,"9.2":0.06129,"10.1":0.03064,"11.1-11.2":0.16343,"12.0":0.06129,"13.0":0.2145,"14.0":0.64351,"15.0":1.50153},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00105,"4.2-4.3":0.00457,"4.4":0,"4.4.3-4.4.4":0.10548},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01556,"11":0.17899,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.03704},N:{"10":0.0242,"11":0.15172},L:{"0":49.59905},S:{"2.5":0.2074},R:{_:"0"},M:{"0":0.39998},Q:{"10.4":0},O:{"0":1.06661},H:{"0":22.28563}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js deleted file mode 100644 index d68dea7711f03d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"52":0.0819,"56":0.0091,"78":0.02275,"91":0.48685,"92":1.6744,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 89 90 93 94 3.5 3.6"},D:{"49":0.02275,"56":0.0091,"63":0.01365,"65":0.04095,"74":0.5551,"75":0.0273,"76":0.05915,"77":0.0091,"79":0.3003,"81":0.04095,"83":0.0182,"85":0.01365,"86":0.0546,"87":0.19565,"88":0.01365,"89":0.00455,"90":0.04095,"91":0.4004,"92":6.3518,"93":15.02865,"94":1.84275,"95":0.0273,"96":0.03185,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 66 67 68 69 70 71 72 73 78 80 84 97"},F:{"77":0.01365,"78":0.92365,"79":0.1092,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.64183,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02547,"6.0-6.1":0.00509,"7.0-7.1":0,"8.1-8.4":0.2114,"9.0-9.2":0,"9.3":0.13499,"10.0-10.2":0,"10.3":0.0382,"11.0-11.2":0,"11.3-11.4":0.00764,"12.0-12.1":0.00509,"12.2-12.5":1.47469,"13.0-13.1":0.02547,"13.2":0.00255,"13.3":0.02292,"13.4-13.7":0.22668,"14.0-14.4":1.04425,"14.5-14.8":21.60078},E:{"4":0,"10":0.0091,"13":0.0182,"14":0.5187,"15":0.15925,_:"0 5 6 7 8 9 11 12 3.1 3.2 6.1 7.1","5.1":0.0091,"9.1":0.04095,"10.1":0.05005,"11.1":0.0728,"12.1":0.0637,"13.1":0.60515,"14.1":7.0707},B:{"13":0.01365,"15":0.01365,"16":0.00455,"17":0.2275,"18":0.23205,"84":0.0091,"89":0.04095,"91":0.0455,"92":0.7371,"93":4.5682,"94":0.819,_:"12 14 79 80 81 83 85 86 87 88 90"},P:{"4":0.07333,"5.0-5.4":0.23443,"6.2-6.4":0.07135,"7.2-7.4":0.70185,"8.2":0.0103,"9.2":0.03143,"10.1":0.02095,"11.1-11.2":0.14666,"12.0":0.07333,"13.0":0.05238,"14.0":0.17808,"15.0":2.33601},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0.0109},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.06825,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":25.96978},S:{"2.5":0},R:{_:"0"},M:{"0":0.2671},Q:{"10.4":0},O:{"0":0.0218},H:{"0":0.34576}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js deleted file mode 100644 index fc2268a0af4e72..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TD.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"41":0.00394,"47":0.00394,"48":0.01575,"52":0.00197,"54":0.00197,"56":0.00591,"57":0.00197,"63":0.00394,"71":0.00197,"72":0.01378,"78":0.02166,"81":0.00197,"87":0.01378,"88":0.00394,"89":0.11617,"90":0.04726,"91":0.41743,"92":0.80532,"93":0.01181,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 45 46 49 50 51 53 55 58 59 60 61 62 64 65 66 67 68 69 70 73 74 75 76 77 79 80 82 83 84 85 86 94 3.5 3.6"},D:{"33":0.00197,"39":0.04332,"40":0.00197,"43":0.00197,"44":0.00394,"49":0.00788,"55":0.01575,"58":0.00197,"61":0.00591,"68":0.00394,"71":0.01772,"72":0.00591,"73":0.01575,"74":0.00788,"75":0.16737,"77":0.00985,"79":0.00985,"80":0.1083,"81":0.01378,"83":0.00394,"84":0.1083,"85":0.00591,"86":0.01575,"87":0.22053,"88":0.23037,"89":0.01378,"90":0.00591,"91":0.02757,"92":1.461,"93":3.50482,"94":0.59858,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 34 35 36 37 38 41 42 45 46 47 48 50 51 52 53 54 56 57 59 60 62 63 64 65 66 67 69 70 76 78 95 96 97"},F:{"26":0.00788,"39":0.00197,"43":0.00197,"46":0.00788,"50":0.00394,"51":0.00394,"57":0.00197,"65":0.01575,"68":0.00394,"73":0.07088,"75":0.00394,"76":0.02757,"77":0.10633,"78":0.22053,"79":0.01969,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 44 45 47 48 49 52 53 54 55 56 58 60 62 63 64 66 67 69 70 71 72 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.1364,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0.00167,"9.3":0.09408,"10.0-10.2":0.00835,"10.3":0.06681,"11.0-11.2":0.06235,"11.3-11.4":0.10745,"12.0-12.1":0.15031,"12.2-12.5":0.69422,"13.0-13.1":0.04287,"13.2":0.00223,"13.3":0.03897,"13.4-13.7":0.18594,"14.0-14.4":1.12958,"14.5-14.8":2.84426},E:{"4":0,"11":0.01181,"14":0.06892,_:"0 5 6 7 8 9 10 12 13 15 3.1 3.2 6.1 7.1 10.1","5.1":0.00394,"9.1":0.00788,"11.1":0.00985,"12.1":0.02757,"13.1":0.00788,"14.1":0.3682},B:{"12":0.0256,"13":0.01575,"14":0.05513,"15":0.00394,"16":0.03347,"17":0.00394,"18":0.03938,"84":0.00985,"85":0.01181,"87":0.00197,"89":0.00985,"90":0.00788,"91":0.01575,"92":0.25794,"93":1.06326,"94":0.21068,_:"79 80 81 83 86 88"},P:{"4":0.56882,"5.0-5.4":0.0711,"6.2-6.4":0.06094,"7.2-7.4":0.32504,"8.2":0.02131,"9.2":0.70086,"10.1":0.01016,"11.1-11.2":0.76181,"12.0":0.04063,"13.0":0.43677,"14.0":0.65007,"15.0":0.67039},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00063,"4.4":0,"4.4.3-4.4.4":0.09575},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00507,"11":3.64152,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"11":0.01911,_:"10"},L:{"0":72.02788},S:{"2.5":0.03212},R:{_:"0"},M:{"0":0.12047},Q:{"10.4":0.1044},O:{"0":1.13237},H:{"0":1.71073}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js deleted file mode 100644 index 46d2f4304e78aa..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"21":0.01311,"39":0.00874,"41":0.01311,"42":0.00437,"43":0.01311,"45":0.00874,"46":0.00437,"47":0.01311,"50":0.01311,"51":0.01311,"52":0.06119,"56":0.00874,"57":0.00874,"60":0.00437,"64":0.01311,"65":0.07868,"66":0.00437,"67":0.00874,"72":0.271,"75":0.00437,"77":0.01311,"78":0.06994,"80":0.16173,"81":0.34968,"83":0.00437,"84":0.06557,"85":0.00874,"86":0.00874,"87":0.00874,"88":0.11365,"89":0.29723,"90":0.14861,"91":2.56141,"92":5.27143,"93":0.03934,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 44 48 49 53 54 55 58 59 61 62 63 68 69 70 71 73 74 76 79 82 94 3.5 3.6"},D:{"11":0.00437,"25":0.00874,"26":0.00874,"31":0.00437,"33":0.00874,"34":0.00874,"39":0.00874,"42":0.00874,"43":0.43273,"47":0.01748,"48":0.00874,"49":0.07431,"50":0.00437,"55":0.00437,"57":0.00874,"58":0.00437,"62":0.02623,"63":0.01311,"65":0.06994,"68":0.00437,"69":0.00437,"71":0.01311,"72":0.14861,"74":0.02623,"75":0.02186,"76":0.02186,"77":0.01311,"78":0.01311,"79":0.03497,"80":0.07868,"81":0.07868,"83":0.01311,"84":0.07868,"85":0.02623,"86":0.14424,"87":0.81301,"88":0.18795,"89":0.03497,"90":0.24478,"91":0.33657,"92":3.85959,"93":12.38741,"94":2.49584,"95":0.01311,"96":0.00437,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 27 28 29 30 32 35 36 37 38 40 41 44 45 46 51 52 53 54 56 59 60 61 64 66 67 70 73 97"},F:{"28":0.00437,"36":0.04808,"69":0.00437,"76":0.07431,"77":0.10053,"78":1.45991,"79":0.48955,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00119,"15":0.31833,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00538,"6.0-6.1":0.00418,"7.0-7.1":0.07645,"8.1-8.4":0.01672,"9.0-9.2":0.0209,"9.3":0.40673,"10.0-10.2":0.0006,"10.3":1.03623,"11.0-11.2":0.11587,"11.3-11.4":0.00717,"12.0-12.1":0.04539,"12.2-12.5":1.0207,"13.0-13.1":0.01732,"13.2":0.00119,"13.3":0.01254,"13.4-13.7":0.1517,"14.0-14.4":0.61815,"14.5-14.8":2.09456},E:{"4":0,"13":0.1049,"14":0.0306,"15":0.01311,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 11.1","5.1":0.03934,"12.1":0.00437,"13.1":0.05682,"14.1":0.17484},B:{"12":0.0306,"14":0.01311,"15":0.01311,"17":0.01748,"18":0.14424,"84":0.0306,"85":0.00437,"89":0.06119,"90":0.00874,"91":0.01748,"92":0.65565,"93":2.15927,"94":0.37154,_:"13 16 79 80 81 83 86 87 88"},P:{"4":0.11537,"5.0-5.4":0.03137,"6.2-6.4":0.08243,"7.2-7.4":0.03461,"8.2":0.0103,"9.2":0.10304,"10.1":0.05152,"11.1-11.2":0.01154,"12.0":0.04121,"13.0":0.04615,"14.0":0.0923,"15.0":0.39227},I:{"0":0,"3":0,"4":0.00118,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00512,"4.2-4.3":0.00669,"4.4":0,"4.4.3-4.4.4":0.11082},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01311,"11":0.32783,_:"6 7 9 10 5.5"},J:{"7":0,"10":0.02814},N:{"10":0.0242,"11":0.15172},L:{"0":49.29856},S:{"2.5":0},R:{_:"0"},M:{"0":0.10693},Q:{"10.4":0.02251},O:{"0":0.56843},H:{"0":4.21463}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js deleted file mode 100644 index d4f65b5daea749..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TH.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00406,"50":0.01622,"51":0.01217,"52":0.04867,"53":0.01217,"54":0.01622,"55":0.04867,"56":0.12168,"57":0.01217,"58":0.01217,"59":0.01622,"60":0.01622,"61":0.01217,"62":0.00811,"63":0.01622,"65":0.00811,"66":0.00406,"67":0.00406,"68":0.01217,"70":0.00406,"72":0.02028,"73":0.00406,"75":0.00406,"76":0.00406,"77":0.00406,"78":0.03245,"79":0.00406,"80":0.00811,"81":0.04462,"82":0.00811,"83":0.00811,"84":0.00406,"87":0.00406,"88":0.02839,"89":0.01622,"90":0.02028,"91":0.4056,"92":0.86798,"93":0.01217,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 64 69 71 74 85 86 94 3.5 3.6"},D:{"38":0.01217,"41":0.00811,"42":0.00406,"43":0.01622,"45":0.00406,"46":0.00811,"47":0.01217,"48":0.00811,"49":0.1663,"50":0.00406,"51":0.00811,"53":0.01217,"54":0.00811,"55":0.01217,"56":0.02434,"57":0.01217,"58":0.01622,"59":0.00406,"60":0.00811,"61":0.04462,"62":0.00811,"63":0.01622,"64":0.01217,"65":0.01217,"66":0.01217,"67":0.01217,"68":0.00811,"69":0.01622,"70":0.02434,"71":0.01217,"72":0.01217,"73":0.01217,"74":0.02434,"75":0.02839,"76":0.02839,"77":0.01622,"78":0.02028,"79":0.10546,"80":0.05678,"81":0.02839,"83":0.0649,"84":0.05678,"85":0.05678,"86":0.09329,"87":0.19063,"88":0.04867,"89":0.05678,"90":0.06895,"91":0.18658,"92":5.19979,"93":19.18894,"94":2.98522,"95":0.02434,"96":0.00406,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 44 52 97"},F:{"43":0.00406,"53":0.00811,"54":0.00811,"55":0.00811,"56":0.00406,"68":0.00406,"70":0.00406,"71":0.00406,"77":0.00406,"78":0.28392,"79":0.07301,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 57 58 60 62 63 64 65 66 67 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01217},G:{"8":0.00257,"15":0.90186,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00257,"5.0-5.1":0.00772,"6.0-6.1":0.01158,"7.0-7.1":0.01544,"8.1-8.4":0.01158,"9.0-9.2":0.00901,"9.3":0.08363,"10.0-10.2":0.01801,"10.3":0.08234,"11.0-11.2":0.03345,"11.3-11.4":0.03731,"12.0-12.1":0.04117,"12.2-12.5":0.77578,"13.0-13.1":0.03988,"13.2":0.01544,"13.3":0.10292,"13.4-13.7":0.27403,"14.0-14.4":1.16946,"14.5-14.8":9.22706},E:{"4":0,"10":0.00811,"11":0.01217,"12":0.01622,"13":0.06084,"14":0.29203,"15":0.40154,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00811,"11.1":0.02028,"12.1":0.0365,"13.1":0.15413,"14.1":2.79864},B:{"12":0.01622,"13":0.01217,"14":0.01217,"15":0.01622,"16":0.02434,"17":0.01622,"18":0.05678,"79":0.00811,"80":0.00811,"81":0.01622,"83":0.01622,"84":0.02434,"85":0.01217,"86":0.02028,"87":0.01217,"89":0.01622,"90":0.00406,"91":0.02028,"92":0.37315,"93":1.84548,"94":0.4056,_:"88"},P:{"4":0.10504,"5.0-5.4":0.03137,"6.2-6.4":0.02091,"7.2-7.4":0.11555,"8.2":0.03017,"9.2":0.04202,"10.1":0.02101,"11.1-11.2":0.17857,"12.0":0.04202,"13.0":0.15756,"14.0":0.40966,"15.0":1.68065},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00388,"4.2-4.3":0.00679,"4.4":0,"4.4.3-4.4.4":0.03688},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02222,"9":0.01333,"10":0.00889,"11":0.37332,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":44.36143},S:{"2.5":0},R:{_:"0"},M:{"0":0.11888},Q:{"10.4":0.00594},O:{"0":0.32692},H:{"0":0.2251}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js deleted file mode 100644 index 6856e5b7c10929..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TJ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00926,"17":0.01852,"35":0.01544,"52":0.26857,"55":0.00309,"57":0.00617,"61":0.00617,"63":0.00309,"67":0.00309,"68":0.00617,"70":0.00309,"72":0.00309,"76":0.00309,"77":0.00926,"78":0.04013,"79":0.00926,"80":0.0247,"81":0.00926,"82":0.00926,"83":0.01544,"89":0.02778,"90":0.03704,"91":0.46922,"92":0.98784,"93":0.01852,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 58 59 60 62 64 65 66 69 71 73 74 75 84 85 86 87 88 94 3.5 3.6"},D:{"25":0.00309,"31":0.00309,"34":0.00617,"35":0.00617,"40":0.00617,"42":0.00309,"43":0.00309,"44":0.06174,"46":0.00309,"47":0.00309,"49":0.68531,"53":0.00309,"57":0.00617,"60":0.00617,"63":0.01544,"64":0.06791,"66":0.00617,"67":0.00926,"68":0.00617,"69":0.05248,"70":0.01235,"71":0.01852,"72":0.01235,"73":0.00309,"74":0.02161,"75":0.0247,"77":0.00309,"78":0.18522,"79":0.31796,"80":0.0247,"81":0.0247,"83":0.12348,"84":0.03704,"85":0.05865,"86":0.51862,"87":0.09261,"88":0.02778,"89":0.09878,"90":0.10496,"91":0.2377,"92":3.38953,"93":11.36633,"94":1.76885,"95":0.01235,"96":0.00617,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 32 33 36 37 38 39 41 45 48 50 51 52 54 55 56 58 59 61 62 65 76 97"},F:{"36":0.02161,"53":0.00309,"68":0.12039,"71":0.00926,"72":0.00617,"73":0.00617,"75":0.00309,"76":0.00617,"77":0.05557,"78":1.15145,"79":0.32722,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 54 55 56 57 58 60 62 63 64 65 66 67 69 70 74 9.5-9.6 10.5 10.6 11.1 11.5","10.0-10.1":0,"11.6":0.00617,"12.1":0.00617},G:{"8":0.00169,"15":0.25714,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00789,"6.0-6.1":0.01015,"7.0-7.1":0.0282,"8.1-8.4":0.00395,"9.0-9.2":0.00451,"9.3":0.11335,"10.0-10.2":0.02594,"10.3":0.06767,"11.0-11.2":0.03045,"11.3-11.4":0.04455,"12.0-12.1":0.25037,"12.2-12.5":0.79962,"13.0-13.1":0.04455,"13.2":0.03327,"13.3":0.11391,"13.4-13.7":0.35188,"14.0-14.4":0.89943,"14.5-14.8":2.55168},E:{"4":0,"12":0.00309,"13":0.00617,"14":0.07409,"15":0.0957,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.71001,"11.1":0.00926,"12.1":0.00617,"13.1":0.05248,"14.1":0.39514},B:{"12":0.00926,"13":0.00617,"14":0.00617,"16":0.0247,"18":0.34883,"84":0.00926,"85":0.00926,"86":0.00617,"89":0.00926,"91":0.01235,"92":0.13892,"93":1.04032,"94":0.06174,_:"15 17 79 80 81 83 87 88 90"},P:{"4":2.19266,"5.0-5.4":0.3118,"6.2-6.4":0.18105,"7.2-7.4":0.52302,"8.2":0.03017,"9.2":0.25145,"10.1":0.15087,"11.1-11.2":0.34197,"12.0":0.16093,"13.0":0.37215,"14.0":0.69401,"15.0":0.73424},I:{"0":0,"3":0,"4":0.00145,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0029,"4.2-4.3":0.006,"4.4":0,"4.4.3-4.4.4":0.05877},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02406,"9":0.02406,"10":0.00802,"11":0.41308,_:"6 7 5.5"},J:{"7":0,"10":0.02074},N:{"10":0.0242,"11":0.15172},L:{"0":51.17145},S:{"2.5":0},R:{_:"0"},M:{"0":0.06221},Q:{"10.4":0.04147},O:{"0":4.04352},H:{"0":2.49974}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js deleted file mode 100644 index 7c61e3ada42555..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TK.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"80":0.72971,"91":0.72971,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 81 82 83 84 85 86 87 88 89 90 92 93 94 3.5 3.6"},D:{"81":8.39471,"91":2.18912,"92":1.45942,"93":5.47588,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 83 84 85 86 87 88 89 90 94 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":43.42863,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0.36675,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":5.11011,"14.0-14.4":0,"14.5-14.8":0},E:{"4":0,"15":0.36485,_:"0 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1 14.1"},B:{"90":0.36485,"91":6.20558,"92":0.72971,"93":2.91883,"94":0.72971,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89"},P:{"4":0.11537,"5.0-5.4":0.03137,"6.2-6.4":0.08243,"7.2-7.4":0.03461,"8.2":0.0103,"9.2":0.73205,"10.1":0.05152,"11.1-11.2":0.01154,"12.0":0.04121,"13.0":1.09306,"14.0":0.0923,"15.0":2.55717},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":16.424},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js deleted file mode 100644 index b9a1db08d5ee8f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TL.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"7":0.00673,"16":0.00337,"19":0.01347,"20":0.00337,"21":0.04714,"23":0.00337,"24":0.0101,"29":0.00337,"30":0.03704,"31":0.00673,"33":0.00673,"34":0.0101,"35":0.0303,"36":0.00337,"37":0.0101,"38":0.0101,"40":0.01347,"41":0.10101,"42":0.00337,"43":0.0202,"44":0.0303,"45":0.0101,"47":0.11111,"48":0.07744,"50":0.00673,"52":0.00673,"54":0.00337,"56":0.0101,"57":0.08081,"58":0.01684,"61":0.00673,"62":0.01347,"63":0.01684,"66":0.0202,"68":0.00673,"69":0.0101,"70":0.00337,"72":0.02357,"73":0.00337,"76":0.04377,"78":0.17172,"79":0.3771,"81":0.02357,"82":0.00337,"83":0.01347,"84":0.02694,"85":0.03704,"86":0.01347,"88":0.25926,"89":0.11111,"90":0.03367,"91":1.62963,"92":3.38047,"93":0.45791,_:"2 3 4 5 6 8 9 10 11 12 13 14 15 17 18 22 25 26 27 28 32 39 46 49 51 53 55 59 60 64 65 67 71 74 75 77 80 87 94 3.5 3.6"},D:{"19":0.0101,"30":0.00673,"31":0.04377,"32":0.01347,"37":0.00673,"40":0.01347,"43":0.03704,"49":0.08754,"55":0.0202,"56":0.00337,"58":0.03367,"61":0.06734,"62":0.03704,"63":0.02694,"64":0.0101,"65":0.02694,"67":0.03367,"68":0.00337,"70":0.00337,"71":0.0101,"74":0.0101,"75":0.0101,"76":0.01684,"78":0.01347,"79":0.14141,"80":0.03367,"81":0.00337,"83":0.0101,"84":0.09428,"85":0.04377,"86":0.04714,"87":0.45118,"88":0.07071,"89":0.03367,"90":0.08754,"91":0.32997,"92":3.21885,"93":11.02356,"94":1.56229,"95":0.00673,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 33 34 35 36 38 39 41 42 44 45 46 47 48 50 51 52 53 54 57 59 60 66 69 72 73 77 96 97"},F:{"37":0.00337,"56":0.00337,"63":0.00673,"65":0.00337,"68":0.00337,"76":0.00673,"77":0.14478,"78":0.54882,"79":0.14141,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 57 58 60 62 64 66 67 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.02993,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00077,"6.0-6.1":0,"7.0-7.1":0.00258,"8.1-8.4":0,"9.0-9.2":0.00645,"9.3":0.032,"10.0-10.2":0.01522,"10.3":0.06709,"11.0-11.2":0.02735,"11.3-11.4":0.04619,"12.0-12.1":0.06477,"12.2-12.5":0.45443,"13.0-13.1":0.11199,"13.2":0.01522,"13.3":0.10477,"13.4-13.7":0.18038,"14.0-14.4":0.6779,"14.5-14.8":0.74318},E:{"4":0,"8":0.0101,"9":0.00673,"11":0.00673,"12":0.02357,"13":0.02357,"14":0.06734,"15":0.00673,_:"0 5 6 7 10 3.1 3.2 5.1 7.1","6.1":0.11785,"9.1":0.00337,"10.1":0.02694,"11.1":0.0202,"12.1":0.01684,"13.1":0.30303,"14.1":0.14141},B:{"12":0.06734,"13":0.01684,"15":0.0101,"16":0.03704,"17":0.02694,"18":0.15488,"79":0.00337,"80":0.00673,"81":0.00673,"84":0.01347,"85":0.0101,"86":0.00673,"87":0.00337,"88":0.00337,"89":0.0101,"90":0.0101,"91":0.04377,"92":0.77104,"93":2.24242,"94":0.22222,_:"14 83"},P:{"4":0.69035,"5.0-5.4":0.03137,"6.2-6.4":0.08243,"7.2-7.4":0.17516,"8.2":0.0103,"9.2":0.10304,"10.1":0.05152,"11.1-11.2":0.29881,"12.0":0.04121,"13.0":0.08243,"14.0":0.40184,"15.0":0.18547},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00231,"4.2-4.3":0.00577,"4.4":0,"4.4.3-4.4.4":0.04499},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01845,"9":0.00923,"11":1.18107,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":59.94572},S:{"2.5":0},R:{_:"0"},M:{"0":0.02653},Q:{"10.4":0.00663},O:{"0":0.45104},H:{"0":2.74423}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js deleted file mode 100644 index 671f9b3b224751..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"41":0.00427,"43":0.00427,"48":0.03843,"49":0.02989,"51":0.00854,"52":0.01281,"57":0.01281,"66":0.00427,"67":0.00854,"68":0.00427,"70":0.01708,"72":0.0427,"77":0.00854,"78":0.01281,"79":0.03843,"84":0.0427,"85":0.00854,"86":0.00427,"87":0.01281,"88":0.07259,"89":0.00427,"90":0.01708,"91":0.03843,"92":0.26901,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 44 45 46 47 50 53 54 55 56 58 59 60 61 62 63 64 65 69 71 73 74 75 76 80 81 82 83 93 94 3.5 3.6"},D:{"20":0.00427,"31":0.02135,"39":0.00854,"40":0.01708,"41":0.00427,"45":0.00427,"47":0.00854,"49":0.05551,"50":0.01281,"52":0.14945,"55":0.01708,"60":0.00427,"61":0.03843,"63":0.01708,"64":0.42273,"65":0.00427,"66":0.00427,"67":0.18788,"68":0.01708,"69":0.1281,"70":0.20069,"71":0.16653,"72":0.00854,"73":0.00854,"74":0.02989,"75":0.02135,"76":0.0427,"77":0.02562,"79":0.15799,"80":0.11956,"81":0.02562,"83":0.13237,"84":0.01708,"85":0.02562,"86":0.12383,"87":0.38857,"88":0.07686,"89":0.14091,"90":0.49532,"91":0.79422,"92":6.60996,"93":16.47366,"94":1.36213,"95":0.00427,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 37 38 42 43 44 46 48 51 53 54 56 57 58 59 62 78 96 97"},F:{"34":0.15799,"35":0.01281,"37":0.00427,"51":0.16653,"53":0.01281,"57":0.01708,"58":0.00854,"68":0.00427,"69":0.01708,"70":0.00854,"74":0.02135,"76":0.01708,"77":0.01708,"78":0.14091,"79":0.00854,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 36 38 39 40 41 42 43 44 45 46 47 48 49 50 52 54 55 56 60 62 63 64 65 66 67 71 72 73 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01281},G:{"8":0,"15":0.07743,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0014,"6.0-6.1":0.00047,"7.0-7.1":0.06484,"8.1-8.4":0.04245,"9.0-9.2":0.0751,"9.3":0.21971,"10.0-10.2":0.02519,"10.3":0.12315,"11.0-11.2":0.11428,"11.3-11.4":0.0891,"12.0-12.1":0.14134,"12.2-12.5":1.48244,"13.0-13.1":0.05131,"13.2":0.01353,"13.3":0.07044,"13.4-13.7":0.10822,"14.0-14.4":0.68151,"14.5-14.8":1.28232},E:{"4":0,"13":0.06405,"14":0.01708,"15":0.01708,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1 12.1 13.1","5.1":0.02562,"11.1":0.00854,"14.1":0.22204},B:{"12":0.00854,"13":0.03843,"15":0.00427,"16":0.0427,"17":0.00427,"18":0.02989,"84":0.01708,"88":0.00427,"90":0.00427,"92":0.08967,"93":0.35868,"94":0.08967,_:"14 79 80 81 83 85 86 87 89 91"},P:{"4":1.906,"5.0-5.4":0.23443,"6.2-6.4":0.07135,"7.2-7.4":0.6829,"8.2":0.0103,"9.2":0.07135,"10.1":0.1427,"11.1-11.2":0.36693,"12.0":0.08154,"13.0":0.33635,"14.0":1.34541,"15.0":1.39638},I:{"0":0,"3":0,"4":0.00051,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0036,"4.2-4.3":0.0194,"4.4":0,"4.4.3-4.4.4":0.14265},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00461,"9":0.03687,"11":3.39161,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":47.7382},S:{"2.5":0},R:{_:"0"},M:{"0":0.0573},Q:{"10.4":0.00573},O:{"0":2.02842},H:{"0":0.43398}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js deleted file mode 100644 index fe99e05ca27da7..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"43":0.00317,"47":0.00317,"52":0.06025,"66":0.00317,"72":0.00951,"78":0.03488,"79":0.00951,"80":0.00317,"81":0.00634,"84":0.04439,"85":0.00317,"87":0.00317,"88":0.01903,"89":0.0222,"90":0.0222,"91":0.31393,"92":0.58029,"93":0.01268,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 73 74 75 76 77 82 83 86 94 3.5 3.6"},D:{"38":0.00317,"39":0.00634,"40":0.00634,"43":0.01586,"47":0.00317,"48":0.00317,"49":0.52639,"50":0.00634,"51":0.00317,"52":0.00317,"54":0.00634,"56":0.00951,"58":0.00951,"60":0.00317,"61":0.04122,"62":0.00634,"63":0.02537,"64":0.00634,"65":0.01586,"66":0.00951,"67":0.02854,"68":0.00634,"69":0.01903,"70":0.0222,"71":0.01268,"72":0.00634,"73":0.01268,"74":0.00951,"75":0.01268,"76":0.00951,"77":0.0222,"78":0.0222,"79":0.06342,"80":0.04757,"81":0.03171,"83":0.04122,"84":0.0761,"85":0.06025,"86":0.09513,"87":0.54224,"88":0.06342,"89":0.0983,"90":0.11099,"91":0.40589,"92":4.55673,"93":14.31389,"94":2.0453,"95":0.01268,"96":0.00317,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 41 42 44 45 46 53 55 57 59 97"},F:{"68":0.00951,"70":0.00317,"72":0.00634,"77":0.02537,"78":1.30011,"79":0.24417,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 71 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.09375,"3.2":0.00046,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00718,"6.0-6.1":0.00208,"7.0-7.1":0.02037,"8.1-8.4":0.00069,"9.0-9.2":0.00231,"9.3":0.04283,"10.0-10.2":0.00532,"10.3":0.05926,"11.0-11.2":0.01111,"11.3-11.4":0.01111,"12.0-12.1":0.0162,"12.2-12.5":0.28242,"13.0-13.1":0.00509,"13.2":0.00394,"13.3":0.03148,"13.4-13.7":0.24399,"14.0-14.4":0.25256,"14.5-14.8":1.22251},E:{"4":0,"13":0.05708,"14":0.06659,"15":0.01268,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.00634,"12.1":0.00317,"13.1":0.02854,"14.1":0.13952},B:{"13":0.00317,"14":0.00317,"15":0.00317,"16":0.00317,"17":0.00317,"18":0.03171,"84":0.00634,"85":0.00317,"86":0.00317,"89":0.01586,"90":0.00634,"91":0.01903,"92":0.22197,"93":1.03058,"94":0.20929,_:"12 79 80 81 83 87 88"},P:{"4":0.40968,"5.0-5.4":0.03137,"6.2-6.4":0.01024,"7.2-7.4":0.23557,"8.2":0.0103,"9.2":0.10242,"10.1":0.06145,"11.1-11.2":0.29702,"12.0":0.13315,"13.0":0.34823,"14.0":0.65549,"15.0":1.09589},I:{"0":0,"3":0,"4":0.00114,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00458,"4.2-4.3":0.00801,"4.4":0,"4.4.3-4.4.4":0.08869},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00337,"11":0.10444,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":65.21438},S:{"2.5":0},R:{_:"0"},M:{"0":0.07511},Q:{"10.4":0},O:{"0":0.12973},H:{"0":0.22625}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js deleted file mode 100644 index cccc4f76cbad66..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TO.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00558,"52":0.39074,"61":0.02791,"78":0.03349,"88":0.02233,"89":0.03349,"90":0.01675,"91":0.92661,"92":0.90987,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 93 94 3.5 3.6"},D:{"49":0.07815,"58":0.00558,"61":0.0614,"67":0.03349,"68":0.02233,"69":0.02233,"70":0.02233,"73":0.11164,"74":0.00558,"75":0.03907,"76":0.02233,"77":0.01116,"79":0.01116,"80":0.16188,"81":0.18979,"86":0.00558,"87":0.03349,"88":0.15071,"89":0.08373,"90":0.10048,"91":0.24003,"92":7.35149,"93":14.36807,"94":2.23838,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 59 60 62 63 64 65 66 71 72 78 83 84 85 95 96 97"},F:{"77":0.08373,"78":0.5582,"79":0.02791,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.07575,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0.00266,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.05781,"10.0-10.2":0.00266,"10.3":0.04053,"11.0-11.2":0.04917,"11.3-11.4":0.01993,"12.0-12.1":0.02658,"12.2-12.5":1.19338,"13.0-13.1":0.09303,"13.2":0.03189,"13.3":0.18605,"13.4-13.7":0.404,"14.0-14.4":0.94022,"14.5-14.8":3.52101},E:{"4":0,"13":0.08373,"14":1.37875,"15":0.01116,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.07257,"12.1":0.13397,"13.1":0.1563,"14.1":0.29026},B:{"12":0.0614,"13":0.00558,"16":0.05582,"17":0.01116,"18":0.37958,"83":0.01675,"84":0.68659,"87":0.01675,"89":0.17862,"90":0.12839,"91":0.10606,"92":1.46248,"93":3.35478,"94":0.31817,_:"14 15 79 80 81 85 86 88"},P:{"4":0.14406,"5.0-5.4":0.03137,"6.2-6.4":0.02058,"7.2-7.4":0.63798,"8.2":0.0103,"9.2":0.17493,"10.1":0.02058,"11.1-11.2":0.31899,"12.0":0.09261,"13.0":0.08232,"14.0":0.27783,"15.0":0.62769},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00717,"4.2-4.3":0.00067,"4.4":0,"4.4.3-4.4.4":0.001},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"10":0.11037,"11":2.12243,_:"6 7 8 9 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":50.38325},S:{"2.5":0},R:{_:"0"},M:{"0":0.15463},Q:{"10.4":0.03093},O:{"0":0.23857},H:{"0":0.05437}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js deleted file mode 100644 index 951ea4add5ca5c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TR.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00311,"52":0.01557,"78":0.01868,"79":0.00623,"80":0.00623,"81":0.00623,"82":0.00623,"83":0.00311,"88":0.00623,"89":0.02491,"90":0.01246,"91":0.22421,"92":0.45464,"93":0.00311,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 84 85 86 87 94 3.5 3.6"},D:{"22":0.09342,"26":0.04982,"34":0.07474,"38":0.09965,"39":0.00623,"42":0.00623,"43":0.00934,"47":0.10276,"48":0.00311,"49":0.27715,"51":0.0218,"53":0.02803,"56":0.00934,"57":0.00311,"58":0.00623,"59":0.01557,"60":0.00311,"61":0.05605,"62":0.00623,"63":0.01246,"64":0.00311,"65":0.00934,"66":0.00311,"67":0.00623,"68":0.0218,"69":0.00934,"70":0.01246,"71":0.04048,"72":0.00934,"73":0.01246,"74":0.01557,"75":0.03114,"76":0.02803,"77":0.01246,"78":0.01868,"79":0.16504,"80":0.03425,"81":0.02803,"83":0.05294,"84":0.08719,"85":0.09031,"86":0.09342,"87":0.20241,"88":0.06228,"89":0.08408,"90":0.07474,"91":0.2678,"92":4.46236,"93":15.14961,"94":2.24208,"95":0.00623,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 35 36 37 40 41 44 45 46 50 52 54 55 96 97"},F:{"31":0.01557,"32":0.01557,"36":0.01557,"40":0.04982,"46":0.03425,"68":0.00311,"71":0.00311,"77":0.01557,"78":0.80964,"79":0.20241,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 70 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.30568,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00353,"6.0-6.1":0.00442,"7.0-7.1":0.06096,"8.1-8.4":0.00972,"9.0-9.2":0.00707,"9.3":0.15726,"10.0-10.2":0.0159,"10.3":0.13517,"11.0-11.2":0.05036,"11.3-11.4":0.06184,"12.0-12.1":0.03976,"12.2-12.5":1.56817,"13.0-13.1":0.02474,"13.2":0.00972,"13.3":0.08216,"13.4-13.7":0.26858,"14.0-14.4":0.78629,"14.5-14.8":5.24342},E:{"4":0,"13":0.00934,"14":0.08719,"15":0.03737,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.0218,"10.1":0.00623,"11.1":0.00934,"12.1":0.01246,"13.1":0.05917,"14.1":0.39548},B:{"12":0.00623,"13":0.00623,"14":0.00623,"15":0.00623,"16":0.00311,"17":0.00934,"18":0.03737,"84":0.00934,"85":0.00623,"86":0.00623,"87":0.00311,"89":0.00934,"90":0.00311,"91":0.01557,"92":0.23355,"93":1.04942,"94":0.16504,_:"79 80 81 83 88"},P:{"4":0.67647,"5.0-5.4":0.0205,"6.2-6.4":0.01024,"7.2-7.4":0.23574,"8.2":0.0103,"9.2":0.0615,"10.1":0.03075,"11.1-11.2":0.20499,"12.0":0.11275,"13.0":0.38948,"14.0":0.66622,"15.0":2.4804},I:{"0":0,"3":0,"4":0.00012,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00215,"4.2-4.3":0.01051,"4.4":0,"4.4.3-4.4.4":0.02854},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00945,"9":0.0126,"11":0.53848,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":54.64635},S:{"2.5":0},R:{_:"0"},M:{"0":0.21347},Q:{"10.4":0},O:{"0":0.13772},H:{"0":0.57369}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js deleted file mode 100644 index aa61756822d9fd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"48":0.00943,"52":0.02829,"65":0.00472,"68":0.00943,"78":0.03301,"86":0.00943,"87":0.01415,"88":0.00472,"89":0.02358,"90":0.02358,"91":0.64596,"92":2.56025,"93":0.00472,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 66 67 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 94 3.5 3.6"},D:{"38":0.01415,"41":0.00472,"47":0.00943,"49":0.23104,"50":0.01415,"53":0.00472,"55":0.00943,"56":0.01886,"63":0.01415,"65":0.01886,"67":0.11316,"68":0.00943,"69":0.00472,"70":0.00943,"71":0.00943,"72":0.00472,"73":0.00943,"74":0.28762,"75":0.07544,"76":0.07073,"77":0.01415,"78":0.03301,"79":0.15088,"80":0.02358,"81":0.07073,"83":0.01886,"84":0.02358,"85":0.02829,"86":0.05187,"87":0.27347,"88":0.02829,"89":0.08487,"90":0.16503,"91":0.32534,"92":6.05406,"93":19.31736,"94":3.26278,"95":0.01415,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 42 43 44 45 46 48 51 52 54 57 58 59 60 61 62 64 66 96 97"},F:{"28":0.00943,"77":0.00472,"78":0.93829,"79":0.16503,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.79828,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01916,"6.0-6.1":0.0008,"7.0-7.1":0.0463,"8.1-8.4":0.00319,"9.0-9.2":0,"9.3":0.14209,"10.0-10.2":0.00399,"10.3":0.13411,"11.0-11.2":0.01676,"11.3-11.4":0.01038,"12.0-12.1":0.01517,"12.2-12.5":0.55401,"13.0-13.1":0.01197,"13.2":0.00239,"13.3":0.03433,"13.4-13.7":0.14209,"14.0-14.4":0.44464,"14.5-14.8":5.59916},E:{"4":0,"13":0.03772,"14":0.40549,"15":0.21218,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":0.00472,"10.1":0.02358,"11.1":0.10373,"12.1":0.02829,"13.1":0.25933,"14.1":1.61253},B:{"12":0.01415,"14":0.00472,"15":0.00472,"16":0.00472,"17":0.00943,"18":0.09902,"80":0.00943,"84":0.02358,"85":0.01886,"87":0.00472,"89":0.02358,"90":0.00943,"91":0.01886,"92":0.84399,"93":4.12091,"94":0.88642,_:"13 79 81 83 86 88"},P:{"4":0.37198,"5.0-5.4":0.03137,"6.2-6.4":0.02058,"7.2-7.4":0.21881,"8.2":0.0103,"9.2":0.0547,"10.1":0.01094,"11.1-11.2":0.26258,"12.0":0.10941,"13.0":0.18599,"14.0":0.75491,"15.0":4.98896},I:{"0":0,"3":0,"4":0.00236,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00591,"4.4":0,"4.4.3-4.4.4":0.07508},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.16503,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0.00528},N:{"10":0.0242,"11":0.15172},L:{"0":39.25868},S:{"2.5":0},R:{_:"0"},M:{"0":0.12153},Q:{"10.4":0.01057},O:{"0":0.05812},H:{"0":0.32517}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js deleted file mode 100644 index ef07acc6bd8d27..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TV.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"91":0.22893,"92":2.34651,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 93 94 3.5 3.6"},D:{"63":0.5294,"68":0.07869,"81":2.26782,"85":0.22893,"89":0.30047,"90":0.60809,"91":0.37916,"92":19.83089,"93":30.13265,"94":1.20903,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 83 84 86 87 88 95 96 97"},F:{"78":0.4507,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0,"14.5-14.8":0},E:{"4":0,_:"0 5 6 7 8 9 10 11 12 13 14 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 14.1","11.1":0.07869,"12.1":0.07869,"13.1":0.67963},B:{"15":0.15023,"17":0.15023,"18":0.22893,"89":0.07869,"91":0.15023,"92":1.66688,"93":8.62772,"94":0.60809,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 90"},P:{"4":0.07333,"5.0-5.4":0.23443,"6.2-6.4":0.07135,"7.2-7.4":0.08008,"8.2":0.0103,"9.2":0.03143,"10.1":0.02095,"11.1-11.2":0.14666,"12.0":0.23024,"13.0":0.05238,"14.0":0.17808,"15.0":2.33601},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.07869,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":28.53884},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js deleted file mode 100644 index f2e50a405efa76..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.02641,"46":0.0044,"47":0.0044,"48":0.0044,"49":0.0044,"51":0.0088,"52":0.03081,"55":0.0088,"72":0.0088,"78":0.01761,"83":0.0044,"84":0.0088,"86":0.0044,"87":0.0044,"88":0.01321,"89":0.02641,"90":0.01761,"91":0.41379,"92":0.84078,"93":0.0044,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 50 53 54 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 85 94 3.5 3.6"},D:{"11":0.01761,"22":0.0044,"26":0.0044,"30":0.0088,"34":0.02201,"38":0.10565,"45":0.0044,"48":0.0044,"49":0.29934,"50":0.0088,"51":0.0044,"52":0.0088,"53":0.11885,"55":0.01321,"56":0.03081,"57":0.0044,"58":0.0088,"60":0.0044,"61":0.2157,"62":0.0088,"63":0.01321,"64":0.0088,"65":0.01321,"66":0.01761,"67":0.02641,"68":0.02201,"69":0.01761,"70":0.01761,"71":0.02201,"72":0.01321,"73":0.01321,"74":0.01761,"75":0.02201,"76":0.01761,"77":0.01321,"78":0.01321,"79":0.41819,"80":0.03081,"81":0.06603,"83":0.02641,"84":0.01761,"85":0.02641,"86":0.05282,"87":0.27733,"88":0.03081,"89":0.07483,"90":0.09244,"91":0.34776,"92":6.32127,"93":20.33724,"94":2.75125,"95":0.01321,"96":0.0044,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 31 32 33 35 36 37 39 40 41 42 43 44 46 47 54 59 97"},F:{"28":0.01321,"36":0.01761,"40":0.0044,"46":0.05723,"78":0.11005,"79":0.03522,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00236,"15":0.50491,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.03067,"6.0-6.1":0.0118,"7.0-7.1":0.13684,"8.1-8.4":0.05191,"9.0-9.2":0.01888,"9.3":0.25245,"10.0-10.2":0.03775,"10.3":0.29492,"11.0-11.2":0.08966,"11.3-11.4":0.09202,"12.0-12.1":0.21234,"12.2-12.5":1.1443,"13.0-13.1":0.17223,"13.2":0.07314,"13.3":0.33739,"13.4-13.7":0.76444,"14.0-14.4":4.00387,"14.5-14.8":15.35249},E:{"4":0,"8":0.0044,"12":0.01321,"13":0.16287,"14":0.59867,"15":0.11005,_:"0 5 6 7 9 10 11 3.1 3.2 5.1 6.1 7.1","9.1":0.0088,"10.1":0.02201,"11.1":0.03962,"12.1":0.07483,"13.1":0.36096,"14.1":3.89577},B:{"14":0.0044,"16":0.0044,"17":0.01321,"18":0.03081,"84":0.0044,"86":0.0044,"89":0.0044,"90":0.0044,"91":0.01761,"92":0.449,"93":2.07774,"94":0.36977,_:"12 13 15 79 80 81 83 85 87 88"},P:{"4":0.55806,"5.0-5.4":0.1408,"6.2-6.4":0.30171,"7.2-7.4":0.01073,"8.2":0.01073,"9.2":0.09659,"10.1":0.04293,"11.1-11.2":0.17171,"12.0":0.11805,"13.0":0.3005,"14.0":0.66538,"15.0":2.03908},I:{"0":0,"3":0,"4":0.00051,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00102,"4.2-4.3":0.00407,"4.4":0,"4.4.3-4.4.4":0.02799},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00587,"11":0.38151,_:"6 7 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":28.71141},S:{"2.5":0},R:{_:"0"},M:{"0":0.10636},Q:{"10.4":0.01679},O:{"0":0.11196},H:{"0":0.37099}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js deleted file mode 100644 index a8c0110b1a9ad4..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/TZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"21":0.0036,"23":0.0018,"29":0.0054,"30":0.0072,"31":0.0018,"32":0.0018,"34":0.0036,"35":0.0018,"38":0.0018,"39":0.0054,"40":0.0018,"42":0.0036,"43":0.0108,"44":0.0072,"45":0.009,"47":0.0108,"48":0.0126,"49":0.0072,"52":0.0846,"56":0.0072,"64":0.0018,"65":0.0036,"66":0.0036,"68":0.0054,"72":0.0072,"76":0.0018,"78":0.0378,"83":0.0054,"84":0.0018,"85":0.0036,"86":0.0126,"87":0.0036,"88":0.018,"89":0.0558,"90":0.036,"91":0.4824,"92":0.9558,"93":0.0738,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 22 24 25 26 27 28 33 36 37 41 46 50 51 53 54 55 57 58 59 60 61 62 63 67 69 70 71 73 74 75 77 79 80 81 82 94 3.5 3.6"},D:{"11":0.0054,"31":0.0018,"33":0.0018,"37":0.0036,"40":0.0018,"43":0.0072,"46":0.0018,"49":0.045,"50":0.0036,"55":0.0072,"57":0.0378,"58":0.0036,"60":0.0018,"63":0.009,"64":0.0054,"65":0.0036,"66":0.0018,"67":0.0054,"68":0.0054,"69":0.0036,"70":0.0072,"71":0.0036,"72":0.0072,"73":0.0036,"74":0.0108,"75":0.009,"76":0.0036,"77":0.009,"78":0.0036,"79":0.0198,"80":0.0252,"81":0.0108,"83":0.0162,"84":0.0378,"85":0.018,"86":0.0234,"87":0.036,"88":0.0396,"89":0.0288,"90":0.0486,"91":0.171,"92":1.62,"93":5.1894,"94":0.828,"95":0.0144,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 34 35 36 38 39 41 42 44 45 47 48 51 52 53 54 56 59 61 62 96 97"},F:{"19":0.0036,"28":0.0018,"34":0.0018,"36":0.0018,"42":0.0018,"51":0.0018,"64":0.0054,"65":0.0144,"66":0.0018,"72":0.0054,"74":0.009,"75":0.0036,"76":0.0018,"77":0.0486,"78":0.8226,"79":0.171,_:"9 11 12 15 16 17 18 20 21 22 23 24 25 26 27 29 30 31 32 33 35 37 38 39 40 41 43 44 45 46 47 48 49 50 52 53 54 55 56 57 58 60 62 63 67 68 69 70 71 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.09839,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00032,"5.0-5.1":0.00257,"6.0-6.1":0.00193,"7.0-7.1":0.02283,"8.1-8.4":0,"9.0-9.2":0.00129,"9.3":0.04534,"10.0-10.2":0.00225,"10.3":0.04502,"11.0-11.2":0.03955,"11.3-11.4":0.03248,"12.0-12.1":0.03376,"12.2-12.5":0.69966,"13.0-13.1":0.03408,"13.2":0.00868,"13.3":0.07524,"13.4-13.7":0.14823,"14.0-14.4":0.65336,"14.5-14.8":1.26943},E:{"4":0,"12":0.009,"13":0.0162,"14":0.1026,"15":0.0108,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1","6.1":0.0036,"7.1":0.0036,"9.1":0.0054,"10.1":0.0036,"11.1":0.0072,"12.1":0.0108,"13.1":0.1224,"14.1":0.1512},B:{"12":0.0288,"13":0.018,"14":0.0072,"15":0.0162,"16":0.0162,"17":0.0108,"18":0.0666,"84":0.009,"85":0.0072,"86":0.0054,"88":0.0018,"89":0.0198,"90":0.009,"91":0.0252,"92":0.2268,"93":0.7056,"94":0.1188,_:"79 80 81 83 87"},P:{"4":0.33463,"5.0-5.4":0.03137,"6.2-6.4":0.02091,"7.2-7.4":0.13594,"8.2":0.03017,"9.2":0.12549,"10.1":0.01046,"11.1-11.2":0.09412,"12.0":0.08366,"13.0":0.12549,"14.0":0.38692,"15.0":0.51241},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00339,"4.2-4.3":0.00763,"4.4":0,"4.4.3-4.4.4":0.08737},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.0104,"9":0.0104,"11":0.2132,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":45.8836},S:{"2.5":0.4182},R:{_:"0"},M:{"0":0.164},Q:{"10.4":0},O:{"0":1.2792},H:{"0":31.44108}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js deleted file mode 100644 index e5f6fef69dc4e5..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00589,"15":0.00589,"17":0.01178,"20":0.1001,"21":0.00589,"45":0.01178,"48":0.00589,"50":0.00589,"52":0.20019,"55":0.02944,"56":0.01178,"58":0.02944,"60":0.15898,"66":0.01178,"68":0.23552,"70":0.00589,"71":0.00589,"72":0.01178,"77":0.01178,"78":0.18253,"79":0.03533,"80":0.03533,"81":0.06477,"82":0.01178,"83":0.01766,"84":0.06477,"85":0.01178,"86":0.02355,"87":0.02355,"88":0.05888,"89":0.13542,"90":0.03533,"91":0.71245,"92":1.84294,"93":0.01766,_:"2 3 5 6 7 8 9 10 11 12 13 14 16 18 19 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 51 53 54 57 59 61 62 63 64 65 67 69 73 74 75 76 94 3.5","3.6":0.01178},D:{"11":0.00589,"22":0.00589,"24":0.01178,"25":0.02944,"28":0.00589,"40":0.00589,"41":0.01178,"42":0.01178,"43":0.02944,"44":0.00589,"45":0.01178,"46":0.01178,"47":0.01178,"48":0.02355,"49":0.56525,"50":0.01178,"51":0.00589,"53":0.01178,"55":0.00589,"56":0.01178,"57":0.08243,"58":0.01178,"59":0.01766,"61":0.23552,"62":0.00589,"63":0.03533,"64":0.01766,"65":0.02944,"66":0.01178,"67":0.01766,"68":0.01178,"69":0.01178,"70":0.02355,"71":0.02944,"72":0.01766,"73":0.09421,"74":0.38861,"75":0.01766,"76":0.02355,"77":0.01766,"78":0.21197,"79":0.32973,"80":0.22963,"81":0.20019,"83":0.30029,"84":0.37094,"85":0.20608,"86":0.4416,"87":1.73107,"88":0.3415,"89":0.15898,"90":0.27085,"91":0.59469,"92":6.0823,"93":20.47846,"94":3.52102,"95":0.02355,"96":0.01178,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 26 27 29 30 31 32 33 34 35 36 37 38 39 52 54 60 97"},F:{"12":0.01178,"34":0.01178,"35":0.01178,"36":0.12954,"37":0.00589,"58":0.01178,"67":0.00589,"68":0.01178,"69":0.02355,"70":0.02355,"71":0.01178,"72":0.01766,"73":0.01766,"74":0.01766,"75":0.01766,"76":0.02355,"77":0.16486,"78":6.94195,"79":2.06669,_:"9 11 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 60 62 63 64 65 66 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.0471},G:{"8":0.00051,"15":0.31462,"3.2":0.00154,"4.0-4.1":0,"4.2-4.3":0.00051,"5.0-5.1":0.03038,"6.0-6.1":0.00721,"7.0-7.1":0.02214,"8.1-8.4":0.04634,"9.0-9.2":0.00669,"9.3":0.04222,"10.0-10.2":0.00772,"10.3":0.05973,"11.0-11.2":0.02214,"11.3-11.4":0.01751,"12.0-12.1":0.02163,"12.2-12.5":0.26158,"13.0-13.1":0.0206,"13.2":0.01133,"13.3":0.04634,"13.4-13.7":0.20597,"14.0-14.4":0.53037,"14.5-14.8":3.47111},E:{"4":0,"12":0.01178,"13":0.08243,"14":0.30618,"15":0.14131,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.16486,"11.1":0.01178,"12.1":0.02944,"13.1":0.16486,"14.1":1.04806},B:{"17":0.01178,"18":0.0471,"83":0.00589,"84":0.01178,"86":0.01178,"89":0.01178,"92":0.12954,"93":0.62413,"94":0.13542,_:"12 13 14 15 16 79 80 81 85 87 88 90 91"},P:{"4":0.09267,"5.0-5.4":0.0103,"6.2-6.4":0.05149,"7.2-7.4":0.27802,"8.2":0.03089,"9.2":0.18535,"10.1":0.06178,"11.1-11.2":0.56635,"12.0":0.11327,"13.0":0.381,"14.0":1.07091,"15.0":3.27452},I:{"0":0,"3":0,"4":0.00036,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00216,"4.2-4.3":0.009,"4.4":0,"4.4.3-4.4.4":0.04605},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04309,"9":0.02462,"10":0.01231,"11":0.32625,_:"6 7 5.5"},J:{"7":0,"10":0.00411},N:{"10":0.0242,"11":0.15172},L:{"0":27.29667},S:{"2.5":0},R:{_:"0"},M:{"0":0.11514},Q:{"10.4":0},O:{"0":0.28373},H:{"0":2.90027}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js deleted file mode 100644 index c5f2b2c9a1440b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"15":0.00341,"30":0.00682,"31":0.00341,"34":0.00682,"35":0.00682,"37":0.00682,"38":0.00341,"39":0.00341,"40":0.00682,"41":0.01022,"43":0.01704,"44":0.01363,"45":0.00341,"46":0.00341,"47":0.02386,"48":0.01022,"49":0.01022,"50":0.01022,"52":0.0443,"55":0.00682,"56":0.01022,"57":0.00341,"58":0.00682,"60":0.00341,"64":0.03408,"66":0.00341,"67":0.01363,"68":0.01704,"69":0.02726,"70":0.00341,"72":0.02045,"78":0.08179,"80":0.00682,"81":0.00341,"82":0.01363,"83":0.00341,"84":0.01022,"85":0.01022,"86":0.01022,"87":0.01363,"88":0.06134,"89":0.09883,"90":0.0443,"91":1.04285,"92":2.64802,"93":0.36806,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22 23 24 25 26 27 28 29 32 33 36 42 51 53 54 59 61 62 63 65 71 73 74 75 76 77 79 94 3.5 3.6"},D:{"11":0.00682,"19":0.01363,"31":0.03067,"37":0.00682,"38":0.00682,"39":0.00341,"43":0.00341,"47":0.01363,"49":0.07838,"50":0.01022,"53":0.01022,"56":0.00682,"57":0.01363,"58":0.00682,"59":0.01022,"62":0.00341,"63":0.01704,"64":0.03749,"65":0.02045,"66":0.00682,"67":0.00341,"68":0.00341,"69":0.02045,"70":0.00682,"71":0.00682,"72":0.02045,"73":0.00341,"74":0.01363,"75":0.01022,"76":0.03067,"77":0.01363,"78":0.03408,"79":0.11587,"80":0.06134,"81":0.03408,"83":0.02045,"84":0.01363,"85":0.01363,"86":0.06816,"87":0.0852,"88":0.0409,"89":0.09202,"90":0.11928,"91":0.30331,"92":3.69427,"93":10.98058,"94":1.70741,"95":0.02045,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 36 40 41 42 44 45 46 48 51 52 54 55 60 61 96 97"},F:{"28":0.00682,"42":0.00341,"63":0.00341,"65":0.00682,"77":0.0443,"78":0.79406,"79":0.29309,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00139,"15":0.13935,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00209,"5.0-5.1":0.01008,"6.0-6.1":0.00104,"7.0-7.1":0.0205,"8.1-8.4":0.00382,"9.0-9.2":0.00174,"9.3":0.07958,"10.0-10.2":0.00382,"10.3":0.0629,"11.0-11.2":0.0139,"11.3-11.4":0.02537,"12.0-12.1":0.03301,"12.2-12.5":0.5779,"13.0-13.1":0.03023,"13.2":0.01043,"13.3":0.09626,"13.4-13.7":0.1456,"14.0-14.4":0.75269,"14.5-14.8":1.46229},E:{"4":0,"12":0.00682,"13":0.01022,"14":0.07838,"15":0.05794,_:"0 5 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01363,"10.1":0.01022,"11.1":0.01022,"12.1":0.01704,"13.1":0.05794,"14.1":0.2113},B:{"12":0.03749,"13":0.01363,"14":0.01363,"15":0.02045,"16":0.0409,"17":0.01363,"18":0.09542,"84":0.01363,"85":0.01704,"88":0.00341,"89":0.02045,"90":0.01022,"91":0.03749,"92":0.37147,"93":1.27459,"94":0.20107,_:"79 80 81 83 86 87"},P:{"4":0.18819,"5.0-5.4":0.01045,"6.2-6.4":0.07135,"7.2-7.4":0.06273,"8.2":0.0103,"9.2":0.115,"10.1":0.02095,"11.1-11.2":0.08364,"12.0":0.02091,"13.0":0.12546,"14.0":0.41819,"15.0":0.61683},I:{"0":0,"3":0,"4":0.00069,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00162,"4.2-4.3":0.00393,"4.4":0,"4.4.3-4.4.4":0.06628},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01128,"10":0.00564,"11":0.14666,_:"6 7 9 5.5"},J:{"7":0,"10":0.01318},N:{"10":0.0242,"11":0.15172},L:{"0":47.57715},S:{"2.5":0.25709},R:{_:"0"},M:{"0":0.12525},Q:{"10.4":0},O:{"0":1.05472},H:{"0":17.73658}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js deleted file mode 100644 index afec306578a38c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/US.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.04048,"11":0.02024,"17":0.00506,"38":0.00506,"44":0.01518,"45":0.00506,"48":0.01518,"52":0.04048,"54":0.03036,"55":0.00506,"56":0.00506,"58":0.01518,"59":0.00506,"63":0.01012,"68":0.00506,"70":0.01012,"72":0.00506,"76":0.01012,"77":0.00506,"78":0.17204,"79":0.01518,"80":0.01518,"81":0.01518,"82":0.01518,"83":0.01012,"84":0.01012,"85":0.01012,"86":0.01012,"87":0.00506,"88":0.02024,"89":0.04048,"90":0.0506,"91":0.83996,"92":1.48258,"93":0.00506,_:"2 3 5 6 7 8 9 10 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 46 47 49 50 51 53 57 60 61 62 64 65 66 67 69 71 73 74 75 94 3.5 3.6"},D:{"35":0.01518,"38":0.01012,"40":0.02024,"43":0.00506,"46":0.00506,"47":0.00506,"48":0.04554,"49":0.18722,"52":0.00506,"56":0.09108,"58":0.00506,"59":0.01518,"60":0.01518,"61":0.06072,"62":0.00506,"63":0.01518,"64":0.05566,"65":0.0253,"66":0.03036,"67":0.03036,"68":0.00506,"69":0.02024,"70":0.06578,"71":0.01012,"72":0.06578,"73":0.01012,"74":0.13662,"75":0.1265,"76":0.16698,"77":0.04554,"78":0.08096,"79":0.23276,"80":0.14674,"81":0.09108,"83":0.1265,"84":0.29348,"85":0.26818,"86":0.27324,"87":0.52118,"88":0.26312,"89":0.5313,"90":0.49588,"91":1.1132,"92":7.2358,"93":15.2812,"94":1.55848,"95":0.03036,"96":0.04048,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 41 42 44 45 50 51 53 54 55 57 97"},F:{"68":0.00506,"70":0.00506,"71":0.01012,"72":0.00506,"77":0.01012,"78":0.39468,"79":0.07084,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.91245,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00524,"6.0-6.1":0.01049,"7.0-7.1":0.01311,"8.1-8.4":0.01311,"9.0-9.2":0.01573,"9.3":0.12061,"10.0-10.2":0.02098,"10.3":0.13896,"11.0-11.2":0.06817,"11.3-11.4":0.07342,"12.0-12.1":0.07079,"12.2-12.5":0.763,"13.0-13.1":0.06555,"13.2":0.03409,"13.3":0.17829,"13.4-13.7":0.58995,"14.0-14.4":2.15789,"14.5-14.8":20.95487},E:{"4":0,"8":0.00506,"9":0.00506,"11":0.01012,"12":0.02024,"13":0.11638,"14":0.78936,"15":0.31372,_:"0 5 6 7 10 3.1 3.2 5.1 6.1 7.1","9.1":0.08602,"10.1":0.03542,"11.1":0.1012,"12.1":0.16698,"13.1":1.7204,"14.1":5.2371},B:{"12":0.00506,"14":0.00506,"15":0.01012,"16":0.00506,"17":0.01518,"18":0.16192,"84":0.01518,"85":0.01518,"86":0.01518,"87":0.03542,"88":0.01012,"89":0.02024,"90":0.01012,"91":0.04048,"92":1.01706,"93":4.13908,"94":0.57684,_:"13 79 80 81 83"},P:{"4":0.04317,"5.0-5.4":0.0103,"6.2-6.4":0.05149,"7.2-7.4":0.06208,"8.2":0.03089,"9.2":0.01079,"10.1":0.01076,"11.1-11.2":0.05396,"12.0":0.02158,"13.0":0.09713,"14.0":0.2698,"15.0":1.60801},I:{"0":0,"3":0,"4":0.01124,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00259,"4.2-4.3":0.02248,"4.4":0,"4.4.3-4.4.4":0.03285},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01695,"9":0.29379,"11":0.61018,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":20.6519},S:{"2.5":0},R:{_:"0"},M:{"0":0.42484},Q:{"10.4":0.01976},O:{"0":0.20748},H:{"0":0.22917}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js deleted file mode 100644 index bee2c74fb1c583..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UY.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"41":0.00494,"45":0.00494,"47":0.00494,"48":0.00494,"50":0.00494,"52":0.1136,"55":0.00494,"57":0.01482,"60":0.00988,"61":0.00988,"66":0.03457,"67":0.00494,"68":0.00988,"69":0.00988,"72":0.00494,"73":0.04939,"78":0.09384,"79":0.00494,"81":0.00988,"82":0.00494,"83":0.01482,"84":0.01976,"85":0.00494,"86":0.00494,"87":0.00494,"88":0.07409,"89":0.12841,"90":0.03457,"91":0.82975,"92":1.67926,"93":0.00988,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 42 43 44 46 49 51 53 54 56 58 59 62 63 64 65 70 71 74 75 76 77 80 94 3.5 3.6"},D:{"26":0.00988,"38":0.03951,"43":0.00988,"47":0.01976,"48":0.00988,"49":0.21732,"56":0.00494,"57":0.01482,"58":0.00494,"60":0.0247,"62":0.01976,"63":0.01482,"65":0.01976,"66":0.01482,"67":0.00988,"68":0.00494,"69":0.00988,"70":0.01482,"71":0.09878,"72":0.01482,"73":0.01482,"74":0.04939,"75":0.09878,"76":0.01976,"77":0.01976,"78":0.01482,"79":0.07409,"80":0.18274,"81":0.04445,"83":0.0247,"84":0.01976,"85":0.03457,"86":1.28908,"87":0.19756,"88":0.06915,"89":0.0889,"90":0.11854,"91":0.44945,"92":6.1293,"93":23.2133,"94":5.04272,"95":0.00494,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 44 45 46 50 51 52 53 54 55 59 61 64 96 97"},F:{"77":0.02963,"78":2.10895,"79":0.28152,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.29422,"3.2":0.00124,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0149,"6.0-6.1":0.00248,"7.0-7.1":0.01179,"8.1-8.4":0,"9.0-9.2":0.00186,"9.3":0.02669,"10.0-10.2":0.0031,"10.3":0.04531,"11.0-11.2":0.00745,"11.3-11.4":0.02545,"12.0-12.1":0.018,"12.2-12.5":0.48541,"13.0-13.1":0.00683,"13.2":0.00435,"13.3":0.05711,"13.4-13.7":0.18932,"14.0-14.4":0.44941,"14.5-14.8":4.55986},E:{"4":0,"13":0.04445,"14":0.14323,"15":0.07409,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.0247,"11.1":0.01976,"12.1":0.10372,"13.1":0.15311,"14.1":0.75073},B:{"12":0.00494,"14":0.00494,"18":0.03457,"80":0.00988,"89":0.00988,"90":0.01976,"91":0.00988,"92":0.33091,"93":1.63975,"94":0.46427,_:"13 15 16 17 79 81 83 84 85 86 87 88"},P:{"4":0.07253,"5.0-5.4":0.0103,"6.2-6.4":0.05149,"7.2-7.4":0.16579,"8.2":0.03089,"9.2":0.04145,"10.1":0.07253,"11.1-11.2":0.1347,"12.0":0.12434,"13.0":0.1347,"14.0":0.24868,"15.0":1.19161},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00456,"4.2-4.3":0.00798,"4.4":0,"4.4.3-4.4.4":0.06843},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.28152,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":43.04495},S:{"2.5":0},R:{_:"0"},M:{"0":0.2075},Q:{"10.4":0},O:{"0":0.01012},H:{"0":0.15812}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js deleted file mode 100644 index c54ee8b3b63ac6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/UZ.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.00373,"30":0.00373,"33":0.00373,"40":0.01492,"41":0.00746,"42":0.00373,"43":0.00373,"48":0.00746,"52":0.04103,"57":0.01865,"68":0.01492,"72":0.60799,"73":0.01865,"78":0.05222,"79":0.02238,"80":0.01492,"81":0.00746,"82":0.00746,"83":0.02238,"85":0.00746,"87":0.00373,"88":0.00746,"89":0.01492,"90":0.00746,"91":0.30959,"92":0.78703,"93":0.02238,_:"2 3 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 31 32 34 35 36 37 38 39 44 45 46 47 49 50 51 53 54 55 56 58 59 60 61 62 63 64 65 66 67 69 70 71 74 75 76 77 84 86 94 3.5 3.6"},D:{"25":0.01492,"39":0.00746,"42":0.00746,"43":0.01119,"49":0.26483,"56":0.02238,"63":0.00746,"65":0.00746,"66":0.04849,"67":0.01119,"68":0.00746,"70":0.00373,"71":0.04103,"72":0.01492,"73":0.01119,"74":0.01865,"75":0.00746,"76":0.01119,"77":0.00746,"78":0.02238,"79":0.1119,"80":0.05968,"81":0.02238,"83":0.03357,"84":0.06714,"85":0.14174,"86":0.13801,"87":0.17158,"88":0.09698,"89":0.06341,"90":0.09698,"91":0.25737,"92":4.09554,"93":16.88198,"94":2.76393,"95":0.02238,"96":0.00373,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 44 45 46 47 48 50 51 52 53 54 55 57 58 59 60 61 62 64 69 97"},F:{"28":0.01865,"30":0.00746,"31":0.00746,"36":0.01119,"42":0.00373,"45":0.00746,"47":0.00746,"51":0.00373,"53":0.05595,"54":0.01119,"55":0.02238,"56":0.01119,"57":0.04103,"58":0.02984,"60":0.02611,"62":0.02984,"63":0.01865,"64":0.02984,"65":0.01119,"66":0.01119,"67":0.01492,"68":0.01492,"69":0.00373,"70":0.02238,"71":0.02238,"72":0.06341,"73":0.04476,"74":0.01492,"75":0.01865,"76":0.04476,"77":0.06341,"78":0.0746,"79":0.00373,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 32 33 34 35 37 38 39 40 41 43 44 46 48 49 50 52 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.0014,"15":0.218,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00094,"5.0-5.1":0.00468,"6.0-6.1":0.00047,"7.0-7.1":0.03742,"8.1-8.4":0.00842,"9.0-9.2":0.00655,"9.3":0.04959,"10.0-10.2":0.00889,"10.3":0.09918,"11.0-11.2":0.02573,"11.3-11.4":0.03134,"12.0-12.1":0.02105,"12.2-12.5":0.54734,"13.0-13.1":0.02199,"13.2":0.00889,"13.3":0.04912,"13.4-13.7":0.14783,"14.0-14.4":0.61657,"14.5-14.8":2.77129},E:{"4":0,"8":0.00746,"13":0.01119,"14":0.1119,"15":0.05222,_:"0 5 6 7 9 10 11 12 3.1 3.2 6.1 7.1 9.1","5.1":1.4174,"10.1":0.00746,"11.1":0.00373,"12.1":0.00746,"13.1":0.05222,"14.1":0.33943},B:{"12":0.00373,"15":0.00746,"16":0.00746,"17":0.02238,"18":0.06714,"84":0.03357,"85":0.02238,"86":0.00373,"87":0.01492,"89":0.02238,"90":0.01865,"91":0.00746,"92":0.14547,"93":0.80941,"94":0.16785,_:"13 14 79 80 81 83 88"},P:{"4":1.09906,"5.0-5.4":0.08067,"6.2-6.4":0.21175,"7.2-7.4":0.53441,"8.2":0.02017,"9.2":0.1815,"10.1":0.07058,"11.1-11.2":0.45374,"12.0":0.242,"13.0":0.63524,"14.0":1.0184,"15.0":1.6738},I:{"0":0,"3":0,"4":0.00037,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00187,"4.2-4.3":0.00466,"4.4":0,"4.4.3-4.4.4":0.02444},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.00584,"9":0.02335,"11":0.23353,_:"6 7 10 5.5"},J:{"7":0,"10":0.00627},N:{"10":0.0242,"11":0.01881},L:{"0":47.60692},S:{"2.5":0},R:{_:"0"},M:{"0":0.07523},Q:{"10.4":0.01881},O:{"0":4.13127},H:{"0":0.47481}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js deleted file mode 100644 index 46267166e35d08..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"39":0.02671,"52":0.02671,"55":0.01781,"62":0.0089,"78":0.81026,"89":0.04452,"90":0.25822,"91":3.92666,"92":7.76429,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 41 42 43 44 45 46 47 48 49 50 51 53 54 56 57 58 59 60 61 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 93 94 3.5 3.6"},D:{"67":0.32945,"77":0.07123,"81":0.09794,"87":0.06233,"88":0.01781,"91":0.04452,"92":9.37591,"93":36.24818,"94":5.10199,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 68 69 70 71 72 73 74 75 76 78 79 80 83 84 85 86 89 90 95 96 97"},F:{"78":0.04452,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.01304,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.00335,"10.0-10.2":0.00987,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.65168,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0,"14.0-14.4":0.63175,"14.5-14.8":0.5535},E:{"4":0,"14":0.09794,"15":0.18698,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.24041,"11.1":0.56986,"12.1":2.27052,"13.1":0.31164,"14.1":2.69791},B:{"15":0.04452,"17":0.78355,"18":0.4452,"91":0.01781,"92":2.33285,"93":11.07658,"94":2.25271,_:"12 13 14 16 79 80 81 83 84 85 86 87 88 89 90"},P:{"4":0.46032,"5.0-5.4":0.11252,"6.2-6.4":0.04092,"7.2-7.4":0.37849,"8.2":0.11252,"9.2":0.32734,"10.1":0.0117,"11.1-11.2":0.48078,"12.0":0.07161,"13.0":0.23528,"14.0":0.47055,"15.0":8.24995},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.29108,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"11":0.15172,_:"10"},L:{"0":0.91118},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0},H:{"0":0.02075}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js deleted file mode 100644 index 713925d3361652..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VC.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"50":0.01292,"51":0.00431,"52":0.01723,"54":0.00431,"55":0.00431,"56":0.00431,"59":0.00862,"61":0.01292,"63":0.01292,"64":0.00431,"67":0.00862,"73":0.00431,"75":0.02154,"78":0.01292,"87":0.01723,"88":0.00431,"90":0.00862,"91":1.20624,"92":0.86591,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 53 57 58 60 62 65 66 68 69 70 71 72 74 76 77 79 80 81 82 83 84 85 86 89 93 94 3.5 3.6"},D:{"39":0.00431,"41":0.00862,"42":0.00431,"47":0.00862,"49":0.18524,"53":0.12493,"55":0.00862,"56":0.00431,"60":0.00431,"61":0.02154,"63":0.00431,"65":0.00862,"66":0.01723,"67":0.00431,"69":0.01292,"70":0.08185,"71":0.02154,"74":0.41357,"75":0.03016,"76":0.03016,"78":0.00431,"79":0.03446,"80":0.01292,"81":0.056,"83":0.056,"84":0.01292,"85":0.03016,"86":0.00431,"87":0.04739,"88":0.01723,"90":0.02585,"91":0.25417,"92":4.88958,"93":12.51905,"94":1.76197,"95":0.01292,"96":0.02585,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 40 43 44 45 46 48 50 51 52 54 57 58 59 62 64 68 72 73 77 89 97"},F:{"29":0.00862,"43":0.00862,"48":0.00431,"52":0.00431,"54":0.00431,"55":0.00862,"77":0.00431,"78":0.29294,"79":0.10339,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 37 38 39 40 41 42 44 45 46 47 49 50 51 53 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.5 11.6","10.0-10.1":0,"11.1":0.02154,"12.1":0.00862},G:{"8":0.00335,"15":0.57214,"3.2":0.00335,"4.0-4.1":0,"4.2-4.3":0.00223,"5.0-5.1":0.00335,"6.0-6.1":0.00558,"7.0-7.1":0.22306,"8.1-8.4":0,"9.0-9.2":0.00669,"9.3":0.09926,"10.0-10.2":0.00669,"10.3":0.04573,"11.0-11.2":0.00892,"11.3-11.4":0.02119,"12.0-12.1":0.02788,"12.2-12.5":0.34351,"13.0-13.1":0.00223,"13.2":0.00223,"13.3":0.0145,"13.4-13.7":0.10261,"14.0-14.4":1.55471,"14.5-14.8":8.10144},E:{"4":0,"11":0.00862,"12":0.00431,"13":0.02154,"14":0.28864,"15":0.15078,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00431,"11.1":0.01292,"12.1":1.87829,"13.1":0.45234,"14.1":1.00376},B:{"12":0.00862,"13":0.01723,"14":0.01292,"15":0.01292,"16":0.03016,"17":0.01723,"18":0.13786,"79":0.00862,"80":0.01292,"81":0.02154,"83":0.01292,"84":0.03016,"85":0.00431,"86":0.00862,"87":0.00862,"89":0.0517,"90":0.00862,"92":0.9693,"93":8.11196,"94":0.95638,_:"88 91"},P:{"4":0.67513,"5.0-5.4":0.01206,"6.2-6.4":0.02411,"7.2-7.4":0.14467,"8.2":0.0101,"9.2":0.27729,"10.1":0.05249,"11.1-11.2":0.27729,"12.0":0.01206,"13.0":0.07234,"14.0":0.69925,"15.0":3.01399},I:{"0":0,"3":0,"4":0.0012,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0018,"4.2-4.3":0.0006,"4.4":0,"4.4.3-4.4.4":0.08177},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.58589,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":44.14229},S:{"2.5":0},R:{_:"0"},M:{"0":0.19353},Q:{"10.4":0},O:{"0":0.09676},H:{"0":0.08083}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js deleted file mode 100644 index 815a8f6da568a0..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"8":0.00585,"27":0.08189,"40":0.0117,"43":0.00585,"45":0.0117,"47":0.0117,"48":0.0117,"52":0.52056,"56":0.0117,"57":0.0117,"60":0.02925,"62":0.0117,"63":0.00585,"64":0.0117,"65":0.0234,"66":0.01755,"67":0.00585,"68":0.0234,"69":0.01755,"70":0.0234,"71":0.01755,"72":0.03509,"73":0.0117,"78":0.11698,"79":0.0117,"80":0.00585,"81":0.0117,"82":0.00585,"83":0.0117,"84":0.0234,"85":0.01755,"86":0.01755,"87":0.0117,"88":0.04679,"89":0.06434,"90":0.03509,"91":1.01188,"92":1.97111,"93":0.0117,_:"2 3 4 5 6 7 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 28 29 30 31 32 33 34 35 36 37 38 39 41 42 44 46 49 50 51 53 54 55 58 59 61 74 75 76 77 94 3.5 3.6"},D:{"11":0.0117,"25":0.00585,"37":0.00585,"42":0.0117,"46":0.00585,"47":0.0117,"48":0.0117,"49":0.76037,"51":0.0117,"52":0.01755,"53":0.00585,"55":0.0117,"56":0.0117,"57":0.0117,"58":0.0234,"59":0.00585,"60":0.0117,"61":0.00585,"62":0.00585,"63":0.03509,"64":0.01755,"65":0.04679,"66":0.01755,"67":0.06434,"68":0.01755,"69":0.07019,"70":0.03509,"71":0.07019,"72":0.04094,"73":0.01755,"74":0.02925,"75":0.07604,"76":0.05849,"77":0.02925,"78":0.03509,"79":0.12283,"80":0.07019,"81":0.05849,"83":0.10528,"84":0.08774,"85":0.10528,"86":0.15207,"87":0.83056,"88":0.15792,"89":0.18717,"90":0.34509,"91":0.98263,"92":7.94294,"93":25.1273,"94":4.13524,"95":0.01755,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 26 27 28 29 30 31 32 33 34 35 36 38 39 40 41 43 44 45 50 54 96 97"},F:{"57":0.0117,"68":0.01755,"76":0.00585,"77":0.05264,"78":1.91847,"79":0.38019,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 58 60 62 63 64 65 66 67 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.10351,"3.2":0.005,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.0088,"6.0-6.1":0.0138,"7.0-7.1":0.02023,"8.1-8.4":0.00167,"9.0-9.2":0.00143,"9.3":0.10708,"10.0-10.2":0.00999,"10.3":0.06567,"11.0-11.2":0.00809,"11.3-11.4":0.00952,"12.0-12.1":0.01285,"12.2-12.5":0.30291,"13.0-13.1":0.00761,"13.2":0.00428,"13.3":0.03522,"13.4-13.7":0.09066,"14.0-14.4":0.232,"14.5-14.8":1.33822},E:{"4":0,"13":0.0117,"14":0.04679,"15":0.0234,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.03509,"11.1":0.0117,"12.1":0.0117,"13.1":0.05849,"14.1":0.21641},B:{"12":0.0117,"18":0.02925,"84":0.0117,"85":0.00585,"89":0.0117,"91":0.01755,"92":0.31,"93":1.1698,"94":0.26905,_:"13 14 15 16 17 79 80 81 83 86 87 88 90"},P:{"4":0.12951,"5.0-5.4":0.08067,"6.2-6.4":0.0308,"7.2-7.4":0.12951,"8.2":0.02053,"9.2":0.02159,"10.1":0.02053,"11.1-11.2":0.09713,"12.0":0.03238,"13.0":0.1511,"14.0":0.32378,"15.0":1.00371},I:{"0":0,"3":0,"4":0.00031,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0041,"4.2-4.3":0.00543,"4.4":0,"4.4.3-4.4.4":0.03167},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01267,"9":0.01901,"10":0.00634,"11":0.26613,_:"6 7 5.5"},J:{"7":0,"10":0.02906},N:{"10":0.0242,"11":0.01881},L:{"0":43.01741},S:{"2.5":0.0083},R:{_:"0"},M:{"0":0.16604},Q:{"10.4":0},O:{"0":0.04981},H:{"0":0.49124}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js deleted file mode 100644 index 09c2e2f0d07e4b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VG.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"22":0.03627,"54":0.01554,"79":0.01036,"89":0.01554,"91":0.72016,"92":1.12946,"93":0.01036,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80 81 82 83 84 85 86 87 88 90 94 3.5 3.6"},D:{"48":0.00518,"50":0.06735,"53":0.02072,"67":0.01036,"69":0.01036,"73":0.01554,"74":1.2538,"75":0.01554,"76":0.01036,"79":0.39376,"80":0.00518,"81":0.05699,"83":0.00518,"84":0.04145,"86":0.02072,"87":0.04663,"88":0.03627,"89":0.02591,"90":0.15543,"91":0.53364,"92":6.42444,"93":18.26821,"94":2.66822,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 49 51 52 54 55 56 57 58 59 60 61 62 63 64 65 66 68 70 71 72 77 78 85 95 96 97"},F:{"49":0.00518,"78":0.36785,"79":0.05699,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.61659,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0.00873,"9.0-9.2":0.00291,"9.3":0.3621,"10.0-10.2":0.00291,"10.3":0.02472,"11.0-11.2":0,"11.3-11.4":0.09452,"12.0-12.1":0.00291,"12.2-12.5":0.22977,"13.0-13.1":0.01309,"13.2":0,"13.3":0.06253,"13.4-13.7":0.2065,"14.0-14.4":1.03396,"14.5-14.8":11.8825},E:{"4":0,"13":0.07253,"14":0.74606,"15":0.24869,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 9.1 10.1","11.1":0.03627,"12.1":0.08808,"13.1":0.601,"14.1":6.1343},B:{"15":0.0829,"16":0.01554,"17":0.01554,"18":0.18134,"80":0.01554,"84":0.03109,"85":0.01036,"89":0.01554,"91":0.05699,"92":1.40923,"93":6.80783,"94":1.07247,_:"12 13 14 79 81 83 86 87 88 90"},P:{"4":0.23045,"5.0-5.4":0.01095,"6.2-6.4":0.05228,"7.2-7.4":0.06285,"8.2":0.01043,"9.2":0.02095,"10.1":0.0307,"11.1-11.2":0.38757,"12.0":0.0838,"13.0":0.32472,"14.0":0.77515,"15.0":3.8443},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00399,"4.4":0,"4.4.3-4.4.4":0.05384},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.17615,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{_:"10 11"},L:{"0":28.38749},S:{"2.5":0},R:{_:"0"},M:{"0":0.10602},Q:{"10.4":0},O:{"0":0},H:{"0":0.03194}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js deleted file mode 100644 index 025f98eac3e265..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VI.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.00541,"50":0.00541,"51":0.00541,"54":0.00541,"56":0.00541,"59":0.01081,"78":0.09729,"83":0.01081,"89":0.01081,"91":0.69725,"92":1.5134,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 48 49 52 53 55 57 58 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 84 85 86 87 88 90 93 94 3.5 3.6"},D:{"38":0.00541,"47":0.01081,"49":0.04324,"52":0.01081,"53":0.02162,"68":0.03243,"69":0.03243,"70":0.01081,"72":0.01622,"73":0.01081,"74":0.63239,"75":0.02162,"76":0.02703,"78":0.05405,"79":0.2162,"80":0.03784,"83":0.03784,"84":0.01081,"85":0.03243,"86":0.02703,"87":0.03784,"88":0.05405,"89":0.09729,"90":0.25944,"91":0.41619,"92":8.00481,"93":14.67998,"94":1.78365,"95":0.00541,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 54 55 56 57 58 59 60 61 62 63 64 65 66 67 71 77 81 96 97"},F:{"78":0.17837,"79":0.03243,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00541},G:{"8":0,"15":1.43578,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.02267,"6.0-6.1":0,"7.0-7.1":0.01511,"8.1-8.4":0.01259,"9.0-9.2":0.01008,"9.3":0.12595,"10.0-10.2":0,"10.3":0.16373,"11.0-11.2":0.02015,"11.3-11.4":0.0403,"12.0-12.1":0.01008,"12.2-12.5":0.38035,"13.0-13.1":0.00756,"13.2":0.01008,"13.3":0.06801,"13.4-13.7":0.46852,"14.0-14.4":1.85391,"14.5-14.8":20.53662},E:{"4":0,"8":0.02162,"11":0.01081,"12":0.02703,"13":0.11351,"14":0.47564,"15":0.19999,_:"0 5 6 7 9 10 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01081,"11.1":0.14594,"12.1":0.05405,"13.1":0.39997,"14.1":8.49126},B:{"12":0.01081,"13":0.02162,"14":0.02162,"15":0.02162,"16":0.02703,"17":0.01622,"18":0.14594,"79":0.00541,"80":0.01622,"83":0.00541,"84":0.00541,"85":0.01081,"87":0.02703,"89":0.04865,"90":0.01622,"91":0.01081,"92":2.02147,"93":8.33451,"94":1.61069,_:"81 86 88"},P:{"4":1.04907,"5.0-5.4":0.0104,"6.2-6.4":0.0308,"7.2-7.4":0.05298,"8.2":0.0104,"9.2":0.04161,"10.1":0.04161,"11.1-11.2":0.08477,"12.0":0.06241,"13.0":0.02119,"14.0":0.6252,"15.0":2.88228},I:{"0":0,"3":0,"4":0.00102,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00102,"4.4":0,"4.4.3-4.4.4":0.00715},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.78913,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":16.24791},S:{"2.5":0},R:{_:"0"},M:{"0":0.51016},Q:{"10.4":0},O:{"0":0},H:{"0":0.03046}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js deleted file mode 100644 index 1d395f9df8b7b8..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VN.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"50":0.02004,"51":0.01002,"52":0.08016,"53":0.01002,"54":0.01503,"55":0.01503,"56":0.02004,"57":0.01503,"58":0.01503,"59":0.02004,"60":0.02004,"61":0.01503,"62":0.01002,"63":0.02004,"65":0.01002,"66":0.01002,"67":0.01002,"68":0.01503,"70":0.00501,"72":0.01002,"73":0.00501,"74":0.01002,"75":0.00501,"76":0.00501,"77":0.00501,"78":0.04509,"79":0.02505,"80":0.03006,"81":0.02004,"82":0.02505,"83":0.02505,"84":0.02004,"88":0.02505,"89":0.04008,"90":0.02004,"91":0.29058,"92":0.90681,"93":0.01002,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 64 69 71 85 86 87 94 3.5 3.6"},D:{"33":0.00501,"34":0.00501,"36":0.00501,"38":0.02505,"41":0.01503,"45":0.01002,"46":0.01002,"47":0.01002,"48":0.01503,"49":0.63627,"50":0.00501,"51":0.01002,"53":0.01503,"54":0.01002,"55":0.01002,"56":0.02505,"57":0.01503,"58":0.01503,"59":0.00501,"60":0.01503,"61":0.8016,"62":0.01002,"63":0.02004,"64":0.01503,"65":0.03006,"66":0.01503,"67":0.01503,"68":0.01503,"69":0.01503,"70":0.02505,"71":0.01503,"72":0.01503,"73":0.01002,"74":0.02505,"75":0.03006,"76":0.02505,"77":0.04509,"78":0.03006,"79":0.11022,"80":0.10521,"81":0.06012,"83":0.15531,"84":0.27054,"85":0.23547,"86":0.32565,"87":1.002,"88":0.02505,"89":0.10521,"90":0.15531,"91":0.33567,"92":5.6112,"93":18.87768,"94":3.03606,"95":0.03006,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 35 37 39 40 42 43 44 52 96 97"},F:{"28":0.00501,"36":0.01503,"40":0.00501,"43":0.01002,"46":0.02004,"52":0.00501,"53":0.01002,"54":0.01002,"55":0.01002,"56":0.00501,"68":0.02004,"69":0.01002,"70":0.01503,"71":0.01002,"72":0.01002,"77":0.00501,"78":0.56112,"79":0.11523,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 44 45 47 48 49 50 51 57 58 60 62 63 64 65 66 67 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.01002},G:{"8":0.00268,"15":0.4174,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00134,"5.0-5.1":0.00803,"6.0-6.1":0.0107,"7.0-7.1":0.03612,"8.1-8.4":0.02943,"9.0-9.2":0.02809,"9.3":0.15117,"10.0-10.2":0.05619,"10.3":0.22475,"11.0-11.2":0.10301,"11.3-11.4":0.18863,"12.0-12.1":0.13646,"12.2-12.5":1.88365,"13.0-13.1":0.07759,"13.2":0.04682,"13.3":0.25017,"13.4-13.7":0.82543,"14.0-14.4":1.89168,"14.5-14.8":7.00616},E:{"4":0,"10":0.01002,"11":0.01503,"12":0.02004,"13":0.08517,"14":0.22545,"15":0.09519,_:"0 5 6 7 8 9 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.01002,"11.1":0.02505,"12.1":0.04008,"13.1":0.18036,"14.1":0.86673},B:{"12":0.02004,"13":0.01503,"14":0.02004,"15":0.02004,"16":0.03507,"17":0.02505,"18":0.08517,"79":0.01002,"80":0.01002,"81":0.01503,"83":0.02004,"84":0.0501,"85":0.02505,"86":0.02505,"87":0.02004,"89":0.01503,"90":0.01002,"91":0.02004,"92":0.31563,"93":1.55811,"94":0.33066,_:"88"},P:{"4":0.36406,"5.0-5.4":0.0104,"6.2-6.4":0.0308,"7.2-7.4":0.09362,"8.2":0.0104,"9.2":0.04161,"10.1":0.04161,"11.1-11.2":0.19763,"12.0":0.06241,"13.0":0.19763,"14.0":0.30165,"15.0":1.37303},I:{"0":0,"3":0,"4":0.00056,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00084,"4.2-4.3":0.00338,"4.4":0,"4.4.3-4.4.4":0.03014},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.02674,"9":0.02674,"10":0.01069,"11":0.49194,_:"6 7 5.5"},J:{"7":0,"10":0.00998},N:{"10":0.0242,"11":0.01881},L:{"0":33.88284},S:{"2.5":0},R:{_:"0"},M:{"0":0.0898},Q:{"10.4":0.00998},O:{"0":1.1325},H:{"0":0.29757}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js deleted file mode 100644 index 76e7766eb6acce..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/VU.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.02114,"38":0.03382,"49":0.01268,"50":0.01268,"52":0.02536,"56":0.01268,"67":0.00423,"72":0.02114,"74":0.00845,"78":0.0465,"81":0.01268,"82":0.03804,"85":0.00845,"89":0.02536,"90":0.00845,"91":0.63405,"92":1.53863,"93":0.01268,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 51 53 54 55 57 58 59 60 61 62 63 64 65 66 68 69 70 71 73 75 76 77 79 80 83 84 86 87 88 94 3.5 3.6"},D:{"40":0.00845,"49":0.00423,"56":0.00845,"59":0.02536,"63":0.04227,"65":0.02114,"69":0.06763,"72":0.01691,"74":0.01268,"76":0.01268,"77":0.01268,"78":0.08454,"79":0.14372,"80":0.02114,"81":0.20712,"83":0.05072,"84":0.13949,"85":0.01268,"86":0.08877,"87":0.13104,"88":0.19022,"89":0.03382,"90":0.06763,"91":0.17331,"92":4.8526,"93":13.82229,"94":1.76266,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 42 43 44 45 46 47 48 50 51 52 53 54 55 57 58 60 61 62 64 66 67 68 70 71 73 75 95 96 97"},F:{"77":0.02959,"78":0.17753,"79":0.01691,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.01049,"15":0.04168,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.00166,"8.1-8.4":0.04333,"9.0-9.2":0.00166,"9.3":0.23819,"10.0-10.2":0.00359,"10.3":0.01049,"11.0-11.2":0.0069,"11.3-11.4":0.02098,"12.0-12.1":0.0138,"12.2-12.5":0.11647,"13.0-13.1":0.04526,"13.2":0.00166,"13.3":0.02429,"13.4-13.7":0.04692,"14.0-14.4":0.42586,"14.5-14.8":1.70677},E:{"4":0,"13":0.00845,"14":0.12258,"15":0.04227,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 5.1 6.1 7.1 10.1","9.1":0.01691,"11.1":0.01268,"12.1":0.05072,"13.1":0.83272,"14.1":1.14552},B:{"12":0.00423,"13":0.03382,"14":0.00845,"15":0.00423,"16":0.05495,"17":0.11413,"18":0.2198,"84":0.05918,"85":0.02114,"87":0.03382,"88":0.00845,"89":0.19867,"90":0.02114,"91":0.08454,"92":1.61471,"93":4.39185,"94":1.39068,_:"79 80 81 83 86"},P:{"4":0.15401,"5.0-5.4":0.08067,"6.2-6.4":0.0308,"7.2-7.4":1.0986,"8.2":0.02053,"9.2":0.08214,"10.1":0.02053,"11.1-11.2":0.20535,"12.0":0.0308,"13.0":0.10267,"14.0":0.49283,"15.0":0.49283},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00271,"4.2-4.3":0.01624,"4.4":0,"4.4.3-4.4.4":0.15427},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.11836,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":57.34427},S:{"2.5":0},R:{_:"0"},M:{"0":0.10393},Q:{"10.4":0.11548},O:{"0":1.10861},H:{"0":0.08746}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js deleted file mode 100644 index bc5d5397754bfc..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WF.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"60":1.8315,"78":1.73715,"89":0.09435,"91":2.8971,"92":10.22865,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 82 83 84 85 86 87 88 90 93 94 3.5 3.6"},D:{"78":0.77145,"87":0.2886,"89":0.77145,"91":0.2886,"92":3.4743,"93":13.0314,"94":2.02575,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 79 80 81 83 84 85 86 88 90 95 96 97"},F:{"78":5.88855,"79":3.4743,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":3.64281,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.62052,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0.46567,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":1.08504,"14.0-14.4":0.07799,"14.5-14.8":5.58006},E:{"4":0,"13":0.09435,"14":0.6771,_:"0 5 6 7 8 9 10 11 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1","14.1":5.21145},B:{"17":0.2886,"89":0.09435,"92":0.09435,"93":1.06005,_:"12 13 14 15 16 18 79 80 81 83 84 85 86 87 88 90 91 94"},P:{"4":1.04907,"5.0-5.4":0.0104,"6.2-6.4":0.0308,"7.2-7.4":0.05298,"8.2":0.0104,"9.2":0.04161,"10.1":0.04161,"11.1-11.2":0.08477,"12.0":0.06241,"13.0":0.63755,"14.0":0.10626,"15.0":5.36604},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":27.25785},S:{"2.5":0},R:{_:"0"},M:{"0":0},Q:{"10.4":0},O:{"0":0.4272},H:{"0":0}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js deleted file mode 100644 index 644be48ee56cf6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/WS.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"44":0.00943,"52":0.01414,"66":0.00471,"74":0.00471,"78":0.0377,"88":0.13196,"89":0.00471,"90":0.02357,"91":0.4713,"92":0.75879,"93":0.01414,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 45 46 47 48 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 67 68 69 70 71 72 73 75 76 77 79 80 81 82 83 84 85 86 87 94 3.5 3.6"},D:{"49":0.00471,"50":0.02357,"64":0.57027,"65":0.03299,"68":0.00471,"69":0.01885,"70":0.01414,"72":0.00943,"73":0.02357,"75":0.01885,"79":0.01885,"80":0.02357,"81":0.04242,"84":0.02828,"85":0.01414,"86":0.01414,"87":0.00943,"88":0.01414,"89":0.05184,"90":0.02828,"91":0.11311,"92":3.04931,"93":20.76548,"94":2.76653,"95":0.02357,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 51 52 53 54 55 56 57 58 59 60 61 62 63 66 67 71 74 76 77 78 83 96 97"},F:{"77":0.00471,"78":0.05656,"79":0.01414,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.14729,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0.01513,"10.0-10.2":0.00597,"10.3":0.03025,"11.0-11.2":0.05812,"11.3-11.4":0.00756,"12.0-12.1":0.01831,"12.2-12.5":0.46057,"13.0-13.1":0.10947,"13.2":0.17316,"13.3":0.082,"13.4-13.7":0.32562,"14.0-14.4":0.87854,"14.5-14.8":1.66911},E:{"4":0,"11":0.07541,"13":0.03299,"14":0.11311,_:"0 5 6 7 8 9 10 12 15 3.1 3.2 5.1 6.1 7.1 9.1 10.1 12.1","11.1":0.00471,"13.1":0.20737,"14.1":0.66453},B:{"12":0.0377,"13":0.02828,"14":0.01414,"15":0.04242,"16":0.06598,"17":0.08012,"18":0.42417,"80":0.02357,"84":0.01414,"85":0.02828,"86":0.03299,"89":0.08012,"90":0.03299,"91":0.04713,"92":0.48544,"93":1.99831,"94":0.38175,_:"79 81 83 87 88"},P:{"4":0.11271,"5.0-5.4":0.01025,"6.2-6.4":0.02411,"7.2-7.4":0.75824,"8.2":0.08197,"9.2":0.08197,"10.1":0.8812,"11.1-11.2":0.4406,"12.0":0.30739,"13.0":0.19468,"14.0":1.25007,"15.0":0.51232},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.0312,"4.4":0,"4.4.3-4.4.4":0.00581},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.56943,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.15172},L:{"0":52.84793},S:{"2.5":0.03701},R:{_:"0"},M:{"0":0.03701},Q:{"10.4":0.07402},O:{"0":1.90861},H:{"0":0.49053}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js deleted file mode 100644 index 3fdea31b9844a1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YE.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"3":0.05866,"24":0.00489,"38":0.00489,"40":0.00733,"43":0.00489,"44":0.00244,"46":0.00244,"47":0.00244,"48":0.00733,"50":0.00489,"52":0.02688,"54":0.00244,"56":0.00489,"57":0.01466,"59":0.00978,"60":0.00489,"61":0.00733,"62":0.00978,"66":0.00244,"68":0.23218,"69":0.00978,"70":0.00489,"72":0.01222,"74":0.00244,"77":0.00489,"78":0.01222,"79":0.00489,"83":0.00489,"84":0.00244,"85":0.00978,"86":0.00489,"87":0.00489,"88":0.01222,"89":0.02688,"90":0.03177,"91":0.4668,"92":0.97271,"93":0.01466,_:"2 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 41 42 45 49 51 53 55 58 63 64 65 67 71 73 75 76 80 81 82 94 3.5 3.6"},D:{"37":0.01955,"40":0.01222,"43":0.00489,"48":0.00489,"49":0.01711,"50":0.00244,"51":0.00244,"52":0.00489,"53":0.00489,"54":0.00733,"55":0.00733,"56":0.00978,"57":0.01222,"60":0.01466,"61":0.00489,"62":0.00489,"63":0.00978,"64":0.00733,"65":0.00733,"66":0.01466,"67":0.00978,"68":0.00489,"69":0.01222,"70":0.02444,"71":0.01222,"72":0.00733,"73":0.00733,"74":0.01955,"75":0.01222,"76":0.01711,"77":0.00489,"78":0.0391,"79":0.07332,"80":0.02933,"81":0.03177,"83":0.03422,"84":0.03422,"85":0.022,"86":0.08798,"87":0.08554,"88":0.05621,"89":0.10754,"90":0.07332,"91":0.32505,"92":1.90876,"93":6.38128,"94":1.32465,"95":0.00244,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 38 39 41 42 44 45 46 47 58 59 96 97"},F:{"64":0.01466,"65":0.00733,"77":0.00244,"78":0.09532,"79":0.05866,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.0341,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.0066,"5.0-5.1":0.00041,"6.0-6.1":0.0011,"7.0-7.1":0.01774,"8.1-8.4":0.00399,"9.0-9.2":0.00371,"9.3":0.01595,"10.0-10.2":0.00509,"10.3":0.0187,"11.0-11.2":0.0187,"11.3-11.4":0.03946,"12.0-12.1":0.03616,"12.2-12.5":0.22565,"13.0-13.1":0.0088,"13.2":0.00454,"13.3":0.04098,"13.4-13.7":0.06449,"14.0-14.4":0.29027,"14.5-14.8":0.53875},E:{"4":0,"7":0.00244,"14":0.01466,"15":0.00244,_:"0 5 6 8 9 10 11 12 13 3.1 3.2 6.1 7.1 9.1 10.1 11.1 12.1","5.1":0.04155,"13.1":0.00489,"14.1":0.03177},B:{"13":0.00489,"15":0.00244,"16":0.00489,"18":0.01711,"84":0.01222,"85":0.01711,"86":0.00244,"89":0.01711,"90":0.00489,"91":0.01222,"92":0.13442,"93":0.5279,"94":0.12953,_:"12 14 17 79 80 81 83 87 88"},P:{"4":0.30414,"5.0-5.4":0.0811,"6.2-6.4":0.01014,"7.2-7.4":0.15207,"8.2":0.02028,"9.2":0.23317,"10.1":0.07097,"11.1-11.2":0.27372,"12.0":0.09124,"13.0":0.47648,"14.0":0.71979,"15.0":1.6018},I:{"0":0,"3":0,"4":0.0006,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00874,"4.2-4.3":0.00965,"4.4":0,"4.4.3-4.4.4":0.1019},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":1.4273,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":64.44463},S:{"2.5":0},R:{_:"0"},M:{"0":0.52892},Q:{"10.4":0},O:{"0":5.27409},H:{"0":7.66143}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js deleted file mode 100644 index ec611355559b5f..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/YT.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"47":0.01776,"60":0.13022,"66":0.07695,"68":0.06511,"69":0.01184,"70":0.00592,"72":0.08879,"73":0.01776,"74":0.01184,"78":1.47383,"81":0.03551,"82":0.01776,"83":0.01184,"84":0.01184,"85":0.03551,"86":0.00592,"87":0.0296,"88":0.03551,"89":0.20125,"90":0.03551,"91":2.52149,"92":4.55763,"93":0.00592,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 49 50 51 52 53 54 55 56 57 58 59 61 62 63 64 65 67 71 75 76 77 79 80 94 3.5 3.6"},D:{"47":0.01776,"49":0.01776,"63":0.01776,"67":0.03551,"74":0.01184,"76":0.01184,"77":0.03551,"81":0.01776,"83":0.0296,"85":0.00592,"86":0.01184,"87":0.18941,"88":0.05327,"89":0.0947,"90":0.07695,"91":0.17757,"92":6.03738,"93":22.23768,"94":2.85296,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 48 50 51 52 53 54 55 56 57 58 59 60 61 62 64 65 66 68 69 70 71 72 73 75 78 79 80 84 95 96 97"},F:{"46":0.01184,"76":0.01184,"77":0.17165,"78":0.30779,"79":0.05327,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.77583,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0.02495,"8.1-8.4":0.01368,"9.0-9.2":0,"9.3":0.0169,"10.0-10.2":0.00241,"10.3":0.05795,"11.0-11.2":0.16498,"11.3-11.4":0.00241,"12.0-12.1":0,"12.2-12.5":0.28329,"13.0-13.1":0.02173,"13.2":0.00241,"13.3":0.02736,"13.4-13.7":0.17867,"14.0-14.4":0.69294,"14.5-14.8":5.7801},E:{"4":0,"14":0.53863,"15":0.23676,_:"0 5 6 7 8 9 10 11 12 13 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.00592,"11.1":0.01184,"12.1":0.2486,"13.1":0.3433,"14.1":3.03645},B:{"15":0.01184,"16":0.03551,"17":0.07695,"18":0.08287,"83":0.01184,"85":0.01776,"88":0.0296,"89":0.02368,"90":0.01776,"91":0.07695,"92":1.4324,"93":6.77726,"94":1.32586,_:"12 13 14 79 80 81 84 86 87"},P:{"4":0.02062,"5.0-5.4":0.09049,"6.2-6.4":0.08044,"7.2-7.4":0.07218,"8.2":0.02011,"9.2":0.01031,"10.1":0.03105,"11.1-11.2":0.11343,"12.0":0.03094,"13.0":0.04125,"14.0":0.22686,"15.0":3.99072},I:{"0":0,"3":0,"4":0.00029,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0.00019,"4.4":0,"4.4.3-4.4.4":0.00768},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"11":0.35514,_:"6 7 8 9 10 5.5"},J:{"7":0,"10":0},N:{"10":0.01251,"11":0.15172},L:{"0":28.542},S:{"2.5":0},R:{_:"0"},M:{"0":0.23267},Q:{"10.4":0},O:{"0":0.04898},H:{"0":1.55356}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js deleted file mode 100644 index 0c843198cf9a88..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZA.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.0115,"41":0.0023,"52":0.0345,"60":0.0092,"72":0.0023,"78":0.0184,"84":0.1426,"87":0.0023,"88":0.0092,"89":0.0138,"90":0.0207,"91":0.3105,"92":0.575,"93":0.0138,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 66 67 68 69 70 71 73 74 75 76 77 79 80 81 82 83 85 86 94 3.5 3.6"},D:{"11":0.0046,"28":0.0161,"38":0.0023,"40":0.0046,"41":0.0023,"49":0.0713,"50":0.0046,"55":0.0046,"56":0.0023,"58":0.0115,"63":0.0046,"64":0.0069,"65":0.0069,"67":0.0092,"69":0.0092,"70":0.023,"71":0.0046,"72":0.0092,"73":0.0023,"74":0.0138,"75":0.0069,"76":0.0069,"77":0.0046,"78":0.0092,"79":0.0414,"80":0.023,"81":0.0322,"83":0.0207,"84":0.0161,"85":0.0092,"86":0.023,"87":0.7981,"88":0.0345,"89":0.0345,"90":0.046,"91":0.1633,"92":2.553,"93":8.2432,"94":1.2052,"95":0.0115,"96":0.0023,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 36 37 39 42 43 44 45 46 47 48 51 52 53 54 57 59 60 61 62 66 68 97"},F:{"28":0.0069,"36":0.0023,"65":0.0023,"77":0.0115,"78":0.3289,"79":0.0805,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.40674,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00403,"6.0-6.1":0.00503,"7.0-7.1":0.01611,"8.1-8.4":0.00503,"9.0-9.2":0.00705,"9.3":0.11477,"10.0-10.2":0.01007,"10.3":0.08155,"11.0-11.2":0.02819,"11.3-11.4":0.03222,"12.0-12.1":0.02316,"12.2-12.5":0.72992,"13.0-13.1":0.0443,"13.2":0.01712,"13.3":0.08054,"13.4-13.7":0.26982,"14.0-14.4":0.91014,"14.5-14.8":7.2781},E:{"4":0,"12":0.0023,"13":0.0184,"14":0.1403,"15":0.0782,_:"0 5 6 7 8 9 10 11 3.1 3.2 5.1 6.1 7.1 9.1","10.1":0.0046,"11.1":0.0161,"12.1":0.0299,"13.1":0.1403,"14.1":0.8717},B:{"12":0.0138,"13":0.0092,"14":0.0069,"15":0.0115,"16":0.0184,"17":0.0207,"18":0.0897,"80":0.0046,"84":0.0115,"85":0.0069,"86":0.0046,"88":0.0046,"89":0.0138,"90":0.0069,"91":0.0253,"92":0.3818,"93":1.4628,"94":0.2944,_:"79 81 83 87"},P:{"4":0.38342,"5.0-5.4":0.08059,"6.2-6.4":0.02018,"7.2-7.4":0.6054,"8.2":0.01009,"9.2":0.09081,"10.1":0.06054,"11.1-11.2":0.35315,"12.0":0.25225,"13.0":0.51459,"14.0":1.24106,"15.0":5.39813},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00118,"4.2-4.3":0.00385,"4.4":0,"4.4.3-4.4.4":0.03347},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.00243,"11":0.43917,_:"6 7 8 10 5.5"},J:{"7":0,"10":0.0077},N:{"10":0.0242,"11":0.15172},L:{"0":56.2172},S:{"2.5":0},R:{_:"0"},M:{"0":0.4466},Q:{"10.4":0.0077},O:{"0":0.6237},H:{"0":3.8126}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js deleted file mode 100644 index da85c5504cf682..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZM.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.0029,"5":0.00579,"15":0.0029,"17":0.01158,"34":0.00869,"37":0.01448,"41":0.0029,"43":0.00579,"44":0.00579,"46":0.00579,"47":0.00869,"48":0.00869,"51":0.00579,"52":0.03185,"56":0.0029,"60":0.00579,"71":0.00579,"72":0.0029,"78":0.03185,"79":0.0029,"84":0.00869,"86":0.0029,"88":0.01737,"89":0.04343,"90":0.02606,"91":0.47768,"92":0.94956,"93":0.09843,_:"2 3 6 7 8 9 10 11 12 13 14 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 38 39 40 42 45 49 50 53 54 55 57 58 59 61 62 63 64 65 66 67 68 69 70 73 74 75 76 77 80 81 82 83 85 87 94 3.5 3.6"},D:{"11":0.00579,"40":0.00869,"42":0.0029,"43":0.0029,"49":0.01448,"50":0.00869,"51":0.00869,"55":0.01158,"57":0.01158,"60":0.01158,"63":0.01158,"64":0.0029,"65":0.0029,"67":0.00579,"68":0.01737,"69":0.00579,"70":0.00579,"71":0.02027,"72":0.0029,"73":0.01158,"74":0.01448,"75":0.00869,"76":0.00869,"77":0.01737,"78":0.01737,"79":0.08975,"80":0.03185,"81":0.05211,"83":0.02027,"84":0.02316,"85":0.01448,"86":0.07817,"87":0.09264,"88":0.09554,"89":0.0579,"90":0.08396,"91":0.2316,"92":2.46365,"93":6.94221,"94":1.01036,"95":0.00579,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 41 44 45 46 47 48 52 53 54 56 58 59 61 62 66 96 97"},F:{"36":0.01737,"42":0.00869,"62":0.0029,"64":0.01158,"65":0.01737,"74":0.00579,"75":0.0029,"76":0.01158,"77":0.08106,"78":1.26801,"79":0.39083,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 63 66 67 68 69 70 71 72 73 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.10885,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00273,"5.0-5.1":0.00312,"6.0-6.1":0.00897,"7.0-7.1":0.02302,"8.1-8.4":0.00117,"9.0-9.2":0.00351,"9.3":0.15216,"10.0-10.2":0.01014,"10.3":0.11158,"11.0-11.2":0.07452,"11.3-11.4":0.08505,"12.0-12.1":0.02575,"12.2-12.5":0.89577,"13.0-13.1":0.01248,"13.2":0.02068,"13.3":0.05852,"13.4-13.7":0.09598,"14.0-14.4":0.68977,"14.5-14.8":1.51687},E:{"4":0,"13":0.00869,"14":0.04343,"15":0.01737,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.02895,"11.1":0.00869,"12.1":0.00869,"13.1":0.07527,"14.1":0.27792},B:{"12":0.06948,"13":0.03474,"14":0.02316,"15":0.04053,"16":0.04343,"17":0.03764,"18":0.13607,"80":0.00869,"81":0.0029,"84":0.02027,"85":0.02027,"86":0.03474,"88":0.00579,"89":0.04343,"90":0.02316,"91":0.04343,"92":0.43425,"93":1.41566,"94":0.23739,_:"79 83 87"},P:{"4":0.41493,"5.0-5.4":0.11411,"6.2-6.4":0.01014,"7.2-7.4":0.14523,"8.2":0.02028,"9.2":0.05187,"10.1":0.02075,"11.1-11.2":0.13485,"12.0":0.03112,"13.0":0.19709,"14.0":0.66389,"15.0":0.81949},I:{"0":0,"3":0,"4":0.00169,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0019,"4.2-4.3":0.01457,"4.4":0,"4.4.3-4.4.4":0.12394},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01263,"10":0.01263,"11":0.29897,_:"6 7 9 5.5"},J:{"7":0,"10":0.02132},N:{"10":0.0242,"11":0.01881},L:{"0":50.12116},S:{"2.5":0.02842},R:{_:"0"},M:{"0":0.09237},Q:{"10.4":0.07105},O:{"0":2.52938},H:{"0":19.44647}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js deleted file mode 100644 index b40a6f43b4da83..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/ZW.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"40":0.02094,"41":0.00838,"43":0.00838,"44":0.00419,"45":0.02932,"47":0.01256,"48":0.01675,"49":0.00419,"52":0.04188,"53":0.00838,"57":0.03769,"59":0.01256,"60":0.00419,"61":0.00419,"64":0.01675,"66":0.00419,"68":0.00838,"69":0.00838,"70":0.00838,"72":0.02094,"78":0.03769,"80":0.00838,"81":0.00419,"82":0.00838,"83":0.00419,"84":0.00838,"85":0.00838,"86":0.00838,"87":0.02932,"88":0.06701,"89":0.10051,"90":0.07957,"91":0.95905,"92":1.86366,"93":0.1759,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 42 46 50 51 54 55 56 58 62 63 65 67 71 73 74 75 76 77 79 94 3.5 3.6"},D:{"11":0.00838,"29":0.00419,"37":0.02094,"40":0.01256,"49":0.02932,"50":0.00419,"53":0.01675,"57":0.01675,"58":0.02094,"60":0.00838,"61":0.00419,"62":0.00419,"63":0.02932,"64":0.00419,"65":0.01256,"66":0.00419,"67":0.00838,"68":0.00419,"69":0.02513,"70":0.02513,"71":0.01256,"72":0.01675,"73":0.00838,"74":0.05863,"75":0.04188,"76":0.0335,"77":0.01675,"78":0.04607,"79":0.05863,"80":0.0335,"81":0.04188,"83":0.04188,"84":0.01675,"85":0.0335,"86":0.06282,"87":0.06701,"88":0.05026,"89":0.0712,"90":0.14658,"91":0.4523,"92":4.02467,"93":14.11775,"94":2.01862,"95":0.02513,"96":0.00838,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 30 31 32 33 34 35 36 38 39 41 42 43 44 45 46 47 48 51 52 54 55 56 59 97"},F:{"36":0.00419,"42":0.00419,"64":0.00419,"65":0.00838,"67":0.00419,"75":0.00419,"76":0.01256,"77":0.12145,"78":1.37366,"79":0.43974,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 68 69 70 71 72 73 74 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.33467,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00324,"6.0-6.1":0.00865,"7.0-7.1":0.00865,"8.1-8.4":0.00162,"9.0-9.2":0.00487,"9.3":0.1157,"10.0-10.2":0.00162,"10.3":0.05569,"11.0-11.2":0.13192,"11.3-11.4":0.02271,"12.0-12.1":0.02055,"12.2-12.5":0.62609,"13.0-13.1":0.02433,"13.2":0.00703,"13.3":0.09083,"13.4-13.7":0.17301,"14.0-14.4":0.74341,"14.5-14.8":3.0315},E:{"4":0,"7":0.00838,"11":0.00419,"12":0.00419,"13":0.0712,"14":0.16752,"15":0.06282,_:"0 5 6 8 9 10 3.1 3.2 6.1 7.1","5.1":0.04188,"9.1":0.00419,"10.1":0.00419,"11.1":0.02094,"12.1":0.02513,"13.1":0.18008,"14.1":0.88367},B:{"12":0.08795,"13":0.0335,"14":0.02932,"15":0.06282,"16":0.05863,"17":0.05026,"18":0.22615,"80":0.00838,"83":0.00419,"84":0.02513,"85":0.02932,"87":0.00838,"89":0.06282,"90":0.02094,"91":0.14239,"92":0.61564,"93":2.39554,"94":0.49418,_:"79 81 86 88"},P:{"4":0.32302,"5.0-5.4":0.11411,"6.2-6.4":0.01042,"7.2-7.4":0.30218,"8.2":0.02028,"9.2":0.02084,"10.1":0.02084,"11.1-11.2":0.11462,"12.0":0.07294,"13.0":0.1563,"14.0":0.45848,"15.0":1.03158},I:{"0":0,"3":0,"4":0.00115,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00315,"4.2-4.3":0.0129,"4.4":0,"4.4.3-4.4.4":0.12813},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01013,"10":0.00506,"11":0.32404,_:"6 7 9 5.5"},J:{"7":0,"10":0.00581},N:{"10":0.0242,"11":0.01881},L:{"0":44.41632},S:{"2.5":0.00581},R:{_:"0"},M:{"0":0.24415},Q:{"10.4":0.06394},O:{"0":2.17406},H:{"0":10.06017}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js deleted file mode 100644 index 32c5d0c425fec1..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-af.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"2":0.09636,"15":0.09928,"18":0.09928,"21":0.09928,"23":0.09636,"25":0.19564,"30":0.09928,"34":0.00584,"43":0.00876,"47":0.00876,"48":0.00292,"51":0.09636,"52":0.06132,"56":0.00292,"60":0.00584,"68":0.00292,"72":0.00876,"78":0.04088,"80":0.00292,"81":0.00292,"82":0.00292,"83":0.00292,"84":0.04964,"85":0.00292,"86":0.00584,"87":0.00584,"88":0.01752,"89":0.04088,"90":0.02628,"91":1.3286,"92":3.26456,"93":0.03796,_:"3 4 5 6 7 8 9 10 11 12 13 14 16 17 19 20 22 24 26 27 28 29 31 32 33 35 36 37 38 39 40 41 42 44 45 46 49 50 53 54 55 57 58 59 61 62 63 64 65 66 67 69 70 71 73 74 75 76 77 79 94 3.5 3.6"},D:{"11":0.00292,"19":0.09928,"24":0.292,"26":0.00584,"28":0.00292,"30":0.09636,"33":0.1022,"34":0.00292,"35":0.19272,"38":0.00584,"40":0.00584,"43":0.0438,"47":0.00584,"49":0.1022,"50":0.00584,"51":0.00584,"53":0.00292,"54":0.09636,"55":0.1022,"56":0.4964,"57":0.00584,"58":0.00876,"60":0.00292,"61":0.0292,"62":0.00292,"63":0.0146,"64":0.00876,"65":0.00876,"66":0.00292,"67":0.00876,"68":0.00584,"69":0.0146,"70":0.0146,"71":0.00876,"72":0.00876,"73":0.00584,"74":0.01752,"75":0.0146,"76":0.0146,"77":0.01168,"78":0.01168,"79":0.06424,"80":0.02628,"81":0.03212,"83":0.02628,"84":0.0292,"85":0.02628,"86":0.05548,"87":0.44968,"88":0.04964,"89":0.05256,"90":0.06424,"91":0.2336,"92":2.51704,"93":8.57312,"94":1.3432,"95":0.01168,"96":0.00292,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 20 21 22 23 25 27 29 31 32 36 37 39 41 42 44 45 46 48 52 59 97"},F:{"28":0.00292,"36":0.00292,"43":0.09636,"64":0.00876,"65":0.00584,"70":0.00584,"71":0.00584,"72":0.00876,"73":0.00584,"74":0.00292,"75":0.00584,"76":0.00584,"77":0.03212,"78":0.49348,"79":0.146,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 40 41 42 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 66 67 68 69 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.09636},G:{"8":0,"15":0.2505,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00095,"5.0-5.1":0.00473,"6.0-6.1":1.80642,"7.0-7.1":0.02836,"8.1-8.4":0.00662,"9.0-9.2":0.00756,"9.3":0.09642,"10.0-10.2":0.26468,"10.3":0.13328,"11.0-11.2":0.09736,"11.3-11.4":0.05766,"12.0-12.1":0.05861,"12.2-12.5":1.1712,"13.0-13.1":0.03876,"13.2":0.01701,"13.3":0.10493,"13.4-13.7":0.30816,"14.0-14.4":1.33378,"14.5-14.8":3.66483},E:{"4":0,"5":0.09636,"12":0.00292,"13":0.03212,"14":0.09052,"15":0.03796,_:"0 6 7 8 9 10 11 3.1 3.2 6.1 7.1 9.1","5.1":0.01168,"10.1":0.00584,"11.1":0.01168,"12.1":0.02628,"13.1":0.07592,"14.1":0.37668},B:{"12":0.0146,"13":0.00584,"14":0.00584,"15":0.00876,"16":0.01168,"17":0.0146,"18":0.07008,"84":0.00876,"85":0.00584,"86":0.00292,"88":0.00584,"89":0.0146,"90":0.00584,"91":0.02044,"92":0.27156,"93":1.01908,"94":0.2044,_:"79 80 81 83 87"},P:{"4":0.32013,"5.0-5.4":0.11411,"6.2-6.4":0.01033,"7.2-7.4":0.25817,"8.2":0.02028,"9.2":0.06196,"10.1":0.02065,"11.1-11.2":0.19621,"12.0":0.10327,"13.0":0.24784,"14.0":0.56796,"15.0":1.95173},I:{"0":0,"3":0,"4":0.0017,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00766,"4.2-4.3":0.07747,"4.4":0,"4.4.3-4.4.4":0.33797},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.16428,"9":0.21388,"10":0.20768,"11":0.22008,_:"6 7 5.5"},J:{"7":0,"10":0.00708},N:{"10":0.0242,"11":0.01881},L:{"0":49.14832},S:{"2.5":0.02124},R:{_:"0"},M:{"0":0.22656},Q:{"10.4":0.01416},O:{"0":0.65844},H:{"0":9.47788}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js deleted file mode 100644 index 2fb094d7445b61..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-an.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"85":0.10658,"91":0.0522,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 86 87 88 89 90 92 93 94 3.5 3.6"},D:{"68":0.10658,"87":0.26318,"89":0.10658,"90":0.0522,"91":0.0522,"92":0.7395,"93":1.5834,"94":0.26318,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 78 79 80 81 83 84 85 86 88 95 96 97"},F:{_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":8.53162,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0,"6.0-6.1":0,"7.0-7.1":0,"8.1-8.4":0,"9.0-9.2":0,"9.3":0,"10.0-10.2":0,"10.3":0,"11.0-11.2":0,"11.3-11.4":0,"12.0-12.1":0,"12.2-12.5":0,"13.0-13.1":0,"13.2":0,"13.3":0,"13.4-13.7":0.04785,"14.0-14.4":1.98766,"14.5-14.8":3.10315},E:{"4":0,"15":13.88303,_:"0 5 6 7 8 9 10 11 12 13 14 3.1 3.2 5.1 6.1 7.1 9.1 10.1 11.1 12.1 13.1","14.1":0.58073},B:{"92":0.15878,_:"12 13 14 15 16 17 18 79 80 81 83 84 85 86 87 88 89 90 91 93 94"},P:{"4":0.16182,"5.0-5.4":0.11411,"6.2-6.4":0.01033,"7.2-7.4":0.81921,"8.2":0.02028,"9.2":0.16182,"10.1":0.02065,"11.1-11.2":0.16182,"12.0":0.10327,"13.0":0.24784,"14.0":0.16182,"15.0":1.04171},I:{"0":0,"3":0,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0,"4.2-4.3":0,"4.4":0,"4.4.3-4.4.4":0},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{_:"6 7 8 9 10 11 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":55.69495},S:{"2.5":0},R:{_:"0"},M:{"0":0.32865},Q:{"10.4":0},O:{"0":6.42433},H:{"0":1.49646}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js deleted file mode 100644 index 2c168fdbad0e49..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-as.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.0067,"36":0.0067,"43":0.08715,"47":0.0067,"48":0.0067,"52":0.06034,"55":0.00335,"56":0.01341,"60":0.00335,"66":0.00335,"68":0.00335,"72":0.01006,"78":0.03687,"79":0.0067,"80":0.0067,"81":0.0067,"82":0.0067,"83":0.0067,"84":0.01006,"85":0.00335,"86":0.00335,"87":0.0067,"88":0.01676,"89":0.02682,"90":0.02346,"91":0.46928,"92":0.93521,"93":0.04022,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 37 38 39 40 41 42 44 45 46 49 50 51 53 54 57 58 59 61 62 63 64 65 67 69 70 71 73 74 75 76 77 94 3.5 3.6"},D:{"11":0.00335,"22":0.01006,"26":0.0067,"34":0.01341,"35":0.00335,"38":0.03687,"42":0.0067,"43":0.00335,"45":0.00335,"47":0.01676,"48":0.0067,"49":0.12738,"50":0.00335,"51":0.0067,"53":0.02682,"55":0.01341,"56":0.01006,"57":0.01006,"58":0.01006,"59":0.0067,"60":0.00335,"61":0.06369,"62":0.01341,"63":0.02011,"64":0.01006,"65":0.01341,"66":0.01676,"67":0.01006,"68":0.01341,"69":0.08715,"70":0.05363,"71":0.02682,"72":0.04693,"73":0.01676,"74":0.07039,"75":0.03687,"76":0.01676,"77":0.01676,"78":0.03687,"79":0.1676,"80":0.05028,"81":0.04022,"83":0.06034,"84":0.06369,"85":0.05363,"86":0.08715,"87":0.25475,"88":0.06369,"89":0.08045,"90":0.09386,"91":0.31174,"92":4.45816,"93":14.48399,"94":2.20897,"95":0.01676,"96":0.00335,_:"4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 23 24 25 27 28 29 30 31 32 33 36 37 39 40 41 44 46 52 54 97"},F:{"28":0.00335,"36":0.01006,"40":0.0067,"46":0.01676,"77":0.01006,"78":0.33185,"79":0.0905,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 29 30 31 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00091,"15":0.38502,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00455,"5.0-5.1":0.0091,"6.0-6.1":0.0091,"7.0-7.1":0.03095,"8.1-8.4":0.01365,"9.0-9.2":0.02184,"9.3":0.09102,"10.0-10.2":0.04551,"10.3":0.1156,"11.0-11.2":0.11651,"11.3-11.4":0.04551,"12.0-12.1":0.06098,"12.2-12.5":0.60802,"13.0-13.1":0.04824,"13.2":0.02276,"13.3":0.10649,"13.4-13.7":0.33131,"14.0-14.4":1.17234,"14.5-14.8":5.8617},E:{"4":0,"11":0.00335,"12":0.0067,"13":0.04358,"14":0.21118,"15":0.08715,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.02011,"10.1":0.0067,"11.1":0.01676,"12.1":0.02682,"13.1":0.13408,"14.1":1.21007},B:{"12":0.0067,"13":0.00335,"14":0.00335,"15":0.00335,"16":0.0067,"17":0.01006,"18":0.03687,"84":0.01006,"85":0.0067,"86":0.0067,"87":0.00335,"89":0.01341,"90":0.0067,"91":0.01676,"92":0.33185,"93":1.53857,"94":0.30838,_:"79 80 81 83 88"},P:{"4":0.38143,"5.0-5.4":0.11411,"6.2-6.4":0.01031,"7.2-7.4":0.1134,"8.2":0.02028,"9.2":0.05154,"10.1":0.02062,"11.1-11.2":0.13402,"12.0":0.07216,"13.0":0.21649,"14.0":0.45359,"15.0":1.59788},I:{"0":0,"3":0.03089,"4":0,"2.1":0,"2.2":0,"2.3":0,"4.1":0.0206,"4.2-4.3":0.08238,"4.4":0,"4.4.3-4.4.4":0.39132},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.056,"9":0.04,"10":0.008,"11":1.09601,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":50.56187},S:{"2.5":0.21938},R:{_:"0"},M:{"0":0.17285},Q:{"10.4":0.39888},O:{"0":2.20049},H:{"0":1.32172}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js deleted file mode 100644 index 26093f139e9607..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-eu.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"45":0.01055,"48":0.01055,"50":0.00527,"52":0.13712,"55":0.00527,"56":0.01055,"59":0.01055,"60":0.01582,"63":0.00527,"65":0.01055,"66":0.01055,"68":0.02637,"69":0.00527,"70":0.00527,"71":0.00527,"72":0.01582,"74":0.00527,"77":0.01055,"78":0.25315,"79":0.02637,"80":0.0211,"81":0.03164,"82":0.02637,"83":0.0211,"84":0.03692,"85":0.01055,"86":0.01582,"87":0.0211,"88":0.05801,"89":0.08966,"90":0.10021,"91":1.51364,"92":3.44392,"93":0.0211,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 46 47 49 51 53 54 57 58 61 62 64 67 73 75 76 94 3.5 3.6"},D:{"4":0.00527,"22":0.01582,"34":0.00527,"35":0.00527,"37":0.00527,"38":0.0211,"39":0.00527,"40":0.04219,"41":0.00527,"42":0.00527,"43":0.01582,"44":0.00527,"45":0.01055,"46":0.00527,"47":0.01582,"48":0.01582,"49":0.30589,"50":0.00527,"51":0.01582,"52":0.0211,"53":0.01582,"54":0.0211,"55":0.00527,"56":0.01582,"57":0.01055,"58":0.01055,"59":0.01055,"60":0.03692,"61":0.15822,"62":0.01582,"63":0.0211,"64":0.03164,"65":0.04747,"66":0.04219,"67":0.0211,"68":0.01582,"69":0.08966,"70":0.03692,"71":0.0211,"72":0.04219,"73":0.01582,"74":0.07384,"75":0.19514,"76":0.03692,"77":0.02637,"78":0.07911,"79":0.24788,"80":0.12658,"81":0.08438,"83":0.14767,"84":0.18986,"85":0.59069,"86":0.22151,"87":0.59596,"88":0.1213,"89":0.11603,"90":0.16877,"91":0.59596,"92":5.02085,"93":18.45373,"94":3.62851,"95":0.01055,_:"5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 27 28 29 30 31 32 33 36 96 97"},F:{"31":0.0211,"36":0.01055,"40":0.0211,"46":0.00527,"68":0.01582,"70":0.01055,"71":0.01055,"72":0.00527,"76":0.00527,"77":0.03692,"78":1.69295,"79":0.39555,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 9.5-9.6 10.5 10.6 11.1 11.5 11.6","10.0-10.1":0,"12.1":0.00527},G:{"8":0.00141,"15":0.72814,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00848,"6.0-6.1":0.00566,"7.0-7.1":0.01979,"8.1-8.4":0.01131,"9.0-9.2":0.01838,"9.3":0.14563,"10.0-10.2":0.01414,"10.3":0.13856,"11.0-11.2":0.03393,"11.3-11.4":0.04949,"12.0-12.1":0.03535,"12.2-12.5":0.69845,"13.0-13.1":0.0311,"13.2":0.01555,"13.3":0.0919,"13.4-13.7":0.30964,"14.0-14.4":1.09009,"14.5-14.8":10.69021},E:{"4":0,"11":0.01055,"12":0.01055,"13":0.09493,"14":0.62233,"15":0.29534,_:"0 5 6 7 8 9 10 3.1 3.2 6.1 7.1 9.1","5.1":0.01055,"10.1":0.01582,"11.1":0.06856,"12.1":0.09493,"13.1":0.40082,"14.1":3.1644},B:{"12":0.01055,"14":0.00527,"15":0.01055,"16":0.01055,"17":0.0211,"18":0.11603,"83":0.00527,"84":0.01582,"85":0.01582,"86":0.01582,"87":0.01055,"88":0.01055,"89":0.02637,"90":0.0211,"91":0.04747,"92":0.67507,"93":3.27515,"94":0.79637,_:"13 79 80 81"},P:{"4":0.14806,"5.0-5.4":0.11411,"6.2-6.4":0.01031,"7.2-7.4":0.03173,"8.2":0.02028,"9.2":0.03173,"10.1":0.01058,"11.1-11.2":0.13748,"12.0":0.05288,"13.0":0.16921,"14.0":0.4336,"15.0":2.80254},I:{"0":0,"3":0,"4":0.005,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00562,"4.2-4.3":0.01,"4.4":0,"4.4.3-4.4.4":0.05498},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01769,"9":0.01769,"10":0.0118,"11":0.50131,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":28.74771},S:{"2.5":0},R:{_:"0"},M:{"0":0.36855},Q:{"10.4":0.00945},O:{"0":0.17483},H:{"0":0.44733}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js deleted file mode 100644 index 88dfb3ce2e7605..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-na.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"4":0.0812,"11":0.0203,"38":0.00508,"43":0.00508,"44":0.0203,"45":0.00508,"48":0.01523,"52":0.0406,"54":0.02538,"55":0.01015,"56":0.00508,"58":0.01015,"59":0.00508,"63":0.01523,"68":0.00508,"70":0.00508,"72":0.00508,"76":0.01015,"77":0.00508,"78":0.1624,"79":0.01523,"80":0.01523,"81":0.01523,"82":0.01523,"83":0.01015,"84":0.01015,"85":0.01015,"86":0.01015,"87":0.01015,"88":0.0203,"89":0.0406,"90":0.05075,"91":0.82215,"92":1.53773,"93":0.01015,_:"2 3 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 46 47 49 50 51 53 57 60 61 62 64 65 66 67 69 71 73 74 75 94 3.5 3.6"},D:{"35":0.01015,"38":0.01015,"40":0.0203,"43":0.00508,"46":0.00508,"47":0.01015,"48":0.05075,"49":0.203,"52":0.01015,"53":0.00508,"56":0.08628,"58":0.00508,"59":0.01015,"60":0.0203,"61":0.07105,"62":0.00508,"63":0.01523,"64":0.05075,"65":0.0203,"66":0.02538,"67":0.02538,"68":0.00508,"69":0.0203,"70":0.06598,"71":0.01015,"72":0.0609,"73":0.01015,"74":0.1218,"75":0.10658,"76":0.1624,"77":0.0406,"78":0.07105,"79":0.2639,"80":0.13195,"81":0.0812,"83":0.17255,"84":0.25883,"85":0.2436,"86":0.25375,"87":0.49735,"88":0.22838,"89":0.4669,"90":0.43138,"91":1.015,"92":6.97305,"93":15.9355,"94":2.22793,"95":0.02538,"96":0.03553,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 36 37 39 41 42 44 45 50 51 54 55 57 97"},F:{"68":0.00508,"70":0.00508,"71":0.01015,"72":0.00508,"77":0.01015,"78":0.45168,"79":0.09135,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0,"15":0.95102,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00484,"6.0-6.1":0.0121,"7.0-7.1":0.01694,"8.1-8.4":0.01694,"9.0-9.2":0.01452,"9.3":0.13793,"10.0-10.2":0.02178,"10.3":0.15003,"11.0-11.2":0.06776,"11.3-11.4":0.07018,"12.0-12.1":0.06776,"12.2-12.5":0.79372,"13.0-13.1":0.0605,"13.2":0.03146,"13.3":0.16455,"13.4-13.7":0.54447,"14.0-14.4":1.95285,"14.5-14.8":19.11226},E:{"4":0,"8":0.00508,"9":0.01015,"11":0.01015,"12":0.0203,"13":0.10658,"14":0.74095,"15":0.33495,_:"0 5 6 7 10 3.1 3.2 6.1 7.1","5.1":0.00508,"9.1":0.07105,"10.1":0.03553,"11.1":0.09643,"12.1":0.15733,"13.1":1.48698,"14.1":4.92783},B:{"12":0.00508,"14":0.01015,"15":0.01015,"16":0.00508,"17":0.02538,"18":0.15733,"84":0.01523,"85":0.01523,"86":0.01015,"87":0.03045,"88":0.01015,"89":0.0203,"90":0.01015,"91":0.0406,"92":0.94903,"93":3.92805,"94":0.7308,_:"13 79 80 81 83"},P:{"4":0.06498,"5.0-5.4":0.11411,"6.2-6.4":0.01031,"7.2-7.4":0.03173,"8.2":0.02028,"9.2":0.01083,"10.1":0.01058,"11.1-11.2":0.05415,"12.0":0.02166,"13.0":0.09747,"14.0":0.27076,"15.0":1.71117},I:{"0":0,"3":0,"4":0.0081,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00221,"4.2-4.3":0.01693,"4.4":0,"4.4.3-4.4.4":0.0368},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.01715,"9":0.24587,"11":0.59465,_:"6 7 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":22.56708},S:{"2.5":0},R:{_:"0"},M:{"0":0.40385},Q:{"10.4":0.01478},O:{"0":0.19208},H:{"0":0.21915}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js deleted file mode 100644 index de725b10289802..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-oc.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"34":0.00552,"48":0.01105,"52":0.03867,"68":0.00552,"78":0.11048,"81":0.01105,"82":0.01105,"84":0.0221,"85":0.01105,"86":0.01105,"87":0.01105,"88":0.04972,"89":0.03867,"90":0.05524,"91":0.91146,"92":1.72349,"93":0.01105,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47 49 50 51 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 76 77 79 80 83 94 3.5 3.6"},D:{"20":0.00552,"26":0.01105,"34":0.02762,"38":0.12153,"49":0.25963,"53":0.04419,"55":0.01105,"56":0.01105,"57":0.01105,"58":0.00552,"59":0.01105,"60":0.0221,"61":0.0221,"63":0.01105,"64":0.02762,"65":0.04419,"66":0.01657,"67":0.03867,"68":0.01657,"69":0.03867,"70":0.04419,"71":0.01657,"72":0.03867,"73":0.02762,"74":0.03314,"75":0.03314,"76":0.03314,"77":0.01657,"78":0.02762,"79":0.33144,"80":0.08838,"81":0.03867,"83":0.04419,"84":0.03867,"85":0.04419,"86":0.09391,"87":0.36458,"88":0.09943,"89":0.13258,"90":0.23201,"91":0.95565,"92":8.04294,"93":20.15708,"94":2.88353,"95":0.01105,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 21 22 23 24 25 27 28 29 30 31 32 33 35 36 37 39 40 41 42 43 44 45 46 47 48 50 51 52 54 62 96 97"},F:{"36":0.00552,"46":0.06629,"75":0.01105,"77":0.01105,"78":0.39773,"79":0.07181,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00214,"15":0.70567,"3.2":0,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.01716,"6.0-6.1":0.03003,"7.0-7.1":0.02788,"8.1-8.4":0.05362,"9.0-9.2":0.02359,"9.3":0.32173,"10.0-10.2":0.03217,"10.3":0.34962,"11.0-11.2":0.10724,"11.3-11.4":0.11797,"12.0-12.1":0.10081,"12.2-12.5":1.51001,"13.0-13.1":0.04933,"13.2":0.02574,"13.3":0.16516,"13.4-13.7":0.51478,"14.0-14.4":1.56363,"14.5-14.8":15.73069},E:{"4":0,"11":0.0221,"12":0.0221,"13":0.17124,"14":0.96118,"15":0.37011,_:"0 5 6 7 8 9 10 3.1 3.2 5.1 6.1 7.1","9.1":0.01657,"10.1":0.04419,"11.1":0.11048,"12.1":0.19334,"13.1":0.76784,"14.1":6.58461},B:{"17":0.01105,"18":0.12153,"84":0.01105,"85":0.00552,"86":0.01105,"87":0.01105,"88":0.01105,"89":0.0221,"90":0.01105,"91":0.03867,"92":0.88384,"93":3.57955,"94":0.65183,_:"12 13 14 15 16 79 80 81 83"},P:{"4":0.62291,"5.0-5.4":0.11411,"6.2-6.4":0.01031,"7.2-7.4":0.02186,"8.2":0.02028,"9.2":0.02186,"10.1":0.01093,"11.1-11.2":0.06557,"12.0":0.04371,"13.0":0.16392,"14.0":0.39342,"15.0":2.39329},I:{"0":0,"3":0,"4":0.00116,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00173,"4.2-4.3":0.00462,"4.4":0,"4.4.3-4.4.4":0.0283},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"9":0.01187,"11":0.86645,_:"6 7 8 10 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":19.21933},S:{"2.5":0},R:{_:"0"},M:{"0":0.39389},Q:{"10.4":0.03133},O:{"0":0.18352},H:{"0":0.18645}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js deleted file mode 100644 index df064fc93c891c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-sa.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"17":0.0049,"52":0.05874,"60":0.00979,"66":0.0049,"68":0.00979,"72":0.00979,"73":0.0049,"78":0.05874,"79":0.00979,"80":0.0049,"81":0.00979,"82":0.00979,"83":0.0049,"84":0.01958,"85":0.0049,"86":0.0049,"87":0.0049,"88":0.03427,"89":0.02937,"90":0.03427,"91":0.58251,"92":1.19928,"93":0.00979,_:"2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 53 54 55 56 57 58 59 61 62 63 64 65 67 69 70 71 74 75 76 77 94 3.5 3.6"},D:{"24":0.0049,"38":0.01958,"47":0.00979,"49":0.19091,"53":0.0049,"55":0.00979,"58":0.00979,"61":0.0979,"63":0.01958,"64":0.0049,"65":0.00979,"66":0.01469,"67":0.00979,"68":0.0049,"69":0.01469,"70":0.01469,"71":0.00979,"72":0.00979,"73":0.00979,"74":0.01958,"75":0.03916,"76":0.02448,"77":0.01469,"78":0.01958,"79":0.12727,"80":0.04406,"81":0.05385,"83":0.04895,"84":0.06853,"85":0.06853,"86":0.1028,"87":0.42097,"88":0.05874,"89":0.09301,"90":0.11259,"91":1.02306,"92":6.67189,"93":24.73444,"94":4.67473,"95":0.02448,"96":0.0049,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 27 28 29 30 31 32 33 34 35 36 37 39 40 41 42 43 44 45 46 48 50 51 52 54 56 57 59 60 62 97"},F:{"36":0.0049,"77":0.01958,"78":2.12443,"79":0.2937,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0},G:{"8":0.00048,"15":0.24757,"3.2":0.00095,"4.0-4.1":0,"4.2-4.3":0,"5.0-5.1":0.00998,"6.0-6.1":0.00428,"7.0-7.1":0.0057,"8.1-8.4":0.00285,"9.0-9.2":0.00238,"9.3":0.03992,"10.0-10.2":0.0038,"10.3":0.03374,"11.0-11.2":0.00903,"11.3-11.4":0.01901,"12.0-12.1":0.0114,"12.2-12.5":0.27941,"13.0-13.1":0.01045,"13.2":0.00475,"13.3":0.03326,"13.4-13.7":0.13163,"14.0-14.4":0.35734,"14.5-14.8":3.54391},E:{"4":0,"13":0.02448,"14":0.10769,"15":0.07343,_:"0 5 6 7 8 9 10 11 12 3.1 3.2 6.1 7.1 9.1 10.1","5.1":0.00979,"11.1":0.01469,"12.1":0.01958,"13.1":0.1028,"14.1":0.56782},B:{"15":0.0049,"16":0.0049,"17":0.00979,"18":0.05385,"84":0.00979,"85":0.0049,"89":0.01469,"90":0.0049,"91":0.01469,"92":0.3965,"93":1.79157,"94":0.41118,_:"12 13 14 79 80 81 83 86 87 88"},P:{"4":0.14717,_:"5.0-5.4 6.2-6.4 8.2 10.1","7.2-7.4":0.18922,"9.2":0.02102,"11.1-11.2":0.13666,"12.0":0.03154,"13.0":0.15768,"14.0":0.32587,"15.0":1.46118},I:{"0":0,"3":0,"4":0.00084,"2.1":0,"2.2":0,"2.3":0,"4.1":0.00337,"4.2-4.3":0.00591,"4.4":0,"4.4.3-4.4.4":0.04092},A:{"8":0.01579,"9":0.01052,"10":0.00526,"11":0.17891,_:"6 7 5.5"},K:{_:"0 10 11 12 11.1 11.5 12.1"},J:{"7":0,"10":0},N:{_:"10 11"},Q:{"10.4":0},O:{"0":0.08166},H:{"0":0.18362},L:{"0":44.40204},S:{"2.5":0},R:{_:"0"},M:{"0":0.1327}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js b/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js deleted file mode 100644 index 9e862a91261bec..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/data/regions/alt-ww.js +++ /dev/null @@ -1 +0,0 @@ -module.exports={C:{"2":0.00429,"4":0.02147,"11":0.00859,"15":0.00429,"18":0.00429,"21":0.00429,"23":0.00429,"25":0.00859,"30":0.00429,"43":0.03864,"44":0.00429,"45":0.00429,"47":0.00429,"48":0.00859,"51":0.00859,"52":0.07298,"54":0.00859,"55":0.00429,"56":0.00859,"58":0.00429,"59":0.00429,"60":0.00859,"63":0.00859,"66":0.00429,"68":0.01288,"70":0.00429,"72":0.00859,"77":0.00429,"78":0.15026,"79":0.01288,"80":0.01288,"81":0.01288,"82":0.01288,"83":0.00859,"84":0.01717,"85":0.00859,"86":0.00859,"87":0.01288,"88":0.03005,"89":0.04722,"90":0.04722,"91":0.84143,"92":1.77301,"93":0.02576,_:"3 5 6 7 8 9 10 12 13 14 16 17 19 20 22 24 26 27 28 29 31 32 33 34 35 36 37 38 39 40 41 42 46 49 50 53 57 61 62 64 65 67 69 71 73 74 75 76 94 3.5 3.6"},D:{"19":0.00429,"22":0.00859,"24":0.01717,"30":0.00429,"33":0.00859,"34":0.00859,"35":0.01717,"38":0.02576,"40":0.01288,"42":0.00429,"43":0.00859,"47":0.01288,"48":0.02147,"49":0.18889,"50":0.00429,"51":0.00859,"52":0.00859,"53":0.01717,"54":0.01288,"55":0.01288,"56":0.05581,"57":0.00859,"58":0.00859,"59":0.00859,"60":0.01288,"61":0.08586,"62":0.01288,"63":0.01717,"64":0.02147,"65":0.02576,"66":0.02576,"67":0.01717,"68":0.01288,"69":0.06869,"70":0.05152,"71":0.02147,"72":0.04722,"73":0.01288,"74":0.07727,"75":0.09015,"76":0.0601,"77":0.02576,"78":0.05152,"79":0.20606,"80":0.08586,"81":0.0601,"83":0.10303,"84":0.13738,"85":0.21894,"86":0.15455,"87":0.40784,"88":0.11591,"89":0.1846,"90":0.19748,"91":0.58814,"92":5.26751,"93":15.96996,"94":2.60156,"95":0.01717,"96":0.01288,_:"4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 20 21 23 25 26 27 28 29 31 32 36 37 39 41 44 45 46 97"},F:{"31":0.00429,"36":0.00859,"40":0.00859,"43":0.00429,"46":0.00859,"68":0.00429,"70":0.00429,"71":0.00429,"77":0.01717,"78":0.75986,"79":0.17172,_:"9 11 12 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 32 33 34 35 37 38 39 41 42 44 45 47 48 49 50 51 52 53 54 55 56 57 58 60 62 63 64 65 66 67 69 72 73 74 75 76 9.5-9.6 10.5 10.6 11.1 11.5 11.6 12.1","10.0-10.1":0.00429},G:{"8":0,"15":0.58647,"3.2":0,"4.0-4.1":0,"4.2-4.3":0.00277,"5.0-5.1":0.0083,"6.0-6.1":0.09682,"7.0-7.1":0.0249,"8.1-8.4":0.01383,"9.0-9.2":0.01798,"9.3":0.11619,"10.0-10.2":0.04288,"10.3":0.1314,"11.0-11.2":0.08299,"11.3-11.4":0.05394,"12.0-12.1":0.05671,"12.2-12.5":0.70957,"13.0-13.1":0.04426,"13.2":0.02213,"13.3":0.11619,"13.4-13.7":0.37484,"14.0-14.4":1.32924,"14.5-14.8":9.99906},E:{"4":0,"5":0.00429,"11":0.00429,"12":0.00859,"13":0.07298,"14":0.43789,"15":0.19748,_:"0 6 7 8 9 10 3.1 3.2 6.1 7.1","5.1":0.01288,"9.1":0.02147,"10.1":0.01717,"11.1":0.04722,"12.1":0.07727,"13.1":0.53663,"14.1":2.58868},B:{"12":0.00859,"14":0.00429,"15":0.00859,"16":0.00859,"17":0.01717,"18":0.09015,"84":0.01288,"85":0.00859,"86":0.00859,"87":0.01288,"88":0.00429,"89":0.01717,"90":0.00859,"91":0.03005,"92":0.57097,"93":2.53287,"94":0.52375,_:"13 79 80 81 83"},P:{"4":0.2416,"5.0-5.4":0.11411,"6.2-6.4":0.01042,"7.2-7.4":0.07353,"8.2":0.02028,"9.2":0.03151,"10.1":0.0105,"11.1-11.2":0.12605,"12.0":0.06303,"13.0":0.16807,"14.0":0.39916,"15.0":1.91178},I:{"0":0,"3":0,"4":0.00661,"2.1":0,"2.2":0,"2.3":0,"4.1":0.01101,"4.2-4.3":0.04845,"4.4":0,"4.4.3-4.4.4":0.21362},K:{_:"0 10 11 12 11.1 11.5 12.1"},A:{"8":0.04149,"9":0.11755,"10":0.02074,"11":0.72604,_:"6 7 5.5"},J:{"7":0,"10":0},N:{"10":0.0242,"11":0.01881},L:{"0":38.03752},S:{"2.5":0.09704},R:{_:"0"},M:{"0":0.27969},Q:{"10.4":0.17695},O:{"0":1.0674},H:{"0":1.18887}}; diff --git a/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json b/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json deleted file mode 100644 index c820f149148f96..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/caniuse-lite/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "caniuse-lite", - "version": "1.0.30001267", - "description": "A smaller version of caniuse-db, with only the essentials!", - "main": "dist/unpacker/index.js", - "files": [ - "data", - "dist" - ], - "keywords": [ - "support", - "css", - "js", - "html5", - "svg" - ], - "author": { - "name": "Ben Briggs", - "email": "beneb.info@gmail.com", - "url": "http://beneb.info" - }, - "repository": "browserslist/caniuse-lite", - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/browserslist" - }, - "license": "CC-BY-4.0" -} diff --git a/tools/node_modules/@babel/core/node_modules/color-convert/README.md b/tools/node_modules/@babel/core/node_modules/color-convert/README.md deleted file mode 100644 index d4b08fc369948d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/color-convert/README.md +++ /dev/null @@ -1,68 +0,0 @@ -# color-convert - -[![Build Status](https://travis-ci.org/Qix-/color-convert.svg?branch=master)](https://travis-ci.org/Qix-/color-convert) - -Color-convert is a color conversion library for JavaScript and node. -It converts all ways between `rgb`, `hsl`, `hsv`, `hwb`, `cmyk`, `ansi`, `ansi16`, `hex` strings, and CSS `keyword`s (will round to closest): - -```js -var convert = require('color-convert'); - -convert.rgb.hsl(140, 200, 100); // [96, 48, 59] -convert.keyword.rgb('blue'); // [0, 0, 255] - -var rgbChannels = convert.rgb.channels; // 3 -var cmykChannels = convert.cmyk.channels; // 4 -var ansiChannels = convert.ansi16.channels; // 1 -``` - -# Install - -```console -$ npm install color-convert -``` - -# API - -Simply get the property of the _from_ and _to_ conversion that you're looking for. - -All functions have a rounded and unrounded variant. By default, return values are rounded. To get the unrounded (raw) results, simply tack on `.raw` to the function. - -All 'from' functions have a hidden property called `.channels` that indicates the number of channels the function expects (not including alpha). - -```js -var convert = require('color-convert'); - -// Hex to LAB -convert.hex.lab('DEADBF'); // [ 76, 21, -2 ] -convert.hex.lab.raw('DEADBF'); // [ 75.56213190997677, 20.653827952644754, -2.290532499330533 ] - -// RGB to CMYK -convert.rgb.cmyk(167, 255, 4); // [ 35, 0, 98, 0 ] -convert.rgb.cmyk.raw(167, 255, 4); // [ 34.509803921568626, 0, 98.43137254901961, 0 ] -``` - -### Arrays -All functions that accept multiple arguments also support passing an array. - -Note that this does **not** apply to functions that convert from a color that only requires one value (e.g. `keyword`, `ansi256`, `hex`, etc.) - -```js -var convert = require('color-convert'); - -convert.rgb.hex(123, 45, 67); // '7B2D43' -convert.rgb.hex([123, 45, 67]); // '7B2D43' -``` - -## Routing - -Conversions that don't have an _explicitly_ defined conversion (in [conversions.js](conversions.js)), but can be converted by means of sub-conversions (e.g. XYZ -> **RGB** -> CMYK), are automatically routed together. This allows just about any color model supported by `color-convert` to be converted to any other model, so long as a sub-conversion path exists. This is also true for conversions requiring more than one step in between (e.g. LCH -> **LAB** -> **XYZ** -> **RGB** -> Hex). - -Keep in mind that extensive conversions _may_ result in a loss of precision, and exist only to be complete. For a list of "direct" (single-step) conversions, see [conversions.js](conversions.js). - -# Contribute - -If there is a new model you would like to support, or want to add a direct conversion between two existing models, please send us a pull request. - -# License -Copyright © 2011-2016, Heather Arthur and Josh Junon. Licensed under the [MIT License](LICENSE). diff --git a/tools/node_modules/@babel/core/node_modules/color-name/README.md b/tools/node_modules/@babel/core/node_modules/color-name/README.md deleted file mode 100644 index 932b979176f33b..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/color-name/README.md +++ /dev/null @@ -1,11 +0,0 @@ -A JSON with color names and its values. Based on http://dev.w3.org/csswg/css-color/#named-colors. - -[![NPM](https://nodei.co/npm/color-name.png?mini=true)](https://nodei.co/npm/color-name/) - - -```js -var colors = require('color-name'); -colors.red //[255,0,0] -``` - - diff --git a/tools/node_modules/@babel/core/node_modules/convert-source-map/README.md b/tools/node_modules/@babel/core/node_modules/convert-source-map/README.md deleted file mode 100644 index fdee23e4510050..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/convert-source-map/README.md +++ /dev/null @@ -1,120 +0,0 @@ -# convert-source-map [![build status](https://secure.travis-ci.org/thlorenz/convert-source-map.svg?branch=master)](http://travis-ci.org/thlorenz/convert-source-map) - -Converts a source-map from/to different formats and allows adding/changing properties. - -```js -var convert = require('convert-source-map'); - -var json = convert - .fromComment('//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQvZm9vLm1pbi5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIvIn0=') - .toJSON(); - -var modified = convert - .fromComment('//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVpbGQvZm9vLm1pbi5qcyIsInNvdXJjZXMiOlsic3JjL2Zvby5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZVJvb3QiOiIvIn0=') - .setProperty('sources', [ 'SRC/FOO.JS' ]) - .toJSON(); - -console.log(json); -console.log(modified); -``` - -```json -{"version":3,"file":"build/foo.min.js","sources":["src/foo.js"],"names":[],"mappings":"AAAA","sourceRoot":"/"} -{"version":3,"file":"build/foo.min.js","sources":["SRC/FOO.JS"],"names":[],"mappings":"AAAA","sourceRoot":"/"} -``` - -## API - -### fromObject(obj) - -Returns source map converter from given object. - -### fromJSON(json) - -Returns source map converter from given json string. - -### fromBase64(base64) - -Returns source map converter from given base64 encoded json string. - -### fromComment(comment) - -Returns source map converter from given base64 encoded json string prefixed with `//# sourceMappingURL=...`. - -### fromMapFileComment(comment, mapFileDir) - -Returns source map converter from given `filename` by parsing `//# sourceMappingURL=filename`. - -`filename` must point to a file that is found inside the `mapFileDir`. Most tools store this file right next to the -generated file, i.e. the one containing the source map. - -### fromSource(source) - -Finds last sourcemap comment in file and returns source map converter or returns null if no source map comment was found. - -### fromMapFileSource(source, mapFileDir) - -Finds last sourcemap comment in file and returns source map converter or returns null if no source map comment was -found. - -The sourcemap will be read from the map file found by parsing `# sourceMappingURL=file` comment. For more info see -fromMapFileComment. - -### toObject() - -Returns a copy of the underlying source map. - -### toJSON([space]) - -Converts source map to json string. If `space` is given (optional), this will be passed to -[JSON.stringify](https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/JSON/stringify) when the -JSON string is generated. - -### toBase64() - -Converts source map to base64 encoded json string. - -### toComment([options]) - -Converts source map to an inline comment that can be appended to the source-file. - -By default, the comment is formatted like: `//# sourceMappingURL=...`, which you would -normally see in a JS source file. - -When `options.multiline == true`, the comment is formatted like: `/*# sourceMappingURL=... */`, which you would find in a CSS source file. - -### addProperty(key, value) - -Adds given property to the source map. Throws an error if property already exists. - -### setProperty(key, value) - -Sets given property to the source map. If property doesn't exist it is added, otherwise its value is updated. - -### getProperty(key) - -Gets given property of the source map. - -### removeComments(src) - -Returns `src` with all source map comments removed - -### removeMapFileComments(src) - -Returns `src` with all source map comments pointing to map files removed. - -### commentRegex - -Provides __a fresh__ RegExp each time it is accessed. Can be used to find source map comments. - -### mapFileCommentRegex - -Provides __a fresh__ RegExp each time it is accessed. Can be used to find source map comments pointing to map files. - -### generateMapFileComment(file, [options]) - -Returns a comment that links to an external source map via `file`. - -By default, the comment is formatted like: `//# sourceMappingURL=...`, which you would normally see in a JS source file. - -When `options.multiline == true`, the comment is formatted like: `/*# sourceMappingURL=... */`, which you would find in a CSS source file. diff --git a/tools/node_modules/@babel/core/node_modules/debug/LICENSE b/tools/node_modules/@babel/core/node_modules/debug/LICENSE deleted file mode 100644 index 658c933d28255e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/LICENSE +++ /dev/null @@ -1,19 +0,0 @@ -(The MIT License) - -Copyright (c) 2014 TJ Holowaychuk - -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/tools/node_modules/@babel/core/node_modules/debug/README.md b/tools/node_modules/@babel/core/node_modules/debug/README.md deleted file mode 100644 index 88dae35d9fc958..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/README.md +++ /dev/null @@ -1,455 +0,0 @@ -# debug -[![Build Status](https://travis-ci.org/visionmedia/debug.svg?branch=master)](https://travis-ci.org/visionmedia/debug) [![Coverage Status](https://coveralls.io/repos/github/visionmedia/debug/badge.svg?branch=master)](https://coveralls.io/github/visionmedia/debug?branch=master) [![Slack](https://visionmedia-community-slackin.now.sh/badge.svg)](https://visionmedia-community-slackin.now.sh/) [![OpenCollective](https://opencollective.com/debug/backers/badge.svg)](#backers) -[![OpenCollective](https://opencollective.com/debug/sponsors/badge.svg)](#sponsors) - - - -A tiny JavaScript debugging utility modelled after Node.js core's debugging -technique. Works in Node.js and web browsers. - -## Installation - -```bash -$ npm install debug -``` - -## Usage - -`debug` exposes a function; simply pass this function the name of your module, and it will return a decorated version of `console.error` for you to pass debug statements to. This will allow you to toggle the debug output for different parts of your module as well as the module as a whole. - -Example [_app.js_](./examples/node/app.js): - -```js -var debug = require('debug')('http') - , http = require('http') - , name = 'My App'; - -// fake app - -debug('booting %o', name); - -http.createServer(function(req, res){ - debug(req.method + ' ' + req.url); - res.end('hello\n'); -}).listen(3000, function(){ - debug('listening'); -}); - -// fake worker of some kind - -require('./worker'); -``` - -Example [_worker.js_](./examples/node/worker.js): - -```js -var a = require('debug')('worker:a') - , b = require('debug')('worker:b'); - -function work() { - a('doing lots of uninteresting work'); - setTimeout(work, Math.random() * 1000); -} - -work(); - -function workb() { - b('doing some work'); - setTimeout(workb, Math.random() * 2000); -} - -workb(); -``` - -The `DEBUG` environment variable is then used to enable these based on space or -comma-delimited names. - -Here are some examples: - -screen shot 2017-08-08 at 12 53 04 pm -screen shot 2017-08-08 at 12 53 38 pm -screen shot 2017-08-08 at 12 53 25 pm - -#### Windows command prompt notes - -##### CMD - -On Windows the environment variable is set using the `set` command. - -```cmd -set DEBUG=*,-not_this -``` - -Example: - -```cmd -set DEBUG=* & node app.js -``` - -##### PowerShell (VS Code default) - -PowerShell uses different syntax to set environment variables. - -```cmd -$env:DEBUG = "*,-not_this" -``` - -Example: - -```cmd -$env:DEBUG='app';node app.js -``` - -Then, run the program to be debugged as usual. - -npm script example: -```js - "windowsDebug": "@powershell -Command $env:DEBUG='*';node app.js", -``` - -## Namespace Colors - -Every debug instance has a color generated for it based on its namespace name. -This helps when visually parsing the debug output to identify which debug instance -a debug line belongs to. - -#### Node.js - -In Node.js, colors are enabled when stderr is a TTY. You also _should_ install -the [`supports-color`](https://npmjs.org/supports-color) module alongside debug, -otherwise debug will only use a small handful of basic colors. - - - -#### Web Browser - -Colors are also enabled on "Web Inspectors" that understand the `%c` formatting -option. These are WebKit web inspectors, Firefox ([since version -31](https://hacks.mozilla.org/2014/05/editable-box-model-multiple-selection-sublime-text-keys-much-more-firefox-developer-tools-episode-31/)) -and the Firebug plugin for Firefox (any version). - - - - -## Millisecond diff - -When actively developing an application it can be useful to see when the time spent between one `debug()` call and the next. Suppose for example you invoke `debug()` before requesting a resource, and after as well, the "+NNNms" will show you how much time was spent between calls. - - - -When stdout is not a TTY, `Date#toISOString()` is used, making it more useful for logging the debug information as shown below: - - - - -## Conventions - -If you're using this in one or more of your libraries, you _should_ use the name of your library so that developers may toggle debugging as desired without guessing names. If you have more than one debuggers you _should_ prefix them with your library name and use ":" to separate features. For example "bodyParser" from Connect would then be "connect:bodyParser". If you append a "*" to the end of your name, it will always be enabled regardless of the setting of the DEBUG environment variable. You can then use it for normal output as well as debug output. - -## Wildcards - -The `*` character may be used as a wildcard. Suppose for example your library has -debuggers named "connect:bodyParser", "connect:compress", "connect:session", -instead of listing all three with -`DEBUG=connect:bodyParser,connect:compress,connect:session`, you may simply do -`DEBUG=connect:*`, or to run everything using this module simply use `DEBUG=*`. - -You can also exclude specific debuggers by prefixing them with a "-" character. -For example, `DEBUG=*,-connect:*` would include all debuggers except those -starting with "connect:". - -## Environment Variables - -When running through Node.js, you can set a few environment variables that will -change the behavior of the debug logging: - -| Name | Purpose | -|-----------|-------------------------------------------------| -| `DEBUG` | Enables/disables specific debugging namespaces. | -| `DEBUG_HIDE_DATE` | Hide date from debug output (non-TTY). | -| `DEBUG_COLORS`| Whether or not to use colors in the debug output. | -| `DEBUG_DEPTH` | Object inspection depth. | -| `DEBUG_SHOW_HIDDEN` | Shows hidden properties on inspected objects. | - - -__Note:__ The environment variables beginning with `DEBUG_` end up being -converted into an Options object that gets used with `%o`/`%O` formatters. -See the Node.js documentation for -[`util.inspect()`](https://nodejs.org/api/util.html#util_util_inspect_object_options) -for the complete list. - -## Formatters - -Debug uses [printf-style](https://wikipedia.org/wiki/Printf_format_string) formatting. -Below are the officially supported formatters: - -| Formatter | Representation | -|-----------|----------------| -| `%O` | Pretty-print an Object on multiple lines. | -| `%o` | Pretty-print an Object all on a single line. | -| `%s` | String. | -| `%d` | Number (both integer and float). | -| `%j` | JSON. Replaced with the string '[Circular]' if the argument contains circular references. | -| `%%` | Single percent sign ('%'). This does not consume an argument. | - - -### Custom formatters - -You can add custom formatters by extending the `debug.formatters` object. -For example, if you wanted to add support for rendering a Buffer as hex with -`%h`, you could do something like: - -```js -const createDebug = require('debug') -createDebug.formatters.h = (v) => { - return v.toString('hex') -} - -// …elsewhere -const debug = createDebug('foo') -debug('this is hex: %h', new Buffer('hello world')) -// foo this is hex: 68656c6c6f20776f726c6421 +0ms -``` - - -## Browser Support - -You can build a browser-ready script using [browserify](https://github.com/substack/node-browserify), -or just use the [browserify-as-a-service](https://wzrd.in/) [build](https://wzrd.in/standalone/debug@latest), -if you don't want to build it yourself. - -Debug's enable state is currently persisted by `localStorage`. -Consider the situation shown below where you have `worker:a` and `worker:b`, -and wish to debug both. You can enable this using `localStorage.debug`: - -```js -localStorage.debug = 'worker:*' -``` - -And then refresh the page. - -```js -a = debug('worker:a'); -b = debug('worker:b'); - -setInterval(function(){ - a('doing some work'); -}, 1000); - -setInterval(function(){ - b('doing some work'); -}, 1200); -``` - - -## Output streams - - By default `debug` will log to stderr, however this can be configured per-namespace by overriding the `log` method: - -Example [_stdout.js_](./examples/node/stdout.js): - -```js -var debug = require('debug'); -var error = debug('app:error'); - -// by default stderr is used -error('goes to stderr!'); - -var log = debug('app:log'); -// set this namespace to log via console.log -log.log = console.log.bind(console); // don't forget to bind to console! -log('goes to stdout'); -error('still goes to stderr!'); - -// set all output to go via console.info -// overrides all per-namespace log settings -debug.log = console.info.bind(console); -error('now goes to stdout via console.info'); -log('still goes to stdout, but via console.info now'); -``` - -## Extend -You can simply extend debugger -```js -const log = require('debug')('auth'); - -//creates new debug instance with extended namespace -const logSign = log.extend('sign'); -const logLogin = log.extend('login'); - -log('hello'); // auth hello -logSign('hello'); //auth:sign hello -logLogin('hello'); //auth:login hello -``` - -## Set dynamically - -You can also enable debug dynamically by calling the `enable()` method : - -```js -let debug = require('debug'); - -console.log(1, debug.enabled('test')); - -debug.enable('test'); -console.log(2, debug.enabled('test')); - -debug.disable(); -console.log(3, debug.enabled('test')); - -``` - -print : -``` -1 false -2 true -3 false -``` - -Usage : -`enable(namespaces)` -`namespaces` can include modes separated by a colon and wildcards. - -Note that calling `enable()` completely overrides previously set DEBUG variable : - -``` -$ DEBUG=foo node -e 'var dbg = require("debug"); dbg.enable("bar"); console.log(dbg.enabled("foo"))' -=> false -``` - -`disable()` - -Will disable all namespaces. The functions returns the namespaces currently -enabled (and skipped). This can be useful if you want to disable debugging -temporarily without knowing what was enabled to begin with. - -For example: - -```js -let debug = require('debug'); -debug.enable('foo:*,-foo:bar'); -let namespaces = debug.disable(); -debug.enable(namespaces); -``` - -Note: There is no guarantee that the string will be identical to the initial -enable string, but semantically they will be identical. - -## Checking whether a debug target is enabled - -After you've created a debug instance, you can determine whether or not it is -enabled by checking the `enabled` property: - -```javascript -const debug = require('debug')('http'); - -if (debug.enabled) { - // do stuff... -} -``` - -You can also manually toggle this property to force the debug instance to be -enabled or disabled. - - -## Authors - - - TJ Holowaychuk - - Nathan Rajlich - - Andrew Rhyne - -## Backers - -Support us with a monthly donation and help us continue our activities. [[Become a backer](https://opencollective.com/debug#backer)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## Sponsors - -Become a sponsor and get your logo on our README on Github with a link to your site. [[Become a sponsor](https://opencollective.com/debug#sponsor)] - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -## License - -(The MIT License) - -Copyright (c) 2014-2017 TJ Holowaychuk <tj@vision-media.ca> - -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/tools/node_modules/@babel/core/node_modules/debug/package.json b/tools/node_modules/@babel/core/node_modules/debug/package.json deleted file mode 100644 index b7d70acb9bee82..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/package.json +++ /dev/null @@ -1,59 +0,0 @@ -{ - "name": "debug", - "version": "4.3.2", - "repository": { - "type": "git", - "url": "git://github.com/visionmedia/debug.git" - }, - "description": "small debugging utility", - "keywords": [ - "debug", - "log", - "debugger" - ], - "files": [ - "src", - "LICENSE", - "README.md" - ], - "author": "TJ Holowaychuk ", - "contributors": [ - "Nathan Rajlich (http://n8.io)", - "Andrew Rhyne ", - "Josh Junon " - ], - "license": "MIT", - "scripts": { - "lint": "xo", - "test": "npm run test:node && npm run test:browser && npm run lint", - "test:node": "istanbul cover _mocha -- test.js", - "test:browser": "karma start --single-run", - "test:coverage": "cat ./coverage/lcov.info | coveralls" - }, - "dependencies": { - "ms": "2.1.2" - }, - "devDependencies": { - "brfs": "^2.0.1", - "browserify": "^16.2.3", - "coveralls": "^3.0.2", - "istanbul": "^0.4.5", - "karma": "^3.1.4", - "karma-browserify": "^6.0.0", - "karma-chrome-launcher": "^2.2.0", - "karma-mocha": "^1.3.0", - "mocha": "^5.2.0", - "mocha-lcov-reporter": "^1.2.0", - "xo": "^0.23.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - }, - "main": "./src/index.js", - "browser": "./src/browser.js", - "engines": { - "node": ">=6.0" - } -} diff --git a/tools/node_modules/@babel/core/node_modules/debug/src/browser.js b/tools/node_modules/@babel/core/node_modules/debug/src/browser.js deleted file mode 100644 index cd0fc35d1ee11e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/src/browser.js +++ /dev/null @@ -1,269 +0,0 @@ -/* eslint-env browser */ - -/** - * This is the web browser implementation of `debug()`. - */ - -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.storage = localstorage(); -exports.destroy = (() => { - let warned = false; - - return () => { - if (!warned) { - warned = true; - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - }; -})(); - -/** - * Colors. - */ - -exports.colors = [ - '#0000CC', - '#0000FF', - '#0033CC', - '#0033FF', - '#0066CC', - '#0066FF', - '#0099CC', - '#0099FF', - '#00CC00', - '#00CC33', - '#00CC66', - '#00CC99', - '#00CCCC', - '#00CCFF', - '#3300CC', - '#3300FF', - '#3333CC', - '#3333FF', - '#3366CC', - '#3366FF', - '#3399CC', - '#3399FF', - '#33CC00', - '#33CC33', - '#33CC66', - '#33CC99', - '#33CCCC', - '#33CCFF', - '#6600CC', - '#6600FF', - '#6633CC', - '#6633FF', - '#66CC00', - '#66CC33', - '#9900CC', - '#9900FF', - '#9933CC', - '#9933FF', - '#99CC00', - '#99CC33', - '#CC0000', - '#CC0033', - '#CC0066', - '#CC0099', - '#CC00CC', - '#CC00FF', - '#CC3300', - '#CC3333', - '#CC3366', - '#CC3399', - '#CC33CC', - '#CC33FF', - '#CC6600', - '#CC6633', - '#CC9900', - '#CC9933', - '#CCCC00', - '#CCCC33', - '#FF0000', - '#FF0033', - '#FF0066', - '#FF0099', - '#FF00CC', - '#FF00FF', - '#FF3300', - '#FF3333', - '#FF3366', - '#FF3399', - '#FF33CC', - '#FF33FF', - '#FF6600', - '#FF6633', - '#FF9900', - '#FF9933', - '#FFCC00', - '#FFCC33' -]; - -/** - * Currently only WebKit-based Web Inspectors, Firefox >= v31, - * and the Firebug extension (any Firefox version) are known - * to support "%c" CSS customizations. - * - * TODO: add a `localStorage` variable to explicitly enable/disable colors - */ - -// eslint-disable-next-line complexity -function useColors() { - // NB: In an Electron preload script, document will be defined but not fully - // initialized. Since we know we're in Chrome, we'll just detect this case - // explicitly - if (typeof window !== 'undefined' && window.process && (window.process.type === 'renderer' || window.process.__nwjs)) { - return true; - } - - // Internet Explorer and Edge do not support colors. - if (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/)) { - return false; - } - - // Is webkit? http://stackoverflow.com/a/16459606/376773 - // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632 - return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) || - // Is firebug? http://stackoverflow.com/a/398120/376773 - (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) || - // Is firefox >= v31? - // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/) && parseInt(RegExp.$1, 10) >= 31) || - // Double check webkit in userAgent just in case we are in a worker - (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/)); -} - -/** - * Colorize log arguments if enabled. - * - * @api public - */ - -function formatArgs(args) { - args[0] = (this.useColors ? '%c' : '') + - this.namespace + - (this.useColors ? ' %c' : ' ') + - args[0] + - (this.useColors ? '%c ' : ' ') + - '+' + module.exports.humanize(this.diff); - - if (!this.useColors) { - return; - } - - const c = 'color: ' + this.color; - args.splice(1, 0, c, 'color: inherit'); - - // The final "%c" is somewhat tricky, because there could be other - // arguments passed either before or after the %c, so we need to - // figure out the correct index to insert the CSS into - let index = 0; - let lastC = 0; - args[0].replace(/%[a-zA-Z%]/g, match => { - if (match === '%%') { - return; - } - index++; - if (match === '%c') { - // We only are interested in the *last* %c - // (the user may have provided their own) - lastC = index; - } - }); - - args.splice(lastC, 0, c); -} - -/** - * Invokes `console.debug()` when available. - * No-op when `console.debug` is not a "function". - * If `console.debug` is not available, falls back - * to `console.log`. - * - * @api public - */ -exports.log = console.debug || console.log || (() => {}); - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - try { - if (namespaces) { - exports.storage.setItem('debug', namespaces); - } else { - exports.storage.removeItem('debug'); - } - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ -function load() { - let r; - try { - r = exports.storage.getItem('debug'); - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } - - // If debug isn't set in LS, and we're in Electron, try to load $DEBUG - if (!r && typeof process !== 'undefined' && 'env' in process) { - r = process.env.DEBUG; - } - - return r; -} - -/** - * Localstorage attempts to return the localstorage. - * - * This is necessary because safari throws - * when a user disables cookies/localstorage - * and you attempt to access it. - * - * @return {LocalStorage} - * @api private - */ - -function localstorage() { - try { - // TVMLKit (Apple TV JS Runtime) does not have a window object, just localStorage in the global context - // The Browser also has localStorage in the global context. - return localStorage; - } catch (error) { - // Swallow - // XXX (@Qix-) should we be logging these? - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default. - */ - -formatters.j = function (v) { - try { - return JSON.stringify(v); - } catch (error) { - return '[UnexpectedJSONParseError]: ' + error.message; - } -}; diff --git a/tools/node_modules/@babel/core/node_modules/debug/src/common.js b/tools/node_modules/@babel/core/node_modules/debug/src/common.js deleted file mode 100644 index 50ce2925101d73..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/src/common.js +++ /dev/null @@ -1,274 +0,0 @@ - -/** - * This is the common logic for both the Node.js and web browser - * implementations of `debug()`. - */ - -function setup(env) { - createDebug.debug = createDebug; - createDebug.default = createDebug; - createDebug.coerce = coerce; - createDebug.disable = disable; - createDebug.enable = enable; - createDebug.enabled = enabled; - createDebug.humanize = require('ms'); - createDebug.destroy = destroy; - - Object.keys(env).forEach(key => { - createDebug[key] = env[key]; - }); - - /** - * The currently active debug mode names, and names to skip. - */ - - createDebug.names = []; - createDebug.skips = []; - - /** - * Map of special "%n" handling functions, for the debug "format" argument. - * - * Valid key names are a single, lower or upper-case letter, i.e. "n" and "N". - */ - createDebug.formatters = {}; - - /** - * Selects a color for a debug namespace - * @param {String} namespace The namespace string for the for the debug instance to be colored - * @return {Number|String} An ANSI color code for the given namespace - * @api private - */ - function selectColor(namespace) { - let hash = 0; - - for (let i = 0; i < namespace.length; i++) { - hash = ((hash << 5) - hash) + namespace.charCodeAt(i); - hash |= 0; // Convert to 32bit integer - } - - return createDebug.colors[Math.abs(hash) % createDebug.colors.length]; - } - createDebug.selectColor = selectColor; - - /** - * Create a debugger with the given `namespace`. - * - * @param {String} namespace - * @return {Function} - * @api public - */ - function createDebug(namespace) { - let prevTime; - let enableOverride = null; - let namespacesCache; - let enabledCache; - - function debug(...args) { - // Disabled? - if (!debug.enabled) { - return; - } - - const self = debug; - - // Set `diff` timestamp - const curr = Number(new Date()); - const ms = curr - (prevTime || curr); - self.diff = ms; - self.prev = prevTime; - self.curr = curr; - prevTime = curr; - - args[0] = createDebug.coerce(args[0]); - - if (typeof args[0] !== 'string') { - // Anything else let's inspect with %O - args.unshift('%O'); - } - - // Apply any `formatters` transformations - let index = 0; - args[0] = args[0].replace(/%([a-zA-Z%])/g, (match, format) => { - // If we encounter an escaped % then don't increase the array index - if (match === '%%') { - return '%'; - } - index++; - const formatter = createDebug.formatters[format]; - if (typeof formatter === 'function') { - const val = args[index]; - match = formatter.call(self, val); - - // Now we need to remove `args[index]` since it's inlined in the `format` - args.splice(index, 1); - index--; - } - return match; - }); - - // Apply env-specific formatting (colors, etc.) - createDebug.formatArgs.call(self, args); - - const logFn = self.log || createDebug.log; - logFn.apply(self, args); - } - - debug.namespace = namespace; - debug.useColors = createDebug.useColors(); - debug.color = createDebug.selectColor(namespace); - debug.extend = extend; - debug.destroy = createDebug.destroy; // XXX Temporary. Will be removed in the next major release. - - Object.defineProperty(debug, 'enabled', { - enumerable: true, - configurable: false, - get: () => { - if (enableOverride !== null) { - return enableOverride; - } - if (namespacesCache !== createDebug.namespaces) { - namespacesCache = createDebug.namespaces; - enabledCache = createDebug.enabled(namespace); - } - - return enabledCache; - }, - set: v => { - enableOverride = v; - } - }); - - // Env-specific initialization logic for debug instances - if (typeof createDebug.init === 'function') { - createDebug.init(debug); - } - - return debug; - } - - function extend(namespace, delimiter) { - const newDebug = createDebug(this.namespace + (typeof delimiter === 'undefined' ? ':' : delimiter) + namespace); - newDebug.log = this.log; - return newDebug; - } - - /** - * Enables a debug mode by namespaces. This can include modes - * separated by a colon and wildcards. - * - * @param {String} namespaces - * @api public - */ - function enable(namespaces) { - createDebug.save(namespaces); - createDebug.namespaces = namespaces; - - createDebug.names = []; - createDebug.skips = []; - - let i; - const split = (typeof namespaces === 'string' ? namespaces : '').split(/[\s,]+/); - const len = split.length; - - for (i = 0; i < len; i++) { - if (!split[i]) { - // ignore empty strings - continue; - } - - namespaces = split[i].replace(/\*/g, '.*?'); - - if (namespaces[0] === '-') { - createDebug.skips.push(new RegExp('^' + namespaces.substr(1) + '$')); - } else { - createDebug.names.push(new RegExp('^' + namespaces + '$')); - } - } - } - - /** - * Disable debug output. - * - * @return {String} namespaces - * @api public - */ - function disable() { - const namespaces = [ - ...createDebug.names.map(toNamespace), - ...createDebug.skips.map(toNamespace).map(namespace => '-' + namespace) - ].join(','); - createDebug.enable(''); - return namespaces; - } - - /** - * Returns true if the given mode name is enabled, false otherwise. - * - * @param {String} name - * @return {Boolean} - * @api public - */ - function enabled(name) { - if (name[name.length - 1] === '*') { - return true; - } - - let i; - let len; - - for (i = 0, len = createDebug.skips.length; i < len; i++) { - if (createDebug.skips[i].test(name)) { - return false; - } - } - - for (i = 0, len = createDebug.names.length; i < len; i++) { - if (createDebug.names[i].test(name)) { - return true; - } - } - - return false; - } - - /** - * Convert regexp to namespace - * - * @param {RegExp} regxep - * @return {String} namespace - * @api private - */ - function toNamespace(regexp) { - return regexp.toString() - .substring(2, regexp.toString().length - 2) - .replace(/\.\*\?$/, '*'); - } - - /** - * Coerce `val`. - * - * @param {Mixed} val - * @return {Mixed} - * @api private - */ - function coerce(val) { - if (val instanceof Error) { - return val.stack || val.message; - } - return val; - } - - /** - * XXX DO NOT USE. This is a temporary stub function. - * XXX It WILL be removed in the next major release. - */ - function destroy() { - console.warn('Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.'); - } - - createDebug.enable(createDebug.load()); - - return createDebug; -} - -module.exports = setup; diff --git a/tools/node_modules/@babel/core/node_modules/debug/src/index.js b/tools/node_modules/@babel/core/node_modules/debug/src/index.js deleted file mode 100644 index bf4c57f259df2e..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/src/index.js +++ /dev/null @@ -1,10 +0,0 @@ -/** - * Detect Electron renderer / nwjs process, which is node, but we should - * treat as a browser. - */ - -if (typeof process === 'undefined' || process.type === 'renderer' || process.browser === true || process.__nwjs) { - module.exports = require('./browser.js'); -} else { - module.exports = require('./node.js'); -} diff --git a/tools/node_modules/@babel/core/node_modules/debug/src/node.js b/tools/node_modules/@babel/core/node_modules/debug/src/node.js deleted file mode 100644 index 79bc085cb0230c..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/debug/src/node.js +++ /dev/null @@ -1,263 +0,0 @@ -/** - * Module dependencies. - */ - -const tty = require('tty'); -const util = require('util'); - -/** - * This is the Node.js implementation of `debug()`. - */ - -exports.init = init; -exports.log = log; -exports.formatArgs = formatArgs; -exports.save = save; -exports.load = load; -exports.useColors = useColors; -exports.destroy = util.deprecate( - () => {}, - 'Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`.' -); - -/** - * Colors. - */ - -exports.colors = [6, 2, 3, 4, 5, 1]; - -try { - // Optional dependency (as in, doesn't need to be installed, NOT like optionalDependencies in package.json) - // eslint-disable-next-line import/no-extraneous-dependencies - const supportsColor = require('supports-color'); - - if (supportsColor && (supportsColor.stderr || supportsColor).level >= 2) { - exports.colors = [ - 20, - 21, - 26, - 27, - 32, - 33, - 38, - 39, - 40, - 41, - 42, - 43, - 44, - 45, - 56, - 57, - 62, - 63, - 68, - 69, - 74, - 75, - 76, - 77, - 78, - 79, - 80, - 81, - 92, - 93, - 98, - 99, - 112, - 113, - 128, - 129, - 134, - 135, - 148, - 149, - 160, - 161, - 162, - 163, - 164, - 165, - 166, - 167, - 168, - 169, - 170, - 171, - 172, - 173, - 178, - 179, - 184, - 185, - 196, - 197, - 198, - 199, - 200, - 201, - 202, - 203, - 204, - 205, - 206, - 207, - 208, - 209, - 214, - 215, - 220, - 221 - ]; - } -} catch (error) { - // Swallow - we only care if `supports-color` is available; it doesn't have to be. -} - -/** - * Build up the default `inspectOpts` object from the environment variables. - * - * $ DEBUG_COLORS=no DEBUG_DEPTH=10 DEBUG_SHOW_HIDDEN=enabled node script.js - */ - -exports.inspectOpts = Object.keys(process.env).filter(key => { - return /^debug_/i.test(key); -}).reduce((obj, key) => { - // Camel-case - const prop = key - .substring(6) - .toLowerCase() - .replace(/_([a-z])/g, (_, k) => { - return k.toUpperCase(); - }); - - // Coerce string value into JS value - let val = process.env[key]; - if (/^(yes|on|true|enabled)$/i.test(val)) { - val = true; - } else if (/^(no|off|false|disabled)$/i.test(val)) { - val = false; - } else if (val === 'null') { - val = null; - } else { - val = Number(val); - } - - obj[prop] = val; - return obj; -}, {}); - -/** - * Is stdout a TTY? Colored output is enabled when `true`. - */ - -function useColors() { - return 'colors' in exports.inspectOpts ? - Boolean(exports.inspectOpts.colors) : - tty.isatty(process.stderr.fd); -} - -/** - * Adds ANSI color escape codes if enabled. - * - * @api public - */ - -function formatArgs(args) { - const {namespace: name, useColors} = this; - - if (useColors) { - const c = this.color; - const colorCode = '\u001B[3' + (c < 8 ? c : '8;5;' + c); - const prefix = ` ${colorCode};1m${name} \u001B[0m`; - - args[0] = prefix + args[0].split('\n').join('\n' + prefix); - args.push(colorCode + 'm+' + module.exports.humanize(this.diff) + '\u001B[0m'); - } else { - args[0] = getDate() + name + ' ' + args[0]; - } -} - -function getDate() { - if (exports.inspectOpts.hideDate) { - return ''; - } - return new Date().toISOString() + ' '; -} - -/** - * Invokes `util.format()` with the specified arguments and writes to stderr. - */ - -function log(...args) { - return process.stderr.write(util.format(...args) + '\n'); -} - -/** - * Save `namespaces`. - * - * @param {String} namespaces - * @api private - */ -function save(namespaces) { - if (namespaces) { - process.env.DEBUG = namespaces; - } else { - // If you set a process.env field to null or undefined, it gets cast to the - // string 'null' or 'undefined'. Just delete instead. - delete process.env.DEBUG; - } -} - -/** - * Load `namespaces`. - * - * @return {String} returns the previously persisted debug modes - * @api private - */ - -function load() { - return process.env.DEBUG; -} - -/** - * Init logic for `debug` instances. - * - * Create a new `inspectOpts` object in case `useColors` is set - * differently for a particular `debug` instance. - */ - -function init(debug) { - debug.inspectOpts = {}; - - const keys = Object.keys(exports.inspectOpts); - for (let i = 0; i < keys.length; i++) { - debug.inspectOpts[keys[i]] = exports.inspectOpts[keys[i]]; - } -} - -module.exports = require('./common')(exports); - -const {formatters} = module.exports; - -/** - * Map %o to `util.inspect()`, all on a single line. - */ - -formatters.o = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts) - .split('\n') - .map(str => str.trim()) - .join(' '); -}; - -/** - * Map %O to `util.inspect()`, allowing multiple lines if needed. - */ - -formatters.O = function (v) { - this.inspectOpts.colors = this.useColors; - return util.inspect(v, this.inspectOpts); -}; diff --git a/tools/node_modules/@babel/core/node_modules/electron-to-chromium/README.md b/tools/node_modules/@babel/core/node_modules/electron-to-chromium/README.md deleted file mode 100644 index a96ddf12afe27d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/electron-to-chromium/README.md +++ /dev/null @@ -1,186 +0,0 @@ -### Made by [@kilianvalkhof](https://twitter.com/kilianvalkhof) - -#### Other projects: - -- 💻 [Polypane](https://polypane.app) - Develop responsive websites and apps twice as fast on multiple screens at once -- 🖌️ [Superposition](https://superposition.design) - Kickstart your design system by extracting design tokens from your website -- 🗒️ [FromScratch](https://fromscratch.rocks) - A smart but simple autosaving scratchpad - ---- - -# Electron-to-Chromium [![npm](https://img.shields.io/npm/v/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![travis](https://img.shields.io/travis/Kilian/electron-to-chromium/master.svg)](https://travis-ci.org/Kilian/electron-to-chromium) [![npm-downloads](https://img.shields.io/npm/dm/electron-to-chromium.svg)](https://www.npmjs.com/package/electron-to-chromium) [![codecov](https://codecov.io/gh/Kilian/electron-to-chromium/branch/master/graph/badge.svg)](https://codecov.io/gh/Kilian/electron-to-chromium)[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=shield)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_shield) - -This repository provides a mapping of Electron versions to the Chromium version that it uses. - -This package is used in [Browserslist](https://github.com/ai/browserslist), so you can use e.g. `electron >= 1.4` in [Autoprefixer](https://github.com/postcss/autoprefixer), [Stylelint](https://github.com/stylelint/stylelint), [babel-preset-env](https://github.com/babel/babel-preset-env) and [eslint-plugin-compat](https://github.com/amilajack/eslint-plugin-compat). - -**Supported by:** - - - - - - -## Install -Install using `npm install electron-to-chromium`. - -## Usage -To include Electron-to-Chromium, require it: - -```js -var e2c = require('electron-to-chromium'); -``` - -### Properties -The Electron-to-Chromium object has 4 properties to use: - -#### `versions` -An object of key-value pairs with a _major_ Electron version as the key, and the corresponding major Chromium version as the value. - -```js -var versions = e2c.versions; -console.log(versions['1.4']); -// returns "53" -``` - -#### `fullVersions` -An object of key-value pairs with a Electron version as the key, and the corresponding full Chromium version as the value. - -```js -var versions = e2c.fullVersions; -console.log(versions['1.4.11']); -// returns "53.0.2785.143" -``` - -#### `chromiumVersions` -An object of key-value pairs with a _major_ Chromium version as the key, and the corresponding major Electron version as the value. - -```js -var versions = e2c.chromiumVersions; -console.log(versions['54']); -// returns "1.4" -``` - -#### `fullChromiumVersions` -An object of key-value pairs with a Chromium version as the key, and an array of the corresponding major Electron versions as the value. - -```js -var versions = e2c.fullChromiumVersions; -console.log(versions['54.0.2840.101']); -// returns ["1.5.1", "1.5.0"] -``` -### Functions - -#### `electronToChromium(query)` -Arguments: -* Query: string or number, required. A major or full Electron version. - -A function that returns the corresponding Chromium version for a given Electron function. Returns a string. - -If you provide it with a major Electron version, it will return a major Chromium version: - -```js -var chromeVersion = e2c.electronToChromium('1.4'); -// chromeVersion is "53" -``` - -If you provide it with a full Electron version, it will return the full Chromium version. - -```js -var chromeVersion = e2c.electronToChromium('1.4.11'); -// chromeVersion is "53.0.2785.143" -``` - -If a query does not match a Chromium version, it will return `undefined`. - -```js -var chromeVersion = e2c.electronToChromium('9000'); -// chromeVersion is undefined -``` - -#### `chromiumToElectron(query)` -Arguments: -* Query: string or number, required. A major or full Chromium version. - -Returns a string with the corresponding Electron version for a given Chromium query. - -If you provide it with a major Chromium version, it will return a major Electron version: - -```js -var electronVersion = e2c.chromiumToElectron('54'); -// electronVersion is "1.4" -``` - -If you provide it with a full Chrome version, it will return an array of full Electron versions. - -```js -var electronVersions = e2c.chromiumToElectron('56.0.2924.87'); -// electronVersions is ["1.6.3", "1.6.2", "1.6.1", "1.6.0"] -``` - -If a query does not match an Electron version, it will return `undefined`. - -```js -var electronVersion = e2c.chromiumToElectron('10'); -// electronVersion is undefined -``` - -#### `electronToBrowserList(query)` **DEPRECATED** -Arguments: -* Query: string or number, required. A major Electron version. - -_**Deprecated**: Browserlist already includes electron-to-chromium._ - -A function that returns a [Browserslist](https://github.com/ai/browserslist) query that matches the given major Electron version. Returns a string. - -If you provide it with a major Electron version, it will return a Browserlist query string that matches the Chromium capabilities: - -```js -var query = e2c.electronToBrowserList('1.4'); -// query is "Chrome >= 53" -``` - -If a query does not match a Chromium version, it will return `undefined`. - -```js -var query = e2c.electronToBrowserList('9000'); -// query is undefined -``` - -### Importing just versions, fullVersions, chromiumVersions and fullChromiumVersions -All lists can be imported on their own, if file size is a concern. - -#### `versions` - -```js -var versions = require('electron-to-chromium/versions'); -``` - -#### `fullVersions` - -```js -var fullVersions = require('electron-to-chromium/full-versions'); -``` - -#### `chromiumVersions` - -```js -var chromiumVersions = require('electron-to-chromium/chromium-versions'); -``` - -#### `fullChromiumVersions` - -```js -var fullChromiumVersions = require('electron-to-chromium/full-chromium-versions'); -``` - -## Updating -This package will be updated with each new Electron release. - -To update the list, run `npm run build.js`. Requires internet access as it downloads from the canonical list of Electron versions. - -To verify correct behaviour, run `npm test`. - - -## License -[![FOSSA Status](https://app.fossa.io/api/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium.svg?type=large)](https://app.fossa.io/projects/git%2Bgithub.com%2FKilian%2Felectron-to-chromium?ref=badge_large) diff --git a/tools/node_modules/@babel/core/node_modules/electron-to-chromium/package.json b/tools/node_modules/@babel/core/node_modules/electron-to-chromium/package.json deleted file mode 100644 index 2d0d69c4c979d6..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/electron-to-chromium/package.json +++ /dev/null @@ -1,38 +0,0 @@ -{ - "name": "electron-to-chromium", - "version": "1.3.868", - "description": "Provides a list of electron-to-chromium version mappings", - "main": "index.js", - "files": [ - "versions.js", - "full-versions.js", - "chromium-versions.js", - "full-chromium-versions.js", - "LICENSE" - ], - "scripts": { - "build": "node build.js", - "update": "node automated-update.js", - "test": "nyc ava --verbose", - "report": "nyc report --reporter=text-lcov > coverage.lcov && codecov" - }, - "repository": { - "type": "git", - "url": "https://github.com/kilian/electron-to-chromium/" - }, - "keywords": [ - "electron", - "chrome", - "browserlist" - ], - "author": "Kilian Valkhof", - "license": "ISC", - "devDependencies": { - "ava": "^3.8.2", - "codecov": "^3.8.0", - "electron-releases": "^3.828.0", - "nyc": "^15.1.0", - "request": "^2.88.0", - "shelljs": "^0.8.4" - } -} diff --git a/tools/node_modules/@babel/core/node_modules/escape-string-regexp/license b/tools/node_modules/@babel/core/node_modules/escape-string-regexp/license deleted file mode 100644 index 654d0bfe943437..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/escape-string-regexp/license +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/tools/node_modules/@babel/core/node_modules/gensync/README.md b/tools/node_modules/@babel/core/node_modules/gensync/README.md deleted file mode 100644 index f68ce1a37b927d..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/gensync/README.md +++ /dev/null @@ -1,196 +0,0 @@ -# gensync - -This module allows for developers to write common code that can share -implementation details, hiding whether an underlying request happens -synchronously or asynchronously. This is in contrast with many current Node -APIs which explicitly implement the same API twice, once with calls to -synchronous functions, and once with asynchronous functions. - -Take for example `fs.readFile` and `fs.readFileSync`, if you're writing an API -that loads a file and then performs a synchronous operation on the data, it -can be frustrating to maintain two parallel functions. - - -## Example - -```js -const fs = require("fs"); -const gensync = require("gensync"); - -const readFile = gensync({ - sync: fs.readFileSync, - errback: fs.readFile, -}); - -const myOperation = gensync(function* (filename) { - const code = yield* readFile(filename, "utf8"); - - return "// some custom prefix\n" + code; -}); - -// Load and add the prefix synchronously: -const result = myOperation.sync("./some-file.js"); - -// Load and add the prefix asynchronously with promises: -myOperation.async("./some-file.js").then(result => { - -}); - -// Load and add the prefix asynchronously with promises: -myOperation.errback("./some-file.js", (err, result) => { - -}); -``` - -This could even be exposed as your official API by doing -```js -// Using the common 'Sync' suffix for sync functions, and 'Async' suffix for -// promise-returning versions. -exports.myOperationSync = myOperation.sync; -exports.myOperationAsync = myOperation.async; -exports.myOperation = myOperation.errback; -``` -or potentially expose one of the async versions as the default, with a -`.sync` property on the function to expose the synchronous version. -```js -module.exports = myOperation.errback; -module.exports.sync = myOperation.sync; -```` - - -## API - -### gensync(generatorFnOrOptions) - -Returns a function that can be "await"-ed in another `gensync` generator -function, or executed via - -* `.sync(...args)` - Returns the computed value, or throws. -* `.async(...args)` - Returns a promise for the computed value. -* `.errback(...args, (err, result) => {})` - Calls the callback with the computed value, or error. - - -#### Passed a generator - -Wraps the generator to populate the `.sync`/`.async`/`.errback` helpers above to -allow for evaluation of the generator for the final value. - -##### Example - -```js -const readFile = function* () { - return 42; -}; - -const readFileAndMore = gensync(function* (){ - const val = yield* readFile(); - return 42 + val; -}); - -// In general cases -const code = readFileAndMore.sync("./file.js", "utf8"); -readFileAndMore.async("./file.js", "utf8").then(code => {}) -readFileAndMore.errback("./file.js", "utf8", (err, code) => {}); - -// In a generator being called indirectly with .sync/.async/.errback -const code = yield* readFileAndMore("./file.js", "utf8"); -``` - - -#### Passed an options object - -* `opts.sync` - - Example: `(...args) => 4` - - A function that will be called when `.sync()` is called on the `gensync()` - result, or when the result is passed to `yield*` in another generator that - is being run synchronously. - - Also called for `.async()` calls if no async handlers are provided. - -* `opts.async` - - Example: `async (...args) => 4` - - A function that will be called when `.async()` or `.errback()` is called on - the `gensync()` result, or when the result is passed to `yield*` in another - generator that is being run asynchronously. - -* `opts.errback` - - Example: `(...args, cb) => cb(null, 4)` - - A function that will be called when `.async()` or `.errback()` is called on - the `gensync()` result, or when the result is passed to `yield*` in another - generator that is being run asynchronously. - - This option allows for simpler compatibility with many existing Node APIs, - and also avoids introducing the extra even loop turns that promises introduce - to access the result value. - -* `opts.name` - - Example: `"readFile"` - - A string name to apply to the returned function. If no value is provided, - the name of `errback`/`async`/`sync` functions will be used, with any - `Sync` or `Async` suffix stripped off. If the callback is simply named - with ES6 inference (same name as the options property), the name is ignored. - -* `opts.arity` - - Example: `4` - - A number for the length to set on the returned function. If no value - is provided, the length will be carried over from the `sync` function's - `length` value. - -##### Example - -```js -const readFile = gensync({ - sync: fs.readFileSync, - errback: fs.readFile, -}); - -const code = readFile.sync("./file.js", "utf8"); -readFile.async("./file.js", "utf8").then(code => {}) -readFile.errback("./file.js", "utf8", (err, code) => {}); -``` - - -### gensync.all(iterable) - -`Promise.all`-like combinator that works with an iterable of generator objects -that could be passed to `yield*` within a gensync generator. - -#### Example - -```js -const loadFiles = gensync(function* () { - return yield* gensync.all([ - readFile("./one.js"), - readFile("./two.js"), - readFile("./three.js"), - ]); -}); -``` - - -### gensync.race(iterable) - -`Promise.race`-like combinator that works with an iterable of generator objects -that could be passed to `yield*` within a gensync generator. - -#### Example - -```js -const loadFiles = gensync(function* () { - return yield* gensync.race([ - readFile("./one.js"), - readFile("./two.js"), - readFile("./three.js"), - ]); -}); -``` diff --git a/tools/node_modules/@babel/core/node_modules/has-flag/license b/tools/node_modules/@babel/core/node_modules/has-flag/license deleted file mode 100644 index e7af2f77107d73..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/has-flag/license +++ /dev/null @@ -1,9 +0,0 @@ -MIT License - -Copyright (c) Sindre Sorhus (sindresorhus.com) - -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/tools/node_modules/@babel/core/node_modules/js-tokens/README.md b/tools/node_modules/@babel/core/node_modules/js-tokens/README.md deleted file mode 100644 index 00cdf1634db1d9..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/js-tokens/README.md +++ /dev/null @@ -1,240 +0,0 @@ -Overview [![Build Status](https://travis-ci.org/lydell/js-tokens.svg?branch=master)](https://travis-ci.org/lydell/js-tokens) -======== - -A regex that tokenizes JavaScript. - -```js -var jsTokens = require("js-tokens").default - -var jsString = "var foo=opts.foo;\n..." - -jsString.match(jsTokens) -// ["var", " ", "foo", "=", "opts", ".", "foo", ";", "\n", ...] -``` - - -Installation -============ - -`npm install js-tokens` - -```js -import jsTokens from "js-tokens" -// or: -var jsTokens = require("js-tokens").default -``` - - -Usage -===== - -### `jsTokens` ### - -A regex with the `g` flag that matches JavaScript tokens. - -The regex _always_ matches, even invalid JavaScript and the empty string. - -The next match is always directly after the previous. - -### `var token = matchToToken(match)` ### - -```js -import {matchToToken} from "js-tokens" -// or: -var matchToToken = require("js-tokens").matchToToken -``` - -Takes a `match` returned by `jsTokens.exec(string)`, and returns a `{type: -String, value: String}` object. The following types are available: - -- string -- comment -- regex -- number -- name -- punctuator -- whitespace -- invalid - -Multi-line comments and strings also have a `closed` property indicating if the -token was closed or not (see below). - -Comments and strings both come in several flavors. To distinguish them, check if -the token starts with `//`, `/*`, `'`, `"` or `` ` ``. - -Names are ECMAScript IdentifierNames, that is, including both identifiers and -keywords. You may use [is-keyword-js] to tell them apart. - -Whitespace includes both line terminators and other whitespace. - -[is-keyword-js]: https://github.com/crissdev/is-keyword-js - - -ECMAScript support -================== - -The intention is to always support the latest ECMAScript version whose feature -set has been finalized. - -If adding support for a newer version requires changes, a new version with a -major verion bump will be released. - -Currently, ECMAScript 2018 is supported. - - -Invalid code handling -===================== - -Unterminated strings are still matched as strings. JavaScript strings cannot -contain (unescaped) newlines, so unterminated strings simply end at the end of -the line. Unterminated template strings can contain unescaped newlines, though, -so they go on to the end of input. - -Unterminated multi-line comments are also still matched as comments. They -simply go on to the end of the input. - -Unterminated regex literals are likely matched as division and whatever is -inside the regex. - -Invalid ASCII characters have their own capturing group. - -Invalid non-ASCII characters are treated as names, to simplify the matching of -names (except unicode spaces which are treated as whitespace). Note: See also -the [ES2018](#es2018) section. - -Regex literals may contain invalid regex syntax. They are still matched as -regex literals. They may also contain repeated regex flags, to keep the regex -simple. - -Strings may contain invalid escape sequences. - - -Limitations -=========== - -Tokenizing JavaScript using regexes—in fact, _one single regex_—won’t be -perfect. But that’s not the point either. - -You may compare jsTokens with [esprima] by using `esprima-compare.js`. -See `npm run esprima-compare`! - -[esprima]: http://esprima.org/ - -### Template string interpolation ### - -Template strings are matched as single tokens, from the starting `` ` `` to the -ending `` ` ``, including interpolations (whose tokens are not matched -individually). - -Matching template string interpolations requires recursive balancing of `{` and -`}`—something that JavaScript regexes cannot do. Only one level of nesting is -supported. - -### Division and regex literals collision ### - -Consider this example: - -```js -var g = 9.82 -var number = bar / 2/g - -var regex = / 2/g -``` - -A human can easily understand that in the `number` line we’re dealing with -division, and in the `regex` line we’re dealing with a regex literal. How come? -Because humans can look at the whole code to put the `/` characters in context. -A JavaScript regex cannot. It only sees forwards. (Well, ES2018 regexes can also -look backwards. See the [ES2018](#es2018) section). - -When the `jsTokens` regex scans throught the above, it will see the following -at the end of both the `number` and `regex` rows: - -```js -/ 2/g -``` - -It is then impossible to know if that is a regex literal, or part of an -expression dealing with division. - -Here is a similar case: - -```js -foo /= 2/g -foo(/= 2/g) -``` - -The first line divides the `foo` variable with `2/g`. The second line calls the -`foo` function with the regex literal `/= 2/g`. Again, since `jsTokens` only -sees forwards, it cannot tell the two cases apart. - -There are some cases where we _can_ tell division and regex literals apart, -though. - -First off, we have the simple cases where there’s only one slash in the line: - -```js -var foo = 2/g -foo /= 2 -``` - -Regex literals cannot contain newlines, so the above cases are correctly -identified as division. Things are only problematic when there are more than -one non-comment slash in a single line. - -Secondly, not every character is a valid regex flag. - -```js -var number = bar / 2/e -``` - -The above example is also correctly identified as division, because `e` is not a -valid regex flag. I initially wanted to future-proof by allowing `[a-zA-Z]*` -(any letter) as flags, but it is not worth it since it increases the amount of -ambigous cases. So only the standard `g`, `m`, `i`, `y` and `u` flags are -allowed. This means that the above example will be identified as division as -long as you don’t rename the `e` variable to some permutation of `gmiyus` 1 to 6 -characters long. - -Lastly, we can look _forward_ for information. - -- If the token following what looks like a regex literal is not valid after a - regex literal, but is valid in a division expression, then the regex literal - is treated as division instead. For example, a flagless regex cannot be - followed by a string, number or name, but all of those three can be the - denominator of a division. -- Generally, if what looks like a regex literal is followed by an operator, the - regex literal is treated as division instead. This is because regexes are - seldomly used with operators (such as `+`, `*`, `&&` and `==`), but division - could likely be part of such an expression. - -Please consult the regex source and the test cases for precise information on -when regex or division is matched (should you need to know). In short, you -could sum it up as: - -If the end of a statement looks like a regex literal (even if it isn’t), it -will be treated as one. Otherwise it should work as expected (if you write sane -code). - -### ES2018 ### - -ES2018 added some nice regex improvements to the language. - -- [Unicode property escapes] should allow telling names and invalid non-ASCII - characters apart without blowing up the regex size. -- [Lookbehind assertions] should allow matching telling division and regex - literals apart in more cases. -- [Named capture groups] might simplify some things. - -These things would be nice to do, but are not critical. They probably have to -wait until the oldest maintained Node.js LTS release supports those features. - -[Unicode property escapes]: http://2ality.com/2017/07/regexp-unicode-property-escapes.html -[Lookbehind assertions]: http://2ality.com/2017/05/regexp-lookbehind-assertions.html -[Named capture groups]: http://2ality.com/2017/05/regexp-named-capture-groups.html - - -License -======= - -[MIT](LICENSE). diff --git a/tools/node_modules/@babel/core/node_modules/jsesc/README.md b/tools/node_modules/@babel/core/node_modules/jsesc/README.md deleted file mode 100644 index aae2b13a19befd..00000000000000 --- a/tools/node_modules/@babel/core/node_modules/jsesc/README.md +++ /dev/null @@ -1,421 +0,0 @@ -# jsesc [![Build status](https://travis-ci.org/mathiasbynens/jsesc.svg?branch=master)](https://travis-ci.org/mathiasbynens/jsesc) [![Code coverage status](https://coveralls.io/repos/mathiasbynens/jsesc/badge.svg)](https://coveralls.io/r/mathiasbynens/jsesc) [![Dependency status](https://gemnasium.com/mathiasbynens/jsesc.svg)](https://gemnasium.com/mathiasbynens/jsesc) - -Given some data, _jsesc_ returns a stringified representation of that data. jsesc is similar to `JSON.stringify()` except: - -1. it outputs JavaScript instead of JSON [by default](#json), enabling support for data structures like ES6 maps and sets; -2. it offers [many options](#api) to customize the output; -3. its output is ASCII-safe [by default](#minimal), thanks to its use of [escape sequences](https://mathiasbynens.be/notes/javascript-escapes) where needed. - -For any input, jsesc generates the shortest possible valid printable-ASCII-only output. [Here’s an online demo.](https://mothereff.in/js-escapes) - -jsesc’s output can be used instead of `JSON.stringify`’s to avoid [mojibake](https://en.wikipedia.org/wiki/Mojibake) and other encoding issues, or even to [avoid errors](https://twitter.com/annevk/status/380000829643571200) when passing JSON-formatted data (which may contain U+2028 LINE SEPARATOR, U+2029 PARAGRAPH SEPARATOR, or [lone surrogates](https://esdiscuss.org/topic/code-points-vs-unicode-scalar-values#content-14)) to a JavaScript parser or an UTF-8 encoder. - -## Installation - -Via [npm](https://www.npmjs.com/): - -```bash -npm install jsesc -``` - -In [Node.js](https://nodejs.org/): - -```js -const jsesc = require('jsesc'); -``` - -## API - -### `jsesc(value, options)` - -This function takes a value and returns an escaped version of the value where any characters that are not printable ASCII symbols are escaped using the shortest possible (but valid) [escape sequences for use in JavaScript strings](https://mathiasbynens.be/notes/javascript-escapes). The first supported value type is strings: - -```js -jsesc('Ich ♥ Bücher'); -// → 'Ich \\u2665 B\\xFCcher' - -jsesc('foo 𝌆 bar'); -// → 'foo \\uD834\\uDF06 bar' -``` - -Instead of a string, the `value` can also be an array, an object, a map, a set, or a buffer. In such cases, `jsesc` returns a stringified version of the value where any characters that are not printable ASCII symbols are escaped in the same way. - -```js -// Escaping an array -jsesc([ - 'Ich ♥ Bücher', 'foo 𝌆 bar' -]); -// → '[\'Ich \\u2665 B\\xFCcher\',\'foo \\uD834\\uDF06 bar\']' - -// Escaping an object -jsesc({ - 'Ich ♥ Bücher': 'foo 𝌆 bar' -}); -// → '{\'Ich \\u2665 B\\xFCcher\':\'foo \\uD834\\uDF06 bar\'}' -``` - -The optional `options` argument accepts an object with the following options: - -#### `quotes` - -The default value for the `quotes` option is `'single'`. This means that any occurrences of `'` in the input string are escaped as `\'`, so that the output can be used in a string literal wrapped in single quotes. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.'); -// → 'Lorem ipsum "dolor" sit \\\'amet\\\' etc.' - -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single' -}); -// → '`Lorem` ipsum "dolor" sit \\\'amet\\\' etc.' -// → "`Lorem` ipsum \"dolor\" sit \\'amet\\' etc." -``` - -If you want to use the output as part of a string literal wrapped in double quotes, set the `quotes` option to `'double'`. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double' -}); -// → '`Lorem` ipsum \\"dolor\\" sit \'amet\' etc.' -// → "`Lorem` ipsum \\\"dolor\\\" sit 'amet' etc." -``` - -If you want to use the output as part of a template literal (i.e. wrapped in backticks), set the `quotes` option to `'backtick'`. - -```js -jsesc('`Lorem` ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'backtick' -}); -// → '\\`Lorem\\` ipsum "dolor" sit \'amet\' etc.' -// → "\\`Lorem\\` ipsum \"dolor\" sit 'amet' etc." -// → `\\\`Lorem\\\` ipsum "dolor" sit 'amet' etc.` -``` - -This setting also affects the output for arrays and objects: - -```js -jsesc({ 'Ich ♥ Bücher': 'foo 𝌆 bar' }, { - 'quotes': 'double' -}); -// → '{"Ich \\u2665 B\\xFCcher":"foo \\uD834\\uDF06 bar"}' - -jsesc([ 'Ich ♥ Bücher', 'foo 𝌆 bar' ], { - 'quotes': 'double' -}); -// → '["Ich \\u2665 B\\xFCcher","foo \\uD834\\uDF06 bar"]' -``` - -#### `numbers` - -The default value for the `numbers` option is `'decimal'`. This means that any numeric values are represented using decimal integer literals. Other valid options are `binary`, `octal`, and `hexadecimal`, which result in binary integer literals, octal integer literals, and hexadecimal integer literals, respectively. - -```js -jsesc(42, { - 'numbers': 'binary' -}); -// → '0b101010' - -jsesc(42, { - 'numbers': 'octal' -}); -// → '0o52' - -jsesc(42, { - 'numbers': 'decimal' -}); -// → '42' - -jsesc(42, { - 'numbers': 'hexadecimal' -}); -// → '0x2A' -``` - -#### `wrap` - -The `wrap` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, the output is a valid JavaScript string literal wrapped in quotes. The type of quotes can be specified through the `quotes` setting. - -```js -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'single', - 'wrap': true -}); -// → '\'Lorem ipsum "dolor" sit \\\'amet\\\' etc.\'' -// → "\'Lorem ipsum \"dolor\" sit \\\'amet\\\' etc.\'" - -jsesc('Lorem ipsum "dolor" sit \'amet\' etc.', { - 'quotes': 'double', - 'wrap': true -}); -// → '"Lorem ipsum \\"dolor\\" sit \'amet\' etc."' -// → "\"Lorem ipsum \\\"dolor\\\" sit \'amet\' etc.\"" -``` - -#### `es6` - -The `es6` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, any astral Unicode symbols in the input are escaped using [ECMAScript 6 Unicode code point escape sequences](https://mathiasbynens.be/notes/javascript-escapes#unicode-code-point) instead of using separate escape sequences for each surrogate half. If backwards compatibility with ES5 environments is a concern, don’t enable this setting. If the `json` setting is enabled, the value for the `es6` setting is ignored (as if it was `false`). - -```js -// By default, the `es6` option is disabled: -jsesc('foo 𝌆 bar 💩 baz'); -// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To explicitly disable it: -jsesc('foo 𝌆 bar 💩 baz', { - 'es6': false -}); -// → 'foo \\uD834\\uDF06 bar \\uD83D\\uDCA9 baz' - -// To enable it: -jsesc('foo 𝌆 bar 💩 baz', { - 'es6': true -}); -// → 'foo \\u{1D306} bar \\u{1F4A9} baz' -``` - -#### `escapeEverything` - -The `escapeEverything` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, all the symbols in the output are escaped — even printable ASCII symbols. - -```js -jsesc('lolwat"foo\'bar', { - 'escapeEverything': true -}); -// → '\\x6C\\x6F\\x6C\\x77\\x61\\x74\\"\\x66\\x6F\\x6F\\\'\\x62\\x61\\x72' -// → "\\x6C\\x6F\\x6C\\x77\\x61\\x74\\\"\\x66\\x6F\\x6F\\'\\x62\\x61\\x72" -``` - -This setting also affects the output for string literals within arrays and objects. - -#### `minimal` - -The `minimal` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, only a limited set of symbols in the output are escaped: - -* U+0000 `\0` -* U+0008 `\b` -* U+0009 `\t` -* U+000A `\n` -* U+000C `\f` -* U+000D `\r` -* U+005C `\\` -* U+2028 `\u2028` -* U+2029 `\u2029` -* whatever symbol is being used for wrapping string literals (based on [the `quotes` option](#quotes)) - -Note: with this option enabled, jsesc output is no longer guaranteed to be ASCII-safe. - -```js -jsesc('foo\u2029bar\nbaz©qux𝌆flops', { - 'minimal': false -}); -// → 'foo\\u2029bar\\nbaz©qux𝌆flops' -``` - -#### `isScriptContext` - -The `isScriptContext` option takes a boolean value (`true` or `false`), and defaults to `false` (disabled). When enabled, occurrences of [`` or `